From 1ea6ec13662f3ac1297debfcfd4e5243c9bf146a Mon Sep 17 00:00:00 2001 From: Frank van der Stam Date: Wed, 15 Jan 2025 19:12:10 +0100 Subject: [PATCH 01/28] Update C# langversion to 13 --- src/SoulMemory/SoulMemory.csproj | 1 + 1 file changed, 1 insertion(+) diff --git a/src/SoulMemory/SoulMemory.csproj b/src/SoulMemory/SoulMemory.csproj index bb82067..885a1b0 100644 --- a/src/SoulMemory/SoulMemory.csproj +++ b/src/SoulMemory/SoulMemory.csproj @@ -1,6 +1,7 @@  netstandard2.0 + 13 Library true x64 From 870a7bd9eee6de9d07e91dcc6db1ff26775c1d2c Mon Sep 17 00:00:00 2001 From: Frank van der Stam Date: Fri, 17 Jan 2025 13:53:49 +0100 Subject: [PATCH 02/28] Enable nullable in soulmemory. Fix all compiler errors by throwing ? and ! around. --- src/SoulMemory/AnnotationsAttribute.cs | 4 +-- src/SoulMemory/ArmoredCore6/ArmoredCore6.cs | 8 ++--- src/SoulMemory/DarkSouls1/DarkSouls1.cs | 10 +++--- src/SoulMemory/DarkSouls1/IDarkSouls1.cs | 2 +- .../DarkSouls1/Parameters/AiStandardInfo.cs | 12 +++---- .../DarkSouls1/Parameters/AtkParam.cs | 2 +- .../DarkSouls1/Parameters/BehaviorParam.cs | 4 +-- .../DarkSouls1/Parameters/BulletParam.cs | 2 +- .../DarkSouls1/Parameters/CalcCorrectGraph.cs | 2 +- .../DarkSouls1/Parameters/CharaInitParam.cs | 2 +- .../DarkSouls1/Parameters/DofBank.cs | 4 +-- .../Parameters/EnemyStandardInfo.cs | 6 ++-- .../DarkSouls1/Parameters/EnvLightTexBank.cs | 32 +++++++++---------- .../Parameters/EquipMtrlSetParam.cs | 2 +- .../Parameters/EquipParamAccessory.cs | 4 +-- .../DarkSouls1/Parameters/EquipParamGoods.cs | 2 +- .../Parameters/EquipParamProtector.cs | 4 +-- .../DarkSouls1/Parameters/EquipParamWeapon.cs | 4 +-- .../DarkSouls1/Parameters/FaceGenParam.cs | 2 +- .../DarkSouls1/Parameters/HitMtrlParam.cs | 2 +- .../DarkSouls1/Parameters/KnockBackParam.cs | 2 +- .../DarkSouls1/Parameters/LevelSyncParam.cs | 2 +- .../DarkSouls1/Parameters/LightBank.cs | 2 +- .../Parameters/LightScatteringBank.cs | 4 +-- .../DarkSouls1/Parameters/LockCamParam.cs | 2 +- .../DarkSouls1/Parameters/MagicParam.cs | 2 +- .../DarkSouls1/Parameters/MoveParam.cs | 2 +- .../DarkSouls1/Parameters/NpcParam.cs | 2 +- .../DarkSouls1/Parameters/NpcThinkParam.cs | 4 +-- .../DarkSouls1/Parameters/ObjActParam.cs | 2 +- .../DarkSouls1/Parameters/RagdollParam.cs | 2 +- .../DarkSouls1/Parameters/ShopLineupParam.cs | 2 +- .../DarkSouls1/Parameters/SkeletonParam.cs | 2 +- .../DarkSouls1/Parameters/SpEffect.cs | 2 +- .../DarkSouls1/Parameters/SpEffectVfx.cs | 2 +- .../DarkSouls1/Parameters/TalkParam.cs | 2 +- .../DarkSouls1/Parameters/ThrowParam.cs | 2 +- .../DarkSouls1/Parameters/ToneMapBank.cs | 2 +- src/SoulMemory/DarkSouls1/Ptde.cs | 8 ++--- src/SoulMemory/DarkSouls1/Remastered.cs | 22 ++++++------- src/SoulMemory/DarkSouls2/DarkSouls2.cs | 8 ++--- src/SoulMemory/DarkSouls2/scholar.cs | 4 +-- src/SoulMemory/DarkSouls2/vanilla.cs | 4 +-- src/SoulMemory/DarkSouls3/DarkSouls3.cs | 10 +++--- src/SoulMemory/EldenRing/EldenRing.cs | 12 +++---- src/SoulMemory/EldenRing/Item.cs | 4 +-- src/SoulMemory/Extensions.cs | 4 +-- src/SoulMemory/IGame.cs | 2 +- src/SoulMemory/Memory/Extensions.cs | 4 +-- src/SoulMemory/Memory/MemoryScanner.cs | 6 ++-- src/SoulMemory/Memory/Pointer.cs | 12 +++---- .../MemoryV2/Memory/MemoryScanner.cs | 2 +- .../PointerTreeBuilder/PointerNode.cs | 2 +- .../MemoryV2/Process/IProcessWrapper.cs | 6 ++-- .../MemoryV2/Process/ProcessHook.cs | 18 +++++------ .../MemoryV2/Process/ProcessWrapper.cs | 12 +++---- .../MemoryV2/Process/ProcessWrapperModule.cs | 4 +-- src/SoulMemory/Native/Kernel32.cs | 6 ++-- src/SoulMemory/Parameters/BaseParam.cs | 6 ++-- .../Parameters/ParamClassGenerator.cs | 4 +-- src/SoulMemory/RefreshError.cs | 4 +-- src/SoulMemory/Result.cs | 22 ++++++------- src/SoulMemory/Sekiro/Sekiro.cs | 10 +++--- src/SoulMemory/SoulMemory.csproj | 3 +- src/SoulMemory/soulmods/Soulmods.cs | 4 +-- 65 files changed, 176 insertions(+), 177 deletions(-) diff --git a/src/SoulMemory/AnnotationsAttribute.cs b/src/SoulMemory/AnnotationsAttribute.cs index af43be1..686095f 100644 --- a/src/SoulMemory/AnnotationsAttribute.cs +++ b/src/SoulMemory/AnnotationsAttribute.cs @@ -27,7 +27,7 @@ namespace SoulMemory [AttributeUsage(AttributeTargets.Field)] public class AnnotationAttribute : Attribute { - public string Name { get; set; } - public string Description { get; set; } + public string Name { get; set; } = null!; + public string Description { get; set; } = null!; } } diff --git a/src/SoulMemory/ArmoredCore6/ArmoredCore6.cs b/src/SoulMemory/ArmoredCore6/ArmoredCore6.cs index d7ca071..63d4be6 100644 --- a/src/SoulMemory/ArmoredCore6/ArmoredCore6.cs +++ b/src/SoulMemory/ArmoredCore6/ArmoredCore6.cs @@ -26,7 +26,7 @@ public class ArmoredCore6 : IGame { private readonly IProcessHook _armoredCore6; - public ArmoredCore6(IProcessHook processHook = null) + public ArmoredCore6(IProcessHook? processHook = null) { _armoredCore6 = processHook ?? new ProcessHook("armoredcore6"); @@ -91,14 +91,14 @@ public SoulMemory.Memory.TreeBuilder GetTreeBuilder() return builder; } - public Process GetProcess() => _armoredCore6.ProcessWrapper.GetProcess(); + public Process? GetProcess() => _armoredCore6.ProcessWrapper.GetProcess(); private ResultErr InjectMods() { - Exception exception = null; + Exception? exception = null; try { - soulmods.Soulmods.Inject(_armoredCore6.ProcessWrapper.GetProcess()); + soulmods.Soulmods.Inject(GetProcess()!); } catch (Exception e) { exception = e; } diff --git a/src/SoulMemory/DarkSouls1/DarkSouls1.cs b/src/SoulMemory/DarkSouls1/DarkSouls1.cs index 9b5dae2..175b065 100644 --- a/src/SoulMemory/DarkSouls1/DarkSouls1.cs +++ b/src/SoulMemory/DarkSouls1/DarkSouls1.cs @@ -26,8 +26,8 @@ namespace SoulMemory.DarkSouls1 { public class DarkSouls1 : IDarkSouls1 { - private IDarkSouls1 _darkSouls1; - public Process GetProcess() => _darkSouls1?.GetProcess(); + private IDarkSouls1? _darkSouls1; + public Process? GetProcess() => _darkSouls1?.GetProcess(); public int GetAttribute(Attribute attribute) => _darkSouls1?.GetAttribute(attribute) ?? 0; public bool ReadEventFlag(uint eventFlagId) => _darkSouls1?.ReadEventFlag(eventFlagId) ?? false; public bool IsWarpRequested() => _darkSouls1?.IsWarpRequested() ?? false; @@ -40,14 +40,14 @@ public class DarkSouls1 : IDarkSouls1 public List GetInventory() => _darkSouls1?.GetInventory() ?? new List(); public bool AreCreditsRolling() => _darkSouls1?.AreCreditsRolling() ?? false; public BonfireState GetBonfireState(Bonfire bonfire) => _darkSouls1?.GetBonfireState(bonfire) ?? BonfireState.Unknown; - public string GetSaveFileLocation() => _darkSouls1?.GetSaveFileLocation(); + public string? GetSaveFileLocation() => _darkSouls1?.GetSaveFileLocation(); public int GetSaveFileGameTimeMilliseconds(string path, int slot) => _darkSouls1?.GetSaveFileGameTimeMilliseconds(path, slot) ?? 0; public void WriteWeaponDescription(uint weaponId, string description) => _darkSouls1?.WriteWeaponDescription(weaponId, description); public void WriteItemLotParam(int rowId, Action accessor) => _darkSouls1?.WriteItemLotParam(rowId, accessor); public void SetLoadingScreenItem(int index, uint item) => _darkSouls1?.SetLoadingScreenItem(index, item); - public TreeBuilder GetTreeBuilder() => _darkSouls1.GetTreeBuilder(); + public TreeBuilder GetTreeBuilder() => _darkSouls1?.GetTreeBuilder() ?? null!; public ResultErr TryRefresh() { @@ -92,7 +92,7 @@ public ResultErr TryRefresh() #if DEBUG - public object GetTestValue() => _darkSouls1?.GetTestValue(); + public object GetTestValue() => _darkSouls1?.GetTestValue()!; #endif } } diff --git a/src/SoulMemory/DarkSouls1/IDarkSouls1.cs b/src/SoulMemory/DarkSouls1/IDarkSouls1.cs index 3353508..6e7e275 100644 --- a/src/SoulMemory/DarkSouls1/IDarkSouls1.cs +++ b/src/SoulMemory/DarkSouls1/IDarkSouls1.cs @@ -32,7 +32,7 @@ public interface IDarkSouls1 : IGame void ResetInventoryIndices(); List GetInventory(); BonfireState GetBonfireState(Bonfire bonfire); - string GetSaveFileLocation(); + string? GetSaveFileLocation(); int GetSaveFileGameTimeMilliseconds(string path, int slot); void WriteWeaponDescription(uint weaponId, string description); void WriteItemLotParam(int rowId, Action accessor); diff --git a/src/SoulMemory/DarkSouls1/Parameters/AiStandardInfo.cs b/src/SoulMemory/DarkSouls1/Parameters/AiStandardInfo.cs index 1bd3f91..6c0c7c3 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/AiStandardInfo.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/AiStandardInfo.cs @@ -79,7 +79,7 @@ public byte[] Reserve0 get => _Reserve0; set => WriteParamField(ref _Reserve0, value); } - private byte[] _Reserve0; + private byte[] _Reserve0 = null!; [ParamField(0x20, ParamType.U16)] public ushort Attack1_Distance @@ -143,7 +143,7 @@ public byte[] Reserve10 get => _Reserve10; set => WriteParamField(ref _Reserve10, value); } - private byte[] _Reserve10; + private byte[] _Reserve10 = null!; [ParamField(0x30, ParamType.U16)] public ushort Attack2_Distance @@ -207,7 +207,7 @@ public byte[] Reserve11 get => _Reserve11; set => WriteParamField(ref _Reserve11, value); } - private byte[] _Reserve11; + private byte[] _Reserve11 = null!; [ParamField(0x40, ParamType.U16)] public ushort Attack3_Distance @@ -271,7 +271,7 @@ public byte[] Reserve12 get => _Reserve12; set => WriteParamField(ref _Reserve12, value); } - private byte[] _Reserve12; + private byte[] _Reserve12 = null!; [ParamField(0x50, ParamType.U16)] public ushort Attack4_Distance @@ -335,7 +335,7 @@ public byte[] Reserve13 get => _Reserve13; set => WriteParamField(ref _Reserve13, value); } - private byte[] _Reserve13; + private byte[] _Reserve13 = null!; [ParamField(0x60, ParamType.Dummy8, 32)] public byte[] Reserve_last @@ -343,7 +343,7 @@ public byte[] Reserve_last get => _Reserve_last; set => WriteParamField(ref _Reserve_last, value); } - private byte[] _Reserve_last; + private byte[] _Reserve_last = null!; } } diff --git a/src/SoulMemory/DarkSouls1/Parameters/AtkParam.cs b/src/SoulMemory/DarkSouls1/Parameters/AtkParam.cs index b24fb96..a8858d2 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/AtkParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/AtkParam.cs @@ -595,7 +595,7 @@ public byte[] Pad get => _Pad; set => WriteParamField(ref _Pad, value); } - private byte[] _Pad; + private byte[] _Pad = null!; } } diff --git a/src/SoulMemory/DarkSouls1/Parameters/BehaviorParam.cs b/src/SoulMemory/DarkSouls1/Parameters/BehaviorParam.cs index 91e1aef..4ef34cc 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/BehaviorParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/BehaviorParam.cs @@ -63,7 +63,7 @@ public byte[] Pad0 get => _Pad0; set => WriteParamField(ref _Pad0, value); } - private byte[] _Pad0; + private byte[] _Pad0 = null!; [ParamField(0xC, ParamType.I32)] public int RefId @@ -119,7 +119,7 @@ public byte[] Pad1 get => _Pad1; set => WriteParamField(ref _Pad1, value); } - private byte[] _Pad1; + private byte[] _Pad1 = null!; } } diff --git a/src/SoulMemory/DarkSouls1/Parameters/BulletParam.cs b/src/SoulMemory/DarkSouls1/Parameters/BulletParam.cs index ec14520..6a6eddd 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/BulletParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/BulletParam.cs @@ -582,7 +582,7 @@ public byte[] Pad get => _Pad; set => WriteParamField(ref _Pad, value); } - private byte[] _Pad; + private byte[] _Pad = null!; } } diff --git a/src/SoulMemory/DarkSouls1/Parameters/CalcCorrectGraph.cs b/src/SoulMemory/DarkSouls1/Parameters/CalcCorrectGraph.cs index 08c4dea..f6c7c02 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/CalcCorrectGraph.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/CalcCorrectGraph.cs @@ -183,7 +183,7 @@ public byte[] Pad get => _Pad; set => WriteParamField(ref _Pad, value); } - private byte[] _Pad; + private byte[] _Pad = null!; } } diff --git a/src/SoulMemory/DarkSouls1/Parameters/CharaInitParam.cs b/src/SoulMemory/DarkSouls1/Parameters/CharaInitParam.cs index 1c6c9f0..f843ca5 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/CharaInitParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/CharaInitParam.cs @@ -769,7 +769,7 @@ public byte[] Pad0 get => _Pad0; set => WriteParamField(ref _Pad0, value); } - private byte[] _Pad0; + private byte[] _Pad0 = null!; } } diff --git a/src/SoulMemory/DarkSouls1/Parameters/DofBank.cs b/src/SoulMemory/DarkSouls1/Parameters/DofBank.cs index 31fa16f..37d79fd 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/DofBank.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/DofBank.cs @@ -55,7 +55,7 @@ public byte[] Pad_0 get => _Pad_0; set => WriteParamField(ref _Pad_0, value); } - private byte[] _Pad_0; + private byte[] _Pad_0 = null!; [ParamField(0xC, ParamType.F32)] public float NearDofBegin @@ -87,7 +87,7 @@ public byte[] Pad_1 get => _Pad_1; set => WriteParamField(ref _Pad_1, value); } - private byte[] _Pad_1; + private byte[] _Pad_1 = null!; [ParamField(0x18, ParamType.F32)] public float DispersionSq diff --git a/src/SoulMemory/DarkSouls1/Parameters/EnemyStandardInfo.cs b/src/SoulMemory/DarkSouls1/Parameters/EnemyStandardInfo.cs index 3c56859..ecf8e10 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/EnemyStandardInfo.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/EnemyStandardInfo.cs @@ -127,7 +127,7 @@ public byte[] Reserve0 get => _Reserve0; set => WriteParamField(ref _Reserve0, value); } - private byte[] _Reserve0; + private byte[] _Reserve0 = null!; [ParamField(0x40, ParamType.U8)] public byte RotY_per_Second_old @@ -159,7 +159,7 @@ public byte[] Reserve_last get => _Reserve_last; set => WriteParamField(ref _Reserve_last, value); } - private byte[] _Reserve_last; + private byte[] _Reserve_last = null!; [ParamField(0x48, ParamType.U16)] public ushort Stamina @@ -199,7 +199,7 @@ public byte[] Reserve_last2 get => _Reserve_last2; set => WriteParamField(ref _Reserve_last2, value); } - private byte[] _Reserve_last2; + private byte[] _Reserve_last2 = null!; } } diff --git a/src/SoulMemory/DarkSouls1/Parameters/EnvLightTexBank.cs b/src/SoulMemory/DarkSouls1/Parameters/EnvLightTexBank.cs index 3400cf9..1aa7748 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/EnvLightTexBank.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/EnvLightTexBank.cs @@ -47,7 +47,7 @@ public byte[] Pad_0 get => _Pad_0; set => WriteParamField(ref _Pad_0, value); } - private byte[] _Pad_0; + private byte[] _Pad_0 = null!; [ParamField(0xE, ParamType.I16)] public short InvMulCol @@ -87,7 +87,7 @@ public byte[] Pad_Dif0 get => _Pad_Dif0; set => WriteParamField(ref _Pad_Dif0, value); } - private byte[] _Pad_Dif0; + private byte[] _Pad_Dif0 = null!; [ParamField(0x20, ParamType.I16)] public short ResNameId_Spc0 @@ -119,7 +119,7 @@ public byte[] Pad_Spc0 get => _Pad_Spc0; set => WriteParamField(ref _Pad_Spc0, value); } - private byte[] _Pad_Spc0; + private byte[] _Pad_Spc0 = null!; [ParamField(0x30, ParamType.I16)] public short ResNameId_Spc1 @@ -151,7 +151,7 @@ public byte[] Pad_Spc1 get => _Pad_Spc1; set => WriteParamField(ref _Pad_Spc1, value); } - private byte[] _Pad_Spc1; + private byte[] _Pad_Spc1 = null!; [ParamField(0x40, ParamType.I16)] public short ResNameId_Spc2 @@ -183,7 +183,7 @@ public byte[] Pad_Spc2 get => _Pad_Spc2; set => WriteParamField(ref _Pad_Spc2, value); } - private byte[] _Pad_Spc2; + private byte[] _Pad_Spc2 = null!; [ParamField(0x50, ParamType.I16)] public short ResNameId_Spc3 @@ -215,7 +215,7 @@ public byte[] Pad_Spc3 get => _Pad_Spc3; set => WriteParamField(ref _Pad_Spc3, value); } - private byte[] _Pad_Spc3; + private byte[] _Pad_Spc3 = null!; [ParamField(0x60, ParamType.I16)] public short DegRotX_00 @@ -271,7 +271,7 @@ public byte[] Pad_00 get => _Pad_00; set => WriteParamField(ref _Pad_00, value); } - private byte[] _Pad_00; + private byte[] _Pad_00 = null!; [ParamField(0x70, ParamType.I16)] public short DegRotX_01 @@ -327,7 +327,7 @@ public byte[] Pad_01 get => _Pad_01; set => WriteParamField(ref _Pad_01, value); } - private byte[] _Pad_01; + private byte[] _Pad_01 = null!; [ParamField(0x80, ParamType.I16)] public short DegRotX_02 @@ -383,7 +383,7 @@ public byte[] Pad_02 get => _Pad_02; set => WriteParamField(ref _Pad_02, value); } - private byte[] _Pad_02; + private byte[] _Pad_02 = null!; [ParamField(0x90, ParamType.I16)] public short DegRotX_03 @@ -439,7 +439,7 @@ public byte[] Pad_03 get => _Pad_03; set => WriteParamField(ref _Pad_03, value); } - private byte[] _Pad_03; + private byte[] _Pad_03 = null!; [ParamField(0xA0, ParamType.I16)] public short DegRotX_04 @@ -495,7 +495,7 @@ public byte[] Pad_04 get => _Pad_04; set => WriteParamField(ref _Pad_04, value); } - private byte[] _Pad_04; + private byte[] _Pad_04 = null!; [ParamField(0xB0, ParamType.I16)] public short DegRotX_05 @@ -551,7 +551,7 @@ public byte[] Pad_05 get => _Pad_05; set => WriteParamField(ref _Pad_05, value); } - private byte[] _Pad_05; + private byte[] _Pad_05 = null!; [ParamField(0xC0, ParamType.I16)] public short DegRotX_06 @@ -607,7 +607,7 @@ public byte[] Pad_06 get => _Pad_06; set => WriteParamField(ref _Pad_06, value); } - private byte[] _Pad_06; + private byte[] _Pad_06 = null!; [ParamField(0xD0, ParamType.I16)] public short DegRotX_07 @@ -663,7 +663,7 @@ public byte[] Pad_07 get => _Pad_07; set => WriteParamField(ref _Pad_07, value); } - private byte[] _Pad_07; + private byte[] _Pad_07 = null!; [ParamField(0xE0, ParamType.I16)] public short DegRotX_08 @@ -719,7 +719,7 @@ public byte[] Pad_08 get => _Pad_08; set => WriteParamField(ref _Pad_08, value); } - private byte[] _Pad_08; + private byte[] _Pad_08 = null!; [ParamField(0xF0, ParamType.I16)] public short DegRotX_09 @@ -775,7 +775,7 @@ public byte[] Pad_09 get => _Pad_09; set => WriteParamField(ref _Pad_09, value); } - private byte[] _Pad_09; + private byte[] _Pad_09 = null!; } } diff --git a/src/SoulMemory/DarkSouls1/Parameters/EquipMtrlSetParam.cs b/src/SoulMemory/DarkSouls1/Parameters/EquipMtrlSetParam.cs index 6a7f0ca..c1b56f6 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/EquipMtrlSetParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/EquipMtrlSetParam.cs @@ -158,7 +158,7 @@ public byte[] Pad get => _Pad; set => WriteParamField(ref _Pad, value); } - private byte[] _Pad; + private byte[] _Pad = null!; } } diff --git a/src/SoulMemory/DarkSouls1/Parameters/EquipParamAccessory.cs b/src/SoulMemory/DarkSouls1/Parameters/EquipParamAccessory.cs index 74f15bd..e57bfdd 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/EquipParamAccessory.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/EquipParamAccessory.cs @@ -175,7 +175,7 @@ public byte[] Pad get => _Pad; set => WriteParamField(ref _Pad, value); } - private byte[] _Pad; + private byte[] _Pad = null!; [ParamField(0x30, ParamType.I32)] public int VagrantItemLotId @@ -240,7 +240,7 @@ public byte[] Pad1 get => _Pad1; set => WriteParamField(ref _Pad1, value); } - private byte[] _Pad1; + private byte[] _Pad1 = null!; } } diff --git a/src/SoulMemory/DarkSouls1/Parameters/EquipParamGoods.cs b/src/SoulMemory/DarkSouls1/Parameters/EquipParamGoods.cs index 0a1c301..8e3ee42 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/EquipParamGoods.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/EquipParamGoods.cs @@ -580,7 +580,7 @@ public byte[] Pad get => _Pad; set => WriteParamField(ref _Pad, value); } - private byte[] _Pad; + private byte[] _Pad = null!; [ParamField(0x50, ParamType.I32)] public int VagrantItemLotId diff --git a/src/SoulMemory/DarkSouls1/Parameters/EquipParamProtector.cs b/src/SoulMemory/DarkSouls1/Parameters/EquipParamProtector.cs index 9192d06..79e686e 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/EquipParamProtector.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/EquipParamProtector.cs @@ -1091,7 +1091,7 @@ public byte[] Pad_0 get => _Pad_0; set => WriteParamField(ref _Pad_0, value); } - private byte[] _Pad_0; + private byte[] _Pad_0 = null!; [ParamField(0xE0, ParamType.I16)] public short OldSortId @@ -1107,7 +1107,7 @@ public byte[] Pad_1 get => _Pad_1; set => WriteParamField(ref _Pad_1, value); } - private byte[] _Pad_1; + private byte[] _Pad_1 = null!; } } diff --git a/src/SoulMemory/DarkSouls1/Parameters/EquipParamWeapon.cs b/src/SoulMemory/DarkSouls1/Parameters/EquipParamWeapon.cs index 3344bae..c46a314 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/EquipParamWeapon.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/EquipParamWeapon.cs @@ -1052,7 +1052,7 @@ public byte[] Pad_0 get => _Pad_0; set => WriteParamField(ref _Pad_0, value); } - private byte[] _Pad_0; + private byte[] _Pad_0 = null!; [ParamField(0x106, ParamType.I16)] public short OldSortId @@ -1076,7 +1076,7 @@ public byte[] Pad_1 get => _Pad_1; set => WriteParamField(ref _Pad_1, value); } - private byte[] _Pad_1; + private byte[] _Pad_1 = null!; } } diff --git a/src/SoulMemory/DarkSouls1/Parameters/FaceGenParam.cs b/src/SoulMemory/DarkSouls1/Parameters/FaceGenParam.cs index c2d0344..b1e830a 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/FaceGenParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/FaceGenParam.cs @@ -895,7 +895,7 @@ public byte[] Pad get => _Pad; set => WriteParamField(ref _Pad, value); } - private byte[] _Pad; + private byte[] _Pad = null!; } } diff --git a/src/SoulMemory/DarkSouls1/Parameters/HitMtrlParam.cs b/src/SoulMemory/DarkSouls1/Parameters/HitMtrlParam.cs index 01e08f1..b58cd20 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/HitMtrlParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/HitMtrlParam.cs @@ -88,7 +88,7 @@ public byte[] Pad0 get => _Pad0; set => WriteParamField(ref _Pad0, value); } - private byte[] _Pad0; + private byte[] _Pad0 = null!; } } diff --git a/src/SoulMemory/DarkSouls1/Parameters/KnockBackParam.cs b/src/SoulMemory/DarkSouls1/Parameters/KnockBackParam.cs index 7d814c3..d97e105 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/KnockBackParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/KnockBackParam.cs @@ -271,7 +271,7 @@ public byte[] Pad get => _Pad; set => WriteParamField(ref _Pad, value); } - private byte[] _Pad; + private byte[] _Pad = null!; } } diff --git a/src/SoulMemory/DarkSouls1/Parameters/LevelSyncParam.cs b/src/SoulMemory/DarkSouls1/Parameters/LevelSyncParam.cs index 3fcc8fc..42bcbcd 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/LevelSyncParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/LevelSyncParam.cs @@ -367,7 +367,7 @@ public byte[] Pad get => _Pad; set => WriteParamField(ref _Pad, value); } - private byte[] _Pad; + private byte[] _Pad = null!; [ParamField(0x30, ParamType.F32)] public float SummonTimeoutTime diff --git a/src/SoulMemory/DarkSouls1/Parameters/LightBank.cs b/src/SoulMemory/DarkSouls1/Parameters/LightBank.cs index 3b659dd..77f08f7 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/LightBank.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/LightBank.cs @@ -391,7 +391,7 @@ public byte[] Pad get => _Pad; set => WriteParamField(ref _Pad, value); } - private byte[] _Pad; + private byte[] _Pad = null!; } } diff --git a/src/SoulMemory/DarkSouls1/Parameters/LightScatteringBank.cs b/src/SoulMemory/DarkSouls1/Parameters/LightScatteringBank.cs index 3ac98a1..83f1b6b 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/LightScatteringBank.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/LightScatteringBank.cs @@ -87,7 +87,7 @@ public byte[] Pad_0 get => _Pad_0; set => WriteParamField(ref _Pad_0, value); } - private byte[] _Pad_0; + private byte[] _Pad_0 = null!; [ParamField(0x10, ParamType.F32)] public float LsHGg @@ -159,7 +159,7 @@ public byte[] Pad_1 get => _Pad_1; set => WriteParamField(ref _Pad_1, value); } - private byte[] _Pad_1; + private byte[] _Pad_1 = null!; } } diff --git a/src/SoulMemory/DarkSouls1/Parameters/LockCamParam.cs b/src/SoulMemory/DarkSouls1/Parameters/LockCamParam.cs index e7ee110..b5d0476 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/LockCamParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/LockCamParam.cs @@ -79,7 +79,7 @@ public byte[] Pad get => _Pad; set => WriteParamField(ref _Pad, value); } - private byte[] _Pad; + private byte[] _Pad = null!; } } diff --git a/src/SoulMemory/DarkSouls1/Parameters/MagicParam.cs b/src/SoulMemory/DarkSouls1/Parameters/MagicParam.cs index 5b35bef..7bf45a4 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/MagicParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/MagicParam.cs @@ -484,7 +484,7 @@ public byte[] Pad get => _Pad; set => WriteParamField(ref _Pad, value); } - private byte[] _Pad; + private byte[] _Pad = null!; } } diff --git a/src/SoulMemory/DarkSouls1/Parameters/MoveParam.cs b/src/SoulMemory/DarkSouls1/Parameters/MoveParam.cs index 63fc401..4fc96be 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/MoveParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/MoveParam.cs @@ -311,7 +311,7 @@ public byte[] Pad get => _Pad; set => WriteParamField(ref _Pad, value); } - private byte[] _Pad; + private byte[] _Pad = null!; } } diff --git a/src/SoulMemory/DarkSouls1/Parameters/NpcParam.cs b/src/SoulMemory/DarkSouls1/Parameters/NpcParam.cs index c54271a..37cc2bf 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/NpcParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/NpcParam.cs @@ -1312,7 +1312,7 @@ public byte[] Pad2 get => _Pad2; set => WriteParamField(ref _Pad2, value); } - private byte[] _Pad2; + private byte[] _Pad2 = null!; } } diff --git a/src/SoulMemory/DarkSouls1/Parameters/NpcThinkParam.cs b/src/SoulMemory/DarkSouls1/Parameters/NpcThinkParam.cs index 974ab39..01006ef 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/NpcThinkParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/NpcThinkParam.cs @@ -444,7 +444,7 @@ public byte[] EnableNaviFlg_reserve1 get => _EnableNaviFlg_reserve1; set => WriteParamField(ref _EnableNaviFlg_reserve1, value); } - private byte[] _EnableNaviFlg_reserve1; + private byte[] _EnableNaviFlg_reserve1 = null!; [ParamField(0x64, ParamType.Dummy8, 12)] public byte[] Pad0 @@ -452,7 +452,7 @@ public byte[] Pad0 get => _Pad0; set => WriteParamField(ref _Pad0, value); } - private byte[] _Pad0; + private byte[] _Pad0 = null!; } } diff --git a/src/SoulMemory/DarkSouls1/Parameters/ObjActParam.cs b/src/SoulMemory/DarkSouls1/Parameters/ObjActParam.cs index 5aa5ce1..3ba43da 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/ObjActParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/ObjActParam.cs @@ -159,7 +159,7 @@ public byte[] Pad1 get => _Pad1; set => WriteParamField(ref _Pad1, value); } - private byte[] _Pad1; + private byte[] _Pad1 = null!; } } diff --git a/src/SoulMemory/DarkSouls1/Parameters/RagdollParam.cs b/src/SoulMemory/DarkSouls1/Parameters/RagdollParam.cs index 4e58ed9..36d3315 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/RagdollParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/RagdollParam.cs @@ -111,7 +111,7 @@ public byte[] Pad get => _Pad; set => WriteParamField(ref _Pad, value); } - private byte[] _Pad; + private byte[] _Pad = null!; } } diff --git a/src/SoulMemory/DarkSouls1/Parameters/ShopLineupParam.cs b/src/SoulMemory/DarkSouls1/Parameters/ShopLineupParam.cs index b8e2b95..4b13526 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/ShopLineupParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/ShopLineupParam.cs @@ -95,7 +95,7 @@ public byte[] Pad_0 get => _Pad_0; set => WriteParamField(ref _Pad_0, value); } - private byte[] _Pad_0; + private byte[] _Pad_0 = null!; } } diff --git a/src/SoulMemory/DarkSouls1/Parameters/SkeletonParam.cs b/src/SoulMemory/DarkSouls1/Parameters/SkeletonParam.cs index e8affd2..c1246f5 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/SkeletonParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/SkeletonParam.cs @@ -231,7 +231,7 @@ public byte[] Pad1 get => _Pad1; set => WriteParamField(ref _Pad1, value); } - private byte[] _Pad1; + private byte[] _Pad1 = null!; } } diff --git a/src/SoulMemory/DarkSouls1/Parameters/SpEffect.cs b/src/SoulMemory/DarkSouls1/Parameters/SpEffect.cs index f56b9f1..7b35654 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/SpEffect.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/SpEffect.cs @@ -1442,7 +1442,7 @@ public byte[] Pad1 get => _Pad1; set => WriteParamField(ref _Pad1, value); } - private byte[] _Pad1; + private byte[] _Pad1 = null!; } } diff --git a/src/SoulMemory/DarkSouls1/Parameters/SpEffectVfx.cs b/src/SoulMemory/DarkSouls1/Parameters/SpEffectVfx.cs index 15716ca..35105ff 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/SpEffectVfx.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/SpEffectVfx.cs @@ -260,7 +260,7 @@ public byte[] Pad get => _Pad; set => WriteParamField(ref _Pad, value); } - private byte[] _Pad; + private byte[] _Pad = null!; } } diff --git a/src/SoulMemory/DarkSouls1/Parameters/TalkParam.cs b/src/SoulMemory/DarkSouls1/Parameters/TalkParam.cs index 1a72cc5..1bc9ea3 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/TalkParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/TalkParam.cs @@ -87,7 +87,7 @@ public byte[] Pad0 get => _Pad0; set => WriteParamField(ref _Pad0, value); } - private byte[] _Pad0; + private byte[] _Pad0 = null!; } } diff --git a/src/SoulMemory/DarkSouls1/Parameters/ThrowParam.cs b/src/SoulMemory/DarkSouls1/Parameters/ThrowParam.cs index fa3a66b..20895f3 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/ThrowParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/ThrowParam.cs @@ -247,7 +247,7 @@ public byte[] Pad1 get => _Pad1; set => WriteParamField(ref _Pad1, value); } - private byte[] _Pad1; + private byte[] _Pad1 = null!; } } diff --git a/src/SoulMemory/DarkSouls1/Parameters/ToneMapBank.cs b/src/SoulMemory/DarkSouls1/Parameters/ToneMapBank.cs index 64f2855..82cd7d5 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/ToneMapBank.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/ToneMapBank.cs @@ -119,7 +119,7 @@ public byte[] Pad_0 get => _Pad_0; set => WriteParamField(ref _Pad_0, value); } - private byte[] _Pad_0; + private byte[] _Pad_0 = null!; [ParamField(0x24, ParamType.F32)] public float LightShaftPower diff --git a/src/SoulMemory/DarkSouls1/Ptde.cs b/src/SoulMemory/DarkSouls1/Ptde.cs index 1d2c50e..5f66c58 100644 --- a/src/SoulMemory/DarkSouls1/Ptde.cs +++ b/src/SoulMemory/DarkSouls1/Ptde.cs @@ -48,7 +48,7 @@ public class Ptde : IDarkSouls1 { #region Refresh/init/reset ================================================================================================================================ - private Process _process; + private Process? _process; private readonly Pointer _gameMan = new Pointer(); private readonly Pointer _gameDataMan = new Pointer(); @@ -65,7 +65,7 @@ public class Ptde : IDarkSouls1 private List _itemLotParams = new List(); private List _weaponDescriptionsTable = new List(); - public Process GetProcess() => _process; + public Process? GetProcess() => _process; public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, "darksouls", InitPointers, ResetPointers); @@ -203,7 +203,7 @@ public List GetInventory() var listLength = _playerGameData.ReadInt32(0x2c8); var listStart = _playerGameData.ReadInt32(0x2cc); - var bytes = _process.ReadProcessMemory(listStart, listLength * 0x1c).Unwrap(); + var bytes = _process!.ReadProcessMemory(listStart, listLength * 0x1c).Unwrap(); return ItemReader.GetCurrentInventoryItems(bytes, listLength, itemCount, keyCount); } @@ -261,7 +261,7 @@ public bool AreCreditsRolling() public object GetTestValue() { WriteWeaponDescription(1105000, "asdf"); - return null; + return null!; } public int GetSaveFileGameTimeMilliseconds(string path, int slot) diff --git a/src/SoulMemory/DarkSouls1/Remastered.cs b/src/SoulMemory/DarkSouls1/Remastered.cs index 2eae877..5224c9c 100644 --- a/src/SoulMemory/DarkSouls1/Remastered.cs +++ b/src/SoulMemory/DarkSouls1/Remastered.cs @@ -50,7 +50,7 @@ public class Remastered : IDarkSouls1 { #region Refresh/init/reset ================================================================================================================================ - private Process _process; + private Process? _process; private readonly Pointer _gameMan = new Pointer(); private readonly Pointer _gameDataMan = new Pointer(); @@ -86,7 +86,7 @@ private enum DsrVersion Unknown } - public Process GetProcess() => _process; + public Process? GetProcess() => _process; public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, "darksoulsremastered", InitPointers, ResetPointers); @@ -116,7 +116,7 @@ private ResultErr InitPointers() { try { - if (_process.MainModule == null) + if (_process?.MainModule == null) { return Result.Err(new RefreshError(RefreshErrorReason.MainModuleNull)); } @@ -286,7 +286,7 @@ public List GetInventory() var itemList2Len = _playerGameData.ReadInt32(equipInventoryDataSubOffset); var itemList2 = _playerGameData.ReadInt32(equipInventoryDataSubOffset + 40); - var bytes = _process.ReadProcessMemory(itemList2, itemList2Len * 0x1c).Unwrap(); + var bytes = _process!.ReadProcessMemory(itemList2, itemList2Len * 0x1c).Unwrap(); var items = ItemReader.GetCurrentInventoryItems(bytes, itemList2Len, itemCount, keyCount); return items; @@ -418,7 +418,7 @@ public void ResetInventoryIndices() /// Returns the savefile's location /// /// - public string GetSaveFileLocation() + public string? GetSaveFileLocation() { // values may be null if called before hook, in which // case we can't guess the savefile location @@ -456,9 +456,9 @@ public string GetSaveFileLocation() private int GetSteamId3() { string name = "steam_api64.dll"; - ProcessModule module = null; + ProcessModule? module = null; - foreach (ProcessModule item in _process.Modules) + foreach (ProcessModule item in _process!.Modules) { if (item.ModuleName == name) { @@ -522,7 +522,7 @@ private bool IsJapanese() var getRegionAddress = _getRegion.BaseAddress; IntPtr callPtr = (IntPtr)getRegionAddress; - IntPtr resultPtr = _process.Allocate(0x4); + IntPtr resultPtr = _process!.Allocate(0x4); // build asm and replace the function pointers byte[] asm = LoadDefuseOutput(IsJapaneseAsm); @@ -531,9 +531,9 @@ private bool IsJapanese() byte[] resultBytes = BitConverter.GetBytes((ulong)resultPtr); Array.Copy(resultBytes, 0, asm, 0x13, 8); - _process.Execute(asm); - var isJapanese = _process.ReadMemory(resultPtr.ToInt64()).Unwrap() == 0; - _process.Free(resultPtr); + _process!.Execute(asm); + var isJapanese = _process!.ReadMemory(resultPtr.ToInt64()).Unwrap() == 0; + _process!.Free(resultPtr); return isJapanese; } diff --git a/src/SoulMemory/DarkSouls2/DarkSouls2.cs b/src/SoulMemory/DarkSouls2/DarkSouls2.cs index 55ca63e..9119f3a 100644 --- a/src/SoulMemory/DarkSouls2/DarkSouls2.cs +++ b/src/SoulMemory/DarkSouls2/DarkSouls2.cs @@ -25,14 +25,14 @@ namespace SoulMemory.DarkSouls2 public class DarkSouls2 : IDarkSouls2 { public int GetInGameTimeMilliseconds() => 0; - private IDarkSouls2 _darkSouls2; - public Process GetProcess() => _darkSouls2.GetProcess(); + private IDarkSouls2? _darkSouls2 = null!; + public Process? GetProcess() => _darkSouls2?.GetProcess(); public Vector3f GetPosition() => _darkSouls2?.GetPosition() ?? new Vector3f(); public bool IsLoading() => _darkSouls2?.IsLoading() ?? false; public bool ReadEventFlag(uint eventFlagId) => _darkSouls2?.ReadEventFlag(eventFlagId) ?? false; public int GetBossKillCount(BossType bossType) => _darkSouls2?.GetBossKillCount(bossType) ?? 0; public int GetAttribute(Attribute attribute) => _darkSouls2?.GetAttribute(attribute) ?? 0; - public TreeBuilder GetTreeBuilder() => _darkSouls2?.GetTreeBuilder(); + public TreeBuilder GetTreeBuilder() => _darkSouls2?.GetTreeBuilder() ?? null!; public ResultErr TryRefresh() { @@ -63,7 +63,7 @@ public ResultErr TryRefresh() var result = _darkSouls2.TryRefresh(); if (result.IsErr) { - _darkSouls2 = null; + _darkSouls2 = null!; return result; } return Result.Ok(); diff --git a/src/SoulMemory/DarkSouls2/scholar.cs b/src/SoulMemory/DarkSouls2/scholar.cs index 80b61ed..0649bac 100644 --- a/src/SoulMemory/DarkSouls2/scholar.cs +++ b/src/SoulMemory/DarkSouls2/scholar.cs @@ -23,7 +23,7 @@ namespace SoulMemory.DarkSouls2 { internal class Scholar : IDarkSouls2 { - private Process _process; + private Process? _process; private readonly Pointer _eventFlagManager = new Pointer(); private readonly Pointer _position = new Pointer(); private readonly Pointer _loadState = new Pointer(); @@ -31,7 +31,7 @@ internal class Scholar : IDarkSouls2 private readonly Pointer _attributes = new Pointer(); #region Refresh/init/reset ================================================================================================================================ - public Process GetProcess() => _process; + public Process? GetProcess() => _process; public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, "darksoulsii", InitPointers, ResetPointers); public int GetInGameTimeMilliseconds() => 0; public TreeBuilder GetTreeBuilder() diff --git a/src/SoulMemory/DarkSouls2/vanilla.cs b/src/SoulMemory/DarkSouls2/vanilla.cs index 72e03a9..7b31009 100644 --- a/src/SoulMemory/DarkSouls2/vanilla.cs +++ b/src/SoulMemory/DarkSouls2/vanilla.cs @@ -23,7 +23,7 @@ namespace SoulMemory.DarkSouls2 { internal class Vanilla : IDarkSouls2 { - private Process _process; + private Process? _process; private readonly Pointer _eventFlagManager = new Pointer(); private readonly Pointer _position = new Pointer(); private readonly Pointer _loadState = new Pointer(); @@ -31,7 +31,7 @@ internal class Vanilla : IDarkSouls2 private readonly Pointer _attributes = new Pointer(); #region Refresh/init/reset ================================================================================================================================ - public Process GetProcess() => _process; + public Process? GetProcess() => _process; public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, "darksoulsii", InitPointers, ResetPointers); public int GetInGameTimeMilliseconds() => 0; diff --git a/src/SoulMemory/DarkSouls3/DarkSouls3.cs b/src/SoulMemory/DarkSouls3/DarkSouls3.cs index 032ac2d..72e37bd 100644 --- a/src/SoulMemory/DarkSouls3/DarkSouls3.cs +++ b/src/SoulMemory/DarkSouls3/DarkSouls3.cs @@ -23,7 +23,7 @@ namespace SoulMemory.DarkSouls3 { public class DarkSouls3 : IGame { - private Process _process; + private Process? _process; private readonly Pointer _gameDataMan = new Pointer(); private readonly Pointer _playerGameData = new Pointer(); private readonly Pointer _playerIns = new Pointer(); @@ -35,7 +35,7 @@ public class DarkSouls3 : IGame private readonly Pointer _sprjChrPhysicsModule = new Pointer(); private long _igtOffset; - public Process GetProcess() => _process; + public Process? GetProcess() => _process; public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, "darksoulsiii", InitPointers, ResetPointers); public TreeBuilder GetTreeBuilder() @@ -250,7 +250,7 @@ public bool ReadEventFlag(uint eventFlagId) var count = vector.ReadByte(i * 0x38 + 0x20); var index = 0; var found = false; - Pointer worldInfoBlockVector = null; + Pointer? worldInfoBlockVector = null; if (count >= 1) { @@ -277,7 +277,7 @@ public bool ReadEventFlag(uint eventFlagId) if (found) { - flagWorldBlockInfoCategory = worldInfoBlockVector.ReadInt32((index * 0x70) + 0x20); + flagWorldBlockInfoCategory = worldInfoBlockVector!.ReadInt32((index * 0x70) + 0x20); break; } } @@ -298,7 +298,7 @@ public bool ReadEventFlag(uint eventFlagId) } var resultPointerAddress = new Pointer(); - resultPointerAddress.Initialize(ptr.Process, ptr.Is64Bit, (eventFlagIdDiv1000 << 4) + ptr.GetAddress() + flagWorldBlockInfoCategory * 0xa8, 0x0); + resultPointerAddress.Initialize(ptr.Process!, ptr.Is64Bit, (eventFlagIdDiv1000 << 4) + ptr.GetAddress() + flagWorldBlockInfoCategory * 0xa8, 0x0); if (!resultPointerAddress.IsNullPtr()) { diff --git a/src/SoulMemory/EldenRing/EldenRing.cs b/src/SoulMemory/EldenRing/EldenRing.cs index 13b714e..1e7485a 100644 --- a/src/SoulMemory/EldenRing/EldenRing.cs +++ b/src/SoulMemory/EldenRing/EldenRing.cs @@ -26,7 +26,7 @@ namespace SoulMemory.EldenRing { public class EldenRing : IGame { - private Process _process = null; + private Process? _process = null; private readonly Pointer _igt = new Pointer(); private readonly Pointer _hud = new Pointer(); @@ -44,7 +44,7 @@ public class EldenRing : IGame #region Refresh/init/reset ================================================================================================ - public Process GetProcess() => _process; + public Process? GetProcess() => _process; public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, "eldenring", InitPointers, ResetPointers); @@ -168,7 +168,7 @@ private ResultErr InitPointers() ApplyNoLogo(); - if (!soulmods.Soulmods.Inject(_process)) + if (!soulmods.Soulmods.Inject(_process!)) { _igt.Clear(); return Result.Err(new RefreshError(RefreshErrorReason.UnknownException, "soulmods injection failed")); @@ -355,9 +355,9 @@ public bool IsBlackscreenActive() private void ApplyNoLogo() { - _process.NtSuspendProcess(); + _process!.NtSuspendProcess(); _noLogo.WriteBytes(null, new byte[] { 0x90, 0x90 }); - _process.NtResumeProcess(); + _process!.NtResumeProcess(); } @@ -493,7 +493,7 @@ public bool ReadEventFlag(uint eventFlagId) var shifted = leastSignificantDigits >> 3; var pointer = new Pointer(); - pointer.Initialize(_process, _virtualMemoryFlag.Is64Bit, calculatedPointer + shifted); + pointer.Initialize(_process!, _virtualMemoryFlag.Is64Bit, calculatedPointer + shifted); var read = pointer.ReadInt32(); if ((read & anotherThing) != 0) { diff --git a/src/SoulMemory/EldenRing/Item.cs b/src/SoulMemory/EldenRing/Item.cs index 210f2cb..6ab3511 100644 --- a/src/SoulMemory/EldenRing/Item.cs +++ b/src/SoulMemory/EldenRing/Item.cs @@ -38,8 +38,8 @@ public enum Category : uint public class Item { public Category Category; - public string GroupName; - public string Name; + public string GroupName = null!; + public string Name = null!; public uint Id; public static Item FromLookupTable(Category category, uint id) diff --git a/src/SoulMemory/Extensions.cs b/src/SoulMemory/Extensions.cs index bf78ad9..696169e 100644 --- a/src/SoulMemory/Extensions.cs +++ b/src/SoulMemory/Extensions.cs @@ -27,7 +27,7 @@ public static class Extensions { public static bool TryParseEnum(this int value, out T result) { - result = default; + result = default!; if (Enum.IsDefined(typeof(T), value)) { result = (T)(object)value; @@ -38,7 +38,7 @@ public static bool TryParseEnum(this int value, out T result) public static bool TryParseEnum(this uint value, out T result) { - result = default; + result = default!; if (Enum.IsDefined(typeof(T), value)) { result = (T)(object)value; diff --git a/src/SoulMemory/IGame.cs b/src/SoulMemory/IGame.cs index d173803..97da8c8 100644 --- a/src/SoulMemory/IGame.cs +++ b/src/SoulMemory/IGame.cs @@ -41,7 +41,7 @@ public interface IGame /// Get a reference to the game process /// Will only be a valid reference until the next call to TryRefresh /// - Process GetProcess(); + Process? GetProcess(); /// /// Get the current millis diff --git a/src/SoulMemory/Memory/Extensions.cs b/src/SoulMemory/Memory/Extensions.cs index e0aec75..105aae6 100644 --- a/src/SoulMemory/Memory/Extensions.cs +++ b/src/SoulMemory/Memory/Extensions.cs @@ -40,7 +40,7 @@ public static string GetDisplayName(this Enum enumValue) { displayName = enumValue.ToString(); } - return displayName; + return displayName!; } public static string GetDisplayDescription(this Enum enumValue) @@ -56,7 +56,7 @@ public static string GetDisplayDescription(this Enum enumValue) { displayName = enumValue.ToString(); } - return displayName; + return displayName!; } public static T GetEnumAttribute(this Enum value) where T : Attribute diff --git a/src/SoulMemory/Memory/MemoryScanner.cs b/src/SoulMemory/Memory/MemoryScanner.cs index a6a1a32..aabfa40 100644 --- a/src/SoulMemory/Memory/MemoryScanner.cs +++ b/src/SoulMemory/Memory/MemoryScanner.cs @@ -36,9 +36,9 @@ public static class MemoryScanner /// /// /// - public static ResultErr TryResolvePointers(TreeBuilder treeBuilder, Process process) + public static ResultErr TryResolvePointers(TreeBuilder treeBuilder, Process? process) { - if (process.MainModule == null) + if (process?.MainModule == null) { return Result.Err(new RefreshError(RefreshErrorReason.MainModuleNull, "Main module is null. Try running as admin.")); } @@ -135,7 +135,7 @@ public static bool TryValidatePatterns(TreeBuilder treeBuilder, List fil /// Refresh a process instance /// /// - public static ResultErr TryRefresh(ref Process process, string name, Func> initialize, Action reset) + public static ResultErr TryRefresh(ref Process? process, string name, Func> initialize, Action reset) { try { diff --git a/src/SoulMemory/Memory/Pointer.cs b/src/SoulMemory/Memory/Pointer.cs index 55c49ac..d230c25 100644 --- a/src/SoulMemory/Memory/Pointer.cs +++ b/src/SoulMemory/Memory/Pointer.cs @@ -25,7 +25,7 @@ namespace SoulMemory.Memory { public class Pointer { - public Process Process; + public Process? Process; public long BaseAddress; public List Offsets = new List(); public bool Is64Bit; @@ -53,7 +53,7 @@ public void Clear() public Pointer Copy() { var p = new Pointer(); - p.Initialize(Process, Is64Bit, BaseAddress, Offsets.ToArray()); + p.Initialize(Process!, Is64Bit, BaseAddress, Offsets.ToArray()); return p; } @@ -79,7 +79,7 @@ public Pointer CreatePointerFromAddress(long? offset = null) - private long ResolveOffsets(List offsets, StringBuilder debugStringBuilder = null) + private long ResolveOffsets(List offsets, StringBuilder? debugStringBuilder = null) { if (Process == null) { @@ -130,7 +130,7 @@ private long ResolveOffsets(List offsets, StringBuilder debugStringBuilder //Debug representation, shows in IDE - public string Path { get; private set; } + public string Path { get; private set; } = null!; public override string ToString() { @@ -167,7 +167,7 @@ private byte[] ReadMemory(long? offset, int length) } var address = ResolveOffsets(offsetsCopy); - var result = Process.ReadProcessMemory(address, length); + var result = Process!.ReadProcessMemory(address, length); if(result.IsErr) { return new byte[length]; @@ -183,7 +183,7 @@ private void WriteMemory(long? offset, byte[] bytes) offsetsCopy.Add(offset.Value); } var address = ResolveOffsets(offsetsCopy); - Process.WriteProcessMemory(address, bytes).Unwrap(); + Process!.WriteProcessMemory(address, bytes).Unwrap(); } public bool IsNullPtr() diff --git a/src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs b/src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs index d7f402d..f160479 100644 --- a/src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs +++ b/src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs @@ -71,7 +71,7 @@ public static bool TryValidatePatterns(PointerTreeBuilder.PointerTreeBuilder tre /// Refresh a process instance /// /// - public static ResultErr TryRefresh(ref System.Diagnostics.Process process, string name, Func> initialize, Action reset) + public static ResultErr TryRefresh(ref System.Diagnostics.Process? process, string name, Func> initialize, Action reset) { try { diff --git a/src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerNode.cs b/src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerNode.cs index 556ea82..37d58c9 100644 --- a/src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerNode.cs +++ b/src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerNode.cs @@ -36,7 +36,7 @@ public class PointerNode //used for pointers public long[] Offsets = new long[] { }; - public Pointer Pointer; + public Pointer Pointer = null!; public List Pointers = new List(); diff --git a/src/SoulMemory/MemoryV2/Process/IProcessWrapper.cs b/src/SoulMemory/MemoryV2/Process/IProcessWrapper.cs index aadf892..f797b36 100644 --- a/src/SoulMemory/MemoryV2/Process/IProcessWrapper.cs +++ b/src/SoulMemory/MemoryV2/Process/IProcessWrapper.cs @@ -25,10 +25,10 @@ namespace SoulMemory.MemoryV2.Process /// public interface IProcessWrapper : IMemory { - ProcessRefreshResult TryRefresh(string name, out Exception exception); - ProcessWrapperModule GetMainModule(); + ProcessRefreshResult TryRefresh(string name, out Exception? exception); + ProcessWrapperModule? GetMainModule(); List GetProcessModules(); - System.Diagnostics.Process GetProcess(); + System.Diagnostics.Process? GetProcess(); bool Is64Bit(); } } diff --git a/src/SoulMemory/MemoryV2/Process/ProcessHook.cs b/src/SoulMemory/MemoryV2/Process/ProcessHook.cs index c08c8a3..b8a4d22 100644 --- a/src/SoulMemory/MemoryV2/Process/ProcessHook.cs +++ b/src/SoulMemory/MemoryV2/Process/ProcessHook.cs @@ -20,7 +20,7 @@ namespace SoulMemory.MemoryV2.Process { public class ProcessHook : IProcessHook { - public ProcessHook(string name, IProcessWrapper processWrapper = null) + public ProcessHook(string name, IProcessWrapper? processWrapper = null) { _name = name; ProcessWrapper = processWrapper ?? new ProcessWrapper(); @@ -31,11 +31,11 @@ public ProcessHook(string name, IProcessWrapper processWrapper = null) public IProcessWrapper ProcessWrapper { get; set; } - public System.Diagnostics.Process GetProcess() => ProcessWrapper.GetProcess(); + public System.Diagnostics.Process? GetProcess() => ProcessWrapper.GetProcess(); + + public event Func> Hooked = null!; + public event Action Exited = null!; - public event Func> Hooked; - public event Action Exited; - public PointerTreeBuilder.PointerTreeBuilder PointerTreeBuilder { get; set; } = new PointerTreeBuilder.PointerTreeBuilder(); #region Refresh ================================================================================================================================================= @@ -46,7 +46,7 @@ public ProcessHook(string name, IProcessWrapper processWrapper = null) /// public ResultErr TryRefresh() { - var processRefreshResult = ProcessWrapper.TryRefresh(_name, out Exception e); + var processRefreshResult = ProcessWrapper.TryRefresh(_name, out Exception? e); switch (processRefreshResult) { case ProcessRefreshResult.ProcessNotRunning: @@ -79,12 +79,12 @@ public ResultErr TryRefresh() case ProcessRefreshResult.Exited: - Exited?.Invoke(null); + Exited?.Invoke(null!); return Result.Err(new RefreshError(RefreshErrorReason.ProcessExited)); case ProcessRefreshResult.Error: - Exited?.Invoke(e); - if (e.Message == "Access is denied") + Exited?.Invoke(e!); + if (e!.Message == "Access is denied") { return Result.Err(new RefreshError(RefreshErrorReason.AccessDenied, "Access is denied. Make sure you disable easy anti cheat and try running livesplit as admin.")); } diff --git a/src/SoulMemory/MemoryV2/Process/ProcessWrapper.cs b/src/SoulMemory/MemoryV2/Process/ProcessWrapper.cs index a47016d..3e62b00 100644 --- a/src/SoulMemory/MemoryV2/Process/ProcessWrapper.cs +++ b/src/SoulMemory/MemoryV2/Process/ProcessWrapper.cs @@ -24,21 +24,21 @@ namespace SoulMemory.MemoryV2.Process { public class ProcessWrapper : IProcessWrapper { - private System.Diagnostics.Process _process; - public System.Diagnostics.Process GetProcess() => _process; - public bool Is64Bit() => _process.Is64Bit(); - public ProcessWrapperModule GetMainModule() => _process.MainModule == null ? null : ProcessWrapperModule.FromProcessModule(_process.MainModule); + private System.Diagnostics.Process? _process; + public System.Diagnostics.Process? GetProcess() => _process; + public bool Is64Bit() => _process?.Is64Bit() ?? false; + public ProcessWrapperModule? GetMainModule() => _process?.MainModule == null ? null : ProcessWrapperModule.FromProcessModule(_process.MainModule); public List GetProcessModules() { - return (from object pm in _process.Modules select ProcessWrapperModule.FromProcessModule((ProcessModule)pm)).ToList(); + return (from object pm in _process?.Modules select ProcessWrapperModule.FromProcessModule((ProcessModule)pm)).ToList(); } /// /// Refresh attachment to a process /// /// - public ProcessRefreshResult TryRefresh(string name, out Exception exception) + public ProcessRefreshResult TryRefresh(string name, out Exception? exception) { exception = null; diff --git a/src/SoulMemory/MemoryV2/Process/ProcessWrapperModule.cs b/src/SoulMemory/MemoryV2/Process/ProcessWrapperModule.cs index a791aae..ffccfc5 100644 --- a/src/SoulMemory/MemoryV2/Process/ProcessWrapperModule.cs +++ b/src/SoulMemory/MemoryV2/Process/ProcessWrapperModule.cs @@ -21,8 +21,8 @@ namespace SoulMemory.MemoryV2.Process { public class ProcessWrapperModule { - public string ModuleName { get; set; } - public string FileName { get; set; } + public string ModuleName { get; set; } = null!; + public string FileName { get; set; } = null!; public IntPtr BaseAddress { get; set; } public int ModuleMemorySize { get; set; } diff --git a/src/SoulMemory/Native/Kernel32.cs b/src/SoulMemory/Native/Kernel32.cs index 64d96e3..d6a7ab4 100644 --- a/src/SoulMemory/Native/Kernel32.cs +++ b/src/SoulMemory/Native/Kernel32.cs @@ -62,7 +62,7 @@ public static ResultOk ReadProcessMemory(this Process process, long addr return Result.Ok(buffer); } - public static ResultOk ReadMemory(this Process process, long address, [CallerMemberName] string callerMemberName = null) + public static ResultOk ReadMemory(this Process process, long address, [CallerMemberName] string? callerMemberName = null) { if (process == null) { @@ -82,7 +82,7 @@ public static ResultOk ReadMemory(this Process process, long address, [Cal //var test = (T)Convert.ChangeType(bytes, typeof(T)); } - public static Result WriteMemory(this Process process, long address, T data, [CallerMemberName] string callerMemberName = null) + public static Result WriteMemory(this Process process, long address, T data, [CallerMemberName] string? callerMemberName = null) { if (process == null) { @@ -108,7 +108,7 @@ public static Result WriteMemory(this Process process, long address, T data, return Result.Ok(); } - public static string ReadAsciiString(this Process process, long address, int initialBufferSize = 20, [CallerMemberName] string callerMemberName = null) + public static string ReadAsciiString(this Process process, long address, int initialBufferSize = 20, [CallerMemberName] string? callerMemberName = null) { var endByte = (byte)'\0'; var bytes = new byte[0]; diff --git a/src/SoulMemory/Parameters/BaseParam.cs b/src/SoulMemory/Parameters/BaseParam.cs index c0435f3..fd1d0a0 100644 --- a/src/SoulMemory/Parameters/BaseParam.cs +++ b/src/SoulMemory/Parameters/BaseParam.cs @@ -100,7 +100,7 @@ protected BaseParam(Pointer basePointer, ByteArrayMemory memory, long offset, Pa public bool WriteEnabled { get; set; } = false; - protected void WriteParamField(ref T field, T value, [CallerMemberName] string propertyName = null) + protected void WriteParamField(ref T field, T value, [CallerMemberName] string? propertyName = null) { if (EqualityComparer.Default.Equals(field, value)) { @@ -153,7 +153,7 @@ protected void WriteParamField(ref T field, T value, [CallerMemberName] strin #region Bitfields ====================================================================================================================================================== - protected T GetbitfieldValue(T field, [CallerMemberName] string propertyName = null) + protected T GetbitfieldValue(T field, [CallerMemberName] string? propertyName = null) { var bitfield = _paramBitfieldPropertyCache.First(i => i.propertyInfo.Name == propertyName); var currentValue = (long)Convert.ChangeType(field, typeof(long)); @@ -173,7 +173,7 @@ protected T GetbitfieldValue(T field, [CallerMemberName] string propertyName return (T)Convert.ChangeType(result, typeof(T)); } - protected void SetBitfieldValue(ref T field, T value, [CallerMemberName] string propertyName = null) + protected void SetBitfieldValue(ref T field, T value, [CallerMemberName] string? propertyName = null) { var bitfield = _paramBitfieldPropertyCache.First(i => i.propertyInfo.Name == propertyName); var currentValue = (long)Convert.ChangeType(field, typeof(long)); diff --git a/src/SoulMemory/Parameters/ParamClassGenerator.cs b/src/SoulMemory/Parameters/ParamClassGenerator.cs index 666e2ac..61a2ebb 100644 --- a/src/SoulMemory/Parameters/ParamClassGenerator.cs +++ b/src/SoulMemory/Parameters/ParamClassGenerator.cs @@ -142,7 +142,7 @@ private static List ParseFromXml(string xml) xmlDoc.LoadXml(xml); var fieldNodes = xmlDoc.GetChildNodeByName("PARAMDEF").GetChildNodeByName("Fields"); - var fieldDefinitions = fieldNodes.ChildNodes.Enumerate().Select(i => i.Attributes?[0].InnerText).ToList(); + var fieldDefinitions = fieldNodes.ChildNodes.Enumerate().Select(i => i.Attributes?[0].InnerText!).ToList(); var preParsedFields = fieldDefinitions.Select(PreParseField).ToList(); return ParseFields(preParsedFields); } @@ -187,7 +187,7 @@ private static PreParsedField PreParseField(string fieldLine) private static List ParseFields(List preParsedFields) { var result = new List(); - Bitfield currentBitfield = null; + Bitfield? currentBitfield = null; var offset = 0; for(int i = 0; i < preParsedFields.Count; i++) diff --git a/src/SoulMemory/RefreshError.cs b/src/SoulMemory/RefreshError.cs index f960ba5..6627159 100644 --- a/src/SoulMemory/RefreshError.cs +++ b/src/SoulMemory/RefreshError.cs @@ -44,8 +44,8 @@ public RefreshError(RefreshErrorReason reason, Exception exception) } public RefreshErrorReason Reason { get; } - public string Message { get; } - public Exception Exception { get; } + public string Message { get; } = null!; + public Exception? Exception { get; } = null!; public override string ToString() { diff --git a/src/SoulMemory/Result.cs b/src/SoulMemory/Result.cs index 3e16781..102eb7e 100644 --- a/src/SoulMemory/Result.cs +++ b/src/SoulMemory/Result.cs @@ -104,7 +104,7 @@ protected ResultErr(bool isOk, TErr err) private ResultErr() { IsOk = true; - _err = default; + _err = default!; } private ResultErr(TErr err) @@ -140,7 +140,7 @@ public TErr GetErr() { if (IsOk) { - return default; + return default!; } return _err; } @@ -169,7 +169,7 @@ protected ResultOk(bool isOk, TOk ok) private ResultOk() { IsOk = false; - _ok = default; + _ok = default!; } private ResultOk(TOk ok) @@ -193,7 +193,7 @@ public static implicit operator bool(ResultOk resultOk) return resultOk.IsOk; } - public TOk Unwrap([CallerMemberName] string callerMemberName = null) + public TOk Unwrap([CallerMemberName] string? callerMemberName = null) { if (!IsOk) { @@ -230,13 +230,13 @@ private Result(TOk ok) { IsOk = true; _ok = ok; - _err = default; + _err = default!; } private Result(TErr err) { IsOk = false; - _ok = default; + _ok = default!; _err = err; } @@ -254,11 +254,11 @@ public static implicit operator Result(ResultOk resultOk) { if (resultOk.IsOk) { - return new Result(true, resultOk.Unwrap(), default); + return new Result(true, resultOk.Unwrap(), default!); } else { - return new Result(false, default, default); + return new Result(false, default!, default!); } } @@ -266,11 +266,11 @@ public static implicit operator Result(ResultErr resultErr) { if (resultErr.IsOk) { - return new Result(true, default, default); + return new Result(true, default!, default!); } else { - return new Result(false, default, resultErr.GetErr()); + return new Result(false, default!, resultErr.GetErr()); } } @@ -292,7 +292,7 @@ public TErr GetErr() { if (IsOk) { - return default; + return default!; } return _err; } diff --git a/src/SoulMemory/Sekiro/Sekiro.cs b/src/SoulMemory/Sekiro/Sekiro.cs index 493bf1a..f184489 100644 --- a/src/SoulMemory/Sekiro/Sekiro.cs +++ b/src/SoulMemory/Sekiro/Sekiro.cs @@ -25,7 +25,7 @@ namespace SoulMemory.Sekiro { public class Sekiro : IGame { - private Process _process; + private Process? _process; private readonly Pointer _eventFlagMan = new Pointer(); private readonly Pointer _fieldArea = new Pointer(); private readonly Pointer _worldChrManImp = new Pointer(); @@ -43,7 +43,7 @@ public class Sekiro : IGame #region Refresh/init/reset ================================================================================================================================ - public Process GetProcess() => _process; + public Process? GetProcess() => _process; public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, "sekiro", InitPointers, ResetPointers); @@ -291,7 +291,7 @@ private ResultOk GetEventFlagAddress(uint eventFlagId) var count = vector.ReadByte(i * 0x38 + 0x20); var index = 0; var found = false; - Pointer worldInfoBlockVector = null; + Pointer? worldInfoBlockVector = null; if (count >= 1) { @@ -318,7 +318,7 @@ private ResultOk GetEventFlagAddress(uint eventFlagId) if (found) { - flagWorldBlockInfoCategory = worldInfoBlockVector.ReadInt32((index * 0xb0) + 0x20); + flagWorldBlockInfoCategory = worldInfoBlockVector!.ReadInt32((index * 0xb0) + 0x20); break; } } @@ -339,7 +339,7 @@ private ResultOk GetEventFlagAddress(uint eventFlagId) //Whats with this name... -_- var resultPointerAddress = new Pointer(); - resultPointerAddress.Initialize(ptr.Process, ptr.Is64Bit, (eventFlagIdDiv1000 << 4) + ptr.GetAddress() + flagWorldBlockInfoCategory * 0xa8, 0x0); + resultPointerAddress.Initialize(ptr.Process!, ptr.Is64Bit, (eventFlagIdDiv1000 << 4) + ptr.GetAddress() + flagWorldBlockInfoCategory * 0xa8, 0x0); if (resultPointerAddress.IsNullPtr()) { return Result.Err(); diff --git a/src/SoulMemory/SoulMemory.csproj b/src/SoulMemory/SoulMemory.csproj index 885a1b0..cbd6b34 100644 --- a/src/SoulMemory/SoulMemory.csproj +++ b/src/SoulMemory/SoulMemory.csproj @@ -2,6 +2,7 @@ netstandard2.0 13 + enable Library true x64 @@ -76,12 +77,10 @@ \ - - diff --git a/src/SoulMemory/soulmods/Soulmods.cs b/src/SoulMemory/soulmods/Soulmods.cs index 41619cc..965995d 100644 --- a/src/SoulMemory/soulmods/Soulmods.cs +++ b/src/SoulMemory/soulmods/Soulmods.cs @@ -42,7 +42,7 @@ public struct MorphemeMessageBuffer [AttributeUsage(AttributeTargets.Method, Inherited = false)] public class RustCallAttribute : Attribute { - public string MethodName { get; set; } + public string MethodName { get; set; } = null!; } public static class Soulmods @@ -76,7 +76,7 @@ public static bool Inject(Process process) - private static List<(string name, long address)> _soulmodsMethods; + private static List<(string name, long address)> _soulmodsMethods = null!; public static TSized RustCall(this Process process, string function, TSized? parameter = null) where TSized : struct { if (_soulmodsMethods == null) From 58c31b6bc39ec214d7db41e5e166a882ea164e7c Mon Sep 17 00:00:00 2001 From: Frank van der Stam Date: Fri, 17 Jan 2025 15:39:18 +0100 Subject: [PATCH 03/28] enable nullable in soulsplitter.csproj --- src/SoulSplitter/Extensions.cs | 17 ++- src/SoulSplitter/Hotkeys/GlobalHotKey.cs | 6 +- src/SoulSplitter/SoulComponent.cs | 12 +- src/SoulSplitter/SoulSplitter.csproj | 2 + .../Splits/DarkSouls1/Attribute.cs | 25 ++-- .../Splits/DarkSouls1/BonfireState.cs | 27 ++-- .../Splits/DarkSouls1/ItemState.cs | 23 ++-- src/SoulSplitter/Splits/DarkSouls1/Split.cs | 8 +- .../Splits/DarkSouls2/Attribute.cs | 25 ++-- .../Splits/DarkSouls2/BossKill.cs | 25 ++-- src/SoulSplitter/Splits/DarkSouls2/Split.cs | 6 +- .../Splits/DarkSouls3/Attribute.cs | 25 ++-- src/SoulSplitter/Splits/DarkSouls3/Split.cs | 4 +- src/SoulSplitter/Splits/EldenRing/Split.cs | 4 +- src/SoulSplitter/Splits/FlatSplit.cs | 2 +- src/SoulSplitter/Splits/Sekiro/Attribute.cs | 25 ++-- src/SoulSplitter/Splits/Sekiro/Split.cs | 4 +- src/SoulSplitter/Splitters/BaseSplitter.cs | 2 +- .../Splitters/DarkSouls1Splitter.cs | 10 +- .../Splitters/DarkSouls2Splitter.cs | 4 +- .../Splitters/DarkSouls3Splitter.cs | 8 +- .../Splitters/EldenRingSplitter.cs | 10 +- src/SoulSplitter/Splitters/SekiroSplitter.cs | 6 +- .../UI/DarkSouls1/DarkSouls1ViewModel.cs | 22 ++-- .../DarkSouls1/DarkSouls1ViewModelRefactor.cs | 14 +- .../UI/DarkSouls2/DarkSouls2Control.xaml.cs | 2 +- .../UI/DarkSouls2/DarkSouls2ViewModel.cs | 57 ++++---- .../UI/DarkSouls2/HierarchicalViewModel.cs | 65 +++------ .../UI/DarkSouls3/DarkSouls3ViewModel.cs | 14 +- .../UI/EldenRing/BossViewModel.cs | 34 ++--- .../UI/EldenRing/EldenRingControl.xaml.cs | 2 +- .../UI/EldenRing/EldenRingViewModel.cs | 124 ++++++++---------- .../UI/EldenRing/GraceViewModel.cs | 33 ++--- .../UI/EldenRing/ItemPickupViewModel.cs | 29 ++-- .../UI/EldenRing/KnownFlagViewModel.cs | 29 ++-- .../UI/EldenRing/PositionViewModel.cs | 36 ++--- .../UI/EldenRing/SplitViewModel.cs | 65 +++------ src/SoulSplitter/UI/ErrorViewModel.cs | 25 ++-- src/SoulSplitter/UI/Generic/BaseViewModel.cs | 61 ++++----- .../UI/Generic/BoolDescriptionViewModel.cs | 23 +--- .../UI/Generic/EnumFlagViewModel.cs | 33 ++--- .../UI/Generic/FilteredComboBox.cs | 2 +- .../UI/Generic/FlagDescription.cs | 25 ++-- .../UI/Generic/FlagTrackerViewModel.cs | 94 ++++++------- .../UI/Generic/HierarchicalViewModel.cs | 97 +++++--------- .../Generic/ICustomNotifyPropertyChanged.cs | 25 ++++ src/SoulSplitter/UI/Generic/RelayCommand.cs | 20 ++- .../UI/Generic/SplitTemplateSelector.cs | 4 +- src/SoulSplitter/UI/Generic/VectorSize.cs | 26 ++-- src/SoulSplitter/UI/MainViewModel.cs | 122 +++++++---------- src/SoulSplitter/UI/Sekiro/SekiroViewModel.cs | 10 +- .../UIv2/SplitSettingsControl.xaml.cs | 80 +++++------ .../ViewModels/Games/ArmoredCore6ViewModel.cs | 6 +- src/cli/Program.cs | 1 - .../MemoryV2/ProcessHookTests.cs | 14 +- 55 files changed, 622 insertions(+), 852 deletions(-) create mode 100644 src/SoulSplitter/UI/Generic/ICustomNotifyPropertyChanged.cs diff --git a/src/SoulSplitter/Extensions.cs b/src/SoulSplitter/Extensions.cs index 7630050..0c22891 100644 --- a/src/SoulSplitter/Extensions.cs +++ b/src/SoulSplitter/Extensions.cs @@ -14,9 +14,12 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . +using System.Collections.Generic; using System.IO; +using System.Runtime.CompilerServices; using System.Xml; using System.Xml.Serialization; +using SoulSplitter.UI.Generic; namespace SoulSplitter { @@ -26,7 +29,7 @@ public static T DeserializeXml(this string xml) where T : class { if (string.IsNullOrWhiteSpace(xml)) { - return default(T); + return default(T)!; } var serializer = new XmlSerializer(typeof(T)); @@ -58,5 +61,17 @@ public static string SerializeXml(this object obj) return stream.ToString(); } } + + public static bool SetField(this ICustomNotifyPropertyChanged viewModel, ref TField field, TField value, [CallerMemberName] string? propertyName = null) + { + if (EqualityComparer.Default.Equals(field, value)) + { + return false; + } + + field = value; + viewModel.InvokePropertyChanged(propertyName!); + return true; + } } } diff --git a/src/SoulSplitter/Hotkeys/GlobalHotKey.cs b/src/SoulSplitter/Hotkeys/GlobalHotKey.cs index f87c0a6..37b58a5 100644 --- a/src/SoulSplitter/Hotkeys/GlobalHotKey.cs +++ b/src/SoulSplitter/Hotkeys/GlobalHotKey.cs @@ -28,7 +28,7 @@ public static class GlobalHotKey { private static readonly List<(int id, ModifierKeys modifier, Key key, Action action)> Hotkeys = new List<(int, ModifierKeys, Key, Action)>(); private static readonly ManualResetEvent WindowReadyEvent = new ManualResetEvent(false); - public static volatile HotkeyForm HotkeyForm; + public static volatile HotkeyForm? HotkeyForm; public static volatile IntPtr Handle; private static int _currentId; @@ -70,7 +70,7 @@ public static int RegisterHotKey(ModifierKeys modifier, Key key, Action action) (uint)virtualKeyCode); }); - HotkeyForm.Invoke(register); + HotkeyForm?.Invoke(register); Hotkeys.Add((id, modifier, key, action)); return id; } @@ -87,7 +87,7 @@ public static void UnregisterHotKey(int id) User32.UnregisterHotkey(Handle, id); }); - HotkeyForm.Invoke(unregister); + HotkeyForm?.Invoke(unregister); Hotkeys.Remove(Hotkeys.Find(i => i.id == id)); } } diff --git a/src/SoulSplitter/SoulComponent.cs b/src/SoulSplitter/SoulComponent.cs index c5577eb..7885e79 100644 --- a/src/SoulSplitter/SoulComponent.cs +++ b/src/SoulSplitter/SoulComponent.cs @@ -41,12 +41,12 @@ public class SoulComponent : IComponent private LiveSplitState _liveSplitState; - private ISplitter _splitter = null; - private IGame _game = null; + private ISplitter? _splitter = null!; + private IGame _game = null!; private DateTime _lastFailedRefresh = DateTime.MinValue; private bool _previousBitBlt = false; public readonly MainWindow MainWindow; - public SoulComponent(LiveSplitState state = null, bool shouldThrowOnInvalidInstallation = true) + public SoulComponent(LiveSplitState state, bool shouldThrowOnInvalidInstallation = true) { if (shouldThrowOnInvalidInstallation) { @@ -235,7 +235,7 @@ private void ImportXml() try { var xml = MainWindow.MainViewModel.ImportXml; - MainWindow.MainViewModel.ImportXml = null; //Don't get stuck in an import loop + MainWindow.MainViewModel.ImportXml = null!; //Don't get stuck in an import loop var xmlDocument = new XmlDocument(); xmlDocument.LoadXml(xml); @@ -296,7 +296,7 @@ public void SetSettings(XmlNode settings) }); } - private Button _customShowSettingsButton; + private Button? _customShowSettingsButton; public System.Windows.Forms.Control GetSettingsControl(LayoutMode mode) { var stackTrace = new StackTrace(); @@ -335,7 +335,7 @@ private void SelectGameFromLiveSplitState(LiveSplitState s) { MainWindow.Dispatcher.Invoke(() => { - if (!string.IsNullOrWhiteSpace(s?.Run?.GameName)) + if (!string.IsNullOrWhiteSpace(s.Run.GameName)) { var name = s.Run.GameName.ToLower().Replace(" ", ""); switch (name) diff --git a/src/SoulSplitter/SoulSplitter.csproj b/src/SoulSplitter/SoulSplitter.csproj index 397d044..f809b0f 100644 --- a/src/SoulSplitter/SoulSplitter.csproj +++ b/src/SoulSplitter/SoulSplitter.csproj @@ -2,6 +2,8 @@ net481 x64 + 13 + enable true True SoulSplitter diff --git a/src/SoulSplitter/Splits/DarkSouls1/Attribute.cs b/src/SoulSplitter/Splits/DarkSouls1/Attribute.cs index ae8b5ea..12ee9dc 100644 --- a/src/SoulSplitter/Splits/DarkSouls1/Attribute.cs +++ b/src/SoulSplitter/Splits/DarkSouls1/Attribute.cs @@ -14,28 +14,27 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -using System.Collections.Generic; using System.ComponentModel; -using System.Runtime.CompilerServices; using System.Xml.Serialization; +using SoulSplitter.UI.Generic; namespace SoulSplitter.Splits.DarkSouls1 { [XmlType(Namespace = "DarkSouls1")] - public class Attribute : INotifyPropertyChanged + public class Attribute : ICustomNotifyPropertyChanged { [XmlElement(Namespace = "DarkSouls1")] public SoulMemory.DarkSouls1.Attribute AttributeType { get => _attributeType; - set => SetField(ref _attributeType, value); + set => this.SetField(ref _attributeType, value); } private SoulMemory.DarkSouls1.Attribute _attributeType; public int Level { get => _level; - set => SetField(ref _level, value); + set => this.SetField(ref _level, value); } private int _level; @@ -44,19 +43,13 @@ public override string ToString() return $"{AttributeType} {Level}"; } - #region INotifyPropertyChanged - private bool SetField(ref T field, T value, [CallerMemberName] string propertyName = null) - { - if (EqualityComparer.Default.Equals(field, value)) return false; - field = value; - OnPropertyChanged(propertyName ?? ""); - return true; - } + #region ICustomNotifyPropertyChanged + + public event PropertyChangedEventHandler? PropertyChanged; - public event PropertyChangedEventHandler PropertyChanged; - private void OnPropertyChanged([CallerMemberName] string propertyName = null) + public void InvokePropertyChanged(string propertyName) { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName ?? "")); + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } #endregion diff --git a/src/SoulSplitter/Splits/DarkSouls1/BonfireState.cs b/src/SoulSplitter/Splits/DarkSouls1/BonfireState.cs index 63a1baa..a73c5cb 100644 --- a/src/SoulSplitter/Splits/DarkSouls1/BonfireState.cs +++ b/src/SoulSplitter/Splits/DarkSouls1/BonfireState.cs @@ -14,50 +14,43 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -using System.Collections.Generic; using System.ComponentModel; -using System.Runtime.CompilerServices; using System.Xml.Serialization; using SoulMemory.DarkSouls1; using SoulMemory.Memory; +using SoulSplitter.UI.Generic; namespace SoulSplitter.Splits.DarkSouls1 { [XmlType(Namespace = "DarkSouls1")] - public class BonfireState : INotifyPropertyChanged + public class BonfireState : ICustomNotifyPropertyChanged { public Bonfire? Bonfire { get => _bonfire; - set => SetField(ref _bonfire, value); + set => this.SetField(ref _bonfire, value); } private Bonfire? _bonfire; public SoulMemory.DarkSouls1.BonfireState State { get => _state; - set => SetField(ref _state, value); + set => this.SetField(ref _state, value); } private SoulMemory.DarkSouls1.BonfireState _state; public override string ToString() { - return $"{Bonfire.GetDisplayName()} {State.GetDisplayName()}"; + return $"{Bonfire?.GetDisplayName()} {State.GetDisplayName()}"; } - #region INotifyPropertyChanged - private bool SetField(ref T field, T value, [CallerMemberName] string propertyName = null) - { - if (EqualityComparer.Default.Equals(field, value)) return false; - field = value; - OnPropertyChanged(propertyName ?? ""); - return true; - } + #region ICustomNotifyPropertyChanged + + public event PropertyChangedEventHandler? PropertyChanged; - public event PropertyChangedEventHandler PropertyChanged; - private void OnPropertyChanged([CallerMemberName] string propertyName = null) + public void InvokePropertyChanged(string propertyName) { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName ?? "")); + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } #endregion diff --git a/src/SoulSplitter/Splits/DarkSouls1/ItemState.cs b/src/SoulSplitter/Splits/DarkSouls1/ItemState.cs index 12164f8..cd19a73 100644 --- a/src/SoulSplitter/Splits/DarkSouls1/ItemState.cs +++ b/src/SoulSplitter/Splits/DarkSouls1/ItemState.cs @@ -14,22 +14,21 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -using System.Collections.Generic; using System.ComponentModel; using System.Linq; -using System.Runtime.CompilerServices; using System.Xml.Serialization; using SoulMemory.DarkSouls1; +using SoulSplitter.UI.Generic; namespace SoulSplitter.Splits.DarkSouls1 { [XmlType(Namespace = "DarkSouls1")] - public class ItemState : INotifyPropertyChanged + public class ItemState : ICustomNotifyPropertyChanged { public ItemType? ItemType { get => _itemType; - set => SetField(ref _itemType, value); + set => this.SetField(ref _itemType, value); } private ItemType? _itemType; @@ -40,19 +39,13 @@ public override string ToString() return $"{ItemString}"; } - #region INotifyPropertyChanged - private bool SetField(ref T field, T value, [CallerMemberName] string propertyName = null) - { - if (EqualityComparer.Default.Equals(field, value)) return false; - field = value; - OnPropertyChanged(propertyName ?? ""); - return true; - } + #region ICustomNotifyPropertyChanged + + public event PropertyChangedEventHandler? PropertyChanged; - public event PropertyChangedEventHandler PropertyChanged; - private void OnPropertyChanged([CallerMemberName] string propertyName = null) + public void InvokePropertyChanged(string propertyName) { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName ?? "")); + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } #endregion diff --git a/src/SoulSplitter/Splits/DarkSouls1/Split.cs b/src/SoulSplitter/Splits/DarkSouls1/Split.cs index 266684b..f7e756e 100644 --- a/src/SoulSplitter/Splits/DarkSouls1/Split.cs +++ b/src/SoulSplitter/Splits/DarkSouls1/Split.cs @@ -71,10 +71,10 @@ public Split(TimingType timingType, SplitType splitType, object split) public readonly SplitType SplitType; public readonly Boss Boss; - public readonly Attribute Attribute; - public readonly ItemState ItemState; - public readonly BonfireState BonfireState; - public readonly VectorSize Position; + public readonly Attribute Attribute = null!; + public readonly ItemState ItemState = null!; + public readonly BonfireState BonfireState = null!; + public readonly VectorSize Position = null!; public readonly uint Flag; public readonly KnownFlag KnownFlag; diff --git a/src/SoulSplitter/Splits/DarkSouls2/Attribute.cs b/src/SoulSplitter/Splits/DarkSouls2/Attribute.cs index 0d5b555..e114b37 100644 --- a/src/SoulSplitter/Splits/DarkSouls2/Attribute.cs +++ b/src/SoulSplitter/Splits/DarkSouls2/Attribute.cs @@ -14,28 +14,27 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -using System.Collections.Generic; using System.ComponentModel; -using System.Runtime.CompilerServices; using System.Xml.Serialization; +using SoulSplitter.UI.Generic; namespace SoulSplitter.Splits.DarkSouls2 { [XmlType(Namespace = "DarkSouls2")] - public class Attribute : INotifyPropertyChanged + public class Attribute : ICustomNotifyPropertyChanged { [XmlElement(Namespace = "DarkSouls2")] public SoulMemory.DarkSouls2.Attribute AttributeType { get => _attributeType; - set => SetField(ref _attributeType, value); + set => this.SetField(ref _attributeType, value); } private SoulMemory.DarkSouls2.Attribute _attributeType; public int Level { get => _level; - set => SetField(ref _level, value); + set => this.SetField(ref _level, value); } private int _level; @@ -44,19 +43,13 @@ public override string ToString() return $"{AttributeType} {Level}"; } - #region INotifyPropertyChanged - private bool SetField(ref T field, T value, [CallerMemberName] string propertyName = null) - { - if (EqualityComparer.Default.Equals(field, value)) return false; - field = value; - OnPropertyChanged(propertyName ?? ""); - return true; - } + #region ICustomNotifyPropertyChanged + + public event PropertyChangedEventHandler? PropertyChanged; - public event PropertyChangedEventHandler PropertyChanged; - private void OnPropertyChanged([CallerMemberName] string propertyName = null) + public void InvokePropertyChanged(string propertyName) { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName ?? "")); + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } #endregion diff --git a/src/SoulSplitter/Splits/DarkSouls2/BossKill.cs b/src/SoulSplitter/Splits/DarkSouls2/BossKill.cs index 104f6af..9623f6d 100644 --- a/src/SoulSplitter/Splits/DarkSouls2/BossKill.cs +++ b/src/SoulSplitter/Splits/DarkSouls2/BossKill.cs @@ -14,29 +14,28 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -using System.Collections.Generic; using System.ComponentModel; -using System.Runtime.CompilerServices; using System.Xml.Serialization; using SoulMemory.DarkSouls2; +using SoulSplitter.UI.Generic; namespace SoulSplitter.Splits.DarkSouls2 { [XmlType(Namespace = "DarkSouls2")] - public class BossKill : INotifyPropertyChanged + public class BossKill : ICustomNotifyPropertyChanged { [XmlElement(Namespace = "DarkSouls2")] public BossType BossType { get => _bossType; - set => SetField(ref _bossType, value); + set => this.SetField(ref _bossType, value); } private BossType _bossType; public int Count { get => _count; - set => SetField(ref _count, value); + set => this.SetField(ref _count, value); } private int _count = 1; @@ -44,20 +43,14 @@ public override string ToString() { return $"{BossType} {Count}"; } + + #region ICustomNotifyPropertyChanged - #region INotifyPropertyChanged - private bool SetField(ref T field, T value, [CallerMemberName] string propertyName = null) - { - if (EqualityComparer.Default.Equals(field, value)) return false; - field = value; - OnPropertyChanged(propertyName ?? ""); - return true; - } + public event PropertyChangedEventHandler? PropertyChanged; - public event PropertyChangedEventHandler PropertyChanged; - private void OnPropertyChanged([CallerMemberName] string propertyName = null) + public void InvokePropertyChanged(string propertyName) { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName ?? "")); + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } #endregion diff --git a/src/SoulSplitter/Splits/DarkSouls2/Split.cs b/src/SoulSplitter/Splits/DarkSouls2/Split.cs index afb3851..aa2722f 100644 --- a/src/SoulSplitter/Splits/DarkSouls2/Split.cs +++ b/src/SoulSplitter/Splits/DarkSouls2/Split.cs @@ -54,9 +54,9 @@ public Split(TimingType timingType, DarkSouls2SplitType darkSouls2SplitType, obj public readonly DarkSouls2SplitType SplitType; public readonly uint Flag; - public readonly Vector3f Position; - public readonly BossKill BossKill; - public readonly Attribute Attribute; + public readonly Vector3f Position = null!; + public readonly BossKill BossKill = null!; + public readonly Attribute Attribute = null!; /// /// Set to true when split conditions are met. Does not trigger a split until timing conditions are met diff --git a/src/SoulSplitter/Splits/DarkSouls3/Attribute.cs b/src/SoulSplitter/Splits/DarkSouls3/Attribute.cs index 0df89bf..3efe48f 100644 --- a/src/SoulSplitter/Splits/DarkSouls3/Attribute.cs +++ b/src/SoulSplitter/Splits/DarkSouls3/Attribute.cs @@ -14,28 +14,27 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -using System.Collections.Generic; using System.ComponentModel; -using System.Runtime.CompilerServices; using System.Xml.Serialization; +using SoulSplitter.UI.Generic; namespace SoulSplitter.Splits.DarkSouls3 { [XmlType(Namespace = "DarkSouls3")] - public class Attribute : INotifyPropertyChanged + public class Attribute : ICustomNotifyPropertyChanged { [XmlElement(Namespace = "DarkSouls3")] public SoulMemory.DarkSouls3.Attribute AttributeType { get => _attributeType; - set => SetField(ref _attributeType, value); + set => this.SetField(ref _attributeType, value); } private SoulMemory.DarkSouls3.Attribute _attributeType; public int Level { get => _level; - set => SetField(ref _level, value); + set => this.SetField(ref _level, value); } private int _level; @@ -44,19 +43,13 @@ public override string ToString() return $"{AttributeType} {Level}"; } - #region INotifyPropertyChanged - private bool SetField(ref T field, T value, [CallerMemberName] string propertyName = null) - { - if (EqualityComparer.Default.Equals(field, value)) return false; - field = value; - OnPropertyChanged(propertyName ?? ""); - return true; - } + #region ICustomNotifyPropertyChanged + + public event PropertyChangedEventHandler? PropertyChanged; - public event PropertyChangedEventHandler PropertyChanged; - private void OnPropertyChanged([CallerMemberName] string propertyName = null) + public void InvokePropertyChanged(string propertyName) { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName ?? "")); + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } #endregion diff --git a/src/SoulSplitter/Splits/DarkSouls3/Split.cs b/src/SoulSplitter/Splits/DarkSouls3/Split.cs index e62fe34..a926467 100644 --- a/src/SoulSplitter/Splits/DarkSouls3/Split.cs +++ b/src/SoulSplitter/Splits/DarkSouls3/Split.cs @@ -67,8 +67,8 @@ public Split(TimingType timingType, SplitType darkSouls3SplitType, object split) public readonly Boss Boss; public readonly Bonfire Bonfire; public readonly ItemPickup ItemPickup; - public readonly Attribute Attribute; - public readonly VectorSize Position; + public readonly Attribute Attribute = null!; + public readonly VectorSize Position = null!; public readonly uint Flag; /// diff --git a/src/SoulSplitter/Splits/EldenRing/Split.cs b/src/SoulSplitter/Splits/EldenRing/Split.cs index b34a2b7..b8f771b 100644 --- a/src/SoulSplitter/Splits/EldenRing/Split.cs +++ b/src/SoulSplitter/Splits/EldenRing/Split.cs @@ -73,8 +73,8 @@ public Split(TimingType timingType, EldenRingSplitType eldenRingSplitType, objec public readonly Grace Grace; public readonly ItemPickup ItemPickup; public readonly KnownFlag KnownFlag; - public readonly Item Item; - public readonly Position Position; + public readonly Item Item = null!; + public readonly Position Position = null!; public readonly uint Flag; /// diff --git a/src/SoulSplitter/Splits/FlatSplit.cs b/src/SoulSplitter/Splits/FlatSplit.cs index 61c5049..16e33e4 100644 --- a/src/SoulSplitter/Splits/FlatSplit.cs +++ b/src/SoulSplitter/Splits/FlatSplit.cs @@ -22,6 +22,6 @@ public class FlatSplit { public TimingType TimingType; public SplitType SplitType; - public object Split; + public object Split = null!; } } diff --git a/src/SoulSplitter/Splits/Sekiro/Attribute.cs b/src/SoulSplitter/Splits/Sekiro/Attribute.cs index ac4c6fe..1562d13 100644 --- a/src/SoulSplitter/Splits/Sekiro/Attribute.cs +++ b/src/SoulSplitter/Splits/Sekiro/Attribute.cs @@ -14,28 +14,27 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -using System.Collections.Generic; using System.ComponentModel; -using System.Runtime.CompilerServices; using System.Xml.Serialization; +using SoulSplitter.UI.Generic; namespace SoulSplitter.Splits.Sekiro { [XmlType(Namespace = "Sekiro")] - public class Attribute : INotifyPropertyChanged + public class Attribute : ICustomNotifyPropertyChanged { [XmlElement(Namespace = "Sekiro")] public SoulMemory.Sekiro.Attribute AttributeType { get => _attributeType; - set => SetField(ref _attributeType, value); + set => this.SetField(ref _attributeType, value); } private SoulMemory.Sekiro.Attribute _attributeType; public int Level { get => _level; - set => SetField(ref _level, value); + set => this.SetField(ref _level, value); } private int _level; @@ -44,19 +43,13 @@ public override string ToString() return $"{AttributeType} {Level}"; } - #region INotifyPropertyChanged - private bool SetField(ref T field, T value, [CallerMemberName] string propertyName = null) - { - if (EqualityComparer.Default.Equals(field, value)) return false; - field = value; - OnPropertyChanged(propertyName ?? ""); - return true; - } + #region ICustomNotifyPropertyChanged + + public event PropertyChangedEventHandler? PropertyChanged; - public event PropertyChangedEventHandler PropertyChanged; - private void OnPropertyChanged([CallerMemberName] string propertyName = null) + public void InvokePropertyChanged(string propertyName) { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName ?? "")); + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } #endregion diff --git a/src/SoulSplitter/Splits/Sekiro/Split.cs b/src/SoulSplitter/Splits/Sekiro/Split.cs index d06122d..97f2f21 100644 --- a/src/SoulSplitter/Splits/Sekiro/Split.cs +++ b/src/SoulSplitter/Splits/Sekiro/Split.cs @@ -63,8 +63,8 @@ public Split(TimingType timingType, SplitType splitType, object split) public readonly Boss Boss; public readonly Idol Idol; public readonly uint Flag; - public readonly VectorSize Position; - public readonly Attribute Attribute; + public readonly VectorSize Position = null!; + public readonly Attribute Attribute = null!; /// /// Set to true when split conditions are met. Does not trigger a split until timing conditions are met diff --git a/src/SoulSplitter/Splitters/BaseSplitter.cs b/src/SoulSplitter/Splitters/BaseSplitter.cs index 09ecc54..5278478 100644 --- a/src/SoulSplitter/Splitters/BaseSplitter.cs +++ b/src/SoulSplitter/Splitters/BaseSplitter.cs @@ -26,7 +26,7 @@ public abstract class BaseSplitter : ISplitter protected readonly IGame _game; protected readonly LiveSplitState _liveSplitState; protected readonly TimerModel _timerModel; - protected MainViewModel _mainViewModel; + protected MainViewModel _mainViewModel = null!; protected int _inGameTime; protected TimerState _timerState = TimerState.WaitForStart; diff --git a/src/SoulSplitter/Splitters/DarkSouls1Splitter.cs b/src/SoulSplitter/Splitters/DarkSouls1Splitter.cs index 4b8c6ed..ba7c464 100644 --- a/src/SoulSplitter/Splitters/DarkSouls1Splitter.cs +++ b/src/SoulSplitter/Splitters/DarkSouls1Splitter.cs @@ -111,7 +111,7 @@ private void OnReset(object sender, TimerPhase timerPhase) private readonly ITimerModel _timerModel; private int _inGameTime; private TimerState _timerState = TimerState.WaitForStart; - private string _savefilePath = null; + private string? _savefilePath = null; private int _saveSlot = -1; private int _previousIgt = 0; private bool _previousCredits = false; @@ -185,7 +185,7 @@ private void UpdateTimer() ) { Debug.WriteLine("Read savefile time"); - var saveFileTime = _darkSouls1.GetSaveFileGameTimeMilliseconds(_savefilePath, _saveSlot); + var saveFileTime = _darkSouls1.GetSaveFileGameTimeMilliseconds(_savefilePath!, _saveSlot); if (saveFileTime != 0) { _inGameTime = saveFileTime; @@ -230,7 +230,7 @@ public void UpdateAutoSplitter() return; } - List inventory = null; + List? inventory = null; foreach (var s in _splits) { if (!s.SplitTriggered) @@ -267,7 +267,7 @@ public void UpdateAutoSplitter() break; case SplitType.Bonfire: - s.SplitConditionMet = _darkSouls1.GetBonfireState(s.BonfireState.Bonfire.Value) >= s.BonfireState.State; + s.SplitConditionMet = _darkSouls1.GetBonfireState(s.BonfireState.Bonfire!.Value) >= s.BonfireState.State; break; case SplitType.Item: @@ -382,7 +382,7 @@ private void UpdateDropMod() if (_mainViewModel.DarkSouls1ViewModel.DropModRequestGameExit) { _mainViewModel.DarkSouls1ViewModel.DropModRequestGameExit = false; - _darkSouls1.GetProcess().Kill(); + _darkSouls1.GetProcess()!.Kill(); return; } diff --git a/src/SoulSplitter/Splitters/DarkSouls2Splitter.cs b/src/SoulSplitter/Splitters/DarkSouls2Splitter.cs index 0337bca..2297054 100644 --- a/src/SoulSplitter/Splitters/DarkSouls2Splitter.cs +++ b/src/SoulSplitter/Splitters/DarkSouls2Splitter.cs @@ -30,8 +30,8 @@ namespace SoulSplitter.Splitters public class DarkSouls2Splitter : ISplitter { private readonly DarkSouls2 _darkSouls2; - private DarkSouls2ViewModel _darkSouls2ViewModel; - private MainViewModel _mainViewModel; + private DarkSouls2ViewModel _darkSouls2ViewModel = null!; + private MainViewModel _mainViewModel = null!; private readonly LiveSplitState _liveSplitState; public DarkSouls2Splitter(LiveSplitState state, DarkSouls2 darkSouls2) diff --git a/src/SoulSplitter/Splitters/DarkSouls3Splitter.cs b/src/SoulSplitter/Splitters/DarkSouls3Splitter.cs index d926418..5e74d18 100644 --- a/src/SoulSplitter/Splitters/DarkSouls3Splitter.cs +++ b/src/SoulSplitter/Splitters/DarkSouls3Splitter.cs @@ -29,9 +29,10 @@ namespace SoulSplitter.Splitters { public class DarkSouls3Splitter : ISplitter { - private readonly LiveSplitState _liveSplitState; - private readonly DarkSouls3 _darkSouls3; - private DarkSouls3ViewModel _darkSouls3ViewModel; + private readonly LiveSplitState _liveSplitState = null!; + private readonly DarkSouls3 _darkSouls3 = null!; + private DarkSouls3ViewModel _darkSouls3ViewModel = null!; + private MainViewModel _mainViewModel = null!; public DarkSouls3Splitter(LiveSplitState state, DarkSouls3 darkSouls) { @@ -46,7 +47,6 @@ public DarkSouls3Splitter(LiveSplitState state, DarkSouls3 darkSouls) } - private MainViewModel _mainViewModel; public void SetViewModel(MainViewModel mainViewModel) { _mainViewModel = mainViewModel; diff --git a/src/SoulSplitter/Splitters/EldenRingSplitter.cs b/src/SoulSplitter/Splitters/EldenRingSplitter.cs index ce0524b..6498b3e 100644 --- a/src/SoulSplitter/Splitters/EldenRingSplitter.cs +++ b/src/SoulSplitter/Splitters/EldenRingSplitter.cs @@ -30,8 +30,9 @@ namespace SoulSplitter.Splitters internal class EldenRingSplitter : ISplitter { private readonly EldenRing _eldenRing; - private EldenRingViewModel _eldenRingViewModel; + private EldenRingViewModel _eldenRingViewModel = null!; private readonly LiveSplitState _liveSplitState; + private MainViewModel _mainViewModel= null!; public EldenRingSplitter(LiveSplitState state, EldenRing eldenRing) { @@ -46,7 +47,6 @@ public EldenRingSplitter(LiveSplitState state, EldenRing eldenRing) _timerModel.CurrentState = state; } - private MainViewModel _mainViewModel; public void SetViewModel(MainViewModel mainViewModel) { _mainViewModel = mainViewModel; @@ -76,7 +76,7 @@ public ResultErr Update(MainViewModel mainViewModel) }); - ResultErr result = null; + ResultErr? result = null; //Refresh attachment to ER process mainViewModel.TryAndHandleError(() => @@ -115,7 +115,7 @@ public ResultErr Update(MainViewModel mainViewModel) mainViewModel.FlagTrackerViewModel.Update(_eldenRing); }); - return result; + return result!; } @@ -245,7 +245,7 @@ public void UpdateAutoSplitter() return; } - List inventoryItems = null; + List? inventoryItems = null; foreach (var s in _splits) { diff --git a/src/SoulSplitter/Splitters/SekiroSplitter.cs b/src/SoulSplitter/Splitters/SekiroSplitter.cs index c2716d7..01d978f 100644 --- a/src/SoulSplitter/Splitters/SekiroSplitter.cs +++ b/src/SoulSplitter/Splitters/SekiroSplitter.cs @@ -30,9 +30,10 @@ namespace SoulSplitter.Splitters public class SekiroSplitter : ISplitter { private readonly Sekiro _sekiro; - private SekiroViewModel _sekiroViewModel; + private SekiroViewModel _sekiroViewModel = null!; private readonly LiveSplitState _liveSplitState; - + private MainViewModel _mainViewModel = null!; + public SekiroSplitter(LiveSplitState state, Sekiro sekiro) { _sekiro = sekiro; @@ -45,7 +46,6 @@ public SekiroSplitter(LiveSplitState state, Sekiro sekiro) _timerModel.CurrentState = state; } - private MainViewModel _mainViewModel; public void SetViewModel(MainViewModel mainViewModel) { _mainViewModel = mainViewModel; diff --git a/src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModel.cs b/src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModel.cs index 69ef4ad..375846d 100644 --- a/src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModel.cs +++ b/src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModel.cs @@ -35,7 +35,7 @@ public DarkSouls1ViewModel() public bool ResetInventoryIndices { get => _resetInventoryIndices; - set => SetField(ref _resetInventoryIndices, value); + set => this.SetField(ref _resetInventoryIndices, value); } private bool _resetInventoryIndices = true; @@ -46,7 +46,7 @@ public DropModType DropModType set { var oldValue = _dropModType; - SetField(ref _dropModType, value); + this.SetField(ref _dropModType, value); OnDropModSettingsChanged(oldValue, value); } } @@ -76,7 +76,7 @@ private void OnDropModSettingsChanged(DropModType oldValue, DropModType newValue #region add/remove splits ============================================================================================================================================ - private bool CanAddSplit(object param) + private bool CanAddSplit(object? param) { if (!NewSplitTimingType.HasValue || !NewSplitType.HasValue) { @@ -110,9 +110,9 @@ private bool CanAddSplit(object param) } } - private void AddSplit(object param) + private void AddSplit(object? param) { - object split = null; + object? split = null; switch (NewSplitType) { default: @@ -144,7 +144,7 @@ private void AddSplit(object param) split = "Credits"; break; } - SplitsViewModel.AddSplit(NewSplitTimingType.Value, NewSplitType.Value, split); + SplitsViewModel.AddSplit(NewSplitTimingType!.Value, NewSplitType.Value, split!); NewSplitTimingType = null; NewSplitEnabledSplitType = false; @@ -162,7 +162,7 @@ private void AddSplit(object param) get => _newSplitType; set { - SetField(ref _newSplitType, value); + this.SetField(ref _newSplitType, value); switch (NewSplitType) { @@ -194,17 +194,17 @@ private void AddSplit(object param) public Splits.DarkSouls1.BonfireState NewSplitBonfireState { get => _newSplitBonfireState; - set => SetField(ref _newSplitBonfireState, value); + set => this.SetField(ref _newSplitBonfireState, value); } - private Splits.DarkSouls1.BonfireState _newSplitBonfireState; + private Splits.DarkSouls1.BonfireState _newSplitBonfireState = null!; [XmlIgnore] public ItemState NewSplitItemState { get => _newSplitItemState; - set => SetField(ref _newSplitItemState, value); + set => this.SetField(ref _newSplitItemState, value); } - private ItemState _newSplitItemState; + private ItemState _newSplitItemState = null!; #endregion diff --git a/src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs b/src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs index 3946aeb..f092298 100644 --- a/src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs +++ b/src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs @@ -38,7 +38,7 @@ public DarkSouls1ViewModelRefactor() #region add/remove splits ============================================================================================================================================ - private bool CanAddSplit(object param) + private bool CanAddSplit(object? param) { if (!NewSplitTimingType.HasValue || !NewSplitType.HasValue) { @@ -71,7 +71,7 @@ private bool CanAddSplit(object param) } } - private void AddSplit(object param) + private void AddSplit(object? param) { if (param is FlatSplit f) { @@ -90,7 +90,7 @@ private void AddSplit(object param) get => _newSplitType; set { - SetField(ref _newSplitType, value); + this.SetField(ref _newSplitType, value); switch (NewSplitType) { @@ -123,19 +123,19 @@ private void AddSplit(object param) public Splits.DarkSouls1.BonfireState NewSplitBonfireState { get => _newSplitBonfireState; - set => SetField(ref _newSplitBonfireState, value); + set => this.SetField(ref _newSplitBonfireState, value); } - private Splits.DarkSouls1.BonfireState _newSplitBonfireState; + private Splits.DarkSouls1.BonfireState _newSplitBonfireState = null!; [XmlIgnore] public ItemState NewSplitItemState { get => _newSplitItemState; - set => SetField(ref _newSplitItemState, value); + set => this.SetField(ref _newSplitItemState, value); } - private ItemState _newSplitItemState; + private ItemState _newSplitItemState = null!; #endregion diff --git a/src/SoulSplitter/UI/DarkSouls2/DarkSouls2Control.xaml.cs b/src/SoulSplitter/UI/DarkSouls2/DarkSouls2Control.xaml.cs index 0d96b34..cb98189 100644 --- a/src/SoulSplitter/UI/DarkSouls2/DarkSouls2Control.xaml.cs +++ b/src/SoulSplitter/UI/DarkSouls2/DarkSouls2Control.xaml.cs @@ -39,7 +39,7 @@ void OnDataContextChanged(object sender, DependencyPropertyChangedEventArgs e) _darkSouls2ViewModel = vm; } } - private DarkSouls2ViewModel _darkSouls2ViewModel; + private DarkSouls2ViewModel _darkSouls2ViewModel = null!; private void AddSplit_OnClick(object sender, RoutedEventArgs e) { diff --git a/src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs b/src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs index 248d9cc..596ae47 100644 --- a/src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs +++ b/src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs @@ -15,11 +15,9 @@ // along with this program. If not, see . using System; -using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using System.Linq; -using System.Runtime.CompilerServices; using System.Xml.Serialization; using SoulMemory; using SoulMemory.DarkSouls2; @@ -29,12 +27,12 @@ namespace SoulSplitter.UI.DarkSouls2 { - public class DarkSouls2ViewModel : INotifyPropertyChanged + public class DarkSouls2ViewModel : ICustomNotifyPropertyChanged { public bool StartAutomatically { get => _startAutomatically; - set => SetField(ref _startAutomatically, value); + set => this.SetField(ref _startAutomatically, value); } private bool _startAutomatically = true; @@ -42,7 +40,7 @@ public bool StartAutomatically public Vector3f CurrentPosition { get => _currentPosition; - set => SetField(ref _currentPosition, value); + set => this.SetField(ref _currentPosition, value); } private Vector3f _currentPosition = new Vector3f(0f,0f,0f); @@ -119,11 +117,11 @@ public void RemoveSplit() if (SelectedSplit != null) { var parent = SelectedSplit.Parent; - parent.Children.Remove(SelectedSplit); + parent!.Children.Remove(SelectedSplit); if (parent.Children.Count <= 0) { var nextParent = parent.Parent; - nextParent.Children.Remove(parent); + nextParent!.Children.Remove(parent); if (nextParent.Children.Count <= 0) { Splits.Remove(nextParent); @@ -146,7 +144,7 @@ public TimingType? NewSplitTimingType get => _newSplitTimingType; set { - SetField(ref _newSplitTimingType, value); + this.SetField(ref _newSplitTimingType, value); NewSplitTypeEnabled = true; } } @@ -163,7 +161,7 @@ public DarkSouls2SplitType? NewSplitType NewSplitAttributeEnabled = false; NewSplitFlagEnabled = false; - SetField(ref _newSplitType, value); + this.SetField(ref _newSplitType, value); switch (NewSplitType) { case null: @@ -196,22 +194,22 @@ public DarkSouls2SplitType? NewSplitType private DarkSouls2SplitType? _newSplitType = null; [XmlIgnore] - public object NewSplitValue + public object? NewSplitValue { get => _newSplitValue; set { - SetField(ref _newSplitValue, value); + this.SetField(ref _newSplitValue, value); NewSplitAddEnabled = NewSplitValue != null; } } - private object _newSplitValue = null; + private object? _newSplitValue = null; [XmlIgnore] public bool NewSplitTypeEnabled { get => _newSplitTypeEnabled; - set => SetField(ref _newSplitTypeEnabled, value); + set => this.SetField(ref _newSplitTypeEnabled, value); } private bool _newSplitTypeEnabled = false; @@ -219,7 +217,7 @@ public bool NewSplitTypeEnabled public bool NewSplitPositionEnabled { get => _newSplitPositionEnabled; - set => SetField(ref _newSplitPositionEnabled, value); + set => this.SetField(ref _newSplitPositionEnabled, value); } private bool _newSplitPositionEnabled = false; @@ -227,7 +225,7 @@ public bool NewSplitPositionEnabled public bool NewSplitBossKillEnabled { get => _newSplitBossKillEnabled; - set => SetField(ref _newSplitBossKillEnabled, value); + set => this.SetField(ref _newSplitBossKillEnabled, value); } private bool _newSplitBossKillEnabled = false; @@ -235,7 +233,7 @@ public bool NewSplitBossKillEnabled public bool NewSplitAttributeEnabled { get => _newSplitAttributeEnabled; - set => SetField(ref _newSplitAttributeEnabled, value); + set => this.SetField(ref _newSplitAttributeEnabled, value); } private bool _newSplitAttributeEnabled = false; @@ -243,7 +241,7 @@ public bool NewSplitAttributeEnabled public bool NewSplitFlagEnabled { get => _newSplitFlagEnabled; - set => SetField(ref _newSplitFlagEnabled, value); + set => this.SetField(ref _newSplitFlagEnabled, value); } private bool _newSplitFlagEnabled = false; @@ -251,7 +249,7 @@ public bool NewSplitFlagEnabled public bool NewSplitAddEnabled { get => _newSplitAddEnabled; - set => SetField(ref _newSplitAddEnabled, value); + set => this.SetField(ref _newSplitAddEnabled, value); } private bool _newSplitAddEnabled = false; @@ -259,21 +257,21 @@ public bool NewSplitAddEnabled public bool RemoveSplitEnabled { get => _removeSplitEnabled; - set => SetField(ref _removeSplitEnabled, value); + set => this.SetField(ref _removeSplitEnabled, value); } private bool _removeSplitEnabled = false; [XmlIgnore] - public HierarchicalSplitViewModel SelectedSplit + public HierarchicalSplitViewModel? SelectedSplit { get => _selectedSplit; set { - SetField(ref _selectedSplit, value); + this.SetField(ref _selectedSplit, value); RemoveSplitEnabled = SelectedSplit != null; } } - private HierarchicalSplitViewModel _selectedSplit = null; + private HierarchicalSplitViewModel? _selectedSplit = null; #endregion @@ -305,20 +303,13 @@ public void RestoreHierarchy() #endregion - #region INotifyPropertyChanged ============================================================================================================================================ + #region ICustomNotifyPropertyChanged - private bool SetField(ref T field, T value, [CallerMemberName] string propertyName = null) - { - if (EqualityComparer.Default.Equals(field, value)) return false; - field = value; - OnPropertyChanged(propertyName ?? ""); - return true; - } + public event PropertyChangedEventHandler? PropertyChanged; - public event PropertyChangedEventHandler PropertyChanged; - private void OnPropertyChanged([CallerMemberName] string propertyName = null) + public void InvokePropertyChanged(string propertyName) { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName ?? "")); + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } #endregion diff --git a/src/SoulSplitter/UI/DarkSouls2/HierarchicalViewModel.cs b/src/SoulSplitter/UI/DarkSouls2/HierarchicalViewModel.cs index 95fe551..6f26691 100644 --- a/src/SoulSplitter/UI/DarkSouls2/HierarchicalViewModel.cs +++ b/src/SoulSplitter/UI/DarkSouls2/HierarchicalViewModel.cs @@ -15,10 +15,8 @@ // along with this program. If not, see . using System; -using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; -using System.Runtime.CompilerServices; using System.Xml.Serialization; using SoulMemory; using SoulSplitter.Splits.DarkSouls2; @@ -28,67 +26,53 @@ namespace SoulSplitter.UI.DarkSouls2 { [XmlType(Namespace = "DarkSouls2")] - public class HierarchicalTimingTypeViewModel : INotifyPropertyChanged + public class HierarchicalTimingTypeViewModel : ICustomNotifyPropertyChanged { public TimingType TimingType { get => _timingType; - set => SetField(ref _timingType, value); + set => this.SetField(ref _timingType, value); } private TimingType _timingType; public ObservableCollection Children { get; set; } = new ObservableCollection(); - #region INotifyPropertyChanged + #region ICustomNotifyPropertyChanged - private bool SetField(ref T field, T value, [CallerMemberName] string propertyName = null) - { - if (EqualityComparer.Default.Equals(field, value)) return false; - field = value; - OnPropertyChanged(propertyName ?? ""); - return true; - } + public event PropertyChangedEventHandler? PropertyChanged; - public event PropertyChangedEventHandler PropertyChanged; - private void OnPropertyChanged([CallerMemberName] string propertyName = null) + public void InvokePropertyChanged(string propertyName) { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName ?? "")); + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } #endregion } [XmlType(Namespace = "DarkSouls2")] - public class HierarchicalSplitTypeViewModel : INotifyPropertyChanged + public class HierarchicalSplitTypeViewModel : ICustomNotifyPropertyChanged { [XmlIgnore] [NonSerialized] - public HierarchicalTimingTypeViewModel Parent; + public HierarchicalTimingTypeViewModel? Parent; public DarkSouls2SplitType SplitType { get => _splitType; - set => SetField(ref _splitType, value); + set => this.SetField(ref _splitType, value); } private DarkSouls2SplitType _splitType; public ObservableCollection Children { get; set; } = new ObservableCollection(); - #region INotifyPropertyChanged + #region ICustomNotifyPropertyChanged - private bool SetField(ref T field, T value, [CallerMemberName] string propertyName = null) - { - if (EqualityComparer.Default.Equals(field, value)) return false; - field = value; - OnPropertyChanged(propertyName ?? ""); - return true; - } + public event PropertyChangedEventHandler? PropertyChanged; - public event PropertyChangedEventHandler PropertyChanged; - private void OnPropertyChanged([CallerMemberName] string propertyName = null) + public void InvokePropertyChanged(string propertyName) { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName ?? "")); + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } #endregion @@ -100,34 +84,27 @@ private void OnPropertyChanged([CallerMemberName] string propertyName = null) XmlInclude(typeof(BossKill)), XmlInclude(typeof(Attribute)), XmlInclude(typeof(uint))] - public class HierarchicalSplitViewModel : INotifyPropertyChanged + public class HierarchicalSplitViewModel : ICustomNotifyPropertyChanged { [XmlIgnore] [NonSerialized] - public HierarchicalSplitTypeViewModel Parent; + public HierarchicalSplitTypeViewModel? Parent; [XmlElement(Namespace = "DarkSouls2")] public object Split { get => _split; - set => SetField(ref _split, value); + set => this.SetField(ref _split, value); } - private object _split; + private object _split = null!; - #region INotifyPropertyChanged + #region ICustomNotifyPropertyChanged - private bool SetField(ref T field, T value, [CallerMemberName] string propertyName = null) - { - if (EqualityComparer.Default.Equals(field, value)) return false; - field = value; - OnPropertyChanged(propertyName ?? ""); - return true; - } + public event PropertyChangedEventHandler? PropertyChanged; - public event PropertyChangedEventHandler PropertyChanged; - private void OnPropertyChanged([CallerMemberName] string propertyName = null) + public void InvokePropertyChanged(string propertyName) { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName ?? "")); + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } #endregion diff --git a/src/SoulSplitter/UI/DarkSouls3/DarkSouls3ViewModel.cs b/src/SoulSplitter/UI/DarkSouls3/DarkSouls3ViewModel.cs index e300c2f..6155b2e 100644 --- a/src/SoulSplitter/UI/DarkSouls3/DarkSouls3ViewModel.cs +++ b/src/SoulSplitter/UI/DarkSouls3/DarkSouls3ViewModel.cs @@ -33,7 +33,7 @@ public DarkSouls3ViewModel() #region add/remove splits ============================================================================================================================================ - private bool CanAddSplit(object param) + private bool CanAddSplit() { if(NewSplitTimingType == null || NewSplitType == null) { @@ -53,9 +53,9 @@ private bool CanAddSplit(object param) return NewSplitValue != null; } - private void AddSplit(object param) + private void AddSplit() { - object split = null; + object? split = null; switch (NewSplitType) { default: @@ -65,7 +65,7 @@ private void AddSplit(object param) case SplitType.Bonfire: case SplitType.ItemPickup: case SplitType.Attribute: - split = NewSplitValue; + split = NewSplitValue!; break; case SplitType.Position: @@ -76,7 +76,7 @@ private void AddSplit(object param) split = FlagDescription; break; } - SplitsViewModel.AddSplit(NewSplitTimingType.Value, NewSplitType.Value, split); + SplitsViewModel.AddSplit(NewSplitTimingType!.Value, NewSplitType.Value, split); NewSplitTimingType = null; NewSplitEnabledSplitType = false; @@ -90,7 +90,7 @@ private void AddSplit(object param) public bool LockIgtToZero { get => _lockIgtToZero; - set => SetField(ref _lockIgtToZero, value); + set => this.SetField(ref _lockIgtToZero, value); } private bool _lockIgtToZero = false; @@ -100,7 +100,7 @@ public bool LockIgtToZero get => _newSplitType; set { - SetField(ref _newSplitType, value); + this.SetField(ref _newSplitType, value); if(NewSplitType == SplitType.Attribute) { diff --git a/src/SoulSplitter/UI/EldenRing/BossViewModel.cs b/src/SoulSplitter/UI/EldenRing/BossViewModel.cs index 0c439b6..220b235 100644 --- a/src/SoulSplitter/UI/EldenRing/BossViewModel.cs +++ b/src/SoulSplitter/UI/EldenRing/BossViewModel.cs @@ -14,15 +14,14 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -using System.Collections.Generic; using System.ComponentModel; -using System.Runtime.CompilerServices; using SoulMemory.EldenRing; using SoulMemory.Memory; +using SoulSplitter.UI.Generic; namespace SoulSplitter.UI.EldenRing { - public class BossViewModel + public class BossViewModel : ICustomNotifyPropertyChanged { public BossViewModel(Boss b) { @@ -40,47 +39,38 @@ public override string ToString() public Boss Boss { get => _boss; - set => SetField(ref _boss, value); + set => this.SetField(ref _boss, value); } private Boss _boss; public string Area { get => _area; - set => SetField(ref _area, value); + set => this.SetField(ref _area, value); } - private string _area; + private string _area = null!; public string Name { get => _name; - set => SetField(ref _name, value); + set => this.SetField(ref _name, value); } - private string _name; + private string _name = null!; public uint Flag { get => _flag; - set => SetField(ref _flag, value); + set => this.SetField(ref _flag, value); } private uint _flag; + #region ICustomNotifyPropertyChanged + public event PropertyChangedEventHandler? PropertyChanged; - #region INotifyPropertyChanged - - private bool SetField(ref T field, T value, [CallerMemberName] string propertyName = null) - { - if (EqualityComparer.Default.Equals(field, value)) return false; - field = value; - OnPropertyChanged(propertyName ?? ""); - return true; - } - - public event PropertyChangedEventHandler PropertyChanged; - private void OnPropertyChanged([CallerMemberName] string propertyName = null) + public void InvokePropertyChanged(string propertyName) { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName ?? "")); + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } #endregion diff --git a/src/SoulSplitter/UI/EldenRing/EldenRingControl.xaml.cs b/src/SoulSplitter/UI/EldenRing/EldenRingControl.xaml.cs index cfa1c3a..7b6c1bc 100644 --- a/src/SoulSplitter/UI/EldenRing/EldenRingControl.xaml.cs +++ b/src/SoulSplitter/UI/EldenRing/EldenRingControl.xaml.cs @@ -32,7 +32,7 @@ public EldenRingControl() private EldenRingViewModel GetEldenRingViewModel() { - return DataContext as EldenRingViewModel; + return (DataContext as EldenRingViewModel)!; } private void AddSplit_OnClick(object sender, RoutedEventArgs e) diff --git a/src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs b/src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs index 1b71d26..b3328d0 100644 --- a/src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs +++ b/src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs @@ -15,11 +15,9 @@ // along with this program. If not, see . using System; -using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using System.Linq; -using System.Runtime.CompilerServices; using System.Xml.Serialization; using SoulMemory.EldenRing; using SoulSplitter.Splits.EldenRing; @@ -27,7 +25,7 @@ namespace SoulSplitter.UI.EldenRing { - public class EldenRingViewModel : INotifyPropertyChanged + public class EldenRingViewModel : ICustomNotifyPropertyChanged { public EldenRingViewModel() { @@ -36,14 +34,14 @@ public EldenRingViewModel() public bool StartAutomatically { get => _startAutomatically; - set => SetField(ref _startAutomatically, value); + set => this.SetField(ref _startAutomatically, value); } private bool _startAutomatically = true; public bool LockIgtToZero { get => _lockIgtToZero; - set => SetField(ref _lockIgtToZero, value); + set => this.SetField(ref _lockIgtToZero, value); } private bool _lockIgtToZero; @@ -51,7 +49,7 @@ public bool LockIgtToZero public PositionViewModel CurrentPosition { get => _currentPosition; - set => SetField(ref _currentPosition, value); + set => this.SetField(ref _currentPosition, value); } private PositionViewModel _currentPosition = new PositionViewModel(); @@ -64,7 +62,7 @@ public TimingType? NewSplitTimingType get => _newSplitTimingType; set { - SetField(ref _newSplitTimingType, value); + this.SetField(ref _newSplitTimingType, value); EnabledSplitType = NewSplitTimingType.HasValue; } } @@ -74,7 +72,7 @@ public TimingType? NewSplitTimingType public bool EnabledSplitType { get => _enabledSplitType; - set => SetField(ref _enabledSplitType, value); + set => this.SetField(ref _enabledSplitType, value); } private bool _enabledSplitType = false; @@ -84,7 +82,7 @@ public EldenRingSplitType? NewSplitType get => _newSplitType; set { - SetField(ref _newSplitType, value); + this.SetField(ref _newSplitType, value); EnabledAddSplit = false; VisibleBossSplit = false; @@ -141,7 +139,7 @@ public Boss? NewSplitBoss get => _newSplitBoss; set { - SetField(ref _newSplitBoss, value); + this.SetField(ref _newSplitBoss, value); EnabledAddSplit = NewSplitBoss.HasValue; } } @@ -151,7 +149,7 @@ public Boss? NewSplitBoss public bool VisibleBossSplit { get => _visibleBossSplit; - set => SetField(ref _visibleBossSplit, value); + set => this.SetField(ref _visibleBossSplit, value); } private bool _visibleBossSplit; @@ -161,7 +159,7 @@ public Grace? NewSplitGrace get => _newSplitGrace; set { - SetField(ref _newSplitGrace, value); + this.SetField(ref _newSplitGrace, value); EnabledAddSplit = NewSplitGrace.HasValue; } } @@ -171,7 +169,7 @@ public Grace? NewSplitGrace public bool VisibleGraceSplit { get => _visibleGraceSplit; - set => SetField(ref _visibleGraceSplit, value); + set => this.SetField(ref _visibleGraceSplit, value); } private bool _visibleGraceSplit; @@ -181,7 +179,7 @@ public uint? NewSplitFlag get => _newSplitFlag; set { - SetField(ref _newSplitFlag, value); + this.SetField(ref _newSplitFlag, value); EnabledAddSplit = NewSplitFlag.HasValue; } } @@ -191,27 +189,27 @@ public uint? NewSplitFlag public bool VisibleFlagSplit { get => _visibleFlagSplit; - set => SetField(ref _visibleFlagSplit, value); + set => this.SetField(ref _visibleFlagSplit, value); } private bool _visibleFlagSplit; [XmlIgnore] - public Item NewSplitItem + public Item? NewSplitItem { get => _newSplitItem; set { - SetField(ref _newSplitItem, value); + this.SetField(ref _newSplitItem, value); EnabledAddSplit = NewSplitItem != null; } } - private Item _newSplitItem; + private Item? _newSplitItem; [XmlIgnore] public bool VisibleItemSplit { get => _visibleItemSplit; - set => SetField(ref _visibleItemSplit, value); + set => this.SetField(ref _visibleItemSplit, value); } private bool _visibleItemSplit; @@ -221,7 +219,7 @@ public PositionViewModel NewSplitPosition get => _newSplitPosition; set { - SetField(ref _newSplitPosition, value); + this.SetField(ref _newSplitPosition, value); EnabledAddSplit = _newSplitPosition != null; } } @@ -231,7 +229,7 @@ public PositionViewModel NewSplitPosition public bool VisiblePositionSplit { get => _visiblePositionSplit; - set => SetField(ref _visiblePositionSplit, value); + set => this.SetField(ref _visiblePositionSplit, value); } private bool _visiblePositionSplit; @@ -239,7 +237,7 @@ public bool VisiblePositionSplit public bool VisibleItemPickupSplit { get => _visibleItemPickupSplit; - set => SetField(ref _visibleItemPickupSplit, value); + set => this.SetField(ref _visibleItemPickupSplit, value); } private bool _visibleItemPickupSplit; @@ -249,7 +247,7 @@ public ItemPickup? NewSplitItemPickup get => _newSplitItemPickup; set { - SetField(ref _newSplitItemPickup, value); + this.SetField(ref _newSplitItemPickup, value); EnabledAddSplit = NewSplitItemPickup.HasValue; } } @@ -259,7 +257,7 @@ public ItemPickup? NewSplitItemPickup public bool VisibleKnownFlagSplit { get => _visibleKnownFlagSplit; - set => SetField(ref _visibleKnownFlagSplit, value); + set => this.SetField(ref _visibleKnownFlagSplit, value); } private bool _visibleKnownFlagSplit; @@ -269,7 +267,7 @@ public KnownFlag? NewSplitKnownFlag get => _newSplitKnownFlag; set { - SetField(ref _newSplitKnownFlag, value); + this.SetField(ref _newSplitKnownFlag, value); EnabledAddSplit = NewSplitKnownFlag.HasValue; } } @@ -280,7 +278,7 @@ public KnownFlag? NewSplitKnownFlag public bool EnabledAddSplit { get => _enabledAddSplit; - set => SetField(ref _enabledAddSplit, value); + set => this.SetField(ref _enabledAddSplit, value); } private bool _enabledAddSplit; @@ -316,42 +314,42 @@ public void AddSplit() case EldenRingSplitType.Boss: if (hierarchicalSplitType.Children.All(i => (Boss)i.Split != NewSplitBoss)) { - hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = NewSplitBoss.Value, Parent = hierarchicalSplitType }); + hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = NewSplitBoss!.Value, Parent = hierarchicalSplitType }); } break; case EldenRingSplitType.Grace: if (hierarchicalSplitType.Children.All(i => (Grace)i.Split != NewSplitGrace)) { - hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = NewSplitGrace.Value, Parent = hierarchicalSplitType }); + hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = NewSplitGrace!.Value, Parent = hierarchicalSplitType }); } break; case EldenRingSplitType.ItemPickup: if (hierarchicalSplitType.Children.All(i => (ItemPickup)i.Split != NewSplitItemPickup)) { - hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = NewSplitItemPickup.Value, Parent = hierarchicalSplitType }); + hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = NewSplitItemPickup!.Value, Parent = hierarchicalSplitType }); } break; case EldenRingSplitType.KnownFlag: if (hierarchicalSplitType.Children.All(i => (KnownFlag)i.Split != NewSplitKnownFlag)) { - hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = NewSplitKnownFlag.Value, Parent = hierarchicalSplitType }); + hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = NewSplitKnownFlag!.Value, Parent = hierarchicalSplitType }); } break; case EldenRingSplitType.Flag: if (hierarchicalSplitType.Children.All(i => (uint)i.Split != NewSplitFlag)) { - hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = NewSplitFlag.Value, Parent = hierarchicalSplitType }); + hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = NewSplitFlag!.Value, Parent = hierarchicalSplitType }); } break; case EldenRingSplitType.Item: if (hierarchicalSplitType.Children.All(i => (Item)i.Split != NewSplitItem)) { - hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = NewSplitItem, Parent = hierarchicalSplitType }); + hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = NewSplitItem!, Parent = hierarchicalSplitType }); } break; @@ -382,31 +380,31 @@ public void AddSplit() public bool EnabledRemoveSplit { get => _enabledRemoveSplit; - set => SetField(ref _enabledRemoveSplit, value); + set => this.SetField(ref _enabledRemoveSplit, value); } private bool _enabledRemoveSplit; - public HierarchicalSplitViewModel SelectedSplit + public HierarchicalSplitViewModel? SelectedSplit { get => _selectedSplit; set { - SetField(ref _selectedSplit, value); + this.SetField(ref _selectedSplit, value); EnabledRemoveSplit = SelectedSplit != null; } } - private HierarchicalSplitViewModel _selectedSplit = null; + private HierarchicalSplitViewModel? _selectedSplit = null; public void RemoveSplit() { if (SelectedSplit != null) { var parent = SelectedSplit.Parent; - parent.Children.Remove(SelectedSplit); + parent!.Children.Remove(SelectedSplit); if (parent.Children.Count <= 0) { var nextParent = parent.Parent; - nextParent.Children.Remove(parent); + nextParent!.Children.Remove(parent); if (nextParent.Children.Count <= 0) { Splits.Remove(nextParent); @@ -449,26 +447,20 @@ public void RestoreHierarchy() public static ObservableCollection ItemPickups { get; set; } = new ObservableCollection(Enum.GetValues(typeof(ItemPickup)).Cast().Select(i => new ItemPickupViewModel(i))); public static ObservableCollection KnownFlags { get; set; } = new ObservableCollection(Enum.GetValues(typeof(KnownFlag)).Cast().Select(i => new KnownFlagViewModel(i))); - #region INotifyPropertyChanged - private bool SetField(ref T field, T value, [CallerMemberName] string propertyName = null) - { - if (EqualityComparer.Default.Equals(field, value)) return false; - field = value; - OnPropertyChanged(propertyName ?? ""); - return true; - } + #region ICustomNotifyPropertyChanged + + public event PropertyChangedEventHandler? PropertyChanged; - public event PropertyChangedEventHandler PropertyChanged; - private void OnPropertyChanged([CallerMemberName] string propertyName = null) + public void InvokePropertyChanged(string propertyName) { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName ?? "")); + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } #endregion } - public class ItemViewModel + public class ItemViewModel : ICustomNotifyPropertyChanged { public override string ToString() { @@ -487,55 +479,49 @@ public ItemViewModel(Item i) public Item Item { get => _item; - set => SetField(ref _item, value); + set => this.SetField(ref _item, value); } - private Item _item; + private Item _item = null!; public Category Category { get => _category; - set => SetField(ref _category, value); + set => this.SetField(ref _category, value); } private Category _category; public string GroupName { get => _groupName; - set => SetField(ref _groupName, value); + set => this.SetField(ref _groupName, value); } - private string _groupName; + private string _groupName = null!; public string Name { get => _name; - set => SetField(ref _name, value); + set => this.SetField(ref _name, value); } - private string _name; + private string _name = null!; public uint Id { get => _id; - set => SetField(ref _id, value); + set => this.SetField(ref _id, value); } private uint _id; - #region INotifyPropertyChanged - private bool SetField(ref T field, T value, [CallerMemberName] string propertyName = null) - { - if (EqualityComparer.Default.Equals(field, value)) return false; - field = value; - OnPropertyChanged(propertyName ?? ""); - return true; - } + #region ICustomNotifyPropertyChanged + + public event PropertyChangedEventHandler? PropertyChanged; - public event PropertyChangedEventHandler PropertyChanged; - private void OnPropertyChanged([CallerMemberName] string propertyName = null) + public void InvokePropertyChanged(string propertyName) { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName ?? "")); + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } #endregion diff --git a/src/SoulSplitter/UI/EldenRing/GraceViewModel.cs b/src/SoulSplitter/UI/EldenRing/GraceViewModel.cs index f7238b2..7a7ff17 100644 --- a/src/SoulSplitter/UI/EldenRing/GraceViewModel.cs +++ b/src/SoulSplitter/UI/EldenRing/GraceViewModel.cs @@ -14,15 +14,14 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -using System.Collections.Generic; using System.ComponentModel; -using System.Runtime.CompilerServices; using SoulMemory.EldenRing; using SoulMemory.Memory; +using SoulSplitter.UI.Generic; namespace SoulSplitter.UI.EldenRing { - public class GraceViewModel : INotifyPropertyChanged + public class GraceViewModel : ICustomNotifyPropertyChanged { public GraceViewModel(Grace g) { @@ -40,47 +39,41 @@ public override string ToString() public Grace Grace { get => _grace; - set => SetField(ref _grace, value); + set => this.SetField(ref _grace, value); } private Grace _grace; public string Area { get => _area; - set => SetField(ref _area, value); + set => this.SetField(ref _area, value); } - private string _area; + private string _area = null!; public string Name { get => _name; - set => SetField(ref _name, value); + set => this.SetField(ref _name, value); } - private string _name; + private string _name = null!; public uint Flag { get => _flag; - set => SetField(ref _flag, value); + set => this.SetField(ref _flag, value); } private uint _flag; - #region INotifyPropertyChanged - private bool SetField(ref T field, T value, [CallerMemberName] string propertyName = null) - { - if (EqualityComparer.Default.Equals(field, value)) return false; - field = value; - OnPropertyChanged(propertyName ?? ""); - return true; - } + #region ICustomNotifyPropertyChanged + + public event PropertyChangedEventHandler? PropertyChanged; - public event PropertyChangedEventHandler PropertyChanged; - private void OnPropertyChanged([CallerMemberName] string propertyName = null) + public void InvokePropertyChanged(string propertyName) { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName ?? "")); + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } #endregion diff --git a/src/SoulSplitter/UI/EldenRing/ItemPickupViewModel.cs b/src/SoulSplitter/UI/EldenRing/ItemPickupViewModel.cs index 9ac1c4e..ad11f2f 100644 --- a/src/SoulSplitter/UI/EldenRing/ItemPickupViewModel.cs +++ b/src/SoulSplitter/UI/EldenRing/ItemPickupViewModel.cs @@ -14,15 +14,14 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -using System.Collections.Generic; using System.ComponentModel; -using System.Runtime.CompilerServices; using SoulMemory.EldenRing; using SoulMemory.Memory; +using SoulSplitter.UI.Generic; namespace SoulSplitter.UI.EldenRing { - public class ItemPickupViewModel + public class ItemPickupViewModel : ICustomNotifyPropertyChanged { public ItemPickupViewModel(ItemPickup i) { @@ -39,40 +38,32 @@ public override string ToString() public ItemPickup ItemPickup { get => _itemPickup; - set => SetField(ref _itemPickup, value); + set => this.SetField(ref _itemPickup, value); } private ItemPickup _itemPickup; public string Name { get => _name; - set => SetField(ref _name, value); + set => this.SetField(ref _name, value); } - private string _name; + private string _name = null!; public uint Flag { get => _flag; - set => SetField(ref _flag, value); + set => this.SetField(ref _flag, value); } private uint _flag; + #region ICustomNotifyPropertyChanged - #region INotifyPropertyChanged + public event PropertyChangedEventHandler? PropertyChanged; - private bool SetField(ref T field, T value, [CallerMemberName] string propertyName = null) + public void InvokePropertyChanged(string propertyName) { - if (EqualityComparer.Default.Equals(field, value)) return false; - field = value; - OnPropertyChanged(propertyName ?? ""); - return true; - } - - public event PropertyChangedEventHandler PropertyChanged; - private void OnPropertyChanged([CallerMemberName] string propertyName = null) - { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName ?? "")); + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } #endregion diff --git a/src/SoulSplitter/UI/EldenRing/KnownFlagViewModel.cs b/src/SoulSplitter/UI/EldenRing/KnownFlagViewModel.cs index dccefd4..87bdcf3 100644 --- a/src/SoulSplitter/UI/EldenRing/KnownFlagViewModel.cs +++ b/src/SoulSplitter/UI/EldenRing/KnownFlagViewModel.cs @@ -14,15 +14,14 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -using System.Collections.Generic; using System.ComponentModel; -using System.Runtime.CompilerServices; using SoulMemory.EldenRing; using SoulMemory.Memory; +using SoulSplitter.UI.Generic; namespace SoulSplitter.UI.EldenRing { - public class KnownFlagViewModel + public class KnownFlagViewModel : ICustomNotifyPropertyChanged { public KnownFlagViewModel(KnownFlag i) { @@ -39,40 +38,34 @@ public override string ToString() public KnownFlag KnownFlag { get => _knownFlag; - set => SetField(ref _knownFlag, value); + set => this.SetField(ref _knownFlag, value); } private KnownFlag _knownFlag; public string Name { get => _name; - set => SetField(ref _name, value); + set => this.SetField(ref _name, value); } - private string _name; + private string _name = null!; public uint Flag { get => _flag; - set => SetField(ref _flag, value); + set => this.SetField(ref _flag, value); } private uint _flag; - #region INotifyPropertyChanged - private bool SetField(ref T field, T value, [CallerMemberName] string propertyName = null) - { - if (EqualityComparer.Default.Equals(field, value)) return false; - field = value; - OnPropertyChanged(propertyName ?? ""); - return true; - } + #region ICustomNotifyPropertyChanged + + public event PropertyChangedEventHandler? PropertyChanged; - public event PropertyChangedEventHandler PropertyChanged; - private void OnPropertyChanged([CallerMemberName] string propertyName = null) + public void InvokePropertyChanged(string propertyName) { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName ?? "")); + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } #endregion diff --git a/src/SoulSplitter/UI/EldenRing/PositionViewModel.cs b/src/SoulSplitter/UI/EldenRing/PositionViewModel.cs index 54963b2..3ebcda3 100644 --- a/src/SoulSplitter/UI/EldenRing/PositionViewModel.cs +++ b/src/SoulSplitter/UI/EldenRing/PositionViewModel.cs @@ -14,14 +14,13 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -using System.Collections.Generic; using System.ComponentModel; -using System.Runtime.CompilerServices; using SoulMemory.EldenRing; +using SoulSplitter.UI.Generic; namespace SoulSplitter.UI.EldenRing { - public class PositionViewModel : INotifyPropertyChanged + public class PositionViewModel : ICustomNotifyPropertyChanged { public readonly Position Position = new Position(); @@ -30,44 +29,44 @@ public class PositionViewModel : INotifyPropertyChanged public byte Area { get => Position.Area; - set => SetField(ref Position.Area, value); + set => this.SetField(ref Position.Area, value); } public byte Block { get => Position.Block; - set => SetField(ref Position.Block, value); + set => this.SetField(ref Position.Block, value); } public byte Region { get => Position.Region; - set => SetField(ref Position.Region, value); + set => this.SetField(ref Position.Region, value); } public byte Size { get => Position.Size; - set => SetField(ref Position.Size, value); + set => this.SetField(ref Position.Size, value); } public float X { get => Position.X; - set => SetField(ref Position.X, value); + set => this.SetField(ref Position.X, value); } public float Y { get => Position.Y; - set => SetField(ref Position.Y, value); + set => this.SetField(ref Position.Y, value); } public float Z { get => Position.Z; - set => SetField(ref Position.Z, value); + set => this.SetField(ref Position.Z, value); } @@ -75,22 +74,15 @@ public override string ToString() { return Position.ToString(); } - - #region INotifyPropertyChanged - private bool SetField(ref T field, T value, [CallerMemberName] string propertyName = null) - { - if (EqualityComparer.Default.Equals(field, value)) return false; - field = value; - OnPropertyChanged(propertyName ?? ""); - return true; - } + #region ICustomNotifyPropertyChanged + + public event PropertyChangedEventHandler? PropertyChanged; - public event PropertyChangedEventHandler PropertyChanged; - private void OnPropertyChanged([CallerMemberName] string propertyName = null) + public void InvokePropertyChanged(string propertyName) { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName ?? "")); + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } #endregion diff --git a/src/SoulSplitter/UI/EldenRing/SplitViewModel.cs b/src/SoulSplitter/UI/EldenRing/SplitViewModel.cs index 639cb87..c308ecb 100644 --- a/src/SoulSplitter/UI/EldenRing/SplitViewModel.cs +++ b/src/SoulSplitter/UI/EldenRing/SplitViewModel.cs @@ -15,10 +15,8 @@ // along with this program. If not, see . using System; -using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; -using System.Runtime.CompilerServices; using System.Xml.Serialization; using SoulMemory.EldenRing; using SoulSplitter.Splits.EldenRing; @@ -26,65 +24,51 @@ namespace SoulSplitter.UI.EldenRing { - public class HierarchicalTimingTypeViewModel : INotifyPropertyChanged + public class HierarchicalTimingTypeViewModel : ICustomNotifyPropertyChanged { public TimingType TimingType { get => _timingType; - set => SetField(ref _timingType, value); + set => this.SetField(ref _timingType, value); } private TimingType _timingType; public ObservableCollection Children { get; set; } = new ObservableCollection(); - #region INotifyPropertyChanged + #region ICustomNotifyPropertyChanged - private bool SetField(ref T field, T value, [CallerMemberName] string propertyName = null) - { - if (EqualityComparer.Default.Equals(field, value)) return false; - field = value; - OnPropertyChanged(propertyName ?? ""); - return true; - } + public event PropertyChangedEventHandler? PropertyChanged; - public event PropertyChangedEventHandler PropertyChanged; - private void OnPropertyChanged([CallerMemberName] string propertyName = null) + public void InvokePropertyChanged(string propertyName) { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName ?? "")); + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } #endregion } - public class HierarchicalSplitTypeViewModel : INotifyPropertyChanged + public class HierarchicalSplitTypeViewModel : ICustomNotifyPropertyChanged { [XmlIgnore] [NonSerialized] - public HierarchicalTimingTypeViewModel Parent; + public HierarchicalTimingTypeViewModel? Parent; public EldenRingSplitType EldenRingSplitType { get => _eldenRingSplitType; - set => SetField(ref _eldenRingSplitType, value); + set => this.SetField(ref _eldenRingSplitType, value); } private EldenRingSplitType _eldenRingSplitType; public ObservableCollection Children { get; set; } = new ObservableCollection(); - #region INotifyPropertyChanged + #region ICustomNotifyPropertyChanged - private bool SetField(ref T field, T value, [CallerMemberName] string propertyName = null) - { - if (EqualityComparer.Default.Equals(field, value)) return false; - field = value; - OnPropertyChanged(propertyName ?? ""); - return true; - } + public event PropertyChangedEventHandler? PropertyChanged; - public event PropertyChangedEventHandler PropertyChanged; - private void OnPropertyChanged([CallerMemberName] string propertyName = null) + public void InvokePropertyChanged(string propertyName) { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName ?? "")); + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } #endregion @@ -96,33 +80,26 @@ private void OnPropertyChanged([CallerMemberName] string propertyName = null) [XmlInclude(typeof(uint))] [XmlInclude(typeof(Item))] [XmlInclude(typeof(Position))] - public class HierarchicalSplitViewModel : INotifyPropertyChanged + public class HierarchicalSplitViewModel : ICustomNotifyPropertyChanged { [XmlIgnore] [NonSerialized] - public HierarchicalSplitTypeViewModel Parent; + public HierarchicalSplitTypeViewModel? Parent; public object Split { get => _split; - set => SetField(ref _split, value); + set => this.SetField(ref _split, value); } - private object _split; + private object _split = null!; - #region INotifyPropertyChanged + #region ICustomNotifyPropertyChanged - private bool SetField(ref T field, T value, [CallerMemberName] string propertyName = null) - { - if (EqualityComparer.Default.Equals(field, value)) return false; - field = value; - OnPropertyChanged(propertyName ?? ""); - return true; - } + public event PropertyChangedEventHandler? PropertyChanged; - public event PropertyChangedEventHandler PropertyChanged; - private void OnPropertyChanged([CallerMemberName] string propertyName = null) + public void InvokePropertyChanged(string propertyName) { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName ?? "")); + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } #endregion diff --git a/src/SoulSplitter/UI/ErrorViewModel.cs b/src/SoulSplitter/UI/ErrorViewModel.cs index b99ac32..7230966 100644 --- a/src/SoulSplitter/UI/ErrorViewModel.cs +++ b/src/SoulSplitter/UI/ErrorViewModel.cs @@ -15,42 +15,33 @@ // along with this program. If not, see . using System; -using System.Collections.Generic; using System.ComponentModel; -using System.Runtime.CompilerServices; namespace SoulSplitter.UI.Generic { - public class ErrorViewModel + public class ErrorViewModel : ICustomNotifyPropertyChanged { public DateTime DateTime { get => _dateTime; - set => SetField(ref _dateTime, value); + set => this.SetField(ref _dateTime, value); } private DateTime _dateTime; public string Error { get => _error; - set => SetField(ref _error, value); + set => this.SetField(ref _error, value); } - private string _error; + private string _error = null!; - #region INotifyPropertyChanged + #region ICustomNotifyPropertyChanged - private bool SetField(ref T field, T value, [CallerMemberName] string propertyName = null) - { - if (EqualityComparer.Default.Equals(field, value)) return false; - field = value; - OnPropertyChanged(propertyName ?? ""); - return true; - } + public event PropertyChangedEventHandler? PropertyChanged; - public event PropertyChangedEventHandler PropertyChanged; - private void OnPropertyChanged([CallerMemberName] string propertyName = null) + public void InvokePropertyChanged(string propertyName) { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName ?? "")); + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } #endregion diff --git a/src/SoulSplitter/UI/Generic/BaseViewModel.cs b/src/SoulSplitter/UI/Generic/BaseViewModel.cs index 3687f50..cb4e484 100644 --- a/src/SoulSplitter/UI/Generic/BaseViewModel.cs +++ b/src/SoulSplitter/UI/Generic/BaseViewModel.cs @@ -14,9 +14,7 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -using System.Collections.Generic; using System.ComponentModel; -using System.Runtime.CompilerServices; using System.Xml.Serialization; using SoulMemory; using SoulMemory.Sekiro; @@ -27,7 +25,7 @@ namespace SoulSplitter.UI.Generic /// This object attempts to provide most of the general stuff that all souls games have /// Where needed, custom game implementations can be made /// - public class BaseViewModel : INotifyPropertyChanged + public class BaseViewModel : ICustomNotifyPropertyChanged { public BaseViewModel() { @@ -45,7 +43,7 @@ public SplitType? NewSplitType get => _newSplitType; set { - SetField(ref _newSplitType, value); + this.SetField(ref _newSplitType, value); switch (NewSplitType) { @@ -71,7 +69,7 @@ public TimingType? NewSplitTimingType get => _newSplitTimingType; set { - SetField(ref _newSplitTimingType, value); + this.SetField(ref _newSplitTimingType, value); NewSplitEnabledSplitType = true; NewSplitValue = null; } @@ -79,19 +77,19 @@ public TimingType? NewSplitTimingType private TimingType? _newSplitTimingType; [XmlIgnore] - public object NewSplitValue + public object? NewSplitValue { get => _newSplitValue; - set => SetField(ref _newSplitValue, value); + set => this.SetField(ref _newSplitValue, value); } - private object _newSplitValue; + private object? _newSplitValue; #endregion [XmlIgnore] public bool NewSplitEnabledSplitType { get => _newSplitEnabledSplitType; - set => SetField(ref _newSplitEnabledSplitType, value); + set => this.SetField(ref _newSplitEnabledSplitType, value); } private bool _newSplitEnabledSplitType = false; @@ -102,36 +100,36 @@ public bool NewSplitEnabledSplitType public RelayCommand AddSplitCommand { get => _addSplitCommand; - set => SetField(ref _addSplitCommand, value); + set => this.SetField(ref _addSplitCommand, value); } - private RelayCommand _addSplitCommand; + private RelayCommand _addSplitCommand = null!; [XmlIgnore] public RelayCommand RemoveSplitCommand { get => _removeSplitCommand; - set => SetField(ref _removeSplitCommand, value); + set => this.SetField(ref _removeSplitCommand, value); } - private RelayCommand _removeSplitCommand; + private RelayCommand _removeSplitCommand = null!; [XmlIgnore] public RelayCommand CopyGamePositionCommand { get => _copyGamePositionCommand; - set => SetField(ref _copyGamePositionCommand, value); + set => this.SetField(ref _copyGamePositionCommand, value); } - private RelayCommand _copyGamePositionCommand; + private RelayCommand _copyGamePositionCommand = null!; #endregion #region Functions - private void CopyGamePosition(object param) + private void CopyGamePosition() { Position.Position = CurrentPosition.Clone(); } - private void RemoveSplit(object param) + private void RemoveSplit() { SplitsViewModel.RemoveSplit(); } @@ -143,14 +141,14 @@ private void RemoveSplit(object param) public bool StartAutomatically { get => _startAutomatically; - set => SetField(ref _startAutomatically, value); + set => this.SetField(ref _startAutomatically, value); } private bool _startAutomatically = true; public SplitsViewModel SplitsViewModel { get => _splitsViewModel; - set => SetField(ref _splitsViewModel, value); + set => this.SetField(ref _splitsViewModel, value); } private SplitsViewModel _splitsViewModel = new SplitsViewModel(); @@ -158,15 +156,15 @@ public SplitsViewModel SplitsViewModel public VectorSize Position { get => _position; - set => SetField(ref _position, value); + set => this.SetField(ref _position, value); } - private VectorSize _position; + private VectorSize _position = null!; [XmlIgnore] public Vector3f CurrentPosition { get => _currentPosition; - set => SetField(ref _currentPosition, value); + set => this.SetField(ref _currentPosition, value); } private Vector3f _currentPosition = new Vector3f(0f, 0f, 0f); @@ -174,26 +172,19 @@ public Vector3f CurrentPosition public FlagDescription FlagDescription { get => _flagDescription; - set => SetField(ref _flagDescription, value); + set => this.SetField(ref _flagDescription, value); } - private FlagDescription _flagDescription; + private FlagDescription _flagDescription = null!; #endregion - #region INotifyPropertyChanged ============================================================================================================================================ + #region ICustomNotifyPropertyChanged - protected bool SetField(ref T field, T value, [CallerMemberName] string propertyName = null) - { - if (EqualityComparer.Default.Equals(field, value)) return false; - field = value; - OnPropertyChanged(propertyName ?? ""); - return true; - } + public event PropertyChangedEventHandler? PropertyChanged; - public event PropertyChangedEventHandler PropertyChanged; - protected void OnPropertyChanged([CallerMemberName] string propertyName = null) + public void InvokePropertyChanged(string propertyName) { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName ?? "")); + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } #endregion diff --git a/src/SoulSplitter/UI/Generic/BoolDescriptionViewModel.cs b/src/SoulSplitter/UI/Generic/BoolDescriptionViewModel.cs index 487e057..9ad26b1 100644 --- a/src/SoulSplitter/UI/Generic/BoolDescriptionViewModel.cs +++ b/src/SoulSplitter/UI/Generic/BoolDescriptionViewModel.cs @@ -14,25 +14,23 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -using System.Collections.Generic; using System.ComponentModel; -using System.Runtime.CompilerServices; namespace SoulSplitter.UI.Generic { - public class BoolDescriptionViewModel : INotifyPropertyChanged + public class BoolDescriptionViewModel : ICustomNotifyPropertyChanged { public string Description { get => _description; - set => SetField(ref _description, value); + set => this.SetField(ref _description, value); } private string _description = ""; public bool Value { get => _value; - set => SetField(ref _value, value); + set => this.SetField(ref _value, value); } private bool _value; @@ -41,20 +39,13 @@ public override string ToString() return $"{Value} {Description}"; } - #region INotifyPropertyChanged - private bool SetField(ref U field, U value, [CallerMemberName] string propertyName = null) - { - if (EqualityComparer.Default.Equals(field, value)) return false; - field = value; - OnPropertyChanged(propertyName ?? ""); - return true; - } + #region ICustomNotifyPropertyChanged - public event PropertyChangedEventHandler PropertyChanged; + public event PropertyChangedEventHandler? PropertyChanged; - private void OnPropertyChanged([CallerMemberName] string propertyName = null) + public void InvokePropertyChanged(string propertyName) { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName ?? "")); + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } #endregion diff --git a/src/SoulSplitter/UI/Generic/EnumFlagViewModel.cs b/src/SoulSplitter/UI/Generic/EnumFlagViewModel.cs index 53463e0..de101de 100644 --- a/src/SoulSplitter/UI/Generic/EnumFlagViewModel.cs +++ b/src/SoulSplitter/UI/Generic/EnumFlagViewModel.cs @@ -15,16 +15,14 @@ // along with this program. If not, see . using System; -using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using System.Linq; -using System.Runtime.CompilerServices; using SoulMemory.Memory; namespace SoulSplitter.UI.Generic { - public class EnumFlagViewModel : INotifyPropertyChanged where T : Enum + public class EnumFlagViewModel : ICustomNotifyPropertyChanged where T : Enum { public EnumFlagViewModel(T tEnum) { @@ -37,28 +35,28 @@ public EnumFlagViewModel(T tEnum) public T Value { get => _value; - set => SetField(ref _value, value); + set => this.SetField(ref _value, value); } - private T _value; + private T _value = default(T)!; public string Area { get => _area; - set => SetField(ref _area, value); + set => this.SetField(ref _area, value); } - private string _area; + private string _area = null!; public string Name { get => _name; - set => SetField(ref _name, value); + set => this.SetField(ref _name, value); } - private string _name; + private string _name = null!; public uint Flag { get => _flag; - set => SetField(ref _flag, value); + set => this.SetField(ref _flag, value); } private uint _flag; @@ -70,20 +68,13 @@ public override string ToString() return Name; } - #region INotifyPropertyChanged - private bool SetField(ref U field, U value, [CallerMemberName] string propertyName = null) - { - if (EqualityComparer.Default.Equals(field, value)) return false; - field = value; - OnPropertyChanged(propertyName ?? ""); - return true; - } + #region ICustomNotifyPropertyChanged - public event PropertyChangedEventHandler PropertyChanged; + public event PropertyChangedEventHandler? PropertyChanged; - private void OnPropertyChanged([CallerMemberName] string propertyName = null) + public void InvokePropertyChanged(string propertyName) { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName ?? "")); + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } #endregion diff --git a/src/SoulSplitter/UI/Generic/FilteredComboBox.cs b/src/SoulSplitter/UI/Generic/FilteredComboBox.cs index 4d315a0..8acbe4d 100644 --- a/src/SoulSplitter/UI/Generic/FilteredComboBox.cs +++ b/src/SoulSplitter/UI/Generic/FilteredComboBox.cs @@ -29,7 +29,7 @@ public class FilteredComboBox : ComboBox private string currentFilter = string.Empty; - protected TextBox EditableTextBox => GetTemplateChild("PART_EditableTextBox") as TextBox; + protected TextBox EditableTextBox => (GetTemplateChild("PART_EditableTextBox") as TextBox)!; protected override void OnItemsSourceChanged(IEnumerable oldValue, IEnumerable newValue) { diff --git a/src/SoulSplitter/UI/Generic/FlagDescription.cs b/src/SoulSplitter/UI/Generic/FlagDescription.cs index 9da7147..93b4522 100644 --- a/src/SoulSplitter/UI/Generic/FlagDescription.cs +++ b/src/SoulSplitter/UI/Generic/FlagDescription.cs @@ -14,32 +14,30 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -using System.Collections.Generic; using System.ComponentModel; -using System.Runtime.CompilerServices; namespace SoulSplitter.UI.Generic { - public class FlagDescription : INotifyPropertyChanged + public class FlagDescription : ICustomNotifyPropertyChanged { public uint Flag { get => _flag; - set => SetField(ref _flag, value); + set => this.SetField(ref _flag, value); } private uint _flag; public string Description { get => _description; - set => SetField(ref _description, value); + set => this.SetField(ref _description, value); } private string _description = ""; public bool State { get => _state; - set => SetField(ref _state, value); + set => this.SetField(ref _state, value); } private bool _state; @@ -48,17 +46,16 @@ public override string ToString() return $"{Flag} {Description}"; } - #region INotifyPropertyChanged - private bool SetField(ref U field, U value, [CallerMemberName] string propertyName = null) + + #region ICustomNotifyPropertyChanged + + public event PropertyChangedEventHandler? PropertyChanged; + + public void InvokePropertyChanged(string propertyName) { - if (EqualityComparer.Default.Equals(field, value)) return false; - field = value; - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName ?? "")); - return true; + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } - public event PropertyChangedEventHandler PropertyChanged; - #endregion } } diff --git a/src/SoulSplitter/UI/Generic/FlagTrackerViewModel.cs b/src/SoulSplitter/UI/Generic/FlagTrackerViewModel.cs index 0fdd1fa..209dc55 100644 --- a/src/SoulSplitter/UI/Generic/FlagTrackerViewModel.cs +++ b/src/SoulSplitter/UI/Generic/FlagTrackerViewModel.cs @@ -19,51 +19,43 @@ using System.Collections.ObjectModel; using System.ComponentModel; using System.Linq; -using System.Runtime.CompilerServices; using System.Windows.Media; using System.Xml.Serialization; namespace SoulSplitter.UI.Generic { - public class FlagTrackerCategoryViewModel : INotifyPropertyChanged + public class FlagTrackerCategoryViewModel : ICustomNotifyPropertyChanged { public string CategoryName { get => _categoryName; - set => SetField(ref _categoryName, value); + set => this.SetField(ref _categoryName, value); } - private string _categoryName; + private string _categoryName = null!; [XmlIgnore] public string Progress { get => _progress; - set => SetField(ref _progress, value); + set => this.SetField(ref _progress, value); } - private string _progress; + private string _progress = null!; public ObservableCollection EventFlags { get; set; } = new ObservableCollection(); - #region INotifyPropertyChanged - private bool SetField(ref U field, U value, [CallerMemberName] string propertyName = null) - { - if (EqualityComparer.Default.Equals(field, value)) return false; - field = value; - OnPropertyChanged(propertyName ?? ""); - return true; - } + #region ICustomNotifyPropertyChanged - public event PropertyChangedEventHandler PropertyChanged; + public event PropertyChangedEventHandler? PropertyChanged; - private void OnPropertyChanged([CallerMemberName] string propertyName = null) + public void InvokePropertyChanged(string propertyName) { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName ?? "")); + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } #endregion } - public class FlagTrackerViewModel : INotifyPropertyChanged + public class FlagTrackerViewModel : ICustomNotifyPropertyChanged { public FlagTrackerViewModel() { @@ -73,7 +65,7 @@ public FlagTrackerViewModel() #region Add/remove - private void AddEventFlag(object param) + private void AddEventFlag() { //Resolve category var category = EventFlagCategories.FirstOrDefault(i => i.CategoryName == CategoryName); @@ -104,7 +96,7 @@ private void AddEventFlag(object param) FlagDescription.Description = ""; } - private void RemoveEventFlag(object param) + private void RemoveEventFlag() { if(SelectedFlagDescription == null) { @@ -128,7 +120,7 @@ private void RemoveEventFlag(object param) #endregion #region update/reset - private List<(FlagTrackerCategoryViewModel category, FlagDescription eventFlag)> _lookup; + private List<(FlagTrackerCategoryViewModel category, FlagDescription eventFlag)>? _lookup; private int _currentIndex = 0; public void Start() @@ -251,7 +243,7 @@ public void Reset() public EventFlagTrackerDisplayMode DisplayMode { get => _displayMode; - set => SetField(ref _displayMode, value); + set => this.SetField(ref _displayMode, value); } private EventFlagTrackerDisplayMode _displayMode = EventFlagTrackerDisplayMode.Percentage; @@ -261,70 +253,70 @@ public EventFlagTrackerDisplayMode DisplayMode public string Progress { get => _progress; - set => SetField(ref _progress, value); + set => this.SetField(ref _progress, value); } - private string _progress; + private string _progress = null!; public double WindowWidth { get => _windowWidth; - set => SetField(ref _windowWidth, value); + set => this.SetField(ref _windowWidth, value); } private double _windowWidth = 800; public double WindowHeight { get => _windowHeight; - set => SetField(ref _windowHeight, value); + set => this.SetField(ref _windowHeight, value); } private double _windowHeight = 600; public double InputColumnWidth { get => _inputColumnWidth; - set => SetField(ref _inputColumnWidth, value); + set => this.SetField(ref _inputColumnWidth, value); } private double _inputColumnWidth = 400; public double CategoryPercentagesRowHeight { get => _categoryPercentagesRowHeight; - set => SetField(ref _categoryPercentagesRowHeight, value); + set => this.SetField(ref _categoryPercentagesRowHeight, value); } private double _categoryPercentagesRowHeight = 300; public double CategoryPercentageFontSize { get => _categoryPercentageFontSize; - set => SetField(ref _categoryPercentageFontSize, value); + set => this.SetField(ref _categoryPercentageFontSize, value); } private double _categoryPercentageFontSize = 30.0; public int TotalPercentageFontSize { get => _totalPercentageFontSize; - set => SetField(ref _totalPercentageFontSize, value); + set => this.SetField(ref _totalPercentageFontSize, value); } private int _totalPercentageFontSize = 60; public Color BackgroundColor { get => _backgroundColor; - set => SetField(ref _backgroundColor, value); + set => this.SetField(ref _backgroundColor, value); } private Color _backgroundColor = Colors.White; public Color TextColor { get => _textColor; - set => SetField(ref _textColor, value); + set => this.SetField(ref _textColor, value); } private Color _textColor = Colors.Black; public int FlagsPerFrame { get => _flagsPerFrame; - set => SetField(ref _flagsPerFrame, value); + set => this.SetField(ref _flagsPerFrame, value); } private int _flagsPerFrame = 10; @@ -336,60 +328,54 @@ public int FlagsPerFrame public string CategoryName { get => _categoryName; - set => SetField(ref _categoryName, value); + set => this.SetField(ref _categoryName, value); } - private string _categoryName; + private string _categoryName = null!; [XmlIgnore] public FlagDescription FlagDescription { get => _flagDescription; - set => SetField(ref _flagDescription, value); + set => this.SetField(ref _flagDescription, value); } private FlagDescription _flagDescription = new FlagDescription(); [XmlIgnore] - public FlagDescription SelectedFlagDescription + public FlagDescription? SelectedFlagDescription { get => _selectedFlagDescription; - set => SetField(ref _selectedFlagDescription, value); + set => this.SetField(ref _selectedFlagDescription, value); } - private FlagDescription _selectedFlagDescription = null; + private FlagDescription? _selectedFlagDescription; [XmlIgnore] public RelayCommand CommandAddEventFlag { get => _commandAddEventFlag; - set => SetField(ref _commandAddEventFlag, value); + set => this.SetField(ref _commandAddEventFlag, value); } - private RelayCommand _commandAddEventFlag; + private RelayCommand _commandAddEventFlag = null!; [XmlIgnore] public RelayCommand CommandRemoveEventFlag { get => _commandRemoveEventFlag; - set => SetField(ref _commandRemoveEventFlag, value); + set => this.SetField(ref _commandRemoveEventFlag, value); } - private RelayCommand _commandRemoveEventFlag; + private RelayCommand _commandRemoveEventFlag = null!; #endregion #endregion - #region INotifyPropertyChanged - private bool SetField(ref U field, U value, [CallerMemberName] string propertyName = null) - { - if (EqualityComparer.Default.Equals(field, value)) return false; - field = value; - OnPropertyChanged(propertyName ?? ""); - return true; - } - public event PropertyChangedEventHandler PropertyChanged; + #region ICustomNotifyPropertyChanged + + public event PropertyChangedEventHandler? PropertyChanged; - private void OnPropertyChanged([CallerMemberName] string propertyName = null) + public void InvokePropertyChanged(string propertyName) { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName ?? "")); + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } #endregion diff --git a/src/SoulSplitter/UI/Generic/HierarchicalViewModel.cs b/src/SoulSplitter/UI/Generic/HierarchicalViewModel.cs index 0d8c37c..bb81614 100644 --- a/src/SoulSplitter/UI/Generic/HierarchicalViewModel.cs +++ b/src/SoulSplitter/UI/Generic/HierarchicalViewModel.cs @@ -15,16 +15,14 @@ // along with this program. If not, see . using System; -using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using System.Linq; -using System.Runtime.CompilerServices; using System.Xml.Serialization; namespace SoulSplitter.UI.Generic { - public class SplitsViewModel : INotifyPropertyChanged + public class SplitsViewModel : ICustomNotifyPropertyChanged { public int TotalSplitsCount => Splits.Sum(timing => timing.Children.Sum(type => type.Children.Count)); @@ -55,11 +53,11 @@ public void RemoveSplit() if (SelectedSplit != null) { var parent = SelectedSplit.Parent; - parent.Children.Remove(SelectedSplit); + parent!.Children.Remove(SelectedSplit); if (parent.Children.Count <= 0) { var nextParent = parent.Parent; - nextParent.Children.Remove(parent); + nextParent!.Children.Remove(parent); if (nextParent.Children.Count <= 0) { Splits.Remove(nextParent); @@ -89,95 +87,75 @@ public void RestoreHierarchy() } [XmlIgnore] - public SplitViewModel SelectedSplit + public SplitViewModel? SelectedSplit { get => _selectedSplit; - set => SetField(ref _selectedSplit, value); + set => this.SetField(ref _selectedSplit, value); } - private SplitViewModel _selectedSplit; + private SplitViewModel? _selectedSplit = null!; public ObservableCollection Splits { get; set; } = new ObservableCollection(); - #region INotifyPropertyChanged - private bool SetField(ref T field, T value, [CallerMemberName] string propertyName = null) - { - if (EqualityComparer.Default.Equals(field, value)) return false; - field = value; - OnPropertyChanged(propertyName ?? ""); - return true; - } + #region ICustomNotifyPropertyChanged + + public event PropertyChangedEventHandler? PropertyChanged; - public event PropertyChangedEventHandler PropertyChanged; - private void OnPropertyChanged([CallerMemberName] string propertyName = null) + public void InvokePropertyChanged(string propertyName) { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName ?? "")); + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } #endregion } - public class SplitTimingViewModel : INotifyPropertyChanged + public class SplitTimingViewModel : ICustomNotifyPropertyChanged { public TimingType TimingType { get => _timingType; - set => SetField(ref _timingType, value); + set => this.SetField(ref _timingType, value); } private TimingType _timingType; public ObservableCollection Children { get; set; } = new ObservableCollection(); - #region INotifyPropertyChanged + #region ICustomNotifyPropertyChanged - private bool SetField(ref T field, T value, [CallerMemberName] string propertyName = null) - { - if (EqualityComparer.Default.Equals(field, value)) return false; - field = value; - OnPropertyChanged(propertyName ?? ""); - return true; - } + public event PropertyChangedEventHandler? PropertyChanged; - public event PropertyChangedEventHandler PropertyChanged; - private void OnPropertyChanged([CallerMemberName] string propertyName = null) + public void InvokePropertyChanged(string propertyName) { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName ?? "")); + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } #endregion } - - public class SplitTypeViewModel : INotifyPropertyChanged + + public class SplitTypeViewModel : ICustomNotifyPropertyChanged { [XmlIgnore] [NonSerialized] - public SplitTimingViewModel Parent; + public SplitTimingViewModel? Parent = null!; public SplitType SplitType { get => _splitType; - set => SetField(ref _splitType, value); + set => this.SetField(ref _splitType, value); } private SplitType _splitType; public ObservableCollection Children { get; set; } = new ObservableCollection(); - #region INotifyPropertyChanged + #region ICustomNotifyPropertyChanged - private bool SetField(ref T field, T value, [CallerMemberName] string propertyName = null) - { - if (EqualityComparer.Default.Equals(field, value)) return false; - field = value; - OnPropertyChanged(propertyName ?? ""); - return true; - } + public event PropertyChangedEventHandler? PropertyChanged; - public event PropertyChangedEventHandler PropertyChanged; - private void OnPropertyChanged([CallerMemberName] string propertyName = null) + public void InvokePropertyChanged(string propertyName) { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName ?? "")); + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } #endregion @@ -203,33 +181,26 @@ private void OnPropertyChanged([CallerMemberName] string propertyName = null) XmlInclude(typeof(Splits.Sekiro.Attribute)), XmlInclude(typeof(SoulMemory.Sekiro.Idol)) ] - public class SplitViewModel : INotifyPropertyChanged + public class SplitViewModel : ICustomNotifyPropertyChanged { [XmlIgnore] [NonSerialized] - public SplitTypeViewModel Parent; + public SplitTypeViewModel? Parent = null!; public object Split { get => _split; - set => SetField(ref _split, value); + set => this.SetField(ref _split, value); } - private object _split; - - #region INotifyPropertyChanged + private object _split = null!; - private bool SetField(ref T field, T value, [CallerMemberName] string propertyName = null) - { - if (EqualityComparer.Default.Equals(field, value)) return false; - field = value; - OnPropertyChanged(propertyName ?? ""); - return true; - } + #region ICustomNotifyPropertyChanged - public event PropertyChangedEventHandler PropertyChanged; - private void OnPropertyChanged([CallerMemberName] string propertyName = null) + public event PropertyChangedEventHandler? PropertyChanged; + + public void InvokePropertyChanged(string propertyName) { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName ?? "")); + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } #endregion diff --git a/src/SoulSplitter/UI/Generic/ICustomNotifyPropertyChanged.cs b/src/SoulSplitter/UI/Generic/ICustomNotifyPropertyChanged.cs new file mode 100644 index 0000000..15c2c69 --- /dev/null +++ b/src/SoulSplitter/UI/Generic/ICustomNotifyPropertyChanged.cs @@ -0,0 +1,25 @@ +// This file is part of the SoulSplitter distribution (https://github.com/FrankvdStam/SoulSplitter). +// Copyright (c) 2022 Frank van der Stam. +// https://github.com/FrankvdStam/SoulSplitter/blob/main/LICENSE +// +// 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, version 3. +// +// 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 . + +using System.ComponentModel; + +namespace SoulSplitter.UI.Generic +{ + internal interface ICustomNotifyPropertyChanged : INotifyPropertyChanged + { + void InvokePropertyChanged(string propertyName); + } +} diff --git a/src/SoulSplitter/UI/Generic/RelayCommand.cs b/src/SoulSplitter/UI/Generic/RelayCommand.cs index 5c69bfa..5402ec7 100644 --- a/src/SoulSplitter/UI/Generic/RelayCommand.cs +++ b/src/SoulSplitter/UI/Generic/RelayCommand.cs @@ -21,14 +21,24 @@ namespace SoulSplitter.UI.Generic { public class RelayCommand : ICommand { - public RelayCommand(Action execute, Func canExecute = null) + public RelayCommand(Action execute) : this((param) => execute(), (Func?)null) { } + public RelayCommand(Action execute, Func canExecute) : this((param) => execute(), (param) => canExecute()) { } + public RelayCommand(Action execute, Func canExecute) : this((param) => execute(), canExecute) { } + public RelayCommand(Action execute) : this(execute, (Func?)null) { } + public RelayCommand(Action execute, Func canExecute) : this(execute, (param) => canExecute()) { } + + + + + + public RelayCommand(Action execute, Func? canExecute) { _execute = execute; _canExecute = canExecute; } - private readonly Action _execute; - private readonly Func _canExecute; + private readonly Action _execute; + private readonly Func? _canExecute; public event EventHandler CanExecuteChanged { @@ -36,12 +46,12 @@ public event EventHandler CanExecuteChanged remove => CommandManager.RequerySuggested -= value; } - public bool CanExecute(object parameter) + public bool CanExecute(object? parameter) { return _canExecute == null || _canExecute(parameter); } - public void Execute(object parameter) + public void Execute(object? parameter) { _execute(parameter); } diff --git a/src/SoulSplitter/UI/Generic/SplitTemplateSelector.cs b/src/SoulSplitter/UI/Generic/SplitTemplateSelector.cs index 8c7258a..863d368 100644 --- a/src/SoulSplitter/UI/Generic/SplitTemplateSelector.cs +++ b/src/SoulSplitter/UI/Generic/SplitTemplateSelector.cs @@ -22,8 +22,8 @@ namespace SoulSplitter.UI.Generic { public class SplitTemplateSelector : DataTemplateSelector { - public DataTemplate EnumTemplate { get; set; } - public DataTemplate VectorSizeTemplate { get; set; } + public DataTemplate EnumTemplate { get; set; } = null!; + public DataTemplate VectorSizeTemplate { get; set; } = null!; public override DataTemplate SelectTemplate(object item, DependencyObject container) { diff --git a/src/SoulSplitter/UI/Generic/VectorSize.cs b/src/SoulSplitter/UI/Generic/VectorSize.cs index c4eb1ff..d061222 100644 --- a/src/SoulSplitter/UI/Generic/VectorSize.cs +++ b/src/SoulSplitter/UI/Generic/VectorSize.cs @@ -14,33 +14,31 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -using System.Collections.Generic; using System.ComponentModel; -using System.Runtime.CompilerServices; using SoulMemory; namespace SoulSplitter.UI.Generic { - public class VectorSize : INotifyPropertyChanged + public class VectorSize : ICustomNotifyPropertyChanged { public Vector3f Position { get => _position; - set => SetField(ref _position, value); + set => this.SetField(ref _position, value); } private Vector3f _position = new Vector3f(0,0,0); public float Size { get => _size; - set => SetField(ref _size, value); + set => this.SetField(ref _size, value); } private float _size = 5.0f; public string Description { get => _description; - set => SetField(ref _description, value); + set => this.SetField(ref _description, value); } private string _description = ""; @@ -49,19 +47,13 @@ public override string ToString() return $"{Position}, size {Size}, {Description}"; } - #region INotifyPropertyChanged - private bool SetField(ref T field, T value, [CallerMemberName] string propertyName = null) - { - if (EqualityComparer.Default.Equals(field, value)) return false; - field = value; - OnPropertyChanged(propertyName ?? ""); - return true; - } + #region ICustomNotifyPropertyChanged + + public event PropertyChangedEventHandler? PropertyChanged; - public event PropertyChangedEventHandler PropertyChanged; - private void OnPropertyChanged([CallerMemberName] string propertyName = null) + public void InvokePropertyChanged(string propertyName) { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName ?? "")); + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } #endregion diff --git a/src/SoulSplitter/UI/MainViewModel.cs b/src/SoulSplitter/UI/MainViewModel.cs index adae9a8..30e76aa 100644 --- a/src/SoulSplitter/UI/MainViewModel.cs +++ b/src/SoulSplitter/UI/MainViewModel.cs @@ -15,12 +15,10 @@ // along with this program. If not, see . using System; -using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using System.Diagnostics; using System.IO; -using System.Runtime.CompilerServices; using System.Windows; using System.Windows.Forms.Integration; using System.Windows.Media; @@ -39,7 +37,7 @@ namespace SoulSplitter.UI { - public class MainViewModel : INotifyPropertyChanged + public class MainViewModel : ICustomNotifyPropertyChanged { public MainViewModel() { @@ -71,7 +69,7 @@ public void Update(MainViewModel mainViewModel) public Game SelectedGame { get => _selectedGame; - set => SetField(ref _selectedGame, value); + set => this.SetField(ref _selectedGame, value); } private Game _selectedGame = Game.EldenRing; @@ -80,49 +78,49 @@ public Game SelectedGame public DarkSouls1ViewModel DarkSouls1ViewModel { get => _darkSouls1ViewModel; - set => SetField(ref _darkSouls1ViewModel, value); + set => this.SetField(ref _darkSouls1ViewModel, value); } private DarkSouls1ViewModel _darkSouls1ViewModel = new DarkSouls1ViewModel(); public DarkSouls2ViewModel DarkSouls2ViewModel { get => _darkSouls2ViewModel; - set => SetField(ref _darkSouls2ViewModel, value); + set => this.SetField(ref _darkSouls2ViewModel, value); } private DarkSouls2ViewModel _darkSouls2ViewModel = new DarkSouls2ViewModel(); public DarkSouls3ViewModel DarkSouls3ViewModel { get => _darkSouls3ViewModel; - set => SetField(ref _darkSouls3ViewModel, value); + set => this.SetField(ref _darkSouls3ViewModel, value); } private DarkSouls3ViewModel _darkSouls3ViewModel = new DarkSouls3ViewModel(); public SekiroViewModel SekiroViewModel { get => _sekiroViewModel; - set => SetField(ref _sekiroViewModel, value); + set => this.SetField(ref _sekiroViewModel, value); } private SekiroViewModel _sekiroViewModel = new SekiroViewModel(); public EldenRingViewModel EldenRingViewModel { get => _eldenRingViewModel; - set => SetField(ref _eldenRingViewModel, value); + set => this.SetField(ref _eldenRingViewModel, value); } private EldenRingViewModel _eldenRingViewModel = new EldenRingViewModel(); public ArmoredCore6ViewModel ArmoredCore6ViewModel { get => _armoredCore6ViewModel; - set => SetField(ref _armoredCore6ViewModel, value); + set => this.SetField(ref _armoredCore6ViewModel, value); } private ArmoredCore6ViewModel _armoredCore6ViewModel = new ArmoredCore6ViewModel(); public FlagTrackerViewModel FlagTrackerViewModel { get => _flagTrackerViewModel; - set => SetField(ref _flagTrackerViewModel, value); + set => this.SetField(ref _flagTrackerViewModel, value); } private FlagTrackerViewModel _flagTrackerViewModel = new FlagTrackerViewModel(); @@ -133,7 +131,7 @@ public FlagTrackerViewModel FlagTrackerViewModel public bool IgnoreProcessNotRunningErrors { get => _ignoreProcessNotRunningErrors; - set => SetField(ref _ignoreProcessNotRunningErrors, value); + set => this.SetField(ref _ignoreProcessNotRunningErrors, value); } private bool _ignoreProcessNotRunningErrors = true; @@ -181,7 +179,7 @@ private void AddError(ErrorViewModel errorViewModel) UpdateErrorBadge(); } - public void ClearErrors(object param) + public void ClearErrors() { Errors.Clear(); UpdateErrorBadge(); @@ -215,20 +213,20 @@ private void UpdateErrorBadge() public RelayCommand CommandClearErrors { get => _commandClearErrors; - set => SetField(ref _commandClearErrors, value); + set => this.SetField(ref _commandClearErrors, value); } - private RelayCommand _commandClearErrors; + private RelayCommand _commandClearErrors = null!; [XmlIgnore] public RelayCommand CommandShowErrors { get => _commandShowErrors; - set => SetField(ref _commandShowErrors, value); + set => this.SetField(ref _commandShowErrors, value); } - private RelayCommand _commandShowErrors; + private RelayCommand _commandShowErrors = null!; - private ErrorWindow _errorWindow = null; - private void ShowErrorWindow(object param) + private ErrorWindow _errorWindow = null!; + private void ShowErrorWindow() { if(_errorWindow == null) { @@ -247,15 +245,15 @@ private void ShowErrorWindow(object param) public string ErrorCount { get => _errorCount; - set => SetField(ref _errorCount, value); + set => this.SetField(ref _errorCount, value); } - private string _errorCount; + private string _errorCount = null!; [XmlIgnore] public Brush BadgeBackgroundBrush { get => _badgeBackgroundBrush; - set => SetField(ref _badgeBackgroundBrush, value); + set => this.SetField(ref _badgeBackgroundBrush, value); } private Brush _badgeBackgroundBrush = new SolidColorBrush(Colors.Transparent); @@ -263,7 +261,7 @@ public Brush BadgeBackgroundBrush public Brush BadgeForegroundBrush { get => _badgeForegroundBrush; - set => SetField(ref _badgeForegroundBrush, value); + set => this.SetField(ref _badgeForegroundBrush, value); } private Brush _badgeForegroundBrush = new SolidColorBrush(Colors.Transparent); @@ -271,7 +269,7 @@ public Brush BadgeForegroundBrush public Visibility BadgeVisibilityInverse { get => _badgeVisibilityInverse; - set => SetField(ref _badgeVisibilityInverse, value); + set => this.SetField(ref _badgeVisibilityInverse, value); } private Visibility _badgeVisibilityInverse = Visibility.Visible; @@ -286,12 +284,12 @@ public Visibility BadgeVisibilityInverse public RelayCommand CommandTroubleShooting { get => _commandTroubleShooting; - set => SetField(ref _commandTroubleShooting, value); + set => this.SetField(ref _commandTroubleShooting, value); } - private RelayCommand _commandTroubleShooting; + private RelayCommand _commandTroubleShooting = null!; private const string TroubleshootingUrl = "https://github.com/FrankvdStam/SoulSplitter/wiki/troubleshooting"; - private void OpenTroubleshootingWebpage(object param) + private void OpenTroubleshootingWebpage() { Process.Start(TroubleshootingUrl); } @@ -300,11 +298,11 @@ private void OpenTroubleshootingWebpage(object param) public RelayCommand CommandRunEventFlagLogger { get => _commandRunEventFlagLogger; - set => SetField(ref _commandRunEventFlagLogger, value); + set => this.SetField(ref _commandRunEventFlagLogger, value); } - private RelayCommand _commandRunEventFlagLogger; + private RelayCommand _commandRunEventFlagLogger = null!; - private void RunEventFlagLogger(object sender) + private void RunEventFlagLogger() { TryAndHandleError(SoulMemoryRs.Launch); } @@ -313,12 +311,12 @@ private void RunEventFlagLogger(object sender) public RelayCommand CommandOpenFlagTrackerWindow { get => _commandOpenFlagTrackerWindow; - set => SetField(ref _commandOpenFlagTrackerWindow, value); + set => this.SetField(ref _commandOpenFlagTrackerWindow, value); } - private RelayCommand _commandOpenFlagTrackerWindow; + private RelayCommand _commandOpenFlagTrackerWindow = null!; - private FlagTrackerWindow _flagTrackerWindow; - private void OpenFlagTrackerWindow(object sender) + private FlagTrackerWindow _flagTrackerWindow = null!; + private void OpenFlagTrackerWindow() { if (_flagTrackerWindow == null) { @@ -341,12 +339,12 @@ private void OpenFlagTrackerWindow(object sender) public RelayCommand CommandAddError { get => _commandAddError; - set => SetField(ref _commandAddError, value); + set => this.SetField(ref _commandAddError, value); } - private RelayCommand _commandAddError; + private RelayCommand _commandAddError = null!; //For debugging purposes - private void AddErrorCommand(object param) + private void AddErrorCommand() { AddException(new Exception("adf")); } @@ -355,11 +353,11 @@ private void AddErrorCommand(object param) public RelayCommand CommandImportSettingsFromFile { get => _commandImportSettingsFromFile; - set => SetField(ref _commandImportSettingsFromFile, value); + set => this.SetField(ref _commandImportSettingsFromFile, value); } - private RelayCommand _commandImportSettingsFromFile; + private RelayCommand _commandImportSettingsFromFile = null!; - private void ImportSettings(object sender) + private void ImportSettings() { TryAndHandleError(() => { @@ -376,17 +374,17 @@ private void ImportSettings(object sender) }); } - [XmlIgnore] public string ImportXml = null; + [XmlIgnore] public string ImportXml = null!; [XmlIgnore] public RelayCommand CommandExportSettingsFromFile { get => _commandExportSettingsFromFile; - set => SetField(ref _commandExportSettingsFromFile, value); + set => this.SetField(ref _commandExportSettingsFromFile, value); } - private RelayCommand _commandExportSettingsFromFile; + private RelayCommand _commandExportSettingsFromFile = null!; - private void ExportSettings(object sender) + private void ExportSettings() { TryAndHandleError(() => { @@ -436,40 +434,20 @@ public static MainViewModel Deserialize(string xml) } #endregion - - #region INotifyPropertyChanged - private bool SetField(ref T field, T value, [CallerMemberName] string propertyName = null) - { - if (EqualityComparer.Default.Equals(field, value)) return false; - field = value; - OnPropertyChanged(propertyName ?? ""); - return true; - } + private ImageSource iconHelper = null!; - public event PropertyChangedEventHandler PropertyChanged; - private void OnPropertyChanged([CallerMemberName] string propertyName = null) - { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName ?? "")); - } + public ImageSource IconHelper { get => iconHelper; set => this.SetField(ref iconHelper, value); } - protected bool SetProperty(ref T field, T newValue, [CallerMemberName] string propertyName = null) - { - if (!Equals(field, newValue)) - { - field = newValue; - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); - return true; - } - - return false; - } + #region ICustomNotifyPropertyChanged - private ImageSource iconHelper; + public event PropertyChangedEventHandler? PropertyChanged; - public ImageSource IconHelper { get => iconHelper; set => SetProperty(ref iconHelper, value); } + public void InvokePropertyChanged(string propertyName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } #endregion - } } diff --git a/src/SoulSplitter/UI/Sekiro/SekiroViewModel.cs b/src/SoulSplitter/UI/Sekiro/SekiroViewModel.cs index 7e37a10..e7d4c14 100644 --- a/src/SoulSplitter/UI/Sekiro/SekiroViewModel.cs +++ b/src/SoulSplitter/UI/Sekiro/SekiroViewModel.cs @@ -32,14 +32,14 @@ public SekiroViewModel() public bool OverwriteIgtOnStart { get => _overwriteIgtOnStart; - set => SetField(ref _overwriteIgtOnStart, value); + set => this.SetField(ref _overwriteIgtOnStart, value); } private bool _overwriteIgtOnStart = false; #region add/remove splits ============================================================================================================================================ - private bool CanAddSplit(object param) + private bool CanAddSplit() { if (!NewSplitTimingType.HasValue || !NewSplitType.HasValue) { @@ -64,9 +64,9 @@ private bool CanAddSplit(object param) } } - private void AddSplit(object param) + private void AddSplit() { - object split = null; + object? split = null; switch (NewSplitType) { default: @@ -89,7 +89,7 @@ private void AddSplit(object param) split = FlagDescription; break; } - SplitsViewModel.AddSplit(NewSplitTimingType.Value, NewSplitType.Value, split); + SplitsViewModel.AddSplit(NewSplitTimingType!.Value, NewSplitType.Value, split!); NewSplitTimingType = null; NewSplitEnabledSplitType = false; diff --git a/src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs b/src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs index 1b8c3eb..fcb607f 100644 --- a/src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs +++ b/src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs @@ -17,10 +17,8 @@ using SoulSplitter.UI.Generic; using System; using System.Collections; -using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; -using System.Runtime.CompilerServices; using System.Windows; using System.Windows.Controls; using SoulMemory; @@ -31,7 +29,7 @@ namespace SoulSplitter.UIv2 /// /// Interaction logic for SplitSettingsControl.xaml /// - public partial class SplitSettingsControl : UserControl, INotifyPropertyChanged + public partial class SplitSettingsControl : UserControl, ICustomNotifyPropertyChanged { public SplitSettingsControl() { @@ -44,7 +42,7 @@ public SplitSettingsControl() #region Add split logic - private bool CanAddSplit(object param) + private bool CanAddSplit(object? param) { switch (SelectedSplitType) { @@ -83,7 +81,7 @@ private bool CanAddSplit(object param) throw new InvalidOperationException($"Unhandled case {SelectedSplitType}"); } - private void AddSplitFunc(object parameter) + private void AddSplitFunc(object? parameter) { var flatSplit = new FlatSplit { @@ -135,8 +133,8 @@ private void AddSplitFunc(object parameter) AddSplit.Execute(flatSplit); } - private bool CanRemoveSplit(object param) => SplitsViewModel.SelectedSplit != null; - private void RemoveSplitFunc(object parameter) => RemoveSplit?.Execute(parameter); + private bool CanRemoveSplit(object? param) => SplitsViewModel.SelectedSplit != null; + private void RemoveSplitFunc(object? parameter) => RemoveSplit?.Execute(parameter); #endregion @@ -248,7 +246,7 @@ public Vector3f GamePosition public static readonly DependencyProperty AddSplitDependencyProperty = DependencyProperty.Register(nameof(AddSplit), typeof(RelayCommand), typeof(SplitSettingsControl), - new FrameworkPropertyMetadata(new RelayCommand(null), FrameworkPropertyMetadataOptions.None)); + new FrameworkPropertyMetadata(null, FrameworkPropertyMetadataOptions.None)); public RelayCommand AddSplit { @@ -258,7 +256,7 @@ public RelayCommand AddSplit public static readonly DependencyProperty RemoveSplitDependencyProperty = DependencyProperty.Register(nameof(RemoveSplit), typeof(RelayCommand), typeof(SplitSettingsControl), - new FrameworkPropertyMetadata(new RelayCommand(null), FrameworkPropertyMetadataOptions.None)); + new FrameworkPropertyMetadata(null, FrameworkPropertyMetadataOptions.None)); public RelayCommand RemoveSplit { @@ -273,25 +271,25 @@ public RelayCommand RemoveSplit public RelayCommand AddSplitCommand { get => _addSplitCommand; - set => SetField(ref _addSplitCommand, value); + set => this.SetField(ref _addSplitCommand, value); } - private RelayCommand _addSplitCommand; + private RelayCommand _addSplitCommand = null!; public RelayCommand RemoveSplitCommand { get => _removeSplitCommand; - set => SetField(ref _removeSplitCommand, value); + set => this.SetField(ref _removeSplitCommand, value); } - private RelayCommand _removeSplitCommand; + private RelayCommand _removeSplitCommand = null!; public RelayCommand CopyGamePositionCommand { get => _copyGamePositionCommand; - set => SetField(ref _copyGamePositionCommand, value); + set => this.SetField(ref _copyGamePositionCommand, value); } - private RelayCommand _copyGamePositionCommand; + private RelayCommand _copyGamePositionCommand = null!; - private void CopyGamePosition(object param) + private void CopyGamePosition(object? param) { Position.Position = GamePosition.Clone(); } @@ -302,78 +300,78 @@ private void CopyGamePosition(object param) public TimingType SelectedTimingType { get => _selectedTimingType; - set => SetField(ref _selectedTimingType, value); + set => this.SetField(ref _selectedTimingType, value); } private TimingType _selectedTimingType = TimingType.Immediate; public SplitType SelectedSplitType { get => _selectedSplitType; - set => SetField(ref _selectedSplitType, value); + set => this.SetField(ref _selectedSplitType, value); } private SplitType _selectedSplitType = SplitType.Boss; public Enum SelectedBoss { get => _selectedBoss; - set => SetField(ref _selectedBoss, value); + set => this.SetField(ref _selectedBoss, value); } - private Enum _selectedBoss; + private Enum _selectedBoss = null!; public Enum SelectedKnownFlag { get => _selectedKnownFlag; - set => SetField(ref _selectedKnownFlag, value); + set => this.SetField(ref _selectedKnownFlag, value); } - private Enum _selectedKnownFlag; + private Enum _selectedKnownFlag = null!; public Enum SelectedBonfire { get => _selectedBonfire; - set => SetField(ref _selectedBonfire, value); + set => this.SetField(ref _selectedBonfire, value); } - private Enum _selectedBonfire; + private Enum _selectedBonfire = null!; //For dark souls 1 specifically public Enum SelectedBonfireState { get => _selectedBonfireState; - set => SetField(ref _selectedBonfireState, value); + set => this.SetField(ref _selectedBonfireState, value); } - private Enum _selectedBonfireState; + private Enum _selectedBonfireState = null!; public Enum SelectedAttribute { get => _selectedAttribute; - set => SetField(ref _selectedAttribute, value); + set => this.SetField(ref _selectedAttribute, value); } - private Enum _selectedAttribute; + private Enum _selectedAttribute = null!; public int AttributeLevel { get => _attributeLevel; - set => SetField(ref _attributeLevel, value); + set => this.SetField(ref _attributeLevel, value); } private int _attributeLevel = 10; public Enum SelectedItem { get => _selectedItem; - set => SetField(ref _selectedItem, value); + set => this.SetField(ref _selectedItem, value); } - private Enum _selectedItem; + private Enum _selectedItem = null!; public VectorSize Position { get => _position; - set => SetField(ref _position, value); + set => this.SetField(ref _position, value); } private VectorSize _position = new VectorSize(); public FlagDescription FlagDescription { get => _flagDescription; - set => SetField(ref _flagDescription, value); + set => this.SetField(ref _flagDescription, value); } private FlagDescription _flagDescription = new FlagDescription(); #endregion @@ -394,21 +392,13 @@ private void TreeView_OnSelectedItemChanged(object sender, RoutedPropertyChanged } } + #region ICustomNotifyPropertyChanged - #region INotifyPropertyChanged - private bool SetField(ref U field, U value, [CallerMemberName] string propertyName = null) - { - if (EqualityComparer.Default.Equals(field, value)) return false; - field = value; - OnPropertyChanged(propertyName ?? ""); - return true; - } - - public event PropertyChangedEventHandler PropertyChanged; + public event PropertyChangedEventHandler? PropertyChanged; - private void OnPropertyChanged([CallerMemberName] string propertyName = null) + public void InvokePropertyChanged(string propertyName) { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName ?? "")); + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } #endregion diff --git a/src/SoulSplitter/ViewModels/Games/ArmoredCore6ViewModel.cs b/src/SoulSplitter/ViewModels/Games/ArmoredCore6ViewModel.cs index 64d67ae..65b6b7d 100644 --- a/src/SoulSplitter/ViewModels/Games/ArmoredCore6ViewModel.cs +++ b/src/SoulSplitter/ViewModels/Games/ArmoredCore6ViewModel.cs @@ -28,7 +28,7 @@ public ArmoredCore6ViewModel() RemoveSplitCommand = new RelayCommand(RemoveSplit); } - private bool CanAddSplit(object param) + private bool CanAddSplit(object? param) { if (param is FlatSplit) { @@ -38,7 +38,7 @@ private bool CanAddSplit(object param) return false; } - private void AddSplit(object param) + private void AddSplit(object? param) { if (param is FlatSplit flatSplit) { @@ -46,7 +46,7 @@ private void AddSplit(object param) } } - private void RemoveSplit(object param) + private void RemoveSplit(object? o) { SplitsViewModel.RemoveSplit(); } diff --git a/src/cli/Program.cs b/src/cli/Program.cs index c480def..dd83796 100644 --- a/src/cli/Program.cs +++ b/src/cli/Program.cs @@ -31,7 +31,6 @@ using SoulMemory.Parameters; using SoulMemory.Sekiro; using SoulSplitter.Hotkeys; -using SoulSplitter.soulmemory_rs; #pragma warning disable CS0162 diff --git a/tests/SoulMemory.Tests/MemoryV2/ProcessHookTests.cs b/tests/SoulMemory.Tests/MemoryV2/ProcessHookTests.cs index d3fa10c..5de0ccb 100644 --- a/tests/SoulMemory.Tests/MemoryV2/ProcessHookTests.cs +++ b/tests/SoulMemory.Tests/MemoryV2/ProcessHookTests.cs @@ -71,7 +71,7 @@ public void TryRefresh_ProcessNotRunning() [TestMethod] public void TryRefresh_Initialized_MainModuleNull() { - Exception ex; + Exception? ex; _mockProcessWrapper .Setup(i => i.TryRefresh(It.IsAny(), out ex)) .Returns(ProcessRefreshResult.Initialized); @@ -92,7 +92,7 @@ public void TryRefresh_Initialized_MainModuleNull() [TestMethod] public void TryRefresh_Initialized_ScansFailed() { - Exception ex; + Exception? ex; _mockProcessWrapper .Setup(i => i.TryRefresh(It.IsAny(), out ex)) .Returns(ProcessRefreshResult.Initialized); @@ -119,7 +119,7 @@ public void TryRefresh_Initialized_ScansFailed() [TestMethod] public void TryRefresh_Initialized_Success() { - Exception ex; + Exception? ex; _mockProcessWrapper .Setup(i => i.TryRefresh(It.IsAny(), out ex)) .Returns(ProcessRefreshResult.Initialized); @@ -144,7 +144,7 @@ public void TryRefresh_Initialized_Success() [TestMethod] public void TryRefresh_Refreshed() { - Exception ex; + Exception? ex; _mockProcessWrapper .Setup(i => i.TryRefresh(It.IsAny(), out ex)) .Returns(ProcessRefreshResult.Refreshed); @@ -160,7 +160,7 @@ public void TryRefresh_Refreshed() [TestMethod] public void TryRefresh_Exited_No_Exception() { - Exception ex; + Exception? ex; _mockProcessWrapper .Setup(i => i.TryRefresh(It.IsAny(), out ex)) .Returns(ProcessRefreshResult.Exited); @@ -178,7 +178,7 @@ public void TryRefresh_Exited_No_Exception() [TestMethod] public void TryRefresh_Error_Access_Denied() { - Exception ex = new Exception("Access is denied"); + Exception? ex = new Exception("Access is denied"); _mockProcessWrapper .Setup(i => i.TryRefresh(It.IsAny(), out ex)) .Returns(ProcessRefreshResult.Error); @@ -196,7 +196,7 @@ public void TryRefresh_Error_Access_Denied() [TestMethod] public void TryRefresh_Error_Unknown() { - Exception ex = new Exception("Your computer is on fire"); + Exception? ex = new Exception("Your computer is on fire"); _mockProcessWrapper .Setup(i => i.TryRefresh(It.IsAny(), out ex)) .Returns(ProcessRefreshResult.Error); From 6633ef4aa8d77c7f19d19c20461381bc8dbdebf0 Mon Sep 17 00:00:00 2001 From: Frank van der Stam Date: Fri, 17 Jan 2025 16:49:56 +0100 Subject: [PATCH 04/28] Fix tests --- src/SoulSplitter/SoulComponent.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/SoulSplitter/SoulComponent.cs b/src/SoulSplitter/SoulComponent.cs index 7885e79..430414f 100644 --- a/src/SoulSplitter/SoulComponent.cs +++ b/src/SoulSplitter/SoulComponent.cs @@ -335,9 +335,9 @@ private void SelectGameFromLiveSplitState(LiveSplitState s) { MainWindow.Dispatcher.Invoke(() => { - if (!string.IsNullOrWhiteSpace(s.Run.GameName)) + if (!string.IsNullOrWhiteSpace(s?.Run?.GameName)) { - var name = s.Run.GameName.ToLower().Replace(" ", ""); + var name = s!.Run!.GameName.ToLower().Replace(" ", ""); switch (name) { case "darksouls": From d9c8af07bcc2a5fb4385973901c69ebe8673ec4e Mon Sep 17 00:00:00 2001 From: Frank van der Stam Date: Fri, 17 Jan 2025 16:57:56 +0100 Subject: [PATCH 05/28] Convert to file scoped namespaces --- src/SoulMemory/AnnotationsAttribute.cs | 25 +- src/SoulMemory/ArmoredCore6/ArmoredCore6.cs | 301 +- src/SoulMemory/DarkSouls1/Attribute.cs | 29 +- src/SoulMemory/DarkSouls1/Bonfire.cs | 213 +- src/SoulMemory/DarkSouls1/Boss.cs | 119 +- src/SoulMemory/DarkSouls1/DarkSouls1.cs | 105 +- src/SoulMemory/DarkSouls1/DropMod.cs | 215 +- src/SoulMemory/DarkSouls1/DropModType.cs | 13 +- src/SoulMemory/DarkSouls1/IDarkSouls1.cs | 39 +- src/SoulMemory/DarkSouls1/Item.cs | 3003 ++-- src/SoulMemory/DarkSouls1/ItemReader.cs | 205 +- src/SoulMemory/DarkSouls1/KnownFlag.cs | 217 +- .../DarkSouls1/Parameters/AiStandardInfo.cs | 649 +- .../DarkSouls1/Parameters/AtkParam.cs | 1153 +- .../DarkSouls1/Parameters/BehaviorParam.cs | 199 +- .../DarkSouls1/Parameters/BulletParam.cs | 1127 +- .../DarkSouls1/Parameters/CalcCorrectGraph.cs | 329 +- .../DarkSouls1/Parameters/CharaInitParam.cs | 1501 +- .../DarkSouls1/Parameters/CoolTimeParam.cs | 123 +- .../DarkSouls1/Parameters/DofBank.cs | 137 +- .../Parameters/EnemyStandardInfo.cs | 361 +- .../DarkSouls1/Parameters/EnvLightTexBank.cs | 1513 +- .../Parameters/EquipMtrlSetParam.cs | 279 +- .../Parameters/EquipParamAccessory.cs | 443 +- .../DarkSouls1/Parameters/EquipParamGoods.cs | 1171 +- .../Parameters/EquipParamProtector.cs | 2177 ++- .../DarkSouls1/Parameters/EquipParamWeapon.cs | 2115 ++- .../DarkSouls1/Parameters/FaceGenParam.cs | 1753 +- .../DarkSouls1/Parameters/FogBank.cs | 123 +- .../DarkSouls1/Parameters/GameAreaParam.cs | 215 +- .../DarkSouls1/Parameters/HitMtrlParam.cs | 121 +- .../DarkSouls1/Parameters/ItemLotParam.cs | 1089 +- .../DarkSouls1/Parameters/KnockBackParam.cs | 503 +- .../DarkSouls1/Parameters/LensFlareBank.cs | 151 +- .../DarkSouls1/Parameters/LensFlareExBank.cs | 109 +- .../DarkSouls1/Parameters/LevelSyncParam.cs | 1577 +- .../DarkSouls1/Parameters/LightBank.cs | 745 +- .../Parameters/LightScatteringBank.cs | 281 +- .../DarkSouls1/Parameters/LockCamParam.cs | 109 +- .../DarkSouls1/Parameters/LodBank.cs | 71 +- .../DarkSouls1/Parameters/MagicParam.cs | 931 +- .../Parameters/MenuParamColorTable.cs | 71 +- .../DarkSouls1/Parameters/MoveParam.cs | 585 +- .../DarkSouls1/Parameters/NpcParam.cs | 2587 ++- .../DarkSouls1/Parameters/NpcThinkParam.cs | 867 +- .../DarkSouls1/Parameters/ObjActParam.cs | 281 +- .../DarkSouls1/Parameters/ObjectParam.cs | 337 +- .../DarkSouls1/Parameters/PointLightBank.cs | 95 +- .../DarkSouls1/Parameters/QwcChangeParam.cs | 123 +- .../DarkSouls1/Parameters/QwcJudgeParam.cs | 123 +- .../DarkSouls1/Parameters/RagdollParam.cs | 165 +- .../Parameters/ReinforceParamProtector.cs | 247 +- .../Parameters/ReinforceParamWeapon.cs | 457 +- .../DarkSouls1/Parameters/ShadowBank.cs | 231 +- .../DarkSouls1/Parameters/ShopLineupParam.cs | 137 +- .../DarkSouls1/Parameters/SkeletonParam.cs | 425 +- .../DarkSouls1/Parameters/SpEffect.cs | 2847 ++- .../DarkSouls1/Parameters/SpEffectVfx.cs | 481 +- .../DarkSouls1/Parameters/TalkParam.cs | 123 +- .../DarkSouls1/Parameters/ThrowParam.cs | 457 +- .../DarkSouls1/Parameters/ToneCorrectBank.cs | 137 +- .../DarkSouls1/Parameters/ToneMapBank.cs | 247 +- .../Parameters/WhiteCoolTimeParam.cs | 71 +- src/SoulMemory/DarkSouls1/Ptde.cs | 611 +- src/SoulMemory/DarkSouls1/Remastered.cs | 865 +- src/SoulMemory/DarkSouls1/Sl2Reader.cs | 205 +- src/SoulMemory/DarkSouls2/Attribute.cs | 29 +- src/SoulMemory/DarkSouls2/BossType.cs | 183 +- src/SoulMemory/DarkSouls2/DarkSouls2.cs | 79 +- src/SoulMemory/DarkSouls2/Data.cs | 189 +- src/SoulMemory/DarkSouls2/IDarkSouls2.cs | 15 +- src/SoulMemory/DarkSouls2/WarpType.cs | 161 +- src/SoulMemory/DarkSouls2/scholar.cs | 349 +- src/SoulMemory/DarkSouls2/vanilla.cs | 279 +- src/SoulMemory/DarkSouls3/Attributes.cs | 31 +- src/SoulMemory/DarkSouls3/Bonfire.cs | 321 +- src/SoulMemory/DarkSouls3/Boss.cs | 143 +- src/SoulMemory/DarkSouls3/DarkSouls3.cs | 589 +- src/SoulMemory/DarkSouls3/ItemPickup.cs | 4585 +++-- src/SoulMemory/EldenRing/Boss.cs | 855 +- src/SoulMemory/EldenRing/EldenRing.cs | 1007 +- src/SoulMemory/EldenRing/Grace.cs | 1757 +- src/SoulMemory/EldenRing/Item.cs | 5371 +++--- src/SoulMemory/EldenRing/ItemPickup.cs | 14555 ++++++++-------- src/SoulMemory/EldenRing/KnownFlag.cs | 251 +- src/SoulMemory/EldenRing/Position.cs | 27 +- src/SoulMemory/EldenRing/ScreenState.cs | 15 +- src/SoulMemory/Extensions.cs | 111 +- src/SoulMemory/FlagWatcher.cs | 49 +- src/SoulMemory/IGame.cs | 51 +- src/SoulMemory/Memory/BitBlt.cs | 27 +- src/SoulMemory/Memory/Extensions.cs | 81 +- src/SoulMemory/Memory/IMemory.cs | 251 +- src/SoulMemory/Memory/MemoryScanner.cs | 515 +- src/SoulMemory/Memory/NodeType.cs | 13 +- src/SoulMemory/Memory/Pointer.cs | 457 +- src/SoulMemory/Memory/PointerAppender.cs | 37 +- src/SoulMemory/Memory/PointerNode.cs | 35 +- src/SoulMemory/Memory/TreeBuilder.cs | 63 +- src/SoulMemory/MemoryV2/ByteArrayMemory.cs | 41 +- src/SoulMemory/MemoryV2/Memory/IMemory.cs | 17 +- .../MemoryV2/Memory/MemoryExtensions.cs | 243 +- .../MemoryV2/Memory/MemoryScanner.cs | 417 +- src/SoulMemory/MemoryV2/Memory/Pointer.cs | 89 +- src/SoulMemory/MemoryV2/Memory/PointerPath.cs | 17 +- .../PointerTreeBuilder/PointerAppender.cs | 37 +- .../PointerTreeBuilder/PointerNode.cs | 35 +- .../PointerTreeBuilder/PointerNodeType.cs | 13 +- .../PointerTreeBuilder/PointerTreeBuilder.cs | 151 +- .../MemoryV2/Process/IProcessHook.cs | 49 +- .../MemoryV2/Process/IProcessWrapper.cs | 23 +- .../MemoryV2/Process/ProcessHook.cs | 143 +- .../MemoryV2/Process/ProcessRefreshResult.cs | 17 +- .../MemoryV2/Process/ProcessWrapper.cs | 101 +- .../MemoryV2/Process/ProcessWrapperModule.cs | 31 +- .../Native/Enums/DllCharacteristicsType.cs | 33 +- src/SoulMemory/Native/Enums/ListModules.cs | 15 +- src/SoulMemory/Native/Enums/MachineType.cs | 251 +- src/SoulMemory/Native/Enums/MagicType.cs | 11 +- src/SoulMemory/Native/Enums/SnapshotFlags.cs | 25 +- src/SoulMemory/Native/Enums/SubSystemType.cs | 29 +- src/SoulMemory/Native/Kernel32.cs | 557 +- src/SoulMemory/Native/NativeMethods.cs | 89 +- src/SoulMemory/Native/Ntdll.cs | 29 +- .../Structs/Image/IMAGE_DATA_DIRECTORY.cs | 13 +- .../Native/Structs/Image/IMAGE_DOS_HEADER.cs | 67 +- .../Structs/Image/IMAGE_EXPORT_DIRECTORY.cs | 31 +- .../Native/Structs/Image/IMAGE_FILE_HEADER.cs | 23 +- .../Structs/Image/IMAGE_NT_HEADERS32.cs | 35 +- .../Structs/Image/IMAGE_NT_HEADERS64.cs | 35 +- .../Structs/Image/IMAGE_OPTIONAL_HEADER32.cs | 195 +- .../Structs/Image/IMAGE_OPTIONAL_HEADER64.cs | 189 +- .../Structs/MemoryBasicInformation64.cs | 27 +- .../Native/Structs/Module/MODULEENTRY32W.cs | 33 +- .../Native/Structs/Process/PROCESSENTRY32.cs | 33 +- src/SoulMemory/Native/User32.cs | 27 +- src/SoulMemory/Parameters/BaseParam.cs | 321 +- .../Parameters/ParamClassGenerator.cs | 421 +- src/SoulMemory/Parameters/ParamData.cs | 71 +- .../Parameters/ParamFieldAttribute.cs | 57 +- src/SoulMemory/Parameters/ParamReader.cs | 111 +- src/SoulMemory/Parameters/ParamTableEntry.cs | 15 +- src/SoulMemory/Parameters/ParamType.cs | 23 +- src/SoulMemory/Parameters/TextTableEntry.cs | 15 +- src/SoulMemory/RefreshError.cs | 93 +- src/SoulMemory/Result.cs | 511 +- src/SoulMemory/Sekiro/Attribute.cs | 13 +- src/SoulMemory/Sekiro/Boss.cs | 77 +- src/SoulMemory/Sekiro/Idol.cs | 229 +- src/SoulMemory/Sekiro/Sekiro.cs | 1045 +- src/SoulMemory/Vector3f.cs | 47 +- src/SoulMemory/VersionAttribute.cs | 17 +- src/SoulMemory/soulmods/Soulmods.cs | 189 +- src/SoulSplitter/Extensions.cs | 77 +- src/SoulSplitter/Hotkeys/GlobalHotKey.cs | 145 +- src/SoulSplitter/Logger.cs | 83 +- src/SoulSplitter/Migrations/Migrator.cs | 379 +- src/SoulSplitter/Migrations/XmlExtensions.cs | 19 +- src/SoulSplitter/Native/Gdi32.cs | 29 +- src/SoulSplitter/Native/User32.cs | 23 +- src/SoulSplitter/SoulComponent.cs | 578 +- src/SoulSplitter/SoulComponentFactory.cs | 29 +- src/SoulSplitter/Splits/ArmoredCore6/Split.cs | 53 +- .../Splits/DarkSouls1/Attribute.cs | 65 +- .../Splits/DarkSouls1/BonfireState.cs | 63 +- .../Splits/DarkSouls1/ItemState.cs | 43 +- src/SoulSplitter/Splits/DarkSouls1/Split.cs | 125 +- .../Splits/DarkSouls2/Attribute.cs | 65 +- .../Splits/DarkSouls2/BossKill.cs | 65 +- .../Splits/DarkSouls2/DarkSouls2SplitType.cs | 15 +- src/SoulSplitter/Splits/DarkSouls2/Split.cs | 79 +- .../Splits/DarkSouls3/Attribute.cs | 65 +- src/SoulSplitter/Splits/DarkSouls3/Split.cs | 101 +- .../Splits/EldenRing/EldenRingSplitType.cs | 21 +- src/SoulSplitter/Splits/EldenRing/Split.cs | 111 +- src/SoulSplitter/Splits/FlatSplit.cs | 13 +- src/SoulSplitter/Splits/Sekiro/Attribute.cs | 65 +- src/SoulSplitter/Splits/Sekiro/Split.cs | 91 +- .../Splitters/ArmoredCore6Splitter.cs | 157 +- src/SoulSplitter/Splitters/BaseSplitter.cs | 131 +- .../Splitters/DarkSouls1Splitter.cs | 605 +- .../Splitters/DarkSouls2Splitter.cs | 375 +- .../Splitters/DarkSouls3Splitter.cs | 397 +- .../Splitters/EldenRingSplitter.cs | 489 +- src/SoulSplitter/Splitters/ISplitter.cs | 11 +- src/SoulSplitter/Splitters/SekiroSplitter.cs | 401 +- src/SoulSplitter/Splitters/TimerState.cs | 11 +- .../Converters/BoolToVisibilityConverter.cs | 23 +- .../UI/Converters/ColorToBrushConverter.cs | 25 +- .../UI/Converters/ColorToHexTextConverter.cs | 49 +- .../Converters/DoubleToGridLengthConverter.cs | 31 +- .../UI/Converters/DropModTypeConverter.cs | 23 +- .../UI/Converters/EnumDisplayNameConverter.cs | 25 +- .../Converters/EnumToVisibilityConverter.cs | 67 +- .../EnumValueEnumParameterConverter.cs | 25 +- .../GameToSelectedIndexConverter.cs | 27 +- .../SplitObjectToDescriptionConverter.cs | 39 +- .../SplitTypeVisibilityConverter.cs | 35 +- .../UI/DarkSouls1/DarkSouls1Control.xaml.cs | 17 +- .../UI/DarkSouls1/DarkSouls1ViewModel.cs | 299 +- .../DarkSouls1/DarkSouls1ViewModelRefactor.cs | 225 +- .../UI/DarkSouls2/DarkSouls2Control.xaml.cs | 101 +- .../UI/DarkSouls2/DarkSouls2ViewModel.cs | 453 +- .../UI/DarkSouls2/HierarchicalViewModel.cs | 125 +- .../UI/DarkSouls3/DarkSouls3Control.xaml.cs | 17 +- .../UI/DarkSouls3/DarkSouls3ViewModel.cs | 169 +- .../UI/EldenRing/BossViewModel.cs | 89 +- .../UI/EldenRing/EldenRingControl.xaml.cs | 123 +- .../UI/EldenRing/EldenRingViewModel.cs | 771 +- .../UI/EldenRing/GraceViewModel.cs | 89 +- .../UI/EldenRing/ItemPickupViewModel.cs | 75 +- .../UI/EldenRing/KnownFlagViewModel.cs | 75 +- .../UI/EldenRing/PositionViewModel.cs | 131 +- .../UI/EldenRing/SplitViewModel.cs | 119 +- src/SoulSplitter/UI/ErrorViewModel.cs | 51 +- src/SoulSplitter/UI/ErrorWindow.xaml.cs | 17 +- src/SoulSplitter/UI/FlagTrackerWindow.xaml.cs | 31 +- .../UI/Generic/AddRemoveSplits.xaml.cs | 17 +- src/SoulSplitter/UI/Generic/BaseViewModel.cs | 273 +- .../UI/Generic/BoolDescriptionViewModel.cs | 61 +- .../UI/Generic/EnumFlagViewModel.cs | 103 +- .../UI/Generic/EventFlagTrackerDisplayMode.cs | 11 +- .../UI/Generic/FilteredComboBox.cs | 215 +- .../UI/Generic/FlagControl.xaml.cs | 17 +- .../UI/Generic/FlagDescription.cs | 77 +- .../UI/Generic/FlagTrackerViewModel.cs | 561 +- src/SoulSplitter/UI/Generic/Game.cs | 19 +- .../UI/Generic/HierarchicalViewModel.cs | 273 +- .../Generic/ICustomNotifyPropertyChanged.cs | 9 +- .../UI/Generic/PositionControl.xaml.cs | 17 +- src/SoulSplitter/UI/Generic/RelayCommand.cs | 55 +- .../UI/Generic/SplitTemplateSelector.cs | 33 +- src/SoulSplitter/UI/Generic/SplitType.cs | 43 +- .../UI/Generic/SplitsTree.xaml.cs | 57 +- src/SoulSplitter/UI/Generic/TimingType.cs | 25 +- src/SoulSplitter/UI/Generic/VectorSize.cs | 75 +- src/SoulSplitter/UI/MainViewModel.cs | 659 +- src/SoulSplitter/UI/MainWindow.xaml.cs | 107 +- .../UI/Sekiro/SekiroControl.xaml.cs | 17 +- src/SoulSplitter/UI/Sekiro/SekiroViewModel.cs | 139 +- .../UI/Validation/TextToNumberValidation.cs | 133 +- .../UI/Validation/TextToRgbHexValidator.cs | 19 +- .../UIv2/SplitSettingsControl.xaml.cs | 593 +- src/SoulSplitter/VersionHelper.cs | 21 +- .../ViewModels/Games/ArmoredCore6ViewModel.cs | 69 +- .../soulmemory-rs/SoulMemoryRs.cs | 47 +- tests/SoulMemory.Tests/ArmoredCore6Tests.cs | 523 +- tests/SoulMemory.Tests/Extensions.cs | 21 +- tests/SoulMemory.Tests/ExtensionsTests.cs | 125 +- tests/SoulMemory.Tests/MemoryScannerTests.cs | 47 +- .../SoulMemory.Tests/MemoryV2/MemoryTests.cs | 331 +- .../MemoryV2/ProcessHookTests.cs | 361 +- .../SoulMemory.Tests/Mocks/ProcessHookMock.cs | 133 +- tests/SoulMemory.Tests/RefreshErrorTests.cs | 97 +- tests/SoulMemory.Tests/ResultTests.cs | 215 +- tests/SoulMemory.Tests/Vector3fTests.cs | 61 +- 256 files changed, 45475 insertions(+), 45730 deletions(-) diff --git a/src/SoulMemory/AnnotationsAttribute.cs b/src/SoulMemory/AnnotationsAttribute.cs index 686095f..b7c9601 100644 --- a/src/SoulMemory/AnnotationsAttribute.cs +++ b/src/SoulMemory/AnnotationsAttribute.cs @@ -16,18 +16,17 @@ using System; -namespace SoulMemory -{ - //I used to use Dispaly(Name = "", Description = "") to add human friendly boss/bonfire names - //and locations to enum flags. When switching to .net standard, it was troublesome to get - //livesplit to properly load the data annotations lib from microsoft. Rather than fighting - //livesplit over loading it, I opted to just ditch it and use a simple attribute. - //That's why this annotion exists and why it is so similar to Display(). +namespace SoulMemory; + +//I used to use Dispaly(Name = "", Description = "") to add human friendly boss/bonfire names +//and locations to enum flags. When switching to .net standard, it was troublesome to get +//livesplit to properly load the data annotations lib from microsoft. Rather than fighting +//livesplit over loading it, I opted to just ditch it and use a simple attribute. +//That's why this annotion exists and why it is so similar to Display(). - [AttributeUsage(AttributeTargets.Field)] - public class AnnotationAttribute : Attribute - { - public string Name { get; set; } = null!; - public string Description { get; set; } = null!; - } +[AttributeUsage(AttributeTargets.Field)] +public class AnnotationAttribute : Attribute +{ + public string Name { get; set; } = null!; + public string Description { get; set; } = null!; } diff --git a/src/SoulMemory/ArmoredCore6/ArmoredCore6.cs b/src/SoulMemory/ArmoredCore6/ArmoredCore6.cs index 63d4be6..88c552b 100644 --- a/src/SoulMemory/ArmoredCore6/ArmoredCore6.cs +++ b/src/SoulMemory/ArmoredCore6/ArmoredCore6.cs @@ -20,212 +20,211 @@ using System.Diagnostics; using SoulMemory.MemoryV2.PointerTreeBuilder; -namespace SoulMemory.ArmoredCore6 +namespace SoulMemory.ArmoredCore6; + +public class ArmoredCore6 : IGame { - public class ArmoredCore6 : IGame + private readonly IProcessHook _armoredCore6; + + public ArmoredCore6(IProcessHook? processHook = null) { - private readonly IProcessHook _armoredCore6; - - public ArmoredCore6(IProcessHook? processHook = null) - { - _armoredCore6 = processHook ?? new ProcessHook("armoredcore6"); + _armoredCore6 = processHook ?? new ProcessHook("armoredcore6"); - _eventFlagMan = new Pointer(_armoredCore6); - _noLogo = new Pointer(_armoredCore6); - _fd4Time = new Pointer(_armoredCore6); - _menuMan = new Pointer(_armoredCore6); + _eventFlagMan = new Pointer(_armoredCore6); + _noLogo = new Pointer(_armoredCore6); + _fd4Time = new Pointer(_armoredCore6); + _menuMan = new Pointer(_armoredCore6); - _armoredCore6.PointerTreeBuilder - .ScanRelative("CSEventFlagMan", "48 8b 35 ? ? ? ? 83 f8 ff 0f 44 c1", 3, 7) - .AddPointer(_eventFlagMan, 0, 0); + _armoredCore6.PointerTreeBuilder + .ScanRelative("CSEventFlagMan", "48 8b 35 ? ? ? ? 83 f8 ff 0f 44 c1", 3, 7) + .AddPointer(_eventFlagMan, 0, 0); - _armoredCore6.PointerTreeBuilder - .ScanAbsolute("NoLogo", "33 f6 89 75 97 40 38 75 77 ? ? 48 89 31", 9) - .AddPointer(_noLogo); + _armoredCore6.PointerTreeBuilder + .ScanAbsolute("NoLogo", "33 f6 89 75 97 40 38 75 77 ? ? 48 89 31", 9) + .AddPointer(_noLogo); - _armoredCore6.PointerTreeBuilder - .ScanRelative("FD4Time", "48 8b 0d ? ? ? ? 0f 28 c8 f3 0f 59 0d", 3, 7) - .AddPointer(_fd4Time, 0, 0); + _armoredCore6.PointerTreeBuilder + .ScanRelative("FD4Time", "48 8b 0d ? ? ? ? 0f 28 c8 f3 0f 59 0d", 3, 7) + .AddPointer(_fd4Time, 0, 0); - _armoredCore6.PointerTreeBuilder - .ScanRelative("CSMenuMan", "48 8b 35 ? ? ? ? 33 db 89 5c 24 20", 3, 7) - .AddPointer(_menuMan, 0, 0); + _armoredCore6.PointerTreeBuilder + .ScanRelative("CSMenuMan", "48 8b 35 ? ? ? ? 33 db 89 5c 24 20", 3, 7) + .AddPointer(_menuMan, 0, 0); - _armoredCore6.Hooked += () => - { - _noLogo.WriteBytes(0x0, new byte[] { 0x90, 0x90 }); - return InjectMods(); - }; - } + _armoredCore6.Hooked += () => + { + _noLogo.WriteBytes(0x0, new byte[] { 0x90, 0x90 }); + return InjectMods(); + }; + } - private readonly Pointer _eventFlagMan; - private readonly Pointer _noLogo; - private readonly Pointer _fd4Time; - private readonly Pointer _menuMan; + private readonly Pointer _eventFlagMan; + private readonly Pointer _noLogo; + private readonly Pointer _fd4Time; + private readonly Pointer _menuMan; - public int GetInGameTimeMilliseconds() => _fd4Time.ReadInt32(0x114); - public void WriteInGameTimeMilliseconds(int milliseconds) => _fd4Time.WriteInt32(0x114, milliseconds); + public int GetInGameTimeMilliseconds() => _fd4Time.ReadInt32(0x114); + public void WriteInGameTimeMilliseconds(int milliseconds) => _fd4Time.WriteInt32(0x114, milliseconds); - public bool IsLoadingScreenVisible() - { - var value = _menuMan.ReadInt32(0x8e4); - return value != 0; - } + public bool IsLoadingScreenVisible() + { + var value = _menuMan.ReadInt32(0x8e4); + return value != 0; + } - public ResultErr TryRefresh() => _armoredCore6.TryRefresh(); + public ResultErr TryRefresh() => _armoredCore6.TryRefresh(); - public SoulMemory.Memory.TreeBuilder GetTreeBuilder() + public SoulMemory.Memory.TreeBuilder GetTreeBuilder() + { + var builder = new SoulMemory.Memory.TreeBuilder(); + foreach (var node in _armoredCore6.PointerTreeBuilder.Tree) { - var builder = new SoulMemory.Memory.TreeBuilder(); - foreach (var node in _armoredCore6.PointerTreeBuilder.Tree) + if (node.PointerNodeType == PointerNodeType.RelativeScan) { - if (node.PointerNodeType == PointerNodeType.RelativeScan) - { - builder.ScanRelative(node.Name, node.Pattern, node.AddressOffset, node.InstructionSize); - } - if (node.PointerNodeType == PointerNodeType.AbsoluteScan) - { - builder.ScanAbsolute(node.Name, node.Pattern, node.AddressOffset); - } + builder.ScanRelative(node.Name, node.Pattern, node.AddressOffset, node.InstructionSize); + } + if (node.PointerNodeType == PointerNodeType.AbsoluteScan) + { + builder.ScanAbsolute(node.Name, node.Pattern, node.AddressOffset); } - return builder; } + return builder; + } - public Process? GetProcess() => _armoredCore6.ProcessWrapper.GetProcess(); + public Process? GetProcess() => _armoredCore6.ProcessWrapper.GetProcess(); - private ResultErr InjectMods() + private ResultErr InjectMods() + { + Exception? exception = null; + try { - Exception? exception = null; - try - { - soulmods.Soulmods.Inject(GetProcess()!); - } - catch (Exception e) { exception = e; } + soulmods.Soulmods.Inject(GetProcess()!); + } + catch (Exception e) { exception = e; } + + var module = _armoredCore6.ProcessWrapper.GetProcessModules().Find(i => i.ModuleName == "soulmods.dll"); + if (module != null) + { + return Result.Ok(); + } + + if (exception != null) + { + return Result.Err(new RefreshError(RefreshErrorReason.ModLoadFailed, exception)); + } - var module = _armoredCore6.ProcessWrapper.GetProcessModules().Find(i => i.ModuleName == "soulmods.dll"); - if (module != null) + return Result.Err(new RefreshError(RefreshErrorReason.ModLoadFailed, "module not loaded")); + } + + #region Read event flag ================================================================================================================== + + public void WriteEventFlag(uint eventFlagId, bool value) + { + var result = GetEventFlagAddress(eventFlagId, out int mask); + if (result.IsOk) + { + var address = result.Unwrap(); + var read = _armoredCore6.ReadInt32(address); + var write = read; + if (value) { - return Result.Ok(); + write |= mask; } - - if (exception != null) + else { - return Result.Err(new RefreshError(RefreshErrorReason.ModLoadFailed, exception)); + write &= ~mask; } + _armoredCore6.WriteInt32(address, write); + } + } - return Result.Err(new RefreshError(RefreshErrorReason.ModLoadFailed, "module not loaded")); + public bool ReadEventFlag(uint eventFlagId) + { + var result = GetEventFlagAddress(eventFlagId, out int mask); + if (result.IsOk) + { + var address = result.Unwrap(); + var read = _armoredCore6.ReadInt32(address); + return (read & mask) != 0; } - #region Read event flag ================================================================================================================== + return false; + } - public void WriteEventFlag(uint eventFlagId, bool value) + private ResultOk GetEventFlagAddress(uint eventFlagId, out int mask) + { + mask = 0; + + var divisor = _eventFlagMan.ReadInt32(0x1c); + //This check does not exist in the games code; reading 0 here means something isn't initialized yet and we should check this flag again later. + if (divisor == 0) { - var result = GetEventFlagAddress(eventFlagId, out int mask); - if (result.IsOk) - { - var address = result.Unwrap(); - var read = _armoredCore6.ReadInt32(address); - var write = read; - if (value) - { - write |= mask; - } - else - { - write &= ~mask; - } - _armoredCore6.WriteInt32(address, write); - } + return Result.Err(); } - public bool ReadEventFlag(uint eventFlagId) + var category = (eventFlagId / divisor); //stored in rax after; div r8d + var leastSignificantDigits = eventFlagId - (category * divisor); //stored in r11 after; sub r11d,r8d + + var currentElement = _eventFlagMan.Pointer64(0x38); //rdx + var currentSubElement = currentElement.Pointer64(0x8); //rcx + + while (currentSubElement.ReadByte(0x19) == '\0') //cmp [rcx+19],r9l -> r9 get's cleared before this instruction and will always be 0 { - var result = GetEventFlagAddress(eventFlagId, out int mask); - if (result.IsOk) + if (currentSubElement.ReadInt32(0x20) < category) { - var address = result.Unwrap(); - var read = _armoredCore6.ReadInt32(address); - return (read & mask) != 0; + currentSubElement = currentSubElement.Pointer64(0x10); + } + else + { + currentElement = currentSubElement; + currentSubElement = currentSubElement.Pointer64(0x0); } - - return false; } - private ResultOk GetEventFlagAddress(uint eventFlagId, out int mask) + if (category < currentElement.ReadInt32(0x20)) { - mask = 0; + return Result.Err(); + } - var divisor = _eventFlagMan.ReadInt32(0x1c); - //This check does not exist in the games code; reading 0 here means something isn't initialized yet and we should check this flag again later. - if (divisor == 0) - { - return Result.Err(); - } + if (currentElement.ResolveOffsets() != currentSubElement.ResolveOffsets()) + { + var mysteryValue = currentElement.ReadInt32(0x28) - 1; - var category = (eventFlagId / divisor); //stored in rax after; div r8d - var leastSignificantDigits = eventFlagId - (category * divisor); //stored in r11 after; sub r11d,r8d + //These if statements can obviously be optimized in C#. + //They are written out like this explicitly, to match the game's assembly - var currentElement = _eventFlagMan.Pointer64(0x38); //rdx - var currentSubElement = currentElement.Pointer64(0x8); //rcx + long calculatedPointer = 0; - while (currentSubElement.ReadByte(0x19) == '\0') //cmp [rcx+19],r9l -> r9 get's cleared before this instruction and will always be 0 + //jump to calculate ptr if zero + if (mysteryValue != 0) { - if (currentSubElement.ReadInt32(0x20) < category) + //jnz skip to return, otherwise set calculated ptr + if (mysteryValue != 1) { - currentSubElement = currentSubElement.Pointer64(0x10); + calculatedPointer = currentElement.ReadInt64(0x30); } else { - currentElement = currentSubElement; - currentSubElement = currentSubElement.Pointer64(0x0); + return Result.Err(); } } - - if (category < currentElement.ReadInt32(0x20)) + else { - return Result.Err(); + calculatedPointer = (_eventFlagMan.ReadInt32(0x20) * currentElement.ReadInt32(0x30)) + + _eventFlagMan.ReadInt64(0x28); } - if (currentElement.ResolveOffsets() != currentSubElement.ResolveOffsets()) + if (calculatedPointer != 0) { - var mysteryValue = currentElement.ReadInt32(0x28) - 1; - - //These if statements can obviously be optimized in C#. - //They are written out like this explicitly, to match the game's assembly - - long calculatedPointer = 0; - - //jump to calculate ptr if zero - if (mysteryValue != 0) - { - //jnz skip to return, otherwise set calculated ptr - if (mysteryValue != 1) - { - calculatedPointer = currentElement.ReadInt64(0x30); - } - else - { - return Result.Err(); - } - } - else - { - calculatedPointer = (_eventFlagMan.ReadInt32(0x20) * currentElement.ReadInt32(0x30)) + - _eventFlagMan.ReadInt64(0x28); - } - - if (calculatedPointer != 0) - { - var thing = 7 - (leastSignificantDigits & 7); - mask = 1 << (int)thing; - var shifted = leastSignificantDigits >> 3; - return Result.Ok(calculatedPointer + shifted); - } + var thing = 7 - (leastSignificantDigits & 7); + mask = 1 << (int)thing; + var shifted = leastSignificantDigits >> 3; + return Result.Ok(calculatedPointer + shifted); } - - return Result.Err(); } - #endregion + return Result.Err(); } + + #endregion } diff --git a/src/SoulMemory/DarkSouls1/Attribute.cs b/src/SoulMemory/DarkSouls1/Attribute.cs index 23c8c66..ba6172c 100644 --- a/src/SoulMemory/DarkSouls1/Attribute.cs +++ b/src/SoulMemory/DarkSouls1/Attribute.cs @@ -16,20 +16,19 @@ using System.Xml.Serialization; -namespace SoulMemory.DarkSouls1 +namespace SoulMemory.DarkSouls1; + +[XmlType(Namespace = "SoulMemory.DarkSouls1")] +public enum Attribute : long { - [XmlType(Namespace = "SoulMemory.DarkSouls1")] - public enum Attribute : long - { - Vitality = 0x38, - Attunement = 0x40, - Endurance = 0x48, - Strength = 0x50, - Dexterity = 0x58, - Resistance = 0x80, - Intelligence = 0x60, - Faith = 0x68, - Humanity = 0x7C, - SoulLevel = 0x88, - } + Vitality = 0x38, + Attunement = 0x40, + Endurance = 0x48, + Strength = 0x50, + Dexterity = 0x58, + Resistance = 0x80, + Intelligence = 0x60, + Faith = 0x68, + Humanity = 0x7C, + SoulLevel = 0x88, } diff --git a/src/SoulMemory/DarkSouls1/Bonfire.cs b/src/SoulMemory/DarkSouls1/Bonfire.cs index b574b97..0037da6 100644 --- a/src/SoulMemory/DarkSouls1/Bonfire.cs +++ b/src/SoulMemory/DarkSouls1/Bonfire.cs @@ -16,160 +16,159 @@ using System.Xml.Serialization; -namespace SoulMemory.DarkSouls1 +namespace SoulMemory.DarkSouls1; + +[XmlType(Namespace = "SoulMemory.DarkSouls1")] +public enum Bonfire { - [XmlType(Namespace = "SoulMemory.DarkSouls1")] - public enum Bonfire - { - [Annotation(Name = "Undead Asylum - Courtyard", Description = "Undead Asylum")] - UndeadAsylumCourtyard = 1811960, + [Annotation(Name = "Undead Asylum - Courtyard", Description = "Undead Asylum")] + UndeadAsylumCourtyard = 1811960, - [Annotation(Name = "Undead Asylum - Interior", Description = "Undead Asylum")] - UndeadAsylumInterior = 1811961, + [Annotation(Name = "Undead Asylum - Interior", Description = "Undead Asylum")] + UndeadAsylumInterior = 1811961, - [Annotation(Name = "Firelink Shrine", Description = "Firelink Shrine")] - FirelinkShrine = 1021960, + [Annotation(Name = "Firelink Shrine", Description = "Firelink Shrine")] + FirelinkShrine = 1021960, - [Annotation(Name = "Firelink Altar - Lordvessel", Description = "Firelink Altar")] - FirelinkAltarLordvessel = 1801960, + [Annotation(Name = "Firelink Altar - Lordvessel", Description = "Firelink Altar")] + FirelinkAltarLordvessel = 1801960, - [Annotation(Name = "Undead Burg", Description = "Undead Burg")] - UndeadBurg = 1011962, + [Annotation(Name = "Undead Burg", Description = "Undead Burg")] + UndeadBurg = 1011962, - [Annotation(Name = "Undead Burg - Sunlight Altar", Description = "Undead Burg")] - UndeadBurgSunlightAltar = 1011961, + [Annotation(Name = "Undead Burg - Sunlight Altar", Description = "Undead Burg")] + UndeadBurgSunlightAltar = 1011961, - [Annotation(Name = "Undead Parish", Description = "Undead Parish")] - UndeadParishAndre = 1011964, + [Annotation(Name = "Undead Parish", Description = "Undead Parish")] + UndeadParishAndre = 1011964, - [Annotation(Name = "Darkroot Garden", Description = "Darkroot Garden")] - DarkrootGarden = 1201961, + [Annotation(Name = "Darkroot Garden", Description = "Darkroot Garden")] + DarkrootGarden = 1201961, - [Annotation(Name = "Darkroot Basin", Description = "Darkroot Basin")] - DarkrootBasin = 1601961, + [Annotation(Name = "Darkroot Basin", Description = "Darkroot Basin")] + DarkrootBasin = 1601961, - [Annotation(Name = "Depths", Description = "Depths")] - Depths = 1001960, + [Annotation(Name = "Depths", Description = "Depths")] + Depths = 1001960, - [Annotation(Name = "Blighttown Catwalk", Description = "Blighttown")] - BlighttownCatwalk = 1401962, + [Annotation(Name = "Blighttown Catwalk", Description = "Blighttown")] + BlighttownCatwalk = 1401962, - [Annotation(Name = "Blighttown Swamp", Description = "Blighttown")] - BlighttownSwamp = 1401961, + [Annotation(Name = "Blighttown Swamp", Description = "Blighttown")] + BlighttownSwamp = 1401961, - [Annotation(Name = "Quelaag's Domain - DaughterOfChaos", Description = "Quelaag's Domain")] - DaughterOfChaos = 1401960, + [Annotation(Name = "Quelaag's Domain - DaughterOfChaos", Description = "Quelaag's Domain")] + DaughterOfChaos = 1401960, - [Annotation(Name = "The Great Hollow", Description = "The Great Hollow")] - TheGreatHollow = 1321962, + [Annotation(Name = "The Great Hollow", Description = "The Great Hollow")] + TheGreatHollow = 1321962, - [Annotation(Name = "Ash Lake", Description = "Ash Lake")] - AshLake = 1321961, + [Annotation(Name = "Ash Lake", Description = "Ash Lake")] + AshLake = 1321961, - [Annotation(Name = "Ash Lake - Stone Dragon", Description = "Ash Lake")] - AshLakeDragon = 1321960, + [Annotation(Name = "Ash Lake - Stone Dragon", Description = "Ash Lake")] + AshLakeDragon = 1321960, - [Annotation(Name = "Demon Ruins - Entrance", Description = "Demon Ruins")] - DemonRuinsEntrance = 1411961, + [Annotation(Name = "Demon Ruins - Entrance", Description = "Demon Ruins")] + DemonRuinsEntrance = 1411961, - [Annotation(Name = "Demon Ruins - Staircase", Description = "Demon Ruins")] - DemonRuinsStaircase = 1411962, + [Annotation(Name = "Demon Ruins - Staircase", Description = "Demon Ruins")] + DemonRuinsStaircase = 1411962, - [Annotation(Name = "Demon Ruins - Catacombs", Description = "Demon Ruins")] - DemonRuinsCatacombs = 1411963, + [Annotation(Name = "Demon Ruins - Catacombs", Description = "Demon Ruins")] + DemonRuinsCatacombs = 1411963, - [Annotation(Name = "Lost Izalith - Lava Pits", Description = "Lost Izalith")] - LostIzalithLavaPits = 1411964, + [Annotation(Name = "Lost Izalith - Lava Pits", Description = "Lost Izalith")] + LostIzalithLavaPits = 1411964, - [Annotation(Name = "Lost Izalith - 2 (illusory wall)", Description = "Lost Izalith")] - LostIzalith2 = 1411960, + [Annotation(Name = "Lost Izalith - 2 (illusory wall)", Description = "Lost Izalith")] + LostIzalith2 = 1411960, - [Annotation(Name = "Lost Izalith Heart of Chaos", Description = "Lost Izalith")] - LostIzalithHeartOfChaos = 1411950, + [Annotation(Name = "Lost Izalith Heart of Chaos", Description = "Lost Izalith")] + LostIzalithHeartOfChaos = 1411950, - [Annotation(Name = "Sen's Fortress", Description = "Sen's Fortress")] - SensFortress = 1501961, + [Annotation(Name = "Sen's Fortress", Description = "Sen's Fortress")] + SensFortress = 1501961, - [Annotation(Name = "Anor Londo", Description = "Anor Londo")] - AnorLondo = 1511960, + [Annotation(Name = "Anor Londo", Description = "Anor Londo")] + AnorLondo = 1511960, - [Annotation(Name = "Anor Londo Darkmoon Tomb", Description = "Anor Londo")] - AnorLondoDarkmoonTomb = 1511962, + [Annotation(Name = "Anor Londo Darkmoon Tomb", Description = "Anor Londo")] + AnorLondoDarkmoonTomb = 1511962, - [Annotation(Name = "Anor Londo Residence", Description = "Anor Londo")] - AnorLondoResidence = 1511961, + [Annotation(Name = "Anor Londo Residence", Description = "Anor Londo")] + AnorLondoResidence = 1511961, - [Annotation(Name = "Anor Londo Chamber of the Princess", Description = "Anor Londo")] - AnorLondoChamberOfThePrincess = 1511950, + [Annotation(Name = "Anor Londo Chamber of the Princess", Description = "Anor Londo")] + AnorLondoChamberOfThePrincess = 1511950, - [Annotation(Name = "Painted World of Ariamis", Description = "Painted World of Ariamis")] - PaintedWorldOfAriamis = 1101960, + [Annotation(Name = "Painted World of Ariamis", Description = "Painted World of Ariamis")] + PaintedWorldOfAriamis = 1101960, - [Annotation(Name = "The Duke's Archives 1 (entrance)", Description = "The Duke's Archives")] - DukesArchives1 = 1701962, + [Annotation(Name = "The Duke's Archives 1 (entrance)", Description = "The Duke's Archives")] + DukesArchives1 = 1701962, - [Annotation(Name = "The Duke's Archives 2 (prison cell)", Description = "The Duke's Archives")] - DukesArchives2 = 1701961, + [Annotation(Name = "The Duke's Archives 2 (prison cell)", Description = "The Duke's Archives")] + DukesArchives2 = 1701961, - [Annotation(Name = "The Duke's Archives 3 (balcony)", Description = "The Duke's Archives")] - DukesArchives3 = 1701960, + [Annotation(Name = "The Duke's Archives 3 (balcony)", Description = "The Duke's Archives")] + DukesArchives3 = 1701960, - [Annotation(Name = "Crystal Cave", Description = "Crystal Cave")] - CrystalCave = 1701950, + [Annotation(Name = "Crystal Cave", Description = "Crystal Cave")] + CrystalCave = 1701950, - [Annotation(Name = "Catacombs 1 (necromancer)", Description = "Catacombs")] - Catacombs1 = 1301960, + [Annotation(Name = "Catacombs 1 (necromancer)", Description = "Catacombs")] + Catacombs1 = 1301960, - [Annotation(Name = "Catacombs 2 (illusory wall)", Description = "Catacombs")] - Catacombs2 = 1301961, + [Annotation(Name = "Catacombs 2 (illusory wall)", Description = "Catacombs")] + Catacombs2 = 1301961, - [Annotation(Name = "Tomb of the Giants - 1 (patches)", Description = "Tomb of the Giants")] - TombOfTheGiantsPatches = 1311961, + [Annotation(Name = "Tomb of the Giants - 1 (patches)", Description = "Tomb of the Giants")] + TombOfTheGiantsPatches = 1311961, - [Annotation(Name = "Tomb of the Giants - 2", Description = "Tomb of the Giants")] - TombOfTheGiants2 = 1311960, + [Annotation(Name = "Tomb of the Giants - 2", Description = "Tomb of the Giants")] + TombOfTheGiants2 = 1311960, - [Annotation(Name = "Tomb of the Giants - Altar of the Gravelord", Description = "Tomb of the Giants")] - TombOfTheGiantsAltarOfTheGravelord = 1311950, + [Annotation(Name = "Tomb of the Giants - Altar of the Gravelord", Description = "Tomb of the Giants")] + TombOfTheGiantsAltarOfTheGravelord = 1311950, - [Annotation(Name = "The Abyss", Description = "The Abyss")] - TheAbyss = 1601950, + [Annotation(Name = "The Abyss", Description = "The Abyss")] + TheAbyss = 1601950, - [Annotation(Name = "Oolacile - Sanctuary Garden", Description = "Oolacile")] - OolacileSanctuaryGarden = 1211963, + [Annotation(Name = "Oolacile - Sanctuary Garden", Description = "Oolacile")] + OolacileSanctuaryGarden = 1211963, - [Annotation(Name = "Oolacile - Sanctuary", Description = "Oolacile")] - OolacileSanctuary = 1211961, + [Annotation(Name = "Oolacile - Sanctuary", Description = "Oolacile")] + OolacileSanctuary = 1211961, - [Annotation(Name = "Oolacile - Township", Description = "Oolacile")] - OolacileTownship = 1211962, + [Annotation(Name = "Oolacile - Township", Description = "Oolacile")] + OolacileTownship = 1211962, - [Annotation(Name = "Oolacile - Township Dungeon", Description = "Oolacile")] - OolacileTownshipDungeon = 1211964, + [Annotation(Name = "Oolacile - Township Dungeon", Description = "Oolacile")] + OolacileTownshipDungeon = 1211964, - [Annotation(Name = "Chasm of the Abyss", Description = "Chasm of the Abyss")] - ChasmOfTheAbyss = 1211950, - } + [Annotation(Name = "Chasm of the Abyss", Description = "Chasm of the Abyss")] + ChasmOfTheAbyss = 1211950, +} - [XmlType(Namespace = "SoulMemory.DarkSouls1")] - public enum BonfireState - { - [Annotation(Name = "Not discovered")] - Unknown = -1, +[XmlType(Namespace = "SoulMemory.DarkSouls1")] +public enum BonfireState +{ + [Annotation(Name = "Not discovered")] + Unknown = -1, - [Annotation(Name = "Discovered")] - Discovered = 0, + [Annotation(Name = "Discovered")] + Discovered = 0, - [Annotation(Name = "Unlocked")] - Unlocked = 10, + [Annotation(Name = "Unlocked")] + Unlocked = 10, - [Annotation(Name = "Kindled 1")] - Kindled1 = 20, + [Annotation(Name = "Kindled 1")] + Kindled1 = 20, - [Annotation(Name = "Kindled 2")] - Kindled2 = 30, + [Annotation(Name = "Kindled 2")] + Kindled2 = 30, - [Annotation(Name = "Kindled 3")] - Kindled3 = 40, - } + [Annotation(Name = "Kindled 3")] + Kindled3 = 40, } diff --git a/src/SoulMemory/DarkSouls1/Boss.cs b/src/SoulMemory/DarkSouls1/Boss.cs index 9deaa20..54ec565 100644 --- a/src/SoulMemory/DarkSouls1/Boss.cs +++ b/src/SoulMemory/DarkSouls1/Boss.cs @@ -16,87 +16,86 @@ using System.Xml.Serialization; -namespace SoulMemory.DarkSouls1 +namespace SoulMemory.DarkSouls1; + +[XmlType(Namespace = "SoulMemory.DarkSouls1")] +public enum Boss : uint { - [XmlType(Namespace = "SoulMemory.DarkSouls1")] - public enum Boss : uint - { - [Annotation(Name = "Asylum Demon")] - AsylumDemon = 16, + [Annotation(Name = "Asylum Demon")] + AsylumDemon = 16, - [Annotation(Name = "Bell Gargoyle")] - BellGargoyles = 3, + [Annotation(Name = "Bell Gargoyle")] + BellGargoyles = 3, - [Annotation(Name = "Capra Demon")] - CapraDemon = 11010902, + [Annotation(Name = "Capra Demon")] + CapraDemon = 11010902, - [Annotation(Name = "Ceaseless Discharge")] - CeaselessDischarge = 11410900, + [Annotation(Name = "Ceaseless Discharge")] + CeaselessDischarge = 11410900, - [Annotation(Name = "Centipede Demon")] - CentipedeDemon = 11410901, + [Annotation(Name = "Centipede Demon")] + CentipedeDemon = 11410901, - [Annotation(Name = "Chaos Witch Quelaag")] - ChaosWitchQuelaag = 9, + [Annotation(Name = "Chaos Witch Quelaag")] + ChaosWitchQuelaag = 9, - [Annotation(Name = "Crossbreed Priscilla")] - CrossbreedPriscilla = 4, + [Annotation(Name = "Crossbreed Priscilla")] + CrossbreedPriscilla = 4, - [Annotation(Name = "Dark Sun Gwyndolin")] - DarkSunGwyndolindolin = 11510900, + [Annotation(Name = "Dark Sun Gwyndolin")] + DarkSunGwyndolindolin = 11510900, - [Annotation(Name = "Demon Firesage")] - DemonFiresage = 11410410, + [Annotation(Name = "Demon Firesage")] + DemonFiresage = 11410410, - [Annotation(Name = "Four Kings")] - FourKings = 13, + [Annotation(Name = "Four Kings")] + FourKings = 13, - [Annotation(Name = "Gaping Dragon")] - GapingDragon = 2, + [Annotation(Name = "Gaping Dragon")] + GapingDragon = 2, - [Annotation(Name = "Great Grey Wolf Sif")] - GreatGreyWolfSif = 5, + [Annotation(Name = "Great Grey Wolf Sif")] + GreatGreyWolfSif = 5, - [Annotation(Name = "Gwyn Lord of Cinder")] - GwynLordOfCinder = 15, + [Annotation(Name = "Gwyn Lord of Cinder")] + GwynLordOfCinder = 15, - [Annotation(Name = "Iron Golem")] - IronGolem = 11, + [Annotation(Name = "Iron Golem")] + IronGolem = 11, - [Annotation(Name = "Moonlight Butterfly")] - MoonlightButterfly = 11200900, + [Annotation(Name = "Moonlight Butterfly")] + MoonlightButterfly = 11200900, - [Annotation(Name = "Nito")] - Nito = 7, + [Annotation(Name = "Nito")] + Nito = 7, - [Annotation(Name = "Ornstein And Smough")] - OrnsteinAndSmough = 12, + [Annotation(Name = "Ornstein And Smough")] + OrnsteinAndSmough = 12, - [Annotation(Name = "Pinwheel")] - Pinwheel = 6, + [Annotation(Name = "Pinwheel")] + Pinwheel = 6, - [Annotation(Name = "Seath the Scaleless")] - SeathTheScaleless = 14, + [Annotation(Name = "Seath the Scaleless")] + SeathTheScaleless = 14, - [Annotation(Name = "Stray Demon")] - StrayDemon = 11810900, + [Annotation(Name = "Stray Demon")] + StrayDemon = 11810900, - [Annotation(Name = "Taurus Demon")] - TaurusDemon = 11010901, + [Annotation(Name = "Taurus Demon")] + TaurusDemon = 11010901, - [Annotation(Name = "The Bed of Chaos")] - BedOfChaos = 10, - - [Annotation(Name = "Artorias the Abysswalker")] - ArtoriasTheAbysswalker = 11210001, - - [Annotation(Name = "Black Dragon Kalameet")] - BlackDragonKalameet = 11210004, + [Annotation(Name = "The Bed of Chaos")] + BedOfChaos = 10, + + [Annotation(Name = "Artorias the Abysswalker")] + ArtoriasTheAbysswalker = 11210001, + + [Annotation(Name = "Black Dragon Kalameet")] + BlackDragonKalameet = 11210004, - [Annotation(Name = "Manus, Father of the Abyss")] - ManusFatherOfTheAbyss = 11210002, - - [Annotation(Name = "Sanctuary Guardian")] - SanctuaryGuardian = 11210000, - } + [Annotation(Name = "Manus, Father of the Abyss")] + ManusFatherOfTheAbyss = 11210002, + + [Annotation(Name = "Sanctuary Guardian")] + SanctuaryGuardian = 11210000, } diff --git a/src/SoulMemory/DarkSouls1/DarkSouls1.cs b/src/SoulMemory/DarkSouls1/DarkSouls1.cs index 175b065..ea20fb3 100644 --- a/src/SoulMemory/DarkSouls1/DarkSouls1.cs +++ b/src/SoulMemory/DarkSouls1/DarkSouls1.cs @@ -22,77 +22,76 @@ using System.Linq; using System.Threading; -namespace SoulMemory.DarkSouls1 +namespace SoulMemory.DarkSouls1; + +public class DarkSouls1 : IDarkSouls1 { - public class DarkSouls1 : IDarkSouls1 - { - private IDarkSouls1? _darkSouls1; - public Process? GetProcess() => _darkSouls1?.GetProcess(); - public int GetAttribute(Attribute attribute) => _darkSouls1?.GetAttribute(attribute) ?? 0; - public bool ReadEventFlag(uint eventFlagId) => _darkSouls1?.ReadEventFlag(eventFlagId) ?? false; - public bool IsWarpRequested() => _darkSouls1?.IsWarpRequested() ?? false; - public bool IsPlayerLoaded() => _darkSouls1?.IsPlayerLoaded() ?? false; - public Vector3f GetPosition() => _darkSouls1?.GetPosition() ?? new Vector3f(0,0,0); - public int GetInGameTimeMilliseconds() => _darkSouls1?.GetInGameTimeMilliseconds() ?? 0; - public int NgCount() => _darkSouls1?.NgCount() ?? 0; - public int GetCurrentSaveSlot() => _darkSouls1?.GetCurrentSaveSlot() ?? -1; - public void ResetInventoryIndices() => _darkSouls1?.ResetInventoryIndices(); - public List GetInventory() => _darkSouls1?.GetInventory() ?? new List(); - public bool AreCreditsRolling() => _darkSouls1?.AreCreditsRolling() ?? false; - public BonfireState GetBonfireState(Bonfire bonfire) => _darkSouls1?.GetBonfireState(bonfire) ?? BonfireState.Unknown; - public string? GetSaveFileLocation() => _darkSouls1?.GetSaveFileLocation(); - public int GetSaveFileGameTimeMilliseconds(string path, int slot) => _darkSouls1?.GetSaveFileGameTimeMilliseconds(path, slot) ?? 0; - public void WriteWeaponDescription(uint weaponId, string description) => _darkSouls1?.WriteWeaponDescription(weaponId, description); - public void WriteItemLotParam(int rowId, Action accessor) => _darkSouls1?.WriteItemLotParam(rowId, accessor); - public void SetLoadingScreenItem(int index, uint item) => _darkSouls1?.SetLoadingScreenItem(index, item); + private IDarkSouls1? _darkSouls1; + public Process? GetProcess() => _darkSouls1?.GetProcess(); + public int GetAttribute(Attribute attribute) => _darkSouls1?.GetAttribute(attribute) ?? 0; + public bool ReadEventFlag(uint eventFlagId) => _darkSouls1?.ReadEventFlag(eventFlagId) ?? false; + public bool IsWarpRequested() => _darkSouls1?.IsWarpRequested() ?? false; + public bool IsPlayerLoaded() => _darkSouls1?.IsPlayerLoaded() ?? false; + public Vector3f GetPosition() => _darkSouls1?.GetPosition() ?? new Vector3f(0,0,0); + public int GetInGameTimeMilliseconds() => _darkSouls1?.GetInGameTimeMilliseconds() ?? 0; + public int NgCount() => _darkSouls1?.NgCount() ?? 0; + public int GetCurrentSaveSlot() => _darkSouls1?.GetCurrentSaveSlot() ?? -1; + public void ResetInventoryIndices() => _darkSouls1?.ResetInventoryIndices(); + public List GetInventory() => _darkSouls1?.GetInventory() ?? new List(); + public bool AreCreditsRolling() => _darkSouls1?.AreCreditsRolling() ?? false; + public BonfireState GetBonfireState(Bonfire bonfire) => _darkSouls1?.GetBonfireState(bonfire) ?? BonfireState.Unknown; + public string? GetSaveFileLocation() => _darkSouls1?.GetSaveFileLocation(); + public int GetSaveFileGameTimeMilliseconds(string path, int slot) => _darkSouls1?.GetSaveFileGameTimeMilliseconds(path, slot) ?? 0; + public void WriteWeaponDescription(uint weaponId, string description) => _darkSouls1?.WriteWeaponDescription(weaponId, description); + public void WriteItemLotParam(int rowId, Action accessor) => _darkSouls1?.WriteItemLotParam(rowId, accessor); + public void SetLoadingScreenItem(int index, uint item) => _darkSouls1?.SetLoadingScreenItem(index, item); - public TreeBuilder GetTreeBuilder() => _darkSouls1?.GetTreeBuilder() ?? null!; + public TreeBuilder GetTreeBuilder() => _darkSouls1?.GetTreeBuilder() ?? null!; - public ResultErr TryRefresh() + public ResultErr TryRefresh() + { + try { - try + if (_darkSouls1 == null) { - if (_darkSouls1 == null) + var process = Process.GetProcesses().FirstOrDefault(i => (i.ProcessName.ToLower() == "darksouls" || i.ProcessName.ToLower() == "darksoulsremastered") && !i.HasExited); + if (process == null) { - var process = Process.GetProcesses().FirstOrDefault(i => (i.ProcessName.ToLower() == "darksouls" || i.ProcessName.ToLower() == "darksoulsremastered") && !i.HasExited); - if (process == null) - { - return Result.Err(new RefreshError(RefreshErrorReason.ProcessNotRunning, "Dark Souls 1/Dark Souls Remastered not running.")); - } - - if (process.ProcessName.ToLower() == "darksouls") - { - _darkSouls1 = new Ptde(); - } - else - { - _darkSouls1 = new Remastered(); - } + return Result.Err(new RefreshError(RefreshErrorReason.ProcessNotRunning, "Dark Souls 1/Dark Souls Remastered not running.")); + } - Thread.Sleep(4000); //let the game boot - return _darkSouls1.TryRefresh(); + if (process.ProcessName.ToLower() == "darksouls") + { + _darkSouls1 = new Ptde(); } else { - var result = _darkSouls1.TryRefresh(); - if(result.IsErr) - { - _darkSouls1 = null; - return result; - } - return Result.Ok(); + _darkSouls1 = new Remastered(); } + + Thread.Sleep(4000); //let the game boot + return _darkSouls1.TryRefresh(); } - catch (Exception e) + else { - return RefreshError.FromException(e); + var result = _darkSouls1.TryRefresh(); + if(result.IsErr) + { + _darkSouls1 = null; + return result; + } + return Result.Ok(); } } + catch (Exception e) + { + return RefreshError.FromException(e); + } + } #if DEBUG - public object GetTestValue() => _darkSouls1?.GetTestValue()!; + public object GetTestValue() => _darkSouls1?.GetTestValue()!; #endif - } } diff --git a/src/SoulMemory/DarkSouls1/DropMod.cs b/src/SoulMemory/DarkSouls1/DropMod.cs index 4b1897a..b383c72 100644 --- a/src/SoulMemory/DarkSouls1/DropMod.cs +++ b/src/SoulMemory/DarkSouls1/DropMod.cs @@ -17,139 +17,138 @@ using System.Collections.Generic; using System.Linq; -namespace SoulMemory.DarkSouls1 +namespace SoulMemory.DarkSouls1; + +public class DropMod { - public class DropMod + private readonly IDarkSouls1 _darkSouls; + + public DropMod(IDarkSouls1 darkSouls) { - private readonly IDarkSouls1 _darkSouls; + _darkSouls = darkSouls; + } - public DropMod(IDarkSouls1 darkSouls) + public void InitBkh() + { + _darkSouls.WriteWeaponDescription(1105000, "Dropmod!\n\nAffected:\nBlack Knight Halberd\n\n\n\n\n\n\n\n\n\n"); + for (int i = 0; i < 62; i++) { - _darkSouls = darkSouls; + _darkSouls.SetLoadingScreenItem(i, 1105000); } + GuaranteeDrop(27901000, 1105000); + } - public void InitBkh() - { - _darkSouls.WriteWeaponDescription(1105000, "Dropmod!\n\nAffected:\nBlack Knight Halberd\n\n\n\n\n\n\n\n\n\n"); - for (int i = 0; i < 62; i++) - { - _darkSouls.SetLoadingScreenItem(i, 1105000); - } - GuaranteeDrop(27901000, 1105000); - } + public void InitAllAchievements() + { + _darkSouls.WriteWeaponDescription(1004000, "Dropmod!\n\nAffected:\nBlack Knight Halberd/Sword/Greatsword/Greataxe/Shield\nSilver Knight Straight Sword/Spear/Shield\nStone Greatsword/Greatshield\nChanneler's Trident\nSouvenir of Reprisal\nEye of Death\n\n\n\n\n"); - public void InitAllAchievements() + for (int i = 0; i < 62; i++) { - _darkSouls.WriteWeaponDescription(1004000, "Dropmod!\n\nAffected:\nBlack Knight Halberd/Sword/Greatsword/Greataxe/Shield\nSilver Knight Straight Sword/Spear/Shield\nStone Greatsword/Greatshield\nChanneler's Trident\nSouvenir of Reprisal\nEye of Death\n\n\n\n\n"); - - for (int i = 0; i < 62; i++) - { - _darkSouls.SetLoadingScreenItem(i, 1004000); - } - - //trident - GuaranteeDrop(23700000, 1004000); - GuaranteeDrop(23700100, 1004000); - GuaranteeDrop(23700200, 1004000); + _darkSouls.SetLoadingScreenItem(i, 1004000); + } + + //trident + GuaranteeDrop(23700000, 1004000); + GuaranteeDrop(23700100, 1004000); + GuaranteeDrop(23700200, 1004000); - //Eye of death - GuaranteeDrop(32700000, 109); - GuaranteeDrop(32700100, 109); + //Eye of death + GuaranteeDrop(32700000, 109); + GuaranteeDrop(32700100, 109); - //Souvenir - GuaranteeDrop(23100000, 374); + //Souvenir + GuaranteeDrop(23100000, 374); - foreach (var s in _switchableWeapons) - { - GuaranteeDrop(s.RowId, s.ItemId1); - } + foreach (var s in _switchableWeapons) + { + GuaranteeDrop(s.RowId, s.ItemId1); } + } - public void UpdateAllAchievements() - { - var items = _darkSouls.GetInventory(); + public void UpdateAllAchievements() + { + var items = _darkSouls.GetInventory(); - foreach (SwitchableDrop temp in _switchableWeapons) + foreach (SwitchableDrop temp in _switchableWeapons) + { + var s = temp; //structs need to be put in a variable in order to be mutable. Meme. + if (s.ShouldSwitch && items.Any(j => j.ItemType == s.SwitchItem)) { - var s = temp; //structs need to be put in a variable in order to be mutable. Meme. - if (s.ShouldSwitch && items.Any(j => j.ItemType == s.SwitchItem)) - { - GuaranteeDrop(s.RowId, s.ItemId2); - s.ShouldSwitch = false; - } + GuaranteeDrop(s.RowId, s.ItemId2); + s.ShouldSwitch = false; } } + } - public void ResetAllAchievements() + public void ResetAllAchievements() + { + foreach (SwitchableDrop temp in _switchableWeapons) { - foreach (SwitchableDrop temp in _switchableWeapons) - { - var s = temp; //structs need to be put in a variable in order to be mutable. Meme. - s.ShouldSwitch = true; - } + var s = temp; //structs need to be put in a variable in order to be mutable. Meme. + s.ShouldSwitch = true; } + } - private void GuaranteeDrop(int rowId, int itemId) + private void GuaranteeDrop(int rowId, int itemId) + { + _darkSouls.WriteItemLotParam(rowId, (itemLot) => { - _darkSouls.WriteItemLotParam(rowId, (itemLot) => - { - itemLot.LotItemBasePoint01 = (ushort)(itemLot.LotItemId01 == itemId ? 100 : 0); - itemLot.LotItemBasePoint02 = (ushort)(itemLot.LotItemId02 == itemId ? 100 : 0); - itemLot.LotItemBasePoint03 = (ushort)(itemLot.LotItemId03 == itemId ? 100 : 0); - itemLot.LotItemBasePoint04 = (ushort)(itemLot.LotItemId04 == itemId ? 100 : 0); - itemLot.LotItemBasePoint05 = (ushort)(itemLot.LotItemId05 == itemId ? 100 : 0); - itemLot.LotItemBasePoint06 = (ushort)(itemLot.LotItemId06 == itemId ? 100 : 0); - itemLot.LotItemBasePoint07 = (ushort)(itemLot.LotItemId07 == itemId ? 100 : 0); - itemLot.LotItemBasePoint08 = (ushort)(itemLot.LotItemId08 == itemId ? 100 : 0); - }); - } + itemLot.LotItemBasePoint01 = (ushort)(itemLot.LotItemId01 == itemId ? 100 : 0); + itemLot.LotItemBasePoint02 = (ushort)(itemLot.LotItemId02 == itemId ? 100 : 0); + itemLot.LotItemBasePoint03 = (ushort)(itemLot.LotItemId03 == itemId ? 100 : 0); + itemLot.LotItemBasePoint04 = (ushort)(itemLot.LotItemId04 == itemId ? 100 : 0); + itemLot.LotItemBasePoint05 = (ushort)(itemLot.LotItemId05 == itemId ? 100 : 0); + itemLot.LotItemBasePoint06 = (ushort)(itemLot.LotItemId06 == itemId ? 100 : 0); + itemLot.LotItemBasePoint07 = (ushort)(itemLot.LotItemId07 == itemId ? 100 : 0); + itemLot.LotItemBasePoint08 = (ushort)(itemLot.LotItemId08 == itemId ? 100 : 0); + }); + } + + + private readonly List _switchableWeapons = new List() + { + //Darkroot + new SwitchableDrop(ItemType.StoneGreatsword , 23800000, 306000 , 1503000), + + //Anor londo + new SwitchableDrop(ItemType.SilverKnightStraightSword, 24100000, 208000 , 1473000), + new SwitchableDrop(ItemType.SilverKnightSpear , 24100300, 1006000, 1473000), + + //kiln + new SwitchableDrop(ItemType.BlackKnightHalberd , 27905300, 1105000, 1474000), + new SwitchableDrop(ItemType.BlackKnightGreataxe , 27905200, 753000 , 1474000), + new SwitchableDrop(ItemType.BlackKnightSword , 27905000, 310000 , 1474000), + new SwitchableDrop(ItemType.BlackKnightGreatsword , 27905100, 355000 , 1474000), + + //Darkroot Garden + new SwitchableDrop(ItemType.BlackKnightHalberd , 27901000, 1105000, 1474000), + //undead burg + new SwitchableDrop(ItemType.BlackKnightSword , 27900000, 1105000, 1474000), - private readonly List _switchableWeapons = new List() - { - //Darkroot - new SwitchableDrop(ItemType.StoneGreatsword , 23800000, 306000 , 1503000), - - //Anor londo - new SwitchableDrop(ItemType.SilverKnightStraightSword, 24100000, 208000 , 1473000), - new SwitchableDrop(ItemType.SilverKnightSpear , 24100300, 1006000, 1473000), - - //kiln - new SwitchableDrop(ItemType.BlackKnightHalberd , 27905300, 1105000, 1474000), - new SwitchableDrop(ItemType.BlackKnightGreataxe , 27905200, 753000 , 1474000), - new SwitchableDrop(ItemType.BlackKnightSword , 27905000, 310000 , 1474000), - new SwitchableDrop(ItemType.BlackKnightGreatsword , 27905100, 355000 , 1474000), - - //Darkroot Garden - new SwitchableDrop(ItemType.BlackKnightHalberd , 27901000, 1105000, 1474000), - - //undead burg - new SwitchableDrop(ItemType.BlackKnightSword , 27900000, 1105000, 1474000), - - //Asylum - new SwitchableDrop(ItemType.BlackKnightSword , 27907000, 310000 , 1474000), - - //Catacombs - new SwitchableDrop(ItemType.BlackKnightGreataxe , 27902000, 753000 , 1474000), - new SwitchableDrop(ItemType.BlackKnightHalberd , 27903000, 1105000, 1474000), - }; - - private struct SwitchableDrop + //Asylum + new SwitchableDrop(ItemType.BlackKnightSword , 27907000, 310000 , 1474000), + + //Catacombs + new SwitchableDrop(ItemType.BlackKnightGreataxe , 27902000, 753000 , 1474000), + new SwitchableDrop(ItemType.BlackKnightHalberd , 27903000, 1105000, 1474000), + }; + + private struct SwitchableDrop + { + public SwitchableDrop(ItemType switchItem, int rowId, int itemId1, int itemId2) { - public SwitchableDrop(ItemType switchItem, int rowId, int itemId1, int itemId2) - { - ShouldSwitch = true; - SwitchItem = switchItem ; - RowId = rowId ; - ItemId1 = itemId1 ; - ItemId2 = itemId2 ; - } - - public bool ShouldSwitch; - public ItemType SwitchItem; - public int RowId; - public int ItemId1; - public int ItemId2; + ShouldSwitch = true; + SwitchItem = switchItem ; + RowId = rowId ; + ItemId1 = itemId1 ; + ItemId2 = itemId2 ; } + + public bool ShouldSwitch; + public ItemType SwitchItem; + public int RowId; + public int ItemId1; + public int ItemId2; } } diff --git a/src/SoulMemory/DarkSouls1/DropModType.cs b/src/SoulMemory/DarkSouls1/DropModType.cs index ef41afe..71fa027 100644 --- a/src/SoulMemory/DarkSouls1/DropModType.cs +++ b/src/SoulMemory/DarkSouls1/DropModType.cs @@ -14,12 +14,11 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -namespace SoulMemory.DarkSouls1 +namespace SoulMemory.DarkSouls1; + +public enum DropModType { - public enum DropModType - { - None, - AnyPercent, - AllAchievements - } + None, + AnyPercent, + AllAchievements } diff --git a/src/SoulMemory/DarkSouls1/IDarkSouls1.cs b/src/SoulMemory/DarkSouls1/IDarkSouls1.cs index 6e7e275..8df1586 100644 --- a/src/SoulMemory/DarkSouls1/IDarkSouls1.cs +++ b/src/SoulMemory/DarkSouls1/IDarkSouls1.cs @@ -18,28 +18,27 @@ using System; using System.Collections.Generic; -namespace SoulMemory.DarkSouls1 +namespace SoulMemory.DarkSouls1; + +public interface IDarkSouls1 : IGame { - public interface IDarkSouls1 : IGame - { - int GetAttribute(Attribute attribute); - bool IsWarpRequested(); - bool IsPlayerLoaded(); - int NgCount(); - int GetCurrentSaveSlot(); - Vector3f GetPosition(); - bool AreCreditsRolling(); - void ResetInventoryIndices(); - List GetInventory(); - BonfireState GetBonfireState(Bonfire bonfire); - string? GetSaveFileLocation(); - int GetSaveFileGameTimeMilliseconds(string path, int slot); - void WriteWeaponDescription(uint weaponId, string description); - void WriteItemLotParam(int rowId, Action accessor); - void SetLoadingScreenItem(int index, uint item); + int GetAttribute(Attribute attribute); + bool IsWarpRequested(); + bool IsPlayerLoaded(); + int NgCount(); + int GetCurrentSaveSlot(); + Vector3f GetPosition(); + bool AreCreditsRolling(); + void ResetInventoryIndices(); + List GetInventory(); + BonfireState GetBonfireState(Bonfire bonfire); + string? GetSaveFileLocation(); + int GetSaveFileGameTimeMilliseconds(string path, int slot); + void WriteWeaponDescription(uint weaponId, string description); + void WriteItemLotParam(int rowId, Action accessor); + void SetLoadingScreenItem(int index, uint item); #if DEBUG - object GetTestValue(); + object GetTestValue(); #endif - } } diff --git a/src/SoulMemory/DarkSouls1/Item.cs b/src/SoulMemory/DarkSouls1/Item.cs index 59724b5..d206aef 100644 --- a/src/SoulMemory/DarkSouls1/Item.cs +++ b/src/SoulMemory/DarkSouls1/Item.cs @@ -20,1554 +20,1553 @@ using System.Diagnostics.CodeAnalysis; using System.Xml.Serialization; -namespace SoulMemory.DarkSouls1 +namespace SoulMemory.DarkSouls1; + +[ExcludeFromCodeCoverage] +public class Item { - [ExcludeFromCodeCoverage] - public class Item + public Item(string name, int id, ItemType itemType, ItemCategory category, int stackLimit, ItemUpgrade upgrade) { - public Item(string name, int id, ItemType itemType, ItemCategory category, int stackLimit, ItemUpgrade upgrade) - { - Name = name; - Id = id; - ItemType = itemType; - Category = category; - StackLimit = stackLimit; - Upgrade = upgrade; - } + Name = name; + Id = id; + ItemType = itemType; + Category = category; + StackLimit = stackLimit; + Upgrade = upgrade; + } - public string Name { get; set; } - public int Id { get; set; } - public ItemType ItemType { get; set; } - public ItemCategory Category { get; set; } - public int StackLimit { get; set; } - public int Quantity { get; set; } - public ItemUpgrade Upgrade { get; set; } - public ItemInfusion Infusion { get; set; } - public int UpgradeLevel { get; set; } + public string Name { get; set; } + public int Id { get; set; } + public ItemType ItemType { get; set; } + public ItemCategory Category { get; set; } + public int StackLimit { get; set; } + public int Quantity { get; set; } + public ItemUpgrade Upgrade { get; set; } + public ItemInfusion Infusion { get; set; } + public int UpgradeLevel { get; set; } - //For display in debugger - public override string ToString() - { - return $"{Name} {Quantity}"; - } + //For display in debugger + public override string ToString() + { + return $"{Name} {Quantity}"; + } - public int GetGameValue() + public int GetGameValue() + { + int id = (int)ItemType; + if (Upgrade == ItemUpgrade.PyroFlame || Upgrade == ItemUpgrade.PyroFlameAscended) { - int id = (int)ItemType; - if (Upgrade == ItemUpgrade.PyroFlame || Upgrade == ItemUpgrade.PyroFlameAscended) - { - id += UpgradeLevel * 100; - } - else - { - id += UpgradeLevel; - } + id += UpgradeLevel * 100; + } + else + { + id += UpgradeLevel; + } - if (Upgrade == ItemUpgrade.Infusable || Upgrade == ItemUpgrade.InfusableRestricted) - { - id += (int)Upgrade; - } - return id; + if (Upgrade == ItemUpgrade.Infusable || Upgrade == ItemUpgrade.InfusableRestricted) + { + id += (int)Upgrade; } + return id; + } - public int MaxUpgrade + public int MaxUpgrade + { + get { - get + switch (Infusion) { - switch (Infusion) - { - default: throw new NotSupportedException($"Unknown infusion type: {Infusion}"); - case ItemInfusion.Normal: return 15; - case ItemInfusion.Chaos: return 5; - case ItemInfusion.Crystal: return 5; - case ItemInfusion.Divine: return 10; - case ItemInfusion.Enchanted: return 5; - case ItemInfusion.Fire: return 10; - case ItemInfusion.Lightning: return 5; - case ItemInfusion.Magic: return 10; - case ItemInfusion.Occult: return 5; - case ItemInfusion.Raw: return 5; - } + default: throw new NotSupportedException($"Unknown infusion type: {Infusion}"); + case ItemInfusion.Normal: return 15; + case ItemInfusion.Chaos: return 5; + case ItemInfusion.Crystal: return 5; + case ItemInfusion.Divine: return 10; + case ItemInfusion.Enchanted: return 5; + case ItemInfusion.Fire: return 10; + case ItemInfusion.Lightning: return 5; + case ItemInfusion.Magic: return 10; + case ItemInfusion.Occult: return 5; + case ItemInfusion.Raw: return 5; } } + } - public bool RestrictUpgrade + public bool RestrictUpgrade + { + get { - get + switch (Infusion) { - switch (Infusion) - { - default: throw new NotSupportedException($"Unknown infusion type: {Infusion}"); - case ItemInfusion.Normal: return false; - case ItemInfusion.Chaos: return true; - case ItemInfusion.Crystal: return false; - case ItemInfusion.Divine: return false; - case ItemInfusion.Enchanted: return true; - case ItemInfusion.Fire: return false; - case ItemInfusion.Lightning: return false; - case ItemInfusion.Magic: return false; - case ItemInfusion.Occult: return true; - case ItemInfusion.Raw: return true; - } + default: throw new NotSupportedException($"Unknown infusion type: {Infusion}"); + case ItemInfusion.Normal: return false; + case ItemInfusion.Chaos: return true; + case ItemInfusion.Crystal: return false; + case ItemInfusion.Divine: return false; + case ItemInfusion.Enchanted: return true; + case ItemInfusion.Fire: return false; + case ItemInfusion.Lightning: return false; + case ItemInfusion.Magic: return false; + case ItemInfusion.Occult: return true; + case ItemInfusion.Raw: return true; } } - - public static readonly ReadOnlyCollection AllItems = new ReadOnlyCollection(new List() - { - new Item("Catarina Helm" , 10000, ItemType.CatarinaHelm , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Catarina Armor" , 11000, ItemType.CatarinaArmor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Catarina Gauntlets" , 12000, ItemType.CatarinaGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Catarina Leggings" , 13000, ItemType.CatarinaLeggings , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Paladin Helm" , 20000, ItemType.PaladinHelm , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Paladin Armor" , 21000, ItemType.PaladinArmor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Paladin Gauntlets" , 22000, ItemType.PaladinGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Paladin Leggings" , 23000, ItemType.PaladinLeggings , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Dark Mask" , 40000, ItemType.DarkMask , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Dark Armor" , 41000, ItemType.DarkArmor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Dark Gauntlets" , 42000, ItemType.DarkGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Dark Leggings" , 43000, ItemType.DarkLeggings , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Brigand Hood" , 50000, ItemType.BrigandHood , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Brigand Armor" , 51000, ItemType.BrigandArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Brigand Gauntlets" , 52000, ItemType.BrigandGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Brigand Trousers" , 53000, ItemType.BrigandTrousers , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Shadow Mask" , 60000, ItemType.ShadowMask , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Shadow Garb" , 61000, ItemType.ShadowGarb , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Shadow Gauntlets" , 62000, ItemType.ShadowGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Shadow Leggings" , 63000, ItemType.ShadowLeggings , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Black Iron Helm" , 70000, ItemType.BlackIronHelm , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Black Iron Armor" , 71000, ItemType.BlackIronArmor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Black Iron Gauntlets" , 72000, ItemType.BlackIronGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Black Iron Leggings" , 73000, ItemType.BlackIronLeggings , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Smough's Helm" , 80000, ItemType.SmoughsHelm , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Smough's Armor" , 81000, ItemType.SmoughsArmor , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Smough's Gauntlets" , 82000, ItemType.SmoughsGauntlets , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Smough's Leggings" , 83000, ItemType.SmoughsLeggings , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Six-Eyed Helm of the Channelers" , 90000, ItemType.SixEyedHelmoftheChannelers , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Robe of the Channelers" , 91000, ItemType.RobeoftheChannelers , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Gauntlets of the Channelers" , 92000, ItemType.GauntletsoftheChannelers , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Waistcloth of the Channelers" , 93000, ItemType.WaistclothoftheChannelers , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Helm of Favor" , 100000, ItemType.HelmofFavor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Embraced Armor of Favor" , 101000, ItemType.EmbracedArmorofFavor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Gauntlets of Favor" , 102000, ItemType.GauntletsofFavor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Leggings of Favor" , 103000, ItemType.LeggingsofFavor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Helm of the Wise" , 110000, ItemType.HelmoftheWise , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Armor of the Glorious" , 111000, ItemType.ArmoroftheGlorious , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Gauntlets of the Vanquisher" , 112000, ItemType.GauntletsoftheVanquisher , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Boots of the Explorer" , 113000, ItemType.BootsoftheExplorer , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Stone Helm" , 120000, ItemType.StoneHelm , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Stone Armor" , 121000, ItemType.StoneArmor , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Stone Gauntlets" , 122000, ItemType.StoneGauntlets , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Stone Leggings" , 123000, ItemType.StoneLeggings , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Crystalline Helm" , 130000, ItemType.CrystallineHelm , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Crystalline Armor" , 131000, ItemType.CrystallineArmor , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Crystalline Gauntlets" , 132000, ItemType.CrystallineGauntlets , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Crystalline Leggings" , 133000, ItemType.CrystallineLeggings , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Mask of the Sealer" , 140000, ItemType.MaskoftheSealer , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Crimson Robe" , 141000, ItemType.CrimsonRobe , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Crimson Gloves" , 142000, ItemType.CrimsonGloves , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Crimson Waistcloth" , 143000, ItemType.CrimsonWaistcloth , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Mask of Velka" , 150000, ItemType.MaskofVelka , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Black Cleric Robe" , 151000, ItemType.BlackClericRobe , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Black Manchette" , 152000, ItemType.BlackManchette , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Black Tights" , 153000, ItemType.BlackTights , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Iron Helm" , 160000, ItemType.IronHelm , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Armor of the Sun" , 161000, ItemType.ArmoroftheSun , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Iron Bracelet" , 162000, ItemType.IronBracelet , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Iron Leggings" , 163000, ItemType.IronLeggings , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Chain Helm" , 170000, ItemType.ChainHelm , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Chain Armor" , 171000, ItemType.ChainArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Leather Gauntlets" , 172000, ItemType.LeatherGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Chain Leggings" , 173000, ItemType.ChainLeggings , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Cleric Helm" , 180000, ItemType.ClericHelm , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Cleric Armor" , 181000, ItemType.ClericArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Cleric Gauntlets" , 182000, ItemType.ClericGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Cleric Leggings" , 183000, ItemType.ClericLeggings , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Sunlight Maggot" , 190000, ItemType.SunlightMaggot , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Helm of Thorns" , 200000, ItemType.HelmofThorns , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Armor of Thorns" , 201000, ItemType.ArmorofThorns , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Gauntlets of Thorns" , 202000, ItemType.GauntletsofThorns , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Leggings of Thorns" , 203000, ItemType.LeggingsofThorns , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Standard Helm" , 210000, ItemType.StandardHelm , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Hard Leather Armor" , 211000, ItemType.HardLeatherArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Hard Leather Gauntlets" , 212000, ItemType.HardLeatherGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Hard Leather Boots" , 213000, ItemType.HardLeatherBoots , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Sorcerer Hat" , 220000, ItemType.SorcererHat , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Sorcerer Cloak" , 221000, ItemType.SorcererCloak , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Sorcerer Gauntlets" , 222000, ItemType.SorcererGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Sorcerer Boots" , 223000, ItemType.SorcererBoots , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Tattered Cloth Hood" , 230000, ItemType.TatteredClothHood , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Tattered Cloth Robe" , 231000, ItemType.TatteredClothRobe , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Tattered Cloth Manchette" , 232000, ItemType.TatteredClothManchette , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Heavy Boots" , 233000, ItemType.HeavyBoots , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Pharis's Hat" , 240000, ItemType.PharissHat , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Leather Armor" , 241000, ItemType.LeatherArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Leather Gloves" , 242000, ItemType.LeatherGloves , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Leather Boots" , 243000, ItemType.LeatherBoots , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Painting Guardian Hood" , 250000, ItemType.PaintingGuardianHood , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Painting Guardian Robe" , 251000, ItemType.PaintingGuardianRobe , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Painting Guardian Gloves" , 252000, ItemType.PaintingGuardianGloves , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Painting Guardian Waistcloth" , 253000, ItemType.PaintingGuardianWaistcloth , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Ornstein's Helm" , 270000, ItemType.OrnsteinsHelm , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Ornstein's Armor" , 271000, ItemType.OrnsteinsArmor , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Ornstein's Gauntlets" , 272000, ItemType.OrnsteinsGauntlets , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Ornstein's Leggings" , 273000, ItemType.OrnsteinsLeggings , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Eastern Helm" , 280000, ItemType.EasternHelm , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Eastern Armor" , 281000, ItemType.EasternArmor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Eastern Gauntlets" , 282000, ItemType.EasternGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Eastern Leggings" , 283000, ItemType.EasternLeggings , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Xanthous Crown" , 290000, ItemType.XanthousCrown , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Xanthous Overcoat" , 291000, ItemType.XanthousOvercoat , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Xanthous Gloves" , 292000, ItemType.XanthousGloves , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Xanthous Waistcloth" , 293000, ItemType.XanthousWaistcloth , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Thief Mask" , 300000, ItemType.ThiefMask , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Black Leather Armor" , 301000, ItemType.BlackLeatherArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Black Leather Gloves" , 302000, ItemType.BlackLeatherGloves , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Black Leather Boots" , 303000, ItemType.BlackLeatherBoots , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Priest's Hat" , 310000, ItemType.PriestsHat , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Holy Robe" , 311000, ItemType.HolyRobe , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Traveling Gloves (Holy)" , 312000, ItemType.TravelingGlovesHoly , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Holy Trousers" , 313000, ItemType.HolyTrousers , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Black Knight Helm" , 320000, ItemType.BlackKnightHelm , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Black Knight Armor" , 321000, ItemType.BlackKnightArmor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Black Knight Gauntlets" , 322000, ItemType.BlackKnightGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Black Knight Leggings" , 323000, ItemType.BlackKnightLeggings , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Crown of Dusk" , 330000, ItemType.CrownofDusk , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Antiquated Dress" , 331000, ItemType.AntiquatedDress , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Antiquated Gloves" , 332000, ItemType.AntiquatedGloves , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Antiquated Skirt" , 333000, ItemType.AntiquatedSkirt , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Witch Hat" , 340000, ItemType.WitchHat , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Witch Cloak" , 341000, ItemType.WitchCloak , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Witch Gloves" , 342000, ItemType.WitchGloves , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Witch Skirt" , 343000, ItemType.WitchSkirt , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Elite Knight Helm" , 350000, ItemType.EliteKnightHelm , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Elite Knight Armor" , 351000, ItemType.EliteKnightArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Elite Knight Gauntlets" , 352000, ItemType.EliteKnightGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Elite Knight Leggings" , 353000, ItemType.EliteKnightLeggings , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Wanderer Hood" , 360000, ItemType.WandererHood , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Wanderer Coat" , 361000, ItemType.WandererCoat , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Wanderer Manchette" , 362000, ItemType.WandererManchette , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Wanderer Boots" , 363000, ItemType.WandererBoots , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Big Hat" , 380000, ItemType.BigHat , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Sage Robe" , 381000, ItemType.SageRobe , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Traveling Gloves (Sage)" , 382000, ItemType.TravelingGlovesSage , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Traveling Boots" , 383000, ItemType.TravelingBoots , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Knight Helm" , 390000, ItemType.KnightHelm , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Knight Armor" , 391000, ItemType.KnightArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Knight Gauntlets" , 392000, ItemType.KnightGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Knight Leggings" , 393000, ItemType.KnightLeggings , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Dingy Hood" , 400000, ItemType.DingyHood , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Dingy Robe" , 401000, ItemType.DingyRobe , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Dingy Gloves" , 402000, ItemType.DingyGloves , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Blood-Stained Skirt" , 403000, ItemType.BloodStainedSkirt , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Maiden Hood" , 410000, ItemType.MaidenHood , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Maiden Robe" , 411000, ItemType.MaidenRobe , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Maiden Gloves" , 412000, ItemType.MaidenGloves , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Maiden Skirt" , 413000, ItemType.MaidenSkirt , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Silver Knight Helm" , 420000, ItemType.SilverKnightHelm , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Silver Knight Armor" , 421000, ItemType.SilverKnightArmor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Silver Knight Gauntlets" , 422000, ItemType.SilverKnightGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Silver Knight Leggings" , 423000, ItemType.SilverKnightLeggings , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Havel's Helm" , 440000, ItemType.HavelsHelm , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Havel's Armor" , 441000, ItemType.HavelsArmor , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Havel's Gauntlets" , 442000, ItemType.HavelsGauntlets , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Havel's Leggings" , 443000, ItemType.HavelsLeggings , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Brass Helm" , 450000, ItemType.BrassHelm , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Brass Armor" , 451000, ItemType.BrassArmor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Brass Gauntlets" , 452000, ItemType.BrassGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Brass Leggings" , 453000, ItemType.BrassLeggings , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Gold-Hemmed Black Hood" , 460000, ItemType.GoldHemmedBlackHood , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Gold-Hemmed Black Cloak" , 461000, ItemType.GoldHemmedBlackCloak , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Gold-Hemmed Black Gloves" , 462000, ItemType.GoldHemmedBlackGloves , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Gold-Hemmed Black Skirt" , 463000, ItemType.GoldHemmedBlackSkirt , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Golem Helm" , 470000, ItemType.GolemHelm , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Golem Armor" , 471000, ItemType.GolemArmor , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Golem Gauntlets" , 472000, ItemType.GolemGauntlets , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Golem Leggings" , 473000, ItemType.GolemLeggings , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Hollow Soldier Helm" , 480000, ItemType.HollowSoldierHelm , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Hollow Soldier Armor" , 481000, ItemType.HollowSoldierArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Hollow Soldier Waistcloth" , 483000, ItemType.HollowSoldierWaistcloth , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Steel Helm" , 490000, ItemType.SteelHelm , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Steel Armor" , 491000, ItemType.SteelArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Steel Gauntlets" , 492000, ItemType.SteelGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Steel Leggings" , 493000, ItemType.SteelLeggings , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Hollow Thief's Hood" , 500000, ItemType.HollowThiefsHood , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Hollow Thief's Leather Armor" , 501000, ItemType.HollowThiefsLeatherArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Hollow Thief's Tights" , 503000, ItemType.HollowThiefsTights , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Balder Helm" , 510000, ItemType.BalderHelm , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Balder Armor" , 511000, ItemType.BalderArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Balder Gauntlets" , 512000, ItemType.BalderGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Balder Leggings" , 513000, ItemType.BalderLeggings , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Hollow Warrior Helm" , 520000, ItemType.HollowWarriorHelm , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Hollow Warrior Armor" , 521000, ItemType.HollowWarriorArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Hollow Warrior Waistcloth" , 523000, ItemType.HollowWarriorWaistcloth , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Giant Helm" , 530000, ItemType.GiantHelm , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Giant Armor" , 531000, ItemType.GiantArmor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Giant Gauntlets" , 532000, ItemType.GiantGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Giant Leggings" , 533000, ItemType.GiantLeggings , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Crown of the Dark Sun" , 540000, ItemType.CrownoftheDarkSun , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Moonlight Robe" , 541000, ItemType.MoonlightRobe , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Moonlight Gloves" , 542000, ItemType.MoonlightGloves , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Moonlight Waistcloth" , 543000, ItemType.MoonlightWaistcloth , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Crown of the Great Lord" , 550000, ItemType.CrownoftheGreatLord , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Robe of the Great Lord" , 551000, ItemType.RobeoftheGreatLord , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Bracelet of the Great Lord" , 552000, ItemType.BraceletoftheGreatLord , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Anklet of the Great Lord" , 553000, ItemType.AnkletoftheGreatLord , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Sack" , 560000, ItemType.Sack , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Symbol of Avarice" , 570000, ItemType.SymbolofAvarice , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Royal Helm" , 580000, ItemType.RoyalHelm , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Mask of the Father" , 590000, ItemType.MaskoftheFather , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Mask of the Mother" , 600000, ItemType.MaskoftheMother , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Mask of the Child" , 610000, ItemType.MaskoftheChild , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Fang Boar Helm" , 620000, ItemType.FangBoarHelm , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Gargoyle Helm" , 630000, ItemType.GargoyleHelm , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Black Sorcerer Hat" , 640000, ItemType.BlackSorcererHat , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Black Sorcerer Cloak" , 641000, ItemType.BlackSorcererCloak , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Black Sorcerer Gauntlets" , 642000, ItemType.BlackSorcererGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Black Sorcerer Boots" , 643000, ItemType.BlackSorcererBoots , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Helm of Artorias" , 660000, ItemType.HelmofArtorias , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Armor of Artorias" , 661000, ItemType.ArmorofArtorias , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Gauntlets of Artorias" , 662000, ItemType.GauntletsofArtorias , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Leggings of Artorias" , 663000, ItemType.LeggingsofArtorias , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Porcelain Mask" , 670000, ItemType.PorcelainMask , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Lord's Blade Robe" , 671000, ItemType.LordsBladeRobe , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Lord's Blade Gloves" , 672000, ItemType.LordsBladeGloves , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Lord's Blade Waistcloth" , 673000, ItemType.LordsBladeWaistcloth , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Gough's Helm" , 680000, ItemType.GoughsHelm , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Gough's Armor" , 681000, ItemType.GoughsArmor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Gough's Gauntlets" , 682000, ItemType.GoughsGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Gough's Leggings" , 683000, ItemType.GoughsLeggings , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Guardian Helm" , 690000, ItemType.GuardianHelm , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Guardian Armor" , 691000, ItemType.GuardianArmor , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Guardian Gauntlets" , 692000, ItemType.GuardianGauntlets , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Guardian Leggings" , 693000, ItemType.GuardianLeggings , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Snickering Top Hat" , 700000, ItemType.SnickeringTopHat , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Chester's Long Coat" , 701000, ItemType.ChestersLongCoat , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Chester's Gloves" , 702000, ItemType.ChestersGloves , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Chester's Trousers" , 703000, ItemType.ChestersTrousers , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Bloated Head" , 710000, ItemType.BloatedHead , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Bloated Sorcerer Head" , 720000, ItemType.BloatedSorcererHead , ItemCategory.Armor , 1, ItemUpgrade.None ), + } + + public static readonly ReadOnlyCollection AllItems = new ReadOnlyCollection(new List() + { + new Item("Catarina Helm" , 10000, ItemType.CatarinaHelm , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Catarina Armor" , 11000, ItemType.CatarinaArmor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Catarina Gauntlets" , 12000, ItemType.CatarinaGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Catarina Leggings" , 13000, ItemType.CatarinaLeggings , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Paladin Helm" , 20000, ItemType.PaladinHelm , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Paladin Armor" , 21000, ItemType.PaladinArmor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Paladin Gauntlets" , 22000, ItemType.PaladinGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Paladin Leggings" , 23000, ItemType.PaladinLeggings , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Dark Mask" , 40000, ItemType.DarkMask , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Dark Armor" , 41000, ItemType.DarkArmor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Dark Gauntlets" , 42000, ItemType.DarkGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Dark Leggings" , 43000, ItemType.DarkLeggings , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Brigand Hood" , 50000, ItemType.BrigandHood , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Brigand Armor" , 51000, ItemType.BrigandArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Brigand Gauntlets" , 52000, ItemType.BrigandGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Brigand Trousers" , 53000, ItemType.BrigandTrousers , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Shadow Mask" , 60000, ItemType.ShadowMask , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Shadow Garb" , 61000, ItemType.ShadowGarb , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Shadow Gauntlets" , 62000, ItemType.ShadowGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Shadow Leggings" , 63000, ItemType.ShadowLeggings , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Black Iron Helm" , 70000, ItemType.BlackIronHelm , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Black Iron Armor" , 71000, ItemType.BlackIronArmor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Black Iron Gauntlets" , 72000, ItemType.BlackIronGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Black Iron Leggings" , 73000, ItemType.BlackIronLeggings , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Smough's Helm" , 80000, ItemType.SmoughsHelm , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Smough's Armor" , 81000, ItemType.SmoughsArmor , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Smough's Gauntlets" , 82000, ItemType.SmoughsGauntlets , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Smough's Leggings" , 83000, ItemType.SmoughsLeggings , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Six-Eyed Helm of the Channelers" , 90000, ItemType.SixEyedHelmoftheChannelers , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Robe of the Channelers" , 91000, ItemType.RobeoftheChannelers , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Gauntlets of the Channelers" , 92000, ItemType.GauntletsoftheChannelers , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Waistcloth of the Channelers" , 93000, ItemType.WaistclothoftheChannelers , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Helm of Favor" , 100000, ItemType.HelmofFavor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Embraced Armor of Favor" , 101000, ItemType.EmbracedArmorofFavor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Gauntlets of Favor" , 102000, ItemType.GauntletsofFavor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Leggings of Favor" , 103000, ItemType.LeggingsofFavor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Helm of the Wise" , 110000, ItemType.HelmoftheWise , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Armor of the Glorious" , 111000, ItemType.ArmoroftheGlorious , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Gauntlets of the Vanquisher" , 112000, ItemType.GauntletsoftheVanquisher , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Boots of the Explorer" , 113000, ItemType.BootsoftheExplorer , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Stone Helm" , 120000, ItemType.StoneHelm , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Stone Armor" , 121000, ItemType.StoneArmor , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Stone Gauntlets" , 122000, ItemType.StoneGauntlets , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Stone Leggings" , 123000, ItemType.StoneLeggings , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Crystalline Helm" , 130000, ItemType.CrystallineHelm , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Crystalline Armor" , 131000, ItemType.CrystallineArmor , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Crystalline Gauntlets" , 132000, ItemType.CrystallineGauntlets , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Crystalline Leggings" , 133000, ItemType.CrystallineLeggings , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Mask of the Sealer" , 140000, ItemType.MaskoftheSealer , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Crimson Robe" , 141000, ItemType.CrimsonRobe , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Crimson Gloves" , 142000, ItemType.CrimsonGloves , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Crimson Waistcloth" , 143000, ItemType.CrimsonWaistcloth , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Mask of Velka" , 150000, ItemType.MaskofVelka , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Black Cleric Robe" , 151000, ItemType.BlackClericRobe , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Black Manchette" , 152000, ItemType.BlackManchette , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Black Tights" , 153000, ItemType.BlackTights , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Iron Helm" , 160000, ItemType.IronHelm , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Armor of the Sun" , 161000, ItemType.ArmoroftheSun , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Iron Bracelet" , 162000, ItemType.IronBracelet , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Iron Leggings" , 163000, ItemType.IronLeggings , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Chain Helm" , 170000, ItemType.ChainHelm , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Chain Armor" , 171000, ItemType.ChainArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Leather Gauntlets" , 172000, ItemType.LeatherGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Chain Leggings" , 173000, ItemType.ChainLeggings , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Cleric Helm" , 180000, ItemType.ClericHelm , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Cleric Armor" , 181000, ItemType.ClericArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Cleric Gauntlets" , 182000, ItemType.ClericGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Cleric Leggings" , 183000, ItemType.ClericLeggings , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Sunlight Maggot" , 190000, ItemType.SunlightMaggot , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Helm of Thorns" , 200000, ItemType.HelmofThorns , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Armor of Thorns" , 201000, ItemType.ArmorofThorns , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Gauntlets of Thorns" , 202000, ItemType.GauntletsofThorns , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Leggings of Thorns" , 203000, ItemType.LeggingsofThorns , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Standard Helm" , 210000, ItemType.StandardHelm , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Hard Leather Armor" , 211000, ItemType.HardLeatherArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Hard Leather Gauntlets" , 212000, ItemType.HardLeatherGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Hard Leather Boots" , 213000, ItemType.HardLeatherBoots , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Sorcerer Hat" , 220000, ItemType.SorcererHat , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Sorcerer Cloak" , 221000, ItemType.SorcererCloak , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Sorcerer Gauntlets" , 222000, ItemType.SorcererGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Sorcerer Boots" , 223000, ItemType.SorcererBoots , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Tattered Cloth Hood" , 230000, ItemType.TatteredClothHood , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Tattered Cloth Robe" , 231000, ItemType.TatteredClothRobe , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Tattered Cloth Manchette" , 232000, ItemType.TatteredClothManchette , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Heavy Boots" , 233000, ItemType.HeavyBoots , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Pharis's Hat" , 240000, ItemType.PharissHat , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Leather Armor" , 241000, ItemType.LeatherArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Leather Gloves" , 242000, ItemType.LeatherGloves , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Leather Boots" , 243000, ItemType.LeatherBoots , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Painting Guardian Hood" , 250000, ItemType.PaintingGuardianHood , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Painting Guardian Robe" , 251000, ItemType.PaintingGuardianRobe , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Painting Guardian Gloves" , 252000, ItemType.PaintingGuardianGloves , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Painting Guardian Waistcloth" , 253000, ItemType.PaintingGuardianWaistcloth , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Ornstein's Helm" , 270000, ItemType.OrnsteinsHelm , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Ornstein's Armor" , 271000, ItemType.OrnsteinsArmor , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Ornstein's Gauntlets" , 272000, ItemType.OrnsteinsGauntlets , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Ornstein's Leggings" , 273000, ItemType.OrnsteinsLeggings , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Eastern Helm" , 280000, ItemType.EasternHelm , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Eastern Armor" , 281000, ItemType.EasternArmor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Eastern Gauntlets" , 282000, ItemType.EasternGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Eastern Leggings" , 283000, ItemType.EasternLeggings , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Xanthous Crown" , 290000, ItemType.XanthousCrown , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Xanthous Overcoat" , 291000, ItemType.XanthousOvercoat , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Xanthous Gloves" , 292000, ItemType.XanthousGloves , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Xanthous Waistcloth" , 293000, ItemType.XanthousWaistcloth , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Thief Mask" , 300000, ItemType.ThiefMask , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Black Leather Armor" , 301000, ItemType.BlackLeatherArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Black Leather Gloves" , 302000, ItemType.BlackLeatherGloves , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Black Leather Boots" , 303000, ItemType.BlackLeatherBoots , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Priest's Hat" , 310000, ItemType.PriestsHat , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Holy Robe" , 311000, ItemType.HolyRobe , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Traveling Gloves (Holy)" , 312000, ItemType.TravelingGlovesHoly , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Holy Trousers" , 313000, ItemType.HolyTrousers , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Black Knight Helm" , 320000, ItemType.BlackKnightHelm , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Black Knight Armor" , 321000, ItemType.BlackKnightArmor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Black Knight Gauntlets" , 322000, ItemType.BlackKnightGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Black Knight Leggings" , 323000, ItemType.BlackKnightLeggings , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Crown of Dusk" , 330000, ItemType.CrownofDusk , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Antiquated Dress" , 331000, ItemType.AntiquatedDress , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Antiquated Gloves" , 332000, ItemType.AntiquatedGloves , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Antiquated Skirt" , 333000, ItemType.AntiquatedSkirt , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Witch Hat" , 340000, ItemType.WitchHat , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Witch Cloak" , 341000, ItemType.WitchCloak , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Witch Gloves" , 342000, ItemType.WitchGloves , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Witch Skirt" , 343000, ItemType.WitchSkirt , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Elite Knight Helm" , 350000, ItemType.EliteKnightHelm , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Elite Knight Armor" , 351000, ItemType.EliteKnightArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Elite Knight Gauntlets" , 352000, ItemType.EliteKnightGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Elite Knight Leggings" , 353000, ItemType.EliteKnightLeggings , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Wanderer Hood" , 360000, ItemType.WandererHood , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Wanderer Coat" , 361000, ItemType.WandererCoat , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Wanderer Manchette" , 362000, ItemType.WandererManchette , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Wanderer Boots" , 363000, ItemType.WandererBoots , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Big Hat" , 380000, ItemType.BigHat , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Sage Robe" , 381000, ItemType.SageRobe , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Traveling Gloves (Sage)" , 382000, ItemType.TravelingGlovesSage , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Traveling Boots" , 383000, ItemType.TravelingBoots , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Knight Helm" , 390000, ItemType.KnightHelm , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Knight Armor" , 391000, ItemType.KnightArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Knight Gauntlets" , 392000, ItemType.KnightGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Knight Leggings" , 393000, ItemType.KnightLeggings , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Dingy Hood" , 400000, ItemType.DingyHood , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Dingy Robe" , 401000, ItemType.DingyRobe , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Dingy Gloves" , 402000, ItemType.DingyGloves , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Blood-Stained Skirt" , 403000, ItemType.BloodStainedSkirt , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Maiden Hood" , 410000, ItemType.MaidenHood , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Maiden Robe" , 411000, ItemType.MaidenRobe , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Maiden Gloves" , 412000, ItemType.MaidenGloves , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Maiden Skirt" , 413000, ItemType.MaidenSkirt , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Silver Knight Helm" , 420000, ItemType.SilverKnightHelm , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Silver Knight Armor" , 421000, ItemType.SilverKnightArmor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Silver Knight Gauntlets" , 422000, ItemType.SilverKnightGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Silver Knight Leggings" , 423000, ItemType.SilverKnightLeggings , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Havel's Helm" , 440000, ItemType.HavelsHelm , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Havel's Armor" , 441000, ItemType.HavelsArmor , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Havel's Gauntlets" , 442000, ItemType.HavelsGauntlets , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Havel's Leggings" , 443000, ItemType.HavelsLeggings , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Brass Helm" , 450000, ItemType.BrassHelm , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Brass Armor" , 451000, ItemType.BrassArmor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Brass Gauntlets" , 452000, ItemType.BrassGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Brass Leggings" , 453000, ItemType.BrassLeggings , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Gold-Hemmed Black Hood" , 460000, ItemType.GoldHemmedBlackHood , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Gold-Hemmed Black Cloak" , 461000, ItemType.GoldHemmedBlackCloak , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Gold-Hemmed Black Gloves" , 462000, ItemType.GoldHemmedBlackGloves , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Gold-Hemmed Black Skirt" , 463000, ItemType.GoldHemmedBlackSkirt , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Golem Helm" , 470000, ItemType.GolemHelm , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Golem Armor" , 471000, ItemType.GolemArmor , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Golem Gauntlets" , 472000, ItemType.GolemGauntlets , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Golem Leggings" , 473000, ItemType.GolemLeggings , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Hollow Soldier Helm" , 480000, ItemType.HollowSoldierHelm , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Hollow Soldier Armor" , 481000, ItemType.HollowSoldierArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Hollow Soldier Waistcloth" , 483000, ItemType.HollowSoldierWaistcloth , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Steel Helm" , 490000, ItemType.SteelHelm , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Steel Armor" , 491000, ItemType.SteelArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Steel Gauntlets" , 492000, ItemType.SteelGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Steel Leggings" , 493000, ItemType.SteelLeggings , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Hollow Thief's Hood" , 500000, ItemType.HollowThiefsHood , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Hollow Thief's Leather Armor" , 501000, ItemType.HollowThiefsLeatherArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Hollow Thief's Tights" , 503000, ItemType.HollowThiefsTights , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Balder Helm" , 510000, ItemType.BalderHelm , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Balder Armor" , 511000, ItemType.BalderArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Balder Gauntlets" , 512000, ItemType.BalderGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Balder Leggings" , 513000, ItemType.BalderLeggings , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Hollow Warrior Helm" , 520000, ItemType.HollowWarriorHelm , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Hollow Warrior Armor" , 521000, ItemType.HollowWarriorArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Hollow Warrior Waistcloth" , 523000, ItemType.HollowWarriorWaistcloth , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Giant Helm" , 530000, ItemType.GiantHelm , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Giant Armor" , 531000, ItemType.GiantArmor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Giant Gauntlets" , 532000, ItemType.GiantGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Giant Leggings" , 533000, ItemType.GiantLeggings , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Crown of the Dark Sun" , 540000, ItemType.CrownoftheDarkSun , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Moonlight Robe" , 541000, ItemType.MoonlightRobe , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Moonlight Gloves" , 542000, ItemType.MoonlightGloves , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Moonlight Waistcloth" , 543000, ItemType.MoonlightWaistcloth , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Crown of the Great Lord" , 550000, ItemType.CrownoftheGreatLord , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Robe of the Great Lord" , 551000, ItemType.RobeoftheGreatLord , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Bracelet of the Great Lord" , 552000, ItemType.BraceletoftheGreatLord , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Anklet of the Great Lord" , 553000, ItemType.AnkletoftheGreatLord , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Sack" , 560000, ItemType.Sack , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Symbol of Avarice" , 570000, ItemType.SymbolofAvarice , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Royal Helm" , 580000, ItemType.RoyalHelm , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Mask of the Father" , 590000, ItemType.MaskoftheFather , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Mask of the Mother" , 600000, ItemType.MaskoftheMother , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Mask of the Child" , 610000, ItemType.MaskoftheChild , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Fang Boar Helm" , 620000, ItemType.FangBoarHelm , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Gargoyle Helm" , 630000, ItemType.GargoyleHelm , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Black Sorcerer Hat" , 640000, ItemType.BlackSorcererHat , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Black Sorcerer Cloak" , 641000, ItemType.BlackSorcererCloak , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Black Sorcerer Gauntlets" , 642000, ItemType.BlackSorcererGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Black Sorcerer Boots" , 643000, ItemType.BlackSorcererBoots , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new Item("Helm of Artorias" , 660000, ItemType.HelmofArtorias , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Armor of Artorias" , 661000, ItemType.ArmorofArtorias , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Gauntlets of Artorias" , 662000, ItemType.GauntletsofArtorias , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Leggings of Artorias" , 663000, ItemType.LeggingsofArtorias , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Porcelain Mask" , 670000, ItemType.PorcelainMask , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Lord's Blade Robe" , 671000, ItemType.LordsBladeRobe , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Lord's Blade Gloves" , 672000, ItemType.LordsBladeGloves , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Lord's Blade Waistcloth" , 673000, ItemType.LordsBladeWaistcloth , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Gough's Helm" , 680000, ItemType.GoughsHelm , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Gough's Armor" , 681000, ItemType.GoughsArmor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Gough's Gauntlets" , 682000, ItemType.GoughsGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Gough's Leggings" , 683000, ItemType.GoughsLeggings , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Guardian Helm" , 690000, ItemType.GuardianHelm , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Guardian Armor" , 691000, ItemType.GuardianArmor , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Guardian Gauntlets" , 692000, ItemType.GuardianGauntlets , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Guardian Leggings" , 693000, ItemType.GuardianLeggings , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Snickering Top Hat" , 700000, ItemType.SnickeringTopHat , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Chester's Long Coat" , 701000, ItemType.ChestersLongCoat , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Chester's Gloves" , 702000, ItemType.ChestersGloves , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Chester's Trousers" , 703000, ItemType.ChestersTrousers , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new Item("Bloated Head" , 710000, ItemType.BloatedHead , ItemCategory.Armor , 1, ItemUpgrade.None ), + new Item("Bloated Sorcerer Head" , 720000, ItemType.BloatedSorcererHead , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Eye of Death" , 109, ItemType.EyeofDeath , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Cracked Red Eye Orb" , 111, ItemType.CrackedRedEyeOrb , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Estus Flask" , 200, ItemType.EstusFlask , ItemCategory.Consumables , 1, ItemUpgrade.None ), - new Item("Elizabeth's Mushroom" , 230, ItemType.ElizabethsMushroom , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Divine Blessing" , 240, ItemType.DivineBlessing , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Green Blossom" , 260, ItemType.GreenBlossom , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Bloodred Moss Clump" , 270, ItemType.BloodredMossClump , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Purple Moss Clump" , 271, ItemType.PurpleMossClump , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Blooming Purple Moss Clump" , 272, ItemType.BloomingPurpleMossClump , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Purging Stone" , 274, ItemType.PurgingStone , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Egg Vermifuge" , 275, ItemType.EggVermifuge , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Repair Powder" , 280, ItemType.RepairPowder , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Throwing Knife" , 290, ItemType.ThrowingKnife , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Poison Throwing Knife" , 291, ItemType.PoisonThrowingKnife , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Firebomb" , 292, ItemType.Firebomb , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Dung Pie" , 293, ItemType.DungPie , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Alluring Skull" , 294, ItemType.AlluringSkull , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Lloyd's Talisman" , 296, ItemType.LloydsTalisman , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Black Firebomb" , 297, ItemType.BlackFirebomb , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Charcoal Pine Resin" , 310, ItemType.CharcoalPineResin , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Gold Pine Resin" , 311, ItemType.GoldPineResin , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Transient Curse" , 312, ItemType.TransientCurse , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Rotten Pine Resin" , 313, ItemType.RottenPineResin , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Homeward Bone" , 330, ItemType.HomewardBone , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Prism Stone" , 370, ItemType.PrismStone , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Indictment" , 373, ItemType.Indictment , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Souvenir of Reprisal" , 374, ItemType.SouvenirofReprisal , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Sunlight Medal" , 375, ItemType.SunlightMedal , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Pendant" , 376, ItemType.Pendant , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Rubbish" , 380, ItemType.Rubbish , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Copper Coin" , 381, ItemType.CopperCoin , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Silver Coin" , 382, ItemType.SilverCoin , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Gold Coin" , 383, ItemType.GoldCoin , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Fire Keeper Soul (Anastacia of Astora)" , 390, ItemType.FireKeeperSoulAnastaciaofAstora , ItemCategory.Consumables , 1, ItemUpgrade.None ), - new Item("Fire Keeper Soul (Darkmoon Knightess)" , 391, ItemType.FireKeeperSoulDarkmoonKnightess , ItemCategory.Consumables , 1, ItemUpgrade.None ), - new Item("Fire Keeper Soul (Daughter of Chaos)" , 392, ItemType.FireKeeperSoulDaughterofChaos , ItemCategory.Consumables , 1, ItemUpgrade.None ), - new Item("Fire Keeper Soul (New Londo)" , 393, ItemType.FireKeeperSoulNewLondo , ItemCategory.Consumables , 1, ItemUpgrade.None ), - new Item("Fire Keeper Soul (Blighttown)" , 394, ItemType.FireKeeperSoulBlighttown , ItemCategory.Consumables , 1, ItemUpgrade.None ), - new Item("Fire Keeper Soul (Duke's Archives)" , 395, ItemType.FireKeeperSoulDukesArchives , ItemCategory.Consumables , 1, ItemUpgrade.None ), - new Item("Fire Keeper Soul (Undead Parish)" , 396, ItemType.FireKeeperSoulUndeadParish , ItemCategory.Consumables , 1, ItemUpgrade.None ), - new Item("Soul of a Lost Undead" , 400, ItemType.SoulofaLostUndead , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Large Soul of a Lost Undead" , 401, ItemType.LargeSoulofaLostUndead , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Soul of a Nameless Soldier" , 402, ItemType.SoulofaNamelessSoldier , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Large Soul of a Nameless Soldier" , 403, ItemType.LargeSoulofaNamelessSoldier , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Soul of a Proud Knight" , 404, ItemType.SoulofaProudKnight , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Large Soul of a Proud Knight" , 405, ItemType.LargeSoulofaProudKnight , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Soul of a Brave Warrior" , 406, ItemType.SoulofaBraveWarrior , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Large Soul of a Brave Warrior" , 407, ItemType.LargeSoulofaBraveWarrior , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Soul of a Hero" , 408, ItemType.SoulofaHero , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Soul of a Great Hero" , 409, ItemType.SoulofaGreatHero , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Humanity" , 500, ItemType.Humanity , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Twin Humanities" , 501, ItemType.TwinHumanities , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Soul of Quelaag" , 700, ItemType.SoulofQuelaag , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Soul of Sif" , 701, ItemType.SoulofSif , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Soul of Gwyn, Lord of Cinder" , 702, ItemType.SoulofGwynLordofCinder , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Core of an Iron Golem" , 703, ItemType.CoreofanIronGolem , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Soul of Ornstein" , 704, ItemType.SoulofOrnstein , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Soul of the Moonlight Butterfly" , 705, ItemType.SouloftheMoonlightButterfly , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Soul of Smough" , 706, ItemType.SoulofSmough , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Soul of Priscilla" , 707, ItemType.SoulofPriscilla , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Soul of Gwyndolin" , 708, ItemType.SoulofGwyndolin , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Guardian Soul" , 709, ItemType.GuardianSoul , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Soul of Artorias" , 710, ItemType.SoulofArtorias , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Soul of Manus" , 711, ItemType.SoulofManus , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Eye of Death" , 109, ItemType.EyeofDeath , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Cracked Red Eye Orb" , 111, ItemType.CrackedRedEyeOrb , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Estus Flask" , 200, ItemType.EstusFlask , ItemCategory.Consumables , 1, ItemUpgrade.None ), + new Item("Elizabeth's Mushroom" , 230, ItemType.ElizabethsMushroom , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Divine Blessing" , 240, ItemType.DivineBlessing , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Green Blossom" , 260, ItemType.GreenBlossom , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Bloodred Moss Clump" , 270, ItemType.BloodredMossClump , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Purple Moss Clump" , 271, ItemType.PurpleMossClump , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Blooming Purple Moss Clump" , 272, ItemType.BloomingPurpleMossClump , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Purging Stone" , 274, ItemType.PurgingStone , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Egg Vermifuge" , 275, ItemType.EggVermifuge , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Repair Powder" , 280, ItemType.RepairPowder , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Throwing Knife" , 290, ItemType.ThrowingKnife , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Poison Throwing Knife" , 291, ItemType.PoisonThrowingKnife , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Firebomb" , 292, ItemType.Firebomb , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Dung Pie" , 293, ItemType.DungPie , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Alluring Skull" , 294, ItemType.AlluringSkull , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Lloyd's Talisman" , 296, ItemType.LloydsTalisman , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Black Firebomb" , 297, ItemType.BlackFirebomb , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Charcoal Pine Resin" , 310, ItemType.CharcoalPineResin , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Gold Pine Resin" , 311, ItemType.GoldPineResin , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Transient Curse" , 312, ItemType.TransientCurse , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Rotten Pine Resin" , 313, ItemType.RottenPineResin , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Homeward Bone" , 330, ItemType.HomewardBone , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Prism Stone" , 370, ItemType.PrismStone , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Indictment" , 373, ItemType.Indictment , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Souvenir of Reprisal" , 374, ItemType.SouvenirofReprisal , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Sunlight Medal" , 375, ItemType.SunlightMedal , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Pendant" , 376, ItemType.Pendant , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Rubbish" , 380, ItemType.Rubbish , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Copper Coin" , 381, ItemType.CopperCoin , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Silver Coin" , 382, ItemType.SilverCoin , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Gold Coin" , 383, ItemType.GoldCoin , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Fire Keeper Soul (Anastacia of Astora)" , 390, ItemType.FireKeeperSoulAnastaciaofAstora , ItemCategory.Consumables , 1, ItemUpgrade.None ), + new Item("Fire Keeper Soul (Darkmoon Knightess)" , 391, ItemType.FireKeeperSoulDarkmoonKnightess , ItemCategory.Consumables , 1, ItemUpgrade.None ), + new Item("Fire Keeper Soul (Daughter of Chaos)" , 392, ItemType.FireKeeperSoulDaughterofChaos , ItemCategory.Consumables , 1, ItemUpgrade.None ), + new Item("Fire Keeper Soul (New Londo)" , 393, ItemType.FireKeeperSoulNewLondo , ItemCategory.Consumables , 1, ItemUpgrade.None ), + new Item("Fire Keeper Soul (Blighttown)" , 394, ItemType.FireKeeperSoulBlighttown , ItemCategory.Consumables , 1, ItemUpgrade.None ), + new Item("Fire Keeper Soul (Duke's Archives)" , 395, ItemType.FireKeeperSoulDukesArchives , ItemCategory.Consumables , 1, ItemUpgrade.None ), + new Item("Fire Keeper Soul (Undead Parish)" , 396, ItemType.FireKeeperSoulUndeadParish , ItemCategory.Consumables , 1, ItemUpgrade.None ), + new Item("Soul of a Lost Undead" , 400, ItemType.SoulofaLostUndead , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Large Soul of a Lost Undead" , 401, ItemType.LargeSoulofaLostUndead , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Soul of a Nameless Soldier" , 402, ItemType.SoulofaNamelessSoldier , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Large Soul of a Nameless Soldier" , 403, ItemType.LargeSoulofaNamelessSoldier , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Soul of a Proud Knight" , 404, ItemType.SoulofaProudKnight , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Large Soul of a Proud Knight" , 405, ItemType.LargeSoulofaProudKnight , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Soul of a Brave Warrior" , 406, ItemType.SoulofaBraveWarrior , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Large Soul of a Brave Warrior" , 407, ItemType.LargeSoulofaBraveWarrior , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Soul of a Hero" , 408, ItemType.SoulofaHero , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Soul of a Great Hero" , 409, ItemType.SoulofaGreatHero , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Humanity" , 500, ItemType.Humanity , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Twin Humanities" , 501, ItemType.TwinHumanities , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Soul of Quelaag" , 700, ItemType.SoulofQuelaag , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Soul of Sif" , 701, ItemType.SoulofSif , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Soul of Gwyn, Lord of Cinder" , 702, ItemType.SoulofGwynLordofCinder , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Core of an Iron Golem" , 703, ItemType.CoreofanIronGolem , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Soul of Ornstein" , 704, ItemType.SoulofOrnstein , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Soul of the Moonlight Butterfly" , 705, ItemType.SouloftheMoonlightButterfly , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Soul of Smough" , 706, ItemType.SoulofSmough , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Soul of Priscilla" , 707, ItemType.SoulofPriscilla , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Soul of Gwyndolin" , 708, ItemType.SoulofGwyndolin , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Guardian Soul" , 709, ItemType.GuardianSoul , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Soul of Artorias" , 710, ItemType.SoulofArtorias , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new Item("Soul of Manus" , 711, ItemType.SoulofManus , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Peculiar Doll" , 384, ItemType.PeculiarDoll , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Basement Key" , 2001, ItemType.BasementKey , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Crest of Artorias" , 2002, ItemType.CrestofArtorias , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Cage Key" , 2003, ItemType.CageKey , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Archive Tower Cell Key" , 2004, ItemType.ArchiveTowerCellKey , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Archive Tower Giant Door Key" , 2005, ItemType.ArchiveTowerGiantDoorKey , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Archive Tower Giant Cell Key" , 2006, ItemType.ArchiveTowerGiantCellKey , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Blighttown Key" , 2007, ItemType.BlighttownKey , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Key to New Londo Ruins" , 2008, ItemType.KeytoNewLondoRuins , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Annex Key" , 2009, ItemType.AnnexKey , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Dungeon Cell Key" , 2010, ItemType.DungeonCellKey , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Big Pilgrim's Key" , 2011, ItemType.BigPilgrimsKey , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Undead Asylum F2 East Key" , 2012, ItemType.UndeadAsylumF2EastKey , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Key to the Seal" , 2013, ItemType.KeytotheSeal , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Key to Depths" , 2014, ItemType.KeytoDepths , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Undead Asylum F2 West Key" , 2016, ItemType.UndeadAsylumF2WestKey , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Mystery Key" , 2017, ItemType.MysteryKey , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Sewer Chamber Key" , 2018, ItemType.SewerChamberKey , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Watchtower Basement Key" , 2019, ItemType.WatchtowerBasementKey , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Archive Prison Extra Key" , 2020, ItemType.ArchivePrisonExtraKey , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Residence Key" , 2021, ItemType.ResidenceKey , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Crest Key" , 2022, ItemType.CrestKey , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Master Key" , 2100, ItemType.MasterKey , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Lord Soul (Nito)" , 2500, ItemType.LordSoulNito , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Lord Soul (Bed of Chaos)" , 2501, ItemType.LordSoulBedofChaos , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Bequeathed Lord Soul Shard (Four Kings)" , 2502, ItemType.BequeathedLordSoulShardFourKings , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Bequeathed Lord Soul Shard (Seath)" , 2503, ItemType.BequeathedLordSoulShardSeath , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Lordvessel" , 2510, ItemType.Lordvessel , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Broken Pendant" , 2520, ItemType.BrokenPendant , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Weapon Smithbox" , 2600, ItemType.WeaponSmithbox , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Armor Smithbox" , 2601, ItemType.ArmorSmithbox , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Repairbox" , 2602, ItemType.Repairbox , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Rite of Kindling" , 2607, ItemType.RiteofKindling , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Bottomless Box" , 2608, ItemType.BottomlessBox , ItemCategory.Key , 1, ItemUpgrade.None ), + new Item("Peculiar Doll" , 384, ItemType.PeculiarDoll , ItemCategory.Key , 1, ItemUpgrade.None ), + new Item("Basement Key" , 2001, ItemType.BasementKey , ItemCategory.Key , 1, ItemUpgrade.None ), + new Item("Crest of Artorias" , 2002, ItemType.CrestofArtorias , ItemCategory.Key , 1, ItemUpgrade.None ), + new Item("Cage Key" , 2003, ItemType.CageKey , ItemCategory.Key , 1, ItemUpgrade.None ), + new Item("Archive Tower Cell Key" , 2004, ItemType.ArchiveTowerCellKey , ItemCategory.Key , 1, ItemUpgrade.None ), + new Item("Archive Tower Giant Door Key" , 2005, ItemType.ArchiveTowerGiantDoorKey , ItemCategory.Key , 1, ItemUpgrade.None ), + new Item("Archive Tower Giant Cell Key" , 2006, ItemType.ArchiveTowerGiantCellKey , ItemCategory.Key , 1, ItemUpgrade.None ), + new Item("Blighttown Key" , 2007, ItemType.BlighttownKey , ItemCategory.Key , 1, ItemUpgrade.None ), + new Item("Key to New Londo Ruins" , 2008, ItemType.KeytoNewLondoRuins , ItemCategory.Key , 1, ItemUpgrade.None ), + new Item("Annex Key" , 2009, ItemType.AnnexKey , ItemCategory.Key , 1, ItemUpgrade.None ), + new Item("Dungeon Cell Key" , 2010, ItemType.DungeonCellKey , ItemCategory.Key , 1, ItemUpgrade.None ), + new Item("Big Pilgrim's Key" , 2011, ItemType.BigPilgrimsKey , ItemCategory.Key , 1, ItemUpgrade.None ), + new Item("Undead Asylum F2 East Key" , 2012, ItemType.UndeadAsylumF2EastKey , ItemCategory.Key , 1, ItemUpgrade.None ), + new Item("Key to the Seal" , 2013, ItemType.KeytotheSeal , ItemCategory.Key , 1, ItemUpgrade.None ), + new Item("Key to Depths" , 2014, ItemType.KeytoDepths , ItemCategory.Key , 1, ItemUpgrade.None ), + new Item("Undead Asylum F2 West Key" , 2016, ItemType.UndeadAsylumF2WestKey , ItemCategory.Key , 1, ItemUpgrade.None ), + new Item("Mystery Key" , 2017, ItemType.MysteryKey , ItemCategory.Key , 1, ItemUpgrade.None ), + new Item("Sewer Chamber Key" , 2018, ItemType.SewerChamberKey , ItemCategory.Key , 1, ItemUpgrade.None ), + new Item("Watchtower Basement Key" , 2019, ItemType.WatchtowerBasementKey , ItemCategory.Key , 1, ItemUpgrade.None ), + new Item("Archive Prison Extra Key" , 2020, ItemType.ArchivePrisonExtraKey , ItemCategory.Key , 1, ItemUpgrade.None ), + new Item("Residence Key" , 2021, ItemType.ResidenceKey , ItemCategory.Key , 1, ItemUpgrade.None ), + new Item("Crest Key" , 2022, ItemType.CrestKey , ItemCategory.Key , 1, ItemUpgrade.None ), + new Item("Master Key" , 2100, ItemType.MasterKey , ItemCategory.Key , 1, ItemUpgrade.None ), + new Item("Lord Soul (Nito)" , 2500, ItemType.LordSoulNito , ItemCategory.Key , 1, ItemUpgrade.None ), + new Item("Lord Soul (Bed of Chaos)" , 2501, ItemType.LordSoulBedofChaos , ItemCategory.Key , 1, ItemUpgrade.None ), + new Item("Bequeathed Lord Soul Shard (Four Kings)" , 2502, ItemType.BequeathedLordSoulShardFourKings , ItemCategory.Key , 1, ItemUpgrade.None ), + new Item("Bequeathed Lord Soul Shard (Seath)" , 2503, ItemType.BequeathedLordSoulShardSeath , ItemCategory.Key , 1, ItemUpgrade.None ), + new Item("Lordvessel" , 2510, ItemType.Lordvessel , ItemCategory.Key , 1, ItemUpgrade.None ), + new Item("Broken Pendant" , 2520, ItemType.BrokenPendant , ItemCategory.Key , 1, ItemUpgrade.None ), + new Item("Weapon Smithbox" , 2600, ItemType.WeaponSmithbox , ItemCategory.Key , 1, ItemUpgrade.None ), + new Item("Armor Smithbox" , 2601, ItemType.ArmorSmithbox , ItemCategory.Key , 1, ItemUpgrade.None ), + new Item("Repairbox" , 2602, ItemType.Repairbox , ItemCategory.Key , 1, ItemUpgrade.None ), + new Item("Rite of Kindling" , 2607, ItemType.RiteofKindling , ItemCategory.Key , 1, ItemUpgrade.None ), + new Item("Bottomless Box" , 2608, ItemType.BottomlessBox , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Dagger" , 100000, ItemType.Dagger , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Parrying Dagger" , 101000, ItemType.ParryingDagger , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Ghost Blade" , 102000, ItemType.GhostBlade , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Bandit's Knife" , 103000, ItemType.BanditsKnife , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Priscilla's Dagger" , 104000, ItemType.PriscillasDagger , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Shortsword" , 200000, ItemType.Shortsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Longsword" , 201000, ItemType.Longsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Broadsword" , 202000, ItemType.Broadsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Broken Straight Sword" , 203000, ItemType.BrokenStraightSword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Balder Side Sword" , 204000, ItemType.BalderSideSword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Crystal Straight Sword" , 205000, ItemType.CrystalStraightSword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.None ), - new Item("Sunlight Straight Sword" , 206000, ItemType.SunlightStraightSword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Barbed Straight Sword" , 207000, ItemType.BarbedStraightSword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Silver Knight Straight Sword" , 208000, ItemType.SilverKnightStraightSword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Astora's Straight Sword" , 209000, ItemType.AstorasStraightSword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Darksword" , 210000, ItemType.Darksword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Drake Sword" , 211000, ItemType.DrakeSword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Straight Sword Hilt" , 212000, ItemType.StraightSwordHilt , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Bastard Sword" , 300000, ItemType.BastardSword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Claymore" , 301000, ItemType.Claymore , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Man-serpent Greatsword" , 302000, ItemType.ManserpentGreatsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Flamberge" , 303000, ItemType.Flamberge , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Crystal Greatsword" , 304000, ItemType.CrystalGreatsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.None ), - new Item("Stone Greatsword" , 306000, ItemType.StoneGreatsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Greatsword of Artorias" , 307000, ItemType.GreatswordofArtorias , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Moonlight Greatsword" , 309000, ItemType.MoonlightGreatsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Black Knight Sword" , 310000, ItemType.BlackKnightSword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Greatsword of Artorias (Cursed)" , 311000, ItemType.GreatswordofArtoriasCursed , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Great Lord Greatsword" , 314000, ItemType.GreatLordGreatsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Zweihander" , 350000, ItemType.Zweihander , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Greatsword" , 351000, ItemType.Greatsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Demon Great Machete" , 352000, ItemType.DemonGreatMachete , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Dragon Greatsword" , 354000, ItemType.DragonGreatsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Black Knight Greatsword" , 355000, ItemType.BlackKnightGreatsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Scimitar" , 400000, ItemType.Scimitar , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Falchion" , 401000, ItemType.Falchion , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Shotel" , 402000, ItemType.Shotel , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Jagged Ghost Blade" , 403000, ItemType.JaggedGhostBlade , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Painting Guardian Sword" , 405000, ItemType.PaintingGuardianSword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Quelaag's Furysword" , 406000, ItemType.QuelaagsFurysword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Server" , 450000, ItemType.Server , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Murakumo" , 451000, ItemType.Murakumo , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Gravelord Sword" , 453000, ItemType.GravelordSword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Uchigatana" , 500000, ItemType.Uchigatana , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Washing Pole" , 501000, ItemType.WashingPole , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Iaito" , 502000, ItemType.Iaito , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Chaos Blade" , 503000, ItemType.ChaosBlade , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Mail Breaker" , 600000, ItemType.MailBreaker , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Rapier" , 601000, ItemType.Rapier , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Estoc" , 602000, ItemType.Estoc , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Velka's Rapier" , 603000, ItemType.VelkasRapier , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Ricard's Rapier" , 604000, ItemType.RicardsRapier , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Hand Axe" , 700000, ItemType.HandAxe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Battle Axe" , 701000, ItemType.BattleAxe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Crescent Axe" , 702000, ItemType.CrescentAxe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Butcher Knife" , 703000, ItemType.ButcherKnife , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Golem Axe" , 704000, ItemType.GolemAxe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Gargoyle Tail Axe" , 705000, ItemType.GargoyleTailAxe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Greataxe" , 750000, ItemType.Greataxe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Demon's Greataxe" , 751000, ItemType.DemonsGreataxe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Dragon King Greataxe" , 752000, ItemType.DragonKingGreataxe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Black Knight Greataxe" , 753000, ItemType.BlackKnightGreataxe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Club" , 800000, ItemType.Club , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Mace" , 801000, ItemType.Mace , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Morning Star" , 802000, ItemType.MorningStar , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Warpick" , 803000, ItemType.Warpick , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Pickaxe" , 804000, ItemType.Pickaxe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Reinforced Club" , 809000, ItemType.ReinforcedClub , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Blacksmith Hammer" , 810000, ItemType.BlacksmithHammer , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Blacksmith Giant Hammer" , 811000, ItemType.BlacksmithGiantHammer , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Hammer of Vamos" , 812000, ItemType.HammerofVamos , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Great Club" , 850000, ItemType.GreatClub , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Grant" , 851000, ItemType.Grant , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Demon's Great Hammer" , 852000, ItemType.DemonsGreatHammer , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Dragon Tooth" , 854000, ItemType.DragonTooth , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Large Club" , 855000, ItemType.LargeClub , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Smough's Hammer" , 856000, ItemType.SmoughsHammer , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Caestus" , 901000, ItemType.Caestus , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Claw" , 902000, ItemType.Claw , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Dragon Bone Fist" , 903000, ItemType.DragonBoneFist , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Dark Hand" , 904000, ItemType.DarkHand , ItemCategory.MeleeWeapons , 1, ItemUpgrade.None ), - new Item("Spear" , 1000000, ItemType.Spear , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Winged Spear" , 1001000, ItemType.WingedSpear , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Partizan" , 1002000, ItemType.Partizan , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Demon's Spear" , 1003000, ItemType.DemonsSpear , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Channeler's Trident" , 1004000, ItemType.ChannelersTrident , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Silver Knight Spear" , 1006000, ItemType.SilverKnightSpear , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Pike" , 1050000, ItemType.Pike , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Dragonslayer Spear" , 1051000, ItemType.DragonslayerSpear , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Moonlight Butterfly Horn" , 1052000, ItemType.MoonlightButterflyHorn , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Halberd" , 1100000, ItemType.Halberd , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Giant's Halberd" , 1101000, ItemType.GiantsHalberd , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Titanite Catch Pole" , 1102000, ItemType.TitaniteCatchPole , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Gargoyle's Halberd" , 1103000, ItemType.GargoylesHalberd , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Black Knight Halberd" , 1105000, ItemType.BlackKnightHalberd , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Lucerne" , 1106000, ItemType.Lucerne , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Scythe" , 1107000, ItemType.Scythe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Great Scythe" , 1150000, ItemType.GreatScythe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Lifehunt Scythe" , 1151000, ItemType.LifehuntScythe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Whip" , 1600000, ItemType.Whip , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Notched Whip" , 1601000, ItemType.NotchedWhip , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Gold Tracer" , 9010000, ItemType.GoldTracer , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Dark Silver Tracer" , 9011000, ItemType.DarkSilverTracer , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Abyss Greatsword" , 9012000, ItemType.AbyssGreatsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Stone Greataxe" , 9015000, ItemType.StoneGreataxe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Four-pronged Plow" , 9016000, ItemType.FourprongedPlow , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Guardian Tail" , 9019000, ItemType.GuardianTail , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Obsidian Greatsword" , 9020000, ItemType.ObsidianGreatsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new Item("Dagger" , 100000, ItemType.Dagger , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Parrying Dagger" , 101000, ItemType.ParryingDagger , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Ghost Blade" , 102000, ItemType.GhostBlade , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new Item("Bandit's Knife" , 103000, ItemType.BanditsKnife , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Priscilla's Dagger" , 104000, ItemType.PriscillasDagger , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new Item("Shortsword" , 200000, ItemType.Shortsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Longsword" , 201000, ItemType.Longsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Broadsword" , 202000, ItemType.Broadsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Broken Straight Sword" , 203000, ItemType.BrokenStraightSword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Balder Side Sword" , 204000, ItemType.BalderSideSword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Crystal Straight Sword" , 205000, ItemType.CrystalStraightSword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.None ), + new Item("Sunlight Straight Sword" , 206000, ItemType.SunlightStraightSword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Barbed Straight Sword" , 207000, ItemType.BarbedStraightSword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Silver Knight Straight Sword" , 208000, ItemType.SilverKnightStraightSword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new Item("Astora's Straight Sword" , 209000, ItemType.AstorasStraightSword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new Item("Darksword" , 210000, ItemType.Darksword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Drake Sword" , 211000, ItemType.DrakeSword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new Item("Straight Sword Hilt" , 212000, ItemType.StraightSwordHilt , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Bastard Sword" , 300000, ItemType.BastardSword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Claymore" , 301000, ItemType.Claymore , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Man-serpent Greatsword" , 302000, ItemType.ManserpentGreatsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Flamberge" , 303000, ItemType.Flamberge , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Crystal Greatsword" , 304000, ItemType.CrystalGreatsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.None ), + new Item("Stone Greatsword" , 306000, ItemType.StoneGreatsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new Item("Greatsword of Artorias" , 307000, ItemType.GreatswordofArtorias , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new Item("Moonlight Greatsword" , 309000, ItemType.MoonlightGreatsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new Item("Black Knight Sword" , 310000, ItemType.BlackKnightSword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new Item("Greatsword of Artorias (Cursed)" , 311000, ItemType.GreatswordofArtoriasCursed , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new Item("Great Lord Greatsword" , 314000, ItemType.GreatLordGreatsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new Item("Zweihander" , 350000, ItemType.Zweihander , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Greatsword" , 351000, ItemType.Greatsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Demon Great Machete" , 352000, ItemType.DemonGreatMachete , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Dragon Greatsword" , 354000, ItemType.DragonGreatsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new Item("Black Knight Greatsword" , 355000, ItemType.BlackKnightGreatsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new Item("Scimitar" , 400000, ItemType.Scimitar , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Falchion" , 401000, ItemType.Falchion , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Shotel" , 402000, ItemType.Shotel , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Jagged Ghost Blade" , 403000, ItemType.JaggedGhostBlade , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new Item("Painting Guardian Sword" , 405000, ItemType.PaintingGuardianSword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Quelaag's Furysword" , 406000, ItemType.QuelaagsFurysword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new Item("Server" , 450000, ItemType.Server , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Murakumo" , 451000, ItemType.Murakumo , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Gravelord Sword" , 453000, ItemType.GravelordSword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new Item("Uchigatana" , 500000, ItemType.Uchigatana , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Washing Pole" , 501000, ItemType.WashingPole , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Iaito" , 502000, ItemType.Iaito , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Chaos Blade" , 503000, ItemType.ChaosBlade , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new Item("Mail Breaker" , 600000, ItemType.MailBreaker , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Rapier" , 601000, ItemType.Rapier , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Estoc" , 602000, ItemType.Estoc , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Velka's Rapier" , 603000, ItemType.VelkasRapier , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new Item("Ricard's Rapier" , 604000, ItemType.RicardsRapier , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Hand Axe" , 700000, ItemType.HandAxe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Battle Axe" , 701000, ItemType.BattleAxe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Crescent Axe" , 702000, ItemType.CrescentAxe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new Item("Butcher Knife" , 703000, ItemType.ButcherKnife , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Golem Axe" , 704000, ItemType.GolemAxe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new Item("Gargoyle Tail Axe" , 705000, ItemType.GargoyleTailAxe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Greataxe" , 750000, ItemType.Greataxe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Demon's Greataxe" , 751000, ItemType.DemonsGreataxe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Dragon King Greataxe" , 752000, ItemType.DragonKingGreataxe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new Item("Black Knight Greataxe" , 753000, ItemType.BlackKnightGreataxe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new Item("Club" , 800000, ItemType.Club , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Mace" , 801000, ItemType.Mace , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Morning Star" , 802000, ItemType.MorningStar , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Warpick" , 803000, ItemType.Warpick , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Pickaxe" , 804000, ItemType.Pickaxe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Reinforced Club" , 809000, ItemType.ReinforcedClub , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Blacksmith Hammer" , 810000, ItemType.BlacksmithHammer , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Blacksmith Giant Hammer" , 811000, ItemType.BlacksmithGiantHammer , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new Item("Hammer of Vamos" , 812000, ItemType.HammerofVamos , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new Item("Great Club" , 850000, ItemType.GreatClub , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Grant" , 851000, ItemType.Grant , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new Item("Demon's Great Hammer" , 852000, ItemType.DemonsGreatHammer , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Dragon Tooth" , 854000, ItemType.DragonTooth , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new Item("Large Club" , 855000, ItemType.LargeClub , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Smough's Hammer" , 856000, ItemType.SmoughsHammer , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new Item("Caestus" , 901000, ItemType.Caestus , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Claw" , 902000, ItemType.Claw , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Dragon Bone Fist" , 903000, ItemType.DragonBoneFist , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new Item("Dark Hand" , 904000, ItemType.DarkHand , ItemCategory.MeleeWeapons , 1, ItemUpgrade.None ), + new Item("Spear" , 1000000, ItemType.Spear , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Winged Spear" , 1001000, ItemType.WingedSpear , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Partizan" , 1002000, ItemType.Partizan , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Demon's Spear" , 1003000, ItemType.DemonsSpear , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new Item("Channeler's Trident" , 1004000, ItemType.ChannelersTrident , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new Item("Silver Knight Spear" , 1006000, ItemType.SilverKnightSpear , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new Item("Pike" , 1050000, ItemType.Pike , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Dragonslayer Spear" , 1051000, ItemType.DragonslayerSpear , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new Item("Moonlight Butterfly Horn" , 1052000, ItemType.MoonlightButterflyHorn , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new Item("Halberd" , 1100000, ItemType.Halberd , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Giant's Halberd" , 1101000, ItemType.GiantsHalberd , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new Item("Titanite Catch Pole" , 1102000, ItemType.TitaniteCatchPole , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new Item("Gargoyle's Halberd" , 1103000, ItemType.GargoylesHalberd , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Black Knight Halberd" , 1105000, ItemType.BlackKnightHalberd , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new Item("Lucerne" , 1106000, ItemType.Lucerne , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Scythe" , 1107000, ItemType.Scythe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Great Scythe" , 1150000, ItemType.GreatScythe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Lifehunt Scythe" , 1151000, ItemType.LifehuntScythe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new Item("Whip" , 1600000, ItemType.Whip , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Notched Whip" , 1601000, ItemType.NotchedWhip , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Gold Tracer" , 9010000, ItemType.GoldTracer , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new Item("Dark Silver Tracer" , 9011000, ItemType.DarkSilverTracer , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new Item("Abyss Greatsword" , 9012000, ItemType.AbyssGreatsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new Item("Stone Greataxe" , 9015000, ItemType.StoneGreataxe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new Item("Four-pronged Plow" , 9016000, ItemType.FourprongedPlow , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Guardian Tail" , 9019000, ItemType.GuardianTail , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new Item("Obsidian Greatsword" , 9020000, ItemType.ObsidianGreatsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Short Bow" , 1200000, ItemType.ShortBow , ItemCategory.RangedWeapons , 1, ItemUpgrade.Infusable ), - new Item("Longbow" , 1201000, ItemType.Longbow , ItemCategory.RangedWeapons , 1, ItemUpgrade.Infusable ), - new Item("Black Bow of Pharis" , 1202000, ItemType.BlackBowofPharis , ItemCategory.RangedWeapons , 1, ItemUpgrade.Infusable ), - new Item("Dragonslayer Greatbow" , 1203000, ItemType.DragonslayerGreatbow , ItemCategory.RangedWeapons , 1, ItemUpgrade.Unique ), - new Item("Composite Bow" , 1204000, ItemType.CompositeBow , ItemCategory.RangedWeapons , 1, ItemUpgrade.Infusable ), - new Item("Darkmoon Bow" , 1205000, ItemType.DarkmoonBow , ItemCategory.RangedWeapons , 1, ItemUpgrade.Unique ), - new Item("Light Crossbow" , 1250000, ItemType.LightCrossbow , ItemCategory.RangedWeapons , 1, ItemUpgrade.InfusableRestricted), - new Item("Heavy Crossbow" , 1251000, ItemType.HeavyCrossbow , ItemCategory.RangedWeapons , 1, ItemUpgrade.InfusableRestricted), - new Item("Avelyn" , 1252000, ItemType.Avelyn , ItemCategory.RangedWeapons , 1, ItemUpgrade.InfusableRestricted), - new Item("Sniper Crossbow" , 1253000, ItemType.SniperCrossbow , ItemCategory.RangedWeapons , 1, ItemUpgrade.InfusableRestricted), - new Item("Gough's Greatbow" , 9021000, ItemType.GoughsGreatbow , ItemCategory.RangedWeapons , 1, ItemUpgrade.Unique ), + new Item("Short Bow" , 1200000, ItemType.ShortBow , ItemCategory.RangedWeapons , 1, ItemUpgrade.Infusable ), + new Item("Longbow" , 1201000, ItemType.Longbow , ItemCategory.RangedWeapons , 1, ItemUpgrade.Infusable ), + new Item("Black Bow of Pharis" , 1202000, ItemType.BlackBowofPharis , ItemCategory.RangedWeapons , 1, ItemUpgrade.Infusable ), + new Item("Dragonslayer Greatbow" , 1203000, ItemType.DragonslayerGreatbow , ItemCategory.RangedWeapons , 1, ItemUpgrade.Unique ), + new Item("Composite Bow" , 1204000, ItemType.CompositeBow , ItemCategory.RangedWeapons , 1, ItemUpgrade.Infusable ), + new Item("Darkmoon Bow" , 1205000, ItemType.DarkmoonBow , ItemCategory.RangedWeapons , 1, ItemUpgrade.Unique ), + new Item("Light Crossbow" , 1250000, ItemType.LightCrossbow , ItemCategory.RangedWeapons , 1, ItemUpgrade.InfusableRestricted), + new Item("Heavy Crossbow" , 1251000, ItemType.HeavyCrossbow , ItemCategory.RangedWeapons , 1, ItemUpgrade.InfusableRestricted), + new Item("Avelyn" , 1252000, ItemType.Avelyn , ItemCategory.RangedWeapons , 1, ItemUpgrade.InfusableRestricted), + new Item("Sniper Crossbow" , 1253000, ItemType.SniperCrossbow , ItemCategory.RangedWeapons , 1, ItemUpgrade.InfusableRestricted), + new Item("Gough's Greatbow" , 9021000, ItemType.GoughsGreatbow , ItemCategory.RangedWeapons , 1, ItemUpgrade.Unique ), - new Item("Standard Arrow" , 2000000, ItemType.StandardArrow , ItemCategory.Ammo , 999, ItemUpgrade.None ), - new Item("Large Arrow" , 2001000, ItemType.LargeArrow , ItemCategory.Ammo , 999, ItemUpgrade.None ), - new Item("Feather Arrow" , 2002000, ItemType.FeatherArrow , ItemCategory.Ammo , 999, ItemUpgrade.None ), - new Item("Fire Arrow" , 2003000, ItemType.FireArrow , ItemCategory.Ammo , 999, ItemUpgrade.None ), - new Item("Poison Arrow" , 2004000, ItemType.PoisonArrow , ItemCategory.Ammo , 999, ItemUpgrade.None ), - new Item("Moonlight Arrow" , 2005000, ItemType.MoonlightArrow , ItemCategory.Ammo , 999, ItemUpgrade.None ), - new Item("Wooden Arrow" , 2006000, ItemType.WoodenArrow , ItemCategory.Ammo , 999, ItemUpgrade.None ), - new Item("Dragonslayer Arrow" , 2007000, ItemType.DragonslayerArrow , ItemCategory.Ammo , 999, ItemUpgrade.None ), - new Item("Gough's Great Arrow" , 2008000, ItemType.GoughsGreatArrow , ItemCategory.Ammo , 999, ItemUpgrade.None ), - new Item("Standard Bolt" , 2100000, ItemType.StandardBolt , ItemCategory.Ammo , 999, ItemUpgrade.None ), - new Item("Heavy Bolt" , 2101000, ItemType.HeavyBolt , ItemCategory.Ammo , 999, ItemUpgrade.None ), - new Item("Sniper Bolt" , 2102000, ItemType.SniperBolt , ItemCategory.Ammo , 999, ItemUpgrade.None ), - new Item("Wood Bolt" , 2103000, ItemType.WoodBolt , ItemCategory.Ammo , 999, ItemUpgrade.None ), - new Item("Lightning Bolt" , 2104000, ItemType.LightningBolt , ItemCategory.Ammo , 999, ItemUpgrade.None ), + new Item("Standard Arrow" , 2000000, ItemType.StandardArrow , ItemCategory.Ammo , 999, ItemUpgrade.None ), + new Item("Large Arrow" , 2001000, ItemType.LargeArrow , ItemCategory.Ammo , 999, ItemUpgrade.None ), + new Item("Feather Arrow" , 2002000, ItemType.FeatherArrow , ItemCategory.Ammo , 999, ItemUpgrade.None ), + new Item("Fire Arrow" , 2003000, ItemType.FireArrow , ItemCategory.Ammo , 999, ItemUpgrade.None ), + new Item("Poison Arrow" , 2004000, ItemType.PoisonArrow , ItemCategory.Ammo , 999, ItemUpgrade.None ), + new Item("Moonlight Arrow" , 2005000, ItemType.MoonlightArrow , ItemCategory.Ammo , 999, ItemUpgrade.None ), + new Item("Wooden Arrow" , 2006000, ItemType.WoodenArrow , ItemCategory.Ammo , 999, ItemUpgrade.None ), + new Item("Dragonslayer Arrow" , 2007000, ItemType.DragonslayerArrow , ItemCategory.Ammo , 999, ItemUpgrade.None ), + new Item("Gough's Great Arrow" , 2008000, ItemType.GoughsGreatArrow , ItemCategory.Ammo , 999, ItemUpgrade.None ), + new Item("Standard Bolt" , 2100000, ItemType.StandardBolt , ItemCategory.Ammo , 999, ItemUpgrade.None ), + new Item("Heavy Bolt" , 2101000, ItemType.HeavyBolt , ItemCategory.Ammo , 999, ItemUpgrade.None ), + new Item("Sniper Bolt" , 2102000, ItemType.SniperBolt , ItemCategory.Ammo , 999, ItemUpgrade.None ), + new Item("Wood Bolt" , 2103000, ItemType.WoodBolt , ItemCategory.Ammo , 999, ItemUpgrade.None ), + new Item("Lightning Bolt" , 2104000, ItemType.LightningBolt , ItemCategory.Ammo , 999, ItemUpgrade.None ), - new Item("Havel's Ring" , 100, ItemType.HavelsRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Red Tearstone Ring" , 101, ItemType.RedTearstoneRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Darkmoon Blade Covenant Ring" , 102, ItemType.DarkmoonBladeCovenantRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Cat Covenant Ring" , 103, ItemType.CatCovenantRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Cloranthy Ring" , 104, ItemType.CloranthyRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Flame Stoneplate Ring" , 105, ItemType.FlameStoneplateRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Thunder Stoneplate Ring" , 106, ItemType.ThunderStoneplateRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Spell Stoneplate Ring" , 107, ItemType.SpellStoneplateRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Speckled Stoneplate Ring" , 108, ItemType.SpeckledStoneplateRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Bloodbite Ring" , 109, ItemType.BloodbiteRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Poisonbite Ring" , 110, ItemType.PoisonbiteRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Tiny Being's Ring" , 111, ItemType.TinyBeingsRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Cursebite Ring" , 113, ItemType.CursebiteRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("White Seance Ring" , 114, ItemType.WhiteSeanceRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Bellowing Dragoncrest Ring" , 115, ItemType.BellowingDragoncrestRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Dusk Crown Ring" , 116, ItemType.DuskCrownRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Hornet Ring" , 117, ItemType.HornetRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Hawk Ring" , 119, ItemType.HawkRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Ring of Steel Protection" , 120, ItemType.RingofSteelProtection , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Covetous Gold Serpent Ring" , 121, ItemType.CovetousGoldSerpentRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Covetous Silver Serpent Ring" , 122, ItemType.CovetousSilverSerpentRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Slumbering Dragoncrest Ring" , 123, ItemType.SlumberingDragoncrestRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Ring of Fog" , 124, ItemType.RingofFog , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Rusted Iron Ring" , 125, ItemType.RustedIronRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Ring of Sacrifice" , 126, ItemType.RingofSacrifice , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Rare Ring of Sacrifice" , 127, ItemType.RareRingofSacrifice , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Dark Wood Grain Ring" , 128, ItemType.DarkWoodGrainRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Ring of the Sun Princess" , 130, ItemType.RingoftheSunPrincess , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Old Witch's Ring" , 137, ItemType.OldWitchsRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Covenant of Artorias" , 138, ItemType.CovenantofArtorias , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Orange Charred Ring" , 139, ItemType.OrangeCharredRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Lingering Dragoncrest Ring" , 141, ItemType.LingeringDragoncrestRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Ring of the Evil Eye" , 142, ItemType.RingoftheEvilEye , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Ring of Favor and Protection" , 143, ItemType.RingofFavorandProtection , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Leo Ring" , 144, ItemType.LeoRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("East Wood Grain Ring" , 145, ItemType.EastWoodGrainRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Wolf Ring" , 146, ItemType.WolfRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Blue Tearstone Ring" , 147, ItemType.BlueTearstoneRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Ring of the Sun's Firstborn" , 148, ItemType.RingoftheSunsFirstborn , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Darkmoon Seance Ring" , 149, ItemType.DarkmoonSeanceRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Calamity Ring" , 150, ItemType.CalamityRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new Item("Havel's Ring" , 100, ItemType.HavelsRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new Item("Red Tearstone Ring" , 101, ItemType.RedTearstoneRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new Item("Darkmoon Blade Covenant Ring" , 102, ItemType.DarkmoonBladeCovenantRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new Item("Cat Covenant Ring" , 103, ItemType.CatCovenantRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new Item("Cloranthy Ring" , 104, ItemType.CloranthyRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new Item("Flame Stoneplate Ring" , 105, ItemType.FlameStoneplateRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new Item("Thunder Stoneplate Ring" , 106, ItemType.ThunderStoneplateRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new Item("Spell Stoneplate Ring" , 107, ItemType.SpellStoneplateRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new Item("Speckled Stoneplate Ring" , 108, ItemType.SpeckledStoneplateRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new Item("Bloodbite Ring" , 109, ItemType.BloodbiteRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new Item("Poisonbite Ring" , 110, ItemType.PoisonbiteRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new Item("Tiny Being's Ring" , 111, ItemType.TinyBeingsRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new Item("Cursebite Ring" , 113, ItemType.CursebiteRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new Item("White Seance Ring" , 114, ItemType.WhiteSeanceRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new Item("Bellowing Dragoncrest Ring" , 115, ItemType.BellowingDragoncrestRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new Item("Dusk Crown Ring" , 116, ItemType.DuskCrownRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new Item("Hornet Ring" , 117, ItemType.HornetRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new Item("Hawk Ring" , 119, ItemType.HawkRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new Item("Ring of Steel Protection" , 120, ItemType.RingofSteelProtection , ItemCategory.Rings , 1, ItemUpgrade.None ), + new Item("Covetous Gold Serpent Ring" , 121, ItemType.CovetousGoldSerpentRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new Item("Covetous Silver Serpent Ring" , 122, ItemType.CovetousSilverSerpentRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new Item("Slumbering Dragoncrest Ring" , 123, ItemType.SlumberingDragoncrestRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new Item("Ring of Fog" , 124, ItemType.RingofFog , ItemCategory.Rings , 1, ItemUpgrade.None ), + new Item("Rusted Iron Ring" , 125, ItemType.RustedIronRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new Item("Ring of Sacrifice" , 126, ItemType.RingofSacrifice , ItemCategory.Rings , 1, ItemUpgrade.None ), + new Item("Rare Ring of Sacrifice" , 127, ItemType.RareRingofSacrifice , ItemCategory.Rings , 1, ItemUpgrade.None ), + new Item("Dark Wood Grain Ring" , 128, ItemType.DarkWoodGrainRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new Item("Ring of the Sun Princess" , 130, ItemType.RingoftheSunPrincess , ItemCategory.Rings , 1, ItemUpgrade.None ), + new Item("Old Witch's Ring" , 137, ItemType.OldWitchsRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new Item("Covenant of Artorias" , 138, ItemType.CovenantofArtorias , ItemCategory.Rings , 1, ItemUpgrade.None ), + new Item("Orange Charred Ring" , 139, ItemType.OrangeCharredRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new Item("Lingering Dragoncrest Ring" , 141, ItemType.LingeringDragoncrestRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new Item("Ring of the Evil Eye" , 142, ItemType.RingoftheEvilEye , ItemCategory.Rings , 1, ItemUpgrade.None ), + new Item("Ring of Favor and Protection" , 143, ItemType.RingofFavorandProtection , ItemCategory.Rings , 1, ItemUpgrade.None ), + new Item("Leo Ring" , 144, ItemType.LeoRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new Item("East Wood Grain Ring" , 145, ItemType.EastWoodGrainRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new Item("Wolf Ring" , 146, ItemType.WolfRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new Item("Blue Tearstone Ring" , 147, ItemType.BlueTearstoneRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new Item("Ring of the Sun's Firstborn" , 148, ItemType.RingoftheSunsFirstborn , ItemCategory.Rings , 1, ItemUpgrade.None ), + new Item("Darkmoon Seance Ring" , 149, ItemType.DarkmoonSeanceRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new Item("Calamity Ring" , 150, ItemType.CalamityRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Skull Lantern" , 1396000, ItemType.SkullLantern , ItemCategory.Shields , 1, ItemUpgrade.None ), - new Item("East-West Shield" , 1400000, ItemType.EastWestShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Wooden Shield" , 1401000, ItemType.WoodenShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Large Leather Shield" , 1402000, ItemType.LargeLeatherShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Small Leather Shield" , 1403000, ItemType.SmallLeatherShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Target Shield" , 1404000, ItemType.TargetShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Buckler" , 1405000, ItemType.Buckler , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Cracked Round Shield" , 1406000, ItemType.CrackedRoundShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Leather Shield" , 1408000, ItemType.LeatherShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Plank Shield" , 1409000, ItemType.PlankShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Caduceus Round Shield" , 1410000, ItemType.CaduceusRoundShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Crystal Ring Shield" , 1411000, ItemType.CrystalRingShield , ItemCategory.Shields , 1, ItemUpgrade.Unique ), - new Item("Heater Shield" , 1450000, ItemType.HeaterShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Knight Shield" , 1451000, ItemType.KnightShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Tower Kite Shield" , 1452000, ItemType.TowerKiteShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Grass Crest Shield" , 1453000, ItemType.GrassCrestShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Hollow Soldier Shield" , 1454000, ItemType.HollowSoldierShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Balder Shield" , 1455000, ItemType.BalderShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Crest Shield" , 1456000, ItemType.CrestShield , ItemCategory.Shields , 1, ItemUpgrade.Unique ), - new Item("Dragon Crest Shield" , 1457000, ItemType.DragonCrestShield , ItemCategory.Shields , 1, ItemUpgrade.Unique ), - new Item("Warrior's Round Shield" , 1460000, ItemType.WarriorsRoundShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Iron Round Shield" , 1461000, ItemType.IronRoundShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Spider Shield" , 1462000, ItemType.SpiderShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Spiked Shield" , 1470000, ItemType.SpikedShield , ItemCategory.Shields , 1, ItemUpgrade.Infusable ), - new Item("Crystal Shield" , 1471000, ItemType.CrystalShield , ItemCategory.Shields , 1, ItemUpgrade.None ), - new Item("Sunlight Shield" , 1472000, ItemType.SunlightShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Silver Knight Shield" , 1473000, ItemType.SilverKnightShield , ItemCategory.Shields , 1, ItemUpgrade.Unique ), - new Item("Black Knight Shield" , 1474000, ItemType.BlackKnightShield , ItemCategory.Shields , 1, ItemUpgrade.Unique ), - new Item("Pierce Shield" , 1475000, ItemType.PierceShield , ItemCategory.Shields , 1, ItemUpgrade.Infusable ), - new Item("Red and White Round Shield" , 1476000, ItemType.RedandWhiteRoundShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Caduceus Kite Shield" , 1477000, ItemType.CaduceusKiteShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Gargoyle's Shield" , 1478000, ItemType.GargoylesShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Eagle Shield" , 1500000, ItemType.EagleShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Tower Shield" , 1501000, ItemType.TowerShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Giant Shield" , 1502000, ItemType.GiantShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Stone Greatshield" , 1503000, ItemType.StoneGreatshield , ItemCategory.Shields , 1, ItemUpgrade.Unique ), - new Item("Havel's Greatshield" , 1505000, ItemType.HavelsGreatshield , ItemCategory.Shields , 1, ItemUpgrade.Unique ), - new Item("Bonewheel Shield" , 1506000, ItemType.BonewheelShield , ItemCategory.Shields , 1, ItemUpgrade.Infusable ), - new Item("Greatshield of Artorias" , 1507000, ItemType.GreatshieldofArtorias , ItemCategory.Shields , 1, ItemUpgrade.Unique ), - new Item("Effigy Shield" , 9000000, ItemType.EffigyShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Sanctus" , 9001000, ItemType.Sanctus , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Bloodshield" , 9002000, ItemType.Bloodshield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Black Iron Greatshield" , 9003000, ItemType.BlackIronGreatshield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Cleansing Greatshield" , 9014000, ItemType.CleansingGreatshield , ItemCategory.Shields , 1, ItemUpgrade.Unique ), + new Item("Skull Lantern" , 1396000, ItemType.SkullLantern , ItemCategory.Shields , 1, ItemUpgrade.None ), + new Item("East-West Shield" , 1400000, ItemType.EastWestShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new Item("Wooden Shield" , 1401000, ItemType.WoodenShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new Item("Large Leather Shield" , 1402000, ItemType.LargeLeatherShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new Item("Small Leather Shield" , 1403000, ItemType.SmallLeatherShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new Item("Target Shield" , 1404000, ItemType.TargetShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new Item("Buckler" , 1405000, ItemType.Buckler , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new Item("Cracked Round Shield" , 1406000, ItemType.CrackedRoundShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new Item("Leather Shield" , 1408000, ItemType.LeatherShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new Item("Plank Shield" , 1409000, ItemType.PlankShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new Item("Caduceus Round Shield" , 1410000, ItemType.CaduceusRoundShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new Item("Crystal Ring Shield" , 1411000, ItemType.CrystalRingShield , ItemCategory.Shields , 1, ItemUpgrade.Unique ), + new Item("Heater Shield" , 1450000, ItemType.HeaterShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new Item("Knight Shield" , 1451000, ItemType.KnightShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new Item("Tower Kite Shield" , 1452000, ItemType.TowerKiteShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new Item("Grass Crest Shield" , 1453000, ItemType.GrassCrestShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new Item("Hollow Soldier Shield" , 1454000, ItemType.HollowSoldierShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new Item("Balder Shield" , 1455000, ItemType.BalderShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new Item("Crest Shield" , 1456000, ItemType.CrestShield , ItemCategory.Shields , 1, ItemUpgrade.Unique ), + new Item("Dragon Crest Shield" , 1457000, ItemType.DragonCrestShield , ItemCategory.Shields , 1, ItemUpgrade.Unique ), + new Item("Warrior's Round Shield" , 1460000, ItemType.WarriorsRoundShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new Item("Iron Round Shield" , 1461000, ItemType.IronRoundShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new Item("Spider Shield" , 1462000, ItemType.SpiderShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new Item("Spiked Shield" , 1470000, ItemType.SpikedShield , ItemCategory.Shields , 1, ItemUpgrade.Infusable ), + new Item("Crystal Shield" , 1471000, ItemType.CrystalShield , ItemCategory.Shields , 1, ItemUpgrade.None ), + new Item("Sunlight Shield" , 1472000, ItemType.SunlightShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new Item("Silver Knight Shield" , 1473000, ItemType.SilverKnightShield , ItemCategory.Shields , 1, ItemUpgrade.Unique ), + new Item("Black Knight Shield" , 1474000, ItemType.BlackKnightShield , ItemCategory.Shields , 1, ItemUpgrade.Unique ), + new Item("Pierce Shield" , 1475000, ItemType.PierceShield , ItemCategory.Shields , 1, ItemUpgrade.Infusable ), + new Item("Red and White Round Shield" , 1476000, ItemType.RedandWhiteRoundShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new Item("Caduceus Kite Shield" , 1477000, ItemType.CaduceusKiteShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new Item("Gargoyle's Shield" , 1478000, ItemType.GargoylesShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new Item("Eagle Shield" , 1500000, ItemType.EagleShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new Item("Tower Shield" , 1501000, ItemType.TowerShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new Item("Giant Shield" , 1502000, ItemType.GiantShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new Item("Stone Greatshield" , 1503000, ItemType.StoneGreatshield , ItemCategory.Shields , 1, ItemUpgrade.Unique ), + new Item("Havel's Greatshield" , 1505000, ItemType.HavelsGreatshield , ItemCategory.Shields , 1, ItemUpgrade.Unique ), + new Item("Bonewheel Shield" , 1506000, ItemType.BonewheelShield , ItemCategory.Shields , 1, ItemUpgrade.Infusable ), + new Item("Greatshield of Artorias" , 1507000, ItemType.GreatshieldofArtorias , ItemCategory.Shields , 1, ItemUpgrade.Unique ), + new Item("Effigy Shield" , 9000000, ItemType.EffigyShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new Item("Sanctus" , 9001000, ItemType.Sanctus , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new Item("Bloodshield" , 9002000, ItemType.Bloodshield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new Item("Black Iron Greatshield" , 9003000, ItemType.BlackIronGreatshield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new Item("Cleansing Greatshield" , 9014000, ItemType.CleansingGreatshield , ItemCategory.Shields , 1, ItemUpgrade.Unique ), - new Item("Sorcery: Soul Arrow" , 3000, ItemType.SorcerySoulArrow , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Great Soul Arrow" , 3010, ItemType.SorceryGreatSoulArrow , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Heavy Soul Arrow" , 3020, ItemType.SorceryHeavySoulArrow , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Great Heavy Soul Arrow" , 3030, ItemType.SorceryGreatHeavySoulArrow , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Homing Soulmass" , 3040, ItemType.SorceryHomingSoulmass , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Homing Crystal Soulmass" , 3050, ItemType.SorceryHomingCrystalSoulmass , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Soul Spear" , 3060, ItemType.SorcerySoulSpear , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Crystal Soul Spear" , 3070, ItemType.SorceryCrystalSoulSpear , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Magic Weapon" , 3100, ItemType.SorceryMagicWeapon , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Great Magic Weapon" , 3110, ItemType.SorceryGreatMagicWeapon , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Crystal Magic Weapon" , 3120, ItemType.SorceryCrystalMagicWeapon , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Magic Shield" , 3300, ItemType.SorceryMagicShield , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Strong Magic Shield" , 3310, ItemType.SorceryStrongMagicShield , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Hidden Weapon" , 3400, ItemType.SorceryHiddenWeapon , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Hidden Body" , 3410, ItemType.SorceryHiddenBody , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Cast Light" , 3500, ItemType.SorceryCastLight , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Hush" , 3510, ItemType.SorceryHush , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Aural Decoy" , 3520, ItemType.SorceryAuralDecoy , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Repair" , 3530, ItemType.SorceryRepair , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Fall Control" , 3540, ItemType.SorceryFallControl , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Chameleon" , 3550, ItemType.SorceryChameleon , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Resist Curse" , 3600, ItemType.SorceryResistCurse , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Remedy" , 3610, ItemType.SorceryRemedy , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: White Dragon Breath" , 3700, ItemType.SorceryWhiteDragonBreath , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Dark Orb" , 3710, ItemType.SorceryDarkOrb , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Dark Bead" , 3720, ItemType.SorceryDarkBead , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Dark Fog" , 3730, ItemType.SorceryDarkFog , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Pursuers" , 3740, ItemType.SorceryPursuers , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Pyromancy: Fireball" , 4000, ItemType.PyromancyFireball , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Pyromancy: Fire Orb" , 4010, ItemType.PyromancyFireOrb , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Pyromancy: Great Fireball" , 4020, ItemType.PyromancyGreatFireball , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Pyromancy: Firestorm" , 4030, ItemType.PyromancyFirestorm , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Pyromancy: Fire Tempest" , 4040, ItemType.PyromancyFireTempest , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Pyromancy: Fire Surge" , 4050, ItemType.PyromancyFireSurge , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Pyromancy: Fire Whip" , 4060, ItemType.PyromancyFireWhip , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Pyromancy: Combustion" , 4100, ItemType.PyromancyCombustion , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Pyromancy: Great Combustion" , 4110, ItemType.PyromancyGreatCombustion , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Pyromancy: Poison Mist" , 4200, ItemType.PyromancyPoisonMist , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Pyromancy: Toxic Mist" , 4210, ItemType.PyromancyToxicMist , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Pyromancy: Acid Surge" , 4220, ItemType.PyromancyAcidSurge , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Pyromancy: Iron Flesh" , 4300, ItemType.PyromancyIronFlesh , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Pyromancy: Flash Sweat" , 4310, ItemType.PyromancyFlashSweat , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Pyromancy: Undead Rapport" , 4360, ItemType.PyromancyUndeadRapport , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Pyromancy: Power Within" , 4400, ItemType.PyromancyPowerWithin , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Pyromancy: Great Chaos Fireball" , 4500, ItemType.PyromancyGreatChaosFireball , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Pyromancy: Chaos Storm" , 4510, ItemType.PyromancyChaosStorm , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Pyromancy: Chaos Fire Whip" , 4520, ItemType.PyromancyChaosFireWhip , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Pyromancy: Black Flame" , 4530, ItemType.PyromancyBlackFlame , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Miracle: Heal" , 5000, ItemType.MiracleHeal , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Miracle: Great Heal" , 5010, ItemType.MiracleGreatHeal , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Miracle: Great Heal Excerpt" , 5020, ItemType.MiracleGreatHealExcerpt , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Miracle: Soothing Sunlight" , 5030, ItemType.MiracleSoothingSunlight , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Miracle: Replenishment" , 5040, ItemType.MiracleReplenishment , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Miracle: Bountiful Sunlight" , 5050, ItemType.MiracleBountifulSunlight , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Miracle: Gravelord Sword Dance" , 5100, ItemType.MiracleGravelordSwordDance , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Miracle: Gravelord Greatsword Dance" , 5110, ItemType.MiracleGravelordGreatswordDance , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Miracle: Homeward" , 5210, ItemType.MiracleHomeward , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Miracle: Force" , 5300, ItemType.MiracleForce , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Miracle: Wrath of the Gods" , 5310, ItemType.MiracleWrathoftheGods , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Miracle: Emit Force" , 5320, ItemType.MiracleEmitForce , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Miracle: Seek Guidance" , 5400, ItemType.MiracleSeekGuidance , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Miracle: Lightning Spear" , 5500, ItemType.MiracleLightningSpear , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Miracle: Great Lightning Spear" , 5510, ItemType.MiracleGreatLightningSpear , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Miracle: Sunlight Spear" , 5520, ItemType.MiracleSunlightSpear , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Miracle: Magic Barrier" , 5600, ItemType.MiracleMagicBarrier , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Miracle: Great Magic Barrier" , 5610, ItemType.MiracleGreatMagicBarrier , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Miracle: Karmic Justice" , 5700, ItemType.MiracleKarmicJustice , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Miracle: Tranquil Walk of Peace" , 5800, ItemType.MiracleTranquilWalkofPeace , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Miracle: Vow of Silence" , 5810, ItemType.MiracleVowofSilence , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Miracle: Sunlight Blade" , 5900, ItemType.MiracleSunlightBlade , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Miracle: Darkmoon Blade" , 5910, ItemType.MiracleDarkmoonBlade , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Sorcery: Soul Arrow" , 3000, ItemType.SorcerySoulArrow , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Sorcery: Great Soul Arrow" , 3010, ItemType.SorceryGreatSoulArrow , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Sorcery: Heavy Soul Arrow" , 3020, ItemType.SorceryHeavySoulArrow , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Sorcery: Great Heavy Soul Arrow" , 3030, ItemType.SorceryGreatHeavySoulArrow , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Sorcery: Homing Soulmass" , 3040, ItemType.SorceryHomingSoulmass , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Sorcery: Homing Crystal Soulmass" , 3050, ItemType.SorceryHomingCrystalSoulmass , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Sorcery: Soul Spear" , 3060, ItemType.SorcerySoulSpear , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Sorcery: Crystal Soul Spear" , 3070, ItemType.SorceryCrystalSoulSpear , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Sorcery: Magic Weapon" , 3100, ItemType.SorceryMagicWeapon , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Sorcery: Great Magic Weapon" , 3110, ItemType.SorceryGreatMagicWeapon , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Sorcery: Crystal Magic Weapon" , 3120, ItemType.SorceryCrystalMagicWeapon , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Sorcery: Magic Shield" , 3300, ItemType.SorceryMagicShield , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Sorcery: Strong Magic Shield" , 3310, ItemType.SorceryStrongMagicShield , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Sorcery: Hidden Weapon" , 3400, ItemType.SorceryHiddenWeapon , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Sorcery: Hidden Body" , 3410, ItemType.SorceryHiddenBody , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Sorcery: Cast Light" , 3500, ItemType.SorceryCastLight , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Sorcery: Hush" , 3510, ItemType.SorceryHush , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Sorcery: Aural Decoy" , 3520, ItemType.SorceryAuralDecoy , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Sorcery: Repair" , 3530, ItemType.SorceryRepair , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Sorcery: Fall Control" , 3540, ItemType.SorceryFallControl , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Sorcery: Chameleon" , 3550, ItemType.SorceryChameleon , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Sorcery: Resist Curse" , 3600, ItemType.SorceryResistCurse , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Sorcery: Remedy" , 3610, ItemType.SorceryRemedy , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Sorcery: White Dragon Breath" , 3700, ItemType.SorceryWhiteDragonBreath , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Sorcery: Dark Orb" , 3710, ItemType.SorceryDarkOrb , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Sorcery: Dark Bead" , 3720, ItemType.SorceryDarkBead , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Sorcery: Dark Fog" , 3730, ItemType.SorceryDarkFog , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Sorcery: Pursuers" , 3740, ItemType.SorceryPursuers , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Pyromancy: Fireball" , 4000, ItemType.PyromancyFireball , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Pyromancy: Fire Orb" , 4010, ItemType.PyromancyFireOrb , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Pyromancy: Great Fireball" , 4020, ItemType.PyromancyGreatFireball , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Pyromancy: Firestorm" , 4030, ItemType.PyromancyFirestorm , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Pyromancy: Fire Tempest" , 4040, ItemType.PyromancyFireTempest , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Pyromancy: Fire Surge" , 4050, ItemType.PyromancyFireSurge , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Pyromancy: Fire Whip" , 4060, ItemType.PyromancyFireWhip , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Pyromancy: Combustion" , 4100, ItemType.PyromancyCombustion , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Pyromancy: Great Combustion" , 4110, ItemType.PyromancyGreatCombustion , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Pyromancy: Poison Mist" , 4200, ItemType.PyromancyPoisonMist , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Pyromancy: Toxic Mist" , 4210, ItemType.PyromancyToxicMist , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Pyromancy: Acid Surge" , 4220, ItemType.PyromancyAcidSurge , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Pyromancy: Iron Flesh" , 4300, ItemType.PyromancyIronFlesh , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Pyromancy: Flash Sweat" , 4310, ItemType.PyromancyFlashSweat , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Pyromancy: Undead Rapport" , 4360, ItemType.PyromancyUndeadRapport , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Pyromancy: Power Within" , 4400, ItemType.PyromancyPowerWithin , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Pyromancy: Great Chaos Fireball" , 4500, ItemType.PyromancyGreatChaosFireball , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Pyromancy: Chaos Storm" , 4510, ItemType.PyromancyChaosStorm , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Pyromancy: Chaos Fire Whip" , 4520, ItemType.PyromancyChaosFireWhip , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Pyromancy: Black Flame" , 4530, ItemType.PyromancyBlackFlame , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Miracle: Heal" , 5000, ItemType.MiracleHeal , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Miracle: Great Heal" , 5010, ItemType.MiracleGreatHeal , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Miracle: Great Heal Excerpt" , 5020, ItemType.MiracleGreatHealExcerpt , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Miracle: Soothing Sunlight" , 5030, ItemType.MiracleSoothingSunlight , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Miracle: Replenishment" , 5040, ItemType.MiracleReplenishment , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Miracle: Bountiful Sunlight" , 5050, ItemType.MiracleBountifulSunlight , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Miracle: Gravelord Sword Dance" , 5100, ItemType.MiracleGravelordSwordDance , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Miracle: Gravelord Greatsword Dance" , 5110, ItemType.MiracleGravelordGreatswordDance , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Miracle: Homeward" , 5210, ItemType.MiracleHomeward , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Miracle: Force" , 5300, ItemType.MiracleForce , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Miracle: Wrath of the Gods" , 5310, ItemType.MiracleWrathoftheGods , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Miracle: Emit Force" , 5320, ItemType.MiracleEmitForce , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Miracle: Seek Guidance" , 5400, ItemType.MiracleSeekGuidance , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Miracle: Lightning Spear" , 5500, ItemType.MiracleLightningSpear , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Miracle: Great Lightning Spear" , 5510, ItemType.MiracleGreatLightningSpear , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Miracle: Sunlight Spear" , 5520, ItemType.MiracleSunlightSpear , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Miracle: Magic Barrier" , 5600, ItemType.MiracleMagicBarrier , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Miracle: Great Magic Barrier" , 5610, ItemType.MiracleGreatMagicBarrier , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Miracle: Karmic Justice" , 5700, ItemType.MiracleKarmicJustice , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Miracle: Tranquil Walk of Peace" , 5800, ItemType.MiracleTranquilWalkofPeace , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Miracle: Vow of Silence" , 5810, ItemType.MiracleVowofSilence , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Miracle: Sunlight Blade" , 5900, ItemType.MiracleSunlightBlade , ItemCategory.Spells , 99, ItemUpgrade.None ), + new Item("Miracle: Darkmoon Blade" , 5910, ItemType.MiracleDarkmoonBlade , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcerer's Catalyst" , 1300000, ItemType.SorcerersCatalyst , ItemCategory.SpellTools , 1, ItemUpgrade.None ), - new Item("Beatrice's Catalyst" , 1301000, ItemType.BeatricesCatalyst , ItemCategory.SpellTools , 1, ItemUpgrade.None ), - new Item("Tin Banishment Catalyst" , 1302000, ItemType.TinBanishmentCatalyst , ItemCategory.SpellTools , 1, ItemUpgrade.None ), - new Item("Logan's Catalyst" , 1303000, ItemType.LogansCatalyst , ItemCategory.SpellTools , 1, ItemUpgrade.None ), - new Item("Tin Darkmoon Catalyst" , 1304000, ItemType.TinDarkmoonCatalyst , ItemCategory.SpellTools , 1, ItemUpgrade.None ), - new Item("Oolacile Ivory Catalyst" , 1305000, ItemType.OolacileIvoryCatalyst , ItemCategory.SpellTools , 1, ItemUpgrade.None ), - new Item("Tin Crystallization Catalyst" , 1306000, ItemType.TinCrystallizationCatalyst , ItemCategory.SpellTools , 1, ItemUpgrade.None ), - new Item("Demon's Catalyst" , 1307000, ItemType.DemonsCatalyst , ItemCategory.SpellTools , 1, ItemUpgrade.None ), - new Item("Izalith Catalyst" , 1308000, ItemType.IzalithCatalyst , ItemCategory.SpellTools , 1, ItemUpgrade.None ), - new Item("Pyromancy Flame" , 1330000, ItemType.PyromancyFlame , ItemCategory.SpellTools , 1, ItemUpgrade.None ), - new Item("Pyromancy Flame (Ascended)" , 1332000, ItemType.PyromancyFlameAscended , ItemCategory.SpellTools , 1, ItemUpgrade.None ), - new Item("Talisman" , 1360000, ItemType.Talisman , ItemCategory.SpellTools , 1, ItemUpgrade.None ), - new Item("Canvas Talisman" , 1361000, ItemType.CanvasTalisman , ItemCategory.SpellTools , 1, ItemUpgrade.None ), - new Item("Thorolund Talisman" , 1362000, ItemType.ThorolundTalisman , ItemCategory.SpellTools , 1, ItemUpgrade.None ), - new Item("Ivory Talisman" , 1363000, ItemType.IvoryTalisman , ItemCategory.SpellTools , 1, ItemUpgrade.None ), - new Item("Sunlight Talisman" , 1365000, ItemType.SunlightTalisman , ItemCategory.SpellTools , 1, ItemUpgrade.None ), - new Item("Darkmoon Talisman" , 1366000, ItemType.DarkmoonTalisman , ItemCategory.SpellTools , 1, ItemUpgrade.None ), - new Item("Velka's Talisman" , 1367000, ItemType.VelkasTalisman , ItemCategory.SpellTools , 1, ItemUpgrade.None ), - new Item("Manus Catalyst" , 9017000, ItemType.ManusCatalyst , ItemCategory.SpellTools , 1, ItemUpgrade.None ), - new Item("Oolacile Catalyst" , 9018000, ItemType.OolacileCatalyst , ItemCategory.SpellTools , 1, ItemUpgrade.None ), + new Item("Sorcerer's Catalyst" , 1300000, ItemType.SorcerersCatalyst , ItemCategory.SpellTools , 1, ItemUpgrade.None ), + new Item("Beatrice's Catalyst" , 1301000, ItemType.BeatricesCatalyst , ItemCategory.SpellTools , 1, ItemUpgrade.None ), + new Item("Tin Banishment Catalyst" , 1302000, ItemType.TinBanishmentCatalyst , ItemCategory.SpellTools , 1, ItemUpgrade.None ), + new Item("Logan's Catalyst" , 1303000, ItemType.LogansCatalyst , ItemCategory.SpellTools , 1, ItemUpgrade.None ), + new Item("Tin Darkmoon Catalyst" , 1304000, ItemType.TinDarkmoonCatalyst , ItemCategory.SpellTools , 1, ItemUpgrade.None ), + new Item("Oolacile Ivory Catalyst" , 1305000, ItemType.OolacileIvoryCatalyst , ItemCategory.SpellTools , 1, ItemUpgrade.None ), + new Item("Tin Crystallization Catalyst" , 1306000, ItemType.TinCrystallizationCatalyst , ItemCategory.SpellTools , 1, ItemUpgrade.None ), + new Item("Demon's Catalyst" , 1307000, ItemType.DemonsCatalyst , ItemCategory.SpellTools , 1, ItemUpgrade.None ), + new Item("Izalith Catalyst" , 1308000, ItemType.IzalithCatalyst , ItemCategory.SpellTools , 1, ItemUpgrade.None ), + new Item("Pyromancy Flame" , 1330000, ItemType.PyromancyFlame , ItemCategory.SpellTools , 1, ItemUpgrade.None ), + new Item("Pyromancy Flame (Ascended)" , 1332000, ItemType.PyromancyFlameAscended , ItemCategory.SpellTools , 1, ItemUpgrade.None ), + new Item("Talisman" , 1360000, ItemType.Talisman , ItemCategory.SpellTools , 1, ItemUpgrade.None ), + new Item("Canvas Talisman" , 1361000, ItemType.CanvasTalisman , ItemCategory.SpellTools , 1, ItemUpgrade.None ), + new Item("Thorolund Talisman" , 1362000, ItemType.ThorolundTalisman , ItemCategory.SpellTools , 1, ItemUpgrade.None ), + new Item("Ivory Talisman" , 1363000, ItemType.IvoryTalisman , ItemCategory.SpellTools , 1, ItemUpgrade.None ), + new Item("Sunlight Talisman" , 1365000, ItemType.SunlightTalisman , ItemCategory.SpellTools , 1, ItemUpgrade.None ), + new Item("Darkmoon Talisman" , 1366000, ItemType.DarkmoonTalisman , ItemCategory.SpellTools , 1, ItemUpgrade.None ), + new Item("Velka's Talisman" , 1367000, ItemType.VelkasTalisman , ItemCategory.SpellTools , 1, ItemUpgrade.None ), + new Item("Manus Catalyst" , 9017000, ItemType.ManusCatalyst , ItemCategory.SpellTools , 1, ItemUpgrade.None ), + new Item("Oolacile Catalyst" , 9018000, ItemType.OolacileCatalyst , ItemCategory.SpellTools , 1, ItemUpgrade.None ), - new Item("Large Ember" , 800 , ItemType.LargeEmber , ItemCategory.UpgradeMaterials, 1, ItemUpgrade.None ), - new Item("Very Large Ember" , 801 , ItemType.VeryLargeEmber , ItemCategory.UpgradeMaterials, 1, ItemUpgrade.None ), - new Item("Crystal Ember" , 802 , ItemType.CrystalEmber , ItemCategory.UpgradeMaterials, 1, ItemUpgrade.None ), - new Item("Large Magic Ember" , 806 , ItemType.LargeMagicEmber , ItemCategory.UpgradeMaterials, 1, ItemUpgrade.None ), - new Item("Enchanted Ember" , 807 , ItemType.EnchantedEmber , ItemCategory.UpgradeMaterials, 1, ItemUpgrade.None ), - new Item("Divine Ember" , 808 , ItemType.DivineEmber , ItemCategory.UpgradeMaterials, 1, ItemUpgrade.None ), - new Item("Large Divine Ember" , 809 , ItemType.LargeDivineEmber , ItemCategory.UpgradeMaterials, 1, ItemUpgrade.None ), - new Item("Dark Ember" , 810 , ItemType.DarkEmber , ItemCategory.UpgradeMaterials, 1, ItemUpgrade.None ), - new Item("Large Flame Ember" , 812 , ItemType.LargeFlameEmber , ItemCategory.UpgradeMaterials, 1, ItemUpgrade.None ), - new Item("Chaos Flame Ember" , 813 , ItemType.ChaosFlameEmber , ItemCategory.UpgradeMaterials, 1, ItemUpgrade.None ), - new Item("Titanite Shard" , 1000, ItemType.TitaniteShard , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), - new Item("Large Titanite Shard" , 1010, ItemType.LargeTitaniteShard , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), - new Item("Green Titanite Shard" , 1020, ItemType.GreenTitaniteShard , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), - new Item("Titanite Chunk" , 1030, ItemType.TitaniteChunk , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), - new Item("Blue Titanite Chunk" , 1040, ItemType.BlueTitaniteChunk , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), - new Item("White Titanite Chunk" , 1050, ItemType.WhiteTitaniteChunk , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), - new Item("Red Titanite Chunk" , 1060, ItemType.RedTitaniteChunk , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), - new Item("Titanite Slab" , 1070, ItemType.TitaniteSlab , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), - new Item("Blue Titanite Slab" , 1080, ItemType.BlueTitaniteSlab , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), - new Item("White Titanite Slab" , 1090, ItemType.WhiteTitaniteSlab , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), - new Item("Red Titanite Slab" , 1100, ItemType.RedTitaniteSlab , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), - new Item("Dragon Scale" , 1110, ItemType.DragonScale , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), - new Item("Demon Titanite" , 1120, ItemType.DemonTitanite , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), - new Item("Twinkling Titanite" , 1130, ItemType.TwinklingTitanite , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), + new Item("Large Ember" , 800 , ItemType.LargeEmber , ItemCategory.UpgradeMaterials, 1, ItemUpgrade.None ), + new Item("Very Large Ember" , 801 , ItemType.VeryLargeEmber , ItemCategory.UpgradeMaterials, 1, ItemUpgrade.None ), + new Item("Crystal Ember" , 802 , ItemType.CrystalEmber , ItemCategory.UpgradeMaterials, 1, ItemUpgrade.None ), + new Item("Large Magic Ember" , 806 , ItemType.LargeMagicEmber , ItemCategory.UpgradeMaterials, 1, ItemUpgrade.None ), + new Item("Enchanted Ember" , 807 , ItemType.EnchantedEmber , ItemCategory.UpgradeMaterials, 1, ItemUpgrade.None ), + new Item("Divine Ember" , 808 , ItemType.DivineEmber , ItemCategory.UpgradeMaterials, 1, ItemUpgrade.None ), + new Item("Large Divine Ember" , 809 , ItemType.LargeDivineEmber , ItemCategory.UpgradeMaterials, 1, ItemUpgrade.None ), + new Item("Dark Ember" , 810 , ItemType.DarkEmber , ItemCategory.UpgradeMaterials, 1, ItemUpgrade.None ), + new Item("Large Flame Ember" , 812 , ItemType.LargeFlameEmber , ItemCategory.UpgradeMaterials, 1, ItemUpgrade.None ), + new Item("Chaos Flame Ember" , 813 , ItemType.ChaosFlameEmber , ItemCategory.UpgradeMaterials, 1, ItemUpgrade.None ), + new Item("Titanite Shard" , 1000, ItemType.TitaniteShard , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), + new Item("Large Titanite Shard" , 1010, ItemType.LargeTitaniteShard , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), + new Item("Green Titanite Shard" , 1020, ItemType.GreenTitaniteShard , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), + new Item("Titanite Chunk" , 1030, ItemType.TitaniteChunk , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), + new Item("Blue Titanite Chunk" , 1040, ItemType.BlueTitaniteChunk , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), + new Item("White Titanite Chunk" , 1050, ItemType.WhiteTitaniteChunk , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), + new Item("Red Titanite Chunk" , 1060, ItemType.RedTitaniteChunk , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), + new Item("Titanite Slab" , 1070, ItemType.TitaniteSlab , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), + new Item("Blue Titanite Slab" , 1080, ItemType.BlueTitaniteSlab , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), + new Item("White Titanite Slab" , 1090, ItemType.WhiteTitaniteSlab , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), + new Item("Red Titanite Slab" , 1100, ItemType.RedTitaniteSlab , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), + new Item("Dragon Scale" , 1110, ItemType.DragonScale , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), + new Item("Demon Titanite" , 1120, ItemType.DemonTitanite , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), + new Item("Twinkling Titanite" , 1130, ItemType.TwinklingTitanite , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), - new Item("White Sign Soapstone" , 100, ItemType.WhiteSignSoapstone , ItemCategory.UsableItems , 1, ItemUpgrade.None ), - new Item("Red Sign Soapstone" , 101, ItemType.RedSignSoapstone , ItemCategory.UsableItems , 1, ItemUpgrade.None ), - new Item("Red Eye Orb" , 102, ItemType.RedEyeOrb , ItemCategory.UsableItems , 1, ItemUpgrade.None ), - new Item("Black Separation Crystal" , 103, ItemType.BlackSeparationCrystal , ItemCategory.UsableItems , 1, ItemUpgrade.None ), - new Item("Orange Guidance Soapstone" , 106, ItemType.OrangeGuidanceSoapstone , ItemCategory.UsableItems , 1, ItemUpgrade.None ), - new Item("Book of the Guilty" , 108, ItemType.BookoftheGuilty , ItemCategory.UsableItems , 1, ItemUpgrade.None ), - new Item("Servant Roster" , 112, ItemType.ServantRoster , ItemCategory.UsableItems , 1, ItemUpgrade.None ), - new Item("Blue Eye Orb" , 113, ItemType.BlueEyeOrb , ItemCategory.UsableItems , 1, ItemUpgrade.None ), - new Item("Dragon Eye" , 114, ItemType.DragonEye , ItemCategory.UsableItems , 1, ItemUpgrade.None ), - new Item("Black Eye Orb" , 115, ItemType.BlackEyeOrb , ItemCategory.UsableItems , 1, ItemUpgrade.None ), - new Item("Darksign" , 117, ItemType.Darksign , ItemCategory.UsableItems , 1, ItemUpgrade.None ), - new Item("Purple Coward's Crystal" , 118, ItemType.PurpleCowardsCrystal , ItemCategory.UsableItems , 1, ItemUpgrade.None ), - new Item("Silver Pendant" , 220, ItemType.SilverPendant , ItemCategory.UsableItems , 99, ItemUpgrade.None ), - new Item("Binoculars" , 371, ItemType.Binoculars , ItemCategory.UsableItems , 1, ItemUpgrade.None ), - new Item("Dragon Head Stone" , 377, ItemType.DragonHeadStone , ItemCategory.UsableItems , 99, ItemUpgrade.None ), - new Item("Dragon Torso Stone" , 378, ItemType.DragonTorsoStone , ItemCategory.UsableItems , 99, ItemUpgrade.None ), - new Item("Dried Finger" , 385, ItemType.DriedFinger , ItemCategory.UsableItems , 1, ItemUpgrade.None ), - new Item("Hello Carving" , 510, ItemType.HelloCarving , ItemCategory.UsableItems , 1, ItemUpgrade.None ), - new Item("Thank you Carving" , 511, ItemType.ThankyouCarving , ItemCategory.UsableItems , 1, ItemUpgrade.None ), - new Item("Very good! Carving" , 512, ItemType.VerygoodCarving , ItemCategory.UsableItems , 1, ItemUpgrade.None ), - new Item("I'm sorry Carving" , 513, ItemType.ImsorryCarving , ItemCategory.UsableItems , 1, ItemUpgrade.None ), - new Item("Help me! Carving" , 514, ItemType.HelpmeCarving , ItemCategory.UsableItems , 1, ItemUpgrade.None ), - }); - } + new Item("White Sign Soapstone" , 100, ItemType.WhiteSignSoapstone , ItemCategory.UsableItems , 1, ItemUpgrade.None ), + new Item("Red Sign Soapstone" , 101, ItemType.RedSignSoapstone , ItemCategory.UsableItems , 1, ItemUpgrade.None ), + new Item("Red Eye Orb" , 102, ItemType.RedEyeOrb , ItemCategory.UsableItems , 1, ItemUpgrade.None ), + new Item("Black Separation Crystal" , 103, ItemType.BlackSeparationCrystal , ItemCategory.UsableItems , 1, ItemUpgrade.None ), + new Item("Orange Guidance Soapstone" , 106, ItemType.OrangeGuidanceSoapstone , ItemCategory.UsableItems , 1, ItemUpgrade.None ), + new Item("Book of the Guilty" , 108, ItemType.BookoftheGuilty , ItemCategory.UsableItems , 1, ItemUpgrade.None ), + new Item("Servant Roster" , 112, ItemType.ServantRoster , ItemCategory.UsableItems , 1, ItemUpgrade.None ), + new Item("Blue Eye Orb" , 113, ItemType.BlueEyeOrb , ItemCategory.UsableItems , 1, ItemUpgrade.None ), + new Item("Dragon Eye" , 114, ItemType.DragonEye , ItemCategory.UsableItems , 1, ItemUpgrade.None ), + new Item("Black Eye Orb" , 115, ItemType.BlackEyeOrb , ItemCategory.UsableItems , 1, ItemUpgrade.None ), + new Item("Darksign" , 117, ItemType.Darksign , ItemCategory.UsableItems , 1, ItemUpgrade.None ), + new Item("Purple Coward's Crystal" , 118, ItemType.PurpleCowardsCrystal , ItemCategory.UsableItems , 1, ItemUpgrade.None ), + new Item("Silver Pendant" , 220, ItemType.SilverPendant , ItemCategory.UsableItems , 99, ItemUpgrade.None ), + new Item("Binoculars" , 371, ItemType.Binoculars , ItemCategory.UsableItems , 1, ItemUpgrade.None ), + new Item("Dragon Head Stone" , 377, ItemType.DragonHeadStone , ItemCategory.UsableItems , 99, ItemUpgrade.None ), + new Item("Dragon Torso Stone" , 378, ItemType.DragonTorsoStone , ItemCategory.UsableItems , 99, ItemUpgrade.None ), + new Item("Dried Finger" , 385, ItemType.DriedFinger , ItemCategory.UsableItems , 1, ItemUpgrade.None ), + new Item("Hello Carving" , 510, ItemType.HelloCarving , ItemCategory.UsableItems , 1, ItemUpgrade.None ), + new Item("Thank you Carving" , 511, ItemType.ThankyouCarving , ItemCategory.UsableItems , 1, ItemUpgrade.None ), + new Item("Very good! Carving" , 512, ItemType.VerygoodCarving , ItemCategory.UsableItems , 1, ItemUpgrade.None ), + new Item("I'm sorry Carving" , 513, ItemType.ImsorryCarving , ItemCategory.UsableItems , 1, ItemUpgrade.None ), + new Item("Help me! Carving" , 514, ItemType.HelpmeCarving , ItemCategory.UsableItems , 1, ItemUpgrade.None ), + }); +} - public enum ItemInfusion - { - Normal = 0, - Crystal = 1, - Lightning = 2, - Raw = 3, - Magic = 4, - Enchanted = 5, - Divine = 6, - Occult = 7, - Fire = 8, - Chaos = 9, - } +public enum ItemInfusion +{ + Normal = 0, + Crystal = 1, + Lightning = 2, + Raw = 3, + Magic = 4, + Enchanted = 5, + Divine = 6, + Occult = 7, + Fire = 8, + Chaos = 9, +} - public enum ItemUpgrade - { - None = 0, - Unique = 1, - Armor = 2, - Infusable = 3, - InfusableRestricted = 4, - PyroFlame = 5, - PyroFlameAscended = 6, - } +public enum ItemUpgrade +{ + None = 0, + Unique = 1, + Armor = 2, + Infusable = 3, + InfusableRestricted = 4, + PyroFlame = 5, + PyroFlameAscended = 6, +} - public enum ItemCategory - { - Armor, - Consumables, - Key, - MeleeWeapons, - RangedWeapons, - Ammo, - Rings, - Shields, - Spells, - SpellTools, - UpgradeMaterials, - UsableItems, - } +public enum ItemCategory +{ + Armor, + Consumables, + Key, + MeleeWeapons, + RangedWeapons, + Ammo, + Rings, + Shields, + Spells, + SpellTools, + UpgradeMaterials, + UsableItems, +} - [XmlType(Namespace = "SoulMemory.DarkSouls1")] - public enum ItemType - { - //Armor +[XmlType(Namespace = "SoulMemory.DarkSouls1")] +public enum ItemType +{ + //Armor - CatarinaHelm, - CatarinaArmor, - CatarinaGauntlets, - CatarinaLeggings, - PaladinHelm, - PaladinArmor, - PaladinGauntlets, - PaladinLeggings, - DarkMask, - DarkArmor, - DarkGauntlets, - DarkLeggings, - BrigandHood, - BrigandArmor, - BrigandGauntlets, - BrigandTrousers, - ShadowMask, - ShadowGarb, - ShadowGauntlets, - ShadowLeggings, - BlackIronHelm, - BlackIronArmor, - BlackIronGauntlets, - BlackIronLeggings, - SmoughsHelm, - SmoughsArmor, - SmoughsGauntlets, - SmoughsLeggings, - SixEyedHelmoftheChannelers, - RobeoftheChannelers, - GauntletsoftheChannelers, - WaistclothoftheChannelers, - HelmofFavor, - EmbracedArmorofFavor, - GauntletsofFavor, - LeggingsofFavor, - HelmoftheWise, - ArmoroftheGlorious, - GauntletsoftheVanquisher, - BootsoftheExplorer, - StoneHelm, - StoneArmor, - StoneGauntlets, - StoneLeggings, - CrystallineHelm, - CrystallineArmor, - CrystallineGauntlets, - CrystallineLeggings, - MaskoftheSealer, - CrimsonRobe, - CrimsonGloves, - CrimsonWaistcloth, - MaskofVelka, - BlackClericRobe, - BlackManchette, - BlackTights, - IronHelm, - ArmoroftheSun, - IronBracelet, - IronLeggings, - ChainHelm, - ChainArmor, - LeatherGauntlets, - ChainLeggings, - ClericHelm, - ClericArmor, - ClericGauntlets, - ClericLeggings, - SunlightMaggot, - HelmofThorns, - ArmorofThorns, - GauntletsofThorns, - LeggingsofThorns, - StandardHelm, - HardLeatherArmor, - HardLeatherGauntlets, - HardLeatherBoots, - SorcererHat, - SorcererCloak, - SorcererGauntlets, - SorcererBoots, - TatteredClothHood, - TatteredClothRobe, - TatteredClothManchette, - HeavyBoots, - PharissHat, - LeatherArmor, - LeatherGloves, - LeatherBoots, - PaintingGuardianHood, - PaintingGuardianRobe, - PaintingGuardianGloves, - PaintingGuardianWaistcloth, - OrnsteinsHelm, - OrnsteinsArmor, - OrnsteinsGauntlets, - OrnsteinsLeggings, - EasternHelm, - EasternArmor, - EasternGauntlets, - EasternLeggings, - XanthousCrown, - XanthousOvercoat, - XanthousGloves, - XanthousWaistcloth, - ThiefMask, - BlackLeatherArmor, - BlackLeatherGloves, - BlackLeatherBoots, - PriestsHat, - HolyRobe, - TravelingGlovesHoly, - HolyTrousers, - BlackKnightHelm, - BlackKnightArmor, - BlackKnightGauntlets, - BlackKnightLeggings, - CrownofDusk, - AntiquatedDress, - AntiquatedGloves, - AntiquatedSkirt, - WitchHat, - WitchCloak, - WitchGloves, - WitchSkirt, - EliteKnightHelm, - EliteKnightArmor, - EliteKnightGauntlets, - EliteKnightLeggings, - WandererHood, - WandererCoat, - WandererManchette, - WandererBoots, - BigHat, - SageRobe, - TravelingGlovesSage, - TravelingBoots, - KnightHelm, - KnightArmor, - KnightGauntlets, - KnightLeggings, - DingyHood, - DingyRobe, - DingyGloves, - BloodStainedSkirt, - MaidenHood, - MaidenRobe, - MaidenGloves, - MaidenSkirt, - SilverKnightHelm, - SilverKnightArmor, - SilverKnightGauntlets, - SilverKnightLeggings, - HavelsHelm, - HavelsArmor, - HavelsGauntlets, - HavelsLeggings, - BrassHelm, - BrassArmor, - BrassGauntlets, - BrassLeggings, - GoldHemmedBlackHood, - GoldHemmedBlackCloak, - GoldHemmedBlackGloves, - GoldHemmedBlackSkirt, - GolemHelm, - GolemArmor, - GolemGauntlets, - GolemLeggings, - HollowSoldierHelm, - HollowSoldierArmor, - HollowSoldierWaistcloth, - SteelHelm, - SteelArmor, - SteelGauntlets, - SteelLeggings, - HollowThiefsHood, - HollowThiefsLeatherArmor, - HollowThiefsTights, - BalderHelm, - BalderArmor, - BalderGauntlets, - BalderLeggings, - HollowWarriorHelm, - HollowWarriorArmor, - HollowWarriorWaistcloth, - GiantHelm, - GiantArmor, - GiantGauntlets, - GiantLeggings, - CrownoftheDarkSun, - MoonlightRobe, - MoonlightGloves, - MoonlightWaistcloth, - CrownoftheGreatLord, - RobeoftheGreatLord, - BraceletoftheGreatLord, - AnkletoftheGreatLord, - Sack, - SymbolofAvarice, - RoyalHelm, - MaskoftheFather, - MaskoftheMother, - MaskoftheChild, - FangBoarHelm, - GargoyleHelm, - BlackSorcererHat, - BlackSorcererCloak, - BlackSorcererGauntlets, - BlackSorcererBoots, - HelmofArtorias, - ArmorofArtorias, - GauntletsofArtorias, - LeggingsofArtorias, - PorcelainMask, - LordsBladeRobe, - LordsBladeGloves, - LordsBladeWaistcloth, - GoughsHelm, - GoughsArmor, - GoughsGauntlets, - GoughsLeggings, - GuardianHelm, - GuardianArmor, - GuardianGauntlets, - GuardianLeggings, - SnickeringTopHat, - ChestersLongCoat, - ChestersGloves, - ChestersTrousers, - BloatedHead, - BloatedSorcererHead, + CatarinaHelm, + CatarinaArmor, + CatarinaGauntlets, + CatarinaLeggings, + PaladinHelm, + PaladinArmor, + PaladinGauntlets, + PaladinLeggings, + DarkMask, + DarkArmor, + DarkGauntlets, + DarkLeggings, + BrigandHood, + BrigandArmor, + BrigandGauntlets, + BrigandTrousers, + ShadowMask, + ShadowGarb, + ShadowGauntlets, + ShadowLeggings, + BlackIronHelm, + BlackIronArmor, + BlackIronGauntlets, + BlackIronLeggings, + SmoughsHelm, + SmoughsArmor, + SmoughsGauntlets, + SmoughsLeggings, + SixEyedHelmoftheChannelers, + RobeoftheChannelers, + GauntletsoftheChannelers, + WaistclothoftheChannelers, + HelmofFavor, + EmbracedArmorofFavor, + GauntletsofFavor, + LeggingsofFavor, + HelmoftheWise, + ArmoroftheGlorious, + GauntletsoftheVanquisher, + BootsoftheExplorer, + StoneHelm, + StoneArmor, + StoneGauntlets, + StoneLeggings, + CrystallineHelm, + CrystallineArmor, + CrystallineGauntlets, + CrystallineLeggings, + MaskoftheSealer, + CrimsonRobe, + CrimsonGloves, + CrimsonWaistcloth, + MaskofVelka, + BlackClericRobe, + BlackManchette, + BlackTights, + IronHelm, + ArmoroftheSun, + IronBracelet, + IronLeggings, + ChainHelm, + ChainArmor, + LeatherGauntlets, + ChainLeggings, + ClericHelm, + ClericArmor, + ClericGauntlets, + ClericLeggings, + SunlightMaggot, + HelmofThorns, + ArmorofThorns, + GauntletsofThorns, + LeggingsofThorns, + StandardHelm, + HardLeatherArmor, + HardLeatherGauntlets, + HardLeatherBoots, + SorcererHat, + SorcererCloak, + SorcererGauntlets, + SorcererBoots, + TatteredClothHood, + TatteredClothRobe, + TatteredClothManchette, + HeavyBoots, + PharissHat, + LeatherArmor, + LeatherGloves, + LeatherBoots, + PaintingGuardianHood, + PaintingGuardianRobe, + PaintingGuardianGloves, + PaintingGuardianWaistcloth, + OrnsteinsHelm, + OrnsteinsArmor, + OrnsteinsGauntlets, + OrnsteinsLeggings, + EasternHelm, + EasternArmor, + EasternGauntlets, + EasternLeggings, + XanthousCrown, + XanthousOvercoat, + XanthousGloves, + XanthousWaistcloth, + ThiefMask, + BlackLeatherArmor, + BlackLeatherGloves, + BlackLeatherBoots, + PriestsHat, + HolyRobe, + TravelingGlovesHoly, + HolyTrousers, + BlackKnightHelm, + BlackKnightArmor, + BlackKnightGauntlets, + BlackKnightLeggings, + CrownofDusk, + AntiquatedDress, + AntiquatedGloves, + AntiquatedSkirt, + WitchHat, + WitchCloak, + WitchGloves, + WitchSkirt, + EliteKnightHelm, + EliteKnightArmor, + EliteKnightGauntlets, + EliteKnightLeggings, + WandererHood, + WandererCoat, + WandererManchette, + WandererBoots, + BigHat, + SageRobe, + TravelingGlovesSage, + TravelingBoots, + KnightHelm, + KnightArmor, + KnightGauntlets, + KnightLeggings, + DingyHood, + DingyRobe, + DingyGloves, + BloodStainedSkirt, + MaidenHood, + MaidenRobe, + MaidenGloves, + MaidenSkirt, + SilverKnightHelm, + SilverKnightArmor, + SilverKnightGauntlets, + SilverKnightLeggings, + HavelsHelm, + HavelsArmor, + HavelsGauntlets, + HavelsLeggings, + BrassHelm, + BrassArmor, + BrassGauntlets, + BrassLeggings, + GoldHemmedBlackHood, + GoldHemmedBlackCloak, + GoldHemmedBlackGloves, + GoldHemmedBlackSkirt, + GolemHelm, + GolemArmor, + GolemGauntlets, + GolemLeggings, + HollowSoldierHelm, + HollowSoldierArmor, + HollowSoldierWaistcloth, + SteelHelm, + SteelArmor, + SteelGauntlets, + SteelLeggings, + HollowThiefsHood, + HollowThiefsLeatherArmor, + HollowThiefsTights, + BalderHelm, + BalderArmor, + BalderGauntlets, + BalderLeggings, + HollowWarriorHelm, + HollowWarriorArmor, + HollowWarriorWaistcloth, + GiantHelm, + GiantArmor, + GiantGauntlets, + GiantLeggings, + CrownoftheDarkSun, + MoonlightRobe, + MoonlightGloves, + MoonlightWaistcloth, + CrownoftheGreatLord, + RobeoftheGreatLord, + BraceletoftheGreatLord, + AnkletoftheGreatLord, + Sack, + SymbolofAvarice, + RoyalHelm, + MaskoftheFather, + MaskoftheMother, + MaskoftheChild, + FangBoarHelm, + GargoyleHelm, + BlackSorcererHat, + BlackSorcererCloak, + BlackSorcererGauntlets, + BlackSorcererBoots, + HelmofArtorias, + ArmorofArtorias, + GauntletsofArtorias, + LeggingsofArtorias, + PorcelainMask, + LordsBladeRobe, + LordsBladeGloves, + LordsBladeWaistcloth, + GoughsHelm, + GoughsArmor, + GoughsGauntlets, + GoughsLeggings, + GuardianHelm, + GuardianArmor, + GuardianGauntlets, + GuardianLeggings, + SnickeringTopHat, + ChestersLongCoat, + ChestersGloves, + ChestersTrousers, + BloatedHead, + BloatedSorcererHead, - //Consumables - EyeofDeath, - CrackedRedEyeOrb, - EstusFlask, - ElizabethsMushroom, - DivineBlessing, - GreenBlossom, - BloodredMossClump, - PurpleMossClump, - BloomingPurpleMossClump, - PurgingStone, - EggVermifuge, - RepairPowder, - ThrowingKnife, - PoisonThrowingKnife, - Firebomb, - DungPie, - AlluringSkull, - LloydsTalisman, - BlackFirebomb, - CharcoalPineResin, - GoldPineResin, - TransientCurse, - RottenPineResin, - HomewardBone, - PrismStone, - Indictment, - SouvenirofReprisal, - SunlightMedal, - Pendant, - Rubbish, - CopperCoin, - SilverCoin, - GoldCoin, - FireKeeperSoulAnastaciaofAstora, - FireKeeperSoulDarkmoonKnightess, - FireKeeperSoulDaughterofChaos, - FireKeeperSoulNewLondo, - FireKeeperSoulBlighttown, - FireKeeperSoulDukesArchives, - FireKeeperSoulUndeadParish, - SoulofaLostUndead, - LargeSoulofaLostUndead, - SoulofaNamelessSoldier, - LargeSoulofaNamelessSoldier, - SoulofaProudKnight, - LargeSoulofaProudKnight, - SoulofaBraveWarrior, - LargeSoulofaBraveWarrior, - SoulofaHero, - SoulofaGreatHero, - Humanity, - TwinHumanities, - SoulofQuelaag, - SoulofSif, - SoulofGwynLordofCinder, - CoreofanIronGolem, - SoulofOrnstein, - SouloftheMoonlightButterfly, - SoulofSmough, - SoulofPriscilla, - SoulofGwyndolin, - GuardianSoul, - SoulofArtorias, - SoulofManus, + //Consumables + EyeofDeath, + CrackedRedEyeOrb, + EstusFlask, + ElizabethsMushroom, + DivineBlessing, + GreenBlossom, + BloodredMossClump, + PurpleMossClump, + BloomingPurpleMossClump, + PurgingStone, + EggVermifuge, + RepairPowder, + ThrowingKnife, + PoisonThrowingKnife, + Firebomb, + DungPie, + AlluringSkull, + LloydsTalisman, + BlackFirebomb, + CharcoalPineResin, + GoldPineResin, + TransientCurse, + RottenPineResin, + HomewardBone, + PrismStone, + Indictment, + SouvenirofReprisal, + SunlightMedal, + Pendant, + Rubbish, + CopperCoin, + SilverCoin, + GoldCoin, + FireKeeperSoulAnastaciaofAstora, + FireKeeperSoulDarkmoonKnightess, + FireKeeperSoulDaughterofChaos, + FireKeeperSoulNewLondo, + FireKeeperSoulBlighttown, + FireKeeperSoulDukesArchives, + FireKeeperSoulUndeadParish, + SoulofaLostUndead, + LargeSoulofaLostUndead, + SoulofaNamelessSoldier, + LargeSoulofaNamelessSoldier, + SoulofaProudKnight, + LargeSoulofaProudKnight, + SoulofaBraveWarrior, + LargeSoulofaBraveWarrior, + SoulofaHero, + SoulofaGreatHero, + Humanity, + TwinHumanities, + SoulofQuelaag, + SoulofSif, + SoulofGwynLordofCinder, + CoreofanIronGolem, + SoulofOrnstein, + SouloftheMoonlightButterfly, + SoulofSmough, + SoulofPriscilla, + SoulofGwyndolin, + GuardianSoul, + SoulofArtorias, + SoulofManus, - //Key - PeculiarDoll, - BasementKey, - CrestofArtorias, - CageKey, - ArchiveTowerCellKey, - ArchiveTowerGiantDoorKey, - ArchiveTowerGiantCellKey, - BlighttownKey, - KeytoNewLondoRuins, - AnnexKey, - DungeonCellKey, - BigPilgrimsKey, - UndeadAsylumF2EastKey, - KeytotheSeal, - KeytoDepths, - UndeadAsylumF2WestKey, - MysteryKey, - SewerChamberKey, - WatchtowerBasementKey, - ArchivePrisonExtraKey, - ResidenceKey, - CrestKey, - MasterKey, - LordSoulNito, - LordSoulBedofChaos, - BequeathedLordSoulShardFourKings, - BequeathedLordSoulShardSeath, - Lordvessel, - BrokenPendant, - WeaponSmithbox, - ArmorSmithbox, - Repairbox, - RiteofKindling, - BottomlessBox, + //Key + PeculiarDoll, + BasementKey, + CrestofArtorias, + CageKey, + ArchiveTowerCellKey, + ArchiveTowerGiantDoorKey, + ArchiveTowerGiantCellKey, + BlighttownKey, + KeytoNewLondoRuins, + AnnexKey, + DungeonCellKey, + BigPilgrimsKey, + UndeadAsylumF2EastKey, + KeytotheSeal, + KeytoDepths, + UndeadAsylumF2WestKey, + MysteryKey, + SewerChamberKey, + WatchtowerBasementKey, + ArchivePrisonExtraKey, + ResidenceKey, + CrestKey, + MasterKey, + LordSoulNito, + LordSoulBedofChaos, + BequeathedLordSoulShardFourKings, + BequeathedLordSoulShardSeath, + Lordvessel, + BrokenPendant, + WeaponSmithbox, + ArmorSmithbox, + Repairbox, + RiteofKindling, + BottomlessBox, - //melee - Dagger, - ParryingDagger, - GhostBlade, - BanditsKnife, - PriscillasDagger, - Shortsword, - Longsword, - Broadsword, - BrokenStraightSword, - BalderSideSword, - CrystalStraightSword, - SunlightStraightSword, - BarbedStraightSword, - SilverKnightStraightSword, - AstorasStraightSword, - Darksword, - DrakeSword, - StraightSwordHilt, - BastardSword, - Claymore, - ManserpentGreatsword, - Flamberge, - CrystalGreatsword, - StoneGreatsword, - GreatswordofArtorias, - MoonlightGreatsword, - BlackKnightSword, - GreatswordofArtoriasCursed, - GreatLordGreatsword, - Zweihander, - Greatsword, - DemonGreatMachete, - DragonGreatsword, - BlackKnightGreatsword, - Scimitar, - Falchion, - Shotel, - JaggedGhostBlade, - PaintingGuardianSword, - QuelaagsFurysword, - Server, - Murakumo, - GravelordSword, - Uchigatana, - WashingPole, - Iaito, - ChaosBlade, - MailBreaker, - Rapier, - Estoc, - VelkasRapier, - RicardsRapier, - HandAxe, - BattleAxe, - CrescentAxe, - ButcherKnife, - GolemAxe, - GargoyleTailAxe, - Greataxe, - DemonsGreataxe, - DragonKingGreataxe, - BlackKnightGreataxe, - Club, - Mace, - MorningStar, - Warpick, - Pickaxe, - ReinforcedClub, - BlacksmithHammer, - BlacksmithGiantHammer, - HammerofVamos, - GreatClub, - Grant, - DemonsGreatHammer, - DragonTooth, - LargeClub, - SmoughsHammer, - Caestus, - Claw, - DragonBoneFist, - DarkHand, - Spear, - WingedSpear, - Partizan, - DemonsSpear, - ChannelersTrident, - SilverKnightSpear, - Pike, - DragonslayerSpear, - MoonlightButterflyHorn, - Halberd, - GiantsHalberd, - TitaniteCatchPole, - GargoylesHalberd, - BlackKnightHalberd, - Lucerne, - Scythe, - GreatScythe, - LifehuntScythe, - Whip, - NotchedWhip, - GoldTracer, - DarkSilverTracer, - AbyssGreatsword, - StoneGreataxe, - FourprongedPlow, - GuardianTail, - ObsidianGreatsword, + //melee + Dagger, + ParryingDagger, + GhostBlade, + BanditsKnife, + PriscillasDagger, + Shortsword, + Longsword, + Broadsword, + BrokenStraightSword, + BalderSideSword, + CrystalStraightSword, + SunlightStraightSword, + BarbedStraightSword, + SilverKnightStraightSword, + AstorasStraightSword, + Darksword, + DrakeSword, + StraightSwordHilt, + BastardSword, + Claymore, + ManserpentGreatsword, + Flamberge, + CrystalGreatsword, + StoneGreatsword, + GreatswordofArtorias, + MoonlightGreatsword, + BlackKnightSword, + GreatswordofArtoriasCursed, + GreatLordGreatsword, + Zweihander, + Greatsword, + DemonGreatMachete, + DragonGreatsword, + BlackKnightGreatsword, + Scimitar, + Falchion, + Shotel, + JaggedGhostBlade, + PaintingGuardianSword, + QuelaagsFurysword, + Server, + Murakumo, + GravelordSword, + Uchigatana, + WashingPole, + Iaito, + ChaosBlade, + MailBreaker, + Rapier, + Estoc, + VelkasRapier, + RicardsRapier, + HandAxe, + BattleAxe, + CrescentAxe, + ButcherKnife, + GolemAxe, + GargoyleTailAxe, + Greataxe, + DemonsGreataxe, + DragonKingGreataxe, + BlackKnightGreataxe, + Club, + Mace, + MorningStar, + Warpick, + Pickaxe, + ReinforcedClub, + BlacksmithHammer, + BlacksmithGiantHammer, + HammerofVamos, + GreatClub, + Grant, + DemonsGreatHammer, + DragonTooth, + LargeClub, + SmoughsHammer, + Caestus, + Claw, + DragonBoneFist, + DarkHand, + Spear, + WingedSpear, + Partizan, + DemonsSpear, + ChannelersTrident, + SilverKnightSpear, + Pike, + DragonslayerSpear, + MoonlightButterflyHorn, + Halberd, + GiantsHalberd, + TitaniteCatchPole, + GargoylesHalberd, + BlackKnightHalberd, + Lucerne, + Scythe, + GreatScythe, + LifehuntScythe, + Whip, + NotchedWhip, + GoldTracer, + DarkSilverTracer, + AbyssGreatsword, + StoneGreataxe, + FourprongedPlow, + GuardianTail, + ObsidianGreatsword, - //ranged - ShortBow, - Longbow, - BlackBowofPharis, - DragonslayerGreatbow, - CompositeBow, - DarkmoonBow, - LightCrossbow, - HeavyCrossbow, - Avelyn, - SniperCrossbow, - GoughsGreatbow, + //ranged + ShortBow, + Longbow, + BlackBowofPharis, + DragonslayerGreatbow, + CompositeBow, + DarkmoonBow, + LightCrossbow, + HeavyCrossbow, + Avelyn, + SniperCrossbow, + GoughsGreatbow, - //ammo - StandardArrow, - LargeArrow, - FeatherArrow, - FireArrow, - PoisonArrow, - MoonlightArrow, - WoodenArrow, - DragonslayerArrow, - GoughsGreatArrow, - StandardBolt, - HeavyBolt, - SniperBolt, - WoodBolt, - LightningBolt, + //ammo + StandardArrow, + LargeArrow, + FeatherArrow, + FireArrow, + PoisonArrow, + MoonlightArrow, + WoodenArrow, + DragonslayerArrow, + GoughsGreatArrow, + StandardBolt, + HeavyBolt, + SniperBolt, + WoodBolt, + LightningBolt, - //rings - HavelsRing, - RedTearstoneRing, - DarkmoonBladeCovenantRing, - CatCovenantRing, - CloranthyRing, - FlameStoneplateRing, - ThunderStoneplateRing, - SpellStoneplateRing, - SpeckledStoneplateRing, - BloodbiteRing, - PoisonbiteRing, - TinyBeingsRing, - CursebiteRing, - WhiteSeanceRing, - BellowingDragoncrestRing, - DuskCrownRing, - HornetRing, - HawkRing, - RingofSteelProtection, - CovetousGoldSerpentRing, - CovetousSilverSerpentRing, - SlumberingDragoncrestRing, - RingofFog, - RustedIronRing, - RingofSacrifice, - RareRingofSacrifice, - DarkWoodGrainRing, - RingoftheSunPrincess, - OldWitchsRing, - CovenantofArtorias, - OrangeCharredRing, - LingeringDragoncrestRing, - RingoftheEvilEye, - RingofFavorandProtection, - LeoRing, - EastWoodGrainRing, - WolfRing, - BlueTearstoneRing, - RingoftheSunsFirstborn, - DarkmoonSeanceRing, - CalamityRing, + //rings + HavelsRing, + RedTearstoneRing, + DarkmoonBladeCovenantRing, + CatCovenantRing, + CloranthyRing, + FlameStoneplateRing, + ThunderStoneplateRing, + SpellStoneplateRing, + SpeckledStoneplateRing, + BloodbiteRing, + PoisonbiteRing, + TinyBeingsRing, + CursebiteRing, + WhiteSeanceRing, + BellowingDragoncrestRing, + DuskCrownRing, + HornetRing, + HawkRing, + RingofSteelProtection, + CovetousGoldSerpentRing, + CovetousSilverSerpentRing, + SlumberingDragoncrestRing, + RingofFog, + RustedIronRing, + RingofSacrifice, + RareRingofSacrifice, + DarkWoodGrainRing, + RingoftheSunPrincess, + OldWitchsRing, + CovenantofArtorias, + OrangeCharredRing, + LingeringDragoncrestRing, + RingoftheEvilEye, + RingofFavorandProtection, + LeoRing, + EastWoodGrainRing, + WolfRing, + BlueTearstoneRing, + RingoftheSunsFirstborn, + DarkmoonSeanceRing, + CalamityRing, - //Shields - SkullLantern, - EastWestShield, - WoodenShield, - LargeLeatherShield, - SmallLeatherShield, - TargetShield, - Buckler, - CrackedRoundShield, - LeatherShield, - PlankShield, - CaduceusRoundShield, - CrystalRingShield, - HeaterShield, - KnightShield, - TowerKiteShield, - GrassCrestShield, - HollowSoldierShield, - BalderShield, - CrestShield, - DragonCrestShield, - WarriorsRoundShield, - IronRoundShield, - SpiderShield, - SpikedShield, - CrystalShield, - SunlightShield, - SilverKnightShield, - BlackKnightShield, - PierceShield, - RedandWhiteRoundShield, - CaduceusKiteShield, - GargoylesShield, - EagleShield, - TowerShield, - GiantShield, - StoneGreatshield, - HavelsGreatshield, - BonewheelShield, - GreatshieldofArtorias, - EffigyShield, - Sanctus, - Bloodshield, - BlackIronGreatshield, - CleansingGreatshield, + //Shields + SkullLantern, + EastWestShield, + WoodenShield, + LargeLeatherShield, + SmallLeatherShield, + TargetShield, + Buckler, + CrackedRoundShield, + LeatherShield, + PlankShield, + CaduceusRoundShield, + CrystalRingShield, + HeaterShield, + KnightShield, + TowerKiteShield, + GrassCrestShield, + HollowSoldierShield, + BalderShield, + CrestShield, + DragonCrestShield, + WarriorsRoundShield, + IronRoundShield, + SpiderShield, + SpikedShield, + CrystalShield, + SunlightShield, + SilverKnightShield, + BlackKnightShield, + PierceShield, + RedandWhiteRoundShield, + CaduceusKiteShield, + GargoylesShield, + EagleShield, + TowerShield, + GiantShield, + StoneGreatshield, + HavelsGreatshield, + BonewheelShield, + GreatshieldofArtorias, + EffigyShield, + Sanctus, + Bloodshield, + BlackIronGreatshield, + CleansingGreatshield, - //spells - SorcerySoulArrow, - SorceryGreatSoulArrow, - SorceryHeavySoulArrow, - SorceryGreatHeavySoulArrow, - SorceryHomingSoulmass, - SorceryHomingCrystalSoulmass, - SorcerySoulSpear, - SorceryCrystalSoulSpear, - SorceryMagicWeapon, - SorceryGreatMagicWeapon, - SorceryCrystalMagicWeapon, - SorceryMagicShield, - SorceryStrongMagicShield, - SorceryHiddenWeapon, - SorceryHiddenBody, - SorceryCastLight, - SorceryHush, - SorceryAuralDecoy, - SorceryRepair, - SorceryFallControl, - SorceryChameleon, - SorceryResistCurse, - SorceryRemedy, - SorceryWhiteDragonBreath, - SorceryDarkOrb, - SorceryDarkBead, - SorceryDarkFog, - SorceryPursuers, - PyromancyFireball, - PyromancyFireOrb, - PyromancyGreatFireball, - PyromancyFirestorm, - PyromancyFireTempest, - PyromancyFireSurge, - PyromancyFireWhip, - PyromancyCombustion, - PyromancyGreatCombustion, - PyromancyPoisonMist, - PyromancyToxicMist, - PyromancyAcidSurge, - PyromancyIronFlesh, - PyromancyFlashSweat, - PyromancyUndeadRapport, - PyromancyPowerWithin, - PyromancyGreatChaosFireball, - PyromancyChaosStorm, - PyromancyChaosFireWhip, - PyromancyBlackFlame, - MiracleHeal, - MiracleGreatHeal, - MiracleGreatHealExcerpt, - MiracleSoothingSunlight, - MiracleReplenishment, - MiracleBountifulSunlight, - MiracleGravelordSwordDance, - MiracleGravelordGreatswordDance, - MiracleHomeward, - MiracleForce, - MiracleWrathoftheGods, - MiracleEmitForce, - MiracleSeekGuidance, - MiracleLightningSpear, - MiracleGreatLightningSpear, - MiracleSunlightSpear, - MiracleMagicBarrier, - MiracleGreatMagicBarrier, - MiracleKarmicJustice, - MiracleTranquilWalkofPeace, - MiracleVowofSilence, - MiracleSunlightBlade, - MiracleDarkmoonBlade, + //spells + SorcerySoulArrow, + SorceryGreatSoulArrow, + SorceryHeavySoulArrow, + SorceryGreatHeavySoulArrow, + SorceryHomingSoulmass, + SorceryHomingCrystalSoulmass, + SorcerySoulSpear, + SorceryCrystalSoulSpear, + SorceryMagicWeapon, + SorceryGreatMagicWeapon, + SorceryCrystalMagicWeapon, + SorceryMagicShield, + SorceryStrongMagicShield, + SorceryHiddenWeapon, + SorceryHiddenBody, + SorceryCastLight, + SorceryHush, + SorceryAuralDecoy, + SorceryRepair, + SorceryFallControl, + SorceryChameleon, + SorceryResistCurse, + SorceryRemedy, + SorceryWhiteDragonBreath, + SorceryDarkOrb, + SorceryDarkBead, + SorceryDarkFog, + SorceryPursuers, + PyromancyFireball, + PyromancyFireOrb, + PyromancyGreatFireball, + PyromancyFirestorm, + PyromancyFireTempest, + PyromancyFireSurge, + PyromancyFireWhip, + PyromancyCombustion, + PyromancyGreatCombustion, + PyromancyPoisonMist, + PyromancyToxicMist, + PyromancyAcidSurge, + PyromancyIronFlesh, + PyromancyFlashSweat, + PyromancyUndeadRapport, + PyromancyPowerWithin, + PyromancyGreatChaosFireball, + PyromancyChaosStorm, + PyromancyChaosFireWhip, + PyromancyBlackFlame, + MiracleHeal, + MiracleGreatHeal, + MiracleGreatHealExcerpt, + MiracleSoothingSunlight, + MiracleReplenishment, + MiracleBountifulSunlight, + MiracleGravelordSwordDance, + MiracleGravelordGreatswordDance, + MiracleHomeward, + MiracleForce, + MiracleWrathoftheGods, + MiracleEmitForce, + MiracleSeekGuidance, + MiracleLightningSpear, + MiracleGreatLightningSpear, + MiracleSunlightSpear, + MiracleMagicBarrier, + MiracleGreatMagicBarrier, + MiracleKarmicJustice, + MiracleTranquilWalkofPeace, + MiracleVowofSilence, + MiracleSunlightBlade, + MiracleDarkmoonBlade, - //spells tools - SorcerersCatalyst, - BeatricesCatalyst, - TinBanishmentCatalyst, - LogansCatalyst, - TinDarkmoonCatalyst, - OolacileIvoryCatalyst, - TinCrystallizationCatalyst, - DemonsCatalyst, - IzalithCatalyst, - PyromancyFlame, - PyromancyFlameAscended, - Talisman, - CanvasTalisman, - ThorolundTalisman, - IvoryTalisman, - SunlightTalisman, - DarkmoonTalisman, - VelkasTalisman, - ManusCatalyst, - OolacileCatalyst, + //spells tools + SorcerersCatalyst, + BeatricesCatalyst, + TinBanishmentCatalyst, + LogansCatalyst, + TinDarkmoonCatalyst, + OolacileIvoryCatalyst, + TinCrystallizationCatalyst, + DemonsCatalyst, + IzalithCatalyst, + PyromancyFlame, + PyromancyFlameAscended, + Talisman, + CanvasTalisman, + ThorolundTalisman, + IvoryTalisman, + SunlightTalisman, + DarkmoonTalisman, + VelkasTalisman, + ManusCatalyst, + OolacileCatalyst, - //Upgrade materials - LargeEmber, - VeryLargeEmber, - CrystalEmber, - LargeMagicEmber, - EnchantedEmber, - DivineEmber, - LargeDivineEmber, - DarkEmber, - LargeFlameEmber, - ChaosFlameEmber, - TitaniteShard, - LargeTitaniteShard, - GreenTitaniteShard, - TitaniteChunk, - BlueTitaniteChunk, - WhiteTitaniteChunk, - RedTitaniteChunk, - TitaniteSlab, - BlueTitaniteSlab, - WhiteTitaniteSlab, - RedTitaniteSlab, - DragonScale, - DemonTitanite, - TwinklingTitanite, + //Upgrade materials + LargeEmber, + VeryLargeEmber, + CrystalEmber, + LargeMagicEmber, + EnchantedEmber, + DivineEmber, + LargeDivineEmber, + DarkEmber, + LargeFlameEmber, + ChaosFlameEmber, + TitaniteShard, + LargeTitaniteShard, + GreenTitaniteShard, + TitaniteChunk, + BlueTitaniteChunk, + WhiteTitaniteChunk, + RedTitaniteChunk, + TitaniteSlab, + BlueTitaniteSlab, + WhiteTitaniteSlab, + RedTitaniteSlab, + DragonScale, + DemonTitanite, + TwinklingTitanite, - //Usable items - WhiteSignSoapstone, - RedSignSoapstone, - RedEyeOrb, - BlackSeparationCrystal, - OrangeGuidanceSoapstone, - BookoftheGuilty, - ServantRoster, - BlueEyeOrb, - DragonEye, - BlackEyeOrb, - Darksign, - PurpleCowardsCrystal, - SilverPendant, - Binoculars, - DragonHeadStone, - DragonTorsoStone, - DriedFinger, - HelloCarving, - ThankyouCarving, - VerygoodCarving, - ImsorryCarving, - HelpmeCarving, - } + //Usable items + WhiteSignSoapstone, + RedSignSoapstone, + RedEyeOrb, + BlackSeparationCrystal, + OrangeGuidanceSoapstone, + BookoftheGuilty, + ServantRoster, + BlueEyeOrb, + DragonEye, + BlackEyeOrb, + Darksign, + PurpleCowardsCrystal, + SilverPendant, + Binoculars, + DragonHeadStone, + DragonTorsoStone, + DriedFinger, + HelloCarving, + ThankyouCarving, + VerygoodCarving, + ImsorryCarving, + HelpmeCarving, } diff --git a/src/SoulMemory/DarkSouls1/ItemReader.cs b/src/SoulMemory/DarkSouls1/ItemReader.cs index fd4d197..765f72e 100644 --- a/src/SoulMemory/DarkSouls1/ItemReader.cs +++ b/src/SoulMemory/DarkSouls1/ItemReader.cs @@ -18,117 +18,116 @@ using System.Collections.Generic; using System.Linq; -namespace SoulMemory.DarkSouls1 +namespace SoulMemory.DarkSouls1; + +internal static class ItemReader { - internal static class ItemReader + internal static List GetCurrentInventoryItems(byte[] data, int listCount, int itemCount, int keyCount) { - internal static List GetCurrentInventoryItems(byte[] data, int listCount, int itemCount, int keyCount) + var items = new List(); + + for (var i = 0; i < listCount; i++) { - var items = new List(); + //size of NS::FRPG_EquipInventoryDataItem is 28 or 0x1c + var address = i * 0x1c; + var cat = data[address + 3]; + var item = BitConverter.ToInt32(data, address + 4); + var quantity = BitConverter.ToInt32(data, address + 8); - for (var i = 0; i < listCount; i++) + if (item != -1) { - //size of NS::FRPG_EquipInventoryDataItem is 28 or 0x1c - var address = i * 0x1c; - var cat = data[address + 3]; - var item = BitConverter.ToInt32(data, address + 4); - var quantity = BitConverter.ToInt32(data, address + 8); - - if (item != -1) + var categories = new List(); + var hex = cat.ToString("X"); + var hexCat = int.Parse(hex[0].ToString()); + + switch (hexCat) { - var categories = new List(); - var hex = cat.ToString("X"); - var hexCat = int.Parse(hex[0].ToString()); - - switch (hexCat) - { - case 0: - categories.Add(ItemCategory.MeleeWeapons); - categories.Add(ItemCategory.RangedWeapons); - categories.Add(ItemCategory.Ammo); - categories.Add(ItemCategory.Shields); - categories.Add(ItemCategory.SpellTools); - break; - - case 1: - categories.Add(ItemCategory.Armor); - break; - - case 2: - categories.Add(ItemCategory.Rings); - break; - - case 4: - categories.Add(ItemCategory.Consumables); - categories.Add(ItemCategory.Key); - categories.Add(ItemCategory.Spells); - categories.Add(ItemCategory.UpgradeMaterials); - categories.Add(ItemCategory.UsableItems); - break; - } - - //Decode item - int id = 0; - ItemInfusion infusion = ItemInfusion.Normal; - int level = 0; - - //if 4 or less digits -> non-upgradable item. - if (categories.Contains(ItemCategory.Consumables) && item >= 200 && item <= 215 && !items.Any(j => j.ItemType == ItemType.EstusFlask)) - { - var estus = Item.AllItems.First(j => j.ItemType == ItemType.EstusFlask); - var instance = new Item(estus.Name, estus.Id, estus.ItemType, estus.Category, estus.StackLimit, estus.Upgrade); - - //Item ID is both the item + reinforcement. Level field does not change in the games memory for the estus flask. - //Goes like this: - //200 == empty level 0 - //201 == full level 0 - //202 == empty level 1 - //203 == full level 1 - //203 == empty level 2 - //204 == full level 2 - //etc - - //If the flask is not empty, the amount of charges is stored in the quantity field. - //If the ID - 200 is an even number, the flask is empty. For this case we can even ignore the 200 and just check the ID - - instance.Quantity = item % 2 == 0 ? 0 : quantity; - - //Calculating the upgrade level - instance.UpgradeLevel = (item - 200) / 2; - - instance.Infusion = infusion; - items.Add(instance); - continue; - } - else if (item < 10000) - { - id = item; - } - else - { - //Separate digits - int one = item % 10; - int ten = (item / 10) % 10; - int hundred = (item / 100) % 10; - - id = item - (one + (10 * ten) + (100 * hundred)); - infusion = (ItemInfusion)hundred; - level = one + (10 * ten); - } - - var lookupItem = Item.AllItems.FirstOrDefault(j => categories.Contains(j.Category) && j.Id == id); - if (lookupItem != null) - { - var instance = new Item(lookupItem.Name, lookupItem.Id, lookupItem.ItemType, lookupItem.Category, lookupItem.StackLimit, lookupItem.Upgrade); - instance.Quantity = quantity; - instance.Infusion = infusion; - instance.UpgradeLevel = level; - items.Add(instance); - } + case 0: + categories.Add(ItemCategory.MeleeWeapons); + categories.Add(ItemCategory.RangedWeapons); + categories.Add(ItemCategory.Ammo); + categories.Add(ItemCategory.Shields); + categories.Add(ItemCategory.SpellTools); + break; + + case 1: + categories.Add(ItemCategory.Armor); + break; + + case 2: + categories.Add(ItemCategory.Rings); + break; + + case 4: + categories.Add(ItemCategory.Consumables); + categories.Add(ItemCategory.Key); + categories.Add(ItemCategory.Spells); + categories.Add(ItemCategory.UpgradeMaterials); + categories.Add(ItemCategory.UsableItems); + break; } - } - return items; + //Decode item + int id = 0; + ItemInfusion infusion = ItemInfusion.Normal; + int level = 0; + + //if 4 or less digits -> non-upgradable item. + if (categories.Contains(ItemCategory.Consumables) && item >= 200 && item <= 215 && !items.Any(j => j.ItemType == ItemType.EstusFlask)) + { + var estus = Item.AllItems.First(j => j.ItemType == ItemType.EstusFlask); + var instance = new Item(estus.Name, estus.Id, estus.ItemType, estus.Category, estus.StackLimit, estus.Upgrade); + + //Item ID is both the item + reinforcement. Level field does not change in the games memory for the estus flask. + //Goes like this: + //200 == empty level 0 + //201 == full level 0 + //202 == empty level 1 + //203 == full level 1 + //203 == empty level 2 + //204 == full level 2 + //etc + + //If the flask is not empty, the amount of charges is stored in the quantity field. + //If the ID - 200 is an even number, the flask is empty. For this case we can even ignore the 200 and just check the ID + + instance.Quantity = item % 2 == 0 ? 0 : quantity; + + //Calculating the upgrade level + instance.UpgradeLevel = (item - 200) / 2; + + instance.Infusion = infusion; + items.Add(instance); + continue; + } + else if (item < 10000) + { + id = item; + } + else + { + //Separate digits + int one = item % 10; + int ten = (item / 10) % 10; + int hundred = (item / 100) % 10; + + id = item - (one + (10 * ten) + (100 * hundred)); + infusion = (ItemInfusion)hundred; + level = one + (10 * ten); + } + + var lookupItem = Item.AllItems.FirstOrDefault(j => categories.Contains(j.Category) && j.Id == id); + if (lookupItem != null) + { + var instance = new Item(lookupItem.Name, lookupItem.Id, lookupItem.ItemType, lookupItem.Category, lookupItem.StackLimit, lookupItem.Upgrade); + instance.Quantity = quantity; + instance.Infusion = infusion; + instance.UpgradeLevel = level; + items.Add(instance); + } + } } + + return items; } } diff --git a/src/SoulMemory/DarkSouls1/KnownFlag.cs b/src/SoulMemory/DarkSouls1/KnownFlag.cs index 44e299c..6e966f2 100644 --- a/src/SoulMemory/DarkSouls1/KnownFlag.cs +++ b/src/SoulMemory/DarkSouls1/KnownFlag.cs @@ -16,165 +16,164 @@ using System.Xml.Serialization; -namespace SoulMemory.DarkSouls1 +namespace SoulMemory.DarkSouls1; + +[XmlType(Namespace = "SoulMemory.DarkSouls1")] +public enum KnownFlag : uint { - [XmlType(Namespace = "SoulMemory.DarkSouls1")] - public enum KnownFlag : uint - { - [Annotation(Name = "Bell of Awakening, Undead Parish 11010700", Description = "Bells of Awakening")] - BellOfAwakeningUndeadParish = 11010700, + [Annotation(Name = "Bell of Awakening, Undead Parish 11010700", Description = "Bells of Awakening")] + BellOfAwakeningUndeadParish = 11010700, - [Annotation(Name = "Bell of Awakening, Blighttown 11400200", Description = "Bells of Awakening")] - BellOfAwakeningBlighttown = 11400200, + [Annotation(Name = "Bell of Awakening, Blighttown 11400200", Description = "Bells of Awakening")] + BellOfAwakeningBlighttown = 11400200, - [Annotation(Name = "Lordvessel, Dark Anor Londo 11510400", Description = "Lordvessel")] - LordvesselDarkAnorLondo = 11510400, + [Annotation(Name = "Lordvessel, Dark Anor Londo 11510400", Description = "Lordvessel")] + LordvesselDarkAnorLondo = 11510400, - [Annotation(Name = "Lordvessel, Receive Lordvessel With Gwynevere Still Alive 11510592", Description = "Lordvessel")] - LordvesselReceiveLordvesselWithGwynevereStillAlive = 11510592, + [Annotation(Name = "Lordvessel, Receive Lordvessel With Gwynevere Still Alive 11510592", Description = "Lordvessel")] + LordvesselReceiveLordvesselWithGwynevereStillAlive = 11510592, - [Annotation(Name = "Lordvessel, Receive Lordvessel (Gwynevere Alive or Dead) 50000090", Description = "Lordvessel")] - LordvesselReceiveLordvesselGwynevereAliveOrDead = 50000090, + [Annotation(Name = "Lordvessel, Receive Lordvessel (Gwynevere Alive or Dead) 50000090", Description = "Lordvessel")] + LordvesselReceiveLordvesselGwynevereAliveOrDead = 50000090, - [Annotation(Name = "Anor Londo, Door to Gwynevere 11510110", Description = "Doors")] - AnorLondoDoorToGwynevere = 11510110, + [Annotation(Name = "Anor Londo, Door to Gwynevere 11510110", Description = "Doors")] + AnorLondoDoorToGwynevere = 11510110, - [Annotation(Name = "Darkroot Garden, Crest of Artorias Door 61200500", Description = "Doors")] - DarkrootGardenCrestOfArtoriasDoor = 61200500, + [Annotation(Name = "Darkroot Garden, Crest of Artorias Door 61200500", Description = "Doors")] + DarkrootGardenCrestOfArtoriasDoor = 61200500, - [Annotation(Name = "Darkroot Garden, Sif Door 61200501", Description = "Doors")] - DarkrootGardenSifDoor = 61200501, + [Annotation(Name = "Darkroot Garden, Sif Door 61200501", Description = "Doors")] + DarkrootGardenSifDoor = 61200501, - [Annotation(Name = "Demon Ruins, Shortcut Door to Lost Izalith 11410340", Description = "Doors")] - DemonRuinsShortcutDoorToLostIzalith = 11410340, + [Annotation(Name = "Demon Ruins, Shortcut Door to Lost Izalith 11410340", Description = "Doors")] + DemonRuinsShortcutDoorToLostIzalith = 11410340, - [Annotation(Name = "Northern Undead Asylum, Cell Door 11810103", Description = "Doors")] - NorthernUndeadAsylumCellDoor = 11810103, + [Annotation(Name = "Northern Undead Asylum, Cell Door 11810103", Description = "Doors")] + NorthernUndeadAsylumCellDoor = 11810103, - [Annotation(Name = "Northern Undead Asylum, Asylum Demon Door 11810112", Description = "Doors")] - NorthernUndeadAsylumAsylumDemonDoor = 11810112, + [Annotation(Name = "Northern Undead Asylum, Asylum Demon Door 11810112", Description = "Doors")] + NorthernUndeadAsylumAsylumDemonDoor = 11810112, - [Annotation(Name = "Northern Undead Asylum, Big Pilgrim Door 11810110", Description = "Doors")] - NorthernUndeadAsylumBigPilgrimDoor = 11810110, + [Annotation(Name = "Northern Undead Asylum, Big Pilgrim Door 11810110", Description = "Doors")] + NorthernUndeadAsylumBigPilgrimDoor = 11810110, - [Annotation(Name = "Anor Londo, Elevator Active 11510220", Description = "Elevators")] - AnorLondoElevatorActive = 11510220, + [Annotation(Name = "Anor Londo, Elevator Active 11510220", Description = "Elevators")] + AnorLondoElevatorActive = 11510220, - [Annotation(Name = "Catacombs, Entrance Lever 11300900", Description = "Levers")] - CatacombsEntranceLever = 11300900, + [Annotation(Name = "Catacombs, Entrance Lever 11300900", Description = "Levers")] + CatacombsEntranceLever = 11300900, - [Annotation(Name = "Duke's Archives, First Lever 11705091", Description = "Levers")] - DukesArchivesFirstLever = 11705091, + [Annotation(Name = "Duke's Archives, First Lever 11705091", Description = "Levers")] + DukesArchivesFirstLever = 11705091, - [Annotation(Name = "Duke's Archives, Second Lever 11705090", Description = "Levers")] - DukesArchivesSecondLever = 11705090, + [Annotation(Name = "Duke's Archives, Second Lever 11705090", Description = "Levers")] + DukesArchivesSecondLever = 11705090, - [Annotation(Name = "New Londo Ruins, Seal Opened 11600200", Description = "Levers")] - NewLondoRuinsSealOpened = 11600200, + [Annotation(Name = "New Londo Ruins, Seal Opened 11600200", Description = "Levers")] + NewLondoRuinsSealOpened = 11600200, - [Annotation(Name = "NPC, Andre, Talk To For First Time 71010000", Description = "NPC")] - NPCAndreTalkToForFirstTime = 71010000, + [Annotation(Name = "NPC, Andre, Talk To For First Time 71010000", Description = "NPC")] + NPCAndreTalkToForFirstTime = 71010000, - [Annotation(Name = "NPC, Blacksmith Giant, Talk To For First Time 71510000", Description = "NPC")] - NPCBlacksmithGiantTalkToForFirstTime = 71510000, + [Annotation(Name = "NPC, Blacksmith Giant, Talk To For First Time 71510000", Description = "NPC")] + NPCBlacksmithGiantTalkToForFirstTime = 71510000, - [Annotation(Name = "NPC, Crestfallen Merchant, Talk To For First Time 71500001", Description = "NPC")] - NPCCrestfallenMerchantTalkToForFirstTime = 71500001, + [Annotation(Name = "NPC, Crestfallen Merchant, Talk To For First Time 71500001", Description = "NPC")] + NPCCrestfallenMerchantTalkToForFirstTime = 71500001, - [Annotation(Name = "NPC, Dusk, Rescued From Golem 1121", Description = "NPC")] - NPCDuskRescuedFromGolem = 1121, + [Annotation(Name = "NPC, Dusk, Rescued From Golem 1121", Description = "NPC")] + NPCDuskRescuedFromGolem = 1121, - [Annotation(Name = "NPC, Dusk, Available for Summon (Said Yes After Rescue) 1122", Description = "NPC")] - NPCDuskAvailableForSummonSaidYesAfterRescue = 1122, + [Annotation(Name = "NPC, Dusk, Available for Summon (Said Yes After Rescue) 1122", Description = "NPC")] + NPCDuskAvailableForSummonSaidYesAfterRescue = 1122, - [Annotation(Name = "NPC, Dusk, Dead 1125", Description = "NPC")] - NPCDuskDead = 1125, + [Annotation(Name = "NPC, Dusk, Dead 1125", Description = "NPC")] + NPCDuskDead = 1125, - [Annotation(Name = "NPC, Lautrec, Dead 1575", Description = "NPC")] - NPCLautrecDead = 1575, + [Annotation(Name = "NPC, Lautrec, Dead 1575", Description = "NPC")] + NPCLautrecDead = 1575, - [Annotation(Name = "NPC, Oswald, Dead 1702", Description = "NPC")] - NPCOswaldDead = 1702, + [Annotation(Name = "NPC, Oswald, Dead 1702", Description = "NPC")] + NPCOswaldDead = 1702, - [Annotation(Name = "NPC, Siegmeyer, Dead 1513", Description = "NPC")] - NPCSiegmeyerDead = 1513, + [Annotation(Name = "NPC, Siegmeyer, Dead 1513", Description = "NPC")] + NPCSiegmeyerDead = 1513, - [Annotation(Name = "NPC, Shiva Bodyguard, Dead 1764", Description = "NPC")] - NPCShivaBodyguardDead = 1764, + [Annotation(Name = "NPC, Shiva Bodyguard, Dead 1764", Description = "NPC")] + NPCShivaBodyguardDead = 1764, - [Annotation(Name = "Covenant Joined, Way of White 851", Description = "Join Covenants")] - CovenantJoinedWayOfWhite = 851, + [Annotation(Name = "Covenant Joined, Way of White 851", Description = "Join Covenants")] + CovenantJoinedWayOfWhite = 851, - [Annotation(Name = "Covenant Joined, Princess Guard 852", Description = "Join Covenants")] - CovenantJoinedPrincessGuard = 852, + [Annotation(Name = "Covenant Joined, Princess Guard 852", Description = "Join Covenants")] + CovenantJoinedPrincessGuard = 852, - [Annotation(Name = "Covenant Joined, Warrior of Sunlight 853", Description = "Join Covenants")] - CovenantJoinedWarriorOfSunlight = 853, + [Annotation(Name = "Covenant Joined, Warrior of Sunlight 853", Description = "Join Covenants")] + CovenantJoinedWarriorOfSunlight = 853, - [Annotation(Name = "Covenant Joined, Darkwraith 854", Description = "Join Covenants")] - CovenantJoinedDarkwraith = 854, + [Annotation(Name = "Covenant Joined, Darkwraith 854", Description = "Join Covenants")] + CovenantJoinedDarkwraith = 854, - [Annotation(Name = "Covenant Joined, Path of the Dragon 855", Description = "Join Covenants")] - CovenantJoinedPathOfTheDragon = 855, + [Annotation(Name = "Covenant Joined, Path of the Dragon 855", Description = "Join Covenants")] + CovenantJoinedPathOfTheDragon = 855, - [Annotation(Name = "Covenant Joined, Gravelord Servant 856", Description = "Join Covenants")] - CovenantJoinedGravelordServant = 856, + [Annotation(Name = "Covenant Joined, Gravelord Servant 856", Description = "Join Covenants")] + CovenantJoinedGravelordServant = 856, - [Annotation(Name = "Covenant Joined, Forest Hunter 857", Description = "Join Covenants")] - CovenantJoinedForestHunter = 857, + [Annotation(Name = "Covenant Joined, Forest Hunter 857", Description = "Join Covenants")] + CovenantJoinedForestHunter = 857, - [Annotation(Name = "Covenant Joined, Darkmoon Blade 858", Description = "Join Covenants")] - CovenantJoinedDarkmoonBlade = 858, + [Annotation(Name = "Covenant Joined, Darkmoon Blade 858", Description = "Join Covenants")] + CovenantJoinedDarkmoonBlade = 858, - [Annotation(Name = "Covenant Joined, Chaos Servant 859", Description = "Join Covenants")] - CovenantJoinedChaosServant = 859, + [Annotation(Name = "Covenant Joined, Chaos Servant 859", Description = "Join Covenants")] + CovenantJoinedChaosServant = 859, - [Annotation(Name = "Anor Londo, Fog Gate Rafters 11510090", Description = "Non-Boss Fog Gates")] - AnorLondoFogGateRafters = 11510090, + [Annotation(Name = "Anor Londo, Fog Gate Rafters 11510090", Description = "Non-Boss Fog Gates")] + AnorLondoFogGateRafters = 11510090, - [Annotation(Name = "Anor Londo, Fog Gate Archers 11510091", Description = "Non-Boss Fog Gates")] - AnorLondoFogGateArchers = 11510091, + [Annotation(Name = "Anor Londo, Fog Gate Archers 11510091", Description = "Non-Boss Fog Gates")] + AnorLondoFogGateArchers = 11510091, - [Annotation(Name = "Duke's Archives, Fog Gate 11700083", Description = "Non-Boss Fog Gates")] - DukesArchivesFogGate = 11700083, + [Annotation(Name = "Duke's Archives, Fog Gate 11700083", Description = "Non-Boss Fog Gates")] + DukesArchivesFogGate = 11700083, - [Annotation(Name = "Northern Undead Asylum, Fog Gate 11810090", Description = "Non-Boss Fog Gates")] - NorthernUndeadAsylumFogGate = 11810090, + [Annotation(Name = "Northern Undead Asylum, Fog Gate 11810090", Description = "Non-Boss Fog Gates")] + NorthernUndeadAsylumFogGate = 11810090, - [Annotation(Name = "Sen's Fortress, Fog Gate 1 11500090", Description = "Non-Boss Fog Gates")] - SensFortressFogGate1 = 11500090, + [Annotation(Name = "Sen's Fortress, Fog Gate 1 11500090", Description = "Non-Boss Fog Gates")] + SensFortressFogGate1 = 11500090, - [Annotation(Name = "Sen's Fortress, Fog Gate 2 11500091", Description = "Non-Boss Fog Gates")] - SensFortressFogGate2 = 11500091, + [Annotation(Name = "Sen's Fortress, Fog Gate 2 11500091", Description = "Non-Boss Fog Gates")] + SensFortressFogGate2 = 11500091, - [Annotation(Name = "Cutscene Skipped, Ornstein and Smough 11515394", Description = "Boss Fight")] - CutsceneSkippedOrnsteinAndSmough = 11515394, + [Annotation(Name = "Cutscene Skipped, Ornstein and Smough 11515394", Description = "Boss Fight")] + CutsceneSkippedOrnsteinAndSmough = 11515394, - [Annotation(Name = "Cutscene Skipped, Centipede Demon 11415382", Description = "Boss Fight")] - CutsceneSkippedCentipedeDemon = 11415382, + [Annotation(Name = "Cutscene Skipped, Centipede Demon 11415382", Description = "Boss Fight")] + CutsceneSkippedCentipedeDemon = 11415382, - [Annotation(Name = "Cutscene Skipped, Chaos Witch Quelaag 11405394", Description = "Boss Fight")] - CutsceneSkippedChaosWitchQuelaag = 11405394, + [Annotation(Name = "Cutscene Skipped, Chaos Witch Quelaag 11405394", Description = "Boss Fight")] + CutsceneSkippedChaosWitchQuelaag = 11405394, - [Annotation(Name = "Cutscene Skipped, Seath 11705394", Description = "Boss Fight")] - CutsceneSkippedSeath = 11705394, + [Annotation(Name = "Cutscene Skipped, Seath 11705394", Description = "Boss Fight")] + CutsceneSkippedSeath = 11705394, - [Annotation(Name = "Boss Arena Entered, Bed of Chaos 11415390", Description = "Boss Fight")] - BossArenaEnteredBedOfChaos = 11415390, + [Annotation(Name = "Boss Arena Entered, Bed of Chaos 11415390", Description = "Boss Fight")] + BossArenaEnteredBedOfChaos = 11415390, - [Annotation(Name = "Boss Arena Entered, Gravelord Nito 11315390", Description = "Boss Fight")] - BossArenaEnteredGravelordNito = 11315390, + [Annotation(Name = "Boss Arena Entered, Gravelord Nito 11315390", Description = "Boss Fight")] + BossArenaEnteredGravelordNito = 11315390, - [Annotation(Name = "Boss Arena Entered, Gwyn 11805394", Description = "Boss Fight")] - BossArenaEnteredGwyn = 11805394, + [Annotation(Name = "Boss Arena Entered, Gwyn 11805394", Description = "Boss Fight")] + BossArenaEnteredGwyn = 11805394, - [Annotation(Name = "Boss Arena Entered, Iron Golem 11505394", Description = "Boss Fight")] - BossArenaEnteredIronGolem = 11505394, + [Annotation(Name = "Boss Arena Entered, Iron Golem 11505394", Description = "Boss Fight")] + BossArenaEnteredIronGolem = 11505394, - [Annotation(Name = "Cutscene Skipped, Warp to Anor Londo 11500210", Description = "Other")] - CutsceneSkippedWarpToAnorLondo = 11500210, + [Annotation(Name = "Cutscene Skipped, Warp to Anor Londo 11500210", Description = "Other")] + CutsceneSkippedWarpToAnorLondo = 11500210, - [Annotation(Name = "Goughless Kalameeth Death Animation 11210063", Description = "Other")] - GoughlessKalameethDeathAnimation = 11210063, - } + [Annotation(Name = "Goughless Kalameeth Death Animation 11210063", Description = "Other")] + GoughlessKalameethDeathAnimation = 11210063, } diff --git a/src/SoulMemory/DarkSouls1/Parameters/AiStandardInfo.cs b/src/SoulMemory/DarkSouls1/Parameters/AiStandardInfo.cs index 6c0c7c3..4ec1761 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/AiStandardInfo.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/AiStandardInfo.cs @@ -18,332 +18,331 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters +namespace SoulMemory.DarkSouls1.Parameters; + +[ExcludeFromCodeCoverage] +public class AiStandardInfo : BaseParam { - [ExcludeFromCodeCoverage] - public class AiStandardInfo : BaseParam - { - public AiStandardInfo(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - - [ParamField(0x0, ParamType.U16)] - public ushort RadarRange - { - get => _RadarRange; - set => WriteParamField(ref _RadarRange, value); - } - private ushort _RadarRange; - - [ParamField(0x2, ParamType.U8)] - public byte RadarAngleX - { - get => _RadarAngleX; - set => WriteParamField(ref _RadarAngleX, value); - } - private byte _RadarAngleX; - - [ParamField(0x3, ParamType.U8)] - public byte RadarAngleY - { - get => _RadarAngleY; - set => WriteParamField(ref _RadarAngleY, value); - } - private byte _RadarAngleY; - - [ParamField(0x4, ParamType.U16)] - public ushort TerritorySize - { - get => _TerritorySize; - set => WriteParamField(ref _TerritorySize, value); - } - private ushort _TerritorySize; - - [ParamField(0x6, ParamType.U8)] - public byte ThreatBeforeAttackRate - { - get => _ThreatBeforeAttackRate; - set => WriteParamField(ref _ThreatBeforeAttackRate, value); - } - private byte _ThreatBeforeAttackRate; - - [ParamField(0x7, ParamType.U8)] - public byte ForceThreatOnFirstLocked - { - get => _ForceThreatOnFirstLocked; - set => WriteParamField(ref _ForceThreatOnFirstLocked, value); - } - private byte _ForceThreatOnFirstLocked; - - [ParamField(0x8, ParamType.Dummy8, 24)] - public byte[] Reserve0 - { - get => _Reserve0; - set => WriteParamField(ref _Reserve0, value); - } - private byte[] _Reserve0 = null!; - - [ParamField(0x20, ParamType.U16)] - public ushort Attack1_Distance - { - get => _Attack1_Distance; - set => WriteParamField(ref _Attack1_Distance, value); - } - private ushort _Attack1_Distance; - - [ParamField(0x22, ParamType.U16)] - public ushort Attack1_Margin - { - get => _Attack1_Margin; - set => WriteParamField(ref _Attack1_Margin, value); - } - private ushort _Attack1_Margin; - - [ParamField(0x24, ParamType.U8)] - public byte Attack1_Rate - { - get => _Attack1_Rate; - set => WriteParamField(ref _Attack1_Rate, value); - } - private byte _Attack1_Rate; - - [ParamField(0x25, ParamType.U8)] - public byte Attack1_ActionID - { - get => _Attack1_ActionID; - set => WriteParamField(ref _Attack1_ActionID, value); - } - private byte _Attack1_ActionID; - - [ParamField(0x26, ParamType.U8)] - public byte Attack1_DelayMin - { - get => _Attack1_DelayMin; - set => WriteParamField(ref _Attack1_DelayMin, value); - } - private byte _Attack1_DelayMin; - - [ParamField(0x27, ParamType.U8)] - public byte Attack1_DelayMax - { - get => _Attack1_DelayMax; - set => WriteParamField(ref _Attack1_DelayMax, value); - } - private byte _Attack1_DelayMax; - - [ParamField(0x28, ParamType.U8)] - public byte Attack1_ConeAngle - { - get => _Attack1_ConeAngle; - set => WriteParamField(ref _Attack1_ConeAngle, value); - } - private byte _Attack1_ConeAngle; - - [ParamField(0x29, ParamType.Dummy8, 7)] - public byte[] Reserve10 - { - get => _Reserve10; - set => WriteParamField(ref _Reserve10, value); - } - private byte[] _Reserve10 = null!; - - [ParamField(0x30, ParamType.U16)] - public ushort Attack2_Distance - { - get => _Attack2_Distance; - set => WriteParamField(ref _Attack2_Distance, value); - } - private ushort _Attack2_Distance; - - [ParamField(0x32, ParamType.U16)] - public ushort Attack2_Margin - { - get => _Attack2_Margin; - set => WriteParamField(ref _Attack2_Margin, value); - } - private ushort _Attack2_Margin; - - [ParamField(0x34, ParamType.U8)] - public byte Attack2_Rate - { - get => _Attack2_Rate; - set => WriteParamField(ref _Attack2_Rate, value); - } - private byte _Attack2_Rate; - - [ParamField(0x35, ParamType.U8)] - public byte Attack2_ActionID - { - get => _Attack2_ActionID; - set => WriteParamField(ref _Attack2_ActionID, value); - } - private byte _Attack2_ActionID; - - [ParamField(0x36, ParamType.U8)] - public byte Attack2_DelayMin - { - get => _Attack2_DelayMin; - set => WriteParamField(ref _Attack2_DelayMin, value); - } - private byte _Attack2_DelayMin; - - [ParamField(0x37, ParamType.U8)] - public byte Attack2_DelayMax - { - get => _Attack2_DelayMax; - set => WriteParamField(ref _Attack2_DelayMax, value); - } - private byte _Attack2_DelayMax; - - [ParamField(0x38, ParamType.U8)] - public byte Attack2_ConeAngle - { - get => _Attack2_ConeAngle; - set => WriteParamField(ref _Attack2_ConeAngle, value); - } - private byte _Attack2_ConeAngle; - - [ParamField(0x39, ParamType.Dummy8, 7)] - public byte[] Reserve11 - { - get => _Reserve11; - set => WriteParamField(ref _Reserve11, value); - } - private byte[] _Reserve11 = null!; - - [ParamField(0x40, ParamType.U16)] - public ushort Attack3_Distance - { - get => _Attack3_Distance; - set => WriteParamField(ref _Attack3_Distance, value); - } - private ushort _Attack3_Distance; - - [ParamField(0x42, ParamType.U16)] - public ushort Attack3_Margin - { - get => _Attack3_Margin; - set => WriteParamField(ref _Attack3_Margin, value); - } - private ushort _Attack3_Margin; - - [ParamField(0x44, ParamType.U8)] - public byte Attack3_Rate - { - get => _Attack3_Rate; - set => WriteParamField(ref _Attack3_Rate, value); - } - private byte _Attack3_Rate; - - [ParamField(0x45, ParamType.U8)] - public byte Attack3_ActionID - { - get => _Attack3_ActionID; - set => WriteParamField(ref _Attack3_ActionID, value); - } - private byte _Attack3_ActionID; - - [ParamField(0x46, ParamType.U8)] - public byte Attack3_DelayMin - { - get => _Attack3_DelayMin; - set => WriteParamField(ref _Attack3_DelayMin, value); - } - private byte _Attack3_DelayMin; - - [ParamField(0x47, ParamType.U8)] - public byte Attack3_DelayMax - { - get => _Attack3_DelayMax; - set => WriteParamField(ref _Attack3_DelayMax, value); - } - private byte _Attack3_DelayMax; - - [ParamField(0x48, ParamType.U8)] - public byte Attack3_ConeAngle - { - get => _Attack3_ConeAngle; - set => WriteParamField(ref _Attack3_ConeAngle, value); - } - private byte _Attack3_ConeAngle; - - [ParamField(0x49, ParamType.Dummy8, 7)] - public byte[] Reserve12 - { - get => _Reserve12; - set => WriteParamField(ref _Reserve12, value); - } - private byte[] _Reserve12 = null!; - - [ParamField(0x50, ParamType.U16)] - public ushort Attack4_Distance - { - get => _Attack4_Distance; - set => WriteParamField(ref _Attack4_Distance, value); - } - private ushort _Attack4_Distance; - - [ParamField(0x52, ParamType.U16)] - public ushort Attack4_Margin - { - get => _Attack4_Margin; - set => WriteParamField(ref _Attack4_Margin, value); - } - private ushort _Attack4_Margin; - - [ParamField(0x54, ParamType.U8)] - public byte Attack4_Rate - { - get => _Attack4_Rate; - set => WriteParamField(ref _Attack4_Rate, value); - } - private byte _Attack4_Rate; - - [ParamField(0x55, ParamType.U8)] - public byte Attack4_ActionID - { - get => _Attack4_ActionID; - set => WriteParamField(ref _Attack4_ActionID, value); - } - private byte _Attack4_ActionID; - - [ParamField(0x56, ParamType.U8)] - public byte Attack4_DelayMin - { - get => _Attack4_DelayMin; - set => WriteParamField(ref _Attack4_DelayMin, value); - } - private byte _Attack4_DelayMin; - - [ParamField(0x57, ParamType.U8)] - public byte Attack4_DelayMax - { - get => _Attack4_DelayMax; - set => WriteParamField(ref _Attack4_DelayMax, value); - } - private byte _Attack4_DelayMax; - - [ParamField(0x58, ParamType.U8)] - public byte Attack4_ConeAngle - { - get => _Attack4_ConeAngle; - set => WriteParamField(ref _Attack4_ConeAngle, value); - } - private byte _Attack4_ConeAngle; - - [ParamField(0x59, ParamType.Dummy8, 7)] - public byte[] Reserve13 - { - get => _Reserve13; - set => WriteParamField(ref _Reserve13, value); - } - private byte[] _Reserve13 = null!; - - [ParamField(0x60, ParamType.Dummy8, 32)] - public byte[] Reserve_last - { - get => _Reserve_last; - set => WriteParamField(ref _Reserve_last, value); - } - private byte[] _Reserve_last = null!; + public AiStandardInfo(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} + + [ParamField(0x0, ParamType.U16)] + public ushort RadarRange + { + get => _RadarRange; + set => WriteParamField(ref _RadarRange, value); + } + private ushort _RadarRange; + + [ParamField(0x2, ParamType.U8)] + public byte RadarAngleX + { + get => _RadarAngleX; + set => WriteParamField(ref _RadarAngleX, value); + } + private byte _RadarAngleX; + + [ParamField(0x3, ParamType.U8)] + public byte RadarAngleY + { + get => _RadarAngleY; + set => WriteParamField(ref _RadarAngleY, value); + } + private byte _RadarAngleY; + + [ParamField(0x4, ParamType.U16)] + public ushort TerritorySize + { + get => _TerritorySize; + set => WriteParamField(ref _TerritorySize, value); + } + private ushort _TerritorySize; + + [ParamField(0x6, ParamType.U8)] + public byte ThreatBeforeAttackRate + { + get => _ThreatBeforeAttackRate; + set => WriteParamField(ref _ThreatBeforeAttackRate, value); + } + private byte _ThreatBeforeAttackRate; + + [ParamField(0x7, ParamType.U8)] + public byte ForceThreatOnFirstLocked + { + get => _ForceThreatOnFirstLocked; + set => WriteParamField(ref _ForceThreatOnFirstLocked, value); + } + private byte _ForceThreatOnFirstLocked; + + [ParamField(0x8, ParamType.Dummy8, 24)] + public byte[] Reserve0 + { + get => _Reserve0; + set => WriteParamField(ref _Reserve0, value); + } + private byte[] _Reserve0 = null!; + + [ParamField(0x20, ParamType.U16)] + public ushort Attack1_Distance + { + get => _Attack1_Distance; + set => WriteParamField(ref _Attack1_Distance, value); + } + private ushort _Attack1_Distance; + + [ParamField(0x22, ParamType.U16)] + public ushort Attack1_Margin + { + get => _Attack1_Margin; + set => WriteParamField(ref _Attack1_Margin, value); + } + private ushort _Attack1_Margin; + + [ParamField(0x24, ParamType.U8)] + public byte Attack1_Rate + { + get => _Attack1_Rate; + set => WriteParamField(ref _Attack1_Rate, value); + } + private byte _Attack1_Rate; + + [ParamField(0x25, ParamType.U8)] + public byte Attack1_ActionID + { + get => _Attack1_ActionID; + set => WriteParamField(ref _Attack1_ActionID, value); + } + private byte _Attack1_ActionID; + + [ParamField(0x26, ParamType.U8)] + public byte Attack1_DelayMin + { + get => _Attack1_DelayMin; + set => WriteParamField(ref _Attack1_DelayMin, value); + } + private byte _Attack1_DelayMin; + + [ParamField(0x27, ParamType.U8)] + public byte Attack1_DelayMax + { + get => _Attack1_DelayMax; + set => WriteParamField(ref _Attack1_DelayMax, value); + } + private byte _Attack1_DelayMax; + + [ParamField(0x28, ParamType.U8)] + public byte Attack1_ConeAngle + { + get => _Attack1_ConeAngle; + set => WriteParamField(ref _Attack1_ConeAngle, value); + } + private byte _Attack1_ConeAngle; + + [ParamField(0x29, ParamType.Dummy8, 7)] + public byte[] Reserve10 + { + get => _Reserve10; + set => WriteParamField(ref _Reserve10, value); + } + private byte[] _Reserve10 = null!; + + [ParamField(0x30, ParamType.U16)] + public ushort Attack2_Distance + { + get => _Attack2_Distance; + set => WriteParamField(ref _Attack2_Distance, value); + } + private ushort _Attack2_Distance; + + [ParamField(0x32, ParamType.U16)] + public ushort Attack2_Margin + { + get => _Attack2_Margin; + set => WriteParamField(ref _Attack2_Margin, value); + } + private ushort _Attack2_Margin; + + [ParamField(0x34, ParamType.U8)] + public byte Attack2_Rate + { + get => _Attack2_Rate; + set => WriteParamField(ref _Attack2_Rate, value); + } + private byte _Attack2_Rate; + + [ParamField(0x35, ParamType.U8)] + public byte Attack2_ActionID + { + get => _Attack2_ActionID; + set => WriteParamField(ref _Attack2_ActionID, value); + } + private byte _Attack2_ActionID; + + [ParamField(0x36, ParamType.U8)] + public byte Attack2_DelayMin + { + get => _Attack2_DelayMin; + set => WriteParamField(ref _Attack2_DelayMin, value); + } + private byte _Attack2_DelayMin; + + [ParamField(0x37, ParamType.U8)] + public byte Attack2_DelayMax + { + get => _Attack2_DelayMax; + set => WriteParamField(ref _Attack2_DelayMax, value); + } + private byte _Attack2_DelayMax; + + [ParamField(0x38, ParamType.U8)] + public byte Attack2_ConeAngle + { + get => _Attack2_ConeAngle; + set => WriteParamField(ref _Attack2_ConeAngle, value); + } + private byte _Attack2_ConeAngle; + + [ParamField(0x39, ParamType.Dummy8, 7)] + public byte[] Reserve11 + { + get => _Reserve11; + set => WriteParamField(ref _Reserve11, value); + } + private byte[] _Reserve11 = null!; + + [ParamField(0x40, ParamType.U16)] + public ushort Attack3_Distance + { + get => _Attack3_Distance; + set => WriteParamField(ref _Attack3_Distance, value); + } + private ushort _Attack3_Distance; + + [ParamField(0x42, ParamType.U16)] + public ushort Attack3_Margin + { + get => _Attack3_Margin; + set => WriteParamField(ref _Attack3_Margin, value); + } + private ushort _Attack3_Margin; + + [ParamField(0x44, ParamType.U8)] + public byte Attack3_Rate + { + get => _Attack3_Rate; + set => WriteParamField(ref _Attack3_Rate, value); + } + private byte _Attack3_Rate; + + [ParamField(0x45, ParamType.U8)] + public byte Attack3_ActionID + { + get => _Attack3_ActionID; + set => WriteParamField(ref _Attack3_ActionID, value); + } + private byte _Attack3_ActionID; + + [ParamField(0x46, ParamType.U8)] + public byte Attack3_DelayMin + { + get => _Attack3_DelayMin; + set => WriteParamField(ref _Attack3_DelayMin, value); + } + private byte _Attack3_DelayMin; + + [ParamField(0x47, ParamType.U8)] + public byte Attack3_DelayMax + { + get => _Attack3_DelayMax; + set => WriteParamField(ref _Attack3_DelayMax, value); + } + private byte _Attack3_DelayMax; + + [ParamField(0x48, ParamType.U8)] + public byte Attack3_ConeAngle + { + get => _Attack3_ConeAngle; + set => WriteParamField(ref _Attack3_ConeAngle, value); + } + private byte _Attack3_ConeAngle; + + [ParamField(0x49, ParamType.Dummy8, 7)] + public byte[] Reserve12 + { + get => _Reserve12; + set => WriteParamField(ref _Reserve12, value); + } + private byte[] _Reserve12 = null!; + + [ParamField(0x50, ParamType.U16)] + public ushort Attack4_Distance + { + get => _Attack4_Distance; + set => WriteParamField(ref _Attack4_Distance, value); + } + private ushort _Attack4_Distance; + + [ParamField(0x52, ParamType.U16)] + public ushort Attack4_Margin + { + get => _Attack4_Margin; + set => WriteParamField(ref _Attack4_Margin, value); + } + private ushort _Attack4_Margin; + + [ParamField(0x54, ParamType.U8)] + public byte Attack4_Rate + { + get => _Attack4_Rate; + set => WriteParamField(ref _Attack4_Rate, value); + } + private byte _Attack4_Rate; + + [ParamField(0x55, ParamType.U8)] + public byte Attack4_ActionID + { + get => _Attack4_ActionID; + set => WriteParamField(ref _Attack4_ActionID, value); + } + private byte _Attack4_ActionID; + + [ParamField(0x56, ParamType.U8)] + public byte Attack4_DelayMin + { + get => _Attack4_DelayMin; + set => WriteParamField(ref _Attack4_DelayMin, value); + } + private byte _Attack4_DelayMin; + [ParamField(0x57, ParamType.U8)] + public byte Attack4_DelayMax + { + get => _Attack4_DelayMax; + set => WriteParamField(ref _Attack4_DelayMax, value); + } + private byte _Attack4_DelayMax; + + [ParamField(0x58, ParamType.U8)] + public byte Attack4_ConeAngle + { + get => _Attack4_ConeAngle; + set => WriteParamField(ref _Attack4_ConeAngle, value); } + private byte _Attack4_ConeAngle; + + [ParamField(0x59, ParamType.Dummy8, 7)] + public byte[] Reserve13 + { + get => _Reserve13; + set => WriteParamField(ref _Reserve13, value); + } + private byte[] _Reserve13 = null!; + + [ParamField(0x60, ParamType.Dummy8, 32)] + public byte[] Reserve_last + { + get => _Reserve_last; + set => WriteParamField(ref _Reserve_last, value); + } + private byte[] _Reserve_last = null!; + } diff --git a/src/SoulMemory/DarkSouls1/Parameters/AtkParam.cs b/src/SoulMemory/DarkSouls1/Parameters/AtkParam.cs index a8858d2..8304f95 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/AtkParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/AtkParam.cs @@ -18,584 +18,583 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters +namespace SoulMemory.DarkSouls1.Parameters; + +[ExcludeFromCodeCoverage] +public class AtkParam : BaseParam { - [ExcludeFromCodeCoverage] - public class AtkParam : BaseParam - { - public AtkParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - - [ParamField(0x0, ParamType.F32)] - public float Hit0_Radius - { - get => _Hit0_Radius; - set => WriteParamField(ref _Hit0_Radius, value); - } - private float _Hit0_Radius; - - [ParamField(0x4, ParamType.F32)] - public float Hit1_Radius - { - get => _Hit1_Radius; - set => WriteParamField(ref _Hit1_Radius, value); - } - private float _Hit1_Radius; - - [ParamField(0x8, ParamType.F32)] - public float Hit2_Radius - { - get => _Hit2_Radius; - set => WriteParamField(ref _Hit2_Radius, value); - } - private float _Hit2_Radius; - - [ParamField(0xC, ParamType.F32)] - public float Hit3_Radius - { - get => _Hit3_Radius; - set => WriteParamField(ref _Hit3_Radius, value); - } - private float _Hit3_Radius; - - [ParamField(0x10, ParamType.F32)] - public float KnockbackDist - { - get => _KnockbackDist; - set => WriteParamField(ref _KnockbackDist, value); - } - private float _KnockbackDist; - - [ParamField(0x14, ParamType.F32)] - public float HitStopTime - { - get => _HitStopTime; - set => WriteParamField(ref _HitStopTime, value); - } - private float _HitStopTime; - - [ParamField(0x18, ParamType.I32)] - public int SpEffectId0 - { - get => _SpEffectId0; - set => WriteParamField(ref _SpEffectId0, value); - } - private int _SpEffectId0; - - [ParamField(0x1C, ParamType.I32)] - public int SpEffectId1 - { - get => _SpEffectId1; - set => WriteParamField(ref _SpEffectId1, value); - } - private int _SpEffectId1; - - [ParamField(0x20, ParamType.I32)] - public int SpEffectId2 - { - get => _SpEffectId2; - set => WriteParamField(ref _SpEffectId2, value); - } - private int _SpEffectId2; - - [ParamField(0x24, ParamType.I32)] - public int SpEffectId3 - { - get => _SpEffectId3; - set => WriteParamField(ref _SpEffectId3, value); - } - private int _SpEffectId3; - - [ParamField(0x28, ParamType.I32)] - public int SpEffectId4 - { - get => _SpEffectId4; - set => WriteParamField(ref _SpEffectId4, value); - } - private int _SpEffectId4; - - [ParamField(0x2C, ParamType.I16)] - public short Hit0_DmyPoly1 - { - get => _Hit0_DmyPoly1; - set => WriteParamField(ref _Hit0_DmyPoly1, value); - } - private short _Hit0_DmyPoly1; - - [ParamField(0x2E, ParamType.I16)] - public short Hit1_DmyPoly1 - { - get => _Hit1_DmyPoly1; - set => WriteParamField(ref _Hit1_DmyPoly1, value); - } - private short _Hit1_DmyPoly1; - - [ParamField(0x30, ParamType.I16)] - public short Hit2_DmyPoly1 - { - get => _Hit2_DmyPoly1; - set => WriteParamField(ref _Hit2_DmyPoly1, value); - } - private short _Hit2_DmyPoly1; - - [ParamField(0x32, ParamType.I16)] - public short Hit3_DmyPoly1 - { - get => _Hit3_DmyPoly1; - set => WriteParamField(ref _Hit3_DmyPoly1, value); - } - private short _Hit3_DmyPoly1; - - [ParamField(0x34, ParamType.I16)] - public short Hit0_DmyPoly2 - { - get => _Hit0_DmyPoly2; - set => WriteParamField(ref _Hit0_DmyPoly2, value); - } - private short _Hit0_DmyPoly2; - - [ParamField(0x36, ParamType.I16)] - public short Hit1_DmyPoly2 - { - get => _Hit1_DmyPoly2; - set => WriteParamField(ref _Hit1_DmyPoly2, value); - } - private short _Hit1_DmyPoly2; - - [ParamField(0x38, ParamType.I16)] - public short Hit2_DmyPoly2 - { - get => _Hit2_DmyPoly2; - set => WriteParamField(ref _Hit2_DmyPoly2, value); - } - private short _Hit2_DmyPoly2; - - [ParamField(0x3A, ParamType.I16)] - public short Hit3_DmyPoly2 - { - get => _Hit3_DmyPoly2; - set => WriteParamField(ref _Hit3_DmyPoly2, value); - } - private short _Hit3_DmyPoly2; - - [ParamField(0x3C, ParamType.U16)] - public ushort BlowingCorrection - { - get => _BlowingCorrection; - set => WriteParamField(ref _BlowingCorrection, value); - } - private ushort _BlowingCorrection; - - [ParamField(0x3E, ParamType.U16)] - public ushort AtkPhysCorrection - { - get => _AtkPhysCorrection; - set => WriteParamField(ref _AtkPhysCorrection, value); - } - private ushort _AtkPhysCorrection; - - [ParamField(0x40, ParamType.U16)] - public ushort AtkMagCorrection - { - get => _AtkMagCorrection; - set => WriteParamField(ref _AtkMagCorrection, value); - } - private ushort _AtkMagCorrection; - - [ParamField(0x42, ParamType.U16)] - public ushort AtkFireCorrection - { - get => _AtkFireCorrection; - set => WriteParamField(ref _AtkFireCorrection, value); - } - private ushort _AtkFireCorrection; - - [ParamField(0x44, ParamType.U16)] - public ushort AtkThunCorrection - { - get => _AtkThunCorrection; - set => WriteParamField(ref _AtkThunCorrection, value); - } - private ushort _AtkThunCorrection; - - [ParamField(0x46, ParamType.U16)] - public ushort AtkStamCorrection - { - get => _AtkStamCorrection; - set => WriteParamField(ref _AtkStamCorrection, value); - } - private ushort _AtkStamCorrection; - - [ParamField(0x48, ParamType.U16)] - public ushort GuardAtkRateCorrection - { - get => _GuardAtkRateCorrection; - set => WriteParamField(ref _GuardAtkRateCorrection, value); - } - private ushort _GuardAtkRateCorrection; - - [ParamField(0x4A, ParamType.U16)] - public ushort GuardBreakCorrection - { - get => _GuardBreakCorrection; - set => WriteParamField(ref _GuardBreakCorrection, value); - } - private ushort _GuardBreakCorrection; - - [ParamField(0x4C, ParamType.U16)] - public ushort AtkThrowEscapeCorrection - { - get => _AtkThrowEscapeCorrection; - set => WriteParamField(ref _AtkThrowEscapeCorrection, value); - } - private ushort _AtkThrowEscapeCorrection; - - [ParamField(0x4E, ParamType.U16)] - public ushort AtkSuperArmorCorrection - { - get => _AtkSuperArmorCorrection; - set => WriteParamField(ref _AtkSuperArmorCorrection, value); - } - private ushort _AtkSuperArmorCorrection; - - [ParamField(0x50, ParamType.U16)] - public ushort AtkPhys - { - get => _AtkPhys; - set => WriteParamField(ref _AtkPhys, value); - } - private ushort _AtkPhys; - - [ParamField(0x52, ParamType.U16)] - public ushort AtkMag - { - get => _AtkMag; - set => WriteParamField(ref _AtkMag, value); - } - private ushort _AtkMag; - - [ParamField(0x54, ParamType.U16)] - public ushort AtkFire - { - get => _AtkFire; - set => WriteParamField(ref _AtkFire, value); - } - private ushort _AtkFire; - - [ParamField(0x56, ParamType.U16)] - public ushort AtkThun - { - get => _AtkThun; - set => WriteParamField(ref _AtkThun, value); - } - private ushort _AtkThun; - - [ParamField(0x58, ParamType.U16)] - public ushort AtkStam - { - get => _AtkStam; - set => WriteParamField(ref _AtkStam, value); - } - private ushort _AtkStam; - - [ParamField(0x5A, ParamType.U16)] - public ushort GuardAtkRate - { - get => _GuardAtkRate; - set => WriteParamField(ref _GuardAtkRate, value); - } - private ushort _GuardAtkRate; - - [ParamField(0x5C, ParamType.U16)] - public ushort GuardBreakRate - { - get => _GuardBreakRate; - set => WriteParamField(ref _GuardBreakRate, value); - } - private ushort _GuardBreakRate; - - [ParamField(0x5E, ParamType.U16)] - public ushort AtkSuperArmor - { - get => _AtkSuperArmor; - set => WriteParamField(ref _AtkSuperArmor, value); - } - private ushort _AtkSuperArmor; - - [ParamField(0x60, ParamType.U16)] - public ushort AtkThrowEscape - { - get => _AtkThrowEscape; - set => WriteParamField(ref _AtkThrowEscape, value); - } - private ushort _AtkThrowEscape; - - [ParamField(0x62, ParamType.U16)] - public ushort AtkObj - { - get => _AtkObj; - set => WriteParamField(ref _AtkObj, value); - } - private ushort _AtkObj; - - [ParamField(0x64, ParamType.I16)] - public short GuardStaminaCutRate - { - get => _GuardStaminaCutRate; - set => WriteParamField(ref _GuardStaminaCutRate, value); - } - private short _GuardStaminaCutRate; - - [ParamField(0x66, ParamType.I16)] - public short GuardRate - { - get => _GuardRate; - set => WriteParamField(ref _GuardRate, value); - } - private short _GuardRate; - - [ParamField(0x68, ParamType.U16)] - public ushort ThrowTypeId - { - get => _ThrowTypeId; - set => WriteParamField(ref _ThrowTypeId, value); - } - private ushort _ThrowTypeId; - - [ParamField(0x6A, ParamType.U8)] - public byte Hit0_hitType - { - get => _Hit0_hitType; - set => WriteParamField(ref _Hit0_hitType, value); - } - private byte _Hit0_hitType; - - [ParamField(0x6B, ParamType.U8)] - public byte Hit1_hitType - { - get => _Hit1_hitType; - set => WriteParamField(ref _Hit1_hitType, value); - } - private byte _Hit1_hitType; - - [ParamField(0x6C, ParamType.U8)] - public byte Hit2_hitType - { - get => _Hit2_hitType; - set => WriteParamField(ref _Hit2_hitType, value); - } - private byte _Hit2_hitType; - - [ParamField(0x6D, ParamType.U8)] - public byte Hit3_hitType - { - get => _Hit3_hitType; - set => WriteParamField(ref _Hit3_hitType, value); - } - private byte _Hit3_hitType; - - [ParamField(0x6E, ParamType.U8)] - public byte Hti0_Priority - { - get => _Hti0_Priority; - set => WriteParamField(ref _Hti0_Priority, value); - } - private byte _Hti0_Priority; - - [ParamField(0x6F, ParamType.U8)] - public byte Hti1_Priority - { - get => _Hti1_Priority; - set => WriteParamField(ref _Hti1_Priority, value); - } - private byte _Hti1_Priority; - - [ParamField(0x70, ParamType.U8)] - public byte Hti2_Priority - { - get => _Hti2_Priority; - set => WriteParamField(ref _Hti2_Priority, value); - } - private byte _Hti2_Priority; - - [ParamField(0x71, ParamType.U8)] - public byte Hti3_Priority - { - get => _Hti3_Priority; - set => WriteParamField(ref _Hti3_Priority, value); - } - private byte _Hti3_Priority; - - [ParamField(0x72, ParamType.U8)] - public byte DmgLevel - { - get => _DmgLevel; - set => WriteParamField(ref _DmgLevel, value); - } - private byte _DmgLevel; - - [ParamField(0x73, ParamType.U8)] - public byte MapHitType - { - get => _MapHitType; - set => WriteParamField(ref _MapHitType, value); - } - private byte _MapHitType; - - [ParamField(0x74, ParamType.I8)] - public sbyte GuardCutCancelRate - { - get => _GuardCutCancelRate; - set => WriteParamField(ref _GuardCutCancelRate, value); - } - private sbyte _GuardCutCancelRate; - - [ParamField(0x75, ParamType.U8)] - public byte AtkAttribute - { - get => _AtkAttribute; - set => WriteParamField(ref _AtkAttribute, value); - } - private byte _AtkAttribute; - - [ParamField(0x76, ParamType.U8)] - public byte SpAttribute - { - get => _SpAttribute; - set => WriteParamField(ref _SpAttribute, value); - } - private byte _SpAttribute; - - [ParamField(0x77, ParamType.U8)] - public byte AtkType - { - get => _AtkType; - set => WriteParamField(ref _AtkType, value); - } - private byte _AtkType; - - [ParamField(0x78, ParamType.U8)] - public byte AtkMaterial - { - get => _AtkMaterial; - set => WriteParamField(ref _AtkMaterial, value); - } - private byte _AtkMaterial; - - [ParamField(0x79, ParamType.U8)] - public byte AtkSize - { - get => _AtkSize; - set => WriteParamField(ref _AtkSize, value); - } - private byte _AtkSize; - - [ParamField(0x7A, ParamType.U8)] - public byte DefMaterial - { - get => _DefMaterial; - set => WriteParamField(ref _DefMaterial, value); - } - private byte _DefMaterial; - - [ParamField(0x7B, ParamType.U8)] - public byte DefSfxMaterial - { - get => _DefSfxMaterial; - set => WriteParamField(ref _DefSfxMaterial, value); - } - private byte _DefSfxMaterial; - - [ParamField(0x7C, ParamType.U8)] - public byte HitSourceType - { - get => _HitSourceType; - set => WriteParamField(ref _HitSourceType, value); - } - private byte _HitSourceType; - - [ParamField(0x7D, ParamType.U8)] - public byte ThrowFlag - { - get => _ThrowFlag; - set => WriteParamField(ref _ThrowFlag, value); - } - private byte _ThrowFlag; - - #region BitField DisableGuardBitfield ============================================================================== - - [ParamField(0x7E, ParamType.U8)] - public byte DisableGuardBitfield - { - get => _DisableGuardBitfield; - set => WriteParamField(ref _DisableGuardBitfield, value); - } - private byte _DisableGuardBitfield; - - [ParamBitField(nameof(DisableGuardBitfield), bits: 1, bitsOffset: 0)] - public byte DisableGuard - { - get => GetbitfieldValue(_DisableGuardBitfield); - set => SetBitfieldValue(ref _DisableGuardBitfield, value); - } - - [ParamBitField(nameof(DisableGuardBitfield), bits: 1, bitsOffset: 1)] - public byte DisableStaminaAttack - { - get => GetbitfieldValue(_DisableGuardBitfield); - set => SetBitfieldValue(ref _DisableGuardBitfield, value); - } - - [ParamBitField(nameof(DisableGuardBitfield), bits: 1, bitsOffset: 2)] - public byte DisableHitSpEffect - { - get => GetbitfieldValue(_DisableGuardBitfield); - set => SetBitfieldValue(ref _DisableGuardBitfield, value); - } - - [ParamBitField(nameof(DisableGuardBitfield), bits: 1, bitsOffset: 3)] - public byte IgnoreNotifyMissSwingForAI - { - get => GetbitfieldValue(_DisableGuardBitfield); - set => SetBitfieldValue(ref _DisableGuardBitfield, value); - } - - [ParamBitField(nameof(DisableGuardBitfield), bits: 1, bitsOffset: 4)] - public byte RepeatHitSfx - { - get => GetbitfieldValue(_DisableGuardBitfield); - set => SetBitfieldValue(ref _DisableGuardBitfield, value); - } - - [ParamBitField(nameof(DisableGuardBitfield), bits: 1, bitsOffset: 5)] - public byte IsArrowAtk - { - get => GetbitfieldValue(_DisableGuardBitfield); - set => SetBitfieldValue(ref _DisableGuardBitfield, value); - } - - [ParamBitField(nameof(DisableGuardBitfield), bits: 1, bitsOffset: 6)] - public byte IsGhostAtk - { - get => GetbitfieldValue(_DisableGuardBitfield); - set => SetBitfieldValue(ref _DisableGuardBitfield, value); - } - - [ParamBitField(nameof(DisableGuardBitfield), bits: 1, bitsOffset: 7)] - public byte IsDisableNoDamage - { - get => GetbitfieldValue(_DisableGuardBitfield); - set => SetBitfieldValue(ref _DisableGuardBitfield, value); - } - - #endregion BitField DisableGuardBitfield - - [ParamField(0x7F, ParamType.Dummy8, 1)] - public byte[] Pad - { - get => _Pad; - set => WriteParamField(ref _Pad, value); - } - private byte[] _Pad = null!; + public AtkParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} + + [ParamField(0x0, ParamType.F32)] + public float Hit0_Radius + { + get => _Hit0_Radius; + set => WriteParamField(ref _Hit0_Radius, value); + } + private float _Hit0_Radius; + + [ParamField(0x4, ParamType.F32)] + public float Hit1_Radius + { + get => _Hit1_Radius; + set => WriteParamField(ref _Hit1_Radius, value); + } + private float _Hit1_Radius; + + [ParamField(0x8, ParamType.F32)] + public float Hit2_Radius + { + get => _Hit2_Radius; + set => WriteParamField(ref _Hit2_Radius, value); + } + private float _Hit2_Radius; + + [ParamField(0xC, ParamType.F32)] + public float Hit3_Radius + { + get => _Hit3_Radius; + set => WriteParamField(ref _Hit3_Radius, value); + } + private float _Hit3_Radius; + + [ParamField(0x10, ParamType.F32)] + public float KnockbackDist + { + get => _KnockbackDist; + set => WriteParamField(ref _KnockbackDist, value); + } + private float _KnockbackDist; + + [ParamField(0x14, ParamType.F32)] + public float HitStopTime + { + get => _HitStopTime; + set => WriteParamField(ref _HitStopTime, value); + } + private float _HitStopTime; + + [ParamField(0x18, ParamType.I32)] + public int SpEffectId0 + { + get => _SpEffectId0; + set => WriteParamField(ref _SpEffectId0, value); + } + private int _SpEffectId0; + + [ParamField(0x1C, ParamType.I32)] + public int SpEffectId1 + { + get => _SpEffectId1; + set => WriteParamField(ref _SpEffectId1, value); + } + private int _SpEffectId1; + + [ParamField(0x20, ParamType.I32)] + public int SpEffectId2 + { + get => _SpEffectId2; + set => WriteParamField(ref _SpEffectId2, value); + } + private int _SpEffectId2; + + [ParamField(0x24, ParamType.I32)] + public int SpEffectId3 + { + get => _SpEffectId3; + set => WriteParamField(ref _SpEffectId3, value); + } + private int _SpEffectId3; + + [ParamField(0x28, ParamType.I32)] + public int SpEffectId4 + { + get => _SpEffectId4; + set => WriteParamField(ref _SpEffectId4, value); + } + private int _SpEffectId4; + + [ParamField(0x2C, ParamType.I16)] + public short Hit0_DmyPoly1 + { + get => _Hit0_DmyPoly1; + set => WriteParamField(ref _Hit0_DmyPoly1, value); + } + private short _Hit0_DmyPoly1; + + [ParamField(0x2E, ParamType.I16)] + public short Hit1_DmyPoly1 + { + get => _Hit1_DmyPoly1; + set => WriteParamField(ref _Hit1_DmyPoly1, value); + } + private short _Hit1_DmyPoly1; + + [ParamField(0x30, ParamType.I16)] + public short Hit2_DmyPoly1 + { + get => _Hit2_DmyPoly1; + set => WriteParamField(ref _Hit2_DmyPoly1, value); + } + private short _Hit2_DmyPoly1; + + [ParamField(0x32, ParamType.I16)] + public short Hit3_DmyPoly1 + { + get => _Hit3_DmyPoly1; + set => WriteParamField(ref _Hit3_DmyPoly1, value); + } + private short _Hit3_DmyPoly1; + + [ParamField(0x34, ParamType.I16)] + public short Hit0_DmyPoly2 + { + get => _Hit0_DmyPoly2; + set => WriteParamField(ref _Hit0_DmyPoly2, value); + } + private short _Hit0_DmyPoly2; + + [ParamField(0x36, ParamType.I16)] + public short Hit1_DmyPoly2 + { + get => _Hit1_DmyPoly2; + set => WriteParamField(ref _Hit1_DmyPoly2, value); + } + private short _Hit1_DmyPoly2; + + [ParamField(0x38, ParamType.I16)] + public short Hit2_DmyPoly2 + { + get => _Hit2_DmyPoly2; + set => WriteParamField(ref _Hit2_DmyPoly2, value); + } + private short _Hit2_DmyPoly2; + + [ParamField(0x3A, ParamType.I16)] + public short Hit3_DmyPoly2 + { + get => _Hit3_DmyPoly2; + set => WriteParamField(ref _Hit3_DmyPoly2, value); + } + private short _Hit3_DmyPoly2; + + [ParamField(0x3C, ParamType.U16)] + public ushort BlowingCorrection + { + get => _BlowingCorrection; + set => WriteParamField(ref _BlowingCorrection, value); + } + private ushort _BlowingCorrection; + + [ParamField(0x3E, ParamType.U16)] + public ushort AtkPhysCorrection + { + get => _AtkPhysCorrection; + set => WriteParamField(ref _AtkPhysCorrection, value); + } + private ushort _AtkPhysCorrection; + + [ParamField(0x40, ParamType.U16)] + public ushort AtkMagCorrection + { + get => _AtkMagCorrection; + set => WriteParamField(ref _AtkMagCorrection, value); + } + private ushort _AtkMagCorrection; + + [ParamField(0x42, ParamType.U16)] + public ushort AtkFireCorrection + { + get => _AtkFireCorrection; + set => WriteParamField(ref _AtkFireCorrection, value); + } + private ushort _AtkFireCorrection; + + [ParamField(0x44, ParamType.U16)] + public ushort AtkThunCorrection + { + get => _AtkThunCorrection; + set => WriteParamField(ref _AtkThunCorrection, value); + } + private ushort _AtkThunCorrection; + + [ParamField(0x46, ParamType.U16)] + public ushort AtkStamCorrection + { + get => _AtkStamCorrection; + set => WriteParamField(ref _AtkStamCorrection, value); + } + private ushort _AtkStamCorrection; + + [ParamField(0x48, ParamType.U16)] + public ushort GuardAtkRateCorrection + { + get => _GuardAtkRateCorrection; + set => WriteParamField(ref _GuardAtkRateCorrection, value); + } + private ushort _GuardAtkRateCorrection; + + [ParamField(0x4A, ParamType.U16)] + public ushort GuardBreakCorrection + { + get => _GuardBreakCorrection; + set => WriteParamField(ref _GuardBreakCorrection, value); + } + private ushort _GuardBreakCorrection; + + [ParamField(0x4C, ParamType.U16)] + public ushort AtkThrowEscapeCorrection + { + get => _AtkThrowEscapeCorrection; + set => WriteParamField(ref _AtkThrowEscapeCorrection, value); + } + private ushort _AtkThrowEscapeCorrection; + + [ParamField(0x4E, ParamType.U16)] + public ushort AtkSuperArmorCorrection + { + get => _AtkSuperArmorCorrection; + set => WriteParamField(ref _AtkSuperArmorCorrection, value); + } + private ushort _AtkSuperArmorCorrection; + + [ParamField(0x50, ParamType.U16)] + public ushort AtkPhys + { + get => _AtkPhys; + set => WriteParamField(ref _AtkPhys, value); + } + private ushort _AtkPhys; + + [ParamField(0x52, ParamType.U16)] + public ushort AtkMag + { + get => _AtkMag; + set => WriteParamField(ref _AtkMag, value); + } + private ushort _AtkMag; + + [ParamField(0x54, ParamType.U16)] + public ushort AtkFire + { + get => _AtkFire; + set => WriteParamField(ref _AtkFire, value); + } + private ushort _AtkFire; + + [ParamField(0x56, ParamType.U16)] + public ushort AtkThun + { + get => _AtkThun; + set => WriteParamField(ref _AtkThun, value); + } + private ushort _AtkThun; + + [ParamField(0x58, ParamType.U16)] + public ushort AtkStam + { + get => _AtkStam; + set => WriteParamField(ref _AtkStam, value); + } + private ushort _AtkStam; + + [ParamField(0x5A, ParamType.U16)] + public ushort GuardAtkRate + { + get => _GuardAtkRate; + set => WriteParamField(ref _GuardAtkRate, value); + } + private ushort _GuardAtkRate; + + [ParamField(0x5C, ParamType.U16)] + public ushort GuardBreakRate + { + get => _GuardBreakRate; + set => WriteParamField(ref _GuardBreakRate, value); + } + private ushort _GuardBreakRate; + [ParamField(0x5E, ParamType.U16)] + public ushort AtkSuperArmor + { + get => _AtkSuperArmor; + set => WriteParamField(ref _AtkSuperArmor, value); + } + private ushort _AtkSuperArmor; + + [ParamField(0x60, ParamType.U16)] + public ushort AtkThrowEscape + { + get => _AtkThrowEscape; + set => WriteParamField(ref _AtkThrowEscape, value); + } + private ushort _AtkThrowEscape; + + [ParamField(0x62, ParamType.U16)] + public ushort AtkObj + { + get => _AtkObj; + set => WriteParamField(ref _AtkObj, value); + } + private ushort _AtkObj; + + [ParamField(0x64, ParamType.I16)] + public short GuardStaminaCutRate + { + get => _GuardStaminaCutRate; + set => WriteParamField(ref _GuardStaminaCutRate, value); + } + private short _GuardStaminaCutRate; + + [ParamField(0x66, ParamType.I16)] + public short GuardRate + { + get => _GuardRate; + set => WriteParamField(ref _GuardRate, value); + } + private short _GuardRate; + + [ParamField(0x68, ParamType.U16)] + public ushort ThrowTypeId + { + get => _ThrowTypeId; + set => WriteParamField(ref _ThrowTypeId, value); + } + private ushort _ThrowTypeId; + + [ParamField(0x6A, ParamType.U8)] + public byte Hit0_hitType + { + get => _Hit0_hitType; + set => WriteParamField(ref _Hit0_hitType, value); + } + private byte _Hit0_hitType; + + [ParamField(0x6B, ParamType.U8)] + public byte Hit1_hitType + { + get => _Hit1_hitType; + set => WriteParamField(ref _Hit1_hitType, value); + } + private byte _Hit1_hitType; + + [ParamField(0x6C, ParamType.U8)] + public byte Hit2_hitType + { + get => _Hit2_hitType; + set => WriteParamField(ref _Hit2_hitType, value); + } + private byte _Hit2_hitType; + + [ParamField(0x6D, ParamType.U8)] + public byte Hit3_hitType + { + get => _Hit3_hitType; + set => WriteParamField(ref _Hit3_hitType, value); + } + private byte _Hit3_hitType; + + [ParamField(0x6E, ParamType.U8)] + public byte Hti0_Priority + { + get => _Hti0_Priority; + set => WriteParamField(ref _Hti0_Priority, value); + } + private byte _Hti0_Priority; + + [ParamField(0x6F, ParamType.U8)] + public byte Hti1_Priority + { + get => _Hti1_Priority; + set => WriteParamField(ref _Hti1_Priority, value); + } + private byte _Hti1_Priority; + + [ParamField(0x70, ParamType.U8)] + public byte Hti2_Priority + { + get => _Hti2_Priority; + set => WriteParamField(ref _Hti2_Priority, value); + } + private byte _Hti2_Priority; + + [ParamField(0x71, ParamType.U8)] + public byte Hti3_Priority + { + get => _Hti3_Priority; + set => WriteParamField(ref _Hti3_Priority, value); + } + private byte _Hti3_Priority; + + [ParamField(0x72, ParamType.U8)] + public byte DmgLevel + { + get => _DmgLevel; + set => WriteParamField(ref _DmgLevel, value); + } + private byte _DmgLevel; + + [ParamField(0x73, ParamType.U8)] + public byte MapHitType + { + get => _MapHitType; + set => WriteParamField(ref _MapHitType, value); + } + private byte _MapHitType; + + [ParamField(0x74, ParamType.I8)] + public sbyte GuardCutCancelRate + { + get => _GuardCutCancelRate; + set => WriteParamField(ref _GuardCutCancelRate, value); + } + private sbyte _GuardCutCancelRate; + + [ParamField(0x75, ParamType.U8)] + public byte AtkAttribute + { + get => _AtkAttribute; + set => WriteParamField(ref _AtkAttribute, value); + } + private byte _AtkAttribute; + + [ParamField(0x76, ParamType.U8)] + public byte SpAttribute + { + get => _SpAttribute; + set => WriteParamField(ref _SpAttribute, value); } + private byte _SpAttribute; + + [ParamField(0x77, ParamType.U8)] + public byte AtkType + { + get => _AtkType; + set => WriteParamField(ref _AtkType, value); + } + private byte _AtkType; + + [ParamField(0x78, ParamType.U8)] + public byte AtkMaterial + { + get => _AtkMaterial; + set => WriteParamField(ref _AtkMaterial, value); + } + private byte _AtkMaterial; + + [ParamField(0x79, ParamType.U8)] + public byte AtkSize + { + get => _AtkSize; + set => WriteParamField(ref _AtkSize, value); + } + private byte _AtkSize; + + [ParamField(0x7A, ParamType.U8)] + public byte DefMaterial + { + get => _DefMaterial; + set => WriteParamField(ref _DefMaterial, value); + } + private byte _DefMaterial; + + [ParamField(0x7B, ParamType.U8)] + public byte DefSfxMaterial + { + get => _DefSfxMaterial; + set => WriteParamField(ref _DefSfxMaterial, value); + } + private byte _DefSfxMaterial; + + [ParamField(0x7C, ParamType.U8)] + public byte HitSourceType + { + get => _HitSourceType; + set => WriteParamField(ref _HitSourceType, value); + } + private byte _HitSourceType; + + [ParamField(0x7D, ParamType.U8)] + public byte ThrowFlag + { + get => _ThrowFlag; + set => WriteParamField(ref _ThrowFlag, value); + } + private byte _ThrowFlag; + + #region BitField DisableGuardBitfield ============================================================================== + + [ParamField(0x7E, ParamType.U8)] + public byte DisableGuardBitfield + { + get => _DisableGuardBitfield; + set => WriteParamField(ref _DisableGuardBitfield, value); + } + private byte _DisableGuardBitfield; + + [ParamBitField(nameof(DisableGuardBitfield), bits: 1, bitsOffset: 0)] + public byte DisableGuard + { + get => GetbitfieldValue(_DisableGuardBitfield); + set => SetBitfieldValue(ref _DisableGuardBitfield, value); + } + + [ParamBitField(nameof(DisableGuardBitfield), bits: 1, bitsOffset: 1)] + public byte DisableStaminaAttack + { + get => GetbitfieldValue(_DisableGuardBitfield); + set => SetBitfieldValue(ref _DisableGuardBitfield, value); + } + + [ParamBitField(nameof(DisableGuardBitfield), bits: 1, bitsOffset: 2)] + public byte DisableHitSpEffect + { + get => GetbitfieldValue(_DisableGuardBitfield); + set => SetBitfieldValue(ref _DisableGuardBitfield, value); + } + + [ParamBitField(nameof(DisableGuardBitfield), bits: 1, bitsOffset: 3)] + public byte IgnoreNotifyMissSwingForAI + { + get => GetbitfieldValue(_DisableGuardBitfield); + set => SetBitfieldValue(ref _DisableGuardBitfield, value); + } + + [ParamBitField(nameof(DisableGuardBitfield), bits: 1, bitsOffset: 4)] + public byte RepeatHitSfx + { + get => GetbitfieldValue(_DisableGuardBitfield); + set => SetBitfieldValue(ref _DisableGuardBitfield, value); + } + + [ParamBitField(nameof(DisableGuardBitfield), bits: 1, bitsOffset: 5)] + public byte IsArrowAtk + { + get => GetbitfieldValue(_DisableGuardBitfield); + set => SetBitfieldValue(ref _DisableGuardBitfield, value); + } + + [ParamBitField(nameof(DisableGuardBitfield), bits: 1, bitsOffset: 6)] + public byte IsGhostAtk + { + get => GetbitfieldValue(_DisableGuardBitfield); + set => SetBitfieldValue(ref _DisableGuardBitfield, value); + } + + [ParamBitField(nameof(DisableGuardBitfield), bits: 1, bitsOffset: 7)] + public byte IsDisableNoDamage + { + get => GetbitfieldValue(_DisableGuardBitfield); + set => SetBitfieldValue(ref _DisableGuardBitfield, value); + } + + #endregion BitField DisableGuardBitfield + + [ParamField(0x7F, ParamType.Dummy8, 1)] + public byte[] Pad + { + get => _Pad; + set => WriteParamField(ref _Pad, value); + } + private byte[] _Pad = null!; + } diff --git a/src/SoulMemory/DarkSouls1/Parameters/BehaviorParam.cs b/src/SoulMemory/DarkSouls1/Parameters/BehaviorParam.cs index 4ef34cc..35d203b 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/BehaviorParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/BehaviorParam.cs @@ -18,108 +18,107 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters +namespace SoulMemory.DarkSouls1.Parameters; + +[ExcludeFromCodeCoverage] +public class BehaviorParam : BaseParam { - [ExcludeFromCodeCoverage] - public class BehaviorParam : BaseParam + public BehaviorParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} + + [ParamField(0x0, ParamType.I32)] + public int VariationId + { + get => _VariationId; + set => WriteParamField(ref _VariationId, value); + } + private int _VariationId; + + [ParamField(0x4, ParamType.I32)] + public int BehaviorJudgeId + { + get => _BehaviorJudgeId; + set => WriteParamField(ref _BehaviorJudgeId, value); + } + private int _BehaviorJudgeId; + + [ParamField(0x8, ParamType.U8)] + public byte EzStateBehaviorType_old + { + get => _EzStateBehaviorType_old; + set => WriteParamField(ref _EzStateBehaviorType_old, value); + } + private byte _EzStateBehaviorType_old; + + [ParamField(0x9, ParamType.U8)] + public byte RefType { - public BehaviorParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - - [ParamField(0x0, ParamType.I32)] - public int VariationId - { - get => _VariationId; - set => WriteParamField(ref _VariationId, value); - } - private int _VariationId; - - [ParamField(0x4, ParamType.I32)] - public int BehaviorJudgeId - { - get => _BehaviorJudgeId; - set => WriteParamField(ref _BehaviorJudgeId, value); - } - private int _BehaviorJudgeId; - - [ParamField(0x8, ParamType.U8)] - public byte EzStateBehaviorType_old - { - get => _EzStateBehaviorType_old; - set => WriteParamField(ref _EzStateBehaviorType_old, value); - } - private byte _EzStateBehaviorType_old; - - [ParamField(0x9, ParamType.U8)] - public byte RefType - { - get => _RefType; - set => WriteParamField(ref _RefType, value); - } - private byte _RefType; - - [ParamField(0xA, ParamType.Dummy8, 2)] - public byte[] Pad0 - { - get => _Pad0; - set => WriteParamField(ref _Pad0, value); - } - private byte[] _Pad0 = null!; - - [ParamField(0xC, ParamType.I32)] - public int RefId - { - get => _RefId; - set => WriteParamField(ref _RefId, value); - } - private int _RefId; - - [ParamField(0x10, ParamType.I32)] - public int SfxVariationId - { - get => _SfxVariationId; - set => WriteParamField(ref _SfxVariationId, value); - } - private int _SfxVariationId; - - [ParamField(0x14, ParamType.I32)] - public int Stamina - { - get => _Stamina; - set => WriteParamField(ref _Stamina, value); - } - private int _Stamina; - - [ParamField(0x18, ParamType.I32)] - public int Mp - { - get => _Mp; - set => WriteParamField(ref _Mp, value); - } - private int _Mp; - - [ParamField(0x1C, ParamType.U8)] - public byte Category - { - get => _Category; - set => WriteParamField(ref _Category, value); - } - private byte _Category; - - [ParamField(0x1D, ParamType.U8)] - public byte HeroPoint - { - get => _HeroPoint; - set => WriteParamField(ref _HeroPoint, value); - } - private byte _HeroPoint; - - [ParamField(0x1E, ParamType.Dummy8, 2)] - public byte[] Pad1 - { - get => _Pad1; - set => WriteParamField(ref _Pad1, value); - } - private byte[] _Pad1 = null!; + get => _RefType; + set => WriteParamField(ref _RefType, value); + } + private byte _RefType; + [ParamField(0xA, ParamType.Dummy8, 2)] + public byte[] Pad0 + { + get => _Pad0; + set => WriteParamField(ref _Pad0, value); } + private byte[] _Pad0 = null!; + + [ParamField(0xC, ParamType.I32)] + public int RefId + { + get => _RefId; + set => WriteParamField(ref _RefId, value); + } + private int _RefId; + + [ParamField(0x10, ParamType.I32)] + public int SfxVariationId + { + get => _SfxVariationId; + set => WriteParamField(ref _SfxVariationId, value); + } + private int _SfxVariationId; + + [ParamField(0x14, ParamType.I32)] + public int Stamina + { + get => _Stamina; + set => WriteParamField(ref _Stamina, value); + } + private int _Stamina; + + [ParamField(0x18, ParamType.I32)] + public int Mp + { + get => _Mp; + set => WriteParamField(ref _Mp, value); + } + private int _Mp; + + [ParamField(0x1C, ParamType.U8)] + public byte Category + { + get => _Category; + set => WriteParamField(ref _Category, value); + } + private byte _Category; + + [ParamField(0x1D, ParamType.U8)] + public byte HeroPoint + { + get => _HeroPoint; + set => WriteParamField(ref _HeroPoint, value); + } + private byte _HeroPoint; + + [ParamField(0x1E, ParamType.Dummy8, 2)] + public byte[] Pad1 + { + get => _Pad1; + set => WriteParamField(ref _Pad1, value); + } + private byte[] _Pad1 = null!; + } diff --git a/src/SoulMemory/DarkSouls1/Parameters/BulletParam.cs b/src/SoulMemory/DarkSouls1/Parameters/BulletParam.cs index 6a6eddd..963fe9a 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/BulletParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/BulletParam.cs @@ -18,571 +18,570 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters +namespace SoulMemory.DarkSouls1.Parameters; + +[ExcludeFromCodeCoverage] +public class BulletParam : BaseParam { - [ExcludeFromCodeCoverage] - public class BulletParam : BaseParam - { - public BulletParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - - [ParamField(0x0, ParamType.I32)] - public int AtkId_Bullet - { - get => _AtkId_Bullet; - set => WriteParamField(ref _AtkId_Bullet, value); - } - private int _AtkId_Bullet; - - [ParamField(0x4, ParamType.I32)] - public int SfxId_Bullet - { - get => _SfxId_Bullet; - set => WriteParamField(ref _SfxId_Bullet, value); - } - private int _SfxId_Bullet; - - [ParamField(0x8, ParamType.I32)] - public int SfxId_Hit - { - get => _SfxId_Hit; - set => WriteParamField(ref _SfxId_Hit, value); - } - private int _SfxId_Hit; - - [ParamField(0xC, ParamType.I32)] - public int SfxId_Flick - { - get => _SfxId_Flick; - set => WriteParamField(ref _SfxId_Flick, value); - } - private int _SfxId_Flick; - - [ParamField(0x10, ParamType.F32)] - public float Life - { - get => _Life; - set => WriteParamField(ref _Life, value); - } - private float _Life; - - [ParamField(0x14, ParamType.F32)] - public float Dist - { - get => _Dist; - set => WriteParamField(ref _Dist, value); - } - private float _Dist; - - [ParamField(0x18, ParamType.F32)] - public float ShootInterval - { - get => _ShootInterval; - set => WriteParamField(ref _ShootInterval, value); - } - private float _ShootInterval; - - [ParamField(0x1C, ParamType.F32)] - public float GravityInRange - { - get => _GravityInRange; - set => WriteParamField(ref _GravityInRange, value); - } - private float _GravityInRange; - - [ParamField(0x20, ParamType.F32)] - public float GravityOutRange - { - get => _GravityOutRange; - set => WriteParamField(ref _GravityOutRange, value); - } - private float _GravityOutRange; - - [ParamField(0x24, ParamType.F32)] - public float HormingStopRange - { - get => _HormingStopRange; - set => WriteParamField(ref _HormingStopRange, value); - } - private float _HormingStopRange; - - [ParamField(0x28, ParamType.F32)] - public float InitVellocity - { - get => _InitVellocity; - set => WriteParamField(ref _InitVellocity, value); - } - private float _InitVellocity; - - [ParamField(0x2C, ParamType.F32)] - public float AccelInRange - { - get => _AccelInRange; - set => WriteParamField(ref _AccelInRange, value); - } - private float _AccelInRange; - - [ParamField(0x30, ParamType.F32)] - public float AccelOutRange - { - get => _AccelOutRange; - set => WriteParamField(ref _AccelOutRange, value); - } - private float _AccelOutRange; - - [ParamField(0x34, ParamType.F32)] - public float MaxVellocity - { - get => _MaxVellocity; - set => WriteParamField(ref _MaxVellocity, value); - } - private float _MaxVellocity; - - [ParamField(0x38, ParamType.F32)] - public float MinVellocity - { - get => _MinVellocity; - set => WriteParamField(ref _MinVellocity, value); - } - private float _MinVellocity; - - [ParamField(0x3C, ParamType.F32)] - public float AccelTime - { - get => _AccelTime; - set => WriteParamField(ref _AccelTime, value); - } - private float _AccelTime; - - [ParamField(0x40, ParamType.F32)] - public float HomingBeginDist - { - get => _HomingBeginDist; - set => WriteParamField(ref _HomingBeginDist, value); - } - private float _HomingBeginDist; - - [ParamField(0x44, ParamType.F32)] - public float HitRadius - { - get => _HitRadius; - set => WriteParamField(ref _HitRadius, value); - } - private float _HitRadius; - - [ParamField(0x48, ParamType.F32)] - public float HitRadiusMax - { - get => _HitRadiusMax; - set => WriteParamField(ref _HitRadiusMax, value); - } - private float _HitRadiusMax; - - [ParamField(0x4C, ParamType.F32)] - public float SpreadTime - { - get => _SpreadTime; - set => WriteParamField(ref _SpreadTime, value); - } - private float _SpreadTime; - - [ParamField(0x50, ParamType.F32)] - public float ExpDelay - { - get => _ExpDelay; - set => WriteParamField(ref _ExpDelay, value); - } - private float _ExpDelay; - - [ParamField(0x54, ParamType.F32)] - public float HormingOffsetRange - { - get => _HormingOffsetRange; - set => WriteParamField(ref _HormingOffsetRange, value); - } - private float _HormingOffsetRange; - - [ParamField(0x58, ParamType.F32)] - public float DmgHitRecordLifeTime - { - get => _DmgHitRecordLifeTime; - set => WriteParamField(ref _DmgHitRecordLifeTime, value); - } - private float _DmgHitRecordLifeTime; - - [ParamField(0x5C, ParamType.F32)] - public float ExternalForce - { - get => _ExternalForce; - set => WriteParamField(ref _ExternalForce, value); - } - private float _ExternalForce; - - [ParamField(0x60, ParamType.I32)] - public int SpEffectIDForShooter - { - get => _SpEffectIDForShooter; - set => WriteParamField(ref _SpEffectIDForShooter, value); - } - private int _SpEffectIDForShooter; - - [ParamField(0x64, ParamType.I32)] - public int AutoSearchNPCThinkID - { - get => _AutoSearchNPCThinkID; - set => WriteParamField(ref _AutoSearchNPCThinkID, value); - } - private int _AutoSearchNPCThinkID; - - [ParamField(0x68, ParamType.I32)] - public int HitBulletID - { - get => _HitBulletID; - set => WriteParamField(ref _HitBulletID, value); - } - private int _HitBulletID; - - [ParamField(0x6C, ParamType.I32)] - public int SpEffectId0 - { - get => _SpEffectId0; - set => WriteParamField(ref _SpEffectId0, value); - } - private int _SpEffectId0; - - [ParamField(0x70, ParamType.I32)] - public int SpEffectId1 - { - get => _SpEffectId1; - set => WriteParamField(ref _SpEffectId1, value); - } - private int _SpEffectId1; - - [ParamField(0x74, ParamType.I32)] - public int SpEffectId2 - { - get => _SpEffectId2; - set => WriteParamField(ref _SpEffectId2, value); - } - private int _SpEffectId2; - - [ParamField(0x78, ParamType.I32)] - public int SpEffectId3 - { - get => _SpEffectId3; - set => WriteParamField(ref _SpEffectId3, value); - } - private int _SpEffectId3; - - [ParamField(0x7C, ParamType.I32)] - public int SpEffectId4 - { - get => _SpEffectId4; - set => WriteParamField(ref _SpEffectId4, value); - } - private int _SpEffectId4; - - [ParamField(0x80, ParamType.U16)] - public ushort NumShoot - { - get => _NumShoot; - set => WriteParamField(ref _NumShoot, value); - } - private ushort _NumShoot; - - [ParamField(0x82, ParamType.I16)] - public short HomingAngle - { - get => _HomingAngle; - set => WriteParamField(ref _HomingAngle, value); - } - private short _HomingAngle; - - [ParamField(0x84, ParamType.I16)] - public short ShootAngle - { - get => _ShootAngle; - set => WriteParamField(ref _ShootAngle, value); - } - private short _ShootAngle; - - [ParamField(0x86, ParamType.I16)] - public short ShootAngleInterval - { - get => _ShootAngleInterval; - set => WriteParamField(ref _ShootAngleInterval, value); - } - private short _ShootAngleInterval; - - [ParamField(0x88, ParamType.I16)] - public short ShootAngleXInterval - { - get => _ShootAngleXInterval; - set => WriteParamField(ref _ShootAngleXInterval, value); - } - private short _ShootAngleXInterval; - - [ParamField(0x8A, ParamType.I8)] - public sbyte DamageDamp - { - get => _DamageDamp; - set => WriteParamField(ref _DamageDamp, value); - } - private sbyte _DamageDamp; - - [ParamField(0x8B, ParamType.I8)] - public sbyte SpelDamageDamp - { - get => _SpelDamageDamp; - set => WriteParamField(ref _SpelDamageDamp, value); - } - private sbyte _SpelDamageDamp; - - [ParamField(0x8C, ParamType.I8)] - public sbyte FireDamageDamp - { - get => _FireDamageDamp; - set => WriteParamField(ref _FireDamageDamp, value); - } - private sbyte _FireDamageDamp; - - [ParamField(0x8D, ParamType.I8)] - public sbyte ThunderDamageDamp - { - get => _ThunderDamageDamp; - set => WriteParamField(ref _ThunderDamageDamp, value); - } - private sbyte _ThunderDamageDamp; - - [ParamField(0x8E, ParamType.I8)] - public sbyte StaminaDamp - { - get => _StaminaDamp; - set => WriteParamField(ref _StaminaDamp, value); - } - private sbyte _StaminaDamp; - - [ParamField(0x8F, ParamType.I8)] - public sbyte KnockbackDamp - { - get => _KnockbackDamp; - set => WriteParamField(ref _KnockbackDamp, value); - } - private sbyte _KnockbackDamp; - - [ParamField(0x90, ParamType.I8)] - public sbyte ShootAngleXZ - { - get => _ShootAngleXZ; - set => WriteParamField(ref _ShootAngleXZ, value); - } - private sbyte _ShootAngleXZ; - - [ParamField(0x91, ParamType.U8)] - public byte LockShootLimitAng - { - get => _LockShootLimitAng; - set => WriteParamField(ref _LockShootLimitAng, value); - } - private byte _LockShootLimitAng; - - [ParamField(0x92, ParamType.U8)] - public byte IsPenetrate - { - get => _IsPenetrate; - set => WriteParamField(ref _IsPenetrate, value); - } - private byte _IsPenetrate; - - [ParamField(0x93, ParamType.U8)] - public byte PrevVelocityDirRate - { - get => _PrevVelocityDirRate; - set => WriteParamField(ref _PrevVelocityDirRate, value); - } - private byte _PrevVelocityDirRate; - - [ParamField(0x94, ParamType.U8)] - public byte AtkAttribute - { - get => _AtkAttribute; - set => WriteParamField(ref _AtkAttribute, value); - } - private byte _AtkAttribute; - - [ParamField(0x95, ParamType.U8)] - public byte SpAttribute - { - get => _SpAttribute; - set => WriteParamField(ref _SpAttribute, value); - } - private byte _SpAttribute; - - [ParamField(0x96, ParamType.U8)] - public byte Material_AttackType - { - get => _Material_AttackType; - set => WriteParamField(ref _Material_AttackType, value); - } - private byte _Material_AttackType; - - [ParamField(0x97, ParamType.U8)] - public byte Material_AttackMaterial - { - get => _Material_AttackMaterial; - set => WriteParamField(ref _Material_AttackMaterial, value); - } - private byte _Material_AttackMaterial; - - [ParamField(0x98, ParamType.U8)] - public byte Material_Size - { - get => _Material_Size; - set => WriteParamField(ref _Material_Size, value); - } - private byte _Material_Size; - - [ParamField(0x99, ParamType.U8)] - public byte LaunchConditionType - { - get => _LaunchConditionType; - set => WriteParamField(ref _LaunchConditionType, value); - } - private byte _LaunchConditionType; - - #region BitField FollowTypeBitfield ============================================================================== - - [ParamField(0x9A, ParamType.U8)] - public byte FollowTypeBitfield - { - get => _FollowTypeBitfield; - set => WriteParamField(ref _FollowTypeBitfield, value); - } - private byte _FollowTypeBitfield; - - [ParamBitField(nameof(FollowTypeBitfield), bits: 3, bitsOffset: 0)] - public byte FollowType - { - get => GetbitfieldValue(_FollowTypeBitfield); - set => SetBitfieldValue(ref _FollowTypeBitfield, value); - } - - [ParamBitField(nameof(FollowTypeBitfield), bits: 3, bitsOffset: 3)] - public byte EmittePosType - { - get => GetbitfieldValue(_FollowTypeBitfield); - set => SetBitfieldValue(ref _FollowTypeBitfield, value); - } - - [ParamBitField(nameof(FollowTypeBitfield), bits: 1, bitsOffset: 6)] - public byte IsAttackSFX - { - get => GetbitfieldValue(_FollowTypeBitfield); - set => SetBitfieldValue(ref _FollowTypeBitfield, value); - } - - [ParamBitField(nameof(FollowTypeBitfield), bits: 1, bitsOffset: 7)] - public byte IsEndlessHit - { - get => GetbitfieldValue(_FollowTypeBitfield); - set => SetBitfieldValue(ref _FollowTypeBitfield, value); - } - - #endregion BitField FollowTypeBitfield - - #region BitField IsPenetrateMapBitfield ============================================================================== - - [ParamField(0x9B, ParamType.U8)] - public byte IsPenetrateMapBitfield - { - get => _IsPenetrateMapBitfield; - set => WriteParamField(ref _IsPenetrateMapBitfield, value); - } - private byte _IsPenetrateMapBitfield; - - [ParamBitField(nameof(IsPenetrateMapBitfield), bits: 1, bitsOffset: 0)] - public byte IsPenetrateMap - { - get => GetbitfieldValue(_IsPenetrateMapBitfield); - set => SetBitfieldValue(ref _IsPenetrateMapBitfield, value); - } - - [ParamBitField(nameof(IsPenetrateMapBitfield), bits: 1, bitsOffset: 1)] - public byte IsHitBothTeam - { - get => GetbitfieldValue(_IsPenetrateMapBitfield); - set => SetBitfieldValue(ref _IsPenetrateMapBitfield, value); - } - - [ParamBitField(nameof(IsPenetrateMapBitfield), bits: 1, bitsOffset: 2)] - public byte IsUseSharedHitList - { - get => GetbitfieldValue(_IsPenetrateMapBitfield); - set => SetBitfieldValue(ref _IsPenetrateMapBitfield, value); - } - - [ParamBitField(nameof(IsPenetrateMapBitfield), bits: 1, bitsOffset: 3)] - public byte IsUseMultiDmyPolyIfPlace - { - get => GetbitfieldValue(_IsPenetrateMapBitfield); - set => SetBitfieldValue(ref _IsPenetrateMapBitfield, value); - } - - [ParamBitField(nameof(IsPenetrateMapBitfield), bits: 2, bitsOffset: 4)] - public byte AttachEffectType - { - get => GetbitfieldValue(_IsPenetrateMapBitfield); - set => SetBitfieldValue(ref _IsPenetrateMapBitfield, value); - } - - [ParamBitField(nameof(IsPenetrateMapBitfield), bits: 1, bitsOffset: 6)] - public byte IsHitForceMagic - { - get => GetbitfieldValue(_IsPenetrateMapBitfield); - set => SetBitfieldValue(ref _IsPenetrateMapBitfield, value); - } - - [ParamBitField(nameof(IsPenetrateMapBitfield), bits: 1, bitsOffset: 7)] - public byte IsIgnoreSfxIfHitWater - { - get => GetbitfieldValue(_IsPenetrateMapBitfield); - set => SetBitfieldValue(ref _IsPenetrateMapBitfield, value); - } - - #endregion BitField IsPenetrateMapBitfield - - #region BitField IsIgnoreMoveStateIfHitWaterBitfield ============================================================================== - - [ParamField(0x9C, ParamType.U8)] - public byte IsIgnoreMoveStateIfHitWaterBitfield - { - get => _IsIgnoreMoveStateIfHitWaterBitfield; - set => WriteParamField(ref _IsIgnoreMoveStateIfHitWaterBitfield, value); - } - private byte _IsIgnoreMoveStateIfHitWaterBitfield; - - [ParamBitField(nameof(IsIgnoreMoveStateIfHitWaterBitfield), bits: 1, bitsOffset: 0)] - public byte IsIgnoreMoveStateIfHitWater - { - get => GetbitfieldValue(_IsIgnoreMoveStateIfHitWaterBitfield); - set => SetBitfieldValue(ref _IsIgnoreMoveStateIfHitWaterBitfield, value); - } - - [ParamBitField(nameof(IsIgnoreMoveStateIfHitWaterBitfield), bits: 1, bitsOffset: 1)] - public byte IsHitDarkForceMagic - { - get => GetbitfieldValue(_IsIgnoreMoveStateIfHitWaterBitfield); - set => SetBitfieldValue(ref _IsIgnoreMoveStateIfHitWaterBitfield, value); - } - - #endregion BitField IsIgnoreMoveStateIfHitWaterBitfield - - [ParamField(0x9D, ParamType.Dummy8, 3)] - public byte[] Pad - { - get => _Pad; - set => WriteParamField(ref _Pad, value); - } - private byte[] _Pad = null!; + public BulletParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} + + [ParamField(0x0, ParamType.I32)] + public int AtkId_Bullet + { + get => _AtkId_Bullet; + set => WriteParamField(ref _AtkId_Bullet, value); + } + private int _AtkId_Bullet; + + [ParamField(0x4, ParamType.I32)] + public int SfxId_Bullet + { + get => _SfxId_Bullet; + set => WriteParamField(ref _SfxId_Bullet, value); + } + private int _SfxId_Bullet; + + [ParamField(0x8, ParamType.I32)] + public int SfxId_Hit + { + get => _SfxId_Hit; + set => WriteParamField(ref _SfxId_Hit, value); + } + private int _SfxId_Hit; + + [ParamField(0xC, ParamType.I32)] + public int SfxId_Flick + { + get => _SfxId_Flick; + set => WriteParamField(ref _SfxId_Flick, value); + } + private int _SfxId_Flick; + + [ParamField(0x10, ParamType.F32)] + public float Life + { + get => _Life; + set => WriteParamField(ref _Life, value); + } + private float _Life; + + [ParamField(0x14, ParamType.F32)] + public float Dist + { + get => _Dist; + set => WriteParamField(ref _Dist, value); + } + private float _Dist; + + [ParamField(0x18, ParamType.F32)] + public float ShootInterval + { + get => _ShootInterval; + set => WriteParamField(ref _ShootInterval, value); + } + private float _ShootInterval; + + [ParamField(0x1C, ParamType.F32)] + public float GravityInRange + { + get => _GravityInRange; + set => WriteParamField(ref _GravityInRange, value); + } + private float _GravityInRange; + + [ParamField(0x20, ParamType.F32)] + public float GravityOutRange + { + get => _GravityOutRange; + set => WriteParamField(ref _GravityOutRange, value); + } + private float _GravityOutRange; + + [ParamField(0x24, ParamType.F32)] + public float HormingStopRange + { + get => _HormingStopRange; + set => WriteParamField(ref _HormingStopRange, value); + } + private float _HormingStopRange; + + [ParamField(0x28, ParamType.F32)] + public float InitVellocity + { + get => _InitVellocity; + set => WriteParamField(ref _InitVellocity, value); + } + private float _InitVellocity; + + [ParamField(0x2C, ParamType.F32)] + public float AccelInRange + { + get => _AccelInRange; + set => WriteParamField(ref _AccelInRange, value); + } + private float _AccelInRange; + + [ParamField(0x30, ParamType.F32)] + public float AccelOutRange + { + get => _AccelOutRange; + set => WriteParamField(ref _AccelOutRange, value); + } + private float _AccelOutRange; + + [ParamField(0x34, ParamType.F32)] + public float MaxVellocity + { + get => _MaxVellocity; + set => WriteParamField(ref _MaxVellocity, value); + } + private float _MaxVellocity; + + [ParamField(0x38, ParamType.F32)] + public float MinVellocity + { + get => _MinVellocity; + set => WriteParamField(ref _MinVellocity, value); + } + private float _MinVellocity; + + [ParamField(0x3C, ParamType.F32)] + public float AccelTime + { + get => _AccelTime; + set => WriteParamField(ref _AccelTime, value); + } + private float _AccelTime; + + [ParamField(0x40, ParamType.F32)] + public float HomingBeginDist + { + get => _HomingBeginDist; + set => WriteParamField(ref _HomingBeginDist, value); + } + private float _HomingBeginDist; + + [ParamField(0x44, ParamType.F32)] + public float HitRadius + { + get => _HitRadius; + set => WriteParamField(ref _HitRadius, value); + } + private float _HitRadius; + + [ParamField(0x48, ParamType.F32)] + public float HitRadiusMax + { + get => _HitRadiusMax; + set => WriteParamField(ref _HitRadiusMax, value); + } + private float _HitRadiusMax; + + [ParamField(0x4C, ParamType.F32)] + public float SpreadTime + { + get => _SpreadTime; + set => WriteParamField(ref _SpreadTime, value); + } + private float _SpreadTime; + + [ParamField(0x50, ParamType.F32)] + public float ExpDelay + { + get => _ExpDelay; + set => WriteParamField(ref _ExpDelay, value); + } + private float _ExpDelay; + + [ParamField(0x54, ParamType.F32)] + public float HormingOffsetRange + { + get => _HormingOffsetRange; + set => WriteParamField(ref _HormingOffsetRange, value); + } + private float _HormingOffsetRange; + + [ParamField(0x58, ParamType.F32)] + public float DmgHitRecordLifeTime + { + get => _DmgHitRecordLifeTime; + set => WriteParamField(ref _DmgHitRecordLifeTime, value); + } + private float _DmgHitRecordLifeTime; + + [ParamField(0x5C, ParamType.F32)] + public float ExternalForce + { + get => _ExternalForce; + set => WriteParamField(ref _ExternalForce, value); + } + private float _ExternalForce; + + [ParamField(0x60, ParamType.I32)] + public int SpEffectIDForShooter + { + get => _SpEffectIDForShooter; + set => WriteParamField(ref _SpEffectIDForShooter, value); + } + private int _SpEffectIDForShooter; + + [ParamField(0x64, ParamType.I32)] + public int AutoSearchNPCThinkID + { + get => _AutoSearchNPCThinkID; + set => WriteParamField(ref _AutoSearchNPCThinkID, value); + } + private int _AutoSearchNPCThinkID; + + [ParamField(0x68, ParamType.I32)] + public int HitBulletID + { + get => _HitBulletID; + set => WriteParamField(ref _HitBulletID, value); + } + private int _HitBulletID; + + [ParamField(0x6C, ParamType.I32)] + public int SpEffectId0 + { + get => _SpEffectId0; + set => WriteParamField(ref _SpEffectId0, value); + } + private int _SpEffectId0; + + [ParamField(0x70, ParamType.I32)] + public int SpEffectId1 + { + get => _SpEffectId1; + set => WriteParamField(ref _SpEffectId1, value); + } + private int _SpEffectId1; + + [ParamField(0x74, ParamType.I32)] + public int SpEffectId2 + { + get => _SpEffectId2; + set => WriteParamField(ref _SpEffectId2, value); + } + private int _SpEffectId2; + + [ParamField(0x78, ParamType.I32)] + public int SpEffectId3 + { + get => _SpEffectId3; + set => WriteParamField(ref _SpEffectId3, value); + } + private int _SpEffectId3; + + [ParamField(0x7C, ParamType.I32)] + public int SpEffectId4 + { + get => _SpEffectId4; + set => WriteParamField(ref _SpEffectId4, value); + } + private int _SpEffectId4; + + [ParamField(0x80, ParamType.U16)] + public ushort NumShoot + { + get => _NumShoot; + set => WriteParamField(ref _NumShoot, value); + } + private ushort _NumShoot; + + [ParamField(0x82, ParamType.I16)] + public short HomingAngle + { + get => _HomingAngle; + set => WriteParamField(ref _HomingAngle, value); + } + private short _HomingAngle; + + [ParamField(0x84, ParamType.I16)] + public short ShootAngle + { + get => _ShootAngle; + set => WriteParamField(ref _ShootAngle, value); + } + private short _ShootAngle; + + [ParamField(0x86, ParamType.I16)] + public short ShootAngleInterval + { + get => _ShootAngleInterval; + set => WriteParamField(ref _ShootAngleInterval, value); + } + private short _ShootAngleInterval; + + [ParamField(0x88, ParamType.I16)] + public short ShootAngleXInterval + { + get => _ShootAngleXInterval; + set => WriteParamField(ref _ShootAngleXInterval, value); + } + private short _ShootAngleXInterval; + + [ParamField(0x8A, ParamType.I8)] + public sbyte DamageDamp + { + get => _DamageDamp; + set => WriteParamField(ref _DamageDamp, value); + } + private sbyte _DamageDamp; + + [ParamField(0x8B, ParamType.I8)] + public sbyte SpelDamageDamp + { + get => _SpelDamageDamp; + set => WriteParamField(ref _SpelDamageDamp, value); + } + private sbyte _SpelDamageDamp; + + [ParamField(0x8C, ParamType.I8)] + public sbyte FireDamageDamp + { + get => _FireDamageDamp; + set => WriteParamField(ref _FireDamageDamp, value); + } + private sbyte _FireDamageDamp; + + [ParamField(0x8D, ParamType.I8)] + public sbyte ThunderDamageDamp + { + get => _ThunderDamageDamp; + set => WriteParamField(ref _ThunderDamageDamp, value); + } + private sbyte _ThunderDamageDamp; + + [ParamField(0x8E, ParamType.I8)] + public sbyte StaminaDamp + { + get => _StaminaDamp; + set => WriteParamField(ref _StaminaDamp, value); + } + private sbyte _StaminaDamp; + + [ParamField(0x8F, ParamType.I8)] + public sbyte KnockbackDamp + { + get => _KnockbackDamp; + set => WriteParamField(ref _KnockbackDamp, value); + } + private sbyte _KnockbackDamp; + + [ParamField(0x90, ParamType.I8)] + public sbyte ShootAngleXZ + { + get => _ShootAngleXZ; + set => WriteParamField(ref _ShootAngleXZ, value); + } + private sbyte _ShootAngleXZ; + + [ParamField(0x91, ParamType.U8)] + public byte LockShootLimitAng + { + get => _LockShootLimitAng; + set => WriteParamField(ref _LockShootLimitAng, value); + } + private byte _LockShootLimitAng; + + [ParamField(0x92, ParamType.U8)] + public byte IsPenetrate + { + get => _IsPenetrate; + set => WriteParamField(ref _IsPenetrate, value); + } + private byte _IsPenetrate; + + [ParamField(0x93, ParamType.U8)] + public byte PrevVelocityDirRate + { + get => _PrevVelocityDirRate; + set => WriteParamField(ref _PrevVelocityDirRate, value); + } + private byte _PrevVelocityDirRate; + + [ParamField(0x94, ParamType.U8)] + public byte AtkAttribute + { + get => _AtkAttribute; + set => WriteParamField(ref _AtkAttribute, value); + } + private byte _AtkAttribute; + + [ParamField(0x95, ParamType.U8)] + public byte SpAttribute + { + get => _SpAttribute; + set => WriteParamField(ref _SpAttribute, value); + } + private byte _SpAttribute; + + [ParamField(0x96, ParamType.U8)] + public byte Material_AttackType + { + get => _Material_AttackType; + set => WriteParamField(ref _Material_AttackType, value); + } + private byte _Material_AttackType; + + [ParamField(0x97, ParamType.U8)] + public byte Material_AttackMaterial + { + get => _Material_AttackMaterial; + set => WriteParamField(ref _Material_AttackMaterial, value); + } + private byte _Material_AttackMaterial; + + [ParamField(0x98, ParamType.U8)] + public byte Material_Size + { + get => _Material_Size; + set => WriteParamField(ref _Material_Size, value); + } + private byte _Material_Size; + + [ParamField(0x99, ParamType.U8)] + public byte LaunchConditionType + { + get => _LaunchConditionType; + set => WriteParamField(ref _LaunchConditionType, value); + } + private byte _LaunchConditionType; + + #region BitField FollowTypeBitfield ============================================================================== + + [ParamField(0x9A, ParamType.U8)] + public byte FollowTypeBitfield + { + get => _FollowTypeBitfield; + set => WriteParamField(ref _FollowTypeBitfield, value); + } + private byte _FollowTypeBitfield; + + [ParamBitField(nameof(FollowTypeBitfield), bits: 3, bitsOffset: 0)] + public byte FollowType + { + get => GetbitfieldValue(_FollowTypeBitfield); + set => SetBitfieldValue(ref _FollowTypeBitfield, value); + } + + [ParamBitField(nameof(FollowTypeBitfield), bits: 3, bitsOffset: 3)] + public byte EmittePosType + { + get => GetbitfieldValue(_FollowTypeBitfield); + set => SetBitfieldValue(ref _FollowTypeBitfield, value); + } + + [ParamBitField(nameof(FollowTypeBitfield), bits: 1, bitsOffset: 6)] + public byte IsAttackSFX + { + get => GetbitfieldValue(_FollowTypeBitfield); + set => SetBitfieldValue(ref _FollowTypeBitfield, value); + } + + [ParamBitField(nameof(FollowTypeBitfield), bits: 1, bitsOffset: 7)] + public byte IsEndlessHit + { + get => GetbitfieldValue(_FollowTypeBitfield); + set => SetBitfieldValue(ref _FollowTypeBitfield, value); + } + + #endregion BitField FollowTypeBitfield + + #region BitField IsPenetrateMapBitfield ============================================================================== + + [ParamField(0x9B, ParamType.U8)] + public byte IsPenetrateMapBitfield + { + get => _IsPenetrateMapBitfield; + set => WriteParamField(ref _IsPenetrateMapBitfield, value); + } + private byte _IsPenetrateMapBitfield; + + [ParamBitField(nameof(IsPenetrateMapBitfield), bits: 1, bitsOffset: 0)] + public byte IsPenetrateMap + { + get => GetbitfieldValue(_IsPenetrateMapBitfield); + set => SetBitfieldValue(ref _IsPenetrateMapBitfield, value); + } + + [ParamBitField(nameof(IsPenetrateMapBitfield), bits: 1, bitsOffset: 1)] + public byte IsHitBothTeam + { + get => GetbitfieldValue(_IsPenetrateMapBitfield); + set => SetBitfieldValue(ref _IsPenetrateMapBitfield, value); + } + + [ParamBitField(nameof(IsPenetrateMapBitfield), bits: 1, bitsOffset: 2)] + public byte IsUseSharedHitList + { + get => GetbitfieldValue(_IsPenetrateMapBitfield); + set => SetBitfieldValue(ref _IsPenetrateMapBitfield, value); + } + + [ParamBitField(nameof(IsPenetrateMapBitfield), bits: 1, bitsOffset: 3)] + public byte IsUseMultiDmyPolyIfPlace + { + get => GetbitfieldValue(_IsPenetrateMapBitfield); + set => SetBitfieldValue(ref _IsPenetrateMapBitfield, value); + } + + [ParamBitField(nameof(IsPenetrateMapBitfield), bits: 2, bitsOffset: 4)] + public byte AttachEffectType + { + get => GetbitfieldValue(_IsPenetrateMapBitfield); + set => SetBitfieldValue(ref _IsPenetrateMapBitfield, value); + } + [ParamBitField(nameof(IsPenetrateMapBitfield), bits: 1, bitsOffset: 6)] + public byte IsHitForceMagic + { + get => GetbitfieldValue(_IsPenetrateMapBitfield); + set => SetBitfieldValue(ref _IsPenetrateMapBitfield, value); + } + + [ParamBitField(nameof(IsPenetrateMapBitfield), bits: 1, bitsOffset: 7)] + public byte IsIgnoreSfxIfHitWater + { + get => GetbitfieldValue(_IsPenetrateMapBitfield); + set => SetBitfieldValue(ref _IsPenetrateMapBitfield, value); } + + #endregion BitField IsPenetrateMapBitfield + + #region BitField IsIgnoreMoveStateIfHitWaterBitfield ============================================================================== + + [ParamField(0x9C, ParamType.U8)] + public byte IsIgnoreMoveStateIfHitWaterBitfield + { + get => _IsIgnoreMoveStateIfHitWaterBitfield; + set => WriteParamField(ref _IsIgnoreMoveStateIfHitWaterBitfield, value); + } + private byte _IsIgnoreMoveStateIfHitWaterBitfield; + + [ParamBitField(nameof(IsIgnoreMoveStateIfHitWaterBitfield), bits: 1, bitsOffset: 0)] + public byte IsIgnoreMoveStateIfHitWater + { + get => GetbitfieldValue(_IsIgnoreMoveStateIfHitWaterBitfield); + set => SetBitfieldValue(ref _IsIgnoreMoveStateIfHitWaterBitfield, value); + } + + [ParamBitField(nameof(IsIgnoreMoveStateIfHitWaterBitfield), bits: 1, bitsOffset: 1)] + public byte IsHitDarkForceMagic + { + get => GetbitfieldValue(_IsIgnoreMoveStateIfHitWaterBitfield); + set => SetBitfieldValue(ref _IsIgnoreMoveStateIfHitWaterBitfield, value); + } + + #endregion BitField IsIgnoreMoveStateIfHitWaterBitfield + + [ParamField(0x9D, ParamType.Dummy8, 3)] + public byte[] Pad + { + get => _Pad; + set => WriteParamField(ref _Pad, value); + } + private byte[] _Pad = null!; + } diff --git a/src/SoulMemory/DarkSouls1/Parameters/CalcCorrectGraph.cs b/src/SoulMemory/DarkSouls1/Parameters/CalcCorrectGraph.cs index f6c7c02..97cd89f 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/CalcCorrectGraph.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/CalcCorrectGraph.cs @@ -18,172 +18,171 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters +namespace SoulMemory.DarkSouls1.Parameters; + +[ExcludeFromCodeCoverage] +public class CalcCorrectGraph : BaseParam { - [ExcludeFromCodeCoverage] - public class CalcCorrectGraph : BaseParam - { - public CalcCorrectGraph(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - - [ParamField(0x0, ParamType.F32)] - public float StageMaxVal0 - { - get => _StageMaxVal0; - set => WriteParamField(ref _StageMaxVal0, value); - } - private float _StageMaxVal0; - - [ParamField(0x4, ParamType.F32)] - public float StageMaxVal1 - { - get => _StageMaxVal1; - set => WriteParamField(ref _StageMaxVal1, value); - } - private float _StageMaxVal1; - - [ParamField(0x8, ParamType.F32)] - public float StageMaxVal2 - { - get => _StageMaxVal2; - set => WriteParamField(ref _StageMaxVal2, value); - } - private float _StageMaxVal2; - - [ParamField(0xC, ParamType.F32)] - public float StageMaxVal3 - { - get => _StageMaxVal3; - set => WriteParamField(ref _StageMaxVal3, value); - } - private float _StageMaxVal3; - - [ParamField(0x10, ParamType.F32)] - public float StageMaxVal4 - { - get => _StageMaxVal4; - set => WriteParamField(ref _StageMaxVal4, value); - } - private float _StageMaxVal4; - - [ParamField(0x14, ParamType.F32)] - public float StageMaxGrowVal0 - { - get => _StageMaxGrowVal0; - set => WriteParamField(ref _StageMaxGrowVal0, value); - } - private float _StageMaxGrowVal0; - - [ParamField(0x18, ParamType.F32)] - public float StageMaxGrowVal1 - { - get => _StageMaxGrowVal1; - set => WriteParamField(ref _StageMaxGrowVal1, value); - } - private float _StageMaxGrowVal1; - - [ParamField(0x1C, ParamType.F32)] - public float StageMaxGrowVal2 - { - get => _StageMaxGrowVal2; - set => WriteParamField(ref _StageMaxGrowVal2, value); - } - private float _StageMaxGrowVal2; - - [ParamField(0x20, ParamType.F32)] - public float StageMaxGrowVal3 - { - get => _StageMaxGrowVal3; - set => WriteParamField(ref _StageMaxGrowVal3, value); - } - private float _StageMaxGrowVal3; - - [ParamField(0x24, ParamType.F32)] - public float StageMaxGrowVal4 - { - get => _StageMaxGrowVal4; - set => WriteParamField(ref _StageMaxGrowVal4, value); - } - private float _StageMaxGrowVal4; - - [ParamField(0x28, ParamType.F32)] - public float AdjPt_maxGrowVal0 - { - get => _AdjPt_maxGrowVal0; - set => WriteParamField(ref _AdjPt_maxGrowVal0, value); - } - private float _AdjPt_maxGrowVal0; - - [ParamField(0x2C, ParamType.F32)] - public float AdjPt_maxGrowVal1 - { - get => _AdjPt_maxGrowVal1; - set => WriteParamField(ref _AdjPt_maxGrowVal1, value); - } - private float _AdjPt_maxGrowVal1; - - [ParamField(0x30, ParamType.F32)] - public float AdjPt_maxGrowVal2 - { - get => _AdjPt_maxGrowVal2; - set => WriteParamField(ref _AdjPt_maxGrowVal2, value); - } - private float _AdjPt_maxGrowVal2; - - [ParamField(0x34, ParamType.F32)] - public float AdjPt_maxGrowVal3 - { - get => _AdjPt_maxGrowVal3; - set => WriteParamField(ref _AdjPt_maxGrowVal3, value); - } - private float _AdjPt_maxGrowVal3; - - [ParamField(0x38, ParamType.F32)] - public float AdjPt_maxGrowVal4 - { - get => _AdjPt_maxGrowVal4; - set => WriteParamField(ref _AdjPt_maxGrowVal4, value); - } - private float _AdjPt_maxGrowVal4; - - [ParamField(0x3C, ParamType.F32)] - public float Init_inclination_soul - { - get => _Init_inclination_soul; - set => WriteParamField(ref _Init_inclination_soul, value); - } - private float _Init_inclination_soul; - - [ParamField(0x40, ParamType.F32)] - public float Adjustment_value - { - get => _Adjustment_value; - set => WriteParamField(ref _Adjustment_value, value); - } - private float _Adjustment_value; - - [ParamField(0x44, ParamType.F32)] - public float Boundry_inclination_soul - { - get => _Boundry_inclination_soul; - set => WriteParamField(ref _Boundry_inclination_soul, value); - } - private float _Boundry_inclination_soul; - - [ParamField(0x48, ParamType.F32)] - public float Boundry_value - { - get => _Boundry_value; - set => WriteParamField(ref _Boundry_value, value); - } - private float _Boundry_value; - - [ParamField(0x4C, ParamType.Dummy8, 4)] - public byte[] Pad - { - get => _Pad; - set => WriteParamField(ref _Pad, value); - } - private byte[] _Pad = null!; + public CalcCorrectGraph(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} + + [ParamField(0x0, ParamType.F32)] + public float StageMaxVal0 + { + get => _StageMaxVal0; + set => WriteParamField(ref _StageMaxVal0, value); + } + private float _StageMaxVal0; + + [ParamField(0x4, ParamType.F32)] + public float StageMaxVal1 + { + get => _StageMaxVal1; + set => WriteParamField(ref _StageMaxVal1, value); + } + private float _StageMaxVal1; + + [ParamField(0x8, ParamType.F32)] + public float StageMaxVal2 + { + get => _StageMaxVal2; + set => WriteParamField(ref _StageMaxVal2, value); + } + private float _StageMaxVal2; + + [ParamField(0xC, ParamType.F32)] + public float StageMaxVal3 + { + get => _StageMaxVal3; + set => WriteParamField(ref _StageMaxVal3, value); + } + private float _StageMaxVal3; + + [ParamField(0x10, ParamType.F32)] + public float StageMaxVal4 + { + get => _StageMaxVal4; + set => WriteParamField(ref _StageMaxVal4, value); + } + private float _StageMaxVal4; + + [ParamField(0x14, ParamType.F32)] + public float StageMaxGrowVal0 + { + get => _StageMaxGrowVal0; + set => WriteParamField(ref _StageMaxGrowVal0, value); + } + private float _StageMaxGrowVal0; + + [ParamField(0x18, ParamType.F32)] + public float StageMaxGrowVal1 + { + get => _StageMaxGrowVal1; + set => WriteParamField(ref _StageMaxGrowVal1, value); + } + private float _StageMaxGrowVal1; + + [ParamField(0x1C, ParamType.F32)] + public float StageMaxGrowVal2 + { + get => _StageMaxGrowVal2; + set => WriteParamField(ref _StageMaxGrowVal2, value); + } + private float _StageMaxGrowVal2; + + [ParamField(0x20, ParamType.F32)] + public float StageMaxGrowVal3 + { + get => _StageMaxGrowVal3; + set => WriteParamField(ref _StageMaxGrowVal3, value); + } + private float _StageMaxGrowVal3; + + [ParamField(0x24, ParamType.F32)] + public float StageMaxGrowVal4 + { + get => _StageMaxGrowVal4; + set => WriteParamField(ref _StageMaxGrowVal4, value); + } + private float _StageMaxGrowVal4; + + [ParamField(0x28, ParamType.F32)] + public float AdjPt_maxGrowVal0 + { + get => _AdjPt_maxGrowVal0; + set => WriteParamField(ref _AdjPt_maxGrowVal0, value); + } + private float _AdjPt_maxGrowVal0; + + [ParamField(0x2C, ParamType.F32)] + public float AdjPt_maxGrowVal1 + { + get => _AdjPt_maxGrowVal1; + set => WriteParamField(ref _AdjPt_maxGrowVal1, value); + } + private float _AdjPt_maxGrowVal1; + + [ParamField(0x30, ParamType.F32)] + public float AdjPt_maxGrowVal2 + { + get => _AdjPt_maxGrowVal2; + set => WriteParamField(ref _AdjPt_maxGrowVal2, value); + } + private float _AdjPt_maxGrowVal2; + + [ParamField(0x34, ParamType.F32)] + public float AdjPt_maxGrowVal3 + { + get => _AdjPt_maxGrowVal3; + set => WriteParamField(ref _AdjPt_maxGrowVal3, value); + } + private float _AdjPt_maxGrowVal3; + + [ParamField(0x38, ParamType.F32)] + public float AdjPt_maxGrowVal4 + { + get => _AdjPt_maxGrowVal4; + set => WriteParamField(ref _AdjPt_maxGrowVal4, value); + } + private float _AdjPt_maxGrowVal4; + + [ParamField(0x3C, ParamType.F32)] + public float Init_inclination_soul + { + get => _Init_inclination_soul; + set => WriteParamField(ref _Init_inclination_soul, value); + } + private float _Init_inclination_soul; + [ParamField(0x40, ParamType.F32)] + public float Adjustment_value + { + get => _Adjustment_value; + set => WriteParamField(ref _Adjustment_value, value); + } + private float _Adjustment_value; + + [ParamField(0x44, ParamType.F32)] + public float Boundry_inclination_soul + { + get => _Boundry_inclination_soul; + set => WriteParamField(ref _Boundry_inclination_soul, value); } + private float _Boundry_inclination_soul; + + [ParamField(0x48, ParamType.F32)] + public float Boundry_value + { + get => _Boundry_value; + set => WriteParamField(ref _Boundry_value, value); + } + private float _Boundry_value; + + [ParamField(0x4C, ParamType.Dummy8, 4)] + public byte[] Pad + { + get => _Pad; + set => WriteParamField(ref _Pad, value); + } + private byte[] _Pad = null!; + } diff --git a/src/SoulMemory/DarkSouls1/Parameters/CharaInitParam.cs b/src/SoulMemory/DarkSouls1/Parameters/CharaInitParam.cs index f843ca5..7bd61de 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/CharaInitParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/CharaInitParam.cs @@ -18,758 +18,757 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters +namespace SoulMemory.DarkSouls1.Parameters; + +[ExcludeFromCodeCoverage] +public class CharaInitParam : BaseParam { - [ExcludeFromCodeCoverage] - public class CharaInitParam : BaseParam - { - public CharaInitParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - - [ParamField(0x0, ParamType.F32)] - public float BaseRec_mp - { - get => _BaseRec_mp; - set => WriteParamField(ref _BaseRec_mp, value); - } - private float _BaseRec_mp; - - [ParamField(0x4, ParamType.F32)] - public float BaseRec_sp - { - get => _BaseRec_sp; - set => WriteParamField(ref _BaseRec_sp, value); - } - private float _BaseRec_sp; - - [ParamField(0x8, ParamType.F32)] - public float Red_Falldam - { - get => _Red_Falldam; - set => WriteParamField(ref _Red_Falldam, value); - } - private float _Red_Falldam; - - [ParamField(0xC, ParamType.I32)] - public int Soul - { - get => _Soul; - set => WriteParamField(ref _Soul, value); - } - private int _Soul; - - [ParamField(0x10, ParamType.I32)] - public int Equip_Wep_Right - { - get => _Equip_Wep_Right; - set => WriteParamField(ref _Equip_Wep_Right, value); - } - private int _Equip_Wep_Right; - - [ParamField(0x14, ParamType.I32)] - public int Equip_Subwep_Right - { - get => _Equip_Subwep_Right; - set => WriteParamField(ref _Equip_Subwep_Right, value); - } - private int _Equip_Subwep_Right; - - [ParamField(0x18, ParamType.I32)] - public int Equip_Wep_Left - { - get => _Equip_Wep_Left; - set => WriteParamField(ref _Equip_Wep_Left, value); - } - private int _Equip_Wep_Left; - - [ParamField(0x1C, ParamType.I32)] - public int Equip_Subwep_Left - { - get => _Equip_Subwep_Left; - set => WriteParamField(ref _Equip_Subwep_Left, value); - } - private int _Equip_Subwep_Left; - - [ParamField(0x20, ParamType.I32)] - public int Equip_Helm - { - get => _Equip_Helm; - set => WriteParamField(ref _Equip_Helm, value); - } - private int _Equip_Helm; - - [ParamField(0x24, ParamType.I32)] - public int Equip_Armer - { - get => _Equip_Armer; - set => WriteParamField(ref _Equip_Armer, value); - } - private int _Equip_Armer; - - [ParamField(0x28, ParamType.I32)] - public int Equip_Gaunt - { - get => _Equip_Gaunt; - set => WriteParamField(ref _Equip_Gaunt, value); - } - private int _Equip_Gaunt; - - [ParamField(0x2C, ParamType.I32)] - public int Equip_Leg - { - get => _Equip_Leg; - set => WriteParamField(ref _Equip_Leg, value); - } - private int _Equip_Leg; - - [ParamField(0x30, ParamType.I32)] - public int Equip_Arrow - { - get => _Equip_Arrow; - set => WriteParamField(ref _Equip_Arrow, value); - } - private int _Equip_Arrow; - - [ParamField(0x34, ParamType.I32)] - public int Equip_Bolt - { - get => _Equip_Bolt; - set => WriteParamField(ref _Equip_Bolt, value); - } - private int _Equip_Bolt; - - [ParamField(0x38, ParamType.I32)] - public int Equip_SubArrow - { - get => _Equip_SubArrow; - set => WriteParamField(ref _Equip_SubArrow, value); - } - private int _Equip_SubArrow; - - [ParamField(0x3C, ParamType.I32)] - public int Equip_SubBolt - { - get => _Equip_SubBolt; - set => WriteParamField(ref _Equip_SubBolt, value); - } - private int _Equip_SubBolt; - - [ParamField(0x40, ParamType.I32)] - public int Equip_Accessory01 - { - get => _Equip_Accessory01; - set => WriteParamField(ref _Equip_Accessory01, value); - } - private int _Equip_Accessory01; - - [ParamField(0x44, ParamType.I32)] - public int Equip_Accessory02 - { - get => _Equip_Accessory02; - set => WriteParamField(ref _Equip_Accessory02, value); - } - private int _Equip_Accessory02; - - [ParamField(0x48, ParamType.I32)] - public int Equip_Accessory03 - { - get => _Equip_Accessory03; - set => WriteParamField(ref _Equip_Accessory03, value); - } - private int _Equip_Accessory03; - - [ParamField(0x4C, ParamType.I32)] - public int Equip_Accessory04 - { - get => _Equip_Accessory04; - set => WriteParamField(ref _Equip_Accessory04, value); - } - private int _Equip_Accessory04; - - [ParamField(0x50, ParamType.I32)] - public int Equip_Accessory05 - { - get => _Equip_Accessory05; - set => WriteParamField(ref _Equip_Accessory05, value); - } - private int _Equip_Accessory05; - - [ParamField(0x54, ParamType.I32)] - public int Equip_Skill_01 - { - get => _Equip_Skill_01; - set => WriteParamField(ref _Equip_Skill_01, value); - } - private int _Equip_Skill_01; - - [ParamField(0x58, ParamType.I32)] - public int Equip_Skill_02 - { - get => _Equip_Skill_02; - set => WriteParamField(ref _Equip_Skill_02, value); - } - private int _Equip_Skill_02; - - [ParamField(0x5C, ParamType.I32)] - public int Equip_Skill_03 - { - get => _Equip_Skill_03; - set => WriteParamField(ref _Equip_Skill_03, value); - } - private int _Equip_Skill_03; - - [ParamField(0x60, ParamType.I32)] - public int Equip_Spell_01 - { - get => _Equip_Spell_01; - set => WriteParamField(ref _Equip_Spell_01, value); - } - private int _Equip_Spell_01; - - [ParamField(0x64, ParamType.I32)] - public int Equip_Spell_02 - { - get => _Equip_Spell_02; - set => WriteParamField(ref _Equip_Spell_02, value); - } - private int _Equip_Spell_02; - - [ParamField(0x68, ParamType.I32)] - public int Equip_Spell_03 - { - get => _Equip_Spell_03; - set => WriteParamField(ref _Equip_Spell_03, value); - } - private int _Equip_Spell_03; - - [ParamField(0x6C, ParamType.I32)] - public int Equip_Spell_04 - { - get => _Equip_Spell_04; - set => WriteParamField(ref _Equip_Spell_04, value); - } - private int _Equip_Spell_04; - - [ParamField(0x70, ParamType.I32)] - public int Equip_Spell_05 - { - get => _Equip_Spell_05; - set => WriteParamField(ref _Equip_Spell_05, value); - } - private int _Equip_Spell_05; - - [ParamField(0x74, ParamType.I32)] - public int Equip_Spell_06 - { - get => _Equip_Spell_06; - set => WriteParamField(ref _Equip_Spell_06, value); - } - private int _Equip_Spell_06; - - [ParamField(0x78, ParamType.I32)] - public int Equip_Spell_07 - { - get => _Equip_Spell_07; - set => WriteParamField(ref _Equip_Spell_07, value); - } - private int _Equip_Spell_07; - - [ParamField(0x7C, ParamType.I32)] - public int Item_01 - { - get => _Item_01; - set => WriteParamField(ref _Item_01, value); - } - private int _Item_01; - - [ParamField(0x80, ParamType.I32)] - public int Item_02 - { - get => _Item_02; - set => WriteParamField(ref _Item_02, value); - } - private int _Item_02; - - [ParamField(0x84, ParamType.I32)] - public int Item_03 - { - get => _Item_03; - set => WriteParamField(ref _Item_03, value); - } - private int _Item_03; - - [ParamField(0x88, ParamType.I32)] - public int Item_04 - { - get => _Item_04; - set => WriteParamField(ref _Item_04, value); - } - private int _Item_04; - - [ParamField(0x8C, ParamType.I32)] - public int Item_05 - { - get => _Item_05; - set => WriteParamField(ref _Item_05, value); - } - private int _Item_05; - - [ParamField(0x90, ParamType.I32)] - public int Item_06 - { - get => _Item_06; - set => WriteParamField(ref _Item_06, value); - } - private int _Item_06; - - [ParamField(0x94, ParamType.I32)] - public int Item_07 - { - get => _Item_07; - set => WriteParamField(ref _Item_07, value); - } - private int _Item_07; - - [ParamField(0x98, ParamType.I32)] - public int Item_08 - { - get => _Item_08; - set => WriteParamField(ref _Item_08, value); - } - private int _Item_08; - - [ParamField(0x9C, ParamType.I32)] - public int Item_09 - { - get => _Item_09; - set => WriteParamField(ref _Item_09, value); - } - private int _Item_09; - - [ParamField(0xA0, ParamType.I32)] - public int Item_10 - { - get => _Item_10; - set => WriteParamField(ref _Item_10, value); - } - private int _Item_10; - - [ParamField(0xA4, ParamType.I32)] - public int NpcPlayerFaceGenId - { - get => _NpcPlayerFaceGenId; - set => WriteParamField(ref _NpcPlayerFaceGenId, value); - } - private int _NpcPlayerFaceGenId; - - [ParamField(0xA8, ParamType.I32)] - public int NpcPlayerThinkId - { - get => _NpcPlayerThinkId; - set => WriteParamField(ref _NpcPlayerThinkId, value); - } - private int _NpcPlayerThinkId; - - [ParamField(0xAC, ParamType.U16)] - public ushort BaseHp - { - get => _BaseHp; - set => WriteParamField(ref _BaseHp, value); - } - private ushort _BaseHp; - - [ParamField(0xAE, ParamType.U16)] - public ushort BaseMp - { - get => _BaseMp; - set => WriteParamField(ref _BaseMp, value); - } - private ushort _BaseMp; - - [ParamField(0xB0, ParamType.U16)] - public ushort BaseSp - { - get => _BaseSp; - set => WriteParamField(ref _BaseSp, value); - } - private ushort _BaseSp; - - [ParamField(0xB2, ParamType.U16)] - public ushort ArrowNum - { - get => _ArrowNum; - set => WriteParamField(ref _ArrowNum, value); - } - private ushort _ArrowNum; - - [ParamField(0xB4, ParamType.U16)] - public ushort BoltNum - { - get => _BoltNum; - set => WriteParamField(ref _BoltNum, value); - } - private ushort _BoltNum; - - [ParamField(0xB6, ParamType.U16)] - public ushort SubArrowNum - { - get => _SubArrowNum; - set => WriteParamField(ref _SubArrowNum, value); - } - private ushort _SubArrowNum; - - [ParamField(0xB8, ParamType.U16)] - public ushort SubBoltNum - { - get => _SubBoltNum; - set => WriteParamField(ref _SubBoltNum, value); - } - private ushort _SubBoltNum; - - [ParamField(0xBA, ParamType.I16)] - public short QWC_sb - { - get => _QWC_sb; - set => WriteParamField(ref _QWC_sb, value); - } - private short _QWC_sb; - - [ParamField(0xBC, ParamType.I16)] - public short QWC_mw - { - get => _QWC_mw; - set => WriteParamField(ref _QWC_mw, value); - } - private short _QWC_mw; - - [ParamField(0xBE, ParamType.I16)] - public short QWC_cd - { - get => _QWC_cd; - set => WriteParamField(ref _QWC_cd, value); - } - private short _QWC_cd; - - [ParamField(0xC0, ParamType.I16)] - public short SoulLv - { - get => _SoulLv; - set => WriteParamField(ref _SoulLv, value); - } - private short _SoulLv; - - [ParamField(0xC2, ParamType.U8)] - public byte BaseVit - { - get => _BaseVit; - set => WriteParamField(ref _BaseVit, value); - } - private byte _BaseVit; - - [ParamField(0xC3, ParamType.U8)] - public byte BaseWil - { - get => _BaseWil; - set => WriteParamField(ref _BaseWil, value); - } - private byte _BaseWil; - - [ParamField(0xC4, ParamType.U8)] - public byte BaseEnd - { - get => _BaseEnd; - set => WriteParamField(ref _BaseEnd, value); - } - private byte _BaseEnd; - - [ParamField(0xC5, ParamType.U8)] - public byte BaseStr - { - get => _BaseStr; - set => WriteParamField(ref _BaseStr, value); - } - private byte _BaseStr; - - [ParamField(0xC6, ParamType.U8)] - public byte BaseDex - { - get => _BaseDex; - set => WriteParamField(ref _BaseDex, value); - } - private byte _BaseDex; - - [ParamField(0xC7, ParamType.U8)] - public byte BaseMag - { - get => _BaseMag; - set => WriteParamField(ref _BaseMag, value); - } - private byte _BaseMag; - - [ParamField(0xC8, ParamType.U8)] - public byte BaseFai - { - get => _BaseFai; - set => WriteParamField(ref _BaseFai, value); - } - private byte _BaseFai; - - [ParamField(0xC9, ParamType.U8)] - public byte BaseLuc - { - get => _BaseLuc; - set => WriteParamField(ref _BaseLuc, value); - } - private byte _BaseLuc; - - [ParamField(0xCA, ParamType.U8)] - public byte BaseHeroPoint - { - get => _BaseHeroPoint; - set => WriteParamField(ref _BaseHeroPoint, value); - } - private byte _BaseHeroPoint; - - [ParamField(0xCB, ParamType.U8)] - public byte BaseDurability - { - get => _BaseDurability; - set => WriteParamField(ref _BaseDurability, value); - } - private byte _BaseDurability; - - [ParamField(0xCC, ParamType.U8)] - public byte ItemNum_01 - { - get => _ItemNum_01; - set => WriteParamField(ref _ItemNum_01, value); - } - private byte _ItemNum_01; - - [ParamField(0xCD, ParamType.U8)] - public byte ItemNum_02 - { - get => _ItemNum_02; - set => WriteParamField(ref _ItemNum_02, value); - } - private byte _ItemNum_02; - - [ParamField(0xCE, ParamType.U8)] - public byte ItemNum_03 - { - get => _ItemNum_03; - set => WriteParamField(ref _ItemNum_03, value); - } - private byte _ItemNum_03; - - [ParamField(0xCF, ParamType.U8)] - public byte ItemNum_04 - { - get => _ItemNum_04; - set => WriteParamField(ref _ItemNum_04, value); - } - private byte _ItemNum_04; - - [ParamField(0xD0, ParamType.U8)] - public byte ItemNum_05 - { - get => _ItemNum_05; - set => WriteParamField(ref _ItemNum_05, value); - } - private byte _ItemNum_05; - - [ParamField(0xD1, ParamType.U8)] - public byte ItemNum_06 - { - get => _ItemNum_06; - set => WriteParamField(ref _ItemNum_06, value); - } - private byte _ItemNum_06; - - [ParamField(0xD2, ParamType.U8)] - public byte ItemNum_07 - { - get => _ItemNum_07; - set => WriteParamField(ref _ItemNum_07, value); - } - private byte _ItemNum_07; - - [ParamField(0xD3, ParamType.U8)] - public byte ItemNum_08 - { - get => _ItemNum_08; - set => WriteParamField(ref _ItemNum_08, value); - } - private byte _ItemNum_08; - - [ParamField(0xD4, ParamType.U8)] - public byte ItemNum_09 - { - get => _ItemNum_09; - set => WriteParamField(ref _ItemNum_09, value); - } - private byte _ItemNum_09; - - [ParamField(0xD5, ParamType.U8)] - public byte ItemNum_10 - { - get => _ItemNum_10; - set => WriteParamField(ref _ItemNum_10, value); - } - private byte _ItemNum_10; - - [ParamField(0xD6, ParamType.I8)] - public sbyte BodyScaleHead - { - get => _BodyScaleHead; - set => WriteParamField(ref _BodyScaleHead, value); - } - private sbyte _BodyScaleHead; - - [ParamField(0xD7, ParamType.I8)] - public sbyte BodyScaleBreast - { - get => _BodyScaleBreast; - set => WriteParamField(ref _BodyScaleBreast, value); - } - private sbyte _BodyScaleBreast; - - [ParamField(0xD8, ParamType.I8)] - public sbyte BodyScaleAbdomen - { - get => _BodyScaleAbdomen; - set => WriteParamField(ref _BodyScaleAbdomen, value); - } - private sbyte _BodyScaleAbdomen; - - [ParamField(0xD9, ParamType.I8)] - public sbyte BodyScaleArm - { - get => _BodyScaleArm; - set => WriteParamField(ref _BodyScaleArm, value); - } - private sbyte _BodyScaleArm; - - [ParamField(0xDA, ParamType.I8)] - public sbyte BodyScaleLeg - { - get => _BodyScaleLeg; - set => WriteParamField(ref _BodyScaleLeg, value); - } - private sbyte _BodyScaleLeg; - - [ParamField(0xDB, ParamType.I8)] - public sbyte GestureId0 - { - get => _GestureId0; - set => WriteParamField(ref _GestureId0, value); - } - private sbyte _GestureId0; - - [ParamField(0xDC, ParamType.I8)] - public sbyte GestureId1 - { - get => _GestureId1; - set => WriteParamField(ref _GestureId1, value); - } - private sbyte _GestureId1; - - [ParamField(0xDD, ParamType.I8)] - public sbyte GestureId2 - { - get => _GestureId2; - set => WriteParamField(ref _GestureId2, value); - } - private sbyte _GestureId2; - - [ParamField(0xDE, ParamType.I8)] - public sbyte GestureId3 - { - get => _GestureId3; - set => WriteParamField(ref _GestureId3, value); - } - private sbyte _GestureId3; - - [ParamField(0xDF, ParamType.I8)] - public sbyte GestureId4 - { - get => _GestureId4; - set => WriteParamField(ref _GestureId4, value); - } - private sbyte _GestureId4; - - [ParamField(0xE0, ParamType.I8)] - public sbyte GestureId5 - { - get => _GestureId5; - set => WriteParamField(ref _GestureId5, value); - } - private sbyte _GestureId5; - - [ParamField(0xE1, ParamType.I8)] - public sbyte GestureId6 - { - get => _GestureId6; - set => WriteParamField(ref _GestureId6, value); - } - private sbyte _GestureId6; - - [ParamField(0xE2, ParamType.U8)] - public byte NpcPlayerType - { - get => _NpcPlayerType; - set => WriteParamField(ref _NpcPlayerType, value); - } - private byte _NpcPlayerType; - - [ParamField(0xE3, ParamType.U8)] - public byte NpcPlayerDrawType - { - get => _NpcPlayerDrawType; - set => WriteParamField(ref _NpcPlayerDrawType, value); - } - private byte _NpcPlayerDrawType; - - [ParamField(0xE4, ParamType.U8)] - public byte NpcPlayerSex - { - get => _NpcPlayerSex; - set => WriteParamField(ref _NpcPlayerSex, value); - } - private byte _NpcPlayerSex; - - #region BitField VowTypeBitfield ============================================================================== - - [ParamField(0xE5, ParamType.U8)] - public byte VowTypeBitfield - { - get => _VowTypeBitfield; - set => WriteParamField(ref _VowTypeBitfield, value); - } - private byte _VowTypeBitfield; - - [ParamBitField(nameof(VowTypeBitfield), bits: 4, bitsOffset: 0)] - public byte VowType - { - get => GetbitfieldValue(_VowTypeBitfield); - set => SetBitfieldValue(ref _VowTypeBitfield, value); - } - - [ParamBitField(nameof(VowTypeBitfield), bits: 4, bitsOffset: 4)] - public byte Pad - { - get => GetbitfieldValue(_VowTypeBitfield); - set => SetBitfieldValue(ref _VowTypeBitfield, value); - } - - #endregion BitField VowTypeBitfield - - [ParamField(0xE6, ParamType.Dummy8, 10)] - public byte[] Pad0 - { - get => _Pad0; - set => WriteParamField(ref _Pad0, value); - } - private byte[] _Pad0 = null!; + public CharaInitParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} + + [ParamField(0x0, ParamType.F32)] + public float BaseRec_mp + { + get => _BaseRec_mp; + set => WriteParamField(ref _BaseRec_mp, value); + } + private float _BaseRec_mp; + + [ParamField(0x4, ParamType.F32)] + public float BaseRec_sp + { + get => _BaseRec_sp; + set => WriteParamField(ref _BaseRec_sp, value); + } + private float _BaseRec_sp; + + [ParamField(0x8, ParamType.F32)] + public float Red_Falldam + { + get => _Red_Falldam; + set => WriteParamField(ref _Red_Falldam, value); + } + private float _Red_Falldam; + + [ParamField(0xC, ParamType.I32)] + public int Soul + { + get => _Soul; + set => WriteParamField(ref _Soul, value); + } + private int _Soul; + + [ParamField(0x10, ParamType.I32)] + public int Equip_Wep_Right + { + get => _Equip_Wep_Right; + set => WriteParamField(ref _Equip_Wep_Right, value); + } + private int _Equip_Wep_Right; + + [ParamField(0x14, ParamType.I32)] + public int Equip_Subwep_Right + { + get => _Equip_Subwep_Right; + set => WriteParamField(ref _Equip_Subwep_Right, value); + } + private int _Equip_Subwep_Right; + + [ParamField(0x18, ParamType.I32)] + public int Equip_Wep_Left + { + get => _Equip_Wep_Left; + set => WriteParamField(ref _Equip_Wep_Left, value); + } + private int _Equip_Wep_Left; + + [ParamField(0x1C, ParamType.I32)] + public int Equip_Subwep_Left + { + get => _Equip_Subwep_Left; + set => WriteParamField(ref _Equip_Subwep_Left, value); + } + private int _Equip_Subwep_Left; + + [ParamField(0x20, ParamType.I32)] + public int Equip_Helm + { + get => _Equip_Helm; + set => WriteParamField(ref _Equip_Helm, value); + } + private int _Equip_Helm; + [ParamField(0x24, ParamType.I32)] + public int Equip_Armer + { + get => _Equip_Armer; + set => WriteParamField(ref _Equip_Armer, value); + } + private int _Equip_Armer; + + [ParamField(0x28, ParamType.I32)] + public int Equip_Gaunt + { + get => _Equip_Gaunt; + set => WriteParamField(ref _Equip_Gaunt, value); + } + private int _Equip_Gaunt; + + [ParamField(0x2C, ParamType.I32)] + public int Equip_Leg + { + get => _Equip_Leg; + set => WriteParamField(ref _Equip_Leg, value); + } + private int _Equip_Leg; + + [ParamField(0x30, ParamType.I32)] + public int Equip_Arrow + { + get => _Equip_Arrow; + set => WriteParamField(ref _Equip_Arrow, value); + } + private int _Equip_Arrow; + + [ParamField(0x34, ParamType.I32)] + public int Equip_Bolt + { + get => _Equip_Bolt; + set => WriteParamField(ref _Equip_Bolt, value); + } + private int _Equip_Bolt; + + [ParamField(0x38, ParamType.I32)] + public int Equip_SubArrow + { + get => _Equip_SubArrow; + set => WriteParamField(ref _Equip_SubArrow, value); + } + private int _Equip_SubArrow; + + [ParamField(0x3C, ParamType.I32)] + public int Equip_SubBolt + { + get => _Equip_SubBolt; + set => WriteParamField(ref _Equip_SubBolt, value); + } + private int _Equip_SubBolt; + + [ParamField(0x40, ParamType.I32)] + public int Equip_Accessory01 + { + get => _Equip_Accessory01; + set => WriteParamField(ref _Equip_Accessory01, value); + } + private int _Equip_Accessory01; + + [ParamField(0x44, ParamType.I32)] + public int Equip_Accessory02 + { + get => _Equip_Accessory02; + set => WriteParamField(ref _Equip_Accessory02, value); + } + private int _Equip_Accessory02; + + [ParamField(0x48, ParamType.I32)] + public int Equip_Accessory03 + { + get => _Equip_Accessory03; + set => WriteParamField(ref _Equip_Accessory03, value); + } + private int _Equip_Accessory03; + + [ParamField(0x4C, ParamType.I32)] + public int Equip_Accessory04 + { + get => _Equip_Accessory04; + set => WriteParamField(ref _Equip_Accessory04, value); + } + private int _Equip_Accessory04; + + [ParamField(0x50, ParamType.I32)] + public int Equip_Accessory05 + { + get => _Equip_Accessory05; + set => WriteParamField(ref _Equip_Accessory05, value); + } + private int _Equip_Accessory05; + + [ParamField(0x54, ParamType.I32)] + public int Equip_Skill_01 + { + get => _Equip_Skill_01; + set => WriteParamField(ref _Equip_Skill_01, value); + } + private int _Equip_Skill_01; + + [ParamField(0x58, ParamType.I32)] + public int Equip_Skill_02 + { + get => _Equip_Skill_02; + set => WriteParamField(ref _Equip_Skill_02, value); + } + private int _Equip_Skill_02; + + [ParamField(0x5C, ParamType.I32)] + public int Equip_Skill_03 + { + get => _Equip_Skill_03; + set => WriteParamField(ref _Equip_Skill_03, value); } + private int _Equip_Skill_03; + + [ParamField(0x60, ParamType.I32)] + public int Equip_Spell_01 + { + get => _Equip_Spell_01; + set => WriteParamField(ref _Equip_Spell_01, value); + } + private int _Equip_Spell_01; + + [ParamField(0x64, ParamType.I32)] + public int Equip_Spell_02 + { + get => _Equip_Spell_02; + set => WriteParamField(ref _Equip_Spell_02, value); + } + private int _Equip_Spell_02; + + [ParamField(0x68, ParamType.I32)] + public int Equip_Spell_03 + { + get => _Equip_Spell_03; + set => WriteParamField(ref _Equip_Spell_03, value); + } + private int _Equip_Spell_03; + + [ParamField(0x6C, ParamType.I32)] + public int Equip_Spell_04 + { + get => _Equip_Spell_04; + set => WriteParamField(ref _Equip_Spell_04, value); + } + private int _Equip_Spell_04; + + [ParamField(0x70, ParamType.I32)] + public int Equip_Spell_05 + { + get => _Equip_Spell_05; + set => WriteParamField(ref _Equip_Spell_05, value); + } + private int _Equip_Spell_05; + + [ParamField(0x74, ParamType.I32)] + public int Equip_Spell_06 + { + get => _Equip_Spell_06; + set => WriteParamField(ref _Equip_Spell_06, value); + } + private int _Equip_Spell_06; + + [ParamField(0x78, ParamType.I32)] + public int Equip_Spell_07 + { + get => _Equip_Spell_07; + set => WriteParamField(ref _Equip_Spell_07, value); + } + private int _Equip_Spell_07; + + [ParamField(0x7C, ParamType.I32)] + public int Item_01 + { + get => _Item_01; + set => WriteParamField(ref _Item_01, value); + } + private int _Item_01; + + [ParamField(0x80, ParamType.I32)] + public int Item_02 + { + get => _Item_02; + set => WriteParamField(ref _Item_02, value); + } + private int _Item_02; + + [ParamField(0x84, ParamType.I32)] + public int Item_03 + { + get => _Item_03; + set => WriteParamField(ref _Item_03, value); + } + private int _Item_03; + + [ParamField(0x88, ParamType.I32)] + public int Item_04 + { + get => _Item_04; + set => WriteParamField(ref _Item_04, value); + } + private int _Item_04; + + [ParamField(0x8C, ParamType.I32)] + public int Item_05 + { + get => _Item_05; + set => WriteParamField(ref _Item_05, value); + } + private int _Item_05; + + [ParamField(0x90, ParamType.I32)] + public int Item_06 + { + get => _Item_06; + set => WriteParamField(ref _Item_06, value); + } + private int _Item_06; + + [ParamField(0x94, ParamType.I32)] + public int Item_07 + { + get => _Item_07; + set => WriteParamField(ref _Item_07, value); + } + private int _Item_07; + + [ParamField(0x98, ParamType.I32)] + public int Item_08 + { + get => _Item_08; + set => WriteParamField(ref _Item_08, value); + } + private int _Item_08; + + [ParamField(0x9C, ParamType.I32)] + public int Item_09 + { + get => _Item_09; + set => WriteParamField(ref _Item_09, value); + } + private int _Item_09; + + [ParamField(0xA0, ParamType.I32)] + public int Item_10 + { + get => _Item_10; + set => WriteParamField(ref _Item_10, value); + } + private int _Item_10; + + [ParamField(0xA4, ParamType.I32)] + public int NpcPlayerFaceGenId + { + get => _NpcPlayerFaceGenId; + set => WriteParamField(ref _NpcPlayerFaceGenId, value); + } + private int _NpcPlayerFaceGenId; + + [ParamField(0xA8, ParamType.I32)] + public int NpcPlayerThinkId + { + get => _NpcPlayerThinkId; + set => WriteParamField(ref _NpcPlayerThinkId, value); + } + private int _NpcPlayerThinkId; + + [ParamField(0xAC, ParamType.U16)] + public ushort BaseHp + { + get => _BaseHp; + set => WriteParamField(ref _BaseHp, value); + } + private ushort _BaseHp; + + [ParamField(0xAE, ParamType.U16)] + public ushort BaseMp + { + get => _BaseMp; + set => WriteParamField(ref _BaseMp, value); + } + private ushort _BaseMp; + + [ParamField(0xB0, ParamType.U16)] + public ushort BaseSp + { + get => _BaseSp; + set => WriteParamField(ref _BaseSp, value); + } + private ushort _BaseSp; + + [ParamField(0xB2, ParamType.U16)] + public ushort ArrowNum + { + get => _ArrowNum; + set => WriteParamField(ref _ArrowNum, value); + } + private ushort _ArrowNum; + + [ParamField(0xB4, ParamType.U16)] + public ushort BoltNum + { + get => _BoltNum; + set => WriteParamField(ref _BoltNum, value); + } + private ushort _BoltNum; + + [ParamField(0xB6, ParamType.U16)] + public ushort SubArrowNum + { + get => _SubArrowNum; + set => WriteParamField(ref _SubArrowNum, value); + } + private ushort _SubArrowNum; + + [ParamField(0xB8, ParamType.U16)] + public ushort SubBoltNum + { + get => _SubBoltNum; + set => WriteParamField(ref _SubBoltNum, value); + } + private ushort _SubBoltNum; + + [ParamField(0xBA, ParamType.I16)] + public short QWC_sb + { + get => _QWC_sb; + set => WriteParamField(ref _QWC_sb, value); + } + private short _QWC_sb; + + [ParamField(0xBC, ParamType.I16)] + public short QWC_mw + { + get => _QWC_mw; + set => WriteParamField(ref _QWC_mw, value); + } + private short _QWC_mw; + + [ParamField(0xBE, ParamType.I16)] + public short QWC_cd + { + get => _QWC_cd; + set => WriteParamField(ref _QWC_cd, value); + } + private short _QWC_cd; + + [ParamField(0xC0, ParamType.I16)] + public short SoulLv + { + get => _SoulLv; + set => WriteParamField(ref _SoulLv, value); + } + private short _SoulLv; + + [ParamField(0xC2, ParamType.U8)] + public byte BaseVit + { + get => _BaseVit; + set => WriteParamField(ref _BaseVit, value); + } + private byte _BaseVit; + + [ParamField(0xC3, ParamType.U8)] + public byte BaseWil + { + get => _BaseWil; + set => WriteParamField(ref _BaseWil, value); + } + private byte _BaseWil; + + [ParamField(0xC4, ParamType.U8)] + public byte BaseEnd + { + get => _BaseEnd; + set => WriteParamField(ref _BaseEnd, value); + } + private byte _BaseEnd; + + [ParamField(0xC5, ParamType.U8)] + public byte BaseStr + { + get => _BaseStr; + set => WriteParamField(ref _BaseStr, value); + } + private byte _BaseStr; + + [ParamField(0xC6, ParamType.U8)] + public byte BaseDex + { + get => _BaseDex; + set => WriteParamField(ref _BaseDex, value); + } + private byte _BaseDex; + + [ParamField(0xC7, ParamType.U8)] + public byte BaseMag + { + get => _BaseMag; + set => WriteParamField(ref _BaseMag, value); + } + private byte _BaseMag; + + [ParamField(0xC8, ParamType.U8)] + public byte BaseFai + { + get => _BaseFai; + set => WriteParamField(ref _BaseFai, value); + } + private byte _BaseFai; + + [ParamField(0xC9, ParamType.U8)] + public byte BaseLuc + { + get => _BaseLuc; + set => WriteParamField(ref _BaseLuc, value); + } + private byte _BaseLuc; + + [ParamField(0xCA, ParamType.U8)] + public byte BaseHeroPoint + { + get => _BaseHeroPoint; + set => WriteParamField(ref _BaseHeroPoint, value); + } + private byte _BaseHeroPoint; + + [ParamField(0xCB, ParamType.U8)] + public byte BaseDurability + { + get => _BaseDurability; + set => WriteParamField(ref _BaseDurability, value); + } + private byte _BaseDurability; + + [ParamField(0xCC, ParamType.U8)] + public byte ItemNum_01 + { + get => _ItemNum_01; + set => WriteParamField(ref _ItemNum_01, value); + } + private byte _ItemNum_01; + + [ParamField(0xCD, ParamType.U8)] + public byte ItemNum_02 + { + get => _ItemNum_02; + set => WriteParamField(ref _ItemNum_02, value); + } + private byte _ItemNum_02; + + [ParamField(0xCE, ParamType.U8)] + public byte ItemNum_03 + { + get => _ItemNum_03; + set => WriteParamField(ref _ItemNum_03, value); + } + private byte _ItemNum_03; + + [ParamField(0xCF, ParamType.U8)] + public byte ItemNum_04 + { + get => _ItemNum_04; + set => WriteParamField(ref _ItemNum_04, value); + } + private byte _ItemNum_04; + + [ParamField(0xD0, ParamType.U8)] + public byte ItemNum_05 + { + get => _ItemNum_05; + set => WriteParamField(ref _ItemNum_05, value); + } + private byte _ItemNum_05; + + [ParamField(0xD1, ParamType.U8)] + public byte ItemNum_06 + { + get => _ItemNum_06; + set => WriteParamField(ref _ItemNum_06, value); + } + private byte _ItemNum_06; + + [ParamField(0xD2, ParamType.U8)] + public byte ItemNum_07 + { + get => _ItemNum_07; + set => WriteParamField(ref _ItemNum_07, value); + } + private byte _ItemNum_07; + + [ParamField(0xD3, ParamType.U8)] + public byte ItemNum_08 + { + get => _ItemNum_08; + set => WriteParamField(ref _ItemNum_08, value); + } + private byte _ItemNum_08; + + [ParamField(0xD4, ParamType.U8)] + public byte ItemNum_09 + { + get => _ItemNum_09; + set => WriteParamField(ref _ItemNum_09, value); + } + private byte _ItemNum_09; + + [ParamField(0xD5, ParamType.U8)] + public byte ItemNum_10 + { + get => _ItemNum_10; + set => WriteParamField(ref _ItemNum_10, value); + } + private byte _ItemNum_10; + + [ParamField(0xD6, ParamType.I8)] + public sbyte BodyScaleHead + { + get => _BodyScaleHead; + set => WriteParamField(ref _BodyScaleHead, value); + } + private sbyte _BodyScaleHead; + + [ParamField(0xD7, ParamType.I8)] + public sbyte BodyScaleBreast + { + get => _BodyScaleBreast; + set => WriteParamField(ref _BodyScaleBreast, value); + } + private sbyte _BodyScaleBreast; + + [ParamField(0xD8, ParamType.I8)] + public sbyte BodyScaleAbdomen + { + get => _BodyScaleAbdomen; + set => WriteParamField(ref _BodyScaleAbdomen, value); + } + private sbyte _BodyScaleAbdomen; + + [ParamField(0xD9, ParamType.I8)] + public sbyte BodyScaleArm + { + get => _BodyScaleArm; + set => WriteParamField(ref _BodyScaleArm, value); + } + private sbyte _BodyScaleArm; + + [ParamField(0xDA, ParamType.I8)] + public sbyte BodyScaleLeg + { + get => _BodyScaleLeg; + set => WriteParamField(ref _BodyScaleLeg, value); + } + private sbyte _BodyScaleLeg; + + [ParamField(0xDB, ParamType.I8)] + public sbyte GestureId0 + { + get => _GestureId0; + set => WriteParamField(ref _GestureId0, value); + } + private sbyte _GestureId0; + + [ParamField(0xDC, ParamType.I8)] + public sbyte GestureId1 + { + get => _GestureId1; + set => WriteParamField(ref _GestureId1, value); + } + private sbyte _GestureId1; + + [ParamField(0xDD, ParamType.I8)] + public sbyte GestureId2 + { + get => _GestureId2; + set => WriteParamField(ref _GestureId2, value); + } + private sbyte _GestureId2; + + [ParamField(0xDE, ParamType.I8)] + public sbyte GestureId3 + { + get => _GestureId3; + set => WriteParamField(ref _GestureId3, value); + } + private sbyte _GestureId3; + + [ParamField(0xDF, ParamType.I8)] + public sbyte GestureId4 + { + get => _GestureId4; + set => WriteParamField(ref _GestureId4, value); + } + private sbyte _GestureId4; + + [ParamField(0xE0, ParamType.I8)] + public sbyte GestureId5 + { + get => _GestureId5; + set => WriteParamField(ref _GestureId5, value); + } + private sbyte _GestureId5; + + [ParamField(0xE1, ParamType.I8)] + public sbyte GestureId6 + { + get => _GestureId6; + set => WriteParamField(ref _GestureId6, value); + } + private sbyte _GestureId6; + + [ParamField(0xE2, ParamType.U8)] + public byte NpcPlayerType + { + get => _NpcPlayerType; + set => WriteParamField(ref _NpcPlayerType, value); + } + private byte _NpcPlayerType; + + [ParamField(0xE3, ParamType.U8)] + public byte NpcPlayerDrawType + { + get => _NpcPlayerDrawType; + set => WriteParamField(ref _NpcPlayerDrawType, value); + } + private byte _NpcPlayerDrawType; + + [ParamField(0xE4, ParamType.U8)] + public byte NpcPlayerSex + { + get => _NpcPlayerSex; + set => WriteParamField(ref _NpcPlayerSex, value); + } + private byte _NpcPlayerSex; + + #region BitField VowTypeBitfield ============================================================================== + + [ParamField(0xE5, ParamType.U8)] + public byte VowTypeBitfield + { + get => _VowTypeBitfield; + set => WriteParamField(ref _VowTypeBitfield, value); + } + private byte _VowTypeBitfield; + + [ParamBitField(nameof(VowTypeBitfield), bits: 4, bitsOffset: 0)] + public byte VowType + { + get => GetbitfieldValue(_VowTypeBitfield); + set => SetBitfieldValue(ref _VowTypeBitfield, value); + } + + [ParamBitField(nameof(VowTypeBitfield), bits: 4, bitsOffset: 4)] + public byte Pad + { + get => GetbitfieldValue(_VowTypeBitfield); + set => SetBitfieldValue(ref _VowTypeBitfield, value); + } + + #endregion BitField VowTypeBitfield + + [ParamField(0xE6, ParamType.Dummy8, 10)] + public byte[] Pad0 + { + get => _Pad0; + set => WriteParamField(ref _Pad0, value); + } + private byte[] _Pad0 = null!; + } diff --git a/src/SoulMemory/DarkSouls1/Parameters/CoolTimeParam.cs b/src/SoulMemory/DarkSouls1/Parameters/CoolTimeParam.cs index de740e3..463d3f7 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/CoolTimeParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/CoolTimeParam.cs @@ -18,76 +18,75 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters -{ - [ExcludeFromCodeCoverage] - public class CoolTimeParam : BaseParam - { - public CoolTimeParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} +namespace SoulMemory.DarkSouls1.Parameters; - [ParamField(0x0, ParamType.F32)] - public float LimitationTime_0 - { - get => _LimitationTime_0; - set => WriteParamField(ref _LimitationTime_0, value); - } - private float _LimitationTime_0; +[ExcludeFromCodeCoverage] +public class CoolTimeParam : BaseParam +{ + public CoolTimeParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x4, ParamType.F32)] - public float ObservationTime_0 - { - get => _ObservationTime_0; - set => WriteParamField(ref _ObservationTime_0, value); - } - private float _ObservationTime_0; + [ParamField(0x0, ParamType.F32)] + public float LimitationTime_0 + { + get => _LimitationTime_0; + set => WriteParamField(ref _LimitationTime_0, value); + } + private float _LimitationTime_0; - [ParamField(0x8, ParamType.F32)] - public float LimitationTime_1 - { - get => _LimitationTime_1; - set => WriteParamField(ref _LimitationTime_1, value); - } - private float _LimitationTime_1; + [ParamField(0x4, ParamType.F32)] + public float ObservationTime_0 + { + get => _ObservationTime_0; + set => WriteParamField(ref _ObservationTime_0, value); + } + private float _ObservationTime_0; - [ParamField(0xC, ParamType.F32)] - public float ObservationTime_1 - { - get => _ObservationTime_1; - set => WriteParamField(ref _ObservationTime_1, value); - } - private float _ObservationTime_1; + [ParamField(0x8, ParamType.F32)] + public float LimitationTime_1 + { + get => _LimitationTime_1; + set => WriteParamField(ref _LimitationTime_1, value); + } + private float _LimitationTime_1; - [ParamField(0x10, ParamType.F32)] - public float LimitationTime_2 - { - get => _LimitationTime_2; - set => WriteParamField(ref _LimitationTime_2, value); - } - private float _LimitationTime_2; + [ParamField(0xC, ParamType.F32)] + public float ObservationTime_1 + { + get => _ObservationTime_1; + set => WriteParamField(ref _ObservationTime_1, value); + } + private float _ObservationTime_1; - [ParamField(0x14, ParamType.F32)] - public float ObservationTime_2 - { - get => _ObservationTime_2; - set => WriteParamField(ref _ObservationTime_2, value); - } - private float _ObservationTime_2; + [ParamField(0x10, ParamType.F32)] + public float LimitationTime_2 + { + get => _LimitationTime_2; + set => WriteParamField(ref _LimitationTime_2, value); + } + private float _LimitationTime_2; - [ParamField(0x18, ParamType.F32)] - public float LimitationTime_3 - { - get => _LimitationTime_3; - set => WriteParamField(ref _LimitationTime_3, value); - } - private float _LimitationTime_3; + [ParamField(0x14, ParamType.F32)] + public float ObservationTime_2 + { + get => _ObservationTime_2; + set => WriteParamField(ref _ObservationTime_2, value); + } + private float _ObservationTime_2; - [ParamField(0x1C, ParamType.F32)] - public float ObservationTime_3 - { - get => _ObservationTime_3; - set => WriteParamField(ref _ObservationTime_3, value); - } - private float _ObservationTime_3; + [ParamField(0x18, ParamType.F32)] + public float LimitationTime_3 + { + get => _LimitationTime_3; + set => WriteParamField(ref _LimitationTime_3, value); + } + private float _LimitationTime_3; + [ParamField(0x1C, ParamType.F32)] + public float ObservationTime_3 + { + get => _ObservationTime_3; + set => WriteParamField(ref _ObservationTime_3, value); } + private float _ObservationTime_3; + } diff --git a/src/SoulMemory/DarkSouls1/Parameters/DofBank.cs b/src/SoulMemory/DarkSouls1/Parameters/DofBank.cs index 37d79fd..6c4c9a0 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/DofBank.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/DofBank.cs @@ -18,84 +18,83 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters -{ - [ExcludeFromCodeCoverage] - public class DofBank : BaseParam - { - public DofBank(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} +namespace SoulMemory.DarkSouls1.Parameters; - [ParamField(0x0, ParamType.F32)] - public float FarDofBegin - { - get => _FarDofBegin; - set => WriteParamField(ref _FarDofBegin, value); - } - private float _FarDofBegin; +[ExcludeFromCodeCoverage] +public class DofBank : BaseParam +{ + public DofBank(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x4, ParamType.F32)] - public float FarDofEnd - { - get => _FarDofEnd; - set => WriteParamField(ref _FarDofEnd, value); - } - private float _FarDofEnd; + [ParamField(0x0, ParamType.F32)] + public float FarDofBegin + { + get => _FarDofBegin; + set => WriteParamField(ref _FarDofBegin, value); + } + private float _FarDofBegin; - [ParamField(0x8, ParamType.U8)] - public byte FarDofMul - { - get => _FarDofMul; - set => WriteParamField(ref _FarDofMul, value); - } - private byte _FarDofMul; + [ParamField(0x4, ParamType.F32)] + public float FarDofEnd + { + get => _FarDofEnd; + set => WriteParamField(ref _FarDofEnd, value); + } + private float _FarDofEnd; - [ParamField(0x9, ParamType.Dummy8, 3)] - public byte[] Pad_0 - { - get => _Pad_0; - set => WriteParamField(ref _Pad_0, value); - } - private byte[] _Pad_0 = null!; + [ParamField(0x8, ParamType.U8)] + public byte FarDofMul + { + get => _FarDofMul; + set => WriteParamField(ref _FarDofMul, value); + } + private byte _FarDofMul; - [ParamField(0xC, ParamType.F32)] - public float NearDofBegin - { - get => _NearDofBegin; - set => WriteParamField(ref _NearDofBegin, value); - } - private float _NearDofBegin; + [ParamField(0x9, ParamType.Dummy8, 3)] + public byte[] Pad_0 + { + get => _Pad_0; + set => WriteParamField(ref _Pad_0, value); + } + private byte[] _Pad_0 = null!; - [ParamField(0x10, ParamType.F32)] - public float NearDofEnd - { - get => _NearDofEnd; - set => WriteParamField(ref _NearDofEnd, value); - } - private float _NearDofEnd; + [ParamField(0xC, ParamType.F32)] + public float NearDofBegin + { + get => _NearDofBegin; + set => WriteParamField(ref _NearDofBegin, value); + } + private float _NearDofBegin; - [ParamField(0x14, ParamType.U8)] - public byte NearDofMul - { - get => _NearDofMul; - set => WriteParamField(ref _NearDofMul, value); - } - private byte _NearDofMul; + [ParamField(0x10, ParamType.F32)] + public float NearDofEnd + { + get => _NearDofEnd; + set => WriteParamField(ref _NearDofEnd, value); + } + private float _NearDofEnd; - [ParamField(0x15, ParamType.Dummy8, 3)] - public byte[] Pad_1 - { - get => _Pad_1; - set => WriteParamField(ref _Pad_1, value); - } - private byte[] _Pad_1 = null!; + [ParamField(0x14, ParamType.U8)] + public byte NearDofMul + { + get => _NearDofMul; + set => WriteParamField(ref _NearDofMul, value); + } + private byte _NearDofMul; - [ParamField(0x18, ParamType.F32)] - public float DispersionSq - { - get => _DispersionSq; - set => WriteParamField(ref _DispersionSq, value); - } - private float _DispersionSq; + [ParamField(0x15, ParamType.Dummy8, 3)] + public byte[] Pad_1 + { + get => _Pad_1; + set => WriteParamField(ref _Pad_1, value); + } + private byte[] _Pad_1 = null!; + [ParamField(0x18, ParamType.F32)] + public float DispersionSq + { + get => _DispersionSq; + set => WriteParamField(ref _DispersionSq, value); } + private float _DispersionSq; + } diff --git a/src/SoulMemory/DarkSouls1/Parameters/EnemyStandardInfo.cs b/src/SoulMemory/DarkSouls1/Parameters/EnemyStandardInfo.cs index ecf8e10..6075bc9 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/EnemyStandardInfo.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/EnemyStandardInfo.cs @@ -18,188 +18,187 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters +namespace SoulMemory.DarkSouls1.Parameters; + +[ExcludeFromCodeCoverage] +public class EnemyStandardInfo : BaseParam { - [ExcludeFromCodeCoverage] - public class EnemyStandardInfo : BaseParam - { - public EnemyStandardInfo(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - - [ParamField(0x0, ParamType.I32)] - public int EnemyBehaviorID - { - get => _EnemyBehaviorID; - set => WriteParamField(ref _EnemyBehaviorID, value); - } - private int _EnemyBehaviorID; - - [ParamField(0x4, ParamType.U16)] - public ushort HP - { - get => _HP; - set => WriteParamField(ref _HP, value); - } - private ushort _HP; - - [ParamField(0x6, ParamType.U16)] - public ushort AttackPower - { - get => _AttackPower; - set => WriteParamField(ref _AttackPower, value); - } - private ushort _AttackPower; - - [ParamField(0x8, ParamType.I32)] - public int ChrType - { - get => _ChrType; - set => WriteParamField(ref _ChrType, value); - } - private int _ChrType; - - [ParamField(0xC, ParamType.F32)] - public float HitHeight - { - get => _HitHeight; - set => WriteParamField(ref _HitHeight, value); - } - private float _HitHeight; - - [ParamField(0x10, ParamType.F32)] - public float HitRadius - { - get => _HitRadius; - set => WriteParamField(ref _HitRadius, value); - } - private float _HitRadius; - - [ParamField(0x14, ParamType.F32)] - public float Weight - { - get => _Weight; - set => WriteParamField(ref _Weight, value); - } - private float _Weight; - - [ParamField(0x18, ParamType.F32)] - public float DynamicFriction - { - get => _DynamicFriction; - set => WriteParamField(ref _DynamicFriction, value); - } - private float _DynamicFriction; - - [ParamField(0x1C, ParamType.F32)] - public float StaticFriction - { - get => _StaticFriction; - set => WriteParamField(ref _StaticFriction, value); - } - private float _StaticFriction; - - [ParamField(0x20, ParamType.I32)] - public int UpperDefState - { - get => _UpperDefState; - set => WriteParamField(ref _UpperDefState, value); - } - private int _UpperDefState; - - [ParamField(0x24, ParamType.I32)] - public int ActionDefState - { - get => _ActionDefState; - set => WriteParamField(ref _ActionDefState, value); - } - private int _ActionDefState; - - [ParamField(0x28, ParamType.F32)] - public float RotY_per_Second - { - get => _RotY_per_Second; - set => WriteParamField(ref _RotY_per_Second, value); - } - private float _RotY_per_Second; - - [ParamField(0x2C, ParamType.Dummy8, 20)] - public byte[] Reserve0 - { - get => _Reserve0; - set => WriteParamField(ref _Reserve0, value); - } - private byte[] _Reserve0 = null!; - - [ParamField(0x40, ParamType.U8)] - public byte RotY_per_Second_old - { - get => _RotY_per_Second_old; - set => WriteParamField(ref _RotY_per_Second_old, value); - } - private byte _RotY_per_Second_old; - - [ParamField(0x41, ParamType.U8)] - public byte EnableSideStep - { - get => _EnableSideStep; - set => WriteParamField(ref _EnableSideStep, value); - } - private byte _EnableSideStep; - - [ParamField(0x42, ParamType.U8)] - public byte UseRagdollHit - { - get => _UseRagdollHit; - set => WriteParamField(ref _UseRagdollHit, value); - } - private byte _UseRagdollHit; - - [ParamField(0x43, ParamType.Dummy8, 5)] - public byte[] Reserve_last - { - get => _Reserve_last; - set => WriteParamField(ref _Reserve_last, value); - } - private byte[] _Reserve_last = null!; - - [ParamField(0x48, ParamType.U16)] - public ushort Stamina - { - get => _Stamina; - set => WriteParamField(ref _Stamina, value); - } - private ushort _Stamina; - - [ParamField(0x4A, ParamType.U16)] - public ushort StaminaRecover - { - get => _StaminaRecover; - set => WriteParamField(ref _StaminaRecover, value); - } - private ushort _StaminaRecover; - - [ParamField(0x4C, ParamType.U16)] - public ushort StaminaConsumption - { - get => _StaminaConsumption; - set => WriteParamField(ref _StaminaConsumption, value); - } - private ushort _StaminaConsumption; - - [ParamField(0x4E, ParamType.U16)] - public ushort Deffenct_Phys - { - get => _Deffenct_Phys; - set => WriteParamField(ref _Deffenct_Phys, value); - } - private ushort _Deffenct_Phys; - - [ParamField(0x50, ParamType.Dummy8, 48)] - public byte[] Reserve_last2 - { - get => _Reserve_last2; - set => WriteParamField(ref _Reserve_last2, value); - } - private byte[] _Reserve_last2 = null!; + public EnemyStandardInfo(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} + + [ParamField(0x0, ParamType.I32)] + public int EnemyBehaviorID + { + get => _EnemyBehaviorID; + set => WriteParamField(ref _EnemyBehaviorID, value); + } + private int _EnemyBehaviorID; + + [ParamField(0x4, ParamType.U16)] + public ushort HP + { + get => _HP; + set => WriteParamField(ref _HP, value); + } + private ushort _HP; + + [ParamField(0x6, ParamType.U16)] + public ushort AttackPower + { + get => _AttackPower; + set => WriteParamField(ref _AttackPower, value); + } + private ushort _AttackPower; + + [ParamField(0x8, ParamType.I32)] + public int ChrType + { + get => _ChrType; + set => WriteParamField(ref _ChrType, value); + } + private int _ChrType; + + [ParamField(0xC, ParamType.F32)] + public float HitHeight + { + get => _HitHeight; + set => WriteParamField(ref _HitHeight, value); + } + private float _HitHeight; + + [ParamField(0x10, ParamType.F32)] + public float HitRadius + { + get => _HitRadius; + set => WriteParamField(ref _HitRadius, value); + } + private float _HitRadius; + + [ParamField(0x14, ParamType.F32)] + public float Weight + { + get => _Weight; + set => WriteParamField(ref _Weight, value); + } + private float _Weight; + + [ParamField(0x18, ParamType.F32)] + public float DynamicFriction + { + get => _DynamicFriction; + set => WriteParamField(ref _DynamicFriction, value); + } + private float _DynamicFriction; + + [ParamField(0x1C, ParamType.F32)] + public float StaticFriction + { + get => _StaticFriction; + set => WriteParamField(ref _StaticFriction, value); + } + private float _StaticFriction; + + [ParamField(0x20, ParamType.I32)] + public int UpperDefState + { + get => _UpperDefState; + set => WriteParamField(ref _UpperDefState, value); + } + private int _UpperDefState; + + [ParamField(0x24, ParamType.I32)] + public int ActionDefState + { + get => _ActionDefState; + set => WriteParamField(ref _ActionDefState, value); + } + private int _ActionDefState; + [ParamField(0x28, ParamType.F32)] + public float RotY_per_Second + { + get => _RotY_per_Second; + set => WriteParamField(ref _RotY_per_Second, value); + } + private float _RotY_per_Second; + + [ParamField(0x2C, ParamType.Dummy8, 20)] + public byte[] Reserve0 + { + get => _Reserve0; + set => WriteParamField(ref _Reserve0, value); + } + private byte[] _Reserve0 = null!; + + [ParamField(0x40, ParamType.U8)] + public byte RotY_per_Second_old + { + get => _RotY_per_Second_old; + set => WriteParamField(ref _RotY_per_Second_old, value); + } + private byte _RotY_per_Second_old; + + [ParamField(0x41, ParamType.U8)] + public byte EnableSideStep + { + get => _EnableSideStep; + set => WriteParamField(ref _EnableSideStep, value); + } + private byte _EnableSideStep; + + [ParamField(0x42, ParamType.U8)] + public byte UseRagdollHit + { + get => _UseRagdollHit; + set => WriteParamField(ref _UseRagdollHit, value); + } + private byte _UseRagdollHit; + + [ParamField(0x43, ParamType.Dummy8, 5)] + public byte[] Reserve_last + { + get => _Reserve_last; + set => WriteParamField(ref _Reserve_last, value); } + private byte[] _Reserve_last = null!; + + [ParamField(0x48, ParamType.U16)] + public ushort Stamina + { + get => _Stamina; + set => WriteParamField(ref _Stamina, value); + } + private ushort _Stamina; + + [ParamField(0x4A, ParamType.U16)] + public ushort StaminaRecover + { + get => _StaminaRecover; + set => WriteParamField(ref _StaminaRecover, value); + } + private ushort _StaminaRecover; + + [ParamField(0x4C, ParamType.U16)] + public ushort StaminaConsumption + { + get => _StaminaConsumption; + set => WriteParamField(ref _StaminaConsumption, value); + } + private ushort _StaminaConsumption; + + [ParamField(0x4E, ParamType.U16)] + public ushort Deffenct_Phys + { + get => _Deffenct_Phys; + set => WriteParamField(ref _Deffenct_Phys, value); + } + private ushort _Deffenct_Phys; + + [ParamField(0x50, ParamType.Dummy8, 48)] + public byte[] Reserve_last2 + { + get => _Reserve_last2; + set => WriteParamField(ref _Reserve_last2, value); + } + private byte[] _Reserve_last2 = null!; + } diff --git a/src/SoulMemory/DarkSouls1/Parameters/EnvLightTexBank.cs b/src/SoulMemory/DarkSouls1/Parameters/EnvLightTexBank.cs index 1aa7748..2ba267a 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/EnvLightTexBank.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/EnvLightTexBank.cs @@ -18,764 +18,763 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters +namespace SoulMemory.DarkSouls1.Parameters; + +[ExcludeFromCodeCoverage] +public class EnvLightTexBank : BaseParam { - [ExcludeFromCodeCoverage] - public class EnvLightTexBank : BaseParam - { - public EnvLightTexBank(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - - [ParamField(0x0, ParamType.I8)] - public sbyte IsUse - { - get => _IsUse; - set => WriteParamField(ref _IsUse, value); - } - private sbyte _IsUse; - - [ParamField(0x1, ParamType.I8)] - public sbyte AutoUpdate - { - get => _AutoUpdate; - set => WriteParamField(ref _AutoUpdate, value); - } - private sbyte _AutoUpdate; - - [ParamField(0x2, ParamType.Dummy8, 12)] - public byte[] Pad_0 - { - get => _Pad_0; - set => WriteParamField(ref _Pad_0, value); - } - private byte[] _Pad_0 = null!; - - [ParamField(0xE, ParamType.I16)] - public short InvMulCol - { - get => _InvMulCol; - set => WriteParamField(ref _InvMulCol, value); - } - private short _InvMulCol; - - [ParamField(0x10, ParamType.I16)] - public short ResNameId_Dif0 - { - get => _ResNameId_Dif0; - set => WriteParamField(ref _ResNameId_Dif0, value); - } - private short _ResNameId_Dif0; - - [ParamField(0x12, ParamType.I16)] - public short InvMulCol_Dif0 - { - get => _InvMulCol_Dif0; - set => WriteParamField(ref _InvMulCol_Dif0, value); - } - private short _InvMulCol_Dif0; - - [ParamField(0x14, ParamType.F32)] - public float SepcPow_Dif0 - { - get => _SepcPow_Dif0; - set => WriteParamField(ref _SepcPow_Dif0, value); - } - private float _SepcPow_Dif0; - - [ParamField(0x18, ParamType.Dummy8, 8)] - public byte[] Pad_Dif0 - { - get => _Pad_Dif0; - set => WriteParamField(ref _Pad_Dif0, value); - } - private byte[] _Pad_Dif0 = null!; - - [ParamField(0x20, ParamType.I16)] - public short ResNameId_Spc0 - { - get => _ResNameId_Spc0; - set => WriteParamField(ref _ResNameId_Spc0, value); - } - private short _ResNameId_Spc0; - - [ParamField(0x22, ParamType.I16)] - public short InvMulCol_Spc0 - { - get => _InvMulCol_Spc0; - set => WriteParamField(ref _InvMulCol_Spc0, value); - } - private short _InvMulCol_Spc0; - - [ParamField(0x24, ParamType.F32)] - public float SepcPow_Spc0 - { - get => _SepcPow_Spc0; - set => WriteParamField(ref _SepcPow_Spc0, value); - } - private float _SepcPow_Spc0; - - [ParamField(0x28, ParamType.Dummy8, 8)] - public byte[] Pad_Spc0 - { - get => _Pad_Spc0; - set => WriteParamField(ref _Pad_Spc0, value); - } - private byte[] _Pad_Spc0 = null!; - - [ParamField(0x30, ParamType.I16)] - public short ResNameId_Spc1 - { - get => _ResNameId_Spc1; - set => WriteParamField(ref _ResNameId_Spc1, value); - } - private short _ResNameId_Spc1; - - [ParamField(0x32, ParamType.I16)] - public short InvMulCol_Spc1 - { - get => _InvMulCol_Spc1; - set => WriteParamField(ref _InvMulCol_Spc1, value); - } - private short _InvMulCol_Spc1; - - [ParamField(0x34, ParamType.F32)] - public float SepcPow_Spc1 - { - get => _SepcPow_Spc1; - set => WriteParamField(ref _SepcPow_Spc1, value); - } - private float _SepcPow_Spc1; - - [ParamField(0x38, ParamType.Dummy8, 8)] - public byte[] Pad_Spc1 - { - get => _Pad_Spc1; - set => WriteParamField(ref _Pad_Spc1, value); - } - private byte[] _Pad_Spc1 = null!; - - [ParamField(0x40, ParamType.I16)] - public short ResNameId_Spc2 - { - get => _ResNameId_Spc2; - set => WriteParamField(ref _ResNameId_Spc2, value); - } - private short _ResNameId_Spc2; - - [ParamField(0x42, ParamType.I16)] - public short InvMulCol_Spc2 - { - get => _InvMulCol_Spc2; - set => WriteParamField(ref _InvMulCol_Spc2, value); - } - private short _InvMulCol_Spc2; - - [ParamField(0x44, ParamType.F32)] - public float SepcPow_Spc2 - { - get => _SepcPow_Spc2; - set => WriteParamField(ref _SepcPow_Spc2, value); - } - private float _SepcPow_Spc2; - - [ParamField(0x48, ParamType.Dummy8, 8)] - public byte[] Pad_Spc2 - { - get => _Pad_Spc2; - set => WriteParamField(ref _Pad_Spc2, value); - } - private byte[] _Pad_Spc2 = null!; - - [ParamField(0x50, ParamType.I16)] - public short ResNameId_Spc3 - { - get => _ResNameId_Spc3; - set => WriteParamField(ref _ResNameId_Spc3, value); - } - private short _ResNameId_Spc3; - - [ParamField(0x52, ParamType.I16)] - public short InvMulCol_Spc3 - { - get => _InvMulCol_Spc3; - set => WriteParamField(ref _InvMulCol_Spc3, value); - } - private short _InvMulCol_Spc3; - - [ParamField(0x54, ParamType.F32)] - public float SepcPow_Spc3 - { - get => _SepcPow_Spc3; - set => WriteParamField(ref _SepcPow_Spc3, value); - } - private float _SepcPow_Spc3; - - [ParamField(0x58, ParamType.Dummy8, 8)] - public byte[] Pad_Spc3 - { - get => _Pad_Spc3; - set => WriteParamField(ref _Pad_Spc3, value); - } - private byte[] _Pad_Spc3 = null!; - - [ParamField(0x60, ParamType.I16)] - public short DegRotX_00 - { - get => _DegRotX_00; - set => WriteParamField(ref _DegRotX_00, value); - } - private short _DegRotX_00; - - [ParamField(0x62, ParamType.I16)] - public short DegRotY_00 - { - get => _DegRotY_00; - set => WriteParamField(ref _DegRotY_00, value); - } - private short _DegRotY_00; - - [ParamField(0x64, ParamType.I16)] - public short ColR_00 - { - get => _ColR_00; - set => WriteParamField(ref _ColR_00, value); - } - private short _ColR_00; - - [ParamField(0x66, ParamType.I16)] - public short ColG_00 - { - get => _ColG_00; - set => WriteParamField(ref _ColG_00, value); - } - private short _ColG_00; - - [ParamField(0x68, ParamType.I16)] - public short ColB_00 - { - get => _ColB_00; - set => WriteParamField(ref _ColB_00, value); - } - private short _ColB_00; - - [ParamField(0x6A, ParamType.I16)] - public short ColA_00 - { - get => _ColA_00; - set => WriteParamField(ref _ColA_00, value); - } - private short _ColA_00; - - [ParamField(0x6C, ParamType.Dummy8, 4)] - public byte[] Pad_00 - { - get => _Pad_00; - set => WriteParamField(ref _Pad_00, value); - } - private byte[] _Pad_00 = null!; - - [ParamField(0x70, ParamType.I16)] - public short DegRotX_01 - { - get => _DegRotX_01; - set => WriteParamField(ref _DegRotX_01, value); - } - private short _DegRotX_01; - - [ParamField(0x72, ParamType.I16)] - public short DegRotY_01 - { - get => _DegRotY_01; - set => WriteParamField(ref _DegRotY_01, value); - } - private short _DegRotY_01; - - [ParamField(0x74, ParamType.I16)] - public short ColR_01 - { - get => _ColR_01; - set => WriteParamField(ref _ColR_01, value); - } - private short _ColR_01; - - [ParamField(0x76, ParamType.I16)] - public short ColG_01 - { - get => _ColG_01; - set => WriteParamField(ref _ColG_01, value); - } - private short _ColG_01; - - [ParamField(0x78, ParamType.I16)] - public short ColB_01 - { - get => _ColB_01; - set => WriteParamField(ref _ColB_01, value); - } - private short _ColB_01; - - [ParamField(0x7A, ParamType.I16)] - public short ColA_01 - { - get => _ColA_01; - set => WriteParamField(ref _ColA_01, value); - } - private short _ColA_01; - - [ParamField(0x7C, ParamType.Dummy8, 4)] - public byte[] Pad_01 - { - get => _Pad_01; - set => WriteParamField(ref _Pad_01, value); - } - private byte[] _Pad_01 = null!; - - [ParamField(0x80, ParamType.I16)] - public short DegRotX_02 - { - get => _DegRotX_02; - set => WriteParamField(ref _DegRotX_02, value); - } - private short _DegRotX_02; - - [ParamField(0x82, ParamType.I16)] - public short DegRotY_02 - { - get => _DegRotY_02; - set => WriteParamField(ref _DegRotY_02, value); - } - private short _DegRotY_02; - - [ParamField(0x84, ParamType.I16)] - public short ColR_02 - { - get => _ColR_02; - set => WriteParamField(ref _ColR_02, value); - } - private short _ColR_02; - - [ParamField(0x86, ParamType.I16)] - public short ColG_02 - { - get => _ColG_02; - set => WriteParamField(ref _ColG_02, value); - } - private short _ColG_02; - - [ParamField(0x88, ParamType.I16)] - public short ColB_02 - { - get => _ColB_02; - set => WriteParamField(ref _ColB_02, value); - } - private short _ColB_02; - - [ParamField(0x8A, ParamType.I16)] - public short ColA_02 - { - get => _ColA_02; - set => WriteParamField(ref _ColA_02, value); - } - private short _ColA_02; - - [ParamField(0x8C, ParamType.Dummy8, 4)] - public byte[] Pad_02 - { - get => _Pad_02; - set => WriteParamField(ref _Pad_02, value); - } - private byte[] _Pad_02 = null!; - - [ParamField(0x90, ParamType.I16)] - public short DegRotX_03 - { - get => _DegRotX_03; - set => WriteParamField(ref _DegRotX_03, value); - } - private short _DegRotX_03; - - [ParamField(0x92, ParamType.I16)] - public short DegRotY_03 - { - get => _DegRotY_03; - set => WriteParamField(ref _DegRotY_03, value); - } - private short _DegRotY_03; - - [ParamField(0x94, ParamType.I16)] - public short ColR_03 - { - get => _ColR_03; - set => WriteParamField(ref _ColR_03, value); - } - private short _ColR_03; - - [ParamField(0x96, ParamType.I16)] - public short ColG_03 - { - get => _ColG_03; - set => WriteParamField(ref _ColG_03, value); - } - private short _ColG_03; - - [ParamField(0x98, ParamType.I16)] - public short ColB_03 - { - get => _ColB_03; - set => WriteParamField(ref _ColB_03, value); - } - private short _ColB_03; - - [ParamField(0x9A, ParamType.I16)] - public short ColA_03 - { - get => _ColA_03; - set => WriteParamField(ref _ColA_03, value); - } - private short _ColA_03; - - [ParamField(0x9C, ParamType.Dummy8, 4)] - public byte[] Pad_03 - { - get => _Pad_03; - set => WriteParamField(ref _Pad_03, value); - } - private byte[] _Pad_03 = null!; - - [ParamField(0xA0, ParamType.I16)] - public short DegRotX_04 - { - get => _DegRotX_04; - set => WriteParamField(ref _DegRotX_04, value); - } - private short _DegRotX_04; - - [ParamField(0xA2, ParamType.I16)] - public short DegRotY_04 - { - get => _DegRotY_04; - set => WriteParamField(ref _DegRotY_04, value); - } - private short _DegRotY_04; - - [ParamField(0xA4, ParamType.I16)] - public short ColR_04 - { - get => _ColR_04; - set => WriteParamField(ref _ColR_04, value); - } - private short _ColR_04; - - [ParamField(0xA6, ParamType.I16)] - public short ColG_04 - { - get => _ColG_04; - set => WriteParamField(ref _ColG_04, value); - } - private short _ColG_04; - - [ParamField(0xA8, ParamType.I16)] - public short ColB_04 - { - get => _ColB_04; - set => WriteParamField(ref _ColB_04, value); - } - private short _ColB_04; - - [ParamField(0xAA, ParamType.I16)] - public short ColA_04 - { - get => _ColA_04; - set => WriteParamField(ref _ColA_04, value); - } - private short _ColA_04; - - [ParamField(0xAC, ParamType.Dummy8, 4)] - public byte[] Pad_04 - { - get => _Pad_04; - set => WriteParamField(ref _Pad_04, value); - } - private byte[] _Pad_04 = null!; - - [ParamField(0xB0, ParamType.I16)] - public short DegRotX_05 - { - get => _DegRotX_05; - set => WriteParamField(ref _DegRotX_05, value); - } - private short _DegRotX_05; - - [ParamField(0xB2, ParamType.I16)] - public short DegRotY_05 - { - get => _DegRotY_05; - set => WriteParamField(ref _DegRotY_05, value); - } - private short _DegRotY_05; - - [ParamField(0xB4, ParamType.I16)] - public short ColR_05 - { - get => _ColR_05; - set => WriteParamField(ref _ColR_05, value); - } - private short _ColR_05; - - [ParamField(0xB6, ParamType.I16)] - public short ColG_05 - { - get => _ColG_05; - set => WriteParamField(ref _ColG_05, value); - } - private short _ColG_05; - - [ParamField(0xB8, ParamType.I16)] - public short ColB_05 - { - get => _ColB_05; - set => WriteParamField(ref _ColB_05, value); - } - private short _ColB_05; - - [ParamField(0xBA, ParamType.I16)] - public short ColA_05 - { - get => _ColA_05; - set => WriteParamField(ref _ColA_05, value); - } - private short _ColA_05; - - [ParamField(0xBC, ParamType.Dummy8, 4)] - public byte[] Pad_05 - { - get => _Pad_05; - set => WriteParamField(ref _Pad_05, value); - } - private byte[] _Pad_05 = null!; - - [ParamField(0xC0, ParamType.I16)] - public short DegRotX_06 - { - get => _DegRotX_06; - set => WriteParamField(ref _DegRotX_06, value); - } - private short _DegRotX_06; - - [ParamField(0xC2, ParamType.I16)] - public short DegRotY_06 - { - get => _DegRotY_06; - set => WriteParamField(ref _DegRotY_06, value); - } - private short _DegRotY_06; - - [ParamField(0xC4, ParamType.I16)] - public short ColR_06 - { - get => _ColR_06; - set => WriteParamField(ref _ColR_06, value); - } - private short _ColR_06; - - [ParamField(0xC6, ParamType.I16)] - public short ColG_06 - { - get => _ColG_06; - set => WriteParamField(ref _ColG_06, value); - } - private short _ColG_06; - - [ParamField(0xC8, ParamType.I16)] - public short ColB_06 - { - get => _ColB_06; - set => WriteParamField(ref _ColB_06, value); - } - private short _ColB_06; - - [ParamField(0xCA, ParamType.I16)] - public short ColA_06 - { - get => _ColA_06; - set => WriteParamField(ref _ColA_06, value); - } - private short _ColA_06; - - [ParamField(0xCC, ParamType.Dummy8, 4)] - public byte[] Pad_06 - { - get => _Pad_06; - set => WriteParamField(ref _Pad_06, value); - } - private byte[] _Pad_06 = null!; - - [ParamField(0xD0, ParamType.I16)] - public short DegRotX_07 - { - get => _DegRotX_07; - set => WriteParamField(ref _DegRotX_07, value); - } - private short _DegRotX_07; - - [ParamField(0xD2, ParamType.I16)] - public short DegRotY_07 - { - get => _DegRotY_07; - set => WriteParamField(ref _DegRotY_07, value); - } - private short _DegRotY_07; - - [ParamField(0xD4, ParamType.I16)] - public short ColR_07 - { - get => _ColR_07; - set => WriteParamField(ref _ColR_07, value); - } - private short _ColR_07; - - [ParamField(0xD6, ParamType.I16)] - public short ColG_07 - { - get => _ColG_07; - set => WriteParamField(ref _ColG_07, value); - } - private short _ColG_07; - - [ParamField(0xD8, ParamType.I16)] - public short ColB_07 - { - get => _ColB_07; - set => WriteParamField(ref _ColB_07, value); - } - private short _ColB_07; - - [ParamField(0xDA, ParamType.I16)] - public short ColA_07 - { - get => _ColA_07; - set => WriteParamField(ref _ColA_07, value); - } - private short _ColA_07; - - [ParamField(0xDC, ParamType.Dummy8, 4)] - public byte[] Pad_07 - { - get => _Pad_07; - set => WriteParamField(ref _Pad_07, value); - } - private byte[] _Pad_07 = null!; - - [ParamField(0xE0, ParamType.I16)] - public short DegRotX_08 - { - get => _DegRotX_08; - set => WriteParamField(ref _DegRotX_08, value); - } - private short _DegRotX_08; - - [ParamField(0xE2, ParamType.I16)] - public short DegRotY_08 - { - get => _DegRotY_08; - set => WriteParamField(ref _DegRotY_08, value); - } - private short _DegRotY_08; - - [ParamField(0xE4, ParamType.I16)] - public short ColR_08 - { - get => _ColR_08; - set => WriteParamField(ref _ColR_08, value); - } - private short _ColR_08; - - [ParamField(0xE6, ParamType.I16)] - public short ColG_08 - { - get => _ColG_08; - set => WriteParamField(ref _ColG_08, value); - } - private short _ColG_08; - - [ParamField(0xE8, ParamType.I16)] - public short ColB_08 - { - get => _ColB_08; - set => WriteParamField(ref _ColB_08, value); - } - private short _ColB_08; - - [ParamField(0xEA, ParamType.I16)] - public short ColA_08 - { - get => _ColA_08; - set => WriteParamField(ref _ColA_08, value); - } - private short _ColA_08; - - [ParamField(0xEC, ParamType.Dummy8, 4)] - public byte[] Pad_08 - { - get => _Pad_08; - set => WriteParamField(ref _Pad_08, value); - } - private byte[] _Pad_08 = null!; - - [ParamField(0xF0, ParamType.I16)] - public short DegRotX_09 - { - get => _DegRotX_09; - set => WriteParamField(ref _DegRotX_09, value); - } - private short _DegRotX_09; - - [ParamField(0xF2, ParamType.I16)] - public short DegRotY_09 - { - get => _DegRotY_09; - set => WriteParamField(ref _DegRotY_09, value); - } - private short _DegRotY_09; - - [ParamField(0xF4, ParamType.I16)] - public short ColR_09 - { - get => _ColR_09; - set => WriteParamField(ref _ColR_09, value); - } - private short _ColR_09; - - [ParamField(0xF6, ParamType.I16)] - public short ColG_09 - { - get => _ColG_09; - set => WriteParamField(ref _ColG_09, value); - } - private short _ColG_09; - - [ParamField(0xF8, ParamType.I16)] - public short ColB_09 - { - get => _ColB_09; - set => WriteParamField(ref _ColB_09, value); - } - private short _ColB_09; - - [ParamField(0xFA, ParamType.I16)] - public short ColA_09 - { - get => _ColA_09; - set => WriteParamField(ref _ColA_09, value); - } - private short _ColA_09; - - [ParamField(0xFC, ParamType.Dummy8, 4)] - public byte[] Pad_09 - { - get => _Pad_09; - set => WriteParamField(ref _Pad_09, value); - } - private byte[] _Pad_09 = null!; + public EnvLightTexBank(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} + + [ParamField(0x0, ParamType.I8)] + public sbyte IsUse + { + get => _IsUse; + set => WriteParamField(ref _IsUse, value); + } + private sbyte _IsUse; + + [ParamField(0x1, ParamType.I8)] + public sbyte AutoUpdate + { + get => _AutoUpdate; + set => WriteParamField(ref _AutoUpdate, value); + } + private sbyte _AutoUpdate; + + [ParamField(0x2, ParamType.Dummy8, 12)] + public byte[] Pad_0 + { + get => _Pad_0; + set => WriteParamField(ref _Pad_0, value); + } + private byte[] _Pad_0 = null!; + + [ParamField(0xE, ParamType.I16)] + public short InvMulCol + { + get => _InvMulCol; + set => WriteParamField(ref _InvMulCol, value); + } + private short _InvMulCol; + + [ParamField(0x10, ParamType.I16)] + public short ResNameId_Dif0 + { + get => _ResNameId_Dif0; + set => WriteParamField(ref _ResNameId_Dif0, value); + } + private short _ResNameId_Dif0; + + [ParamField(0x12, ParamType.I16)] + public short InvMulCol_Dif0 + { + get => _InvMulCol_Dif0; + set => WriteParamField(ref _InvMulCol_Dif0, value); + } + private short _InvMulCol_Dif0; + + [ParamField(0x14, ParamType.F32)] + public float SepcPow_Dif0 + { + get => _SepcPow_Dif0; + set => WriteParamField(ref _SepcPow_Dif0, value); + } + private float _SepcPow_Dif0; + + [ParamField(0x18, ParamType.Dummy8, 8)] + public byte[] Pad_Dif0 + { + get => _Pad_Dif0; + set => WriteParamField(ref _Pad_Dif0, value); + } + private byte[] _Pad_Dif0 = null!; + + [ParamField(0x20, ParamType.I16)] + public short ResNameId_Spc0 + { + get => _ResNameId_Spc0; + set => WriteParamField(ref _ResNameId_Spc0, value); + } + private short _ResNameId_Spc0; + + [ParamField(0x22, ParamType.I16)] + public short InvMulCol_Spc0 + { + get => _InvMulCol_Spc0; + set => WriteParamField(ref _InvMulCol_Spc0, value); + } + private short _InvMulCol_Spc0; + + [ParamField(0x24, ParamType.F32)] + public float SepcPow_Spc0 + { + get => _SepcPow_Spc0; + set => WriteParamField(ref _SepcPow_Spc0, value); + } + private float _SepcPow_Spc0; + + [ParamField(0x28, ParamType.Dummy8, 8)] + public byte[] Pad_Spc0 + { + get => _Pad_Spc0; + set => WriteParamField(ref _Pad_Spc0, value); + } + private byte[] _Pad_Spc0 = null!; + + [ParamField(0x30, ParamType.I16)] + public short ResNameId_Spc1 + { + get => _ResNameId_Spc1; + set => WriteParamField(ref _ResNameId_Spc1, value); + } + private short _ResNameId_Spc1; + + [ParamField(0x32, ParamType.I16)] + public short InvMulCol_Spc1 + { + get => _InvMulCol_Spc1; + set => WriteParamField(ref _InvMulCol_Spc1, value); + } + private short _InvMulCol_Spc1; + + [ParamField(0x34, ParamType.F32)] + public float SepcPow_Spc1 + { + get => _SepcPow_Spc1; + set => WriteParamField(ref _SepcPow_Spc1, value); + } + private float _SepcPow_Spc1; + + [ParamField(0x38, ParamType.Dummy8, 8)] + public byte[] Pad_Spc1 + { + get => _Pad_Spc1; + set => WriteParamField(ref _Pad_Spc1, value); + } + private byte[] _Pad_Spc1 = null!; + + [ParamField(0x40, ParamType.I16)] + public short ResNameId_Spc2 + { + get => _ResNameId_Spc2; + set => WriteParamField(ref _ResNameId_Spc2, value); + } + private short _ResNameId_Spc2; + + [ParamField(0x42, ParamType.I16)] + public short InvMulCol_Spc2 + { + get => _InvMulCol_Spc2; + set => WriteParamField(ref _InvMulCol_Spc2, value); + } + private short _InvMulCol_Spc2; + + [ParamField(0x44, ParamType.F32)] + public float SepcPow_Spc2 + { + get => _SepcPow_Spc2; + set => WriteParamField(ref _SepcPow_Spc2, value); + } + private float _SepcPow_Spc2; + + [ParamField(0x48, ParamType.Dummy8, 8)] + public byte[] Pad_Spc2 + { + get => _Pad_Spc2; + set => WriteParamField(ref _Pad_Spc2, value); + } + private byte[] _Pad_Spc2 = null!; + + [ParamField(0x50, ParamType.I16)] + public short ResNameId_Spc3 + { + get => _ResNameId_Spc3; + set => WriteParamField(ref _ResNameId_Spc3, value); + } + private short _ResNameId_Spc3; + + [ParamField(0x52, ParamType.I16)] + public short InvMulCol_Spc3 + { + get => _InvMulCol_Spc3; + set => WriteParamField(ref _InvMulCol_Spc3, value); + } + private short _InvMulCol_Spc3; + + [ParamField(0x54, ParamType.F32)] + public float SepcPow_Spc3 + { + get => _SepcPow_Spc3; + set => WriteParamField(ref _SepcPow_Spc3, value); + } + private float _SepcPow_Spc3; + + [ParamField(0x58, ParamType.Dummy8, 8)] + public byte[] Pad_Spc3 + { + get => _Pad_Spc3; + set => WriteParamField(ref _Pad_Spc3, value); + } + private byte[] _Pad_Spc3 = null!; + + [ParamField(0x60, ParamType.I16)] + public short DegRotX_00 + { + get => _DegRotX_00; + set => WriteParamField(ref _DegRotX_00, value); + } + private short _DegRotX_00; + + [ParamField(0x62, ParamType.I16)] + public short DegRotY_00 + { + get => _DegRotY_00; + set => WriteParamField(ref _DegRotY_00, value); + } + private short _DegRotY_00; + + [ParamField(0x64, ParamType.I16)] + public short ColR_00 + { + get => _ColR_00; + set => WriteParamField(ref _ColR_00, value); + } + private short _ColR_00; + + [ParamField(0x66, ParamType.I16)] + public short ColG_00 + { + get => _ColG_00; + set => WriteParamField(ref _ColG_00, value); + } + private short _ColG_00; + + [ParamField(0x68, ParamType.I16)] + public short ColB_00 + { + get => _ColB_00; + set => WriteParamField(ref _ColB_00, value); + } + private short _ColB_00; + + [ParamField(0x6A, ParamType.I16)] + public short ColA_00 + { + get => _ColA_00; + set => WriteParamField(ref _ColA_00, value); + } + private short _ColA_00; + + [ParamField(0x6C, ParamType.Dummy8, 4)] + public byte[] Pad_00 + { + get => _Pad_00; + set => WriteParamField(ref _Pad_00, value); + } + private byte[] _Pad_00 = null!; + + [ParamField(0x70, ParamType.I16)] + public short DegRotX_01 + { + get => _DegRotX_01; + set => WriteParamField(ref _DegRotX_01, value); + } + private short _DegRotX_01; + + [ParamField(0x72, ParamType.I16)] + public short DegRotY_01 + { + get => _DegRotY_01; + set => WriteParamField(ref _DegRotY_01, value); + } + private short _DegRotY_01; + + [ParamField(0x74, ParamType.I16)] + public short ColR_01 + { + get => _ColR_01; + set => WriteParamField(ref _ColR_01, value); + } + private short _ColR_01; + + [ParamField(0x76, ParamType.I16)] + public short ColG_01 + { + get => _ColG_01; + set => WriteParamField(ref _ColG_01, value); + } + private short _ColG_01; + + [ParamField(0x78, ParamType.I16)] + public short ColB_01 + { + get => _ColB_01; + set => WriteParamField(ref _ColB_01, value); + } + private short _ColB_01; + + [ParamField(0x7A, ParamType.I16)] + public short ColA_01 + { + get => _ColA_01; + set => WriteParamField(ref _ColA_01, value); + } + private short _ColA_01; + + [ParamField(0x7C, ParamType.Dummy8, 4)] + public byte[] Pad_01 + { + get => _Pad_01; + set => WriteParamField(ref _Pad_01, value); + } + private byte[] _Pad_01 = null!; + + [ParamField(0x80, ParamType.I16)] + public short DegRotX_02 + { + get => _DegRotX_02; + set => WriteParamField(ref _DegRotX_02, value); + } + private short _DegRotX_02; + + [ParamField(0x82, ParamType.I16)] + public short DegRotY_02 + { + get => _DegRotY_02; + set => WriteParamField(ref _DegRotY_02, value); + } + private short _DegRotY_02; + + [ParamField(0x84, ParamType.I16)] + public short ColR_02 + { + get => _ColR_02; + set => WriteParamField(ref _ColR_02, value); + } + private short _ColR_02; + + [ParamField(0x86, ParamType.I16)] + public short ColG_02 + { + get => _ColG_02; + set => WriteParamField(ref _ColG_02, value); + } + private short _ColG_02; + + [ParamField(0x88, ParamType.I16)] + public short ColB_02 + { + get => _ColB_02; + set => WriteParamField(ref _ColB_02, value); + } + private short _ColB_02; + + [ParamField(0x8A, ParamType.I16)] + public short ColA_02 + { + get => _ColA_02; + set => WriteParamField(ref _ColA_02, value); + } + private short _ColA_02; + + [ParamField(0x8C, ParamType.Dummy8, 4)] + public byte[] Pad_02 + { + get => _Pad_02; + set => WriteParamField(ref _Pad_02, value); + } + private byte[] _Pad_02 = null!; + + [ParamField(0x90, ParamType.I16)] + public short DegRotX_03 + { + get => _DegRotX_03; + set => WriteParamField(ref _DegRotX_03, value); + } + private short _DegRotX_03; + + [ParamField(0x92, ParamType.I16)] + public short DegRotY_03 + { + get => _DegRotY_03; + set => WriteParamField(ref _DegRotY_03, value); + } + private short _DegRotY_03; + + [ParamField(0x94, ParamType.I16)] + public short ColR_03 + { + get => _ColR_03; + set => WriteParamField(ref _ColR_03, value); + } + private short _ColR_03; + + [ParamField(0x96, ParamType.I16)] + public short ColG_03 + { + get => _ColG_03; + set => WriteParamField(ref _ColG_03, value); + } + private short _ColG_03; + + [ParamField(0x98, ParamType.I16)] + public short ColB_03 + { + get => _ColB_03; + set => WriteParamField(ref _ColB_03, value); + } + private short _ColB_03; + + [ParamField(0x9A, ParamType.I16)] + public short ColA_03 + { + get => _ColA_03; + set => WriteParamField(ref _ColA_03, value); + } + private short _ColA_03; + + [ParamField(0x9C, ParamType.Dummy8, 4)] + public byte[] Pad_03 + { + get => _Pad_03; + set => WriteParamField(ref _Pad_03, value); + } + private byte[] _Pad_03 = null!; + + [ParamField(0xA0, ParamType.I16)] + public short DegRotX_04 + { + get => _DegRotX_04; + set => WriteParamField(ref _DegRotX_04, value); + } + private short _DegRotX_04; + + [ParamField(0xA2, ParamType.I16)] + public short DegRotY_04 + { + get => _DegRotY_04; + set => WriteParamField(ref _DegRotY_04, value); + } + private short _DegRotY_04; + + [ParamField(0xA4, ParamType.I16)] + public short ColR_04 + { + get => _ColR_04; + set => WriteParamField(ref _ColR_04, value); + } + private short _ColR_04; + + [ParamField(0xA6, ParamType.I16)] + public short ColG_04 + { + get => _ColG_04; + set => WriteParamField(ref _ColG_04, value); + } + private short _ColG_04; + [ParamField(0xA8, ParamType.I16)] + public short ColB_04 + { + get => _ColB_04; + set => WriteParamField(ref _ColB_04, value); + } + private short _ColB_04; + + [ParamField(0xAA, ParamType.I16)] + public short ColA_04 + { + get => _ColA_04; + set => WriteParamField(ref _ColA_04, value); + } + private short _ColA_04; + + [ParamField(0xAC, ParamType.Dummy8, 4)] + public byte[] Pad_04 + { + get => _Pad_04; + set => WriteParamField(ref _Pad_04, value); + } + private byte[] _Pad_04 = null!; + + [ParamField(0xB0, ParamType.I16)] + public short DegRotX_05 + { + get => _DegRotX_05; + set => WriteParamField(ref _DegRotX_05, value); + } + private short _DegRotX_05; + + [ParamField(0xB2, ParamType.I16)] + public short DegRotY_05 + { + get => _DegRotY_05; + set => WriteParamField(ref _DegRotY_05, value); + } + private short _DegRotY_05; + + [ParamField(0xB4, ParamType.I16)] + public short ColR_05 + { + get => _ColR_05; + set => WriteParamField(ref _ColR_05, value); + } + private short _ColR_05; + + [ParamField(0xB6, ParamType.I16)] + public short ColG_05 + { + get => _ColG_05; + set => WriteParamField(ref _ColG_05, value); + } + private short _ColG_05; + + [ParamField(0xB8, ParamType.I16)] + public short ColB_05 + { + get => _ColB_05; + set => WriteParamField(ref _ColB_05, value); + } + private short _ColB_05; + + [ParamField(0xBA, ParamType.I16)] + public short ColA_05 + { + get => _ColA_05; + set => WriteParamField(ref _ColA_05, value); + } + private short _ColA_05; + + [ParamField(0xBC, ParamType.Dummy8, 4)] + public byte[] Pad_05 + { + get => _Pad_05; + set => WriteParamField(ref _Pad_05, value); + } + private byte[] _Pad_05 = null!; + + [ParamField(0xC0, ParamType.I16)] + public short DegRotX_06 + { + get => _DegRotX_06; + set => WriteParamField(ref _DegRotX_06, value); + } + private short _DegRotX_06; + + [ParamField(0xC2, ParamType.I16)] + public short DegRotY_06 + { + get => _DegRotY_06; + set => WriteParamField(ref _DegRotY_06, value); + } + private short _DegRotY_06; + + [ParamField(0xC4, ParamType.I16)] + public short ColR_06 + { + get => _ColR_06; + set => WriteParamField(ref _ColR_06, value); + } + private short _ColR_06; + + [ParamField(0xC6, ParamType.I16)] + public short ColG_06 + { + get => _ColG_06; + set => WriteParamField(ref _ColG_06, value); + } + private short _ColG_06; + + [ParamField(0xC8, ParamType.I16)] + public short ColB_06 + { + get => _ColB_06; + set => WriteParamField(ref _ColB_06, value); } + private short _ColB_06; + + [ParamField(0xCA, ParamType.I16)] + public short ColA_06 + { + get => _ColA_06; + set => WriteParamField(ref _ColA_06, value); + } + private short _ColA_06; + + [ParamField(0xCC, ParamType.Dummy8, 4)] + public byte[] Pad_06 + { + get => _Pad_06; + set => WriteParamField(ref _Pad_06, value); + } + private byte[] _Pad_06 = null!; + + [ParamField(0xD0, ParamType.I16)] + public short DegRotX_07 + { + get => _DegRotX_07; + set => WriteParamField(ref _DegRotX_07, value); + } + private short _DegRotX_07; + + [ParamField(0xD2, ParamType.I16)] + public short DegRotY_07 + { + get => _DegRotY_07; + set => WriteParamField(ref _DegRotY_07, value); + } + private short _DegRotY_07; + + [ParamField(0xD4, ParamType.I16)] + public short ColR_07 + { + get => _ColR_07; + set => WriteParamField(ref _ColR_07, value); + } + private short _ColR_07; + + [ParamField(0xD6, ParamType.I16)] + public short ColG_07 + { + get => _ColG_07; + set => WriteParamField(ref _ColG_07, value); + } + private short _ColG_07; + + [ParamField(0xD8, ParamType.I16)] + public short ColB_07 + { + get => _ColB_07; + set => WriteParamField(ref _ColB_07, value); + } + private short _ColB_07; + + [ParamField(0xDA, ParamType.I16)] + public short ColA_07 + { + get => _ColA_07; + set => WriteParamField(ref _ColA_07, value); + } + private short _ColA_07; + + [ParamField(0xDC, ParamType.Dummy8, 4)] + public byte[] Pad_07 + { + get => _Pad_07; + set => WriteParamField(ref _Pad_07, value); + } + private byte[] _Pad_07 = null!; + + [ParamField(0xE0, ParamType.I16)] + public short DegRotX_08 + { + get => _DegRotX_08; + set => WriteParamField(ref _DegRotX_08, value); + } + private short _DegRotX_08; + + [ParamField(0xE2, ParamType.I16)] + public short DegRotY_08 + { + get => _DegRotY_08; + set => WriteParamField(ref _DegRotY_08, value); + } + private short _DegRotY_08; + + [ParamField(0xE4, ParamType.I16)] + public short ColR_08 + { + get => _ColR_08; + set => WriteParamField(ref _ColR_08, value); + } + private short _ColR_08; + + [ParamField(0xE6, ParamType.I16)] + public short ColG_08 + { + get => _ColG_08; + set => WriteParamField(ref _ColG_08, value); + } + private short _ColG_08; + + [ParamField(0xE8, ParamType.I16)] + public short ColB_08 + { + get => _ColB_08; + set => WriteParamField(ref _ColB_08, value); + } + private short _ColB_08; + + [ParamField(0xEA, ParamType.I16)] + public short ColA_08 + { + get => _ColA_08; + set => WriteParamField(ref _ColA_08, value); + } + private short _ColA_08; + + [ParamField(0xEC, ParamType.Dummy8, 4)] + public byte[] Pad_08 + { + get => _Pad_08; + set => WriteParamField(ref _Pad_08, value); + } + private byte[] _Pad_08 = null!; + + [ParamField(0xF0, ParamType.I16)] + public short DegRotX_09 + { + get => _DegRotX_09; + set => WriteParamField(ref _DegRotX_09, value); + } + private short _DegRotX_09; + + [ParamField(0xF2, ParamType.I16)] + public short DegRotY_09 + { + get => _DegRotY_09; + set => WriteParamField(ref _DegRotY_09, value); + } + private short _DegRotY_09; + + [ParamField(0xF4, ParamType.I16)] + public short ColR_09 + { + get => _ColR_09; + set => WriteParamField(ref _ColR_09, value); + } + private short _ColR_09; + + [ParamField(0xF6, ParamType.I16)] + public short ColG_09 + { + get => _ColG_09; + set => WriteParamField(ref _ColG_09, value); + } + private short _ColG_09; + + [ParamField(0xF8, ParamType.I16)] + public short ColB_09 + { + get => _ColB_09; + set => WriteParamField(ref _ColB_09, value); + } + private short _ColB_09; + + [ParamField(0xFA, ParamType.I16)] + public short ColA_09 + { + get => _ColA_09; + set => WriteParamField(ref _ColA_09, value); + } + private short _ColA_09; + + [ParamField(0xFC, ParamType.Dummy8, 4)] + public byte[] Pad_09 + { + get => _Pad_09; + set => WriteParamField(ref _Pad_09, value); + } + private byte[] _Pad_09 = null!; + } diff --git a/src/SoulMemory/DarkSouls1/Parameters/EquipMtrlSetParam.cs b/src/SoulMemory/DarkSouls1/Parameters/EquipMtrlSetParam.cs index c1b56f6..8440b2f 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/EquipMtrlSetParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/EquipMtrlSetParam.cs @@ -18,147 +18,146 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters +namespace SoulMemory.DarkSouls1.Parameters; + +[ExcludeFromCodeCoverage] +public class EquipMtrlSetParam : BaseParam { - [ExcludeFromCodeCoverage] - public class EquipMtrlSetParam : BaseParam - { - public EquipMtrlSetParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - - [ParamField(0x0, ParamType.I32)] - public int MaterialId01 - { - get => _MaterialId01; - set => WriteParamField(ref _MaterialId01, value); - } - private int _MaterialId01; - - [ParamField(0x4, ParamType.I32)] - public int MaterialId02 - { - get => _MaterialId02; - set => WriteParamField(ref _MaterialId02, value); - } - private int _MaterialId02; - - [ParamField(0x8, ParamType.I32)] - public int MaterialId03 - { - get => _MaterialId03; - set => WriteParamField(ref _MaterialId03, value); - } - private int _MaterialId03; - - [ParamField(0xC, ParamType.I32)] - public int MaterialId04 - { - get => _MaterialId04; - set => WriteParamField(ref _MaterialId04, value); - } - private int _MaterialId04; - - [ParamField(0x10, ParamType.I32)] - public int MaterialId05 - { - get => _MaterialId05; - set => WriteParamField(ref _MaterialId05, value); - } - private int _MaterialId05; - - [ParamField(0x14, ParamType.I8)] - public sbyte ItemNum01 - { - get => _ItemNum01; - set => WriteParamField(ref _ItemNum01, value); - } - private sbyte _ItemNum01; - - [ParamField(0x15, ParamType.I8)] - public sbyte ItemNum02 - { - get => _ItemNum02; - set => WriteParamField(ref _ItemNum02, value); - } - private sbyte _ItemNum02; - - [ParamField(0x16, ParamType.I8)] - public sbyte ItemNum03 - { - get => _ItemNum03; - set => WriteParamField(ref _ItemNum03, value); - } - private sbyte _ItemNum03; - - [ParamField(0x17, ParamType.I8)] - public sbyte ItemNum04 - { - get => _ItemNum04; - set => WriteParamField(ref _ItemNum04, value); - } - private sbyte _ItemNum04; - - [ParamField(0x18, ParamType.I8)] - public sbyte ItemNum05 - { - get => _ItemNum05; - set => WriteParamField(ref _ItemNum05, value); - } - private sbyte _ItemNum05; - - #region BitField IsDisableDispNum01Bitfield ============================================================================== - - [ParamField(0x19, ParamType.U8)] - public byte IsDisableDispNum01Bitfield - { - get => _IsDisableDispNum01Bitfield; - set => WriteParamField(ref _IsDisableDispNum01Bitfield, value); - } - private byte _IsDisableDispNum01Bitfield; - - [ParamBitField(nameof(IsDisableDispNum01Bitfield), bits: 1, bitsOffset: 0)] - public byte IsDisableDispNum01 - { - get => GetbitfieldValue(_IsDisableDispNum01Bitfield); - set => SetBitfieldValue(ref _IsDisableDispNum01Bitfield, value); - } - - [ParamBitField(nameof(IsDisableDispNum01Bitfield), bits: 1, bitsOffset: 1)] - public byte IsDisableDispNum02 - { - get => GetbitfieldValue(_IsDisableDispNum01Bitfield); - set => SetBitfieldValue(ref _IsDisableDispNum01Bitfield, value); - } - - [ParamBitField(nameof(IsDisableDispNum01Bitfield), bits: 1, bitsOffset: 2)] - public byte IsDisableDispNum03 - { - get => GetbitfieldValue(_IsDisableDispNum01Bitfield); - set => SetBitfieldValue(ref _IsDisableDispNum01Bitfield, value); - } - - [ParamBitField(nameof(IsDisableDispNum01Bitfield), bits: 1, bitsOffset: 3)] - public byte IsDisableDispNum04 - { - get => GetbitfieldValue(_IsDisableDispNum01Bitfield); - set => SetBitfieldValue(ref _IsDisableDispNum01Bitfield, value); - } - - [ParamBitField(nameof(IsDisableDispNum01Bitfield), bits: 1, bitsOffset: 4)] - public byte IsDisableDispNum05 - { - get => GetbitfieldValue(_IsDisableDispNum01Bitfield); - set => SetBitfieldValue(ref _IsDisableDispNum01Bitfield, value); - } - - #endregion BitField IsDisableDispNum01Bitfield - - [ParamField(0x1A, ParamType.Dummy8, 6)] - public byte[] Pad - { - get => _Pad; - set => WriteParamField(ref _Pad, value); - } - private byte[] _Pad = null!; + public EquipMtrlSetParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} + + [ParamField(0x0, ParamType.I32)] + public int MaterialId01 + { + get => _MaterialId01; + set => WriteParamField(ref _MaterialId01, value); + } + private int _MaterialId01; + + [ParamField(0x4, ParamType.I32)] + public int MaterialId02 + { + get => _MaterialId02; + set => WriteParamField(ref _MaterialId02, value); + } + private int _MaterialId02; + [ParamField(0x8, ParamType.I32)] + public int MaterialId03 + { + get => _MaterialId03; + set => WriteParamField(ref _MaterialId03, value); + } + private int _MaterialId03; + + [ParamField(0xC, ParamType.I32)] + public int MaterialId04 + { + get => _MaterialId04; + set => WriteParamField(ref _MaterialId04, value); + } + private int _MaterialId04; + + [ParamField(0x10, ParamType.I32)] + public int MaterialId05 + { + get => _MaterialId05; + set => WriteParamField(ref _MaterialId05, value); } + private int _MaterialId05; + + [ParamField(0x14, ParamType.I8)] + public sbyte ItemNum01 + { + get => _ItemNum01; + set => WriteParamField(ref _ItemNum01, value); + } + private sbyte _ItemNum01; + + [ParamField(0x15, ParamType.I8)] + public sbyte ItemNum02 + { + get => _ItemNum02; + set => WriteParamField(ref _ItemNum02, value); + } + private sbyte _ItemNum02; + + [ParamField(0x16, ParamType.I8)] + public sbyte ItemNum03 + { + get => _ItemNum03; + set => WriteParamField(ref _ItemNum03, value); + } + private sbyte _ItemNum03; + + [ParamField(0x17, ParamType.I8)] + public sbyte ItemNum04 + { + get => _ItemNum04; + set => WriteParamField(ref _ItemNum04, value); + } + private sbyte _ItemNum04; + + [ParamField(0x18, ParamType.I8)] + public sbyte ItemNum05 + { + get => _ItemNum05; + set => WriteParamField(ref _ItemNum05, value); + } + private sbyte _ItemNum05; + + #region BitField IsDisableDispNum01Bitfield ============================================================================== + + [ParamField(0x19, ParamType.U8)] + public byte IsDisableDispNum01Bitfield + { + get => _IsDisableDispNum01Bitfield; + set => WriteParamField(ref _IsDisableDispNum01Bitfield, value); + } + private byte _IsDisableDispNum01Bitfield; + + [ParamBitField(nameof(IsDisableDispNum01Bitfield), bits: 1, bitsOffset: 0)] + public byte IsDisableDispNum01 + { + get => GetbitfieldValue(_IsDisableDispNum01Bitfield); + set => SetBitfieldValue(ref _IsDisableDispNum01Bitfield, value); + } + + [ParamBitField(nameof(IsDisableDispNum01Bitfield), bits: 1, bitsOffset: 1)] + public byte IsDisableDispNum02 + { + get => GetbitfieldValue(_IsDisableDispNum01Bitfield); + set => SetBitfieldValue(ref _IsDisableDispNum01Bitfield, value); + } + + [ParamBitField(nameof(IsDisableDispNum01Bitfield), bits: 1, bitsOffset: 2)] + public byte IsDisableDispNum03 + { + get => GetbitfieldValue(_IsDisableDispNum01Bitfield); + set => SetBitfieldValue(ref _IsDisableDispNum01Bitfield, value); + } + + [ParamBitField(nameof(IsDisableDispNum01Bitfield), bits: 1, bitsOffset: 3)] + public byte IsDisableDispNum04 + { + get => GetbitfieldValue(_IsDisableDispNum01Bitfield); + set => SetBitfieldValue(ref _IsDisableDispNum01Bitfield, value); + } + + [ParamBitField(nameof(IsDisableDispNum01Bitfield), bits: 1, bitsOffset: 4)] + public byte IsDisableDispNum05 + { + get => GetbitfieldValue(_IsDisableDispNum01Bitfield); + set => SetBitfieldValue(ref _IsDisableDispNum01Bitfield, value); + } + + #endregion BitField IsDisableDispNum01Bitfield + + [ParamField(0x1A, ParamType.Dummy8, 6)] + public byte[] Pad + { + get => _Pad; + set => WriteParamField(ref _Pad, value); + } + private byte[] _Pad = null!; + } diff --git a/src/SoulMemory/DarkSouls1/Parameters/EquipParamAccessory.cs b/src/SoulMemory/DarkSouls1/Parameters/EquipParamAccessory.cs index e57bfdd..d7ddd0a 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/EquipParamAccessory.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/EquipParamAccessory.cs @@ -18,229 +18,228 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters +namespace SoulMemory.DarkSouls1.Parameters; + +[ExcludeFromCodeCoverage] +public class EquipParamAccessory : BaseParam { - [ExcludeFromCodeCoverage] - public class EquipParamAccessory : BaseParam - { - public EquipParamAccessory(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - - [ParamField(0x0, ParamType.I32)] - public int RefId - { - get => _RefId; - set => WriteParamField(ref _RefId, value); - } - private int _RefId; - - [ParamField(0x4, ParamType.I32)] - public int SfxVariationId - { - get => _SfxVariationId; - set => WriteParamField(ref _SfxVariationId, value); - } - private int _SfxVariationId; - - [ParamField(0x8, ParamType.F32)] - public float Weight - { - get => _Weight; - set => WriteParamField(ref _Weight, value); - } - private float _Weight; - - [ParamField(0xC, ParamType.I32)] - public int BehaviorId - { - get => _BehaviorId; - set => WriteParamField(ref _BehaviorId, value); - } - private int _BehaviorId; - - [ParamField(0x10, ParamType.I32)] - public int BasicPrice - { - get => _BasicPrice; - set => WriteParamField(ref _BasicPrice, value); - } - private int _BasicPrice; - - [ParamField(0x14, ParamType.I32)] - public int SellValue - { - get => _SellValue; - set => WriteParamField(ref _SellValue, value); - } - private int _SellValue; - - [ParamField(0x18, ParamType.I32)] - public int SortId - { - get => _SortId; - set => WriteParamField(ref _SortId, value); - } - private int _SortId; - - [ParamField(0x1C, ParamType.I32)] - public int QwcId - { - get => _QwcId; - set => WriteParamField(ref _QwcId, value); - } - private int _QwcId; - - [ParamField(0x20, ParamType.U16)] - public ushort EquipModelId - { - get => _EquipModelId; - set => WriteParamField(ref _EquipModelId, value); - } - private ushort _EquipModelId; - - [ParamField(0x22, ParamType.U16)] - public ushort IconId - { - get => _IconId; - set => WriteParamField(ref _IconId, value); - } - private ushort _IconId; - - [ParamField(0x24, ParamType.I16)] - public short ShopLv - { - get => _ShopLv; - set => WriteParamField(ref _ShopLv, value); - } - private short _ShopLv; - - [ParamField(0x26, ParamType.I16)] - public short TrophySGradeId - { - get => _TrophySGradeId; - set => WriteParamField(ref _TrophySGradeId, value); - } - private short _TrophySGradeId; - - [ParamField(0x28, ParamType.I16)] - public short TrophySeqId - { - get => _TrophySeqId; - set => WriteParamField(ref _TrophySeqId, value); - } - private short _TrophySeqId; - - [ParamField(0x2A, ParamType.U8)] - public byte EquipModelCategory - { - get => _EquipModelCategory; - set => WriteParamField(ref _EquipModelCategory, value); - } - private byte _EquipModelCategory; - - [ParamField(0x2B, ParamType.U8)] - public byte EquipModelGender - { - get => _EquipModelGender; - set => WriteParamField(ref _EquipModelGender, value); - } - private byte _EquipModelGender; - - [ParamField(0x2C, ParamType.U8)] - public byte AccessoryCategory - { - get => _AccessoryCategory; - set => WriteParamField(ref _AccessoryCategory, value); - } - private byte _AccessoryCategory; - - [ParamField(0x2D, ParamType.U8)] - public byte RefCategory - { - get => _RefCategory; - set => WriteParamField(ref _RefCategory, value); - } - private byte _RefCategory; - - [ParamField(0x2E, ParamType.U8)] - public byte SpEffectCategory - { - get => _SpEffectCategory; - set => WriteParamField(ref _SpEffectCategory, value); - } - private byte _SpEffectCategory; - - [ParamField(0x2F, ParamType.Dummy8, 1)] - public byte[] Pad - { - get => _Pad; - set => WriteParamField(ref _Pad, value); - } - private byte[] _Pad = null!; - - [ParamField(0x30, ParamType.I32)] - public int VagrantItemLotId - { - get => _VagrantItemLotId; - set => WriteParamField(ref _VagrantItemLotId, value); - } - private int _VagrantItemLotId; - - [ParamField(0x34, ParamType.I32)] - public int VagrantBonusEneDropItemLotId - { - get => _VagrantBonusEneDropItemLotId; - set => WriteParamField(ref _VagrantBonusEneDropItemLotId, value); - } - private int _VagrantBonusEneDropItemLotId; - - [ParamField(0x38, ParamType.I32)] - public int VagrantItemEneDropItemLotId - { - get => _VagrantItemEneDropItemLotId; - set => WriteParamField(ref _VagrantItemEneDropItemLotId, value); - } - private int _VagrantItemEneDropItemLotId; - - #region BitField IsDepositBitfield ============================================================================== - - [ParamField(0x3C, ParamType.U8)] - public byte IsDepositBitfield - { - get => _IsDepositBitfield; - set => WriteParamField(ref _IsDepositBitfield, value); - } - private byte _IsDepositBitfield; - - [ParamBitField(nameof(IsDepositBitfield), bits: 1, bitsOffset: 0)] - public byte IsDeposit - { - get => GetbitfieldValue(_IsDepositBitfield); - set => SetBitfieldValue(ref _IsDepositBitfield, value); - } - - [ParamBitField(nameof(IsDepositBitfield), bits: 1, bitsOffset: 1)] - public byte IsEquipOutBrake - { - get => GetbitfieldValue(_IsDepositBitfield); - set => SetBitfieldValue(ref _IsDepositBitfield, value); - } - - [ParamBitField(nameof(IsDepositBitfield), bits: 1, bitsOffset: 2)] - public byte DisableMultiDropShare - { - get => GetbitfieldValue(_IsDepositBitfield); - set => SetBitfieldValue(ref _IsDepositBitfield, value); - } - - #endregion BitField IsDepositBitfield - - [ParamField(0x3D, ParamType.Dummy8, 3)] - public byte[] Pad1 - { - get => _Pad1; - set => WriteParamField(ref _Pad1, value); - } - private byte[] _Pad1 = null!; + public EquipParamAccessory(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} + + [ParamField(0x0, ParamType.I32)] + public int RefId + { + get => _RefId; + set => WriteParamField(ref _RefId, value); + } + private int _RefId; + + [ParamField(0x4, ParamType.I32)] + public int SfxVariationId + { + get => _SfxVariationId; + set => WriteParamField(ref _SfxVariationId, value); + } + private int _SfxVariationId; + + [ParamField(0x8, ParamType.F32)] + public float Weight + { + get => _Weight; + set => WriteParamField(ref _Weight, value); + } + private float _Weight; + + [ParamField(0xC, ParamType.I32)] + public int BehaviorId + { + get => _BehaviorId; + set => WriteParamField(ref _BehaviorId, value); + } + private int _BehaviorId; + + [ParamField(0x10, ParamType.I32)] + public int BasicPrice + { + get => _BasicPrice; + set => WriteParamField(ref _BasicPrice, value); + } + private int _BasicPrice; + + [ParamField(0x14, ParamType.I32)] + public int SellValue + { + get => _SellValue; + set => WriteParamField(ref _SellValue, value); + } + private int _SellValue; + + [ParamField(0x18, ParamType.I32)] + public int SortId + { + get => _SortId; + set => WriteParamField(ref _SortId, value); + } + private int _SortId; + + [ParamField(0x1C, ParamType.I32)] + public int QwcId + { + get => _QwcId; + set => WriteParamField(ref _QwcId, value); + } + private int _QwcId; + [ParamField(0x20, ParamType.U16)] + public ushort EquipModelId + { + get => _EquipModelId; + set => WriteParamField(ref _EquipModelId, value); + } + private ushort _EquipModelId; + + [ParamField(0x22, ParamType.U16)] + public ushort IconId + { + get => _IconId; + set => WriteParamField(ref _IconId, value); + } + private ushort _IconId; + + [ParamField(0x24, ParamType.I16)] + public short ShopLv + { + get => _ShopLv; + set => WriteParamField(ref _ShopLv, value); } + private short _ShopLv; + + [ParamField(0x26, ParamType.I16)] + public short TrophySGradeId + { + get => _TrophySGradeId; + set => WriteParamField(ref _TrophySGradeId, value); + } + private short _TrophySGradeId; + + [ParamField(0x28, ParamType.I16)] + public short TrophySeqId + { + get => _TrophySeqId; + set => WriteParamField(ref _TrophySeqId, value); + } + private short _TrophySeqId; + + [ParamField(0x2A, ParamType.U8)] + public byte EquipModelCategory + { + get => _EquipModelCategory; + set => WriteParamField(ref _EquipModelCategory, value); + } + private byte _EquipModelCategory; + + [ParamField(0x2B, ParamType.U8)] + public byte EquipModelGender + { + get => _EquipModelGender; + set => WriteParamField(ref _EquipModelGender, value); + } + private byte _EquipModelGender; + + [ParamField(0x2C, ParamType.U8)] + public byte AccessoryCategory + { + get => _AccessoryCategory; + set => WriteParamField(ref _AccessoryCategory, value); + } + private byte _AccessoryCategory; + + [ParamField(0x2D, ParamType.U8)] + public byte RefCategory + { + get => _RefCategory; + set => WriteParamField(ref _RefCategory, value); + } + private byte _RefCategory; + + [ParamField(0x2E, ParamType.U8)] + public byte SpEffectCategory + { + get => _SpEffectCategory; + set => WriteParamField(ref _SpEffectCategory, value); + } + private byte _SpEffectCategory; + + [ParamField(0x2F, ParamType.Dummy8, 1)] + public byte[] Pad + { + get => _Pad; + set => WriteParamField(ref _Pad, value); + } + private byte[] _Pad = null!; + + [ParamField(0x30, ParamType.I32)] + public int VagrantItemLotId + { + get => _VagrantItemLotId; + set => WriteParamField(ref _VagrantItemLotId, value); + } + private int _VagrantItemLotId; + + [ParamField(0x34, ParamType.I32)] + public int VagrantBonusEneDropItemLotId + { + get => _VagrantBonusEneDropItemLotId; + set => WriteParamField(ref _VagrantBonusEneDropItemLotId, value); + } + private int _VagrantBonusEneDropItemLotId; + + [ParamField(0x38, ParamType.I32)] + public int VagrantItemEneDropItemLotId + { + get => _VagrantItemEneDropItemLotId; + set => WriteParamField(ref _VagrantItemEneDropItemLotId, value); + } + private int _VagrantItemEneDropItemLotId; + + #region BitField IsDepositBitfield ============================================================================== + + [ParamField(0x3C, ParamType.U8)] + public byte IsDepositBitfield + { + get => _IsDepositBitfield; + set => WriteParamField(ref _IsDepositBitfield, value); + } + private byte _IsDepositBitfield; + + [ParamBitField(nameof(IsDepositBitfield), bits: 1, bitsOffset: 0)] + public byte IsDeposit + { + get => GetbitfieldValue(_IsDepositBitfield); + set => SetBitfieldValue(ref _IsDepositBitfield, value); + } + + [ParamBitField(nameof(IsDepositBitfield), bits: 1, bitsOffset: 1)] + public byte IsEquipOutBrake + { + get => GetbitfieldValue(_IsDepositBitfield); + set => SetBitfieldValue(ref _IsDepositBitfield, value); + } + + [ParamBitField(nameof(IsDepositBitfield), bits: 1, bitsOffset: 2)] + public byte DisableMultiDropShare + { + get => GetbitfieldValue(_IsDepositBitfield); + set => SetBitfieldValue(ref _IsDepositBitfield, value); + } + + #endregion BitField IsDepositBitfield + + [ParamField(0x3D, ParamType.Dummy8, 3)] + public byte[] Pad1 + { + get => _Pad1; + set => WriteParamField(ref _Pad1, value); + } + private byte[] _Pad1 = null!; + } diff --git a/src/SoulMemory/DarkSouls1/Parameters/EquipParamGoods.cs b/src/SoulMemory/DarkSouls1/Parameters/EquipParamGoods.cs index 8e3ee42..af336f7 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/EquipParamGoods.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/EquipParamGoods.cs @@ -18,593 +18,592 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters +namespace SoulMemory.DarkSouls1.Parameters; + +[ExcludeFromCodeCoverage] +public class EquipParamGoods : BaseParam { - [ExcludeFromCodeCoverage] - public class EquipParamGoods : BaseParam - { - public EquipParamGoods(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - - [ParamField(0x0, ParamType.I32)] - public int RefId - { - get => _RefId; - set => WriteParamField(ref _RefId, value); - } - private int _RefId; - - [ParamField(0x4, ParamType.I32)] - public int SfxVariationId - { - get => _SfxVariationId; - set => WriteParamField(ref _SfxVariationId, value); - } - private int _SfxVariationId; - - [ParamField(0x8, ParamType.F32)] - public float Weight - { - get => _Weight; - set => WriteParamField(ref _Weight, value); - } - private float _Weight; - - [ParamField(0xC, ParamType.I32)] - public int BasicPrice - { - get => _BasicPrice; - set => WriteParamField(ref _BasicPrice, value); - } - private int _BasicPrice; - - [ParamField(0x10, ParamType.I32)] - public int SellValue - { - get => _SellValue; - set => WriteParamField(ref _SellValue, value); - } - private int _SellValue; - - [ParamField(0x14, ParamType.I32)] - public int BehaviorId - { - get => _BehaviorId; - set => WriteParamField(ref _BehaviorId, value); - } - private int _BehaviorId; - - [ParamField(0x18, ParamType.I32)] - public int ReplaceItemId - { - get => _ReplaceItemId; - set => WriteParamField(ref _ReplaceItemId, value); - } - private int _ReplaceItemId; - - [ParamField(0x1C, ParamType.I32)] - public int SortId - { - get => _SortId; - set => WriteParamField(ref _SortId, value); - } - private int _SortId; - - [ParamField(0x20, ParamType.I32)] - public int QwcId - { - get => _QwcId; - set => WriteParamField(ref _QwcId, value); - } - private int _QwcId; - - [ParamField(0x24, ParamType.I32)] - public int YesNoDialogMessageId - { - get => _YesNoDialogMessageId; - set => WriteParamField(ref _YesNoDialogMessageId, value); - } - private int _YesNoDialogMessageId; - - [ParamField(0x28, ParamType.I32)] - public int MagicId - { - get => _MagicId; - set => WriteParamField(ref _MagicId, value); - } - private int _MagicId; - - [ParamField(0x2C, ParamType.U16)] - public ushort IconId - { - get => _IconId; - set => WriteParamField(ref _IconId, value); - } - private ushort _IconId; - - [ParamField(0x2E, ParamType.U16)] - public ushort ModelId - { - get => _ModelId; - set => WriteParamField(ref _ModelId, value); - } - private ushort _ModelId; - - [ParamField(0x30, ParamType.I16)] - public short ShopLv - { - get => _ShopLv; - set => WriteParamField(ref _ShopLv, value); - } - private short _ShopLv; - - [ParamField(0x32, ParamType.I16)] - public short CompTrophySedId - { - get => _CompTrophySedId; - set => WriteParamField(ref _CompTrophySedId, value); - } - private short _CompTrophySedId; - - [ParamField(0x34, ParamType.I16)] - public short TrophySeqId - { - get => _TrophySeqId; - set => WriteParamField(ref _TrophySeqId, value); - } - private short _TrophySeqId; - - [ParamField(0x36, ParamType.I16)] - public short MaxNum - { - get => _MaxNum; - set => WriteParamField(ref _MaxNum, value); - } - private short _MaxNum; - - [ParamField(0x38, ParamType.U8)] - public byte ConsumeHeroPoint - { - get => _ConsumeHeroPoint; - set => WriteParamField(ref _ConsumeHeroPoint, value); - } - private byte _ConsumeHeroPoint; - - [ParamField(0x39, ParamType.U8)] - public byte OverDexterity - { - get => _OverDexterity; - set => WriteParamField(ref _OverDexterity, value); - } - private byte _OverDexterity; - - [ParamField(0x3A, ParamType.U8)] - public byte GoodsType - { - get => _GoodsType; - set => WriteParamField(ref _GoodsType, value); - } - private byte _GoodsType; - - [ParamField(0x3B, ParamType.U8)] - public byte RefCategory - { - get => _RefCategory; - set => WriteParamField(ref _RefCategory, value); - } - private byte _RefCategory; - - [ParamField(0x3C, ParamType.U8)] - public byte SpEffectCategory - { - get => _SpEffectCategory; - set => WriteParamField(ref _SpEffectCategory, value); - } - private byte _SpEffectCategory; - - [ParamField(0x3D, ParamType.U8)] - public byte GoodsCategory - { - get => _GoodsCategory; - set => WriteParamField(ref _GoodsCategory, value); - } - private byte _GoodsCategory; - - [ParamField(0x3E, ParamType.U8)] - public byte GoodsUseAnim - { - get => _GoodsUseAnim; - set => WriteParamField(ref _GoodsUseAnim, value); - } - private byte _GoodsUseAnim; - - [ParamField(0x3F, ParamType.U8)] - public byte OpmeMenuType - { - get => _OpmeMenuType; - set => WriteParamField(ref _OpmeMenuType, value); - } - private byte _OpmeMenuType; - - [ParamField(0x40, ParamType.U8)] - public byte UseLimitCategory - { - get => _UseLimitCategory; - set => WriteParamField(ref _UseLimitCategory, value); - } - private byte _UseLimitCategory; - - [ParamField(0x41, ParamType.U8)] - public byte ReplaceCategory - { - get => _ReplaceCategory; - set => WriteParamField(ref _ReplaceCategory, value); - } - private byte _ReplaceCategory; - - #region BitField VowType0Bitfield ============================================================================== - - [ParamField(0x42, ParamType.U8)] - public byte VowType0Bitfield - { - get => _VowType0Bitfield; - set => WriteParamField(ref _VowType0Bitfield, value); - } - private byte _VowType0Bitfield; - - [ParamBitField(nameof(VowType0Bitfield), bits: 1, bitsOffset: 0)] - public byte VowType0 - { - get => GetbitfieldValue(_VowType0Bitfield); - set => SetBitfieldValue(ref _VowType0Bitfield, value); - } - - [ParamBitField(nameof(VowType0Bitfield), bits: 1, bitsOffset: 1)] - public byte VowType1 - { - get => GetbitfieldValue(_VowType0Bitfield); - set => SetBitfieldValue(ref _VowType0Bitfield, value); - } - - [ParamBitField(nameof(VowType0Bitfield), bits: 1, bitsOffset: 2)] - public byte VowType2 - { - get => GetbitfieldValue(_VowType0Bitfield); - set => SetBitfieldValue(ref _VowType0Bitfield, value); - } - - [ParamBitField(nameof(VowType0Bitfield), bits: 1, bitsOffset: 3)] - public byte VowType3 - { - get => GetbitfieldValue(_VowType0Bitfield); - set => SetBitfieldValue(ref _VowType0Bitfield, value); - } - - [ParamBitField(nameof(VowType0Bitfield), bits: 1, bitsOffset: 4)] - public byte VowType4 - { - get => GetbitfieldValue(_VowType0Bitfield); - set => SetBitfieldValue(ref _VowType0Bitfield, value); - } - - [ParamBitField(nameof(VowType0Bitfield), bits: 1, bitsOffset: 5)] - public byte VowType5 - { - get => GetbitfieldValue(_VowType0Bitfield); - set => SetBitfieldValue(ref _VowType0Bitfield, value); - } - - [ParamBitField(nameof(VowType0Bitfield), bits: 1, bitsOffset: 6)] - public byte VowType6 - { - get => GetbitfieldValue(_VowType0Bitfield); - set => SetBitfieldValue(ref _VowType0Bitfield, value); - } - - [ParamBitField(nameof(VowType0Bitfield), bits: 1, bitsOffset: 7)] - public byte VowType7 - { - get => GetbitfieldValue(_VowType0Bitfield); - set => SetBitfieldValue(ref _VowType0Bitfield, value); - } - - #endregion BitField VowType0Bitfield - - #region BitField VowType8Bitfield ============================================================================== - - [ParamField(0x43, ParamType.U8)] - public byte VowType8Bitfield - { - get => _VowType8Bitfield; - set => WriteParamField(ref _VowType8Bitfield, value); - } - private byte _VowType8Bitfield; - - [ParamBitField(nameof(VowType8Bitfield), bits: 1, bitsOffset: 0)] - public byte VowType8 - { - get => GetbitfieldValue(_VowType8Bitfield); - set => SetBitfieldValue(ref _VowType8Bitfield, value); - } - - [ParamBitField(nameof(VowType8Bitfield), bits: 1, bitsOffset: 1)] - public byte VowType9 - { - get => GetbitfieldValue(_VowType8Bitfield); - set => SetBitfieldValue(ref _VowType8Bitfield, value); - } - - [ParamBitField(nameof(VowType8Bitfield), bits: 1, bitsOffset: 2)] - public byte VowType10 - { - get => GetbitfieldValue(_VowType8Bitfield); - set => SetBitfieldValue(ref _VowType8Bitfield, value); - } - - [ParamBitField(nameof(VowType8Bitfield), bits: 1, bitsOffset: 3)] - public byte VowType11 - { - get => GetbitfieldValue(_VowType8Bitfield); - set => SetBitfieldValue(ref _VowType8Bitfield, value); - } - - [ParamBitField(nameof(VowType8Bitfield), bits: 1, bitsOffset: 4)] - public byte VowType12 - { - get => GetbitfieldValue(_VowType8Bitfield); - set => SetBitfieldValue(ref _VowType8Bitfield, value); - } - - [ParamBitField(nameof(VowType8Bitfield), bits: 1, bitsOffset: 5)] - public byte VowType13 - { - get => GetbitfieldValue(_VowType8Bitfield); - set => SetBitfieldValue(ref _VowType8Bitfield, value); - } - - [ParamBitField(nameof(VowType8Bitfield), bits: 1, bitsOffset: 6)] - public byte VowType14 - { - get => GetbitfieldValue(_VowType8Bitfield); - set => SetBitfieldValue(ref _VowType8Bitfield, value); - } - - [ParamBitField(nameof(VowType8Bitfield), bits: 1, bitsOffset: 7)] - public byte VowType15 - { - get => GetbitfieldValue(_VowType8Bitfield); - set => SetBitfieldValue(ref _VowType8Bitfield, value); - } - - #endregion BitField VowType8Bitfield - - #region BitField Enable_liveBitfield ============================================================================== - - [ParamField(0x44, ParamType.U8)] - public byte Enable_liveBitfield - { - get => _Enable_liveBitfield; - set => WriteParamField(ref _Enable_liveBitfield, value); - } - private byte _Enable_liveBitfield; - - [ParamBitField(nameof(Enable_liveBitfield), bits: 1, bitsOffset: 0)] - public byte Enable_live - { - get => GetbitfieldValue(_Enable_liveBitfield); - set => SetBitfieldValue(ref _Enable_liveBitfield, value); - } - - [ParamBitField(nameof(Enable_liveBitfield), bits: 1, bitsOffset: 1)] - public byte Enable_gray - { - get => GetbitfieldValue(_Enable_liveBitfield); - set => SetBitfieldValue(ref _Enable_liveBitfield, value); - } - - [ParamBitField(nameof(Enable_liveBitfield), bits: 1, bitsOffset: 2)] - public byte Enable_white - { - get => GetbitfieldValue(_Enable_liveBitfield); - set => SetBitfieldValue(ref _Enable_liveBitfield, value); - } - - [ParamBitField(nameof(Enable_liveBitfield), bits: 1, bitsOffset: 3)] - public byte Enable_black - { - get => GetbitfieldValue(_Enable_liveBitfield); - set => SetBitfieldValue(ref _Enable_liveBitfield, value); - } - - [ParamBitField(nameof(Enable_liveBitfield), bits: 1, bitsOffset: 4)] - public byte Enable_multi - { - get => GetbitfieldValue(_Enable_liveBitfield); - set => SetBitfieldValue(ref _Enable_liveBitfield, value); - } - - [ParamBitField(nameof(Enable_liveBitfield), bits: 1, bitsOffset: 5)] - public byte Enable_pvp - { - get => GetbitfieldValue(_Enable_liveBitfield); - set => SetBitfieldValue(ref _Enable_liveBitfield, value); - } - - [ParamBitField(nameof(Enable_liveBitfield), bits: 1, bitsOffset: 6)] - public byte Disable_offline - { - get => GetbitfieldValue(_Enable_liveBitfield); - set => SetBitfieldValue(ref _Enable_liveBitfield, value); - } - - [ParamBitField(nameof(Enable_liveBitfield), bits: 1, bitsOffset: 7)] - public byte IsEquip - { - get => GetbitfieldValue(_Enable_liveBitfield); - set => SetBitfieldValue(ref _Enable_liveBitfield, value); - } - - #endregion BitField Enable_liveBitfield - - #region BitField IsConsumeBitfield ============================================================================== - - [ParamField(0x45, ParamType.U8)] - public byte IsConsumeBitfield - { - get => _IsConsumeBitfield; - set => WriteParamField(ref _IsConsumeBitfield, value); - } - private byte _IsConsumeBitfield; - - [ParamBitField(nameof(IsConsumeBitfield), bits: 1, bitsOffset: 0)] - public byte IsConsume - { - get => GetbitfieldValue(_IsConsumeBitfield); - set => SetBitfieldValue(ref _IsConsumeBitfield, value); - } - - [ParamBitField(nameof(IsConsumeBitfield), bits: 1, bitsOffset: 1)] - public byte IsAutoEquip - { - get => GetbitfieldValue(_IsConsumeBitfield); - set => SetBitfieldValue(ref _IsConsumeBitfield, value); - } - - [ParamBitField(nameof(IsConsumeBitfield), bits: 1, bitsOffset: 2)] - public byte IsEstablishment - { - get => GetbitfieldValue(_IsConsumeBitfield); - set => SetBitfieldValue(ref _IsConsumeBitfield, value); - } - - [ParamBitField(nameof(IsConsumeBitfield), bits: 1, bitsOffset: 3)] - public byte IsOnlyOne - { - get => GetbitfieldValue(_IsConsumeBitfield); - set => SetBitfieldValue(ref _IsConsumeBitfield, value); - } - - [ParamBitField(nameof(IsConsumeBitfield), bits: 1, bitsOffset: 4)] - public byte IsDrop - { - get => GetbitfieldValue(_IsConsumeBitfield); - set => SetBitfieldValue(ref _IsConsumeBitfield, value); - } - - [ParamBitField(nameof(IsConsumeBitfield), bits: 1, bitsOffset: 5)] - public byte IsDeposit - { - get => GetbitfieldValue(_IsConsumeBitfield); - set => SetBitfieldValue(ref _IsConsumeBitfield, value); - } - - [ParamBitField(nameof(IsConsumeBitfield), bits: 1, bitsOffset: 6)] - public byte IsDisableHand - { - get => GetbitfieldValue(_IsConsumeBitfield); - set => SetBitfieldValue(ref _IsConsumeBitfield, value); - } - - [ParamBitField(nameof(IsConsumeBitfield), bits: 1, bitsOffset: 7)] - public byte IsTravelItem - { - get => GetbitfieldValue(_IsConsumeBitfield); - set => SetBitfieldValue(ref _IsConsumeBitfield, value); - } - - #endregion BitField IsConsumeBitfield - - #region BitField IsSuppleItemBitfield ============================================================================== - - [ParamField(0x46, ParamType.U8)] - public byte IsSuppleItemBitfield - { - get => _IsSuppleItemBitfield; - set => WriteParamField(ref _IsSuppleItemBitfield, value); - } - private byte _IsSuppleItemBitfield; - - [ParamBitField(nameof(IsSuppleItemBitfield), bits: 1, bitsOffset: 0)] - public byte IsSuppleItem - { - get => GetbitfieldValue(_IsSuppleItemBitfield); - set => SetBitfieldValue(ref _IsSuppleItemBitfield, value); - } - - [ParamBitField(nameof(IsSuppleItemBitfield), bits: 1, bitsOffset: 1)] - public byte IsFullSuppleItem - { - get => GetbitfieldValue(_IsSuppleItemBitfield); - set => SetBitfieldValue(ref _IsSuppleItemBitfield, value); - } - - [ParamBitField(nameof(IsSuppleItemBitfield), bits: 1, bitsOffset: 2)] - public byte IsEnhance - { - get => GetbitfieldValue(_IsSuppleItemBitfield); - set => SetBitfieldValue(ref _IsSuppleItemBitfield, value); - } - - [ParamBitField(nameof(IsSuppleItemBitfield), bits: 1, bitsOffset: 3)] - public byte IsFixItem - { - get => GetbitfieldValue(_IsSuppleItemBitfield); - set => SetBitfieldValue(ref _IsSuppleItemBitfield, value); - } - - [ParamBitField(nameof(IsSuppleItemBitfield), bits: 1, bitsOffset: 4)] - public byte DisableMultiDropShare - { - get => GetbitfieldValue(_IsSuppleItemBitfield); - set => SetBitfieldValue(ref _IsSuppleItemBitfield, value); - } - - [ParamBitField(nameof(IsSuppleItemBitfield), bits: 1, bitsOffset: 5)] - public byte DisableUseAtColiseum - { - get => GetbitfieldValue(_IsSuppleItemBitfield); - set => SetBitfieldValue(ref _IsSuppleItemBitfield, value); - } - - [ParamBitField(nameof(IsSuppleItemBitfield), bits: 1, bitsOffset: 6)] - public byte DisableUseAtOutOfColiseum - { - get => GetbitfieldValue(_IsSuppleItemBitfield); - set => SetBitfieldValue(ref _IsSuppleItemBitfield, value); - } - - #endregion BitField IsSuppleItemBitfield - - [ParamField(0x47, ParamType.Dummy8, 9)] - public byte[] Pad - { - get => _Pad; - set => WriteParamField(ref _Pad, value); - } - private byte[] _Pad = null!; - - [ParamField(0x50, ParamType.I32)] - public int VagrantItemLotId - { - get => _VagrantItemLotId; - set => WriteParamField(ref _VagrantItemLotId, value); - } - private int _VagrantItemLotId; - - [ParamField(0x54, ParamType.I32)] - public int VagrantBonusEneDropItemLotId - { - get => _VagrantBonusEneDropItemLotId; - set => WriteParamField(ref _VagrantBonusEneDropItemLotId, value); - } - private int _VagrantBonusEneDropItemLotId; - - [ParamField(0x58, ParamType.I32)] - public int VagrantItemEneDropItemLotId - { - get => _VagrantItemEneDropItemLotId; - set => WriteParamField(ref _VagrantItemEneDropItemLotId, value); - } - private int _VagrantItemEneDropItemLotId; + public EquipParamGoods(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} + + [ParamField(0x0, ParamType.I32)] + public int RefId + { + get => _RefId; + set => WriteParamField(ref _RefId, value); + } + private int _RefId; + + [ParamField(0x4, ParamType.I32)] + public int SfxVariationId + { + get => _SfxVariationId; + set => WriteParamField(ref _SfxVariationId, value); + } + private int _SfxVariationId; + + [ParamField(0x8, ParamType.F32)] + public float Weight + { + get => _Weight; + set => WriteParamField(ref _Weight, value); + } + private float _Weight; + + [ParamField(0xC, ParamType.I32)] + public int BasicPrice + { + get => _BasicPrice; + set => WriteParamField(ref _BasicPrice, value); + } + private int _BasicPrice; + + [ParamField(0x10, ParamType.I32)] + public int SellValue + { + get => _SellValue; + set => WriteParamField(ref _SellValue, value); + } + private int _SellValue; + + [ParamField(0x14, ParamType.I32)] + public int BehaviorId + { + get => _BehaviorId; + set => WriteParamField(ref _BehaviorId, value); + } + private int _BehaviorId; + + [ParamField(0x18, ParamType.I32)] + public int ReplaceItemId + { + get => _ReplaceItemId; + set => WriteParamField(ref _ReplaceItemId, value); + } + private int _ReplaceItemId; + + [ParamField(0x1C, ParamType.I32)] + public int SortId + { + get => _SortId; + set => WriteParamField(ref _SortId, value); + } + private int _SortId; + + [ParamField(0x20, ParamType.I32)] + public int QwcId + { + get => _QwcId; + set => WriteParamField(ref _QwcId, value); + } + private int _QwcId; + + [ParamField(0x24, ParamType.I32)] + public int YesNoDialogMessageId + { + get => _YesNoDialogMessageId; + set => WriteParamField(ref _YesNoDialogMessageId, value); + } + private int _YesNoDialogMessageId; + + [ParamField(0x28, ParamType.I32)] + public int MagicId + { + get => _MagicId; + set => WriteParamField(ref _MagicId, value); + } + private int _MagicId; + + [ParamField(0x2C, ParamType.U16)] + public ushort IconId + { + get => _IconId; + set => WriteParamField(ref _IconId, value); + } + private ushort _IconId; + + [ParamField(0x2E, ParamType.U16)] + public ushort ModelId + { + get => _ModelId; + set => WriteParamField(ref _ModelId, value); + } + private ushort _ModelId; + + [ParamField(0x30, ParamType.I16)] + public short ShopLv + { + get => _ShopLv; + set => WriteParamField(ref _ShopLv, value); + } + private short _ShopLv; + + [ParamField(0x32, ParamType.I16)] + public short CompTrophySedId + { + get => _CompTrophySedId; + set => WriteParamField(ref _CompTrophySedId, value); + } + private short _CompTrophySedId; + + [ParamField(0x34, ParamType.I16)] + public short TrophySeqId + { + get => _TrophySeqId; + set => WriteParamField(ref _TrophySeqId, value); + } + private short _TrophySeqId; + + [ParamField(0x36, ParamType.I16)] + public short MaxNum + { + get => _MaxNum; + set => WriteParamField(ref _MaxNum, value); + } + private short _MaxNum; + + [ParamField(0x38, ParamType.U8)] + public byte ConsumeHeroPoint + { + get => _ConsumeHeroPoint; + set => WriteParamField(ref _ConsumeHeroPoint, value); + } + private byte _ConsumeHeroPoint; + + [ParamField(0x39, ParamType.U8)] + public byte OverDexterity + { + get => _OverDexterity; + set => WriteParamField(ref _OverDexterity, value); + } + private byte _OverDexterity; + + [ParamField(0x3A, ParamType.U8)] + public byte GoodsType + { + get => _GoodsType; + set => WriteParamField(ref _GoodsType, value); + } + private byte _GoodsType; + + [ParamField(0x3B, ParamType.U8)] + public byte RefCategory + { + get => _RefCategory; + set => WriteParamField(ref _RefCategory, value); + } + private byte _RefCategory; + + [ParamField(0x3C, ParamType.U8)] + public byte SpEffectCategory + { + get => _SpEffectCategory; + set => WriteParamField(ref _SpEffectCategory, value); + } + private byte _SpEffectCategory; + + [ParamField(0x3D, ParamType.U8)] + public byte GoodsCategory + { + get => _GoodsCategory; + set => WriteParamField(ref _GoodsCategory, value); + } + private byte _GoodsCategory; + + [ParamField(0x3E, ParamType.U8)] + public byte GoodsUseAnim + { + get => _GoodsUseAnim; + set => WriteParamField(ref _GoodsUseAnim, value); + } + private byte _GoodsUseAnim; + + [ParamField(0x3F, ParamType.U8)] + public byte OpmeMenuType + { + get => _OpmeMenuType; + set => WriteParamField(ref _OpmeMenuType, value); + } + private byte _OpmeMenuType; + + [ParamField(0x40, ParamType.U8)] + public byte UseLimitCategory + { + get => _UseLimitCategory; + set => WriteParamField(ref _UseLimitCategory, value); + } + private byte _UseLimitCategory; + [ParamField(0x41, ParamType.U8)] + public byte ReplaceCategory + { + get => _ReplaceCategory; + set => WriteParamField(ref _ReplaceCategory, value); } + private byte _ReplaceCategory; + + #region BitField VowType0Bitfield ============================================================================== + + [ParamField(0x42, ParamType.U8)] + public byte VowType0Bitfield + { + get => _VowType0Bitfield; + set => WriteParamField(ref _VowType0Bitfield, value); + } + private byte _VowType0Bitfield; + + [ParamBitField(nameof(VowType0Bitfield), bits: 1, bitsOffset: 0)] + public byte VowType0 + { + get => GetbitfieldValue(_VowType0Bitfield); + set => SetBitfieldValue(ref _VowType0Bitfield, value); + } + + [ParamBitField(nameof(VowType0Bitfield), bits: 1, bitsOffset: 1)] + public byte VowType1 + { + get => GetbitfieldValue(_VowType0Bitfield); + set => SetBitfieldValue(ref _VowType0Bitfield, value); + } + + [ParamBitField(nameof(VowType0Bitfield), bits: 1, bitsOffset: 2)] + public byte VowType2 + { + get => GetbitfieldValue(_VowType0Bitfield); + set => SetBitfieldValue(ref _VowType0Bitfield, value); + } + + [ParamBitField(nameof(VowType0Bitfield), bits: 1, bitsOffset: 3)] + public byte VowType3 + { + get => GetbitfieldValue(_VowType0Bitfield); + set => SetBitfieldValue(ref _VowType0Bitfield, value); + } + + [ParamBitField(nameof(VowType0Bitfield), bits: 1, bitsOffset: 4)] + public byte VowType4 + { + get => GetbitfieldValue(_VowType0Bitfield); + set => SetBitfieldValue(ref _VowType0Bitfield, value); + } + + [ParamBitField(nameof(VowType0Bitfield), bits: 1, bitsOffset: 5)] + public byte VowType5 + { + get => GetbitfieldValue(_VowType0Bitfield); + set => SetBitfieldValue(ref _VowType0Bitfield, value); + } + + [ParamBitField(nameof(VowType0Bitfield), bits: 1, bitsOffset: 6)] + public byte VowType6 + { + get => GetbitfieldValue(_VowType0Bitfield); + set => SetBitfieldValue(ref _VowType0Bitfield, value); + } + + [ParamBitField(nameof(VowType0Bitfield), bits: 1, bitsOffset: 7)] + public byte VowType7 + { + get => GetbitfieldValue(_VowType0Bitfield); + set => SetBitfieldValue(ref _VowType0Bitfield, value); + } + + #endregion BitField VowType0Bitfield + + #region BitField VowType8Bitfield ============================================================================== + + [ParamField(0x43, ParamType.U8)] + public byte VowType8Bitfield + { + get => _VowType8Bitfield; + set => WriteParamField(ref _VowType8Bitfield, value); + } + private byte _VowType8Bitfield; + + [ParamBitField(nameof(VowType8Bitfield), bits: 1, bitsOffset: 0)] + public byte VowType8 + { + get => GetbitfieldValue(_VowType8Bitfield); + set => SetBitfieldValue(ref _VowType8Bitfield, value); + } + + [ParamBitField(nameof(VowType8Bitfield), bits: 1, bitsOffset: 1)] + public byte VowType9 + { + get => GetbitfieldValue(_VowType8Bitfield); + set => SetBitfieldValue(ref _VowType8Bitfield, value); + } + + [ParamBitField(nameof(VowType8Bitfield), bits: 1, bitsOffset: 2)] + public byte VowType10 + { + get => GetbitfieldValue(_VowType8Bitfield); + set => SetBitfieldValue(ref _VowType8Bitfield, value); + } + + [ParamBitField(nameof(VowType8Bitfield), bits: 1, bitsOffset: 3)] + public byte VowType11 + { + get => GetbitfieldValue(_VowType8Bitfield); + set => SetBitfieldValue(ref _VowType8Bitfield, value); + } + + [ParamBitField(nameof(VowType8Bitfield), bits: 1, bitsOffset: 4)] + public byte VowType12 + { + get => GetbitfieldValue(_VowType8Bitfield); + set => SetBitfieldValue(ref _VowType8Bitfield, value); + } + + [ParamBitField(nameof(VowType8Bitfield), bits: 1, bitsOffset: 5)] + public byte VowType13 + { + get => GetbitfieldValue(_VowType8Bitfield); + set => SetBitfieldValue(ref _VowType8Bitfield, value); + } + + [ParamBitField(nameof(VowType8Bitfield), bits: 1, bitsOffset: 6)] + public byte VowType14 + { + get => GetbitfieldValue(_VowType8Bitfield); + set => SetBitfieldValue(ref _VowType8Bitfield, value); + } + + [ParamBitField(nameof(VowType8Bitfield), bits: 1, bitsOffset: 7)] + public byte VowType15 + { + get => GetbitfieldValue(_VowType8Bitfield); + set => SetBitfieldValue(ref _VowType8Bitfield, value); + } + + #endregion BitField VowType8Bitfield + + #region BitField Enable_liveBitfield ============================================================================== + + [ParamField(0x44, ParamType.U8)] + public byte Enable_liveBitfield + { + get => _Enable_liveBitfield; + set => WriteParamField(ref _Enable_liveBitfield, value); + } + private byte _Enable_liveBitfield; + + [ParamBitField(nameof(Enable_liveBitfield), bits: 1, bitsOffset: 0)] + public byte Enable_live + { + get => GetbitfieldValue(_Enable_liveBitfield); + set => SetBitfieldValue(ref _Enable_liveBitfield, value); + } + + [ParamBitField(nameof(Enable_liveBitfield), bits: 1, bitsOffset: 1)] + public byte Enable_gray + { + get => GetbitfieldValue(_Enable_liveBitfield); + set => SetBitfieldValue(ref _Enable_liveBitfield, value); + } + + [ParamBitField(nameof(Enable_liveBitfield), bits: 1, bitsOffset: 2)] + public byte Enable_white + { + get => GetbitfieldValue(_Enable_liveBitfield); + set => SetBitfieldValue(ref _Enable_liveBitfield, value); + } + + [ParamBitField(nameof(Enable_liveBitfield), bits: 1, bitsOffset: 3)] + public byte Enable_black + { + get => GetbitfieldValue(_Enable_liveBitfield); + set => SetBitfieldValue(ref _Enable_liveBitfield, value); + } + + [ParamBitField(nameof(Enable_liveBitfield), bits: 1, bitsOffset: 4)] + public byte Enable_multi + { + get => GetbitfieldValue(_Enable_liveBitfield); + set => SetBitfieldValue(ref _Enable_liveBitfield, value); + } + + [ParamBitField(nameof(Enable_liveBitfield), bits: 1, bitsOffset: 5)] + public byte Enable_pvp + { + get => GetbitfieldValue(_Enable_liveBitfield); + set => SetBitfieldValue(ref _Enable_liveBitfield, value); + } + + [ParamBitField(nameof(Enable_liveBitfield), bits: 1, bitsOffset: 6)] + public byte Disable_offline + { + get => GetbitfieldValue(_Enable_liveBitfield); + set => SetBitfieldValue(ref _Enable_liveBitfield, value); + } + + [ParamBitField(nameof(Enable_liveBitfield), bits: 1, bitsOffset: 7)] + public byte IsEquip + { + get => GetbitfieldValue(_Enable_liveBitfield); + set => SetBitfieldValue(ref _Enable_liveBitfield, value); + } + + #endregion BitField Enable_liveBitfield + + #region BitField IsConsumeBitfield ============================================================================== + + [ParamField(0x45, ParamType.U8)] + public byte IsConsumeBitfield + { + get => _IsConsumeBitfield; + set => WriteParamField(ref _IsConsumeBitfield, value); + } + private byte _IsConsumeBitfield; + + [ParamBitField(nameof(IsConsumeBitfield), bits: 1, bitsOffset: 0)] + public byte IsConsume + { + get => GetbitfieldValue(_IsConsumeBitfield); + set => SetBitfieldValue(ref _IsConsumeBitfield, value); + } + + [ParamBitField(nameof(IsConsumeBitfield), bits: 1, bitsOffset: 1)] + public byte IsAutoEquip + { + get => GetbitfieldValue(_IsConsumeBitfield); + set => SetBitfieldValue(ref _IsConsumeBitfield, value); + } + + [ParamBitField(nameof(IsConsumeBitfield), bits: 1, bitsOffset: 2)] + public byte IsEstablishment + { + get => GetbitfieldValue(_IsConsumeBitfield); + set => SetBitfieldValue(ref _IsConsumeBitfield, value); + } + + [ParamBitField(nameof(IsConsumeBitfield), bits: 1, bitsOffset: 3)] + public byte IsOnlyOne + { + get => GetbitfieldValue(_IsConsumeBitfield); + set => SetBitfieldValue(ref _IsConsumeBitfield, value); + } + + [ParamBitField(nameof(IsConsumeBitfield), bits: 1, bitsOffset: 4)] + public byte IsDrop + { + get => GetbitfieldValue(_IsConsumeBitfield); + set => SetBitfieldValue(ref _IsConsumeBitfield, value); + } + + [ParamBitField(nameof(IsConsumeBitfield), bits: 1, bitsOffset: 5)] + public byte IsDeposit + { + get => GetbitfieldValue(_IsConsumeBitfield); + set => SetBitfieldValue(ref _IsConsumeBitfield, value); + } + + [ParamBitField(nameof(IsConsumeBitfield), bits: 1, bitsOffset: 6)] + public byte IsDisableHand + { + get => GetbitfieldValue(_IsConsumeBitfield); + set => SetBitfieldValue(ref _IsConsumeBitfield, value); + } + + [ParamBitField(nameof(IsConsumeBitfield), bits: 1, bitsOffset: 7)] + public byte IsTravelItem + { + get => GetbitfieldValue(_IsConsumeBitfield); + set => SetBitfieldValue(ref _IsConsumeBitfield, value); + } + + #endregion BitField IsConsumeBitfield + + #region BitField IsSuppleItemBitfield ============================================================================== + + [ParamField(0x46, ParamType.U8)] + public byte IsSuppleItemBitfield + { + get => _IsSuppleItemBitfield; + set => WriteParamField(ref _IsSuppleItemBitfield, value); + } + private byte _IsSuppleItemBitfield; + + [ParamBitField(nameof(IsSuppleItemBitfield), bits: 1, bitsOffset: 0)] + public byte IsSuppleItem + { + get => GetbitfieldValue(_IsSuppleItemBitfield); + set => SetBitfieldValue(ref _IsSuppleItemBitfield, value); + } + + [ParamBitField(nameof(IsSuppleItemBitfield), bits: 1, bitsOffset: 1)] + public byte IsFullSuppleItem + { + get => GetbitfieldValue(_IsSuppleItemBitfield); + set => SetBitfieldValue(ref _IsSuppleItemBitfield, value); + } + + [ParamBitField(nameof(IsSuppleItemBitfield), bits: 1, bitsOffset: 2)] + public byte IsEnhance + { + get => GetbitfieldValue(_IsSuppleItemBitfield); + set => SetBitfieldValue(ref _IsSuppleItemBitfield, value); + } + + [ParamBitField(nameof(IsSuppleItemBitfield), bits: 1, bitsOffset: 3)] + public byte IsFixItem + { + get => GetbitfieldValue(_IsSuppleItemBitfield); + set => SetBitfieldValue(ref _IsSuppleItemBitfield, value); + } + + [ParamBitField(nameof(IsSuppleItemBitfield), bits: 1, bitsOffset: 4)] + public byte DisableMultiDropShare + { + get => GetbitfieldValue(_IsSuppleItemBitfield); + set => SetBitfieldValue(ref _IsSuppleItemBitfield, value); + } + + [ParamBitField(nameof(IsSuppleItemBitfield), bits: 1, bitsOffset: 5)] + public byte DisableUseAtColiseum + { + get => GetbitfieldValue(_IsSuppleItemBitfield); + set => SetBitfieldValue(ref _IsSuppleItemBitfield, value); + } + + [ParamBitField(nameof(IsSuppleItemBitfield), bits: 1, bitsOffset: 6)] + public byte DisableUseAtOutOfColiseum + { + get => GetbitfieldValue(_IsSuppleItemBitfield); + set => SetBitfieldValue(ref _IsSuppleItemBitfield, value); + } + + #endregion BitField IsSuppleItemBitfield + + [ParamField(0x47, ParamType.Dummy8, 9)] + public byte[] Pad + { + get => _Pad; + set => WriteParamField(ref _Pad, value); + } + private byte[] _Pad = null!; + + [ParamField(0x50, ParamType.I32)] + public int VagrantItemLotId + { + get => _VagrantItemLotId; + set => WriteParamField(ref _VagrantItemLotId, value); + } + private int _VagrantItemLotId; + + [ParamField(0x54, ParamType.I32)] + public int VagrantBonusEneDropItemLotId + { + get => _VagrantBonusEneDropItemLotId; + set => WriteParamField(ref _VagrantBonusEneDropItemLotId, value); + } + private int _VagrantBonusEneDropItemLotId; + + [ParamField(0x58, ParamType.I32)] + public int VagrantItemEneDropItemLotId + { + get => _VagrantItemEneDropItemLotId; + set => WriteParamField(ref _VagrantItemEneDropItemLotId, value); + } + private int _VagrantItemEneDropItemLotId; + } diff --git a/src/SoulMemory/DarkSouls1/Parameters/EquipParamProtector.cs b/src/SoulMemory/DarkSouls1/Parameters/EquipParamProtector.cs index 79e686e..a353e99 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/EquipParamProtector.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/EquipParamProtector.cs @@ -18,1096 +18,1095 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters +namespace SoulMemory.DarkSouls1.Parameters; + +[ExcludeFromCodeCoverage] +public class EquipParamProtector : BaseParam { - [ExcludeFromCodeCoverage] - public class EquipParamProtector : BaseParam - { - public EquipParamProtector(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - - [ParamField(0x0, ParamType.I32)] - public int SortId - { - get => _SortId; - set => WriteParamField(ref _SortId, value); - } - private int _SortId; - - [ParamField(0x4, ParamType.U32)] - public uint WanderingEquipId - { - get => _WanderingEquipId; - set => WriteParamField(ref _WanderingEquipId, value); - } - private uint _WanderingEquipId; - - [ParamField(0x8, ParamType.I32)] - public int VagrantItemLotId - { - get => _VagrantItemLotId; - set => WriteParamField(ref _VagrantItemLotId, value); - } - private int _VagrantItemLotId; - - [ParamField(0xC, ParamType.I32)] - public int VagrantBonusEneDropItemLotId - { - get => _VagrantBonusEneDropItemLotId; - set => WriteParamField(ref _VagrantBonusEneDropItemLotId, value); - } - private int _VagrantBonusEneDropItemLotId; - - [ParamField(0x10, ParamType.I32)] - public int VagrantItemEneDropItemLotId - { - get => _VagrantItemEneDropItemLotId; - set => WriteParamField(ref _VagrantItemEneDropItemLotId, value); - } - private int _VagrantItemEneDropItemLotId; - - [ParamField(0x14, ParamType.I32)] - public int FixPrice - { - get => _FixPrice; - set => WriteParamField(ref _FixPrice, value); - } - private int _FixPrice; - - [ParamField(0x18, ParamType.I32)] - public int BasicPrice - { - get => _BasicPrice; - set => WriteParamField(ref _BasicPrice, value); - } - private int _BasicPrice; - - [ParamField(0x1C, ParamType.I32)] - public int SellValue - { - get => _SellValue; - set => WriteParamField(ref _SellValue, value); - } - private int _SellValue; - - [ParamField(0x20, ParamType.F32)] - public float Weight - { - get => _Weight; - set => WriteParamField(ref _Weight, value); - } - private float _Weight; - - [ParamField(0x24, ParamType.I32)] - public int ResidentSpEffectId - { - get => _ResidentSpEffectId; - set => WriteParamField(ref _ResidentSpEffectId, value); - } - private int _ResidentSpEffectId; - - [ParamField(0x28, ParamType.I32)] - public int ResidentSpEffectId2 - { - get => _ResidentSpEffectId2; - set => WriteParamField(ref _ResidentSpEffectId2, value); - } - private int _ResidentSpEffectId2; - - [ParamField(0x2C, ParamType.I32)] - public int ResidentSpEffectId3 - { - get => _ResidentSpEffectId3; - set => WriteParamField(ref _ResidentSpEffectId3, value); - } - private int _ResidentSpEffectId3; - - [ParamField(0x30, ParamType.I32)] - public int MaterialSetId - { - get => _MaterialSetId; - set => WriteParamField(ref _MaterialSetId, value); - } - private int _MaterialSetId; - - [ParamField(0x34, ParamType.F32)] - public float PartsDamageRate - { - get => _PartsDamageRate; - set => WriteParamField(ref _PartsDamageRate, value); - } - private float _PartsDamageRate; - - [ParamField(0x38, ParamType.F32)] - public float CorectSARecover - { - get => _CorectSARecover; - set => WriteParamField(ref _CorectSARecover, value); - } - private float _CorectSARecover; - - [ParamField(0x3C, ParamType.I32)] - public int OriginEquipPro - { - get => _OriginEquipPro; - set => WriteParamField(ref _OriginEquipPro, value); - } - private int _OriginEquipPro; - - [ParamField(0x40, ParamType.I32)] - public int OriginEquipPro1 - { - get => _OriginEquipPro1; - set => WriteParamField(ref _OriginEquipPro1, value); - } - private int _OriginEquipPro1; - - [ParamField(0x44, ParamType.I32)] - public int OriginEquipPro2 - { - get => _OriginEquipPro2; - set => WriteParamField(ref _OriginEquipPro2, value); - } - private int _OriginEquipPro2; - - [ParamField(0x48, ParamType.I32)] - public int OriginEquipPro3 - { - get => _OriginEquipPro3; - set => WriteParamField(ref _OriginEquipPro3, value); - } - private int _OriginEquipPro3; - - [ParamField(0x4C, ParamType.I32)] - public int OriginEquipPro4 - { - get => _OriginEquipPro4; - set => WriteParamField(ref _OriginEquipPro4, value); - } - private int _OriginEquipPro4; - - [ParamField(0x50, ParamType.I32)] - public int OriginEquipPro5 - { - get => _OriginEquipPro5; - set => WriteParamField(ref _OriginEquipPro5, value); - } - private int _OriginEquipPro5; - - [ParamField(0x54, ParamType.I32)] - public int OriginEquipPro6 - { - get => _OriginEquipPro6; - set => WriteParamField(ref _OriginEquipPro6, value); - } - private int _OriginEquipPro6; - - [ParamField(0x58, ParamType.I32)] - public int OriginEquipPro7 - { - get => _OriginEquipPro7; - set => WriteParamField(ref _OriginEquipPro7, value); - } - private int _OriginEquipPro7; - - [ParamField(0x5C, ParamType.I32)] - public int OriginEquipPro8 - { - get => _OriginEquipPro8; - set => WriteParamField(ref _OriginEquipPro8, value); - } - private int _OriginEquipPro8; - - [ParamField(0x60, ParamType.I32)] - public int OriginEquipPro9 - { - get => _OriginEquipPro9; - set => WriteParamField(ref _OriginEquipPro9, value); - } - private int _OriginEquipPro9; - - [ParamField(0x64, ParamType.I32)] - public int OriginEquipPro10 - { - get => _OriginEquipPro10; - set => WriteParamField(ref _OriginEquipPro10, value); - } - private int _OriginEquipPro10; - - [ParamField(0x68, ParamType.I32)] - public int OriginEquipPro11 - { - get => _OriginEquipPro11; - set => WriteParamField(ref _OriginEquipPro11, value); - } - private int _OriginEquipPro11; - - [ParamField(0x6C, ParamType.I32)] - public int OriginEquipPro12 - { - get => _OriginEquipPro12; - set => WriteParamField(ref _OriginEquipPro12, value); - } - private int _OriginEquipPro12; - - [ParamField(0x70, ParamType.I32)] - public int OriginEquipPro13 - { - get => _OriginEquipPro13; - set => WriteParamField(ref _OriginEquipPro13, value); - } - private int _OriginEquipPro13; - - [ParamField(0x74, ParamType.I32)] - public int OriginEquipPro14 - { - get => _OriginEquipPro14; - set => WriteParamField(ref _OriginEquipPro14, value); - } - private int _OriginEquipPro14; - - [ParamField(0x78, ParamType.I32)] - public int OriginEquipPro15 - { - get => _OriginEquipPro15; - set => WriteParamField(ref _OriginEquipPro15, value); - } - private int _OriginEquipPro15; - - [ParamField(0x7C, ParamType.F32)] - public float FaceScaleM_ScaleX - { - get => _FaceScaleM_ScaleX; - set => WriteParamField(ref _FaceScaleM_ScaleX, value); - } - private float _FaceScaleM_ScaleX; - - [ParamField(0x80, ParamType.F32)] - public float FaceScaleM_ScaleZ - { - get => _FaceScaleM_ScaleZ; - set => WriteParamField(ref _FaceScaleM_ScaleZ, value); - } - private float _FaceScaleM_ScaleZ; - - [ParamField(0x84, ParamType.F32)] - public float FaceScaleM_MaxX - { - get => _FaceScaleM_MaxX; - set => WriteParamField(ref _FaceScaleM_MaxX, value); - } - private float _FaceScaleM_MaxX; - - [ParamField(0x88, ParamType.F32)] - public float FaceScaleM_MaxZ - { - get => _FaceScaleM_MaxZ; - set => WriteParamField(ref _FaceScaleM_MaxZ, value); - } - private float _FaceScaleM_MaxZ; - - [ParamField(0x8C, ParamType.F32)] - public float FaceScaleF_ScaleX - { - get => _FaceScaleF_ScaleX; - set => WriteParamField(ref _FaceScaleF_ScaleX, value); - } - private float _FaceScaleF_ScaleX; - - [ParamField(0x90, ParamType.F32)] - public float FaceScaleF_ScaleZ - { - get => _FaceScaleF_ScaleZ; - set => WriteParamField(ref _FaceScaleF_ScaleZ, value); - } - private float _FaceScaleF_ScaleZ; - - [ParamField(0x94, ParamType.F32)] - public float FaceScaleF_MaxX - { - get => _FaceScaleF_MaxX; - set => WriteParamField(ref _FaceScaleF_MaxX, value); - } - private float _FaceScaleF_MaxX; - - [ParamField(0x98, ParamType.F32)] - public float FaceScaleF_MaxZ - { - get => _FaceScaleF_MaxZ; - set => WriteParamField(ref _FaceScaleF_MaxZ, value); - } - private float _FaceScaleF_MaxZ; - - [ParamField(0x9C, ParamType.I32)] - public int QwcId - { - get => _QwcId; - set => WriteParamField(ref _QwcId, value); - } - private int _QwcId; - - [ParamField(0xA0, ParamType.U16)] - public ushort EquipModelId - { - get => _EquipModelId; - set => WriteParamField(ref _EquipModelId, value); - } - private ushort _EquipModelId; - - [ParamField(0xA2, ParamType.U16)] - public ushort IconIdM - { - get => _IconIdM; - set => WriteParamField(ref _IconIdM, value); - } - private ushort _IconIdM; - - [ParamField(0xA4, ParamType.U16)] - public ushort IconIdF - { - get => _IconIdF; - set => WriteParamField(ref _IconIdF, value); - } - private ushort _IconIdF; - - [ParamField(0xA6, ParamType.U16)] - public ushort KnockBack - { - get => _KnockBack; - set => WriteParamField(ref _KnockBack, value); - } - private ushort _KnockBack; - - [ParamField(0xA8, ParamType.U16)] - public ushort KnockbackBounceRate - { - get => _KnockbackBounceRate; - set => WriteParamField(ref _KnockbackBounceRate, value); - } - private ushort _KnockbackBounceRate; - - [ParamField(0xAA, ParamType.U16)] - public ushort Durability - { - get => _Durability; - set => WriteParamField(ref _Durability, value); - } - private ushort _Durability; - - [ParamField(0xAC, ParamType.U16)] - public ushort DurabilityMax - { - get => _DurabilityMax; - set => WriteParamField(ref _DurabilityMax, value); - } - private ushort _DurabilityMax; - - [ParamField(0xAE, ParamType.I16)] - public short SaDurability - { - get => _SaDurability; - set => WriteParamField(ref _SaDurability, value); - } - private short _SaDurability; - - [ParamField(0xB0, ParamType.U16)] - public ushort DefFlickPower - { - get => _DefFlickPower; - set => WriteParamField(ref _DefFlickPower, value); - } - private ushort _DefFlickPower; - - [ParamField(0xB2, ParamType.U16)] - public ushort DefensePhysics - { - get => _DefensePhysics; - set => WriteParamField(ref _DefensePhysics, value); - } - private ushort _DefensePhysics; - - [ParamField(0xB4, ParamType.U16)] - public ushort DefenseMagic - { - get => _DefenseMagic; - set => WriteParamField(ref _DefenseMagic, value); - } - private ushort _DefenseMagic; - - [ParamField(0xB6, ParamType.U16)] - public ushort DefenseFire - { - get => _DefenseFire; - set => WriteParamField(ref _DefenseFire, value); - } - private ushort _DefenseFire; - - [ParamField(0xB8, ParamType.U16)] - public ushort DefenseThunder - { - get => _DefenseThunder; - set => WriteParamField(ref _DefenseThunder, value); - } - private ushort _DefenseThunder; - - [ParamField(0xBA, ParamType.I16)] - public short DefenseSlash - { - get => _DefenseSlash; - set => WriteParamField(ref _DefenseSlash, value); - } - private short _DefenseSlash; - - [ParamField(0xBC, ParamType.I16)] - public short DefenseBlow - { - get => _DefenseBlow; - set => WriteParamField(ref _DefenseBlow, value); - } - private short _DefenseBlow; - - [ParamField(0xBE, ParamType.I16)] - public short DefenseThrust - { - get => _DefenseThrust; - set => WriteParamField(ref _DefenseThrust, value); - } - private short _DefenseThrust; - - [ParamField(0xC0, ParamType.U16)] - public ushort ResistPoison - { - get => _ResistPoison; - set => WriteParamField(ref _ResistPoison, value); - } - private ushort _ResistPoison; - - [ParamField(0xC2, ParamType.U16)] - public ushort ResistDisease - { - get => _ResistDisease; - set => WriteParamField(ref _ResistDisease, value); - } - private ushort _ResistDisease; - - [ParamField(0xC4, ParamType.U16)] - public ushort ResistBlood - { - get => _ResistBlood; - set => WriteParamField(ref _ResistBlood, value); - } - private ushort _ResistBlood; - - [ParamField(0xC6, ParamType.U16)] - public ushort ResistCurse - { - get => _ResistCurse; - set => WriteParamField(ref _ResistCurse, value); - } - private ushort _ResistCurse; - - [ParamField(0xC8, ParamType.I16)] - public short ReinforceTypeId - { - get => _ReinforceTypeId; - set => WriteParamField(ref _ReinforceTypeId, value); - } - private short _ReinforceTypeId; - - [ParamField(0xCA, ParamType.I16)] - public short TrophySGradeId - { - get => _TrophySGradeId; - set => WriteParamField(ref _TrophySGradeId, value); - } - private short _TrophySGradeId; - - [ParamField(0xCC, ParamType.I16)] - public short ShopLv - { - get => _ShopLv; - set => WriteParamField(ref _ShopLv, value); - } - private short _ShopLv; - - [ParamField(0xCE, ParamType.U8)] - public byte KnockbackParamId - { - get => _KnockbackParamId; - set => WriteParamField(ref _KnockbackParamId, value); - } - private byte _KnockbackParamId; - - [ParamField(0xCF, ParamType.U8)] - public byte FlickDamageCutRate - { - get => _FlickDamageCutRate; - set => WriteParamField(ref _FlickDamageCutRate, value); - } - private byte _FlickDamageCutRate; - - [ParamField(0xD0, ParamType.U8)] - public byte EquipModelCategory - { - get => _EquipModelCategory; - set => WriteParamField(ref _EquipModelCategory, value); - } - private byte _EquipModelCategory; - - [ParamField(0xD1, ParamType.U8)] - public byte EquipModelGender - { - get => _EquipModelGender; - set => WriteParamField(ref _EquipModelGender, value); - } - private byte _EquipModelGender; - - [ParamField(0xD2, ParamType.U8)] - public byte ProtectorCategory - { - get => _ProtectorCategory; - set => WriteParamField(ref _ProtectorCategory, value); - } - private byte _ProtectorCategory; - - [ParamField(0xD3, ParamType.U8)] - public byte DefenseMaterial - { - get => _DefenseMaterial; - set => WriteParamField(ref _DefenseMaterial, value); - } - private byte _DefenseMaterial; - - [ParamField(0xD4, ParamType.U8)] - public byte DefenseMaterialSfx - { - get => _DefenseMaterialSfx; - set => WriteParamField(ref _DefenseMaterialSfx, value); - } - private byte _DefenseMaterialSfx; - - [ParamField(0xD5, ParamType.U8)] - public byte PartsDmgType - { - get => _PartsDmgType; - set => WriteParamField(ref _PartsDmgType, value); - } - private byte _PartsDmgType; - - [ParamField(0xD6, ParamType.U8)] - public byte DefenseMaterial_Weak - { - get => _DefenseMaterial_Weak; - set => WriteParamField(ref _DefenseMaterial_Weak, value); - } - private byte _DefenseMaterial_Weak; - - [ParamField(0xD7, ParamType.U8)] - public byte DefenseMaterialSfx_Weak - { - get => _DefenseMaterialSfx_Weak; - set => WriteParamField(ref _DefenseMaterialSfx_Weak, value); - } - private byte _DefenseMaterialSfx_Weak; - - #region BitField IsDepositBitfield ============================================================================== - - [ParamField(0xD8, ParamType.U8)] - public byte IsDepositBitfield - { - get => _IsDepositBitfield; - set => WriteParamField(ref _IsDepositBitfield, value); - } - private byte _IsDepositBitfield; - - [ParamBitField(nameof(IsDepositBitfield), bits: 1, bitsOffset: 0)] - public byte IsDeposit - { - get => GetbitfieldValue(_IsDepositBitfield); - set => SetBitfieldValue(ref _IsDepositBitfield, value); - } - - [ParamBitField(nameof(IsDepositBitfield), bits: 1, bitsOffset: 1)] - public byte HeadEquip - { - get => GetbitfieldValue(_IsDepositBitfield); - set => SetBitfieldValue(ref _IsDepositBitfield, value); - } - - [ParamBitField(nameof(IsDepositBitfield), bits: 1, bitsOffset: 2)] - public byte BodyEquip - { - get => GetbitfieldValue(_IsDepositBitfield); - set => SetBitfieldValue(ref _IsDepositBitfield, value); - } - - [ParamBitField(nameof(IsDepositBitfield), bits: 1, bitsOffset: 3)] - public byte ArmEquip - { - get => GetbitfieldValue(_IsDepositBitfield); - set => SetBitfieldValue(ref _IsDepositBitfield, value); - } - - [ParamBitField(nameof(IsDepositBitfield), bits: 1, bitsOffset: 4)] - public byte LegEquip - { - get => GetbitfieldValue(_IsDepositBitfield); - set => SetBitfieldValue(ref _IsDepositBitfield, value); - } - - [ParamBitField(nameof(IsDepositBitfield), bits: 1, bitsOffset: 5)] - public byte UseFaceScale - { - get => GetbitfieldValue(_IsDepositBitfield); - set => SetBitfieldValue(ref _IsDepositBitfield, value); - } - - [ParamBitField(nameof(IsDepositBitfield), bits: 1, bitsOffset: 6)] - public byte InvisibleFlag00 - { - get => GetbitfieldValue(_IsDepositBitfield); - set => SetBitfieldValue(ref _IsDepositBitfield, value); - } - - [ParamBitField(nameof(IsDepositBitfield), bits: 1, bitsOffset: 7)] - public byte InvisibleFlag01 - { - get => GetbitfieldValue(_IsDepositBitfield); - set => SetBitfieldValue(ref _IsDepositBitfield, value); - } - - #endregion BitField IsDepositBitfield - - #region BitField InvisibleFlag02Bitfield ============================================================================== - - [ParamField(0xD9, ParamType.U8)] - public byte InvisibleFlag02Bitfield - { - get => _InvisibleFlag02Bitfield; - set => WriteParamField(ref _InvisibleFlag02Bitfield, value); - } - private byte _InvisibleFlag02Bitfield; - - [ParamBitField(nameof(InvisibleFlag02Bitfield), bits: 1, bitsOffset: 0)] - public byte InvisibleFlag02 - { - get => GetbitfieldValue(_InvisibleFlag02Bitfield); - set => SetBitfieldValue(ref _InvisibleFlag02Bitfield, value); - } - - [ParamBitField(nameof(InvisibleFlag02Bitfield), bits: 1, bitsOffset: 1)] - public byte InvisibleFlag03 - { - get => GetbitfieldValue(_InvisibleFlag02Bitfield); - set => SetBitfieldValue(ref _InvisibleFlag02Bitfield, value); - } - - [ParamBitField(nameof(InvisibleFlag02Bitfield), bits: 1, bitsOffset: 2)] - public byte InvisibleFlag04 - { - get => GetbitfieldValue(_InvisibleFlag02Bitfield); - set => SetBitfieldValue(ref _InvisibleFlag02Bitfield, value); - } - - [ParamBitField(nameof(InvisibleFlag02Bitfield), bits: 1, bitsOffset: 3)] - public byte InvisibleFlag05 - { - get => GetbitfieldValue(_InvisibleFlag02Bitfield); - set => SetBitfieldValue(ref _InvisibleFlag02Bitfield, value); - } - - [ParamBitField(nameof(InvisibleFlag02Bitfield), bits: 1, bitsOffset: 4)] - public byte InvisibleFlag06 - { - get => GetbitfieldValue(_InvisibleFlag02Bitfield); - set => SetBitfieldValue(ref _InvisibleFlag02Bitfield, value); - } - - [ParamBitField(nameof(InvisibleFlag02Bitfield), bits: 1, bitsOffset: 5)] - public byte InvisibleFlag07 - { - get => GetbitfieldValue(_InvisibleFlag02Bitfield); - set => SetBitfieldValue(ref _InvisibleFlag02Bitfield, value); - } - - [ParamBitField(nameof(InvisibleFlag02Bitfield), bits: 1, bitsOffset: 6)] - public byte InvisibleFlag08 - { - get => GetbitfieldValue(_InvisibleFlag02Bitfield); - set => SetBitfieldValue(ref _InvisibleFlag02Bitfield, value); - } - - [ParamBitField(nameof(InvisibleFlag02Bitfield), bits: 1, bitsOffset: 7)] - public byte InvisibleFlag09 - { - get => GetbitfieldValue(_InvisibleFlag02Bitfield); - set => SetBitfieldValue(ref _InvisibleFlag02Bitfield, value); - } - - #endregion BitField InvisibleFlag02Bitfield - - #region BitField InvisibleFlag10Bitfield ============================================================================== - - [ParamField(0xDA, ParamType.U8)] - public byte InvisibleFlag10Bitfield - { - get => _InvisibleFlag10Bitfield; - set => WriteParamField(ref _InvisibleFlag10Bitfield, value); - } - private byte _InvisibleFlag10Bitfield; - - [ParamBitField(nameof(InvisibleFlag10Bitfield), bits: 1, bitsOffset: 0)] - public byte InvisibleFlag10 - { - get => GetbitfieldValue(_InvisibleFlag10Bitfield); - set => SetBitfieldValue(ref _InvisibleFlag10Bitfield, value); - } - - [ParamBitField(nameof(InvisibleFlag10Bitfield), bits: 1, bitsOffset: 1)] - public byte InvisibleFlag11 - { - get => GetbitfieldValue(_InvisibleFlag10Bitfield); - set => SetBitfieldValue(ref _InvisibleFlag10Bitfield, value); - } - - [ParamBitField(nameof(InvisibleFlag10Bitfield), bits: 1, bitsOffset: 2)] - public byte InvisibleFlag12 - { - get => GetbitfieldValue(_InvisibleFlag10Bitfield); - set => SetBitfieldValue(ref _InvisibleFlag10Bitfield, value); - } - - [ParamBitField(nameof(InvisibleFlag10Bitfield), bits: 1, bitsOffset: 3)] - public byte InvisibleFlag13 - { - get => GetbitfieldValue(_InvisibleFlag10Bitfield); - set => SetBitfieldValue(ref _InvisibleFlag10Bitfield, value); - } - - [ParamBitField(nameof(InvisibleFlag10Bitfield), bits: 1, bitsOffset: 4)] - public byte InvisibleFlag14 - { - get => GetbitfieldValue(_InvisibleFlag10Bitfield); - set => SetBitfieldValue(ref _InvisibleFlag10Bitfield, value); - } - - [ParamBitField(nameof(InvisibleFlag10Bitfield), bits: 1, bitsOffset: 5)] - public byte InvisibleFlag15 - { - get => GetbitfieldValue(_InvisibleFlag10Bitfield); - set => SetBitfieldValue(ref _InvisibleFlag10Bitfield, value); - } - - [ParamBitField(nameof(InvisibleFlag10Bitfield), bits: 1, bitsOffset: 6)] - public byte InvisibleFlag16 - { - get => GetbitfieldValue(_InvisibleFlag10Bitfield); - set => SetBitfieldValue(ref _InvisibleFlag10Bitfield, value); - } - - [ParamBitField(nameof(InvisibleFlag10Bitfield), bits: 1, bitsOffset: 7)] - public byte InvisibleFlag17 - { - get => GetbitfieldValue(_InvisibleFlag10Bitfield); - set => SetBitfieldValue(ref _InvisibleFlag10Bitfield, value); - } - - #endregion BitField InvisibleFlag10Bitfield - - #region BitField InvisibleFlag18Bitfield ============================================================================== - - [ParamField(0xDB, ParamType.U8)] - public byte InvisibleFlag18Bitfield - { - get => _InvisibleFlag18Bitfield; - set => WriteParamField(ref _InvisibleFlag18Bitfield, value); - } - private byte _InvisibleFlag18Bitfield; - - [ParamBitField(nameof(InvisibleFlag18Bitfield), bits: 1, bitsOffset: 0)] - public byte InvisibleFlag18 - { - get => GetbitfieldValue(_InvisibleFlag18Bitfield); - set => SetBitfieldValue(ref _InvisibleFlag18Bitfield, value); - } - - [ParamBitField(nameof(InvisibleFlag18Bitfield), bits: 1, bitsOffset: 1)] - public byte InvisibleFlag19 - { - get => GetbitfieldValue(_InvisibleFlag18Bitfield); - set => SetBitfieldValue(ref _InvisibleFlag18Bitfield, value); - } - - [ParamBitField(nameof(InvisibleFlag18Bitfield), bits: 1, bitsOffset: 2)] - public byte InvisibleFlag20 - { - get => GetbitfieldValue(_InvisibleFlag18Bitfield); - set => SetBitfieldValue(ref _InvisibleFlag18Bitfield, value); - } - - [ParamBitField(nameof(InvisibleFlag18Bitfield), bits: 1, bitsOffset: 3)] - public byte InvisibleFlag21 - { - get => GetbitfieldValue(_InvisibleFlag18Bitfield); - set => SetBitfieldValue(ref _InvisibleFlag18Bitfield, value); - } - - [ParamBitField(nameof(InvisibleFlag18Bitfield), bits: 1, bitsOffset: 4)] - public byte InvisibleFlag22 - { - get => GetbitfieldValue(_InvisibleFlag18Bitfield); - set => SetBitfieldValue(ref _InvisibleFlag18Bitfield, value); - } - - [ParamBitField(nameof(InvisibleFlag18Bitfield), bits: 1, bitsOffset: 5)] - public byte InvisibleFlag23 - { - get => GetbitfieldValue(_InvisibleFlag18Bitfield); - set => SetBitfieldValue(ref _InvisibleFlag18Bitfield, value); - } - - [ParamBitField(nameof(InvisibleFlag18Bitfield), bits: 1, bitsOffset: 6)] - public byte InvisibleFlag24 - { - get => GetbitfieldValue(_InvisibleFlag18Bitfield); - set => SetBitfieldValue(ref _InvisibleFlag18Bitfield, value); - } - - [ParamBitField(nameof(InvisibleFlag18Bitfield), bits: 1, bitsOffset: 7)] - public byte InvisibleFlag25 - { - get => GetbitfieldValue(_InvisibleFlag18Bitfield); - set => SetBitfieldValue(ref _InvisibleFlag18Bitfield, value); - } - - #endregion BitField InvisibleFlag18Bitfield - - #region BitField InvisibleFlag26Bitfield ============================================================================== - - [ParamField(0xDC, ParamType.U8)] - public byte InvisibleFlag26Bitfield - { - get => _InvisibleFlag26Bitfield; - set => WriteParamField(ref _InvisibleFlag26Bitfield, value); - } - private byte _InvisibleFlag26Bitfield; - - [ParamBitField(nameof(InvisibleFlag26Bitfield), bits: 1, bitsOffset: 0)] - public byte InvisibleFlag26 - { - get => GetbitfieldValue(_InvisibleFlag26Bitfield); - set => SetBitfieldValue(ref _InvisibleFlag26Bitfield, value); - } - - [ParamBitField(nameof(InvisibleFlag26Bitfield), bits: 1, bitsOffset: 1)] - public byte InvisibleFlag27 - { - get => GetbitfieldValue(_InvisibleFlag26Bitfield); - set => SetBitfieldValue(ref _InvisibleFlag26Bitfield, value); - } - - [ParamBitField(nameof(InvisibleFlag26Bitfield), bits: 1, bitsOffset: 2)] - public byte InvisibleFlag28 - { - get => GetbitfieldValue(_InvisibleFlag26Bitfield); - set => SetBitfieldValue(ref _InvisibleFlag26Bitfield, value); - } - - [ParamBitField(nameof(InvisibleFlag26Bitfield), bits: 1, bitsOffset: 3)] - public byte InvisibleFlag29 - { - get => GetbitfieldValue(_InvisibleFlag26Bitfield); - set => SetBitfieldValue(ref _InvisibleFlag26Bitfield, value); - } - - [ParamBitField(nameof(InvisibleFlag26Bitfield), bits: 1, bitsOffset: 4)] - public byte InvisibleFlag30 - { - get => GetbitfieldValue(_InvisibleFlag26Bitfield); - set => SetBitfieldValue(ref _InvisibleFlag26Bitfield, value); - } - - [ParamBitField(nameof(InvisibleFlag26Bitfield), bits: 1, bitsOffset: 5)] - public byte InvisibleFlag31 - { - get => GetbitfieldValue(_InvisibleFlag26Bitfield); - set => SetBitfieldValue(ref _InvisibleFlag26Bitfield, value); - } - - [ParamBitField(nameof(InvisibleFlag26Bitfield), bits: 1, bitsOffset: 6)] - public byte InvisibleFlag32 - { - get => GetbitfieldValue(_InvisibleFlag26Bitfield); - set => SetBitfieldValue(ref _InvisibleFlag26Bitfield, value); - } - - [ParamBitField(nameof(InvisibleFlag26Bitfield), bits: 1, bitsOffset: 7)] - public byte InvisibleFlag33 - { - get => GetbitfieldValue(_InvisibleFlag26Bitfield); - set => SetBitfieldValue(ref _InvisibleFlag26Bitfield, value); - } - - #endregion BitField InvisibleFlag26Bitfield - - #region BitField InvisibleFlag34Bitfield ============================================================================== - - [ParamField(0xDD, ParamType.U8)] - public byte InvisibleFlag34Bitfield - { - get => _InvisibleFlag34Bitfield; - set => WriteParamField(ref _InvisibleFlag34Bitfield, value); - } - private byte _InvisibleFlag34Bitfield; - - [ParamBitField(nameof(InvisibleFlag34Bitfield), bits: 1, bitsOffset: 0)] - public byte InvisibleFlag34 - { - get => GetbitfieldValue(_InvisibleFlag34Bitfield); - set => SetBitfieldValue(ref _InvisibleFlag34Bitfield, value); - } - - [ParamBitField(nameof(InvisibleFlag34Bitfield), bits: 1, bitsOffset: 1)] - public byte InvisibleFlag35 - { - get => GetbitfieldValue(_InvisibleFlag34Bitfield); - set => SetBitfieldValue(ref _InvisibleFlag34Bitfield, value); - } - - [ParamBitField(nameof(InvisibleFlag34Bitfield), bits: 1, bitsOffset: 2)] - public byte InvisibleFlag36 - { - get => GetbitfieldValue(_InvisibleFlag34Bitfield); - set => SetBitfieldValue(ref _InvisibleFlag34Bitfield, value); - } - - [ParamBitField(nameof(InvisibleFlag34Bitfield), bits: 1, bitsOffset: 3)] - public byte InvisibleFlag37 - { - get => GetbitfieldValue(_InvisibleFlag34Bitfield); - set => SetBitfieldValue(ref _InvisibleFlag34Bitfield, value); - } - - [ParamBitField(nameof(InvisibleFlag34Bitfield), bits: 1, bitsOffset: 4)] - public byte InvisibleFlag38 - { - get => GetbitfieldValue(_InvisibleFlag34Bitfield); - set => SetBitfieldValue(ref _InvisibleFlag34Bitfield, value); - } - - [ParamBitField(nameof(InvisibleFlag34Bitfield), bits: 1, bitsOffset: 5)] - public byte InvisibleFlag39 - { - get => GetbitfieldValue(_InvisibleFlag34Bitfield); - set => SetBitfieldValue(ref _InvisibleFlag34Bitfield, value); - } - - [ParamBitField(nameof(InvisibleFlag34Bitfield), bits: 1, bitsOffset: 6)] - public byte InvisibleFlag40 - { - get => GetbitfieldValue(_InvisibleFlag34Bitfield); - set => SetBitfieldValue(ref _InvisibleFlag34Bitfield, value); - } - - [ParamBitField(nameof(InvisibleFlag34Bitfield), bits: 1, bitsOffset: 7)] - public byte InvisibleFlag41 - { - get => GetbitfieldValue(_InvisibleFlag34Bitfield); - set => SetBitfieldValue(ref _InvisibleFlag34Bitfield, value); - } - - #endregion BitField InvisibleFlag34Bitfield - - #region BitField InvisibleFlag42Bitfield ============================================================================== - - [ParamField(0xDE, ParamType.U8)] - public byte InvisibleFlag42Bitfield - { - get => _InvisibleFlag42Bitfield; - set => WriteParamField(ref _InvisibleFlag42Bitfield, value); - } - private byte _InvisibleFlag42Bitfield; - - [ParamBitField(nameof(InvisibleFlag42Bitfield), bits: 1, bitsOffset: 0)] - public byte InvisibleFlag42 - { - get => GetbitfieldValue(_InvisibleFlag42Bitfield); - set => SetBitfieldValue(ref _InvisibleFlag42Bitfield, value); - } - - [ParamBitField(nameof(InvisibleFlag42Bitfield), bits: 1, bitsOffset: 1)] - public byte InvisibleFlag43 - { - get => GetbitfieldValue(_InvisibleFlag42Bitfield); - set => SetBitfieldValue(ref _InvisibleFlag42Bitfield, value); - } - - [ParamBitField(nameof(InvisibleFlag42Bitfield), bits: 1, bitsOffset: 2)] - public byte InvisibleFlag44 - { - get => GetbitfieldValue(_InvisibleFlag42Bitfield); - set => SetBitfieldValue(ref _InvisibleFlag42Bitfield, value); - } - - [ParamBitField(nameof(InvisibleFlag42Bitfield), bits: 1, bitsOffset: 3)] - public byte InvisibleFlag45 - { - get => GetbitfieldValue(_InvisibleFlag42Bitfield); - set => SetBitfieldValue(ref _InvisibleFlag42Bitfield, value); - } - - [ParamBitField(nameof(InvisibleFlag42Bitfield), bits: 1, bitsOffset: 4)] - public byte InvisibleFlag46 - { - get => GetbitfieldValue(_InvisibleFlag42Bitfield); - set => SetBitfieldValue(ref _InvisibleFlag42Bitfield, value); - } - - [ParamBitField(nameof(InvisibleFlag42Bitfield), bits: 1, bitsOffset: 5)] - public byte InvisibleFlag47 - { - get => GetbitfieldValue(_InvisibleFlag42Bitfield); - set => SetBitfieldValue(ref _InvisibleFlag42Bitfield, value); - } - - [ParamBitField(nameof(InvisibleFlag42Bitfield), bits: 1, bitsOffset: 6)] - public byte DisableMultiDropShare - { - get => GetbitfieldValue(_InvisibleFlag42Bitfield); - set => SetBitfieldValue(ref _InvisibleFlag42Bitfield, value); - } - - [ParamBitField(nameof(InvisibleFlag42Bitfield), bits: 1, bitsOffset: 7)] - public byte SimpleModelForDlc - { - get => GetbitfieldValue(_InvisibleFlag42Bitfield); - set => SetBitfieldValue(ref _InvisibleFlag42Bitfield, value); - } - - #endregion BitField InvisibleFlag42Bitfield - - [ParamField(0xDF, ParamType.Dummy8, 1)] - public byte[] Pad_0 - { - get => _Pad_0; - set => WriteParamField(ref _Pad_0, value); - } - private byte[] _Pad_0 = null!; - - [ParamField(0xE0, ParamType.I16)] - public short OldSortId - { - get => _OldSortId; - set => WriteParamField(ref _OldSortId, value); - } - private short _OldSortId; - - [ParamField(0xE2, ParamType.Dummy8, 6)] - public byte[] Pad_1 - { - get => _Pad_1; - set => WriteParamField(ref _Pad_1, value); - } - private byte[] _Pad_1 = null!; + public EquipParamProtector(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} + + [ParamField(0x0, ParamType.I32)] + public int SortId + { + get => _SortId; + set => WriteParamField(ref _SortId, value); + } + private int _SortId; + + [ParamField(0x4, ParamType.U32)] + public uint WanderingEquipId + { + get => _WanderingEquipId; + set => WriteParamField(ref _WanderingEquipId, value); + } + private uint _WanderingEquipId; + + [ParamField(0x8, ParamType.I32)] + public int VagrantItemLotId + { + get => _VagrantItemLotId; + set => WriteParamField(ref _VagrantItemLotId, value); + } + private int _VagrantItemLotId; + + [ParamField(0xC, ParamType.I32)] + public int VagrantBonusEneDropItemLotId + { + get => _VagrantBonusEneDropItemLotId; + set => WriteParamField(ref _VagrantBonusEneDropItemLotId, value); + } + private int _VagrantBonusEneDropItemLotId; + + [ParamField(0x10, ParamType.I32)] + public int VagrantItemEneDropItemLotId + { + get => _VagrantItemEneDropItemLotId; + set => WriteParamField(ref _VagrantItemEneDropItemLotId, value); + } + private int _VagrantItemEneDropItemLotId; + + [ParamField(0x14, ParamType.I32)] + public int FixPrice + { + get => _FixPrice; + set => WriteParamField(ref _FixPrice, value); + } + private int _FixPrice; + + [ParamField(0x18, ParamType.I32)] + public int BasicPrice + { + get => _BasicPrice; + set => WriteParamField(ref _BasicPrice, value); + } + private int _BasicPrice; + + [ParamField(0x1C, ParamType.I32)] + public int SellValue + { + get => _SellValue; + set => WriteParamField(ref _SellValue, value); + } + private int _SellValue; + + [ParamField(0x20, ParamType.F32)] + public float Weight + { + get => _Weight; + set => WriteParamField(ref _Weight, value); + } + private float _Weight; + + [ParamField(0x24, ParamType.I32)] + public int ResidentSpEffectId + { + get => _ResidentSpEffectId; + set => WriteParamField(ref _ResidentSpEffectId, value); + } + private int _ResidentSpEffectId; + + [ParamField(0x28, ParamType.I32)] + public int ResidentSpEffectId2 + { + get => _ResidentSpEffectId2; + set => WriteParamField(ref _ResidentSpEffectId2, value); + } + private int _ResidentSpEffectId2; + + [ParamField(0x2C, ParamType.I32)] + public int ResidentSpEffectId3 + { + get => _ResidentSpEffectId3; + set => WriteParamField(ref _ResidentSpEffectId3, value); + } + private int _ResidentSpEffectId3; + + [ParamField(0x30, ParamType.I32)] + public int MaterialSetId + { + get => _MaterialSetId; + set => WriteParamField(ref _MaterialSetId, value); + } + private int _MaterialSetId; + + [ParamField(0x34, ParamType.F32)] + public float PartsDamageRate + { + get => _PartsDamageRate; + set => WriteParamField(ref _PartsDamageRate, value); + } + private float _PartsDamageRate; + + [ParamField(0x38, ParamType.F32)] + public float CorectSARecover + { + get => _CorectSARecover; + set => WriteParamField(ref _CorectSARecover, value); + } + private float _CorectSARecover; + + [ParamField(0x3C, ParamType.I32)] + public int OriginEquipPro + { + get => _OriginEquipPro; + set => WriteParamField(ref _OriginEquipPro, value); + } + private int _OriginEquipPro; + + [ParamField(0x40, ParamType.I32)] + public int OriginEquipPro1 + { + get => _OriginEquipPro1; + set => WriteParamField(ref _OriginEquipPro1, value); + } + private int _OriginEquipPro1; + + [ParamField(0x44, ParamType.I32)] + public int OriginEquipPro2 + { + get => _OriginEquipPro2; + set => WriteParamField(ref _OriginEquipPro2, value); + } + private int _OriginEquipPro2; + + [ParamField(0x48, ParamType.I32)] + public int OriginEquipPro3 + { + get => _OriginEquipPro3; + set => WriteParamField(ref _OriginEquipPro3, value); + } + private int _OriginEquipPro3; + + [ParamField(0x4C, ParamType.I32)] + public int OriginEquipPro4 + { + get => _OriginEquipPro4; + set => WriteParamField(ref _OriginEquipPro4, value); + } + private int _OriginEquipPro4; + + [ParamField(0x50, ParamType.I32)] + public int OriginEquipPro5 + { + get => _OriginEquipPro5; + set => WriteParamField(ref _OriginEquipPro5, value); + } + private int _OriginEquipPro5; + + [ParamField(0x54, ParamType.I32)] + public int OriginEquipPro6 + { + get => _OriginEquipPro6; + set => WriteParamField(ref _OriginEquipPro6, value); + } + private int _OriginEquipPro6; + + [ParamField(0x58, ParamType.I32)] + public int OriginEquipPro7 + { + get => _OriginEquipPro7; + set => WriteParamField(ref _OriginEquipPro7, value); + } + private int _OriginEquipPro7; + + [ParamField(0x5C, ParamType.I32)] + public int OriginEquipPro8 + { + get => _OriginEquipPro8; + set => WriteParamField(ref _OriginEquipPro8, value); + } + private int _OriginEquipPro8; + + [ParamField(0x60, ParamType.I32)] + public int OriginEquipPro9 + { + get => _OriginEquipPro9; + set => WriteParamField(ref _OriginEquipPro9, value); + } + private int _OriginEquipPro9; + + [ParamField(0x64, ParamType.I32)] + public int OriginEquipPro10 + { + get => _OriginEquipPro10; + set => WriteParamField(ref _OriginEquipPro10, value); + } + private int _OriginEquipPro10; + + [ParamField(0x68, ParamType.I32)] + public int OriginEquipPro11 + { + get => _OriginEquipPro11; + set => WriteParamField(ref _OriginEquipPro11, value); + } + private int _OriginEquipPro11; + + [ParamField(0x6C, ParamType.I32)] + public int OriginEquipPro12 + { + get => _OriginEquipPro12; + set => WriteParamField(ref _OriginEquipPro12, value); + } + private int _OriginEquipPro12; + + [ParamField(0x70, ParamType.I32)] + public int OriginEquipPro13 + { + get => _OriginEquipPro13; + set => WriteParamField(ref _OriginEquipPro13, value); + } + private int _OriginEquipPro13; + + [ParamField(0x74, ParamType.I32)] + public int OriginEquipPro14 + { + get => _OriginEquipPro14; + set => WriteParamField(ref _OriginEquipPro14, value); + } + private int _OriginEquipPro14; + + [ParamField(0x78, ParamType.I32)] + public int OriginEquipPro15 + { + get => _OriginEquipPro15; + set => WriteParamField(ref _OriginEquipPro15, value); + } + private int _OriginEquipPro15; + + [ParamField(0x7C, ParamType.F32)] + public float FaceScaleM_ScaleX + { + get => _FaceScaleM_ScaleX; + set => WriteParamField(ref _FaceScaleM_ScaleX, value); + } + private float _FaceScaleM_ScaleX; + + [ParamField(0x80, ParamType.F32)] + public float FaceScaleM_ScaleZ + { + get => _FaceScaleM_ScaleZ; + set => WriteParamField(ref _FaceScaleM_ScaleZ, value); + } + private float _FaceScaleM_ScaleZ; + + [ParamField(0x84, ParamType.F32)] + public float FaceScaleM_MaxX + { + get => _FaceScaleM_MaxX; + set => WriteParamField(ref _FaceScaleM_MaxX, value); + } + private float _FaceScaleM_MaxX; + + [ParamField(0x88, ParamType.F32)] + public float FaceScaleM_MaxZ + { + get => _FaceScaleM_MaxZ; + set => WriteParamField(ref _FaceScaleM_MaxZ, value); + } + private float _FaceScaleM_MaxZ; + + [ParamField(0x8C, ParamType.F32)] + public float FaceScaleF_ScaleX + { + get => _FaceScaleF_ScaleX; + set => WriteParamField(ref _FaceScaleF_ScaleX, value); + } + private float _FaceScaleF_ScaleX; + + [ParamField(0x90, ParamType.F32)] + public float FaceScaleF_ScaleZ + { + get => _FaceScaleF_ScaleZ; + set => WriteParamField(ref _FaceScaleF_ScaleZ, value); + } + private float _FaceScaleF_ScaleZ; + + [ParamField(0x94, ParamType.F32)] + public float FaceScaleF_MaxX + { + get => _FaceScaleF_MaxX; + set => WriteParamField(ref _FaceScaleF_MaxX, value); + } + private float _FaceScaleF_MaxX; + + [ParamField(0x98, ParamType.F32)] + public float FaceScaleF_MaxZ + { + get => _FaceScaleF_MaxZ; + set => WriteParamField(ref _FaceScaleF_MaxZ, value); + } + private float _FaceScaleF_MaxZ; + + [ParamField(0x9C, ParamType.I32)] + public int QwcId + { + get => _QwcId; + set => WriteParamField(ref _QwcId, value); + } + private int _QwcId; + + [ParamField(0xA0, ParamType.U16)] + public ushort EquipModelId + { + get => _EquipModelId; + set => WriteParamField(ref _EquipModelId, value); + } + private ushort _EquipModelId; + + [ParamField(0xA2, ParamType.U16)] + public ushort IconIdM + { + get => _IconIdM; + set => WriteParamField(ref _IconIdM, value); + } + private ushort _IconIdM; + + [ParamField(0xA4, ParamType.U16)] + public ushort IconIdF + { + get => _IconIdF; + set => WriteParamField(ref _IconIdF, value); + } + private ushort _IconIdF; + + [ParamField(0xA6, ParamType.U16)] + public ushort KnockBack + { + get => _KnockBack; + set => WriteParamField(ref _KnockBack, value); + } + private ushort _KnockBack; + + [ParamField(0xA8, ParamType.U16)] + public ushort KnockbackBounceRate + { + get => _KnockbackBounceRate; + set => WriteParamField(ref _KnockbackBounceRate, value); + } + private ushort _KnockbackBounceRate; + + [ParamField(0xAA, ParamType.U16)] + public ushort Durability + { + get => _Durability; + set => WriteParamField(ref _Durability, value); + } + private ushort _Durability; + + [ParamField(0xAC, ParamType.U16)] + public ushort DurabilityMax + { + get => _DurabilityMax; + set => WriteParamField(ref _DurabilityMax, value); + } + private ushort _DurabilityMax; + + [ParamField(0xAE, ParamType.I16)] + public short SaDurability + { + get => _SaDurability; + set => WriteParamField(ref _SaDurability, value); + } + private short _SaDurability; + + [ParamField(0xB0, ParamType.U16)] + public ushort DefFlickPower + { + get => _DefFlickPower; + set => WriteParamField(ref _DefFlickPower, value); + } + private ushort _DefFlickPower; + + [ParamField(0xB2, ParamType.U16)] + public ushort DefensePhysics + { + get => _DefensePhysics; + set => WriteParamField(ref _DefensePhysics, value); + } + private ushort _DefensePhysics; + + [ParamField(0xB4, ParamType.U16)] + public ushort DefenseMagic + { + get => _DefenseMagic; + set => WriteParamField(ref _DefenseMagic, value); + } + private ushort _DefenseMagic; + + [ParamField(0xB6, ParamType.U16)] + public ushort DefenseFire + { + get => _DefenseFire; + set => WriteParamField(ref _DefenseFire, value); + } + private ushort _DefenseFire; + + [ParamField(0xB8, ParamType.U16)] + public ushort DefenseThunder + { + get => _DefenseThunder; + set => WriteParamField(ref _DefenseThunder, value); + } + private ushort _DefenseThunder; + + [ParamField(0xBA, ParamType.I16)] + public short DefenseSlash + { + get => _DefenseSlash; + set => WriteParamField(ref _DefenseSlash, value); + } + private short _DefenseSlash; + + [ParamField(0xBC, ParamType.I16)] + public short DefenseBlow + { + get => _DefenseBlow; + set => WriteParamField(ref _DefenseBlow, value); + } + private short _DefenseBlow; + + [ParamField(0xBE, ParamType.I16)] + public short DefenseThrust + { + get => _DefenseThrust; + set => WriteParamField(ref _DefenseThrust, value); + } + private short _DefenseThrust; + + [ParamField(0xC0, ParamType.U16)] + public ushort ResistPoison + { + get => _ResistPoison; + set => WriteParamField(ref _ResistPoison, value); + } + private ushort _ResistPoison; + + [ParamField(0xC2, ParamType.U16)] + public ushort ResistDisease + { + get => _ResistDisease; + set => WriteParamField(ref _ResistDisease, value); + } + private ushort _ResistDisease; + + [ParamField(0xC4, ParamType.U16)] + public ushort ResistBlood + { + get => _ResistBlood; + set => WriteParamField(ref _ResistBlood, value); + } + private ushort _ResistBlood; + + [ParamField(0xC6, ParamType.U16)] + public ushort ResistCurse + { + get => _ResistCurse; + set => WriteParamField(ref _ResistCurse, value); + } + private ushort _ResistCurse; + + [ParamField(0xC8, ParamType.I16)] + public short ReinforceTypeId + { + get => _ReinforceTypeId; + set => WriteParamField(ref _ReinforceTypeId, value); + } + private short _ReinforceTypeId; + + [ParamField(0xCA, ParamType.I16)] + public short TrophySGradeId + { + get => _TrophySGradeId; + set => WriteParamField(ref _TrophySGradeId, value); + } + private short _TrophySGradeId; + + [ParamField(0xCC, ParamType.I16)] + public short ShopLv + { + get => _ShopLv; + set => WriteParamField(ref _ShopLv, value); + } + private short _ShopLv; + + [ParamField(0xCE, ParamType.U8)] + public byte KnockbackParamId + { + get => _KnockbackParamId; + set => WriteParamField(ref _KnockbackParamId, value); + } + private byte _KnockbackParamId; + + [ParamField(0xCF, ParamType.U8)] + public byte FlickDamageCutRate + { + get => _FlickDamageCutRate; + set => WriteParamField(ref _FlickDamageCutRate, value); + } + private byte _FlickDamageCutRate; + [ParamField(0xD0, ParamType.U8)] + public byte EquipModelCategory + { + get => _EquipModelCategory; + set => WriteParamField(ref _EquipModelCategory, value); + } + private byte _EquipModelCategory; + + [ParamField(0xD1, ParamType.U8)] + public byte EquipModelGender + { + get => _EquipModelGender; + set => WriteParamField(ref _EquipModelGender, value); + } + private byte _EquipModelGender; + + [ParamField(0xD2, ParamType.U8)] + public byte ProtectorCategory + { + get => _ProtectorCategory; + set => WriteParamField(ref _ProtectorCategory, value); } + private byte _ProtectorCategory; + + [ParamField(0xD3, ParamType.U8)] + public byte DefenseMaterial + { + get => _DefenseMaterial; + set => WriteParamField(ref _DefenseMaterial, value); + } + private byte _DefenseMaterial; + + [ParamField(0xD4, ParamType.U8)] + public byte DefenseMaterialSfx + { + get => _DefenseMaterialSfx; + set => WriteParamField(ref _DefenseMaterialSfx, value); + } + private byte _DefenseMaterialSfx; + + [ParamField(0xD5, ParamType.U8)] + public byte PartsDmgType + { + get => _PartsDmgType; + set => WriteParamField(ref _PartsDmgType, value); + } + private byte _PartsDmgType; + + [ParamField(0xD6, ParamType.U8)] + public byte DefenseMaterial_Weak + { + get => _DefenseMaterial_Weak; + set => WriteParamField(ref _DefenseMaterial_Weak, value); + } + private byte _DefenseMaterial_Weak; + + [ParamField(0xD7, ParamType.U8)] + public byte DefenseMaterialSfx_Weak + { + get => _DefenseMaterialSfx_Weak; + set => WriteParamField(ref _DefenseMaterialSfx_Weak, value); + } + private byte _DefenseMaterialSfx_Weak; + + #region BitField IsDepositBitfield ============================================================================== + + [ParamField(0xD8, ParamType.U8)] + public byte IsDepositBitfield + { + get => _IsDepositBitfield; + set => WriteParamField(ref _IsDepositBitfield, value); + } + private byte _IsDepositBitfield; + + [ParamBitField(nameof(IsDepositBitfield), bits: 1, bitsOffset: 0)] + public byte IsDeposit + { + get => GetbitfieldValue(_IsDepositBitfield); + set => SetBitfieldValue(ref _IsDepositBitfield, value); + } + + [ParamBitField(nameof(IsDepositBitfield), bits: 1, bitsOffset: 1)] + public byte HeadEquip + { + get => GetbitfieldValue(_IsDepositBitfield); + set => SetBitfieldValue(ref _IsDepositBitfield, value); + } + + [ParamBitField(nameof(IsDepositBitfield), bits: 1, bitsOffset: 2)] + public byte BodyEquip + { + get => GetbitfieldValue(_IsDepositBitfield); + set => SetBitfieldValue(ref _IsDepositBitfield, value); + } + + [ParamBitField(nameof(IsDepositBitfield), bits: 1, bitsOffset: 3)] + public byte ArmEquip + { + get => GetbitfieldValue(_IsDepositBitfield); + set => SetBitfieldValue(ref _IsDepositBitfield, value); + } + + [ParamBitField(nameof(IsDepositBitfield), bits: 1, bitsOffset: 4)] + public byte LegEquip + { + get => GetbitfieldValue(_IsDepositBitfield); + set => SetBitfieldValue(ref _IsDepositBitfield, value); + } + + [ParamBitField(nameof(IsDepositBitfield), bits: 1, bitsOffset: 5)] + public byte UseFaceScale + { + get => GetbitfieldValue(_IsDepositBitfield); + set => SetBitfieldValue(ref _IsDepositBitfield, value); + } + + [ParamBitField(nameof(IsDepositBitfield), bits: 1, bitsOffset: 6)] + public byte InvisibleFlag00 + { + get => GetbitfieldValue(_IsDepositBitfield); + set => SetBitfieldValue(ref _IsDepositBitfield, value); + } + + [ParamBitField(nameof(IsDepositBitfield), bits: 1, bitsOffset: 7)] + public byte InvisibleFlag01 + { + get => GetbitfieldValue(_IsDepositBitfield); + set => SetBitfieldValue(ref _IsDepositBitfield, value); + } + + #endregion BitField IsDepositBitfield + + #region BitField InvisibleFlag02Bitfield ============================================================================== + + [ParamField(0xD9, ParamType.U8)] + public byte InvisibleFlag02Bitfield + { + get => _InvisibleFlag02Bitfield; + set => WriteParamField(ref _InvisibleFlag02Bitfield, value); + } + private byte _InvisibleFlag02Bitfield; + + [ParamBitField(nameof(InvisibleFlag02Bitfield), bits: 1, bitsOffset: 0)] + public byte InvisibleFlag02 + { + get => GetbitfieldValue(_InvisibleFlag02Bitfield); + set => SetBitfieldValue(ref _InvisibleFlag02Bitfield, value); + } + + [ParamBitField(nameof(InvisibleFlag02Bitfield), bits: 1, bitsOffset: 1)] + public byte InvisibleFlag03 + { + get => GetbitfieldValue(_InvisibleFlag02Bitfield); + set => SetBitfieldValue(ref _InvisibleFlag02Bitfield, value); + } + + [ParamBitField(nameof(InvisibleFlag02Bitfield), bits: 1, bitsOffset: 2)] + public byte InvisibleFlag04 + { + get => GetbitfieldValue(_InvisibleFlag02Bitfield); + set => SetBitfieldValue(ref _InvisibleFlag02Bitfield, value); + } + + [ParamBitField(nameof(InvisibleFlag02Bitfield), bits: 1, bitsOffset: 3)] + public byte InvisibleFlag05 + { + get => GetbitfieldValue(_InvisibleFlag02Bitfield); + set => SetBitfieldValue(ref _InvisibleFlag02Bitfield, value); + } + + [ParamBitField(nameof(InvisibleFlag02Bitfield), bits: 1, bitsOffset: 4)] + public byte InvisibleFlag06 + { + get => GetbitfieldValue(_InvisibleFlag02Bitfield); + set => SetBitfieldValue(ref _InvisibleFlag02Bitfield, value); + } + + [ParamBitField(nameof(InvisibleFlag02Bitfield), bits: 1, bitsOffset: 5)] + public byte InvisibleFlag07 + { + get => GetbitfieldValue(_InvisibleFlag02Bitfield); + set => SetBitfieldValue(ref _InvisibleFlag02Bitfield, value); + } + + [ParamBitField(nameof(InvisibleFlag02Bitfield), bits: 1, bitsOffset: 6)] + public byte InvisibleFlag08 + { + get => GetbitfieldValue(_InvisibleFlag02Bitfield); + set => SetBitfieldValue(ref _InvisibleFlag02Bitfield, value); + } + + [ParamBitField(nameof(InvisibleFlag02Bitfield), bits: 1, bitsOffset: 7)] + public byte InvisibleFlag09 + { + get => GetbitfieldValue(_InvisibleFlag02Bitfield); + set => SetBitfieldValue(ref _InvisibleFlag02Bitfield, value); + } + + #endregion BitField InvisibleFlag02Bitfield + + #region BitField InvisibleFlag10Bitfield ============================================================================== + + [ParamField(0xDA, ParamType.U8)] + public byte InvisibleFlag10Bitfield + { + get => _InvisibleFlag10Bitfield; + set => WriteParamField(ref _InvisibleFlag10Bitfield, value); + } + private byte _InvisibleFlag10Bitfield; + + [ParamBitField(nameof(InvisibleFlag10Bitfield), bits: 1, bitsOffset: 0)] + public byte InvisibleFlag10 + { + get => GetbitfieldValue(_InvisibleFlag10Bitfield); + set => SetBitfieldValue(ref _InvisibleFlag10Bitfield, value); + } + + [ParamBitField(nameof(InvisibleFlag10Bitfield), bits: 1, bitsOffset: 1)] + public byte InvisibleFlag11 + { + get => GetbitfieldValue(_InvisibleFlag10Bitfield); + set => SetBitfieldValue(ref _InvisibleFlag10Bitfield, value); + } + + [ParamBitField(nameof(InvisibleFlag10Bitfield), bits: 1, bitsOffset: 2)] + public byte InvisibleFlag12 + { + get => GetbitfieldValue(_InvisibleFlag10Bitfield); + set => SetBitfieldValue(ref _InvisibleFlag10Bitfield, value); + } + + [ParamBitField(nameof(InvisibleFlag10Bitfield), bits: 1, bitsOffset: 3)] + public byte InvisibleFlag13 + { + get => GetbitfieldValue(_InvisibleFlag10Bitfield); + set => SetBitfieldValue(ref _InvisibleFlag10Bitfield, value); + } + + [ParamBitField(nameof(InvisibleFlag10Bitfield), bits: 1, bitsOffset: 4)] + public byte InvisibleFlag14 + { + get => GetbitfieldValue(_InvisibleFlag10Bitfield); + set => SetBitfieldValue(ref _InvisibleFlag10Bitfield, value); + } + + [ParamBitField(nameof(InvisibleFlag10Bitfield), bits: 1, bitsOffset: 5)] + public byte InvisibleFlag15 + { + get => GetbitfieldValue(_InvisibleFlag10Bitfield); + set => SetBitfieldValue(ref _InvisibleFlag10Bitfield, value); + } + + [ParamBitField(nameof(InvisibleFlag10Bitfield), bits: 1, bitsOffset: 6)] + public byte InvisibleFlag16 + { + get => GetbitfieldValue(_InvisibleFlag10Bitfield); + set => SetBitfieldValue(ref _InvisibleFlag10Bitfield, value); + } + + [ParamBitField(nameof(InvisibleFlag10Bitfield), bits: 1, bitsOffset: 7)] + public byte InvisibleFlag17 + { + get => GetbitfieldValue(_InvisibleFlag10Bitfield); + set => SetBitfieldValue(ref _InvisibleFlag10Bitfield, value); + } + + #endregion BitField InvisibleFlag10Bitfield + + #region BitField InvisibleFlag18Bitfield ============================================================================== + + [ParamField(0xDB, ParamType.U8)] + public byte InvisibleFlag18Bitfield + { + get => _InvisibleFlag18Bitfield; + set => WriteParamField(ref _InvisibleFlag18Bitfield, value); + } + private byte _InvisibleFlag18Bitfield; + + [ParamBitField(nameof(InvisibleFlag18Bitfield), bits: 1, bitsOffset: 0)] + public byte InvisibleFlag18 + { + get => GetbitfieldValue(_InvisibleFlag18Bitfield); + set => SetBitfieldValue(ref _InvisibleFlag18Bitfield, value); + } + + [ParamBitField(nameof(InvisibleFlag18Bitfield), bits: 1, bitsOffset: 1)] + public byte InvisibleFlag19 + { + get => GetbitfieldValue(_InvisibleFlag18Bitfield); + set => SetBitfieldValue(ref _InvisibleFlag18Bitfield, value); + } + + [ParamBitField(nameof(InvisibleFlag18Bitfield), bits: 1, bitsOffset: 2)] + public byte InvisibleFlag20 + { + get => GetbitfieldValue(_InvisibleFlag18Bitfield); + set => SetBitfieldValue(ref _InvisibleFlag18Bitfield, value); + } + + [ParamBitField(nameof(InvisibleFlag18Bitfield), bits: 1, bitsOffset: 3)] + public byte InvisibleFlag21 + { + get => GetbitfieldValue(_InvisibleFlag18Bitfield); + set => SetBitfieldValue(ref _InvisibleFlag18Bitfield, value); + } + + [ParamBitField(nameof(InvisibleFlag18Bitfield), bits: 1, bitsOffset: 4)] + public byte InvisibleFlag22 + { + get => GetbitfieldValue(_InvisibleFlag18Bitfield); + set => SetBitfieldValue(ref _InvisibleFlag18Bitfield, value); + } + + [ParamBitField(nameof(InvisibleFlag18Bitfield), bits: 1, bitsOffset: 5)] + public byte InvisibleFlag23 + { + get => GetbitfieldValue(_InvisibleFlag18Bitfield); + set => SetBitfieldValue(ref _InvisibleFlag18Bitfield, value); + } + + [ParamBitField(nameof(InvisibleFlag18Bitfield), bits: 1, bitsOffset: 6)] + public byte InvisibleFlag24 + { + get => GetbitfieldValue(_InvisibleFlag18Bitfield); + set => SetBitfieldValue(ref _InvisibleFlag18Bitfield, value); + } + + [ParamBitField(nameof(InvisibleFlag18Bitfield), bits: 1, bitsOffset: 7)] + public byte InvisibleFlag25 + { + get => GetbitfieldValue(_InvisibleFlag18Bitfield); + set => SetBitfieldValue(ref _InvisibleFlag18Bitfield, value); + } + + #endregion BitField InvisibleFlag18Bitfield + + #region BitField InvisibleFlag26Bitfield ============================================================================== + + [ParamField(0xDC, ParamType.U8)] + public byte InvisibleFlag26Bitfield + { + get => _InvisibleFlag26Bitfield; + set => WriteParamField(ref _InvisibleFlag26Bitfield, value); + } + private byte _InvisibleFlag26Bitfield; + + [ParamBitField(nameof(InvisibleFlag26Bitfield), bits: 1, bitsOffset: 0)] + public byte InvisibleFlag26 + { + get => GetbitfieldValue(_InvisibleFlag26Bitfield); + set => SetBitfieldValue(ref _InvisibleFlag26Bitfield, value); + } + + [ParamBitField(nameof(InvisibleFlag26Bitfield), bits: 1, bitsOffset: 1)] + public byte InvisibleFlag27 + { + get => GetbitfieldValue(_InvisibleFlag26Bitfield); + set => SetBitfieldValue(ref _InvisibleFlag26Bitfield, value); + } + + [ParamBitField(nameof(InvisibleFlag26Bitfield), bits: 1, bitsOffset: 2)] + public byte InvisibleFlag28 + { + get => GetbitfieldValue(_InvisibleFlag26Bitfield); + set => SetBitfieldValue(ref _InvisibleFlag26Bitfield, value); + } + + [ParamBitField(nameof(InvisibleFlag26Bitfield), bits: 1, bitsOffset: 3)] + public byte InvisibleFlag29 + { + get => GetbitfieldValue(_InvisibleFlag26Bitfield); + set => SetBitfieldValue(ref _InvisibleFlag26Bitfield, value); + } + + [ParamBitField(nameof(InvisibleFlag26Bitfield), bits: 1, bitsOffset: 4)] + public byte InvisibleFlag30 + { + get => GetbitfieldValue(_InvisibleFlag26Bitfield); + set => SetBitfieldValue(ref _InvisibleFlag26Bitfield, value); + } + + [ParamBitField(nameof(InvisibleFlag26Bitfield), bits: 1, bitsOffset: 5)] + public byte InvisibleFlag31 + { + get => GetbitfieldValue(_InvisibleFlag26Bitfield); + set => SetBitfieldValue(ref _InvisibleFlag26Bitfield, value); + } + + [ParamBitField(nameof(InvisibleFlag26Bitfield), bits: 1, bitsOffset: 6)] + public byte InvisibleFlag32 + { + get => GetbitfieldValue(_InvisibleFlag26Bitfield); + set => SetBitfieldValue(ref _InvisibleFlag26Bitfield, value); + } + + [ParamBitField(nameof(InvisibleFlag26Bitfield), bits: 1, bitsOffset: 7)] + public byte InvisibleFlag33 + { + get => GetbitfieldValue(_InvisibleFlag26Bitfield); + set => SetBitfieldValue(ref _InvisibleFlag26Bitfield, value); + } + + #endregion BitField InvisibleFlag26Bitfield + + #region BitField InvisibleFlag34Bitfield ============================================================================== + + [ParamField(0xDD, ParamType.U8)] + public byte InvisibleFlag34Bitfield + { + get => _InvisibleFlag34Bitfield; + set => WriteParamField(ref _InvisibleFlag34Bitfield, value); + } + private byte _InvisibleFlag34Bitfield; + + [ParamBitField(nameof(InvisibleFlag34Bitfield), bits: 1, bitsOffset: 0)] + public byte InvisibleFlag34 + { + get => GetbitfieldValue(_InvisibleFlag34Bitfield); + set => SetBitfieldValue(ref _InvisibleFlag34Bitfield, value); + } + + [ParamBitField(nameof(InvisibleFlag34Bitfield), bits: 1, bitsOffset: 1)] + public byte InvisibleFlag35 + { + get => GetbitfieldValue(_InvisibleFlag34Bitfield); + set => SetBitfieldValue(ref _InvisibleFlag34Bitfield, value); + } + + [ParamBitField(nameof(InvisibleFlag34Bitfield), bits: 1, bitsOffset: 2)] + public byte InvisibleFlag36 + { + get => GetbitfieldValue(_InvisibleFlag34Bitfield); + set => SetBitfieldValue(ref _InvisibleFlag34Bitfield, value); + } + + [ParamBitField(nameof(InvisibleFlag34Bitfield), bits: 1, bitsOffset: 3)] + public byte InvisibleFlag37 + { + get => GetbitfieldValue(_InvisibleFlag34Bitfield); + set => SetBitfieldValue(ref _InvisibleFlag34Bitfield, value); + } + + [ParamBitField(nameof(InvisibleFlag34Bitfield), bits: 1, bitsOffset: 4)] + public byte InvisibleFlag38 + { + get => GetbitfieldValue(_InvisibleFlag34Bitfield); + set => SetBitfieldValue(ref _InvisibleFlag34Bitfield, value); + } + + [ParamBitField(nameof(InvisibleFlag34Bitfield), bits: 1, bitsOffset: 5)] + public byte InvisibleFlag39 + { + get => GetbitfieldValue(_InvisibleFlag34Bitfield); + set => SetBitfieldValue(ref _InvisibleFlag34Bitfield, value); + } + + [ParamBitField(nameof(InvisibleFlag34Bitfield), bits: 1, bitsOffset: 6)] + public byte InvisibleFlag40 + { + get => GetbitfieldValue(_InvisibleFlag34Bitfield); + set => SetBitfieldValue(ref _InvisibleFlag34Bitfield, value); + } + + [ParamBitField(nameof(InvisibleFlag34Bitfield), bits: 1, bitsOffset: 7)] + public byte InvisibleFlag41 + { + get => GetbitfieldValue(_InvisibleFlag34Bitfield); + set => SetBitfieldValue(ref _InvisibleFlag34Bitfield, value); + } + + #endregion BitField InvisibleFlag34Bitfield + + #region BitField InvisibleFlag42Bitfield ============================================================================== + + [ParamField(0xDE, ParamType.U8)] + public byte InvisibleFlag42Bitfield + { + get => _InvisibleFlag42Bitfield; + set => WriteParamField(ref _InvisibleFlag42Bitfield, value); + } + private byte _InvisibleFlag42Bitfield; + + [ParamBitField(nameof(InvisibleFlag42Bitfield), bits: 1, bitsOffset: 0)] + public byte InvisibleFlag42 + { + get => GetbitfieldValue(_InvisibleFlag42Bitfield); + set => SetBitfieldValue(ref _InvisibleFlag42Bitfield, value); + } + + [ParamBitField(nameof(InvisibleFlag42Bitfield), bits: 1, bitsOffset: 1)] + public byte InvisibleFlag43 + { + get => GetbitfieldValue(_InvisibleFlag42Bitfield); + set => SetBitfieldValue(ref _InvisibleFlag42Bitfield, value); + } + + [ParamBitField(nameof(InvisibleFlag42Bitfield), bits: 1, bitsOffset: 2)] + public byte InvisibleFlag44 + { + get => GetbitfieldValue(_InvisibleFlag42Bitfield); + set => SetBitfieldValue(ref _InvisibleFlag42Bitfield, value); + } + + [ParamBitField(nameof(InvisibleFlag42Bitfield), bits: 1, bitsOffset: 3)] + public byte InvisibleFlag45 + { + get => GetbitfieldValue(_InvisibleFlag42Bitfield); + set => SetBitfieldValue(ref _InvisibleFlag42Bitfield, value); + } + + [ParamBitField(nameof(InvisibleFlag42Bitfield), bits: 1, bitsOffset: 4)] + public byte InvisibleFlag46 + { + get => GetbitfieldValue(_InvisibleFlag42Bitfield); + set => SetBitfieldValue(ref _InvisibleFlag42Bitfield, value); + } + + [ParamBitField(nameof(InvisibleFlag42Bitfield), bits: 1, bitsOffset: 5)] + public byte InvisibleFlag47 + { + get => GetbitfieldValue(_InvisibleFlag42Bitfield); + set => SetBitfieldValue(ref _InvisibleFlag42Bitfield, value); + } + + [ParamBitField(nameof(InvisibleFlag42Bitfield), bits: 1, bitsOffset: 6)] + public byte DisableMultiDropShare + { + get => GetbitfieldValue(_InvisibleFlag42Bitfield); + set => SetBitfieldValue(ref _InvisibleFlag42Bitfield, value); + } + + [ParamBitField(nameof(InvisibleFlag42Bitfield), bits: 1, bitsOffset: 7)] + public byte SimpleModelForDlc + { + get => GetbitfieldValue(_InvisibleFlag42Bitfield); + set => SetBitfieldValue(ref _InvisibleFlag42Bitfield, value); + } + + #endregion BitField InvisibleFlag42Bitfield + + [ParamField(0xDF, ParamType.Dummy8, 1)] + public byte[] Pad_0 + { + get => _Pad_0; + set => WriteParamField(ref _Pad_0, value); + } + private byte[] _Pad_0 = null!; + + [ParamField(0xE0, ParamType.I16)] + public short OldSortId + { + get => _OldSortId; + set => WriteParamField(ref _OldSortId, value); + } + private short _OldSortId; + + [ParamField(0xE2, ParamType.Dummy8, 6)] + public byte[] Pad_1 + { + get => _Pad_1; + set => WriteParamField(ref _Pad_1, value); + } + private byte[] _Pad_1 = null!; + } diff --git a/src/SoulMemory/DarkSouls1/Parameters/EquipParamWeapon.cs b/src/SoulMemory/DarkSouls1/Parameters/EquipParamWeapon.cs index c46a314..a8ff869 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/EquipParamWeapon.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/EquipParamWeapon.cs @@ -18,1065 +18,1064 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters +namespace SoulMemory.DarkSouls1.Parameters; + +[ExcludeFromCodeCoverage] +public class EquipParamWeapon : BaseParam { - [ExcludeFromCodeCoverage] - public class EquipParamWeapon : BaseParam - { - public EquipParamWeapon(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - - [ParamField(0x0, ParamType.I32)] - public int BehaviorVariationId - { - get => _BehaviorVariationId; - set => WriteParamField(ref _BehaviorVariationId, value); - } - private int _BehaviorVariationId; - - [ParamField(0x4, ParamType.I32)] - public int SortId - { - get => _SortId; - set => WriteParamField(ref _SortId, value); - } - private int _SortId; - - [ParamField(0x8, ParamType.U32)] - public uint WanderingEquipId - { - get => _WanderingEquipId; - set => WriteParamField(ref _WanderingEquipId, value); - } - private uint _WanderingEquipId; - - [ParamField(0xC, ParamType.F32)] - public float Weight - { - get => _Weight; - set => WriteParamField(ref _Weight, value); - } - private float _Weight; - - [ParamField(0x10, ParamType.F32)] - public float WeaponWeightRate - { - get => _WeaponWeightRate; - set => WriteParamField(ref _WeaponWeightRate, value); - } - private float _WeaponWeightRate; - - [ParamField(0x14, ParamType.I32)] - public int FixPrice - { - get => _FixPrice; - set => WriteParamField(ref _FixPrice, value); - } - private int _FixPrice; - - [ParamField(0x18, ParamType.I32)] - public int BasicPrice - { - get => _BasicPrice; - set => WriteParamField(ref _BasicPrice, value); - } - private int _BasicPrice; - - [ParamField(0x1C, ParamType.I32)] - public int SellValue - { - get => _SellValue; - set => WriteParamField(ref _SellValue, value); - } - private int _SellValue; - - [ParamField(0x20, ParamType.F32)] - public float CorrectStrength - { - get => _CorrectStrength; - set => WriteParamField(ref _CorrectStrength, value); - } - private float _CorrectStrength; - - [ParamField(0x24, ParamType.F32)] - public float CorrectAgility - { - get => _CorrectAgility; - set => WriteParamField(ref _CorrectAgility, value); - } - private float _CorrectAgility; - - [ParamField(0x28, ParamType.F32)] - public float CorrectMagic - { - get => _CorrectMagic; - set => WriteParamField(ref _CorrectMagic, value); - } - private float _CorrectMagic; - - [ParamField(0x2C, ParamType.F32)] - public float CorrectFaith - { - get => _CorrectFaith; - set => WriteParamField(ref _CorrectFaith, value); - } - private float _CorrectFaith; - - [ParamField(0x30, ParamType.F32)] - public float PhysGuardCutRate - { - get => _PhysGuardCutRate; - set => WriteParamField(ref _PhysGuardCutRate, value); - } - private float _PhysGuardCutRate; - - [ParamField(0x34, ParamType.F32)] - public float MagGuardCutRate - { - get => _MagGuardCutRate; - set => WriteParamField(ref _MagGuardCutRate, value); - } - private float _MagGuardCutRate; - - [ParamField(0x38, ParamType.F32)] - public float FireGuardCutRate - { - get => _FireGuardCutRate; - set => WriteParamField(ref _FireGuardCutRate, value); - } - private float _FireGuardCutRate; - - [ParamField(0x3C, ParamType.F32)] - public float ThunGuardCutRate - { - get => _ThunGuardCutRate; - set => WriteParamField(ref _ThunGuardCutRate, value); - } - private float _ThunGuardCutRate; - - [ParamField(0x40, ParamType.I32)] - public int SpEffectBehaviorId0 - { - get => _SpEffectBehaviorId0; - set => WriteParamField(ref _SpEffectBehaviorId0, value); - } - private int _SpEffectBehaviorId0; - - [ParamField(0x44, ParamType.I32)] - public int SpEffectBehaviorId1 - { - get => _SpEffectBehaviorId1; - set => WriteParamField(ref _SpEffectBehaviorId1, value); - } - private int _SpEffectBehaviorId1; - - [ParamField(0x48, ParamType.I32)] - public int SpEffectBehaviorId2 - { - get => _SpEffectBehaviorId2; - set => WriteParamField(ref _SpEffectBehaviorId2, value); - } - private int _SpEffectBehaviorId2; - - [ParamField(0x4C, ParamType.I32)] - public int ResidentSpEffectId - { - get => _ResidentSpEffectId; - set => WriteParamField(ref _ResidentSpEffectId, value); - } - private int _ResidentSpEffectId; - - [ParamField(0x50, ParamType.I32)] - public int ResidentSpEffectId1 - { - get => _ResidentSpEffectId1; - set => WriteParamField(ref _ResidentSpEffectId1, value); - } - private int _ResidentSpEffectId1; - - [ParamField(0x54, ParamType.I32)] - public int ResidentSpEffectId2 - { - get => _ResidentSpEffectId2; - set => WriteParamField(ref _ResidentSpEffectId2, value); - } - private int _ResidentSpEffectId2; - - [ParamField(0x58, ParamType.I32)] - public int MaterialSetId - { - get => _MaterialSetId; - set => WriteParamField(ref _MaterialSetId, value); - } - private int _MaterialSetId; - - [ParamField(0x5C, ParamType.I32)] - public int OriginEquipWep - { - get => _OriginEquipWep; - set => WriteParamField(ref _OriginEquipWep, value); - } - private int _OriginEquipWep; - - [ParamField(0x60, ParamType.I32)] - public int OriginEquipWep1 - { - get => _OriginEquipWep1; - set => WriteParamField(ref _OriginEquipWep1, value); - } - private int _OriginEquipWep1; - - [ParamField(0x64, ParamType.I32)] - public int OriginEquipWep2 - { - get => _OriginEquipWep2; - set => WriteParamField(ref _OriginEquipWep2, value); - } - private int _OriginEquipWep2; - - [ParamField(0x68, ParamType.I32)] - public int OriginEquipWep3 - { - get => _OriginEquipWep3; - set => WriteParamField(ref _OriginEquipWep3, value); - } - private int _OriginEquipWep3; - - [ParamField(0x6C, ParamType.I32)] - public int OriginEquipWep4 - { - get => _OriginEquipWep4; - set => WriteParamField(ref _OriginEquipWep4, value); - } - private int _OriginEquipWep4; - - [ParamField(0x70, ParamType.I32)] - public int OriginEquipWep5 - { - get => _OriginEquipWep5; - set => WriteParamField(ref _OriginEquipWep5, value); - } - private int _OriginEquipWep5; - - [ParamField(0x74, ParamType.I32)] - public int OriginEquipWep6 - { - get => _OriginEquipWep6; - set => WriteParamField(ref _OriginEquipWep6, value); - } - private int _OriginEquipWep6; - - [ParamField(0x78, ParamType.I32)] - public int OriginEquipWep7 - { - get => _OriginEquipWep7; - set => WriteParamField(ref _OriginEquipWep7, value); - } - private int _OriginEquipWep7; - - [ParamField(0x7C, ParamType.I32)] - public int OriginEquipWep8 - { - get => _OriginEquipWep8; - set => WriteParamField(ref _OriginEquipWep8, value); - } - private int _OriginEquipWep8; - - [ParamField(0x80, ParamType.I32)] - public int OriginEquipWep9 - { - get => _OriginEquipWep9; - set => WriteParamField(ref _OriginEquipWep9, value); - } - private int _OriginEquipWep9; - - [ParamField(0x84, ParamType.I32)] - public int OriginEquipWep10 - { - get => _OriginEquipWep10; - set => WriteParamField(ref _OriginEquipWep10, value); - } - private int _OriginEquipWep10; - - [ParamField(0x88, ParamType.I32)] - public int OriginEquipWep11 - { - get => _OriginEquipWep11; - set => WriteParamField(ref _OriginEquipWep11, value); - } - private int _OriginEquipWep11; - - [ParamField(0x8C, ParamType.I32)] - public int OriginEquipWep12 - { - get => _OriginEquipWep12; - set => WriteParamField(ref _OriginEquipWep12, value); - } - private int _OriginEquipWep12; - - [ParamField(0x90, ParamType.I32)] - public int OriginEquipWep13 - { - get => _OriginEquipWep13; - set => WriteParamField(ref _OriginEquipWep13, value); - } - private int _OriginEquipWep13; - - [ParamField(0x94, ParamType.I32)] - public int OriginEquipWep14 - { - get => _OriginEquipWep14; - set => WriteParamField(ref _OriginEquipWep14, value); - } - private int _OriginEquipWep14; - - [ParamField(0x98, ParamType.I32)] - public int OriginEquipWep15 - { - get => _OriginEquipWep15; - set => WriteParamField(ref _OriginEquipWep15, value); - } - private int _OriginEquipWep15; - - [ParamField(0x9C, ParamType.F32)] - public float AntiDemonDamageRate - { - get => _AntiDemonDamageRate; - set => WriteParamField(ref _AntiDemonDamageRate, value); - } - private float _AntiDemonDamageRate; - - [ParamField(0xA0, ParamType.F32)] - public float AntSaintDamageRate - { - get => _AntSaintDamageRate; - set => WriteParamField(ref _AntSaintDamageRate, value); - } - private float _AntSaintDamageRate; - - [ParamField(0xA4, ParamType.F32)] - public float AntWeakA_DamageRate - { - get => _AntWeakA_DamageRate; - set => WriteParamField(ref _AntWeakA_DamageRate, value); - } - private float _AntWeakA_DamageRate; - - [ParamField(0xA8, ParamType.F32)] - public float AntWeakB_DamageRate - { - get => _AntWeakB_DamageRate; - set => WriteParamField(ref _AntWeakB_DamageRate, value); - } - private float _AntWeakB_DamageRate; - - [ParamField(0xAC, ParamType.I32)] - public int VagrantItemLotId - { - get => _VagrantItemLotId; - set => WriteParamField(ref _VagrantItemLotId, value); - } - private int _VagrantItemLotId; - - [ParamField(0xB0, ParamType.I32)] - public int VagrantBonusEneDropItemLotId - { - get => _VagrantBonusEneDropItemLotId; - set => WriteParamField(ref _VagrantBonusEneDropItemLotId, value); - } - private int _VagrantBonusEneDropItemLotId; - - [ParamField(0xB4, ParamType.I32)] - public int VagrantItemEneDropItemLotId - { - get => _VagrantItemEneDropItemLotId; - set => WriteParamField(ref _VagrantItemEneDropItemLotId, value); - } - private int _VagrantItemEneDropItemLotId; - - [ParamField(0xB8, ParamType.U16)] - public ushort EquipModelId - { - get => _EquipModelId; - set => WriteParamField(ref _EquipModelId, value); - } - private ushort _EquipModelId; - - [ParamField(0xBA, ParamType.U16)] - public ushort IconId - { - get => _IconId; - set => WriteParamField(ref _IconId, value); - } - private ushort _IconId; - - [ParamField(0xBC, ParamType.U16)] - public ushort Durability - { - get => _Durability; - set => WriteParamField(ref _Durability, value); - } - private ushort _Durability; - - [ParamField(0xBE, ParamType.U16)] - public ushort DurabilityMax - { - get => _DurabilityMax; - set => WriteParamField(ref _DurabilityMax, value); - } - private ushort _DurabilityMax; - - [ParamField(0xC0, ParamType.U16)] - public ushort AttackThrowEscape - { - get => _AttackThrowEscape; - set => WriteParamField(ref _AttackThrowEscape, value); - } - private ushort _AttackThrowEscape; - - [ParamField(0xC2, ParamType.I16)] - public short ParryDamageLife - { - get => _ParryDamageLife; - set => WriteParamField(ref _ParryDamageLife, value); - } - private short _ParryDamageLife; - - [ParamField(0xC4, ParamType.U16)] - public ushort AttackBasePhysics - { - get => _AttackBasePhysics; - set => WriteParamField(ref _AttackBasePhysics, value); - } - private ushort _AttackBasePhysics; - - [ParamField(0xC6, ParamType.U16)] - public ushort AttackBaseMagic - { - get => _AttackBaseMagic; - set => WriteParamField(ref _AttackBaseMagic, value); - } - private ushort _AttackBaseMagic; - - [ParamField(0xC8, ParamType.U16)] - public ushort AttackBaseFire - { - get => _AttackBaseFire; - set => WriteParamField(ref _AttackBaseFire, value); - } - private ushort _AttackBaseFire; - - [ParamField(0xCA, ParamType.U16)] - public ushort AttackBaseThunder - { - get => _AttackBaseThunder; - set => WriteParamField(ref _AttackBaseThunder, value); - } - private ushort _AttackBaseThunder; - - [ParamField(0xCC, ParamType.U16)] - public ushort AttackBaseStamina - { - get => _AttackBaseStamina; - set => WriteParamField(ref _AttackBaseStamina, value); - } - private ushort _AttackBaseStamina; - - [ParamField(0xCE, ParamType.U16)] - public ushort SaWeaponDamage - { - get => _SaWeaponDamage; - set => WriteParamField(ref _SaWeaponDamage, value); - } - private ushort _SaWeaponDamage; - - [ParamField(0xD0, ParamType.I16)] - public short SaDurability - { - get => _SaDurability; - set => WriteParamField(ref _SaDurability, value); - } - private short _SaDurability; - - [ParamField(0xD2, ParamType.I16)] - public short GuardAngle - { - get => _GuardAngle; - set => WriteParamField(ref _GuardAngle, value); - } - private short _GuardAngle; - - [ParamField(0xD4, ParamType.I16)] - public short StaminaGuardDef - { - get => _StaminaGuardDef; - set => WriteParamField(ref _StaminaGuardDef, value); - } - private short _StaminaGuardDef; - - [ParamField(0xD6, ParamType.I16)] - public short ReinforceTypeId - { - get => _ReinforceTypeId; - set => WriteParamField(ref _ReinforceTypeId, value); - } - private short _ReinforceTypeId; - - [ParamField(0xD8, ParamType.I16)] - public short TrophySGradeId - { - get => _TrophySGradeId; - set => WriteParamField(ref _TrophySGradeId, value); - } - private short _TrophySGradeId; - - [ParamField(0xDA, ParamType.I16)] - public short TrophySeqId - { - get => _TrophySeqId; - set => WriteParamField(ref _TrophySeqId, value); - } - private short _TrophySeqId; - - [ParamField(0xDC, ParamType.I16)] - public short ThrowAtkRate - { - get => _ThrowAtkRate; - set => WriteParamField(ref _ThrowAtkRate, value); - } - private short _ThrowAtkRate; - - [ParamField(0xDE, ParamType.I16)] - public short BowDistRate - { - get => _BowDistRate; - set => WriteParamField(ref _BowDistRate, value); - } - private short _BowDistRate; - - [ParamField(0xE0, ParamType.U8)] - public byte EquipModelCategory - { - get => _EquipModelCategory; - set => WriteParamField(ref _EquipModelCategory, value); - } - private byte _EquipModelCategory; - - [ParamField(0xE1, ParamType.U8)] - public byte EquipModelGender - { - get => _EquipModelGender; - set => WriteParamField(ref _EquipModelGender, value); - } - private byte _EquipModelGender; - - [ParamField(0xE2, ParamType.U8)] - public byte WeaponCategory - { - get => _WeaponCategory; - set => WriteParamField(ref _WeaponCategory, value); - } - private byte _WeaponCategory; - - [ParamField(0xE3, ParamType.U8)] - public byte WepmotionCategory - { - get => _WepmotionCategory; - set => WriteParamField(ref _WepmotionCategory, value); - } - private byte _WepmotionCategory; - - [ParamField(0xE4, ParamType.U8)] - public byte GuardmotionCategory - { - get => _GuardmotionCategory; - set => WriteParamField(ref _GuardmotionCategory, value); - } - private byte _GuardmotionCategory; - - [ParamField(0xE5, ParamType.U8)] - public byte AtkMaterial - { - get => _AtkMaterial; - set => WriteParamField(ref _AtkMaterial, value); - } - private byte _AtkMaterial; - - [ParamField(0xE6, ParamType.U8)] - public byte DefMaterial - { - get => _DefMaterial; - set => WriteParamField(ref _DefMaterial, value); - } - private byte _DefMaterial; - - [ParamField(0xE7, ParamType.U8)] - public byte DefSfxMaterial - { - get => _DefSfxMaterial; - set => WriteParamField(ref _DefSfxMaterial, value); - } - private byte _DefSfxMaterial; - - [ParamField(0xE8, ParamType.U8)] - public byte CorrectType - { - get => _CorrectType; - set => WriteParamField(ref _CorrectType, value); - } - private byte _CorrectType; - - [ParamField(0xE9, ParamType.U8)] - public byte SpAttribute - { - get => _SpAttribute; - set => WriteParamField(ref _SpAttribute, value); - } - private byte _SpAttribute; - - [ParamField(0xEA, ParamType.U8)] - public byte SpAtkcategory - { - get => _SpAtkcategory; - set => WriteParamField(ref _SpAtkcategory, value); - } - private byte _SpAtkcategory; - - [ParamField(0xEB, ParamType.U8)] - public byte WepmotionOneHandId - { - get => _WepmotionOneHandId; - set => WriteParamField(ref _WepmotionOneHandId, value); - } - private byte _WepmotionOneHandId; - - [ParamField(0xEC, ParamType.U8)] - public byte WepmotionBothHandId - { - get => _WepmotionBothHandId; - set => WriteParamField(ref _WepmotionBothHandId, value); - } - private byte _WepmotionBothHandId; - - [ParamField(0xED, ParamType.U8)] - public byte ProperStrength - { - get => _ProperStrength; - set => WriteParamField(ref _ProperStrength, value); - } - private byte _ProperStrength; - - [ParamField(0xEE, ParamType.U8)] - public byte ProperAgility - { - get => _ProperAgility; - set => WriteParamField(ref _ProperAgility, value); - } - private byte _ProperAgility; - - [ParamField(0xEF, ParamType.U8)] - public byte ProperMagic - { - get => _ProperMagic; - set => WriteParamField(ref _ProperMagic, value); - } - private byte _ProperMagic; - - [ParamField(0xF0, ParamType.U8)] - public byte ProperFaith - { - get => _ProperFaith; - set => WriteParamField(ref _ProperFaith, value); - } - private byte _ProperFaith; - - [ParamField(0xF1, ParamType.U8)] - public byte OverStrength - { - get => _OverStrength; - set => WriteParamField(ref _OverStrength, value); - } - private byte _OverStrength; - - [ParamField(0xF2, ParamType.U8)] - public byte AttackBaseParry - { - get => _AttackBaseParry; - set => WriteParamField(ref _AttackBaseParry, value); - } - private byte _AttackBaseParry; - - [ParamField(0xF3, ParamType.U8)] - public byte DefenseBaseParry - { - get => _DefenseBaseParry; - set => WriteParamField(ref _DefenseBaseParry, value); - } - private byte _DefenseBaseParry; - - [ParamField(0xF4, ParamType.U8)] - public byte GuardBaseRepel - { - get => _GuardBaseRepel; - set => WriteParamField(ref _GuardBaseRepel, value); - } - private byte _GuardBaseRepel; - - [ParamField(0xF5, ParamType.U8)] - public byte AttackBaseRepel - { - get => _AttackBaseRepel; - set => WriteParamField(ref _AttackBaseRepel, value); - } - private byte _AttackBaseRepel; - - [ParamField(0xF6, ParamType.I8)] - public sbyte GuardCutCancelRate - { - get => _GuardCutCancelRate; - set => WriteParamField(ref _GuardCutCancelRate, value); - } - private sbyte _GuardCutCancelRate; - - [ParamField(0xF7, ParamType.I8)] - public sbyte GuardLevel - { - get => _GuardLevel; - set => WriteParamField(ref _GuardLevel, value); - } - private sbyte _GuardLevel; - - [ParamField(0xF8, ParamType.I8)] - public sbyte SlashGuardCutRate - { - get => _SlashGuardCutRate; - set => WriteParamField(ref _SlashGuardCutRate, value); - } - private sbyte _SlashGuardCutRate; - - [ParamField(0xF9, ParamType.I8)] - public sbyte BlowGuardCutRate - { - get => _BlowGuardCutRate; - set => WriteParamField(ref _BlowGuardCutRate, value); - } - private sbyte _BlowGuardCutRate; - - [ParamField(0xFA, ParamType.I8)] - public sbyte ThrustGuardCutRate - { - get => _ThrustGuardCutRate; - set => WriteParamField(ref _ThrustGuardCutRate, value); - } - private sbyte _ThrustGuardCutRate; - - [ParamField(0xFB, ParamType.I8)] - public sbyte PoisonGuardResist - { - get => _PoisonGuardResist; - set => WriteParamField(ref _PoisonGuardResist, value); - } - private sbyte _PoisonGuardResist; - - [ParamField(0xFC, ParamType.I8)] - public sbyte DiseaseGuardResist - { - get => _DiseaseGuardResist; - set => WriteParamField(ref _DiseaseGuardResist, value); - } - private sbyte _DiseaseGuardResist; - - [ParamField(0xFD, ParamType.I8)] - public sbyte BloodGuardResist - { - get => _BloodGuardResist; - set => WriteParamField(ref _BloodGuardResist, value); - } - private sbyte _BloodGuardResist; - - [ParamField(0xFE, ParamType.I8)] - public sbyte CurseGuardResist - { - get => _CurseGuardResist; - set => WriteParamField(ref _CurseGuardResist, value); - } - private sbyte _CurseGuardResist; - - [ParamField(0xFF, ParamType.U8)] - public byte IsDurabilityDivergence - { - get => _IsDurabilityDivergence; - set => WriteParamField(ref _IsDurabilityDivergence, value); - } - private byte _IsDurabilityDivergence; - - #region BitField RightHandEquipableBitfield ============================================================================== - - [ParamField(0x100, ParamType.U8)] - public byte RightHandEquipableBitfield - { - get => _RightHandEquipableBitfield; - set => WriteParamField(ref _RightHandEquipableBitfield, value); - } - private byte _RightHandEquipableBitfield; - - [ParamBitField(nameof(RightHandEquipableBitfield), bits: 1, bitsOffset: 0)] - public byte RightHandEquipable - { - get => GetbitfieldValue(_RightHandEquipableBitfield); - set => SetBitfieldValue(ref _RightHandEquipableBitfield, value); - } - - [ParamBitField(nameof(RightHandEquipableBitfield), bits: 1, bitsOffset: 1)] - public byte LeftHandEquipable - { - get => GetbitfieldValue(_RightHandEquipableBitfield); - set => SetBitfieldValue(ref _RightHandEquipableBitfield, value); - } - - [ParamBitField(nameof(RightHandEquipableBitfield), bits: 1, bitsOffset: 2)] - public byte BothHandEquipable - { - get => GetbitfieldValue(_RightHandEquipableBitfield); - set => SetBitfieldValue(ref _RightHandEquipableBitfield, value); - } - - [ParamBitField(nameof(RightHandEquipableBitfield), bits: 1, bitsOffset: 3)] - public byte ArrowSlotEquipable - { - get => GetbitfieldValue(_RightHandEquipableBitfield); - set => SetBitfieldValue(ref _RightHandEquipableBitfield, value); - } - - [ParamBitField(nameof(RightHandEquipableBitfield), bits: 1, bitsOffset: 4)] - public byte BoltSlotEquipable - { - get => GetbitfieldValue(_RightHandEquipableBitfield); - set => SetBitfieldValue(ref _RightHandEquipableBitfield, value); - } - - [ParamBitField(nameof(RightHandEquipableBitfield), bits: 1, bitsOffset: 5)] - public byte EnableGuard - { - get => GetbitfieldValue(_RightHandEquipableBitfield); - set => SetBitfieldValue(ref _RightHandEquipableBitfield, value); - } - - [ParamBitField(nameof(RightHandEquipableBitfield), bits: 1, bitsOffset: 6)] - public byte EnableParry - { - get => GetbitfieldValue(_RightHandEquipableBitfield); - set => SetBitfieldValue(ref _RightHandEquipableBitfield, value); - } - - [ParamBitField(nameof(RightHandEquipableBitfield), bits: 1, bitsOffset: 7)] - public byte EnableMagic - { - get => GetbitfieldValue(_RightHandEquipableBitfield); - set => SetBitfieldValue(ref _RightHandEquipableBitfield, value); - } - - #endregion BitField RightHandEquipableBitfield - - #region BitField EnableSorceryBitfield ============================================================================== - - [ParamField(0x101, ParamType.U8)] - public byte EnableSorceryBitfield - { - get => _EnableSorceryBitfield; - set => WriteParamField(ref _EnableSorceryBitfield, value); - } - private byte _EnableSorceryBitfield; - - [ParamBitField(nameof(EnableSorceryBitfield), bits: 1, bitsOffset: 0)] - public byte EnableSorcery - { - get => GetbitfieldValue(_EnableSorceryBitfield); - set => SetBitfieldValue(ref _EnableSorceryBitfield, value); - } - - [ParamBitField(nameof(EnableSorceryBitfield), bits: 1, bitsOffset: 1)] - public byte EnableMiracle - { - get => GetbitfieldValue(_EnableSorceryBitfield); - set => SetBitfieldValue(ref _EnableSorceryBitfield, value); - } - - [ParamBitField(nameof(EnableSorceryBitfield), bits: 1, bitsOffset: 2)] - public byte EnableVowMagic - { - get => GetbitfieldValue(_EnableSorceryBitfield); - set => SetBitfieldValue(ref _EnableSorceryBitfield, value); - } - - [ParamBitField(nameof(EnableSorceryBitfield), bits: 1, bitsOffset: 3)] - public byte IsNormalAttackType - { - get => GetbitfieldValue(_EnableSorceryBitfield); - set => SetBitfieldValue(ref _EnableSorceryBitfield, value); - } - - [ParamBitField(nameof(EnableSorceryBitfield), bits: 1, bitsOffset: 4)] - public byte IsBlowAttackType - { - get => GetbitfieldValue(_EnableSorceryBitfield); - set => SetBitfieldValue(ref _EnableSorceryBitfield, value); - } - - [ParamBitField(nameof(EnableSorceryBitfield), bits: 1, bitsOffset: 5)] - public byte IsSlashAttackType - { - get => GetbitfieldValue(_EnableSorceryBitfield); - set => SetBitfieldValue(ref _EnableSorceryBitfield, value); - } - - [ParamBitField(nameof(EnableSorceryBitfield), bits: 1, bitsOffset: 6)] - public byte IsThrustAttackType - { - get => GetbitfieldValue(_EnableSorceryBitfield); - set => SetBitfieldValue(ref _EnableSorceryBitfield, value); - } - - [ParamBitField(nameof(EnableSorceryBitfield), bits: 1, bitsOffset: 7)] - public byte IsEnhance - { - get => GetbitfieldValue(_EnableSorceryBitfield); - set => SetBitfieldValue(ref _EnableSorceryBitfield, value); - } - - #endregion BitField EnableSorceryBitfield - - #region BitField IsLuckCorrectBitfield ============================================================================== - - [ParamField(0x102, ParamType.U8)] - public byte IsLuckCorrectBitfield - { - get => _IsLuckCorrectBitfield; - set => WriteParamField(ref _IsLuckCorrectBitfield, value); - } - private byte _IsLuckCorrectBitfield; - - [ParamBitField(nameof(IsLuckCorrectBitfield), bits: 1, bitsOffset: 0)] - public byte IsLuckCorrect - { - get => GetbitfieldValue(_IsLuckCorrectBitfield); - set => SetBitfieldValue(ref _IsLuckCorrectBitfield, value); - } - - [ParamBitField(nameof(IsLuckCorrectBitfield), bits: 1, bitsOffset: 1)] - public byte IsCustom - { - get => GetbitfieldValue(_IsLuckCorrectBitfield); - set => SetBitfieldValue(ref _IsLuckCorrectBitfield, value); - } - - [ParamBitField(nameof(IsLuckCorrectBitfield), bits: 1, bitsOffset: 2)] - public byte DisableBaseChangeReset - { - get => GetbitfieldValue(_IsLuckCorrectBitfield); - set => SetBitfieldValue(ref _IsLuckCorrectBitfield, value); - } - - [ParamBitField(nameof(IsLuckCorrectBitfield), bits: 1, bitsOffset: 3)] - public byte DisableRepair - { - get => GetbitfieldValue(_IsLuckCorrectBitfield); - set => SetBitfieldValue(ref _IsLuckCorrectBitfield, value); - } - - [ParamBitField(nameof(IsLuckCorrectBitfield), bits: 1, bitsOffset: 4)] - public byte IsDarkHand - { - get => GetbitfieldValue(_IsLuckCorrectBitfield); - set => SetBitfieldValue(ref _IsLuckCorrectBitfield, value); - } - - [ParamBitField(nameof(IsLuckCorrectBitfield), bits: 1, bitsOffset: 5)] - public byte SimpleModelForDlc - { - get => GetbitfieldValue(_IsLuckCorrectBitfield); - set => SetBitfieldValue(ref _IsLuckCorrectBitfield, value); - } - - [ParamBitField(nameof(IsLuckCorrectBitfield), bits: 1, bitsOffset: 6)] - public byte LanternWep - { - get => GetbitfieldValue(_IsLuckCorrectBitfield); - set => SetBitfieldValue(ref _IsLuckCorrectBitfield, value); - } - - [ParamBitField(nameof(IsLuckCorrectBitfield), bits: 1, bitsOffset: 7)] - public byte IsVersusGhostWep - { - get => GetbitfieldValue(_IsLuckCorrectBitfield); - set => SetBitfieldValue(ref _IsLuckCorrectBitfield, value); - } - - #endregion BitField IsLuckCorrectBitfield - - #region BitField BaseChangeCategoryBitfield ============================================================================== - - [ParamField(0x103, ParamType.U8)] - public byte BaseChangeCategoryBitfield - { - get => _BaseChangeCategoryBitfield; - set => WriteParamField(ref _BaseChangeCategoryBitfield, value); - } - private byte _BaseChangeCategoryBitfield; - - [ParamBitField(nameof(BaseChangeCategoryBitfield), bits: 6, bitsOffset: 0)] - public byte BaseChangeCategory - { - get => GetbitfieldValue(_BaseChangeCategoryBitfield); - set => SetBitfieldValue(ref _BaseChangeCategoryBitfield, value); - } - - [ParamBitField(nameof(BaseChangeCategoryBitfield), bits: 1, bitsOffset: 6)] - public byte IsDragonSlayer - { - get => GetbitfieldValue(_BaseChangeCategoryBitfield); - set => SetBitfieldValue(ref _BaseChangeCategoryBitfield, value); - } - - [ParamBitField(nameof(BaseChangeCategoryBitfield), bits: 1, bitsOffset: 7)] - public byte IsDeposit - { - get => GetbitfieldValue(_BaseChangeCategoryBitfield); - set => SetBitfieldValue(ref _BaseChangeCategoryBitfield, value); - } - - #endregion BitField BaseChangeCategoryBitfield - - [ParamField(0x105, ParamType.Dummy8, 1)] - public byte[] Pad_0 - { - get => _Pad_0; - set => WriteParamField(ref _Pad_0, value); - } - private byte[] _Pad_0 = null!; - - [ParamField(0x106, ParamType.I16)] - public short OldSortId - { - get => _OldSortId; - set => WriteParamField(ref _OldSortId, value); - } - private short _OldSortId; - - [ParamField(0x108, ParamType.I16)] - public short LevelSyncCorrectID - { - get => _LevelSyncCorrectID; - set => WriteParamField(ref _LevelSyncCorrectID, value); - } - private short _LevelSyncCorrectID; - - [ParamField(0x10A, ParamType.Dummy8, 6)] - public byte[] Pad_1 - { - get => _Pad_1; - set => WriteParamField(ref _Pad_1, value); - } - private byte[] _Pad_1 = null!; + public EquipParamWeapon(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} + + [ParamField(0x0, ParamType.I32)] + public int BehaviorVariationId + { + get => _BehaviorVariationId; + set => WriteParamField(ref _BehaviorVariationId, value); + } + private int _BehaviorVariationId; + + [ParamField(0x4, ParamType.I32)] + public int SortId + { + get => _SortId; + set => WriteParamField(ref _SortId, value); + } + private int _SortId; + + [ParamField(0x8, ParamType.U32)] + public uint WanderingEquipId + { + get => _WanderingEquipId; + set => WriteParamField(ref _WanderingEquipId, value); + } + private uint _WanderingEquipId; + + [ParamField(0xC, ParamType.F32)] + public float Weight + { + get => _Weight; + set => WriteParamField(ref _Weight, value); + } + private float _Weight; + + [ParamField(0x10, ParamType.F32)] + public float WeaponWeightRate + { + get => _WeaponWeightRate; + set => WriteParamField(ref _WeaponWeightRate, value); + } + private float _WeaponWeightRate; + + [ParamField(0x14, ParamType.I32)] + public int FixPrice + { + get => _FixPrice; + set => WriteParamField(ref _FixPrice, value); + } + private int _FixPrice; + + [ParamField(0x18, ParamType.I32)] + public int BasicPrice + { + get => _BasicPrice; + set => WriteParamField(ref _BasicPrice, value); + } + private int _BasicPrice; + + [ParamField(0x1C, ParamType.I32)] + public int SellValue + { + get => _SellValue; + set => WriteParamField(ref _SellValue, value); + } + private int _SellValue; + + [ParamField(0x20, ParamType.F32)] + public float CorrectStrength + { + get => _CorrectStrength; + set => WriteParamField(ref _CorrectStrength, value); + } + private float _CorrectStrength; + + [ParamField(0x24, ParamType.F32)] + public float CorrectAgility + { + get => _CorrectAgility; + set => WriteParamField(ref _CorrectAgility, value); + } + private float _CorrectAgility; + + [ParamField(0x28, ParamType.F32)] + public float CorrectMagic + { + get => _CorrectMagic; + set => WriteParamField(ref _CorrectMagic, value); + } + private float _CorrectMagic; + + [ParamField(0x2C, ParamType.F32)] + public float CorrectFaith + { + get => _CorrectFaith; + set => WriteParamField(ref _CorrectFaith, value); + } + private float _CorrectFaith; + + [ParamField(0x30, ParamType.F32)] + public float PhysGuardCutRate + { + get => _PhysGuardCutRate; + set => WriteParamField(ref _PhysGuardCutRate, value); + } + private float _PhysGuardCutRate; + + [ParamField(0x34, ParamType.F32)] + public float MagGuardCutRate + { + get => _MagGuardCutRate; + set => WriteParamField(ref _MagGuardCutRate, value); + } + private float _MagGuardCutRate; + + [ParamField(0x38, ParamType.F32)] + public float FireGuardCutRate + { + get => _FireGuardCutRate; + set => WriteParamField(ref _FireGuardCutRate, value); + } + private float _FireGuardCutRate; + + [ParamField(0x3C, ParamType.F32)] + public float ThunGuardCutRate + { + get => _ThunGuardCutRate; + set => WriteParamField(ref _ThunGuardCutRate, value); + } + private float _ThunGuardCutRate; + + [ParamField(0x40, ParamType.I32)] + public int SpEffectBehaviorId0 + { + get => _SpEffectBehaviorId0; + set => WriteParamField(ref _SpEffectBehaviorId0, value); + } + private int _SpEffectBehaviorId0; + + [ParamField(0x44, ParamType.I32)] + public int SpEffectBehaviorId1 + { + get => _SpEffectBehaviorId1; + set => WriteParamField(ref _SpEffectBehaviorId1, value); + } + private int _SpEffectBehaviorId1; + + [ParamField(0x48, ParamType.I32)] + public int SpEffectBehaviorId2 + { + get => _SpEffectBehaviorId2; + set => WriteParamField(ref _SpEffectBehaviorId2, value); + } + private int _SpEffectBehaviorId2; + + [ParamField(0x4C, ParamType.I32)] + public int ResidentSpEffectId + { + get => _ResidentSpEffectId; + set => WriteParamField(ref _ResidentSpEffectId, value); + } + private int _ResidentSpEffectId; + + [ParamField(0x50, ParamType.I32)] + public int ResidentSpEffectId1 + { + get => _ResidentSpEffectId1; + set => WriteParamField(ref _ResidentSpEffectId1, value); + } + private int _ResidentSpEffectId1; + + [ParamField(0x54, ParamType.I32)] + public int ResidentSpEffectId2 + { + get => _ResidentSpEffectId2; + set => WriteParamField(ref _ResidentSpEffectId2, value); + } + private int _ResidentSpEffectId2; + + [ParamField(0x58, ParamType.I32)] + public int MaterialSetId + { + get => _MaterialSetId; + set => WriteParamField(ref _MaterialSetId, value); + } + private int _MaterialSetId; + + [ParamField(0x5C, ParamType.I32)] + public int OriginEquipWep + { + get => _OriginEquipWep; + set => WriteParamField(ref _OriginEquipWep, value); + } + private int _OriginEquipWep; + + [ParamField(0x60, ParamType.I32)] + public int OriginEquipWep1 + { + get => _OriginEquipWep1; + set => WriteParamField(ref _OriginEquipWep1, value); + } + private int _OriginEquipWep1; + + [ParamField(0x64, ParamType.I32)] + public int OriginEquipWep2 + { + get => _OriginEquipWep2; + set => WriteParamField(ref _OriginEquipWep2, value); + } + private int _OriginEquipWep2; + + [ParamField(0x68, ParamType.I32)] + public int OriginEquipWep3 + { + get => _OriginEquipWep3; + set => WriteParamField(ref _OriginEquipWep3, value); + } + private int _OriginEquipWep3; + + [ParamField(0x6C, ParamType.I32)] + public int OriginEquipWep4 + { + get => _OriginEquipWep4; + set => WriteParamField(ref _OriginEquipWep4, value); + } + private int _OriginEquipWep4; + + [ParamField(0x70, ParamType.I32)] + public int OriginEquipWep5 + { + get => _OriginEquipWep5; + set => WriteParamField(ref _OriginEquipWep5, value); + } + private int _OriginEquipWep5; + + [ParamField(0x74, ParamType.I32)] + public int OriginEquipWep6 + { + get => _OriginEquipWep6; + set => WriteParamField(ref _OriginEquipWep6, value); + } + private int _OriginEquipWep6; + + [ParamField(0x78, ParamType.I32)] + public int OriginEquipWep7 + { + get => _OriginEquipWep7; + set => WriteParamField(ref _OriginEquipWep7, value); + } + private int _OriginEquipWep7; + + [ParamField(0x7C, ParamType.I32)] + public int OriginEquipWep8 + { + get => _OriginEquipWep8; + set => WriteParamField(ref _OriginEquipWep8, value); + } + private int _OriginEquipWep8; + + [ParamField(0x80, ParamType.I32)] + public int OriginEquipWep9 + { + get => _OriginEquipWep9; + set => WriteParamField(ref _OriginEquipWep9, value); + } + private int _OriginEquipWep9; + + [ParamField(0x84, ParamType.I32)] + public int OriginEquipWep10 + { + get => _OriginEquipWep10; + set => WriteParamField(ref _OriginEquipWep10, value); + } + private int _OriginEquipWep10; + + [ParamField(0x88, ParamType.I32)] + public int OriginEquipWep11 + { + get => _OriginEquipWep11; + set => WriteParamField(ref _OriginEquipWep11, value); + } + private int _OriginEquipWep11; + + [ParamField(0x8C, ParamType.I32)] + public int OriginEquipWep12 + { + get => _OriginEquipWep12; + set => WriteParamField(ref _OriginEquipWep12, value); + } + private int _OriginEquipWep12; + + [ParamField(0x90, ParamType.I32)] + public int OriginEquipWep13 + { + get => _OriginEquipWep13; + set => WriteParamField(ref _OriginEquipWep13, value); + } + private int _OriginEquipWep13; + + [ParamField(0x94, ParamType.I32)] + public int OriginEquipWep14 + { + get => _OriginEquipWep14; + set => WriteParamField(ref _OriginEquipWep14, value); + } + private int _OriginEquipWep14; + + [ParamField(0x98, ParamType.I32)] + public int OriginEquipWep15 + { + get => _OriginEquipWep15; + set => WriteParamField(ref _OriginEquipWep15, value); + } + private int _OriginEquipWep15; + + [ParamField(0x9C, ParamType.F32)] + public float AntiDemonDamageRate + { + get => _AntiDemonDamageRate; + set => WriteParamField(ref _AntiDemonDamageRate, value); + } + private float _AntiDemonDamageRate; + + [ParamField(0xA0, ParamType.F32)] + public float AntSaintDamageRate + { + get => _AntSaintDamageRate; + set => WriteParamField(ref _AntSaintDamageRate, value); + } + private float _AntSaintDamageRate; + + [ParamField(0xA4, ParamType.F32)] + public float AntWeakA_DamageRate + { + get => _AntWeakA_DamageRate; + set => WriteParamField(ref _AntWeakA_DamageRate, value); + } + private float _AntWeakA_DamageRate; + + [ParamField(0xA8, ParamType.F32)] + public float AntWeakB_DamageRate + { + get => _AntWeakB_DamageRate; + set => WriteParamField(ref _AntWeakB_DamageRate, value); + } + private float _AntWeakB_DamageRate; + + [ParamField(0xAC, ParamType.I32)] + public int VagrantItemLotId + { + get => _VagrantItemLotId; + set => WriteParamField(ref _VagrantItemLotId, value); + } + private int _VagrantItemLotId; + + [ParamField(0xB0, ParamType.I32)] + public int VagrantBonusEneDropItemLotId + { + get => _VagrantBonusEneDropItemLotId; + set => WriteParamField(ref _VagrantBonusEneDropItemLotId, value); + } + private int _VagrantBonusEneDropItemLotId; + + [ParamField(0xB4, ParamType.I32)] + public int VagrantItemEneDropItemLotId + { + get => _VagrantItemEneDropItemLotId; + set => WriteParamField(ref _VagrantItemEneDropItemLotId, value); + } + private int _VagrantItemEneDropItemLotId; + + [ParamField(0xB8, ParamType.U16)] + public ushort EquipModelId + { + get => _EquipModelId; + set => WriteParamField(ref _EquipModelId, value); + } + private ushort _EquipModelId; + + [ParamField(0xBA, ParamType.U16)] + public ushort IconId + { + get => _IconId; + set => WriteParamField(ref _IconId, value); + } + private ushort _IconId; + + [ParamField(0xBC, ParamType.U16)] + public ushort Durability + { + get => _Durability; + set => WriteParamField(ref _Durability, value); + } + private ushort _Durability; + + [ParamField(0xBE, ParamType.U16)] + public ushort DurabilityMax + { + get => _DurabilityMax; + set => WriteParamField(ref _DurabilityMax, value); + } + private ushort _DurabilityMax; + + [ParamField(0xC0, ParamType.U16)] + public ushort AttackThrowEscape + { + get => _AttackThrowEscape; + set => WriteParamField(ref _AttackThrowEscape, value); + } + private ushort _AttackThrowEscape; + + [ParamField(0xC2, ParamType.I16)] + public short ParryDamageLife + { + get => _ParryDamageLife; + set => WriteParamField(ref _ParryDamageLife, value); + } + private short _ParryDamageLife; + + [ParamField(0xC4, ParamType.U16)] + public ushort AttackBasePhysics + { + get => _AttackBasePhysics; + set => WriteParamField(ref _AttackBasePhysics, value); + } + private ushort _AttackBasePhysics; + + [ParamField(0xC6, ParamType.U16)] + public ushort AttackBaseMagic + { + get => _AttackBaseMagic; + set => WriteParamField(ref _AttackBaseMagic, value); + } + private ushort _AttackBaseMagic; + + [ParamField(0xC8, ParamType.U16)] + public ushort AttackBaseFire + { + get => _AttackBaseFire; + set => WriteParamField(ref _AttackBaseFire, value); + } + private ushort _AttackBaseFire; + [ParamField(0xCA, ParamType.U16)] + public ushort AttackBaseThunder + { + get => _AttackBaseThunder; + set => WriteParamField(ref _AttackBaseThunder, value); + } + private ushort _AttackBaseThunder; + + [ParamField(0xCC, ParamType.U16)] + public ushort AttackBaseStamina + { + get => _AttackBaseStamina; + set => WriteParamField(ref _AttackBaseStamina, value); + } + private ushort _AttackBaseStamina; + + [ParamField(0xCE, ParamType.U16)] + public ushort SaWeaponDamage + { + get => _SaWeaponDamage; + set => WriteParamField(ref _SaWeaponDamage, value); + } + private ushort _SaWeaponDamage; + + [ParamField(0xD0, ParamType.I16)] + public short SaDurability + { + get => _SaDurability; + set => WriteParamField(ref _SaDurability, value); + } + private short _SaDurability; + + [ParamField(0xD2, ParamType.I16)] + public short GuardAngle + { + get => _GuardAngle; + set => WriteParamField(ref _GuardAngle, value); } + private short _GuardAngle; + + [ParamField(0xD4, ParamType.I16)] + public short StaminaGuardDef + { + get => _StaminaGuardDef; + set => WriteParamField(ref _StaminaGuardDef, value); + } + private short _StaminaGuardDef; + + [ParamField(0xD6, ParamType.I16)] + public short ReinforceTypeId + { + get => _ReinforceTypeId; + set => WriteParamField(ref _ReinforceTypeId, value); + } + private short _ReinforceTypeId; + + [ParamField(0xD8, ParamType.I16)] + public short TrophySGradeId + { + get => _TrophySGradeId; + set => WriteParamField(ref _TrophySGradeId, value); + } + private short _TrophySGradeId; + + [ParamField(0xDA, ParamType.I16)] + public short TrophySeqId + { + get => _TrophySeqId; + set => WriteParamField(ref _TrophySeqId, value); + } + private short _TrophySeqId; + + [ParamField(0xDC, ParamType.I16)] + public short ThrowAtkRate + { + get => _ThrowAtkRate; + set => WriteParamField(ref _ThrowAtkRate, value); + } + private short _ThrowAtkRate; + + [ParamField(0xDE, ParamType.I16)] + public short BowDistRate + { + get => _BowDistRate; + set => WriteParamField(ref _BowDistRate, value); + } + private short _BowDistRate; + + [ParamField(0xE0, ParamType.U8)] + public byte EquipModelCategory + { + get => _EquipModelCategory; + set => WriteParamField(ref _EquipModelCategory, value); + } + private byte _EquipModelCategory; + + [ParamField(0xE1, ParamType.U8)] + public byte EquipModelGender + { + get => _EquipModelGender; + set => WriteParamField(ref _EquipModelGender, value); + } + private byte _EquipModelGender; + + [ParamField(0xE2, ParamType.U8)] + public byte WeaponCategory + { + get => _WeaponCategory; + set => WriteParamField(ref _WeaponCategory, value); + } + private byte _WeaponCategory; + + [ParamField(0xE3, ParamType.U8)] + public byte WepmotionCategory + { + get => _WepmotionCategory; + set => WriteParamField(ref _WepmotionCategory, value); + } + private byte _WepmotionCategory; + + [ParamField(0xE4, ParamType.U8)] + public byte GuardmotionCategory + { + get => _GuardmotionCategory; + set => WriteParamField(ref _GuardmotionCategory, value); + } + private byte _GuardmotionCategory; + + [ParamField(0xE5, ParamType.U8)] + public byte AtkMaterial + { + get => _AtkMaterial; + set => WriteParamField(ref _AtkMaterial, value); + } + private byte _AtkMaterial; + + [ParamField(0xE6, ParamType.U8)] + public byte DefMaterial + { + get => _DefMaterial; + set => WriteParamField(ref _DefMaterial, value); + } + private byte _DefMaterial; + + [ParamField(0xE7, ParamType.U8)] + public byte DefSfxMaterial + { + get => _DefSfxMaterial; + set => WriteParamField(ref _DefSfxMaterial, value); + } + private byte _DefSfxMaterial; + + [ParamField(0xE8, ParamType.U8)] + public byte CorrectType + { + get => _CorrectType; + set => WriteParamField(ref _CorrectType, value); + } + private byte _CorrectType; + + [ParamField(0xE9, ParamType.U8)] + public byte SpAttribute + { + get => _SpAttribute; + set => WriteParamField(ref _SpAttribute, value); + } + private byte _SpAttribute; + + [ParamField(0xEA, ParamType.U8)] + public byte SpAtkcategory + { + get => _SpAtkcategory; + set => WriteParamField(ref _SpAtkcategory, value); + } + private byte _SpAtkcategory; + + [ParamField(0xEB, ParamType.U8)] + public byte WepmotionOneHandId + { + get => _WepmotionOneHandId; + set => WriteParamField(ref _WepmotionOneHandId, value); + } + private byte _WepmotionOneHandId; + + [ParamField(0xEC, ParamType.U8)] + public byte WepmotionBothHandId + { + get => _WepmotionBothHandId; + set => WriteParamField(ref _WepmotionBothHandId, value); + } + private byte _WepmotionBothHandId; + + [ParamField(0xED, ParamType.U8)] + public byte ProperStrength + { + get => _ProperStrength; + set => WriteParamField(ref _ProperStrength, value); + } + private byte _ProperStrength; + + [ParamField(0xEE, ParamType.U8)] + public byte ProperAgility + { + get => _ProperAgility; + set => WriteParamField(ref _ProperAgility, value); + } + private byte _ProperAgility; + + [ParamField(0xEF, ParamType.U8)] + public byte ProperMagic + { + get => _ProperMagic; + set => WriteParamField(ref _ProperMagic, value); + } + private byte _ProperMagic; + + [ParamField(0xF0, ParamType.U8)] + public byte ProperFaith + { + get => _ProperFaith; + set => WriteParamField(ref _ProperFaith, value); + } + private byte _ProperFaith; + + [ParamField(0xF1, ParamType.U8)] + public byte OverStrength + { + get => _OverStrength; + set => WriteParamField(ref _OverStrength, value); + } + private byte _OverStrength; + + [ParamField(0xF2, ParamType.U8)] + public byte AttackBaseParry + { + get => _AttackBaseParry; + set => WriteParamField(ref _AttackBaseParry, value); + } + private byte _AttackBaseParry; + + [ParamField(0xF3, ParamType.U8)] + public byte DefenseBaseParry + { + get => _DefenseBaseParry; + set => WriteParamField(ref _DefenseBaseParry, value); + } + private byte _DefenseBaseParry; + + [ParamField(0xF4, ParamType.U8)] + public byte GuardBaseRepel + { + get => _GuardBaseRepel; + set => WriteParamField(ref _GuardBaseRepel, value); + } + private byte _GuardBaseRepel; + + [ParamField(0xF5, ParamType.U8)] + public byte AttackBaseRepel + { + get => _AttackBaseRepel; + set => WriteParamField(ref _AttackBaseRepel, value); + } + private byte _AttackBaseRepel; + + [ParamField(0xF6, ParamType.I8)] + public sbyte GuardCutCancelRate + { + get => _GuardCutCancelRate; + set => WriteParamField(ref _GuardCutCancelRate, value); + } + private sbyte _GuardCutCancelRate; + + [ParamField(0xF7, ParamType.I8)] + public sbyte GuardLevel + { + get => _GuardLevel; + set => WriteParamField(ref _GuardLevel, value); + } + private sbyte _GuardLevel; + + [ParamField(0xF8, ParamType.I8)] + public sbyte SlashGuardCutRate + { + get => _SlashGuardCutRate; + set => WriteParamField(ref _SlashGuardCutRate, value); + } + private sbyte _SlashGuardCutRate; + + [ParamField(0xF9, ParamType.I8)] + public sbyte BlowGuardCutRate + { + get => _BlowGuardCutRate; + set => WriteParamField(ref _BlowGuardCutRate, value); + } + private sbyte _BlowGuardCutRate; + + [ParamField(0xFA, ParamType.I8)] + public sbyte ThrustGuardCutRate + { + get => _ThrustGuardCutRate; + set => WriteParamField(ref _ThrustGuardCutRate, value); + } + private sbyte _ThrustGuardCutRate; + + [ParamField(0xFB, ParamType.I8)] + public sbyte PoisonGuardResist + { + get => _PoisonGuardResist; + set => WriteParamField(ref _PoisonGuardResist, value); + } + private sbyte _PoisonGuardResist; + + [ParamField(0xFC, ParamType.I8)] + public sbyte DiseaseGuardResist + { + get => _DiseaseGuardResist; + set => WriteParamField(ref _DiseaseGuardResist, value); + } + private sbyte _DiseaseGuardResist; + + [ParamField(0xFD, ParamType.I8)] + public sbyte BloodGuardResist + { + get => _BloodGuardResist; + set => WriteParamField(ref _BloodGuardResist, value); + } + private sbyte _BloodGuardResist; + + [ParamField(0xFE, ParamType.I8)] + public sbyte CurseGuardResist + { + get => _CurseGuardResist; + set => WriteParamField(ref _CurseGuardResist, value); + } + private sbyte _CurseGuardResist; + + [ParamField(0xFF, ParamType.U8)] + public byte IsDurabilityDivergence + { + get => _IsDurabilityDivergence; + set => WriteParamField(ref _IsDurabilityDivergence, value); + } + private byte _IsDurabilityDivergence; + + #region BitField RightHandEquipableBitfield ============================================================================== + + [ParamField(0x100, ParamType.U8)] + public byte RightHandEquipableBitfield + { + get => _RightHandEquipableBitfield; + set => WriteParamField(ref _RightHandEquipableBitfield, value); + } + private byte _RightHandEquipableBitfield; + + [ParamBitField(nameof(RightHandEquipableBitfield), bits: 1, bitsOffset: 0)] + public byte RightHandEquipable + { + get => GetbitfieldValue(_RightHandEquipableBitfield); + set => SetBitfieldValue(ref _RightHandEquipableBitfield, value); + } + + [ParamBitField(nameof(RightHandEquipableBitfield), bits: 1, bitsOffset: 1)] + public byte LeftHandEquipable + { + get => GetbitfieldValue(_RightHandEquipableBitfield); + set => SetBitfieldValue(ref _RightHandEquipableBitfield, value); + } + + [ParamBitField(nameof(RightHandEquipableBitfield), bits: 1, bitsOffset: 2)] + public byte BothHandEquipable + { + get => GetbitfieldValue(_RightHandEquipableBitfield); + set => SetBitfieldValue(ref _RightHandEquipableBitfield, value); + } + + [ParamBitField(nameof(RightHandEquipableBitfield), bits: 1, bitsOffset: 3)] + public byte ArrowSlotEquipable + { + get => GetbitfieldValue(_RightHandEquipableBitfield); + set => SetBitfieldValue(ref _RightHandEquipableBitfield, value); + } + + [ParamBitField(nameof(RightHandEquipableBitfield), bits: 1, bitsOffset: 4)] + public byte BoltSlotEquipable + { + get => GetbitfieldValue(_RightHandEquipableBitfield); + set => SetBitfieldValue(ref _RightHandEquipableBitfield, value); + } + + [ParamBitField(nameof(RightHandEquipableBitfield), bits: 1, bitsOffset: 5)] + public byte EnableGuard + { + get => GetbitfieldValue(_RightHandEquipableBitfield); + set => SetBitfieldValue(ref _RightHandEquipableBitfield, value); + } + + [ParamBitField(nameof(RightHandEquipableBitfield), bits: 1, bitsOffset: 6)] + public byte EnableParry + { + get => GetbitfieldValue(_RightHandEquipableBitfield); + set => SetBitfieldValue(ref _RightHandEquipableBitfield, value); + } + + [ParamBitField(nameof(RightHandEquipableBitfield), bits: 1, bitsOffset: 7)] + public byte EnableMagic + { + get => GetbitfieldValue(_RightHandEquipableBitfield); + set => SetBitfieldValue(ref _RightHandEquipableBitfield, value); + } + + #endregion BitField RightHandEquipableBitfield + + #region BitField EnableSorceryBitfield ============================================================================== + + [ParamField(0x101, ParamType.U8)] + public byte EnableSorceryBitfield + { + get => _EnableSorceryBitfield; + set => WriteParamField(ref _EnableSorceryBitfield, value); + } + private byte _EnableSorceryBitfield; + + [ParamBitField(nameof(EnableSorceryBitfield), bits: 1, bitsOffset: 0)] + public byte EnableSorcery + { + get => GetbitfieldValue(_EnableSorceryBitfield); + set => SetBitfieldValue(ref _EnableSorceryBitfield, value); + } + + [ParamBitField(nameof(EnableSorceryBitfield), bits: 1, bitsOffset: 1)] + public byte EnableMiracle + { + get => GetbitfieldValue(_EnableSorceryBitfield); + set => SetBitfieldValue(ref _EnableSorceryBitfield, value); + } + + [ParamBitField(nameof(EnableSorceryBitfield), bits: 1, bitsOffset: 2)] + public byte EnableVowMagic + { + get => GetbitfieldValue(_EnableSorceryBitfield); + set => SetBitfieldValue(ref _EnableSorceryBitfield, value); + } + + [ParamBitField(nameof(EnableSorceryBitfield), bits: 1, bitsOffset: 3)] + public byte IsNormalAttackType + { + get => GetbitfieldValue(_EnableSorceryBitfield); + set => SetBitfieldValue(ref _EnableSorceryBitfield, value); + } + + [ParamBitField(nameof(EnableSorceryBitfield), bits: 1, bitsOffset: 4)] + public byte IsBlowAttackType + { + get => GetbitfieldValue(_EnableSorceryBitfield); + set => SetBitfieldValue(ref _EnableSorceryBitfield, value); + } + + [ParamBitField(nameof(EnableSorceryBitfield), bits: 1, bitsOffset: 5)] + public byte IsSlashAttackType + { + get => GetbitfieldValue(_EnableSorceryBitfield); + set => SetBitfieldValue(ref _EnableSorceryBitfield, value); + } + + [ParamBitField(nameof(EnableSorceryBitfield), bits: 1, bitsOffset: 6)] + public byte IsThrustAttackType + { + get => GetbitfieldValue(_EnableSorceryBitfield); + set => SetBitfieldValue(ref _EnableSorceryBitfield, value); + } + + [ParamBitField(nameof(EnableSorceryBitfield), bits: 1, bitsOffset: 7)] + public byte IsEnhance + { + get => GetbitfieldValue(_EnableSorceryBitfield); + set => SetBitfieldValue(ref _EnableSorceryBitfield, value); + } + + #endregion BitField EnableSorceryBitfield + + #region BitField IsLuckCorrectBitfield ============================================================================== + + [ParamField(0x102, ParamType.U8)] + public byte IsLuckCorrectBitfield + { + get => _IsLuckCorrectBitfield; + set => WriteParamField(ref _IsLuckCorrectBitfield, value); + } + private byte _IsLuckCorrectBitfield; + + [ParamBitField(nameof(IsLuckCorrectBitfield), bits: 1, bitsOffset: 0)] + public byte IsLuckCorrect + { + get => GetbitfieldValue(_IsLuckCorrectBitfield); + set => SetBitfieldValue(ref _IsLuckCorrectBitfield, value); + } + + [ParamBitField(nameof(IsLuckCorrectBitfield), bits: 1, bitsOffset: 1)] + public byte IsCustom + { + get => GetbitfieldValue(_IsLuckCorrectBitfield); + set => SetBitfieldValue(ref _IsLuckCorrectBitfield, value); + } + + [ParamBitField(nameof(IsLuckCorrectBitfield), bits: 1, bitsOffset: 2)] + public byte DisableBaseChangeReset + { + get => GetbitfieldValue(_IsLuckCorrectBitfield); + set => SetBitfieldValue(ref _IsLuckCorrectBitfield, value); + } + + [ParamBitField(nameof(IsLuckCorrectBitfield), bits: 1, bitsOffset: 3)] + public byte DisableRepair + { + get => GetbitfieldValue(_IsLuckCorrectBitfield); + set => SetBitfieldValue(ref _IsLuckCorrectBitfield, value); + } + + [ParamBitField(nameof(IsLuckCorrectBitfield), bits: 1, bitsOffset: 4)] + public byte IsDarkHand + { + get => GetbitfieldValue(_IsLuckCorrectBitfield); + set => SetBitfieldValue(ref _IsLuckCorrectBitfield, value); + } + + [ParamBitField(nameof(IsLuckCorrectBitfield), bits: 1, bitsOffset: 5)] + public byte SimpleModelForDlc + { + get => GetbitfieldValue(_IsLuckCorrectBitfield); + set => SetBitfieldValue(ref _IsLuckCorrectBitfield, value); + } + + [ParamBitField(nameof(IsLuckCorrectBitfield), bits: 1, bitsOffset: 6)] + public byte LanternWep + { + get => GetbitfieldValue(_IsLuckCorrectBitfield); + set => SetBitfieldValue(ref _IsLuckCorrectBitfield, value); + } + + [ParamBitField(nameof(IsLuckCorrectBitfield), bits: 1, bitsOffset: 7)] + public byte IsVersusGhostWep + { + get => GetbitfieldValue(_IsLuckCorrectBitfield); + set => SetBitfieldValue(ref _IsLuckCorrectBitfield, value); + } + + #endregion BitField IsLuckCorrectBitfield + + #region BitField BaseChangeCategoryBitfield ============================================================================== + + [ParamField(0x103, ParamType.U8)] + public byte BaseChangeCategoryBitfield + { + get => _BaseChangeCategoryBitfield; + set => WriteParamField(ref _BaseChangeCategoryBitfield, value); + } + private byte _BaseChangeCategoryBitfield; + + [ParamBitField(nameof(BaseChangeCategoryBitfield), bits: 6, bitsOffset: 0)] + public byte BaseChangeCategory + { + get => GetbitfieldValue(_BaseChangeCategoryBitfield); + set => SetBitfieldValue(ref _BaseChangeCategoryBitfield, value); + } + + [ParamBitField(nameof(BaseChangeCategoryBitfield), bits: 1, bitsOffset: 6)] + public byte IsDragonSlayer + { + get => GetbitfieldValue(_BaseChangeCategoryBitfield); + set => SetBitfieldValue(ref _BaseChangeCategoryBitfield, value); + } + + [ParamBitField(nameof(BaseChangeCategoryBitfield), bits: 1, bitsOffset: 7)] + public byte IsDeposit + { + get => GetbitfieldValue(_BaseChangeCategoryBitfield); + set => SetBitfieldValue(ref _BaseChangeCategoryBitfield, value); + } + + #endregion BitField BaseChangeCategoryBitfield + + [ParamField(0x105, ParamType.Dummy8, 1)] + public byte[] Pad_0 + { + get => _Pad_0; + set => WriteParamField(ref _Pad_0, value); + } + private byte[] _Pad_0 = null!; + + [ParamField(0x106, ParamType.I16)] + public short OldSortId + { + get => _OldSortId; + set => WriteParamField(ref _OldSortId, value); + } + private short _OldSortId; + + [ParamField(0x108, ParamType.I16)] + public short LevelSyncCorrectID + { + get => _LevelSyncCorrectID; + set => WriteParamField(ref _LevelSyncCorrectID, value); + } + private short _LevelSyncCorrectID; + + [ParamField(0x10A, ParamType.Dummy8, 6)] + public byte[] Pad_1 + { + get => _Pad_1; + set => WriteParamField(ref _Pad_1, value); + } + private byte[] _Pad_1 = null!; + } diff --git a/src/SoulMemory/DarkSouls1/Parameters/FaceGenParam.cs b/src/SoulMemory/DarkSouls1/Parameters/FaceGenParam.cs index b1e830a..ad28cf5 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/FaceGenParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/FaceGenParam.cs @@ -18,884 +18,883 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters +namespace SoulMemory.DarkSouls1.Parameters; + +[ExcludeFromCodeCoverage] +public class FaceGenParam : BaseParam { - [ExcludeFromCodeCoverage] - public class FaceGenParam : BaseParam - { - public FaceGenParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - - [ParamField(0x0, ParamType.U8)] - public byte FaceGeoData00 - { - get => _FaceGeoData00; - set => WriteParamField(ref _FaceGeoData00, value); - } - private byte _FaceGeoData00; - - [ParamField(0x1, ParamType.U8)] - public byte FaceGeoData01 - { - get => _FaceGeoData01; - set => WriteParamField(ref _FaceGeoData01, value); - } - private byte _FaceGeoData01; - - [ParamField(0x2, ParamType.U8)] - public byte FaceGeoData02 - { - get => _FaceGeoData02; - set => WriteParamField(ref _FaceGeoData02, value); - } - private byte _FaceGeoData02; - - [ParamField(0x3, ParamType.U8)] - public byte FaceGeoData03 - { - get => _FaceGeoData03; - set => WriteParamField(ref _FaceGeoData03, value); - } - private byte _FaceGeoData03; - - [ParamField(0x4, ParamType.U8)] - public byte FaceGeoData04 - { - get => _FaceGeoData04; - set => WriteParamField(ref _FaceGeoData04, value); - } - private byte _FaceGeoData04; - - [ParamField(0x5, ParamType.U8)] - public byte FaceGeoData05 - { - get => _FaceGeoData05; - set => WriteParamField(ref _FaceGeoData05, value); - } - private byte _FaceGeoData05; - - [ParamField(0x6, ParamType.U8)] - public byte FaceGeoData06 - { - get => _FaceGeoData06; - set => WriteParamField(ref _FaceGeoData06, value); - } - private byte _FaceGeoData06; - - [ParamField(0x7, ParamType.U8)] - public byte FaceGeoData07 - { - get => _FaceGeoData07; - set => WriteParamField(ref _FaceGeoData07, value); - } - private byte _FaceGeoData07; - - [ParamField(0x8, ParamType.U8)] - public byte FaceGeoData08 - { - get => _FaceGeoData08; - set => WriteParamField(ref _FaceGeoData08, value); - } - private byte _FaceGeoData08; - - [ParamField(0x9, ParamType.U8)] - public byte FaceGeoData09 - { - get => _FaceGeoData09; - set => WriteParamField(ref _FaceGeoData09, value); - } - private byte _FaceGeoData09; - - [ParamField(0xA, ParamType.U8)] - public byte FaceGeoData10 - { - get => _FaceGeoData10; - set => WriteParamField(ref _FaceGeoData10, value); - } - private byte _FaceGeoData10; - - [ParamField(0xB, ParamType.U8)] - public byte FaceGeoData11 - { - get => _FaceGeoData11; - set => WriteParamField(ref _FaceGeoData11, value); - } - private byte _FaceGeoData11; - - [ParamField(0xC, ParamType.U8)] - public byte FaceGeoData12 - { - get => _FaceGeoData12; - set => WriteParamField(ref _FaceGeoData12, value); - } - private byte _FaceGeoData12; - - [ParamField(0xD, ParamType.U8)] - public byte FaceGeoData13 - { - get => _FaceGeoData13; - set => WriteParamField(ref _FaceGeoData13, value); - } - private byte _FaceGeoData13; - - [ParamField(0xE, ParamType.U8)] - public byte FaceGeoData14 - { - get => _FaceGeoData14; - set => WriteParamField(ref _FaceGeoData14, value); - } - private byte _FaceGeoData14; - - [ParamField(0xF, ParamType.U8)] - public byte FaceGeoData15 - { - get => _FaceGeoData15; - set => WriteParamField(ref _FaceGeoData15, value); - } - private byte _FaceGeoData15; - - [ParamField(0x10, ParamType.U8)] - public byte FaceGeoData16 - { - get => _FaceGeoData16; - set => WriteParamField(ref _FaceGeoData16, value); - } - private byte _FaceGeoData16; - - [ParamField(0x11, ParamType.U8)] - public byte FaceGeoData17 - { - get => _FaceGeoData17; - set => WriteParamField(ref _FaceGeoData17, value); - } - private byte _FaceGeoData17; - - [ParamField(0x12, ParamType.U8)] - public byte FaceGeoData18 - { - get => _FaceGeoData18; - set => WriteParamField(ref _FaceGeoData18, value); - } - private byte _FaceGeoData18; - - [ParamField(0x13, ParamType.U8)] - public byte FaceGeoData19 - { - get => _FaceGeoData19; - set => WriteParamField(ref _FaceGeoData19, value); - } - private byte _FaceGeoData19; - - [ParamField(0x14, ParamType.U8)] - public byte FaceGeoData20 - { - get => _FaceGeoData20; - set => WriteParamField(ref _FaceGeoData20, value); - } - private byte _FaceGeoData20; - - [ParamField(0x15, ParamType.U8)] - public byte FaceGeoData21 - { - get => _FaceGeoData21; - set => WriteParamField(ref _FaceGeoData21, value); - } - private byte _FaceGeoData21; - - [ParamField(0x16, ParamType.U8)] - public byte FaceGeoData22 - { - get => _FaceGeoData22; - set => WriteParamField(ref _FaceGeoData22, value); - } - private byte _FaceGeoData22; - - [ParamField(0x17, ParamType.U8)] - public byte FaceGeoData23 - { - get => _FaceGeoData23; - set => WriteParamField(ref _FaceGeoData23, value); - } - private byte _FaceGeoData23; - - [ParamField(0x18, ParamType.U8)] - public byte FaceGeoData24 - { - get => _FaceGeoData24; - set => WriteParamField(ref _FaceGeoData24, value); - } - private byte _FaceGeoData24; - - [ParamField(0x19, ParamType.U8)] - public byte FaceGeoData25 - { - get => _FaceGeoData25; - set => WriteParamField(ref _FaceGeoData25, value); - } - private byte _FaceGeoData25; - - [ParamField(0x1A, ParamType.U8)] - public byte FaceGeoData26 - { - get => _FaceGeoData26; - set => WriteParamField(ref _FaceGeoData26, value); - } - private byte _FaceGeoData26; - - [ParamField(0x1B, ParamType.U8)] - public byte FaceGeoData27 - { - get => _FaceGeoData27; - set => WriteParamField(ref _FaceGeoData27, value); - } - private byte _FaceGeoData27; - - [ParamField(0x1C, ParamType.U8)] - public byte FaceGeoData28 - { - get => _FaceGeoData28; - set => WriteParamField(ref _FaceGeoData28, value); - } - private byte _FaceGeoData28; - - [ParamField(0x1D, ParamType.U8)] - public byte FaceGeoData29 - { - get => _FaceGeoData29; - set => WriteParamField(ref _FaceGeoData29, value); - } - private byte _FaceGeoData29; - - [ParamField(0x1E, ParamType.U8)] - public byte FaceGeoData30 - { - get => _FaceGeoData30; - set => WriteParamField(ref _FaceGeoData30, value); - } - private byte _FaceGeoData30; - - [ParamField(0x1F, ParamType.U8)] - public byte FaceGeoData31 - { - get => _FaceGeoData31; - set => WriteParamField(ref _FaceGeoData31, value); - } - private byte _FaceGeoData31; - - [ParamField(0x20, ParamType.U8)] - public byte FaceGeoData32 - { - get => _FaceGeoData32; - set => WriteParamField(ref _FaceGeoData32, value); - } - private byte _FaceGeoData32; - - [ParamField(0x21, ParamType.U8)] - public byte FaceGeoData33 - { - get => _FaceGeoData33; - set => WriteParamField(ref _FaceGeoData33, value); - } - private byte _FaceGeoData33; - - [ParamField(0x22, ParamType.U8)] - public byte FaceGeoData34 - { - get => _FaceGeoData34; - set => WriteParamField(ref _FaceGeoData34, value); - } - private byte _FaceGeoData34; - - [ParamField(0x23, ParamType.U8)] - public byte FaceGeoData35 - { - get => _FaceGeoData35; - set => WriteParamField(ref _FaceGeoData35, value); - } - private byte _FaceGeoData35; - - [ParamField(0x24, ParamType.U8)] - public byte FaceGeoData36 - { - get => _FaceGeoData36; - set => WriteParamField(ref _FaceGeoData36, value); - } - private byte _FaceGeoData36; - - [ParamField(0x25, ParamType.U8)] - public byte FaceGeoData37 - { - get => _FaceGeoData37; - set => WriteParamField(ref _FaceGeoData37, value); - } - private byte _FaceGeoData37; - - [ParamField(0x26, ParamType.U8)] - public byte FaceGeoData38 - { - get => _FaceGeoData38; - set => WriteParamField(ref _FaceGeoData38, value); - } - private byte _FaceGeoData38; - - [ParamField(0x27, ParamType.U8)] - public byte FaceGeoData39 - { - get => _FaceGeoData39; - set => WriteParamField(ref _FaceGeoData39, value); - } - private byte _FaceGeoData39; - - [ParamField(0x28, ParamType.U8)] - public byte FaceGeoData40 - { - get => _FaceGeoData40; - set => WriteParamField(ref _FaceGeoData40, value); - } - private byte _FaceGeoData40; - - [ParamField(0x29, ParamType.U8)] - public byte FaceGeoData41 - { - get => _FaceGeoData41; - set => WriteParamField(ref _FaceGeoData41, value); - } - private byte _FaceGeoData41; - - [ParamField(0x2A, ParamType.U8)] - public byte FaceGeoData42 - { - get => _FaceGeoData42; - set => WriteParamField(ref _FaceGeoData42, value); - } - private byte _FaceGeoData42; - - [ParamField(0x2B, ParamType.U8)] - public byte FaceGeoData43 - { - get => _FaceGeoData43; - set => WriteParamField(ref _FaceGeoData43, value); - } - private byte _FaceGeoData43; - - [ParamField(0x2C, ParamType.U8)] - public byte FaceGeoData44 - { - get => _FaceGeoData44; - set => WriteParamField(ref _FaceGeoData44, value); - } - private byte _FaceGeoData44; - - [ParamField(0x2D, ParamType.U8)] - public byte FaceGeoData45 - { - get => _FaceGeoData45; - set => WriteParamField(ref _FaceGeoData45, value); - } - private byte _FaceGeoData45; - - [ParamField(0x2E, ParamType.U8)] - public byte FaceGeoData46 - { - get => _FaceGeoData46; - set => WriteParamField(ref _FaceGeoData46, value); - } - private byte _FaceGeoData46; - - [ParamField(0x2F, ParamType.U8)] - public byte FaceGeoData47 - { - get => _FaceGeoData47; - set => WriteParamField(ref _FaceGeoData47, value); - } - private byte _FaceGeoData47; - - [ParamField(0x30, ParamType.U8)] - public byte FaceGeoData48 - { - get => _FaceGeoData48; - set => WriteParamField(ref _FaceGeoData48, value); - } - private byte _FaceGeoData48; - - [ParamField(0x31, ParamType.U8)] - public byte FaceGeoData49 - { - get => _FaceGeoData49; - set => WriteParamField(ref _FaceGeoData49, value); - } - private byte _FaceGeoData49; - - [ParamField(0x32, ParamType.U8)] - public byte FaceTexData00 - { - get => _FaceTexData00; - set => WriteParamField(ref _FaceTexData00, value); - } - private byte _FaceTexData00; - - [ParamField(0x33, ParamType.U8)] - public byte FaceTexData01 - { - get => _FaceTexData01; - set => WriteParamField(ref _FaceTexData01, value); - } - private byte _FaceTexData01; - - [ParamField(0x34, ParamType.U8)] - public byte FaceTexData02 - { - get => _FaceTexData02; - set => WriteParamField(ref _FaceTexData02, value); - } - private byte _FaceTexData02; - - [ParamField(0x35, ParamType.U8)] - public byte FaceTexData03 - { - get => _FaceTexData03; - set => WriteParamField(ref _FaceTexData03, value); - } - private byte _FaceTexData03; - - [ParamField(0x36, ParamType.U8)] - public byte FaceTexData04 - { - get => _FaceTexData04; - set => WriteParamField(ref _FaceTexData04, value); - } - private byte _FaceTexData04; - - [ParamField(0x37, ParamType.U8)] - public byte FaceTexData05 - { - get => _FaceTexData05; - set => WriteParamField(ref _FaceTexData05, value); - } - private byte _FaceTexData05; - - [ParamField(0x38, ParamType.U8)] - public byte FaceTexData06 - { - get => _FaceTexData06; - set => WriteParamField(ref _FaceTexData06, value); - } - private byte _FaceTexData06; - - [ParamField(0x39, ParamType.U8)] - public byte FaceTexData07 - { - get => _FaceTexData07; - set => WriteParamField(ref _FaceTexData07, value); - } - private byte _FaceTexData07; - - [ParamField(0x3A, ParamType.U8)] - public byte FaceTexData08 - { - get => _FaceTexData08; - set => WriteParamField(ref _FaceTexData08, value); - } - private byte _FaceTexData08; - - [ParamField(0x3B, ParamType.U8)] - public byte FaceTexData09 - { - get => _FaceTexData09; - set => WriteParamField(ref _FaceTexData09, value); - } - private byte _FaceTexData09; - - [ParamField(0x3C, ParamType.U8)] - public byte FaceTexData10 - { - get => _FaceTexData10; - set => WriteParamField(ref _FaceTexData10, value); - } - private byte _FaceTexData10; - - [ParamField(0x3D, ParamType.U8)] - public byte FaceTexData11 - { - get => _FaceTexData11; - set => WriteParamField(ref _FaceTexData11, value); - } - private byte _FaceTexData11; - - [ParamField(0x3E, ParamType.U8)] - public byte FaceTexData12 - { - get => _FaceTexData12; - set => WriteParamField(ref _FaceTexData12, value); - } - private byte _FaceTexData12; - - [ParamField(0x3F, ParamType.U8)] - public byte FaceTexData13 - { - get => _FaceTexData13; - set => WriteParamField(ref _FaceTexData13, value); - } - private byte _FaceTexData13; - - [ParamField(0x40, ParamType.U8)] - public byte FaceTexData14 - { - get => _FaceTexData14; - set => WriteParamField(ref _FaceTexData14, value); - } - private byte _FaceTexData14; - - [ParamField(0x41, ParamType.U8)] - public byte FaceTexData15 - { - get => _FaceTexData15; - set => WriteParamField(ref _FaceTexData15, value); - } - private byte _FaceTexData15; - - [ParamField(0x42, ParamType.U8)] - public byte FaceTexData16 - { - get => _FaceTexData16; - set => WriteParamField(ref _FaceTexData16, value); - } - private byte _FaceTexData16; - - [ParamField(0x43, ParamType.U8)] - public byte FaceTexData17 - { - get => _FaceTexData17; - set => WriteParamField(ref _FaceTexData17, value); - } - private byte _FaceTexData17; - - [ParamField(0x44, ParamType.U8)] - public byte FaceTexData18 - { - get => _FaceTexData18; - set => WriteParamField(ref _FaceTexData18, value); - } - private byte _FaceTexData18; - - [ParamField(0x45, ParamType.U8)] - public byte FaceTexData19 - { - get => _FaceTexData19; - set => WriteParamField(ref _FaceTexData19, value); - } - private byte _FaceTexData19; - - [ParamField(0x46, ParamType.U8)] - public byte FaceTexData20 - { - get => _FaceTexData20; - set => WriteParamField(ref _FaceTexData20, value); - } - private byte _FaceTexData20; - - [ParamField(0x47, ParamType.U8)] - public byte FaceTexData21 - { - get => _FaceTexData21; - set => WriteParamField(ref _FaceTexData21, value); - } - private byte _FaceTexData21; - - [ParamField(0x48, ParamType.U8)] - public byte FaceTexData22 - { - get => _FaceTexData22; - set => WriteParamField(ref _FaceTexData22, value); - } - private byte _FaceTexData22; - - [ParamField(0x49, ParamType.U8)] - public byte FaceTexData23 - { - get => _FaceTexData23; - set => WriteParamField(ref _FaceTexData23, value); - } - private byte _FaceTexData23; - - [ParamField(0x4A, ParamType.U8)] - public byte FaceTexData24 - { - get => _FaceTexData24; - set => WriteParamField(ref _FaceTexData24, value); - } - private byte _FaceTexData24; - - [ParamField(0x4B, ParamType.U8)] - public byte FaceTexData25 - { - get => _FaceTexData25; - set => WriteParamField(ref _FaceTexData25, value); - } - private byte _FaceTexData25; - - [ParamField(0x4C, ParamType.U8)] - public byte FaceTexData26 - { - get => _FaceTexData26; - set => WriteParamField(ref _FaceTexData26, value); - } - private byte _FaceTexData26; - - [ParamField(0x4D, ParamType.U8)] - public byte FaceTexData27 - { - get => _FaceTexData27; - set => WriteParamField(ref _FaceTexData27, value); - } - private byte _FaceTexData27; - - [ParamField(0x4E, ParamType.U8)] - public byte FaceTexData28 - { - get => _FaceTexData28; - set => WriteParamField(ref _FaceTexData28, value); - } - private byte _FaceTexData28; - - [ParamField(0x4F, ParamType.U8)] - public byte FaceTexData29 - { - get => _FaceTexData29; - set => WriteParamField(ref _FaceTexData29, value); - } - private byte _FaceTexData29; - - [ParamField(0x50, ParamType.U8)] - public byte FaceTexData30 - { - get => _FaceTexData30; - set => WriteParamField(ref _FaceTexData30, value); - } - private byte _FaceTexData30; - - [ParamField(0x51, ParamType.U8)] - public byte FaceTexData31 - { - get => _FaceTexData31; - set => WriteParamField(ref _FaceTexData31, value); - } - private byte _FaceTexData31; - - [ParamField(0x52, ParamType.U8)] - public byte FaceTexData32 - { - get => _FaceTexData32; - set => WriteParamField(ref _FaceTexData32, value); - } - private byte _FaceTexData32; - - [ParamField(0x53, ParamType.U8)] - public byte FaceTexData33 - { - get => _FaceTexData33; - set => WriteParamField(ref _FaceTexData33, value); - } - private byte _FaceTexData33; - - [ParamField(0x54, ParamType.U8)] - public byte FaceTexData34 - { - get => _FaceTexData34; - set => WriteParamField(ref _FaceTexData34, value); - } - private byte _FaceTexData34; - - [ParamField(0x55, ParamType.U8)] - public byte FaceTexData35 - { - get => _FaceTexData35; - set => WriteParamField(ref _FaceTexData35, value); - } - private byte _FaceTexData35; - - [ParamField(0x56, ParamType.U8)] - public byte FaceTexData36 - { - get => _FaceTexData36; - set => WriteParamField(ref _FaceTexData36, value); - } - private byte _FaceTexData36; - - [ParamField(0x57, ParamType.U8)] - public byte FaceTexData37 - { - get => _FaceTexData37; - set => WriteParamField(ref _FaceTexData37, value); - } - private byte _FaceTexData37; - - [ParamField(0x58, ParamType.U8)] - public byte FaceTexData38 - { - get => _FaceTexData38; - set => WriteParamField(ref _FaceTexData38, value); - } - private byte _FaceTexData38; - - [ParamField(0x59, ParamType.U8)] - public byte FaceTexData39 - { - get => _FaceTexData39; - set => WriteParamField(ref _FaceTexData39, value); - } - private byte _FaceTexData39; - - [ParamField(0x5A, ParamType.U8)] - public byte FaceTexData40 - { - get => _FaceTexData40; - set => WriteParamField(ref _FaceTexData40, value); - } - private byte _FaceTexData40; - - [ParamField(0x5B, ParamType.U8)] - public byte FaceTexData41 - { - get => _FaceTexData41; - set => WriteParamField(ref _FaceTexData41, value); - } - private byte _FaceTexData41; - - [ParamField(0x5C, ParamType.U8)] - public byte FaceTexData42 - { - get => _FaceTexData42; - set => WriteParamField(ref _FaceTexData42, value); - } - private byte _FaceTexData42; - - [ParamField(0x5D, ParamType.U8)] - public byte FaceTexData43 - { - get => _FaceTexData43; - set => WriteParamField(ref _FaceTexData43, value); - } - private byte _FaceTexData43; - - [ParamField(0x5E, ParamType.U8)] - public byte FaceTexData44 - { - get => _FaceTexData44; - set => WriteParamField(ref _FaceTexData44, value); - } - private byte _FaceTexData44; - - [ParamField(0x5F, ParamType.U8)] - public byte FaceTexData45 - { - get => _FaceTexData45; - set => WriteParamField(ref _FaceTexData45, value); - } - private byte _FaceTexData45; - - [ParamField(0x60, ParamType.U8)] - public byte FaceTexData46 - { - get => _FaceTexData46; - set => WriteParamField(ref _FaceTexData46, value); - } - private byte _FaceTexData46; - - [ParamField(0x61, ParamType.U8)] - public byte FaceTexData47 - { - get => _FaceTexData47; - set => WriteParamField(ref _FaceTexData47, value); - } - private byte _FaceTexData47; - - [ParamField(0x62, ParamType.U8)] - public byte FaceTexData48 - { - get => _FaceTexData48; - set => WriteParamField(ref _FaceTexData48, value); - } - private byte _FaceTexData48; - - [ParamField(0x63, ParamType.U8)] - public byte FaceTexData49 - { - get => _FaceTexData49; - set => WriteParamField(ref _FaceTexData49, value); - } - private byte _FaceTexData49; - - [ParamField(0x64, ParamType.U8)] - public byte HairStyle - { - get => _HairStyle; - set => WriteParamField(ref _HairStyle, value); - } - private byte _HairStyle; - - [ParamField(0x65, ParamType.U8)] - public byte HairColor_Base - { - get => _HairColor_Base; - set => WriteParamField(ref _HairColor_Base, value); - } - private byte _HairColor_Base; - - [ParamField(0x66, ParamType.U8)] - public byte HairColor_R - { - get => _HairColor_R; - set => WriteParamField(ref _HairColor_R, value); - } - private byte _HairColor_R; - - [ParamField(0x67, ParamType.U8)] - public byte HairColor_G - { - get => _HairColor_G; - set => WriteParamField(ref _HairColor_G, value); - } - private byte _HairColor_G; - - [ParamField(0x68, ParamType.U8)] - public byte HairColor_B - { - get => _HairColor_B; - set => WriteParamField(ref _HairColor_B, value); - } - private byte _HairColor_B; - - [ParamField(0x69, ParamType.U8)] - public byte EyeColor_R - { - get => _EyeColor_R; - set => WriteParamField(ref _EyeColor_R, value); - } - private byte _EyeColor_R; - - [ParamField(0x6A, ParamType.U8)] - public byte EyeColor_G - { - get => _EyeColor_G; - set => WriteParamField(ref _EyeColor_G, value); - } - private byte _EyeColor_G; - - [ParamField(0x6B, ParamType.U8)] - public byte EyeColor_B - { - get => _EyeColor_B; - set => WriteParamField(ref _EyeColor_B, value); - } - private byte _EyeColor_B; - - [ParamField(0x6C, ParamType.Dummy8, 20)] - public byte[] Pad - { - get => _Pad; - set => WriteParamField(ref _Pad, value); - } - private byte[] _Pad = null!; + public FaceGenParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} + + [ParamField(0x0, ParamType.U8)] + public byte FaceGeoData00 + { + get => _FaceGeoData00; + set => WriteParamField(ref _FaceGeoData00, value); + } + private byte _FaceGeoData00; + + [ParamField(0x1, ParamType.U8)] + public byte FaceGeoData01 + { + get => _FaceGeoData01; + set => WriteParamField(ref _FaceGeoData01, value); + } + private byte _FaceGeoData01; + + [ParamField(0x2, ParamType.U8)] + public byte FaceGeoData02 + { + get => _FaceGeoData02; + set => WriteParamField(ref _FaceGeoData02, value); + } + private byte _FaceGeoData02; + + [ParamField(0x3, ParamType.U8)] + public byte FaceGeoData03 + { + get => _FaceGeoData03; + set => WriteParamField(ref _FaceGeoData03, value); + } + private byte _FaceGeoData03; + + [ParamField(0x4, ParamType.U8)] + public byte FaceGeoData04 + { + get => _FaceGeoData04; + set => WriteParamField(ref _FaceGeoData04, value); + } + private byte _FaceGeoData04; + + [ParamField(0x5, ParamType.U8)] + public byte FaceGeoData05 + { + get => _FaceGeoData05; + set => WriteParamField(ref _FaceGeoData05, value); + } + private byte _FaceGeoData05; + + [ParamField(0x6, ParamType.U8)] + public byte FaceGeoData06 + { + get => _FaceGeoData06; + set => WriteParamField(ref _FaceGeoData06, value); + } + private byte _FaceGeoData06; + + [ParamField(0x7, ParamType.U8)] + public byte FaceGeoData07 + { + get => _FaceGeoData07; + set => WriteParamField(ref _FaceGeoData07, value); + } + private byte _FaceGeoData07; + + [ParamField(0x8, ParamType.U8)] + public byte FaceGeoData08 + { + get => _FaceGeoData08; + set => WriteParamField(ref _FaceGeoData08, value); + } + private byte _FaceGeoData08; + + [ParamField(0x9, ParamType.U8)] + public byte FaceGeoData09 + { + get => _FaceGeoData09; + set => WriteParamField(ref _FaceGeoData09, value); + } + private byte _FaceGeoData09; + + [ParamField(0xA, ParamType.U8)] + public byte FaceGeoData10 + { + get => _FaceGeoData10; + set => WriteParamField(ref _FaceGeoData10, value); + } + private byte _FaceGeoData10; + + [ParamField(0xB, ParamType.U8)] + public byte FaceGeoData11 + { + get => _FaceGeoData11; + set => WriteParamField(ref _FaceGeoData11, value); + } + private byte _FaceGeoData11; + + [ParamField(0xC, ParamType.U8)] + public byte FaceGeoData12 + { + get => _FaceGeoData12; + set => WriteParamField(ref _FaceGeoData12, value); + } + private byte _FaceGeoData12; + + [ParamField(0xD, ParamType.U8)] + public byte FaceGeoData13 + { + get => _FaceGeoData13; + set => WriteParamField(ref _FaceGeoData13, value); + } + private byte _FaceGeoData13; + + [ParamField(0xE, ParamType.U8)] + public byte FaceGeoData14 + { + get => _FaceGeoData14; + set => WriteParamField(ref _FaceGeoData14, value); + } + private byte _FaceGeoData14; + + [ParamField(0xF, ParamType.U8)] + public byte FaceGeoData15 + { + get => _FaceGeoData15; + set => WriteParamField(ref _FaceGeoData15, value); + } + private byte _FaceGeoData15; + + [ParamField(0x10, ParamType.U8)] + public byte FaceGeoData16 + { + get => _FaceGeoData16; + set => WriteParamField(ref _FaceGeoData16, value); + } + private byte _FaceGeoData16; + + [ParamField(0x11, ParamType.U8)] + public byte FaceGeoData17 + { + get => _FaceGeoData17; + set => WriteParamField(ref _FaceGeoData17, value); + } + private byte _FaceGeoData17; + + [ParamField(0x12, ParamType.U8)] + public byte FaceGeoData18 + { + get => _FaceGeoData18; + set => WriteParamField(ref _FaceGeoData18, value); + } + private byte _FaceGeoData18; + + [ParamField(0x13, ParamType.U8)] + public byte FaceGeoData19 + { + get => _FaceGeoData19; + set => WriteParamField(ref _FaceGeoData19, value); + } + private byte _FaceGeoData19; + + [ParamField(0x14, ParamType.U8)] + public byte FaceGeoData20 + { + get => _FaceGeoData20; + set => WriteParamField(ref _FaceGeoData20, value); + } + private byte _FaceGeoData20; + + [ParamField(0x15, ParamType.U8)] + public byte FaceGeoData21 + { + get => _FaceGeoData21; + set => WriteParamField(ref _FaceGeoData21, value); + } + private byte _FaceGeoData21; + + [ParamField(0x16, ParamType.U8)] + public byte FaceGeoData22 + { + get => _FaceGeoData22; + set => WriteParamField(ref _FaceGeoData22, value); + } + private byte _FaceGeoData22; + + [ParamField(0x17, ParamType.U8)] + public byte FaceGeoData23 + { + get => _FaceGeoData23; + set => WriteParamField(ref _FaceGeoData23, value); + } + private byte _FaceGeoData23; + + [ParamField(0x18, ParamType.U8)] + public byte FaceGeoData24 + { + get => _FaceGeoData24; + set => WriteParamField(ref _FaceGeoData24, value); + } + private byte _FaceGeoData24; + + [ParamField(0x19, ParamType.U8)] + public byte FaceGeoData25 + { + get => _FaceGeoData25; + set => WriteParamField(ref _FaceGeoData25, value); + } + private byte _FaceGeoData25; + + [ParamField(0x1A, ParamType.U8)] + public byte FaceGeoData26 + { + get => _FaceGeoData26; + set => WriteParamField(ref _FaceGeoData26, value); + } + private byte _FaceGeoData26; + [ParamField(0x1B, ParamType.U8)] + public byte FaceGeoData27 + { + get => _FaceGeoData27; + set => WriteParamField(ref _FaceGeoData27, value); + } + private byte _FaceGeoData27; + + [ParamField(0x1C, ParamType.U8)] + public byte FaceGeoData28 + { + get => _FaceGeoData28; + set => WriteParamField(ref _FaceGeoData28, value); + } + private byte _FaceGeoData28; + + [ParamField(0x1D, ParamType.U8)] + public byte FaceGeoData29 + { + get => _FaceGeoData29; + set => WriteParamField(ref _FaceGeoData29, value); + } + private byte _FaceGeoData29; + + [ParamField(0x1E, ParamType.U8)] + public byte FaceGeoData30 + { + get => _FaceGeoData30; + set => WriteParamField(ref _FaceGeoData30, value); + } + private byte _FaceGeoData30; + + [ParamField(0x1F, ParamType.U8)] + public byte FaceGeoData31 + { + get => _FaceGeoData31; + set => WriteParamField(ref _FaceGeoData31, value); + } + private byte _FaceGeoData31; + + [ParamField(0x20, ParamType.U8)] + public byte FaceGeoData32 + { + get => _FaceGeoData32; + set => WriteParamField(ref _FaceGeoData32, value); + } + private byte _FaceGeoData32; + + [ParamField(0x21, ParamType.U8)] + public byte FaceGeoData33 + { + get => _FaceGeoData33; + set => WriteParamField(ref _FaceGeoData33, value); + } + private byte _FaceGeoData33; + + [ParamField(0x22, ParamType.U8)] + public byte FaceGeoData34 + { + get => _FaceGeoData34; + set => WriteParamField(ref _FaceGeoData34, value); + } + private byte _FaceGeoData34; + + [ParamField(0x23, ParamType.U8)] + public byte FaceGeoData35 + { + get => _FaceGeoData35; + set => WriteParamField(ref _FaceGeoData35, value); + } + private byte _FaceGeoData35; + + [ParamField(0x24, ParamType.U8)] + public byte FaceGeoData36 + { + get => _FaceGeoData36; + set => WriteParamField(ref _FaceGeoData36, value); + } + private byte _FaceGeoData36; + + [ParamField(0x25, ParamType.U8)] + public byte FaceGeoData37 + { + get => _FaceGeoData37; + set => WriteParamField(ref _FaceGeoData37, value); + } + private byte _FaceGeoData37; + + [ParamField(0x26, ParamType.U8)] + public byte FaceGeoData38 + { + get => _FaceGeoData38; + set => WriteParamField(ref _FaceGeoData38, value); + } + private byte _FaceGeoData38; + + [ParamField(0x27, ParamType.U8)] + public byte FaceGeoData39 + { + get => _FaceGeoData39; + set => WriteParamField(ref _FaceGeoData39, value); + } + private byte _FaceGeoData39; + + [ParamField(0x28, ParamType.U8)] + public byte FaceGeoData40 + { + get => _FaceGeoData40; + set => WriteParamField(ref _FaceGeoData40, value); + } + private byte _FaceGeoData40; + + [ParamField(0x29, ParamType.U8)] + public byte FaceGeoData41 + { + get => _FaceGeoData41; + set => WriteParamField(ref _FaceGeoData41, value); + } + private byte _FaceGeoData41; + + [ParamField(0x2A, ParamType.U8)] + public byte FaceGeoData42 + { + get => _FaceGeoData42; + set => WriteParamField(ref _FaceGeoData42, value); + } + private byte _FaceGeoData42; + + [ParamField(0x2B, ParamType.U8)] + public byte FaceGeoData43 + { + get => _FaceGeoData43; + set => WriteParamField(ref _FaceGeoData43, value); + } + private byte _FaceGeoData43; + + [ParamField(0x2C, ParamType.U8)] + public byte FaceGeoData44 + { + get => _FaceGeoData44; + set => WriteParamField(ref _FaceGeoData44, value); + } + private byte _FaceGeoData44; + + [ParamField(0x2D, ParamType.U8)] + public byte FaceGeoData45 + { + get => _FaceGeoData45; + set => WriteParamField(ref _FaceGeoData45, value); + } + private byte _FaceGeoData45; + + [ParamField(0x2E, ParamType.U8)] + public byte FaceGeoData46 + { + get => _FaceGeoData46; + set => WriteParamField(ref _FaceGeoData46, value); + } + private byte _FaceGeoData46; + + [ParamField(0x2F, ParamType.U8)] + public byte FaceGeoData47 + { + get => _FaceGeoData47; + set => WriteParamField(ref _FaceGeoData47, value); + } + private byte _FaceGeoData47; + + [ParamField(0x30, ParamType.U8)] + public byte FaceGeoData48 + { + get => _FaceGeoData48; + set => WriteParamField(ref _FaceGeoData48, value); + } + private byte _FaceGeoData48; + + [ParamField(0x31, ParamType.U8)] + public byte FaceGeoData49 + { + get => _FaceGeoData49; + set => WriteParamField(ref _FaceGeoData49, value); + } + private byte _FaceGeoData49; + + [ParamField(0x32, ParamType.U8)] + public byte FaceTexData00 + { + get => _FaceTexData00; + set => WriteParamField(ref _FaceTexData00, value); + } + private byte _FaceTexData00; + + [ParamField(0x33, ParamType.U8)] + public byte FaceTexData01 + { + get => _FaceTexData01; + set => WriteParamField(ref _FaceTexData01, value); + } + private byte _FaceTexData01; + + [ParamField(0x34, ParamType.U8)] + public byte FaceTexData02 + { + get => _FaceTexData02; + set => WriteParamField(ref _FaceTexData02, value); + } + private byte _FaceTexData02; + + [ParamField(0x35, ParamType.U8)] + public byte FaceTexData03 + { + get => _FaceTexData03; + set => WriteParamField(ref _FaceTexData03, value); + } + private byte _FaceTexData03; + + [ParamField(0x36, ParamType.U8)] + public byte FaceTexData04 + { + get => _FaceTexData04; + set => WriteParamField(ref _FaceTexData04, value); } + private byte _FaceTexData04; + + [ParamField(0x37, ParamType.U8)] + public byte FaceTexData05 + { + get => _FaceTexData05; + set => WriteParamField(ref _FaceTexData05, value); + } + private byte _FaceTexData05; + + [ParamField(0x38, ParamType.U8)] + public byte FaceTexData06 + { + get => _FaceTexData06; + set => WriteParamField(ref _FaceTexData06, value); + } + private byte _FaceTexData06; + + [ParamField(0x39, ParamType.U8)] + public byte FaceTexData07 + { + get => _FaceTexData07; + set => WriteParamField(ref _FaceTexData07, value); + } + private byte _FaceTexData07; + + [ParamField(0x3A, ParamType.U8)] + public byte FaceTexData08 + { + get => _FaceTexData08; + set => WriteParamField(ref _FaceTexData08, value); + } + private byte _FaceTexData08; + + [ParamField(0x3B, ParamType.U8)] + public byte FaceTexData09 + { + get => _FaceTexData09; + set => WriteParamField(ref _FaceTexData09, value); + } + private byte _FaceTexData09; + + [ParamField(0x3C, ParamType.U8)] + public byte FaceTexData10 + { + get => _FaceTexData10; + set => WriteParamField(ref _FaceTexData10, value); + } + private byte _FaceTexData10; + + [ParamField(0x3D, ParamType.U8)] + public byte FaceTexData11 + { + get => _FaceTexData11; + set => WriteParamField(ref _FaceTexData11, value); + } + private byte _FaceTexData11; + + [ParamField(0x3E, ParamType.U8)] + public byte FaceTexData12 + { + get => _FaceTexData12; + set => WriteParamField(ref _FaceTexData12, value); + } + private byte _FaceTexData12; + + [ParamField(0x3F, ParamType.U8)] + public byte FaceTexData13 + { + get => _FaceTexData13; + set => WriteParamField(ref _FaceTexData13, value); + } + private byte _FaceTexData13; + + [ParamField(0x40, ParamType.U8)] + public byte FaceTexData14 + { + get => _FaceTexData14; + set => WriteParamField(ref _FaceTexData14, value); + } + private byte _FaceTexData14; + + [ParamField(0x41, ParamType.U8)] + public byte FaceTexData15 + { + get => _FaceTexData15; + set => WriteParamField(ref _FaceTexData15, value); + } + private byte _FaceTexData15; + + [ParamField(0x42, ParamType.U8)] + public byte FaceTexData16 + { + get => _FaceTexData16; + set => WriteParamField(ref _FaceTexData16, value); + } + private byte _FaceTexData16; + + [ParamField(0x43, ParamType.U8)] + public byte FaceTexData17 + { + get => _FaceTexData17; + set => WriteParamField(ref _FaceTexData17, value); + } + private byte _FaceTexData17; + + [ParamField(0x44, ParamType.U8)] + public byte FaceTexData18 + { + get => _FaceTexData18; + set => WriteParamField(ref _FaceTexData18, value); + } + private byte _FaceTexData18; + + [ParamField(0x45, ParamType.U8)] + public byte FaceTexData19 + { + get => _FaceTexData19; + set => WriteParamField(ref _FaceTexData19, value); + } + private byte _FaceTexData19; + + [ParamField(0x46, ParamType.U8)] + public byte FaceTexData20 + { + get => _FaceTexData20; + set => WriteParamField(ref _FaceTexData20, value); + } + private byte _FaceTexData20; + + [ParamField(0x47, ParamType.U8)] + public byte FaceTexData21 + { + get => _FaceTexData21; + set => WriteParamField(ref _FaceTexData21, value); + } + private byte _FaceTexData21; + + [ParamField(0x48, ParamType.U8)] + public byte FaceTexData22 + { + get => _FaceTexData22; + set => WriteParamField(ref _FaceTexData22, value); + } + private byte _FaceTexData22; + + [ParamField(0x49, ParamType.U8)] + public byte FaceTexData23 + { + get => _FaceTexData23; + set => WriteParamField(ref _FaceTexData23, value); + } + private byte _FaceTexData23; + + [ParamField(0x4A, ParamType.U8)] + public byte FaceTexData24 + { + get => _FaceTexData24; + set => WriteParamField(ref _FaceTexData24, value); + } + private byte _FaceTexData24; + + [ParamField(0x4B, ParamType.U8)] + public byte FaceTexData25 + { + get => _FaceTexData25; + set => WriteParamField(ref _FaceTexData25, value); + } + private byte _FaceTexData25; + + [ParamField(0x4C, ParamType.U8)] + public byte FaceTexData26 + { + get => _FaceTexData26; + set => WriteParamField(ref _FaceTexData26, value); + } + private byte _FaceTexData26; + + [ParamField(0x4D, ParamType.U8)] + public byte FaceTexData27 + { + get => _FaceTexData27; + set => WriteParamField(ref _FaceTexData27, value); + } + private byte _FaceTexData27; + + [ParamField(0x4E, ParamType.U8)] + public byte FaceTexData28 + { + get => _FaceTexData28; + set => WriteParamField(ref _FaceTexData28, value); + } + private byte _FaceTexData28; + + [ParamField(0x4F, ParamType.U8)] + public byte FaceTexData29 + { + get => _FaceTexData29; + set => WriteParamField(ref _FaceTexData29, value); + } + private byte _FaceTexData29; + + [ParamField(0x50, ParamType.U8)] + public byte FaceTexData30 + { + get => _FaceTexData30; + set => WriteParamField(ref _FaceTexData30, value); + } + private byte _FaceTexData30; + + [ParamField(0x51, ParamType.U8)] + public byte FaceTexData31 + { + get => _FaceTexData31; + set => WriteParamField(ref _FaceTexData31, value); + } + private byte _FaceTexData31; + + [ParamField(0x52, ParamType.U8)] + public byte FaceTexData32 + { + get => _FaceTexData32; + set => WriteParamField(ref _FaceTexData32, value); + } + private byte _FaceTexData32; + + [ParamField(0x53, ParamType.U8)] + public byte FaceTexData33 + { + get => _FaceTexData33; + set => WriteParamField(ref _FaceTexData33, value); + } + private byte _FaceTexData33; + + [ParamField(0x54, ParamType.U8)] + public byte FaceTexData34 + { + get => _FaceTexData34; + set => WriteParamField(ref _FaceTexData34, value); + } + private byte _FaceTexData34; + + [ParamField(0x55, ParamType.U8)] + public byte FaceTexData35 + { + get => _FaceTexData35; + set => WriteParamField(ref _FaceTexData35, value); + } + private byte _FaceTexData35; + + [ParamField(0x56, ParamType.U8)] + public byte FaceTexData36 + { + get => _FaceTexData36; + set => WriteParamField(ref _FaceTexData36, value); + } + private byte _FaceTexData36; + + [ParamField(0x57, ParamType.U8)] + public byte FaceTexData37 + { + get => _FaceTexData37; + set => WriteParamField(ref _FaceTexData37, value); + } + private byte _FaceTexData37; + + [ParamField(0x58, ParamType.U8)] + public byte FaceTexData38 + { + get => _FaceTexData38; + set => WriteParamField(ref _FaceTexData38, value); + } + private byte _FaceTexData38; + + [ParamField(0x59, ParamType.U8)] + public byte FaceTexData39 + { + get => _FaceTexData39; + set => WriteParamField(ref _FaceTexData39, value); + } + private byte _FaceTexData39; + + [ParamField(0x5A, ParamType.U8)] + public byte FaceTexData40 + { + get => _FaceTexData40; + set => WriteParamField(ref _FaceTexData40, value); + } + private byte _FaceTexData40; + + [ParamField(0x5B, ParamType.U8)] + public byte FaceTexData41 + { + get => _FaceTexData41; + set => WriteParamField(ref _FaceTexData41, value); + } + private byte _FaceTexData41; + + [ParamField(0x5C, ParamType.U8)] + public byte FaceTexData42 + { + get => _FaceTexData42; + set => WriteParamField(ref _FaceTexData42, value); + } + private byte _FaceTexData42; + + [ParamField(0x5D, ParamType.U8)] + public byte FaceTexData43 + { + get => _FaceTexData43; + set => WriteParamField(ref _FaceTexData43, value); + } + private byte _FaceTexData43; + + [ParamField(0x5E, ParamType.U8)] + public byte FaceTexData44 + { + get => _FaceTexData44; + set => WriteParamField(ref _FaceTexData44, value); + } + private byte _FaceTexData44; + + [ParamField(0x5F, ParamType.U8)] + public byte FaceTexData45 + { + get => _FaceTexData45; + set => WriteParamField(ref _FaceTexData45, value); + } + private byte _FaceTexData45; + + [ParamField(0x60, ParamType.U8)] + public byte FaceTexData46 + { + get => _FaceTexData46; + set => WriteParamField(ref _FaceTexData46, value); + } + private byte _FaceTexData46; + + [ParamField(0x61, ParamType.U8)] + public byte FaceTexData47 + { + get => _FaceTexData47; + set => WriteParamField(ref _FaceTexData47, value); + } + private byte _FaceTexData47; + + [ParamField(0x62, ParamType.U8)] + public byte FaceTexData48 + { + get => _FaceTexData48; + set => WriteParamField(ref _FaceTexData48, value); + } + private byte _FaceTexData48; + + [ParamField(0x63, ParamType.U8)] + public byte FaceTexData49 + { + get => _FaceTexData49; + set => WriteParamField(ref _FaceTexData49, value); + } + private byte _FaceTexData49; + + [ParamField(0x64, ParamType.U8)] + public byte HairStyle + { + get => _HairStyle; + set => WriteParamField(ref _HairStyle, value); + } + private byte _HairStyle; + + [ParamField(0x65, ParamType.U8)] + public byte HairColor_Base + { + get => _HairColor_Base; + set => WriteParamField(ref _HairColor_Base, value); + } + private byte _HairColor_Base; + + [ParamField(0x66, ParamType.U8)] + public byte HairColor_R + { + get => _HairColor_R; + set => WriteParamField(ref _HairColor_R, value); + } + private byte _HairColor_R; + + [ParamField(0x67, ParamType.U8)] + public byte HairColor_G + { + get => _HairColor_G; + set => WriteParamField(ref _HairColor_G, value); + } + private byte _HairColor_G; + + [ParamField(0x68, ParamType.U8)] + public byte HairColor_B + { + get => _HairColor_B; + set => WriteParamField(ref _HairColor_B, value); + } + private byte _HairColor_B; + + [ParamField(0x69, ParamType.U8)] + public byte EyeColor_R + { + get => _EyeColor_R; + set => WriteParamField(ref _EyeColor_R, value); + } + private byte _EyeColor_R; + + [ParamField(0x6A, ParamType.U8)] + public byte EyeColor_G + { + get => _EyeColor_G; + set => WriteParamField(ref _EyeColor_G, value); + } + private byte _EyeColor_G; + + [ParamField(0x6B, ParamType.U8)] + public byte EyeColor_B + { + get => _EyeColor_B; + set => WriteParamField(ref _EyeColor_B, value); + } + private byte _EyeColor_B; + + [ParamField(0x6C, ParamType.Dummy8, 20)] + public byte[] Pad + { + get => _Pad; + set => WriteParamField(ref _Pad, value); + } + private byte[] _Pad = null!; + } diff --git a/src/SoulMemory/DarkSouls1/Parameters/FogBank.cs b/src/SoulMemory/DarkSouls1/Parameters/FogBank.cs index ffb48ad..9979b5e 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/FogBank.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/FogBank.cs @@ -18,76 +18,75 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters -{ - [ExcludeFromCodeCoverage] - public class FogBank : BaseParam - { - public FogBank(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} +namespace SoulMemory.DarkSouls1.Parameters; - [ParamField(0x0, ParamType.I16)] - public short FogBeginZ - { - get => _FogBeginZ; - set => WriteParamField(ref _FogBeginZ, value); - } - private short _FogBeginZ; +[ExcludeFromCodeCoverage] +public class FogBank : BaseParam +{ + public FogBank(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x2, ParamType.I16)] - public short FogEndZ - { - get => _FogEndZ; - set => WriteParamField(ref _FogEndZ, value); - } - private short _FogEndZ; + [ParamField(0x0, ParamType.I16)] + public short FogBeginZ + { + get => _FogBeginZ; + set => WriteParamField(ref _FogBeginZ, value); + } + private short _FogBeginZ; - [ParamField(0x4, ParamType.I16)] - public short DegRotZ - { - get => _DegRotZ; - set => WriteParamField(ref _DegRotZ, value); - } - private short _DegRotZ; + [ParamField(0x2, ParamType.I16)] + public short FogEndZ + { + get => _FogEndZ; + set => WriteParamField(ref _FogEndZ, value); + } + private short _FogEndZ; - [ParamField(0x6, ParamType.I16)] - public short DegRotW - { - get => _DegRotW; - set => WriteParamField(ref _DegRotW, value); - } - private short _DegRotW; + [ParamField(0x4, ParamType.I16)] + public short DegRotZ + { + get => _DegRotZ; + set => WriteParamField(ref _DegRotZ, value); + } + private short _DegRotZ; - [ParamField(0x8, ParamType.I16)] - public short ColR - { - get => _ColR; - set => WriteParamField(ref _ColR, value); - } - private short _ColR; + [ParamField(0x6, ParamType.I16)] + public short DegRotW + { + get => _DegRotW; + set => WriteParamField(ref _DegRotW, value); + } + private short _DegRotW; - [ParamField(0xA, ParamType.I16)] - public short ColG - { - get => _ColG; - set => WriteParamField(ref _ColG, value); - } - private short _ColG; + [ParamField(0x8, ParamType.I16)] + public short ColR + { + get => _ColR; + set => WriteParamField(ref _ColR, value); + } + private short _ColR; - [ParamField(0xC, ParamType.I16)] - public short ColB - { - get => _ColB; - set => WriteParamField(ref _ColB, value); - } - private short _ColB; + [ParamField(0xA, ParamType.I16)] + public short ColG + { + get => _ColG; + set => WriteParamField(ref _ColG, value); + } + private short _ColG; - [ParamField(0xE, ParamType.I16)] - public short ColA - { - get => _ColA; - set => WriteParamField(ref _ColA, value); - } - private short _ColA; + [ParamField(0xC, ParamType.I16)] + public short ColB + { + get => _ColB; + set => WriteParamField(ref _ColB, value); + } + private short _ColB; + [ParamField(0xE, ParamType.I16)] + public short ColA + { + get => _ColA; + set => WriteParamField(ref _ColA, value); } + private short _ColA; + } diff --git a/src/SoulMemory/DarkSouls1/Parameters/GameAreaParam.cs b/src/SoulMemory/DarkSouls1/Parameters/GameAreaParam.cs index a37ed8f..407983a 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/GameAreaParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/GameAreaParam.cs @@ -18,116 +18,115 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters +namespace SoulMemory.DarkSouls1.Parameters; + +[ExcludeFromCodeCoverage] +public class GameAreaParam : BaseParam { - [ExcludeFromCodeCoverage] - public class GameAreaParam : BaseParam + public GameAreaParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} + + [ParamField(0x0, ParamType.U32)] + public uint BonusSoul_single + { + get => _BonusSoul_single; + set => WriteParamField(ref _BonusSoul_single, value); + } + private uint _BonusSoul_single; + + [ParamField(0x4, ParamType.U32)] + public uint BonusSoul_multi + { + get => _BonusSoul_multi; + set => WriteParamField(ref _BonusSoul_multi, value); + } + private uint _BonusSoul_multi; + + [ParamField(0x8, ParamType.I32)] + public int HumanityPointCountFlagIdTop + { + get => _HumanityPointCountFlagIdTop; + set => WriteParamField(ref _HumanityPointCountFlagIdTop, value); + } + private int _HumanityPointCountFlagIdTop; + + [ParamField(0xC, ParamType.U16)] + public ushort HumanityDropPoint1 + { + get => _HumanityDropPoint1; + set => WriteParamField(ref _HumanityDropPoint1, value); + } + private ushort _HumanityDropPoint1; + + [ParamField(0xE, ParamType.U16)] + public ushort HumanityDropPoint2 + { + get => _HumanityDropPoint2; + set => WriteParamField(ref _HumanityDropPoint2, value); + } + private ushort _HumanityDropPoint2; + + [ParamField(0x10, ParamType.U16)] + public ushort HumanityDropPoint3 + { + get => _HumanityDropPoint3; + set => WriteParamField(ref _HumanityDropPoint3, value); + } + private ushort _HumanityDropPoint3; + + [ParamField(0x12, ParamType.U16)] + public ushort HumanityDropPoint4 + { + get => _HumanityDropPoint4; + set => WriteParamField(ref _HumanityDropPoint4, value); + } + private ushort _HumanityDropPoint4; + + [ParamField(0x14, ParamType.U16)] + public ushort HumanityDropPoint5 + { + get => _HumanityDropPoint5; + set => WriteParamField(ref _HumanityDropPoint5, value); + } + private ushort _HumanityDropPoint5; + + [ParamField(0x16, ParamType.U16)] + public ushort HumanityDropPoint6 { - public GameAreaParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - - [ParamField(0x0, ParamType.U32)] - public uint BonusSoul_single - { - get => _BonusSoul_single; - set => WriteParamField(ref _BonusSoul_single, value); - } - private uint _BonusSoul_single; - - [ParamField(0x4, ParamType.U32)] - public uint BonusSoul_multi - { - get => _BonusSoul_multi; - set => WriteParamField(ref _BonusSoul_multi, value); - } - private uint _BonusSoul_multi; - - [ParamField(0x8, ParamType.I32)] - public int HumanityPointCountFlagIdTop - { - get => _HumanityPointCountFlagIdTop; - set => WriteParamField(ref _HumanityPointCountFlagIdTop, value); - } - private int _HumanityPointCountFlagIdTop; - - [ParamField(0xC, ParamType.U16)] - public ushort HumanityDropPoint1 - { - get => _HumanityDropPoint1; - set => WriteParamField(ref _HumanityDropPoint1, value); - } - private ushort _HumanityDropPoint1; - - [ParamField(0xE, ParamType.U16)] - public ushort HumanityDropPoint2 - { - get => _HumanityDropPoint2; - set => WriteParamField(ref _HumanityDropPoint2, value); - } - private ushort _HumanityDropPoint2; - - [ParamField(0x10, ParamType.U16)] - public ushort HumanityDropPoint3 - { - get => _HumanityDropPoint3; - set => WriteParamField(ref _HumanityDropPoint3, value); - } - private ushort _HumanityDropPoint3; - - [ParamField(0x12, ParamType.U16)] - public ushort HumanityDropPoint4 - { - get => _HumanityDropPoint4; - set => WriteParamField(ref _HumanityDropPoint4, value); - } - private ushort _HumanityDropPoint4; - - [ParamField(0x14, ParamType.U16)] - public ushort HumanityDropPoint5 - { - get => _HumanityDropPoint5; - set => WriteParamField(ref _HumanityDropPoint5, value); - } - private ushort _HumanityDropPoint5; - - [ParamField(0x16, ParamType.U16)] - public ushort HumanityDropPoint6 - { - get => _HumanityDropPoint6; - set => WriteParamField(ref _HumanityDropPoint6, value); - } - private ushort _HumanityDropPoint6; - - [ParamField(0x18, ParamType.U16)] - public ushort HumanityDropPoint7 - { - get => _HumanityDropPoint7; - set => WriteParamField(ref _HumanityDropPoint7, value); - } - private ushort _HumanityDropPoint7; - - [ParamField(0x1A, ParamType.U16)] - public ushort HumanityDropPoint8 - { - get => _HumanityDropPoint8; - set => WriteParamField(ref _HumanityDropPoint8, value); - } - private ushort _HumanityDropPoint8; - - [ParamField(0x1C, ParamType.U16)] - public ushort HumanityDropPoint9 - { - get => _HumanityDropPoint9; - set => WriteParamField(ref _HumanityDropPoint9, value); - } - private ushort _HumanityDropPoint9; - - [ParamField(0x1E, ParamType.U16)] - public ushort HumanityDropPoint10 - { - get => _HumanityDropPoint10; - set => WriteParamField(ref _HumanityDropPoint10, value); - } - private ushort _HumanityDropPoint10; + get => _HumanityDropPoint6; + set => WriteParamField(ref _HumanityDropPoint6, value); + } + private ushort _HumanityDropPoint6; + [ParamField(0x18, ParamType.U16)] + public ushort HumanityDropPoint7 + { + get => _HumanityDropPoint7; + set => WriteParamField(ref _HumanityDropPoint7, value); } + private ushort _HumanityDropPoint7; + + [ParamField(0x1A, ParamType.U16)] + public ushort HumanityDropPoint8 + { + get => _HumanityDropPoint8; + set => WriteParamField(ref _HumanityDropPoint8, value); + } + private ushort _HumanityDropPoint8; + + [ParamField(0x1C, ParamType.U16)] + public ushort HumanityDropPoint9 + { + get => _HumanityDropPoint9; + set => WriteParamField(ref _HumanityDropPoint9, value); + } + private ushort _HumanityDropPoint9; + + [ParamField(0x1E, ParamType.U16)] + public ushort HumanityDropPoint10 + { + get => _HumanityDropPoint10; + set => WriteParamField(ref _HumanityDropPoint10, value); + } + private ushort _HumanityDropPoint10; + } diff --git a/src/SoulMemory/DarkSouls1/Parameters/HitMtrlParam.cs b/src/SoulMemory/DarkSouls1/Parameters/HitMtrlParam.cs index b58cd20..383cc3f 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/HitMtrlParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/HitMtrlParam.cs @@ -18,77 +18,76 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters -{ - [ExcludeFromCodeCoverage] - public class HitMtrlParam : BaseParam - { - public HitMtrlParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} +namespace SoulMemory.DarkSouls1.Parameters; - [ParamField(0x0, ParamType.F32)] - public float AiVolumeRate - { - get => _AiVolumeRate; - set => WriteParamField(ref _AiVolumeRate, value); - } - private float _AiVolumeRate; +[ExcludeFromCodeCoverage] +public class HitMtrlParam : BaseParam +{ + public HitMtrlParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x4, ParamType.I32)] - public int SpEffectIdOnHit0 - { - get => _SpEffectIdOnHit0; - set => WriteParamField(ref _SpEffectIdOnHit0, value); - } - private int _SpEffectIdOnHit0; + [ParamField(0x0, ParamType.F32)] + public float AiVolumeRate + { + get => _AiVolumeRate; + set => WriteParamField(ref _AiVolumeRate, value); + } + private float _AiVolumeRate; - [ParamField(0x8, ParamType.I32)] - public int SpEffectIdOnHit1 - { - get => _SpEffectIdOnHit1; - set => WriteParamField(ref _SpEffectIdOnHit1, value); - } - private int _SpEffectIdOnHit1; + [ParamField(0x4, ParamType.I32)] + public int SpEffectIdOnHit0 + { + get => _SpEffectIdOnHit0; + set => WriteParamField(ref _SpEffectIdOnHit0, value); + } + private int _SpEffectIdOnHit0; - #region BitField FootEffectHeightTypeBitfield ============================================================================== + [ParamField(0x8, ParamType.I32)] + public int SpEffectIdOnHit1 + { + get => _SpEffectIdOnHit1; + set => WriteParamField(ref _SpEffectIdOnHit1, value); + } + private int _SpEffectIdOnHit1; - [ParamField(0xC, ParamType.U8)] - public byte FootEffectHeightTypeBitfield - { - get => _FootEffectHeightTypeBitfield; - set => WriteParamField(ref _FootEffectHeightTypeBitfield, value); - } - private byte _FootEffectHeightTypeBitfield; + #region BitField FootEffectHeightTypeBitfield ============================================================================== - [ParamBitField(nameof(FootEffectHeightTypeBitfield), bits: 2, bitsOffset: 0)] - public byte FootEffectHeightType - { - get => GetbitfieldValue(_FootEffectHeightTypeBitfield); - set => SetBitfieldValue(ref _FootEffectHeightTypeBitfield, value); - } + [ParamField(0xC, ParamType.U8)] + public byte FootEffectHeightTypeBitfield + { + get => _FootEffectHeightTypeBitfield; + set => WriteParamField(ref _FootEffectHeightTypeBitfield, value); + } + private byte _FootEffectHeightTypeBitfield; - [ParamBitField(nameof(FootEffectHeightTypeBitfield), bits: 2, bitsOffset: 2)] - public byte FootEffectDirType - { - get => GetbitfieldValue(_FootEffectHeightTypeBitfield); - set => SetBitfieldValue(ref _FootEffectHeightTypeBitfield, value); - } + [ParamBitField(nameof(FootEffectHeightTypeBitfield), bits: 2, bitsOffset: 0)] + public byte FootEffectHeightType + { + get => GetbitfieldValue(_FootEffectHeightTypeBitfield); + set => SetBitfieldValue(ref _FootEffectHeightTypeBitfield, value); + } - [ParamBitField(nameof(FootEffectHeightTypeBitfield), bits: 2, bitsOffset: 4)] - public byte FloorHeightType - { - get => GetbitfieldValue(_FootEffectHeightTypeBitfield); - set => SetBitfieldValue(ref _FootEffectHeightTypeBitfield, value); - } + [ParamBitField(nameof(FootEffectHeightTypeBitfield), bits: 2, bitsOffset: 2)] + public byte FootEffectDirType + { + get => GetbitfieldValue(_FootEffectHeightTypeBitfield); + set => SetBitfieldValue(ref _FootEffectHeightTypeBitfield, value); + } - #endregion BitField FootEffectHeightTypeBitfield + [ParamBitField(nameof(FootEffectHeightTypeBitfield), bits: 2, bitsOffset: 4)] + public byte FloorHeightType + { + get => GetbitfieldValue(_FootEffectHeightTypeBitfield); + set => SetBitfieldValue(ref _FootEffectHeightTypeBitfield, value); + } - [ParamField(0xD, ParamType.Dummy8, 3)] - public byte[] Pad0 - { - get => _Pad0; - set => WriteParamField(ref _Pad0, value); - } - private byte[] _Pad0 = null!; + #endregion BitField FootEffectHeightTypeBitfield + [ParamField(0xD, ParamType.Dummy8, 3)] + public byte[] Pad0 + { + get => _Pad0; + set => WriteParamField(ref _Pad0, value); } + private byte[] _Pad0 = null!; + } diff --git a/src/SoulMemory/DarkSouls1/Parameters/ItemLotParam.cs b/src/SoulMemory/DarkSouls1/Parameters/ItemLotParam.cs index 525913c..884fb76 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/ItemLotParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/ItemLotParam.cs @@ -18,552 +18,551 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters +namespace SoulMemory.DarkSouls1.Parameters; + +[ExcludeFromCodeCoverage] +public class ItemLotParam : BaseParam { - [ExcludeFromCodeCoverage] - public class ItemLotParam : BaseParam - { - public ItemLotParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - - [ParamField(0x0, ParamType.I32)] - public int LotItemId01 - { - get => _LotItemId01; - set => WriteParamField(ref _LotItemId01, value); - } - private int _LotItemId01; - - [ParamField(0x4, ParamType.I32)] - public int LotItemId02 - { - get => _LotItemId02; - set => WriteParamField(ref _LotItemId02, value); - } - private int _LotItemId02; - - [ParamField(0x8, ParamType.I32)] - public int LotItemId03 - { - get => _LotItemId03; - set => WriteParamField(ref _LotItemId03, value); - } - private int _LotItemId03; - - [ParamField(0xC, ParamType.I32)] - public int LotItemId04 - { - get => _LotItemId04; - set => WriteParamField(ref _LotItemId04, value); - } - private int _LotItemId04; - - [ParamField(0x10, ParamType.I32)] - public int LotItemId05 - { - get => _LotItemId05; - set => WriteParamField(ref _LotItemId05, value); - } - private int _LotItemId05; - - [ParamField(0x14, ParamType.I32)] - public int LotItemId06 - { - get => _LotItemId06; - set => WriteParamField(ref _LotItemId06, value); - } - private int _LotItemId06; - - [ParamField(0x18, ParamType.I32)] - public int LotItemId07 - { - get => _LotItemId07; - set => WriteParamField(ref _LotItemId07, value); - } - private int _LotItemId07; - - [ParamField(0x1C, ParamType.I32)] - public int LotItemId08 - { - get => _LotItemId08; - set => WriteParamField(ref _LotItemId08, value); - } - private int _LotItemId08; - - [ParamField(0x20, ParamType.I32)] - public int LotItemCategory01 - { - get => _LotItemCategory01; - set => WriteParamField(ref _LotItemCategory01, value); - } - private int _LotItemCategory01; - - [ParamField(0x24, ParamType.I32)] - public int LotItemCategory02 - { - get => _LotItemCategory02; - set => WriteParamField(ref _LotItemCategory02, value); - } - private int _LotItemCategory02; - - [ParamField(0x28, ParamType.I32)] - public int LotItemCategory03 - { - get => _LotItemCategory03; - set => WriteParamField(ref _LotItemCategory03, value); - } - private int _LotItemCategory03; - - [ParamField(0x2C, ParamType.I32)] - public int LotItemCategory04 - { - get => _LotItemCategory04; - set => WriteParamField(ref _LotItemCategory04, value); - } - private int _LotItemCategory04; - - [ParamField(0x30, ParamType.I32)] - public int LotItemCategory05 - { - get => _LotItemCategory05; - set => WriteParamField(ref _LotItemCategory05, value); - } - private int _LotItemCategory05; - - [ParamField(0x34, ParamType.I32)] - public int LotItemCategory06 - { - get => _LotItemCategory06; - set => WriteParamField(ref _LotItemCategory06, value); - } - private int _LotItemCategory06; - - [ParamField(0x38, ParamType.I32)] - public int LotItemCategory07 - { - get => _LotItemCategory07; - set => WriteParamField(ref _LotItemCategory07, value); - } - private int _LotItemCategory07; - - [ParamField(0x3C, ParamType.I32)] - public int LotItemCategory08 - { - get => _LotItemCategory08; - set => WriteParamField(ref _LotItemCategory08, value); - } - private int _LotItemCategory08; - - [ParamField(0x40, ParamType.U16)] - public ushort LotItemBasePoint01 - { - get => _LotItemBasePoint01; - set => WriteParamField(ref _LotItemBasePoint01, value); - } - private ushort _LotItemBasePoint01; - - [ParamField(0x42, ParamType.U16)] - public ushort LotItemBasePoint02 - { - get => _LotItemBasePoint02; - set => WriteParamField(ref _LotItemBasePoint02, value); - } - private ushort _LotItemBasePoint02; - - [ParamField(0x44, ParamType.U16)] - public ushort LotItemBasePoint03 - { - get => _LotItemBasePoint03; - set => WriteParamField(ref _LotItemBasePoint03, value); - } - private ushort _LotItemBasePoint03; - - [ParamField(0x46, ParamType.U16)] - public ushort LotItemBasePoint04 - { - get => _LotItemBasePoint04; - set => WriteParamField(ref _LotItemBasePoint04, value); - } - private ushort _LotItemBasePoint04; - - [ParamField(0x48, ParamType.U16)] - public ushort LotItemBasePoint05 - { - get => _LotItemBasePoint05; - set => WriteParamField(ref _LotItemBasePoint05, value); - } - private ushort _LotItemBasePoint05; - - [ParamField(0x4A, ParamType.U16)] - public ushort LotItemBasePoint06 - { - get => _LotItemBasePoint06; - set => WriteParamField(ref _LotItemBasePoint06, value); - } - private ushort _LotItemBasePoint06; - - [ParamField(0x4C, ParamType.U16)] - public ushort LotItemBasePoint07 - { - get => _LotItemBasePoint07; - set => WriteParamField(ref _LotItemBasePoint07, value); - } - private ushort _LotItemBasePoint07; - - [ParamField(0x4E, ParamType.U16)] - public ushort LotItemBasePoint08 - { - get => _LotItemBasePoint08; - set => WriteParamField(ref _LotItemBasePoint08, value); - } - private ushort _LotItemBasePoint08; - - [ParamField(0x50, ParamType.U16)] - public ushort CumulateLotPoint01 - { - get => _CumulateLotPoint01; - set => WriteParamField(ref _CumulateLotPoint01, value); - } - private ushort _CumulateLotPoint01; - - [ParamField(0x52, ParamType.U16)] - public ushort CumulateLotPoint02 - { - get => _CumulateLotPoint02; - set => WriteParamField(ref _CumulateLotPoint02, value); - } - private ushort _CumulateLotPoint02; - - [ParamField(0x54, ParamType.U16)] - public ushort CumulateLotPoint03 - { - get => _CumulateLotPoint03; - set => WriteParamField(ref _CumulateLotPoint03, value); - } - private ushort _CumulateLotPoint03; - - [ParamField(0x56, ParamType.U16)] - public ushort CumulateLotPoint04 - { - get => _CumulateLotPoint04; - set => WriteParamField(ref _CumulateLotPoint04, value); - } - private ushort _CumulateLotPoint04; - - [ParamField(0x58, ParamType.U16)] - public ushort CumulateLotPoint05 - { - get => _CumulateLotPoint05; - set => WriteParamField(ref _CumulateLotPoint05, value); - } - private ushort _CumulateLotPoint05; - - [ParamField(0x5A, ParamType.U16)] - public ushort CumulateLotPoint06 - { - get => _CumulateLotPoint06; - set => WriteParamField(ref _CumulateLotPoint06, value); - } - private ushort _CumulateLotPoint06; - - [ParamField(0x5C, ParamType.U16)] - public ushort CumulateLotPoint07 - { - get => _CumulateLotPoint07; - set => WriteParamField(ref _CumulateLotPoint07, value); - } - private ushort _CumulateLotPoint07; - - [ParamField(0x5E, ParamType.U16)] - public ushort CumulateLotPoint08 - { - get => _CumulateLotPoint08; - set => WriteParamField(ref _CumulateLotPoint08, value); - } - private ushort _CumulateLotPoint08; - - [ParamField(0x60, ParamType.I32)] - public int GetItemFlagId01 - { - get => _GetItemFlagId01; - set => WriteParamField(ref _GetItemFlagId01, value); - } - private int _GetItemFlagId01; - - [ParamField(0x64, ParamType.I32)] - public int GetItemFlagId02 - { - get => _GetItemFlagId02; - set => WriteParamField(ref _GetItemFlagId02, value); - } - private int _GetItemFlagId02; - - [ParamField(0x68, ParamType.I32)] - public int GetItemFlagId03 - { - get => _GetItemFlagId03; - set => WriteParamField(ref _GetItemFlagId03, value); - } - private int _GetItemFlagId03; - - [ParamField(0x6C, ParamType.I32)] - public int GetItemFlagId04 - { - get => _GetItemFlagId04; - set => WriteParamField(ref _GetItemFlagId04, value); - } - private int _GetItemFlagId04; - - [ParamField(0x70, ParamType.I32)] - public int GetItemFlagId05 - { - get => _GetItemFlagId05; - set => WriteParamField(ref _GetItemFlagId05, value); - } - private int _GetItemFlagId05; - - [ParamField(0x74, ParamType.I32)] - public int GetItemFlagId06 - { - get => _GetItemFlagId06; - set => WriteParamField(ref _GetItemFlagId06, value); - } - private int _GetItemFlagId06; - - [ParamField(0x78, ParamType.I32)] - public int GetItemFlagId07 - { - get => _GetItemFlagId07; - set => WriteParamField(ref _GetItemFlagId07, value); - } - private int _GetItemFlagId07; - - [ParamField(0x7C, ParamType.I32)] - public int GetItemFlagId08 - { - get => _GetItemFlagId08; - set => WriteParamField(ref _GetItemFlagId08, value); - } - private int _GetItemFlagId08; - - [ParamField(0x80, ParamType.I32)] - public int GetItemFlagId - { - get => _GetItemFlagId; - set => WriteParamField(ref _GetItemFlagId, value); - } - private int _GetItemFlagId; - - [ParamField(0x84, ParamType.I32)] - public int CumulateNumFlagId - { - get => _CumulateNumFlagId; - set => WriteParamField(ref _CumulateNumFlagId, value); - } - private int _CumulateNumFlagId; - - [ParamField(0x88, ParamType.U8)] - public byte CumulateNumMax - { - get => _CumulateNumMax; - set => WriteParamField(ref _CumulateNumMax, value); - } - private byte _CumulateNumMax; - - [ParamField(0x89, ParamType.U8)] - public byte LotItem_Rarity - { - get => _LotItem_Rarity; - set => WriteParamField(ref _LotItem_Rarity, value); - } - private byte _LotItem_Rarity; - - [ParamField(0x8A, ParamType.U8)] - public byte LotItemNum01 - { - get => _LotItemNum01; - set => WriteParamField(ref _LotItemNum01, value); - } - private byte _LotItemNum01; - - [ParamField(0x8B, ParamType.U8)] - public byte LotItemNum02 - { - get => _LotItemNum02; - set => WriteParamField(ref _LotItemNum02, value); - } - private byte _LotItemNum02; - - [ParamField(0x8C, ParamType.U8)] - public byte LotItemNum03 - { - get => _LotItemNum03; - set => WriteParamField(ref _LotItemNum03, value); - } - private byte _LotItemNum03; - - [ParamField(0x8D, ParamType.U8)] - public byte LotItemNum04 - { - get => _LotItemNum04; - set => WriteParamField(ref _LotItemNum04, value); - } - private byte _LotItemNum04; - - [ParamField(0x8E, ParamType.U8)] - public byte LotItemNum05 - { - get => _LotItemNum05; - set => WriteParamField(ref _LotItemNum05, value); - } - private byte _LotItemNum05; - - [ParamField(0x8F, ParamType.U8)] - public byte LotItemNum06 - { - get => _LotItemNum06; - set => WriteParamField(ref _LotItemNum06, value); - } - private byte _LotItemNum06; - - [ParamField(0x90, ParamType.U8)] - public byte LotItemNum07 - { - get => _LotItemNum07; - set => WriteParamField(ref _LotItemNum07, value); - } - private byte _LotItemNum07; - - [ParamField(0x91, ParamType.U8)] - public byte LotItemNum08 - { - get => _LotItemNum08; - set => WriteParamField(ref _LotItemNum08, value); - } - private byte _LotItemNum08; - - #region BitField EnableLuck01Bitfield ============================================================================== - - [ParamField(0x92, ParamType.U16)] - public ushort EnableLuck01Bitfield - { - get => _EnableLuck01Bitfield; - set => WriteParamField(ref _EnableLuck01Bitfield, value); - } - private ushort _EnableLuck01Bitfield; - - [ParamBitField(nameof(EnableLuck01Bitfield), bits: 1, bitsOffset: 0)] - public ushort EnableLuck01 - { - get => GetbitfieldValue(_EnableLuck01Bitfield); - set => SetBitfieldValue(ref _EnableLuck01Bitfield, value); - } - - [ParamBitField(nameof(EnableLuck01Bitfield), bits: 1, bitsOffset: 1)] - public ushort EnableLuck02 - { - get => GetbitfieldValue(_EnableLuck01Bitfield); - set => SetBitfieldValue(ref _EnableLuck01Bitfield, value); - } - - [ParamBitField(nameof(EnableLuck01Bitfield), bits: 1, bitsOffset: 2)] - public ushort EnableLuck03 - { - get => GetbitfieldValue(_EnableLuck01Bitfield); - set => SetBitfieldValue(ref _EnableLuck01Bitfield, value); - } - - [ParamBitField(nameof(EnableLuck01Bitfield), bits: 1, bitsOffset: 3)] - public ushort EnableLuck04 - { - get => GetbitfieldValue(_EnableLuck01Bitfield); - set => SetBitfieldValue(ref _EnableLuck01Bitfield, value); - } - - [ParamBitField(nameof(EnableLuck01Bitfield), bits: 1, bitsOffset: 4)] - public ushort EnableLuck05 - { - get => GetbitfieldValue(_EnableLuck01Bitfield); - set => SetBitfieldValue(ref _EnableLuck01Bitfield, value); - } - - [ParamBitField(nameof(EnableLuck01Bitfield), bits: 1, bitsOffset: 5)] - public ushort EnableLuck06 - { - get => GetbitfieldValue(_EnableLuck01Bitfield); - set => SetBitfieldValue(ref _EnableLuck01Bitfield, value); - } - - [ParamBitField(nameof(EnableLuck01Bitfield), bits: 1, bitsOffset: 6)] - public ushort EnableLuck07 - { - get => GetbitfieldValue(_EnableLuck01Bitfield); - set => SetBitfieldValue(ref _EnableLuck01Bitfield, value); - } - - [ParamBitField(nameof(EnableLuck01Bitfield), bits: 1, bitsOffset: 7)] - public ushort EnableLuck08 - { - get => GetbitfieldValue(_EnableLuck01Bitfield); - set => SetBitfieldValue(ref _EnableLuck01Bitfield, value); - } - - [ParamBitField(nameof(EnableLuck01Bitfield), bits: 1, bitsOffset: 8)] - public ushort CumulateReset01 - { - get => GetbitfieldValue(_EnableLuck01Bitfield); - set => SetBitfieldValue(ref _EnableLuck01Bitfield, value); - } - - [ParamBitField(nameof(EnableLuck01Bitfield), bits: 1, bitsOffset: 9)] - public ushort CumulateReset02 - { - get => GetbitfieldValue(_EnableLuck01Bitfield); - set => SetBitfieldValue(ref _EnableLuck01Bitfield, value); - } - - [ParamBitField(nameof(EnableLuck01Bitfield), bits: 1, bitsOffset: 10)] - public ushort CumulateReset03 - { - get => GetbitfieldValue(_EnableLuck01Bitfield); - set => SetBitfieldValue(ref _EnableLuck01Bitfield, value); - } - - [ParamBitField(nameof(EnableLuck01Bitfield), bits: 1, bitsOffset: 11)] - public ushort CumulateReset04 - { - get => GetbitfieldValue(_EnableLuck01Bitfield); - set => SetBitfieldValue(ref _EnableLuck01Bitfield, value); - } - - [ParamBitField(nameof(EnableLuck01Bitfield), bits: 1, bitsOffset: 12)] - public ushort CumulateReset05 - { - get => GetbitfieldValue(_EnableLuck01Bitfield); - set => SetBitfieldValue(ref _EnableLuck01Bitfield, value); - } - - [ParamBitField(nameof(EnableLuck01Bitfield), bits: 1, bitsOffset: 13)] - public ushort CumulateReset06 - { - get => GetbitfieldValue(_EnableLuck01Bitfield); - set => SetBitfieldValue(ref _EnableLuck01Bitfield, value); - } - - [ParamBitField(nameof(EnableLuck01Bitfield), bits: 1, bitsOffset: 14)] - public ushort CumulateReset07 - { - get => GetbitfieldValue(_EnableLuck01Bitfield); - set => SetBitfieldValue(ref _EnableLuck01Bitfield, value); - } - - [ParamBitField(nameof(EnableLuck01Bitfield), bits: 1, bitsOffset: 15)] - public ushort CumulateReset08 - { - get => GetbitfieldValue(_EnableLuck01Bitfield); - set => SetBitfieldValue(ref _EnableLuck01Bitfield, value); - } - - #endregion BitField EnableLuck01Bitfield + public ItemLotParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} + + [ParamField(0x0, ParamType.I32)] + public int LotItemId01 + { + get => _LotItemId01; + set => WriteParamField(ref _LotItemId01, value); + } + private int _LotItemId01; + + [ParamField(0x4, ParamType.I32)] + public int LotItemId02 + { + get => _LotItemId02; + set => WriteParamField(ref _LotItemId02, value); + } + private int _LotItemId02; + [ParamField(0x8, ParamType.I32)] + public int LotItemId03 + { + get => _LotItemId03; + set => WriteParamField(ref _LotItemId03, value); + } + private int _LotItemId03; + + [ParamField(0xC, ParamType.I32)] + public int LotItemId04 + { + get => _LotItemId04; + set => WriteParamField(ref _LotItemId04, value); + } + private int _LotItemId04; + + [ParamField(0x10, ParamType.I32)] + public int LotItemId05 + { + get => _LotItemId05; + set => WriteParamField(ref _LotItemId05, value); + } + private int _LotItemId05; + + [ParamField(0x14, ParamType.I32)] + public int LotItemId06 + { + get => _LotItemId06; + set => WriteParamField(ref _LotItemId06, value); + } + private int _LotItemId06; + + [ParamField(0x18, ParamType.I32)] + public int LotItemId07 + { + get => _LotItemId07; + set => WriteParamField(ref _LotItemId07, value); + } + private int _LotItemId07; + + [ParamField(0x1C, ParamType.I32)] + public int LotItemId08 + { + get => _LotItemId08; + set => WriteParamField(ref _LotItemId08, value); + } + private int _LotItemId08; + + [ParamField(0x20, ParamType.I32)] + public int LotItemCategory01 + { + get => _LotItemCategory01; + set => WriteParamField(ref _LotItemCategory01, value); + } + private int _LotItemCategory01; + + [ParamField(0x24, ParamType.I32)] + public int LotItemCategory02 + { + get => _LotItemCategory02; + set => WriteParamField(ref _LotItemCategory02, value); + } + private int _LotItemCategory02; + + [ParamField(0x28, ParamType.I32)] + public int LotItemCategory03 + { + get => _LotItemCategory03; + set => WriteParamField(ref _LotItemCategory03, value); + } + private int _LotItemCategory03; + + [ParamField(0x2C, ParamType.I32)] + public int LotItemCategory04 + { + get => _LotItemCategory04; + set => WriteParamField(ref _LotItemCategory04, value); + } + private int _LotItemCategory04; + + [ParamField(0x30, ParamType.I32)] + public int LotItemCategory05 + { + get => _LotItemCategory05; + set => WriteParamField(ref _LotItemCategory05, value); + } + private int _LotItemCategory05; + + [ParamField(0x34, ParamType.I32)] + public int LotItemCategory06 + { + get => _LotItemCategory06; + set => WriteParamField(ref _LotItemCategory06, value); + } + private int _LotItemCategory06; + + [ParamField(0x38, ParamType.I32)] + public int LotItemCategory07 + { + get => _LotItemCategory07; + set => WriteParamField(ref _LotItemCategory07, value); + } + private int _LotItemCategory07; + + [ParamField(0x3C, ParamType.I32)] + public int LotItemCategory08 + { + get => _LotItemCategory08; + set => WriteParamField(ref _LotItemCategory08, value); + } + private int _LotItemCategory08; + + [ParamField(0x40, ParamType.U16)] + public ushort LotItemBasePoint01 + { + get => _LotItemBasePoint01; + set => WriteParamField(ref _LotItemBasePoint01, value); + } + private ushort _LotItemBasePoint01; + + [ParamField(0x42, ParamType.U16)] + public ushort LotItemBasePoint02 + { + get => _LotItemBasePoint02; + set => WriteParamField(ref _LotItemBasePoint02, value); } + private ushort _LotItemBasePoint02; + + [ParamField(0x44, ParamType.U16)] + public ushort LotItemBasePoint03 + { + get => _LotItemBasePoint03; + set => WriteParamField(ref _LotItemBasePoint03, value); + } + private ushort _LotItemBasePoint03; + + [ParamField(0x46, ParamType.U16)] + public ushort LotItemBasePoint04 + { + get => _LotItemBasePoint04; + set => WriteParamField(ref _LotItemBasePoint04, value); + } + private ushort _LotItemBasePoint04; + + [ParamField(0x48, ParamType.U16)] + public ushort LotItemBasePoint05 + { + get => _LotItemBasePoint05; + set => WriteParamField(ref _LotItemBasePoint05, value); + } + private ushort _LotItemBasePoint05; + + [ParamField(0x4A, ParamType.U16)] + public ushort LotItemBasePoint06 + { + get => _LotItemBasePoint06; + set => WriteParamField(ref _LotItemBasePoint06, value); + } + private ushort _LotItemBasePoint06; + + [ParamField(0x4C, ParamType.U16)] + public ushort LotItemBasePoint07 + { + get => _LotItemBasePoint07; + set => WriteParamField(ref _LotItemBasePoint07, value); + } + private ushort _LotItemBasePoint07; + + [ParamField(0x4E, ParamType.U16)] + public ushort LotItemBasePoint08 + { + get => _LotItemBasePoint08; + set => WriteParamField(ref _LotItemBasePoint08, value); + } + private ushort _LotItemBasePoint08; + + [ParamField(0x50, ParamType.U16)] + public ushort CumulateLotPoint01 + { + get => _CumulateLotPoint01; + set => WriteParamField(ref _CumulateLotPoint01, value); + } + private ushort _CumulateLotPoint01; + + [ParamField(0x52, ParamType.U16)] + public ushort CumulateLotPoint02 + { + get => _CumulateLotPoint02; + set => WriteParamField(ref _CumulateLotPoint02, value); + } + private ushort _CumulateLotPoint02; + + [ParamField(0x54, ParamType.U16)] + public ushort CumulateLotPoint03 + { + get => _CumulateLotPoint03; + set => WriteParamField(ref _CumulateLotPoint03, value); + } + private ushort _CumulateLotPoint03; + + [ParamField(0x56, ParamType.U16)] + public ushort CumulateLotPoint04 + { + get => _CumulateLotPoint04; + set => WriteParamField(ref _CumulateLotPoint04, value); + } + private ushort _CumulateLotPoint04; + + [ParamField(0x58, ParamType.U16)] + public ushort CumulateLotPoint05 + { + get => _CumulateLotPoint05; + set => WriteParamField(ref _CumulateLotPoint05, value); + } + private ushort _CumulateLotPoint05; + + [ParamField(0x5A, ParamType.U16)] + public ushort CumulateLotPoint06 + { + get => _CumulateLotPoint06; + set => WriteParamField(ref _CumulateLotPoint06, value); + } + private ushort _CumulateLotPoint06; + + [ParamField(0x5C, ParamType.U16)] + public ushort CumulateLotPoint07 + { + get => _CumulateLotPoint07; + set => WriteParamField(ref _CumulateLotPoint07, value); + } + private ushort _CumulateLotPoint07; + + [ParamField(0x5E, ParamType.U16)] + public ushort CumulateLotPoint08 + { + get => _CumulateLotPoint08; + set => WriteParamField(ref _CumulateLotPoint08, value); + } + private ushort _CumulateLotPoint08; + + [ParamField(0x60, ParamType.I32)] + public int GetItemFlagId01 + { + get => _GetItemFlagId01; + set => WriteParamField(ref _GetItemFlagId01, value); + } + private int _GetItemFlagId01; + + [ParamField(0x64, ParamType.I32)] + public int GetItemFlagId02 + { + get => _GetItemFlagId02; + set => WriteParamField(ref _GetItemFlagId02, value); + } + private int _GetItemFlagId02; + + [ParamField(0x68, ParamType.I32)] + public int GetItemFlagId03 + { + get => _GetItemFlagId03; + set => WriteParamField(ref _GetItemFlagId03, value); + } + private int _GetItemFlagId03; + + [ParamField(0x6C, ParamType.I32)] + public int GetItemFlagId04 + { + get => _GetItemFlagId04; + set => WriteParamField(ref _GetItemFlagId04, value); + } + private int _GetItemFlagId04; + + [ParamField(0x70, ParamType.I32)] + public int GetItemFlagId05 + { + get => _GetItemFlagId05; + set => WriteParamField(ref _GetItemFlagId05, value); + } + private int _GetItemFlagId05; + + [ParamField(0x74, ParamType.I32)] + public int GetItemFlagId06 + { + get => _GetItemFlagId06; + set => WriteParamField(ref _GetItemFlagId06, value); + } + private int _GetItemFlagId06; + + [ParamField(0x78, ParamType.I32)] + public int GetItemFlagId07 + { + get => _GetItemFlagId07; + set => WriteParamField(ref _GetItemFlagId07, value); + } + private int _GetItemFlagId07; + + [ParamField(0x7C, ParamType.I32)] + public int GetItemFlagId08 + { + get => _GetItemFlagId08; + set => WriteParamField(ref _GetItemFlagId08, value); + } + private int _GetItemFlagId08; + + [ParamField(0x80, ParamType.I32)] + public int GetItemFlagId + { + get => _GetItemFlagId; + set => WriteParamField(ref _GetItemFlagId, value); + } + private int _GetItemFlagId; + + [ParamField(0x84, ParamType.I32)] + public int CumulateNumFlagId + { + get => _CumulateNumFlagId; + set => WriteParamField(ref _CumulateNumFlagId, value); + } + private int _CumulateNumFlagId; + + [ParamField(0x88, ParamType.U8)] + public byte CumulateNumMax + { + get => _CumulateNumMax; + set => WriteParamField(ref _CumulateNumMax, value); + } + private byte _CumulateNumMax; + + [ParamField(0x89, ParamType.U8)] + public byte LotItem_Rarity + { + get => _LotItem_Rarity; + set => WriteParamField(ref _LotItem_Rarity, value); + } + private byte _LotItem_Rarity; + + [ParamField(0x8A, ParamType.U8)] + public byte LotItemNum01 + { + get => _LotItemNum01; + set => WriteParamField(ref _LotItemNum01, value); + } + private byte _LotItemNum01; + + [ParamField(0x8B, ParamType.U8)] + public byte LotItemNum02 + { + get => _LotItemNum02; + set => WriteParamField(ref _LotItemNum02, value); + } + private byte _LotItemNum02; + + [ParamField(0x8C, ParamType.U8)] + public byte LotItemNum03 + { + get => _LotItemNum03; + set => WriteParamField(ref _LotItemNum03, value); + } + private byte _LotItemNum03; + + [ParamField(0x8D, ParamType.U8)] + public byte LotItemNum04 + { + get => _LotItemNum04; + set => WriteParamField(ref _LotItemNum04, value); + } + private byte _LotItemNum04; + + [ParamField(0x8E, ParamType.U8)] + public byte LotItemNum05 + { + get => _LotItemNum05; + set => WriteParamField(ref _LotItemNum05, value); + } + private byte _LotItemNum05; + + [ParamField(0x8F, ParamType.U8)] + public byte LotItemNum06 + { + get => _LotItemNum06; + set => WriteParamField(ref _LotItemNum06, value); + } + private byte _LotItemNum06; + + [ParamField(0x90, ParamType.U8)] + public byte LotItemNum07 + { + get => _LotItemNum07; + set => WriteParamField(ref _LotItemNum07, value); + } + private byte _LotItemNum07; + + [ParamField(0x91, ParamType.U8)] + public byte LotItemNum08 + { + get => _LotItemNum08; + set => WriteParamField(ref _LotItemNum08, value); + } + private byte _LotItemNum08; + + #region BitField EnableLuck01Bitfield ============================================================================== + + [ParamField(0x92, ParamType.U16)] + public ushort EnableLuck01Bitfield + { + get => _EnableLuck01Bitfield; + set => WriteParamField(ref _EnableLuck01Bitfield, value); + } + private ushort _EnableLuck01Bitfield; + + [ParamBitField(nameof(EnableLuck01Bitfield), bits: 1, bitsOffset: 0)] + public ushort EnableLuck01 + { + get => GetbitfieldValue(_EnableLuck01Bitfield); + set => SetBitfieldValue(ref _EnableLuck01Bitfield, value); + } + + [ParamBitField(nameof(EnableLuck01Bitfield), bits: 1, bitsOffset: 1)] + public ushort EnableLuck02 + { + get => GetbitfieldValue(_EnableLuck01Bitfield); + set => SetBitfieldValue(ref _EnableLuck01Bitfield, value); + } + + [ParamBitField(nameof(EnableLuck01Bitfield), bits: 1, bitsOffset: 2)] + public ushort EnableLuck03 + { + get => GetbitfieldValue(_EnableLuck01Bitfield); + set => SetBitfieldValue(ref _EnableLuck01Bitfield, value); + } + + [ParamBitField(nameof(EnableLuck01Bitfield), bits: 1, bitsOffset: 3)] + public ushort EnableLuck04 + { + get => GetbitfieldValue(_EnableLuck01Bitfield); + set => SetBitfieldValue(ref _EnableLuck01Bitfield, value); + } + + [ParamBitField(nameof(EnableLuck01Bitfield), bits: 1, bitsOffset: 4)] + public ushort EnableLuck05 + { + get => GetbitfieldValue(_EnableLuck01Bitfield); + set => SetBitfieldValue(ref _EnableLuck01Bitfield, value); + } + + [ParamBitField(nameof(EnableLuck01Bitfield), bits: 1, bitsOffset: 5)] + public ushort EnableLuck06 + { + get => GetbitfieldValue(_EnableLuck01Bitfield); + set => SetBitfieldValue(ref _EnableLuck01Bitfield, value); + } + + [ParamBitField(nameof(EnableLuck01Bitfield), bits: 1, bitsOffset: 6)] + public ushort EnableLuck07 + { + get => GetbitfieldValue(_EnableLuck01Bitfield); + set => SetBitfieldValue(ref _EnableLuck01Bitfield, value); + } + + [ParamBitField(nameof(EnableLuck01Bitfield), bits: 1, bitsOffset: 7)] + public ushort EnableLuck08 + { + get => GetbitfieldValue(_EnableLuck01Bitfield); + set => SetBitfieldValue(ref _EnableLuck01Bitfield, value); + } + + [ParamBitField(nameof(EnableLuck01Bitfield), bits: 1, bitsOffset: 8)] + public ushort CumulateReset01 + { + get => GetbitfieldValue(_EnableLuck01Bitfield); + set => SetBitfieldValue(ref _EnableLuck01Bitfield, value); + } + + [ParamBitField(nameof(EnableLuck01Bitfield), bits: 1, bitsOffset: 9)] + public ushort CumulateReset02 + { + get => GetbitfieldValue(_EnableLuck01Bitfield); + set => SetBitfieldValue(ref _EnableLuck01Bitfield, value); + } + + [ParamBitField(nameof(EnableLuck01Bitfield), bits: 1, bitsOffset: 10)] + public ushort CumulateReset03 + { + get => GetbitfieldValue(_EnableLuck01Bitfield); + set => SetBitfieldValue(ref _EnableLuck01Bitfield, value); + } + + [ParamBitField(nameof(EnableLuck01Bitfield), bits: 1, bitsOffset: 11)] + public ushort CumulateReset04 + { + get => GetbitfieldValue(_EnableLuck01Bitfield); + set => SetBitfieldValue(ref _EnableLuck01Bitfield, value); + } + + [ParamBitField(nameof(EnableLuck01Bitfield), bits: 1, bitsOffset: 12)] + public ushort CumulateReset05 + { + get => GetbitfieldValue(_EnableLuck01Bitfield); + set => SetBitfieldValue(ref _EnableLuck01Bitfield, value); + } + + [ParamBitField(nameof(EnableLuck01Bitfield), bits: 1, bitsOffset: 13)] + public ushort CumulateReset06 + { + get => GetbitfieldValue(_EnableLuck01Bitfield); + set => SetBitfieldValue(ref _EnableLuck01Bitfield, value); + } + + [ParamBitField(nameof(EnableLuck01Bitfield), bits: 1, bitsOffset: 14)] + public ushort CumulateReset07 + { + get => GetbitfieldValue(_EnableLuck01Bitfield); + set => SetBitfieldValue(ref _EnableLuck01Bitfield, value); + } + + [ParamBitField(nameof(EnableLuck01Bitfield), bits: 1, bitsOffset: 15)] + public ushort CumulateReset08 + { + get => GetbitfieldValue(_EnableLuck01Bitfield); + set => SetBitfieldValue(ref _EnableLuck01Bitfield, value); + } + + #endregion BitField EnableLuck01Bitfield + } diff --git a/src/SoulMemory/DarkSouls1/Parameters/KnockBackParam.cs b/src/SoulMemory/DarkSouls1/Parameters/KnockBackParam.cs index d97e105..32133b3 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/KnockBackParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/KnockBackParam.cs @@ -18,260 +18,259 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters +namespace SoulMemory.DarkSouls1.Parameters; + +[ExcludeFromCodeCoverage] +public class KnockBackParam : BaseParam { - [ExcludeFromCodeCoverage] - public class KnockBackParam : BaseParam + public KnockBackParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} + + [ParamField(0x0, ParamType.F32)] + public float Damage_Min_ContTime + { + get => _Damage_Min_ContTime; + set => WriteParamField(ref _Damage_Min_ContTime, value); + } + private float _Damage_Min_ContTime; + + [ParamField(0x4, ParamType.F32)] + public float Damage_S_ContTime + { + get => _Damage_S_ContTime; + set => WriteParamField(ref _Damage_S_ContTime, value); + } + private float _Damage_S_ContTime; + + [ParamField(0x8, ParamType.F32)] + public float Damage_M_ContTime + { + get => _Damage_M_ContTime; + set => WriteParamField(ref _Damage_M_ContTime, value); + } + private float _Damage_M_ContTime; + + [ParamField(0xC, ParamType.F32)] + public float Damage_L_ContTime + { + get => _Damage_L_ContTime; + set => WriteParamField(ref _Damage_L_ContTime, value); + } + private float _Damage_L_ContTime; + + [ParamField(0x10, ParamType.F32)] + public float Damage_BlowS_ContTime + { + get => _Damage_BlowS_ContTime; + set => WriteParamField(ref _Damage_BlowS_ContTime, value); + } + private float _Damage_BlowS_ContTime; + + [ParamField(0x14, ParamType.F32)] + public float Damage_BlowM_ContTime + { + get => _Damage_BlowM_ContTime; + set => WriteParamField(ref _Damage_BlowM_ContTime, value); + } + private float _Damage_BlowM_ContTime; + + [ParamField(0x18, ParamType.F32)] + public float Damage_Strike_ContTime + { + get => _Damage_Strike_ContTime; + set => WriteParamField(ref _Damage_Strike_ContTime, value); + } + private float _Damage_Strike_ContTime; + + [ParamField(0x1C, ParamType.F32)] + public float Damage_Uppercut_ContTime + { + get => _Damage_Uppercut_ContTime; + set => WriteParamField(ref _Damage_Uppercut_ContTime, value); + } + private float _Damage_Uppercut_ContTime; + + [ParamField(0x20, ParamType.F32)] + public float Damage_Push_ContTime + { + get => _Damage_Push_ContTime; + set => WriteParamField(ref _Damage_Push_ContTime, value); + } + private float _Damage_Push_ContTime; + + [ParamField(0x24, ParamType.F32)] + public float Damage_Breath_ContTime + { + get => _Damage_Breath_ContTime; + set => WriteParamField(ref _Damage_Breath_ContTime, value); + } + private float _Damage_Breath_ContTime; + + [ParamField(0x28, ParamType.F32)] + public float Damage_HeadShot_ContTime + { + get => _Damage_HeadShot_ContTime; + set => WriteParamField(ref _Damage_HeadShot_ContTime, value); + } + private float _Damage_HeadShot_ContTime; + + [ParamField(0x2C, ParamType.F32)] + public float Guard_S_ContTime + { + get => _Guard_S_ContTime; + set => WriteParamField(ref _Guard_S_ContTime, value); + } + private float _Guard_S_ContTime; + + [ParamField(0x30, ParamType.F32)] + public float Guard_L_ContTime + { + get => _Guard_L_ContTime; + set => WriteParamField(ref _Guard_L_ContTime, value); + } + private float _Guard_L_ContTime; + + [ParamField(0x34, ParamType.F32)] + public float Guard_LL_ContTime + { + get => _Guard_LL_ContTime; + set => WriteParamField(ref _Guard_LL_ContTime, value); + } + private float _Guard_LL_ContTime; + + [ParamField(0x38, ParamType.F32)] + public float GuardBrake_ContTime + { + get => _GuardBrake_ContTime; + set => WriteParamField(ref _GuardBrake_ContTime, value); + } + private float _GuardBrake_ContTime; + + [ParamField(0x3C, ParamType.F32)] + public float Damage_Min_DecTime + { + get => _Damage_Min_DecTime; + set => WriteParamField(ref _Damage_Min_DecTime, value); + } + private float _Damage_Min_DecTime; + + [ParamField(0x40, ParamType.F32)] + public float Damage_S_DecTime + { + get => _Damage_S_DecTime; + set => WriteParamField(ref _Damage_S_DecTime, value); + } + private float _Damage_S_DecTime; + + [ParamField(0x44, ParamType.F32)] + public float Damage_M_DecTime + { + get => _Damage_M_DecTime; + set => WriteParamField(ref _Damage_M_DecTime, value); + } + private float _Damage_M_DecTime; + + [ParamField(0x48, ParamType.F32)] + public float Damage_L_DecTime + { + get => _Damage_L_DecTime; + set => WriteParamField(ref _Damage_L_DecTime, value); + } + private float _Damage_L_DecTime; + + [ParamField(0x4C, ParamType.F32)] + public float Damage_BlowS_DecTime + { + get => _Damage_BlowS_DecTime; + set => WriteParamField(ref _Damage_BlowS_DecTime, value); + } + private float _Damage_BlowS_DecTime; + + [ParamField(0x50, ParamType.F32)] + public float Damage_BlowM_DecTime + { + get => _Damage_BlowM_DecTime; + set => WriteParamField(ref _Damage_BlowM_DecTime, value); + } + private float _Damage_BlowM_DecTime; + + [ParamField(0x54, ParamType.F32)] + public float Damage_Strike_DecTime + { + get => _Damage_Strike_DecTime; + set => WriteParamField(ref _Damage_Strike_DecTime, value); + } + private float _Damage_Strike_DecTime; + + [ParamField(0x58, ParamType.F32)] + public float Damage_Uppercut_DecTime + { + get => _Damage_Uppercut_DecTime; + set => WriteParamField(ref _Damage_Uppercut_DecTime, value); + } + private float _Damage_Uppercut_DecTime; + + [ParamField(0x5C, ParamType.F32)] + public float Damage_Push_DecTime + { + get => _Damage_Push_DecTime; + set => WriteParamField(ref _Damage_Push_DecTime, value); + } + private float _Damage_Push_DecTime; + + [ParamField(0x60, ParamType.F32)] + public float Damage_Breath_DecTime + { + get => _Damage_Breath_DecTime; + set => WriteParamField(ref _Damage_Breath_DecTime, value); + } + private float _Damage_Breath_DecTime; + + [ParamField(0x64, ParamType.F32)] + public float Damage_HeadShot_DecTime { - public KnockBackParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - - [ParamField(0x0, ParamType.F32)] - public float Damage_Min_ContTime - { - get => _Damage_Min_ContTime; - set => WriteParamField(ref _Damage_Min_ContTime, value); - } - private float _Damage_Min_ContTime; - - [ParamField(0x4, ParamType.F32)] - public float Damage_S_ContTime - { - get => _Damage_S_ContTime; - set => WriteParamField(ref _Damage_S_ContTime, value); - } - private float _Damage_S_ContTime; - - [ParamField(0x8, ParamType.F32)] - public float Damage_M_ContTime - { - get => _Damage_M_ContTime; - set => WriteParamField(ref _Damage_M_ContTime, value); - } - private float _Damage_M_ContTime; - - [ParamField(0xC, ParamType.F32)] - public float Damage_L_ContTime - { - get => _Damage_L_ContTime; - set => WriteParamField(ref _Damage_L_ContTime, value); - } - private float _Damage_L_ContTime; - - [ParamField(0x10, ParamType.F32)] - public float Damage_BlowS_ContTime - { - get => _Damage_BlowS_ContTime; - set => WriteParamField(ref _Damage_BlowS_ContTime, value); - } - private float _Damage_BlowS_ContTime; - - [ParamField(0x14, ParamType.F32)] - public float Damage_BlowM_ContTime - { - get => _Damage_BlowM_ContTime; - set => WriteParamField(ref _Damage_BlowM_ContTime, value); - } - private float _Damage_BlowM_ContTime; - - [ParamField(0x18, ParamType.F32)] - public float Damage_Strike_ContTime - { - get => _Damage_Strike_ContTime; - set => WriteParamField(ref _Damage_Strike_ContTime, value); - } - private float _Damage_Strike_ContTime; - - [ParamField(0x1C, ParamType.F32)] - public float Damage_Uppercut_ContTime - { - get => _Damage_Uppercut_ContTime; - set => WriteParamField(ref _Damage_Uppercut_ContTime, value); - } - private float _Damage_Uppercut_ContTime; - - [ParamField(0x20, ParamType.F32)] - public float Damage_Push_ContTime - { - get => _Damage_Push_ContTime; - set => WriteParamField(ref _Damage_Push_ContTime, value); - } - private float _Damage_Push_ContTime; - - [ParamField(0x24, ParamType.F32)] - public float Damage_Breath_ContTime - { - get => _Damage_Breath_ContTime; - set => WriteParamField(ref _Damage_Breath_ContTime, value); - } - private float _Damage_Breath_ContTime; - - [ParamField(0x28, ParamType.F32)] - public float Damage_HeadShot_ContTime - { - get => _Damage_HeadShot_ContTime; - set => WriteParamField(ref _Damage_HeadShot_ContTime, value); - } - private float _Damage_HeadShot_ContTime; - - [ParamField(0x2C, ParamType.F32)] - public float Guard_S_ContTime - { - get => _Guard_S_ContTime; - set => WriteParamField(ref _Guard_S_ContTime, value); - } - private float _Guard_S_ContTime; - - [ParamField(0x30, ParamType.F32)] - public float Guard_L_ContTime - { - get => _Guard_L_ContTime; - set => WriteParamField(ref _Guard_L_ContTime, value); - } - private float _Guard_L_ContTime; - - [ParamField(0x34, ParamType.F32)] - public float Guard_LL_ContTime - { - get => _Guard_LL_ContTime; - set => WriteParamField(ref _Guard_LL_ContTime, value); - } - private float _Guard_LL_ContTime; - - [ParamField(0x38, ParamType.F32)] - public float GuardBrake_ContTime - { - get => _GuardBrake_ContTime; - set => WriteParamField(ref _GuardBrake_ContTime, value); - } - private float _GuardBrake_ContTime; - - [ParamField(0x3C, ParamType.F32)] - public float Damage_Min_DecTime - { - get => _Damage_Min_DecTime; - set => WriteParamField(ref _Damage_Min_DecTime, value); - } - private float _Damage_Min_DecTime; - - [ParamField(0x40, ParamType.F32)] - public float Damage_S_DecTime - { - get => _Damage_S_DecTime; - set => WriteParamField(ref _Damage_S_DecTime, value); - } - private float _Damage_S_DecTime; - - [ParamField(0x44, ParamType.F32)] - public float Damage_M_DecTime - { - get => _Damage_M_DecTime; - set => WriteParamField(ref _Damage_M_DecTime, value); - } - private float _Damage_M_DecTime; - - [ParamField(0x48, ParamType.F32)] - public float Damage_L_DecTime - { - get => _Damage_L_DecTime; - set => WriteParamField(ref _Damage_L_DecTime, value); - } - private float _Damage_L_DecTime; - - [ParamField(0x4C, ParamType.F32)] - public float Damage_BlowS_DecTime - { - get => _Damage_BlowS_DecTime; - set => WriteParamField(ref _Damage_BlowS_DecTime, value); - } - private float _Damage_BlowS_DecTime; - - [ParamField(0x50, ParamType.F32)] - public float Damage_BlowM_DecTime - { - get => _Damage_BlowM_DecTime; - set => WriteParamField(ref _Damage_BlowM_DecTime, value); - } - private float _Damage_BlowM_DecTime; - - [ParamField(0x54, ParamType.F32)] - public float Damage_Strike_DecTime - { - get => _Damage_Strike_DecTime; - set => WriteParamField(ref _Damage_Strike_DecTime, value); - } - private float _Damage_Strike_DecTime; - - [ParamField(0x58, ParamType.F32)] - public float Damage_Uppercut_DecTime - { - get => _Damage_Uppercut_DecTime; - set => WriteParamField(ref _Damage_Uppercut_DecTime, value); - } - private float _Damage_Uppercut_DecTime; - - [ParamField(0x5C, ParamType.F32)] - public float Damage_Push_DecTime - { - get => _Damage_Push_DecTime; - set => WriteParamField(ref _Damage_Push_DecTime, value); - } - private float _Damage_Push_DecTime; - - [ParamField(0x60, ParamType.F32)] - public float Damage_Breath_DecTime - { - get => _Damage_Breath_DecTime; - set => WriteParamField(ref _Damage_Breath_DecTime, value); - } - private float _Damage_Breath_DecTime; - - [ParamField(0x64, ParamType.F32)] - public float Damage_HeadShot_DecTime - { - get => _Damage_HeadShot_DecTime; - set => WriteParamField(ref _Damage_HeadShot_DecTime, value); - } - private float _Damage_HeadShot_DecTime; - - [ParamField(0x68, ParamType.F32)] - public float Guard_S_DecTime - { - get => _Guard_S_DecTime; - set => WriteParamField(ref _Guard_S_DecTime, value); - } - private float _Guard_S_DecTime; - - [ParamField(0x6C, ParamType.F32)] - public float Guard_L_DecTime - { - get => _Guard_L_DecTime; - set => WriteParamField(ref _Guard_L_DecTime, value); - } - private float _Guard_L_DecTime; - - [ParamField(0x70, ParamType.F32)] - public float Guard_LL_DecTime - { - get => _Guard_LL_DecTime; - set => WriteParamField(ref _Guard_LL_DecTime, value); - } - private float _Guard_LL_DecTime; - - [ParamField(0x74, ParamType.F32)] - public float GuardBrake_DecTime - { - get => _GuardBrake_DecTime; - set => WriteParamField(ref _GuardBrake_DecTime, value); - } - private float _GuardBrake_DecTime; - - [ParamField(0x78, ParamType.Dummy8, 8)] - public byte[] Pad - { - get => _Pad; - set => WriteParamField(ref _Pad, value); - } - private byte[] _Pad = null!; + get => _Damage_HeadShot_DecTime; + set => WriteParamField(ref _Damage_HeadShot_DecTime, value); + } + private float _Damage_HeadShot_DecTime; + [ParamField(0x68, ParamType.F32)] + public float Guard_S_DecTime + { + get => _Guard_S_DecTime; + set => WriteParamField(ref _Guard_S_DecTime, value); } + private float _Guard_S_DecTime; + + [ParamField(0x6C, ParamType.F32)] + public float Guard_L_DecTime + { + get => _Guard_L_DecTime; + set => WriteParamField(ref _Guard_L_DecTime, value); + } + private float _Guard_L_DecTime; + + [ParamField(0x70, ParamType.F32)] + public float Guard_LL_DecTime + { + get => _Guard_LL_DecTime; + set => WriteParamField(ref _Guard_LL_DecTime, value); + } + private float _Guard_LL_DecTime; + + [ParamField(0x74, ParamType.F32)] + public float GuardBrake_DecTime + { + get => _GuardBrake_DecTime; + set => WriteParamField(ref _GuardBrake_DecTime, value); + } + private float _GuardBrake_DecTime; + + [ParamField(0x78, ParamType.Dummy8, 8)] + public byte[] Pad + { + get => _Pad; + set => WriteParamField(ref _Pad, value); + } + private byte[] _Pad = null!; + } diff --git a/src/SoulMemory/DarkSouls1/Parameters/LensFlareBank.cs b/src/SoulMemory/DarkSouls1/Parameters/LensFlareBank.cs index 1c3ce4f..2b2fa21 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/LensFlareBank.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/LensFlareBank.cs @@ -18,92 +18,91 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters -{ - [ExcludeFromCodeCoverage] - public class LensFlareBank : BaseParam - { - public LensFlareBank(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} +namespace SoulMemory.DarkSouls1.Parameters; - [ParamField(0x0, ParamType.I8)] - public sbyte TexId - { - get => _TexId; - set => WriteParamField(ref _TexId, value); - } - private sbyte _TexId; +[ExcludeFromCodeCoverage] +public class LensFlareBank : BaseParam +{ + public LensFlareBank(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x1, ParamType.U8)] - public byte IsFlare - { - get => _IsFlare; - set => WriteParamField(ref _IsFlare, value); - } - private byte _IsFlare; + [ParamField(0x0, ParamType.I8)] + public sbyte TexId + { + get => _TexId; + set => WriteParamField(ref _TexId, value); + } + private sbyte _TexId; - [ParamField(0x2, ParamType.U8)] - public byte EnableRoll - { - get => _EnableRoll; - set => WriteParamField(ref _EnableRoll, value); - } - private byte _EnableRoll; + [ParamField(0x1, ParamType.U8)] + public byte IsFlare + { + get => _IsFlare; + set => WriteParamField(ref _IsFlare, value); + } + private byte _IsFlare; - [ParamField(0x3, ParamType.U8)] - public byte EnableScale - { - get => _EnableScale; - set => WriteParamField(ref _EnableScale, value); - } - private byte _EnableScale; + [ParamField(0x2, ParamType.U8)] + public byte EnableRoll + { + get => _EnableRoll; + set => WriteParamField(ref _EnableRoll, value); + } + private byte _EnableRoll; - [ParamField(0x4, ParamType.F32)] - public float LocateDistRate - { - get => _LocateDistRate; - set => WriteParamField(ref _LocateDistRate, value); - } - private float _LocateDistRate; + [ParamField(0x3, ParamType.U8)] + public byte EnableScale + { + get => _EnableScale; + set => WriteParamField(ref _EnableScale, value); + } + private byte _EnableScale; - [ParamField(0x8, ParamType.F32)] - public float TexScale - { - get => _TexScale; - set => WriteParamField(ref _TexScale, value); - } - private float _TexScale; + [ParamField(0x4, ParamType.F32)] + public float LocateDistRate + { + get => _LocateDistRate; + set => WriteParamField(ref _LocateDistRate, value); + } + private float _LocateDistRate; - [ParamField(0xC, ParamType.I16)] - public short ColR - { - get => _ColR; - set => WriteParamField(ref _ColR, value); - } - private short _ColR; + [ParamField(0x8, ParamType.F32)] + public float TexScale + { + get => _TexScale; + set => WriteParamField(ref _TexScale, value); + } + private float _TexScale; - [ParamField(0xE, ParamType.I16)] - public short ColG - { - get => _ColG; - set => WriteParamField(ref _ColG, value); - } - private short _ColG; + [ParamField(0xC, ParamType.I16)] + public short ColR + { + get => _ColR; + set => WriteParamField(ref _ColR, value); + } + private short _ColR; - [ParamField(0x10, ParamType.I16)] - public short ColB - { - get => _ColB; - set => WriteParamField(ref _ColB, value); - } - private short _ColB; + [ParamField(0xE, ParamType.I16)] + public short ColG + { + get => _ColG; + set => WriteParamField(ref _ColG, value); + } + private short _ColG; - [ParamField(0x12, ParamType.I16)] - public short ColA - { - get => _ColA; - set => WriteParamField(ref _ColA, value); - } - private short _ColA; + [ParamField(0x10, ParamType.I16)] + public short ColB + { + get => _ColB; + set => WriteParamField(ref _ColB, value); + } + private short _ColB; + [ParamField(0x12, ParamType.I16)] + public short ColA + { + get => _ColA; + set => WriteParamField(ref _ColA, value); } + private short _ColA; + } diff --git a/src/SoulMemory/DarkSouls1/Parameters/LensFlareExBank.cs b/src/SoulMemory/DarkSouls1/Parameters/LensFlareExBank.cs index ee4ee82..1052d94 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/LensFlareExBank.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/LensFlareExBank.cs @@ -18,68 +18,67 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters -{ - [ExcludeFromCodeCoverage] - public class LensFlareExBank : BaseParam - { - public LensFlareExBank(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} +namespace SoulMemory.DarkSouls1.Parameters; - [ParamField(0x0, ParamType.I16)] - public short LightDegRotX - { - get => _LightDegRotX; - set => WriteParamField(ref _LightDegRotX, value); - } - private short _LightDegRotX; +[ExcludeFromCodeCoverage] +public class LensFlareExBank : BaseParam +{ + public LensFlareExBank(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x2, ParamType.I16)] - public short LightDegRotY - { - get => _LightDegRotY; - set => WriteParamField(ref _LightDegRotY, value); - } - private short _LightDegRotY; + [ParamField(0x0, ParamType.I16)] + public short LightDegRotX + { + get => _LightDegRotX; + set => WriteParamField(ref _LightDegRotX, value); + } + private short _LightDegRotX; - [ParamField(0x4, ParamType.I16)] - public short ColR - { - get => _ColR; - set => WriteParamField(ref _ColR, value); - } - private short _ColR; + [ParamField(0x2, ParamType.I16)] + public short LightDegRotY + { + get => _LightDegRotY; + set => WriteParamField(ref _LightDegRotY, value); + } + private short _LightDegRotY; - [ParamField(0x6, ParamType.I16)] - public short ColG - { - get => _ColG; - set => WriteParamField(ref _ColG, value); - } - private short _ColG; + [ParamField(0x4, ParamType.I16)] + public short ColR + { + get => _ColR; + set => WriteParamField(ref _ColR, value); + } + private short _ColR; - [ParamField(0x8, ParamType.I16)] - public short ColB - { - get => _ColB; - set => WriteParamField(ref _ColB, value); - } - private short _ColB; + [ParamField(0x6, ParamType.I16)] + public short ColG + { + get => _ColG; + set => WriteParamField(ref _ColG, value); + } + private short _ColG; - [ParamField(0xA, ParamType.I16)] - public short ColA - { - get => _ColA; - set => WriteParamField(ref _ColA, value); - } - private short _ColA; + [ParamField(0x8, ParamType.I16)] + public short ColB + { + get => _ColB; + set => WriteParamField(ref _ColB, value); + } + private short _ColB; - [ParamField(0xC, ParamType.F32)] - public float LightDist - { - get => _LightDist; - set => WriteParamField(ref _LightDist, value); - } - private float _LightDist; + [ParamField(0xA, ParamType.I16)] + public short ColA + { + get => _ColA; + set => WriteParamField(ref _ColA, value); + } + private short _ColA; + [ParamField(0xC, ParamType.F32)] + public float LightDist + { + get => _LightDist; + set => WriteParamField(ref _LightDist, value); } + private float _LightDist; + } diff --git a/src/SoulMemory/DarkSouls1/Parameters/LevelSyncParam.cs b/src/SoulMemory/DarkSouls1/Parameters/LevelSyncParam.cs index 42bcbcd..cfb9e3c 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/LevelSyncParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/LevelSyncParam.cs @@ -18,796 +18,795 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters +namespace SoulMemory.DarkSouls1.Parameters; + +[ExcludeFromCodeCoverage] +public class LevelSyncParam : BaseParam { - [ExcludeFromCodeCoverage] - public class LevelSyncParam : BaseParam - { - public LevelSyncParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - - [ParamField(0x0, ParamType.I16)] - public short SCLUA - { - get => _SCLUA; - set => WriteParamField(ref _SCLUA, value); - } - private short _SCLUA; - - [ParamField(0x2, ParamType.I16)] - public short SDCLUR - { - get => _SDCLUR; - set => WriteParamField(ref _SDCLUR, value); - } - private short _SDCLUR; - - [ParamField(0x4, ParamType.I16)] - public short SDCWLM - { - get => _SDCWLM; - set => WriteParamField(ref _SDCWLM, value); - } - private short _SDCWLM; - - [ParamField(0x6, ParamType.U8)] - public byte MLWSUR - { - get => _MLWSUR; - set => WriteParamField(ref _MLWSUR, value); - } - private byte _MLWSUR; - - [ParamField(0x7, ParamType.U8)] - public byte MLWSUA - { - get => _MLWSUA; - set => WriteParamField(ref _MLWSUA, value); - } - private byte _MLWSUA; - - [ParamField(0x8, ParamType.U8)] - public byte MLRSUR - { - get => _MLRSUR; - set => WriteParamField(ref _MLRSUR, value); - } - private byte _MLRSUR; - - [ParamField(0x9, ParamType.U8)] - public byte MLRSUA - { - get => _MLRSUA; - set => WriteParamField(ref _MLRSUA, value); - } - private byte _MLRSUA; - - [ParamField(0xA, ParamType.U8)] - public byte MWLUWS0 - { - get => _MWLUWS0; - set => WriteParamField(ref _MWLUWS0, value); - } - private byte _MWLUWS0; - - [ParamField(0xB, ParamType.U8)] - public byte MWLUWS1 - { - get => _MWLUWS1; - set => WriteParamField(ref _MWLUWS1, value); - } - private byte _MWLUWS1; - - [ParamField(0xC, ParamType.U8)] - public byte MWLUWS2 - { - get => _MWLUWS2; - set => WriteParamField(ref _MWLUWS2, value); - } - private byte _MWLUWS2; - - [ParamField(0xD, ParamType.U8)] - public byte MWLUWS3 - { - get => _MWLUWS3; - set => WriteParamField(ref _MWLUWS3, value); - } - private byte _MWLUWS3; - - [ParamField(0xE, ParamType.U8)] - public byte MWLUWS4 - { - get => _MWLUWS4; - set => WriteParamField(ref _MWLUWS4, value); - } - private byte _MWLUWS4; - - [ParamField(0xF, ParamType.U8)] - public byte MWLUWS5 - { - get => _MWLUWS5; - set => WriteParamField(ref _MWLUWS5, value); - } - private byte _MWLUWS5; - - [ParamField(0x10, ParamType.U8)] - public byte MWLUWS6 - { - get => _MWLUWS6; - set => WriteParamField(ref _MWLUWS6, value); - } - private byte _MWLUWS6; - - [ParamField(0x11, ParamType.U8)] - public byte MWLUWS7 - { - get => _MWLUWS7; - set => WriteParamField(ref _MWLUWS7, value); - } - private byte _MWLUWS7; - - [ParamField(0x12, ParamType.U8)] - public byte MWLUWS8 - { - get => _MWLUWS8; - set => WriteParamField(ref _MWLUWS8, value); - } - private byte _MWLUWS8; - - [ParamField(0x13, ParamType.U8)] - public byte MWLUWS9 - { - get => _MWLUWS9; - set => WriteParamField(ref _MWLUWS9, value); - } - private byte _MWLUWS9; - - [ParamField(0x14, ParamType.U8)] - public byte MWLUWS10 - { - get => _MWLUWS10; - set => WriteParamField(ref _MWLUWS10, value); - } - private byte _MWLUWS10; - - [ParamField(0x15, ParamType.U8)] - public byte MWLURS0 - { - get => _MWLURS0; - set => WriteParamField(ref _MWLURS0, value); - } - private byte _MWLURS0; - - [ParamField(0x16, ParamType.U8)] - public byte MWLURS1 - { - get => _MWLURS1; - set => WriteParamField(ref _MWLURS1, value); - } - private byte _MWLURS1; - - [ParamField(0x17, ParamType.U8)] - public byte MWLURS2 - { - get => _MWLURS2; - set => WriteParamField(ref _MWLURS2, value); - } - private byte _MWLURS2; - - [ParamField(0x18, ParamType.U8)] - public byte MWLURS3 - { - get => _MWLURS3; - set => WriteParamField(ref _MWLURS3, value); - } - private byte _MWLURS3; - - [ParamField(0x19, ParamType.U8)] - public byte MWLURS4 - { - get => _MWLURS4; - set => WriteParamField(ref _MWLURS4, value); - } - private byte _MWLURS4; - - [ParamField(0x1A, ParamType.U8)] - public byte MWLURS5 - { - get => _MWLURS5; - set => WriteParamField(ref _MWLURS5, value); - } - private byte _MWLURS5; - - [ParamField(0x1B, ParamType.U8)] - public byte MWLURS6 - { - get => _MWLURS6; - set => WriteParamField(ref _MWLURS6, value); - } - private byte _MWLURS6; - - [ParamField(0x1C, ParamType.U8)] - public byte MWLURS7 - { - get => _MWLURS7; - set => WriteParamField(ref _MWLURS7, value); - } - private byte _MWLURS7; - - [ParamField(0x1D, ParamType.U8)] - public byte MWLURS8 - { - get => _MWLURS8; - set => WriteParamField(ref _MWLURS8, value); - } - private byte _MWLURS8; - - [ParamField(0x1E, ParamType.U8)] - public byte MWLURS9 - { - get => _MWLURS9; - set => WriteParamField(ref _MWLURS9, value); - } - private byte _MWLURS9; - - [ParamField(0x1F, ParamType.U8)] - public byte MWLURS10 - { - get => _MWLURS10; - set => WriteParamField(ref _MWLURS10, value); - } - private byte _MWLURS10; - - [ParamField(0x20, ParamType.U8)] - public byte MWLUA0 - { - get => _MWLUA0; - set => WriteParamField(ref _MWLUA0, value); - } - private byte _MWLUA0; - - [ParamField(0x21, ParamType.U8)] - public byte MWLUA1 - { - get => _MWLUA1; - set => WriteParamField(ref _MWLUA1, value); - } - private byte _MWLUA1; - - [ParamField(0x22, ParamType.U8)] - public byte MWLUA2 - { - get => _MWLUA2; - set => WriteParamField(ref _MWLUA2, value); - } - private byte _MWLUA2; - - [ParamField(0x23, ParamType.U8)] - public byte MWLUA3 - { - get => _MWLUA3; - set => WriteParamField(ref _MWLUA3, value); - } - private byte _MWLUA3; - - [ParamField(0x24, ParamType.U8)] - public byte MWLUA4 - { - get => _MWLUA4; - set => WriteParamField(ref _MWLUA4, value); - } - private byte _MWLUA4; - - [ParamField(0x25, ParamType.U8)] - public byte MWLUA5 - { - get => _MWLUA5; - set => WriteParamField(ref _MWLUA5, value); - } - private byte _MWLUA5; - - [ParamField(0x26, ParamType.U8)] - public byte MWLUA6 - { - get => _MWLUA6; - set => WriteParamField(ref _MWLUA6, value); - } - private byte _MWLUA6; - - [ParamField(0x27, ParamType.U8)] - public byte MWLUA7 - { - get => _MWLUA7; - set => WriteParamField(ref _MWLUA7, value); - } - private byte _MWLUA7; - - [ParamField(0x28, ParamType.U8)] - public byte MWLUA8 - { - get => _MWLUA8; - set => WriteParamField(ref _MWLUA8, value); - } - private byte _MWLUA8; - - [ParamField(0x29, ParamType.U8)] - public byte MWLUA9 - { - get => _MWLUA9; - set => WriteParamField(ref _MWLUA9, value); - } - private byte _MWLUA9; - - [ParamField(0x2A, ParamType.U8)] - public byte MWLUA10 - { - get => _MWLUA10; - set => WriteParamField(ref _MWLUA10, value); - } - private byte _MWLUA10; - - [ParamField(0x2B, ParamType.U8)] - public byte MLASUR - { - get => _MLASUR; - set => WriteParamField(ref _MLASUR, value); - } - private byte _MLASUR; - - [ParamField(0x2C, ParamType.U8)] - public byte MLASUA - { - get => _MLASUA; - set => WriteParamField(ref _MLASUA, value); - } - private byte _MLASUA; - - [ParamField(0x2D, ParamType.Dummy8, 3)] - public byte[] Pad - { - get => _Pad; - set => WriteParamField(ref _Pad, value); - } - private byte[] _Pad = null!; - - [ParamField(0x30, ParamType.F32)] - public float SummonTimeoutTime - { - get => _SummonTimeoutTime; - set => WriteParamField(ref _SummonTimeoutTime, value); - } - private float _SummonTimeoutTime; - - [ParamField(0x34, ParamType.U32)] - public uint SingGetMax - { - get => _SingGetMax; - set => WriteParamField(ref _SingGetMax, value); - } - private uint _SingGetMax; - - [ParamField(0x38, ParamType.F32)] - public float SignDownloadSpan - { - get => _SignDownloadSpan; - set => WriteParamField(ref _SignDownloadSpan, value); - } - private float _SignDownloadSpan; - - [ParamField(0x3C, ParamType.F32)] - public float NitoSignDownloadSpan - { - get => _NitoSignDownloadSpan; - set => WriteParamField(ref _NitoSignDownloadSpan, value); - } - private float _NitoSignDownloadSpan; - - [ParamField(0x40, ParamType.F32)] - public float SignUpdateSpan - { - get => _SignUpdateSpan; - set => WriteParamField(ref _SignUpdateSpan, value); - } - private float _SignUpdateSpan; - - [ParamField(0x44, ParamType.U32)] - public uint MaxBreakInTargetListCount - { - get => _MaxBreakInTargetListCount; - set => WriteParamField(ref _MaxBreakInTargetListCount, value); - } - private uint _MaxBreakInTargetListCount; - - [ParamField(0x48, ParamType.F32)] - public float BreakInRequestIntervalTimeSec - { - get => _BreakInRequestIntervalTimeSec; - set => WriteParamField(ref _BreakInRequestIntervalTimeSec, value); - } - private float _BreakInRequestIntervalTimeSec; - - [ParamField(0x4C, ParamType.F32)] - public float BreakInRequestTimeOutSec - { - get => _BreakInRequestTimeOutSec; - set => WriteParamField(ref _BreakInRequestTimeOutSec, value); - } - private float _BreakInRequestTimeOutSec; - - [ParamField(0x50, ParamType.U32)] - public uint ReloadSignTotalCount_0 - { - get => _ReloadSignTotalCount_0; - set => WriteParamField(ref _ReloadSignTotalCount_0, value); - } - private uint _ReloadSignTotalCount_0; - - [ParamField(0x54, ParamType.F32)] - public float ReloadSignIntervalTime_0 - { - get => _ReloadSignIntervalTime_0; - set => WriteParamField(ref _ReloadSignIntervalTime_0, value); - } - private float _ReloadSignIntervalTime_0; - - [ParamField(0x58, ParamType.F32)] - public float ReloadSignIntervalTime_1 - { - get => _ReloadSignIntervalTime_1; - set => WriteParamField(ref _ReloadSignIntervalTime_1, value); - } - private float _ReloadSignIntervalTime_1; - - [ParamField(0x5C, ParamType.U32)] - public uint ReloadSignTotalCount_1 - { - get => _ReloadSignTotalCount_1; - set => WriteParamField(ref _ReloadSignTotalCount_1, value); - } - private uint _ReloadSignTotalCount_1; - - [ParamField(0x60, ParamType.U32)] - public uint ReloadSignCellCount - { - get => _ReloadSignCellCount; - set => WriteParamField(ref _ReloadSignCellCount, value); - } - private uint _ReloadSignCellCount; - - [ParamField(0x64, ParamType.F32)] - public float ReloadSignIntervalTime_2 - { - get => _ReloadSignIntervalTime_2; - set => WriteParamField(ref _ReloadSignIntervalTime_2, value); - } - private float _ReloadSignIntervalTime_2; - - [ParamField(0x68, ParamType.U32)] - public uint ReloadGhostTotalCount - { - get => _ReloadGhostTotalCount; - set => WriteParamField(ref _ReloadGhostTotalCount, value); - } - private uint _ReloadGhostTotalCount; - - [ParamField(0x6C, ParamType.U32)] - public uint ReloadGhostCellCount - { - get => _ReloadGhostCellCount; - set => WriteParamField(ref _ReloadGhostCellCount, value); - } - private uint _ReloadGhostCellCount; - - [ParamField(0x70, ParamType.U32)] - public uint MaxGhostTotalCount - { - get => _MaxGhostTotalCount; - set => WriteParamField(ref _MaxGhostTotalCount, value); - } - private uint _MaxGhostTotalCount; - - [ParamField(0x74, ParamType.F32)] - public float UpdateWanderGhostIntervalTime - { - get => _UpdateWanderGhostIntervalTime; - set => WriteParamField(ref _UpdateWanderGhostIntervalTime, value); - } - private float _UpdateWanderGhostIntervalTime; - - [ParamField(0x78, ParamType.F32)] - public float MinReplayIntervalTime - { - get => _MinReplayIntervalTime; - set => WriteParamField(ref _MinReplayIntervalTime, value); - } - private float _MinReplayIntervalTime; - - [ParamField(0x7C, ParamType.F32)] - public float MaxReplayIntervalTime - { - get => _MaxReplayIntervalTime; - set => WriteParamField(ref _MaxReplayIntervalTime, value); - } - private float _MaxReplayIntervalTime; - - [ParamField(0x80, ParamType.F32)] - public float ReloadGhostIntervalTime - { - get => _ReloadGhostIntervalTime; - set => WriteParamField(ref _ReloadGhostIntervalTime, value); - } - private float _ReloadGhostIntervalTime; - - [ParamField(0x84, ParamType.F32)] - public float ReplayBonfireModeRange - { - get => _ReplayBonfireModeRange; - set => WriteParamField(ref _ReplayBonfireModeRange, value); - } - private float _ReplayBonfireModeRange; - - [ParamField(0x88, ParamType.F32)] - public float WanderGhostIntervalLifeTime - { - get => _WanderGhostIntervalLifeTime; - set => WriteParamField(ref _WanderGhostIntervalLifeTime, value); - } - private float _WanderGhostIntervalLifeTime; - - [ParamField(0x8C, ParamType.F32)] - public float SummonMessageInterval - { - get => _SummonMessageInterval; - set => WriteParamField(ref _SummonMessageInterval, value); - } - private float _SummonMessageInterval; - - [ParamField(0x90, ParamType.F32)] - public float HostRegisterUpdateTime - { - get => _HostRegisterUpdateTime; - set => WriteParamField(ref _HostRegisterUpdateTime, value); - } - private float _HostRegisterUpdateTime; - - [ParamField(0x94, ParamType.U32)] - public uint RequestSearchQuickMatchLimit - { - get => _RequestSearchQuickMatchLimit; - set => WriteParamField(ref _RequestSearchQuickMatchLimit, value); - } - private uint _RequestSearchQuickMatchLimit; - - [ParamField(0x98, ParamType.F32)] - public float MyTeamInviteTimeoutTime - { - get => _MyTeamInviteTimeoutTime; - set => WriteParamField(ref _MyTeamInviteTimeoutTime, value); - } - private float _MyTeamInviteTimeoutTime; - - [ParamField(0x9C, ParamType.U32)] - public uint VisitorListMax - { - get => _VisitorListMax; - set => WriteParamField(ref _VisitorListMax, value); - } - private uint _VisitorListMax; - - [ParamField(0xA0, ParamType.F32)] - public float VisitorTimeOutTime - { - get => _VisitorTimeOutTime; - set => WriteParamField(ref _VisitorTimeOutTime, value); - } - private float _VisitorTimeOutTime; - - [ParamField(0xA4, ParamType.F32)] - public float DownloadSpan - { - get => _DownloadSpan; - set => WriteParamField(ref _DownloadSpan, value); - } - private float _DownloadSpan; - - [ParamField(0xA8, ParamType.F32)] - public float BonfireLowerBoundCoolTime - { - get => _BonfireLowerBoundCoolTime; - set => WriteParamField(ref _BonfireLowerBoundCoolTime, value); - } - private float _BonfireLowerBoundCoolTime; - - [ParamField(0xAC, ParamType.F32)] - public float BonfireUpperBoundCoolTime - { - get => _BonfireUpperBoundCoolTime; - set => WriteParamField(ref _BonfireUpperBoundCoolTime, value); - } - private float _BonfireUpperBoundCoolTime; - - [ParamField(0xB0, ParamType.F32)] - public float ResonanceMagicDbDistInterval - { - get => _ResonanceMagicDbDistInterval; - set => WriteParamField(ref _ResonanceMagicDbDistInterval, value); - } - private float _ResonanceMagicDbDistInterval; - - [ParamField(0xB4, ParamType.F32)] - public float InputTimeoutSec - { - get => _InputTimeoutSec; - set => WriteParamField(ref _InputTimeoutSec, value); - } - private float _InputTimeoutSec; - - [ParamField(0xB8, ParamType.F32)] - public float GeneralPurposeParam1 - { - get => _GeneralPurposeParam1; - set => WriteParamField(ref _GeneralPurposeParam1, value); - } - private float _GeneralPurposeParam1; - - [ParamField(0xBC, ParamType.F32)] - public float GeneralPurposeParam2 - { - get => _GeneralPurposeParam2; - set => WriteParamField(ref _GeneralPurposeParam2, value); - } - private float _GeneralPurposeParam2; - - [ParamField(0xC0, ParamType.F32)] - public float GeneralPurposeParam3 - { - get => _GeneralPurposeParam3; - set => WriteParamField(ref _GeneralPurposeParam3, value); - } - private float _GeneralPurposeParam3; - - [ParamField(0xC4, ParamType.F32)] - public float GeneralPurposeParam4 - { - get => _GeneralPurposeParam4; - set => WriteParamField(ref _GeneralPurposeParam4, value); - } - private float _GeneralPurposeParam4; - - [ParamField(0xC8, ParamType.F32)] - public float GeneralPurposeParam5 - { - get => _GeneralPurposeParam5; - set => WriteParamField(ref _GeneralPurposeParam5, value); - } - private float _GeneralPurposeParam5; - - [ParamField(0xCC, ParamType.U8)] - public byte MWLUWS_11 - { - get => _MWLUWS_11; - set => WriteParamField(ref _MWLUWS_11, value); - } - private byte _MWLUWS_11; - - [ParamField(0xCD, ParamType.U8)] - public byte MWLUWS_12 - { - get => _MWLUWS_12; - set => WriteParamField(ref _MWLUWS_12, value); - } - private byte _MWLUWS_12; - - [ParamField(0xCE, ParamType.U8)] - public byte MWLUWS_13 - { - get => _MWLUWS_13; - set => WriteParamField(ref _MWLUWS_13, value); - } - private byte _MWLUWS_13; - - [ParamField(0xCF, ParamType.U8)] - public byte MWLUWS_14 - { - get => _MWLUWS_14; - set => WriteParamField(ref _MWLUWS_14, value); - } - private byte _MWLUWS_14; - - [ParamField(0xD0, ParamType.U8)] - public byte MWLUWS_15 - { - get => _MWLUWS_15; - set => WriteParamField(ref _MWLUWS_15, value); - } - private byte _MWLUWS_15; - - [ParamField(0xD1, ParamType.U8)] - public byte MWLURS_11 - { - get => _MWLURS_11; - set => WriteParamField(ref _MWLURS_11, value); - } - private byte _MWLURS_11; - - [ParamField(0xD2, ParamType.U8)] - public byte MWLURS_12 - { - get => _MWLURS_12; - set => WriteParamField(ref _MWLURS_12, value); - } - private byte _MWLURS_12; - - [ParamField(0xD3, ParamType.U8)] - public byte MWLURS_13 - { - get => _MWLURS_13; - set => WriteParamField(ref _MWLURS_13, value); - } - private byte _MWLURS_13; - - [ParamField(0xD4, ParamType.U8)] - public byte MWLURS_14 - { - get => _MWLURS_14; - set => WriteParamField(ref _MWLURS_14, value); - } - private byte _MWLURS_14; - - [ParamField(0xD5, ParamType.U8)] - public byte MWLURS_15 - { - get => _MWLURS_15; - set => WriteParamField(ref _MWLURS_15, value); - } - private byte _MWLURS_15; - - [ParamField(0xD6, ParamType.U8)] - public byte MWLUAR_11 - { - get => _MWLUAR_11; - set => WriteParamField(ref _MWLUAR_11, value); - } - private byte _MWLUAR_11; - - [ParamField(0xD7, ParamType.U8)] - public byte MWLUAR_12 - { - get => _MWLUAR_12; - set => WriteParamField(ref _MWLUAR_12, value); - } - private byte _MWLUAR_12; - - [ParamField(0xD8, ParamType.U8)] - public byte MWLUAR_13 - { - get => _MWLUAR_13; - set => WriteParamField(ref _MWLUAR_13, value); - } - private byte _MWLUAR_13; - - [ParamField(0xD9, ParamType.U8)] - public byte MWLUAR_14 - { - get => _MWLUAR_14; - set => WriteParamField(ref _MWLUAR_14, value); - } - private byte _MWLUAR_14; - - [ParamField(0xDA, ParamType.U8)] - public byte MWLUAR_15 - { - get => _MWLUAR_15; - set => WriteParamField(ref _MWLUAR_15, value); - } - private byte _MWLUAR_15; - - [ParamField(0xDB, ParamType.U8)] - public byte GeneralPurposeParam6 - { - get => _GeneralPurposeParam6; - set => WriteParamField(ref _GeneralPurposeParam6, value); - } - private byte _GeneralPurposeParam6; + public LevelSyncParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} + + [ParamField(0x0, ParamType.I16)] + public short SCLUA + { + get => _SCLUA; + set => WriteParamField(ref _SCLUA, value); + } + private short _SCLUA; + + [ParamField(0x2, ParamType.I16)] + public short SDCLUR + { + get => _SDCLUR; + set => WriteParamField(ref _SDCLUR, value); + } + private short _SDCLUR; + + [ParamField(0x4, ParamType.I16)] + public short SDCWLM + { + get => _SDCWLM; + set => WriteParamField(ref _SDCWLM, value); + } + private short _SDCWLM; + + [ParamField(0x6, ParamType.U8)] + public byte MLWSUR + { + get => _MLWSUR; + set => WriteParamField(ref _MLWSUR, value); + } + private byte _MLWSUR; + + [ParamField(0x7, ParamType.U8)] + public byte MLWSUA + { + get => _MLWSUA; + set => WriteParamField(ref _MLWSUA, value); + } + private byte _MLWSUA; + + [ParamField(0x8, ParamType.U8)] + public byte MLRSUR + { + get => _MLRSUR; + set => WriteParamField(ref _MLRSUR, value); + } + private byte _MLRSUR; + + [ParamField(0x9, ParamType.U8)] + public byte MLRSUA + { + get => _MLRSUA; + set => WriteParamField(ref _MLRSUA, value); + } + private byte _MLRSUA; + + [ParamField(0xA, ParamType.U8)] + public byte MWLUWS0 + { + get => _MWLUWS0; + set => WriteParamField(ref _MWLUWS0, value); + } + private byte _MWLUWS0; + + [ParamField(0xB, ParamType.U8)] + public byte MWLUWS1 + { + get => _MWLUWS1; + set => WriteParamField(ref _MWLUWS1, value); + } + private byte _MWLUWS1; + + [ParamField(0xC, ParamType.U8)] + public byte MWLUWS2 + { + get => _MWLUWS2; + set => WriteParamField(ref _MWLUWS2, value); + } + private byte _MWLUWS2; + + [ParamField(0xD, ParamType.U8)] + public byte MWLUWS3 + { + get => _MWLUWS3; + set => WriteParamField(ref _MWLUWS3, value); + } + private byte _MWLUWS3; + + [ParamField(0xE, ParamType.U8)] + public byte MWLUWS4 + { + get => _MWLUWS4; + set => WriteParamField(ref _MWLUWS4, value); + } + private byte _MWLUWS4; + + [ParamField(0xF, ParamType.U8)] + public byte MWLUWS5 + { + get => _MWLUWS5; + set => WriteParamField(ref _MWLUWS5, value); + } + private byte _MWLUWS5; + + [ParamField(0x10, ParamType.U8)] + public byte MWLUWS6 + { + get => _MWLUWS6; + set => WriteParamField(ref _MWLUWS6, value); + } + private byte _MWLUWS6; + + [ParamField(0x11, ParamType.U8)] + public byte MWLUWS7 + { + get => _MWLUWS7; + set => WriteParamField(ref _MWLUWS7, value); + } + private byte _MWLUWS7; + + [ParamField(0x12, ParamType.U8)] + public byte MWLUWS8 + { + get => _MWLUWS8; + set => WriteParamField(ref _MWLUWS8, value); + } + private byte _MWLUWS8; + + [ParamField(0x13, ParamType.U8)] + public byte MWLUWS9 + { + get => _MWLUWS9; + set => WriteParamField(ref _MWLUWS9, value); + } + private byte _MWLUWS9; + + [ParamField(0x14, ParamType.U8)] + public byte MWLUWS10 + { + get => _MWLUWS10; + set => WriteParamField(ref _MWLUWS10, value); + } + private byte _MWLUWS10; + + [ParamField(0x15, ParamType.U8)] + public byte MWLURS0 + { + get => _MWLURS0; + set => WriteParamField(ref _MWLURS0, value); + } + private byte _MWLURS0; + + [ParamField(0x16, ParamType.U8)] + public byte MWLURS1 + { + get => _MWLURS1; + set => WriteParamField(ref _MWLURS1, value); + } + private byte _MWLURS1; + + [ParamField(0x17, ParamType.U8)] + public byte MWLURS2 + { + get => _MWLURS2; + set => WriteParamField(ref _MWLURS2, value); + } + private byte _MWLURS2; + + [ParamField(0x18, ParamType.U8)] + public byte MWLURS3 + { + get => _MWLURS3; + set => WriteParamField(ref _MWLURS3, value); + } + private byte _MWLURS3; + + [ParamField(0x19, ParamType.U8)] + public byte MWLURS4 + { + get => _MWLURS4; + set => WriteParamField(ref _MWLURS4, value); + } + private byte _MWLURS4; + + [ParamField(0x1A, ParamType.U8)] + public byte MWLURS5 + { + get => _MWLURS5; + set => WriteParamField(ref _MWLURS5, value); + } + private byte _MWLURS5; + + [ParamField(0x1B, ParamType.U8)] + public byte MWLURS6 + { + get => _MWLURS6; + set => WriteParamField(ref _MWLURS6, value); + } + private byte _MWLURS6; + + [ParamField(0x1C, ParamType.U8)] + public byte MWLURS7 + { + get => _MWLURS7; + set => WriteParamField(ref _MWLURS7, value); + } + private byte _MWLURS7; + + [ParamField(0x1D, ParamType.U8)] + public byte MWLURS8 + { + get => _MWLURS8; + set => WriteParamField(ref _MWLURS8, value); + } + private byte _MWLURS8; + + [ParamField(0x1E, ParamType.U8)] + public byte MWLURS9 + { + get => _MWLURS9; + set => WriteParamField(ref _MWLURS9, value); + } + private byte _MWLURS9; + + [ParamField(0x1F, ParamType.U8)] + public byte MWLURS10 + { + get => _MWLURS10; + set => WriteParamField(ref _MWLURS10, value); + } + private byte _MWLURS10; + + [ParamField(0x20, ParamType.U8)] + public byte MWLUA0 + { + get => _MWLUA0; + set => WriteParamField(ref _MWLUA0, value); + } + private byte _MWLUA0; + + [ParamField(0x21, ParamType.U8)] + public byte MWLUA1 + { + get => _MWLUA1; + set => WriteParamField(ref _MWLUA1, value); + } + private byte _MWLUA1; + + [ParamField(0x22, ParamType.U8)] + public byte MWLUA2 + { + get => _MWLUA2; + set => WriteParamField(ref _MWLUA2, value); + } + private byte _MWLUA2; + + [ParamField(0x23, ParamType.U8)] + public byte MWLUA3 + { + get => _MWLUA3; + set => WriteParamField(ref _MWLUA3, value); + } + private byte _MWLUA3; + + [ParamField(0x24, ParamType.U8)] + public byte MWLUA4 + { + get => _MWLUA4; + set => WriteParamField(ref _MWLUA4, value); + } + private byte _MWLUA4; + + [ParamField(0x25, ParamType.U8)] + public byte MWLUA5 + { + get => _MWLUA5; + set => WriteParamField(ref _MWLUA5, value); + } + private byte _MWLUA5; + + [ParamField(0x26, ParamType.U8)] + public byte MWLUA6 + { + get => _MWLUA6; + set => WriteParamField(ref _MWLUA6, value); + } + private byte _MWLUA6; + + [ParamField(0x27, ParamType.U8)] + public byte MWLUA7 + { + get => _MWLUA7; + set => WriteParamField(ref _MWLUA7, value); + } + private byte _MWLUA7; + + [ParamField(0x28, ParamType.U8)] + public byte MWLUA8 + { + get => _MWLUA8; + set => WriteParamField(ref _MWLUA8, value); + } + private byte _MWLUA8; + + [ParamField(0x29, ParamType.U8)] + public byte MWLUA9 + { + get => _MWLUA9; + set => WriteParamField(ref _MWLUA9, value); + } + private byte _MWLUA9; + + [ParamField(0x2A, ParamType.U8)] + public byte MWLUA10 + { + get => _MWLUA10; + set => WriteParamField(ref _MWLUA10, value); + } + private byte _MWLUA10; + + [ParamField(0x2B, ParamType.U8)] + public byte MLASUR + { + get => _MLASUR; + set => WriteParamField(ref _MLASUR, value); + } + private byte _MLASUR; + + [ParamField(0x2C, ParamType.U8)] + public byte MLASUA + { + get => _MLASUA; + set => WriteParamField(ref _MLASUA, value); + } + private byte _MLASUA; + + [ParamField(0x2D, ParamType.Dummy8, 3)] + public byte[] Pad + { + get => _Pad; + set => WriteParamField(ref _Pad, value); + } + private byte[] _Pad = null!; + + [ParamField(0x30, ParamType.F32)] + public float SummonTimeoutTime + { + get => _SummonTimeoutTime; + set => WriteParamField(ref _SummonTimeoutTime, value); + } + private float _SummonTimeoutTime; + + [ParamField(0x34, ParamType.U32)] + public uint SingGetMax + { + get => _SingGetMax; + set => WriteParamField(ref _SingGetMax, value); + } + private uint _SingGetMax; + + [ParamField(0x38, ParamType.F32)] + public float SignDownloadSpan + { + get => _SignDownloadSpan; + set => WriteParamField(ref _SignDownloadSpan, value); + } + private float _SignDownloadSpan; + + [ParamField(0x3C, ParamType.F32)] + public float NitoSignDownloadSpan + { + get => _NitoSignDownloadSpan; + set => WriteParamField(ref _NitoSignDownloadSpan, value); + } + private float _NitoSignDownloadSpan; + + [ParamField(0x40, ParamType.F32)] + public float SignUpdateSpan + { + get => _SignUpdateSpan; + set => WriteParamField(ref _SignUpdateSpan, value); + } + private float _SignUpdateSpan; + + [ParamField(0x44, ParamType.U32)] + public uint MaxBreakInTargetListCount + { + get => _MaxBreakInTargetListCount; + set => WriteParamField(ref _MaxBreakInTargetListCount, value); + } + private uint _MaxBreakInTargetListCount; + + [ParamField(0x48, ParamType.F32)] + public float BreakInRequestIntervalTimeSec + { + get => _BreakInRequestIntervalTimeSec; + set => WriteParamField(ref _BreakInRequestIntervalTimeSec, value); + } + private float _BreakInRequestIntervalTimeSec; + + [ParamField(0x4C, ParamType.F32)] + public float BreakInRequestTimeOutSec + { + get => _BreakInRequestTimeOutSec; + set => WriteParamField(ref _BreakInRequestTimeOutSec, value); + } + private float _BreakInRequestTimeOutSec; + + [ParamField(0x50, ParamType.U32)] + public uint ReloadSignTotalCount_0 + { + get => _ReloadSignTotalCount_0; + set => WriteParamField(ref _ReloadSignTotalCount_0, value); + } + private uint _ReloadSignTotalCount_0; + + [ParamField(0x54, ParamType.F32)] + public float ReloadSignIntervalTime_0 + { + get => _ReloadSignIntervalTime_0; + set => WriteParamField(ref _ReloadSignIntervalTime_0, value); + } + private float _ReloadSignIntervalTime_0; + + [ParamField(0x58, ParamType.F32)] + public float ReloadSignIntervalTime_1 + { + get => _ReloadSignIntervalTime_1; + set => WriteParamField(ref _ReloadSignIntervalTime_1, value); + } + private float _ReloadSignIntervalTime_1; + + [ParamField(0x5C, ParamType.U32)] + public uint ReloadSignTotalCount_1 + { + get => _ReloadSignTotalCount_1; + set => WriteParamField(ref _ReloadSignTotalCount_1, value); + } + private uint _ReloadSignTotalCount_1; + + [ParamField(0x60, ParamType.U32)] + public uint ReloadSignCellCount + { + get => _ReloadSignCellCount; + set => WriteParamField(ref _ReloadSignCellCount, value); + } + private uint _ReloadSignCellCount; + + [ParamField(0x64, ParamType.F32)] + public float ReloadSignIntervalTime_2 + { + get => _ReloadSignIntervalTime_2; + set => WriteParamField(ref _ReloadSignIntervalTime_2, value); + } + private float _ReloadSignIntervalTime_2; + + [ParamField(0x68, ParamType.U32)] + public uint ReloadGhostTotalCount + { + get => _ReloadGhostTotalCount; + set => WriteParamField(ref _ReloadGhostTotalCount, value); + } + private uint _ReloadGhostTotalCount; + + [ParamField(0x6C, ParamType.U32)] + public uint ReloadGhostCellCount + { + get => _ReloadGhostCellCount; + set => WriteParamField(ref _ReloadGhostCellCount, value); + } + private uint _ReloadGhostCellCount; + + [ParamField(0x70, ParamType.U32)] + public uint MaxGhostTotalCount + { + get => _MaxGhostTotalCount; + set => WriteParamField(ref _MaxGhostTotalCount, value); + } + private uint _MaxGhostTotalCount; + + [ParamField(0x74, ParamType.F32)] + public float UpdateWanderGhostIntervalTime + { + get => _UpdateWanderGhostIntervalTime; + set => WriteParamField(ref _UpdateWanderGhostIntervalTime, value); + } + private float _UpdateWanderGhostIntervalTime; + [ParamField(0x78, ParamType.F32)] + public float MinReplayIntervalTime + { + get => _MinReplayIntervalTime; + set => WriteParamField(ref _MinReplayIntervalTime, value); + } + private float _MinReplayIntervalTime; + + [ParamField(0x7C, ParamType.F32)] + public float MaxReplayIntervalTime + { + get => _MaxReplayIntervalTime; + set => WriteParamField(ref _MaxReplayIntervalTime, value); + } + private float _MaxReplayIntervalTime; + + [ParamField(0x80, ParamType.F32)] + public float ReloadGhostIntervalTime + { + get => _ReloadGhostIntervalTime; + set => WriteParamField(ref _ReloadGhostIntervalTime, value); + } + private float _ReloadGhostIntervalTime; + + [ParamField(0x84, ParamType.F32)] + public float ReplayBonfireModeRange + { + get => _ReplayBonfireModeRange; + set => WriteParamField(ref _ReplayBonfireModeRange, value); + } + private float _ReplayBonfireModeRange; + + [ParamField(0x88, ParamType.F32)] + public float WanderGhostIntervalLifeTime + { + get => _WanderGhostIntervalLifeTime; + set => WriteParamField(ref _WanderGhostIntervalLifeTime, value); + } + private float _WanderGhostIntervalLifeTime; + + [ParamField(0x8C, ParamType.F32)] + public float SummonMessageInterval + { + get => _SummonMessageInterval; + set => WriteParamField(ref _SummonMessageInterval, value); + } + private float _SummonMessageInterval; + + [ParamField(0x90, ParamType.F32)] + public float HostRegisterUpdateTime + { + get => _HostRegisterUpdateTime; + set => WriteParamField(ref _HostRegisterUpdateTime, value); + } + private float _HostRegisterUpdateTime; + + [ParamField(0x94, ParamType.U32)] + public uint RequestSearchQuickMatchLimit + { + get => _RequestSearchQuickMatchLimit; + set => WriteParamField(ref _RequestSearchQuickMatchLimit, value); + } + private uint _RequestSearchQuickMatchLimit; + + [ParamField(0x98, ParamType.F32)] + public float MyTeamInviteTimeoutTime + { + get => _MyTeamInviteTimeoutTime; + set => WriteParamField(ref _MyTeamInviteTimeoutTime, value); + } + private float _MyTeamInviteTimeoutTime; + + [ParamField(0x9C, ParamType.U32)] + public uint VisitorListMax + { + get => _VisitorListMax; + set => WriteParamField(ref _VisitorListMax, value); + } + private uint _VisitorListMax; + + [ParamField(0xA0, ParamType.F32)] + public float VisitorTimeOutTime + { + get => _VisitorTimeOutTime; + set => WriteParamField(ref _VisitorTimeOutTime, value); + } + private float _VisitorTimeOutTime; + + [ParamField(0xA4, ParamType.F32)] + public float DownloadSpan + { + get => _DownloadSpan; + set => WriteParamField(ref _DownloadSpan, value); + } + private float _DownloadSpan; + + [ParamField(0xA8, ParamType.F32)] + public float BonfireLowerBoundCoolTime + { + get => _BonfireLowerBoundCoolTime; + set => WriteParamField(ref _BonfireLowerBoundCoolTime, value); } + private float _BonfireLowerBoundCoolTime; + + [ParamField(0xAC, ParamType.F32)] + public float BonfireUpperBoundCoolTime + { + get => _BonfireUpperBoundCoolTime; + set => WriteParamField(ref _BonfireUpperBoundCoolTime, value); + } + private float _BonfireUpperBoundCoolTime; + + [ParamField(0xB0, ParamType.F32)] + public float ResonanceMagicDbDistInterval + { + get => _ResonanceMagicDbDistInterval; + set => WriteParamField(ref _ResonanceMagicDbDistInterval, value); + } + private float _ResonanceMagicDbDistInterval; + + [ParamField(0xB4, ParamType.F32)] + public float InputTimeoutSec + { + get => _InputTimeoutSec; + set => WriteParamField(ref _InputTimeoutSec, value); + } + private float _InputTimeoutSec; + + [ParamField(0xB8, ParamType.F32)] + public float GeneralPurposeParam1 + { + get => _GeneralPurposeParam1; + set => WriteParamField(ref _GeneralPurposeParam1, value); + } + private float _GeneralPurposeParam1; + + [ParamField(0xBC, ParamType.F32)] + public float GeneralPurposeParam2 + { + get => _GeneralPurposeParam2; + set => WriteParamField(ref _GeneralPurposeParam2, value); + } + private float _GeneralPurposeParam2; + + [ParamField(0xC0, ParamType.F32)] + public float GeneralPurposeParam3 + { + get => _GeneralPurposeParam3; + set => WriteParamField(ref _GeneralPurposeParam3, value); + } + private float _GeneralPurposeParam3; + + [ParamField(0xC4, ParamType.F32)] + public float GeneralPurposeParam4 + { + get => _GeneralPurposeParam4; + set => WriteParamField(ref _GeneralPurposeParam4, value); + } + private float _GeneralPurposeParam4; + + [ParamField(0xC8, ParamType.F32)] + public float GeneralPurposeParam5 + { + get => _GeneralPurposeParam5; + set => WriteParamField(ref _GeneralPurposeParam5, value); + } + private float _GeneralPurposeParam5; + + [ParamField(0xCC, ParamType.U8)] + public byte MWLUWS_11 + { + get => _MWLUWS_11; + set => WriteParamField(ref _MWLUWS_11, value); + } + private byte _MWLUWS_11; + + [ParamField(0xCD, ParamType.U8)] + public byte MWLUWS_12 + { + get => _MWLUWS_12; + set => WriteParamField(ref _MWLUWS_12, value); + } + private byte _MWLUWS_12; + + [ParamField(0xCE, ParamType.U8)] + public byte MWLUWS_13 + { + get => _MWLUWS_13; + set => WriteParamField(ref _MWLUWS_13, value); + } + private byte _MWLUWS_13; + + [ParamField(0xCF, ParamType.U8)] + public byte MWLUWS_14 + { + get => _MWLUWS_14; + set => WriteParamField(ref _MWLUWS_14, value); + } + private byte _MWLUWS_14; + + [ParamField(0xD0, ParamType.U8)] + public byte MWLUWS_15 + { + get => _MWLUWS_15; + set => WriteParamField(ref _MWLUWS_15, value); + } + private byte _MWLUWS_15; + + [ParamField(0xD1, ParamType.U8)] + public byte MWLURS_11 + { + get => _MWLURS_11; + set => WriteParamField(ref _MWLURS_11, value); + } + private byte _MWLURS_11; + + [ParamField(0xD2, ParamType.U8)] + public byte MWLURS_12 + { + get => _MWLURS_12; + set => WriteParamField(ref _MWLURS_12, value); + } + private byte _MWLURS_12; + + [ParamField(0xD3, ParamType.U8)] + public byte MWLURS_13 + { + get => _MWLURS_13; + set => WriteParamField(ref _MWLURS_13, value); + } + private byte _MWLURS_13; + + [ParamField(0xD4, ParamType.U8)] + public byte MWLURS_14 + { + get => _MWLURS_14; + set => WriteParamField(ref _MWLURS_14, value); + } + private byte _MWLURS_14; + + [ParamField(0xD5, ParamType.U8)] + public byte MWLURS_15 + { + get => _MWLURS_15; + set => WriteParamField(ref _MWLURS_15, value); + } + private byte _MWLURS_15; + + [ParamField(0xD6, ParamType.U8)] + public byte MWLUAR_11 + { + get => _MWLUAR_11; + set => WriteParamField(ref _MWLUAR_11, value); + } + private byte _MWLUAR_11; + + [ParamField(0xD7, ParamType.U8)] + public byte MWLUAR_12 + { + get => _MWLUAR_12; + set => WriteParamField(ref _MWLUAR_12, value); + } + private byte _MWLUAR_12; + + [ParamField(0xD8, ParamType.U8)] + public byte MWLUAR_13 + { + get => _MWLUAR_13; + set => WriteParamField(ref _MWLUAR_13, value); + } + private byte _MWLUAR_13; + + [ParamField(0xD9, ParamType.U8)] + public byte MWLUAR_14 + { + get => _MWLUAR_14; + set => WriteParamField(ref _MWLUAR_14, value); + } + private byte _MWLUAR_14; + + [ParamField(0xDA, ParamType.U8)] + public byte MWLUAR_15 + { + get => _MWLUAR_15; + set => WriteParamField(ref _MWLUAR_15, value); + } + private byte _MWLUAR_15; + + [ParamField(0xDB, ParamType.U8)] + public byte GeneralPurposeParam6 + { + get => _GeneralPurposeParam6; + set => WriteParamField(ref _GeneralPurposeParam6, value); + } + private byte _GeneralPurposeParam6; + } diff --git a/src/SoulMemory/DarkSouls1/Parameters/LightBank.cs b/src/SoulMemory/DarkSouls1/Parameters/LightBank.cs index 77f08f7..07309af 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/LightBank.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/LightBank.cs @@ -18,380 +18,379 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters +namespace SoulMemory.DarkSouls1.Parameters; + +[ExcludeFromCodeCoverage] +public class LightBank : BaseParam { - [ExcludeFromCodeCoverage] - public class LightBank : BaseParam - { - public LightBank(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - - [ParamField(0x0, ParamType.I16)] - public short DegRotX_0 - { - get => _DegRotX_0; - set => WriteParamField(ref _DegRotX_0, value); - } - private short _DegRotX_0; - - [ParamField(0x2, ParamType.I16)] - public short DegRotY_0 - { - get => _DegRotY_0; - set => WriteParamField(ref _DegRotY_0, value); - } - private short _DegRotY_0; - - [ParamField(0x4, ParamType.I16)] - public short ColR_0 - { - get => _ColR_0; - set => WriteParamField(ref _ColR_0, value); - } - private short _ColR_0; - - [ParamField(0x6, ParamType.I16)] - public short ColG_0 - { - get => _ColG_0; - set => WriteParamField(ref _ColG_0, value); - } - private short _ColG_0; - - [ParamField(0x8, ParamType.I16)] - public short ColB_0 - { - get => _ColB_0; - set => WriteParamField(ref _ColB_0, value); - } - private short _ColB_0; - - [ParamField(0xA, ParamType.I16)] - public short ColA_0 - { - get => _ColA_0; - set => WriteParamField(ref _ColA_0, value); - } - private short _ColA_0; - - [ParamField(0xC, ParamType.I16)] - public short DegRotX_1 - { - get => _DegRotX_1; - set => WriteParamField(ref _DegRotX_1, value); - } - private short _DegRotX_1; - - [ParamField(0xE, ParamType.I16)] - public short DegRotY_1 - { - get => _DegRotY_1; - set => WriteParamField(ref _DegRotY_1, value); - } - private short _DegRotY_1; - - [ParamField(0x10, ParamType.I16)] - public short ColR_1 - { - get => _ColR_1; - set => WriteParamField(ref _ColR_1, value); - } - private short _ColR_1; - - [ParamField(0x12, ParamType.I16)] - public short ColG_1 - { - get => _ColG_1; - set => WriteParamField(ref _ColG_1, value); - } - private short _ColG_1; - - [ParamField(0x14, ParamType.I16)] - public short ColB_1 - { - get => _ColB_1; - set => WriteParamField(ref _ColB_1, value); - } - private short _ColB_1; - - [ParamField(0x16, ParamType.I16)] - public short ColA_1 - { - get => _ColA_1; - set => WriteParamField(ref _ColA_1, value); - } - private short _ColA_1; - - [ParamField(0x18, ParamType.I16)] - public short DegRotX_2 - { - get => _DegRotX_2; - set => WriteParamField(ref _DegRotX_2, value); - } - private short _DegRotX_2; - - [ParamField(0x1A, ParamType.I16)] - public short DegRotY_2 - { - get => _DegRotY_2; - set => WriteParamField(ref _DegRotY_2, value); - } - private short _DegRotY_2; - - [ParamField(0x1C, ParamType.I16)] - public short ColR_2 - { - get => _ColR_2; - set => WriteParamField(ref _ColR_2, value); - } - private short _ColR_2; - - [ParamField(0x1E, ParamType.I16)] - public short ColG_2 - { - get => _ColG_2; - set => WriteParamField(ref _ColG_2, value); - } - private short _ColG_2; - - [ParamField(0x20, ParamType.I16)] - public short ColB_2 - { - get => _ColB_2; - set => WriteParamField(ref _ColB_2, value); - } - private short _ColB_2; - - [ParamField(0x22, ParamType.I16)] - public short ColA_2 - { - get => _ColA_2; - set => WriteParamField(ref _ColA_2, value); - } - private short _ColA_2; - - [ParamField(0x24, ParamType.I16)] - public short ColR_u - { - get => _ColR_u; - set => WriteParamField(ref _ColR_u, value); - } - private short _ColR_u; - - [ParamField(0x26, ParamType.I16)] - public short ColG_u - { - get => _ColG_u; - set => WriteParamField(ref _ColG_u, value); - } - private short _ColG_u; - - [ParamField(0x28, ParamType.I16)] - public short ColB_u - { - get => _ColB_u; - set => WriteParamField(ref _ColB_u, value); - } - private short _ColB_u; - - [ParamField(0x2A, ParamType.I16)] - public short ColA_u - { - get => _ColA_u; - set => WriteParamField(ref _ColA_u, value); - } - private short _ColA_u; - - [ParamField(0x2C, ParamType.I16)] - public short ColR_d - { - get => _ColR_d; - set => WriteParamField(ref _ColR_d, value); - } - private short _ColR_d; - - [ParamField(0x2E, ParamType.I16)] - public short ColG_d - { - get => _ColG_d; - set => WriteParamField(ref _ColG_d, value); - } - private short _ColG_d; - - [ParamField(0x30, ParamType.I16)] - public short ColB_d - { - get => _ColB_d; - set => WriteParamField(ref _ColB_d, value); - } - private short _ColB_d; - - [ParamField(0x32, ParamType.I16)] - public short ColA_d - { - get => _ColA_d; - set => WriteParamField(ref _ColA_d, value); - } - private short _ColA_d; - - [ParamField(0x34, ParamType.I16)] - public short DegRotX_s - { - get => _DegRotX_s; - set => WriteParamField(ref _DegRotX_s, value); - } - private short _DegRotX_s; - - [ParamField(0x36, ParamType.I16)] - public short DegRotY_s - { - get => _DegRotY_s; - set => WriteParamField(ref _DegRotY_s, value); - } - private short _DegRotY_s; - - [ParamField(0x38, ParamType.I16)] - public short ColR_s - { - get => _ColR_s; - set => WriteParamField(ref _ColR_s, value); - } - private short _ColR_s; - - [ParamField(0x3A, ParamType.I16)] - public short ColG_s - { - get => _ColG_s; - set => WriteParamField(ref _ColG_s, value); - } - private short _ColG_s; - - [ParamField(0x3C, ParamType.I16)] - public short ColB_s - { - get => _ColB_s; - set => WriteParamField(ref _ColB_s, value); - } - private short _ColB_s; - - [ParamField(0x3E, ParamType.I16)] - public short ColA_s - { - get => _ColA_s; - set => WriteParamField(ref _ColA_s, value); - } - private short _ColA_s; - - [ParamField(0x40, ParamType.I16)] - public short EnvDif_colR - { - get => _EnvDif_colR; - set => WriteParamField(ref _EnvDif_colR, value); - } - private short _EnvDif_colR; - - [ParamField(0x42, ParamType.I16)] - public short EnvDif_colG - { - get => _EnvDif_colG; - set => WriteParamField(ref _EnvDif_colG, value); - } - private short _EnvDif_colG; - - [ParamField(0x44, ParamType.I16)] - public short EnvDif_colB - { - get => _EnvDif_colB; - set => WriteParamField(ref _EnvDif_colB, value); - } - private short _EnvDif_colB; - - [ParamField(0x46, ParamType.I16)] - public short EnvDif_colA - { - get => _EnvDif_colA; - set => WriteParamField(ref _EnvDif_colA, value); - } - private short _EnvDif_colA; - - [ParamField(0x48, ParamType.I16)] - public short EnvSpc_colR - { - get => _EnvSpc_colR; - set => WriteParamField(ref _EnvSpc_colR, value); - } - private short _EnvSpc_colR; - - [ParamField(0x4A, ParamType.I16)] - public short EnvSpc_colG - { - get => _EnvSpc_colG; - set => WriteParamField(ref _EnvSpc_colG, value); - } - private short _EnvSpc_colG; - - [ParamField(0x4C, ParamType.I16)] - public short EnvSpc_colB - { - get => _EnvSpc_colB; - set => WriteParamField(ref _EnvSpc_colB, value); - } - private short _EnvSpc_colB; - - [ParamField(0x4E, ParamType.I16)] - public short EnvSpc_colA - { - get => _EnvSpc_colA; - set => WriteParamField(ref _EnvSpc_colA, value); - } - private short _EnvSpc_colA; - - [ParamField(0x50, ParamType.I16)] - public short EnvDif - { - get => _EnvDif; - set => WriteParamField(ref _EnvDif, value); - } - private short _EnvDif; - - [ParamField(0x52, ParamType.I16)] - public short EnvSpc_0 - { - get => _EnvSpc_0; - set => WriteParamField(ref _EnvSpc_0, value); - } - private short _EnvSpc_0; - - [ParamField(0x54, ParamType.I16)] - public short EnvSpc_1 - { - get => _EnvSpc_1; - set => WriteParamField(ref _EnvSpc_1, value); - } - private short _EnvSpc_1; - - [ParamField(0x56, ParamType.I16)] - public short EnvSpc_2 - { - get => _EnvSpc_2; - set => WriteParamField(ref _EnvSpc_2, value); - } - private short _EnvSpc_2; - - [ParamField(0x58, ParamType.I16)] - public short EnvSpc_3 - { - get => _EnvSpc_3; - set => WriteParamField(ref _EnvSpc_3, value); - } - private short _EnvSpc_3; - - [ParamField(0x5A, ParamType.Dummy8, 2)] - public byte[] Pad - { - get => _Pad; - set => WriteParamField(ref _Pad, value); - } - private byte[] _Pad = null!; + public LightBank(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} + + [ParamField(0x0, ParamType.I16)] + public short DegRotX_0 + { + get => _DegRotX_0; + set => WriteParamField(ref _DegRotX_0, value); + } + private short _DegRotX_0; + + [ParamField(0x2, ParamType.I16)] + public short DegRotY_0 + { + get => _DegRotY_0; + set => WriteParamField(ref _DegRotY_0, value); + } + private short _DegRotY_0; + + [ParamField(0x4, ParamType.I16)] + public short ColR_0 + { + get => _ColR_0; + set => WriteParamField(ref _ColR_0, value); + } + private short _ColR_0; + + [ParamField(0x6, ParamType.I16)] + public short ColG_0 + { + get => _ColG_0; + set => WriteParamField(ref _ColG_0, value); + } + private short _ColG_0; + + [ParamField(0x8, ParamType.I16)] + public short ColB_0 + { + get => _ColB_0; + set => WriteParamField(ref _ColB_0, value); + } + private short _ColB_0; + + [ParamField(0xA, ParamType.I16)] + public short ColA_0 + { + get => _ColA_0; + set => WriteParamField(ref _ColA_0, value); + } + private short _ColA_0; + + [ParamField(0xC, ParamType.I16)] + public short DegRotX_1 + { + get => _DegRotX_1; + set => WriteParamField(ref _DegRotX_1, value); + } + private short _DegRotX_1; + + [ParamField(0xE, ParamType.I16)] + public short DegRotY_1 + { + get => _DegRotY_1; + set => WriteParamField(ref _DegRotY_1, value); + } + private short _DegRotY_1; + + [ParamField(0x10, ParamType.I16)] + public short ColR_1 + { + get => _ColR_1; + set => WriteParamField(ref _ColR_1, value); + } + private short _ColR_1; + + [ParamField(0x12, ParamType.I16)] + public short ColG_1 + { + get => _ColG_1; + set => WriteParamField(ref _ColG_1, value); + } + private short _ColG_1; + + [ParamField(0x14, ParamType.I16)] + public short ColB_1 + { + get => _ColB_1; + set => WriteParamField(ref _ColB_1, value); + } + private short _ColB_1; + + [ParamField(0x16, ParamType.I16)] + public short ColA_1 + { + get => _ColA_1; + set => WriteParamField(ref _ColA_1, value); + } + private short _ColA_1; + + [ParamField(0x18, ParamType.I16)] + public short DegRotX_2 + { + get => _DegRotX_2; + set => WriteParamField(ref _DegRotX_2, value); + } + private short _DegRotX_2; + + [ParamField(0x1A, ParamType.I16)] + public short DegRotY_2 + { + get => _DegRotY_2; + set => WriteParamField(ref _DegRotY_2, value); + } + private short _DegRotY_2; + + [ParamField(0x1C, ParamType.I16)] + public short ColR_2 + { + get => _ColR_2; + set => WriteParamField(ref _ColR_2, value); + } + private short _ColR_2; + + [ParamField(0x1E, ParamType.I16)] + public short ColG_2 + { + get => _ColG_2; + set => WriteParamField(ref _ColG_2, value); + } + private short _ColG_2; + + [ParamField(0x20, ParamType.I16)] + public short ColB_2 + { + get => _ColB_2; + set => WriteParamField(ref _ColB_2, value); + } + private short _ColB_2; + + [ParamField(0x22, ParamType.I16)] + public short ColA_2 + { + get => _ColA_2; + set => WriteParamField(ref _ColA_2, value); + } + private short _ColA_2; + + [ParamField(0x24, ParamType.I16)] + public short ColR_u + { + get => _ColR_u; + set => WriteParamField(ref _ColR_u, value); + } + private short _ColR_u; + + [ParamField(0x26, ParamType.I16)] + public short ColG_u + { + get => _ColG_u; + set => WriteParamField(ref _ColG_u, value); + } + private short _ColG_u; + + [ParamField(0x28, ParamType.I16)] + public short ColB_u + { + get => _ColB_u; + set => WriteParamField(ref _ColB_u, value); + } + private short _ColB_u; + + [ParamField(0x2A, ParamType.I16)] + public short ColA_u + { + get => _ColA_u; + set => WriteParamField(ref _ColA_u, value); + } + private short _ColA_u; + + [ParamField(0x2C, ParamType.I16)] + public short ColR_d + { + get => _ColR_d; + set => WriteParamField(ref _ColR_d, value); + } + private short _ColR_d; + + [ParamField(0x2E, ParamType.I16)] + public short ColG_d + { + get => _ColG_d; + set => WriteParamField(ref _ColG_d, value); + } + private short _ColG_d; + + [ParamField(0x30, ParamType.I16)] + public short ColB_d + { + get => _ColB_d; + set => WriteParamField(ref _ColB_d, value); + } + private short _ColB_d; + + [ParamField(0x32, ParamType.I16)] + public short ColA_d + { + get => _ColA_d; + set => WriteParamField(ref _ColA_d, value); + } + private short _ColA_d; + [ParamField(0x34, ParamType.I16)] + public short DegRotX_s + { + get => _DegRotX_s; + set => WriteParamField(ref _DegRotX_s, value); + } + private short _DegRotX_s; + + [ParamField(0x36, ParamType.I16)] + public short DegRotY_s + { + get => _DegRotY_s; + set => WriteParamField(ref _DegRotY_s, value); + } + private short _DegRotY_s; + + [ParamField(0x38, ParamType.I16)] + public short ColR_s + { + get => _ColR_s; + set => WriteParamField(ref _ColR_s, value); + } + private short _ColR_s; + + [ParamField(0x3A, ParamType.I16)] + public short ColG_s + { + get => _ColG_s; + set => WriteParamField(ref _ColG_s, value); + } + private short _ColG_s; + + [ParamField(0x3C, ParamType.I16)] + public short ColB_s + { + get => _ColB_s; + set => WriteParamField(ref _ColB_s, value); + } + private short _ColB_s; + + [ParamField(0x3E, ParamType.I16)] + public short ColA_s + { + get => _ColA_s; + set => WriteParamField(ref _ColA_s, value); + } + private short _ColA_s; + + [ParamField(0x40, ParamType.I16)] + public short EnvDif_colR + { + get => _EnvDif_colR; + set => WriteParamField(ref _EnvDif_colR, value); + } + private short _EnvDif_colR; + + [ParamField(0x42, ParamType.I16)] + public short EnvDif_colG + { + get => _EnvDif_colG; + set => WriteParamField(ref _EnvDif_colG, value); + } + private short _EnvDif_colG; + + [ParamField(0x44, ParamType.I16)] + public short EnvDif_colB + { + get => _EnvDif_colB; + set => WriteParamField(ref _EnvDif_colB, value); } + private short _EnvDif_colB; + + [ParamField(0x46, ParamType.I16)] + public short EnvDif_colA + { + get => _EnvDif_colA; + set => WriteParamField(ref _EnvDif_colA, value); + } + private short _EnvDif_colA; + + [ParamField(0x48, ParamType.I16)] + public short EnvSpc_colR + { + get => _EnvSpc_colR; + set => WriteParamField(ref _EnvSpc_colR, value); + } + private short _EnvSpc_colR; + + [ParamField(0x4A, ParamType.I16)] + public short EnvSpc_colG + { + get => _EnvSpc_colG; + set => WriteParamField(ref _EnvSpc_colG, value); + } + private short _EnvSpc_colG; + + [ParamField(0x4C, ParamType.I16)] + public short EnvSpc_colB + { + get => _EnvSpc_colB; + set => WriteParamField(ref _EnvSpc_colB, value); + } + private short _EnvSpc_colB; + + [ParamField(0x4E, ParamType.I16)] + public short EnvSpc_colA + { + get => _EnvSpc_colA; + set => WriteParamField(ref _EnvSpc_colA, value); + } + private short _EnvSpc_colA; + + [ParamField(0x50, ParamType.I16)] + public short EnvDif + { + get => _EnvDif; + set => WriteParamField(ref _EnvDif, value); + } + private short _EnvDif; + + [ParamField(0x52, ParamType.I16)] + public short EnvSpc_0 + { + get => _EnvSpc_0; + set => WriteParamField(ref _EnvSpc_0, value); + } + private short _EnvSpc_0; + + [ParamField(0x54, ParamType.I16)] + public short EnvSpc_1 + { + get => _EnvSpc_1; + set => WriteParamField(ref _EnvSpc_1, value); + } + private short _EnvSpc_1; + + [ParamField(0x56, ParamType.I16)] + public short EnvSpc_2 + { + get => _EnvSpc_2; + set => WriteParamField(ref _EnvSpc_2, value); + } + private short _EnvSpc_2; + + [ParamField(0x58, ParamType.I16)] + public short EnvSpc_3 + { + get => _EnvSpc_3; + set => WriteParamField(ref _EnvSpc_3, value); + } + private short _EnvSpc_3; + + [ParamField(0x5A, ParamType.Dummy8, 2)] + public byte[] Pad + { + get => _Pad; + set => WriteParamField(ref _Pad, value); + } + private byte[] _Pad = null!; + } diff --git a/src/SoulMemory/DarkSouls1/Parameters/LightScatteringBank.cs b/src/SoulMemory/DarkSouls1/Parameters/LightScatteringBank.cs index 83f1b6b..27d0fdd 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/LightScatteringBank.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/LightScatteringBank.cs @@ -18,148 +18,147 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters +namespace SoulMemory.DarkSouls1.Parameters; + +[ExcludeFromCodeCoverage] +public class LightScatteringBank : BaseParam { - [ExcludeFromCodeCoverage] - public class LightScatteringBank : BaseParam - { - public LightScatteringBank(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - - [ParamField(0x0, ParamType.I16)] - public short SunRotX - { - get => _SunRotX; - set => WriteParamField(ref _SunRotX, value); - } - private short _SunRotX; - - [ParamField(0x2, ParamType.I16)] - public short SunRotY - { - get => _SunRotY; - set => WriteParamField(ref _SunRotY, value); - } - private short _SunRotY; - - [ParamField(0x4, ParamType.I16)] - public short DistanceMul - { - get => _DistanceMul; - set => WriteParamField(ref _DistanceMul, value); - } - private short _DistanceMul; - - [ParamField(0x6, ParamType.I16)] - public short SunR - { - get => _SunR; - set => WriteParamField(ref _SunR, value); - } - private short _SunR; - - [ParamField(0x8, ParamType.I16)] - public short SunG - { - get => _SunG; - set => WriteParamField(ref _SunG, value); - } - private short _SunG; - - [ParamField(0xA, ParamType.I16)] - public short SunB - { - get => _SunB; - set => WriteParamField(ref _SunB, value); - } - private short _SunB; - - [ParamField(0xC, ParamType.I16)] - public short SunA - { - get => _SunA; - set => WriteParamField(ref _SunA, value); - } - private short _SunA; - - [ParamField(0xE, ParamType.Dummy8, 2)] - public byte[] Pad_0 - { - get => _Pad_0; - set => WriteParamField(ref _Pad_0, value); - } - private byte[] _Pad_0 = null!; - - [ParamField(0x10, ParamType.F32)] - public float LsHGg - { - get => _LsHGg; - set => WriteParamField(ref _LsHGg, value); - } - private float _LsHGg; - - [ParamField(0x14, ParamType.F32)] - public float LsBetaRay - { - get => _LsBetaRay; - set => WriteParamField(ref _LsBetaRay, value); - } - private float _LsBetaRay; - - [ParamField(0x18, ParamType.F32)] - public float LsBetaMie - { - get => _LsBetaMie; - set => WriteParamField(ref _LsBetaMie, value); - } - private float _LsBetaMie; - - [ParamField(0x1C, ParamType.I16)] - public short BlendCoef - { - get => _BlendCoef; - set => WriteParamField(ref _BlendCoef, value); - } - private short _BlendCoef; - - [ParamField(0x1E, ParamType.I16)] - public short ReflectanceR - { - get => _ReflectanceR; - set => WriteParamField(ref _ReflectanceR, value); - } - private short _ReflectanceR; - - [ParamField(0x20, ParamType.I16)] - public short ReflectanceG - { - get => _ReflectanceG; - set => WriteParamField(ref _ReflectanceG, value); - } - private short _ReflectanceG; - - [ParamField(0x22, ParamType.I16)] - public short ReflectanceB - { - get => _ReflectanceB; - set => WriteParamField(ref _ReflectanceB, value); - } - private short _ReflectanceB; - - [ParamField(0x24, ParamType.I16)] - public short ReflectanceA - { - get => _ReflectanceA; - set => WriteParamField(ref _ReflectanceA, value); - } - private short _ReflectanceA; - - [ParamField(0x26, ParamType.Dummy8, 2)] - public byte[] Pad_1 - { - get => _Pad_1; - set => WriteParamField(ref _Pad_1, value); - } - private byte[] _Pad_1 = null!; + public LightScatteringBank(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} + + [ParamField(0x0, ParamType.I16)] + public short SunRotX + { + get => _SunRotX; + set => WriteParamField(ref _SunRotX, value); + } + private short _SunRotX; + + [ParamField(0x2, ParamType.I16)] + public short SunRotY + { + get => _SunRotY; + set => WriteParamField(ref _SunRotY, value); + } + private short _SunRotY; + + [ParamField(0x4, ParamType.I16)] + public short DistanceMul + { + get => _DistanceMul; + set => WriteParamField(ref _DistanceMul, value); + } + private short _DistanceMul; + + [ParamField(0x6, ParamType.I16)] + public short SunR + { + get => _SunR; + set => WriteParamField(ref _SunR, value); + } + private short _SunR; + [ParamField(0x8, ParamType.I16)] + public short SunG + { + get => _SunG; + set => WriteParamField(ref _SunG, value); + } + private short _SunG; + + [ParamField(0xA, ParamType.I16)] + public short SunB + { + get => _SunB; + set => WriteParamField(ref _SunB, value); + } + private short _SunB; + + [ParamField(0xC, ParamType.I16)] + public short SunA + { + get => _SunA; + set => WriteParamField(ref _SunA, value); + } + private short _SunA; + + [ParamField(0xE, ParamType.Dummy8, 2)] + public byte[] Pad_0 + { + get => _Pad_0; + set => WriteParamField(ref _Pad_0, value); + } + private byte[] _Pad_0 = null!; + + [ParamField(0x10, ParamType.F32)] + public float LsHGg + { + get => _LsHGg; + set => WriteParamField(ref _LsHGg, value); } + private float _LsHGg; + + [ParamField(0x14, ParamType.F32)] + public float LsBetaRay + { + get => _LsBetaRay; + set => WriteParamField(ref _LsBetaRay, value); + } + private float _LsBetaRay; + + [ParamField(0x18, ParamType.F32)] + public float LsBetaMie + { + get => _LsBetaMie; + set => WriteParamField(ref _LsBetaMie, value); + } + private float _LsBetaMie; + + [ParamField(0x1C, ParamType.I16)] + public short BlendCoef + { + get => _BlendCoef; + set => WriteParamField(ref _BlendCoef, value); + } + private short _BlendCoef; + + [ParamField(0x1E, ParamType.I16)] + public short ReflectanceR + { + get => _ReflectanceR; + set => WriteParamField(ref _ReflectanceR, value); + } + private short _ReflectanceR; + + [ParamField(0x20, ParamType.I16)] + public short ReflectanceG + { + get => _ReflectanceG; + set => WriteParamField(ref _ReflectanceG, value); + } + private short _ReflectanceG; + + [ParamField(0x22, ParamType.I16)] + public short ReflectanceB + { + get => _ReflectanceB; + set => WriteParamField(ref _ReflectanceB, value); + } + private short _ReflectanceB; + + [ParamField(0x24, ParamType.I16)] + public short ReflectanceA + { + get => _ReflectanceA; + set => WriteParamField(ref _ReflectanceA, value); + } + private short _ReflectanceA; + + [ParamField(0x26, ParamType.Dummy8, 2)] + public byte[] Pad_1 + { + get => _Pad_1; + set => WriteParamField(ref _Pad_1, value); + } + private byte[] _Pad_1 = null!; + } diff --git a/src/SoulMemory/DarkSouls1/Parameters/LockCamParam.cs b/src/SoulMemory/DarkSouls1/Parameters/LockCamParam.cs index b5d0476..b5655f0 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/LockCamParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/LockCamParam.cs @@ -18,68 +18,67 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters -{ - [ExcludeFromCodeCoverage] - public class LockCamParam : BaseParam - { - public LockCamParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} +namespace SoulMemory.DarkSouls1.Parameters; - [ParamField(0x0, ParamType.F32)] - public float CamDistTarget - { - get => _CamDistTarget; - set => WriteParamField(ref _CamDistTarget, value); - } - private float _CamDistTarget; +[ExcludeFromCodeCoverage] +public class LockCamParam : BaseParam +{ + public LockCamParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x4, ParamType.F32)] - public float RotRangeMinX - { - get => _RotRangeMinX; - set => WriteParamField(ref _RotRangeMinX, value); - } - private float _RotRangeMinX; + [ParamField(0x0, ParamType.F32)] + public float CamDistTarget + { + get => _CamDistTarget; + set => WriteParamField(ref _CamDistTarget, value); + } + private float _CamDistTarget; - [ParamField(0x8, ParamType.F32)] - public float LockRotXShiftRatio - { - get => _LockRotXShiftRatio; - set => WriteParamField(ref _LockRotXShiftRatio, value); - } - private float _LockRotXShiftRatio; + [ParamField(0x4, ParamType.F32)] + public float RotRangeMinX + { + get => _RotRangeMinX; + set => WriteParamField(ref _RotRangeMinX, value); + } + private float _RotRangeMinX; - [ParamField(0xC, ParamType.F32)] - public float ChrOrgOffset_Y - { - get => _ChrOrgOffset_Y; - set => WriteParamField(ref _ChrOrgOffset_Y, value); - } - private float _ChrOrgOffset_Y; + [ParamField(0x8, ParamType.F32)] + public float LockRotXShiftRatio + { + get => _LockRotXShiftRatio; + set => WriteParamField(ref _LockRotXShiftRatio, value); + } + private float _LockRotXShiftRatio; - [ParamField(0x10, ParamType.F32)] - public float ChrLockRangeMaxRadius - { - get => _ChrLockRangeMaxRadius; - set => WriteParamField(ref _ChrLockRangeMaxRadius, value); - } - private float _ChrLockRangeMaxRadius; + [ParamField(0xC, ParamType.F32)] + public float ChrOrgOffset_Y + { + get => _ChrOrgOffset_Y; + set => WriteParamField(ref _ChrOrgOffset_Y, value); + } + private float _ChrOrgOffset_Y; - [ParamField(0x14, ParamType.F32)] - public float CamFovY - { - get => _CamFovY; - set => WriteParamField(ref _CamFovY, value); - } - private float _CamFovY; + [ParamField(0x10, ParamType.F32)] + public float ChrLockRangeMaxRadius + { + get => _ChrLockRangeMaxRadius; + set => WriteParamField(ref _ChrLockRangeMaxRadius, value); + } + private float _ChrLockRangeMaxRadius; - [ParamField(0x18, ParamType.Dummy8, 8)] - public byte[] Pad - { - get => _Pad; - set => WriteParamField(ref _Pad, value); - } - private byte[] _Pad = null!; + [ParamField(0x14, ParamType.F32)] + public float CamFovY + { + get => _CamFovY; + set => WriteParamField(ref _CamFovY, value); + } + private float _CamFovY; + [ParamField(0x18, ParamType.Dummy8, 8)] + public byte[] Pad + { + get => _Pad; + set => WriteParamField(ref _Pad, value); } + private byte[] _Pad = null!; + } diff --git a/src/SoulMemory/DarkSouls1/Parameters/LodBank.cs b/src/SoulMemory/DarkSouls1/Parameters/LodBank.cs index cf87731..1e32030 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/LodBank.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/LodBank.cs @@ -18,44 +18,43 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters +namespace SoulMemory.DarkSouls1.Parameters; + +[ExcludeFromCodeCoverage] +public class LodBank : BaseParam { - [ExcludeFromCodeCoverage] - public class LodBank : BaseParam + public LodBank(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} + + [ParamField(0x0, ParamType.F32)] + public float Lv01_BorderDist { - public LodBank(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - - [ParamField(0x0, ParamType.F32)] - public float Lv01_BorderDist - { - get => _Lv01_BorderDist; - set => WriteParamField(ref _Lv01_BorderDist, value); - } - private float _Lv01_BorderDist; - - [ParamField(0x4, ParamType.F32)] - public float Lv01_PlayDist - { - get => _Lv01_PlayDist; - set => WriteParamField(ref _Lv01_PlayDist, value); - } - private float _Lv01_PlayDist; - - [ParamField(0x8, ParamType.F32)] - public float Lv12_BorderDist - { - get => _Lv12_BorderDist; - set => WriteParamField(ref _Lv12_BorderDist, value); - } - private float _Lv12_BorderDist; - - [ParamField(0xC, ParamType.F32)] - public float Lv12_PlayDist - { - get => _Lv12_PlayDist; - set => WriteParamField(ref _Lv12_PlayDist, value); - } - private float _Lv12_PlayDist; + get => _Lv01_BorderDist; + set => WriteParamField(ref _Lv01_BorderDist, value); + } + private float _Lv01_BorderDist; + [ParamField(0x4, ParamType.F32)] + public float Lv01_PlayDist + { + get => _Lv01_PlayDist; + set => WriteParamField(ref _Lv01_PlayDist, value); } + private float _Lv01_PlayDist; + + [ParamField(0x8, ParamType.F32)] + public float Lv12_BorderDist + { + get => _Lv12_BorderDist; + set => WriteParamField(ref _Lv12_BorderDist, value); + } + private float _Lv12_BorderDist; + + [ParamField(0xC, ParamType.F32)] + public float Lv12_PlayDist + { + get => _Lv12_PlayDist; + set => WriteParamField(ref _Lv12_PlayDist, value); + } + private float _Lv12_PlayDist; + } diff --git a/src/SoulMemory/DarkSouls1/Parameters/MagicParam.cs b/src/SoulMemory/DarkSouls1/Parameters/MagicParam.cs index 7bf45a4..48766dc 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/MagicParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/MagicParam.cs @@ -18,473 +18,472 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters +namespace SoulMemory.DarkSouls1.Parameters; + +[ExcludeFromCodeCoverage] +public class MagicParam : BaseParam { - [ExcludeFromCodeCoverage] - public class MagicParam : BaseParam - { - public MagicParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - - [ParamField(0x0, ParamType.I32)] - public int YesNoDialogMessageId - { - get => _YesNoDialogMessageId; - set => WriteParamField(ref _YesNoDialogMessageId, value); - } - private int _YesNoDialogMessageId; - - [ParamField(0x4, ParamType.I32)] - public int LimitCancelSpEffectId - { - get => _LimitCancelSpEffectId; - set => WriteParamField(ref _LimitCancelSpEffectId, value); - } - private int _LimitCancelSpEffectId; - - [ParamField(0x8, ParamType.I16)] - public short SortId - { - get => _SortId; - set => WriteParamField(ref _SortId, value); - } - private short _SortId; - - [ParamField(0xA, ParamType.I16)] - public short RefId - { - get => _RefId; - set => WriteParamField(ref _RefId, value); - } - private short _RefId; - - [ParamField(0xC, ParamType.I16)] - public short Mp - { - get => _Mp; - set => WriteParamField(ref _Mp, value); - } - private short _Mp; - - [ParamField(0xE, ParamType.I16)] - public short Stamina - { - get => _Stamina; - set => WriteParamField(ref _Stamina, value); - } - private short _Stamina; - - [ParamField(0x10, ParamType.I16)] - public short IconId - { - get => _IconId; - set => WriteParamField(ref _IconId, value); - } - private short _IconId; - - [ParamField(0x12, ParamType.I16)] - public short BehaviorId - { - get => _BehaviorId; - set => WriteParamField(ref _BehaviorId, value); - } - private short _BehaviorId; - - [ParamField(0x14, ParamType.I16)] - public short MtrlItemId - { - get => _MtrlItemId; - set => WriteParamField(ref _MtrlItemId, value); - } - private short _MtrlItemId; - - [ParamField(0x16, ParamType.I16)] - public short ReplaceMagicId - { - get => _ReplaceMagicId; - set => WriteParamField(ref _ReplaceMagicId, value); - } - private short _ReplaceMagicId; - - [ParamField(0x18, ParamType.I16)] - public short MaxQuantity - { - get => _MaxQuantity; - set => WriteParamField(ref _MaxQuantity, value); - } - private short _MaxQuantity; - - [ParamField(0x1A, ParamType.U8)] - public byte HeroPoint - { - get => _HeroPoint; - set => WriteParamField(ref _HeroPoint, value); - } - private byte _HeroPoint; - - [ParamField(0x1B, ParamType.U8)] - public byte OverDexterity - { - get => _OverDexterity; - set => WriteParamField(ref _OverDexterity, value); - } - private byte _OverDexterity; - - [ParamField(0x1C, ParamType.I8)] - public sbyte SfxVariationId - { - get => _SfxVariationId; - set => WriteParamField(ref _SfxVariationId, value); - } - private sbyte _SfxVariationId; - - [ParamField(0x1D, ParamType.U8)] - public byte SlotLength - { - get => _SlotLength; - set => WriteParamField(ref _SlotLength, value); - } - private byte _SlotLength; - - [ParamField(0x1E, ParamType.U8)] - public byte RequirementIntellect - { - get => _RequirementIntellect; - set => WriteParamField(ref _RequirementIntellect, value); - } - private byte _RequirementIntellect; - - [ParamField(0x1F, ParamType.U8)] - public byte RequirementFaith - { - get => _RequirementFaith; - set => WriteParamField(ref _RequirementFaith, value); - } - private byte _RequirementFaith; - - [ParamField(0x20, ParamType.U8)] - public byte AnalogDexiterityMin - { - get => _AnalogDexiterityMin; - set => WriteParamField(ref _AnalogDexiterityMin, value); - } - private byte _AnalogDexiterityMin; - - [ParamField(0x21, ParamType.U8)] - public byte AnalogDexiterityMax - { - get => _AnalogDexiterityMax; - set => WriteParamField(ref _AnalogDexiterityMax, value); - } - private byte _AnalogDexiterityMax; - - [ParamField(0x22, ParamType.U8)] - public byte EzStateBehaviorType - { - get => _EzStateBehaviorType; - set => WriteParamField(ref _EzStateBehaviorType, value); - } - private byte _EzStateBehaviorType; - - [ParamField(0x23, ParamType.U8)] - public byte RefCategory - { - get => _RefCategory; - set => WriteParamField(ref _RefCategory, value); - } - private byte _RefCategory; - - [ParamField(0x24, ParamType.U8)] - public byte SpEffectCategory - { - get => _SpEffectCategory; - set => WriteParamField(ref _SpEffectCategory, value); - } - private byte _SpEffectCategory; - - [ParamField(0x25, ParamType.U8)] - public byte RefType - { - get => _RefType; - set => WriteParamField(ref _RefType, value); - } - private byte _RefType; - - [ParamField(0x26, ParamType.U8)] - public byte OpmeMenuType - { - get => _OpmeMenuType; - set => WriteParamField(ref _OpmeMenuType, value); - } - private byte _OpmeMenuType; - - [ParamField(0x27, ParamType.U8)] - public byte HasSpEffectType - { - get => _HasSpEffectType; - set => WriteParamField(ref _HasSpEffectType, value); - } - private byte _HasSpEffectType; - - [ParamField(0x28, ParamType.U8)] - public byte ReplaceCategory - { - get => _ReplaceCategory; - set => WriteParamField(ref _ReplaceCategory, value); - } - private byte _ReplaceCategory; - - [ParamField(0x29, ParamType.U8)] - public byte UseLimitCategory - { - get => _UseLimitCategory; - set => WriteParamField(ref _UseLimitCategory, value); - } - private byte _UseLimitCategory; - - #region BitField VowType0Bitfield ============================================================================== - - [ParamField(0x2A, ParamType.U8)] - public byte VowType0Bitfield - { - get => _VowType0Bitfield; - set => WriteParamField(ref _VowType0Bitfield, value); - } - private byte _VowType0Bitfield; - - [ParamBitField(nameof(VowType0Bitfield), bits: 1, bitsOffset: 0)] - public byte VowType0 - { - get => GetbitfieldValue(_VowType0Bitfield); - set => SetBitfieldValue(ref _VowType0Bitfield, value); - } - - [ParamBitField(nameof(VowType0Bitfield), bits: 1, bitsOffset: 1)] - public byte VowType1 - { - get => GetbitfieldValue(_VowType0Bitfield); - set => SetBitfieldValue(ref _VowType0Bitfield, value); - } - - [ParamBitField(nameof(VowType0Bitfield), bits: 1, bitsOffset: 2)] - public byte VowType2 - { - get => GetbitfieldValue(_VowType0Bitfield); - set => SetBitfieldValue(ref _VowType0Bitfield, value); - } - - [ParamBitField(nameof(VowType0Bitfield), bits: 1, bitsOffset: 3)] - public byte VowType3 - { - get => GetbitfieldValue(_VowType0Bitfield); - set => SetBitfieldValue(ref _VowType0Bitfield, value); - } - - [ParamBitField(nameof(VowType0Bitfield), bits: 1, bitsOffset: 4)] - public byte VowType4 - { - get => GetbitfieldValue(_VowType0Bitfield); - set => SetBitfieldValue(ref _VowType0Bitfield, value); - } - - [ParamBitField(nameof(VowType0Bitfield), bits: 1, bitsOffset: 5)] - public byte VowType5 - { - get => GetbitfieldValue(_VowType0Bitfield); - set => SetBitfieldValue(ref _VowType0Bitfield, value); - } - - [ParamBitField(nameof(VowType0Bitfield), bits: 1, bitsOffset: 6)] - public byte VowType6 - { - get => GetbitfieldValue(_VowType0Bitfield); - set => SetBitfieldValue(ref _VowType0Bitfield, value); - } - - [ParamBitField(nameof(VowType0Bitfield), bits: 1, bitsOffset: 7)] - public byte VowType7 - { - get => GetbitfieldValue(_VowType0Bitfield); - set => SetBitfieldValue(ref _VowType0Bitfield, value); - } - - #endregion BitField VowType0Bitfield - - #region BitField Enable_multiBitfield ============================================================================== - - [ParamField(0x2B, ParamType.U8)] - public byte Enable_multiBitfield - { - get => _Enable_multiBitfield; - set => WriteParamField(ref _Enable_multiBitfield, value); - } - private byte _Enable_multiBitfield; - - [ParamBitField(nameof(Enable_multiBitfield), bits: 1, bitsOffset: 0)] - public byte Enable_multi - { - get => GetbitfieldValue(_Enable_multiBitfield); - set => SetBitfieldValue(ref _Enable_multiBitfield, value); - } - - [ParamBitField(nameof(Enable_multiBitfield), bits: 1, bitsOffset: 1)] - public byte Enable_multi_only - { - get => GetbitfieldValue(_Enable_multiBitfield); - set => SetBitfieldValue(ref _Enable_multiBitfield, value); - } - - [ParamBitField(nameof(Enable_multiBitfield), bits: 1, bitsOffset: 2)] - public byte IsEnchant - { - get => GetbitfieldValue(_Enable_multiBitfield); - set => SetBitfieldValue(ref _Enable_multiBitfield, value); - } - - [ParamBitField(nameof(Enable_multiBitfield), bits: 1, bitsOffset: 3)] - public byte IsShieldEnchant - { - get => GetbitfieldValue(_Enable_multiBitfield); - set => SetBitfieldValue(ref _Enable_multiBitfield, value); - } - - [ParamBitField(nameof(Enable_multiBitfield), bits: 1, bitsOffset: 4)] - public byte Enable_live - { - get => GetbitfieldValue(_Enable_multiBitfield); - set => SetBitfieldValue(ref _Enable_multiBitfield, value); - } - - [ParamBitField(nameof(Enable_multiBitfield), bits: 1, bitsOffset: 5)] - public byte Enable_gray - { - get => GetbitfieldValue(_Enable_multiBitfield); - set => SetBitfieldValue(ref _Enable_multiBitfield, value); - } - - [ParamBitField(nameof(Enable_multiBitfield), bits: 1, bitsOffset: 6)] - public byte Enable_white - { - get => GetbitfieldValue(_Enable_multiBitfield); - set => SetBitfieldValue(ref _Enable_multiBitfield, value); - } - - [ParamBitField(nameof(Enable_multiBitfield), bits: 1, bitsOffset: 7)] - public byte Enable_black - { - get => GetbitfieldValue(_Enable_multiBitfield); - set => SetBitfieldValue(ref _Enable_multiBitfield, value); - } - - #endregion BitField Enable_multiBitfield - - #region BitField DisableOfflineBitfield ============================================================================== - - [ParamField(0x2C, ParamType.U8)] - public byte DisableOfflineBitfield - { - get => _DisableOfflineBitfield; - set => WriteParamField(ref _DisableOfflineBitfield, value); - } - private byte _DisableOfflineBitfield; - - [ParamBitField(nameof(DisableOfflineBitfield), bits: 1, bitsOffset: 0)] - public byte DisableOffline - { - get => GetbitfieldValue(_DisableOfflineBitfield); - set => SetBitfieldValue(ref _DisableOfflineBitfield, value); - } - - [ParamBitField(nameof(DisableOfflineBitfield), bits: 1, bitsOffset: 1)] - public byte CastResonanceMagic - { - get => GetbitfieldValue(_DisableOfflineBitfield); - set => SetBitfieldValue(ref _DisableOfflineBitfield, value); - } - - [ParamBitField(nameof(DisableOfflineBitfield), bits: 6, bitsOffset: 2)] - public byte Pad_1 - { - get => GetbitfieldValue(_DisableOfflineBitfield); - set => SetBitfieldValue(ref _DisableOfflineBitfield, value); - } - - #endregion BitField DisableOfflineBitfield - - #region BitField VowType8Bitfield ============================================================================== - - [ParamField(0x2D, ParamType.U8)] - public byte VowType8Bitfield - { - get => _VowType8Bitfield; - set => WriteParamField(ref _VowType8Bitfield, value); - } - private byte _VowType8Bitfield; - - [ParamBitField(nameof(VowType8Bitfield), bits: 1, bitsOffset: 0)] - public byte VowType8 - { - get => GetbitfieldValue(_VowType8Bitfield); - set => SetBitfieldValue(ref _VowType8Bitfield, value); - } - - [ParamBitField(nameof(VowType8Bitfield), bits: 1, bitsOffset: 1)] - public byte VowType9 - { - get => GetbitfieldValue(_VowType8Bitfield); - set => SetBitfieldValue(ref _VowType8Bitfield, value); - } - - [ParamBitField(nameof(VowType8Bitfield), bits: 1, bitsOffset: 2)] - public byte VowType10 - { - get => GetbitfieldValue(_VowType8Bitfield); - set => SetBitfieldValue(ref _VowType8Bitfield, value); - } - - [ParamBitField(nameof(VowType8Bitfield), bits: 1, bitsOffset: 3)] - public byte VowType11 - { - get => GetbitfieldValue(_VowType8Bitfield); - set => SetBitfieldValue(ref _VowType8Bitfield, value); - } - - [ParamBitField(nameof(VowType8Bitfield), bits: 1, bitsOffset: 4)] - public byte VowType12 - { - get => GetbitfieldValue(_VowType8Bitfield); - set => SetBitfieldValue(ref _VowType8Bitfield, value); - } - - [ParamBitField(nameof(VowType8Bitfield), bits: 1, bitsOffset: 5)] - public byte VowType13 - { - get => GetbitfieldValue(_VowType8Bitfield); - set => SetBitfieldValue(ref _VowType8Bitfield, value); - } - - [ParamBitField(nameof(VowType8Bitfield), bits: 1, bitsOffset: 6)] - public byte VowType14 - { - get => GetbitfieldValue(_VowType8Bitfield); - set => SetBitfieldValue(ref _VowType8Bitfield, value); - } - - [ParamBitField(nameof(VowType8Bitfield), bits: 1, bitsOffset: 7)] - public byte VowType15 - { - get => GetbitfieldValue(_VowType8Bitfield); - set => SetBitfieldValue(ref _VowType8Bitfield, value); - } - - #endregion BitField VowType8Bitfield - - [ParamField(0x2E, ParamType.Dummy8, 2)] - public byte[] Pad - { - get => _Pad; - set => WriteParamField(ref _Pad, value); - } - private byte[] _Pad = null!; + public MagicParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} + + [ParamField(0x0, ParamType.I32)] + public int YesNoDialogMessageId + { + get => _YesNoDialogMessageId; + set => WriteParamField(ref _YesNoDialogMessageId, value); + } + private int _YesNoDialogMessageId; + + [ParamField(0x4, ParamType.I32)] + public int LimitCancelSpEffectId + { + get => _LimitCancelSpEffectId; + set => WriteParamField(ref _LimitCancelSpEffectId, value); + } + private int _LimitCancelSpEffectId; + + [ParamField(0x8, ParamType.I16)] + public short SortId + { + get => _SortId; + set => WriteParamField(ref _SortId, value); + } + private short _SortId; + + [ParamField(0xA, ParamType.I16)] + public short RefId + { + get => _RefId; + set => WriteParamField(ref _RefId, value); + } + private short _RefId; + + [ParamField(0xC, ParamType.I16)] + public short Mp + { + get => _Mp; + set => WriteParamField(ref _Mp, value); + } + private short _Mp; + + [ParamField(0xE, ParamType.I16)] + public short Stamina + { + get => _Stamina; + set => WriteParamField(ref _Stamina, value); + } + private short _Stamina; + + [ParamField(0x10, ParamType.I16)] + public short IconId + { + get => _IconId; + set => WriteParamField(ref _IconId, value); + } + private short _IconId; + [ParamField(0x12, ParamType.I16)] + public short BehaviorId + { + get => _BehaviorId; + set => WriteParamField(ref _BehaviorId, value); + } + private short _BehaviorId; + + [ParamField(0x14, ParamType.I16)] + public short MtrlItemId + { + get => _MtrlItemId; + set => WriteParamField(ref _MtrlItemId, value); + } + private short _MtrlItemId; + + [ParamField(0x16, ParamType.I16)] + public short ReplaceMagicId + { + get => _ReplaceMagicId; + set => WriteParamField(ref _ReplaceMagicId, value); + } + private short _ReplaceMagicId; + + [ParamField(0x18, ParamType.I16)] + public short MaxQuantity + { + get => _MaxQuantity; + set => WriteParamField(ref _MaxQuantity, value); + } + private short _MaxQuantity; + + [ParamField(0x1A, ParamType.U8)] + public byte HeroPoint + { + get => _HeroPoint; + set => WriteParamField(ref _HeroPoint, value); + } + private byte _HeroPoint; + + [ParamField(0x1B, ParamType.U8)] + public byte OverDexterity + { + get => _OverDexterity; + set => WriteParamField(ref _OverDexterity, value); + } + private byte _OverDexterity; + + [ParamField(0x1C, ParamType.I8)] + public sbyte SfxVariationId + { + get => _SfxVariationId; + set => WriteParamField(ref _SfxVariationId, value); + } + private sbyte _SfxVariationId; + + [ParamField(0x1D, ParamType.U8)] + public byte SlotLength + { + get => _SlotLength; + set => WriteParamField(ref _SlotLength, value); + } + private byte _SlotLength; + + [ParamField(0x1E, ParamType.U8)] + public byte RequirementIntellect + { + get => _RequirementIntellect; + set => WriteParamField(ref _RequirementIntellect, value); + } + private byte _RequirementIntellect; + + [ParamField(0x1F, ParamType.U8)] + public byte RequirementFaith + { + get => _RequirementFaith; + set => WriteParamField(ref _RequirementFaith, value); + } + private byte _RequirementFaith; + + [ParamField(0x20, ParamType.U8)] + public byte AnalogDexiterityMin + { + get => _AnalogDexiterityMin; + set => WriteParamField(ref _AnalogDexiterityMin, value); + } + private byte _AnalogDexiterityMin; + + [ParamField(0x21, ParamType.U8)] + public byte AnalogDexiterityMax + { + get => _AnalogDexiterityMax; + set => WriteParamField(ref _AnalogDexiterityMax, value); + } + private byte _AnalogDexiterityMax; + + [ParamField(0x22, ParamType.U8)] + public byte EzStateBehaviorType + { + get => _EzStateBehaviorType; + set => WriteParamField(ref _EzStateBehaviorType, value); + } + private byte _EzStateBehaviorType; + + [ParamField(0x23, ParamType.U8)] + public byte RefCategory + { + get => _RefCategory; + set => WriteParamField(ref _RefCategory, value); + } + private byte _RefCategory; + + [ParamField(0x24, ParamType.U8)] + public byte SpEffectCategory + { + get => _SpEffectCategory; + set => WriteParamField(ref _SpEffectCategory, value); + } + private byte _SpEffectCategory; + + [ParamField(0x25, ParamType.U8)] + public byte RefType + { + get => _RefType; + set => WriteParamField(ref _RefType, value); + } + private byte _RefType; + + [ParamField(0x26, ParamType.U8)] + public byte OpmeMenuType + { + get => _OpmeMenuType; + set => WriteParamField(ref _OpmeMenuType, value); + } + private byte _OpmeMenuType; + + [ParamField(0x27, ParamType.U8)] + public byte HasSpEffectType + { + get => _HasSpEffectType; + set => WriteParamField(ref _HasSpEffectType, value); + } + private byte _HasSpEffectType; + + [ParamField(0x28, ParamType.U8)] + public byte ReplaceCategory + { + get => _ReplaceCategory; + set => WriteParamField(ref _ReplaceCategory, value); + } + private byte _ReplaceCategory; + + [ParamField(0x29, ParamType.U8)] + public byte UseLimitCategory + { + get => _UseLimitCategory; + set => WriteParamField(ref _UseLimitCategory, value); + } + private byte _UseLimitCategory; + + #region BitField VowType0Bitfield ============================================================================== + + [ParamField(0x2A, ParamType.U8)] + public byte VowType0Bitfield + { + get => _VowType0Bitfield; + set => WriteParamField(ref _VowType0Bitfield, value); + } + private byte _VowType0Bitfield; + + [ParamBitField(nameof(VowType0Bitfield), bits: 1, bitsOffset: 0)] + public byte VowType0 + { + get => GetbitfieldValue(_VowType0Bitfield); + set => SetBitfieldValue(ref _VowType0Bitfield, value); + } + + [ParamBitField(nameof(VowType0Bitfield), bits: 1, bitsOffset: 1)] + public byte VowType1 + { + get => GetbitfieldValue(_VowType0Bitfield); + set => SetBitfieldValue(ref _VowType0Bitfield, value); + } + + [ParamBitField(nameof(VowType0Bitfield), bits: 1, bitsOffset: 2)] + public byte VowType2 + { + get => GetbitfieldValue(_VowType0Bitfield); + set => SetBitfieldValue(ref _VowType0Bitfield, value); } + + [ParamBitField(nameof(VowType0Bitfield), bits: 1, bitsOffset: 3)] + public byte VowType3 + { + get => GetbitfieldValue(_VowType0Bitfield); + set => SetBitfieldValue(ref _VowType0Bitfield, value); + } + + [ParamBitField(nameof(VowType0Bitfield), bits: 1, bitsOffset: 4)] + public byte VowType4 + { + get => GetbitfieldValue(_VowType0Bitfield); + set => SetBitfieldValue(ref _VowType0Bitfield, value); + } + + [ParamBitField(nameof(VowType0Bitfield), bits: 1, bitsOffset: 5)] + public byte VowType5 + { + get => GetbitfieldValue(_VowType0Bitfield); + set => SetBitfieldValue(ref _VowType0Bitfield, value); + } + + [ParamBitField(nameof(VowType0Bitfield), bits: 1, bitsOffset: 6)] + public byte VowType6 + { + get => GetbitfieldValue(_VowType0Bitfield); + set => SetBitfieldValue(ref _VowType0Bitfield, value); + } + + [ParamBitField(nameof(VowType0Bitfield), bits: 1, bitsOffset: 7)] + public byte VowType7 + { + get => GetbitfieldValue(_VowType0Bitfield); + set => SetBitfieldValue(ref _VowType0Bitfield, value); + } + + #endregion BitField VowType0Bitfield + + #region BitField Enable_multiBitfield ============================================================================== + + [ParamField(0x2B, ParamType.U8)] + public byte Enable_multiBitfield + { + get => _Enable_multiBitfield; + set => WriteParamField(ref _Enable_multiBitfield, value); + } + private byte _Enable_multiBitfield; + + [ParamBitField(nameof(Enable_multiBitfield), bits: 1, bitsOffset: 0)] + public byte Enable_multi + { + get => GetbitfieldValue(_Enable_multiBitfield); + set => SetBitfieldValue(ref _Enable_multiBitfield, value); + } + + [ParamBitField(nameof(Enable_multiBitfield), bits: 1, bitsOffset: 1)] + public byte Enable_multi_only + { + get => GetbitfieldValue(_Enable_multiBitfield); + set => SetBitfieldValue(ref _Enable_multiBitfield, value); + } + + [ParamBitField(nameof(Enable_multiBitfield), bits: 1, bitsOffset: 2)] + public byte IsEnchant + { + get => GetbitfieldValue(_Enable_multiBitfield); + set => SetBitfieldValue(ref _Enable_multiBitfield, value); + } + + [ParamBitField(nameof(Enable_multiBitfield), bits: 1, bitsOffset: 3)] + public byte IsShieldEnchant + { + get => GetbitfieldValue(_Enable_multiBitfield); + set => SetBitfieldValue(ref _Enable_multiBitfield, value); + } + + [ParamBitField(nameof(Enable_multiBitfield), bits: 1, bitsOffset: 4)] + public byte Enable_live + { + get => GetbitfieldValue(_Enable_multiBitfield); + set => SetBitfieldValue(ref _Enable_multiBitfield, value); + } + + [ParamBitField(nameof(Enable_multiBitfield), bits: 1, bitsOffset: 5)] + public byte Enable_gray + { + get => GetbitfieldValue(_Enable_multiBitfield); + set => SetBitfieldValue(ref _Enable_multiBitfield, value); + } + + [ParamBitField(nameof(Enable_multiBitfield), bits: 1, bitsOffset: 6)] + public byte Enable_white + { + get => GetbitfieldValue(_Enable_multiBitfield); + set => SetBitfieldValue(ref _Enable_multiBitfield, value); + } + + [ParamBitField(nameof(Enable_multiBitfield), bits: 1, bitsOffset: 7)] + public byte Enable_black + { + get => GetbitfieldValue(_Enable_multiBitfield); + set => SetBitfieldValue(ref _Enable_multiBitfield, value); + } + + #endregion BitField Enable_multiBitfield + + #region BitField DisableOfflineBitfield ============================================================================== + + [ParamField(0x2C, ParamType.U8)] + public byte DisableOfflineBitfield + { + get => _DisableOfflineBitfield; + set => WriteParamField(ref _DisableOfflineBitfield, value); + } + private byte _DisableOfflineBitfield; + + [ParamBitField(nameof(DisableOfflineBitfield), bits: 1, bitsOffset: 0)] + public byte DisableOffline + { + get => GetbitfieldValue(_DisableOfflineBitfield); + set => SetBitfieldValue(ref _DisableOfflineBitfield, value); + } + + [ParamBitField(nameof(DisableOfflineBitfield), bits: 1, bitsOffset: 1)] + public byte CastResonanceMagic + { + get => GetbitfieldValue(_DisableOfflineBitfield); + set => SetBitfieldValue(ref _DisableOfflineBitfield, value); + } + + [ParamBitField(nameof(DisableOfflineBitfield), bits: 6, bitsOffset: 2)] + public byte Pad_1 + { + get => GetbitfieldValue(_DisableOfflineBitfield); + set => SetBitfieldValue(ref _DisableOfflineBitfield, value); + } + + #endregion BitField DisableOfflineBitfield + + #region BitField VowType8Bitfield ============================================================================== + + [ParamField(0x2D, ParamType.U8)] + public byte VowType8Bitfield + { + get => _VowType8Bitfield; + set => WriteParamField(ref _VowType8Bitfield, value); + } + private byte _VowType8Bitfield; + + [ParamBitField(nameof(VowType8Bitfield), bits: 1, bitsOffset: 0)] + public byte VowType8 + { + get => GetbitfieldValue(_VowType8Bitfield); + set => SetBitfieldValue(ref _VowType8Bitfield, value); + } + + [ParamBitField(nameof(VowType8Bitfield), bits: 1, bitsOffset: 1)] + public byte VowType9 + { + get => GetbitfieldValue(_VowType8Bitfield); + set => SetBitfieldValue(ref _VowType8Bitfield, value); + } + + [ParamBitField(nameof(VowType8Bitfield), bits: 1, bitsOffset: 2)] + public byte VowType10 + { + get => GetbitfieldValue(_VowType8Bitfield); + set => SetBitfieldValue(ref _VowType8Bitfield, value); + } + + [ParamBitField(nameof(VowType8Bitfield), bits: 1, bitsOffset: 3)] + public byte VowType11 + { + get => GetbitfieldValue(_VowType8Bitfield); + set => SetBitfieldValue(ref _VowType8Bitfield, value); + } + + [ParamBitField(nameof(VowType8Bitfield), bits: 1, bitsOffset: 4)] + public byte VowType12 + { + get => GetbitfieldValue(_VowType8Bitfield); + set => SetBitfieldValue(ref _VowType8Bitfield, value); + } + + [ParamBitField(nameof(VowType8Bitfield), bits: 1, bitsOffset: 5)] + public byte VowType13 + { + get => GetbitfieldValue(_VowType8Bitfield); + set => SetBitfieldValue(ref _VowType8Bitfield, value); + } + + [ParamBitField(nameof(VowType8Bitfield), bits: 1, bitsOffset: 6)] + public byte VowType14 + { + get => GetbitfieldValue(_VowType8Bitfield); + set => SetBitfieldValue(ref _VowType8Bitfield, value); + } + + [ParamBitField(nameof(VowType8Bitfield), bits: 1, bitsOffset: 7)] + public byte VowType15 + { + get => GetbitfieldValue(_VowType8Bitfield); + set => SetBitfieldValue(ref _VowType8Bitfield, value); + } + + #endregion BitField VowType8Bitfield + + [ParamField(0x2E, ParamType.Dummy8, 2)] + public byte[] Pad + { + get => _Pad; + set => WriteParamField(ref _Pad, value); + } + private byte[] _Pad = null!; + } diff --git a/src/SoulMemory/DarkSouls1/Parameters/MenuParamColorTable.cs b/src/SoulMemory/DarkSouls1/Parameters/MenuParamColorTable.cs index 8f8b5f8..fd0edeb 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/MenuParamColorTable.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/MenuParamColorTable.cs @@ -18,44 +18,43 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters +namespace SoulMemory.DarkSouls1.Parameters; + +[ExcludeFromCodeCoverage] +public class MenuParamColorTable : BaseParam { - [ExcludeFromCodeCoverage] - public class MenuParamColorTable : BaseParam + public MenuParamColorTable(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} + + [ParamField(0x0, ParamType.U8)] + public byte R { - public MenuParamColorTable(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - - [ParamField(0x0, ParamType.U8)] - public byte R - { - get => _R; - set => WriteParamField(ref _R, value); - } - private byte _R; - - [ParamField(0x1, ParamType.U8)] - public byte G - { - get => _G; - set => WriteParamField(ref _G, value); - } - private byte _G; - - [ParamField(0x2, ParamType.U8)] - public byte B - { - get => _B; - set => WriteParamField(ref _B, value); - } - private byte _B; - - [ParamField(0x3, ParamType.U8)] - public byte A - { - get => _A; - set => WriteParamField(ref _A, value); - } - private byte _A; + get => _R; + set => WriteParamField(ref _R, value); + } + private byte _R; + [ParamField(0x1, ParamType.U8)] + public byte G + { + get => _G; + set => WriteParamField(ref _G, value); } + private byte _G; + + [ParamField(0x2, ParamType.U8)] + public byte B + { + get => _B; + set => WriteParamField(ref _B, value); + } + private byte _B; + + [ParamField(0x3, ParamType.U8)] + public byte A + { + get => _A; + set => WriteParamField(ref _A, value); + } + private byte _A; + } diff --git a/src/SoulMemory/DarkSouls1/Parameters/MoveParam.cs b/src/SoulMemory/DarkSouls1/Parameters/MoveParam.cs index 4fc96be..3ce6808 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/MoveParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/MoveParam.cs @@ -18,300 +18,299 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters +namespace SoulMemory.DarkSouls1.Parameters; + +[ExcludeFromCodeCoverage] +public class MoveParam : BaseParam { - [ExcludeFromCodeCoverage] - public class MoveParam : BaseParam - { - public MoveParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - - [ParamField(0x0, ParamType.I32)] - public int StayId - { - get => _StayId; - set => WriteParamField(ref _StayId, value); - } - private int _StayId; - - [ParamField(0x4, ParamType.I32)] - public int WalkF - { - get => _WalkF; - set => WriteParamField(ref _WalkF, value); - } - private int _WalkF; - - [ParamField(0x8, ParamType.I32)] - public int WalkB - { - get => _WalkB; - set => WriteParamField(ref _WalkB, value); - } - private int _WalkB; - - [ParamField(0xC, ParamType.I32)] - public int WalkL - { - get => _WalkL; - set => WriteParamField(ref _WalkL, value); - } - private int _WalkL; - - [ParamField(0x10, ParamType.I32)] - public int WalkR - { - get => _WalkR; - set => WriteParamField(ref _WalkR, value); - } - private int _WalkR; - - [ParamField(0x14, ParamType.I32)] - public int DashF - { - get => _DashF; - set => WriteParamField(ref _DashF, value); - } - private int _DashF; - - [ParamField(0x18, ParamType.I32)] - public int DashB - { - get => _DashB; - set => WriteParamField(ref _DashB, value); - } - private int _DashB; - - [ParamField(0x1C, ParamType.I32)] - public int DashL - { - get => _DashL; - set => WriteParamField(ref _DashL, value); - } - private int _DashL; - - [ParamField(0x20, ParamType.I32)] - public int DashR - { - get => _DashR; - set => WriteParamField(ref _DashR, value); - } - private int _DashR; - - [ParamField(0x24, ParamType.I32)] - public int SuperDash - { - get => _SuperDash; - set => WriteParamField(ref _SuperDash, value); - } - private int _SuperDash; - - [ParamField(0x28, ParamType.I32)] - public int EscapeF - { - get => _EscapeF; - set => WriteParamField(ref _EscapeF, value); - } - private int _EscapeF; - - [ParamField(0x2C, ParamType.I32)] - public int EscapeB - { - get => _EscapeB; - set => WriteParamField(ref _EscapeB, value); - } - private int _EscapeB; - - [ParamField(0x30, ParamType.I32)] - public int EscapeL - { - get => _EscapeL; - set => WriteParamField(ref _EscapeL, value); - } - private int _EscapeL; - - [ParamField(0x34, ParamType.I32)] - public int EscapeR - { - get => _EscapeR; - set => WriteParamField(ref _EscapeR, value); - } - private int _EscapeR; - - [ParamField(0x38, ParamType.I32)] - public int TurnL - { - get => _TurnL; - set => WriteParamField(ref _TurnL, value); - } - private int _TurnL; - - [ParamField(0x3C, ParamType.I32)] - public int TrunR - { - get => _TrunR; - set => WriteParamField(ref _TrunR, value); - } - private int _TrunR; - - [ParamField(0x40, ParamType.I32)] - public int LargeTurnL - { - get => _LargeTurnL; - set => WriteParamField(ref _LargeTurnL, value); - } - private int _LargeTurnL; - - [ParamField(0x44, ParamType.I32)] - public int LargeTurnR - { - get => _LargeTurnR; - set => WriteParamField(ref _LargeTurnR, value); - } - private int _LargeTurnR; - - [ParamField(0x48, ParamType.I32)] - public int StepMove - { - get => _StepMove; - set => WriteParamField(ref _StepMove, value); - } - private int _StepMove; - - [ParamField(0x4C, ParamType.I32)] - public int FlyStay - { - get => _FlyStay; - set => WriteParamField(ref _FlyStay, value); - } - private int _FlyStay; - - [ParamField(0x50, ParamType.I32)] - public int FlyWalkF - { - get => _FlyWalkF; - set => WriteParamField(ref _FlyWalkF, value); - } - private int _FlyWalkF; - - [ParamField(0x54, ParamType.I32)] - public int FlyWalkFL - { - get => _FlyWalkFL; - set => WriteParamField(ref _FlyWalkFL, value); - } - private int _FlyWalkFL; - - [ParamField(0x58, ParamType.I32)] - public int FlyWalkFR - { - get => _FlyWalkFR; - set => WriteParamField(ref _FlyWalkFR, value); - } - private int _FlyWalkFR; - - [ParamField(0x5C, ParamType.I32)] - public int FlyWalkFL2 - { - get => _FlyWalkFL2; - set => WriteParamField(ref _FlyWalkFL2, value); - } - private int _FlyWalkFL2; - - [ParamField(0x60, ParamType.I32)] - public int FlyWalkFR2 - { - get => _FlyWalkFR2; - set => WriteParamField(ref _FlyWalkFR2, value); - } - private int _FlyWalkFR2; - - [ParamField(0x64, ParamType.I32)] - public int FlyDashF - { - get => _FlyDashF; - set => WriteParamField(ref _FlyDashF, value); - } - private int _FlyDashF; - - [ParamField(0x68, ParamType.I32)] - public int FlyDashFL - { - get => _FlyDashFL; - set => WriteParamField(ref _FlyDashFL, value); - } - private int _FlyDashFL; - - [ParamField(0x6C, ParamType.I32)] - public int FlyDashFR - { - get => _FlyDashFR; - set => WriteParamField(ref _FlyDashFR, value); - } - private int _FlyDashFR; - - [ParamField(0x70, ParamType.I32)] - public int FlyDashFL2 - { - get => _FlyDashFL2; - set => WriteParamField(ref _FlyDashFL2, value); - } - private int _FlyDashFL2; - - [ParamField(0x74, ParamType.I32)] - public int FlyDashFR2 - { - get => _FlyDashFR2; - set => WriteParamField(ref _FlyDashFR2, value); - } - private int _FlyDashFR2; - - [ParamField(0x78, ParamType.I32)] - public int DashEscapeF - { - get => _DashEscapeF; - set => WriteParamField(ref _DashEscapeF, value); - } - private int _DashEscapeF; - - [ParamField(0x7C, ParamType.I32)] - public int DashEscapeB - { - get => _DashEscapeB; - set => WriteParamField(ref _DashEscapeB, value); - } - private int _DashEscapeB; - - [ParamField(0x80, ParamType.I32)] - public int DashEscapeL - { - get => _DashEscapeL; - set => WriteParamField(ref _DashEscapeL, value); - } - private int _DashEscapeL; - - [ParamField(0x84, ParamType.I32)] - public int DashEscapeR - { - get => _DashEscapeR; - set => WriteParamField(ref _DashEscapeR, value); - } - private int _DashEscapeR; - - [ParamField(0x88, ParamType.I32)] - public int AnalogMoveParamId - { - get => _AnalogMoveParamId; - set => WriteParamField(ref _AnalogMoveParamId, value); - } - private int _AnalogMoveParamId; - - [ParamField(0x8C, ParamType.Dummy8, 4)] - public byte[] Pad - { - get => _Pad; - set => WriteParamField(ref _Pad, value); - } - private byte[] _Pad = null!; + public MoveParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} + + [ParamField(0x0, ParamType.I32)] + public int StayId + { + get => _StayId; + set => WriteParamField(ref _StayId, value); + } + private int _StayId; + + [ParamField(0x4, ParamType.I32)] + public int WalkF + { + get => _WalkF; + set => WriteParamField(ref _WalkF, value); + } + private int _WalkF; + + [ParamField(0x8, ParamType.I32)] + public int WalkB + { + get => _WalkB; + set => WriteParamField(ref _WalkB, value); + } + private int _WalkB; + + [ParamField(0xC, ParamType.I32)] + public int WalkL + { + get => _WalkL; + set => WriteParamField(ref _WalkL, value); + } + private int _WalkL; + + [ParamField(0x10, ParamType.I32)] + public int WalkR + { + get => _WalkR; + set => WriteParamField(ref _WalkR, value); + } + private int _WalkR; + + [ParamField(0x14, ParamType.I32)] + public int DashF + { + get => _DashF; + set => WriteParamField(ref _DashF, value); + } + private int _DashF; + + [ParamField(0x18, ParamType.I32)] + public int DashB + { + get => _DashB; + set => WriteParamField(ref _DashB, value); + } + private int _DashB; + + [ParamField(0x1C, ParamType.I32)] + public int DashL + { + get => _DashL; + set => WriteParamField(ref _DashL, value); + } + private int _DashL; + + [ParamField(0x20, ParamType.I32)] + public int DashR + { + get => _DashR; + set => WriteParamField(ref _DashR, value); + } + private int _DashR; + + [ParamField(0x24, ParamType.I32)] + public int SuperDash + { + get => _SuperDash; + set => WriteParamField(ref _SuperDash, value); + } + private int _SuperDash; + + [ParamField(0x28, ParamType.I32)] + public int EscapeF + { + get => _EscapeF; + set => WriteParamField(ref _EscapeF, value); + } + private int _EscapeF; + + [ParamField(0x2C, ParamType.I32)] + public int EscapeB + { + get => _EscapeB; + set => WriteParamField(ref _EscapeB, value); + } + private int _EscapeB; + + [ParamField(0x30, ParamType.I32)] + public int EscapeL + { + get => _EscapeL; + set => WriteParamField(ref _EscapeL, value); + } + private int _EscapeL; + + [ParamField(0x34, ParamType.I32)] + public int EscapeR + { + get => _EscapeR; + set => WriteParamField(ref _EscapeR, value); + } + private int _EscapeR; + + [ParamField(0x38, ParamType.I32)] + public int TurnL + { + get => _TurnL; + set => WriteParamField(ref _TurnL, value); + } + private int _TurnL; + + [ParamField(0x3C, ParamType.I32)] + public int TrunR + { + get => _TrunR; + set => WriteParamField(ref _TrunR, value); + } + private int _TrunR; + + [ParamField(0x40, ParamType.I32)] + public int LargeTurnL + { + get => _LargeTurnL; + set => WriteParamField(ref _LargeTurnL, value); + } + private int _LargeTurnL; + + [ParamField(0x44, ParamType.I32)] + public int LargeTurnR + { + get => _LargeTurnR; + set => WriteParamField(ref _LargeTurnR, value); + } + private int _LargeTurnR; + + [ParamField(0x48, ParamType.I32)] + public int StepMove + { + get => _StepMove; + set => WriteParamField(ref _StepMove, value); + } + private int _StepMove; + + [ParamField(0x4C, ParamType.I32)] + public int FlyStay + { + get => _FlyStay; + set => WriteParamField(ref _FlyStay, value); + } + private int _FlyStay; + + [ParamField(0x50, ParamType.I32)] + public int FlyWalkF + { + get => _FlyWalkF; + set => WriteParamField(ref _FlyWalkF, value); + } + private int _FlyWalkF; + + [ParamField(0x54, ParamType.I32)] + public int FlyWalkFL + { + get => _FlyWalkFL; + set => WriteParamField(ref _FlyWalkFL, value); + } + private int _FlyWalkFL; + + [ParamField(0x58, ParamType.I32)] + public int FlyWalkFR + { + get => _FlyWalkFR; + set => WriteParamField(ref _FlyWalkFR, value); + } + private int _FlyWalkFR; + + [ParamField(0x5C, ParamType.I32)] + public int FlyWalkFL2 + { + get => _FlyWalkFL2; + set => WriteParamField(ref _FlyWalkFL2, value); + } + private int _FlyWalkFL2; + + [ParamField(0x60, ParamType.I32)] + public int FlyWalkFR2 + { + get => _FlyWalkFR2; + set => WriteParamField(ref _FlyWalkFR2, value); + } + private int _FlyWalkFR2; + + [ParamField(0x64, ParamType.I32)] + public int FlyDashF + { + get => _FlyDashF; + set => WriteParamField(ref _FlyDashF, value); + } + private int _FlyDashF; + + [ParamField(0x68, ParamType.I32)] + public int FlyDashFL + { + get => _FlyDashFL; + set => WriteParamField(ref _FlyDashFL, value); + } + private int _FlyDashFL; + + [ParamField(0x6C, ParamType.I32)] + public int FlyDashFR + { + get => _FlyDashFR; + set => WriteParamField(ref _FlyDashFR, value); + } + private int _FlyDashFR; + + [ParamField(0x70, ParamType.I32)] + public int FlyDashFL2 + { + get => _FlyDashFL2; + set => WriteParamField(ref _FlyDashFL2, value); + } + private int _FlyDashFL2; + [ParamField(0x74, ParamType.I32)] + public int FlyDashFR2 + { + get => _FlyDashFR2; + set => WriteParamField(ref _FlyDashFR2, value); + } + private int _FlyDashFR2; + + [ParamField(0x78, ParamType.I32)] + public int DashEscapeF + { + get => _DashEscapeF; + set => WriteParamField(ref _DashEscapeF, value); + } + private int _DashEscapeF; + + [ParamField(0x7C, ParamType.I32)] + public int DashEscapeB + { + get => _DashEscapeB; + set => WriteParamField(ref _DashEscapeB, value); } + private int _DashEscapeB; + + [ParamField(0x80, ParamType.I32)] + public int DashEscapeL + { + get => _DashEscapeL; + set => WriteParamField(ref _DashEscapeL, value); + } + private int _DashEscapeL; + + [ParamField(0x84, ParamType.I32)] + public int DashEscapeR + { + get => _DashEscapeR; + set => WriteParamField(ref _DashEscapeR, value); + } + private int _DashEscapeR; + + [ParamField(0x88, ParamType.I32)] + public int AnalogMoveParamId + { + get => _AnalogMoveParamId; + set => WriteParamField(ref _AnalogMoveParamId, value); + } + private int _AnalogMoveParamId; + + [ParamField(0x8C, ParamType.Dummy8, 4)] + public byte[] Pad + { + get => _Pad; + set => WriteParamField(ref _Pad, value); + } + private byte[] _Pad = null!; + } diff --git a/src/SoulMemory/DarkSouls1/Parameters/NpcParam.cs b/src/SoulMemory/DarkSouls1/Parameters/NpcParam.cs index 37cc2bf..1cac166 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/NpcParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/NpcParam.cs @@ -18,1301 +18,1300 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters +namespace SoulMemory.DarkSouls1.Parameters; + +[ExcludeFromCodeCoverage] +public class NpcParam : BaseParam { - [ExcludeFromCodeCoverage] - public class NpcParam : BaseParam - { - public NpcParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - - [ParamField(0x0, ParamType.I32)] - public int BehaviorVariationId - { - get => _BehaviorVariationId; - set => WriteParamField(ref _BehaviorVariationId, value); - } - private int _BehaviorVariationId; - - [ParamField(0x4, ParamType.I32)] - public int AiThinkId - { - get => _AiThinkId; - set => WriteParamField(ref _AiThinkId, value); - } - private int _AiThinkId; - - [ParamField(0x8, ParamType.I32)] - public int NameId - { - get => _NameId; - set => WriteParamField(ref _NameId, value); - } - private int _NameId; - - [ParamField(0xC, ParamType.F32)] - public float TurnVellocity - { - get => _TurnVellocity; - set => WriteParamField(ref _TurnVellocity, value); - } - private float _TurnVellocity; - - [ParamField(0x10, ParamType.F32)] - public float HitHeight - { - get => _HitHeight; - set => WriteParamField(ref _HitHeight, value); - } - private float _HitHeight; - - [ParamField(0x14, ParamType.F32)] - public float HitRadius - { - get => _HitRadius; - set => WriteParamField(ref _HitRadius, value); - } - private float _HitRadius; - - [ParamField(0x18, ParamType.U32)] - public uint Weight - { - get => _Weight; - set => WriteParamField(ref _Weight, value); - } - private uint _Weight; - - [ParamField(0x1C, ParamType.F32)] - public float HitYOffset - { - get => _HitYOffset; - set => WriteParamField(ref _HitYOffset, value); - } - private float _HitYOffset; - - [ParamField(0x20, ParamType.U32)] - public uint Hp - { - get => _Hp; - set => WriteParamField(ref _Hp, value); - } - private uint _Hp; - - [ParamField(0x24, ParamType.U32)] - public uint Mp - { - get => _Mp; - set => WriteParamField(ref _Mp, value); - } - private uint _Mp; - - [ParamField(0x28, ParamType.U32)] - public uint GetSoul - { - get => _GetSoul; - set => WriteParamField(ref _GetSoul, value); - } - private uint _GetSoul; - - [ParamField(0x2C, ParamType.I32)] - public int ItemLotId_1 - { - get => _ItemLotId_1; - set => WriteParamField(ref _ItemLotId_1, value); - } - private int _ItemLotId_1; - - [ParamField(0x30, ParamType.I32)] - public int ItemLotId_2 - { - get => _ItemLotId_2; - set => WriteParamField(ref _ItemLotId_2, value); - } - private int _ItemLotId_2; - - [ParamField(0x34, ParamType.I32)] - public int ItemLotId_3 - { - get => _ItemLotId_3; - set => WriteParamField(ref _ItemLotId_3, value); - } - private int _ItemLotId_3; - - [ParamField(0x38, ParamType.I32)] - public int ItemLotId_4 - { - get => _ItemLotId_4; - set => WriteParamField(ref _ItemLotId_4, value); - } - private int _ItemLotId_4; - - [ParamField(0x3C, ParamType.I32)] - public int ItemLotId_5 - { - get => _ItemLotId_5; - set => WriteParamField(ref _ItemLotId_5, value); - } - private int _ItemLotId_5; - - [ParamField(0x40, ParamType.I32)] - public int ItemLotId_6 - { - get => _ItemLotId_6; - set => WriteParamField(ref _ItemLotId_6, value); - } - private int _ItemLotId_6; - - [ParamField(0x44, ParamType.I32)] - public int HumanityLotId - { - get => _HumanityLotId; - set => WriteParamField(ref _HumanityLotId, value); - } - private int _HumanityLotId; - - [ParamField(0x48, ParamType.I32)] - public int SpEffectID0 - { - get => _SpEffectID0; - set => WriteParamField(ref _SpEffectID0, value); - } - private int _SpEffectID0; - - [ParamField(0x4C, ParamType.I32)] - public int SpEffectID1 - { - get => _SpEffectID1; - set => WriteParamField(ref _SpEffectID1, value); - } - private int _SpEffectID1; - - [ParamField(0x50, ParamType.I32)] - public int SpEffectID2 - { - get => _SpEffectID2; - set => WriteParamField(ref _SpEffectID2, value); - } - private int _SpEffectID2; - - [ParamField(0x54, ParamType.I32)] - public int SpEffectID3 - { - get => _SpEffectID3; - set => WriteParamField(ref _SpEffectID3, value); - } - private int _SpEffectID3; - - [ParamField(0x58, ParamType.I32)] - public int SpEffectID4 - { - get => _SpEffectID4; - set => WriteParamField(ref _SpEffectID4, value); - } - private int _SpEffectID4; - - [ParamField(0x5C, ParamType.I32)] - public int SpEffectID5 - { - get => _SpEffectID5; - set => WriteParamField(ref _SpEffectID5, value); - } - private int _SpEffectID5; - - [ParamField(0x60, ParamType.I32)] - public int SpEffectID6 - { - get => _SpEffectID6; - set => WriteParamField(ref _SpEffectID6, value); - } - private int _SpEffectID6; - - [ParamField(0x64, ParamType.I32)] - public int SpEffectID7 - { - get => _SpEffectID7; - set => WriteParamField(ref _SpEffectID7, value); - } - private int _SpEffectID7; - - [ParamField(0x68, ParamType.I32)] - public int GameClearSpEffectID - { - get => _GameClearSpEffectID; - set => WriteParamField(ref _GameClearSpEffectID, value); - } - private int _GameClearSpEffectID; - - [ParamField(0x6C, ParamType.F32)] - public float PhysGuardCutRate - { - get => _PhysGuardCutRate; - set => WriteParamField(ref _PhysGuardCutRate, value); - } - private float _PhysGuardCutRate; - - [ParamField(0x70, ParamType.F32)] - public float MagGuardCutRate - { - get => _MagGuardCutRate; - set => WriteParamField(ref _MagGuardCutRate, value); - } - private float _MagGuardCutRate; - - [ParamField(0x74, ParamType.F32)] - public float FireGuardCutRate - { - get => _FireGuardCutRate; - set => WriteParamField(ref _FireGuardCutRate, value); - } - private float _FireGuardCutRate; - - [ParamField(0x78, ParamType.F32)] - public float ThunGuardCutRate - { - get => _ThunGuardCutRate; - set => WriteParamField(ref _ThunGuardCutRate, value); - } - private float _ThunGuardCutRate; - - [ParamField(0x7C, ParamType.I32)] - public int AnimIdOffset - { - get => _AnimIdOffset; - set => WriteParamField(ref _AnimIdOffset, value); - } - private int _AnimIdOffset; - - [ParamField(0x80, ParamType.I32)] - public int MoveAnimId - { - get => _MoveAnimId; - set => WriteParamField(ref _MoveAnimId, value); - } - private int _MoveAnimId; - - [ParamField(0x84, ParamType.I32)] - public int SpMoveAnimId1 - { - get => _SpMoveAnimId1; - set => WriteParamField(ref _SpMoveAnimId1, value); - } - private int _SpMoveAnimId1; - - [ParamField(0x88, ParamType.I32)] - public int SpMoveAnimId2 - { - get => _SpMoveAnimId2; - set => WriteParamField(ref _SpMoveAnimId2, value); - } - private int _SpMoveAnimId2; - - [ParamField(0x8C, ParamType.F32)] - public float NetworkWarpDist - { - get => _NetworkWarpDist; - set => WriteParamField(ref _NetworkWarpDist, value); - } - private float _NetworkWarpDist; - - [ParamField(0x90, ParamType.I32)] - public int DbgBehaviorR1 - { - get => _DbgBehaviorR1; - set => WriteParamField(ref _DbgBehaviorR1, value); - } - private int _DbgBehaviorR1; - - [ParamField(0x94, ParamType.I32)] - public int DbgBehaviorL1 - { - get => _DbgBehaviorL1; - set => WriteParamField(ref _DbgBehaviorL1, value); - } - private int _DbgBehaviorL1; - - [ParamField(0x98, ParamType.I32)] - public int DbgBehaviorR2 - { - get => _DbgBehaviorR2; - set => WriteParamField(ref _DbgBehaviorR2, value); - } - private int _DbgBehaviorR2; - - [ParamField(0x9C, ParamType.I32)] - public int DbgBehaviorL2 - { - get => _DbgBehaviorL2; - set => WriteParamField(ref _DbgBehaviorL2, value); - } - private int _DbgBehaviorL2; - - [ParamField(0xA0, ParamType.I32)] - public int DbgBehaviorRL - { - get => _DbgBehaviorRL; - set => WriteParamField(ref _DbgBehaviorRL, value); - } - private int _DbgBehaviorRL; - - [ParamField(0xA4, ParamType.I32)] - public int DbgBehaviorRR - { - get => _DbgBehaviorRR; - set => WriteParamField(ref _DbgBehaviorRR, value); - } - private int _DbgBehaviorRR; - - [ParamField(0xA8, ParamType.I32)] - public int DbgBehaviorRD - { - get => _DbgBehaviorRD; - set => WriteParamField(ref _DbgBehaviorRD, value); - } - private int _DbgBehaviorRD; - - [ParamField(0xAC, ParamType.I32)] - public int DbgBehaviorRU - { - get => _DbgBehaviorRU; - set => WriteParamField(ref _DbgBehaviorRU, value); - } - private int _DbgBehaviorRU; - - [ParamField(0xB0, ParamType.I32)] - public int DbgBehaviorLL - { - get => _DbgBehaviorLL; - set => WriteParamField(ref _DbgBehaviorLL, value); - } - private int _DbgBehaviorLL; - - [ParamField(0xB4, ParamType.I32)] - public int DbgBehaviorLR - { - get => _DbgBehaviorLR; - set => WriteParamField(ref _DbgBehaviorLR, value); - } - private int _DbgBehaviorLR; - - [ParamField(0xB8, ParamType.I32)] - public int DbgBehaviorLD - { - get => _DbgBehaviorLD; - set => WriteParamField(ref _DbgBehaviorLD, value); - } - private int _DbgBehaviorLD; - - [ParamField(0xBC, ParamType.I32)] - public int DbgBehaviorLU - { - get => _DbgBehaviorLU; - set => WriteParamField(ref _DbgBehaviorLU, value); - } - private int _DbgBehaviorLU; - - [ParamField(0xC0, ParamType.I32)] - public int AnimIdOffset2 - { - get => _AnimIdOffset2; - set => WriteParamField(ref _AnimIdOffset2, value); - } - private int _AnimIdOffset2; - - [ParamField(0xC4, ParamType.F32)] - public float PartsDamageRate1 - { - get => _PartsDamageRate1; - set => WriteParamField(ref _PartsDamageRate1, value); - } - private float _PartsDamageRate1; - - [ParamField(0xC8, ParamType.F32)] - public float PartsDamageRate2 - { - get => _PartsDamageRate2; - set => WriteParamField(ref _PartsDamageRate2, value); - } - private float _PartsDamageRate2; - - [ParamField(0xCC, ParamType.F32)] - public float PartsDamageRate3 - { - get => _PartsDamageRate3; - set => WriteParamField(ref _PartsDamageRate3, value); - } - private float _PartsDamageRate3; - - [ParamField(0xD0, ParamType.F32)] - public float PartsDamageRate4 - { - get => _PartsDamageRate4; - set => WriteParamField(ref _PartsDamageRate4, value); - } - private float _PartsDamageRate4; - - [ParamField(0xD4, ParamType.F32)] - public float PartsDamageRate5 - { - get => _PartsDamageRate5; - set => WriteParamField(ref _PartsDamageRate5, value); - } - private float _PartsDamageRate5; - - [ParamField(0xD8, ParamType.F32)] - public float PartsDamageRate6 - { - get => _PartsDamageRate6; - set => WriteParamField(ref _PartsDamageRate6, value); - } - private float _PartsDamageRate6; - - [ParamField(0xDC, ParamType.F32)] - public float PartsDamageRate7 - { - get => _PartsDamageRate7; - set => WriteParamField(ref _PartsDamageRate7, value); - } - private float _PartsDamageRate7; - - [ParamField(0xE0, ParamType.F32)] - public float PartsDamageRate8 - { - get => _PartsDamageRate8; - set => WriteParamField(ref _PartsDamageRate8, value); - } - private float _PartsDamageRate8; - - [ParamField(0xE4, ParamType.F32)] - public float WeakPartsDamageRate - { - get => _WeakPartsDamageRate; - set => WriteParamField(ref _WeakPartsDamageRate, value); - } - private float _WeakPartsDamageRate; - - [ParamField(0xE8, ParamType.F32)] - public float SuperArmorRecoverCorrection - { - get => _SuperArmorRecoverCorrection; - set => WriteParamField(ref _SuperArmorRecoverCorrection, value); - } - private float _SuperArmorRecoverCorrection; - - [ParamField(0xEC, ParamType.F32)] - public float SuperArmorBrakeKnockbackDist - { - get => _SuperArmorBrakeKnockbackDist; - set => WriteParamField(ref _SuperArmorBrakeKnockbackDist, value); - } - private float _SuperArmorBrakeKnockbackDist; - - [ParamField(0xF0, ParamType.U16)] - public ushort Stamina - { - get => _Stamina; - set => WriteParamField(ref _Stamina, value); - } - private ushort _Stamina; - - [ParamField(0xF2, ParamType.U16)] - public ushort StaminaRecoverBaseVel - { - get => _StaminaRecoverBaseVel; - set => WriteParamField(ref _StaminaRecoverBaseVel, value); - } - private ushort _StaminaRecoverBaseVel; - - [ParamField(0xF4, ParamType.U16)] - public ushort Def_phys - { - get => _Def_phys; - set => WriteParamField(ref _Def_phys, value); - } - private ushort _Def_phys; - - [ParamField(0xF6, ParamType.I16)] - public short Def_slash - { - get => _Def_slash; - set => WriteParamField(ref _Def_slash, value); - } - private short _Def_slash; - - [ParamField(0xF8, ParamType.I16)] - public short Def_blow - { - get => _Def_blow; - set => WriteParamField(ref _Def_blow, value); - } - private short _Def_blow; - - [ParamField(0xFA, ParamType.I16)] - public short Def_thrust - { - get => _Def_thrust; - set => WriteParamField(ref _Def_thrust, value); - } - private short _Def_thrust; - - [ParamField(0xFC, ParamType.U16)] - public ushort Def_mag - { - get => _Def_mag; - set => WriteParamField(ref _Def_mag, value); - } - private ushort _Def_mag; - - [ParamField(0xFE, ParamType.U16)] - public ushort Def_fire - { - get => _Def_fire; - set => WriteParamField(ref _Def_fire, value); - } - private ushort _Def_fire; - - [ParamField(0x100, ParamType.U16)] - public ushort Def_thunder - { - get => _Def_thunder; - set => WriteParamField(ref _Def_thunder, value); - } - private ushort _Def_thunder; - - [ParamField(0x102, ParamType.U16)] - public ushort DefFlickPower - { - get => _DefFlickPower; - set => WriteParamField(ref _DefFlickPower, value); - } - private ushort _DefFlickPower; - - [ParamField(0x104, ParamType.U16)] - public ushort Resist_poison - { - get => _Resist_poison; - set => WriteParamField(ref _Resist_poison, value); - } - private ushort _Resist_poison; - - [ParamField(0x106, ParamType.U16)] - public ushort Resist_desease - { - get => _Resist_desease; - set => WriteParamField(ref _Resist_desease, value); - } - private ushort _Resist_desease; - - [ParamField(0x108, ParamType.U16)] - public ushort Resist_blood - { - get => _Resist_blood; - set => WriteParamField(ref _Resist_blood, value); - } - private ushort _Resist_blood; - - [ParamField(0x10A, ParamType.U16)] - public ushort Resist_curse - { - get => _Resist_curse; - set => WriteParamField(ref _Resist_curse, value); - } - private ushort _Resist_curse; - - [ParamField(0x10C, ParamType.I16)] - public short GhostModelId - { - get => _GhostModelId; - set => WriteParamField(ref _GhostModelId, value); - } - private short _GhostModelId; - - [ParamField(0x10E, ParamType.I16)] - public short NormalChangeResouceId - { - get => _NormalChangeResouceId; - set => WriteParamField(ref _NormalChangeResouceId, value); - } - private short _NormalChangeResouceId; - - [ParamField(0x110, ParamType.I16)] - public short GuardAngle - { - get => _GuardAngle; - set => WriteParamField(ref _GuardAngle, value); - } - private short _GuardAngle; - - [ParamField(0x112, ParamType.I16)] - public short SlashGuardCutRate - { - get => _SlashGuardCutRate; - set => WriteParamField(ref _SlashGuardCutRate, value); - } - private short _SlashGuardCutRate; - - [ParamField(0x114, ParamType.I16)] - public short BlowGuardCutRate - { - get => _BlowGuardCutRate; - set => WriteParamField(ref _BlowGuardCutRate, value); - } - private short _BlowGuardCutRate; - - [ParamField(0x116, ParamType.I16)] - public short ThrustGuardCutRate - { - get => _ThrustGuardCutRate; - set => WriteParamField(ref _ThrustGuardCutRate, value); - } - private short _ThrustGuardCutRate; - - [ParamField(0x118, ParamType.I16)] - public short SuperArmorDurability - { - get => _SuperArmorDurability; - set => WriteParamField(ref _SuperArmorDurability, value); - } - private short _SuperArmorDurability; - - [ParamField(0x11A, ParamType.I16)] - public short NormalChangeTexChrId - { - get => _NormalChangeTexChrId; - set => WriteParamField(ref _NormalChangeTexChrId, value); - } - private short _NormalChangeTexChrId; - - [ParamField(0x11C, ParamType.U16)] - public ushort DropType - { - get => _DropType; - set => WriteParamField(ref _DropType, value); - } - private ushort _DropType; - - [ParamField(0x11E, ParamType.U8)] - public byte KnockbackRate - { - get => _KnockbackRate; - set => WriteParamField(ref _KnockbackRate, value); - } - private byte _KnockbackRate; - - [ParamField(0x11F, ParamType.U8)] - public byte KnockbackParamId - { - get => _KnockbackParamId; - set => WriteParamField(ref _KnockbackParamId, value); - } - private byte _KnockbackParamId; - - [ParamField(0x120, ParamType.U8)] - public byte FallDamageDump - { - get => _FallDamageDump; - set => WriteParamField(ref _FallDamageDump, value); - } - private byte _FallDamageDump; - - [ParamField(0x121, ParamType.U8)] - public byte StaminaGuardDef - { - get => _StaminaGuardDef; - set => WriteParamField(ref _StaminaGuardDef, value); - } - private byte _StaminaGuardDef; - - [ParamField(0x122, ParamType.U8)] - public byte PcAttrB - { - get => _PcAttrB; - set => WriteParamField(ref _PcAttrB, value); - } - private byte _PcAttrB; - - [ParamField(0x123, ParamType.U8)] - public byte PcAttrW - { - get => _PcAttrW; - set => WriteParamField(ref _PcAttrW, value); - } - private byte _PcAttrW; - - [ParamField(0x124, ParamType.U8)] - public byte PcAttrL - { - get => _PcAttrL; - set => WriteParamField(ref _PcAttrL, value); - } - private byte _PcAttrL; - - [ParamField(0x125, ParamType.U8)] - public byte PcAttrR - { - get => _PcAttrR; - set => WriteParamField(ref _PcAttrR, value); - } - private byte _PcAttrR; - - [ParamField(0x126, ParamType.U8)] - public byte AreaAttrB - { - get => _AreaAttrB; - set => WriteParamField(ref _AreaAttrB, value); - } - private byte _AreaAttrB; - - [ParamField(0x127, ParamType.U8)] - public byte AreaAttrW - { - get => _AreaAttrW; - set => WriteParamField(ref _AreaAttrW, value); - } - private byte _AreaAttrW; - - [ParamField(0x128, ParamType.U8)] - public byte AreaAttrL - { - get => _AreaAttrL; - set => WriteParamField(ref _AreaAttrL, value); - } - private byte _AreaAttrL; - - [ParamField(0x129, ParamType.U8)] - public byte AreaAttrR - { - get => _AreaAttrR; - set => WriteParamField(ref _AreaAttrR, value); - } - private byte _AreaAttrR; - - [ParamField(0x12A, ParamType.U8)] - public byte MpRecoverBaseVel - { - get => _MpRecoverBaseVel; - set => WriteParamField(ref _MpRecoverBaseVel, value); - } - private byte _MpRecoverBaseVel; - - [ParamField(0x12B, ParamType.U8)] - public byte FlickDamageCutRate - { - get => _FlickDamageCutRate; - set => WriteParamField(ref _FlickDamageCutRate, value); - } - private byte _FlickDamageCutRate; - - [ParamField(0x12C, ParamType.I8)] - public sbyte DefaultLodParamId - { - get => _DefaultLodParamId; - set => WriteParamField(ref _DefaultLodParamId, value); - } - private sbyte _DefaultLodParamId; - - [ParamField(0x12D, ParamType.U8)] - public byte DrawType - { - get => _DrawType; - set => WriteParamField(ref _DrawType, value); - } - private byte _DrawType; - - [ParamField(0x12E, ParamType.U8)] - public byte NpcType - { - get => _NpcType; - set => WriteParamField(ref _NpcType, value); - } - private byte _NpcType; - - [ParamField(0x12F, ParamType.U8)] - public byte TeamType - { - get => _TeamType; - set => WriteParamField(ref _TeamType, value); - } - private byte _TeamType; - - [ParamField(0x130, ParamType.U8)] - public byte MoveType - { - get => _MoveType; - set => WriteParamField(ref _MoveType, value); - } - private byte _MoveType; - - [ParamField(0x131, ParamType.U8)] - public byte LockDist - { - get => _LockDist; - set => WriteParamField(ref _LockDist, value); - } - private byte _LockDist; - - [ParamField(0x132, ParamType.U8)] - public byte Material - { - get => _Material; - set => WriteParamField(ref _Material, value); - } - private byte _Material; - - [ParamField(0x133, ParamType.U8)] - public byte MaterialSfx - { - get => _MaterialSfx; - set => WriteParamField(ref _MaterialSfx, value); - } - private byte _MaterialSfx; - - [ParamField(0x134, ParamType.U8)] - public byte Material_Weak - { - get => _Material_Weak; - set => WriteParamField(ref _Material_Weak, value); - } - private byte _Material_Weak; - - [ParamField(0x135, ParamType.U8)] - public byte MaterialSfx_Weak - { - get => _MaterialSfx_Weak; - set => WriteParamField(ref _MaterialSfx_Weak, value); - } - private byte _MaterialSfx_Weak; - - [ParamField(0x136, ParamType.U8)] - public byte PartsDamageType - { - get => _PartsDamageType; - set => WriteParamField(ref _PartsDamageType, value); - } - private byte _PartsDamageType; - - [ParamField(0x137, ParamType.U8)] - public byte MaxUndurationAng - { - get => _MaxUndurationAng; - set => WriteParamField(ref _MaxUndurationAng, value); - } - private byte _MaxUndurationAng; - - [ParamField(0x138, ParamType.I8)] - public sbyte GuardLevel - { - get => _GuardLevel; - set => WriteParamField(ref _GuardLevel, value); - } - private sbyte _GuardLevel; - - [ParamField(0x139, ParamType.U8)] - public byte BurnSfxType - { - get => _BurnSfxType; - set => WriteParamField(ref _BurnSfxType, value); - } - private byte _BurnSfxType; - - [ParamField(0x13A, ParamType.I8)] - public sbyte PoisonGuardResist - { - get => _PoisonGuardResist; - set => WriteParamField(ref _PoisonGuardResist, value); - } - private sbyte _PoisonGuardResist; - - [ParamField(0x13B, ParamType.I8)] - public sbyte DiseaseGuardResist - { - get => _DiseaseGuardResist; - set => WriteParamField(ref _DiseaseGuardResist, value); - } - private sbyte _DiseaseGuardResist; - - [ParamField(0x13C, ParamType.I8)] - public sbyte BloodGuardResist - { - get => _BloodGuardResist; - set => WriteParamField(ref _BloodGuardResist, value); - } - private sbyte _BloodGuardResist; - - [ParamField(0x13D, ParamType.I8)] - public sbyte CurseGuardResist - { - get => _CurseGuardResist; - set => WriteParamField(ref _CurseGuardResist, value); - } - private sbyte _CurseGuardResist; - - [ParamField(0x13E, ParamType.U8)] - public byte ParryAttack - { - get => _ParryAttack; - set => WriteParamField(ref _ParryAttack, value); - } - private byte _ParryAttack; - - [ParamField(0x13F, ParamType.U8)] - public byte ParryDefence - { - get => _ParryDefence; - set => WriteParamField(ref _ParryDefence, value); - } - private byte _ParryDefence; - - [ParamField(0x140, ParamType.U8)] - public byte SfxSize - { - get => _SfxSize; - set => WriteParamField(ref _SfxSize, value); - } - private byte _SfxSize; - - [ParamField(0x141, ParamType.U8)] - public byte PushOutCamRegionRadius - { - get => _PushOutCamRegionRadius; - set => WriteParamField(ref _PushOutCamRegionRadius, value); - } - private byte _PushOutCamRegionRadius; - - [ParamField(0x142, ParamType.U8)] - public byte HitStopType - { - get => _HitStopType; - set => WriteParamField(ref _HitStopType, value); - } - private byte _HitStopType; - - [ParamField(0x143, ParamType.U8)] - public byte LadderEndChkOffsetTop - { - get => _LadderEndChkOffsetTop; - set => WriteParamField(ref _LadderEndChkOffsetTop, value); - } - private byte _LadderEndChkOffsetTop; - - [ParamField(0x144, ParamType.U8)] - public byte LadderEndChkOffsetLow - { - get => _LadderEndChkOffsetLow; - set => WriteParamField(ref _LadderEndChkOffsetLow, value); - } - private byte _LadderEndChkOffsetLow; - - #region BitField UseRagdollCamHitBitfield ============================================================================== - - [ParamField(0x145, ParamType.U8)] - public byte UseRagdollCamHitBitfield - { - get => _UseRagdollCamHitBitfield; - set => WriteParamField(ref _UseRagdollCamHitBitfield, value); - } - private byte _UseRagdollCamHitBitfield; - - [ParamBitField(nameof(UseRagdollCamHitBitfield), bits: 1, bitsOffset: 0)] - public byte UseRagdollCamHit - { - get => GetbitfieldValue(_UseRagdollCamHitBitfield); - set => SetBitfieldValue(ref _UseRagdollCamHitBitfield, value); - } - - [ParamBitField(nameof(UseRagdollCamHitBitfield), bits: 1, bitsOffset: 1)] - public byte DisableClothRigidHit - { - get => GetbitfieldValue(_UseRagdollCamHitBitfield); - set => SetBitfieldValue(ref _UseRagdollCamHitBitfield, value); - } - - [ParamBitField(nameof(UseRagdollCamHitBitfield), bits: 1, bitsOffset: 2)] - public byte UseRagdoll - { - get => GetbitfieldValue(_UseRagdollCamHitBitfield); - set => SetBitfieldValue(ref _UseRagdollCamHitBitfield, value); - } - - [ParamBitField(nameof(UseRagdollCamHitBitfield), bits: 1, bitsOffset: 3)] - public byte IsDemon - { - get => GetbitfieldValue(_UseRagdollCamHitBitfield); - set => SetBitfieldValue(ref _UseRagdollCamHitBitfield, value); - } - - [ParamBitField(nameof(UseRagdollCamHitBitfield), bits: 1, bitsOffset: 4)] - public byte IsGhost - { - get => GetbitfieldValue(_UseRagdollCamHitBitfield); - set => SetBitfieldValue(ref _UseRagdollCamHitBitfield, value); - } - - [ParamBitField(nameof(UseRagdollCamHitBitfield), bits: 1, bitsOffset: 5)] - public byte IsNoDamageMotion - { - get => GetbitfieldValue(_UseRagdollCamHitBitfield); - set => SetBitfieldValue(ref _UseRagdollCamHitBitfield, value); - } - - [ParamBitField(nameof(UseRagdollCamHitBitfield), bits: 1, bitsOffset: 6)] - public byte IsUnduration - { - get => GetbitfieldValue(_UseRagdollCamHitBitfield); - set => SetBitfieldValue(ref _UseRagdollCamHitBitfield, value); - } - - [ParamBitField(nameof(UseRagdollCamHitBitfield), bits: 1, bitsOffset: 7)] - public byte IsChangeWanderGhost - { - get => GetbitfieldValue(_UseRagdollCamHitBitfield); - set => SetBitfieldValue(ref _UseRagdollCamHitBitfield, value); - } - - #endregion BitField UseRagdollCamHitBitfield - - #region BitField ModelDispMask0Bitfield ============================================================================== - - [ParamField(0x146, ParamType.U8)] - public byte ModelDispMask0Bitfield - { - get => _ModelDispMask0Bitfield; - set => WriteParamField(ref _ModelDispMask0Bitfield, value); - } - private byte _ModelDispMask0Bitfield; - - [ParamBitField(nameof(ModelDispMask0Bitfield), bits: 1, bitsOffset: 0)] - public byte ModelDispMask0 - { - get => GetbitfieldValue(_ModelDispMask0Bitfield); - set => SetBitfieldValue(ref _ModelDispMask0Bitfield, value); - } - - [ParamBitField(nameof(ModelDispMask0Bitfield), bits: 1, bitsOffset: 1)] - public byte ModelDispMask1 - { - get => GetbitfieldValue(_ModelDispMask0Bitfield); - set => SetBitfieldValue(ref _ModelDispMask0Bitfield, value); - } - - [ParamBitField(nameof(ModelDispMask0Bitfield), bits: 1, bitsOffset: 2)] - public byte ModelDispMask2 - { - get => GetbitfieldValue(_ModelDispMask0Bitfield); - set => SetBitfieldValue(ref _ModelDispMask0Bitfield, value); - } - - [ParamBitField(nameof(ModelDispMask0Bitfield), bits: 1, bitsOffset: 3)] - public byte ModelDispMask3 - { - get => GetbitfieldValue(_ModelDispMask0Bitfield); - set => SetBitfieldValue(ref _ModelDispMask0Bitfield, value); - } - - [ParamBitField(nameof(ModelDispMask0Bitfield), bits: 1, bitsOffset: 4)] - public byte ModelDispMask4 - { - get => GetbitfieldValue(_ModelDispMask0Bitfield); - set => SetBitfieldValue(ref _ModelDispMask0Bitfield, value); - } - - [ParamBitField(nameof(ModelDispMask0Bitfield), bits: 1, bitsOffset: 5)] - public byte ModelDispMask5 - { - get => GetbitfieldValue(_ModelDispMask0Bitfield); - set => SetBitfieldValue(ref _ModelDispMask0Bitfield, value); - } - - [ParamBitField(nameof(ModelDispMask0Bitfield), bits: 1, bitsOffset: 6)] - public byte ModelDispMask6 - { - get => GetbitfieldValue(_ModelDispMask0Bitfield); - set => SetBitfieldValue(ref _ModelDispMask0Bitfield, value); - } - - [ParamBitField(nameof(ModelDispMask0Bitfield), bits: 1, bitsOffset: 7)] - public byte ModelDispMask7 - { - get => GetbitfieldValue(_ModelDispMask0Bitfield); - set => SetBitfieldValue(ref _ModelDispMask0Bitfield, value); - } - - #endregion BitField ModelDispMask0Bitfield - - #region BitField ModelDispMask8Bitfield ============================================================================== - - [ParamField(0x147, ParamType.U8)] - public byte ModelDispMask8Bitfield - { - get => _ModelDispMask8Bitfield; - set => WriteParamField(ref _ModelDispMask8Bitfield, value); - } - private byte _ModelDispMask8Bitfield; - - [ParamBitField(nameof(ModelDispMask8Bitfield), bits: 1, bitsOffset: 0)] - public byte ModelDispMask8 - { - get => GetbitfieldValue(_ModelDispMask8Bitfield); - set => SetBitfieldValue(ref _ModelDispMask8Bitfield, value); - } - - [ParamBitField(nameof(ModelDispMask8Bitfield), bits: 1, bitsOffset: 1)] - public byte ModelDispMask9 - { - get => GetbitfieldValue(_ModelDispMask8Bitfield); - set => SetBitfieldValue(ref _ModelDispMask8Bitfield, value); - } - - [ParamBitField(nameof(ModelDispMask8Bitfield), bits: 1, bitsOffset: 2)] - public byte ModelDispMask10 - { - get => GetbitfieldValue(_ModelDispMask8Bitfield); - set => SetBitfieldValue(ref _ModelDispMask8Bitfield, value); - } - - [ParamBitField(nameof(ModelDispMask8Bitfield), bits: 1, bitsOffset: 3)] - public byte ModelDispMask11 - { - get => GetbitfieldValue(_ModelDispMask8Bitfield); - set => SetBitfieldValue(ref _ModelDispMask8Bitfield, value); - } - - [ParamBitField(nameof(ModelDispMask8Bitfield), bits: 1, bitsOffset: 4)] - public byte ModelDispMask12 - { - get => GetbitfieldValue(_ModelDispMask8Bitfield); - set => SetBitfieldValue(ref _ModelDispMask8Bitfield, value); - } - - [ParamBitField(nameof(ModelDispMask8Bitfield), bits: 1, bitsOffset: 5)] - public byte ModelDispMask13 - { - get => GetbitfieldValue(_ModelDispMask8Bitfield); - set => SetBitfieldValue(ref _ModelDispMask8Bitfield, value); - } - - [ParamBitField(nameof(ModelDispMask8Bitfield), bits: 1, bitsOffset: 6)] - public byte ModelDispMask14 - { - get => GetbitfieldValue(_ModelDispMask8Bitfield); - set => SetBitfieldValue(ref _ModelDispMask8Bitfield, value); - } - - [ParamBitField(nameof(ModelDispMask8Bitfield), bits: 1, bitsOffset: 7)] - public byte ModelDispMask15 - { - get => GetbitfieldValue(_ModelDispMask8Bitfield); - set => SetBitfieldValue(ref _ModelDispMask8Bitfield, value); - } - - #endregion BitField ModelDispMask8Bitfield - - #region BitField IsEnableNeckTurnBitfield ============================================================================== - - [ParamField(0x148, ParamType.U8)] - public byte IsEnableNeckTurnBitfield - { - get => _IsEnableNeckTurnBitfield; - set => WriteParamField(ref _IsEnableNeckTurnBitfield, value); - } - private byte _IsEnableNeckTurnBitfield; - - [ParamBitField(nameof(IsEnableNeckTurnBitfield), bits: 1, bitsOffset: 0)] - public byte IsEnableNeckTurn - { - get => GetbitfieldValue(_IsEnableNeckTurnBitfield); - set => SetBitfieldValue(ref _IsEnableNeckTurnBitfield, value); - } - - [ParamBitField(nameof(IsEnableNeckTurnBitfield), bits: 1, bitsOffset: 1)] - public byte DisableRespawn - { - get => GetbitfieldValue(_IsEnableNeckTurnBitfield); - set => SetBitfieldValue(ref _IsEnableNeckTurnBitfield, value); - } - - [ParamBitField(nameof(IsEnableNeckTurnBitfield), bits: 1, bitsOffset: 2)] - public byte IsMoveAnimWait - { - get => GetbitfieldValue(_IsEnableNeckTurnBitfield); - set => SetBitfieldValue(ref _IsEnableNeckTurnBitfield, value); - } - - [ParamBitField(nameof(IsEnableNeckTurnBitfield), bits: 1, bitsOffset: 3)] - public byte IsCrowd - { - get => GetbitfieldValue(_IsEnableNeckTurnBitfield); - set => SetBitfieldValue(ref _IsEnableNeckTurnBitfield, value); - } - - [ParamBitField(nameof(IsEnableNeckTurnBitfield), bits: 1, bitsOffset: 4)] - public byte IsWeakSaint - { - get => GetbitfieldValue(_IsEnableNeckTurnBitfield); - set => SetBitfieldValue(ref _IsEnableNeckTurnBitfield, value); - } - - [ParamBitField(nameof(IsEnableNeckTurnBitfield), bits: 1, bitsOffset: 5)] - public byte IsWeakA - { - get => GetbitfieldValue(_IsEnableNeckTurnBitfield); - set => SetBitfieldValue(ref _IsEnableNeckTurnBitfield, value); - } - - [ParamBitField(nameof(IsEnableNeckTurnBitfield), bits: 1, bitsOffset: 6)] - public byte IsWeakB - { - get => GetbitfieldValue(_IsEnableNeckTurnBitfield); - set => SetBitfieldValue(ref _IsEnableNeckTurnBitfield, value); - } - - [ParamBitField(nameof(IsEnableNeckTurnBitfield), bits: 1, bitsOffset: 7)] - public byte Pad1 - { - get => GetbitfieldValue(_IsEnableNeckTurnBitfield); - set => SetBitfieldValue(ref _IsEnableNeckTurnBitfield, value); - } - - #endregion BitField IsEnableNeckTurnBitfield - - #region BitField VowTypeBitfield ============================================================================== - - [ParamField(0x149, ParamType.U8)] - public byte VowTypeBitfield - { - get => _VowTypeBitfield; - set => WriteParamField(ref _VowTypeBitfield, value); - } - private byte _VowTypeBitfield; - - [ParamBitField(nameof(VowTypeBitfield), bits: 3, bitsOffset: 0)] - public byte VowType - { - get => GetbitfieldValue(_VowTypeBitfield); - set => SetBitfieldValue(ref _VowTypeBitfield, value); - } - - [ParamBitField(nameof(VowTypeBitfield), bits: 1, bitsOffset: 3)] - public byte DisableInitializeDead - { - get => GetbitfieldValue(_VowTypeBitfield); - set => SetBitfieldValue(ref _VowTypeBitfield, value); - } - - [ParamBitField(nameof(VowTypeBitfield), bits: 4, bitsOffset: 4)] - public byte Pad3 - { - get => GetbitfieldValue(_VowTypeBitfield); - set => SetBitfieldValue(ref _VowTypeBitfield, value); - } - - #endregion BitField VowTypeBitfield - - [ParamField(0x14A, ParamType.Dummy8, 6)] - public byte[] Pad2 - { - get => _Pad2; - set => WriteParamField(ref _Pad2, value); - } - private byte[] _Pad2 = null!; + public NpcParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} + + [ParamField(0x0, ParamType.I32)] + public int BehaviorVariationId + { + get => _BehaviorVariationId; + set => WriteParamField(ref _BehaviorVariationId, value); + } + private int _BehaviorVariationId; + + [ParamField(0x4, ParamType.I32)] + public int AiThinkId + { + get => _AiThinkId; + set => WriteParamField(ref _AiThinkId, value); + } + private int _AiThinkId; + + [ParamField(0x8, ParamType.I32)] + public int NameId + { + get => _NameId; + set => WriteParamField(ref _NameId, value); + } + private int _NameId; + + [ParamField(0xC, ParamType.F32)] + public float TurnVellocity + { + get => _TurnVellocity; + set => WriteParamField(ref _TurnVellocity, value); + } + private float _TurnVellocity; + + [ParamField(0x10, ParamType.F32)] + public float HitHeight + { + get => _HitHeight; + set => WriteParamField(ref _HitHeight, value); + } + private float _HitHeight; + + [ParamField(0x14, ParamType.F32)] + public float HitRadius + { + get => _HitRadius; + set => WriteParamField(ref _HitRadius, value); + } + private float _HitRadius; + + [ParamField(0x18, ParamType.U32)] + public uint Weight + { + get => _Weight; + set => WriteParamField(ref _Weight, value); + } + private uint _Weight; + + [ParamField(0x1C, ParamType.F32)] + public float HitYOffset + { + get => _HitYOffset; + set => WriteParamField(ref _HitYOffset, value); + } + private float _HitYOffset; + + [ParamField(0x20, ParamType.U32)] + public uint Hp + { + get => _Hp; + set => WriteParamField(ref _Hp, value); + } + private uint _Hp; + + [ParamField(0x24, ParamType.U32)] + public uint Mp + { + get => _Mp; + set => WriteParamField(ref _Mp, value); + } + private uint _Mp; + + [ParamField(0x28, ParamType.U32)] + public uint GetSoul + { + get => _GetSoul; + set => WriteParamField(ref _GetSoul, value); + } + private uint _GetSoul; + + [ParamField(0x2C, ParamType.I32)] + public int ItemLotId_1 + { + get => _ItemLotId_1; + set => WriteParamField(ref _ItemLotId_1, value); + } + private int _ItemLotId_1; + + [ParamField(0x30, ParamType.I32)] + public int ItemLotId_2 + { + get => _ItemLotId_2; + set => WriteParamField(ref _ItemLotId_2, value); + } + private int _ItemLotId_2; + + [ParamField(0x34, ParamType.I32)] + public int ItemLotId_3 + { + get => _ItemLotId_3; + set => WriteParamField(ref _ItemLotId_3, value); + } + private int _ItemLotId_3; + + [ParamField(0x38, ParamType.I32)] + public int ItemLotId_4 + { + get => _ItemLotId_4; + set => WriteParamField(ref _ItemLotId_4, value); + } + private int _ItemLotId_4; + + [ParamField(0x3C, ParamType.I32)] + public int ItemLotId_5 + { + get => _ItemLotId_5; + set => WriteParamField(ref _ItemLotId_5, value); + } + private int _ItemLotId_5; + + [ParamField(0x40, ParamType.I32)] + public int ItemLotId_6 + { + get => _ItemLotId_6; + set => WriteParamField(ref _ItemLotId_6, value); + } + private int _ItemLotId_6; + + [ParamField(0x44, ParamType.I32)] + public int HumanityLotId + { + get => _HumanityLotId; + set => WriteParamField(ref _HumanityLotId, value); + } + private int _HumanityLotId; + + [ParamField(0x48, ParamType.I32)] + public int SpEffectID0 + { + get => _SpEffectID0; + set => WriteParamField(ref _SpEffectID0, value); + } + private int _SpEffectID0; + + [ParamField(0x4C, ParamType.I32)] + public int SpEffectID1 + { + get => _SpEffectID1; + set => WriteParamField(ref _SpEffectID1, value); + } + private int _SpEffectID1; + + [ParamField(0x50, ParamType.I32)] + public int SpEffectID2 + { + get => _SpEffectID2; + set => WriteParamField(ref _SpEffectID2, value); + } + private int _SpEffectID2; + + [ParamField(0x54, ParamType.I32)] + public int SpEffectID3 + { + get => _SpEffectID3; + set => WriteParamField(ref _SpEffectID3, value); + } + private int _SpEffectID3; + + [ParamField(0x58, ParamType.I32)] + public int SpEffectID4 + { + get => _SpEffectID4; + set => WriteParamField(ref _SpEffectID4, value); + } + private int _SpEffectID4; + + [ParamField(0x5C, ParamType.I32)] + public int SpEffectID5 + { + get => _SpEffectID5; + set => WriteParamField(ref _SpEffectID5, value); + } + private int _SpEffectID5; + + [ParamField(0x60, ParamType.I32)] + public int SpEffectID6 + { + get => _SpEffectID6; + set => WriteParamField(ref _SpEffectID6, value); + } + private int _SpEffectID6; + + [ParamField(0x64, ParamType.I32)] + public int SpEffectID7 + { + get => _SpEffectID7; + set => WriteParamField(ref _SpEffectID7, value); + } + private int _SpEffectID7; + + [ParamField(0x68, ParamType.I32)] + public int GameClearSpEffectID + { + get => _GameClearSpEffectID; + set => WriteParamField(ref _GameClearSpEffectID, value); + } + private int _GameClearSpEffectID; + + [ParamField(0x6C, ParamType.F32)] + public float PhysGuardCutRate + { + get => _PhysGuardCutRate; + set => WriteParamField(ref _PhysGuardCutRate, value); + } + private float _PhysGuardCutRate; + + [ParamField(0x70, ParamType.F32)] + public float MagGuardCutRate + { + get => _MagGuardCutRate; + set => WriteParamField(ref _MagGuardCutRate, value); + } + private float _MagGuardCutRate; + + [ParamField(0x74, ParamType.F32)] + public float FireGuardCutRate + { + get => _FireGuardCutRate; + set => WriteParamField(ref _FireGuardCutRate, value); + } + private float _FireGuardCutRate; + + [ParamField(0x78, ParamType.F32)] + public float ThunGuardCutRate + { + get => _ThunGuardCutRate; + set => WriteParamField(ref _ThunGuardCutRate, value); + } + private float _ThunGuardCutRate; + + [ParamField(0x7C, ParamType.I32)] + public int AnimIdOffset + { + get => _AnimIdOffset; + set => WriteParamField(ref _AnimIdOffset, value); + } + private int _AnimIdOffset; + + [ParamField(0x80, ParamType.I32)] + public int MoveAnimId + { + get => _MoveAnimId; + set => WriteParamField(ref _MoveAnimId, value); + } + private int _MoveAnimId; + + [ParamField(0x84, ParamType.I32)] + public int SpMoveAnimId1 + { + get => _SpMoveAnimId1; + set => WriteParamField(ref _SpMoveAnimId1, value); + } + private int _SpMoveAnimId1; + + [ParamField(0x88, ParamType.I32)] + public int SpMoveAnimId2 + { + get => _SpMoveAnimId2; + set => WriteParamField(ref _SpMoveAnimId2, value); + } + private int _SpMoveAnimId2; + + [ParamField(0x8C, ParamType.F32)] + public float NetworkWarpDist + { + get => _NetworkWarpDist; + set => WriteParamField(ref _NetworkWarpDist, value); + } + private float _NetworkWarpDist; + + [ParamField(0x90, ParamType.I32)] + public int DbgBehaviorR1 + { + get => _DbgBehaviorR1; + set => WriteParamField(ref _DbgBehaviorR1, value); + } + private int _DbgBehaviorR1; + + [ParamField(0x94, ParamType.I32)] + public int DbgBehaviorL1 + { + get => _DbgBehaviorL1; + set => WriteParamField(ref _DbgBehaviorL1, value); + } + private int _DbgBehaviorL1; + + [ParamField(0x98, ParamType.I32)] + public int DbgBehaviorR2 + { + get => _DbgBehaviorR2; + set => WriteParamField(ref _DbgBehaviorR2, value); + } + private int _DbgBehaviorR2; + + [ParamField(0x9C, ParamType.I32)] + public int DbgBehaviorL2 + { + get => _DbgBehaviorL2; + set => WriteParamField(ref _DbgBehaviorL2, value); + } + private int _DbgBehaviorL2; + + [ParamField(0xA0, ParamType.I32)] + public int DbgBehaviorRL + { + get => _DbgBehaviorRL; + set => WriteParamField(ref _DbgBehaviorRL, value); + } + private int _DbgBehaviorRL; + + [ParamField(0xA4, ParamType.I32)] + public int DbgBehaviorRR + { + get => _DbgBehaviorRR; + set => WriteParamField(ref _DbgBehaviorRR, value); + } + private int _DbgBehaviorRR; + + [ParamField(0xA8, ParamType.I32)] + public int DbgBehaviorRD + { + get => _DbgBehaviorRD; + set => WriteParamField(ref _DbgBehaviorRD, value); + } + private int _DbgBehaviorRD; + + [ParamField(0xAC, ParamType.I32)] + public int DbgBehaviorRU + { + get => _DbgBehaviorRU; + set => WriteParamField(ref _DbgBehaviorRU, value); + } + private int _DbgBehaviorRU; + + [ParamField(0xB0, ParamType.I32)] + public int DbgBehaviorLL + { + get => _DbgBehaviorLL; + set => WriteParamField(ref _DbgBehaviorLL, value); + } + private int _DbgBehaviorLL; + + [ParamField(0xB4, ParamType.I32)] + public int DbgBehaviorLR + { + get => _DbgBehaviorLR; + set => WriteParamField(ref _DbgBehaviorLR, value); + } + private int _DbgBehaviorLR; + + [ParamField(0xB8, ParamType.I32)] + public int DbgBehaviorLD + { + get => _DbgBehaviorLD; + set => WriteParamField(ref _DbgBehaviorLD, value); + } + private int _DbgBehaviorLD; + + [ParamField(0xBC, ParamType.I32)] + public int DbgBehaviorLU + { + get => _DbgBehaviorLU; + set => WriteParamField(ref _DbgBehaviorLU, value); + } + private int _DbgBehaviorLU; + + [ParamField(0xC0, ParamType.I32)] + public int AnimIdOffset2 + { + get => _AnimIdOffset2; + set => WriteParamField(ref _AnimIdOffset2, value); + } + private int _AnimIdOffset2; + + [ParamField(0xC4, ParamType.F32)] + public float PartsDamageRate1 + { + get => _PartsDamageRate1; + set => WriteParamField(ref _PartsDamageRate1, value); + } + private float _PartsDamageRate1; + + [ParamField(0xC8, ParamType.F32)] + public float PartsDamageRate2 + { + get => _PartsDamageRate2; + set => WriteParamField(ref _PartsDamageRate2, value); + } + private float _PartsDamageRate2; + + [ParamField(0xCC, ParamType.F32)] + public float PartsDamageRate3 + { + get => _PartsDamageRate3; + set => WriteParamField(ref _PartsDamageRate3, value); + } + private float _PartsDamageRate3; + [ParamField(0xD0, ParamType.F32)] + public float PartsDamageRate4 + { + get => _PartsDamageRate4; + set => WriteParamField(ref _PartsDamageRate4, value); + } + private float _PartsDamageRate4; + + [ParamField(0xD4, ParamType.F32)] + public float PartsDamageRate5 + { + get => _PartsDamageRate5; + set => WriteParamField(ref _PartsDamageRate5, value); + } + private float _PartsDamageRate5; + + [ParamField(0xD8, ParamType.F32)] + public float PartsDamageRate6 + { + get => _PartsDamageRate6; + set => WriteParamField(ref _PartsDamageRate6, value); + } + private float _PartsDamageRate6; + + [ParamField(0xDC, ParamType.F32)] + public float PartsDamageRate7 + { + get => _PartsDamageRate7; + set => WriteParamField(ref _PartsDamageRate7, value); + } + private float _PartsDamageRate7; + + [ParamField(0xE0, ParamType.F32)] + public float PartsDamageRate8 + { + get => _PartsDamageRate8; + set => WriteParamField(ref _PartsDamageRate8, value); + } + private float _PartsDamageRate8; + + [ParamField(0xE4, ParamType.F32)] + public float WeakPartsDamageRate + { + get => _WeakPartsDamageRate; + set => WriteParamField(ref _WeakPartsDamageRate, value); + } + private float _WeakPartsDamageRate; + + [ParamField(0xE8, ParamType.F32)] + public float SuperArmorRecoverCorrection + { + get => _SuperArmorRecoverCorrection; + set => WriteParamField(ref _SuperArmorRecoverCorrection, value); + } + private float _SuperArmorRecoverCorrection; + + [ParamField(0xEC, ParamType.F32)] + public float SuperArmorBrakeKnockbackDist + { + get => _SuperArmorBrakeKnockbackDist; + set => WriteParamField(ref _SuperArmorBrakeKnockbackDist, value); + } + private float _SuperArmorBrakeKnockbackDist; + + [ParamField(0xF0, ParamType.U16)] + public ushort Stamina + { + get => _Stamina; + set => WriteParamField(ref _Stamina, value); + } + private ushort _Stamina; + + [ParamField(0xF2, ParamType.U16)] + public ushort StaminaRecoverBaseVel + { + get => _StaminaRecoverBaseVel; + set => WriteParamField(ref _StaminaRecoverBaseVel, value); + } + private ushort _StaminaRecoverBaseVel; + + [ParamField(0xF4, ParamType.U16)] + public ushort Def_phys + { + get => _Def_phys; + set => WriteParamField(ref _Def_phys, value); } + private ushort _Def_phys; + + [ParamField(0xF6, ParamType.I16)] + public short Def_slash + { + get => _Def_slash; + set => WriteParamField(ref _Def_slash, value); + } + private short _Def_slash; + + [ParamField(0xF8, ParamType.I16)] + public short Def_blow + { + get => _Def_blow; + set => WriteParamField(ref _Def_blow, value); + } + private short _Def_blow; + + [ParamField(0xFA, ParamType.I16)] + public short Def_thrust + { + get => _Def_thrust; + set => WriteParamField(ref _Def_thrust, value); + } + private short _Def_thrust; + + [ParamField(0xFC, ParamType.U16)] + public ushort Def_mag + { + get => _Def_mag; + set => WriteParamField(ref _Def_mag, value); + } + private ushort _Def_mag; + + [ParamField(0xFE, ParamType.U16)] + public ushort Def_fire + { + get => _Def_fire; + set => WriteParamField(ref _Def_fire, value); + } + private ushort _Def_fire; + + [ParamField(0x100, ParamType.U16)] + public ushort Def_thunder + { + get => _Def_thunder; + set => WriteParamField(ref _Def_thunder, value); + } + private ushort _Def_thunder; + + [ParamField(0x102, ParamType.U16)] + public ushort DefFlickPower + { + get => _DefFlickPower; + set => WriteParamField(ref _DefFlickPower, value); + } + private ushort _DefFlickPower; + + [ParamField(0x104, ParamType.U16)] + public ushort Resist_poison + { + get => _Resist_poison; + set => WriteParamField(ref _Resist_poison, value); + } + private ushort _Resist_poison; + + [ParamField(0x106, ParamType.U16)] + public ushort Resist_desease + { + get => _Resist_desease; + set => WriteParamField(ref _Resist_desease, value); + } + private ushort _Resist_desease; + + [ParamField(0x108, ParamType.U16)] + public ushort Resist_blood + { + get => _Resist_blood; + set => WriteParamField(ref _Resist_blood, value); + } + private ushort _Resist_blood; + + [ParamField(0x10A, ParamType.U16)] + public ushort Resist_curse + { + get => _Resist_curse; + set => WriteParamField(ref _Resist_curse, value); + } + private ushort _Resist_curse; + + [ParamField(0x10C, ParamType.I16)] + public short GhostModelId + { + get => _GhostModelId; + set => WriteParamField(ref _GhostModelId, value); + } + private short _GhostModelId; + + [ParamField(0x10E, ParamType.I16)] + public short NormalChangeResouceId + { + get => _NormalChangeResouceId; + set => WriteParamField(ref _NormalChangeResouceId, value); + } + private short _NormalChangeResouceId; + + [ParamField(0x110, ParamType.I16)] + public short GuardAngle + { + get => _GuardAngle; + set => WriteParamField(ref _GuardAngle, value); + } + private short _GuardAngle; + + [ParamField(0x112, ParamType.I16)] + public short SlashGuardCutRate + { + get => _SlashGuardCutRate; + set => WriteParamField(ref _SlashGuardCutRate, value); + } + private short _SlashGuardCutRate; + + [ParamField(0x114, ParamType.I16)] + public short BlowGuardCutRate + { + get => _BlowGuardCutRate; + set => WriteParamField(ref _BlowGuardCutRate, value); + } + private short _BlowGuardCutRate; + + [ParamField(0x116, ParamType.I16)] + public short ThrustGuardCutRate + { + get => _ThrustGuardCutRate; + set => WriteParamField(ref _ThrustGuardCutRate, value); + } + private short _ThrustGuardCutRate; + + [ParamField(0x118, ParamType.I16)] + public short SuperArmorDurability + { + get => _SuperArmorDurability; + set => WriteParamField(ref _SuperArmorDurability, value); + } + private short _SuperArmorDurability; + + [ParamField(0x11A, ParamType.I16)] + public short NormalChangeTexChrId + { + get => _NormalChangeTexChrId; + set => WriteParamField(ref _NormalChangeTexChrId, value); + } + private short _NormalChangeTexChrId; + + [ParamField(0x11C, ParamType.U16)] + public ushort DropType + { + get => _DropType; + set => WriteParamField(ref _DropType, value); + } + private ushort _DropType; + + [ParamField(0x11E, ParamType.U8)] + public byte KnockbackRate + { + get => _KnockbackRate; + set => WriteParamField(ref _KnockbackRate, value); + } + private byte _KnockbackRate; + + [ParamField(0x11F, ParamType.U8)] + public byte KnockbackParamId + { + get => _KnockbackParamId; + set => WriteParamField(ref _KnockbackParamId, value); + } + private byte _KnockbackParamId; + + [ParamField(0x120, ParamType.U8)] + public byte FallDamageDump + { + get => _FallDamageDump; + set => WriteParamField(ref _FallDamageDump, value); + } + private byte _FallDamageDump; + + [ParamField(0x121, ParamType.U8)] + public byte StaminaGuardDef + { + get => _StaminaGuardDef; + set => WriteParamField(ref _StaminaGuardDef, value); + } + private byte _StaminaGuardDef; + + [ParamField(0x122, ParamType.U8)] + public byte PcAttrB + { + get => _PcAttrB; + set => WriteParamField(ref _PcAttrB, value); + } + private byte _PcAttrB; + + [ParamField(0x123, ParamType.U8)] + public byte PcAttrW + { + get => _PcAttrW; + set => WriteParamField(ref _PcAttrW, value); + } + private byte _PcAttrW; + + [ParamField(0x124, ParamType.U8)] + public byte PcAttrL + { + get => _PcAttrL; + set => WriteParamField(ref _PcAttrL, value); + } + private byte _PcAttrL; + + [ParamField(0x125, ParamType.U8)] + public byte PcAttrR + { + get => _PcAttrR; + set => WriteParamField(ref _PcAttrR, value); + } + private byte _PcAttrR; + + [ParamField(0x126, ParamType.U8)] + public byte AreaAttrB + { + get => _AreaAttrB; + set => WriteParamField(ref _AreaAttrB, value); + } + private byte _AreaAttrB; + + [ParamField(0x127, ParamType.U8)] + public byte AreaAttrW + { + get => _AreaAttrW; + set => WriteParamField(ref _AreaAttrW, value); + } + private byte _AreaAttrW; + + [ParamField(0x128, ParamType.U8)] + public byte AreaAttrL + { + get => _AreaAttrL; + set => WriteParamField(ref _AreaAttrL, value); + } + private byte _AreaAttrL; + + [ParamField(0x129, ParamType.U8)] + public byte AreaAttrR + { + get => _AreaAttrR; + set => WriteParamField(ref _AreaAttrR, value); + } + private byte _AreaAttrR; + + [ParamField(0x12A, ParamType.U8)] + public byte MpRecoverBaseVel + { + get => _MpRecoverBaseVel; + set => WriteParamField(ref _MpRecoverBaseVel, value); + } + private byte _MpRecoverBaseVel; + + [ParamField(0x12B, ParamType.U8)] + public byte FlickDamageCutRate + { + get => _FlickDamageCutRate; + set => WriteParamField(ref _FlickDamageCutRate, value); + } + private byte _FlickDamageCutRate; + + [ParamField(0x12C, ParamType.I8)] + public sbyte DefaultLodParamId + { + get => _DefaultLodParamId; + set => WriteParamField(ref _DefaultLodParamId, value); + } + private sbyte _DefaultLodParamId; + + [ParamField(0x12D, ParamType.U8)] + public byte DrawType + { + get => _DrawType; + set => WriteParamField(ref _DrawType, value); + } + private byte _DrawType; + + [ParamField(0x12E, ParamType.U8)] + public byte NpcType + { + get => _NpcType; + set => WriteParamField(ref _NpcType, value); + } + private byte _NpcType; + + [ParamField(0x12F, ParamType.U8)] + public byte TeamType + { + get => _TeamType; + set => WriteParamField(ref _TeamType, value); + } + private byte _TeamType; + + [ParamField(0x130, ParamType.U8)] + public byte MoveType + { + get => _MoveType; + set => WriteParamField(ref _MoveType, value); + } + private byte _MoveType; + + [ParamField(0x131, ParamType.U8)] + public byte LockDist + { + get => _LockDist; + set => WriteParamField(ref _LockDist, value); + } + private byte _LockDist; + + [ParamField(0x132, ParamType.U8)] + public byte Material + { + get => _Material; + set => WriteParamField(ref _Material, value); + } + private byte _Material; + + [ParamField(0x133, ParamType.U8)] + public byte MaterialSfx + { + get => _MaterialSfx; + set => WriteParamField(ref _MaterialSfx, value); + } + private byte _MaterialSfx; + + [ParamField(0x134, ParamType.U8)] + public byte Material_Weak + { + get => _Material_Weak; + set => WriteParamField(ref _Material_Weak, value); + } + private byte _Material_Weak; + + [ParamField(0x135, ParamType.U8)] + public byte MaterialSfx_Weak + { + get => _MaterialSfx_Weak; + set => WriteParamField(ref _MaterialSfx_Weak, value); + } + private byte _MaterialSfx_Weak; + + [ParamField(0x136, ParamType.U8)] + public byte PartsDamageType + { + get => _PartsDamageType; + set => WriteParamField(ref _PartsDamageType, value); + } + private byte _PartsDamageType; + + [ParamField(0x137, ParamType.U8)] + public byte MaxUndurationAng + { + get => _MaxUndurationAng; + set => WriteParamField(ref _MaxUndurationAng, value); + } + private byte _MaxUndurationAng; + + [ParamField(0x138, ParamType.I8)] + public sbyte GuardLevel + { + get => _GuardLevel; + set => WriteParamField(ref _GuardLevel, value); + } + private sbyte _GuardLevel; + + [ParamField(0x139, ParamType.U8)] + public byte BurnSfxType + { + get => _BurnSfxType; + set => WriteParamField(ref _BurnSfxType, value); + } + private byte _BurnSfxType; + + [ParamField(0x13A, ParamType.I8)] + public sbyte PoisonGuardResist + { + get => _PoisonGuardResist; + set => WriteParamField(ref _PoisonGuardResist, value); + } + private sbyte _PoisonGuardResist; + + [ParamField(0x13B, ParamType.I8)] + public sbyte DiseaseGuardResist + { + get => _DiseaseGuardResist; + set => WriteParamField(ref _DiseaseGuardResist, value); + } + private sbyte _DiseaseGuardResist; + + [ParamField(0x13C, ParamType.I8)] + public sbyte BloodGuardResist + { + get => _BloodGuardResist; + set => WriteParamField(ref _BloodGuardResist, value); + } + private sbyte _BloodGuardResist; + + [ParamField(0x13D, ParamType.I8)] + public sbyte CurseGuardResist + { + get => _CurseGuardResist; + set => WriteParamField(ref _CurseGuardResist, value); + } + private sbyte _CurseGuardResist; + + [ParamField(0x13E, ParamType.U8)] + public byte ParryAttack + { + get => _ParryAttack; + set => WriteParamField(ref _ParryAttack, value); + } + private byte _ParryAttack; + + [ParamField(0x13F, ParamType.U8)] + public byte ParryDefence + { + get => _ParryDefence; + set => WriteParamField(ref _ParryDefence, value); + } + private byte _ParryDefence; + + [ParamField(0x140, ParamType.U8)] + public byte SfxSize + { + get => _SfxSize; + set => WriteParamField(ref _SfxSize, value); + } + private byte _SfxSize; + + [ParamField(0x141, ParamType.U8)] + public byte PushOutCamRegionRadius + { + get => _PushOutCamRegionRadius; + set => WriteParamField(ref _PushOutCamRegionRadius, value); + } + private byte _PushOutCamRegionRadius; + + [ParamField(0x142, ParamType.U8)] + public byte HitStopType + { + get => _HitStopType; + set => WriteParamField(ref _HitStopType, value); + } + private byte _HitStopType; + + [ParamField(0x143, ParamType.U8)] + public byte LadderEndChkOffsetTop + { + get => _LadderEndChkOffsetTop; + set => WriteParamField(ref _LadderEndChkOffsetTop, value); + } + private byte _LadderEndChkOffsetTop; + + [ParamField(0x144, ParamType.U8)] + public byte LadderEndChkOffsetLow + { + get => _LadderEndChkOffsetLow; + set => WriteParamField(ref _LadderEndChkOffsetLow, value); + } + private byte _LadderEndChkOffsetLow; + + #region BitField UseRagdollCamHitBitfield ============================================================================== + + [ParamField(0x145, ParamType.U8)] + public byte UseRagdollCamHitBitfield + { + get => _UseRagdollCamHitBitfield; + set => WriteParamField(ref _UseRagdollCamHitBitfield, value); + } + private byte _UseRagdollCamHitBitfield; + + [ParamBitField(nameof(UseRagdollCamHitBitfield), bits: 1, bitsOffset: 0)] + public byte UseRagdollCamHit + { + get => GetbitfieldValue(_UseRagdollCamHitBitfield); + set => SetBitfieldValue(ref _UseRagdollCamHitBitfield, value); + } + + [ParamBitField(nameof(UseRagdollCamHitBitfield), bits: 1, bitsOffset: 1)] + public byte DisableClothRigidHit + { + get => GetbitfieldValue(_UseRagdollCamHitBitfield); + set => SetBitfieldValue(ref _UseRagdollCamHitBitfield, value); + } + + [ParamBitField(nameof(UseRagdollCamHitBitfield), bits: 1, bitsOffset: 2)] + public byte UseRagdoll + { + get => GetbitfieldValue(_UseRagdollCamHitBitfield); + set => SetBitfieldValue(ref _UseRagdollCamHitBitfield, value); + } + + [ParamBitField(nameof(UseRagdollCamHitBitfield), bits: 1, bitsOffset: 3)] + public byte IsDemon + { + get => GetbitfieldValue(_UseRagdollCamHitBitfield); + set => SetBitfieldValue(ref _UseRagdollCamHitBitfield, value); + } + + [ParamBitField(nameof(UseRagdollCamHitBitfield), bits: 1, bitsOffset: 4)] + public byte IsGhost + { + get => GetbitfieldValue(_UseRagdollCamHitBitfield); + set => SetBitfieldValue(ref _UseRagdollCamHitBitfield, value); + } + + [ParamBitField(nameof(UseRagdollCamHitBitfield), bits: 1, bitsOffset: 5)] + public byte IsNoDamageMotion + { + get => GetbitfieldValue(_UseRagdollCamHitBitfield); + set => SetBitfieldValue(ref _UseRagdollCamHitBitfield, value); + } + + [ParamBitField(nameof(UseRagdollCamHitBitfield), bits: 1, bitsOffset: 6)] + public byte IsUnduration + { + get => GetbitfieldValue(_UseRagdollCamHitBitfield); + set => SetBitfieldValue(ref _UseRagdollCamHitBitfield, value); + } + + [ParamBitField(nameof(UseRagdollCamHitBitfield), bits: 1, bitsOffset: 7)] + public byte IsChangeWanderGhost + { + get => GetbitfieldValue(_UseRagdollCamHitBitfield); + set => SetBitfieldValue(ref _UseRagdollCamHitBitfield, value); + } + + #endregion BitField UseRagdollCamHitBitfield + + #region BitField ModelDispMask0Bitfield ============================================================================== + + [ParamField(0x146, ParamType.U8)] + public byte ModelDispMask0Bitfield + { + get => _ModelDispMask0Bitfield; + set => WriteParamField(ref _ModelDispMask0Bitfield, value); + } + private byte _ModelDispMask0Bitfield; + + [ParamBitField(nameof(ModelDispMask0Bitfield), bits: 1, bitsOffset: 0)] + public byte ModelDispMask0 + { + get => GetbitfieldValue(_ModelDispMask0Bitfield); + set => SetBitfieldValue(ref _ModelDispMask0Bitfield, value); + } + + [ParamBitField(nameof(ModelDispMask0Bitfield), bits: 1, bitsOffset: 1)] + public byte ModelDispMask1 + { + get => GetbitfieldValue(_ModelDispMask0Bitfield); + set => SetBitfieldValue(ref _ModelDispMask0Bitfield, value); + } + + [ParamBitField(nameof(ModelDispMask0Bitfield), bits: 1, bitsOffset: 2)] + public byte ModelDispMask2 + { + get => GetbitfieldValue(_ModelDispMask0Bitfield); + set => SetBitfieldValue(ref _ModelDispMask0Bitfield, value); + } + + [ParamBitField(nameof(ModelDispMask0Bitfield), bits: 1, bitsOffset: 3)] + public byte ModelDispMask3 + { + get => GetbitfieldValue(_ModelDispMask0Bitfield); + set => SetBitfieldValue(ref _ModelDispMask0Bitfield, value); + } + + [ParamBitField(nameof(ModelDispMask0Bitfield), bits: 1, bitsOffset: 4)] + public byte ModelDispMask4 + { + get => GetbitfieldValue(_ModelDispMask0Bitfield); + set => SetBitfieldValue(ref _ModelDispMask0Bitfield, value); + } + + [ParamBitField(nameof(ModelDispMask0Bitfield), bits: 1, bitsOffset: 5)] + public byte ModelDispMask5 + { + get => GetbitfieldValue(_ModelDispMask0Bitfield); + set => SetBitfieldValue(ref _ModelDispMask0Bitfield, value); + } + + [ParamBitField(nameof(ModelDispMask0Bitfield), bits: 1, bitsOffset: 6)] + public byte ModelDispMask6 + { + get => GetbitfieldValue(_ModelDispMask0Bitfield); + set => SetBitfieldValue(ref _ModelDispMask0Bitfield, value); + } + + [ParamBitField(nameof(ModelDispMask0Bitfield), bits: 1, bitsOffset: 7)] + public byte ModelDispMask7 + { + get => GetbitfieldValue(_ModelDispMask0Bitfield); + set => SetBitfieldValue(ref _ModelDispMask0Bitfield, value); + } + + #endregion BitField ModelDispMask0Bitfield + + #region BitField ModelDispMask8Bitfield ============================================================================== + + [ParamField(0x147, ParamType.U8)] + public byte ModelDispMask8Bitfield + { + get => _ModelDispMask8Bitfield; + set => WriteParamField(ref _ModelDispMask8Bitfield, value); + } + private byte _ModelDispMask8Bitfield; + + [ParamBitField(nameof(ModelDispMask8Bitfield), bits: 1, bitsOffset: 0)] + public byte ModelDispMask8 + { + get => GetbitfieldValue(_ModelDispMask8Bitfield); + set => SetBitfieldValue(ref _ModelDispMask8Bitfield, value); + } + + [ParamBitField(nameof(ModelDispMask8Bitfield), bits: 1, bitsOffset: 1)] + public byte ModelDispMask9 + { + get => GetbitfieldValue(_ModelDispMask8Bitfield); + set => SetBitfieldValue(ref _ModelDispMask8Bitfield, value); + } + + [ParamBitField(nameof(ModelDispMask8Bitfield), bits: 1, bitsOffset: 2)] + public byte ModelDispMask10 + { + get => GetbitfieldValue(_ModelDispMask8Bitfield); + set => SetBitfieldValue(ref _ModelDispMask8Bitfield, value); + } + + [ParamBitField(nameof(ModelDispMask8Bitfield), bits: 1, bitsOffset: 3)] + public byte ModelDispMask11 + { + get => GetbitfieldValue(_ModelDispMask8Bitfield); + set => SetBitfieldValue(ref _ModelDispMask8Bitfield, value); + } + + [ParamBitField(nameof(ModelDispMask8Bitfield), bits: 1, bitsOffset: 4)] + public byte ModelDispMask12 + { + get => GetbitfieldValue(_ModelDispMask8Bitfield); + set => SetBitfieldValue(ref _ModelDispMask8Bitfield, value); + } + + [ParamBitField(nameof(ModelDispMask8Bitfield), bits: 1, bitsOffset: 5)] + public byte ModelDispMask13 + { + get => GetbitfieldValue(_ModelDispMask8Bitfield); + set => SetBitfieldValue(ref _ModelDispMask8Bitfield, value); + } + + [ParamBitField(nameof(ModelDispMask8Bitfield), bits: 1, bitsOffset: 6)] + public byte ModelDispMask14 + { + get => GetbitfieldValue(_ModelDispMask8Bitfield); + set => SetBitfieldValue(ref _ModelDispMask8Bitfield, value); + } + + [ParamBitField(nameof(ModelDispMask8Bitfield), bits: 1, bitsOffset: 7)] + public byte ModelDispMask15 + { + get => GetbitfieldValue(_ModelDispMask8Bitfield); + set => SetBitfieldValue(ref _ModelDispMask8Bitfield, value); + } + + #endregion BitField ModelDispMask8Bitfield + + #region BitField IsEnableNeckTurnBitfield ============================================================================== + + [ParamField(0x148, ParamType.U8)] + public byte IsEnableNeckTurnBitfield + { + get => _IsEnableNeckTurnBitfield; + set => WriteParamField(ref _IsEnableNeckTurnBitfield, value); + } + private byte _IsEnableNeckTurnBitfield; + + [ParamBitField(nameof(IsEnableNeckTurnBitfield), bits: 1, bitsOffset: 0)] + public byte IsEnableNeckTurn + { + get => GetbitfieldValue(_IsEnableNeckTurnBitfield); + set => SetBitfieldValue(ref _IsEnableNeckTurnBitfield, value); + } + + [ParamBitField(nameof(IsEnableNeckTurnBitfield), bits: 1, bitsOffset: 1)] + public byte DisableRespawn + { + get => GetbitfieldValue(_IsEnableNeckTurnBitfield); + set => SetBitfieldValue(ref _IsEnableNeckTurnBitfield, value); + } + + [ParamBitField(nameof(IsEnableNeckTurnBitfield), bits: 1, bitsOffset: 2)] + public byte IsMoveAnimWait + { + get => GetbitfieldValue(_IsEnableNeckTurnBitfield); + set => SetBitfieldValue(ref _IsEnableNeckTurnBitfield, value); + } + + [ParamBitField(nameof(IsEnableNeckTurnBitfield), bits: 1, bitsOffset: 3)] + public byte IsCrowd + { + get => GetbitfieldValue(_IsEnableNeckTurnBitfield); + set => SetBitfieldValue(ref _IsEnableNeckTurnBitfield, value); + } + + [ParamBitField(nameof(IsEnableNeckTurnBitfield), bits: 1, bitsOffset: 4)] + public byte IsWeakSaint + { + get => GetbitfieldValue(_IsEnableNeckTurnBitfield); + set => SetBitfieldValue(ref _IsEnableNeckTurnBitfield, value); + } + + [ParamBitField(nameof(IsEnableNeckTurnBitfield), bits: 1, bitsOffset: 5)] + public byte IsWeakA + { + get => GetbitfieldValue(_IsEnableNeckTurnBitfield); + set => SetBitfieldValue(ref _IsEnableNeckTurnBitfield, value); + } + + [ParamBitField(nameof(IsEnableNeckTurnBitfield), bits: 1, bitsOffset: 6)] + public byte IsWeakB + { + get => GetbitfieldValue(_IsEnableNeckTurnBitfield); + set => SetBitfieldValue(ref _IsEnableNeckTurnBitfield, value); + } + + [ParamBitField(nameof(IsEnableNeckTurnBitfield), bits: 1, bitsOffset: 7)] + public byte Pad1 + { + get => GetbitfieldValue(_IsEnableNeckTurnBitfield); + set => SetBitfieldValue(ref _IsEnableNeckTurnBitfield, value); + } + + #endregion BitField IsEnableNeckTurnBitfield + + #region BitField VowTypeBitfield ============================================================================== + + [ParamField(0x149, ParamType.U8)] + public byte VowTypeBitfield + { + get => _VowTypeBitfield; + set => WriteParamField(ref _VowTypeBitfield, value); + } + private byte _VowTypeBitfield; + + [ParamBitField(nameof(VowTypeBitfield), bits: 3, bitsOffset: 0)] + public byte VowType + { + get => GetbitfieldValue(_VowTypeBitfield); + set => SetBitfieldValue(ref _VowTypeBitfield, value); + } + + [ParamBitField(nameof(VowTypeBitfield), bits: 1, bitsOffset: 3)] + public byte DisableInitializeDead + { + get => GetbitfieldValue(_VowTypeBitfield); + set => SetBitfieldValue(ref _VowTypeBitfield, value); + } + + [ParamBitField(nameof(VowTypeBitfield), bits: 4, bitsOffset: 4)] + public byte Pad3 + { + get => GetbitfieldValue(_VowTypeBitfield); + set => SetBitfieldValue(ref _VowTypeBitfield, value); + } + + #endregion BitField VowTypeBitfield + + [ParamField(0x14A, ParamType.Dummy8, 6)] + public byte[] Pad2 + { + get => _Pad2; + set => WriteParamField(ref _Pad2, value); + } + private byte[] _Pad2 = null!; + } diff --git a/src/SoulMemory/DarkSouls1/Parameters/NpcThinkParam.cs b/src/SoulMemory/DarkSouls1/Parameters/NpcThinkParam.cs index 01006ef..dfea899 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/NpcThinkParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/NpcThinkParam.cs @@ -18,441 +18,440 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters +namespace SoulMemory.DarkSouls1.Parameters; + +[ExcludeFromCodeCoverage] +public class NpcThinkParam : BaseParam { - [ExcludeFromCodeCoverage] - public class NpcThinkParam : BaseParam - { - public NpcThinkParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - - [ParamField(0x0, ParamType.I32)] - public int LogicId - { - get => _LogicId; - set => WriteParamField(ref _LogicId, value); - } - private int _LogicId; - - [ParamField(0x4, ParamType.I32)] - public int BattleGoalID - { - get => _BattleGoalID; - set => WriteParamField(ref _BattleGoalID, value); - } - private int _BattleGoalID; - - [ParamField(0x8, ParamType.F32)] - public float NearDist - { - get => _NearDist; - set => WriteParamField(ref _NearDist, value); - } - private float _NearDist; - - [ParamField(0xC, ParamType.F32)] - public float MidDist - { - get => _MidDist; - set => WriteParamField(ref _MidDist, value); - } - private float _MidDist; - - [ParamField(0x10, ParamType.F32)] - public float FarDist - { - get => _FarDist; - set => WriteParamField(ref _FarDist, value); - } - private float _FarDist; - - [ParamField(0x14, ParamType.F32)] - public float OutDist - { - get => _OutDist; - set => WriteParamField(ref _OutDist, value); - } - private float _OutDist; - - [ParamField(0x18, ParamType.F32)] - public float BackHomeLife_OnHitEneWal - { - get => _BackHomeLife_OnHitEneWal; - set => WriteParamField(ref _BackHomeLife_OnHitEneWal, value); - } - private float _BackHomeLife_OnHitEneWal; - - [ParamField(0x1C, ParamType.I32)] - public int GoalID_ToCaution - { - get => _GoalID_ToCaution; - set => WriteParamField(ref _GoalID_ToCaution, value); - } - private int _GoalID_ToCaution; - - [ParamField(0x20, ParamType.I32)] - public int IdAttackCannotMove - { - get => _IdAttackCannotMove; - set => WriteParamField(ref _IdAttackCannotMove, value); - } - private int _IdAttackCannotMove; - - [ParamField(0x24, ParamType.I32)] - public int GoalID_ToFind - { - get => _GoalID_ToFind; - set => WriteParamField(ref _GoalID_ToFind, value); - } - private int _GoalID_ToFind; - - [ParamField(0x28, ParamType.I32)] - public int CallHelp_ActionAnimId - { - get => _CallHelp_ActionAnimId; - set => WriteParamField(ref _CallHelp_ActionAnimId, value); - } - private int _CallHelp_ActionAnimId; - - [ParamField(0x2C, ParamType.I32)] - public int CallHelp_CallActionId - { - get => _CallHelp_CallActionId; - set => WriteParamField(ref _CallHelp_CallActionId, value); - } - private int _CallHelp_CallActionId; - - [ParamField(0x30, ParamType.U16)] - public ushort Eye_dist - { - get => _Eye_dist; - set => WriteParamField(ref _Eye_dist, value); - } - private ushort _Eye_dist; - - [ParamField(0x32, ParamType.U16)] - public ushort Ear_dist - { - get => _Ear_dist; - set => WriteParamField(ref _Ear_dist, value); - } - private ushort _Ear_dist; - - [ParamField(0x34, ParamType.U16)] - public ushort Ear_soundcut_dist - { - get => _Ear_soundcut_dist; - set => WriteParamField(ref _Ear_soundcut_dist, value); - } - private ushort _Ear_soundcut_dist; - - [ParamField(0x36, ParamType.U16)] - public ushort Nose_dist - { - get => _Nose_dist; - set => WriteParamField(ref _Nose_dist, value); - } - private ushort _Nose_dist; - - [ParamField(0x38, ParamType.U16)] - public ushort MaxBackhomeDist - { - get => _MaxBackhomeDist; - set => WriteParamField(ref _MaxBackhomeDist, value); - } - private ushort _MaxBackhomeDist; - - [ParamField(0x3A, ParamType.U16)] - public ushort BackhomeDist - { - get => _BackhomeDist; - set => WriteParamField(ref _BackhomeDist, value); - } - private ushort _BackhomeDist; - - [ParamField(0x3C, ParamType.U16)] - public ushort BackhomeBattleDist - { - get => _BackhomeBattleDist; - set => WriteParamField(ref _BackhomeBattleDist, value); - } - private ushort _BackhomeBattleDist; - - [ParamField(0x3E, ParamType.U16)] - public ushort NonBattleActLife - { - get => _NonBattleActLife; - set => WriteParamField(ref _NonBattleActLife, value); - } - private ushort _NonBattleActLife; - - [ParamField(0x40, ParamType.U16)] - public ushort BackHome_LookTargetTime - { - get => _BackHome_LookTargetTime; - set => WriteParamField(ref _BackHome_LookTargetTime, value); - } - private ushort _BackHome_LookTargetTime; - - [ParamField(0x42, ParamType.U16)] - public ushort BackHome_LookTargetDist - { - get => _BackHome_LookTargetDist; - set => WriteParamField(ref _BackHome_LookTargetDist, value); - } - private ushort _BackHome_LookTargetDist; - - [ParamField(0x44, ParamType.U16)] - public ushort SightTargetForgetTime - { - get => _SightTargetForgetTime; - set => WriteParamField(ref _SightTargetForgetTime, value); - } - private ushort _SightTargetForgetTime; - - [ParamField(0x46, ParamType.U16)] - public ushort SoundTargetForgetTime - { - get => _SoundTargetForgetTime; - set => WriteParamField(ref _SoundTargetForgetTime, value); - } - private ushort _SoundTargetForgetTime; - - [ParamField(0x48, ParamType.U16)] - public ushort BattleStartDist - { - get => _BattleStartDist; - set => WriteParamField(ref _BattleStartDist, value); - } - private ushort _BattleStartDist; - - [ParamField(0x4A, ParamType.U16)] - public ushort CallHelp_MyPeerId - { - get => _CallHelp_MyPeerId; - set => WriteParamField(ref _CallHelp_MyPeerId, value); - } - private ushort _CallHelp_MyPeerId; - - [ParamField(0x4C, ParamType.U16)] - public ushort CallHelp_CallPeerId - { - get => _CallHelp_CallPeerId; - set => WriteParamField(ref _CallHelp_CallPeerId, value); - } - private ushort _CallHelp_CallPeerId; - - [ParamField(0x4E, ParamType.U16)] - public ushort TargetSys_DmgEffectRate - { - get => _TargetSys_DmgEffectRate; - set => WriteParamField(ref _TargetSys_DmgEffectRate, value); - } - private ushort _TargetSys_DmgEffectRate; - - [ParamField(0x50, ParamType.U8)] - public byte TeamAttackEffectivity - { - get => _TeamAttackEffectivity; - set => WriteParamField(ref _TeamAttackEffectivity, value); - } - private byte _TeamAttackEffectivity; - - [ParamField(0x51, ParamType.U8)] - public byte Eye_angX - { - get => _Eye_angX; - set => WriteParamField(ref _Eye_angX, value); - } - private byte _Eye_angX; - - [ParamField(0x52, ParamType.U8)] - public byte Eye_angY - { - get => _Eye_angY; - set => WriteParamField(ref _Eye_angY, value); - } - private byte _Eye_angY; - - [ParamField(0x53, ParamType.U8)] - public byte Ear_angX - { - get => _Ear_angX; - set => WriteParamField(ref _Ear_angX, value); - } - private byte _Ear_angX; - - [ParamField(0x54, ParamType.U8)] - public byte Ear_angY - { - get => _Ear_angY; - set => WriteParamField(ref _Ear_angY, value); - } - private byte _Ear_angY; - - [ParamField(0x55, ParamType.U8)] - public byte CallHelp_CallValidMinDistTarget - { - get => _CallHelp_CallValidMinDistTarget; - set => WriteParamField(ref _CallHelp_CallValidMinDistTarget, value); - } - private byte _CallHelp_CallValidMinDistTarget; - - [ParamField(0x56, ParamType.U8)] - public byte CallHelp_CallValidRange - { - get => _CallHelp_CallValidRange; - set => WriteParamField(ref _CallHelp_CallValidRange, value); - } - private byte _CallHelp_CallValidRange; - - [ParamField(0x57, ParamType.U8)] - public byte CallHelp_ForgetTimeByArrival - { - get => _CallHelp_ForgetTimeByArrival; - set => WriteParamField(ref _CallHelp_ForgetTimeByArrival, value); - } - private byte _CallHelp_ForgetTimeByArrival; - - [ParamField(0x58, ParamType.U8)] - public byte CallHelp_MinWaitTime - { - get => _CallHelp_MinWaitTime; - set => WriteParamField(ref _CallHelp_MinWaitTime, value); - } - private byte _CallHelp_MinWaitTime; - - [ParamField(0x59, ParamType.U8)] - public byte CallHelp_MaxWaitTime - { - get => _CallHelp_MaxWaitTime; - set => WriteParamField(ref _CallHelp_MaxWaitTime, value); - } - private byte _CallHelp_MaxWaitTime; - - [ParamField(0x5A, ParamType.U8)] - public byte GoalAction_ToCaution - { - get => _GoalAction_ToCaution; - set => WriteParamField(ref _GoalAction_ToCaution, value); - } - private byte _GoalAction_ToCaution; - - [ParamField(0x5B, ParamType.U8)] - public byte GoalAction_ToFind - { - get => _GoalAction_ToFind; - set => WriteParamField(ref _GoalAction_ToFind, value); - } - private byte _GoalAction_ToFind; - - [ParamField(0x5C, ParamType.U8)] - public byte CallHelp_ReplyBehaviorType - { - get => _CallHelp_ReplyBehaviorType; - set => WriteParamField(ref _CallHelp_ReplyBehaviorType, value); - } - private byte _CallHelp_ReplyBehaviorType; - - [ParamField(0x5D, ParamType.U8)] - public byte DisablePathMove - { - get => _DisablePathMove; - set => WriteParamField(ref _DisablePathMove, value); - } - private byte _DisablePathMove; - - [ParamField(0x5E, ParamType.U8)] - public byte SkipArrivalVisibleCheck - { - get => _SkipArrivalVisibleCheck; - set => WriteParamField(ref _SkipArrivalVisibleCheck, value); - } - private byte _SkipArrivalVisibleCheck; - - [ParamField(0x5F, ParamType.U8)] - public byte ThinkAttr_doAdmirer - { - get => _ThinkAttr_doAdmirer; - set => WriteParamField(ref _ThinkAttr_doAdmirer, value); - } - private byte _ThinkAttr_doAdmirer; - - #region BitField EnableNaviFlg_EdgeBitfield ============================================================================== - - [ParamField(0x60, ParamType.U8)] - public byte EnableNaviFlg_EdgeBitfield - { - get => _EnableNaviFlg_EdgeBitfield; - set => WriteParamField(ref _EnableNaviFlg_EdgeBitfield, value); - } - private byte _EnableNaviFlg_EdgeBitfield; - - [ParamBitField(nameof(EnableNaviFlg_EdgeBitfield), bits: 1, bitsOffset: 0)] - public byte EnableNaviFlg_Edge - { - get => GetbitfieldValue(_EnableNaviFlg_EdgeBitfield); - set => SetBitfieldValue(ref _EnableNaviFlg_EdgeBitfield, value); - } - - [ParamBitField(nameof(EnableNaviFlg_EdgeBitfield), bits: 1, bitsOffset: 1)] - public byte EnableNaviFlg_LargeSpace - { - get => GetbitfieldValue(_EnableNaviFlg_EdgeBitfield); - set => SetBitfieldValue(ref _EnableNaviFlg_EdgeBitfield, value); - } - - [ParamBitField(nameof(EnableNaviFlg_EdgeBitfield), bits: 1, bitsOffset: 2)] - public byte EnableNaviFlg_Ladder - { - get => GetbitfieldValue(_EnableNaviFlg_EdgeBitfield); - set => SetBitfieldValue(ref _EnableNaviFlg_EdgeBitfield, value); - } - - [ParamBitField(nameof(EnableNaviFlg_EdgeBitfield), bits: 1, bitsOffset: 3)] - public byte EnableNaviFlg_Hole - { - get => GetbitfieldValue(_EnableNaviFlg_EdgeBitfield); - set => SetBitfieldValue(ref _EnableNaviFlg_EdgeBitfield, value); - } - - [ParamBitField(nameof(EnableNaviFlg_EdgeBitfield), bits: 1, bitsOffset: 4)] - public byte EnableNaviFlg_Door - { - get => GetbitfieldValue(_EnableNaviFlg_EdgeBitfield); - set => SetBitfieldValue(ref _EnableNaviFlg_EdgeBitfield, value); - } - - [ParamBitField(nameof(EnableNaviFlg_EdgeBitfield), bits: 1, bitsOffset: 5)] - public byte EnableNaviFlg_InSideWall - { - get => GetbitfieldValue(_EnableNaviFlg_EdgeBitfield); - set => SetBitfieldValue(ref _EnableNaviFlg_EdgeBitfield, value); - } - - [ParamBitField(nameof(EnableNaviFlg_EdgeBitfield), bits: 2, bitsOffset: 6)] - public byte EnableNaviFlg_reserve0 - { - get => GetbitfieldValue(_EnableNaviFlg_EdgeBitfield); - set => SetBitfieldValue(ref _EnableNaviFlg_EdgeBitfield, value); - } - - #endregion BitField EnableNaviFlg_EdgeBitfield - - [ParamField(0x61, ParamType.Dummy8, 3)] - public byte[] EnableNaviFlg_reserve1 - { - get => _EnableNaviFlg_reserve1; - set => WriteParamField(ref _EnableNaviFlg_reserve1, value); - } - private byte[] _EnableNaviFlg_reserve1 = null!; - - [ParamField(0x64, ParamType.Dummy8, 12)] - public byte[] Pad0 - { - get => _Pad0; - set => WriteParamField(ref _Pad0, value); - } - private byte[] _Pad0 = null!; + public NpcThinkParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} + + [ParamField(0x0, ParamType.I32)] + public int LogicId + { + get => _LogicId; + set => WriteParamField(ref _LogicId, value); + } + private int _LogicId; + + [ParamField(0x4, ParamType.I32)] + public int BattleGoalID + { + get => _BattleGoalID; + set => WriteParamField(ref _BattleGoalID, value); + } + private int _BattleGoalID; + + [ParamField(0x8, ParamType.F32)] + public float NearDist + { + get => _NearDist; + set => WriteParamField(ref _NearDist, value); + } + private float _NearDist; + + [ParamField(0xC, ParamType.F32)] + public float MidDist + { + get => _MidDist; + set => WriteParamField(ref _MidDist, value); + } + private float _MidDist; + + [ParamField(0x10, ParamType.F32)] + public float FarDist + { + get => _FarDist; + set => WriteParamField(ref _FarDist, value); + } + private float _FarDist; + + [ParamField(0x14, ParamType.F32)] + public float OutDist + { + get => _OutDist; + set => WriteParamField(ref _OutDist, value); + } + private float _OutDist; + + [ParamField(0x18, ParamType.F32)] + public float BackHomeLife_OnHitEneWal + { + get => _BackHomeLife_OnHitEneWal; + set => WriteParamField(ref _BackHomeLife_OnHitEneWal, value); + } + private float _BackHomeLife_OnHitEneWal; + + [ParamField(0x1C, ParamType.I32)] + public int GoalID_ToCaution + { + get => _GoalID_ToCaution; + set => WriteParamField(ref _GoalID_ToCaution, value); + } + private int _GoalID_ToCaution; + + [ParamField(0x20, ParamType.I32)] + public int IdAttackCannotMove + { + get => _IdAttackCannotMove; + set => WriteParamField(ref _IdAttackCannotMove, value); + } + private int _IdAttackCannotMove; + + [ParamField(0x24, ParamType.I32)] + public int GoalID_ToFind + { + get => _GoalID_ToFind; + set => WriteParamField(ref _GoalID_ToFind, value); + } + private int _GoalID_ToFind; + + [ParamField(0x28, ParamType.I32)] + public int CallHelp_ActionAnimId + { + get => _CallHelp_ActionAnimId; + set => WriteParamField(ref _CallHelp_ActionAnimId, value); + } + private int _CallHelp_ActionAnimId; + + [ParamField(0x2C, ParamType.I32)] + public int CallHelp_CallActionId + { + get => _CallHelp_CallActionId; + set => WriteParamField(ref _CallHelp_CallActionId, value); + } + private int _CallHelp_CallActionId; + + [ParamField(0x30, ParamType.U16)] + public ushort Eye_dist + { + get => _Eye_dist; + set => WriteParamField(ref _Eye_dist, value); + } + private ushort _Eye_dist; + + [ParamField(0x32, ParamType.U16)] + public ushort Ear_dist + { + get => _Ear_dist; + set => WriteParamField(ref _Ear_dist, value); + } + private ushort _Ear_dist; + + [ParamField(0x34, ParamType.U16)] + public ushort Ear_soundcut_dist + { + get => _Ear_soundcut_dist; + set => WriteParamField(ref _Ear_soundcut_dist, value); + } + private ushort _Ear_soundcut_dist; + + [ParamField(0x36, ParamType.U16)] + public ushort Nose_dist + { + get => _Nose_dist; + set => WriteParamField(ref _Nose_dist, value); + } + private ushort _Nose_dist; + + [ParamField(0x38, ParamType.U16)] + public ushort MaxBackhomeDist + { + get => _MaxBackhomeDist; + set => WriteParamField(ref _MaxBackhomeDist, value); + } + private ushort _MaxBackhomeDist; + + [ParamField(0x3A, ParamType.U16)] + public ushort BackhomeDist + { + get => _BackhomeDist; + set => WriteParamField(ref _BackhomeDist, value); + } + private ushort _BackhomeDist; + + [ParamField(0x3C, ParamType.U16)] + public ushort BackhomeBattleDist + { + get => _BackhomeBattleDist; + set => WriteParamField(ref _BackhomeBattleDist, value); + } + private ushort _BackhomeBattleDist; + + [ParamField(0x3E, ParamType.U16)] + public ushort NonBattleActLife + { + get => _NonBattleActLife; + set => WriteParamField(ref _NonBattleActLife, value); + } + private ushort _NonBattleActLife; + + [ParamField(0x40, ParamType.U16)] + public ushort BackHome_LookTargetTime + { + get => _BackHome_LookTargetTime; + set => WriteParamField(ref _BackHome_LookTargetTime, value); + } + private ushort _BackHome_LookTargetTime; + + [ParamField(0x42, ParamType.U16)] + public ushort BackHome_LookTargetDist + { + get => _BackHome_LookTargetDist; + set => WriteParamField(ref _BackHome_LookTargetDist, value); + } + private ushort _BackHome_LookTargetDist; + + [ParamField(0x44, ParamType.U16)] + public ushort SightTargetForgetTime + { + get => _SightTargetForgetTime; + set => WriteParamField(ref _SightTargetForgetTime, value); + } + private ushort _SightTargetForgetTime; + + [ParamField(0x46, ParamType.U16)] + public ushort SoundTargetForgetTime + { + get => _SoundTargetForgetTime; + set => WriteParamField(ref _SoundTargetForgetTime, value); + } + private ushort _SoundTargetForgetTime; + + [ParamField(0x48, ParamType.U16)] + public ushort BattleStartDist + { + get => _BattleStartDist; + set => WriteParamField(ref _BattleStartDist, value); + } + private ushort _BattleStartDist; + + [ParamField(0x4A, ParamType.U16)] + public ushort CallHelp_MyPeerId + { + get => _CallHelp_MyPeerId; + set => WriteParamField(ref _CallHelp_MyPeerId, value); + } + private ushort _CallHelp_MyPeerId; + + [ParamField(0x4C, ParamType.U16)] + public ushort CallHelp_CallPeerId + { + get => _CallHelp_CallPeerId; + set => WriteParamField(ref _CallHelp_CallPeerId, value); + } + private ushort _CallHelp_CallPeerId; + [ParamField(0x4E, ParamType.U16)] + public ushort TargetSys_DmgEffectRate + { + get => _TargetSys_DmgEffectRate; + set => WriteParamField(ref _TargetSys_DmgEffectRate, value); + } + private ushort _TargetSys_DmgEffectRate; + + [ParamField(0x50, ParamType.U8)] + public byte TeamAttackEffectivity + { + get => _TeamAttackEffectivity; + set => WriteParamField(ref _TeamAttackEffectivity, value); + } + private byte _TeamAttackEffectivity; + + [ParamField(0x51, ParamType.U8)] + public byte Eye_angX + { + get => _Eye_angX; + set => WriteParamField(ref _Eye_angX, value); + } + private byte _Eye_angX; + + [ParamField(0x52, ParamType.U8)] + public byte Eye_angY + { + get => _Eye_angY; + set => WriteParamField(ref _Eye_angY, value); + } + private byte _Eye_angY; + + [ParamField(0x53, ParamType.U8)] + public byte Ear_angX + { + get => _Ear_angX; + set => WriteParamField(ref _Ear_angX, value); + } + private byte _Ear_angX; + + [ParamField(0x54, ParamType.U8)] + public byte Ear_angY + { + get => _Ear_angY; + set => WriteParamField(ref _Ear_angY, value); + } + private byte _Ear_angY; + + [ParamField(0x55, ParamType.U8)] + public byte CallHelp_CallValidMinDistTarget + { + get => _CallHelp_CallValidMinDistTarget; + set => WriteParamField(ref _CallHelp_CallValidMinDistTarget, value); + } + private byte _CallHelp_CallValidMinDistTarget; + + [ParamField(0x56, ParamType.U8)] + public byte CallHelp_CallValidRange + { + get => _CallHelp_CallValidRange; + set => WriteParamField(ref _CallHelp_CallValidRange, value); + } + private byte _CallHelp_CallValidRange; + + [ParamField(0x57, ParamType.U8)] + public byte CallHelp_ForgetTimeByArrival + { + get => _CallHelp_ForgetTimeByArrival; + set => WriteParamField(ref _CallHelp_ForgetTimeByArrival, value); + } + private byte _CallHelp_ForgetTimeByArrival; + + [ParamField(0x58, ParamType.U8)] + public byte CallHelp_MinWaitTime + { + get => _CallHelp_MinWaitTime; + set => WriteParamField(ref _CallHelp_MinWaitTime, value); + } + private byte _CallHelp_MinWaitTime; + + [ParamField(0x59, ParamType.U8)] + public byte CallHelp_MaxWaitTime + { + get => _CallHelp_MaxWaitTime; + set => WriteParamField(ref _CallHelp_MaxWaitTime, value); + } + private byte _CallHelp_MaxWaitTime; + + [ParamField(0x5A, ParamType.U8)] + public byte GoalAction_ToCaution + { + get => _GoalAction_ToCaution; + set => WriteParamField(ref _GoalAction_ToCaution, value); + } + private byte _GoalAction_ToCaution; + + [ParamField(0x5B, ParamType.U8)] + public byte GoalAction_ToFind + { + get => _GoalAction_ToFind; + set => WriteParamField(ref _GoalAction_ToFind, value); + } + private byte _GoalAction_ToFind; + + [ParamField(0x5C, ParamType.U8)] + public byte CallHelp_ReplyBehaviorType + { + get => _CallHelp_ReplyBehaviorType; + set => WriteParamField(ref _CallHelp_ReplyBehaviorType, value); + } + private byte _CallHelp_ReplyBehaviorType; + + [ParamField(0x5D, ParamType.U8)] + public byte DisablePathMove + { + get => _DisablePathMove; + set => WriteParamField(ref _DisablePathMove, value); + } + private byte _DisablePathMove; + + [ParamField(0x5E, ParamType.U8)] + public byte SkipArrivalVisibleCheck + { + get => _SkipArrivalVisibleCheck; + set => WriteParamField(ref _SkipArrivalVisibleCheck, value); + } + private byte _SkipArrivalVisibleCheck; + + [ParamField(0x5F, ParamType.U8)] + public byte ThinkAttr_doAdmirer + { + get => _ThinkAttr_doAdmirer; + set => WriteParamField(ref _ThinkAttr_doAdmirer, value); + } + private byte _ThinkAttr_doAdmirer; + + #region BitField EnableNaviFlg_EdgeBitfield ============================================================================== + + [ParamField(0x60, ParamType.U8)] + public byte EnableNaviFlg_EdgeBitfield + { + get => _EnableNaviFlg_EdgeBitfield; + set => WriteParamField(ref _EnableNaviFlg_EdgeBitfield, value); + } + private byte _EnableNaviFlg_EdgeBitfield; + + [ParamBitField(nameof(EnableNaviFlg_EdgeBitfield), bits: 1, bitsOffset: 0)] + public byte EnableNaviFlg_Edge + { + get => GetbitfieldValue(_EnableNaviFlg_EdgeBitfield); + set => SetBitfieldValue(ref _EnableNaviFlg_EdgeBitfield, value); + } + + [ParamBitField(nameof(EnableNaviFlg_EdgeBitfield), bits: 1, bitsOffset: 1)] + public byte EnableNaviFlg_LargeSpace + { + get => GetbitfieldValue(_EnableNaviFlg_EdgeBitfield); + set => SetBitfieldValue(ref _EnableNaviFlg_EdgeBitfield, value); + } + + [ParamBitField(nameof(EnableNaviFlg_EdgeBitfield), bits: 1, bitsOffset: 2)] + public byte EnableNaviFlg_Ladder + { + get => GetbitfieldValue(_EnableNaviFlg_EdgeBitfield); + set => SetBitfieldValue(ref _EnableNaviFlg_EdgeBitfield, value); } + + [ParamBitField(nameof(EnableNaviFlg_EdgeBitfield), bits: 1, bitsOffset: 3)] + public byte EnableNaviFlg_Hole + { + get => GetbitfieldValue(_EnableNaviFlg_EdgeBitfield); + set => SetBitfieldValue(ref _EnableNaviFlg_EdgeBitfield, value); + } + + [ParamBitField(nameof(EnableNaviFlg_EdgeBitfield), bits: 1, bitsOffset: 4)] + public byte EnableNaviFlg_Door + { + get => GetbitfieldValue(_EnableNaviFlg_EdgeBitfield); + set => SetBitfieldValue(ref _EnableNaviFlg_EdgeBitfield, value); + } + + [ParamBitField(nameof(EnableNaviFlg_EdgeBitfield), bits: 1, bitsOffset: 5)] + public byte EnableNaviFlg_InSideWall + { + get => GetbitfieldValue(_EnableNaviFlg_EdgeBitfield); + set => SetBitfieldValue(ref _EnableNaviFlg_EdgeBitfield, value); + } + + [ParamBitField(nameof(EnableNaviFlg_EdgeBitfield), bits: 2, bitsOffset: 6)] + public byte EnableNaviFlg_reserve0 + { + get => GetbitfieldValue(_EnableNaviFlg_EdgeBitfield); + set => SetBitfieldValue(ref _EnableNaviFlg_EdgeBitfield, value); + } + + #endregion BitField EnableNaviFlg_EdgeBitfield + + [ParamField(0x61, ParamType.Dummy8, 3)] + public byte[] EnableNaviFlg_reserve1 + { + get => _EnableNaviFlg_reserve1; + set => WriteParamField(ref _EnableNaviFlg_reserve1, value); + } + private byte[] _EnableNaviFlg_reserve1 = null!; + + [ParamField(0x64, ParamType.Dummy8, 12)] + public byte[] Pad0 + { + get => _Pad0; + set => WriteParamField(ref _Pad0, value); + } + private byte[] _Pad0 = null!; + } diff --git a/src/SoulMemory/DarkSouls1/Parameters/ObjActParam.cs b/src/SoulMemory/DarkSouls1/Parameters/ObjActParam.cs index 3ba43da..684271a 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/ObjActParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/ObjActParam.cs @@ -18,148 +18,147 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters +namespace SoulMemory.DarkSouls1.Parameters; + +[ExcludeFromCodeCoverage] +public class ObjActParam : BaseParam { - [ExcludeFromCodeCoverage] - public class ObjActParam : BaseParam - { - public ObjActParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - - [ParamField(0x0, ParamType.I32)] - public int ActionEnableMsgId - { - get => _ActionEnableMsgId; - set => WriteParamField(ref _ActionEnableMsgId, value); - } - private int _ActionEnableMsgId; - - [ParamField(0x4, ParamType.I32)] - public int ActionFailedMsgId - { - get => _ActionFailedMsgId; - set => WriteParamField(ref _ActionFailedMsgId, value); - } - private int _ActionFailedMsgId; - - [ParamField(0x8, ParamType.I32)] - public int SpQualifiedPassEventFlag - { - get => _SpQualifiedPassEventFlag; - set => WriteParamField(ref _SpQualifiedPassEventFlag, value); - } - private int _SpQualifiedPassEventFlag; - - [ParamField(0xC, ParamType.U16)] - public ushort ValidDist - { - get => _ValidDist; - set => WriteParamField(ref _ValidDist, value); - } - private ushort _ValidDist; - - [ParamField(0xE, ParamType.U16)] - public ushort PlayerAnimId - { - get => _PlayerAnimId; - set => WriteParamField(ref _PlayerAnimId, value); - } - private ushort _PlayerAnimId; - - [ParamField(0x10, ParamType.U16)] - public ushort ChrAnimId - { - get => _ChrAnimId; - set => WriteParamField(ref _ChrAnimId, value); - } - private ushort _ChrAnimId; - - [ParamField(0x12, ParamType.U16)] - public ushort SpQualifiedId - { - get => _SpQualifiedId; - set => WriteParamField(ref _SpQualifiedId, value); - } - private ushort _SpQualifiedId; - - [ParamField(0x14, ParamType.U16)] - public ushort SpQualifiedId2 - { - get => _SpQualifiedId2; - set => WriteParamField(ref _SpQualifiedId2, value); - } - private ushort _SpQualifiedId2; - - [ParamField(0x16, ParamType.U8)] - public byte ObjDummyId - { - get => _ObjDummyId; - set => WriteParamField(ref _ObjDummyId, value); - } - private byte _ObjDummyId; - - [ParamField(0x17, ParamType.U8)] - public byte ObjAnimId - { - get => _ObjAnimId; - set => WriteParamField(ref _ObjAnimId, value); - } - private byte _ObjAnimId; - - [ParamField(0x18, ParamType.U8)] - public byte ValidPlayerAngle - { - get => _ValidPlayerAngle; - set => WriteParamField(ref _ValidPlayerAngle, value); - } - private byte _ValidPlayerAngle; - - [ParamField(0x19, ParamType.U8)] - public byte SpQualifiedType - { - get => _SpQualifiedType; - set => WriteParamField(ref _SpQualifiedType, value); - } - private byte _SpQualifiedType; - - [ParamField(0x1A, ParamType.U8)] - public byte SpQualifiedType2 - { - get => _SpQualifiedType2; - set => WriteParamField(ref _SpQualifiedType2, value); - } - private byte _SpQualifiedType2; - - [ParamField(0x1B, ParamType.U8)] - public byte ValidObjAngle - { - get => _ValidObjAngle; - set => WriteParamField(ref _ValidObjAngle, value); - } - private byte _ValidObjAngle; - - [ParamField(0x1C, ParamType.U8)] - public byte ChrSorbType - { - get => _ChrSorbType; - set => WriteParamField(ref _ChrSorbType, value); - } - private byte _ChrSorbType; - - [ParamField(0x1D, ParamType.U8)] - public byte EventKickTiming - { - get => _EventKickTiming; - set => WriteParamField(ref _EventKickTiming, value); - } - private byte _EventKickTiming; - - [ParamField(0x1E, ParamType.Dummy8, 2)] - public byte[] Pad1 - { - get => _Pad1; - set => WriteParamField(ref _Pad1, value); - } - private byte[] _Pad1 = null!; + public ObjActParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} + + [ParamField(0x0, ParamType.I32)] + public int ActionEnableMsgId + { + get => _ActionEnableMsgId; + set => WriteParamField(ref _ActionEnableMsgId, value); + } + private int _ActionEnableMsgId; + + [ParamField(0x4, ParamType.I32)] + public int ActionFailedMsgId + { + get => _ActionFailedMsgId; + set => WriteParamField(ref _ActionFailedMsgId, value); + } + private int _ActionFailedMsgId; + + [ParamField(0x8, ParamType.I32)] + public int SpQualifiedPassEventFlag + { + get => _SpQualifiedPassEventFlag; + set => WriteParamField(ref _SpQualifiedPassEventFlag, value); + } + private int _SpQualifiedPassEventFlag; + + [ParamField(0xC, ParamType.U16)] + public ushort ValidDist + { + get => _ValidDist; + set => WriteParamField(ref _ValidDist, value); + } + private ushort _ValidDist; + [ParamField(0xE, ParamType.U16)] + public ushort PlayerAnimId + { + get => _PlayerAnimId; + set => WriteParamField(ref _PlayerAnimId, value); + } + private ushort _PlayerAnimId; + + [ParamField(0x10, ParamType.U16)] + public ushort ChrAnimId + { + get => _ChrAnimId; + set => WriteParamField(ref _ChrAnimId, value); + } + private ushort _ChrAnimId; + + [ParamField(0x12, ParamType.U16)] + public ushort SpQualifiedId + { + get => _SpQualifiedId; + set => WriteParamField(ref _SpQualifiedId, value); + } + private ushort _SpQualifiedId; + + [ParamField(0x14, ParamType.U16)] + public ushort SpQualifiedId2 + { + get => _SpQualifiedId2; + set => WriteParamField(ref _SpQualifiedId2, value); + } + private ushort _SpQualifiedId2; + + [ParamField(0x16, ParamType.U8)] + public byte ObjDummyId + { + get => _ObjDummyId; + set => WriteParamField(ref _ObjDummyId, value); } + private byte _ObjDummyId; + + [ParamField(0x17, ParamType.U8)] + public byte ObjAnimId + { + get => _ObjAnimId; + set => WriteParamField(ref _ObjAnimId, value); + } + private byte _ObjAnimId; + + [ParamField(0x18, ParamType.U8)] + public byte ValidPlayerAngle + { + get => _ValidPlayerAngle; + set => WriteParamField(ref _ValidPlayerAngle, value); + } + private byte _ValidPlayerAngle; + + [ParamField(0x19, ParamType.U8)] + public byte SpQualifiedType + { + get => _SpQualifiedType; + set => WriteParamField(ref _SpQualifiedType, value); + } + private byte _SpQualifiedType; + + [ParamField(0x1A, ParamType.U8)] + public byte SpQualifiedType2 + { + get => _SpQualifiedType2; + set => WriteParamField(ref _SpQualifiedType2, value); + } + private byte _SpQualifiedType2; + + [ParamField(0x1B, ParamType.U8)] + public byte ValidObjAngle + { + get => _ValidObjAngle; + set => WriteParamField(ref _ValidObjAngle, value); + } + private byte _ValidObjAngle; + + [ParamField(0x1C, ParamType.U8)] + public byte ChrSorbType + { + get => _ChrSorbType; + set => WriteParamField(ref _ChrSorbType, value); + } + private byte _ChrSorbType; + + [ParamField(0x1D, ParamType.U8)] + public byte EventKickTiming + { + get => _EventKickTiming; + set => WriteParamField(ref _EventKickTiming, value); + } + private byte _EventKickTiming; + + [ParamField(0x1E, ParamType.Dummy8, 2)] + public byte[] Pad1 + { + get => _Pad1; + set => WriteParamField(ref _Pad1, value); + } + private byte[] _Pad1 = null!; + } diff --git a/src/SoulMemory/DarkSouls1/Parameters/ObjectParam.cs b/src/SoulMemory/DarkSouls1/Parameters/ObjectParam.cs index f301f94..a5dae63 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/ObjectParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/ObjectParam.cs @@ -18,176 +18,175 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters +namespace SoulMemory.DarkSouls1.Parameters; + +[ExcludeFromCodeCoverage] +public class ObjectParam : BaseParam { - [ExcludeFromCodeCoverage] - public class ObjectParam : BaseParam - { - public ObjectParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - - [ParamField(0x0, ParamType.I16)] - public short Hp - { - get => _Hp; - set => WriteParamField(ref _Hp, value); - } - private short _Hp; - - [ParamField(0x2, ParamType.U16)] - public ushort Defense - { - get => _Defense; - set => WriteParamField(ref _Defense, value); - } - private ushort _Defense; - - [ParamField(0x4, ParamType.I16)] - public short ExtRefTexId - { - get => _ExtRefTexId; - set => WriteParamField(ref _ExtRefTexId, value); - } - private short _ExtRefTexId; - - [ParamField(0x6, ParamType.I16)] - public short MaterialId - { - get => _MaterialId; - set => WriteParamField(ref _MaterialId, value); - } - private short _MaterialId; - - [ParamField(0x8, ParamType.U8)] - public byte AnimBreakIdMax - { - get => _AnimBreakIdMax; - set => WriteParamField(ref _AnimBreakIdMax, value); - } - private byte _AnimBreakIdMax; - - #region BitField IsCamHitBitfield ============================================================================== - - [ParamField(0x9, ParamType.U8)] - public byte IsCamHitBitfield - { - get => _IsCamHitBitfield; - set => WriteParamField(ref _IsCamHitBitfield, value); - } - private byte _IsCamHitBitfield; - - [ParamBitField(nameof(IsCamHitBitfield), bits: 1, bitsOffset: 0)] - public byte IsCamHit - { - get => GetbitfieldValue(_IsCamHitBitfield); - set => SetBitfieldValue(ref _IsCamHitBitfield, value); - } - - [ParamBitField(nameof(IsCamHitBitfield), bits: 1, bitsOffset: 1)] - public byte IsBreakByPlayerCollide - { - get => GetbitfieldValue(_IsCamHitBitfield); - set => SetBitfieldValue(ref _IsCamHitBitfield, value); - } - - [ParamBitField(nameof(IsCamHitBitfield), bits: 1, bitsOffset: 2)] - public byte IsAnimBreak - { - get => GetbitfieldValue(_IsCamHitBitfield); - set => SetBitfieldValue(ref _IsCamHitBitfield, value); - } - - [ParamBitField(nameof(IsCamHitBitfield), bits: 1, bitsOffset: 3)] - public byte IsPenetrationBulletHit - { - get => GetbitfieldValue(_IsCamHitBitfield); - set => SetBitfieldValue(ref _IsCamHitBitfield, value); - } - - [ParamBitField(nameof(IsCamHitBitfield), bits: 1, bitsOffset: 4)] - public byte IsChrHit - { - get => GetbitfieldValue(_IsCamHitBitfield); - set => SetBitfieldValue(ref _IsCamHitBitfield, value); - } - - [ParamBitField(nameof(IsCamHitBitfield), bits: 1, bitsOffset: 5)] - public byte IsAttackBacklash - { - get => GetbitfieldValue(_IsCamHitBitfield); - set => SetBitfieldValue(ref _IsCamHitBitfield, value); - } - - [ParamBitField(nameof(IsCamHitBitfield), bits: 1, bitsOffset: 6)] - public byte IsDisableBreakForFirstAppear - { - get => GetbitfieldValue(_IsCamHitBitfield); - set => SetBitfieldValue(ref _IsCamHitBitfield, value); - } - - [ParamBitField(nameof(IsCamHitBitfield), bits: 1, bitsOffset: 7)] - public byte IsLadder - { - get => GetbitfieldValue(_IsCamHitBitfield); - set => SetBitfieldValue(ref _IsCamHitBitfield, value); - } - - #endregion BitField IsCamHitBitfield - - #region BitField IsAnimPauseOnRemoPlayBitfield ============================================================================== - - [ParamField(0xA, ParamType.U8)] - public byte IsAnimPauseOnRemoPlayBitfield - { - get => _IsAnimPauseOnRemoPlayBitfield; - set => WriteParamField(ref _IsAnimPauseOnRemoPlayBitfield, value); - } - private byte _IsAnimPauseOnRemoPlayBitfield; - - [ParamBitField(nameof(IsAnimPauseOnRemoPlayBitfield), bits: 1, bitsOffset: 0)] - public byte IsAnimPauseOnRemoPlay - { - get => GetbitfieldValue(_IsAnimPauseOnRemoPlayBitfield); - set => SetBitfieldValue(ref _IsAnimPauseOnRemoPlayBitfield, value); - } - - [ParamBitField(nameof(IsAnimPauseOnRemoPlayBitfield), bits: 1, bitsOffset: 1)] - public byte IsDamageNoHit - { - get => GetbitfieldValue(_IsAnimPauseOnRemoPlayBitfield); - set => SetBitfieldValue(ref _IsAnimPauseOnRemoPlayBitfield, value); - } - - [ParamBitField(nameof(IsAnimPauseOnRemoPlayBitfield), bits: 1, bitsOffset: 2)] - public byte IsMoveObj - { - get => GetbitfieldValue(_IsAnimPauseOnRemoPlayBitfield); - set => SetBitfieldValue(ref _IsAnimPauseOnRemoPlayBitfield, value); - } - - [ParamBitField(nameof(IsAnimPauseOnRemoPlayBitfield), bits: 5, bitsOffset: 3)] - public byte Pad_1 - { - get => GetbitfieldValue(_IsAnimPauseOnRemoPlayBitfield); - set => SetBitfieldValue(ref _IsAnimPauseOnRemoPlayBitfield, value); - } - - #endregion BitField IsAnimPauseOnRemoPlayBitfield - - [ParamField(0xB, ParamType.I8)] - public sbyte DefaultLodParamId - { - get => _DefaultLodParamId; - set => WriteParamField(ref _DefaultLodParamId, value); - } - private sbyte _DefaultLodParamId; - - [ParamField(0xC, ParamType.I32)] - public int BreakSfxId - { - get => _BreakSfxId; - set => WriteParamField(ref _BreakSfxId, value); - } - private int _BreakSfxId; + public ObjectParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} + + [ParamField(0x0, ParamType.I16)] + public short Hp + { + get => _Hp; + set => WriteParamField(ref _Hp, value); + } + private short _Hp; + + [ParamField(0x2, ParamType.U16)] + public ushort Defense + { + get => _Defense; + set => WriteParamField(ref _Defense, value); + } + private ushort _Defense; + + [ParamField(0x4, ParamType.I16)] + public short ExtRefTexId + { + get => _ExtRefTexId; + set => WriteParamField(ref _ExtRefTexId, value); + } + private short _ExtRefTexId; + + [ParamField(0x6, ParamType.I16)] + public short MaterialId + { + get => _MaterialId; + set => WriteParamField(ref _MaterialId, value); + } + private short _MaterialId; + + [ParamField(0x8, ParamType.U8)] + public byte AnimBreakIdMax + { + get => _AnimBreakIdMax; + set => WriteParamField(ref _AnimBreakIdMax, value); + } + private byte _AnimBreakIdMax; + + #region BitField IsCamHitBitfield ============================================================================== + [ParamField(0x9, ParamType.U8)] + public byte IsCamHitBitfield + { + get => _IsCamHitBitfield; + set => WriteParamField(ref _IsCamHitBitfield, value); } + private byte _IsCamHitBitfield; + + [ParamBitField(nameof(IsCamHitBitfield), bits: 1, bitsOffset: 0)] + public byte IsCamHit + { + get => GetbitfieldValue(_IsCamHitBitfield); + set => SetBitfieldValue(ref _IsCamHitBitfield, value); + } + + [ParamBitField(nameof(IsCamHitBitfield), bits: 1, bitsOffset: 1)] + public byte IsBreakByPlayerCollide + { + get => GetbitfieldValue(_IsCamHitBitfield); + set => SetBitfieldValue(ref _IsCamHitBitfield, value); + } + + [ParamBitField(nameof(IsCamHitBitfield), bits: 1, bitsOffset: 2)] + public byte IsAnimBreak + { + get => GetbitfieldValue(_IsCamHitBitfield); + set => SetBitfieldValue(ref _IsCamHitBitfield, value); + } + + [ParamBitField(nameof(IsCamHitBitfield), bits: 1, bitsOffset: 3)] + public byte IsPenetrationBulletHit + { + get => GetbitfieldValue(_IsCamHitBitfield); + set => SetBitfieldValue(ref _IsCamHitBitfield, value); + } + + [ParamBitField(nameof(IsCamHitBitfield), bits: 1, bitsOffset: 4)] + public byte IsChrHit + { + get => GetbitfieldValue(_IsCamHitBitfield); + set => SetBitfieldValue(ref _IsCamHitBitfield, value); + } + + [ParamBitField(nameof(IsCamHitBitfield), bits: 1, bitsOffset: 5)] + public byte IsAttackBacklash + { + get => GetbitfieldValue(_IsCamHitBitfield); + set => SetBitfieldValue(ref _IsCamHitBitfield, value); + } + + [ParamBitField(nameof(IsCamHitBitfield), bits: 1, bitsOffset: 6)] + public byte IsDisableBreakForFirstAppear + { + get => GetbitfieldValue(_IsCamHitBitfield); + set => SetBitfieldValue(ref _IsCamHitBitfield, value); + } + + [ParamBitField(nameof(IsCamHitBitfield), bits: 1, bitsOffset: 7)] + public byte IsLadder + { + get => GetbitfieldValue(_IsCamHitBitfield); + set => SetBitfieldValue(ref _IsCamHitBitfield, value); + } + + #endregion BitField IsCamHitBitfield + + #region BitField IsAnimPauseOnRemoPlayBitfield ============================================================================== + + [ParamField(0xA, ParamType.U8)] + public byte IsAnimPauseOnRemoPlayBitfield + { + get => _IsAnimPauseOnRemoPlayBitfield; + set => WriteParamField(ref _IsAnimPauseOnRemoPlayBitfield, value); + } + private byte _IsAnimPauseOnRemoPlayBitfield; + + [ParamBitField(nameof(IsAnimPauseOnRemoPlayBitfield), bits: 1, bitsOffset: 0)] + public byte IsAnimPauseOnRemoPlay + { + get => GetbitfieldValue(_IsAnimPauseOnRemoPlayBitfield); + set => SetBitfieldValue(ref _IsAnimPauseOnRemoPlayBitfield, value); + } + + [ParamBitField(nameof(IsAnimPauseOnRemoPlayBitfield), bits: 1, bitsOffset: 1)] + public byte IsDamageNoHit + { + get => GetbitfieldValue(_IsAnimPauseOnRemoPlayBitfield); + set => SetBitfieldValue(ref _IsAnimPauseOnRemoPlayBitfield, value); + } + + [ParamBitField(nameof(IsAnimPauseOnRemoPlayBitfield), bits: 1, bitsOffset: 2)] + public byte IsMoveObj + { + get => GetbitfieldValue(_IsAnimPauseOnRemoPlayBitfield); + set => SetBitfieldValue(ref _IsAnimPauseOnRemoPlayBitfield, value); + } + + [ParamBitField(nameof(IsAnimPauseOnRemoPlayBitfield), bits: 5, bitsOffset: 3)] + public byte Pad_1 + { + get => GetbitfieldValue(_IsAnimPauseOnRemoPlayBitfield); + set => SetBitfieldValue(ref _IsAnimPauseOnRemoPlayBitfield, value); + } + + #endregion BitField IsAnimPauseOnRemoPlayBitfield + + [ParamField(0xB, ParamType.I8)] + public sbyte DefaultLodParamId + { + get => _DefaultLodParamId; + set => WriteParamField(ref _DefaultLodParamId, value); + } + private sbyte _DefaultLodParamId; + + [ParamField(0xC, ParamType.I32)] + public int BreakSfxId + { + get => _BreakSfxId; + set => WriteParamField(ref _BreakSfxId, value); + } + private int _BreakSfxId; + } diff --git a/src/SoulMemory/DarkSouls1/Parameters/PointLightBank.cs b/src/SoulMemory/DarkSouls1/Parameters/PointLightBank.cs index cada233..ffab7c6 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/PointLightBank.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/PointLightBank.cs @@ -18,60 +18,59 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters -{ - [ExcludeFromCodeCoverage] - public class PointLightBank : BaseParam - { - public PointLightBank(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} +namespace SoulMemory.DarkSouls1.Parameters; - [ParamField(0x0, ParamType.F32)] - public float DwindleBegin - { - get => _DwindleBegin; - set => WriteParamField(ref _DwindleBegin, value); - } - private float _DwindleBegin; +[ExcludeFromCodeCoverage] +public class PointLightBank : BaseParam +{ + public PointLightBank(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x4, ParamType.F32)] - public float DwindleEnd - { - get => _DwindleEnd; - set => WriteParamField(ref _DwindleEnd, value); - } - private float _DwindleEnd; + [ParamField(0x0, ParamType.F32)] + public float DwindleBegin + { + get => _DwindleBegin; + set => WriteParamField(ref _DwindleBegin, value); + } + private float _DwindleBegin; - [ParamField(0x8, ParamType.I16)] - public short ColR - { - get => _ColR; - set => WriteParamField(ref _ColR, value); - } - private short _ColR; + [ParamField(0x4, ParamType.F32)] + public float DwindleEnd + { + get => _DwindleEnd; + set => WriteParamField(ref _DwindleEnd, value); + } + private float _DwindleEnd; - [ParamField(0xA, ParamType.I16)] - public short ColG - { - get => _ColG; - set => WriteParamField(ref _ColG, value); - } - private short _ColG; + [ParamField(0x8, ParamType.I16)] + public short ColR + { + get => _ColR; + set => WriteParamField(ref _ColR, value); + } + private short _ColR; - [ParamField(0xC, ParamType.I16)] - public short ColB - { - get => _ColB; - set => WriteParamField(ref _ColB, value); - } - private short _ColB; + [ParamField(0xA, ParamType.I16)] + public short ColG + { + get => _ColG; + set => WriteParamField(ref _ColG, value); + } + private short _ColG; - [ParamField(0xE, ParamType.I16)] - public short ColA - { - get => _ColA; - set => WriteParamField(ref _ColA, value); - } - private short _ColA; + [ParamField(0xC, ParamType.I16)] + public short ColB + { + get => _ColB; + set => WriteParamField(ref _ColB, value); + } + private short _ColB; + [ParamField(0xE, ParamType.I16)] + public short ColA + { + get => _ColA; + set => WriteParamField(ref _ColA, value); } + private short _ColA; + } diff --git a/src/SoulMemory/DarkSouls1/Parameters/QwcChangeParam.cs b/src/SoulMemory/DarkSouls1/Parameters/QwcChangeParam.cs index f5ef4b3..73e9efb 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/QwcChangeParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/QwcChangeParam.cs @@ -18,76 +18,75 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters -{ - [ExcludeFromCodeCoverage] - public class QwcChangeParam : BaseParam - { - public QwcChangeParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} +namespace SoulMemory.DarkSouls1.Parameters; - [ParamField(0x0, ParamType.I16)] - public short PcAttrB - { - get => _PcAttrB; - set => WriteParamField(ref _PcAttrB, value); - } - private short _PcAttrB; +[ExcludeFromCodeCoverage] +public class QwcChangeParam : BaseParam +{ + public QwcChangeParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x2, ParamType.I16)] - public short PcAttrW - { - get => _PcAttrW; - set => WriteParamField(ref _PcAttrW, value); - } - private short _PcAttrW; + [ParamField(0x0, ParamType.I16)] + public short PcAttrB + { + get => _PcAttrB; + set => WriteParamField(ref _PcAttrB, value); + } + private short _PcAttrB; - [ParamField(0x4, ParamType.I16)] - public short PcAttrL - { - get => _PcAttrL; - set => WriteParamField(ref _PcAttrL, value); - } - private short _PcAttrL; + [ParamField(0x2, ParamType.I16)] + public short PcAttrW + { + get => _PcAttrW; + set => WriteParamField(ref _PcAttrW, value); + } + private short _PcAttrW; - [ParamField(0x6, ParamType.I16)] - public short PcAttrR - { - get => _PcAttrR; - set => WriteParamField(ref _PcAttrR, value); - } - private short _PcAttrR; + [ParamField(0x4, ParamType.I16)] + public short PcAttrL + { + get => _PcAttrL; + set => WriteParamField(ref _PcAttrL, value); + } + private short _PcAttrL; - [ParamField(0x8, ParamType.I16)] - public short AreaAttrB - { - get => _AreaAttrB; - set => WriteParamField(ref _AreaAttrB, value); - } - private short _AreaAttrB; + [ParamField(0x6, ParamType.I16)] + public short PcAttrR + { + get => _PcAttrR; + set => WriteParamField(ref _PcAttrR, value); + } + private short _PcAttrR; - [ParamField(0xA, ParamType.I16)] - public short AreaAttrW - { - get => _AreaAttrW; - set => WriteParamField(ref _AreaAttrW, value); - } - private short _AreaAttrW; + [ParamField(0x8, ParamType.I16)] + public short AreaAttrB + { + get => _AreaAttrB; + set => WriteParamField(ref _AreaAttrB, value); + } + private short _AreaAttrB; - [ParamField(0xC, ParamType.I16)] - public short AreaAttrL - { - get => _AreaAttrL; - set => WriteParamField(ref _AreaAttrL, value); - } - private short _AreaAttrL; + [ParamField(0xA, ParamType.I16)] + public short AreaAttrW + { + get => _AreaAttrW; + set => WriteParamField(ref _AreaAttrW, value); + } + private short _AreaAttrW; - [ParamField(0xE, ParamType.I16)] - public short AreaAttrR - { - get => _AreaAttrR; - set => WriteParamField(ref _AreaAttrR, value); - } - private short _AreaAttrR; + [ParamField(0xC, ParamType.I16)] + public short AreaAttrL + { + get => _AreaAttrL; + set => WriteParamField(ref _AreaAttrL, value); + } + private short _AreaAttrL; + [ParamField(0xE, ParamType.I16)] + public short AreaAttrR + { + get => _AreaAttrR; + set => WriteParamField(ref _AreaAttrR, value); } + private short _AreaAttrR; + } diff --git a/src/SoulMemory/DarkSouls1/Parameters/QwcJudgeParam.cs b/src/SoulMemory/DarkSouls1/Parameters/QwcJudgeParam.cs index 20dfd01..dcb7bd3 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/QwcJudgeParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/QwcJudgeParam.cs @@ -18,76 +18,75 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters -{ - [ExcludeFromCodeCoverage] - public class QwcJudgeParam : BaseParam - { - public QwcJudgeParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} +namespace SoulMemory.DarkSouls1.Parameters; - [ParamField(0x0, ParamType.I16)] - public short PcJudgeUnderWB - { - get => _PcJudgeUnderWB; - set => WriteParamField(ref _PcJudgeUnderWB, value); - } - private short _PcJudgeUnderWB; +[ExcludeFromCodeCoverage] +public class QwcJudgeParam : BaseParam +{ + public QwcJudgeParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x2, ParamType.I16)] - public short PcJudgeTopWB - { - get => _PcJudgeTopWB; - set => WriteParamField(ref _PcJudgeTopWB, value); - } - private short _PcJudgeTopWB; + [ParamField(0x0, ParamType.I16)] + public short PcJudgeUnderWB + { + get => _PcJudgeUnderWB; + set => WriteParamField(ref _PcJudgeUnderWB, value); + } + private short _PcJudgeUnderWB; - [ParamField(0x4, ParamType.I16)] - public short PcJudgeUnderLR - { - get => _PcJudgeUnderLR; - set => WriteParamField(ref _PcJudgeUnderLR, value); - } - private short _PcJudgeUnderLR; + [ParamField(0x2, ParamType.I16)] + public short PcJudgeTopWB + { + get => _PcJudgeTopWB; + set => WriteParamField(ref _PcJudgeTopWB, value); + } + private short _PcJudgeTopWB; - [ParamField(0x6, ParamType.I16)] - public short PcJudgeTopLR - { - get => _PcJudgeTopLR; - set => WriteParamField(ref _PcJudgeTopLR, value); - } - private short _PcJudgeTopLR; + [ParamField(0x4, ParamType.I16)] + public short PcJudgeUnderLR + { + get => _PcJudgeUnderLR; + set => WriteParamField(ref _PcJudgeUnderLR, value); + } + private short _PcJudgeUnderLR; - [ParamField(0x8, ParamType.I16)] - public short AreaJudgeUnderWB - { - get => _AreaJudgeUnderWB; - set => WriteParamField(ref _AreaJudgeUnderWB, value); - } - private short _AreaJudgeUnderWB; + [ParamField(0x6, ParamType.I16)] + public short PcJudgeTopLR + { + get => _PcJudgeTopLR; + set => WriteParamField(ref _PcJudgeTopLR, value); + } + private short _PcJudgeTopLR; - [ParamField(0xA, ParamType.I16)] - public short AreaJudgeTopWB - { - get => _AreaJudgeTopWB; - set => WriteParamField(ref _AreaJudgeTopWB, value); - } - private short _AreaJudgeTopWB; + [ParamField(0x8, ParamType.I16)] + public short AreaJudgeUnderWB + { + get => _AreaJudgeUnderWB; + set => WriteParamField(ref _AreaJudgeUnderWB, value); + } + private short _AreaJudgeUnderWB; - [ParamField(0xC, ParamType.I16)] - public short AreaJudgeUnderLR - { - get => _AreaJudgeUnderLR; - set => WriteParamField(ref _AreaJudgeUnderLR, value); - } - private short _AreaJudgeUnderLR; + [ParamField(0xA, ParamType.I16)] + public short AreaJudgeTopWB + { + get => _AreaJudgeTopWB; + set => WriteParamField(ref _AreaJudgeTopWB, value); + } + private short _AreaJudgeTopWB; - [ParamField(0xE, ParamType.I16)] - public short AreaJudgeTopLR - { - get => _AreaJudgeTopLR; - set => WriteParamField(ref _AreaJudgeTopLR, value); - } - private short _AreaJudgeTopLR; + [ParamField(0xC, ParamType.I16)] + public short AreaJudgeUnderLR + { + get => _AreaJudgeUnderLR; + set => WriteParamField(ref _AreaJudgeUnderLR, value); + } + private short _AreaJudgeUnderLR; + [ParamField(0xE, ParamType.I16)] + public short AreaJudgeTopLR + { + get => _AreaJudgeTopLR; + set => WriteParamField(ref _AreaJudgeTopLR, value); } + private short _AreaJudgeTopLR; + } diff --git a/src/SoulMemory/DarkSouls1/Parameters/RagdollParam.cs b/src/SoulMemory/DarkSouls1/Parameters/RagdollParam.cs index 36d3315..ab0876e 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/RagdollParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/RagdollParam.cs @@ -18,100 +18,99 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters -{ - [ExcludeFromCodeCoverage] - public class RagdollParam : BaseParam - { - public RagdollParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} +namespace SoulMemory.DarkSouls1.Parameters; - [ParamField(0x0, ParamType.F32)] - public float HierarchyGain - { - get => _HierarchyGain; - set => WriteParamField(ref _HierarchyGain, value); - } - private float _HierarchyGain; +[ExcludeFromCodeCoverage] +public class RagdollParam : BaseParam +{ + public RagdollParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x4, ParamType.F32)] - public float VelocityDamping - { - get => _VelocityDamping; - set => WriteParamField(ref _VelocityDamping, value); - } - private float _VelocityDamping; + [ParamField(0x0, ParamType.F32)] + public float HierarchyGain + { + get => _HierarchyGain; + set => WriteParamField(ref _HierarchyGain, value); + } + private float _HierarchyGain; - [ParamField(0x8, ParamType.F32)] - public float AccelGain - { - get => _AccelGain; - set => WriteParamField(ref _AccelGain, value); - } - private float _AccelGain; + [ParamField(0x4, ParamType.F32)] + public float VelocityDamping + { + get => _VelocityDamping; + set => WriteParamField(ref _VelocityDamping, value); + } + private float _VelocityDamping; - [ParamField(0xC, ParamType.F32)] - public float VelocityGain - { - get => _VelocityGain; - set => WriteParamField(ref _VelocityGain, value); - } - private float _VelocityGain; + [ParamField(0x8, ParamType.F32)] + public float AccelGain + { + get => _AccelGain; + set => WriteParamField(ref _AccelGain, value); + } + private float _AccelGain; - [ParamField(0x10, ParamType.F32)] - public float PositionGain - { - get => _PositionGain; - set => WriteParamField(ref _PositionGain, value); - } - private float _PositionGain; + [ParamField(0xC, ParamType.F32)] + public float VelocityGain + { + get => _VelocityGain; + set => WriteParamField(ref _VelocityGain, value); + } + private float _VelocityGain; - [ParamField(0x14, ParamType.F32)] - public float MaxLinerVelocity - { - get => _MaxLinerVelocity; - set => WriteParamField(ref _MaxLinerVelocity, value); - } - private float _MaxLinerVelocity; + [ParamField(0x10, ParamType.F32)] + public float PositionGain + { + get => _PositionGain; + set => WriteParamField(ref _PositionGain, value); + } + private float _PositionGain; - [ParamField(0x18, ParamType.F32)] - public float MaxAngularVelocity - { - get => _MaxAngularVelocity; - set => WriteParamField(ref _MaxAngularVelocity, value); - } - private float _MaxAngularVelocity; + [ParamField(0x14, ParamType.F32)] + public float MaxLinerVelocity + { + get => _MaxLinerVelocity; + set => WriteParamField(ref _MaxLinerVelocity, value); + } + private float _MaxLinerVelocity; - [ParamField(0x1C, ParamType.F32)] - public float SnapGain - { - get => _SnapGain; - set => WriteParamField(ref _SnapGain, value); - } - private float _SnapGain; + [ParamField(0x18, ParamType.F32)] + public float MaxAngularVelocity + { + get => _MaxAngularVelocity; + set => WriteParamField(ref _MaxAngularVelocity, value); + } + private float _MaxAngularVelocity; - [ParamField(0x20, ParamType.U8)] - public byte Enable - { - get => _Enable; - set => WriteParamField(ref _Enable, value); - } - private byte _Enable; + [ParamField(0x1C, ParamType.F32)] + public float SnapGain + { + get => _SnapGain; + set => WriteParamField(ref _SnapGain, value); + } + private float _SnapGain; - [ParamField(0x21, ParamType.I8)] - public sbyte PartsHitMaskNo - { - get => _PartsHitMaskNo; - set => WriteParamField(ref _PartsHitMaskNo, value); - } - private sbyte _PartsHitMaskNo; + [ParamField(0x20, ParamType.U8)] + public byte Enable + { + get => _Enable; + set => WriteParamField(ref _Enable, value); + } + private byte _Enable; - [ParamField(0x22, ParamType.Dummy8, 14)] - public byte[] Pad - { - get => _Pad; - set => WriteParamField(ref _Pad, value); - } - private byte[] _Pad = null!; + [ParamField(0x21, ParamType.I8)] + public sbyte PartsHitMaskNo + { + get => _PartsHitMaskNo; + set => WriteParamField(ref _PartsHitMaskNo, value); + } + private sbyte _PartsHitMaskNo; + [ParamField(0x22, ParamType.Dummy8, 14)] + public byte[] Pad + { + get => _Pad; + set => WriteParamField(ref _Pad, value); } + private byte[] _Pad = null!; + } diff --git a/src/SoulMemory/DarkSouls1/Parameters/ReinforceParamProtector.cs b/src/SoulMemory/DarkSouls1/Parameters/ReinforceParamProtector.cs index 5159d49..f8a4ff1 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/ReinforceParamProtector.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/ReinforceParamProtector.cs @@ -18,132 +18,131 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters +namespace SoulMemory.DarkSouls1.Parameters; + +[ExcludeFromCodeCoverage] +public class ReinforceParamProtector : BaseParam { - [ExcludeFromCodeCoverage] - public class ReinforceParamProtector : BaseParam + public ReinforceParamProtector(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} + + [ParamField(0x0, ParamType.F32)] + public float PhysicsDefRate + { + get => _PhysicsDefRate; + set => WriteParamField(ref _PhysicsDefRate, value); + } + private float _PhysicsDefRate; + + [ParamField(0x4, ParamType.F32)] + public float MagicDefRate + { + get => _MagicDefRate; + set => WriteParamField(ref _MagicDefRate, value); + } + private float _MagicDefRate; + + [ParamField(0x8, ParamType.F32)] + public float FireDefRate + { + get => _FireDefRate; + set => WriteParamField(ref _FireDefRate, value); + } + private float _FireDefRate; + + [ParamField(0xC, ParamType.F32)] + public float ThunderDefRate + { + get => _ThunderDefRate; + set => WriteParamField(ref _ThunderDefRate, value); + } + private float _ThunderDefRate; + + [ParamField(0x10, ParamType.F32)] + public float SlashDefRate + { + get => _SlashDefRate; + set => WriteParamField(ref _SlashDefRate, value); + } + private float _SlashDefRate; + + [ParamField(0x14, ParamType.F32)] + public float BlowDefRate + { + get => _BlowDefRate; + set => WriteParamField(ref _BlowDefRate, value); + } + private float _BlowDefRate; + + [ParamField(0x18, ParamType.F32)] + public float ThrustDefRate + { + get => _ThrustDefRate; + set => WriteParamField(ref _ThrustDefRate, value); + } + private float _ThrustDefRate; + + [ParamField(0x1C, ParamType.F32)] + public float ResistPoisonRate + { + get => _ResistPoisonRate; + set => WriteParamField(ref _ResistPoisonRate, value); + } + private float _ResistPoisonRate; + + [ParamField(0x20, ParamType.F32)] + public float ResistDiseaseRate + { + get => _ResistDiseaseRate; + set => WriteParamField(ref _ResistDiseaseRate, value); + } + private float _ResistDiseaseRate; + + [ParamField(0x24, ParamType.F32)] + public float ResistBloodRate + { + get => _ResistBloodRate; + set => WriteParamField(ref _ResistBloodRate, value); + } + private float _ResistBloodRate; + + [ParamField(0x28, ParamType.F32)] + public float ResistCurseRate + { + get => _ResistCurseRate; + set => WriteParamField(ref _ResistCurseRate, value); + } + private float _ResistCurseRate; + + [ParamField(0x2C, ParamType.U8)] + public byte ResidentSpEffectId1 { - public ReinforceParamProtector(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - - [ParamField(0x0, ParamType.F32)] - public float PhysicsDefRate - { - get => _PhysicsDefRate; - set => WriteParamField(ref _PhysicsDefRate, value); - } - private float _PhysicsDefRate; - - [ParamField(0x4, ParamType.F32)] - public float MagicDefRate - { - get => _MagicDefRate; - set => WriteParamField(ref _MagicDefRate, value); - } - private float _MagicDefRate; - - [ParamField(0x8, ParamType.F32)] - public float FireDefRate - { - get => _FireDefRate; - set => WriteParamField(ref _FireDefRate, value); - } - private float _FireDefRate; - - [ParamField(0xC, ParamType.F32)] - public float ThunderDefRate - { - get => _ThunderDefRate; - set => WriteParamField(ref _ThunderDefRate, value); - } - private float _ThunderDefRate; - - [ParamField(0x10, ParamType.F32)] - public float SlashDefRate - { - get => _SlashDefRate; - set => WriteParamField(ref _SlashDefRate, value); - } - private float _SlashDefRate; - - [ParamField(0x14, ParamType.F32)] - public float BlowDefRate - { - get => _BlowDefRate; - set => WriteParamField(ref _BlowDefRate, value); - } - private float _BlowDefRate; - - [ParamField(0x18, ParamType.F32)] - public float ThrustDefRate - { - get => _ThrustDefRate; - set => WriteParamField(ref _ThrustDefRate, value); - } - private float _ThrustDefRate; - - [ParamField(0x1C, ParamType.F32)] - public float ResistPoisonRate - { - get => _ResistPoisonRate; - set => WriteParamField(ref _ResistPoisonRate, value); - } - private float _ResistPoisonRate; - - [ParamField(0x20, ParamType.F32)] - public float ResistDiseaseRate - { - get => _ResistDiseaseRate; - set => WriteParamField(ref _ResistDiseaseRate, value); - } - private float _ResistDiseaseRate; - - [ParamField(0x24, ParamType.F32)] - public float ResistBloodRate - { - get => _ResistBloodRate; - set => WriteParamField(ref _ResistBloodRate, value); - } - private float _ResistBloodRate; - - [ParamField(0x28, ParamType.F32)] - public float ResistCurseRate - { - get => _ResistCurseRate; - set => WriteParamField(ref _ResistCurseRate, value); - } - private float _ResistCurseRate; - - [ParamField(0x2C, ParamType.U8)] - public byte ResidentSpEffectId1 - { - get => _ResidentSpEffectId1; - set => WriteParamField(ref _ResidentSpEffectId1, value); - } - private byte _ResidentSpEffectId1; - - [ParamField(0x2D, ParamType.U8)] - public byte ResidentSpEffectId2 - { - get => _ResidentSpEffectId2; - set => WriteParamField(ref _ResidentSpEffectId2, value); - } - private byte _ResidentSpEffectId2; - - [ParamField(0x2E, ParamType.U8)] - public byte ResidentSpEffectId3 - { - get => _ResidentSpEffectId3; - set => WriteParamField(ref _ResidentSpEffectId3, value); - } - private byte _ResidentSpEffectId3; - - [ParamField(0x2F, ParamType.U8)] - public byte MaterialSetId - { - get => _MaterialSetId; - set => WriteParamField(ref _MaterialSetId, value); - } - private byte _MaterialSetId; + get => _ResidentSpEffectId1; + set => WriteParamField(ref _ResidentSpEffectId1, value); + } + private byte _ResidentSpEffectId1; + [ParamField(0x2D, ParamType.U8)] + public byte ResidentSpEffectId2 + { + get => _ResidentSpEffectId2; + set => WriteParamField(ref _ResidentSpEffectId2, value); } + private byte _ResidentSpEffectId2; + + [ParamField(0x2E, ParamType.U8)] + public byte ResidentSpEffectId3 + { + get => _ResidentSpEffectId3; + set => WriteParamField(ref _ResidentSpEffectId3, value); + } + private byte _ResidentSpEffectId3; + + [ParamField(0x2F, ParamType.U8)] + public byte MaterialSetId + { + get => _MaterialSetId; + set => WriteParamField(ref _MaterialSetId, value); + } + private byte _MaterialSetId; + } diff --git a/src/SoulMemory/DarkSouls1/Parameters/ReinforceParamWeapon.cs b/src/SoulMemory/DarkSouls1/Parameters/ReinforceParamWeapon.cs index 1f0b038..0cf266c 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/ReinforceParamWeapon.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/ReinforceParamWeapon.cs @@ -18,236 +18,235 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters +namespace SoulMemory.DarkSouls1.Parameters; + +[ExcludeFromCodeCoverage] +public class ReinforceParamWeapon : BaseParam { - [ExcludeFromCodeCoverage] - public class ReinforceParamWeapon : BaseParam - { - public ReinforceParamWeapon(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - - [ParamField(0x0, ParamType.F32)] - public float PhysicsAtkRate - { - get => _PhysicsAtkRate; - set => WriteParamField(ref _PhysicsAtkRate, value); - } - private float _PhysicsAtkRate; - - [ParamField(0x4, ParamType.F32)] - public float MagicAtkRate - { - get => _MagicAtkRate; - set => WriteParamField(ref _MagicAtkRate, value); - } - private float _MagicAtkRate; - - [ParamField(0x8, ParamType.F32)] - public float FireAtkRate - { - get => _FireAtkRate; - set => WriteParamField(ref _FireAtkRate, value); - } - private float _FireAtkRate; - - [ParamField(0xC, ParamType.F32)] - public float ThunderAtkRate - { - get => _ThunderAtkRate; - set => WriteParamField(ref _ThunderAtkRate, value); - } - private float _ThunderAtkRate; - - [ParamField(0x10, ParamType.F32)] - public float StaminaAtkRate - { - get => _StaminaAtkRate; - set => WriteParamField(ref _StaminaAtkRate, value); - } - private float _StaminaAtkRate; - - [ParamField(0x14, ParamType.F32)] - public float SaWeaponAtkRate - { - get => _SaWeaponAtkRate; - set => WriteParamField(ref _SaWeaponAtkRate, value); - } - private float _SaWeaponAtkRate; - - [ParamField(0x18, ParamType.F32)] - public float SaDurabilityRate - { - get => _SaDurabilityRate; - set => WriteParamField(ref _SaDurabilityRate, value); - } - private float _SaDurabilityRate; - - [ParamField(0x1C, ParamType.F32)] - public float CorrectStrengthRate - { - get => _CorrectStrengthRate; - set => WriteParamField(ref _CorrectStrengthRate, value); - } - private float _CorrectStrengthRate; - - [ParamField(0x20, ParamType.F32)] - public float CorrectAgilityRate - { - get => _CorrectAgilityRate; - set => WriteParamField(ref _CorrectAgilityRate, value); - } - private float _CorrectAgilityRate; - - [ParamField(0x24, ParamType.F32)] - public float CorrectMagicRate - { - get => _CorrectMagicRate; - set => WriteParamField(ref _CorrectMagicRate, value); - } - private float _CorrectMagicRate; - - [ParamField(0x28, ParamType.F32)] - public float CorrectFaithRate - { - get => _CorrectFaithRate; - set => WriteParamField(ref _CorrectFaithRate, value); - } - private float _CorrectFaithRate; - - [ParamField(0x2C, ParamType.F32)] - public float PhysicsGuardCutRate - { - get => _PhysicsGuardCutRate; - set => WriteParamField(ref _PhysicsGuardCutRate, value); - } - private float _PhysicsGuardCutRate; - - [ParamField(0x30, ParamType.F32)] - public float MagicGuardCutRate - { - get => _MagicGuardCutRate; - set => WriteParamField(ref _MagicGuardCutRate, value); - } - private float _MagicGuardCutRate; - - [ParamField(0x34, ParamType.F32)] - public float FireGuardCutRate - { - get => _FireGuardCutRate; - set => WriteParamField(ref _FireGuardCutRate, value); - } - private float _FireGuardCutRate; - - [ParamField(0x38, ParamType.F32)] - public float ThunderGuardCutRate - { - get => _ThunderGuardCutRate; - set => WriteParamField(ref _ThunderGuardCutRate, value); - } - private float _ThunderGuardCutRate; - - [ParamField(0x3C, ParamType.F32)] - public float PoisonGuardResistRate - { - get => _PoisonGuardResistRate; - set => WriteParamField(ref _PoisonGuardResistRate, value); - } - private float _PoisonGuardResistRate; - - [ParamField(0x40, ParamType.F32)] - public float DiseaseGuardResistRate - { - get => _DiseaseGuardResistRate; - set => WriteParamField(ref _DiseaseGuardResistRate, value); - } - private float _DiseaseGuardResistRate; - - [ParamField(0x44, ParamType.F32)] - public float BloodGuardResistRate - { - get => _BloodGuardResistRate; - set => WriteParamField(ref _BloodGuardResistRate, value); - } - private float _BloodGuardResistRate; - - [ParamField(0x48, ParamType.F32)] - public float CurseGuardResistRate - { - get => _CurseGuardResistRate; - set => WriteParamField(ref _CurseGuardResistRate, value); - } - private float _CurseGuardResistRate; - - [ParamField(0x4C, ParamType.F32)] - public float StaminaGuardDefRate - { - get => _StaminaGuardDefRate; - set => WriteParamField(ref _StaminaGuardDefRate, value); - } - private float _StaminaGuardDefRate; - - [ParamField(0x50, ParamType.U8)] - public byte SpEffectId1 - { - get => _SpEffectId1; - set => WriteParamField(ref _SpEffectId1, value); - } - private byte _SpEffectId1; - - [ParamField(0x51, ParamType.U8)] - public byte SpEffectId2 - { - get => _SpEffectId2; - set => WriteParamField(ref _SpEffectId2, value); - } - private byte _SpEffectId2; - - [ParamField(0x52, ParamType.U8)] - public byte SpEffectId3 - { - get => _SpEffectId3; - set => WriteParamField(ref _SpEffectId3, value); - } - private byte _SpEffectId3; - - [ParamField(0x53, ParamType.U8)] - public byte ResidentSpEffectId1 - { - get => _ResidentSpEffectId1; - set => WriteParamField(ref _ResidentSpEffectId1, value); - } - private byte _ResidentSpEffectId1; - - [ParamField(0x54, ParamType.U8)] - public byte ResidentSpEffectId2 - { - get => _ResidentSpEffectId2; - set => WriteParamField(ref _ResidentSpEffectId2, value); - } - private byte _ResidentSpEffectId2; - - [ParamField(0x55, ParamType.U8)] - public byte ResidentSpEffectId3 - { - get => _ResidentSpEffectId3; - set => WriteParamField(ref _ResidentSpEffectId3, value); - } - private byte _ResidentSpEffectId3; - - [ParamField(0x56, ParamType.U8)] - public byte MaterialSetId - { - get => _MaterialSetId; - set => WriteParamField(ref _MaterialSetId, value); - } - private byte _MaterialSetId; - - [ParamField(0x57, ParamType.U8)] - public byte ReinforcementLevel - { - get => _ReinforcementLevel; - set => WriteParamField(ref _ReinforcementLevel, value); - } - private byte _ReinforcementLevel; + public ReinforceParamWeapon(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} + + [ParamField(0x0, ParamType.F32)] + public float PhysicsAtkRate + { + get => _PhysicsAtkRate; + set => WriteParamField(ref _PhysicsAtkRate, value); + } + private float _PhysicsAtkRate; + + [ParamField(0x4, ParamType.F32)] + public float MagicAtkRate + { + get => _MagicAtkRate; + set => WriteParamField(ref _MagicAtkRate, value); + } + private float _MagicAtkRate; + + [ParamField(0x8, ParamType.F32)] + public float FireAtkRate + { + get => _FireAtkRate; + set => WriteParamField(ref _FireAtkRate, value); + } + private float _FireAtkRate; + + [ParamField(0xC, ParamType.F32)] + public float ThunderAtkRate + { + get => _ThunderAtkRate; + set => WriteParamField(ref _ThunderAtkRate, value); + } + private float _ThunderAtkRate; + + [ParamField(0x10, ParamType.F32)] + public float StaminaAtkRate + { + get => _StaminaAtkRate; + set => WriteParamField(ref _StaminaAtkRate, value); + } + private float _StaminaAtkRate; + + [ParamField(0x14, ParamType.F32)] + public float SaWeaponAtkRate + { + get => _SaWeaponAtkRate; + set => WriteParamField(ref _SaWeaponAtkRate, value); + } + private float _SaWeaponAtkRate; + + [ParamField(0x18, ParamType.F32)] + public float SaDurabilityRate + { + get => _SaDurabilityRate; + set => WriteParamField(ref _SaDurabilityRate, value); + } + private float _SaDurabilityRate; + + [ParamField(0x1C, ParamType.F32)] + public float CorrectStrengthRate + { + get => _CorrectStrengthRate; + set => WriteParamField(ref _CorrectStrengthRate, value); + } + private float _CorrectStrengthRate; + + [ParamField(0x20, ParamType.F32)] + public float CorrectAgilityRate + { + get => _CorrectAgilityRate; + set => WriteParamField(ref _CorrectAgilityRate, value); + } + private float _CorrectAgilityRate; + + [ParamField(0x24, ParamType.F32)] + public float CorrectMagicRate + { + get => _CorrectMagicRate; + set => WriteParamField(ref _CorrectMagicRate, value); + } + private float _CorrectMagicRate; + + [ParamField(0x28, ParamType.F32)] + public float CorrectFaithRate + { + get => _CorrectFaithRate; + set => WriteParamField(ref _CorrectFaithRate, value); + } + private float _CorrectFaithRate; + + [ParamField(0x2C, ParamType.F32)] + public float PhysicsGuardCutRate + { + get => _PhysicsGuardCutRate; + set => WriteParamField(ref _PhysicsGuardCutRate, value); + } + private float _PhysicsGuardCutRate; + + [ParamField(0x30, ParamType.F32)] + public float MagicGuardCutRate + { + get => _MagicGuardCutRate; + set => WriteParamField(ref _MagicGuardCutRate, value); + } + private float _MagicGuardCutRate; + + [ParamField(0x34, ParamType.F32)] + public float FireGuardCutRate + { + get => _FireGuardCutRate; + set => WriteParamField(ref _FireGuardCutRate, value); + } + private float _FireGuardCutRate; + + [ParamField(0x38, ParamType.F32)] + public float ThunderGuardCutRate + { + get => _ThunderGuardCutRate; + set => WriteParamField(ref _ThunderGuardCutRate, value); + } + private float _ThunderGuardCutRate; + + [ParamField(0x3C, ParamType.F32)] + public float PoisonGuardResistRate + { + get => _PoisonGuardResistRate; + set => WriteParamField(ref _PoisonGuardResistRate, value); + } + private float _PoisonGuardResistRate; + + [ParamField(0x40, ParamType.F32)] + public float DiseaseGuardResistRate + { + get => _DiseaseGuardResistRate; + set => WriteParamField(ref _DiseaseGuardResistRate, value); + } + private float _DiseaseGuardResistRate; + + [ParamField(0x44, ParamType.F32)] + public float BloodGuardResistRate + { + get => _BloodGuardResistRate; + set => WriteParamField(ref _BloodGuardResistRate, value); + } + private float _BloodGuardResistRate; + + [ParamField(0x48, ParamType.F32)] + public float CurseGuardResistRate + { + get => _CurseGuardResistRate; + set => WriteParamField(ref _CurseGuardResistRate, value); + } + private float _CurseGuardResistRate; + + [ParamField(0x4C, ParamType.F32)] + public float StaminaGuardDefRate + { + get => _StaminaGuardDefRate; + set => WriteParamField(ref _StaminaGuardDefRate, value); + } + private float _StaminaGuardDefRate; + + [ParamField(0x50, ParamType.U8)] + public byte SpEffectId1 + { + get => _SpEffectId1; + set => WriteParamField(ref _SpEffectId1, value); + } + private byte _SpEffectId1; + + [ParamField(0x51, ParamType.U8)] + public byte SpEffectId2 + { + get => _SpEffectId2; + set => WriteParamField(ref _SpEffectId2, value); + } + private byte _SpEffectId2; + [ParamField(0x52, ParamType.U8)] + public byte SpEffectId3 + { + get => _SpEffectId3; + set => WriteParamField(ref _SpEffectId3, value); + } + private byte _SpEffectId3; + + [ParamField(0x53, ParamType.U8)] + public byte ResidentSpEffectId1 + { + get => _ResidentSpEffectId1; + set => WriteParamField(ref _ResidentSpEffectId1, value); + } + private byte _ResidentSpEffectId1; + + [ParamField(0x54, ParamType.U8)] + public byte ResidentSpEffectId2 + { + get => _ResidentSpEffectId2; + set => WriteParamField(ref _ResidentSpEffectId2, value); } + private byte _ResidentSpEffectId2; + + [ParamField(0x55, ParamType.U8)] + public byte ResidentSpEffectId3 + { + get => _ResidentSpEffectId3; + set => WriteParamField(ref _ResidentSpEffectId3, value); + } + private byte _ResidentSpEffectId3; + + [ParamField(0x56, ParamType.U8)] + public byte MaterialSetId + { + get => _MaterialSetId; + set => WriteParamField(ref _MaterialSetId, value); + } + private byte _MaterialSetId; + + [ParamField(0x57, ParamType.U8)] + public byte ReinforcementLevel + { + get => _ReinforcementLevel; + set => WriteParamField(ref _ReinforcementLevel, value); + } + private byte _ReinforcementLevel; + } diff --git a/src/SoulMemory/DarkSouls1/Parameters/ShadowBank.cs b/src/SoulMemory/DarkSouls1/Parameters/ShadowBank.cs index 5bdb5ef..98d49f5 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/ShadowBank.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/ShadowBank.cs @@ -18,124 +18,123 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters +namespace SoulMemory.DarkSouls1.Parameters; + +[ExcludeFromCodeCoverage] +public class ShadowBank : BaseParam { - [ExcludeFromCodeCoverage] - public class ShadowBank : BaseParam + public ShadowBank(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} + + [ParamField(0x0, ParamType.I16)] + public short LightDegRotX { - public ShadowBank(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - - [ParamField(0x0, ParamType.I16)] - public short LightDegRotX - { - get => _LightDegRotX; - set => WriteParamField(ref _LightDegRotX, value); - } - private short _LightDegRotX; - - [ParamField(0x2, ParamType.I16)] - public short LightDegRotY - { - get => _LightDegRotY; - set => WriteParamField(ref _LightDegRotY, value); - } - private short _LightDegRotY; - - [ParamField(0x4, ParamType.I16)] - public short DensityRatio - { - get => _DensityRatio; - set => WriteParamField(ref _DensityRatio, value); - } - private short _DensityRatio; - - [ParamField(0x6, ParamType.I16)] - public short ColR - { - get => _ColR; - set => WriteParamField(ref _ColR, value); - } - private short _ColR; - - [ParamField(0x8, ParamType.I16)] - public short ColG - { - get => _ColG; - set => WriteParamField(ref _ColG, value); - } - private short _ColG; - - [ParamField(0xA, ParamType.I16)] - public short ColB - { - get => _ColB; - set => WriteParamField(ref _ColB, value); - } - private short _ColB; - - [ParamField(0xC, ParamType.F32)] - public float BeginDist - { - get => _BeginDist; - set => WriteParamField(ref _BeginDist, value); - } - private float _BeginDist; - - [ParamField(0x10, ParamType.F32)] - public float EndDist - { - get => _EndDist; - set => WriteParamField(ref _EndDist, value); - } - private float _EndDist; - - [ParamField(0x14, ParamType.F32)] - public float CalibulateFar - { - get => _CalibulateFar; - set => WriteParamField(ref _CalibulateFar, value); - } - private float _CalibulateFar; - - [ParamField(0x18, ParamType.F32)] - public float FadeBeginDist - { - get => _FadeBeginDist; - set => WriteParamField(ref _FadeBeginDist, value); - } - private float _FadeBeginDist; - - [ParamField(0x1C, ParamType.F32)] - public float FadeDist - { - get => _FadeDist; - set => WriteParamField(ref _FadeDist, value); - } - private float _FadeDist; - - [ParamField(0x20, ParamType.F32)] - public float PersedDepthOffset - { - get => _PersedDepthOffset; - set => WriteParamField(ref _PersedDepthOffset, value); - } - private float _PersedDepthOffset; - - [ParamField(0x24, ParamType.F32)] - public float GradFactor - { - get => _GradFactor; - set => WriteParamField(ref _GradFactor, value); - } - private float _GradFactor; - - [ParamField(0x28, ParamType.F32)] - public float ShadowVolumeDepth - { - get => _ShadowVolumeDepth; - set => WriteParamField(ref _ShadowVolumeDepth, value); - } - private float _ShadowVolumeDepth; + get => _LightDegRotX; + set => WriteParamField(ref _LightDegRotX, value); + } + private short _LightDegRotX; + [ParamField(0x2, ParamType.I16)] + public short LightDegRotY + { + get => _LightDegRotY; + set => WriteParamField(ref _LightDegRotY, value); } + private short _LightDegRotY; + + [ParamField(0x4, ParamType.I16)] + public short DensityRatio + { + get => _DensityRatio; + set => WriteParamField(ref _DensityRatio, value); + } + private short _DensityRatio; + + [ParamField(0x6, ParamType.I16)] + public short ColR + { + get => _ColR; + set => WriteParamField(ref _ColR, value); + } + private short _ColR; + + [ParamField(0x8, ParamType.I16)] + public short ColG + { + get => _ColG; + set => WriteParamField(ref _ColG, value); + } + private short _ColG; + + [ParamField(0xA, ParamType.I16)] + public short ColB + { + get => _ColB; + set => WriteParamField(ref _ColB, value); + } + private short _ColB; + + [ParamField(0xC, ParamType.F32)] + public float BeginDist + { + get => _BeginDist; + set => WriteParamField(ref _BeginDist, value); + } + private float _BeginDist; + + [ParamField(0x10, ParamType.F32)] + public float EndDist + { + get => _EndDist; + set => WriteParamField(ref _EndDist, value); + } + private float _EndDist; + + [ParamField(0x14, ParamType.F32)] + public float CalibulateFar + { + get => _CalibulateFar; + set => WriteParamField(ref _CalibulateFar, value); + } + private float _CalibulateFar; + + [ParamField(0x18, ParamType.F32)] + public float FadeBeginDist + { + get => _FadeBeginDist; + set => WriteParamField(ref _FadeBeginDist, value); + } + private float _FadeBeginDist; + + [ParamField(0x1C, ParamType.F32)] + public float FadeDist + { + get => _FadeDist; + set => WriteParamField(ref _FadeDist, value); + } + private float _FadeDist; + + [ParamField(0x20, ParamType.F32)] + public float PersedDepthOffset + { + get => _PersedDepthOffset; + set => WriteParamField(ref _PersedDepthOffset, value); + } + private float _PersedDepthOffset; + + [ParamField(0x24, ParamType.F32)] + public float GradFactor + { + get => _GradFactor; + set => WriteParamField(ref _GradFactor, value); + } + private float _GradFactor; + + [ParamField(0x28, ParamType.F32)] + public float ShadowVolumeDepth + { + get => _ShadowVolumeDepth; + set => WriteParamField(ref _ShadowVolumeDepth, value); + } + private float _ShadowVolumeDepth; + } diff --git a/src/SoulMemory/DarkSouls1/Parameters/ShopLineupParam.cs b/src/SoulMemory/DarkSouls1/Parameters/ShopLineupParam.cs index 4b13526..2fc2f1d 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/ShopLineupParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/ShopLineupParam.cs @@ -18,84 +18,83 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters -{ - [ExcludeFromCodeCoverage] - public class ShopLineupParam : BaseParam - { - public ShopLineupParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} +namespace SoulMemory.DarkSouls1.Parameters; - [ParamField(0x0, ParamType.I32)] - public int EquipId - { - get => _EquipId; - set => WriteParamField(ref _EquipId, value); - } - private int _EquipId; +[ExcludeFromCodeCoverage] +public class ShopLineupParam : BaseParam +{ + public ShopLineupParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x4, ParamType.I32)] - public int Value - { - get => _Value; - set => WriteParamField(ref _Value, value); - } - private int _Value; + [ParamField(0x0, ParamType.I32)] + public int EquipId + { + get => _EquipId; + set => WriteParamField(ref _EquipId, value); + } + private int _EquipId; - [ParamField(0x8, ParamType.I32)] - public int MtrlId - { - get => _MtrlId; - set => WriteParamField(ref _MtrlId, value); - } - private int _MtrlId; + [ParamField(0x4, ParamType.I32)] + public int Value + { + get => _Value; + set => WriteParamField(ref _Value, value); + } + private int _Value; - [ParamField(0xC, ParamType.I32)] - public int EventFlag - { - get => _EventFlag; - set => WriteParamField(ref _EventFlag, value); - } - private int _EventFlag; + [ParamField(0x8, ParamType.I32)] + public int MtrlId + { + get => _MtrlId; + set => WriteParamField(ref _MtrlId, value); + } + private int _MtrlId; - [ParamField(0x10, ParamType.I32)] - public int QwcId - { - get => _QwcId; - set => WriteParamField(ref _QwcId, value); - } - private int _QwcId; + [ParamField(0xC, ParamType.I32)] + public int EventFlag + { + get => _EventFlag; + set => WriteParamField(ref _EventFlag, value); + } + private int _EventFlag; - [ParamField(0x14, ParamType.I16)] - public short SellQuantity - { - get => _SellQuantity; - set => WriteParamField(ref _SellQuantity, value); - } - private short _SellQuantity; + [ParamField(0x10, ParamType.I32)] + public int QwcId + { + get => _QwcId; + set => WriteParamField(ref _QwcId, value); + } + private int _QwcId; - [ParamField(0x16, ParamType.U8)] - public byte ShopType - { - get => _ShopType; - set => WriteParamField(ref _ShopType, value); - } - private byte _ShopType; + [ParamField(0x14, ParamType.I16)] + public short SellQuantity + { + get => _SellQuantity; + set => WriteParamField(ref _SellQuantity, value); + } + private short _SellQuantity; - [ParamField(0x17, ParamType.U8)] - public byte EquipType - { - get => _EquipType; - set => WriteParamField(ref _EquipType, value); - } - private byte _EquipType; + [ParamField(0x16, ParamType.U8)] + public byte ShopType + { + get => _ShopType; + set => WriteParamField(ref _ShopType, value); + } + private byte _ShopType; - [ParamField(0x18, ParamType.Dummy8, 8)] - public byte[] Pad_0 - { - get => _Pad_0; - set => WriteParamField(ref _Pad_0, value); - } - private byte[] _Pad_0 = null!; + [ParamField(0x17, ParamType.U8)] + public byte EquipType + { + get => _EquipType; + set => WriteParamField(ref _EquipType, value); + } + private byte _EquipType; + [ParamField(0x18, ParamType.Dummy8, 8)] + public byte[] Pad_0 + { + get => _Pad_0; + set => WriteParamField(ref _Pad_0, value); } + private byte[] _Pad_0 = null!; + } diff --git a/src/SoulMemory/DarkSouls1/Parameters/SkeletonParam.cs b/src/SoulMemory/DarkSouls1/Parameters/SkeletonParam.cs index c1246f5..a4f7fd5 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/SkeletonParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/SkeletonParam.cs @@ -18,220 +18,219 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters +namespace SoulMemory.DarkSouls1.Parameters; + +[ExcludeFromCodeCoverage] +public class SkeletonParam : BaseParam { - [ExcludeFromCodeCoverage] - public class SkeletonParam : BaseParam - { - public SkeletonParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - - [ParamField(0x0, ParamType.F32)] - public float NeckTurnGain - { - get => _NeckTurnGain; - set => WriteParamField(ref _NeckTurnGain, value); - } - private float _NeckTurnGain; - - [ParamField(0x4, ParamType.I16)] - public short OriginalGroundHeightMS - { - get => _OriginalGroundHeightMS; - set => WriteParamField(ref _OriginalGroundHeightMS, value); - } - private short _OriginalGroundHeightMS; - - [ParamField(0x6, ParamType.I16)] - public short MinAnkleHeightMS - { - get => _MinAnkleHeightMS; - set => WriteParamField(ref _MinAnkleHeightMS, value); - } - private short _MinAnkleHeightMS; - - [ParamField(0x8, ParamType.I16)] - public short MaxAnkleHeightMS - { - get => _MaxAnkleHeightMS; - set => WriteParamField(ref _MaxAnkleHeightMS, value); - } - private short _MaxAnkleHeightMS; - - [ParamField(0xA, ParamType.I16)] - public short CosineMaxKneeAngle - { - get => _CosineMaxKneeAngle; - set => WriteParamField(ref _CosineMaxKneeAngle, value); - } - private short _CosineMaxKneeAngle; - - [ParamField(0xC, ParamType.I16)] - public short CosineMinKneeAngle - { - get => _CosineMinKneeAngle; - set => WriteParamField(ref _CosineMinKneeAngle, value); - } - private short _CosineMinKneeAngle; - - [ParamField(0xE, ParamType.I16)] - public short FootPlantedAnkleHeightMS - { - get => _FootPlantedAnkleHeightMS; - set => WriteParamField(ref _FootPlantedAnkleHeightMS, value); - } - private short _FootPlantedAnkleHeightMS; - - [ParamField(0x10, ParamType.I16)] - public short FootRaisedAnkleHeightMS - { - get => _FootRaisedAnkleHeightMS; - set => WriteParamField(ref _FootRaisedAnkleHeightMS, value); - } - private short _FootRaisedAnkleHeightMS; - - [ParamField(0x12, ParamType.I16)] - public short RaycastDistanceUp - { - get => _RaycastDistanceUp; - set => WriteParamField(ref _RaycastDistanceUp, value); - } - private short _RaycastDistanceUp; - - [ParamField(0x14, ParamType.I16)] - public short RaycastDistanceDown - { - get => _RaycastDistanceDown; - set => WriteParamField(ref _RaycastDistanceDown, value); - } - private short _RaycastDistanceDown; - - [ParamField(0x16, ParamType.I16)] - public short FootEndLS_X - { - get => _FootEndLS_X; - set => WriteParamField(ref _FootEndLS_X, value); - } - private short _FootEndLS_X; - - [ParamField(0x18, ParamType.I16)] - public short FootEndLS_Y - { - get => _FootEndLS_Y; - set => WriteParamField(ref _FootEndLS_Y, value); - } - private short _FootEndLS_Y; - - [ParamField(0x1A, ParamType.I16)] - public short FootEndLS_Z - { - get => _FootEndLS_Z; - set => WriteParamField(ref _FootEndLS_Z, value); - } - private short _FootEndLS_Z; - - [ParamField(0x1C, ParamType.I16)] - public short OnOffGain - { - get => _OnOffGain; - set => WriteParamField(ref _OnOffGain, value); - } - private short _OnOffGain; - - [ParamField(0x1E, ParamType.I16)] - public short GroundAscendingGain - { - get => _GroundAscendingGain; - set => WriteParamField(ref _GroundAscendingGain, value); - } - private short _GroundAscendingGain; - - [ParamField(0x20, ParamType.I16)] - public short GroundDescendingGain - { - get => _GroundDescendingGain; - set => WriteParamField(ref _GroundDescendingGain, value); - } - private short _GroundDescendingGain; - - [ParamField(0x22, ParamType.I16)] - public short FootRaisedGain - { - get => _FootRaisedGain; - set => WriteParamField(ref _FootRaisedGain, value); - } - private short _FootRaisedGain; - - [ParamField(0x24, ParamType.I16)] - public short FootPlantedGain - { - get => _FootPlantedGain; - set => WriteParamField(ref _FootPlantedGain, value); - } - private short _FootPlantedGain; - - [ParamField(0x26, ParamType.I16)] - public short FootUnlockGain - { - get => _FootUnlockGain; - set => WriteParamField(ref _FootUnlockGain, value); - } - private short _FootUnlockGain; - - [ParamField(0x28, ParamType.U8)] - public byte KneeAxisType - { - get => _KneeAxisType; - set => WriteParamField(ref _KneeAxisType, value); - } - private byte _KneeAxisType; - - [ParamField(0x29, ParamType.U8)] - public byte UseFootLocking - { - get => _UseFootLocking; - set => WriteParamField(ref _UseFootLocking, value); - } - private byte _UseFootLocking; - - [ParamField(0x2A, ParamType.U8)] - public byte FootPlacementOn - { - get => _FootPlacementOn; - set => WriteParamField(ref _FootPlacementOn, value); - } - private byte _FootPlacementOn; - - [ParamField(0x2B, ParamType.U8)] - public byte TwistKneeAxisType - { - get => _TwistKneeAxisType; - set => WriteParamField(ref _TwistKneeAxisType, value); - } - private byte _TwistKneeAxisType; - - [ParamField(0x2C, ParamType.I8)] - public sbyte NeckTurnPriority - { - get => _NeckTurnPriority; - set => WriteParamField(ref _NeckTurnPriority, value); - } - private sbyte _NeckTurnPriority; - - [ParamField(0x2D, ParamType.U8)] - public byte NeckTurnMaxAngle - { - get => _NeckTurnMaxAngle; - set => WriteParamField(ref _NeckTurnMaxAngle, value); - } - private byte _NeckTurnMaxAngle; - - [ParamField(0x2E, ParamType.Dummy8, 2)] - public byte[] Pad1 - { - get => _Pad1; - set => WriteParamField(ref _Pad1, value); - } - private byte[] _Pad1 = null!; + public SkeletonParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} + + [ParamField(0x0, ParamType.F32)] + public float NeckTurnGain + { + get => _NeckTurnGain; + set => WriteParamField(ref _NeckTurnGain, value); + } + private float _NeckTurnGain; + + [ParamField(0x4, ParamType.I16)] + public short OriginalGroundHeightMS + { + get => _OriginalGroundHeightMS; + set => WriteParamField(ref _OriginalGroundHeightMS, value); + } + private short _OriginalGroundHeightMS; + + [ParamField(0x6, ParamType.I16)] + public short MinAnkleHeightMS + { + get => _MinAnkleHeightMS; + set => WriteParamField(ref _MinAnkleHeightMS, value); + } + private short _MinAnkleHeightMS; + + [ParamField(0x8, ParamType.I16)] + public short MaxAnkleHeightMS + { + get => _MaxAnkleHeightMS; + set => WriteParamField(ref _MaxAnkleHeightMS, value); + } + private short _MaxAnkleHeightMS; + + [ParamField(0xA, ParamType.I16)] + public short CosineMaxKneeAngle + { + get => _CosineMaxKneeAngle; + set => WriteParamField(ref _CosineMaxKneeAngle, value); + } + private short _CosineMaxKneeAngle; + + [ParamField(0xC, ParamType.I16)] + public short CosineMinKneeAngle + { + get => _CosineMinKneeAngle; + set => WriteParamField(ref _CosineMinKneeAngle, value); + } + private short _CosineMinKneeAngle; + + [ParamField(0xE, ParamType.I16)] + public short FootPlantedAnkleHeightMS + { + get => _FootPlantedAnkleHeightMS; + set => WriteParamField(ref _FootPlantedAnkleHeightMS, value); + } + private short _FootPlantedAnkleHeightMS; + + [ParamField(0x10, ParamType.I16)] + public short FootRaisedAnkleHeightMS + { + get => _FootRaisedAnkleHeightMS; + set => WriteParamField(ref _FootRaisedAnkleHeightMS, value); + } + private short _FootRaisedAnkleHeightMS; + + [ParamField(0x12, ParamType.I16)] + public short RaycastDistanceUp + { + get => _RaycastDistanceUp; + set => WriteParamField(ref _RaycastDistanceUp, value); + } + private short _RaycastDistanceUp; + + [ParamField(0x14, ParamType.I16)] + public short RaycastDistanceDown + { + get => _RaycastDistanceDown; + set => WriteParamField(ref _RaycastDistanceDown, value); + } + private short _RaycastDistanceDown; + + [ParamField(0x16, ParamType.I16)] + public short FootEndLS_X + { + get => _FootEndLS_X; + set => WriteParamField(ref _FootEndLS_X, value); + } + private short _FootEndLS_X; + + [ParamField(0x18, ParamType.I16)] + public short FootEndLS_Y + { + get => _FootEndLS_Y; + set => WriteParamField(ref _FootEndLS_Y, value); + } + private short _FootEndLS_Y; + + [ParamField(0x1A, ParamType.I16)] + public short FootEndLS_Z + { + get => _FootEndLS_Z; + set => WriteParamField(ref _FootEndLS_Z, value); + } + private short _FootEndLS_Z; + + [ParamField(0x1C, ParamType.I16)] + public short OnOffGain + { + get => _OnOffGain; + set => WriteParamField(ref _OnOffGain, value); + } + private short _OnOffGain; + + [ParamField(0x1E, ParamType.I16)] + public short GroundAscendingGain + { + get => _GroundAscendingGain; + set => WriteParamField(ref _GroundAscendingGain, value); + } + private short _GroundAscendingGain; + + [ParamField(0x20, ParamType.I16)] + public short GroundDescendingGain + { + get => _GroundDescendingGain; + set => WriteParamField(ref _GroundDescendingGain, value); + } + private short _GroundDescendingGain; + [ParamField(0x22, ParamType.I16)] + public short FootRaisedGain + { + get => _FootRaisedGain; + set => WriteParamField(ref _FootRaisedGain, value); + } + private short _FootRaisedGain; + + [ParamField(0x24, ParamType.I16)] + public short FootPlantedGain + { + get => _FootPlantedGain; + set => WriteParamField(ref _FootPlantedGain, value); + } + private short _FootPlantedGain; + + [ParamField(0x26, ParamType.I16)] + public short FootUnlockGain + { + get => _FootUnlockGain; + set => WriteParamField(ref _FootUnlockGain, value); + } + private short _FootUnlockGain; + + [ParamField(0x28, ParamType.U8)] + public byte KneeAxisType + { + get => _KneeAxisType; + set => WriteParamField(ref _KneeAxisType, value); } + private byte _KneeAxisType; + + [ParamField(0x29, ParamType.U8)] + public byte UseFootLocking + { + get => _UseFootLocking; + set => WriteParamField(ref _UseFootLocking, value); + } + private byte _UseFootLocking; + + [ParamField(0x2A, ParamType.U8)] + public byte FootPlacementOn + { + get => _FootPlacementOn; + set => WriteParamField(ref _FootPlacementOn, value); + } + private byte _FootPlacementOn; + + [ParamField(0x2B, ParamType.U8)] + public byte TwistKneeAxisType + { + get => _TwistKneeAxisType; + set => WriteParamField(ref _TwistKneeAxisType, value); + } + private byte _TwistKneeAxisType; + + [ParamField(0x2C, ParamType.I8)] + public sbyte NeckTurnPriority + { + get => _NeckTurnPriority; + set => WriteParamField(ref _NeckTurnPriority, value); + } + private sbyte _NeckTurnPriority; + + [ParamField(0x2D, ParamType.U8)] + public byte NeckTurnMaxAngle + { + get => _NeckTurnMaxAngle; + set => WriteParamField(ref _NeckTurnMaxAngle, value); + } + private byte _NeckTurnMaxAngle; + + [ParamField(0x2E, ParamType.Dummy8, 2)] + public byte[] Pad1 + { + get => _Pad1; + set => WriteParamField(ref _Pad1, value); + } + private byte[] _Pad1 = null!; + } diff --git a/src/SoulMemory/DarkSouls1/Parameters/SpEffect.cs b/src/SoulMemory/DarkSouls1/Parameters/SpEffect.cs index 7b35654..0bd7ca8 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/SpEffect.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/SpEffect.cs @@ -18,1431 +18,1430 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters +namespace SoulMemory.DarkSouls1.Parameters; + +[ExcludeFromCodeCoverage] +public class SpEffect : BaseParam { - [ExcludeFromCodeCoverage] - public class SpEffect : BaseParam - { - public SpEffect(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - - [ParamField(0x0, ParamType.I32)] - public int IconId - { - get => _IconId; - set => WriteParamField(ref _IconId, value); - } - private int _IconId; - - [ParamField(0x4, ParamType.F32)] - public float ConditionHp - { - get => _ConditionHp; - set => WriteParamField(ref _ConditionHp, value); - } - private float _ConditionHp; - - [ParamField(0x8, ParamType.F32)] - public float EffectEndurance - { - get => _EffectEndurance; - set => WriteParamField(ref _EffectEndurance, value); - } - private float _EffectEndurance; - - [ParamField(0xC, ParamType.F32)] - public float MotionInterval - { - get => _MotionInterval; - set => WriteParamField(ref _MotionInterval, value); - } - private float _MotionInterval; - - [ParamField(0x10, ParamType.F32)] - public float MaxHpRate - { - get => _MaxHpRate; - set => WriteParamField(ref _MaxHpRate, value); - } - private float _MaxHpRate; - - [ParamField(0x14, ParamType.F32)] - public float MaxMpRate - { - get => _MaxMpRate; - set => WriteParamField(ref _MaxMpRate, value); - } - private float _MaxMpRate; - - [ParamField(0x18, ParamType.F32)] - public float MaxStaminaRate - { - get => _MaxStaminaRate; - set => WriteParamField(ref _MaxStaminaRate, value); - } - private float _MaxStaminaRate; - - [ParamField(0x1C, ParamType.F32)] - public float SlashDamageCutRate - { - get => _SlashDamageCutRate; - set => WriteParamField(ref _SlashDamageCutRate, value); - } - private float _SlashDamageCutRate; - - [ParamField(0x20, ParamType.F32)] - public float BlowDamageCutRate - { - get => _BlowDamageCutRate; - set => WriteParamField(ref _BlowDamageCutRate, value); - } - private float _BlowDamageCutRate; - - [ParamField(0x24, ParamType.F32)] - public float ThrustDamageCutRate - { - get => _ThrustDamageCutRate; - set => WriteParamField(ref _ThrustDamageCutRate, value); - } - private float _ThrustDamageCutRate; - - [ParamField(0x28, ParamType.F32)] - public float NeutralDamageCutRate - { - get => _NeutralDamageCutRate; - set => WriteParamField(ref _NeutralDamageCutRate, value); - } - private float _NeutralDamageCutRate; - - [ParamField(0x2C, ParamType.F32)] - public float MagicDamageCutRate - { - get => _MagicDamageCutRate; - set => WriteParamField(ref _MagicDamageCutRate, value); - } - private float _MagicDamageCutRate; - - [ParamField(0x30, ParamType.F32)] - public float FireDamageCutRate - { - get => _FireDamageCutRate; - set => WriteParamField(ref _FireDamageCutRate, value); - } - private float _FireDamageCutRate; - - [ParamField(0x34, ParamType.F32)] - public float ThunderDamageCutRate - { - get => _ThunderDamageCutRate; - set => WriteParamField(ref _ThunderDamageCutRate, value); - } - private float _ThunderDamageCutRate; - - [ParamField(0x38, ParamType.F32)] - public float PhysicsAttackRate - { - get => _PhysicsAttackRate; - set => WriteParamField(ref _PhysicsAttackRate, value); - } - private float _PhysicsAttackRate; - - [ParamField(0x3C, ParamType.F32)] - public float MagicAttackRate - { - get => _MagicAttackRate; - set => WriteParamField(ref _MagicAttackRate, value); - } - private float _MagicAttackRate; - - [ParamField(0x40, ParamType.F32)] - public float FireAttackRate - { - get => _FireAttackRate; - set => WriteParamField(ref _FireAttackRate, value); - } - private float _FireAttackRate; - - [ParamField(0x44, ParamType.F32)] - public float ThunderAttackRate - { - get => _ThunderAttackRate; - set => WriteParamField(ref _ThunderAttackRate, value); - } - private float _ThunderAttackRate; - - [ParamField(0x48, ParamType.F32)] - public float PhysicsAttackPowerRate - { - get => _PhysicsAttackPowerRate; - set => WriteParamField(ref _PhysicsAttackPowerRate, value); - } - private float _PhysicsAttackPowerRate; - - [ParamField(0x4C, ParamType.F32)] - public float MagicAttackPowerRate - { - get => _MagicAttackPowerRate; - set => WriteParamField(ref _MagicAttackPowerRate, value); - } - private float _MagicAttackPowerRate; - - [ParamField(0x50, ParamType.F32)] - public float FireAttackPowerRate - { - get => _FireAttackPowerRate; - set => WriteParamField(ref _FireAttackPowerRate, value); - } - private float _FireAttackPowerRate; - - [ParamField(0x54, ParamType.F32)] - public float ThunderAttackPowerRate - { - get => _ThunderAttackPowerRate; - set => WriteParamField(ref _ThunderAttackPowerRate, value); - } - private float _ThunderAttackPowerRate; - - [ParamField(0x58, ParamType.I32)] - public int PhysicsAttackPower - { - get => _PhysicsAttackPower; - set => WriteParamField(ref _PhysicsAttackPower, value); - } - private int _PhysicsAttackPower; - - [ParamField(0x5C, ParamType.I32)] - public int MagicAttackPower - { - get => _MagicAttackPower; - set => WriteParamField(ref _MagicAttackPower, value); - } - private int _MagicAttackPower; - - [ParamField(0x60, ParamType.I32)] - public int FireAttackPower - { - get => _FireAttackPower; - set => WriteParamField(ref _FireAttackPower, value); - } - private int _FireAttackPower; - - [ParamField(0x64, ParamType.I32)] - public int ThunderAttackPower - { - get => _ThunderAttackPower; - set => WriteParamField(ref _ThunderAttackPower, value); - } - private int _ThunderAttackPower; - - [ParamField(0x68, ParamType.F32)] - public float PhysicsDiffenceRate - { - get => _PhysicsDiffenceRate; - set => WriteParamField(ref _PhysicsDiffenceRate, value); - } - private float _PhysicsDiffenceRate; - - [ParamField(0x6C, ParamType.F32)] - public float MagicDiffenceRate - { - get => _MagicDiffenceRate; - set => WriteParamField(ref _MagicDiffenceRate, value); - } - private float _MagicDiffenceRate; - - [ParamField(0x70, ParamType.F32)] - public float FireDiffenceRate - { - get => _FireDiffenceRate; - set => WriteParamField(ref _FireDiffenceRate, value); - } - private float _FireDiffenceRate; - - [ParamField(0x74, ParamType.F32)] - public float ThunderDiffenceRate - { - get => _ThunderDiffenceRate; - set => WriteParamField(ref _ThunderDiffenceRate, value); - } - private float _ThunderDiffenceRate; - - [ParamField(0x78, ParamType.I32)] - public int PhysicsDiffence - { - get => _PhysicsDiffence; - set => WriteParamField(ref _PhysicsDiffence, value); - } - private int _PhysicsDiffence; - - [ParamField(0x7C, ParamType.I32)] - public int MagicDiffence - { - get => _MagicDiffence; - set => WriteParamField(ref _MagicDiffence, value); - } - private int _MagicDiffence; - - [ParamField(0x80, ParamType.I32)] - public int FireDiffence - { - get => _FireDiffence; - set => WriteParamField(ref _FireDiffence, value); - } - private int _FireDiffence; - - [ParamField(0x84, ParamType.I32)] - public int ThunderDiffence - { - get => _ThunderDiffence; - set => WriteParamField(ref _ThunderDiffence, value); - } - private int _ThunderDiffence; - - [ParamField(0x88, ParamType.F32)] - public float NoGuardDamageRate - { - get => _NoGuardDamageRate; - set => WriteParamField(ref _NoGuardDamageRate, value); - } - private float _NoGuardDamageRate; - - [ParamField(0x8C, ParamType.F32)] - public float VitalSpotChangeRate - { - get => _VitalSpotChangeRate; - set => WriteParamField(ref _VitalSpotChangeRate, value); - } - private float _VitalSpotChangeRate; - - [ParamField(0x90, ParamType.F32)] - public float NormalSpotChangeRate - { - get => _NormalSpotChangeRate; - set => WriteParamField(ref _NormalSpotChangeRate, value); - } - private float _NormalSpotChangeRate; - - [ParamField(0x94, ParamType.F32)] - public float MaxHpChangeRate - { - get => _MaxHpChangeRate; - set => WriteParamField(ref _MaxHpChangeRate, value); - } - private float _MaxHpChangeRate; - - [ParamField(0x98, ParamType.I32)] - public int BehaviorId - { - get => _BehaviorId; - set => WriteParamField(ref _BehaviorId, value); - } - private int _BehaviorId; - - [ParamField(0x9C, ParamType.F32)] - public float ChangeHpRate - { - get => _ChangeHpRate; - set => WriteParamField(ref _ChangeHpRate, value); - } - private float _ChangeHpRate; - - [ParamField(0xA0, ParamType.I32)] - public int ChangeHpPoint - { - get => _ChangeHpPoint; - set => WriteParamField(ref _ChangeHpPoint, value); - } - private int _ChangeHpPoint; - - [ParamField(0xA4, ParamType.F32)] - public float ChangeMpRate - { - get => _ChangeMpRate; - set => WriteParamField(ref _ChangeMpRate, value); - } - private float _ChangeMpRate; - - [ParamField(0xA8, ParamType.I32)] - public int ChangeMpPoint - { - get => _ChangeMpPoint; - set => WriteParamField(ref _ChangeMpPoint, value); - } - private int _ChangeMpPoint; - - [ParamField(0xAC, ParamType.I32)] - public int MpRecoverChangeSpeed - { - get => _MpRecoverChangeSpeed; - set => WriteParamField(ref _MpRecoverChangeSpeed, value); - } - private int _MpRecoverChangeSpeed; - - [ParamField(0xB0, ParamType.F32)] - public float ChangeStaminaRate - { - get => _ChangeStaminaRate; - set => WriteParamField(ref _ChangeStaminaRate, value); - } - private float _ChangeStaminaRate; - - [ParamField(0xB4, ParamType.I32)] - public int ChangeStaminaPoint - { - get => _ChangeStaminaPoint; - set => WriteParamField(ref _ChangeStaminaPoint, value); - } - private int _ChangeStaminaPoint; - - [ParamField(0xB8, ParamType.I32)] - public int StaminaRecoverChangeSpeed - { - get => _StaminaRecoverChangeSpeed; - set => WriteParamField(ref _StaminaRecoverChangeSpeed, value); - } - private int _StaminaRecoverChangeSpeed; - - [ParamField(0xBC, ParamType.F32)] - public float MagicEffectTimeChange - { - get => _MagicEffectTimeChange; - set => WriteParamField(ref _MagicEffectTimeChange, value); - } - private float _MagicEffectTimeChange; - - [ParamField(0xC0, ParamType.I32)] - public int InsideDurability - { - get => _InsideDurability; - set => WriteParamField(ref _InsideDurability, value); - } - private int _InsideDurability; - - [ParamField(0xC4, ParamType.I32)] - public int MaxDurability - { - get => _MaxDurability; - set => WriteParamField(ref _MaxDurability, value); - } - private int _MaxDurability; - - [ParamField(0xC8, ParamType.F32)] - public float StaminaAttackRate - { - get => _StaminaAttackRate; - set => WriteParamField(ref _StaminaAttackRate, value); - } - private float _StaminaAttackRate; - - [ParamField(0xCC, ParamType.I32)] - public int PoizonAttackPower - { - get => _PoizonAttackPower; - set => WriteParamField(ref _PoizonAttackPower, value); - } - private int _PoizonAttackPower; - - [ParamField(0xD0, ParamType.I32)] - public int RegistIllness - { - get => _RegistIllness; - set => WriteParamField(ref _RegistIllness, value); - } - private int _RegistIllness; - - [ParamField(0xD4, ParamType.I32)] - public int RegistBlood - { - get => _RegistBlood; - set => WriteParamField(ref _RegistBlood, value); - } - private int _RegistBlood; - - [ParamField(0xD8, ParamType.I32)] - public int RegistCurse - { - get => _RegistCurse; - set => WriteParamField(ref _RegistCurse, value); - } - private int _RegistCurse; - - [ParamField(0xDC, ParamType.F32)] - public float FallDamageRate - { - get => _FallDamageRate; - set => WriteParamField(ref _FallDamageRate, value); - } - private float _FallDamageRate; - - [ParamField(0xE0, ParamType.F32)] - public float SoulRate - { - get => _SoulRate; - set => WriteParamField(ref _SoulRate, value); - } - private float _SoulRate; - - [ParamField(0xE4, ParamType.F32)] - public float EquipWeightChangeRate - { - get => _EquipWeightChangeRate; - set => WriteParamField(ref _EquipWeightChangeRate, value); - } - private float _EquipWeightChangeRate; - - [ParamField(0xE8, ParamType.F32)] - public float AllItemWeightChangeRate - { - get => _AllItemWeightChangeRate; - set => WriteParamField(ref _AllItemWeightChangeRate, value); - } - private float _AllItemWeightChangeRate; - - [ParamField(0xEC, ParamType.I32)] - public int Soul - { - get => _Soul; - set => WriteParamField(ref _Soul, value); - } - private int _Soul; - - [ParamField(0xF0, ParamType.I32)] - public int AnimIdOffset - { - get => _AnimIdOffset; - set => WriteParamField(ref _AnimIdOffset, value); - } - private int _AnimIdOffset; - - [ParamField(0xF4, ParamType.F32)] - public float HaveSoulRate - { - get => _HaveSoulRate; - set => WriteParamField(ref _HaveSoulRate, value); - } - private float _HaveSoulRate; - - [ParamField(0xF8, ParamType.F32)] - public float TargetPriority - { - get => _TargetPriority; - set => WriteParamField(ref _TargetPriority, value); - } - private float _TargetPriority; - - [ParamField(0xFC, ParamType.I32)] - public int SightSearchEnemyCut - { - get => _SightSearchEnemyCut; - set => WriteParamField(ref _SightSearchEnemyCut, value); - } - private int _SightSearchEnemyCut; - - [ParamField(0x100, ParamType.I32)] - public int HearingSearchEnemyCut - { - get => _HearingSearchEnemyCut; - set => WriteParamField(ref _HearingSearchEnemyCut, value); - } - private int _HearingSearchEnemyCut; - - [ParamField(0x104, ParamType.F32)] - public float GrabityRate - { - get => _GrabityRate; - set => WriteParamField(ref _GrabityRate, value); - } - private float _GrabityRate; - - [ParamField(0x108, ParamType.F32)] - public float RegistPoizonChangeRate - { - get => _RegistPoizonChangeRate; - set => WriteParamField(ref _RegistPoizonChangeRate, value); - } - private float _RegistPoizonChangeRate; - - [ParamField(0x10C, ParamType.F32)] - public float RegistIllnessChangeRate - { - get => _RegistIllnessChangeRate; - set => WriteParamField(ref _RegistIllnessChangeRate, value); - } - private float _RegistIllnessChangeRate; - - [ParamField(0x110, ParamType.F32)] - public float RegistBloodChangeRate - { - get => _RegistBloodChangeRate; - set => WriteParamField(ref _RegistBloodChangeRate, value); - } - private float _RegistBloodChangeRate; - - [ParamField(0x114, ParamType.F32)] - public float RegistCurseChangeRate - { - get => _RegistCurseChangeRate; - set => WriteParamField(ref _RegistCurseChangeRate, value); - } - private float _RegistCurseChangeRate; - - [ParamField(0x118, ParamType.F32)] - public float SoulStealRate - { - get => _SoulStealRate; - set => WriteParamField(ref _SoulStealRate, value); - } - private float _SoulStealRate; - - [ParamField(0x11C, ParamType.F32)] - public float LifeReductionRate - { - get => _LifeReductionRate; - set => WriteParamField(ref _LifeReductionRate, value); - } - private float _LifeReductionRate; - - [ParamField(0x120, ParamType.F32)] - public float HpRecoverRate - { - get => _HpRecoverRate; - set => WriteParamField(ref _HpRecoverRate, value); - } - private float _HpRecoverRate; - - [ParamField(0x124, ParamType.I32)] - public int ReplaceSpEffectId - { - get => _ReplaceSpEffectId; - set => WriteParamField(ref _ReplaceSpEffectId, value); - } - private int _ReplaceSpEffectId; - - [ParamField(0x128, ParamType.I32)] - public int CycleOccurrenceSpEffectId - { - get => _CycleOccurrenceSpEffectId; - set => WriteParamField(ref _CycleOccurrenceSpEffectId, value); - } - private int _CycleOccurrenceSpEffectId; - - [ParamField(0x12C, ParamType.I32)] - public int AtkOccurrenceSpEffectId - { - get => _AtkOccurrenceSpEffectId; - set => WriteParamField(ref _AtkOccurrenceSpEffectId, value); - } - private int _AtkOccurrenceSpEffectId; - - [ParamField(0x130, ParamType.F32)] - public float GuardDefFlickPowerRate - { - get => _GuardDefFlickPowerRate; - set => WriteParamField(ref _GuardDefFlickPowerRate, value); - } - private float _GuardDefFlickPowerRate; - - [ParamField(0x134, ParamType.F32)] - public float GuardStaminaCutRate - { - get => _GuardStaminaCutRate; - set => WriteParamField(ref _GuardStaminaCutRate, value); - } - private float _GuardStaminaCutRate; - - [ParamField(0x138, ParamType.I16)] - public short RayCastPassedTime - { - get => _RayCastPassedTime; - set => WriteParamField(ref _RayCastPassedTime, value); - } - private short _RayCastPassedTime; - - [ParamField(0x13A, ParamType.I16)] - public short ChangeSuperArmorPoint - { - get => _ChangeSuperArmorPoint; - set => WriteParamField(ref _ChangeSuperArmorPoint, value); - } - private short _ChangeSuperArmorPoint; - - [ParamField(0x13C, ParamType.I16)] - public short BowDistRate - { - get => _BowDistRate; - set => WriteParamField(ref _BowDistRate, value); - } - private short _BowDistRate; - - [ParamField(0x13E, ParamType.U16)] - public ushort SpCategory - { - get => _SpCategory; - set => WriteParamField(ref _SpCategory, value); - } - private ushort _SpCategory; - - [ParamField(0x140, ParamType.U8)] - public byte CategoryPriority - { - get => _CategoryPriority; - set => WriteParamField(ref _CategoryPriority, value); - } - private byte _CategoryPriority; - - [ParamField(0x141, ParamType.I8)] - public sbyte SaveCategory - { - get => _SaveCategory; - set => WriteParamField(ref _SaveCategory, value); - } - private sbyte _SaveCategory; - - [ParamField(0x142, ParamType.U8)] - public byte ChangeMagicSlot - { - get => _ChangeMagicSlot; - set => WriteParamField(ref _ChangeMagicSlot, value); - } - private byte _ChangeMagicSlot; - - [ParamField(0x143, ParamType.U8)] - public byte ChangeMiracleSlot - { - get => _ChangeMiracleSlot; - set => WriteParamField(ref _ChangeMiracleSlot, value); - } - private byte _ChangeMiracleSlot; - - [ParamField(0x144, ParamType.I8)] - public sbyte HeroPointDamage - { - get => _HeroPointDamage; - set => WriteParamField(ref _HeroPointDamage, value); - } - private sbyte _HeroPointDamage; - - [ParamField(0x145, ParamType.U8)] - public byte DefFlickPower - { - get => _DefFlickPower; - set => WriteParamField(ref _DefFlickPower, value); - } - private byte _DefFlickPower; - - [ParamField(0x146, ParamType.U8)] - public byte FlickDamageCutRate - { - get => _FlickDamageCutRate; - set => WriteParamField(ref _FlickDamageCutRate, value); - } - private byte _FlickDamageCutRate; - - [ParamField(0x147, ParamType.U8)] - public byte BloodDamageRate - { - get => _BloodDamageRate; - set => WriteParamField(ref _BloodDamageRate, value); - } - private byte _BloodDamageRate; - - [ParamField(0x148, ParamType.I8)] - public sbyte DmgLv_None - { - get => _DmgLv_None; - set => WriteParamField(ref _DmgLv_None, value); - } - private sbyte _DmgLv_None; - - [ParamField(0x149, ParamType.I8)] - public sbyte DmgLv_S - { - get => _DmgLv_S; - set => WriteParamField(ref _DmgLv_S, value); - } - private sbyte _DmgLv_S; - - [ParamField(0x14A, ParamType.I8)] - public sbyte DmgLv_M - { - get => _DmgLv_M; - set => WriteParamField(ref _DmgLv_M, value); - } - private sbyte _DmgLv_M; - - [ParamField(0x14B, ParamType.I8)] - public sbyte DmgLv_L - { - get => _DmgLv_L; - set => WriteParamField(ref _DmgLv_L, value); - } - private sbyte _DmgLv_L; - - [ParamField(0x14C, ParamType.I8)] - public sbyte DmgLv_BlowM - { - get => _DmgLv_BlowM; - set => WriteParamField(ref _DmgLv_BlowM, value); - } - private sbyte _DmgLv_BlowM; - - [ParamField(0x14D, ParamType.I8)] - public sbyte DmgLv_Push - { - get => _DmgLv_Push; - set => WriteParamField(ref _DmgLv_Push, value); - } - private sbyte _DmgLv_Push; - - [ParamField(0x14E, ParamType.I8)] - public sbyte DmgLv_Strike - { - get => _DmgLv_Strike; - set => WriteParamField(ref _DmgLv_Strike, value); - } - private sbyte _DmgLv_Strike; - - [ParamField(0x14F, ParamType.I8)] - public sbyte DmgLv_BlowS - { - get => _DmgLv_BlowS; - set => WriteParamField(ref _DmgLv_BlowS, value); - } - private sbyte _DmgLv_BlowS; - - [ParamField(0x150, ParamType.I8)] - public sbyte DmgLv_Min - { - get => _DmgLv_Min; - set => WriteParamField(ref _DmgLv_Min, value); - } - private sbyte _DmgLv_Min; - - [ParamField(0x151, ParamType.I8)] - public sbyte DmgLv_Uppercut - { - get => _DmgLv_Uppercut; - set => WriteParamField(ref _DmgLv_Uppercut, value); - } - private sbyte _DmgLv_Uppercut; - - [ParamField(0x152, ParamType.I8)] - public sbyte DmgLv_BlowLL - { - get => _DmgLv_BlowLL; - set => WriteParamField(ref _DmgLv_BlowLL, value); - } - private sbyte _DmgLv_BlowLL; - - [ParamField(0x153, ParamType.I8)] - public sbyte DmgLv_Breath - { - get => _DmgLv_Breath; - set => WriteParamField(ref _DmgLv_Breath, value); - } - private sbyte _DmgLv_Breath; - - [ParamField(0x154, ParamType.U8)] - public byte AtkAttribute - { - get => _AtkAttribute; - set => WriteParamField(ref _AtkAttribute, value); - } - private byte _AtkAttribute; - - [ParamField(0x155, ParamType.U8)] - public byte SpAttribute - { - get => _SpAttribute; - set => WriteParamField(ref _SpAttribute, value); - } - private byte _SpAttribute; - - [ParamField(0x156, ParamType.U8)] - public byte StateInfo - { - get => _StateInfo; - set => WriteParamField(ref _StateInfo, value); - } - private byte _StateInfo; - - [ParamField(0x157, ParamType.U8)] - public byte WepParamChange - { - get => _WepParamChange; - set => WriteParamField(ref _WepParamChange, value); - } - private byte _WepParamChange; - - [ParamField(0x158, ParamType.U8)] - public byte MoveType - { - get => _MoveType; - set => WriteParamField(ref _MoveType, value); - } - private byte _MoveType; - - [ParamField(0x159, ParamType.U8)] - public byte LifeReductionType - { - get => _LifeReductionType; - set => WriteParamField(ref _LifeReductionType, value); - } - private byte _LifeReductionType; - - [ParamField(0x15A, ParamType.U8)] - public byte ThrowCondition - { - get => _ThrowCondition; - set => WriteParamField(ref _ThrowCondition, value); - } - private byte _ThrowCondition; - - [ParamField(0x15B, ParamType.I8)] - public sbyte AddBehaviorJudgeId_condition - { - get => _AddBehaviorJudgeId_condition; - set => WriteParamField(ref _AddBehaviorJudgeId_condition, value); - } - private sbyte _AddBehaviorJudgeId_condition; - - [ParamField(0x15C, ParamType.U8)] - public byte AddBehaviorJudgeId_add - { - get => _AddBehaviorJudgeId_add; - set => WriteParamField(ref _AddBehaviorJudgeId_add, value); - } - private byte _AddBehaviorJudgeId_add; - - #region BitField EffectTargetSelfBitfield ============================================================================== - - [ParamField(0x15D, ParamType.U8)] - public byte EffectTargetSelfBitfield - { - get => _EffectTargetSelfBitfield; - set => WriteParamField(ref _EffectTargetSelfBitfield, value); - } - private byte _EffectTargetSelfBitfield; - - [ParamBitField(nameof(EffectTargetSelfBitfield), bits: 1, bitsOffset: 0)] - public byte EffectTargetSelf - { - get => GetbitfieldValue(_EffectTargetSelfBitfield); - set => SetBitfieldValue(ref _EffectTargetSelfBitfield, value); - } - - [ParamBitField(nameof(EffectTargetSelfBitfield), bits: 1, bitsOffset: 1)] - public byte EffectTargetFriend - { - get => GetbitfieldValue(_EffectTargetSelfBitfield); - set => SetBitfieldValue(ref _EffectTargetSelfBitfield, value); - } - - [ParamBitField(nameof(EffectTargetSelfBitfield), bits: 1, bitsOffset: 2)] - public byte EffectTargetEnemy - { - get => GetbitfieldValue(_EffectTargetSelfBitfield); - set => SetBitfieldValue(ref _EffectTargetSelfBitfield, value); - } - - [ParamBitField(nameof(EffectTargetSelfBitfield), bits: 1, bitsOffset: 3)] - public byte EffectTargetPlayer - { - get => GetbitfieldValue(_EffectTargetSelfBitfield); - set => SetBitfieldValue(ref _EffectTargetSelfBitfield, value); - } - - [ParamBitField(nameof(EffectTargetSelfBitfield), bits: 1, bitsOffset: 4)] - public byte EffectTargetAI - { - get => GetbitfieldValue(_EffectTargetSelfBitfield); - set => SetBitfieldValue(ref _EffectTargetSelfBitfield, value); - } - - [ParamBitField(nameof(EffectTargetSelfBitfield), bits: 1, bitsOffset: 5)] - public byte EffectTargetLive - { - get => GetbitfieldValue(_EffectTargetSelfBitfield); - set => SetBitfieldValue(ref _EffectTargetSelfBitfield, value); - } - - [ParamBitField(nameof(EffectTargetSelfBitfield), bits: 1, bitsOffset: 6)] - public byte EffectTargetGhost - { - get => GetbitfieldValue(_EffectTargetSelfBitfield); - set => SetBitfieldValue(ref _EffectTargetSelfBitfield, value); - } - - [ParamBitField(nameof(EffectTargetSelfBitfield), bits: 1, bitsOffset: 7)] - public byte EffectTargetWhiteGhost - { - get => GetbitfieldValue(_EffectTargetSelfBitfield); - set => SetBitfieldValue(ref _EffectTargetSelfBitfield, value); - } - - #endregion BitField EffectTargetSelfBitfield - - #region BitField EffectTargetBlackGhostBitfield ============================================================================== - - [ParamField(0x15E, ParamType.U8)] - public byte EffectTargetBlackGhostBitfield - { - get => _EffectTargetBlackGhostBitfield; - set => WriteParamField(ref _EffectTargetBlackGhostBitfield, value); - } - private byte _EffectTargetBlackGhostBitfield; - - [ParamBitField(nameof(EffectTargetBlackGhostBitfield), bits: 1, bitsOffset: 0)] - public byte EffectTargetBlackGhost - { - get => GetbitfieldValue(_EffectTargetBlackGhostBitfield); - set => SetBitfieldValue(ref _EffectTargetBlackGhostBitfield, value); - } - - [ParamBitField(nameof(EffectTargetBlackGhostBitfield), bits: 1, bitsOffset: 1)] - public byte EffectTargetAttacker - { - get => GetbitfieldValue(_EffectTargetBlackGhostBitfield); - set => SetBitfieldValue(ref _EffectTargetBlackGhostBitfield, value); - } - - [ParamBitField(nameof(EffectTargetBlackGhostBitfield), bits: 1, bitsOffset: 2)] - public byte DispIconNonactive - { - get => GetbitfieldValue(_EffectTargetBlackGhostBitfield); - set => SetBitfieldValue(ref _EffectTargetBlackGhostBitfield, value); - } - - [ParamBitField(nameof(EffectTargetBlackGhostBitfield), bits: 1, bitsOffset: 3)] - public byte UseSpEffectEffect - { - get => GetbitfieldValue(_EffectTargetBlackGhostBitfield); - set => SetBitfieldValue(ref _EffectTargetBlackGhostBitfield, value); - } - - [ParamBitField(nameof(EffectTargetBlackGhostBitfield), bits: 1, bitsOffset: 4)] - public byte BAdjustMagicAblity - { - get => GetbitfieldValue(_EffectTargetBlackGhostBitfield); - set => SetBitfieldValue(ref _EffectTargetBlackGhostBitfield, value); - } - - [ParamBitField(nameof(EffectTargetBlackGhostBitfield), bits: 1, bitsOffset: 5)] - public byte BAdjustFaithAblity - { - get => GetbitfieldValue(_EffectTargetBlackGhostBitfield); - set => SetBitfieldValue(ref _EffectTargetBlackGhostBitfield, value); - } - - [ParamBitField(nameof(EffectTargetBlackGhostBitfield), bits: 1, bitsOffset: 6)] - public byte BGameClearBonus - { - get => GetbitfieldValue(_EffectTargetBlackGhostBitfield); - set => SetBitfieldValue(ref _EffectTargetBlackGhostBitfield, value); - } - - [ParamBitField(nameof(EffectTargetBlackGhostBitfield), bits: 1, bitsOffset: 7)] - public byte MagParamChange - { - get => GetbitfieldValue(_EffectTargetBlackGhostBitfield); - set => SetBitfieldValue(ref _EffectTargetBlackGhostBitfield, value); - } - - #endregion BitField EffectTargetBlackGhostBitfield - - #region BitField MiracleParamChangeBitfield ============================================================================== - - [ParamField(0x15F, ParamType.U8)] - public byte MiracleParamChangeBitfield - { - get => _MiracleParamChangeBitfield; - set => WriteParamField(ref _MiracleParamChangeBitfield, value); - } - private byte _MiracleParamChangeBitfield; - - [ParamBitField(nameof(MiracleParamChangeBitfield), bits: 1, bitsOffset: 0)] - public byte MiracleParamChange - { - get => GetbitfieldValue(_MiracleParamChangeBitfield); - set => SetBitfieldValue(ref _MiracleParamChangeBitfield, value); - } - - [ParamBitField(nameof(MiracleParamChangeBitfield), bits: 1, bitsOffset: 1)] - public byte ClearSoul - { - get => GetbitfieldValue(_MiracleParamChangeBitfield); - set => SetBitfieldValue(ref _MiracleParamChangeBitfield, value); - } - - [ParamBitField(nameof(MiracleParamChangeBitfield), bits: 1, bitsOffset: 2)] - public byte RequestSOS - { - get => GetbitfieldValue(_MiracleParamChangeBitfield); - set => SetBitfieldValue(ref _MiracleParamChangeBitfield, value); - } - - [ParamBitField(nameof(MiracleParamChangeBitfield), bits: 1, bitsOffset: 3)] - public byte RequestBlackSOS - { - get => GetbitfieldValue(_MiracleParamChangeBitfield); - set => SetBitfieldValue(ref _MiracleParamChangeBitfield, value); - } - - [ParamBitField(nameof(MiracleParamChangeBitfield), bits: 1, bitsOffset: 4)] - public byte RequestForceJoinBlackSOS - { - get => GetbitfieldValue(_MiracleParamChangeBitfield); - set => SetBitfieldValue(ref _MiracleParamChangeBitfield, value); - } - - [ParamBitField(nameof(MiracleParamChangeBitfield), bits: 1, bitsOffset: 5)] - public byte RequestKickSession - { - get => GetbitfieldValue(_MiracleParamChangeBitfield); - set => SetBitfieldValue(ref _MiracleParamChangeBitfield, value); - } - - [ParamBitField(nameof(MiracleParamChangeBitfield), bits: 1, bitsOffset: 6)] - public byte RequestLeaveSession - { - get => GetbitfieldValue(_MiracleParamChangeBitfield); - set => SetBitfieldValue(ref _MiracleParamChangeBitfield, value); - } - - [ParamBitField(nameof(MiracleParamChangeBitfield), bits: 1, bitsOffset: 7)] - public byte RequestNpcInveda - { - get => GetbitfieldValue(_MiracleParamChangeBitfield); - set => SetBitfieldValue(ref _MiracleParamChangeBitfield, value); - } - - #endregion BitField MiracleParamChangeBitfield - - #region BitField NoDeadBitfield ============================================================================== - - [ParamField(0x160, ParamType.U8)] - public byte NoDeadBitfield - { - get => _NoDeadBitfield; - set => WriteParamField(ref _NoDeadBitfield, value); - } - private byte _NoDeadBitfield; - - [ParamBitField(nameof(NoDeadBitfield), bits: 1, bitsOffset: 0)] - public byte NoDead - { - get => GetbitfieldValue(_NoDeadBitfield); - set => SetBitfieldValue(ref _NoDeadBitfield, value); - } - - [ParamBitField(nameof(NoDeadBitfield), bits: 1, bitsOffset: 1)] - public byte BCurrHPIndependeMaxHP - { - get => GetbitfieldValue(_NoDeadBitfield); - set => SetBitfieldValue(ref _NoDeadBitfield, value); - } - - [ParamBitField(nameof(NoDeadBitfield), bits: 1, bitsOffset: 2)] - public byte CorrosionIgnore - { - get => GetbitfieldValue(_NoDeadBitfield); - set => SetBitfieldValue(ref _NoDeadBitfield, value); - } - - [ParamBitField(nameof(NoDeadBitfield), bits: 1, bitsOffset: 3)] - public byte SightSearchCutIgnore - { - get => GetbitfieldValue(_NoDeadBitfield); - set => SetBitfieldValue(ref _NoDeadBitfield, value); - } - - [ParamBitField(nameof(NoDeadBitfield), bits: 1, bitsOffset: 4)] - public byte HearingSearchCutIgnore - { - get => GetbitfieldValue(_NoDeadBitfield); - set => SetBitfieldValue(ref _NoDeadBitfield, value); - } - - [ParamBitField(nameof(NoDeadBitfield), bits: 1, bitsOffset: 5)] - public byte AntiMagicIgnore - { - get => GetbitfieldValue(_NoDeadBitfield); - set => SetBitfieldValue(ref _NoDeadBitfield, value); - } - - [ParamBitField(nameof(NoDeadBitfield), bits: 1, bitsOffset: 6)] - public byte FakeTargetIgnore - { - get => GetbitfieldValue(_NoDeadBitfield); - set => SetBitfieldValue(ref _NoDeadBitfield, value); - } - - [ParamBitField(nameof(NoDeadBitfield), bits: 1, bitsOffset: 7)] - public byte FakeTargetIgnoreUndead - { - get => GetbitfieldValue(_NoDeadBitfield); - set => SetBitfieldValue(ref _NoDeadBitfield, value); - } - - #endregion BitField NoDeadBitfield - - #region BitField FakeTargetIgnoreAnimalBitfield ============================================================================== - - [ParamField(0x161, ParamType.U8)] - public byte FakeTargetIgnoreAnimalBitfield - { - get => _FakeTargetIgnoreAnimalBitfield; - set => WriteParamField(ref _FakeTargetIgnoreAnimalBitfield, value); - } - private byte _FakeTargetIgnoreAnimalBitfield; - - [ParamBitField(nameof(FakeTargetIgnoreAnimalBitfield), bits: 1, bitsOffset: 0)] - public byte FakeTargetIgnoreAnimal - { - get => GetbitfieldValue(_FakeTargetIgnoreAnimalBitfield); - set => SetBitfieldValue(ref _FakeTargetIgnoreAnimalBitfield, value); - } - - [ParamBitField(nameof(FakeTargetIgnoreAnimalBitfield), bits: 1, bitsOffset: 1)] - public byte GrabityIgnore - { - get => GetbitfieldValue(_FakeTargetIgnoreAnimalBitfield); - set => SetBitfieldValue(ref _FakeTargetIgnoreAnimalBitfield, value); - } - - [ParamBitField(nameof(FakeTargetIgnoreAnimalBitfield), bits: 1, bitsOffset: 2)] - public byte DisablePoison - { - get => GetbitfieldValue(_FakeTargetIgnoreAnimalBitfield); - set => SetBitfieldValue(ref _FakeTargetIgnoreAnimalBitfield, value); - } - - [ParamBitField(nameof(FakeTargetIgnoreAnimalBitfield), bits: 1, bitsOffset: 3)] - public byte DisableDisease - { - get => GetbitfieldValue(_FakeTargetIgnoreAnimalBitfield); - set => SetBitfieldValue(ref _FakeTargetIgnoreAnimalBitfield, value); - } - - [ParamBitField(nameof(FakeTargetIgnoreAnimalBitfield), bits: 1, bitsOffset: 4)] - public byte DisableBlood - { - get => GetbitfieldValue(_FakeTargetIgnoreAnimalBitfield); - set => SetBitfieldValue(ref _FakeTargetIgnoreAnimalBitfield, value); - } - - [ParamBitField(nameof(FakeTargetIgnoreAnimalBitfield), bits: 1, bitsOffset: 5)] - public byte DisableCurse - { - get => GetbitfieldValue(_FakeTargetIgnoreAnimalBitfield); - set => SetBitfieldValue(ref _FakeTargetIgnoreAnimalBitfield, value); - } - - [ParamBitField(nameof(FakeTargetIgnoreAnimalBitfield), bits: 1, bitsOffset: 6)] - public byte EnableCharm - { - get => GetbitfieldValue(_FakeTargetIgnoreAnimalBitfield); - set => SetBitfieldValue(ref _FakeTargetIgnoreAnimalBitfield, value); - } - - [ParamBitField(nameof(FakeTargetIgnoreAnimalBitfield), bits: 1, bitsOffset: 7)] - public byte EnableLifeTime - { - get => GetbitfieldValue(_FakeTargetIgnoreAnimalBitfield); - set => SetBitfieldValue(ref _FakeTargetIgnoreAnimalBitfield, value); - } - - #endregion BitField FakeTargetIgnoreAnimalBitfield - - #region BitField HasTargetBitfield ============================================================================== - - [ParamField(0x162, ParamType.U8)] - public byte HasTargetBitfield - { - get => _HasTargetBitfield; - set => WriteParamField(ref _HasTargetBitfield, value); - } - private byte _HasTargetBitfield; - - [ParamBitField(nameof(HasTargetBitfield), bits: 1, bitsOffset: 0)] - public byte HasTarget - { - get => GetbitfieldValue(_HasTargetBitfield); - set => SetBitfieldValue(ref _HasTargetBitfield, value); - } - - [ParamBitField(nameof(HasTargetBitfield), bits: 1, bitsOffset: 1)] - public byte IsFireDamageCancel - { - get => GetbitfieldValue(_HasTargetBitfield); - set => SetBitfieldValue(ref _HasTargetBitfield, value); - } - - [ParamBitField(nameof(HasTargetBitfield), bits: 1, bitsOffset: 2)] - public byte IsExtendSpEffectLife - { - get => GetbitfieldValue(_HasTargetBitfield); - set => SetBitfieldValue(ref _HasTargetBitfield, value); - } - - [ParamBitField(nameof(HasTargetBitfield), bits: 1, bitsOffset: 3)] - public byte RequestLeaveColiseumSession - { - get => GetbitfieldValue(_HasTargetBitfield); - set => SetBitfieldValue(ref _HasTargetBitfield, value); - } - - [ParamBitField(nameof(HasTargetBitfield), bits: 4, bitsOffset: 4)] - public byte Pad_2 - { - get => GetbitfieldValue(_HasTargetBitfield); - set => SetBitfieldValue(ref _HasTargetBitfield, value); - } - - #endregion BitField HasTargetBitfield - - #region BitField VowType0Bitfield ============================================================================== - - [ParamField(0x163, ParamType.U8)] - public byte VowType0Bitfield - { - get => _VowType0Bitfield; - set => WriteParamField(ref _VowType0Bitfield, value); - } - private byte _VowType0Bitfield; - - [ParamBitField(nameof(VowType0Bitfield), bits: 1, bitsOffset: 0)] - public byte VowType0 - { - get => GetbitfieldValue(_VowType0Bitfield); - set => SetBitfieldValue(ref _VowType0Bitfield, value); - } - - [ParamBitField(nameof(VowType0Bitfield), bits: 1, bitsOffset: 1)] - public byte VowType1 - { - get => GetbitfieldValue(_VowType0Bitfield); - set => SetBitfieldValue(ref _VowType0Bitfield, value); - } - - [ParamBitField(nameof(VowType0Bitfield), bits: 1, bitsOffset: 2)] - public byte VowType2 - { - get => GetbitfieldValue(_VowType0Bitfield); - set => SetBitfieldValue(ref _VowType0Bitfield, value); - } - - [ParamBitField(nameof(VowType0Bitfield), bits: 1, bitsOffset: 3)] - public byte VowType3 - { - get => GetbitfieldValue(_VowType0Bitfield); - set => SetBitfieldValue(ref _VowType0Bitfield, value); - } - - [ParamBitField(nameof(VowType0Bitfield), bits: 1, bitsOffset: 4)] - public byte VowType4 - { - get => GetbitfieldValue(_VowType0Bitfield); - set => SetBitfieldValue(ref _VowType0Bitfield, value); - } - - [ParamBitField(nameof(VowType0Bitfield), bits: 1, bitsOffset: 5)] - public byte VowType5 - { - get => GetbitfieldValue(_VowType0Bitfield); - set => SetBitfieldValue(ref _VowType0Bitfield, value); - } - - [ParamBitField(nameof(VowType0Bitfield), bits: 1, bitsOffset: 6)] - public byte VowType6 - { - get => GetbitfieldValue(_VowType0Bitfield); - set => SetBitfieldValue(ref _VowType0Bitfield, value); - } - - [ParamBitField(nameof(VowType0Bitfield), bits: 1, bitsOffset: 7)] - public byte VowType7 - { - get => GetbitfieldValue(_VowType0Bitfield); - set => SetBitfieldValue(ref _VowType0Bitfield, value); - } - - #endregion BitField VowType0Bitfield - - #region BitField VowType8Bitfield ============================================================================== - - [ParamField(0x164, ParamType.U8)] - public byte VowType8Bitfield - { - get => _VowType8Bitfield; - set => WriteParamField(ref _VowType8Bitfield, value); - } - private byte _VowType8Bitfield; - - [ParamBitField(nameof(VowType8Bitfield), bits: 1, bitsOffset: 0)] - public byte VowType8 - { - get => GetbitfieldValue(_VowType8Bitfield); - set => SetBitfieldValue(ref _VowType8Bitfield, value); - } - - [ParamBitField(nameof(VowType8Bitfield), bits: 1, bitsOffset: 1)] - public byte VowType9 - { - get => GetbitfieldValue(_VowType8Bitfield); - set => SetBitfieldValue(ref _VowType8Bitfield, value); - } - - [ParamBitField(nameof(VowType8Bitfield), bits: 1, bitsOffset: 2)] - public byte VowType10 - { - get => GetbitfieldValue(_VowType8Bitfield); - set => SetBitfieldValue(ref _VowType8Bitfield, value); - } - - [ParamBitField(nameof(VowType8Bitfield), bits: 1, bitsOffset: 3)] - public byte VowType11 - { - get => GetbitfieldValue(_VowType8Bitfield); - set => SetBitfieldValue(ref _VowType8Bitfield, value); - } - - [ParamBitField(nameof(VowType8Bitfield), bits: 1, bitsOffset: 4)] - public byte VowType12 - { - get => GetbitfieldValue(_VowType8Bitfield); - set => SetBitfieldValue(ref _VowType8Bitfield, value); - } - - [ParamBitField(nameof(VowType8Bitfield), bits: 1, bitsOffset: 5)] - public byte VowType13 - { - get => GetbitfieldValue(_VowType8Bitfield); - set => SetBitfieldValue(ref _VowType8Bitfield, value); - } - - [ParamBitField(nameof(VowType8Bitfield), bits: 1, bitsOffset: 6)] - public byte VowType14 - { - get => GetbitfieldValue(_VowType8Bitfield); - set => SetBitfieldValue(ref _VowType8Bitfield, value); - } - - [ParamBitField(nameof(VowType8Bitfield), bits: 1, bitsOffset: 7)] - public byte VowType15 - { - get => GetbitfieldValue(_VowType8Bitfield); - set => SetBitfieldValue(ref _VowType8Bitfield, value); - } - - #endregion BitField VowType8Bitfield - - [ParamField(0x165, ParamType.Dummy8, 11)] - public byte[] Pad1 - { - get => _Pad1; - set => WriteParamField(ref _Pad1, value); - } - private byte[] _Pad1 = null!; + public SpEffect(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} + + [ParamField(0x0, ParamType.I32)] + public int IconId + { + get => _IconId; + set => WriteParamField(ref _IconId, value); + } + private int _IconId; + + [ParamField(0x4, ParamType.F32)] + public float ConditionHp + { + get => _ConditionHp; + set => WriteParamField(ref _ConditionHp, value); + } + private float _ConditionHp; + + [ParamField(0x8, ParamType.F32)] + public float EffectEndurance + { + get => _EffectEndurance; + set => WriteParamField(ref _EffectEndurance, value); + } + private float _EffectEndurance; + + [ParamField(0xC, ParamType.F32)] + public float MotionInterval + { + get => _MotionInterval; + set => WriteParamField(ref _MotionInterval, value); + } + private float _MotionInterval; + + [ParamField(0x10, ParamType.F32)] + public float MaxHpRate + { + get => _MaxHpRate; + set => WriteParamField(ref _MaxHpRate, value); + } + private float _MaxHpRate; + + [ParamField(0x14, ParamType.F32)] + public float MaxMpRate + { + get => _MaxMpRate; + set => WriteParamField(ref _MaxMpRate, value); + } + private float _MaxMpRate; + + [ParamField(0x18, ParamType.F32)] + public float MaxStaminaRate + { + get => _MaxStaminaRate; + set => WriteParamField(ref _MaxStaminaRate, value); + } + private float _MaxStaminaRate; + + [ParamField(0x1C, ParamType.F32)] + public float SlashDamageCutRate + { + get => _SlashDamageCutRate; + set => WriteParamField(ref _SlashDamageCutRate, value); + } + private float _SlashDamageCutRate; + + [ParamField(0x20, ParamType.F32)] + public float BlowDamageCutRate + { + get => _BlowDamageCutRate; + set => WriteParamField(ref _BlowDamageCutRate, value); + } + private float _BlowDamageCutRate; + + [ParamField(0x24, ParamType.F32)] + public float ThrustDamageCutRate + { + get => _ThrustDamageCutRate; + set => WriteParamField(ref _ThrustDamageCutRate, value); + } + private float _ThrustDamageCutRate; + + [ParamField(0x28, ParamType.F32)] + public float NeutralDamageCutRate + { + get => _NeutralDamageCutRate; + set => WriteParamField(ref _NeutralDamageCutRate, value); + } + private float _NeutralDamageCutRate; + + [ParamField(0x2C, ParamType.F32)] + public float MagicDamageCutRate + { + get => _MagicDamageCutRate; + set => WriteParamField(ref _MagicDamageCutRate, value); + } + private float _MagicDamageCutRate; + + [ParamField(0x30, ParamType.F32)] + public float FireDamageCutRate + { + get => _FireDamageCutRate; + set => WriteParamField(ref _FireDamageCutRate, value); + } + private float _FireDamageCutRate; + + [ParamField(0x34, ParamType.F32)] + public float ThunderDamageCutRate + { + get => _ThunderDamageCutRate; + set => WriteParamField(ref _ThunderDamageCutRate, value); + } + private float _ThunderDamageCutRate; + + [ParamField(0x38, ParamType.F32)] + public float PhysicsAttackRate + { + get => _PhysicsAttackRate; + set => WriteParamField(ref _PhysicsAttackRate, value); + } + private float _PhysicsAttackRate; + + [ParamField(0x3C, ParamType.F32)] + public float MagicAttackRate + { + get => _MagicAttackRate; + set => WriteParamField(ref _MagicAttackRate, value); + } + private float _MagicAttackRate; + + [ParamField(0x40, ParamType.F32)] + public float FireAttackRate + { + get => _FireAttackRate; + set => WriteParamField(ref _FireAttackRate, value); + } + private float _FireAttackRate; + + [ParamField(0x44, ParamType.F32)] + public float ThunderAttackRate + { + get => _ThunderAttackRate; + set => WriteParamField(ref _ThunderAttackRate, value); + } + private float _ThunderAttackRate; + + [ParamField(0x48, ParamType.F32)] + public float PhysicsAttackPowerRate + { + get => _PhysicsAttackPowerRate; + set => WriteParamField(ref _PhysicsAttackPowerRate, value); + } + private float _PhysicsAttackPowerRate; + + [ParamField(0x4C, ParamType.F32)] + public float MagicAttackPowerRate + { + get => _MagicAttackPowerRate; + set => WriteParamField(ref _MagicAttackPowerRate, value); + } + private float _MagicAttackPowerRate; + + [ParamField(0x50, ParamType.F32)] + public float FireAttackPowerRate + { + get => _FireAttackPowerRate; + set => WriteParamField(ref _FireAttackPowerRate, value); + } + private float _FireAttackPowerRate; + + [ParamField(0x54, ParamType.F32)] + public float ThunderAttackPowerRate + { + get => _ThunderAttackPowerRate; + set => WriteParamField(ref _ThunderAttackPowerRate, value); + } + private float _ThunderAttackPowerRate; + + [ParamField(0x58, ParamType.I32)] + public int PhysicsAttackPower + { + get => _PhysicsAttackPower; + set => WriteParamField(ref _PhysicsAttackPower, value); + } + private int _PhysicsAttackPower; + + [ParamField(0x5C, ParamType.I32)] + public int MagicAttackPower + { + get => _MagicAttackPower; + set => WriteParamField(ref _MagicAttackPower, value); + } + private int _MagicAttackPower; + + [ParamField(0x60, ParamType.I32)] + public int FireAttackPower + { + get => _FireAttackPower; + set => WriteParamField(ref _FireAttackPower, value); + } + private int _FireAttackPower; + + [ParamField(0x64, ParamType.I32)] + public int ThunderAttackPower + { + get => _ThunderAttackPower; + set => WriteParamField(ref _ThunderAttackPower, value); + } + private int _ThunderAttackPower; + + [ParamField(0x68, ParamType.F32)] + public float PhysicsDiffenceRate + { + get => _PhysicsDiffenceRate; + set => WriteParamField(ref _PhysicsDiffenceRate, value); + } + private float _PhysicsDiffenceRate; + + [ParamField(0x6C, ParamType.F32)] + public float MagicDiffenceRate + { + get => _MagicDiffenceRate; + set => WriteParamField(ref _MagicDiffenceRate, value); + } + private float _MagicDiffenceRate; + + [ParamField(0x70, ParamType.F32)] + public float FireDiffenceRate + { + get => _FireDiffenceRate; + set => WriteParamField(ref _FireDiffenceRate, value); + } + private float _FireDiffenceRate; + + [ParamField(0x74, ParamType.F32)] + public float ThunderDiffenceRate + { + get => _ThunderDiffenceRate; + set => WriteParamField(ref _ThunderDiffenceRate, value); + } + private float _ThunderDiffenceRate; + + [ParamField(0x78, ParamType.I32)] + public int PhysicsDiffence + { + get => _PhysicsDiffence; + set => WriteParamField(ref _PhysicsDiffence, value); + } + private int _PhysicsDiffence; + + [ParamField(0x7C, ParamType.I32)] + public int MagicDiffence + { + get => _MagicDiffence; + set => WriteParamField(ref _MagicDiffence, value); + } + private int _MagicDiffence; + + [ParamField(0x80, ParamType.I32)] + public int FireDiffence + { + get => _FireDiffence; + set => WriteParamField(ref _FireDiffence, value); + } + private int _FireDiffence; + + [ParamField(0x84, ParamType.I32)] + public int ThunderDiffence + { + get => _ThunderDiffence; + set => WriteParamField(ref _ThunderDiffence, value); + } + private int _ThunderDiffence; + + [ParamField(0x88, ParamType.F32)] + public float NoGuardDamageRate + { + get => _NoGuardDamageRate; + set => WriteParamField(ref _NoGuardDamageRate, value); + } + private float _NoGuardDamageRate; + + [ParamField(0x8C, ParamType.F32)] + public float VitalSpotChangeRate + { + get => _VitalSpotChangeRate; + set => WriteParamField(ref _VitalSpotChangeRate, value); + } + private float _VitalSpotChangeRate; + + [ParamField(0x90, ParamType.F32)] + public float NormalSpotChangeRate + { + get => _NormalSpotChangeRate; + set => WriteParamField(ref _NormalSpotChangeRate, value); + } + private float _NormalSpotChangeRate; + + [ParamField(0x94, ParamType.F32)] + public float MaxHpChangeRate + { + get => _MaxHpChangeRate; + set => WriteParamField(ref _MaxHpChangeRate, value); + } + private float _MaxHpChangeRate; + + [ParamField(0x98, ParamType.I32)] + public int BehaviorId + { + get => _BehaviorId; + set => WriteParamField(ref _BehaviorId, value); + } + private int _BehaviorId; + + [ParamField(0x9C, ParamType.F32)] + public float ChangeHpRate + { + get => _ChangeHpRate; + set => WriteParamField(ref _ChangeHpRate, value); + } + private float _ChangeHpRate; + + [ParamField(0xA0, ParamType.I32)] + public int ChangeHpPoint + { + get => _ChangeHpPoint; + set => WriteParamField(ref _ChangeHpPoint, value); + } + private int _ChangeHpPoint; + + [ParamField(0xA4, ParamType.F32)] + public float ChangeMpRate + { + get => _ChangeMpRate; + set => WriteParamField(ref _ChangeMpRate, value); + } + private float _ChangeMpRate; + + [ParamField(0xA8, ParamType.I32)] + public int ChangeMpPoint + { + get => _ChangeMpPoint; + set => WriteParamField(ref _ChangeMpPoint, value); + } + private int _ChangeMpPoint; + + [ParamField(0xAC, ParamType.I32)] + public int MpRecoverChangeSpeed + { + get => _MpRecoverChangeSpeed; + set => WriteParamField(ref _MpRecoverChangeSpeed, value); + } + private int _MpRecoverChangeSpeed; + + [ParamField(0xB0, ParamType.F32)] + public float ChangeStaminaRate + { + get => _ChangeStaminaRate; + set => WriteParamField(ref _ChangeStaminaRate, value); + } + private float _ChangeStaminaRate; + + [ParamField(0xB4, ParamType.I32)] + public int ChangeStaminaPoint + { + get => _ChangeStaminaPoint; + set => WriteParamField(ref _ChangeStaminaPoint, value); + } + private int _ChangeStaminaPoint; + + [ParamField(0xB8, ParamType.I32)] + public int StaminaRecoverChangeSpeed + { + get => _StaminaRecoverChangeSpeed; + set => WriteParamField(ref _StaminaRecoverChangeSpeed, value); + } + private int _StaminaRecoverChangeSpeed; + + [ParamField(0xBC, ParamType.F32)] + public float MagicEffectTimeChange + { + get => _MagicEffectTimeChange; + set => WriteParamField(ref _MagicEffectTimeChange, value); + } + private float _MagicEffectTimeChange; + + [ParamField(0xC0, ParamType.I32)] + public int InsideDurability + { + get => _InsideDurability; + set => WriteParamField(ref _InsideDurability, value); + } + private int _InsideDurability; + + [ParamField(0xC4, ParamType.I32)] + public int MaxDurability + { + get => _MaxDurability; + set => WriteParamField(ref _MaxDurability, value); + } + private int _MaxDurability; + + [ParamField(0xC8, ParamType.F32)] + public float StaminaAttackRate + { + get => _StaminaAttackRate; + set => WriteParamField(ref _StaminaAttackRate, value); + } + private float _StaminaAttackRate; + + [ParamField(0xCC, ParamType.I32)] + public int PoizonAttackPower + { + get => _PoizonAttackPower; + set => WriteParamField(ref _PoizonAttackPower, value); + } + private int _PoizonAttackPower; + + [ParamField(0xD0, ParamType.I32)] + public int RegistIllness + { + get => _RegistIllness; + set => WriteParamField(ref _RegistIllness, value); + } + private int _RegistIllness; + + [ParamField(0xD4, ParamType.I32)] + public int RegistBlood + { + get => _RegistBlood; + set => WriteParamField(ref _RegistBlood, value); + } + private int _RegistBlood; + + [ParamField(0xD8, ParamType.I32)] + public int RegistCurse + { + get => _RegistCurse; + set => WriteParamField(ref _RegistCurse, value); + } + private int _RegistCurse; + + [ParamField(0xDC, ParamType.F32)] + public float FallDamageRate + { + get => _FallDamageRate; + set => WriteParamField(ref _FallDamageRate, value); + } + private float _FallDamageRate; + + [ParamField(0xE0, ParamType.F32)] + public float SoulRate + { + get => _SoulRate; + set => WriteParamField(ref _SoulRate, value); + } + private float _SoulRate; + + [ParamField(0xE4, ParamType.F32)] + public float EquipWeightChangeRate + { + get => _EquipWeightChangeRate; + set => WriteParamField(ref _EquipWeightChangeRate, value); + } + private float _EquipWeightChangeRate; + + [ParamField(0xE8, ParamType.F32)] + public float AllItemWeightChangeRate + { + get => _AllItemWeightChangeRate; + set => WriteParamField(ref _AllItemWeightChangeRate, value); + } + private float _AllItemWeightChangeRate; + + [ParamField(0xEC, ParamType.I32)] + public int Soul + { + get => _Soul; + set => WriteParamField(ref _Soul, value); + } + private int _Soul; + + [ParamField(0xF0, ParamType.I32)] + public int AnimIdOffset + { + get => _AnimIdOffset; + set => WriteParamField(ref _AnimIdOffset, value); + } + private int _AnimIdOffset; + + [ParamField(0xF4, ParamType.F32)] + public float HaveSoulRate + { + get => _HaveSoulRate; + set => WriteParamField(ref _HaveSoulRate, value); + } + private float _HaveSoulRate; + + [ParamField(0xF8, ParamType.F32)] + public float TargetPriority + { + get => _TargetPriority; + set => WriteParamField(ref _TargetPriority, value); + } + private float _TargetPriority; + + [ParamField(0xFC, ParamType.I32)] + public int SightSearchEnemyCut + { + get => _SightSearchEnemyCut; + set => WriteParamField(ref _SightSearchEnemyCut, value); + } + private int _SightSearchEnemyCut; + + [ParamField(0x100, ParamType.I32)] + public int HearingSearchEnemyCut + { + get => _HearingSearchEnemyCut; + set => WriteParamField(ref _HearingSearchEnemyCut, value); + } + private int _HearingSearchEnemyCut; + + [ParamField(0x104, ParamType.F32)] + public float GrabityRate + { + get => _GrabityRate; + set => WriteParamField(ref _GrabityRate, value); + } + private float _GrabityRate; + + [ParamField(0x108, ParamType.F32)] + public float RegistPoizonChangeRate + { + get => _RegistPoizonChangeRate; + set => WriteParamField(ref _RegistPoizonChangeRate, value); + } + private float _RegistPoizonChangeRate; + + [ParamField(0x10C, ParamType.F32)] + public float RegistIllnessChangeRate + { + get => _RegistIllnessChangeRate; + set => WriteParamField(ref _RegistIllnessChangeRate, value); + } + private float _RegistIllnessChangeRate; + + [ParamField(0x110, ParamType.F32)] + public float RegistBloodChangeRate + { + get => _RegistBloodChangeRate; + set => WriteParamField(ref _RegistBloodChangeRate, value); + } + private float _RegistBloodChangeRate; + + [ParamField(0x114, ParamType.F32)] + public float RegistCurseChangeRate + { + get => _RegistCurseChangeRate; + set => WriteParamField(ref _RegistCurseChangeRate, value); + } + private float _RegistCurseChangeRate; + + [ParamField(0x118, ParamType.F32)] + public float SoulStealRate + { + get => _SoulStealRate; + set => WriteParamField(ref _SoulStealRate, value); + } + private float _SoulStealRate; + + [ParamField(0x11C, ParamType.F32)] + public float LifeReductionRate + { + get => _LifeReductionRate; + set => WriteParamField(ref _LifeReductionRate, value); + } + private float _LifeReductionRate; + + [ParamField(0x120, ParamType.F32)] + public float HpRecoverRate + { + get => _HpRecoverRate; + set => WriteParamField(ref _HpRecoverRate, value); + } + private float _HpRecoverRate; + + [ParamField(0x124, ParamType.I32)] + public int ReplaceSpEffectId + { + get => _ReplaceSpEffectId; + set => WriteParamField(ref _ReplaceSpEffectId, value); + } + private int _ReplaceSpEffectId; + + [ParamField(0x128, ParamType.I32)] + public int CycleOccurrenceSpEffectId + { + get => _CycleOccurrenceSpEffectId; + set => WriteParamField(ref _CycleOccurrenceSpEffectId, value); + } + private int _CycleOccurrenceSpEffectId; + + [ParamField(0x12C, ParamType.I32)] + public int AtkOccurrenceSpEffectId + { + get => _AtkOccurrenceSpEffectId; + set => WriteParamField(ref _AtkOccurrenceSpEffectId, value); + } + private int _AtkOccurrenceSpEffectId; + + [ParamField(0x130, ParamType.F32)] + public float GuardDefFlickPowerRate + { + get => _GuardDefFlickPowerRate; + set => WriteParamField(ref _GuardDefFlickPowerRate, value); + } + private float _GuardDefFlickPowerRate; + + [ParamField(0x134, ParamType.F32)] + public float GuardStaminaCutRate + { + get => _GuardStaminaCutRate; + set => WriteParamField(ref _GuardStaminaCutRate, value); + } + private float _GuardStaminaCutRate; + + [ParamField(0x138, ParamType.I16)] + public short RayCastPassedTime + { + get => _RayCastPassedTime; + set => WriteParamField(ref _RayCastPassedTime, value); + } + private short _RayCastPassedTime; + + [ParamField(0x13A, ParamType.I16)] + public short ChangeSuperArmorPoint + { + get => _ChangeSuperArmorPoint; + set => WriteParamField(ref _ChangeSuperArmorPoint, value); + } + private short _ChangeSuperArmorPoint; + + [ParamField(0x13C, ParamType.I16)] + public short BowDistRate + { + get => _BowDistRate; + set => WriteParamField(ref _BowDistRate, value); + } + private short _BowDistRate; + + [ParamField(0x13E, ParamType.U16)] + public ushort SpCategory + { + get => _SpCategory; + set => WriteParamField(ref _SpCategory, value); + } + private ushort _SpCategory; + + [ParamField(0x140, ParamType.U8)] + public byte CategoryPriority + { + get => _CategoryPriority; + set => WriteParamField(ref _CategoryPriority, value); + } + private byte _CategoryPriority; + + [ParamField(0x141, ParamType.I8)] + public sbyte SaveCategory + { + get => _SaveCategory; + set => WriteParamField(ref _SaveCategory, value); + } + private sbyte _SaveCategory; + [ParamField(0x142, ParamType.U8)] + public byte ChangeMagicSlot + { + get => _ChangeMagicSlot; + set => WriteParamField(ref _ChangeMagicSlot, value); } + private byte _ChangeMagicSlot; + + [ParamField(0x143, ParamType.U8)] + public byte ChangeMiracleSlot + { + get => _ChangeMiracleSlot; + set => WriteParamField(ref _ChangeMiracleSlot, value); + } + private byte _ChangeMiracleSlot; + + [ParamField(0x144, ParamType.I8)] + public sbyte HeroPointDamage + { + get => _HeroPointDamage; + set => WriteParamField(ref _HeroPointDamage, value); + } + private sbyte _HeroPointDamage; + + [ParamField(0x145, ParamType.U8)] + public byte DefFlickPower + { + get => _DefFlickPower; + set => WriteParamField(ref _DefFlickPower, value); + } + private byte _DefFlickPower; + + [ParamField(0x146, ParamType.U8)] + public byte FlickDamageCutRate + { + get => _FlickDamageCutRate; + set => WriteParamField(ref _FlickDamageCutRate, value); + } + private byte _FlickDamageCutRate; + + [ParamField(0x147, ParamType.U8)] + public byte BloodDamageRate + { + get => _BloodDamageRate; + set => WriteParamField(ref _BloodDamageRate, value); + } + private byte _BloodDamageRate; + + [ParamField(0x148, ParamType.I8)] + public sbyte DmgLv_None + { + get => _DmgLv_None; + set => WriteParamField(ref _DmgLv_None, value); + } + private sbyte _DmgLv_None; + + [ParamField(0x149, ParamType.I8)] + public sbyte DmgLv_S + { + get => _DmgLv_S; + set => WriteParamField(ref _DmgLv_S, value); + } + private sbyte _DmgLv_S; + + [ParamField(0x14A, ParamType.I8)] + public sbyte DmgLv_M + { + get => _DmgLv_M; + set => WriteParamField(ref _DmgLv_M, value); + } + private sbyte _DmgLv_M; + + [ParamField(0x14B, ParamType.I8)] + public sbyte DmgLv_L + { + get => _DmgLv_L; + set => WriteParamField(ref _DmgLv_L, value); + } + private sbyte _DmgLv_L; + + [ParamField(0x14C, ParamType.I8)] + public sbyte DmgLv_BlowM + { + get => _DmgLv_BlowM; + set => WriteParamField(ref _DmgLv_BlowM, value); + } + private sbyte _DmgLv_BlowM; + + [ParamField(0x14D, ParamType.I8)] + public sbyte DmgLv_Push + { + get => _DmgLv_Push; + set => WriteParamField(ref _DmgLv_Push, value); + } + private sbyte _DmgLv_Push; + + [ParamField(0x14E, ParamType.I8)] + public sbyte DmgLv_Strike + { + get => _DmgLv_Strike; + set => WriteParamField(ref _DmgLv_Strike, value); + } + private sbyte _DmgLv_Strike; + + [ParamField(0x14F, ParamType.I8)] + public sbyte DmgLv_BlowS + { + get => _DmgLv_BlowS; + set => WriteParamField(ref _DmgLv_BlowS, value); + } + private sbyte _DmgLv_BlowS; + + [ParamField(0x150, ParamType.I8)] + public sbyte DmgLv_Min + { + get => _DmgLv_Min; + set => WriteParamField(ref _DmgLv_Min, value); + } + private sbyte _DmgLv_Min; + + [ParamField(0x151, ParamType.I8)] + public sbyte DmgLv_Uppercut + { + get => _DmgLv_Uppercut; + set => WriteParamField(ref _DmgLv_Uppercut, value); + } + private sbyte _DmgLv_Uppercut; + + [ParamField(0x152, ParamType.I8)] + public sbyte DmgLv_BlowLL + { + get => _DmgLv_BlowLL; + set => WriteParamField(ref _DmgLv_BlowLL, value); + } + private sbyte _DmgLv_BlowLL; + + [ParamField(0x153, ParamType.I8)] + public sbyte DmgLv_Breath + { + get => _DmgLv_Breath; + set => WriteParamField(ref _DmgLv_Breath, value); + } + private sbyte _DmgLv_Breath; + + [ParamField(0x154, ParamType.U8)] + public byte AtkAttribute + { + get => _AtkAttribute; + set => WriteParamField(ref _AtkAttribute, value); + } + private byte _AtkAttribute; + + [ParamField(0x155, ParamType.U8)] + public byte SpAttribute + { + get => _SpAttribute; + set => WriteParamField(ref _SpAttribute, value); + } + private byte _SpAttribute; + + [ParamField(0x156, ParamType.U8)] + public byte StateInfo + { + get => _StateInfo; + set => WriteParamField(ref _StateInfo, value); + } + private byte _StateInfo; + + [ParamField(0x157, ParamType.U8)] + public byte WepParamChange + { + get => _WepParamChange; + set => WriteParamField(ref _WepParamChange, value); + } + private byte _WepParamChange; + + [ParamField(0x158, ParamType.U8)] + public byte MoveType + { + get => _MoveType; + set => WriteParamField(ref _MoveType, value); + } + private byte _MoveType; + + [ParamField(0x159, ParamType.U8)] + public byte LifeReductionType + { + get => _LifeReductionType; + set => WriteParamField(ref _LifeReductionType, value); + } + private byte _LifeReductionType; + + [ParamField(0x15A, ParamType.U8)] + public byte ThrowCondition + { + get => _ThrowCondition; + set => WriteParamField(ref _ThrowCondition, value); + } + private byte _ThrowCondition; + + [ParamField(0x15B, ParamType.I8)] + public sbyte AddBehaviorJudgeId_condition + { + get => _AddBehaviorJudgeId_condition; + set => WriteParamField(ref _AddBehaviorJudgeId_condition, value); + } + private sbyte _AddBehaviorJudgeId_condition; + + [ParamField(0x15C, ParamType.U8)] + public byte AddBehaviorJudgeId_add + { + get => _AddBehaviorJudgeId_add; + set => WriteParamField(ref _AddBehaviorJudgeId_add, value); + } + private byte _AddBehaviorJudgeId_add; + + #region BitField EffectTargetSelfBitfield ============================================================================== + + [ParamField(0x15D, ParamType.U8)] + public byte EffectTargetSelfBitfield + { + get => _EffectTargetSelfBitfield; + set => WriteParamField(ref _EffectTargetSelfBitfield, value); + } + private byte _EffectTargetSelfBitfield; + + [ParamBitField(nameof(EffectTargetSelfBitfield), bits: 1, bitsOffset: 0)] + public byte EffectTargetSelf + { + get => GetbitfieldValue(_EffectTargetSelfBitfield); + set => SetBitfieldValue(ref _EffectTargetSelfBitfield, value); + } + + [ParamBitField(nameof(EffectTargetSelfBitfield), bits: 1, bitsOffset: 1)] + public byte EffectTargetFriend + { + get => GetbitfieldValue(_EffectTargetSelfBitfield); + set => SetBitfieldValue(ref _EffectTargetSelfBitfield, value); + } + + [ParamBitField(nameof(EffectTargetSelfBitfield), bits: 1, bitsOffset: 2)] + public byte EffectTargetEnemy + { + get => GetbitfieldValue(_EffectTargetSelfBitfield); + set => SetBitfieldValue(ref _EffectTargetSelfBitfield, value); + } + + [ParamBitField(nameof(EffectTargetSelfBitfield), bits: 1, bitsOffset: 3)] + public byte EffectTargetPlayer + { + get => GetbitfieldValue(_EffectTargetSelfBitfield); + set => SetBitfieldValue(ref _EffectTargetSelfBitfield, value); + } + + [ParamBitField(nameof(EffectTargetSelfBitfield), bits: 1, bitsOffset: 4)] + public byte EffectTargetAI + { + get => GetbitfieldValue(_EffectTargetSelfBitfield); + set => SetBitfieldValue(ref _EffectTargetSelfBitfield, value); + } + + [ParamBitField(nameof(EffectTargetSelfBitfield), bits: 1, bitsOffset: 5)] + public byte EffectTargetLive + { + get => GetbitfieldValue(_EffectTargetSelfBitfield); + set => SetBitfieldValue(ref _EffectTargetSelfBitfield, value); + } + + [ParamBitField(nameof(EffectTargetSelfBitfield), bits: 1, bitsOffset: 6)] + public byte EffectTargetGhost + { + get => GetbitfieldValue(_EffectTargetSelfBitfield); + set => SetBitfieldValue(ref _EffectTargetSelfBitfield, value); + } + + [ParamBitField(nameof(EffectTargetSelfBitfield), bits: 1, bitsOffset: 7)] + public byte EffectTargetWhiteGhost + { + get => GetbitfieldValue(_EffectTargetSelfBitfield); + set => SetBitfieldValue(ref _EffectTargetSelfBitfield, value); + } + + #endregion BitField EffectTargetSelfBitfield + + #region BitField EffectTargetBlackGhostBitfield ============================================================================== + + [ParamField(0x15E, ParamType.U8)] + public byte EffectTargetBlackGhostBitfield + { + get => _EffectTargetBlackGhostBitfield; + set => WriteParamField(ref _EffectTargetBlackGhostBitfield, value); + } + private byte _EffectTargetBlackGhostBitfield; + + [ParamBitField(nameof(EffectTargetBlackGhostBitfield), bits: 1, bitsOffset: 0)] + public byte EffectTargetBlackGhost + { + get => GetbitfieldValue(_EffectTargetBlackGhostBitfield); + set => SetBitfieldValue(ref _EffectTargetBlackGhostBitfield, value); + } + + [ParamBitField(nameof(EffectTargetBlackGhostBitfield), bits: 1, bitsOffset: 1)] + public byte EffectTargetAttacker + { + get => GetbitfieldValue(_EffectTargetBlackGhostBitfield); + set => SetBitfieldValue(ref _EffectTargetBlackGhostBitfield, value); + } + + [ParamBitField(nameof(EffectTargetBlackGhostBitfield), bits: 1, bitsOffset: 2)] + public byte DispIconNonactive + { + get => GetbitfieldValue(_EffectTargetBlackGhostBitfield); + set => SetBitfieldValue(ref _EffectTargetBlackGhostBitfield, value); + } + + [ParamBitField(nameof(EffectTargetBlackGhostBitfield), bits: 1, bitsOffset: 3)] + public byte UseSpEffectEffect + { + get => GetbitfieldValue(_EffectTargetBlackGhostBitfield); + set => SetBitfieldValue(ref _EffectTargetBlackGhostBitfield, value); + } + + [ParamBitField(nameof(EffectTargetBlackGhostBitfield), bits: 1, bitsOffset: 4)] + public byte BAdjustMagicAblity + { + get => GetbitfieldValue(_EffectTargetBlackGhostBitfield); + set => SetBitfieldValue(ref _EffectTargetBlackGhostBitfield, value); + } + + [ParamBitField(nameof(EffectTargetBlackGhostBitfield), bits: 1, bitsOffset: 5)] + public byte BAdjustFaithAblity + { + get => GetbitfieldValue(_EffectTargetBlackGhostBitfield); + set => SetBitfieldValue(ref _EffectTargetBlackGhostBitfield, value); + } + + [ParamBitField(nameof(EffectTargetBlackGhostBitfield), bits: 1, bitsOffset: 6)] + public byte BGameClearBonus + { + get => GetbitfieldValue(_EffectTargetBlackGhostBitfield); + set => SetBitfieldValue(ref _EffectTargetBlackGhostBitfield, value); + } + + [ParamBitField(nameof(EffectTargetBlackGhostBitfield), bits: 1, bitsOffset: 7)] + public byte MagParamChange + { + get => GetbitfieldValue(_EffectTargetBlackGhostBitfield); + set => SetBitfieldValue(ref _EffectTargetBlackGhostBitfield, value); + } + + #endregion BitField EffectTargetBlackGhostBitfield + + #region BitField MiracleParamChangeBitfield ============================================================================== + + [ParamField(0x15F, ParamType.U8)] + public byte MiracleParamChangeBitfield + { + get => _MiracleParamChangeBitfield; + set => WriteParamField(ref _MiracleParamChangeBitfield, value); + } + private byte _MiracleParamChangeBitfield; + + [ParamBitField(nameof(MiracleParamChangeBitfield), bits: 1, bitsOffset: 0)] + public byte MiracleParamChange + { + get => GetbitfieldValue(_MiracleParamChangeBitfield); + set => SetBitfieldValue(ref _MiracleParamChangeBitfield, value); + } + + [ParamBitField(nameof(MiracleParamChangeBitfield), bits: 1, bitsOffset: 1)] + public byte ClearSoul + { + get => GetbitfieldValue(_MiracleParamChangeBitfield); + set => SetBitfieldValue(ref _MiracleParamChangeBitfield, value); + } + + [ParamBitField(nameof(MiracleParamChangeBitfield), bits: 1, bitsOffset: 2)] + public byte RequestSOS + { + get => GetbitfieldValue(_MiracleParamChangeBitfield); + set => SetBitfieldValue(ref _MiracleParamChangeBitfield, value); + } + + [ParamBitField(nameof(MiracleParamChangeBitfield), bits: 1, bitsOffset: 3)] + public byte RequestBlackSOS + { + get => GetbitfieldValue(_MiracleParamChangeBitfield); + set => SetBitfieldValue(ref _MiracleParamChangeBitfield, value); + } + + [ParamBitField(nameof(MiracleParamChangeBitfield), bits: 1, bitsOffset: 4)] + public byte RequestForceJoinBlackSOS + { + get => GetbitfieldValue(_MiracleParamChangeBitfield); + set => SetBitfieldValue(ref _MiracleParamChangeBitfield, value); + } + + [ParamBitField(nameof(MiracleParamChangeBitfield), bits: 1, bitsOffset: 5)] + public byte RequestKickSession + { + get => GetbitfieldValue(_MiracleParamChangeBitfield); + set => SetBitfieldValue(ref _MiracleParamChangeBitfield, value); + } + + [ParamBitField(nameof(MiracleParamChangeBitfield), bits: 1, bitsOffset: 6)] + public byte RequestLeaveSession + { + get => GetbitfieldValue(_MiracleParamChangeBitfield); + set => SetBitfieldValue(ref _MiracleParamChangeBitfield, value); + } + + [ParamBitField(nameof(MiracleParamChangeBitfield), bits: 1, bitsOffset: 7)] + public byte RequestNpcInveda + { + get => GetbitfieldValue(_MiracleParamChangeBitfield); + set => SetBitfieldValue(ref _MiracleParamChangeBitfield, value); + } + + #endregion BitField MiracleParamChangeBitfield + + #region BitField NoDeadBitfield ============================================================================== + + [ParamField(0x160, ParamType.U8)] + public byte NoDeadBitfield + { + get => _NoDeadBitfield; + set => WriteParamField(ref _NoDeadBitfield, value); + } + private byte _NoDeadBitfield; + + [ParamBitField(nameof(NoDeadBitfield), bits: 1, bitsOffset: 0)] + public byte NoDead + { + get => GetbitfieldValue(_NoDeadBitfield); + set => SetBitfieldValue(ref _NoDeadBitfield, value); + } + + [ParamBitField(nameof(NoDeadBitfield), bits: 1, bitsOffset: 1)] + public byte BCurrHPIndependeMaxHP + { + get => GetbitfieldValue(_NoDeadBitfield); + set => SetBitfieldValue(ref _NoDeadBitfield, value); + } + + [ParamBitField(nameof(NoDeadBitfield), bits: 1, bitsOffset: 2)] + public byte CorrosionIgnore + { + get => GetbitfieldValue(_NoDeadBitfield); + set => SetBitfieldValue(ref _NoDeadBitfield, value); + } + + [ParamBitField(nameof(NoDeadBitfield), bits: 1, bitsOffset: 3)] + public byte SightSearchCutIgnore + { + get => GetbitfieldValue(_NoDeadBitfield); + set => SetBitfieldValue(ref _NoDeadBitfield, value); + } + + [ParamBitField(nameof(NoDeadBitfield), bits: 1, bitsOffset: 4)] + public byte HearingSearchCutIgnore + { + get => GetbitfieldValue(_NoDeadBitfield); + set => SetBitfieldValue(ref _NoDeadBitfield, value); + } + + [ParamBitField(nameof(NoDeadBitfield), bits: 1, bitsOffset: 5)] + public byte AntiMagicIgnore + { + get => GetbitfieldValue(_NoDeadBitfield); + set => SetBitfieldValue(ref _NoDeadBitfield, value); + } + + [ParamBitField(nameof(NoDeadBitfield), bits: 1, bitsOffset: 6)] + public byte FakeTargetIgnore + { + get => GetbitfieldValue(_NoDeadBitfield); + set => SetBitfieldValue(ref _NoDeadBitfield, value); + } + + [ParamBitField(nameof(NoDeadBitfield), bits: 1, bitsOffset: 7)] + public byte FakeTargetIgnoreUndead + { + get => GetbitfieldValue(_NoDeadBitfield); + set => SetBitfieldValue(ref _NoDeadBitfield, value); + } + + #endregion BitField NoDeadBitfield + + #region BitField FakeTargetIgnoreAnimalBitfield ============================================================================== + + [ParamField(0x161, ParamType.U8)] + public byte FakeTargetIgnoreAnimalBitfield + { + get => _FakeTargetIgnoreAnimalBitfield; + set => WriteParamField(ref _FakeTargetIgnoreAnimalBitfield, value); + } + private byte _FakeTargetIgnoreAnimalBitfield; + + [ParamBitField(nameof(FakeTargetIgnoreAnimalBitfield), bits: 1, bitsOffset: 0)] + public byte FakeTargetIgnoreAnimal + { + get => GetbitfieldValue(_FakeTargetIgnoreAnimalBitfield); + set => SetBitfieldValue(ref _FakeTargetIgnoreAnimalBitfield, value); + } + + [ParamBitField(nameof(FakeTargetIgnoreAnimalBitfield), bits: 1, bitsOffset: 1)] + public byte GrabityIgnore + { + get => GetbitfieldValue(_FakeTargetIgnoreAnimalBitfield); + set => SetBitfieldValue(ref _FakeTargetIgnoreAnimalBitfield, value); + } + + [ParamBitField(nameof(FakeTargetIgnoreAnimalBitfield), bits: 1, bitsOffset: 2)] + public byte DisablePoison + { + get => GetbitfieldValue(_FakeTargetIgnoreAnimalBitfield); + set => SetBitfieldValue(ref _FakeTargetIgnoreAnimalBitfield, value); + } + + [ParamBitField(nameof(FakeTargetIgnoreAnimalBitfield), bits: 1, bitsOffset: 3)] + public byte DisableDisease + { + get => GetbitfieldValue(_FakeTargetIgnoreAnimalBitfield); + set => SetBitfieldValue(ref _FakeTargetIgnoreAnimalBitfield, value); + } + + [ParamBitField(nameof(FakeTargetIgnoreAnimalBitfield), bits: 1, bitsOffset: 4)] + public byte DisableBlood + { + get => GetbitfieldValue(_FakeTargetIgnoreAnimalBitfield); + set => SetBitfieldValue(ref _FakeTargetIgnoreAnimalBitfield, value); + } + + [ParamBitField(nameof(FakeTargetIgnoreAnimalBitfield), bits: 1, bitsOffset: 5)] + public byte DisableCurse + { + get => GetbitfieldValue(_FakeTargetIgnoreAnimalBitfield); + set => SetBitfieldValue(ref _FakeTargetIgnoreAnimalBitfield, value); + } + + [ParamBitField(nameof(FakeTargetIgnoreAnimalBitfield), bits: 1, bitsOffset: 6)] + public byte EnableCharm + { + get => GetbitfieldValue(_FakeTargetIgnoreAnimalBitfield); + set => SetBitfieldValue(ref _FakeTargetIgnoreAnimalBitfield, value); + } + + [ParamBitField(nameof(FakeTargetIgnoreAnimalBitfield), bits: 1, bitsOffset: 7)] + public byte EnableLifeTime + { + get => GetbitfieldValue(_FakeTargetIgnoreAnimalBitfield); + set => SetBitfieldValue(ref _FakeTargetIgnoreAnimalBitfield, value); + } + + #endregion BitField FakeTargetIgnoreAnimalBitfield + + #region BitField HasTargetBitfield ============================================================================== + + [ParamField(0x162, ParamType.U8)] + public byte HasTargetBitfield + { + get => _HasTargetBitfield; + set => WriteParamField(ref _HasTargetBitfield, value); + } + private byte _HasTargetBitfield; + + [ParamBitField(nameof(HasTargetBitfield), bits: 1, bitsOffset: 0)] + public byte HasTarget + { + get => GetbitfieldValue(_HasTargetBitfield); + set => SetBitfieldValue(ref _HasTargetBitfield, value); + } + + [ParamBitField(nameof(HasTargetBitfield), bits: 1, bitsOffset: 1)] + public byte IsFireDamageCancel + { + get => GetbitfieldValue(_HasTargetBitfield); + set => SetBitfieldValue(ref _HasTargetBitfield, value); + } + + [ParamBitField(nameof(HasTargetBitfield), bits: 1, bitsOffset: 2)] + public byte IsExtendSpEffectLife + { + get => GetbitfieldValue(_HasTargetBitfield); + set => SetBitfieldValue(ref _HasTargetBitfield, value); + } + + [ParamBitField(nameof(HasTargetBitfield), bits: 1, bitsOffset: 3)] + public byte RequestLeaveColiseumSession + { + get => GetbitfieldValue(_HasTargetBitfield); + set => SetBitfieldValue(ref _HasTargetBitfield, value); + } + + [ParamBitField(nameof(HasTargetBitfield), bits: 4, bitsOffset: 4)] + public byte Pad_2 + { + get => GetbitfieldValue(_HasTargetBitfield); + set => SetBitfieldValue(ref _HasTargetBitfield, value); + } + + #endregion BitField HasTargetBitfield + + #region BitField VowType0Bitfield ============================================================================== + + [ParamField(0x163, ParamType.U8)] + public byte VowType0Bitfield + { + get => _VowType0Bitfield; + set => WriteParamField(ref _VowType0Bitfield, value); + } + private byte _VowType0Bitfield; + + [ParamBitField(nameof(VowType0Bitfield), bits: 1, bitsOffset: 0)] + public byte VowType0 + { + get => GetbitfieldValue(_VowType0Bitfield); + set => SetBitfieldValue(ref _VowType0Bitfield, value); + } + + [ParamBitField(nameof(VowType0Bitfield), bits: 1, bitsOffset: 1)] + public byte VowType1 + { + get => GetbitfieldValue(_VowType0Bitfield); + set => SetBitfieldValue(ref _VowType0Bitfield, value); + } + + [ParamBitField(nameof(VowType0Bitfield), bits: 1, bitsOffset: 2)] + public byte VowType2 + { + get => GetbitfieldValue(_VowType0Bitfield); + set => SetBitfieldValue(ref _VowType0Bitfield, value); + } + + [ParamBitField(nameof(VowType0Bitfield), bits: 1, bitsOffset: 3)] + public byte VowType3 + { + get => GetbitfieldValue(_VowType0Bitfield); + set => SetBitfieldValue(ref _VowType0Bitfield, value); + } + + [ParamBitField(nameof(VowType0Bitfield), bits: 1, bitsOffset: 4)] + public byte VowType4 + { + get => GetbitfieldValue(_VowType0Bitfield); + set => SetBitfieldValue(ref _VowType0Bitfield, value); + } + + [ParamBitField(nameof(VowType0Bitfield), bits: 1, bitsOffset: 5)] + public byte VowType5 + { + get => GetbitfieldValue(_VowType0Bitfield); + set => SetBitfieldValue(ref _VowType0Bitfield, value); + } + + [ParamBitField(nameof(VowType0Bitfield), bits: 1, bitsOffset: 6)] + public byte VowType6 + { + get => GetbitfieldValue(_VowType0Bitfield); + set => SetBitfieldValue(ref _VowType0Bitfield, value); + } + + [ParamBitField(nameof(VowType0Bitfield), bits: 1, bitsOffset: 7)] + public byte VowType7 + { + get => GetbitfieldValue(_VowType0Bitfield); + set => SetBitfieldValue(ref _VowType0Bitfield, value); + } + + #endregion BitField VowType0Bitfield + + #region BitField VowType8Bitfield ============================================================================== + + [ParamField(0x164, ParamType.U8)] + public byte VowType8Bitfield + { + get => _VowType8Bitfield; + set => WriteParamField(ref _VowType8Bitfield, value); + } + private byte _VowType8Bitfield; + + [ParamBitField(nameof(VowType8Bitfield), bits: 1, bitsOffset: 0)] + public byte VowType8 + { + get => GetbitfieldValue(_VowType8Bitfield); + set => SetBitfieldValue(ref _VowType8Bitfield, value); + } + + [ParamBitField(nameof(VowType8Bitfield), bits: 1, bitsOffset: 1)] + public byte VowType9 + { + get => GetbitfieldValue(_VowType8Bitfield); + set => SetBitfieldValue(ref _VowType8Bitfield, value); + } + + [ParamBitField(nameof(VowType8Bitfield), bits: 1, bitsOffset: 2)] + public byte VowType10 + { + get => GetbitfieldValue(_VowType8Bitfield); + set => SetBitfieldValue(ref _VowType8Bitfield, value); + } + + [ParamBitField(nameof(VowType8Bitfield), bits: 1, bitsOffset: 3)] + public byte VowType11 + { + get => GetbitfieldValue(_VowType8Bitfield); + set => SetBitfieldValue(ref _VowType8Bitfield, value); + } + + [ParamBitField(nameof(VowType8Bitfield), bits: 1, bitsOffset: 4)] + public byte VowType12 + { + get => GetbitfieldValue(_VowType8Bitfield); + set => SetBitfieldValue(ref _VowType8Bitfield, value); + } + + [ParamBitField(nameof(VowType8Bitfield), bits: 1, bitsOffset: 5)] + public byte VowType13 + { + get => GetbitfieldValue(_VowType8Bitfield); + set => SetBitfieldValue(ref _VowType8Bitfield, value); + } + + [ParamBitField(nameof(VowType8Bitfield), bits: 1, bitsOffset: 6)] + public byte VowType14 + { + get => GetbitfieldValue(_VowType8Bitfield); + set => SetBitfieldValue(ref _VowType8Bitfield, value); + } + + [ParamBitField(nameof(VowType8Bitfield), bits: 1, bitsOffset: 7)] + public byte VowType15 + { + get => GetbitfieldValue(_VowType8Bitfield); + set => SetBitfieldValue(ref _VowType8Bitfield, value); + } + + #endregion BitField VowType8Bitfield + + [ParamField(0x165, ParamType.Dummy8, 11)] + public byte[] Pad1 + { + get => _Pad1; + set => WriteParamField(ref _Pad1, value); + } + private byte[] _Pad1 = null!; + } diff --git a/src/SoulMemory/DarkSouls1/Parameters/SpEffectVfx.cs b/src/SoulMemory/DarkSouls1/Parameters/SpEffectVfx.cs index 35105ff..a780469 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/SpEffectVfx.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/SpEffectVfx.cs @@ -18,249 +18,248 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters +namespace SoulMemory.DarkSouls1.Parameters; + +[ExcludeFromCodeCoverage] +public class SpEffectVfx : BaseParam { - [ExcludeFromCodeCoverage] - public class SpEffectVfx : BaseParam + public SpEffectVfx(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} + + [ParamField(0x0, ParamType.I32)] + public int MidstSfxId + { + get => _MidstSfxId; + set => WriteParamField(ref _MidstSfxId, value); + } + private int _MidstSfxId; + + [ParamField(0x4, ParamType.I32)] + public int MidstSeId + { + get => _MidstSeId; + set => WriteParamField(ref _MidstSeId, value); + } + private int _MidstSeId; + + [ParamField(0x8, ParamType.I32)] + public int InitSfxId + { + get => _InitSfxId; + set => WriteParamField(ref _InitSfxId, value); + } + private int _InitSfxId; + + [ParamField(0xC, ParamType.I32)] + public int InitSeId + { + get => _InitSeId; + set => WriteParamField(ref _InitSeId, value); + } + private int _InitSeId; + + [ParamField(0x10, ParamType.I32)] + public int FinishSfxId + { + get => _FinishSfxId; + set => WriteParamField(ref _FinishSfxId, value); + } + private int _FinishSfxId; + + [ParamField(0x14, ParamType.I32)] + public int FinishSeId + { + get => _FinishSeId; + set => WriteParamField(ref _FinishSeId, value); + } + private int _FinishSeId; + + [ParamField(0x18, ParamType.F32)] + public float CamouflageBeginDist { - public SpEffectVfx(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - - [ParamField(0x0, ParamType.I32)] - public int MidstSfxId - { - get => _MidstSfxId; - set => WriteParamField(ref _MidstSfxId, value); - } - private int _MidstSfxId; - - [ParamField(0x4, ParamType.I32)] - public int MidstSeId - { - get => _MidstSeId; - set => WriteParamField(ref _MidstSeId, value); - } - private int _MidstSeId; - - [ParamField(0x8, ParamType.I32)] - public int InitSfxId - { - get => _InitSfxId; - set => WriteParamField(ref _InitSfxId, value); - } - private int _InitSfxId; - - [ParamField(0xC, ParamType.I32)] - public int InitSeId - { - get => _InitSeId; - set => WriteParamField(ref _InitSeId, value); - } - private int _InitSeId; - - [ParamField(0x10, ParamType.I32)] - public int FinishSfxId - { - get => _FinishSfxId; - set => WriteParamField(ref _FinishSfxId, value); - } - private int _FinishSfxId; - - [ParamField(0x14, ParamType.I32)] - public int FinishSeId - { - get => _FinishSeId; - set => WriteParamField(ref _FinishSeId, value); - } - private int _FinishSeId; - - [ParamField(0x18, ParamType.F32)] - public float CamouflageBeginDist - { - get => _CamouflageBeginDist; - set => WriteParamField(ref _CamouflageBeginDist, value); - } - private float _CamouflageBeginDist; - - [ParamField(0x1C, ParamType.F32)] - public float CamouflageEndDist - { - get => _CamouflageEndDist; - set => WriteParamField(ref _CamouflageEndDist, value); - } - private float _CamouflageEndDist; - - [ParamField(0x20, ParamType.I32)] - public int TransformProtectorId - { - get => _TransformProtectorId; - set => WriteParamField(ref _TransformProtectorId, value); - } - private int _TransformProtectorId; - - [ParamField(0x24, ParamType.I16)] - public short MidstDmyId - { - get => _MidstDmyId; - set => WriteParamField(ref _MidstDmyId, value); - } - private short _MidstDmyId; - - [ParamField(0x26, ParamType.I16)] - public short InitDmyId - { - get => _InitDmyId; - set => WriteParamField(ref _InitDmyId, value); - } - private short _InitDmyId; - - [ParamField(0x28, ParamType.I16)] - public short FinishDmyId - { - get => _FinishDmyId; - set => WriteParamField(ref _FinishDmyId, value); - } - private short _FinishDmyId; - - [ParamField(0x2A, ParamType.U8)] - public byte EffectType - { - get => _EffectType; - set => WriteParamField(ref _EffectType, value); - } - private byte _EffectType; - - [ParamField(0x2B, ParamType.U8)] - public byte SoulParamIdForWepEnchant - { - get => _SoulParamIdForWepEnchant; - set => WriteParamField(ref _SoulParamIdForWepEnchant, value); - } - private byte _SoulParamIdForWepEnchant; - - [ParamField(0x2C, ParamType.U8)] - public byte PlayCategory - { - get => _PlayCategory; - set => WriteParamField(ref _PlayCategory, value); - } - private byte _PlayCategory; - - [ParamField(0x2D, ParamType.U8)] - public byte PlayPriority - { - get => _PlayPriority; - set => WriteParamField(ref _PlayPriority, value); - } - private byte _PlayPriority; - - #region BitField ExistEffectForLargeBitfield ============================================================================== - - [ParamField(0x2E, ParamType.U8)] - public byte ExistEffectForLargeBitfield - { - get => _ExistEffectForLargeBitfield; - set => WriteParamField(ref _ExistEffectForLargeBitfield, value); - } - private byte _ExistEffectForLargeBitfield; - - [ParamBitField(nameof(ExistEffectForLargeBitfield), bits: 1, bitsOffset: 0)] - public byte ExistEffectForLarge - { - get => GetbitfieldValue(_ExistEffectForLargeBitfield); - set => SetBitfieldValue(ref _ExistEffectForLargeBitfield, value); - } - - [ParamBitField(nameof(ExistEffectForLargeBitfield), bits: 1, bitsOffset: 1)] - public byte ExistEffectForSoul - { - get => GetbitfieldValue(_ExistEffectForLargeBitfield); - set => SetBitfieldValue(ref _ExistEffectForLargeBitfield, value); - } - - [ParamBitField(nameof(ExistEffectForLargeBitfield), bits: 1, bitsOffset: 2)] - public byte EffectInvisibleAtCamouflage - { - get => GetbitfieldValue(_ExistEffectForLargeBitfield); - set => SetBitfieldValue(ref _ExistEffectForLargeBitfield, value); - } - - [ParamBitField(nameof(ExistEffectForLargeBitfield), bits: 1, bitsOffset: 3)] - public byte UseCamouflage - { - get => GetbitfieldValue(_ExistEffectForLargeBitfield); - set => SetBitfieldValue(ref _ExistEffectForLargeBitfield, value); - } - - [ParamBitField(nameof(ExistEffectForLargeBitfield), bits: 1, bitsOffset: 4)] - public byte InvisibleAtFriendCamouflage - { - get => GetbitfieldValue(_ExistEffectForLargeBitfield); - set => SetBitfieldValue(ref _ExistEffectForLargeBitfield, value); - } - - [ParamBitField(nameof(ExistEffectForLargeBitfield), bits: 1, bitsOffset: 5)] - public byte AddMapAreaBlockOffset - { - get => GetbitfieldValue(_ExistEffectForLargeBitfield); - set => SetBitfieldValue(ref _ExistEffectForLargeBitfield, value); - } - - [ParamBitField(nameof(ExistEffectForLargeBitfield), bits: 1, bitsOffset: 6)] - public byte HalfCamouflage - { - get => GetbitfieldValue(_ExistEffectForLargeBitfield); - set => SetBitfieldValue(ref _ExistEffectForLargeBitfield, value); - } - - [ParamBitField(nameof(ExistEffectForLargeBitfield), bits: 1, bitsOffset: 7)] - public byte IsFullBodyTransformProtectorId - { - get => GetbitfieldValue(_ExistEffectForLargeBitfield); - set => SetBitfieldValue(ref _ExistEffectForLargeBitfield, value); - } - - #endregion BitField ExistEffectForLargeBitfield - - #region BitField IsInvisibleWeaponBitfield ============================================================================== - - [ParamField(0x2F, ParamType.U8)] - public byte IsInvisibleWeaponBitfield - { - get => _IsInvisibleWeaponBitfield; - set => WriteParamField(ref _IsInvisibleWeaponBitfield, value); - } - private byte _IsInvisibleWeaponBitfield; - - [ParamBitField(nameof(IsInvisibleWeaponBitfield), bits: 1, bitsOffset: 0)] - public byte IsInvisibleWeapon - { - get => GetbitfieldValue(_IsInvisibleWeaponBitfield); - set => SetBitfieldValue(ref _IsInvisibleWeaponBitfield, value); - } - - [ParamBitField(nameof(IsInvisibleWeaponBitfield), bits: 1, bitsOffset: 1)] - public byte IsSilence - { - get => GetbitfieldValue(_IsInvisibleWeaponBitfield); - set => SetBitfieldValue(ref _IsInvisibleWeaponBitfield, value); - } - - [ParamBitField(nameof(IsInvisibleWeaponBitfield), bits: 6, bitsOffset: 2)] - public byte Pad_1 - { - get => GetbitfieldValue(_IsInvisibleWeaponBitfield); - set => SetBitfieldValue(ref _IsInvisibleWeaponBitfield, value); - } - - #endregion BitField IsInvisibleWeaponBitfield - - [ParamField(0x30, ParamType.Dummy8, 16)] - public byte[] Pad - { - get => _Pad; - set => WriteParamField(ref _Pad, value); - } - private byte[] _Pad = null!; + get => _CamouflageBeginDist; + set => WriteParamField(ref _CamouflageBeginDist, value); + } + private float _CamouflageBeginDist; + [ParamField(0x1C, ParamType.F32)] + public float CamouflageEndDist + { + get => _CamouflageEndDist; + set => WriteParamField(ref _CamouflageEndDist, value); } + private float _CamouflageEndDist; + + [ParamField(0x20, ParamType.I32)] + public int TransformProtectorId + { + get => _TransformProtectorId; + set => WriteParamField(ref _TransformProtectorId, value); + } + private int _TransformProtectorId; + + [ParamField(0x24, ParamType.I16)] + public short MidstDmyId + { + get => _MidstDmyId; + set => WriteParamField(ref _MidstDmyId, value); + } + private short _MidstDmyId; + + [ParamField(0x26, ParamType.I16)] + public short InitDmyId + { + get => _InitDmyId; + set => WriteParamField(ref _InitDmyId, value); + } + private short _InitDmyId; + + [ParamField(0x28, ParamType.I16)] + public short FinishDmyId + { + get => _FinishDmyId; + set => WriteParamField(ref _FinishDmyId, value); + } + private short _FinishDmyId; + + [ParamField(0x2A, ParamType.U8)] + public byte EffectType + { + get => _EffectType; + set => WriteParamField(ref _EffectType, value); + } + private byte _EffectType; + + [ParamField(0x2B, ParamType.U8)] + public byte SoulParamIdForWepEnchant + { + get => _SoulParamIdForWepEnchant; + set => WriteParamField(ref _SoulParamIdForWepEnchant, value); + } + private byte _SoulParamIdForWepEnchant; + + [ParamField(0x2C, ParamType.U8)] + public byte PlayCategory + { + get => _PlayCategory; + set => WriteParamField(ref _PlayCategory, value); + } + private byte _PlayCategory; + + [ParamField(0x2D, ParamType.U8)] + public byte PlayPriority + { + get => _PlayPriority; + set => WriteParamField(ref _PlayPriority, value); + } + private byte _PlayPriority; + + #region BitField ExistEffectForLargeBitfield ============================================================================== + + [ParamField(0x2E, ParamType.U8)] + public byte ExistEffectForLargeBitfield + { + get => _ExistEffectForLargeBitfield; + set => WriteParamField(ref _ExistEffectForLargeBitfield, value); + } + private byte _ExistEffectForLargeBitfield; + + [ParamBitField(nameof(ExistEffectForLargeBitfield), bits: 1, bitsOffset: 0)] + public byte ExistEffectForLarge + { + get => GetbitfieldValue(_ExistEffectForLargeBitfield); + set => SetBitfieldValue(ref _ExistEffectForLargeBitfield, value); + } + + [ParamBitField(nameof(ExistEffectForLargeBitfield), bits: 1, bitsOffset: 1)] + public byte ExistEffectForSoul + { + get => GetbitfieldValue(_ExistEffectForLargeBitfield); + set => SetBitfieldValue(ref _ExistEffectForLargeBitfield, value); + } + + [ParamBitField(nameof(ExistEffectForLargeBitfield), bits: 1, bitsOffset: 2)] + public byte EffectInvisibleAtCamouflage + { + get => GetbitfieldValue(_ExistEffectForLargeBitfield); + set => SetBitfieldValue(ref _ExistEffectForLargeBitfield, value); + } + + [ParamBitField(nameof(ExistEffectForLargeBitfield), bits: 1, bitsOffset: 3)] + public byte UseCamouflage + { + get => GetbitfieldValue(_ExistEffectForLargeBitfield); + set => SetBitfieldValue(ref _ExistEffectForLargeBitfield, value); + } + + [ParamBitField(nameof(ExistEffectForLargeBitfield), bits: 1, bitsOffset: 4)] + public byte InvisibleAtFriendCamouflage + { + get => GetbitfieldValue(_ExistEffectForLargeBitfield); + set => SetBitfieldValue(ref _ExistEffectForLargeBitfield, value); + } + + [ParamBitField(nameof(ExistEffectForLargeBitfield), bits: 1, bitsOffset: 5)] + public byte AddMapAreaBlockOffset + { + get => GetbitfieldValue(_ExistEffectForLargeBitfield); + set => SetBitfieldValue(ref _ExistEffectForLargeBitfield, value); + } + + [ParamBitField(nameof(ExistEffectForLargeBitfield), bits: 1, bitsOffset: 6)] + public byte HalfCamouflage + { + get => GetbitfieldValue(_ExistEffectForLargeBitfield); + set => SetBitfieldValue(ref _ExistEffectForLargeBitfield, value); + } + + [ParamBitField(nameof(ExistEffectForLargeBitfield), bits: 1, bitsOffset: 7)] + public byte IsFullBodyTransformProtectorId + { + get => GetbitfieldValue(_ExistEffectForLargeBitfield); + set => SetBitfieldValue(ref _ExistEffectForLargeBitfield, value); + } + + #endregion BitField ExistEffectForLargeBitfield + + #region BitField IsInvisibleWeaponBitfield ============================================================================== + + [ParamField(0x2F, ParamType.U8)] + public byte IsInvisibleWeaponBitfield + { + get => _IsInvisibleWeaponBitfield; + set => WriteParamField(ref _IsInvisibleWeaponBitfield, value); + } + private byte _IsInvisibleWeaponBitfield; + + [ParamBitField(nameof(IsInvisibleWeaponBitfield), bits: 1, bitsOffset: 0)] + public byte IsInvisibleWeapon + { + get => GetbitfieldValue(_IsInvisibleWeaponBitfield); + set => SetBitfieldValue(ref _IsInvisibleWeaponBitfield, value); + } + + [ParamBitField(nameof(IsInvisibleWeaponBitfield), bits: 1, bitsOffset: 1)] + public byte IsSilence + { + get => GetbitfieldValue(_IsInvisibleWeaponBitfield); + set => SetBitfieldValue(ref _IsInvisibleWeaponBitfield, value); + } + + [ParamBitField(nameof(IsInvisibleWeaponBitfield), bits: 6, bitsOffset: 2)] + public byte Pad_1 + { + get => GetbitfieldValue(_IsInvisibleWeaponBitfield); + set => SetBitfieldValue(ref _IsInvisibleWeaponBitfield, value); + } + + #endregion BitField IsInvisibleWeaponBitfield + + [ParamField(0x30, ParamType.Dummy8, 16)] + public byte[] Pad + { + get => _Pad; + set => WriteParamField(ref _Pad, value); + } + private byte[] _Pad = null!; + } diff --git a/src/SoulMemory/DarkSouls1/Parameters/TalkParam.cs b/src/SoulMemory/DarkSouls1/Parameters/TalkParam.cs index 1bc9ea3..2fca64d 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/TalkParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/TalkParam.cs @@ -18,76 +18,75 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters -{ - [ExcludeFromCodeCoverage] - public class TalkParam : BaseParam - { - public TalkParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} +namespace SoulMemory.DarkSouls1.Parameters; - [ParamField(0x0, ParamType.I32)] - public int MsgId - { - get => _MsgId; - set => WriteParamField(ref _MsgId, value); - } - private int _MsgId; +[ExcludeFromCodeCoverage] +public class TalkParam : BaseParam +{ + public TalkParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x4, ParamType.I32)] - public int VoiceId - { - get => _VoiceId; - set => WriteParamField(ref _VoiceId, value); - } - private int _VoiceId; + [ParamField(0x0, ParamType.I32)] + public int MsgId + { + get => _MsgId; + set => WriteParamField(ref _MsgId, value); + } + private int _MsgId; - [ParamField(0x8, ParamType.I32)] - public int MotionId - { - get => _MotionId; - set => WriteParamField(ref _MotionId, value); - } - private int _MotionId; + [ParamField(0x4, ParamType.I32)] + public int VoiceId + { + get => _VoiceId; + set => WriteParamField(ref _VoiceId, value); + } + private int _VoiceId; - [ParamField(0xC, ParamType.I32)] - public int ReturnPos - { - get => _ReturnPos; - set => WriteParamField(ref _ReturnPos, value); - } - private int _ReturnPos; + [ParamField(0x8, ParamType.I32)] + public int MotionId + { + get => _MotionId; + set => WriteParamField(ref _MotionId, value); + } + private int _MotionId; - [ParamField(0x10, ParamType.I32)] - public int ReactionId - { - get => _ReactionId; - set => WriteParamField(ref _ReactionId, value); - } - private int _ReactionId; + [ParamField(0xC, ParamType.I32)] + public int ReturnPos + { + get => _ReturnPos; + set => WriteParamField(ref _ReturnPos, value); + } + private int _ReturnPos; - [ParamField(0x14, ParamType.I32)] - public int EventId - { - get => _EventId; - set => WriteParamField(ref _EventId, value); - } - private int _EventId; + [ParamField(0x10, ParamType.I32)] + public int ReactionId + { + get => _ReactionId; + set => WriteParamField(ref _ReactionId, value); + } + private int _ReactionId; - [ParamField(0x18, ParamType.U8)] - public byte IsMotionLoop - { - get => _IsMotionLoop; - set => WriteParamField(ref _IsMotionLoop, value); - } - private byte _IsMotionLoop; + [ParamField(0x14, ParamType.I32)] + public int EventId + { + get => _EventId; + set => WriteParamField(ref _EventId, value); + } + private int _EventId; - [ParamField(0x19, ParamType.Dummy8, 7)] - public byte[] Pad0 - { - get => _Pad0; - set => WriteParamField(ref _Pad0, value); - } - private byte[] _Pad0 = null!; + [ParamField(0x18, ParamType.U8)] + public byte IsMotionLoop + { + get => _IsMotionLoop; + set => WriteParamField(ref _IsMotionLoop, value); + } + private byte _IsMotionLoop; + [ParamField(0x19, ParamType.Dummy8, 7)] + public byte[] Pad0 + { + get => _Pad0; + set => WriteParamField(ref _Pad0, value); } + private byte[] _Pad0 = null!; + } diff --git a/src/SoulMemory/DarkSouls1/Parameters/ThrowParam.cs b/src/SoulMemory/DarkSouls1/Parameters/ThrowParam.cs index 20895f3..3d24d29 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/ThrowParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/ThrowParam.cs @@ -18,236 +18,235 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters +namespace SoulMemory.DarkSouls1.Parameters; + +[ExcludeFromCodeCoverage] +public class ThrowParam : BaseParam { - [ExcludeFromCodeCoverage] - public class ThrowParam : BaseParam - { - public ThrowParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - - [ParamField(0x0, ParamType.I32)] - public int AtkChrId - { - get => _AtkChrId; - set => WriteParamField(ref _AtkChrId, value); - } - private int _AtkChrId; - - [ParamField(0x4, ParamType.I32)] - public int DefChrId - { - get => _DefChrId; - set => WriteParamField(ref _DefChrId, value); - } - private int _DefChrId; - - [ParamField(0x8, ParamType.F32)] - public float Dist - { - get => _Dist; - set => WriteParamField(ref _Dist, value); - } - private float _Dist; - - [ParamField(0xC, ParamType.F32)] - public float DiffAngMin - { - get => _DiffAngMin; - set => WriteParamField(ref _DiffAngMin, value); - } - private float _DiffAngMin; - - [ParamField(0x10, ParamType.F32)] - public float DiffAngMax - { - get => _DiffAngMax; - set => WriteParamField(ref _DiffAngMax, value); - } - private float _DiffAngMax; - - [ParamField(0x14, ParamType.F32)] - public float UpperYRange - { - get => _UpperYRange; - set => WriteParamField(ref _UpperYRange, value); - } - private float _UpperYRange; - - [ParamField(0x18, ParamType.F32)] - public float LowerYRange - { - get => _LowerYRange; - set => WriteParamField(ref _LowerYRange, value); - } - private float _LowerYRange; - - [ParamField(0x1C, ParamType.F32)] - public float DiffAngMyToDef - { - get => _DiffAngMyToDef; - set => WriteParamField(ref _DiffAngMyToDef, value); - } - private float _DiffAngMyToDef; - - [ParamField(0x20, ParamType.I32)] - public int ThrowTypeId - { - get => _ThrowTypeId; - set => WriteParamField(ref _ThrowTypeId, value); - } - private int _ThrowTypeId; - - [ParamField(0x24, ParamType.I32)] - public int AtkAnimId - { - get => _AtkAnimId; - set => WriteParamField(ref _AtkAnimId, value); - } - private int _AtkAnimId; - - [ParamField(0x28, ParamType.I32)] - public int DefAnimId - { - get => _DefAnimId; - set => WriteParamField(ref _DefAnimId, value); - } - private int _DefAnimId; - - [ParamField(0x2C, ParamType.U16)] - public ushort EscHp - { - get => _EscHp; - set => WriteParamField(ref _EscHp, value); - } - private ushort _EscHp; - - [ParamField(0x2E, ParamType.U16)] - public ushort SelfEscCycleTime - { - get => _SelfEscCycleTime; - set => WriteParamField(ref _SelfEscCycleTime, value); - } - private ushort _SelfEscCycleTime; - - [ParamField(0x30, ParamType.U16)] - public ushort SphereCastRadiusRateTop - { - get => _SphereCastRadiusRateTop; - set => WriteParamField(ref _SphereCastRadiusRateTop, value); - } - private ushort _SphereCastRadiusRateTop; - - [ParamField(0x32, ParamType.U16)] - public ushort SphereCastRadiusRateLow - { - get => _SphereCastRadiusRateLow; - set => WriteParamField(ref _SphereCastRadiusRateLow, value); - } - private ushort _SphereCastRadiusRateLow; - - [ParamField(0x34, ParamType.U8)] - public byte PadType - { - get => _PadType; - set => WriteParamField(ref _PadType, value); - } - private byte _PadType; - - [ParamField(0x35, ParamType.U8)] - public byte AtkEnableState - { - get => _AtkEnableState; - set => WriteParamField(ref _AtkEnableState, value); - } - private byte _AtkEnableState; - - [ParamField(0x36, ParamType.U8)] - public byte AtkSorbDmyId - { - get => _AtkSorbDmyId; - set => WriteParamField(ref _AtkSorbDmyId, value); - } - private byte _AtkSorbDmyId; - - [ParamField(0x37, ParamType.U8)] - public byte DefSorbDmyId - { - get => _DefSorbDmyId; - set => WriteParamField(ref _DefSorbDmyId, value); - } - private byte _DefSorbDmyId; - - [ParamField(0x38, ParamType.U8)] - public byte ThrowType - { - get => _ThrowType; - set => WriteParamField(ref _ThrowType, value); - } - private byte _ThrowType; - - [ParamField(0x39, ParamType.U8)] - public byte SelfEscCycleCnt - { - get => _SelfEscCycleCnt; - set => WriteParamField(ref _SelfEscCycleCnt, value); - } - private byte _SelfEscCycleCnt; - - [ParamField(0x3A, ParamType.U8)] - public byte DmyHasChrDirType - { - get => _DmyHasChrDirType; - set => WriteParamField(ref _DmyHasChrDirType, value); - } - private byte _DmyHasChrDirType; - - #region BitField IsTurnAtkerBitfield ============================================================================== - - [ParamField(0x3B, ParamType.U8)] - public byte IsTurnAtkerBitfield - { - get => _IsTurnAtkerBitfield; - set => WriteParamField(ref _IsTurnAtkerBitfield, value); - } - private byte _IsTurnAtkerBitfield; - - [ParamBitField(nameof(IsTurnAtkerBitfield), bits: 1, bitsOffset: 0)] - public byte IsTurnAtker - { - get => GetbitfieldValue(_IsTurnAtkerBitfield); - set => SetBitfieldValue(ref _IsTurnAtkerBitfield, value); - } - - [ParamBitField(nameof(IsTurnAtkerBitfield), bits: 1, bitsOffset: 1)] - public byte IsSkipWepCate - { - get => GetbitfieldValue(_IsTurnAtkerBitfield); - set => SetBitfieldValue(ref _IsTurnAtkerBitfield, value); - } - - [ParamBitField(nameof(IsTurnAtkerBitfield), bits: 1, bitsOffset: 2)] - public byte IsSkipSphereCast - { - get => GetbitfieldValue(_IsTurnAtkerBitfield); - set => SetBitfieldValue(ref _IsTurnAtkerBitfield, value); - } - - [ParamBitField(nameof(IsTurnAtkerBitfield), bits: 5, bitsOffset: 3)] - public byte Pad0 - { - get => GetbitfieldValue(_IsTurnAtkerBitfield); - set => SetBitfieldValue(ref _IsTurnAtkerBitfield, value); - } - - #endregion BitField IsTurnAtkerBitfield - - [ParamField(0x3C, ParamType.Dummy8, 4)] - public byte[] Pad1 - { - get => _Pad1; - set => WriteParamField(ref _Pad1, value); - } - private byte[] _Pad1 = null!; + public ThrowParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} + + [ParamField(0x0, ParamType.I32)] + public int AtkChrId + { + get => _AtkChrId; + set => WriteParamField(ref _AtkChrId, value); + } + private int _AtkChrId; + + [ParamField(0x4, ParamType.I32)] + public int DefChrId + { + get => _DefChrId; + set => WriteParamField(ref _DefChrId, value); + } + private int _DefChrId; + + [ParamField(0x8, ParamType.F32)] + public float Dist + { + get => _Dist; + set => WriteParamField(ref _Dist, value); + } + private float _Dist; + + [ParamField(0xC, ParamType.F32)] + public float DiffAngMin + { + get => _DiffAngMin; + set => WriteParamField(ref _DiffAngMin, value); + } + private float _DiffAngMin; + + [ParamField(0x10, ParamType.F32)] + public float DiffAngMax + { + get => _DiffAngMax; + set => WriteParamField(ref _DiffAngMax, value); + } + private float _DiffAngMax; + + [ParamField(0x14, ParamType.F32)] + public float UpperYRange + { + get => _UpperYRange; + set => WriteParamField(ref _UpperYRange, value); + } + private float _UpperYRange; + + [ParamField(0x18, ParamType.F32)] + public float LowerYRange + { + get => _LowerYRange; + set => WriteParamField(ref _LowerYRange, value); + } + private float _LowerYRange; + + [ParamField(0x1C, ParamType.F32)] + public float DiffAngMyToDef + { + get => _DiffAngMyToDef; + set => WriteParamField(ref _DiffAngMyToDef, value); + } + private float _DiffAngMyToDef; + + [ParamField(0x20, ParamType.I32)] + public int ThrowTypeId + { + get => _ThrowTypeId; + set => WriteParamField(ref _ThrowTypeId, value); + } + private int _ThrowTypeId; + + [ParamField(0x24, ParamType.I32)] + public int AtkAnimId + { + get => _AtkAnimId; + set => WriteParamField(ref _AtkAnimId, value); + } + private int _AtkAnimId; + + [ParamField(0x28, ParamType.I32)] + public int DefAnimId + { + get => _DefAnimId; + set => WriteParamField(ref _DefAnimId, value); + } + private int _DefAnimId; + + [ParamField(0x2C, ParamType.U16)] + public ushort EscHp + { + get => _EscHp; + set => WriteParamField(ref _EscHp, value); + } + private ushort _EscHp; + + [ParamField(0x2E, ParamType.U16)] + public ushort SelfEscCycleTime + { + get => _SelfEscCycleTime; + set => WriteParamField(ref _SelfEscCycleTime, value); + } + private ushort _SelfEscCycleTime; + + [ParamField(0x30, ParamType.U16)] + public ushort SphereCastRadiusRateTop + { + get => _SphereCastRadiusRateTop; + set => WriteParamField(ref _SphereCastRadiusRateTop, value); + } + private ushort _SphereCastRadiusRateTop; + [ParamField(0x32, ParamType.U16)] + public ushort SphereCastRadiusRateLow + { + get => _SphereCastRadiusRateLow; + set => WriteParamField(ref _SphereCastRadiusRateLow, value); + } + private ushort _SphereCastRadiusRateLow; + + [ParamField(0x34, ParamType.U8)] + public byte PadType + { + get => _PadType; + set => WriteParamField(ref _PadType, value); + } + private byte _PadType; + + [ParamField(0x35, ParamType.U8)] + public byte AtkEnableState + { + get => _AtkEnableState; + set => WriteParamField(ref _AtkEnableState, value); + } + private byte _AtkEnableState; + + [ParamField(0x36, ParamType.U8)] + public byte AtkSorbDmyId + { + get => _AtkSorbDmyId; + set => WriteParamField(ref _AtkSorbDmyId, value); + } + private byte _AtkSorbDmyId; + + [ParamField(0x37, ParamType.U8)] + public byte DefSorbDmyId + { + get => _DefSorbDmyId; + set => WriteParamField(ref _DefSorbDmyId, value); + } + private byte _DefSorbDmyId; + + [ParamField(0x38, ParamType.U8)] + public byte ThrowType + { + get => _ThrowType; + set => WriteParamField(ref _ThrowType, value); + } + private byte _ThrowType; + + [ParamField(0x39, ParamType.U8)] + public byte SelfEscCycleCnt + { + get => _SelfEscCycleCnt; + set => WriteParamField(ref _SelfEscCycleCnt, value); + } + private byte _SelfEscCycleCnt; + + [ParamField(0x3A, ParamType.U8)] + public byte DmyHasChrDirType + { + get => _DmyHasChrDirType; + set => WriteParamField(ref _DmyHasChrDirType, value); } + private byte _DmyHasChrDirType; + + #region BitField IsTurnAtkerBitfield ============================================================================== + + [ParamField(0x3B, ParamType.U8)] + public byte IsTurnAtkerBitfield + { + get => _IsTurnAtkerBitfield; + set => WriteParamField(ref _IsTurnAtkerBitfield, value); + } + private byte _IsTurnAtkerBitfield; + + [ParamBitField(nameof(IsTurnAtkerBitfield), bits: 1, bitsOffset: 0)] + public byte IsTurnAtker + { + get => GetbitfieldValue(_IsTurnAtkerBitfield); + set => SetBitfieldValue(ref _IsTurnAtkerBitfield, value); + } + + [ParamBitField(nameof(IsTurnAtkerBitfield), bits: 1, bitsOffset: 1)] + public byte IsSkipWepCate + { + get => GetbitfieldValue(_IsTurnAtkerBitfield); + set => SetBitfieldValue(ref _IsTurnAtkerBitfield, value); + } + + [ParamBitField(nameof(IsTurnAtkerBitfield), bits: 1, bitsOffset: 2)] + public byte IsSkipSphereCast + { + get => GetbitfieldValue(_IsTurnAtkerBitfield); + set => SetBitfieldValue(ref _IsTurnAtkerBitfield, value); + } + + [ParamBitField(nameof(IsTurnAtkerBitfield), bits: 5, bitsOffset: 3)] + public byte Pad0 + { + get => GetbitfieldValue(_IsTurnAtkerBitfield); + set => SetBitfieldValue(ref _IsTurnAtkerBitfield, value); + } + + #endregion BitField IsTurnAtkerBitfield + + [ParamField(0x3C, ParamType.Dummy8, 4)] + public byte[] Pad1 + { + get => _Pad1; + set => WriteParamField(ref _Pad1, value); + } + private byte[] _Pad1 = null!; + } diff --git a/src/SoulMemory/DarkSouls1/Parameters/ToneCorrectBank.cs b/src/SoulMemory/DarkSouls1/Parameters/ToneCorrectBank.cs index d5c957f..de14425 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/ToneCorrectBank.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/ToneCorrectBank.cs @@ -18,84 +18,83 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters -{ - [ExcludeFromCodeCoverage] - public class ToneCorrectBank : BaseParam - { - public ToneCorrectBank(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} +namespace SoulMemory.DarkSouls1.Parameters; - [ParamField(0x0, ParamType.F32)] - public float BrightnessR - { - get => _BrightnessR; - set => WriteParamField(ref _BrightnessR, value); - } - private float _BrightnessR; +[ExcludeFromCodeCoverage] +public class ToneCorrectBank : BaseParam +{ + public ToneCorrectBank(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x4, ParamType.F32)] - public float BrightnessG - { - get => _BrightnessG; - set => WriteParamField(ref _BrightnessG, value); - } - private float _BrightnessG; + [ParamField(0x0, ParamType.F32)] + public float BrightnessR + { + get => _BrightnessR; + set => WriteParamField(ref _BrightnessR, value); + } + private float _BrightnessR; - [ParamField(0x8, ParamType.F32)] - public float BrightnessB - { - get => _BrightnessB; - set => WriteParamField(ref _BrightnessB, value); - } - private float _BrightnessB; + [ParamField(0x4, ParamType.F32)] + public float BrightnessG + { + get => _BrightnessG; + set => WriteParamField(ref _BrightnessG, value); + } + private float _BrightnessG; - [ParamField(0xC, ParamType.F32)] - public float ContrastR - { - get => _ContrastR; - set => WriteParamField(ref _ContrastR, value); - } - private float _ContrastR; + [ParamField(0x8, ParamType.F32)] + public float BrightnessB + { + get => _BrightnessB; + set => WriteParamField(ref _BrightnessB, value); + } + private float _BrightnessB; - [ParamField(0x10, ParamType.F32)] - public float ContrastG - { - get => _ContrastG; - set => WriteParamField(ref _ContrastG, value); - } - private float _ContrastG; + [ParamField(0xC, ParamType.F32)] + public float ContrastR + { + get => _ContrastR; + set => WriteParamField(ref _ContrastR, value); + } + private float _ContrastR; - [ParamField(0x14, ParamType.F32)] - public float ContrastB - { - get => _ContrastB; - set => WriteParamField(ref _ContrastB, value); - } - private float _ContrastB; + [ParamField(0x10, ParamType.F32)] + public float ContrastG + { + get => _ContrastG; + set => WriteParamField(ref _ContrastG, value); + } + private float _ContrastG; - [ParamField(0x18, ParamType.F32)] - public float Saturation - { - get => _Saturation; - set => WriteParamField(ref _Saturation, value); - } - private float _Saturation; + [ParamField(0x14, ParamType.F32)] + public float ContrastB + { + get => _ContrastB; + set => WriteParamField(ref _ContrastB, value); + } + private float _ContrastB; - [ParamField(0x1C, ParamType.F32)] - public float Hue - { - get => _Hue; - set => WriteParamField(ref _Hue, value); - } - private float _Hue; + [ParamField(0x18, ParamType.F32)] + public float Saturation + { + get => _Saturation; + set => WriteParamField(ref _Saturation, value); + } + private float _Saturation; - [ParamField(0x20, ParamType.F32)] - public float SfxMultiplier - { - get => _SfxMultiplier; - set => WriteParamField(ref _SfxMultiplier, value); - } - private float _SfxMultiplier; + [ParamField(0x1C, ParamType.F32)] + public float Hue + { + get => _Hue; + set => WriteParamField(ref _Hue, value); + } + private float _Hue; + [ParamField(0x20, ParamType.F32)] + public float SfxMultiplier + { + get => _SfxMultiplier; + set => WriteParamField(ref _SfxMultiplier, value); } + private float _SfxMultiplier; + } diff --git a/src/SoulMemory/DarkSouls1/Parameters/ToneMapBank.cs b/src/SoulMemory/DarkSouls1/Parameters/ToneMapBank.cs index 82cd7d5..676fc75 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/ToneMapBank.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/ToneMapBank.cs @@ -18,132 +18,131 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters +namespace SoulMemory.DarkSouls1.Parameters; + +[ExcludeFromCodeCoverage] +public class ToneMapBank : BaseParam { - [ExcludeFromCodeCoverage] - public class ToneMapBank : BaseParam + public ToneMapBank(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} + + [ParamField(0x0, ParamType.I16)] + public short BloomBegin + { + get => _BloomBegin; + set => WriteParamField(ref _BloomBegin, value); + } + private short _BloomBegin; + + [ParamField(0x2, ParamType.I16)] + public short BloomMul + { + get => _BloomMul; + set => WriteParamField(ref _BloomMul, value); + } + private short _BloomMul; + + [ParamField(0x4, ParamType.I16)] + public short BloomBeginFar + { + get => _BloomBeginFar; + set => WriteParamField(ref _BloomBeginFar, value); + } + private short _BloomBeginFar; + + [ParamField(0x6, ParamType.I16)] + public short BloomMulFar + { + get => _BloomMulFar; + set => WriteParamField(ref _BloomMulFar, value); + } + private short _BloomMulFar; + + [ParamField(0x8, ParamType.F32)] + public float BloomNearDist + { + get => _BloomNearDist; + set => WriteParamField(ref _BloomNearDist, value); + } + private float _BloomNearDist; + + [ParamField(0xC, ParamType.F32)] + public float BloomFarDist + { + get => _BloomFarDist; + set => WriteParamField(ref _BloomFarDist, value); + } + private float _BloomFarDist; + + [ParamField(0x10, ParamType.F32)] + public float GrayKeyValue + { + get => _GrayKeyValue; + set => WriteParamField(ref _GrayKeyValue, value); + } + private float _GrayKeyValue; + + [ParamField(0x14, ParamType.F32)] + public float MinAdaptedLum + { + get => _MinAdaptedLum; + set => WriteParamField(ref _MinAdaptedLum, value); + } + private float _MinAdaptedLum; + + [ParamField(0x18, ParamType.F32)] + public float MaxAdapredLum + { + get => _MaxAdapredLum; + set => WriteParamField(ref _MaxAdapredLum, value); + } + private float _MaxAdapredLum; + + [ParamField(0x1C, ParamType.F32)] + public float AdaptSpeed + { + get => _AdaptSpeed; + set => WriteParamField(ref _AdaptSpeed, value); + } + private float _AdaptSpeed; + + [ParamField(0x20, ParamType.I8)] + public sbyte LightShaftBegin + { + get => _LightShaftBegin; + set => WriteParamField(ref _LightShaftBegin, value); + } + private sbyte _LightShaftBegin; + + [ParamField(0x21, ParamType.Dummy8, 3)] + public byte[] Pad_0 { - public ToneMapBank(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - - [ParamField(0x0, ParamType.I16)] - public short BloomBegin - { - get => _BloomBegin; - set => WriteParamField(ref _BloomBegin, value); - } - private short _BloomBegin; - - [ParamField(0x2, ParamType.I16)] - public short BloomMul - { - get => _BloomMul; - set => WriteParamField(ref _BloomMul, value); - } - private short _BloomMul; - - [ParamField(0x4, ParamType.I16)] - public short BloomBeginFar - { - get => _BloomBeginFar; - set => WriteParamField(ref _BloomBeginFar, value); - } - private short _BloomBeginFar; - - [ParamField(0x6, ParamType.I16)] - public short BloomMulFar - { - get => _BloomMulFar; - set => WriteParamField(ref _BloomMulFar, value); - } - private short _BloomMulFar; - - [ParamField(0x8, ParamType.F32)] - public float BloomNearDist - { - get => _BloomNearDist; - set => WriteParamField(ref _BloomNearDist, value); - } - private float _BloomNearDist; - - [ParamField(0xC, ParamType.F32)] - public float BloomFarDist - { - get => _BloomFarDist; - set => WriteParamField(ref _BloomFarDist, value); - } - private float _BloomFarDist; - - [ParamField(0x10, ParamType.F32)] - public float GrayKeyValue - { - get => _GrayKeyValue; - set => WriteParamField(ref _GrayKeyValue, value); - } - private float _GrayKeyValue; - - [ParamField(0x14, ParamType.F32)] - public float MinAdaptedLum - { - get => _MinAdaptedLum; - set => WriteParamField(ref _MinAdaptedLum, value); - } - private float _MinAdaptedLum; - - [ParamField(0x18, ParamType.F32)] - public float MaxAdapredLum - { - get => _MaxAdapredLum; - set => WriteParamField(ref _MaxAdapredLum, value); - } - private float _MaxAdapredLum; - - [ParamField(0x1C, ParamType.F32)] - public float AdaptSpeed - { - get => _AdaptSpeed; - set => WriteParamField(ref _AdaptSpeed, value); - } - private float _AdaptSpeed; - - [ParamField(0x20, ParamType.I8)] - public sbyte LightShaftBegin - { - get => _LightShaftBegin; - set => WriteParamField(ref _LightShaftBegin, value); - } - private sbyte _LightShaftBegin; - - [ParamField(0x21, ParamType.Dummy8, 3)] - public byte[] Pad_0 - { - get => _Pad_0; - set => WriteParamField(ref _Pad_0, value); - } - private byte[] _Pad_0 = null!; - - [ParamField(0x24, ParamType.F32)] - public float LightShaftPower - { - get => _LightShaftPower; - set => WriteParamField(ref _LightShaftPower, value); - } - private float _LightShaftPower; - - [ParamField(0x28, ParamType.F32)] - public float LightShaftAttenRate - { - get => _LightShaftAttenRate; - set => WriteParamField(ref _LightShaftAttenRate, value); - } - private float _LightShaftAttenRate; - - [ParamField(0x2C, ParamType.F32)] - public float InverseToneMapMul - { - get => _InverseToneMapMul; - set => WriteParamField(ref _InverseToneMapMul, value); - } - private float _InverseToneMapMul; + get => _Pad_0; + set => WriteParamField(ref _Pad_0, value); + } + private byte[] _Pad_0 = null!; + [ParamField(0x24, ParamType.F32)] + public float LightShaftPower + { + get => _LightShaftPower; + set => WriteParamField(ref _LightShaftPower, value); } + private float _LightShaftPower; + + [ParamField(0x28, ParamType.F32)] + public float LightShaftAttenRate + { + get => _LightShaftAttenRate; + set => WriteParamField(ref _LightShaftAttenRate, value); + } + private float _LightShaftAttenRate; + + [ParamField(0x2C, ParamType.F32)] + public float InverseToneMapMul + { + get => _InverseToneMapMul; + set => WriteParamField(ref _InverseToneMapMul, value); + } + private float _InverseToneMapMul; + } diff --git a/src/SoulMemory/DarkSouls1/Parameters/WhiteCoolTimeParam.cs b/src/SoulMemory/DarkSouls1/Parameters/WhiteCoolTimeParam.cs index be781c7..7451f13 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/WhiteCoolTimeParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/WhiteCoolTimeParam.cs @@ -18,44 +18,43 @@ using SoulMemory.Parameters; using System.Diagnostics.CodeAnalysis; -namespace SoulMemory.DarkSouls1.Parameters +namespace SoulMemory.DarkSouls1.Parameters; + +[ExcludeFromCodeCoverage] +public class WhiteCoolTimeParam : BaseParam { - [ExcludeFromCodeCoverage] - public class WhiteCoolTimeParam : BaseParam + public WhiteCoolTimeParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} + + [ParamField(0x0, ParamType.F32)] + public float TimeLimit0 { - public WhiteCoolTimeParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - - [ParamField(0x0, ParamType.F32)] - public float TimeLimit0 - { - get => _TimeLimit0; - set => WriteParamField(ref _TimeLimit0, value); - } - private float _TimeLimit0; - - [ParamField(0x4, ParamType.F32)] - public float TimeLimit1 - { - get => _TimeLimit1; - set => WriteParamField(ref _TimeLimit1, value); - } - private float _TimeLimit1; - - [ParamField(0x8, ParamType.F32)] - public float TimeLimit2 - { - get => _TimeLimit2; - set => WriteParamField(ref _TimeLimit2, value); - } - private float _TimeLimit2; - - [ParamField(0xC, ParamType.F32)] - public float TimeLimit3 - { - get => _TimeLimit3; - set => WriteParamField(ref _TimeLimit3, value); - } - private float _TimeLimit3; + get => _TimeLimit0; + set => WriteParamField(ref _TimeLimit0, value); + } + private float _TimeLimit0; + [ParamField(0x4, ParamType.F32)] + public float TimeLimit1 + { + get => _TimeLimit1; + set => WriteParamField(ref _TimeLimit1, value); } + private float _TimeLimit1; + + [ParamField(0x8, ParamType.F32)] + public float TimeLimit2 + { + get => _TimeLimit2; + set => WriteParamField(ref _TimeLimit2, value); + } + private float _TimeLimit2; + + [ParamField(0xC, ParamType.F32)] + public float TimeLimit3 + { + get => _TimeLimit3; + set => WriteParamField(ref _TimeLimit3, value); + } + private float _TimeLimit3; + } diff --git a/src/SoulMemory/DarkSouls1/Ptde.cs b/src/SoulMemory/DarkSouls1/Ptde.cs index 5f66c58..202c965 100644 --- a/src/SoulMemory/DarkSouls1/Ptde.cs +++ b/src/SoulMemory/DarkSouls1/Ptde.cs @@ -42,406 +42,405 @@ using SoulMemory.Native; using SoulMemory.Parameters; -namespace SoulMemory.DarkSouls1 +namespace SoulMemory.DarkSouls1; + +public class Ptde : IDarkSouls1 { - public class Ptde : IDarkSouls1 + #region Refresh/init/reset ================================================================================================================================ + + private Process? _process; + + private readonly Pointer _gameMan = new Pointer(); + private readonly Pointer _gameDataMan = new Pointer(); + private readonly Pointer _playerIns = new Pointer(); + private readonly Pointer _playerGameData = new Pointer(); + private readonly Pointer _eventFlags = new Pointer(); + private readonly Pointer _inventoryIndices = new Pointer(); + private readonly Pointer _netBonfireDb = new Pointer(); + private readonly Pointer _saveInfo = new Pointer(); + private readonly Pointer _menuMan = new Pointer(); + private readonly Pointer _soloParamMan = new Pointer(); + private readonly Pointer _msgMan = new Pointer(); + private readonly Pointer _loadingScreenItems = new Pointer(); + private List _itemLotParams = new List(); + private List _weaponDescriptionsTable = new List(); + + public Process? GetProcess() => _process; + + public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, "darksouls", InitPointers, ResetPointers); + + public TreeBuilder GetTreeBuilder() { - #region Refresh/init/reset ================================================================================================================================ - - private Process? _process; - - private readonly Pointer _gameMan = new Pointer(); - private readonly Pointer _gameDataMan = new Pointer(); - private readonly Pointer _playerIns = new Pointer(); - private readonly Pointer _playerGameData = new Pointer(); - private readonly Pointer _eventFlags = new Pointer(); - private readonly Pointer _inventoryIndices = new Pointer(); - private readonly Pointer _netBonfireDb = new Pointer(); - private readonly Pointer _saveInfo = new Pointer(); - private readonly Pointer _menuMan = new Pointer(); - private readonly Pointer _soloParamMan = new Pointer(); - private readonly Pointer _msgMan = new Pointer(); - private readonly Pointer _loadingScreenItems = new Pointer(); - private List _itemLotParams = new List(); - private List _weaponDescriptionsTable = new List(); - - public Process? GetProcess() => _process; - - public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, "darksouls", InitPointers, ResetPointers); - - public TreeBuilder GetTreeBuilder() - { - var treeBuilder = new TreeBuilder(); - treeBuilder - .ScanAbsolute("GameMan", "a1 ? ? ? ? 8b 88 ec 0b 00 00 83 79 10 01 0f 94 c0", 1) // 8b 0d ? ? ? ? 80 b9 41 0b 00 00 00 74 0d - .AddPointer(_gameMan, 0, 0); + var treeBuilder = new TreeBuilder(); + treeBuilder + .ScanAbsolute("GameMan", "a1 ? ? ? ? 8b 88 ec 0b 00 00 83 79 10 01 0f 94 c0", 1) // 8b 0d ? ? ? ? 80 b9 41 0b 00 00 00 74 0d + .AddPointer(_gameMan, 0, 0); - treeBuilder - .ScanAbsolute("GameDataMan", "8b 0d ? ? ? ? 8b 41 30 8b 4d 64", 2) - .AddPointer(_gameDataMan, 0, 0) - .AddPointer(_playerGameData, 0, 0, 0x8); + treeBuilder + .ScanAbsolute("GameDataMan", "8b 0d ? ? ? ? 8b 41 30 8b 4d 64", 2) + .AddPointer(_gameDataMan, 0, 0) + .AddPointer(_playerGameData, 0, 0, 0x8); - treeBuilder - .ScanAbsolute("MenuMan", "a1 ? ? ? ? 8b 88 e8 09 00 00 c7 01 80 3e 00 00", 1) - .AddPointer(_menuMan, 0, 0); + treeBuilder + .ScanAbsolute("MenuMan", "a1 ? ? ? ? 8b 88 e8 09 00 00 c7 01 80 3e 00 00", 1) + .AddPointer(_menuMan, 0, 0); - treeBuilder - .ScanAbsolute("WorldChrManImp", "8b 0d ? ? ? ? 8b 71 3c c6 44 24 48 01", 2) - //.CreatePointer(out _worldChrManImp, 0, 0) - .AddPointer(_playerIns, 0, 0, 0x3c); + treeBuilder + .ScanAbsolute("WorldChrManImp", "8b 0d ? ? ? ? 8b 71 3c c6 44 24 48 01", 2) + //.CreatePointer(out _worldChrManImp, 0, 0) + .AddPointer(_playerIns, 0, 0, 0x3c); - treeBuilder - .ScanAbsolute("EventFlags", "56 8B F1 8B 46 1C 50 A1 ? ? ? ? 32 C9", 8) - .AddPointer(_eventFlags, 0, 0, 0); + treeBuilder + .ScanAbsolute("EventFlags", "56 8B F1 8B 46 1C 50 A1 ? ? ? ? 32 C9", 8) + .AddPointer(_eventFlags, 0, 0, 0); - treeBuilder - .ScanAbsolute("InventoryIndices", "8B 4C 24 34 8B 44 24 2C 89 8A 38 01 00 00 8B 90 08 01 00 00 C1 E2 10 0B 90 00 01 00 00 8B C1 8B CD 89 14 AD ? ? ? ?", 36) - .AddPointer(_inventoryIndices, 0); + treeBuilder + .ScanAbsolute("InventoryIndices", "8B 4C 24 34 8B 44 24 2C 89 8A 38 01 00 00 8B 90 08 01 00 00 C1 E2 10 0B 90 00 01 00 00 8B C1 8B CD 89 14 AD ? ? ? ?", 36) + .AddPointer(_inventoryIndices, 0); - treeBuilder - .ScanAbsolute("NetManImp", "a1 ? ? ? ? 8b 80 5c 0b 00 00 8b 40 2c 85 c0 0f", 1) //83 3d ? ? ? ? 00 75 4b a1 - .AddPointer(_netBonfireDb, 0, 0, 0xb48); + treeBuilder + .ScanAbsolute("NetManImp", "a1 ? ? ? ? 8b 80 5c 0b 00 00 8b 40 2c 85 c0 0f", 1) //83 3d ? ? ? ? 00 75 4b a1 + .AddPointer(_netBonfireDb, 0, 0, 0xb48); - treeBuilder - .ScanAbsolute("SaveInfo", "8b 0d ? ? ? ? 39 35 ? ? ? ? 73 05 b9", 2) //00 00 00 00 66 89 0D ? ? ? ? C3 CC CC CC CC CC 83 3D - .AddPointer(_saveInfo, 0); + treeBuilder + .ScanAbsolute("SaveInfo", "8b 0d ? ? ? ? 39 35 ? ? ? ? 73 05 b9", 2) //00 00 00 00 66 89 0D ? ? ? ? C3 CC CC CC CC CC 83 3D + .AddPointer(_saveInfo, 0); - treeBuilder - .ScanAbsolute("SoloParamMan", "83 c4 0c 89 35 ? ? ? ? 5e c3 a3", 5) - .AddPointer(_soloParamMan, 0, 0); + treeBuilder + .ScanAbsolute("SoloParamMan", "83 c4 0c 89 35 ? ? ? ? 5e c3 a3", 5) + .AddPointer(_soloParamMan, 0, 0); - treeBuilder - .ScanAbsolute("LoadingScreenItems", "8b 96 10 01 00 00 8b 04 95 ? ? ? ? 8d be 08 01 00 00", 9) - .AddPointer(_loadingScreenItems, 0); - + treeBuilder + .ScanAbsolute("LoadingScreenItems", "8b 96 10 01 00 00 8b 04 95 ? ? ? ? 8d be 08 01 00 00", 9) + .AddPointer(_loadingScreenItems, 0); + - treeBuilder - .ScanAbsolute("MsgMan", "c7 44 24 18 ff ff ff ff a3 ? ? ? ? e8 ? ? ? ? 8b 4c 24 10", 9) - .AddPointer(_msgMan, 0, 0); + treeBuilder + .ScanAbsolute("MsgMan", "c7 44 24 18 ff ff ff ff a3 ? ? ? ? e8 ? ? ? ? 8b 4c 24 10", 9) + .AddPointer(_msgMan, 0, 0); - //83 c4 0c 89 35 ? ? ? ? 5e c3 a3 + //83 c4 0c 89 35 ? ? ? ? 5e c3 a3 - return treeBuilder; - } - - private void ResetPointers() + return treeBuilder; + } + + private void ResetPointers() + { + _gameMan.Clear(); + _gameDataMan.Clear(); + _playerIns.Clear(); + _playerGameData.Clear(); + _eventFlags.Clear(); + _inventoryIndices.Clear(); + _netBonfireDb.Clear(); + _menuMan.Clear(); + _saveInfo.Clear(); + _soloParamMan.Clear(); + _msgMan.Clear(); + _loadingScreenItems.Clear(); + _itemLotParams.Clear(); + _weaponDescriptionsTable.Clear(); + } + + private ResultErr InitPointers() + { + try { - _gameMan.Clear(); - _gameDataMan.Clear(); - _playerIns.Clear(); - _playerGameData.Clear(); - _eventFlags.Clear(); - _inventoryIndices.Clear(); - _netBonfireDb.Clear(); - _menuMan.Clear(); - _saveInfo.Clear(); - _soloParamMan.Clear(); - _msgMan.Clear(); - _loadingScreenItems.Clear(); - _itemLotParams.Clear(); - _weaponDescriptionsTable.Clear(); + var treeBuilder = GetTreeBuilder(); + return MemoryScanner.TryResolvePointers(treeBuilder, _process); } - - private ResultErr InitPointers() + catch (Exception e) { - try - { - var treeBuilder = GetTreeBuilder(); - return MemoryScanner.TryResolvePointers(treeBuilder, _process); - } - catch (Exception e) - { - return RefreshError.FromException(e); - } + return RefreshError.FromException(e); } - - #endregion - - public int GetAttribute(Attribute attribute) => _playerGameData?.ReadInt32((long)attribute) ?? 0; + } + + #endregion + + public int GetAttribute(Attribute attribute) => _playerGameData?.ReadInt32((long)attribute) ?? 0; - public int GetInGameTimeMilliseconds() => _gameDataMan?.ReadInt32(0x68) ?? 0; + public int GetInGameTimeMilliseconds() => _gameDataMan?.ReadInt32(0x68) ?? 0; - public int NgCount() => _gameDataMan?.ReadInt32(0x3C) ?? 0; + public int NgCount() => _gameDataMan?.ReadInt32(0x3C) ?? 0; - public int GetCurrentSaveSlot() => _gameMan?.ReadInt32(0xA70) ?? 0; + public int GetCurrentSaveSlot() => _gameMan?.ReadInt32(0xA70) ?? 0; - public Vector3f GetPosition() => _playerIns == null ? new Vector3f(0, 0, 0) : new Vector3f(_playerIns.ReadFloat(0xc50), _playerIns.ReadFloat(0xC58), _playerIns.ReadFloat(0xC54)); + public Vector3f GetPosition() => _playerIns == null ? new Vector3f(0, 0, 0) : new Vector3f(_playerIns.ReadFloat(0xc50), _playerIns.ReadFloat(0xC58), _playerIns.ReadFloat(0xC54)); - public int GetPlayerHealth() => _playerIns?.ReadInt32(0x2d4) ?? 0; + public int GetPlayerHealth() => _playerIns?.ReadInt32(0x2d4) ?? 0; - public bool IsPlayerLoaded() => !_playerIns?.IsNullPtr() ?? false; + public bool IsPlayerLoaded() => !_playerIns?.IsNullPtr() ?? false; - public bool IsWarpRequested() + public bool IsWarpRequested() + { + if (_gameMan == null) { - if (_gameMan == null) - { - return false; - } + return false; + } - if (GetPlayerHealth() == 0) - { - return false; - } + if (GetPlayerHealth() == 0) + { + return false; + } - return _gameMan.ReadByte(0x11) == 1; + return _gameMan.ReadByte(0x11) == 1; + } + + + + public List GetInventory() + { + if (_playerGameData == null) + { + return new List(); } + var itemCount = _playerGameData.ReadInt32(0x2e0); + var keyCount = _playerGameData.ReadInt32(0x2e4); + + var listLength = _playerGameData.ReadInt32(0x2c8); + var listStart = _playerGameData.ReadInt32(0x2cc); + var bytes = _process!.ReadProcessMemory(listStart, listLength * 0x1c).Unwrap(); + return ItemReader.GetCurrentInventoryItems(bytes, listLength, itemCount, keyCount); + } - public List GetInventory() - { - if (_playerGameData == null) - { - return new List(); - } - var itemCount = _playerGameData.ReadInt32(0x2e0); - var keyCount = _playerGameData.ReadInt32(0x2e4); - - var listLength = _playerGameData.ReadInt32(0x2c8); - var listStart = _playerGameData.ReadInt32(0x2cc); - - var bytes = _process!.ReadProcessMemory(listStart, listLength * 0x1c).Unwrap(); - return ItemReader.GetCurrentInventoryItems(bytes, listLength, itemCount, keyCount); + public BonfireState GetBonfireState(Bonfire bonfire) + { + if (_netBonfireDb == null) + { + return BonfireState.Unknown; } + var element = _netBonfireDb.CreatePointerFromAddress(0x24); + element = element.CreatePointerFromAddress(0x0); + var netBonfireDbItem = element.CreatePointerFromAddress(0x8); - public BonfireState GetBonfireState(Bonfire bonfire) + //For loop purely to have a max amount of iterations + for (var i = 0; i < 100; i++) { - if (_netBonfireDb == null) + if (netBonfireDbItem.IsNullPtr()) { return BonfireState.Unknown; } - var element = _netBonfireDb.CreatePointerFromAddress(0x24); - element = element.CreatePointerFromAddress(0x0); - var netBonfireDbItem = element.CreatePointerFromAddress(0x8); - - //For loop purely to have a max amount of iterations - for (var i = 0; i < 100; i++) + var bonfireId = netBonfireDbItem.ReadInt32(0x4); + if (bonfireId == (int)bonfire) { - if (netBonfireDbItem.IsNullPtr()) - { - return BonfireState.Unknown; - } - - var bonfireId = netBonfireDbItem.ReadInt32(0x4); - if (bonfireId == (int)bonfire) - { - int bonfireState = netBonfireDbItem.ReadInt32(0x8); - return (BonfireState)bonfireState; - } - - element = element.CreatePointerFromAddress(0x0); - netBonfireDbItem = element.CreatePointerFromAddress(0x8); + int bonfireState = netBonfireDbItem.ReadInt32(0x8); + return (BonfireState)bonfireState; } - return BonfireState.Unknown; + + element = element.CreatePointerFromAddress(0x0); + netBonfireDbItem = element.CreatePointerFromAddress(0x8); } + return BonfireState.Unknown; + } - public bool AreCreditsRolling() + public bool AreCreditsRolling() + { + if(_menuMan == null) { - if(_menuMan == null) - { - return false; - } + return false; + } - var first = _menuMan.ReadInt32(0xb4); - var second = _menuMan.ReadInt32(0xc0); - var third = _menuMan.ReadInt32(0x6c); //This address seems like it turns into a 1 only when you are on the main menu + var first = _menuMan.ReadInt32(0xb4); + var second = _menuMan.ReadInt32(0xc0); + var third = _menuMan.ReadInt32(0x6c); //This address seems like it turns into a 1 only when you are on the main menu - return third == 0 && first == 1 && second == 1; - } + return third == 0 && first == 1 && second == 1; + } - + - public object GetTestValue() - { - WriteWeaponDescription(1105000, "asdf"); - return null!; - } + public object GetTestValue() + { + WriteWeaponDescription(1105000, "asdf"); + return null!; + } - public int GetSaveFileGameTimeMilliseconds(string path, int slot) - { - return Sl2Reader.GetSaveFileIgt(path, slot, true) ?? 0; - } + public int GetSaveFileGameTimeMilliseconds(string path, int slot) + { + return Sl2Reader.GetSaveFileIgt(path, slot, true) ?? 0; + } - #region Event flags ================================================================================================================ + #region Event flags ================================================================================================================ - //Credit to JKAnderson for the event flag reading code, https://github.com/JKAnderson/DS-Gadget + //Credit to JKAnderson for the event flag reading code, https://github.com/JKAnderson/DS-Gadget - private static readonly Dictionary EventFlagGroups = new Dictionary() - { - {"0", 0x00000}, - {"1", 0x00500}, - {"5", 0x05F00}, - {"6", 0x0B900}, - {"7", 0x11300}, - }; - - private static readonly Dictionary EventFlagAreas = new Dictionary() - { - {"000", 00}, - {"100", 01}, - {"101", 02}, - {"102", 03}, - {"110", 04}, - {"120", 05}, - {"121", 06}, - {"130", 07}, - {"131", 08}, - {"132", 09}, - {"140", 10}, - {"141", 11}, - {"150", 12}, - {"151", 13}, - {"160", 14}, - {"170", 15}, - {"180", 16}, - {"181", 17}, - }; - - private int GetEventFlagOffset(uint eventFlagId, out uint mask) + private static readonly Dictionary EventFlagGroups = new Dictionary() + { + {"0", 0x00000}, + {"1", 0x00500}, + {"5", 0x05F00}, + {"6", 0x0B900}, + {"7", 0x11300}, + }; + + private static readonly Dictionary EventFlagAreas = new Dictionary() + { + {"000", 00}, + {"100", 01}, + {"101", 02}, + {"102", 03}, + {"110", 04}, + {"120", 05}, + {"121", 06}, + {"130", 07}, + {"131", 08}, + {"132", 09}, + {"140", 10}, + {"141", 11}, + {"150", 12}, + {"151", 13}, + {"160", 14}, + {"170", 15}, + {"180", 16}, + {"181", 17}, + }; + + private int GetEventFlagOffset(uint eventFlagId, out uint mask) + { + string idString = eventFlagId.ToString("D8"); + if (idString.Length == 8) { - string idString = eventFlagId.ToString("D8"); - if (idString.Length == 8) - { - string group = idString.Substring(0, 1); - string area = idString.Substring(1, 3); - int section = int.Parse(idString.Substring(4, 1)); - int number = int.Parse(idString.Substring(5, 3)); + string group = idString.Substring(0, 1); + string area = idString.Substring(1, 3); + int section = int.Parse(idString.Substring(4, 1)); + int number = int.Parse(idString.Substring(5, 3)); - if (EventFlagGroups.ContainsKey(group) && EventFlagAreas.ContainsKey(area)) - { - int offset = EventFlagGroups[group]; - offset += EventFlagAreas[area] * 0x500; - offset += section * 128; - offset += (number - (number % 32)) / 8; + if (EventFlagGroups.ContainsKey(group) && EventFlagAreas.ContainsKey(area)) + { + int offset = EventFlagGroups[group]; + offset += EventFlagAreas[area] * 0x500; + offset += section * 128; + offset += (number - (number % 32)) / 8; - mask = 0x80000000 >> (number % 32); - return offset; - } + mask = 0x80000000 >> (number % 32); + return offset; } - throw new ArgumentException("Unknown event flag ID: " + eventFlagId); } + throw new ArgumentException("Unknown event flag ID: " + eventFlagId); + } - public bool ReadEventFlag(uint eventFlagId) + public bool ReadEventFlag(uint eventFlagId) + { + if (_eventFlags == null) { - if (_eventFlags == null) - { - return false; - } - - int offset = GetEventFlagOffset(eventFlagId, out uint mask); - uint value = _eventFlags.ReadUInt32(offset); - return (value & mask) != 0; + return false; } - #endregion + int offset = GetEventFlagOffset(eventFlagId, out uint mask); + uint value = _eventFlags.ReadUInt32(offset); + return (value & mask) != 0; + } + + #endregion - //Imported from CapitaineToinon. Thanks! - - public void ResetInventoryIndices() + //Imported from CapitaineToinon. Thanks! + + public void ResetInventoryIndices() + { + if(_inventoryIndices != null) { - if(_inventoryIndices != null) + for (int i = 0; i < 20; i++) { - for (int i = 0; i < 20; i++) - { - _inventoryIndices.WriteUint32(0x4 * i, uint.MaxValue); - } + _inventoryIndices.WriteUint32(0x4 * i, uint.MaxValue); } } + } - /// - /// Returns the savefile's location - /// - /// - public string GetSaveFileLocation() + /// + /// Returns the savefile's location + /// + /// + public string GetSaveFileLocation() + { + if (_saveInfo == null) { - if (_saveInfo == null) - { - return string.Empty; - } + return string.Empty; + } - var myDocuments = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); - var path = Path.Combine(myDocuments, "NBGI\\DarkSouls"); - var variable = _saveInfo.ReadInt32(0x10); - - if (variable != 0) - { - // some old gfwl savefiles are still supported + var myDocuments = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); + var path = Path.Combine(myDocuments, "NBGI\\DarkSouls"); + var variable = _saveInfo.ReadInt32(0x10); + + if (variable != 0) + { + // some old gfwl savefiles are still supported - var stringBuffer = new List(128); - var strPointer = _saveInfo.CreatePointerFromAddress(0x0); - var bytes = strPointer.ReadBytes(128); + var stringBuffer = new List(128); + var strPointer = _saveInfo.CreatePointerFromAddress(0x0); + var bytes = strPointer.ReadBytes(128); - for (int i = 0; i < 128; i += 2) + for (int i = 0; i < 128; i += 2) + { + if (bytes[i] == 0 && bytes[i + 1] == 0) { - if (bytes[i] == 0 && bytes[i + 1] == 0) - { - break; - } - - stringBuffer.Add(bytes[i]); - stringBuffer.Add(bytes[i+1]); + break; } - var glfwId = Encoding.Unicode.GetString(stringBuffer.ToArray()); - path = Path.Combine(path, glfwId); + stringBuffer.Add(bytes[i]); + stringBuffer.Add(bytes[i+1]); } - - return Path.Combine(path, "DRAKS0005.sl2"); - } - public void WriteItemLotParam(int rowId, Action accessor) - { - if (!_itemLotParams.Any()) - { - var paramResCap = _soloParamMan.CreatePointerFromAddress(0x2b8); - var headerStart = paramResCap.CreatePointerFromAddress(0x20); - _itemLotParams = ParamReader.ReadParam(headerStart); - } - - var itemLotParam = _itemLotParams.Find(i => i.Id == rowId); - accessor(itemLotParam); + var glfwId = Encoding.Unicode.GetString(stringBuffer.ToArray()); + path = Path.Combine(path, glfwId); } + + return Path.Combine(path, "DRAKS0005.sl2"); + } - public void WriteWeaponDescription(uint weaponId, string description) + public void WriteItemLotParam(int rowId, Action accessor) + { + if (!_itemLotParams.Any()) { - //weaponName 0x1d0 - 0x30 - //weaponInfo 0x1cc - 0x58 - //weaponCaption 0x1ac - 0x68 + var paramResCap = _soloParamMan.CreatePointerFromAddress(0x2b8); + var headerStart = paramResCap.CreatePointerFromAddress(0x20); + _itemLotParams = ParamReader.ReadParam(headerStart); + } - var weaponDescriptionsPointer = _msgMan.CreatePointerFromAddress(0x68); + var itemLotParam = _itemLotParams.Find(i => i.Id == rowId); + accessor(itemLotParam); + } - if (!_weaponDescriptionsTable.Any()) - { - _weaponDescriptionsTable = ParamReader.GetTextTables(weaponDescriptionsPointer); - } + public void WriteWeaponDescription(uint weaponId, string description) + { + //weaponName 0x1d0 - 0x30 + //weaponInfo 0x1cc - 0x58 + //weaponCaption 0x1ac - 0x68 - var weaponDescription = _weaponDescriptionsTable.Find(i => i.ItemHighRange == weaponId); + var weaponDescriptionsPointer = _msgMan.CreatePointerFromAddress(0x68); - var dataPointer = weaponDescriptionsPointer.CreatePointerFromAddress(0x14); - var textOffset = dataPointer.ReadInt32(weaponDescription.DataOffset * 4); - weaponDescriptionsPointer.ReadUnicodeString(out int length, offset: textOffset); - - var buffer = Encoding.Unicode.GetBytes(description); - var bytes = new byte[length]; - Array.Copy(buffer, bytes, buffer.Length); - weaponDescriptionsPointer.WriteBytes(textOffset, bytes); + if (!_weaponDescriptionsTable.Any()) + { + _weaponDescriptionsTable = ParamReader.GetTextTables(weaponDescriptionsPointer); } - public void SetLoadingScreenItem(int index, uint item) + var weaponDescription = _weaponDescriptionsTable.Find(i => i.ItemHighRange == weaponId); + + var dataPointer = weaponDescriptionsPointer.CreatePointerFromAddress(0x14); + var textOffset = dataPointer.ReadInt32(weaponDescription.DataOffset * 4); + weaponDescriptionsPointer.ReadUnicodeString(out int length, offset: textOffset); + + var buffer = Encoding.Unicode.GetBytes(description); + var bytes = new byte[length]; + Array.Copy(buffer, bytes, buffer.Length); + weaponDescriptionsPointer.WriteBytes(textOffset, bytes); + } + + public void SetLoadingScreenItem(int index, uint item) + { + if (index < 62) { - if (index < 62) - { - _loadingScreenItems.WriteUint32(index * 4, item); - } + _loadingScreenItems.WriteUint32(index * 4, item); } } } diff --git a/src/SoulMemory/DarkSouls1/Remastered.cs b/src/SoulMemory/DarkSouls1/Remastered.cs index 5224c9c..4ca3592 100644 --- a/src/SoulMemory/DarkSouls1/Remastered.cs +++ b/src/SoulMemory/DarkSouls1/Remastered.cs @@ -44,439 +44,439 @@ using SoulMemory.Parameters; using Pointer = SoulMemory.Memory.Pointer; -namespace SoulMemory.DarkSouls1 +namespace SoulMemory.DarkSouls1; + +public class Remastered : IDarkSouls1 { - public class Remastered : IDarkSouls1 + #region Refresh/init/reset ================================================================================================================================ + + private Process? _process; + + private readonly Pointer _gameMan = new Pointer(); + private readonly Pointer _gameDataMan = new Pointer(); + private readonly Pointer _playerIns = new Pointer(); + private readonly Pointer _playerPos = new Pointer(); + private readonly Pointer _playerGameData = new Pointer(); + private readonly Pointer _eventFlags = new Pointer(); + private readonly Pointer _inventoryIndices = new Pointer(); + private readonly Pointer _netBonfireDb = new Pointer(); + private readonly Pointer _menuMan = new Pointer(); + private readonly Pointer _getRegion = new Pointer(); + private readonly Pointer _soloParamMan = new Pointer(); + private readonly Pointer _loadingScreenItems = new Pointer(); + private readonly Pointer _msgMan = new Pointer(); + private DsrVersion _version; + private int? _steamId3; + private bool? _isJapanese; + private List _itemLotParams = new List(); + private List _weaponDescriptionsTable = new List(); + + private long _playerCtrlOffset = 0x68; + private long _currentSaveSlotOffset = 0xaa0; + + private enum DsrVersion { - #region Refresh/init/reset ================================================================================================================================ - - private Process? _process; - - private readonly Pointer _gameMan = new Pointer(); - private readonly Pointer _gameDataMan = new Pointer(); - private readonly Pointer _playerIns = new Pointer(); - private readonly Pointer _playerPos = new Pointer(); - private readonly Pointer _playerGameData = new Pointer(); - private readonly Pointer _eventFlags = new Pointer(); - private readonly Pointer _inventoryIndices = new Pointer(); - private readonly Pointer _netBonfireDb = new Pointer(); - private readonly Pointer _menuMan = new Pointer(); - private readonly Pointer _getRegion = new Pointer(); - private readonly Pointer _soloParamMan = new Pointer(); - private readonly Pointer _loadingScreenItems = new Pointer(); - private readonly Pointer _msgMan = new Pointer(); - private DsrVersion _version; - private int? _steamId3; - private bool? _isJapanese; - private List _itemLotParams = new List(); - private List _weaponDescriptionsTable = new List(); - - private long _playerCtrlOffset = 0x68; - private long _currentSaveSlotOffset = 0xaa0; - - private enum DsrVersion - { - [Version("1.0.0.0")] - V101, - [Version("1.3.0.0")] - V130, - [Version("1.3.1.0")] - V131, - [Version("unknown")] - Unknown - } + [Version("1.0.0.0")] + V101, + [Version("1.3.0.0")] + V130, + [Version("1.3.1.0")] + V131, + [Version("unknown")] + Unknown + } - public Process? GetProcess() => _process; + public Process? GetProcess() => _process; - public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, "darksoulsremastered", InitPointers, ResetPointers); + public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, "darksoulsremastered", InitPointers, ResetPointers); - private void ResetPointers() - { - _gameMan.Clear(); - _gameDataMan.Clear(); - _playerIns.Clear(); - _playerPos.Clear(); - _playerGameData.Clear(); - _eventFlags.Clear(); - _inventoryIndices.Clear(); - _netBonfireDb.Clear(); - _menuMan.Clear(); - _getRegion.Clear(); - _soloParamMan.Clear(); - _loadingScreenItems.Clear(); - _msgMan.Clear(); - _itemLotParams.Clear(); - _weaponDescriptionsTable.Clear(); - _steamId3 = null; - _isJapanese = null; - _version = DsrVersion.Unknown; - } + private void ResetPointers() + { + _gameMan.Clear(); + _gameDataMan.Clear(); + _playerIns.Clear(); + _playerPos.Clear(); + _playerGameData.Clear(); + _eventFlags.Clear(); + _inventoryIndices.Clear(); + _netBonfireDb.Clear(); + _menuMan.Clear(); + _getRegion.Clear(); + _soloParamMan.Clear(); + _loadingScreenItems.Clear(); + _msgMan.Clear(); + _itemLotParams.Clear(); + _weaponDescriptionsTable.Clear(); + _steamId3 = null; + _isJapanese = null; + _version = DsrVersion.Unknown; + } - private ResultErr InitPointers() + private ResultErr InitPointers() + { + try { - try + if (_process?.MainModule == null) { - if (_process?.MainModule == null) - { - return Result.Err(new RefreshError(RefreshErrorReason.MainModuleNull)); - } - - _version = _process.MainModule.FileVersionInfo.ResolveVersion(); - ResolveGameVersionSpecificOffsets(_version); - var treeBuilder = GetTreeBuilder(); - var result = MemoryScanner.TryResolvePointers(treeBuilder, _process); - if(result.IsErr) - { - return result; - } - - _steamId3 = GetSteamId3(); - _isJapanese = IsJapanese(); - - return Result.Ok(); + return Result.Err(new RefreshError(RefreshErrorReason.MainModuleNull)); } - catch (Exception e) + + _version = _process.MainModule.FileVersionInfo.ResolveVersion(); + ResolveGameVersionSpecificOffsets(_version); + var treeBuilder = GetTreeBuilder(); + var result = MemoryScanner.TryResolvePointers(treeBuilder, _process); + if(result.IsErr) { - return RefreshError.FromException(e); + return result; } + + _steamId3 = GetSteamId3(); + _isJapanese = IsJapanese(); + + return Result.Ok(); + } + catch (Exception e) + { + return RefreshError.FromException(e); } + } - private void ResolveGameVersionSpecificOffsets(DsrVersion version) + private void ResolveGameVersionSpecificOffsets(DsrVersion version) + { + switch (version) { - switch (version) - { - default: - _playerCtrlOffset = 0x68; - _currentSaveSlotOffset = 0xaa0; - break; + default: + _playerCtrlOffset = 0x68; + _currentSaveSlotOffset = 0xaa0; + break; - case DsrVersion.V101: - _playerCtrlOffset = 0x48; - _currentSaveSlotOffset = 0xa90; - break; + case DsrVersion.V101: + _playerCtrlOffset = 0x48; + _currentSaveSlotOffset = 0xa90; + break; - } - Console.WriteLine(_playerCtrlOffset); } + Console.WriteLine(_playerCtrlOffset); + } - public TreeBuilder GetTreeBuilder() - { - var treeBuilder = new TreeBuilder(); - treeBuilder - .ScanRelative("GameMan", "48 8b 05 ? ? ? ? c6 40 18 00", 3, 7) - .AddPointer(_gameMan, 0) - ; - - treeBuilder - .ScanRelative("GameDataMan", "48 8b 05 ? ? ? ? 48 8b 50 10 48 89 54 24 60", 3, 7) - .AddPointer(_gameDataMan, 0) - .AddPointer(_playerGameData, 0, 0x10) - ; - - treeBuilder - .ScanRelative("WorldChrManImp", "48 8b 0d ? ? ? ? 0f 28 f1 48 85 c9 74 ? 48 89 7c", 3, 7) - .AddPointer(_playerIns, 0, 0x68) - .AddPointer(_playerPos, 0, 0x68, _playerCtrlOffset, 0x28) - ; - - treeBuilder - .ScanRelative("EventFlags", "48 8B 0D ? ? ? ? 99 33 C2 45 33 C0 2B C2 8D 50 F6", 3, 7) - .AddPointer(_eventFlags, 0, 0) - ; - - treeBuilder - .ScanRelative("InventoryIndices", "48 8D 15 ? ? ? ? C1 E1 10 49 8B C6 41 0B 8F 14 02 00 00 44 8B C6 42 89 0C B2 41 8B D6 49 8B CF", 3, 7) - .AddPointer(_inventoryIndices) - ; - - treeBuilder - .ScanRelative("FrpgNetManImp", "48 83 3d ? ? ? ? 00 48 8b f1", 3, 8) - .AddPointer(_netBonfireDb, 0x0, 0xb68) - ; - - treeBuilder - .ScanRelative("MenuMan", "48 8b 15 ? ? ? ? 89 82 7c 08 00 00", 3, 7) - .AddPointer(_menuMan, 0) - ; - - treeBuilder - .ScanAbsolute("GetRegion", "40 53 48 83 ec 20 bb 02 00 00 00", 0) - .AddPointer(_getRegion, 0) - ; - - treeBuilder - .ScanRelative("SoloParamMan", "4C 8B 05 ? ? ? ? 48 63 C9 48 8D 04 C9", 3, 7) - .AddPointer(_soloParamMan, 0) - ; - - treeBuilder - .ScanRelative("LoadingScreenItems", "48 8d 0d ? ? ? ? 8b 0c 81 89 8f 20 02 00 00", 3, 7) - .AddPointer(_loadingScreenItems) - ; - - treeBuilder - .ScanRelative("MsgMan", "48 8b 35 ? ? ? ? 33 db 8b f9 8b ea 83 f9 5c", 3, 7) - .AddPointer(_msgMan, 0) - ; - - return treeBuilder; - } - #endregion + public TreeBuilder GetTreeBuilder() + { + var treeBuilder = new TreeBuilder(); + treeBuilder + .ScanRelative("GameMan", "48 8b 05 ? ? ? ? c6 40 18 00", 3, 7) + .AddPointer(_gameMan, 0) + ; + + treeBuilder + .ScanRelative("GameDataMan", "48 8b 05 ? ? ? ? 48 8b 50 10 48 89 54 24 60", 3, 7) + .AddPointer(_gameDataMan, 0) + .AddPointer(_playerGameData, 0, 0x10) + ; + + treeBuilder + .ScanRelative("WorldChrManImp", "48 8b 0d ? ? ? ? 0f 28 f1 48 85 c9 74 ? 48 89 7c", 3, 7) + .AddPointer(_playerIns, 0, 0x68) + .AddPointer(_playerPos, 0, 0x68, _playerCtrlOffset, 0x28) + ; + + treeBuilder + .ScanRelative("EventFlags", "48 8B 0D ? ? ? ? 99 33 C2 45 33 C0 2B C2 8D 50 F6", 3, 7) + .AddPointer(_eventFlags, 0, 0) + ; + + treeBuilder + .ScanRelative("InventoryIndices", "48 8D 15 ? ? ? ? C1 E1 10 49 8B C6 41 0B 8F 14 02 00 00 44 8B C6 42 89 0C B2 41 8B D6 49 8B CF", 3, 7) + .AddPointer(_inventoryIndices) + ; + + treeBuilder + .ScanRelative("FrpgNetManImp", "48 83 3d ? ? ? ? 00 48 8b f1", 3, 8) + .AddPointer(_netBonfireDb, 0x0, 0xb68) + ; + + treeBuilder + .ScanRelative("MenuMan", "48 8b 15 ? ? ? ? 89 82 7c 08 00 00", 3, 7) + .AddPointer(_menuMan, 0) + ; + + treeBuilder + .ScanAbsolute("GetRegion", "40 53 48 83 ec 20 bb 02 00 00 00", 0) + .AddPointer(_getRegion, 0) + ; - public int GetAttribute(Attribute attribute) => _playerGameData?.ReadInt32(0x8 + (long)attribute) ?? 0; + treeBuilder + .ScanRelative("SoloParamMan", "4C 8B 05 ? ? ? ? 48 63 C9 48 8D 04 C9", 3, 7) + .AddPointer(_soloParamMan, 0) + ; + + treeBuilder + .ScanRelative("LoadingScreenItems", "48 8d 0d ? ? ? ? 8b 0c 81 89 8f 20 02 00 00", 3, 7) + .AddPointer(_loadingScreenItems) + ; + + treeBuilder + .ScanRelative("MsgMan", "48 8b 35 ? ? ? ? 33 db 8b f9 8b ea 83 f9 5c", 3, 7) + .AddPointer(_msgMan, 0) + ; + + return treeBuilder; + } + #endregion + + public int GetAttribute(Attribute attribute) => _playerGameData?.ReadInt32(0x8 + (long)attribute) ?? 0; - public int GetInGameTimeMilliseconds() => _gameDataMan?.ReadInt32(0xa4) ?? 0; + public int GetInGameTimeMilliseconds() => _gameDataMan?.ReadInt32(0xa4) ?? 0; - public int NgCount() => _gameDataMan?.ReadInt32(0x78) ?? 0; + public int NgCount() => _gameDataMan?.ReadInt32(0x78) ?? 0; - public int GetCurrentSaveSlot() => _gameMan?.ReadInt32(_currentSaveSlotOffset) ?? 0; + public int GetCurrentSaveSlot() => _gameMan?.ReadInt32(_currentSaveSlotOffset) ?? 0; - public Vector3f GetPosition() => _playerPos == null ? new Vector3f(0, 0, 0) : new Vector3f(_playerPos.ReadFloat(0x10), _playerPos.ReadFloat(0x14), _playerPos.ReadFloat(0x18)); + public Vector3f GetPosition() => _playerPos == null ? new Vector3f(0, 0, 0) : new Vector3f(_playerPos.ReadFloat(0x10), _playerPos.ReadFloat(0x14), _playerPos.ReadFloat(0x18)); - public int GetPlayerHealth() => _playerIns?.ReadInt32(0x3e8) ?? 0; + public int GetPlayerHealth() => _playerIns?.ReadInt32(0x3e8) ?? 0; - public bool IsPlayerLoaded() => !_playerIns?.IsNullPtr() ?? false; + public bool IsPlayerLoaded() => !_playerIns?.IsNullPtr() ?? false; - public bool IsWarpRequested() + public bool IsWarpRequested() + { + if (_gameMan == null) { - if (_gameMan == null) - { - return false; - } - - if (GetPlayerHealth() == 0) - { - return false; - } + return false; + } - return _gameMan.ReadByte(0x19) == 1; + if (GetPlayerHealth() == 0) + { + return false; } - - public bool AreCreditsRolling() + return _gameMan.ReadByte(0x19) == 1; + } + + + public bool AreCreditsRolling() + { + if(_menuMan == null) { - if(_menuMan == null) - { - return false; - } + return false; + } + + var first = _menuMan.ReadInt32(0xc8); + var second = _menuMan.ReadInt32(0xd4); + var third = _menuMan.ReadInt32(0x80); //This address seems like it turns into a 1 only when you are on the main menu - var first = _menuMan.ReadInt32(0xc8); - var second = _menuMan.ReadInt32(0xd4); - var third = _menuMan.ReadInt32(0x80); //This address seems like it turns into a 1 only when you are on the main menu + return third == 0 && first == 1 && second == 1; + } + - return third == 0 && first == 1 && second == 1; + public List GetInventory() + { + if (_playerGameData == null) + { + return new List(); } + //Path: GameDataMan->hostPlayerGameData->equipGameData.equipInventoryData.equipInventoryDataSub + const long equipInventoryDataSubOffset = 0x3b0; - public List GetInventory() - { - if (_playerGameData == null) - { - return new List(); - } - - //Path: GameDataMan->hostPlayerGameData->equipGameData.equipInventoryData.equipInventoryDataSub - const long equipInventoryDataSubOffset = 0x3b0; + var itemCount = _playerGameData.ReadInt32(equipInventoryDataSubOffset + 48); + var keyCount = _playerGameData.ReadInt32(equipInventoryDataSubOffset + 52); - var itemCount = _playerGameData.ReadInt32(equipInventoryDataSubOffset + 48); - var keyCount = _playerGameData.ReadInt32(equipInventoryDataSubOffset + 52); + //Struct has 2 lists, list 1 seems to be a subset of list 2, the lists start at the same address.. + //I think the first list only contains keys. The "master" list contains both. + var itemList2Len = _playerGameData.ReadInt32(equipInventoryDataSubOffset); + var itemList2 = _playerGameData.ReadInt32(equipInventoryDataSubOffset + 40); - //Struct has 2 lists, list 1 seems to be a subset of list 2, the lists start at the same address.. - //I think the first list only contains keys. The "master" list contains both. - var itemList2Len = _playerGameData.ReadInt32(equipInventoryDataSubOffset); - var itemList2 = _playerGameData.ReadInt32(equipInventoryDataSubOffset + 40); + var bytes = _process!.ReadProcessMemory(itemList2, itemList2Len * 0x1c).Unwrap(); + var items = ItemReader.GetCurrentInventoryItems(bytes, itemList2Len, itemCount, keyCount); - var bytes = _process!.ReadProcessMemory(itemList2, itemList2Len * 0x1c).Unwrap(); - var items = ItemReader.GetCurrentInventoryItems(bytes, itemList2Len, itemCount, keyCount); + return items; + } - return items; + public BonfireState GetBonfireState(Bonfire bonfire) + { + if (_netBonfireDb == null) + { + return BonfireState.Unknown; } - public BonfireState GetBonfireState(Bonfire bonfire) + var element = _netBonfireDb.CreatePointerFromAddress(0x28); + element = element.CreatePointerFromAddress(0x0); + var netBonfireDbItem = element.CreatePointerFromAddress(0x10); + + //For loop purely to have a max amount of iterations + for (var i = 0; i < 100; i++) { - if (_netBonfireDb == null) + if (netBonfireDbItem.IsNullPtr()) { return BonfireState.Unknown; } - var element = _netBonfireDb.CreatePointerFromAddress(0x28); - element = element.CreatePointerFromAddress(0x0); - var netBonfireDbItem = element.CreatePointerFromAddress(0x10); - - //For loop purely to have a max amount of iterations - for (var i = 0; i < 100; i++) - { - if (netBonfireDbItem.IsNullPtr()) - { - return BonfireState.Unknown; - } - - var bonfireId = netBonfireDbItem.ReadInt32(0x8); - if (bonfireId == (int)bonfire) - { - int bonfireState = netBonfireDbItem.ReadInt32(0xc); - return (BonfireState)bonfireState; - } - - element = element.CreatePointerFromAddress(0x0); - netBonfireDbItem = element.CreatePointerFromAddress(0x10); + var bonfireId = netBonfireDbItem.ReadInt32(0x8); + if (bonfireId == (int)bonfire) + { + int bonfireState = netBonfireDbItem.ReadInt32(0xc); + return (BonfireState)bonfireState; } - return BonfireState.Unknown; - } - public int GetSaveFileGameTimeMilliseconds(string path, int slot) - { - return Sl2Reader.GetSaveFileIgt(path, slot, false) ?? 0; + element = element.CreatePointerFromAddress(0x0); + netBonfireDbItem = element.CreatePointerFromAddress(0x10); } + return BonfireState.Unknown; + } - #region eventflags + public int GetSaveFileGameTimeMilliseconds(string path, int slot) + { + return Sl2Reader.GetSaveFileIgt(path, slot, false) ?? 0; + } - //Credit to JKAnderson for the event flag reading code, https://github.com/JKAnderson/DSR-Gadget + #region eventflags - private static readonly Dictionary EventFlagGroups = new Dictionary() - { - {"0", 0x00000}, - {"1", 0x00500}, - {"5", 0x05F00}, - {"6", 0x0B900}, - {"7", 0x11300}, - }; - - private static readonly Dictionary EventFlagAreas = new Dictionary() - { - {"000", 00}, - {"100", 01}, - {"101", 02}, - {"102", 03}, - {"110", 04}, - {"120", 05}, - {"121", 06}, - {"130", 07}, - {"131", 08}, - {"132", 09}, - {"140", 10}, - {"141", 11}, - {"150", 12}, - {"151", 13}, - {"160", 14}, - {"170", 15}, - {"180", 16}, - {"181", 17}, - }; - - private int GetEventFlagOffset(uint eventFlagId, out uint mask) + //Credit to JKAnderson for the event flag reading code, https://github.com/JKAnderson/DSR-Gadget + + private static readonly Dictionary EventFlagGroups = new Dictionary() + { + {"0", 0x00000}, + {"1", 0x00500}, + {"5", 0x05F00}, + {"6", 0x0B900}, + {"7", 0x11300}, + }; + + private static readonly Dictionary EventFlagAreas = new Dictionary() + { + {"000", 00}, + {"100", 01}, + {"101", 02}, + {"102", 03}, + {"110", 04}, + {"120", 05}, + {"121", 06}, + {"130", 07}, + {"131", 08}, + {"132", 09}, + {"140", 10}, + {"141", 11}, + {"150", 12}, + {"151", 13}, + {"160", 14}, + {"170", 15}, + {"180", 16}, + {"181", 17}, + }; + + private int GetEventFlagOffset(uint eventFlagId, out uint mask) + { + string idString = eventFlagId.ToString("D8"); + if (idString.Length == 8) { - string idString = eventFlagId.ToString("D8"); - if (idString.Length == 8) + string group = idString.Substring(0, 1); + string area = idString.Substring(1, 3); + int section = Int32.Parse(idString.Substring(4, 1)); + int number = Int32.Parse(idString.Substring(5, 3)); + + if (EventFlagGroups.ContainsKey(group) && EventFlagAreas.ContainsKey(area)) { - string group = idString.Substring(0, 1); - string area = idString.Substring(1, 3); - int section = Int32.Parse(idString.Substring(4, 1)); - int number = Int32.Parse(idString.Substring(5, 3)); - - if (EventFlagGroups.ContainsKey(group) && EventFlagAreas.ContainsKey(area)) - { - int offset = EventFlagGroups[group]; - offset += EventFlagAreas[area] * 0x500; - offset += section * 128; - offset += (number - (number % 32)) / 8; - - mask = 0x80000000 >> (number % 32); - return offset; - } + int offset = EventFlagGroups[group]; + offset += EventFlagAreas[area] * 0x500; + offset += section * 128; + offset += (number - (number % 32)) / 8; + + mask = 0x80000000 >> (number % 32); + return offset; } - throw new ArgumentException("Unknown event flag ID: " + eventFlagId); } + throw new ArgumentException("Unknown event flag ID: " + eventFlagId); + } - public bool ReadEventFlag(uint eventFlagId) + public bool ReadEventFlag(uint eventFlagId) + { + if (_eventFlags == null) { - if (_eventFlags == null) - { - return false; - } - - int offset = GetEventFlagOffset(eventFlagId, out uint mask); - uint value = _eventFlags.ReadUInt32(offset); - return (value & mask) != 0; + return false; } - #endregion - //Imported from CapitaineToinon. Thanks! + int offset = GetEventFlagOffset(eventFlagId, out uint mask); + uint value = _eventFlags.ReadUInt32(offset); + return (value & mask) != 0; + } + #endregion + + //Imported from CapitaineToinon. Thanks! - public void ResetInventoryIndices() + public void ResetInventoryIndices() + { + if (_inventoryIndices != null) { - if (_inventoryIndices != null) + for (int i = 0; i < 20; i++) { - for (int i = 0; i < 20; i++) - { - _inventoryIndices.WriteUint32(0x4 * i, uint.MaxValue); - } + _inventoryIndices.WriteUint32(0x4 * i, uint.MaxValue); } } + } - /// - /// Returns the savefile's location - /// - /// - public string? GetSaveFileLocation() + /// + /// Returns the savefile's location + /// + /// + public string? GetSaveFileLocation() + { + // values may be null if called before hook, in which + // case we can't guess the savefile location + if (_isJapanese == null || _steamId3 == null) { - // values may be null if called before hook, in which - // case we can't guess the savefile location - if (_isJapanese == null || _steamId3 == null) - { - return null; - } - - if (_steamId3.Value == 0) - { - _steamId3 = GetSteamId3(); - } + return null; + } - if (_steamId3.Value == 0) - { - return string.Empty; - } - - var myDocuments = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); - var japan = Path.Combine(myDocuments, "FromSoftware\\DARK SOULS REMASTERED"); - var path = Path.Combine(myDocuments, "NBGI\\DARK SOULS REMASTERED"); + if (_steamId3.Value == 0) + { + _steamId3 = GetSteamId3(); + } - if(_isJapanese.Value) - { - path = japan; - } - - path = Path.Combine(path, $"{_steamId3}"); - return Path.Combine(path, "DRAKS0005.sl2"); + if (_steamId3.Value == 0) + { + return string.Empty; } + + var myDocuments = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); + var japan = Path.Combine(myDocuments, "FromSoftware\\DARK SOULS REMASTERED"); + var path = Path.Combine(myDocuments, "NBGI\\DARK SOULS REMASTERED"); - /// - /// SteamID3 used for savefile location - /// - private int GetSteamId3() + if(_isJapanese.Value) { - string name = "steam_api64.dll"; - ProcessModule? module = null; + path = japan; + } + + path = Path.Combine(path, $"{_steamId3}"); + return Path.Combine(path, "DRAKS0005.sl2"); + } - foreach (ProcessModule item in _process!.Modules) - { - if (item.ModuleName == name) - { - module = item; - break; - } - } + /// + /// SteamID3 used for savefile location + /// + private int GetSteamId3() + { + string name = "steam_api64.dll"; + ProcessModule? module = null; - if (module == null) + foreach (ProcessModule item in _process!.Modules) + { + if (item.ModuleName == name) { - throw new DllNotFoundException($"${name} not found"); + module = item; + break; } + } - return _process.ReadMemory(module.BaseAddress.ToInt64() + 0x38E58).Unwrap(); + if (module == null) + { + throw new DllNotFoundException($"${name} not found"); } + return _process.ReadMemory(module.BaseAddress.ToInt64() + 0x38E58).Unwrap(); + } + - private const string IsJapaneseAsm = @"0: 48 83 ec 38 sub rsp,0x38 + private const string IsJapaneseAsm = @"0: 48 83 ec 38 sub rsp,0x38 4: 49 be fa fa fa fa fa movabs r14,0xfafafafafafafafa b: fa fa fa e: 41 ff d6 call r14 @@ -487,101 +487,100 @@ private int GetSteamId3() 22: c3 ret"; - private readonly Regex _assemblyRegex = new Regex(@"^[\w\d]+:\s+((?:[\w\d][\w\d] ?)+)"); + private readonly Regex _assemblyRegex = new Regex(@"^[\w\d]+:\s+((?:[\w\d][\w\d] ?)+)"); - /// - /// Convert string returned by https://defuse.ca/online-x86-assembler.htm to byte array - /// Code by https://github.com/JKAnderson - /// - /// out of https://defuse.ca/online-x86-assembler.htm - /// byte code - private byte[] LoadDefuseOutput(string lines) + /// + /// Convert string returned by https://defuse.ca/online-x86-assembler.htm to byte array + /// Code by https://github.com/JKAnderson + /// + /// out of https://defuse.ca/online-x86-assembler.htm + /// byte code + private byte[] LoadDefuseOutput(string lines) + { + List bytes = new List(); + foreach (string line in Regex.Split(lines, "[\r\n]+")) { - List bytes = new List(); - foreach (string line in Regex.Split(lines, "[\r\n]+")) - { - Match match = _assemblyRegex.Match(line); - string hexes = match.Groups[1].Value; - foreach (Match hex in Regex.Matches(hexes, @"\S+")) - bytes.Add(Byte.Parse(hex.Value, System.Globalization.NumberStyles.AllowHexSpecifier)); - } - return bytes.ToArray(); + Match match = _assemblyRegex.Match(line); + string hexes = match.Groups[1].Value; + foreach (Match hex in Regex.Matches(hexes, @"\S+")) + bytes.Add(Byte.Parse(hex.Value, System.Globalization.NumberStyles.AllowHexSpecifier)); } - + return bytes.ToArray(); + } + - /// - /// Returns true if the game currently is in Japanese - /// - /// bool - private bool IsJapanese() - { - // Calls DarkSoulsRemastered.exe+C8820 (1.03, different address in 1.03.1) and then writes the value of eax - // to a given address. If that value is 0, the game is in Japanese. - // That function uses the steam64 api underneath so we have no other - // choice but calling that function manually - - var getRegionAddress = _getRegion.BaseAddress; - IntPtr callPtr = (IntPtr)getRegionAddress; - IntPtr resultPtr = _process!.Allocate(0x4); - - // build asm and replace the function pointers - byte[] asm = LoadDefuseOutput(IsJapaneseAsm); - byte[] callBytes = BitConverter.GetBytes((ulong)callPtr); - Array.Copy(callBytes, 0, asm, 0x6, 8); - byte[] resultBytes = BitConverter.GetBytes((ulong)resultPtr); - Array.Copy(resultBytes, 0, asm, 0x13, 8); - - _process!.Execute(asm); - var isJapanese = _process!.ReadMemory(resultPtr.ToInt64()).Unwrap() == 0; - _process!.Free(resultPtr); - return isJapanese; - } + /// + /// Returns true if the game currently is in Japanese + /// + /// bool + private bool IsJapanese() + { + // Calls DarkSoulsRemastered.exe+C8820 (1.03, different address in 1.03.1) and then writes the value of eax + // to a given address. If that value is 0, the game is in Japanese. + // That function uses the steam64 api underneath so we have no other + // choice but calling that function manually + + var getRegionAddress = _getRegion.BaseAddress; + IntPtr callPtr = (IntPtr)getRegionAddress; + IntPtr resultPtr = _process!.Allocate(0x4); + + // build asm and replace the function pointers + byte[] asm = LoadDefuseOutput(IsJapaneseAsm); + byte[] callBytes = BitConverter.GetBytes((ulong)callPtr); + Array.Copy(callBytes, 0, asm, 0x6, 8); + byte[] resultBytes = BitConverter.GetBytes((ulong)resultPtr); + Array.Copy(resultBytes, 0, asm, 0x13, 8); + + _process!.Execute(asm); + var isJapanese = _process!.ReadMemory(resultPtr.ToInt64()).Unwrap() == 0; + _process!.Free(resultPtr); + return isJapanese; + } - public void SetLoadingScreenItem(int index, uint item) - { - _loadingScreenItems.WriteUint32(index * 4, item); - } + public void SetLoadingScreenItem(int index, uint item) + { + _loadingScreenItems.WriteUint32(index * 4, item); + } + + public object GetTestValue() + { + return this; + } - public object GetTestValue() + /// + /// Provides an accessor to an itemLotParam. Do not capture this object; it's lifecycle will be managed efficiently. Only modify the itemlots via this accessor. + /// + public void WriteItemLotParam(int rowId, Action accessor) + { + if (!_itemLotParams.Any()) { - return this; + var paramResCap = _soloParamMan.CreatePointerFromAddress(0x570); + var headerStart = paramResCap.CreatePointerFromAddress(0x38); + _itemLotParams = ParamReader.ReadParam(headerStart); } - /// - /// Provides an accessor to an itemLotParam. Do not capture this object; it's lifecycle will be managed efficiently. Only modify the itemlots via this accessor. - /// - public void WriteItemLotParam(int rowId, Action accessor) - { - if (!_itemLotParams.Any()) - { - var paramResCap = _soloParamMan.CreatePointerFromAddress(0x570); - var headerStart = paramResCap.CreatePointerFromAddress(0x38); - _itemLotParams = ParamReader.ReadParam(headerStart); - } + var itemLotParam = _itemLotParams.Find(i => i.Id == rowId); + accessor(itemLotParam); + } - var itemLotParam = _itemLotParams.Find(i => i.Id == rowId); - accessor(itemLotParam); - } + public void WriteWeaponDescription(uint weaponId, string description) + { + var weaponDescriptionsPointer = _msgMan.CreatePointerFromAddress(0x358); - public void WriteWeaponDescription(uint weaponId, string description) + if (!_weaponDescriptionsTable.Any()) { - var weaponDescriptionsPointer = _msgMan.CreatePointerFromAddress(0x358); - - if (!_weaponDescriptionsTable.Any()) - { - _weaponDescriptionsTable = ParamReader.GetTextTables(weaponDescriptionsPointer); - } + _weaponDescriptionsTable = ParamReader.GetTextTables(weaponDescriptionsPointer); + } - var weaponDescription = _weaponDescriptionsTable.Find(i => i.ItemHighRange == weaponId); + var weaponDescription = _weaponDescriptionsTable.Find(i => i.ItemHighRange == weaponId); - var dataOffset = weaponDescriptionsPointer.ReadInt32(0x14); - var textOffset = weaponDescriptionsPointer.ReadInt32(dataOffset + weaponDescription.DataOffset * 4); - weaponDescriptionsPointer.ReadUnicodeString(out int length, offset: textOffset); + var dataOffset = weaponDescriptionsPointer.ReadInt32(0x14); + var textOffset = weaponDescriptionsPointer.ReadInt32(dataOffset + weaponDescription.DataOffset * 4); + weaponDescriptionsPointer.ReadUnicodeString(out int length, offset: textOffset); - var buffer = Encoding.Unicode.GetBytes(description); - var bytes = new byte[length]; - Array.Copy(buffer, bytes, buffer.Length); - weaponDescriptionsPointer.WriteBytes(textOffset, bytes); - } + var buffer = Encoding.Unicode.GetBytes(description); + var bytes = new byte[length]; + Array.Copy(buffer, bytes, buffer.Length); + weaponDescriptionsPointer.WriteBytes(textOffset, bytes); } } diff --git a/src/SoulMemory/DarkSouls1/Sl2Reader.cs b/src/SoulMemory/DarkSouls1/Sl2Reader.cs index 4c1f461..cca6329 100644 --- a/src/SoulMemory/DarkSouls1/Sl2Reader.cs +++ b/src/SoulMemory/DarkSouls1/Sl2Reader.cs @@ -20,128 +20,127 @@ using System.Linq; using System.Security.Cryptography; -namespace SoulMemory.DarkSouls1 +namespace SoulMemory.DarkSouls1; + +//Imported from CapitaineToinon. Thanks! + +/* +Encryption + +DS1: + Files are not encrypted +DSR: + Each USERDATA file is individually AES-128-CBC encrypted. + Key: 01 23 45 67 89 AB CD EF FE DC BA 98 76 54 32 10 + IV: First 16 bytes of each file +*/ +internal static class Sl2Reader { - //Imported from CapitaineToinon. Thanks! - - /* - Encryption - - DS1: - Files are not encrypted - DSR: - Each USERDATA file is individually AES-128-CBC encrypted. - Key: 01 23 45 67 89 AB CD EF FE DC BA 98 76 54 32 10 - IV: First 16 bytes of each file - */ - internal static class Sl2Reader + private static readonly byte[] AesKey = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF, 0xFE, 0xDC, 0xBA, 0x98, 0x76, 0x54, 0x32, 0x10 }; + + /// + /// Read the IGT from an SL2 file + /// + /// path to the SL2 file + /// the slot to read the IGT from + /// The game version + /// IGT or -1 if sometimes failed + public static int? GetSaveFileIgt(string path, int slot, bool ptde) { - private static readonly byte[] AesKey = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF, 0xFE, 0xDC, 0xBA, 0x98, 0x76, 0x54, 0x32, 0x10 }; - - /// - /// Read the IGT from an SL2 file - /// - /// path to the SL2 file - /// the slot to read the IGT from - /// The game version - /// IGT or -1 if sometimes failed - public static int? GetSaveFileIgt(string path, int slot, bool ptde) + int? igt = null; + + // Path may be null if this function is called before + // the game was hooked + if (path == null) { - int? igt = null; + return igt; + } - // Path may be null if this function is called before - // the game was hooked - if (path == null) + try + { + if (IsReadable(path)) { - return igt; - } + if (ptde) + { + byte[] file = File.ReadAllBytes(path); + int saveSlotSize = 0x60020; - try - { - if (IsReadable(path)) + // Seems like GFWL files have a different slot size + if (file.Length != 4326432) + saveSlotSize = 0x60190; + + int igtOffset = 0x2dc + (saveSlotSize * slot); + igt = BitConverter.ToInt32(file, igtOffset); + } + else { - if (ptde) - { - byte[] file = File.ReadAllBytes(path); - int saveSlotSize = 0x60020; - - // Seems like GFWL files have a different slot size - if (file.Length != 4326432) - saveSlotSize = 0x60190; - - int igtOffset = 0x2dc + (saveSlotSize * slot); - igt = BitConverter.ToInt32(file, igtOffset); - } - else - { - // Each USERDATA file is individually AES - 128 - CBC encrypted. - byte[] file = File.ReadAllBytes(path); - file = DecryptSl2(file); - int saveSlotSize = 0x60030; - int igtOffset = 0x2EC + (saveSlotSize * slot); - igt = BitConverter.ToInt32(file, igtOffset); - } + // Each USERDATA file is individually AES - 128 - CBC encrypted. + byte[] file = File.ReadAllBytes(path); + file = DecryptSl2(file); + int saveSlotSize = 0x60030; + int igtOffset = 0x2EC + (saveSlotSize * slot); + igt = BitConverter.ToInt32(file, igtOffset); } } - catch - { - igt = null; - } - return igt; } - - /// - /// Tests if the path to an SL2 file should be read or not - /// - private static bool IsReadable(string path) + catch { - try - { - return File.Exists(path) && !(new FileInfo(path).IsReadOnly); - } - catch - { - return false; - } + igt = null; } + return igt; + } - /// - /// Each USERDATA file is individually AES-128-CBC encrypted. - /// - /// encrypted bytes - /// key - /// iv - /// decrypted bytes - private static byte[] DecryptSl2(byte[] cipherBytes) + /// + /// Tests if the path to an SL2 file should be read or not + /// + private static bool IsReadable(string path) + { + try { - var encryptor = Aes.Create(); - encryptor.Mode = CipherMode.CBC; + return File.Exists(path) && !(new FileInfo(path).IsReadOnly); + } + catch + { + return false; + } + } - // Set key and IV - var aesKey = new byte[16]; - Array.Copy(AesKey, 0, aesKey, 0, 16); - encryptor.Key = aesKey; - encryptor.IV = cipherBytes.Take(16).ToArray(); + /// + /// Each USERDATA file is individually AES-128-CBC encrypted. + /// + /// encrypted bytes + /// key + /// iv + /// decrypted bytes + private static byte[] DecryptSl2(byte[] cipherBytes) + { + var encryptor = Aes.Create(); + encryptor.Mode = CipherMode.CBC; - var memoryStream = new MemoryStream(); - var aesDecryptor = encryptor.CreateDecryptor(); - var cryptoStream = new CryptoStream(memoryStream, aesDecryptor, CryptoStreamMode.Write); - byte[] plainBytes; + // Set key and IV + var aesKey = new byte[16]; + Array.Copy(AesKey, 0, aesKey, 0, 16); + encryptor.Key = aesKey; + encryptor.IV = cipherBytes.Take(16).ToArray(); - try - { - cryptoStream.Write(cipherBytes, 0, cipherBytes.Length); - cryptoStream.FlushFinalBlock(); - plainBytes = memoryStream.ToArray(); - } - finally - { - memoryStream.Close(); - cryptoStream.Close(); - } + var memoryStream = new MemoryStream(); + var aesDecryptor = encryptor.CreateDecryptor(); + var cryptoStream = new CryptoStream(memoryStream, aesDecryptor, CryptoStreamMode.Write); + byte[] plainBytes; - return plainBytes; + try + { + cryptoStream.Write(cipherBytes, 0, cipherBytes.Length); + cryptoStream.FlushFinalBlock(); + plainBytes = memoryStream.ToArray(); + } + finally + { + memoryStream.Close(); + cryptoStream.Close(); } + + return plainBytes; } } diff --git a/src/SoulMemory/DarkSouls2/Attribute.cs b/src/SoulMemory/DarkSouls2/Attribute.cs index f8cd0f3..cb1fd4f 100644 --- a/src/SoulMemory/DarkSouls2/Attribute.cs +++ b/src/SoulMemory/DarkSouls2/Attribute.cs @@ -16,20 +16,19 @@ using System.Xml.Serialization; -namespace SoulMemory.DarkSouls2 +namespace SoulMemory.DarkSouls2; + +[XmlType(Namespace = "SoulMemory.DarkSouls2")] +public enum Attribute { - [XmlType(Namespace = "SoulMemory.DarkSouls2")] - public enum Attribute - { - SoulLevel, - Vigor, - Endurance, - Vitality, - Attunement, - Strength, - Dexterity, - Adaptability, - Intelligence, - Faith, - } + SoulLevel, + Vigor, + Endurance, + Vitality, + Attunement, + Strength, + Dexterity, + Adaptability, + Intelligence, + Faith, } diff --git a/src/SoulMemory/DarkSouls2/BossType.cs b/src/SoulMemory/DarkSouls2/BossType.cs index a8fd9c1..2cc9cf5 100644 --- a/src/SoulMemory/DarkSouls2/BossType.cs +++ b/src/SoulMemory/DarkSouls2/BossType.cs @@ -16,137 +16,136 @@ using System.Xml.Serialization; -namespace SoulMemory.DarkSouls2 +namespace SoulMemory.DarkSouls2; + +[XmlType(Namespace = "SoulMemory.DarkSouls2")] +public enum BossType { - [XmlType(Namespace = "SoulMemory.DarkSouls2")] - public enum BossType - { - //Base game ========================================================================================== - [Annotation(Name = "The Last Giant")] - TheLastGiant = 0x7c, + //Base game ========================================================================================== + [Annotation(Name = "The Last Giant")] + TheLastGiant = 0x7c, - [Annotation(Name = "The Pursuer")] - ThePursuer = 0x70, + [Annotation(Name = "The Pursuer")] + ThePursuer = 0x70, - [Annotation(Name = "Executioners Chariot")] - ExecutionersChariot = 0x34, + [Annotation(Name = "Executioners Chariot")] + ExecutionersChariot = 0x34, - [Annotation(Name = "Looking Glass Knight")] - LookingGlassKnight = 0x48, + [Annotation(Name = "Looking Glass Knight")] + LookingGlassKnight = 0x48, - [Annotation(Name = "The Skeleton Lords")] - TheSkeletonLords = 0x38, + [Annotation(Name = "The Skeleton Lords")] + TheSkeletonLords = 0x38, - [Annotation(Name = "Flexile Sentry")] - FlexileSentry = 0x54, + [Annotation(Name = "Flexile Sentry")] + FlexileSentry = 0x54, - [Annotation(Name = "Lost Sinner")] - LostSinner = 0x5c, + [Annotation(Name = "Lost Sinner")] + LostSinner = 0x5c, - [Annotation(Name = "Belfry Gargoyles")] - BelfryGargoyles = 0xa8, + [Annotation(Name = "Belfry Gargoyles")] + BelfryGargoyles = 0xa8, - [Annotation(Name = "Ruin Sentinels")] - RuinSentinels = 0x58, + [Annotation(Name = "Ruin Sentinels")] + RuinSentinels = 0x58, - [Annotation(Name = "Royal Rat Vanguard")] - RoyalRatVanguard = 0x64, + [Annotation(Name = "Royal Rat Vanguard")] + RoyalRatVanguard = 0x64, - [Annotation(Name = "Royal Rat Authority")] - RoyalRatAuthority = 0x6c, + [Annotation(Name = "Royal Rat Authority")] + RoyalRatAuthority = 0x6c, - [Annotation(Name = "Scorpioness Najka")] - ScorpionessNajka = 0x44, + [Annotation(Name = "Scorpioness Najka")] + ScorpionessNajka = 0x44, - [Annotation(Name = "The Duke's Dear Freja")] - TheDukesDearFreja = 0x2c, + [Annotation(Name = "The Duke's Dear Freja")] + TheDukesDearFreja = 0x2c, - [Annotation(Name = "Mytha, the Baneful Queen")] - MythaTheBanefulQueen = 0x40, + [Annotation(Name = "Mytha, the Baneful Queen")] + MythaTheBanefulQueen = 0x40, - [Annotation(Name = "The Rotten")] - TheRotten = 0x68, + [Annotation(Name = "The Rotten")] + TheRotten = 0x68, - [Annotation(Name = "Old DragonSlayer")] - OldDragonSlayer = 0x50, + [Annotation(Name = "Old DragonSlayer")] + OldDragonSlayer = 0x50, - [Annotation(Name = "Covetous Demon")] - CovetousDemon = 0x3c, + [Annotation(Name = "Covetous Demon")] + CovetousDemon = 0x3c, - [Annotation(Name = "Smelter Demon")] - SmelterDemon = 0x60, + [Annotation(Name = "Smelter Demon")] + SmelterDemon = 0x60, - [Annotation(Name = "Old Iron King")] - OldIronKing = 0x30, + [Annotation(Name = "Old Iron King")] + OldIronKing = 0x30, - [Annotation(Name = "Guardian Dragon")] - GuardianDragon = 0x78, + [Annotation(Name = "Guardian Dragon")] + GuardianDragon = 0x78, - [Annotation(Name = "Demon of Song")] - DemonOfSong = 0x28, + [Annotation(Name = "Demon of Song")] + DemonOfSong = 0x28, - [Annotation(Name = "Velstadt, The Royal Aegis")] - VelstadtTheRoyalAegis = 0x8c, + [Annotation(Name = "Velstadt, The Royal Aegis")] + VelstadtTheRoyalAegis = 0x8c, - [Annotation(Name = "Vendrick")] - Vendrick = 0x98, - - [Annotation(Name = "Darklurker")] - Darklurker = 0x9c, + [Annotation(Name = "Vendrick")] + Vendrick = 0x98, + + [Annotation(Name = "Darklurker")] + Darklurker = 0x9c, - [Annotation(Name = "Dragonrider")] - Dragonrider = 0x4c, + [Annotation(Name = "Dragonrider")] + Dragonrider = 0x4c, - [Annotation(Name = "Twin Dragonriders")] - TwinDragonriders = 0xa0, + [Annotation(Name = "Twin Dragonriders")] + TwinDragonriders = 0xa0, - [Annotation(Name = "Prowling Magnus and Congregation")] - ProwlingMagnusAndCongregation = 0xa4, + [Annotation(Name = "Prowling Magnus and Congregation")] + ProwlingMagnusAndCongregation = 0xa4, - [Annotation(Name = "Giant Lord")] - GiantLord = 0x80, + [Annotation(Name = "Giant Lord")] + GiantLord = 0x80, - [Annotation(Name = "Ancient Dragon")] - AncientDragon = 0x94, + [Annotation(Name = "Ancient Dragon")] + AncientDragon = 0x94, - [Annotation(Name = "Throne Watcher and Throne Defender")] - ThroneWatcherAndThroneDefender = 0x88, + [Annotation(Name = "Throne Watcher and Throne Defender")] + ThroneWatcherAndThroneDefender = 0x88, - [Annotation(Name = "Nashandra")] - Nashandra = 0x84, + [Annotation(Name = "Nashandra")] + Nashandra = 0x84, - [Annotation(Name = "Aldia, Scholar of the First Sin")] - AldiaScholarOfTheFirstSin = 0x118, + [Annotation(Name = "Aldia, Scholar of the First Sin")] + AldiaScholarOfTheFirstSin = 0x118, - //Crown of the Sunken king ================================================================================= - [Annotation(Name = "Elana, Squalid Queen")] - ElanaSqualidQueen = 0xc8, + //Crown of the Sunken king ================================================================================= + [Annotation(Name = "Elana, Squalid Queen")] + ElanaSqualidQueen = 0xc8, - [Annotation(Name = "Sinh, the Slumbering Dragon")] - SinhTheSlumberingDragon = 0xd4, + [Annotation(Name = "Sinh, the Slumbering Dragon")] + SinhTheSlumberingDragon = 0xd4, - [Annotation(Name = "Afflicted Graverobber, Ancient Soldier Varg, and Cerah the Old Explorer")] - AfflictedGraverobberAncientSoldierVargCerahTheOldExplorer = 0xf4, + [Annotation(Name = "Afflicted Graverobber, Ancient Soldier Varg, and Cerah the Old Explorer")] + AfflictedGraverobberAncientSoldierVargCerahTheOldExplorer = 0xf4, - //Crown of the old iron king ================================================================================ + //Crown of the old iron king ================================================================================ - [Annotation(Name = "Blue Smelter Demon")] - BlueSmelterDemon = 0xfc, + [Annotation(Name = "Blue Smelter Demon")] + BlueSmelterDemon = 0xfc, - [Annotation(Name = "Fume knight")] - Fumeknight = 0xcc, + [Annotation(Name = "Fume knight")] + Fumeknight = 0xcc, - [Annotation(Name = "Sir Alonne")] - SirAlonne = 0xf8, + [Annotation(Name = "Sir Alonne")] + SirAlonne = 0xf8, - //Crown of the Ivory king =================================================================================== - [Annotation(Name = "Burnt Ivory King")] - BurntIvoryKing = 0x104, + //Crown of the Ivory king =================================================================================== + [Annotation(Name = "Burnt Ivory King")] + BurntIvoryKing = 0x104, - [Annotation(Name = "Aava, the King's Pet")] - AavaTheKingsPet = 0xd0, + [Annotation(Name = "Aava, the King's Pet")] + AavaTheKingsPet = 0xd0, - [Annotation(Name = "Lud and Zallen, the King's Pets")] - LudAndZallenTheKingsPets = 0x108, - } + [Annotation(Name = "Lud and Zallen, the King's Pets")] + LudAndZallenTheKingsPets = 0x108, } diff --git a/src/SoulMemory/DarkSouls2/DarkSouls2.cs b/src/SoulMemory/DarkSouls2/DarkSouls2.cs index 9119f3a..7bcc978 100644 --- a/src/SoulMemory/DarkSouls2/DarkSouls2.cs +++ b/src/SoulMemory/DarkSouls2/DarkSouls2.cs @@ -20,59 +20,58 @@ using SoulMemory.Memory; using SoulMemory.Native; -namespace SoulMemory.DarkSouls2 +namespace SoulMemory.DarkSouls2; + +public class DarkSouls2 : IDarkSouls2 { - public class DarkSouls2 : IDarkSouls2 - { - public int GetInGameTimeMilliseconds() => 0; - private IDarkSouls2? _darkSouls2 = null!; - public Process? GetProcess() => _darkSouls2?.GetProcess(); - public Vector3f GetPosition() => _darkSouls2?.GetPosition() ?? new Vector3f(); - public bool IsLoading() => _darkSouls2?.IsLoading() ?? false; - public bool ReadEventFlag(uint eventFlagId) => _darkSouls2?.ReadEventFlag(eventFlagId) ?? false; - public int GetBossKillCount(BossType bossType) => _darkSouls2?.GetBossKillCount(bossType) ?? 0; - public int GetAttribute(Attribute attribute) => _darkSouls2?.GetAttribute(attribute) ?? 0; - public TreeBuilder GetTreeBuilder() => _darkSouls2?.GetTreeBuilder() ?? null!; + public int GetInGameTimeMilliseconds() => 0; + private IDarkSouls2? _darkSouls2 = null!; + public Process? GetProcess() => _darkSouls2?.GetProcess(); + public Vector3f GetPosition() => _darkSouls2?.GetPosition() ?? new Vector3f(); + public bool IsLoading() => _darkSouls2?.IsLoading() ?? false; + public bool ReadEventFlag(uint eventFlagId) => _darkSouls2?.ReadEventFlag(eventFlagId) ?? false; + public int GetBossKillCount(BossType bossType) => _darkSouls2?.GetBossKillCount(bossType) ?? 0; + public int GetAttribute(Attribute attribute) => _darkSouls2?.GetAttribute(attribute) ?? 0; + public TreeBuilder GetTreeBuilder() => _darkSouls2?.GetTreeBuilder() ?? null!; - public ResultErr TryRefresh() + public ResultErr TryRefresh() + { + try { - try + if (_darkSouls2 == null) { - if (_darkSouls2 == null) + var process = Process.GetProcesses().FirstOrDefault(i => i.ProcessName.ToLower() == "darksoulsii" && !i.HasExited && i.MainModule != null); + if (process == null) { - var process = Process.GetProcesses().FirstOrDefault(i => i.ProcessName.ToLower() == "darksoulsii" && !i.HasExited && i.MainModule != null); - if (process == null) - { - return Result.Err(new RefreshError(RefreshErrorReason.ProcessNotRunning, "Dark Souls 2 vanilla/scholar not running.")); - } + return Result.Err(new RefreshError(RefreshErrorReason.ProcessNotRunning, "Dark Souls 2 vanilla/scholar not running.")); + } - var isScholar = process.Is64Bit().Unwrap(); - - if (isScholar) - { - _darkSouls2 = new Scholar(); - } - else - { - _darkSouls2 = new Vanilla(); - } - return Result.Ok(); + var isScholar = process.Is64Bit().Unwrap(); + + if (isScholar) + { + _darkSouls2 = new Scholar(); } else { - var result = _darkSouls2.TryRefresh(); - if (result.IsErr) - { - _darkSouls2 = null!; - return result; - } - return Result.Ok(); + _darkSouls2 = new Vanilla(); } + return Result.Ok(); } - catch (Exception e) + else { - return RefreshError.FromException(e); + var result = _darkSouls2.TryRefresh(); + if (result.IsErr) + { + _darkSouls2 = null!; + return result; + } + return Result.Ok(); } } + catch (Exception e) + { + return RefreshError.FromException(e); + } } } diff --git a/src/SoulMemory/DarkSouls2/Data.cs b/src/SoulMemory/DarkSouls2/Data.cs index 84482cc..bebec51 100644 --- a/src/SoulMemory/DarkSouls2/Data.cs +++ b/src/SoulMemory/DarkSouls2/Data.cs @@ -17,105 +17,104 @@ using System.Collections.Generic; using System.Collections.ObjectModel; -namespace SoulMemory.DarkSouls2 +namespace SoulMemory.DarkSouls2; + +public static class Data { - public static class Data + public struct Bonfire { - public struct Bonfire + public Bonfire(WarpType warpType, int areaId, ushort bonfireId, string name) { - public Bonfire(WarpType warpType, int areaId, ushort bonfireId, string name) - { - WarpType = warpType; - AreaId = areaId; - BonfireId = bonfireId; - Name = name; - } - - public WarpType WarpType; - public int AreaId; - public ushort BonfireId; - public string Name; + WarpType = warpType; + AreaId = areaId; + BonfireId = bonfireId; + Name = name; } - public static readonly ReadOnlyCollection Bonfires = new ReadOnlyCollection(new List() - { - new Bonfire(WarpType.FireKeepersDwelling , 167903232, 2650 , "Fire Keepers' Dwelling"), - new Bonfire(WarpType.TheFarFire , 168034304, 4650 , "The Far Fire"), - new Bonfire(WarpType.TheCrestfallensRetreat , 168427520, 10670, "The Crestfallen's Retreat"), - new Bonfire(WarpType.CardinalTower , 168427520, 10655, "Cardinal Tower"), - new Bonfire(WarpType.SoldiersRest , 168427520, 10660, "Soldiers' Rest"), - new Bonfire(WarpType.ThePlaceUnbeknownst , 168427520, 10675, "The Place Unbeknownst"), - new Bonfire(WarpType.HeidesRuin , 169803776, 31655, "Heide's Ruin"), - new Bonfire(WarpType.TowerOfFlame , 169803776, 31650, "Tower of Flame"), - new Bonfire(WarpType.TheBlueCathedral , 169803776, 31660, "The Blue Cathedral"), - new Bonfire(WarpType.UnseenPathToHeide , 168951808, 18650, "Unseen Path to Heide"), - new Bonfire(WarpType.ExileHoldingCells , 168820736, 16655, "Exile Holding Cells"), - new Bonfire(WarpType.McDuffsWorkshop , 168820736, 16670, "McDuff's Workshop"), - new Bonfire(WarpType.ServantsQuarters , 168820736, 16675, "Servants' Quarters"), - new Bonfire(WarpType.StraidsCell , 168820736, 16650, "Straid's Cell"), - new Bonfire(WarpType.TheTowerApart , 168820736, 16660, "The Tower Apart"), - new Bonfire(WarpType.TheSaltfort , 168820736, 16685, "The Saltfort"), - new Bonfire(WarpType.UpperRamparts , 168820736, 16665, "Upper Ramparts"), - new Bonfire(WarpType.UndeadRefuge , 169279488, 23650, "Undead Refuge"), - new Bonfire(WarpType.BridgeApproach , 169279488, 23655, "Bridge Approach"), - new Bonfire(WarpType.UndeadLockaway , 169279488, 23660, "Undead Lockaway"), - new Bonfire(WarpType.UndeadPurgatory , 169279488, 23665, "Undead Purgatory"), - new Bonfire(WarpType.PoisonPool , 168886272, 17665, "Poison Pool"), - new Bonfire(WarpType.TheMines , 168886272, 17650, "The Mines"), - new Bonfire(WarpType.LowerEarthenPeak , 168886272, 17655, "Lower Earthen Peak"), - new Bonfire(WarpType.CentralEarthenPeak , 168886272, 17670, "Central Earthen Peak"), - new Bonfire(WarpType.UpperEarthenPeak , 168886272, 17675, "Upper Earthen Peak"), - new Bonfire(WarpType.ThresholdBridge , 169017344, 19655, "Threshold Bridge"), - new Bonfire(WarpType.IronHearthHall , 169017344, 19650, "Ironhearth Hall"), - new Bonfire(WarpType.EygilsIdol , 169017344, 19660, "Eygil's Idol"), - new Bonfire(WarpType.BelfrySolApproach , 169017344, 19665, "Belfry Sol Approach"), - new Bonfire(WarpType.OldAkelarre , 169672704, 29650, "Old Akelarre"), - new Bonfire(WarpType.RuinedForkRoad , 169869312, 32655, "Ruined Fork Road"), - new Bonfire(WarpType.ShadedRuins , 169869312, 32660, "Shaded Ruins"), - new Bonfire(WarpType.GyrmsRespite , 169934848, 33655, "Gyrm's Respite"), - new Bonfire(WarpType.OrdealsEnd , 169934848, 33660, "Ordeal's End"), - new Bonfire(WarpType.RoyalArmyCampsite , 168689664, 14655, "Royal Army Campsite"), - new Bonfire(WarpType.ChapelThreshold , 168689664, 14660, "Chapel Threshold"), - new Bonfire(WarpType.LowerBrightstoneCove , 168689664, 14650, "Lower Brightstone Cove"), - new Bonfire(WarpType.HarvalsRestingPlace , 170000384, 34655, "Harval's Resting Place"), - new Bonfire(WarpType.GraveEntrance , 170000384, 34650, "Grave Entrance"), - new Bonfire(WarpType.UpperGutter , 169410560, 25665, "Upper Gutter"), - new Bonfire(WarpType.CentralGutter , 169410560, 25655, "Central Gutter"), - new Bonfire(WarpType.BlackGulchMouth , 169410560, 25650, "Black Gulch Mouth"), - new Bonfire(WarpType.HiddenChamber , 169410560, 25660, "Hidden Chamber"), - new Bonfire(WarpType.KingsGate , 336920576, 21650, "King's Gate"), - new Bonfire(WarpType.UnderCastleDrangleic , 336920576, 21665, "Under Castle Drangleic"), - new Bonfire(WarpType.CentralCastleDrangleic , 336920576, 21655, "Central Castle Drangleic"), - new Bonfire(WarpType.ForgottenChamber , 336920576, 21660, "Forgotten Chamber"), - new Bonfire(WarpType.TowerofPrayerAmana , 336265216, 11650, "Tower of Prayer (Amana)"), - new Bonfire(WarpType.CrumbledRuins , 336265216, 11655, "Crumbled Ruins"), - new Bonfire(WarpType.RhoysRestingPlace , 336265216, 11660, "Rhoy's Resting Place"), - new Bonfire(WarpType.RiseoftheDead , 336265216, 11670, "Rise of the Dead"), - new Bonfire(WarpType.UndeadCryptEntrance , 337117184, 24655, "Undead Crypt Entrance"), - new Bonfire(WarpType.UndeadDitch , 337117184, 24650, "Undead Ditch"), - new Bonfire(WarpType.Foregarden , 168755200, 15650, "Foregarden"), - new Bonfire(WarpType.RitualSite , 168755200, 15655, "Ritual Site"), - new Bonfire(WarpType.DragonAerie , 169541632, 27650, "Dragon Aerie"), - new Bonfire(WarpType.ShrineEntrance , 169541632, 27655, "Shrine Entrance"), - new Bonfire(WarpType.SanctumWalk , 841154560, 35650, "Sanctum Walk"), - new Bonfire(WarpType.TowerOfPrayerShulva , 841154560, 35685, "Tower of Prayer (Shulva)"), - new Bonfire(WarpType.PriestessChamber , 841154560, 35655, "Priestess' Chamber"), - new Bonfire(WarpType.HiddenSanctumChamber , 841154560, 35670, "Hidden Sanctum Chamber"), - new Bonfire(WarpType.LairOfTheImperfect , 841154560, 35675, "Lair of the Imperfect"), - new Bonfire(WarpType.SanctumInterior , 841154560, 35680, "Sanctum Interior"), - new Bonfire(WarpType.SanctumNadir , 841154560, 35665, "Sanctum Nadir"), - new Bonfire(WarpType.ThroneFloor , 841220096, 36650, "Throne Floor"), - new Bonfire(WarpType.UpperFloor , 841220096, 36660, "Upper Floor"), - new Bonfire(WarpType.Foyer , 841220096, 36655, "Foyer"), - new Bonfire(WarpType.LowermostFloor , 841220096, 36670, "Lowermost Floor"), - new Bonfire(WarpType.SmelterThrone , 841220096, 36675, "The Smelter Throne"), - new Bonfire(WarpType.IronHallwayEntrance , 841220096, 36665, "Iron Hallway Entrance"), - new Bonfire(WarpType.OuterWall , 841285632, 37650, "Outer Wall"), - new Bonfire(WarpType.AbandonedDwelling , 841285632, 37660, "Abandoned Dwelling"), - new Bonfire(WarpType.ExpulsionChamber , 841285632, 37675, "Expulsion Chamber"), - new Bonfire(WarpType.InnerWall , 841285632, 37685, "Inner Wall"), - new Bonfire(WarpType.LowerGarrison , 841285632, 37665, "Lower Garrison"), - new Bonfire(WarpType.GrandCathedral , 841285632, 37670, "Grand Cathedral"), - }); + public WarpType WarpType; + public int AreaId; + public ushort BonfireId; + public string Name; } + + public static readonly ReadOnlyCollection Bonfires = new ReadOnlyCollection(new List() + { + new Bonfire(WarpType.FireKeepersDwelling , 167903232, 2650 , "Fire Keepers' Dwelling"), + new Bonfire(WarpType.TheFarFire , 168034304, 4650 , "The Far Fire"), + new Bonfire(WarpType.TheCrestfallensRetreat , 168427520, 10670, "The Crestfallen's Retreat"), + new Bonfire(WarpType.CardinalTower , 168427520, 10655, "Cardinal Tower"), + new Bonfire(WarpType.SoldiersRest , 168427520, 10660, "Soldiers' Rest"), + new Bonfire(WarpType.ThePlaceUnbeknownst , 168427520, 10675, "The Place Unbeknownst"), + new Bonfire(WarpType.HeidesRuin , 169803776, 31655, "Heide's Ruin"), + new Bonfire(WarpType.TowerOfFlame , 169803776, 31650, "Tower of Flame"), + new Bonfire(WarpType.TheBlueCathedral , 169803776, 31660, "The Blue Cathedral"), + new Bonfire(WarpType.UnseenPathToHeide , 168951808, 18650, "Unseen Path to Heide"), + new Bonfire(WarpType.ExileHoldingCells , 168820736, 16655, "Exile Holding Cells"), + new Bonfire(WarpType.McDuffsWorkshop , 168820736, 16670, "McDuff's Workshop"), + new Bonfire(WarpType.ServantsQuarters , 168820736, 16675, "Servants' Quarters"), + new Bonfire(WarpType.StraidsCell , 168820736, 16650, "Straid's Cell"), + new Bonfire(WarpType.TheTowerApart , 168820736, 16660, "The Tower Apart"), + new Bonfire(WarpType.TheSaltfort , 168820736, 16685, "The Saltfort"), + new Bonfire(WarpType.UpperRamparts , 168820736, 16665, "Upper Ramparts"), + new Bonfire(WarpType.UndeadRefuge , 169279488, 23650, "Undead Refuge"), + new Bonfire(WarpType.BridgeApproach , 169279488, 23655, "Bridge Approach"), + new Bonfire(WarpType.UndeadLockaway , 169279488, 23660, "Undead Lockaway"), + new Bonfire(WarpType.UndeadPurgatory , 169279488, 23665, "Undead Purgatory"), + new Bonfire(WarpType.PoisonPool , 168886272, 17665, "Poison Pool"), + new Bonfire(WarpType.TheMines , 168886272, 17650, "The Mines"), + new Bonfire(WarpType.LowerEarthenPeak , 168886272, 17655, "Lower Earthen Peak"), + new Bonfire(WarpType.CentralEarthenPeak , 168886272, 17670, "Central Earthen Peak"), + new Bonfire(WarpType.UpperEarthenPeak , 168886272, 17675, "Upper Earthen Peak"), + new Bonfire(WarpType.ThresholdBridge , 169017344, 19655, "Threshold Bridge"), + new Bonfire(WarpType.IronHearthHall , 169017344, 19650, "Ironhearth Hall"), + new Bonfire(WarpType.EygilsIdol , 169017344, 19660, "Eygil's Idol"), + new Bonfire(WarpType.BelfrySolApproach , 169017344, 19665, "Belfry Sol Approach"), + new Bonfire(WarpType.OldAkelarre , 169672704, 29650, "Old Akelarre"), + new Bonfire(WarpType.RuinedForkRoad , 169869312, 32655, "Ruined Fork Road"), + new Bonfire(WarpType.ShadedRuins , 169869312, 32660, "Shaded Ruins"), + new Bonfire(WarpType.GyrmsRespite , 169934848, 33655, "Gyrm's Respite"), + new Bonfire(WarpType.OrdealsEnd , 169934848, 33660, "Ordeal's End"), + new Bonfire(WarpType.RoyalArmyCampsite , 168689664, 14655, "Royal Army Campsite"), + new Bonfire(WarpType.ChapelThreshold , 168689664, 14660, "Chapel Threshold"), + new Bonfire(WarpType.LowerBrightstoneCove , 168689664, 14650, "Lower Brightstone Cove"), + new Bonfire(WarpType.HarvalsRestingPlace , 170000384, 34655, "Harval's Resting Place"), + new Bonfire(WarpType.GraveEntrance , 170000384, 34650, "Grave Entrance"), + new Bonfire(WarpType.UpperGutter , 169410560, 25665, "Upper Gutter"), + new Bonfire(WarpType.CentralGutter , 169410560, 25655, "Central Gutter"), + new Bonfire(WarpType.BlackGulchMouth , 169410560, 25650, "Black Gulch Mouth"), + new Bonfire(WarpType.HiddenChamber , 169410560, 25660, "Hidden Chamber"), + new Bonfire(WarpType.KingsGate , 336920576, 21650, "King's Gate"), + new Bonfire(WarpType.UnderCastleDrangleic , 336920576, 21665, "Under Castle Drangleic"), + new Bonfire(WarpType.CentralCastleDrangleic , 336920576, 21655, "Central Castle Drangleic"), + new Bonfire(WarpType.ForgottenChamber , 336920576, 21660, "Forgotten Chamber"), + new Bonfire(WarpType.TowerofPrayerAmana , 336265216, 11650, "Tower of Prayer (Amana)"), + new Bonfire(WarpType.CrumbledRuins , 336265216, 11655, "Crumbled Ruins"), + new Bonfire(WarpType.RhoysRestingPlace , 336265216, 11660, "Rhoy's Resting Place"), + new Bonfire(WarpType.RiseoftheDead , 336265216, 11670, "Rise of the Dead"), + new Bonfire(WarpType.UndeadCryptEntrance , 337117184, 24655, "Undead Crypt Entrance"), + new Bonfire(WarpType.UndeadDitch , 337117184, 24650, "Undead Ditch"), + new Bonfire(WarpType.Foregarden , 168755200, 15650, "Foregarden"), + new Bonfire(WarpType.RitualSite , 168755200, 15655, "Ritual Site"), + new Bonfire(WarpType.DragonAerie , 169541632, 27650, "Dragon Aerie"), + new Bonfire(WarpType.ShrineEntrance , 169541632, 27655, "Shrine Entrance"), + new Bonfire(WarpType.SanctumWalk , 841154560, 35650, "Sanctum Walk"), + new Bonfire(WarpType.TowerOfPrayerShulva , 841154560, 35685, "Tower of Prayer (Shulva)"), + new Bonfire(WarpType.PriestessChamber , 841154560, 35655, "Priestess' Chamber"), + new Bonfire(WarpType.HiddenSanctumChamber , 841154560, 35670, "Hidden Sanctum Chamber"), + new Bonfire(WarpType.LairOfTheImperfect , 841154560, 35675, "Lair of the Imperfect"), + new Bonfire(WarpType.SanctumInterior , 841154560, 35680, "Sanctum Interior"), + new Bonfire(WarpType.SanctumNadir , 841154560, 35665, "Sanctum Nadir"), + new Bonfire(WarpType.ThroneFloor , 841220096, 36650, "Throne Floor"), + new Bonfire(WarpType.UpperFloor , 841220096, 36660, "Upper Floor"), + new Bonfire(WarpType.Foyer , 841220096, 36655, "Foyer"), + new Bonfire(WarpType.LowermostFloor , 841220096, 36670, "Lowermost Floor"), + new Bonfire(WarpType.SmelterThrone , 841220096, 36675, "The Smelter Throne"), + new Bonfire(WarpType.IronHallwayEntrance , 841220096, 36665, "Iron Hallway Entrance"), + new Bonfire(WarpType.OuterWall , 841285632, 37650, "Outer Wall"), + new Bonfire(WarpType.AbandonedDwelling , 841285632, 37660, "Abandoned Dwelling"), + new Bonfire(WarpType.ExpulsionChamber , 841285632, 37675, "Expulsion Chamber"), + new Bonfire(WarpType.InnerWall , 841285632, 37685, "Inner Wall"), + new Bonfire(WarpType.LowerGarrison , 841285632, 37665, "Lower Garrison"), + new Bonfire(WarpType.GrandCathedral , 841285632, 37670, "Grand Cathedral"), + }); } diff --git a/src/SoulMemory/DarkSouls2/IDarkSouls2.cs b/src/SoulMemory/DarkSouls2/IDarkSouls2.cs index 5483735..f136d10 100644 --- a/src/SoulMemory/DarkSouls2/IDarkSouls2.cs +++ b/src/SoulMemory/DarkSouls2/IDarkSouls2.cs @@ -14,13 +14,12 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -namespace SoulMemory.DarkSouls2 +namespace SoulMemory.DarkSouls2; + +public interface IDarkSouls2 : IGame { - public interface IDarkSouls2 : IGame - { - Vector3f GetPosition(); - int GetBossKillCount(BossType bossType); - int GetAttribute(Attribute attribute); - bool IsLoading(); - } + Vector3f GetPosition(); + int GetBossKillCount(BossType bossType); + int GetAttribute(Attribute attribute); + bool IsLoading(); } diff --git a/src/SoulMemory/DarkSouls2/WarpType.cs b/src/SoulMemory/DarkSouls2/WarpType.cs index 61cace4..4c83cf6 100644 --- a/src/SoulMemory/DarkSouls2/WarpType.cs +++ b/src/SoulMemory/DarkSouls2/WarpType.cs @@ -14,86 +14,85 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -namespace SoulMemory.DarkSouls2 +namespace SoulMemory.DarkSouls2; + +public enum WarpType { - public enum WarpType - { - FireKeepersDwelling, - TheFarFire, - TheCrestfallensRetreat, - CardinalTower, - SoldiersRest, - ThePlaceUnbeknownst, - HeidesRuin, - TowerOfFlame, - TheBlueCathedral, - UnseenPathToHeide, - ExileHoldingCells, - McDuffsWorkshop, - ServantsQuarters, - StraidsCell, - TheTowerApart, - TheSaltfort, - UpperRamparts, - UndeadRefuge, - BridgeApproach, - UndeadLockaway, - UndeadPurgatory, - PoisonPool, - TheMines, - LowerEarthenPeak, - CentralEarthenPeak, - UpperEarthenPeak, - ThresholdBridge, - IronHearthHall, - EygilsIdol, - BelfrySolApproach, - OldAkelarre, - RuinedForkRoad, - ShadedRuins, - GyrmsRespite, - OrdealsEnd, - RoyalArmyCampsite, - ChapelThreshold, - LowerBrightstoneCove, - HarvalsRestingPlace, - GraveEntrance, - UpperGutter, - CentralGutter, - BlackGulchMouth, - HiddenChamber, - KingsGate, - UnderCastleDrangleic, - CentralCastleDrangleic, - ForgottenChamber, - TowerofPrayerAmana, - CrumbledRuins, - RhoysRestingPlace, - RiseoftheDead, - UndeadCryptEntrance, - UndeadDitch, - Foregarden, - RitualSite, - DragonAerie, - ShrineEntrance, - SanctumWalk, - TowerOfPrayerShulva, - PriestessChamber, - HiddenSanctumChamber, - LairOfTheImperfect, - SanctumInterior, - SanctumNadir, - ThroneFloor, - UpperFloor, - Foyer, - LowermostFloor, - SmelterThrone, - IronHallwayEntrance, - OuterWall, - AbandonedDwelling, - ExpulsionChamber, - InnerWall, - LowerGarrison, - GrandCathedral, - } + FireKeepersDwelling, + TheFarFire, + TheCrestfallensRetreat, + CardinalTower, + SoldiersRest, + ThePlaceUnbeknownst, + HeidesRuin, + TowerOfFlame, + TheBlueCathedral, + UnseenPathToHeide, + ExileHoldingCells, + McDuffsWorkshop, + ServantsQuarters, + StraidsCell, + TheTowerApart, + TheSaltfort, + UpperRamparts, + UndeadRefuge, + BridgeApproach, + UndeadLockaway, + UndeadPurgatory, + PoisonPool, + TheMines, + LowerEarthenPeak, + CentralEarthenPeak, + UpperEarthenPeak, + ThresholdBridge, + IronHearthHall, + EygilsIdol, + BelfrySolApproach, + OldAkelarre, + RuinedForkRoad, + ShadedRuins, + GyrmsRespite, + OrdealsEnd, + RoyalArmyCampsite, + ChapelThreshold, + LowerBrightstoneCove, + HarvalsRestingPlace, + GraveEntrance, + UpperGutter, + CentralGutter, + BlackGulchMouth, + HiddenChamber, + KingsGate, + UnderCastleDrangleic, + CentralCastleDrangleic, + ForgottenChamber, + TowerofPrayerAmana, + CrumbledRuins, + RhoysRestingPlace, + RiseoftheDead, + UndeadCryptEntrance, + UndeadDitch, + Foregarden, + RitualSite, + DragonAerie, + ShrineEntrance, + SanctumWalk, + TowerOfPrayerShulva, + PriestessChamber, + HiddenSanctumChamber, + LairOfTheImperfect, + SanctumInterior, + SanctumNadir, + ThroneFloor, + UpperFloor, + Foyer, + LowermostFloor, + SmelterThrone, + IronHallwayEntrance, + OuterWall, + AbandonedDwelling, + ExpulsionChamber, + InnerWall, + LowerGarrison, + GrandCathedral, } diff --git a/src/SoulMemory/DarkSouls2/scholar.cs b/src/SoulMemory/DarkSouls2/scholar.cs index 0649bac..56ca629 100644 --- a/src/SoulMemory/DarkSouls2/scholar.cs +++ b/src/SoulMemory/DarkSouls2/scholar.cs @@ -19,215 +19,214 @@ using System.Diagnostics; using SoulMemory.Memory; -namespace SoulMemory.DarkSouls2 +namespace SoulMemory.DarkSouls2; + +internal class Scholar : IDarkSouls2 { - internal class Scholar : IDarkSouls2 + private Process? _process; + private readonly Pointer _eventFlagManager = new Pointer(); + private readonly Pointer _position = new Pointer(); + private readonly Pointer _loadState = new Pointer(); + private readonly Pointer _bossCounters = new Pointer(); + private readonly Pointer _attributes = new Pointer(); + + #region Refresh/init/reset ================================================================================================================================ + public Process? GetProcess() => _process; + public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, "darksoulsii", InitPointers, ResetPointers); + public int GetInGameTimeMilliseconds() => 0; + public TreeBuilder GetTreeBuilder() + { + var treeBuilder = new TreeBuilder(); + treeBuilder + .ScanRelative("GameManagerImp", "48 8b 35 ? ? ? ? 48 8b e9 48 85 f6", 3, 7) + .AddPointer(_eventFlagManager, 0, 0x70, 0x20) + .AddPointer(_position, 0, 0xd0, 0x100) + .AddPointer(_bossCounters, 0, 0x70, 0x28, 0x20, 0x8) + .AddPointer(_attributes, 0, 0xd0, 0x490); + + treeBuilder + .ScanRelative("LoadState", "48 89 05 ? ? ? ? b0 01 48 83 c4 28", 3, 7) + .AddPointer(_loadState, 0x0); + + //.CreatePointer(out AiManager, 0x28) + //.CreatePointer(out rightHandWeaponMultiplier, 0xd0, 0x378, 0x28, 0x158) + //.CreatePointer(out LeftHandWeaponMultiplier, 0xd0, 0x378, 0x28, 0x80) + + return treeBuilder; + } + + private ResultErr InitPointers() { - private Process? _process; - private readonly Pointer _eventFlagManager = new Pointer(); - private readonly Pointer _position = new Pointer(); - private readonly Pointer _loadState = new Pointer(); - private readonly Pointer _bossCounters = new Pointer(); - private readonly Pointer _attributes = new Pointer(); - - #region Refresh/init/reset ================================================================================================================================ - public Process? GetProcess() => _process; - public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, "darksoulsii", InitPointers, ResetPointers); - public int GetInGameTimeMilliseconds() => 0; - public TreeBuilder GetTreeBuilder() + try { - var treeBuilder = new TreeBuilder(); - treeBuilder - .ScanRelative("GameManagerImp", "48 8b 35 ? ? ? ? 48 8b e9 48 85 f6", 3, 7) - .AddPointer(_eventFlagManager, 0, 0x70, 0x20) - .AddPointer(_position, 0, 0xd0, 0x100) - .AddPointer(_bossCounters, 0, 0x70, 0x28, 0x20, 0x8) - .AddPointer(_attributes, 0, 0xd0, 0x490); - - treeBuilder - .ScanRelative("LoadState", "48 89 05 ? ? ? ? b0 01 48 83 c4 28", 3, 7) - .AddPointer(_loadState, 0x0); - - //.CreatePointer(out AiManager, 0x28) - //.CreatePointer(out rightHandWeaponMultiplier, 0xd0, 0x378, 0x28, 0x158) - //.CreatePointer(out LeftHandWeaponMultiplier, 0xd0, 0x378, 0x28, 0x80) - - return treeBuilder; + var treeBuilder = GetTreeBuilder(); + return MemoryScanner.TryResolvePointers(treeBuilder, _process); } - - private ResultErr InitPointers() + catch (Exception e) { - try - { - var treeBuilder = GetTreeBuilder(); - return MemoryScanner.TryResolvePointers(treeBuilder, _process); - } - catch (Exception e) - { - return RefreshError.FromException(e); - } + return RefreshError.FromException(e); } - - private void ResetPointers() + } + + private void ResetPointers() + { + _eventFlagManager.Clear(); + _position.Clear(); + _loadState.Clear(); + _bossCounters.Clear(); + _attributes.Clear(); + } + + #endregion + + public Vector3f GetPosition() + { + if (_position == null) { - _eventFlagManager.Clear(); - _position.Clear(); - _loadState.Clear(); - _bossCounters.Clear(); - _attributes.Clear(); + return new Vector3f(0, 0, 0); } - #endregion - - public Vector3f GetPosition() - { - if (_position == null) - { - return new Vector3f(0, 0, 0); - } + return new Vector3f( + _position.ReadFloat(0x88), + _position.ReadFloat(0x80), + _position.ReadFloat(0x84) + ); + } - return new Vector3f( - _position.ReadFloat(0x88), - _position.ReadFloat(0x80), - _position.ReadFloat(0x84) - ); + public int GetBossKillCount(BossType bossType) + { + if (_bossCounters == null) + { + return 0; } + return _bossCounters.ReadInt32((long)bossType); + } - public int GetBossKillCount(BossType bossType) + public bool IsLoading() + { + if (_loadState == null) { - if (_bossCounters == null) - { - return 0; - } - return _bossCounters.ReadInt32((long)bossType); + return false; } - public bool IsLoading() - { - if (_loadState == null) - { - return false; - } + return _loadState.ReadInt32(0x11c) == 1; + } - return _loadState.ReadInt32(0x11c) == 1; + public int GetAttribute(Attribute attribute) + { + if (_attributes == null) + { + return 0; } - public int GetAttribute(Attribute attribute) + var offset = _attributeOffsets[attribute]; + if (attribute == Attribute.SoulLevel) { - if (_attributes == null) - { - return 0; - } + return _attributes.ReadInt32(offset); + } + else + { + var bytes = _attributes.ReadBytes(2, offset); + return (int)BitConverter.ToInt16(bytes, 0); + } + } - var offset = _attributeOffsets[attribute]; - if (attribute == Attribute.SoulLevel) - { - return _attributes.ReadInt32(offset); - } - else - { - var bytes = _attributes.ReadBytes(2, offset); - return (int)BitConverter.ToInt16(bytes, 0); - } + #region Reading event flags + + + public bool ReadEventFlag(uint eventFlagId) + { + if (_eventFlagManager == null) + { + return false; } - #region Reading event flags + var eventCategory = eventFlagId / 10000 * 0x89; + var uVar1 = ((eventCategory - eventCategory / 0x1f >> 1) + eventCategory / 0x1f >> 4) * 31; + var r8d = eventCategory - uVar1; + var offset = r8d * 0x8 + 0x20; + var vector = _eventFlagManager.CreatePointerFromAddress(offset); - public bool ReadEventFlag(uint eventFlagId) + for (int i = 0; i < 100; i++) //Replaced infinite while with for loop, in case some memes occur and the function never returns { - if (_eventFlagManager == null) + if (vector.IsNullPtr()) { return false; + //TODO: fix this. Should be (uVar1 * 0x1f >> 8) << 8 } - var eventCategory = eventFlagId / 10000 * 0x89; - var uVar1 = ((eventCategory - eventCategory / 0x1f >> 1) + eventCategory / 0x1f >> 4) * 31; - var r8d = eventCategory - uVar1; - - var offset = r8d * 0x8 + 0x20; - var vector = _eventFlagManager.CreatePointerFromAddress(offset); - - for (int i = 0; i < 100; i++) //Replaced infinite while with for loop, in case some memes occur and the function never returns + if (vector.ReadInt32(0xc) == eventFlagId / 10000) { - if (vector.IsNullPtr()) - { - return false; - //TODO: fix this. Should be (uVar1 * 0x1f >> 8) << 8 - } - - if (vector.ReadInt32(0xc) == eventFlagId / 10000) + var category2 = eventFlagId % 10000 >> 3; + if (category2 < vector.ReadInt32(0x8)) { - var category2 = eventFlagId % 10000 >> 3; - if (category2 < vector.ReadInt32(0x8)) - { - var ptr = vector.CreatePointerFromAddress(0x0); - var shift = (int)(0x7 - eventFlagId % 10000 & 0x7); - var shifted = 0x1 << shift; - var flagBit = ptr.ReadByte(category2); - return flagBit == shifted; - } + var ptr = vector.CreatePointerFromAddress(0x0); + var shift = (int)(0x7 - eventFlagId % 10000 & 0x7); + var shifted = 0x1 << shift; + var flagBit = ptr.ReadByte(category2); + return flagBit == shifted; } - vector = vector.CreatePointerFromAddress(0x10); } - - return false; + vector = vector.CreatePointerFromAddress(0x10); } - - //Ghidra, address 7ff6ec6bcfe0 - //Ghidra did not do such a great job. Most of this was reversed straight from the assembly, while stepping through it with a debugger. - // - //ulonglong FUN_7ff6ec6bcfe0_maybeReadEventFlag (EventFlagManager *eventFlagManager_ptr,uint eventFlagId) - // - // - //{ - // uint uVar1; - // uint eventCategory?; - // ulonglong *pointer_to_vector_in_eventflagmanager; - // - // eventCategory? = (eventFlagId / 10000) * 0x89; - // uVar1 = (eventCategory? - eventCategory? / 0x1f >> 1) + eventCategory? / 0x1f >> 4; - // pointer_to_vector_in_eventflagmanager = - // (ulonglong *) - // (&(eventFlagManager_ptr->data).vector_of_pointers_start?)[eventCategory? + uVar1 * -0x1f]; //mov rdx,[rcx+r8*8+20] - // do { - // if (pointer_to_vector_in_eventflagmanager == (ulonglong *)0x0) { - //LAB_7ff6ec6bd03f: - // return (ulonglong)(uint3)(uVar1 * 0x1f >> 8) << 8; - // } - // if (*(uint *)((longlong)pointer_to_vector_in_eventflagmanager + 0xc) == eventFlagId / 10000) { - // eventCategory? = eventFlagId % 10000 >> 3; - // if (eventCategory? < *(uint *)(pointer_to_vector_in_eventflagmanager + 1)) { - // return *pointer_to_vector_in_eventflagmanager & 0xffffffffffffff00 | - // (ulonglong) - // ((*(byte *)((ulonglong)eventCategory? + *pointer_to_vector_in_eventflagmanager) & - // (byte)(1 << (7 - ((byte)(eventFlagId % 10000) & 7) & 0x1f))) != 0); - // } - // goto LAB_7ff6ec6bd03f; - // } - // pointer_to_vector_in_eventflagmanager = (ulonglong *)pointer_to_vector_in_eventflagmanager[2]; - // } while( true ); - //} - - #endregion - - #region Lookup tables - - private readonly Dictionary _attributeOffsets = new Dictionary() - { - { Attribute.SoulLevel , 0xd0}, - { Attribute.Vigor , 0x8}, - { Attribute.Endurance , 0xa}, - { Attribute.Vitality , 0xc}, - { Attribute.Attunement , 0xe}, - { Attribute.Strength , 0x10}, - { Attribute.Dexterity , 0x12}, - { Attribute.Adaptability, 0x18}, - { Attribute.Intelligence, 0x14}, - { Attribute.Faith , 0x16}, - }; - - #endregion + return false; } + + + //Ghidra, address 7ff6ec6bcfe0 + //Ghidra did not do such a great job. Most of this was reversed straight from the assembly, while stepping through it with a debugger. + // + //ulonglong FUN_7ff6ec6bcfe0_maybeReadEventFlag (EventFlagManager *eventFlagManager_ptr,uint eventFlagId) + // + // + //{ + // uint uVar1; + // uint eventCategory?; + // ulonglong *pointer_to_vector_in_eventflagmanager; + // + // eventCategory? = (eventFlagId / 10000) * 0x89; + // uVar1 = (eventCategory? - eventCategory? / 0x1f >> 1) + eventCategory? / 0x1f >> 4; + // pointer_to_vector_in_eventflagmanager = + // (ulonglong *) + // (&(eventFlagManager_ptr->data).vector_of_pointers_start?)[eventCategory? + uVar1 * -0x1f]; //mov rdx,[rcx+r8*8+20] + // do { + // if (pointer_to_vector_in_eventflagmanager == (ulonglong *)0x0) { + //LAB_7ff6ec6bd03f: + // return (ulonglong)(uint3)(uVar1 * 0x1f >> 8) << 8; + // } + // if (*(uint *)((longlong)pointer_to_vector_in_eventflagmanager + 0xc) == eventFlagId / 10000) { + // eventCategory? = eventFlagId % 10000 >> 3; + // if (eventCategory? < *(uint *)(pointer_to_vector_in_eventflagmanager + 1)) { + // return *pointer_to_vector_in_eventflagmanager & 0xffffffffffffff00 | + // (ulonglong) + // ((*(byte *)((ulonglong)eventCategory? + *pointer_to_vector_in_eventflagmanager) & + // (byte)(1 << (7 - ((byte)(eventFlagId % 10000) & 7) & 0x1f))) != 0); + // } + // goto LAB_7ff6ec6bd03f; + // } + // pointer_to_vector_in_eventflagmanager = (ulonglong *)pointer_to_vector_in_eventflagmanager[2]; + // } while( true ); + //} + + #endregion + + #region Lookup tables + + private readonly Dictionary _attributeOffsets = new Dictionary() + { + { Attribute.SoulLevel , 0xd0}, + { Attribute.Vigor , 0x8}, + { Attribute.Endurance , 0xa}, + { Attribute.Vitality , 0xc}, + { Attribute.Attunement , 0xe}, + { Attribute.Strength , 0x10}, + { Attribute.Dexterity , 0x12}, + { Attribute.Adaptability, 0x18}, + { Attribute.Intelligence, 0x14}, + { Attribute.Faith , 0x16}, + }; + + #endregion } diff --git a/src/SoulMemory/DarkSouls2/vanilla.cs b/src/SoulMemory/DarkSouls2/vanilla.cs index 7b31009..60ca01d 100644 --- a/src/SoulMemory/DarkSouls2/vanilla.cs +++ b/src/SoulMemory/DarkSouls2/vanilla.cs @@ -19,186 +19,185 @@ using System.Diagnostics; using SoulMemory.Memory; -namespace SoulMemory.DarkSouls2 +namespace SoulMemory.DarkSouls2; + +internal class Vanilla : IDarkSouls2 { - internal class Vanilla : IDarkSouls2 + private Process? _process; + private readonly Pointer _eventFlagManager = new Pointer(); + private readonly Pointer _position = new Pointer(); + private readonly Pointer _loadState = new Pointer(); + private readonly Pointer _bossCounters = new Pointer(); + private readonly Pointer _attributes = new Pointer(); + + #region Refresh/init/reset ================================================================================================================================ + public Process? GetProcess() => _process; + + public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, "darksoulsii", InitPointers, ResetPointers); + public int GetInGameTimeMilliseconds() => 0; + private void ResetPointers() + { + _eventFlagManager.Clear(); + _position.Clear(); + _loadState.Clear(); + _bossCounters.Clear(); + _attributes.Clear(); + } + + public TreeBuilder GetTreeBuilder() { - private Process? _process; - private readonly Pointer _eventFlagManager = new Pointer(); - private readonly Pointer _position = new Pointer(); - private readonly Pointer _loadState = new Pointer(); - private readonly Pointer _bossCounters = new Pointer(); - private readonly Pointer _attributes = new Pointer(); - - #region Refresh/init/reset ================================================================================================================================ - public Process? GetProcess() => _process; - - public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, "darksoulsii", InitPointers, ResetPointers); - public int GetInGameTimeMilliseconds() => 0; - private void ResetPointers() + var treeBuilder = new TreeBuilder(); + treeBuilder + .ScanAbsolute("GameManagerImp", "8B F1 8B 0D ? ? ? 01 8B 01 8B 50 28 FF D2 84 C0 74 0C", 4) + .AddPointer(_eventFlagManager, 0, 0, 0x44, 0x10) + .AddPointer(_position, 0, 0, 0x74) + .AddPointer(_bossCounters, 0, 0, 0x44, 0x14, 0x10, 0x4) + .AddPointer(_attributes, 0, 0, 0x74, 0x378); + treeBuilder + .ScanAbsolute("LoadState", "89 35 ? ? ? ? e8 ? ? ? ? 66 0f ef c0", 2) + .AddPointer(_loadState, 0, 0); + + return treeBuilder; + } + + private ResultErr InitPointers() + { + try { - _eventFlagManager.Clear(); - _position.Clear(); - _loadState.Clear(); - _bossCounters.Clear(); - _attributes.Clear(); + var treeBuilder = GetTreeBuilder(); + return MemoryScanner.TryResolvePointers(treeBuilder, _process); } - - public TreeBuilder GetTreeBuilder() + catch (Exception e) { - var treeBuilder = new TreeBuilder(); - treeBuilder - .ScanAbsolute("GameManagerImp", "8B F1 8B 0D ? ? ? 01 8B 01 8B 50 28 FF D2 84 C0 74 0C", 4) - .AddPointer(_eventFlagManager, 0, 0, 0x44, 0x10) - .AddPointer(_position, 0, 0, 0x74) - .AddPointer(_bossCounters, 0, 0, 0x44, 0x14, 0x10, 0x4) - .AddPointer(_attributes, 0, 0, 0x74, 0x378); - treeBuilder - .ScanAbsolute("LoadState", "89 35 ? ? ? ? e8 ? ? ? ? 66 0f ef c0", 2) - .AddPointer(_loadState, 0, 0); - - return treeBuilder; + return RefreshError.FromException(e); } + } - private ResultErr InitPointers() + #endregion + + public Vector3f GetPosition() + { + if (_position == null) { - try - { - var treeBuilder = GetTreeBuilder(); - return MemoryScanner.TryResolvePointers(treeBuilder, _process); - } - catch (Exception e) - { - return RefreshError.FromException(e); - } + return new Vector3f(); } - #endregion - - public Vector3f GetPosition() - { - if (_position == null) - { - return new Vector3f(); - } + return new Vector3f( + _position.ReadFloat(0x88), + _position.ReadFloat(0x80), + _position.ReadFloat(0x84) + ); + } - return new Vector3f( - _position.ReadFloat(0x88), - _position.ReadFloat(0x80), - _position.ReadFloat(0x84) - ); + public int GetBossKillCount(BossType bossType) + { + if (_bossCounters == null) + { + return 0; } + return _bossCounters.ReadInt32((long)bossType); + } - public int GetBossKillCount(BossType bossType) + public bool IsLoading() + { + if (_loadState == null) { - if (_bossCounters == null) - { - return 0; - } - return _bossCounters.ReadInt32((long)bossType); + return false; } - public bool IsLoading() - { - if (_loadState == null) - { - return false; - } + return _loadState.ReadUInt32(0x1D4) == 1; + } - return _loadState.ReadUInt32(0x1D4) == 1; + public int GetAttribute(Attribute attribute) + { + if (_attributes == null) + { + return 0; } - public int GetAttribute(Attribute attribute) + var offset = _attributeOffsets[attribute]; + if (attribute == Attribute.SoulLevel) { - if (_attributes == null) - { - return 0; - } - - var offset = _attributeOffsets[attribute]; - if (attribute == Attribute.SoulLevel) - { - return _attributes.ReadInt32(offset); - } - else - { - var bytes = _attributes.ReadBytes(2, offset); - return BitConverter.ToInt16(bytes, 0); - } + return _attributes.ReadInt32(offset); } + else + { + var bytes = _attributes.ReadBytes(2, offset); + return BitConverter.ToInt16(bytes, 0); + } + } - public bool ReadEventFlag(uint eventFlagId) + public bool ReadEventFlag(uint eventFlagId) + { + if (_eventFlagManager == null) { - if (_eventFlagManager == null) - { - return false; - } + return false; + } - var eventCategory = eventFlagId / 10000 * 0x89; - var offset = eventCategory % 0x1f * 4 + 0x10; + var eventCategory = eventFlagId / 10000 * 0x89; + var offset = eventCategory % 0x1f * 4 + 0x10; - //var uVar1 = ((eventCategory - eventCategory / 0x1f >> 1) + (eventCategory / 0x1f) >> 4) * 31; - //var r8d = eventCategory - uVar1; - // - //var tesy = (IntPtr)_eventFlagManager.ReadInt32(); - // - //var offset = r8d * 0x4 + 0x10; + //var uVar1 = ((eventCategory - eventCategory / 0x1f >> 1) + (eventCategory / 0x1f) >> 4) * 31; + //var r8d = eventCategory - uVar1; + // + //var tesy = (IntPtr)_eventFlagManager.ReadInt32(); + // + //var offset = r8d * 0x4 + 0x10; - //var address = (IntPtr)_eventFlagManager.GetAddress(); - var vector = _eventFlagManager.CreatePointerFromAddress(offset); + //var address = (IntPtr)_eventFlagManager.GetAddress(); + var vector = _eventFlagManager.CreatePointerFromAddress(offset); - //ecx 100A9ED0 - //edx 00000011 - //res:10152830 + //ecx 100A9ED0 + //edx 00000011 + //res:10152830 - for (int i = 0; i < 100; i++) //Replaced infinite while with for loop, in case some memes occur and the function never returns + for (int i = 0; i < 100; i++) //Replaced infinite while with for loop, in case some memes occur and the function never returns + { + if (vector.IsNullPtr()) { - if (vector.IsNullPtr()) - { - return false; - //TODO: fix this. Should be (uVar1 * 0x1f >> 8) << 8 - //;result = uVar1 & 0xffffffffffffff00; - } + return false; + //TODO: fix this. Should be (uVar1 * 0x1f >> 8) << 8 + //;result = uVar1 & 0xffffffffffffff00; + } - if (vector.ReadInt32(0x8) == eventFlagId / 10000) + if (vector.ReadInt32(0x8) == eventFlagId / 10000) + { + var category2 = eventFlagId % 10000 >> 3; + if (category2 < vector.ReadInt32(0x4)) { - var category2 = eventFlagId % 10000 >> 3; - if (category2 < vector.ReadInt32(0x4)) - { - var ptr = vector.CreatePointerFromAddress(0x0); - var shift = (int)(0x7 - eventFlagId % 10000 & 0x7); - var shifted = 0x1 << shift; - var flagBit = ptr.ReadByte(category2); - return flagBit == shifted; - } + var ptr = vector.CreatePointerFromAddress(0x0); + var shift = (int)(0x7 - eventFlagId % 10000 & 0x7); + var shifted = 0x1 << shift; + var flagBit = ptr.ReadByte(category2); + return flagBit == shifted; } - vector = vector.CreatePointerFromAddress(0xc); } - - return false; + vector = vector.CreatePointerFromAddress(0xc); } + return false; + } - #region Lookup tables - private readonly Dictionary _attributeOffsets = new Dictionary() - { - { Attribute.SoulLevel , 0xcc}, - { Attribute.Vigor , 0x4}, - { Attribute.Endurance , 0x6}, - { Attribute.Vitality , 0x8}, - { Attribute.Attunement , 0xa}, - { Attribute.Strength , 0xc}, - { Attribute.Dexterity , 0xe}, - { Attribute.Adaptability, 0x14}, - { Attribute.Intelligence, 0x10}, - { Attribute.Faith , 0x12}, - }; + #region Lookup tables + private readonly Dictionary _attributeOffsets = new Dictionary() + { + { Attribute.SoulLevel , 0xcc}, + { Attribute.Vigor , 0x4}, + { Attribute.Endurance , 0x6}, + { Attribute.Vitality , 0x8}, + { Attribute.Attunement , 0xa}, + { Attribute.Strength , 0xc}, + { Attribute.Dexterity , 0xe}, + { Attribute.Adaptability, 0x14}, + { Attribute.Intelligence, 0x10}, + { Attribute.Faith , 0x12}, + }; - #endregion - } + + #endregion } diff --git a/src/SoulMemory/DarkSouls3/Attributes.cs b/src/SoulMemory/DarkSouls3/Attributes.cs index 886f219..c0033fd 100644 --- a/src/SoulMemory/DarkSouls3/Attributes.cs +++ b/src/SoulMemory/DarkSouls3/Attributes.cs @@ -16,22 +16,21 @@ using System.Xml.Serialization; -namespace SoulMemory.DarkSouls3 +namespace SoulMemory.DarkSouls3; + +[XmlType(Namespace = "SoulMemory.DarkSouls3")] +public enum Attribute { - [XmlType(Namespace = "SoulMemory.DarkSouls3")] - public enum Attribute - { - Vigor = 0x44, - Attunement = 0x48, - Endurance = 0x4c, - Vitality = 0x6c, - Strength = 0x50, - Dexterity = 0x54, - Intelligence = 0x58, - Faith = 0x5c, - Luck = 0x60, + Vigor = 0x44, + Attunement = 0x48, + Endurance = 0x4c, + Vitality = 0x6c, + Strength = 0x50, + Dexterity = 0x54, + Intelligence = 0x58, + Faith = 0x5c, + Luck = 0x60, - SoulLevel = 0x70, - Humanity = 0x68, - } + SoulLevel = 0x70, + Humanity = 0x68, } diff --git a/src/SoulMemory/DarkSouls3/Bonfire.cs b/src/SoulMemory/DarkSouls3/Bonfire.cs index 3d32395..2ca9dac 100644 --- a/src/SoulMemory/DarkSouls3/Bonfire.cs +++ b/src/SoulMemory/DarkSouls3/Bonfire.cs @@ -16,240 +16,239 @@ using System.Xml.Serialization; -namespace SoulMemory.DarkSouls3 +namespace SoulMemory.DarkSouls3; + +[XmlType(Namespace = "DarkSouls3")] +public enum Bonfire : uint { - [XmlType(Namespace = "DarkSouls3")] - public enum Bonfire : uint - { - [Annotation(Name = "Firelink Shrine", Description="Cemetery of Ash")] - FirelinkShrine = 14000000, + [Annotation(Name = "Firelink Shrine", Description="Cemetery of Ash")] + FirelinkShrine = 14000000, - [Annotation(Name = "Cemetery of Ash", Description="Cemetery of Ash")] - CemeteryOfAsh = 14000001, + [Annotation(Name = "Cemetery of Ash", Description="Cemetery of Ash")] + CemeteryOfAsh = 14000001, - [Annotation(Name = "Iudex Gundyr", Description="Cemetery of Ash")] - IudexGundyr = 14000002, + [Annotation(Name = "Iudex Gundyr", Description="Cemetery of Ash")] + IudexGundyr = 14000002, - [Annotation(Name = "Untended Graves", Description="Cemetery of Ash")] - UntendedGraves = 14000003, + [Annotation(Name = "Untended Graves", Description="Cemetery of Ash")] + UntendedGraves = 14000003, - [Annotation(Name = "Champion Gundyr", Description="Cemetery of Ash")] - ChampionGundyr = 14000004, - - [Annotation(Name = "High Wall of Lothric", Description="High Wall of Lothric")] - HighWallOfLothric = 13000009, + [Annotation(Name = "Champion Gundyr", Description="Cemetery of Ash")] + ChampionGundyr = 14000004, + + [Annotation(Name = "High Wall of Lothric", Description="High Wall of Lothric")] + HighWallOfLothric = 13000009, - [Annotation(Name = "Tower on the Wall", Description="High Wall of Lothric")] - TowerOnTheWall = 13000005, + [Annotation(Name = "Tower on the Wall", Description="High Wall of Lothric")] + TowerOnTheWall = 13000005, - [Annotation(Name = "Vordt of the Boreal Valley", Description="High Wall of Lothric")] - VordtOfTheBorealValley = 13000002, + [Annotation(Name = "Vordt of the Boreal Valley", Description="High Wall of Lothric")] + VordtOfTheBorealValley = 13000002, - [Annotation(Name = "Dancer of the Boreal Valley", Description="High Wall of Lothric")] - DancerOfTheBorealValley = 13000004, + [Annotation(Name = "Dancer of the Boreal Valley", Description="High Wall of Lothric")] + DancerOfTheBorealValley = 13000004, - [Annotation(Name = "Oceiros, the Consumed King", Description="High Wall of Lothric")] - OceirosTheConsumedKing = 13000001, + [Annotation(Name = "Oceiros, the Consumed King", Description="High Wall of Lothric")] + OceirosTheConsumedKing = 13000001, - [Annotation(Name = "Foot of the High Wall", Description="Undead Settlement")] - FootOfTheHighWall = 13100004, + [Annotation(Name = "Foot of the High Wall", Description="Undead Settlement")] + FootOfTheHighWall = 13100004, - [Annotation(Name = "Undead Settlement", Description="Undead Settlement")] - UndeadSettlement = 13100000, + [Annotation(Name = "Undead Settlement", Description="Undead Settlement")] + UndeadSettlement = 13100000, - [Annotation(Name = "Cliff Underside", Description="Undead Settlement")] - CliffUnderside = 13100002, + [Annotation(Name = "Cliff Underside", Description="Undead Settlement")] + CliffUnderside = 13100002, - [Annotation(Name = "Dilapidated Bridge", Description="Undead Settlement")] - DilapidatedBridge = 13100003, + [Annotation(Name = "Dilapidated Bridge", Description="Undead Settlement")] + DilapidatedBridge = 13100003, - [Annotation(Name = "Pit of Hollows", Description="Undead Settlement")] - PitOfHollows = 13100001, + [Annotation(Name = "Pit of Hollows", Description="Undead Settlement")] + PitOfHollows = 13100001, - [Annotation(Name = "Road of Sacrifices", Description="Road of Sacrifices")] - RoadOfSacrifices = 13300006, + [Annotation(Name = "Road of Sacrifices", Description="Road of Sacrifices")] + RoadOfSacrifices = 13300006, - [Annotation(Name = "Halfway Fortress", Description="Road of Sacrifices")] - HalfwayFortress = 13300000, + [Annotation(Name = "Halfway Fortress", Description="Road of Sacrifices")] + HalfwayFortress = 13300000, - [Annotation(Name = "Crucifixion Woods", Description="Road of Sacrifices")] - CrucifixionWoods = 13300007, + [Annotation(Name = "Crucifixion Woods", Description="Road of Sacrifices")] + CrucifixionWoods = 13300007, - [Annotation(Name = "Crystal Sage", Description="Road of Sacrifices")] - CrystalSage = 13300002, + [Annotation(Name = "Crystal Sage", Description="Road of Sacrifices")] + CrystalSage = 13300002, - [Annotation(Name = "Farron Keep", Description="Road of Sacrifices")] - FarronKeep = 13300003, + [Annotation(Name = "Farron Keep", Description="Road of Sacrifices")] + FarronKeep = 13300003, - [Annotation(Name = "Keep Ruins", Description="Road of Sacrifices")] - KeepRuins = 13300004, + [Annotation(Name = "Keep Ruins", Description="Road of Sacrifices")] + KeepRuins = 13300004, - [Annotation(Name = "Farron Keep Perimeter", Description="Road of Sacrifices")] - FarronKeepPerimeter = 13300008, + [Annotation(Name = "Farron Keep Perimeter", Description="Road of Sacrifices")] + FarronKeepPerimeter = 13300008, - [Annotation(Name = "Old Wolf of Farron", Description="Road of Sacrifices")] - OldWolfOfFarron = 13300005, + [Annotation(Name = "Old Wolf of Farron", Description="Road of Sacrifices")] + OldWolfOfFarron = 13300005, - [Annotation(Name = "Abyss Watchers", Description="Road of Sacrifices")] - AbyssWatchers = 13300001, + [Annotation(Name = "Abyss Watchers", Description="Road of Sacrifices")] + AbyssWatchers = 13300001, - [Annotation(Name = "Cathedral of the Deep", Description="Cathedral of the Deep")] - CathedralOfTheDeep = 13500003, + [Annotation(Name = "Cathedral of the Deep", Description="Cathedral of the Deep")] + CathedralOfTheDeep = 13500003, - [Annotation(Name = "Cleansing Chapel", Description="Cathedral of the Deep")] - CleansingChapel = 13500000, + [Annotation(Name = "Cleansing Chapel", Description="Cathedral of the Deep")] + CleansingChapel = 13500000, - [Annotation(Name = "Rosaria's Bed Chamber", Description="Cathedral of the Deep")] - RosariasBedChamber = 13500002, + [Annotation(Name = "Rosaria's Bed Chamber", Description="Cathedral of the Deep")] + RosariasBedChamber = 13500002, - [Annotation(Name = "Deacons of the Deep", Description="Cathedral of the Deep")] - DeaconsOfTheDeep = 13500001, + [Annotation(Name = "Deacons of the Deep", Description="Cathedral of the Deep")] + DeaconsOfTheDeep = 13500001, - [Annotation(Name = "Catacombs of Carthus", Description="Catacombs of Carthus")] - CatacombsOfCarthus = 13800006, + [Annotation(Name = "Catacombs of Carthus", Description="Catacombs of Carthus")] + CatacombsOfCarthus = 13800006, - [Annotation(Name = "High Lord Wolnir", Description="Catacombs of Carthus")] - HighLordWolnir = 13800000, + [Annotation(Name = "High Lord Wolnir", Description="Catacombs of Carthus")] + HighLordWolnir = 13800000, - [Annotation(Name = "Abandoned Tomb", Description="Catacombs of Carthus")] - AbandonedTomb = 13800001, + [Annotation(Name = "Abandoned Tomb", Description="Catacombs of Carthus")] + AbandonedTomb = 13800001, - [Annotation(Name = "Old King's Antechamber", Description="Catacombs of Carthus")] - OldKingsAntechamber = 13800002, + [Annotation(Name = "Old King's Antechamber", Description="Catacombs of Carthus")] + OldKingsAntechamber = 13800002, - [Annotation(Name = "Demon Ruins", Description="Catacombs of Carthus")] - DemonRuins = 13800003, + [Annotation(Name = "Demon Ruins", Description="Catacombs of Carthus")] + DemonRuins = 13800003, - [Annotation(Name = "Old Demon King", Description="Catacombs of Carthus")] - OldDemonKing = 13800004, + [Annotation(Name = "Old Demon King", Description="Catacombs of Carthus")] + OldDemonKing = 13800004, - [Annotation(Name = "Irithyll of the Boreal Valley", Description="Irithyll of the Boreal Valley")] - IrithyllOfTheBorealValley = 13700007, + [Annotation(Name = "Irithyll of the Boreal Valley", Description="Irithyll of the Boreal Valley")] + IrithyllOfTheBorealValley = 13700007, - [Annotation(Name = "Central Irithyll", Description="Irithyll of the Boreal Valley")] - CentralIrithyll = 13700004, + [Annotation(Name = "Central Irithyll", Description="Irithyll of the Boreal Valley")] + CentralIrithyll = 13700004, - [Annotation(Name = "Church of Yorshka", Description="Irithyll of the Boreal Valley")] - ChurchOfYorshka = 13700000, + [Annotation(Name = "Church of Yorshka", Description="Irithyll of the Boreal Valley")] + ChurchOfYorshka = 13700000, - [Annotation(Name = "Distant Manor", Description="Irithyll of the Boreal Valley")] - DistantManor = 13700005, + [Annotation(Name = "Distant Manor", Description="Irithyll of the Boreal Valley")] + DistantManor = 13700005, - [Annotation(Name = "Pontiff Sulyvahn", Description="Irithyll of the Boreal Valley")] - PontiffSulyvahn = 13700001, + [Annotation(Name = "Pontiff Sulyvahn", Description="Irithyll of the Boreal Valley")] + PontiffSulyvahn = 13700001, - [Annotation(Name = "Water Reserve", Description="Irithyll of the Boreal Valley")] - WaterReserve = 13700006, + [Annotation(Name = "Water Reserve", Description="Irithyll of the Boreal Valley")] + WaterReserve = 13700006, - [Annotation(Name = "Anor Londo", Description="Irithyll of the Boreal Valley")] - AnorLondo = 13700003, + [Annotation(Name = "Anor Londo", Description="Irithyll of the Boreal Valley")] + AnorLondo = 13700003, - [Annotation(Name = "Prison Tower", Description="Irithyll of the Boreal Valley")] - PrisonTower = 13700008, + [Annotation(Name = "Prison Tower", Description="Irithyll of the Boreal Valley")] + PrisonTower = 13700008, - [Annotation(Name = "Aldrich, Devourer of Gods", Description="Irithyll of the Boreal Valley")] - AldrichDevourerOfGods = 13700002, + [Annotation(Name = "Aldrich, Devourer of Gods", Description="Irithyll of the Boreal Valley")] + AldrichDevourerOfGods = 13700002, - [Annotation(Name = "Irithyll Dungeon", Description="Irithyll Dungeon")] - IrithyllDungeon = 13900000, + [Annotation(Name = "Irithyll Dungeon", Description="Irithyll Dungeon")] + IrithyllDungeon = 13900000, - [Annotation(Name = "Profaned Capital", Description="Irithyll Dungeon")] - ProfanedCapital = 13900002, + [Annotation(Name = "Profaned Capital", Description="Irithyll Dungeon")] + ProfanedCapital = 13900002, - [Annotation(Name = "Yhorm the Giant", Description="Irithyll Dungeon")] - YhormTheGiant = 13900001, + [Annotation(Name = "Yhorm the Giant", Description="Irithyll Dungeon")] + YhormTheGiant = 13900001, - [Annotation(Name = "Lothric Castle", Description="Lothric Castle")] - LothricCastle = 13010000, + [Annotation(Name = "Lothric Castle", Description="Lothric Castle")] + LothricCastle = 13010000, - [Annotation(Name = "Dragon Barracks", Description="Lothric Castle")] - DragonBarracks = 13010002, + [Annotation(Name = "Dragon Barracks", Description="Lothric Castle")] + DragonBarracks = 13010002, - [Annotation(Name = "Dragonslayer Armour", Description="Lothric Castle")] - DragonslayerArmour = 13010001, + [Annotation(Name = "Dragonslayer Armour", Description="Lothric Castle")] + DragonslayerArmour = 13010001, - [Annotation(Name = "Grand Archives", Description="Lothric Castle")] - GrandArchives = 13410001, + [Annotation(Name = "Grand Archives", Description="Lothric Castle")] + GrandArchives = 13410001, - [Annotation(Name = "Twin Princes", Description="Lothric Castle")] - TwinPrinces = 13410000, + [Annotation(Name = "Twin Princes", Description="Lothric Castle")] + TwinPrinces = 13410000, - [Annotation(Name = "Archdragon Peak", Description="Archdragon Peak")] - ArchdragonPeak = 13200000, + [Annotation(Name = "Archdragon Peak", Description="Archdragon Peak")] + ArchdragonPeak = 13200000, - [Annotation(Name = "Dragon-Kin Mausoleum", Description="Archdragon Peak")] - DragonKinMausoleum = 13200003, + [Annotation(Name = "Dragon-Kin Mausoleum", Description="Archdragon Peak")] + DragonKinMausoleum = 13200003, - [Annotation(Name = "Great Belfry", Description="Archdragon Peak")] - GreatBelfry = 13200002, + [Annotation(Name = "Great Belfry", Description="Archdragon Peak")] + GreatBelfry = 13200002, - [Annotation(Name = "Nameless King", Description="Archdragon Peak")] - NamelessKing = 13200001, + [Annotation(Name = "Nameless King", Description="Archdragon Peak")] + NamelessKing = 13200001, - [Annotation(Name = "Flameless Shrine", Description="Kiln of the First Flame")] - FlamelessShrine = 14100000, + [Annotation(Name = "Flameless Shrine", Description="Kiln of the First Flame")] + FlamelessShrine = 14100000, - [Annotation(Name = "Kiln of the First Flame", Description="Kiln of the First Flame")] - KilnOfTheFirstFlame = 14100001, - - [Annotation(Name = "Snowfield", Description="The Painted World of Ariandel")] - Snowfield = 14500001, + [Annotation(Name = "Kiln of the First Flame", Description="Kiln of the First Flame")] + KilnOfTheFirstFlame = 14100001, + + [Annotation(Name = "Snowfield", Description="The Painted World of Ariandel")] + Snowfield = 14500001, - [Annotation(Name = "Rope Bridge Cave", Description="The Painted World of Ariandel")] - RopeBridgeCave = 14500002, + [Annotation(Name = "Rope Bridge Cave", Description="The Painted World of Ariandel")] + RopeBridgeCave = 14500002, - [Annotation(Name = "Corvian Settlement", Description="The Painted World of Ariandel")] - CorvianSettlement = 14500003, + [Annotation(Name = "Corvian Settlement", Description="The Painted World of Ariandel")] + CorvianSettlement = 14500003, - [Annotation(Name = "Snowy Mountain Pass", Description="The Painted World of Ariandel")] - SnowyMountainPass = 14500004, + [Annotation(Name = "Snowy Mountain Pass", Description="The Painted World of Ariandel")] + SnowyMountainPass = 14500004, - [Annotation(Name = "Ariandel Chapel", Description="The Painted World of Ariandel")] - AriandelChapel = 14500005, + [Annotation(Name = "Ariandel Chapel", Description="The Painted World of Ariandel")] + AriandelChapel = 14500005, - [Annotation(Name = "Sister Friede", Description="The Painted World of Ariandel")] - SisterFriede = 14500000, + [Annotation(Name = "Sister Friede", Description="The Painted World of Ariandel")] + SisterFriede = 14500000, - [Annotation(Name = "Depths of the Painting", Description="The Painted World of Ariandel")] - DepthsOfThePainting = 14500007, + [Annotation(Name = "Depths of the Painting", Description="The Painted World of Ariandel")] + DepthsOfThePainting = 14500007, - [Annotation(Name = "Champion's Gravetender", Description="The Painted World of Ariandel")] - ChampionsGravetender = 14500006, + [Annotation(Name = "Champion's Gravetender", Description="The Painted World of Ariandel")] + ChampionsGravetender = 14500006, - [Annotation(Name = "The Dreg Heap", Description="The Dreg Heap")] - TheDregHeap = 15000001, + [Annotation(Name = "The Dreg Heap", Description="The Dreg Heap")] + TheDregHeap = 15000001, - [Annotation(Name = "Earthen Peak Ruins", Description="The Dreg Heap")] - EarthenPeakRuins = 15000002, + [Annotation(Name = "Earthen Peak Ruins", Description="The Dreg Heap")] + EarthenPeakRuins = 15000002, - [Annotation(Name = "Within the Earthen Peak Ruins", Description="The Dreg Heap")] - WithinTheEarthenPeakRuins = 15000003, + [Annotation(Name = "Within the Earthen Peak Ruins", Description="The Dreg Heap")] + WithinTheEarthenPeakRuins = 15000003, - [Annotation(Name = "The Demon Prince", Description="The Dreg Heap")] - TheDemonPrince = 15000000, + [Annotation(Name = "The Demon Prince", Description="The Dreg Heap")] + TheDemonPrince = 15000000, - [Annotation(Name = "Mausoleum Lookout", Description="The Ringed City")] - MausoleumLookout = 15100002, + [Annotation(Name = "Mausoleum Lookout", Description="The Ringed City")] + MausoleumLookout = 15100002, - [Annotation(Name = "Ringed Inner Wall", Description="The Ringed City")] - RingedInnerWall = 15100003, + [Annotation(Name = "Ringed Inner Wall", Description="The Ringed City")] + RingedInnerWall = 15100003, - [Annotation(Name = "Ringed City Streets", Description="The Ringed City")] - RingedCityStreets = 15100004, + [Annotation(Name = "Ringed City Streets", Description="The Ringed City")] + RingedCityStreets = 15100004, - [Annotation(Name = "Shared Grave", Description="The Ringed City")] - SharedGrave = 15100005, + [Annotation(Name = "Shared Grave", Description="The Ringed City")] + SharedGrave = 15100005, - [Annotation(Name = "Church of Filianore", Description="The Ringed City")] - ChurchOfFilianore = 15100000, + [Annotation(Name = "Church of Filianore", Description="The Ringed City")] + ChurchOfFilianore = 15100000, - [Annotation(Name = "Darkeater Midir", Description="The Ringed City")] - DarkeaterMidir = 15100001, + [Annotation(Name = "Darkeater Midir", Description="The Ringed City")] + DarkeaterMidir = 15100001, - [Annotation(Name = "Filianore's Rest", Description="The Ringed City")] - FilianoresRest = 15110001, + [Annotation(Name = "Filianore's Rest", Description="The Ringed City")] + FilianoresRest = 15110001, - [Annotation(Name = "Slave Knight Gael", Description="The Ringed City")] - SlaveKnightGael = 15110000, - } + [Annotation(Name = "Slave Knight Gael", Description="The Ringed City")] + SlaveKnightGael = 15110000, } diff --git a/src/SoulMemory/DarkSouls3/Boss.cs b/src/SoulMemory/DarkSouls3/Boss.cs index b5ec412..f79e38d 100644 --- a/src/SoulMemory/DarkSouls3/Boss.cs +++ b/src/SoulMemory/DarkSouls3/Boss.cs @@ -16,86 +16,85 @@ using System.Xml.Serialization; -namespace SoulMemory.DarkSouls3 +namespace SoulMemory.DarkSouls3; + +[XmlType(Namespace = "DarkSouls3")] +public enum Boss : uint { - [XmlType(Namespace = "DarkSouls3")] - public enum Boss : uint - { - //Academy of Raya Lucaria + //Academy of Raya Lucaria - [Annotation(Name = "Iudex Gundyr", Description = "Cemetery of Ash")] - IudexGundyr = 14000800, + [Annotation(Name = "Iudex Gundyr", Description = "Cemetery of Ash")] + IudexGundyr = 14000800, - [Annotation(Name = "Vordt of the Boreal Valley", Description = "High Wall of Lothric")] - VordtOfTheBorealValley = 13000800, + [Annotation(Name = "Vordt of the Boreal Valley", Description = "High Wall of Lothric")] + VordtOfTheBorealValley = 13000800, - [Annotation(Name = "Curse-Rotted Greatwood", Description = "Undead Settlement")] - CurseRottedGreatwood = 13100800, - - [Annotation(Name = "Crystal Sage", Description = "Road of Sacrifices")] - CrystalSage = 13300850, - - [Annotation(Name = "Abyss Watchers", Description = "Farron Keep")] - AbyssWatchers = 13300800, - - [Annotation(Name = "Deacons of the Deep", Description = "Cathedral of the Deep")] - DeaconsOfTheDeep = 13500800, - - [Annotation(Name = "High Lord Wolnir", Description = "Catacombs of Carthus")] - HighLordWolnir = 13800800, - - [Annotation(Name = "Old Demon King", Description = "Smouldering Lake")] - OldDemonKing = 13800830, - - [Annotation(Name = "Pontiff Sulyvahn", Description = "Irithyll of the Boreal Valley")] - PontiffSulyvahn = 13700850, - - [Annotation(Name = "Yhorm the Giant", Description = "Profaned Capital")] - YhormTheGiant = 13900800, - - [Annotation(Name = "Aldrich, Devourer of Gods", Description = "Anor Londo")] - AldrichDevourerOfGods = 13700800, - - [Annotation(Name = "Dancer of the Boreal Valley", Description = "High Wall of Lothric")] - DancerOfTheBorealValley = 13000890, + [Annotation(Name = "Curse-Rotted Greatwood", Description = "Undead Settlement")] + CurseRottedGreatwood = 13100800, + + [Annotation(Name = "Crystal Sage", Description = "Road of Sacrifices")] + CrystalSage = 13300850, + + [Annotation(Name = "Abyss Watchers", Description = "Farron Keep")] + AbyssWatchers = 13300800, + + [Annotation(Name = "Deacons of the Deep", Description = "Cathedral of the Deep")] + DeaconsOfTheDeep = 13500800, + + [Annotation(Name = "High Lord Wolnir", Description = "Catacombs of Carthus")] + HighLordWolnir = 13800800, + + [Annotation(Name = "Old Demon King", Description = "Smouldering Lake")] + OldDemonKing = 13800830, + + [Annotation(Name = "Pontiff Sulyvahn", Description = "Irithyll of the Boreal Valley")] + PontiffSulyvahn = 13700850, + + [Annotation(Name = "Yhorm the Giant", Description = "Profaned Capital")] + YhormTheGiant = 13900800, + + [Annotation(Name = "Aldrich, Devourer of Gods", Description = "Anor Londo")] + AldrichDevourerOfGods = 13700800, + + [Annotation(Name = "Dancer of the Boreal Valley", Description = "High Wall of Lothric")] + DancerOfTheBorealValley = 13000890, - [Annotation(Name = "Dragonslayer Armour", Description = "Lothric Castle")] - DragonslayerArmour = 13010800, + [Annotation(Name = "Dragonslayer Armour", Description = "Lothric Castle")] + DragonslayerArmour = 13010800, - [Annotation(Name = "Oceiros, the Consumed King", Description = "Consumed King's Garden")] - OceirosTheConsumedKing = 13000830, - - [Annotation(Name = "Champion Gundyr", Description = "Untended Graves")] - ChampionGundyr = 14000830, + [Annotation(Name = "Oceiros, the Consumed King", Description = "Consumed King's Garden")] + OceirosTheConsumedKing = 13000830, + + [Annotation(Name = "Champion Gundyr", Description = "Untended Graves")] + ChampionGundyr = 14000830, - [Annotation(Name = "Lothric, Younger Prince", Description = "The top of Lothric Castle")] - LothricYoungerPrince = 13410830, + [Annotation(Name = "Lothric, Younger Prince", Description = "The top of Lothric Castle")] + LothricYoungerPrince = 13410830, - [Annotation(Name = "Ancient Wyvern", Description = "Archdragon Peak")] - AncientWyvern = 13200800, - - [Annotation(Name = "Nameless King", Description = "Archdragon Peak")] - NamelessKing = 13200850, - - [Annotation(Name = "Soul of Cinder", Description = "Kiln of the First Flame")] - SoulOfCinder = 14100800, - - [Annotation(Name = "Sister Friede", Description = "Painted World of Ariandel")] - SisterFriede = 14500800, - - [Annotation(Name = "Champion's Gravetender & Gravetender Greatwolf", Description = "Painted World of Ariandel")] - ChampionsGravetenderAndGravetenderGreatwolf = 14500860, - - [Annotation(Name = "Demon in Pain & Demon From Below / Demon Prince", Description = "The Dreg Heap")] - DemonInPainAndDemonFromBelowDemonPrince = 15000800, + [Annotation(Name = "Ancient Wyvern", Description = "Archdragon Peak")] + AncientWyvern = 13200800, + + [Annotation(Name = "Nameless King", Description = "Archdragon Peak")] + NamelessKing = 13200850, + + [Annotation(Name = "Soul of Cinder", Description = "Kiln of the First Flame")] + SoulOfCinder = 14100800, + + [Annotation(Name = "Sister Friede", Description = "Painted World of Ariandel")] + SisterFriede = 14500800, + + [Annotation(Name = "Champion's Gravetender & Gravetender Greatwolf", Description = "Painted World of Ariandel")] + ChampionsGravetenderAndGravetenderGreatwolf = 14500860, + + [Annotation(Name = "Demon in Pain & Demon From Below / Demon Prince", Description = "The Dreg Heap")] + DemonInPainAndDemonFromBelowDemonPrince = 15000800, - [Annotation(Name = "Halflight, Spear of the Church", Description = "The Ringed City")] - HalflightSpearOfTheChurch = 15100800, + [Annotation(Name = "Halflight, Spear of the Church", Description = "The Ringed City")] + HalflightSpearOfTheChurch = 15100800, - [Annotation(Name = "Darkeater Midir", Description = "The Ringed City")] - DarkeaterMidir = 15100850, - - [Annotation(Name = "Slave Knight Gael", Description = "The Ringed City")] - SlaveKnightGael = 15110800, - } + [Annotation(Name = "Darkeater Midir", Description = "The Ringed City")] + DarkeaterMidir = 15100850, + + [Annotation(Name = "Slave Knight Gael", Description = "The Ringed City")] + SlaveKnightGael = 15110800, } diff --git a/src/SoulMemory/DarkSouls3/DarkSouls3.cs b/src/SoulMemory/DarkSouls3/DarkSouls3.cs index 72e37bd..8f2cf88 100644 --- a/src/SoulMemory/DarkSouls3/DarkSouls3.cs +++ b/src/SoulMemory/DarkSouls3/DarkSouls3.cs @@ -19,361 +19,360 @@ using SoulMemory.Memory; using Pointer = SoulMemory.Memory.Pointer; -namespace SoulMemory.DarkSouls3 +namespace SoulMemory.DarkSouls3; + +public class DarkSouls3 : IGame { - public class DarkSouls3 : IGame + private Process? _process; + private readonly Pointer _gameDataMan = new Pointer(); + private readonly Pointer _playerGameData = new Pointer(); + private readonly Pointer _playerIns = new Pointer(); + private readonly Pointer _newMenuSystem = new Pointer(); + private readonly Pointer _loading = new Pointer(); + private readonly Pointer _blackscreen = new Pointer(); + private readonly Pointer _sprjEventFlagMan = new Pointer(); + private readonly Pointer _fieldArea = new Pointer(); + private readonly Pointer _sprjChrPhysicsModule = new Pointer(); + private long _igtOffset; + + public Process? GetProcess() => _process; + public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, "darksoulsiii", InitPointers, ResetPointers); + + public TreeBuilder GetTreeBuilder() { - private Process? _process; - private readonly Pointer _gameDataMan = new Pointer(); - private readonly Pointer _playerGameData = new Pointer(); - private readonly Pointer _playerIns = new Pointer(); - private readonly Pointer _newMenuSystem = new Pointer(); - private readonly Pointer _loading = new Pointer(); - private readonly Pointer _blackscreen = new Pointer(); - private readonly Pointer _sprjEventFlagMan = new Pointer(); - private readonly Pointer _fieldArea = new Pointer(); - private readonly Pointer _sprjChrPhysicsModule = new Pointer(); - private long _igtOffset; - - public Process? GetProcess() => _process; - public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, "darksoulsiii", InitPointers, ResetPointers); - - public TreeBuilder GetTreeBuilder() - { - var treeBuilder = new TreeBuilder(); - treeBuilder - .ScanRelative("NewMenuSystem", "48 8b 0d ? ? ? ? 48 8b 7c 24 20 48 8b 5c 24 30 48 85 c9", 3, 7) - .AddPointer(_newMenuSystem, 0); - - treeBuilder - .ScanRelative("GameDataMan", "48 8b 0d ? ? ? ? 4c 8d 44 24 40 45 33 c9 48 8b d3 40 88 74 24 28 44 88 74 24 20", 3, 7) - .AddPointer(_gameDataMan, 0) - .AddPointer(_playerGameData, 0, 0x10); - - treeBuilder - .ScanRelative("playerIns", "48 8b 0d ? ? ? ? 45 33 c0 48 8d 55 e7 e8 ? ? ? ? 0f 2f 73 70 72 0d f3 ? ? ? ? ? ? ? ? 0f 11 43 70", 3, 7) - .AddPointer(_playerIns, 0, 0x80) - .AddPointer(_sprjChrPhysicsModule, 0, 0x40, 0x28); - - treeBuilder - .ScanRelative("Loading", "c6 05 ? ? ? ? ? e8 ? ? ? ? 84 c0 0f 94 c0 e9", 2, 7) - .AddPointer(_loading); - - treeBuilder - .ScanRelative("SprjFadeImp", "48 8b 0d ? ? ? ? 4c 8d 4c 24 38 4c 8d 44 24 48 33 d2", 3, 7) //0x8 = ptr to Fd4FadeSystem - .AddPointer(_blackscreen, 0x0, 0x8, 0x2ec); - - treeBuilder - .ScanRelative("SprjEventFlagMan", "48 c7 05 ? ? ? ? 00 00 00 00 48 8b 7c 24 38 c7 46 54 ff ff ff ff 48 83 c4 20 5e c3", 3, 11) - .AddPointer(_sprjEventFlagMan, 0x0); - - treeBuilder - .ScanRelative("FieldArea", "4c 8b 3d ? ? ? ? 8b 45 87 83 f8 ff 74 69 48 8d 4d 8f 48 89 4d 9f 89 45 8f 48 8d 55 8f 49 8b 4f 10", 3, 7) - .AddPointer(_fieldArea); - - return treeBuilder; - } + var treeBuilder = new TreeBuilder(); + treeBuilder + .ScanRelative("NewMenuSystem", "48 8b 0d ? ? ? ? 48 8b 7c 24 20 48 8b 5c 24 30 48 85 c9", 3, 7) + .AddPointer(_newMenuSystem, 0); + + treeBuilder + .ScanRelative("GameDataMan", "48 8b 0d ? ? ? ? 4c 8d 44 24 40 45 33 c9 48 8b d3 40 88 74 24 28 44 88 74 24 20", 3, 7) + .AddPointer(_gameDataMan, 0) + .AddPointer(_playerGameData, 0, 0x10); + + treeBuilder + .ScanRelative("playerIns", "48 8b 0d ? ? ? ? 45 33 c0 48 8d 55 e7 e8 ? ? ? ? 0f 2f 73 70 72 0d f3 ? ? ? ? ? ? ? ? 0f 11 43 70", 3, 7) + .AddPointer(_playerIns, 0, 0x80) + .AddPointer(_sprjChrPhysicsModule, 0, 0x40, 0x28); + + treeBuilder + .ScanRelative("Loading", "c6 05 ? ? ? ? ? e8 ? ? ? ? 84 c0 0f 94 c0 e9", 2, 7) + .AddPointer(_loading); + + treeBuilder + .ScanRelative("SprjFadeImp", "48 8b 0d ? ? ? ? 4c 8d 4c 24 38 4c 8d 44 24 48 33 d2", 3, 7) //0x8 = ptr to Fd4FadeSystem + .AddPointer(_blackscreen, 0x0, 0x8, 0x2ec); + + treeBuilder + .ScanRelative("SprjEventFlagMan", "48 c7 05 ? ? ? ? 00 00 00 00 48 8b 7c 24 38 c7 46 54 ff ff ff ff 48 83 c4 20 5e c3", 3, 11) + .AddPointer(_sprjEventFlagMan, 0x0); + + treeBuilder + .ScanRelative("FieldArea", "4c 8b 3d ? ? ? ? 8b 45 87 83 f8 ff 74 69 48 8d 4d 8f 48 89 4d 9f 89 45 8f 48 8d 55 8f 49 8b 4f 10", 3, 7) + .AddPointer(_fieldArea); + + return treeBuilder; + } - private ResultErr InitPointers() + private ResultErr InitPointers() + { + try { - try - { - var versionString = _process?.MainModule?.FileVersionInfo.ProductVersion ?? "Read failed"; + var versionString = _process?.MainModule?.FileVersionInfo.ProductVersion ?? "Read failed"; - if (!Version.TryParse(versionString, out Version v)) - { - return Result.Err(new RefreshError(RefreshErrorReason.UnknownException, $"Unable to determine game version: {versionString}")); - } - - //Clear count: 0x78 -> likely subject to the same shift that happens to IGT offset - switch (GetVersion(v)) - { - default: - _igtOffset = 0xa4; - break; - - case DarkSouls3Version.Earlier: - case DarkSouls3Version.V104: - case DarkSouls3Version.V105: - _igtOffset = 0x9c; - break; - - case DarkSouls3Version.Later: - _igtOffset = 0xa4; - break; - } - - var treeBuilder = GetTreeBuilder(); - return MemoryScanner.TryResolvePointers(treeBuilder, _process); + if (!Version.TryParse(versionString, out Version v)) + { + return Result.Err(new RefreshError(RefreshErrorReason.UnknownException, $"Unable to determine game version: {versionString}")); } - catch (Exception e) + + //Clear count: 0x78 -> likely subject to the same shift that happens to IGT offset + switch (GetVersion(v)) { - return RefreshError.FromException(e); + default: + _igtOffset = 0xa4; + break; + + case DarkSouls3Version.Earlier: + case DarkSouls3Version.V104: + case DarkSouls3Version.V105: + _igtOffset = 0x9c; + break; + + case DarkSouls3Version.Later: + _igtOffset = 0xa4; + break; } - } - private void ResetPointers() + var treeBuilder = GetTreeBuilder(); + return MemoryScanner.TryResolvePointers(treeBuilder, _process); + } + catch (Exception e) { - _gameDataMan.Clear(); - _playerGameData.Clear(); - _playerIns.Clear(); - _loading.Clear(); - _blackscreen.Clear(); - _sprjEventFlagMan.Clear(); - _fieldArea.Clear(); - _sprjChrPhysicsModule.Clear(); + return RefreshError.FromException(e); } + } + private void ResetPointers() + { + _gameDataMan.Clear(); + _playerGameData.Clear(); + _playerIns.Clear(); + _loading.Clear(); + _blackscreen.Clear(); + _sprjEventFlagMan.Clear(); + _fieldArea.Clear(); + _sprjChrPhysicsModule.Clear(); + } - public enum DarkSouls3Version - { - Earlier, - V104, - V105, - Later, - }; - public static DarkSouls3Version GetVersion(Version v) + public enum DarkSouls3Version + { + Earlier, + V104, + V105, + Later, + }; + + public static DarkSouls3Version GetVersion(Version v) + { + switch (v.Minor) { - switch (v.Minor) - { - case 0: - case 1: - case 2: - case 3: - return DarkSouls3Version.Earlier; + case 0: + case 1: + case 2: + case 3: + return DarkSouls3Version.Earlier; - case 4: - return DarkSouls3Version.V104; + case 4: + return DarkSouls3Version.V104; - case 5: - return DarkSouls3Version.V105; + case 5: + return DarkSouls3Version.V105; - default: - return DarkSouls3Version.Later; - } + default: + return DarkSouls3Version.Later; } + } - public bool IsLoading() - { - return _loading.ReadInt32(-0x1) != 0; - } + public bool IsLoading() + { + return _loading.ReadInt32(-0x1) != 0; + } - public bool BlackscreenActive() - { - return _blackscreen.ReadInt32() != 0; - } + public bool BlackscreenActive() + { + return _blackscreen.ReadInt32() != 0; + } - public bool Attached => _process != null; + public bool Attached => _process != null; - public bool IsPlayerLoaded() - { - return _playerIns.ReadInt64() != 0; - } + public bool IsPlayerLoaded() + { + return _playerIns.ReadInt64() != 0; + } - public void WriteInGameTimeMilliseconds(int millis) - { - _gameDataMan.WriteInt32(_igtOffset, millis); - } + public void WriteInGameTimeMilliseconds(int millis) + { + _gameDataMan.WriteInt32(_igtOffset, millis); + } - public int GetInGameTimeMilliseconds() - { - return _gameDataMan.ReadInt32(_igtOffset); - } + public int GetInGameTimeMilliseconds() + { + return _gameDataMan.ReadInt32(_igtOffset); + } - public Vector3f GetPosition() - { - return new Vector3f - ( - _sprjChrPhysicsModule.ReadFloat(0x80), - _sprjChrPhysicsModule.ReadFloat(0x84), - _sprjChrPhysicsModule.ReadFloat(0x88) - ); - } + public Vector3f GetPosition() + { + return new Vector3f + ( + _sprjChrPhysicsModule.ReadFloat(0x80), + _sprjChrPhysicsModule.ReadFloat(0x84), + _sprjChrPhysicsModule.ReadFloat(0x88) + ); + } - #region Read attributes + #region Read attributes - public int ReadAttribute(Attribute attribute) + public int ReadAttribute(Attribute attribute) + { + if (IsPlayerLoaded() && _newMenuSystem.ReadInt32(0x88) != 3) { - if (IsPlayerLoaded() && _newMenuSystem.ReadInt32(0x88) != 3) - { - return _playerGameData.ReadInt32((long)attribute); - } - - return -1; + return _playerGameData.ReadInt32((long)attribute); } + return -1; + } - #endregion - #region read event flags - public bool ReadEventFlag(uint eventFlagId) - { - var eventFlagIdDiv10000000 = (int)(eventFlagId / 10000000) % 10; - var eventFlagArea = (int)(eventFlagId / 100000) % 100; - var eventFlagIdDiv10000 = (int)(eventFlagId / 10000) % 10; - var eventFlagIdDiv1000 = (int)(eventFlagId / 1000) % 10; + #endregion + + #region read event flags + public bool ReadEventFlag(uint eventFlagId) + { + var eventFlagIdDiv10000000 = (int)(eventFlagId / 10000000) % 10; + var eventFlagArea = (int)(eventFlagId / 100000) % 100; + var eventFlagIdDiv10000 = (int)(eventFlagId / 10000) % 10; + var eventFlagIdDiv1000 = (int)(eventFlagId / 1000) % 10; - //14000002 + //14000002 - //ItemPickup 0x0? - //Bonfire = 0x11? - var flagWorldBlockInfoCategory = -1; - if (eventFlagArea >= 90 || eventFlagArea + eventFlagIdDiv10000 == 0) + //ItemPickup 0x0? + //Bonfire = 0x11? + var flagWorldBlockInfoCategory = -1; + if (eventFlagArea >= 90 || eventFlagArea + eventFlagIdDiv10000 == 0) + { + flagWorldBlockInfoCategory = 0; + } + else + { + //Not implementing a case where Global_FieldArea_Ptr == (FieldArea *)0x0. I think it will just do some initialization there. + if (_fieldArea.IsNullPtr()) { - flagWorldBlockInfoCategory = 0; + return false; } - else - { - //Not implementing a case where Global_FieldArea_Ptr == (FieldArea *)0x0. I think it will just do some initialization there. - if (_fieldArea.IsNullPtr()) - { - return false; - } - var worldInfoOwner = _fieldArea.Append(0x0, 0x10).CreatePointerFromAddress(); + var worldInfoOwner = _fieldArea.Append(0x0, 0x10).CreatePointerFromAddress(); - //Flag stored in world related struct? Looks like the game is reading a size, and then looping over a vector of structs (size 0x38) - var size = worldInfoOwner.ReadInt32(0x8); - var vector = worldInfoOwner.Append(0x10); + //Flag stored in world related struct? Looks like the game is reading a size, and then looping over a vector of structs (size 0x38) + var size = worldInfoOwner.ReadInt32(0x8); + var vector = worldInfoOwner.Append(0x10); - //Loop over worldInfo structs - for (int i = 0; i < size; i++) + //Loop over worldInfo structs + for (int i = 0; i < size; i++) + { + //0x00007ff4fd9ba4c3 + var area = vector.ReadByte((i * 0x38) + 0xb); + if (area == eventFlagArea) { - //0x00007ff4fd9ba4c3 - var area = vector.ReadByte((i * 0x38) + 0xb); - if (area == eventFlagArea) - { - //function at 0x14060c650 - var count = vector.ReadByte(i * 0x38 + 0x20); - var index = 0; - var found = false; - Pointer? worldInfoBlockVector = null; + //function at 0x14060c650 + var count = vector.ReadByte(i * 0x38 + 0x20); + var index = 0; + var found = false; + Pointer? worldInfoBlockVector = null; - if (count >= 1) + if (count >= 1) + { + //Loop over worldBlockInfo structs, size 0xe + while (true) { - //Loop over worldBlockInfo structs, size 0xe - while (true) + worldInfoBlockVector = vector.CreatePointerFromAddress(i * 0x38 + 0x28); + var flag = worldInfoBlockVector.ReadInt32((index * 0x70) + 0x8); + + if ((flag >> 0x10 & 0xff) == eventFlagIdDiv10000 && flag >> 0x18 == eventFlagArea) { - worldInfoBlockVector = vector.CreatePointerFromAddress(i * 0x38 + 0x28); - var flag = worldInfoBlockVector.ReadInt32((index * 0x70) + 0x8); - - if ((flag >> 0x10 & 0xff) == eventFlagIdDiv10000 && flag >> 0x18 == eventFlagArea) - { - found = true; - break; - } - - index++; - if (count <= index) - { - found = false; - break; - } + found = true; + break; } - } - if (found) - { - flagWorldBlockInfoCategory = worldInfoBlockVector!.ReadInt32((index * 0x70) + 0x20); - break; + index++; + if (count <= index) + { + found = false; + break; + } } } - } - if (-1 < flagWorldBlockInfoCategory) - { - flagWorldBlockInfoCategory++; + if (found) + { + flagWorldBlockInfoCategory = worldInfoBlockVector!.ReadInt32((index * 0x70) + 0x20); + break; + } } } - - var ptr = _sprjEventFlagMan.Append(0x218, eventFlagIdDiv10000000 * 0x18, 0x0); - - if (ptr.IsNullPtr() || flagWorldBlockInfoCategory < 0) + if (-1 < flagWorldBlockInfoCategory) { - return false; + flagWorldBlockInfoCategory++; } + } - var resultPointerAddress = new Pointer(); - resultPointerAddress.Initialize(ptr.Process!, ptr.Is64Bit, (eventFlagIdDiv1000 << 4) + ptr.GetAddress() + flagWorldBlockInfoCategory * 0xa8, 0x0); - if (!resultPointerAddress.IsNullPtr()) - { - var value = resultPointerAddress.ReadUInt32((long)((uint)((int)eventFlagId % 1000) >> 5) * 4); - var mask = 1 << (0x1f - ((byte)((int)eventFlagId % 1000) & 0x1f) & 0x1f); - var result = value & mask; - return result != 0; - } + var ptr = _sprjEventFlagMan.Append(0x218, eventFlagIdDiv10000000 * 0x18, 0x0); + + if (ptr.IsNullPtr() || flagWorldBlockInfoCategory < 0) + { return false; } - //get_event_flag_pointer at 0x1404c7140 - // - //longlong get_event_flag_pointer(longlong SprjEventFlagMan_ptr, uint eventFlagId, bool state) - // - //{ - // int func_1_result_int; - // ulonglong func_1_result; - // longlong lVar1; - // longlong lVar2; - // uint eventFlagDiv_1000; - // ulonglong eventFlagDiv_10000000; - // uint local_res8[2]; - // - // /* Returns a pointer to the event flag. Pointer must be read, at on offset, - // obtained with some bitmagic applied to the event flag, to get a value - // indicating if the flag is set or not */ - // if ((*(char*)(SprjEventFlagMan_ptr + 0x228) == '\0') || ((int)eventFlagId < 0)) - // { - // return 0; - // } - // eventFlagDiv_10000000 = (ulonglong)(uint)(((int)eventFlagId / 10000000) % 10); - // eventFlagDiv_1000 = ((int)eventFlagId / 1000) % 10; - // func_1_result = - // func_1(SprjEventFlagMan_ptr, ((int)eventFlagId / 100000) % 100, ((int)eventFlagId / 10000) % 10 - // , state); - // func_1_result_int = (int)func_1_result; - // if (state == false) - // { - // /* If fieldarea not initialized (Main menu?) */ - // if (Global_FieldArea_Ptr != (FieldArea*)0x0) - // { - // FUN_1404c46b0(Global_FieldArea_Ptr->WorldInfoOwner_ptr2, local_res8, - // *(undefined4*)&Global_FieldArea_Ptr->field4_0x20); - // is_param_smaller_than_90(local_res8[0] >> 0x18); - // } - // /* Section is repeated bellow. - // Looks like the compiler failed to optimize this properly. - // It seems like param3 and Global_FieldArea_Ptr if statements are the only real - // difference, and the code is duplicated by the compiler */ - // lVar1 = *(longlong*)(*(longlong*)(SprjEventFlagMan_ptr + 0x218) + eventFlagDiv_10000000 * 0x18); - // if ((lVar1 == 0) || (func_1_result_int < 0)) - // { - // return 0; - // } - // lVar2 = (ulonglong)eventFlagDiv_1000 << 4; - // lVar1 = (longlong)func_1_result_int * 0xa8 + lVar1; - // } - // else - // { - // lVar2 = *(longlong*)(*(longlong*)(SprjEventFlagMan_ptr + 0x218) + eventFlagDiv_10000000 * 0x18); - // if (lVar2 == 0) - // { - // return 0; - // } - // if (func_1_result_int < 0) - // { - // return 0; - // } - // lVar1 = (ulonglong)eventFlagDiv_1000 << 4; - // lVar2 = (longlong)func_1_result_int * 0xa8 + lVar2; - // } - // return lVar1 + lVar2; - //} - - #endregion + var resultPointerAddress = new Pointer(); + resultPointerAddress.Initialize(ptr.Process!, ptr.Is64Bit, (eventFlagIdDiv1000 << 4) + ptr.GetAddress() + flagWorldBlockInfoCategory * 0xa8, 0x0); + + if (!resultPointerAddress.IsNullPtr()) + { + var value = resultPointerAddress.ReadUInt32((long)((uint)((int)eventFlagId % 1000) >> 5) * 4); + var mask = 1 << (0x1f - ((byte)((int)eventFlagId % 1000) & 0x1f) & 0x1f); + var result = value & mask; + return result != 0; + } + return false; } + + //get_event_flag_pointer at 0x1404c7140 + // + //longlong get_event_flag_pointer(longlong SprjEventFlagMan_ptr, uint eventFlagId, bool state) + // + //{ + // int func_1_result_int; + // ulonglong func_1_result; + // longlong lVar1; + // longlong lVar2; + // uint eventFlagDiv_1000; + // ulonglong eventFlagDiv_10000000; + // uint local_res8[2]; + // + // /* Returns a pointer to the event flag. Pointer must be read, at on offset, + // obtained with some bitmagic applied to the event flag, to get a value + // indicating if the flag is set or not */ + // if ((*(char*)(SprjEventFlagMan_ptr + 0x228) == '\0') || ((int)eventFlagId < 0)) + // { + // return 0; + // } + // eventFlagDiv_10000000 = (ulonglong)(uint)(((int)eventFlagId / 10000000) % 10); + // eventFlagDiv_1000 = ((int)eventFlagId / 1000) % 10; + // func_1_result = + // func_1(SprjEventFlagMan_ptr, ((int)eventFlagId / 100000) % 100, ((int)eventFlagId / 10000) % 10 + // , state); + // func_1_result_int = (int)func_1_result; + // if (state == false) + // { + // /* If fieldarea not initialized (Main menu?) */ + // if (Global_FieldArea_Ptr != (FieldArea*)0x0) + // { + // FUN_1404c46b0(Global_FieldArea_Ptr->WorldInfoOwner_ptr2, local_res8, + // *(undefined4*)&Global_FieldArea_Ptr->field4_0x20); + // is_param_smaller_than_90(local_res8[0] >> 0x18); + // } + // /* Section is repeated bellow. + // Looks like the compiler failed to optimize this properly. + // It seems like param3 and Global_FieldArea_Ptr if statements are the only real + // difference, and the code is duplicated by the compiler */ + // lVar1 = *(longlong*)(*(longlong*)(SprjEventFlagMan_ptr + 0x218) + eventFlagDiv_10000000 * 0x18); + // if ((lVar1 == 0) || (func_1_result_int < 0)) + // { + // return 0; + // } + // lVar2 = (ulonglong)eventFlagDiv_1000 << 4; + // lVar1 = (longlong)func_1_result_int * 0xa8 + lVar1; + // } + // else + // { + // lVar2 = *(longlong*)(*(longlong*)(SprjEventFlagMan_ptr + 0x218) + eventFlagDiv_10000000 * 0x18); + // if (lVar2 == 0) + // { + // return 0; + // } + // if (func_1_result_int < 0) + // { + // return 0; + // } + // lVar1 = (ulonglong)eventFlagDiv_1000 << 4; + // lVar2 = (longlong)func_1_result_int * 0xa8 + lVar2; + // } + // return lVar1 + lVar2; + //} + + #endregion } diff --git a/src/SoulMemory/DarkSouls3/ItemPickup.cs b/src/SoulMemory/DarkSouls3/ItemPickup.cs index a1ce8d7..43f5a7c 100644 --- a/src/SoulMemory/DarkSouls3/ItemPickup.cs +++ b/src/SoulMemory/DarkSouls3/ItemPickup.cs @@ -16,3441 +16,3440 @@ using System.Xml.Serialization; -namespace SoulMemory.DarkSouls3 +namespace SoulMemory.DarkSouls3; + +[XmlType(Namespace = "DarkSouls3")] +public enum ItemPickup : uint { - [XmlType(Namespace = "DarkSouls3")] - public enum ItemPickup : uint - { - [Annotation(Name = "[Boss] Soul of Boreal Valley Vordt 50002000")] - BossSoulOfBorealValleyVordt = 50002000, + [Annotation(Name = "[Boss] Soul of Boreal Valley Vordt 50002000")] + BossSoulOfBorealValleyVordt = 50002000, - [Annotation(Name = "[Boss] Soul of the Dancer 50002010")] - BossSoulOfTheDancer = 50002010, + [Annotation(Name = "[Boss] Soul of the Dancer 50002010")] + BossSoulOfTheDancer = 50002010, - [Annotation(Name = "[Boss] Soul of Consumed Oceiros 50002020")] - BossSoulOfConsumedOceiros = 50002020, + [Annotation(Name = "[Boss] Soul of Consumed Oceiros 50002020")] + BossSoulOfConsumedOceiros = 50002020, - [Annotation(Name = "[Boss] Soul of Dragonslayer Armour 50002030")] - BossSoulOfDragonslayerArmour = 50002030, + [Annotation(Name = "[Boss] Soul of Dragonslayer Armour 50002030")] + BossSoulOfDragonslayerArmour = 50002030, - [Annotation(Name = "[Boss] Cinders of a Lord 50002040")] - BossCindersOfaLord = 50002040, + [Annotation(Name = "[Boss] Cinders of a Lord 50002040")] + BossCindersOfaLord = 50002040, - [Annotation(Name = "[Boss] Soul of the Rotted Greatwood 50002060")] - BossSoulOfTheRottedGreatwood = 50002060, + [Annotation(Name = "[Boss] Soul of the Rotted Greatwood 50002060")] + BossSoulOfTheRottedGreatwood = 50002060, - [Annotation(Name = "[Boss] Dragon Head Stone 50002070")] - BossDragonHeadStone = 50002070, + [Annotation(Name = "[Boss] Dragon Head Stone 50002070")] + BossDragonHeadStone = 50002070, - [Annotation(Name = "[Boss] Soul of the Nameless King 50002080")] - BossSoulOfTheNamelessKing = 50002080, + [Annotation(Name = "[Boss] Soul of the Nameless King 50002080")] + BossSoulOfTheNamelessKing = 50002080, - [Annotation(Name = "[Boss] Soul of a Crystal Sage 50002090")] - BossSoulOfaCrystalSage = 50002090, + [Annotation(Name = "[Boss] Soul of a Crystal Sage 50002090")] + BossSoulOfaCrystalSage = 50002090, - [Annotation(Name = "[Boss] Cinders of a Lord 50002100")] - BossCindersOfaLord_ = 50002100, + [Annotation(Name = "[Boss] Cinders of a Lord 50002100")] + BossCindersOfaLord_ = 50002100, - [Annotation(Name = "[Boss] Small Doll 50002110")] - BossSmallDoll = 50002110, + [Annotation(Name = "[Boss] Small Doll 50002110")] + BossSmallDoll = 50002110, - [Annotation(Name = "[Boss] Soul of the Deacons of the Deep 50002111")] - BossSoulOfTheDeaconsOfTheDeep = 50002111, + [Annotation(Name = "[Boss] Soul of the Deacons of the Deep 50002111")] + BossSoulOfTheDeaconsOfTheDeep = 50002111, - [Annotation(Name = "[Boss] Soul of Pontiff Sulyvahn 50002120")] - BossSoulOfPontiffSulyvahn = 50002120, + [Annotation(Name = "[Boss] Soul of Pontiff Sulyvahn 50002120")] + BossSoulOfPontiffSulyvahn = 50002120, - [Annotation(Name = "[Boss] Cinders of a Lord 50002130")] - BossCindersOfaLord__ = 50002130, + [Annotation(Name = "[Boss] Cinders of a Lord 50002130")] + BossCindersOfaLord__ = 50002130, - [Annotation(Name = "[Boss] Soul of High Lord Wolnir 50002140")] - BossSoulOfHighLordWolnir = 50002140, + [Annotation(Name = "[Boss] Soul of High Lord Wolnir 50002140")] + BossSoulOfHighLordWolnir = 50002140, - [Annotation(Name = "[Boss] Soul of the Old Demon King 50002150")] - BossSoulOfTheOldDemonKing = 50002150, + [Annotation(Name = "[Boss] Soul of the Old Demon King 50002150")] + BossSoulOfTheOldDemonKing = 50002150, - [Annotation(Name = "[Boss] Cinders of a Lord 50002170")] - BossCindersOfaLord___ = 50002170, + [Annotation(Name = "[Boss] Cinders of a Lord 50002170")] + BossCindersOfaLord___ = 50002170, - [Annotation(Name = "[Boss] Coiled Sword 50002180")] - BossCoiledSword = 50002180, + [Annotation(Name = "[Boss] Coiled Sword 50002180")] + BossCoiledSword = 50002180, - [Annotation(Name = "[Boss] Soul of Champion Gundyr 50002190")] - BossSoulOfChampionGundyr = 50002190, + [Annotation(Name = "[Boss] Soul of Champion Gundyr 50002190")] + BossSoulOfChampionGundyr = 50002190, - [Annotation(Name = "[Boss] Soul of the Lords 50002200")] - BossSoulOfTheLords = 50002200, + [Annotation(Name = "[Boss] Soul of the Lords 50002200")] + BossSoulOfTheLords = 50002200, - [Annotation(Name = "[Boss] Soul of Sister Friede 50002300")] - BossSoulOfSisterFriede = 50002300, + [Annotation(Name = "[Boss] Soul of Sister Friede 50002300")] + BossSoulOfSisterFriede = 50002300, - [Annotation(Name = "[Boss] Champion's Bones 50002310")] - BossChampionsBones = 50002310, + [Annotation(Name = "[Boss] Champion's Bones 50002310")] + BossChampionsBones = 50002310, - [Annotation(Name = "[Boss] Valorheart 50002320")] - BossValorheart = 50002320, + [Annotation(Name = "[Boss] Valorheart 50002320")] + BossValorheart = 50002320, - [Annotation(Name = "[Boss] Soul of the Demon Prince 50002330")] - BossSoulOfTheDemonPrince = 50002330, + [Annotation(Name = "[Boss] Soul of the Demon Prince 50002330")] + BossSoulOfTheDemonPrince = 50002330, - [Annotation(Name = "[Boss] Titanite Slab 50002340")] - BossTitaniteSlab = 50002340, + [Annotation(Name = "[Boss] Titanite Slab 50002340")] + BossTitaniteSlab = 50002340, - [Annotation(Name = "[Boss] Filianore's Spear Ornament 50002341")] - BossFilianoresSpearOrnament = 50002341, + [Annotation(Name = "[Boss] Filianore's Spear Ornament 50002341")] + BossFilianoresSpearOrnament = 50002341, - [Annotation(Name = "[Boss] Soul of Darkeater Midir 50002350")] - BossSoulOfDarkeaterMidir = 50002350, + [Annotation(Name = "[Boss] Soul of Darkeater Midir 50002350")] + BossSoulOfDarkeaterMidir = 50002350, - [Annotation(Name = "[Boss] Spears of the Church 6830")] - BossSpearsOfTheChurch = 6830, + [Annotation(Name = "[Boss] Spears of the Church 6830")] + BossSpearsOfTheChurch = 6830, - [Annotation(Name = "[Boss] Soul of Slave Knight Gael 50002360")] - BossSoulOfSlaveKnightGael = 50002360, + [Annotation(Name = "[Boss] Soul of Slave Knight Gael 50002360")] + BossSoulOfSlaveKnightGael = 50002360, - [Annotation(Name = "Coiled Sword 50002500")] - CoiledSword = 50002500, + [Annotation(Name = "Coiled Sword 50002500")] + CoiledSword = 50002500, - [Annotation(Name = "Rosaria's Fingers - Emblem 54004010")] - RosariasFingersEmblem = 54004010, + [Annotation(Name = "Rosaria's Fingers - Emblem 54004010")] + RosariasFingersEmblem = 54004010, - [Annotation(Name = "Warrior of Sunlight - Emblem 6700")] - WarriorOfSunlightEmblem = 6700, + [Annotation(Name = "Warrior of Sunlight - Emblem 6700")] + WarriorOfSunlightEmblem = 6700, - [Annotation(Name = "[Covenant] Warrior of Sunlight Rank 2 - Sunlight Straight Sword 6702")] - CovenantWarriorOfSunlightRank2SunlightStraightSword = 6702, + [Annotation(Name = "[Covenant] Warrior of Sunlight Rank 2 - Sunlight Straight Sword 6702")] + CovenantWarriorOfSunlightRank2SunlightStraightSword = 6702, - [Annotation(Name = "[Covenant] Warrior of Sunlight Rank 1 - Sunlight Shield 6701")] - CovenantWarriorOfSunlightRank1SunlightShield = 6701, + [Annotation(Name = "[Covenant] Warrior of Sunlight Rank 1 - Sunlight Shield 6701")] + CovenantWarriorOfSunlightRank1SunlightShield = 6701, - [Annotation(Name = "Mound-makers - Emblem 6710")] - MoundmakersEmblem = 6710, + [Annotation(Name = "Mound-makers - Emblem 6710")] + MoundmakersEmblem = 6710, - [Annotation(Name = "[Covenant] Mound-makers Rank 2 - Warmth 6712")] - CovenantMoundmakersRank2Warmth = 6712, + [Annotation(Name = "[Covenant] Mound-makers Rank 2 - Warmth 6712")] + CovenantMoundmakersRank2Warmth = 6712, - [Annotation(Name = "[Covenant] Mound-makers Rank 1 - Bloodlust 6711")] - CovenantMoundmakersRank1Bloodlust = 6711, + [Annotation(Name = "[Covenant] Mound-makers Rank 1 - Bloodlust 6711")] + CovenantMoundmakersRank1Bloodlust = 6711, - [Annotation(Name = "Watchdogs of Farron - Emblem 6720")] - WatchdogsOfFarronEmblem = 6720, + [Annotation(Name = "Watchdogs of Farron - Emblem 6720")] + WatchdogsOfFarronEmblem = 6720, - [Annotation(Name = "[Covenant] Watchdogs of Farron Rank 2 - Wolf Knight's Greatshield 6722")] - CovenantWatchdogsOfFarronRank2WolfKnightsGreatshield = 6722, + [Annotation(Name = "[Covenant] Watchdogs of Farron Rank 2 - Wolf Knight's Greatshield 6722")] + CovenantWatchdogsOfFarronRank2WolfKnightsGreatshield = 6722, - [Annotation(Name = "[Covenant] Watchdogs of Farron Rank 1 - Old Wolf Curved Sword 6721")] - CovenantWatchdogsOfFarronRank1OldWolfCurvedSword = 6721, + [Annotation(Name = "[Covenant] Watchdogs of Farron Rank 1 - Old Wolf Curved Sword 6721")] + CovenantWatchdogsOfFarronRank1OldWolfCurvedSword = 6721, - [Annotation(Name = "Aldrich Faithful - Emblem 6730")] - AldrichFaithfulEmblem = 6730, + [Annotation(Name = "Aldrich Faithful - Emblem 6730")] + AldrichFaithfulEmblem = 6730, - [Annotation(Name = "[Covenant] Aldrich Faithful Rank 2 - Archdeacon's Great Staff 6732")] - CovenantAldrichFaithfulRank2ArchdeaconsGreatStaff = 6732, + [Annotation(Name = "[Covenant] Aldrich Faithful Rank 2 - Archdeacon's Great Staff 6732")] + CovenantAldrichFaithfulRank2ArchdeaconsGreatStaff = 6732, - [Annotation(Name = "[Covenant] Aldrich Faithful Rank 1 - Great Deep Soul 6731")] - CovenantAldrichFaithfulRank1GreatDeepSoul = 6731, + [Annotation(Name = "[Covenant] Aldrich Faithful Rank 1 - Great Deep Soul 6731")] + CovenantAldrichFaithfulRank1GreatDeepSoul = 6731, - [Annotation(Name = "Blue Sentinels - Emblem 6740")] - BlueSentinelsEmblem = 6740, + [Annotation(Name = "Blue Sentinels - Emblem 6740")] + BlueSentinelsEmblem = 6740, - [Annotation(Name = "Firebomb 6742")] - Firebomb = 6742, + [Annotation(Name = "Firebomb 6742")] + Firebomb = 6742, - [Annotation(Name = "Kukri 6741")] - Kukri = 6741, + [Annotation(Name = "Kukri 6741")] + Kukri = 6741, - [Annotation(Name = "Blade of the Darkmoon - Emblem 6750")] - BladeOfTheDarkmoonEmblem = 6750, + [Annotation(Name = "Blade of the Darkmoon - Emblem 6750")] + BladeOfTheDarkmoonEmblem = 6750, - [Annotation(Name = "Firebomb 6752")] - Firebomb_ = 6752, + [Annotation(Name = "Firebomb 6752")] + Firebomb_ = 6752, - [Annotation(Name = "Firebomb 6751")] - Firebomb__ = 6751, + [Annotation(Name = "Firebomb 6751")] + Firebomb__ = 6751, - [Annotation(Name = "Rosaria's Fingers - Emblem 6760")] - RosariasFingersEmblem_ = 6760, + [Annotation(Name = "Rosaria's Fingers - Emblem 6760")] + RosariasFingersEmblem_ = 6760, - [Annotation(Name = "[Covenant] Rosaria's Fingers Rank 2 - Man-grub's Staff 6762")] - CovenantRosariasFingersRank2MangrubsStaff = 6762, + [Annotation(Name = "[Covenant] Rosaria's Fingers Rank 2 - Man-grub's Staff 6762")] + CovenantRosariasFingersRank2MangrubsStaff = 6762, - [Annotation(Name = "[Covenant] Rosaria's Fingers Rank 1 - Obscuring Ring 6761")] - CovenantRosariasFingersRank1ObscuringRing = 6761, + [Annotation(Name = "[Covenant] Rosaria's Fingers Rank 1 - Obscuring Ring 6761")] + CovenantRosariasFingersRank1ObscuringRing = 6761, - [Annotation(Name = "Way of Blue - Emblem 6770")] - WayOfBlueEmblem = 6770, + [Annotation(Name = "Way of Blue - Emblem 6770")] + WayOfBlueEmblem = 6770, - [Annotation(Name = "Firebomb 6772")] - Firebomb___ = 6772, + [Annotation(Name = "Firebomb 6772")] + Firebomb___ = 6772, - [Annotation(Name = "Firebomb 6771")] - Firebomb____ = 6771, + [Annotation(Name = "Firebomb 6771")] + Firebomb____ = 6771, - [Annotation(Name = "Divine Spear Fragment 6832")] - DivineSpearFragment = 6832, + [Annotation(Name = "Divine Spear Fragment 6832")] + DivineSpearFragment = 6832, - [Annotation(Name = "Young Grass Dew 6831")] - YoungGrassDew = 6831, + [Annotation(Name = "Young Grass Dew 6831")] + YoungGrassDew = 6831, - [Annotation(Name = "[Crow] Iron Bracelets 50004300")] - CrowIronBracelets = 50004300, + [Annotation(Name = "[Crow] Iron Bracelets 50004300")] + CrowIronBracelets = 50004300, - [Annotation(Name = "[Crow] Ring of Sacrifice 50004301")] - CrowRingOfSacrifice = 50004301, + [Annotation(Name = "[Crow] Ring of Sacrifice 50004301")] + CrowRingOfSacrifice = 50004301, - [Annotation(Name = "[Crow] Porcine Shield 50004302")] - CrowPorcineShield = 50004302, + [Annotation(Name = "[Crow] Porcine Shield 50004302")] + CrowPorcineShield = 50004302, - [Annotation(Name = "[Crow] Lucatiel's Mask 50004303")] - CrowLucatielsMask = 50004303, + [Annotation(Name = "[Crow] Lucatiel's Mask 50004303")] + CrowLucatielsMask = 50004303, - [Annotation(Name = "[Crow] Very good! Carving 50004304")] - CrowVerygoodCarving = 50004304, + [Annotation(Name = "[Crow] Very good! Carving 50004304")] + CrowVerygoodCarving = 50004304, - [Annotation(Name = "[Crow] Thank you Carving 50004305")] - CrowThankyouCarving = 50004305, + [Annotation(Name = "[Crow] Thank you Carving 50004305")] + CrowThankyouCarving = 50004305, - [Annotation(Name = "[Crow] I'm sorry Carving 50004306")] - CrowImsorryCarving = 50004306, + [Annotation(Name = "[Crow] I'm sorry Carving 50004306")] + CrowImsorryCarving = 50004306, - [Annotation(Name = "[Crow] Sunlight Shield 50004307")] - CrowSunlightShield = 50004307, + [Annotation(Name = "[Crow] Sunlight Shield 50004307")] + CrowSunlightShield = 50004307, - [Annotation(Name = "[Crow] Hollow Gem 50004308")] - CrowHollowGem = 50004308, + [Annotation(Name = "[Crow] Hollow Gem 50004308")] + CrowHollowGem = 50004308, - [Annotation(Name = "[Crow] Titanite Scale 50004309")] - CrowTitaniteScale = 50004309, + [Annotation(Name = "[Crow] Titanite Scale 50004309")] + CrowTitaniteScale = 50004309, - [Annotation(Name = "[Crow] Help me! Carving 50004310")] - CrowHelpmeCarving = 50004310, + [Annotation(Name = "[Crow] Help me! Carving 50004310")] + CrowHelpmeCarving = 50004310, - [Annotation(Name = "[Crow] Titanite Slab 50004311")] - CrowTitaniteSlab = 50004311, + [Annotation(Name = "[Crow] Titanite Slab 50004311")] + CrowTitaniteSlab = 50004311, - [Annotation(Name = "[Crow] Hello Carving 50004320")] - CrowHelloCarving = 50004320, + [Annotation(Name = "[Crow] Hello Carving 50004320")] + CrowHelloCarving = 50004320, - [Annotation(Name = "[Crow] Armor of the Sun 50004321")] - CrowArmorOfTheSun = 50004321, + [Annotation(Name = "[Crow] Armor of the Sun 50004321")] + CrowArmorOfTheSun = 50004321, - [Annotation(Name = "[Crow] Large Titanite Shard 50004322")] - CrowLargeTitaniteShard = 50004322, + [Annotation(Name = "[Crow] Large Titanite Shard 50004322")] + CrowLargeTitaniteShard = 50004322, - [Annotation(Name = "[Crow] Titanite Chunk 50004323")] - CrowTitaniteChunk = 50004323, + [Annotation(Name = "[Crow] Titanite Chunk 50004323")] + CrowTitaniteChunk = 50004323, - [Annotation(Name = "[Crow] Iron Helm 50004324")] - CrowIronHelm = 50004324, + [Annotation(Name = "[Crow] Iron Helm 50004324")] + CrowIronHelm = 50004324, - [Annotation(Name = "[Crow] Twinkling Titanite 50004325")] - CrowTwinklingTitanite = 50004325, + [Annotation(Name = "[Crow] Twinkling Titanite 50004325")] + CrowTwinklingTitanite = 50004325, - [Annotation(Name = "[Crow] Iron Leggings 50004326")] - CrowIronLeggings = 50004326, + [Annotation(Name = "[Crow] Iron Leggings 50004326")] + CrowIronLeggings = 50004326, - [Annotation(Name = "[Crow] Lightning Gem 50004327")] - CrowLightningGem = 50004327, + [Annotation(Name = "[Crow] Lightning Gem 50004327")] + CrowLightningGem = 50004327, - [Annotation(Name = "[Crow] Twinkling Titanite 50004328")] - CrowTwinklingTitanite_ = 50004328, + [Annotation(Name = "[Crow] Twinkling Titanite 50004328")] + CrowTwinklingTitanite_ = 50004328, - [Annotation(Name = "[Crow] Blessed Gem 50004329")] - CrowBlessedGem = 50004329, + [Annotation(Name = "[Crow] Blessed Gem 50004329")] + CrowBlessedGem = 50004329, - [Annotation(Name = "[Crow] Titanite Scale 50004330")] - CrowTitaniteScale_ = 50004330, + [Annotation(Name = "[Crow] Titanite Scale 50004330")] + CrowTitaniteScale_ = 50004330, - [Annotation(Name = "Titanite Slab 50004700")] - TitaniteSlab = 50004700, + [Annotation(Name = "Titanite Slab 50004700")] + TitaniteSlab = 50004700, - [Annotation(Name = "[Ludleth of Courland] Skull Ring 50006031")] - LudlethOfCourlandSkullRing = 50006031, + [Annotation(Name = "[Ludleth of Courland] Skull Ring 50006031")] + LudlethOfCourlandSkullRing = 50006031, - [Annotation(Name = "[Yuria of Londor] Darkdrift 50006041")] - YuriaOfLondorDarkdrift = 50006041, + [Annotation(Name = "[Yuria of Londor] Darkdrift 50006041")] + YuriaOfLondorDarkdrift = 50006041, - [Annotation(Name = "[Yuria of Londor] Yuria's Ashes 50006043")] - YuriaOfLondorYuriasAshes = 50006043, + [Annotation(Name = "[Yuria of Londor] Yuria's Ashes 50006043")] + YuriaOfLondorYuriasAshes = 50006043, - [Annotation(Name = "[Company Captain Yorshka] Yorshka's Chime 50006060")] - CompanyCaptainYorshkaYorshkasChime = 50006060, + [Annotation(Name = "[Company Captain Yorshka] Yorshka's Chime 50006060")] + CompanyCaptainYorshkaYorshkasChime = 50006060, - [Annotation(Name = "[Hawkwood the Deserter] Heavy Gem 50006070")] - HawkwoodTheDeserterHeavyGem = 50006070, + [Annotation(Name = "[Hawkwood the Deserter] Heavy Gem 50006070")] + HawkwoodTheDeserterHeavyGem = 50006070, - [Annotation(Name = "[Sirris of the Sunless Realms] Sunless Talisman 50006082")] - SirrisOfTheSunlessRealmsSunlessTalisman = 50006082, + [Annotation(Name = "[Sirris of the Sunless Realms] Sunless Talisman 50006082")] + SirrisOfTheSunlessRealmsSunlessTalisman = 50006082, - [Annotation(Name = "[Ringfinger Leonhard] Cracked Red Eye Orb 50006090")] - RingfingerLeonhardCrackedRedEyeOrb = 50006090, + [Annotation(Name = "[Ringfinger Leonhard] Cracked Red Eye Orb 50006090")] + RingfingerLeonhardCrackedRedEyeOrb = 50006090, - [Annotation(Name = "[Ringfinger Leonhard] Silver Mask 50006093")] - RingfingerLeonhardSilverMask = 50006093, + [Annotation(Name = "[Ringfinger Leonhard] Silver Mask 50006093")] + RingfingerLeonhardSilverMask = 50006093, - [Annotation(Name = "[Ringfinger Leonhard] Lift Chamber Key 50006091")] - RingfingerLeonhardLiftChamberKey = 50006091, + [Annotation(Name = "[Ringfinger Leonhard] Lift Chamber Key 50006091")] + RingfingerLeonhardLiftChamberKey = 50006091, - [Annotation(Name = "[Shrine Handmaid] Priestess Ring 50006110")] - ShrineHandmaidPriestessRing = 50006110, + [Annotation(Name = "[Shrine Handmaid] Priestess Ring 50006110")] + ShrineHandmaidPriestessRing = 50006110, - [Annotation(Name = "[Greirat of the Undead Settlement] Blue Tearstone Ring 50006120")] - GreiratOfTheUndeadSettlementBlueTearstoneRing = 50006120, + [Annotation(Name = "[Greirat of the Undead Settlement] Blue Tearstone Ring 50006120")] + GreiratOfTheUndeadSettlementBlueTearstoneRing = 50006120, - [Annotation(Name = "[Greirat of the Undead Settlement] Greirat's Ashes 50006121")] - GreiratOfTheUndeadSettlementGreiratsAshes = 50006121, + [Annotation(Name = "[Greirat of the Undead Settlement] Greirat's Ashes 50006121")] + GreiratOfTheUndeadSettlementGreiratsAshes = 50006121, - [Annotation(Name = "[Orbeck of Vinheim] Orbeck's Ashes 50006132")] - OrbeckOfVinheimOrbecksAshes = 50006132, + [Annotation(Name = "[Orbeck of Vinheim] Orbeck's Ashes 50006132")] + OrbeckOfVinheimOrbecksAshes = 50006132, - [Annotation(Name = "[Cornyx of the Great Swamp] Pyromancy Flame 50006140")] - CornyxOfTheGreatSwampPyromancyFlame = 50006140, + [Annotation(Name = "[Cornyx of the Great Swamp] Pyromancy Flame 50006140")] + CornyxOfTheGreatSwampPyromancyFlame = 50006140, - [Annotation(Name = "[Cornyx of the Great Swamp] Old Sage's Blindfold 50006141")] - CornyxOfTheGreatSwampOldSagesBlindfold = 50006141, + [Annotation(Name = "[Cornyx of the Great Swamp] Old Sage's Blindfold 50006141")] + CornyxOfTheGreatSwampOldSagesBlindfold = 50006141, - [Annotation(Name = "[Cornyx of the Great Swamp] Cornyx's Ashes 50006142")] - CornyxOfTheGreatSwampCornyxsAshes = 50006142, + [Annotation(Name = "[Cornyx of the Great Swamp] Cornyx's Ashes 50006142")] + CornyxOfTheGreatSwampCornyxsAshes = 50006142, - [Annotation(Name = "[Karla] Karla's Pointed Hat 50006150")] - KarlaKarlasPointedHat = 50006150, + [Annotation(Name = "[Karla] Karla's Pointed Hat 50006150")] + KarlaKarlasPointedHat = 50006150, - [Annotation(Name = "[Karla] Karla's Ashes 50006151")] - KarlaKarlasAshes = 50006151, + [Annotation(Name = "[Karla] Karla's Ashes 50006151")] + KarlaKarlasAshes = 50006151, - [Annotation(Name = "[Irina of Carim] Tower Key 50006160")] - IrinaOfCarimTowerKey = 50006160, + [Annotation(Name = "[Irina of Carim] Tower Key 50006160")] + IrinaOfCarimTowerKey = 50006160, - [Annotation(Name = "[Irina of Carim] Irina's Ashes 50006164")] - IrinaOfCarimIrinasAshes = 50006164, + [Annotation(Name = "[Irina of Carim] Irina's Ashes 50006164")] + IrinaOfCarimIrinasAshes = 50006164, - [Annotation(Name = "[Eygon of Carim] Morne's Great Hammer 50006170")] - EygonOfCarimMornesGreatHammer = 50006170, + [Annotation(Name = "[Eygon of Carim] Morne's Great Hammer 50006170")] + EygonOfCarimMornesGreatHammer = 50006170, - [Annotation(Name = "[Anri of Astora #1] Anri's Straight Sword 50006030")] - AnriOfAstora1AnrisStraightSword = 50006030, + [Annotation(Name = "[Anri of Astora #1] Anri's Straight Sword 50006030")] + AnriOfAstora1AnrisStraightSword = 50006030, - [Annotation(Name = "[Anri of Astora #2] Ring of the Evil Eye 50006190")] - AnriOfAstora2RingOfTheEvilEye = 50006190, + [Annotation(Name = "[Anri of Astora #2] Ring of the Evil Eye 50006190")] + AnriOfAstora2RingOfTheEvilEye = 50006190, - [Annotation(Name = "[Unbreakable Patches #1] Winged Spear 50006202")] - UnbreakablePatches1WingedSpear = 50006202, + [Annotation(Name = "[Unbreakable Patches #1] Winged Spear 50006202")] + UnbreakablePatches1WingedSpear = 50006202, - [Annotation(Name = "[Unbreakable Patches #1] Patches' Ashes 50006203")] - UnbreakablePatches1PatchesAshes = 50006203, + [Annotation(Name = "[Unbreakable Patches #1] Patches' Ashes 50006203")] + UnbreakablePatches1PatchesAshes = 50006203, - [Annotation(Name = "[Unbreakable Patches #3] Pierce Shield 73501050")] - UnbreakablePatches3PierceShield = 73501050, + [Annotation(Name = "[Unbreakable Patches #3] Pierce Shield 73501050")] + UnbreakablePatches3PierceShield = 73501050, - [Annotation(Name = "[Unbreakable Patches #3] Catarina Helm 73501010")] - UnbreakablePatches3CatarinaHelm = 73501010, + [Annotation(Name = "[Unbreakable Patches #3] Catarina Helm 73501010")] + UnbreakablePatches3CatarinaHelm = 73501010, - [Annotation(Name = "[Unbreakable Patches #3] Catarina Armor 73501020")] - UnbreakablePatches3CatarinaArmor = 73501020, + [Annotation(Name = "[Unbreakable Patches #3] Catarina Armor 73501020")] + UnbreakablePatches3CatarinaArmor = 73501020, - [Annotation(Name = "[Unbreakable Patches #3] Catarina Gauntlets 73501030")] - UnbreakablePatches3CatarinaGauntlets = 73501030, + [Annotation(Name = "[Unbreakable Patches #3] Catarina Gauntlets 73501030")] + UnbreakablePatches3CatarinaGauntlets = 73501030, - [Annotation(Name = "[Unbreakable Patches #3] Catarina Leggings 73501040")] - UnbreakablePatches3CatarinaLeggings = 73501040, + [Annotation(Name = "[Unbreakable Patches #3] Catarina Leggings 73501040")] + UnbreakablePatches3CatarinaLeggings = 73501040, - [Annotation(Name = "[Siegward of Catarina #1] Catarina Helm 50006217")] - SiegwardOfCatarina1CatarinaHelm = 50006217, + [Annotation(Name = "[Siegward of Catarina #1] Catarina Helm 50006217")] + SiegwardOfCatarina1CatarinaHelm = 50006217, - [Annotation(Name = "[Siegward of Catarina #1] Storm Ruler 50006218")] - SiegwardOfCatarina1StormRuler = 50006218, + [Annotation(Name = "[Siegward of Catarina #1] Storm Ruler 50006218")] + SiegwardOfCatarina1StormRuler = 50006218, - [Annotation(Name = "[Siegward of Catarina #3] Titanite Slab 50006215")] - SiegwardOfCatarina3TitaniteSlab = 50006215, + [Annotation(Name = "[Siegward of Catarina #3] Titanite Slab 50006215")] + SiegwardOfCatarina3TitaniteSlab = 50006215, - [Annotation(Name = "[High Priestess Emma] Small Lothric Banner 50006232")] - HighPriestessEmmaSmallLothricBanner = 50006232, + [Annotation(Name = "[High Priestess Emma] Small Lothric Banner 50006232")] + HighPriestessEmmaSmallLothricBanner = 50006232, - [Annotation(Name = "[High Priestess Emma] Basin of Vows 50006230")] - HighPriestessEmmaBasinOfVows = 50006230, + [Annotation(Name = "[High Priestess Emma] Basin of Vows 50006230")] + HighPriestessEmmaBasinOfVows = 50006230, - [Annotation(Name = "[Giant] Hawk Ring 50006251")] - GiantHawkRing = 50006251, + [Annotation(Name = "[Giant] Hawk Ring 50006251")] + GiantHawkRing = 50006251, - [Annotation(Name = "[Horace the Hushed] Llewellyn Shield 50006260")] - HoraceTheHushedLlewellynShield = 50006260, + [Annotation(Name = "[Horace the Hushed] Llewellyn Shield 50006260")] + HoraceTheHushedLlewellynShield = 50006260, - [Annotation(Name = "[Londor Pilgrim] Chameleon 50006300")] - LondorPilgrimChameleon = 50006300, + [Annotation(Name = "[Londor Pilgrim] Chameleon 50006300")] + LondorPilgrimChameleon = 50006300, - [Annotation(Name = "[Londor Pilgrim] Sword of Avowal 50006301")] - LondorPilgrimSwordOfAvowal = 50006301, + [Annotation(Name = "[Londor Pilgrim] Sword of Avowal 50006301")] + LondorPilgrimSwordOfAvowal = 50006301, - [Annotation(Name = "[Drowsy Forlorn] Homeward Bone 50006311")] - DrowsyForlornHomewardBone = 50006311, + [Annotation(Name = "[Drowsy Forlorn] Homeward Bone 50006311")] + DrowsyForlornHomewardBone = 50006311, - [Annotation(Name = "[Sir Vilhelm] Contraption Key 50006520")] - SirVilhelmContraptionKey = 50006520, + [Annotation(Name = "[Sir Vilhelm] Contraption Key 50006520")] + SirVilhelmContraptionKey = 50006520, - [Annotation(Name = "[Sir Vilhelm] Onyx Blade 50006521")] - SirVilhelmOnyxBlade = 50006521, + [Annotation(Name = "[Sir Vilhelm] Onyx Blade 50006521")] + SirVilhelmOnyxBlade = 50006521, - [Annotation(Name = "[Forlorn Corvian Settler] Titanite Slab 50006540")] - ForlornCorvianSettlerTitaniteSlab = 50006540, + [Annotation(Name = "[Forlorn Corvian Settler] Titanite Slab 50006540")] + ForlornCorvianSettlerTitaniteSlab = 50006540, - [Annotation(Name = "[Sister Friede] Chillbite Ring 50006550")] - SisterFriedeChillbiteRing = 50006550, + [Annotation(Name = "[Sister Friede] Chillbite Ring 50006550")] + SisterFriedeChillbiteRing = 50006550, - [Annotation(Name = "[Amnesiac Lapp #1] Champion's Bones 50006623")] - AmnesiacLapp1ChampionsBones = 50006623, + [Annotation(Name = "[Amnesiac Lapp #1] Champion's Bones 50006623")] + AmnesiacLapp1ChampionsBones = 50006623, - [Annotation(Name = "[Amnesiac Lapp #2] Siegbräu 50006620")] - AmnesiacLapp2Siegbräu = 50006620, + [Annotation(Name = "[Amnesiac Lapp #2] Siegbräu 50006620")] + AmnesiacLapp2Siegbräu = 50006620, - [Annotation(Name = "[Amnesiac Lapp #3] Siegbräu 50006622")] - AmnesiacLapp3Siegbräu = 50006622, + [Annotation(Name = "[Amnesiac Lapp #3] Siegbräu 50006622")] + AmnesiacLapp3Siegbräu = 50006622, - [Annotation(Name = "[Amnesiac Lapp #6] Titanite Slab 50006621")] - AmnesiacLapp6TitaniteSlab = 50006621, + [Annotation(Name = "[Amnesiac Lapp #6] Titanite Slab 50006621")] + AmnesiacLapp6TitaniteSlab = 50006621, - [Annotation(Name = "[Shira, Knight of Filianore #1] Sacred Chime of Filianore 50006630")] - ShiraKnightOfFilianore1SacredChimeOfFilianore = 50006630, + [Annotation(Name = "[Shira, Knight of Filianore #1] Sacred Chime of Filianore 50006630")] + ShiraKnightOfFilianore1SacredChimeOfFilianore = 50006630, - [Annotation(Name = "[Shira, Knight of Filianore #1] Titanite Slab 50006631")] - ShiraKnightOfFilianore1TitaniteSlab = 50006631, + [Annotation(Name = "[Shira, Knight of Filianore #1] Titanite Slab 50006631")] + ShiraKnightOfFilianore1TitaniteSlab = 50006631, - [Annotation(Name = "[Shira, Knight of Filianore #1] Crucifix of the Mad King 50006632")] - ShiraKnightOfFilianore1CrucifixOfTheMadKing = 50006632, + [Annotation(Name = "[Shira, Knight of Filianore #1] Crucifix of the Mad King 50006632")] + ShiraKnightOfFilianore1CrucifixOfTheMadKing = 50006632, - [Annotation(Name = "[Stone-humped Hag] Old Woman's Ashes 50006660")] - StonehumpedHagOldWomansAshes = 50006660, + [Annotation(Name = "[Stone-humped Hag] Old Woman's Ashes 50006660")] + StonehumpedHagOldWomansAshes = 50006660, - [Annotation(Name = "[Black Hand Gotthard] Grand Archives Key 50006700")] - BlackHandGotthardGrandArchivesKey = 50006700, + [Annotation(Name = "[Black Hand Gotthard] Grand Archives Key 50006700")] + BlackHandGotthardGrandArchivesKey = 50006700, - [Annotation(Name = "[Black Hand Kamui] Onikiri and Ubadachi 50006705")] - BlackHandKamuiOnikiriandUbadachi = 50006705, + [Annotation(Name = "[Black Hand Kamui] Onikiri and Ubadachi 50006705")] + BlackHandKamuiOnikiriandUbadachi = 50006705, - [Annotation(Name = "[Havel the Rock] Dragon Tooth 50006710")] - HavelTheRockDragonTooth = 50006710, + [Annotation(Name = "[Havel the Rock] Dragon Tooth 50006710")] + HavelTheRockDragonTooth = 50006710, - [Annotation(Name = "[Sword Master] Uchigatana 50006720")] - SwordMasterUchigatana = 50006720, + [Annotation(Name = "[Sword Master] Uchigatana 50006720")] + SwordMasterUchigatana = 50006720, - [Annotation(Name = "[Brigand] Spider Shield 50006730")] - BrigandSpiderShield = 50006730, + [Annotation(Name = "[Brigand] Spider Shield 50006730")] + BrigandSpiderShield = 50006730, - [Annotation(Name = "[Drakeblood Knight] Drakeblood Greatsword 50006740")] - DrakebloodKnightDrakebloodGreatsword = 50006740, + [Annotation(Name = "[Drakeblood Knight] Drakeblood Greatsword 50006740")] + DrakebloodKnightDrakebloodGreatsword = 50006740, - [Annotation(Name = "[Rapier Champion] Ricard's Rapier 50006750")] - RapierChampionRicardsRapier = 50006750, + [Annotation(Name = "[Rapier Champion] Ricard's Rapier 50006750")] + RapierChampionRicardsRapier = 50006750, - [Annotation(Name = "[Exile Watchdog] Exile Greatsword 50006760")] - ExileWatchdogExileGreatsword = 50006760, + [Annotation(Name = "[Exile Watchdog] Exile Greatsword 50006760")] + ExileWatchdogExileGreatsword = 50006760, - [Annotation(Name = "[Exile Watchdog] Great Club 50006770")] - ExileWatchdogGreatClub = 50006770, + [Annotation(Name = "[Exile Watchdog] Great Club 50006770")] + ExileWatchdogGreatClub = 50006770, - [Annotation(Name = "[Yellowfinger Heysel] Heysel Pick 50006780")] - YellowfingerHeyselHeyselPick = 50006780, + [Annotation(Name = "[Yellowfinger Heysel] Heysel Pick 50006780")] + YellowfingerHeyselHeyselPick = 50006780, - [Annotation(Name = "[Londor Pale Shade] Manikin Claws 50006790")] - LondorPaleShadeManikinClaws = 50006790, + [Annotation(Name = "[Londor Pale Shade] Manikin Claws 50006790")] + LondorPaleShadeManikinClaws = 50006790, - [Annotation(Name = "[Lion Knight Albert] Golden Wing Crest Shield 50006800")] - LionKnightAlbertGoldenWingCrestShield = 50006800, + [Annotation(Name = "[Lion Knight Albert] Golden Wing Crest Shield 50006800")] + LionKnightAlbertGoldenWingCrestShield = 50006800, - [Annotation(Name = "[Daughter of Crystal Kriemhild] Sage's Crystal Staff 50006810")] - DaughterOfCrystalKriemhildSagesCrystalStaff = 50006810, + [Annotation(Name = "[Daughter of Crystal Kriemhild] Sage's Crystal Staff 50006810")] + DaughterOfCrystalKriemhildSagesCrystalStaff = 50006810, - [Annotation(Name = "[Court Sorcerer] Logan's Scroll 50006820")] - CourtSorcererLogansScroll = 50006820, + [Annotation(Name = "[Court Sorcerer] Logan's Scroll 50006820")] + CourtSorcererLogansScroll = 50006820, - [Annotation(Name = "[Drang Knight] Drang Twinspears 50006830")] - DrangKnightDrangTwinspears = 50006830, + [Annotation(Name = "[Drang Knight] Drang Twinspears 50006830")] + DrangKnightDrangTwinspears = 50006830, - [Annotation(Name = "[Knight Slayer Tsorig #1] Knight Slayer's Ring 50006840")] - KnightSlayerTsorig1KnightSlayersRing = 50006840, + [Annotation(Name = "[Knight Slayer Tsorig #1] Knight Slayer's Ring 50006840")] + KnightSlayerTsorig1KnightSlayersRing = 50006840, - [Annotation(Name = "[Knight Slayer Tsorig #2] Fume Ultra Greatsword 50006845")] - KnightSlayerTsorig2FumeUltraGreatsword = 50006845, + [Annotation(Name = "[Knight Slayer Tsorig #2] Fume Ultra Greatsword 50006845")] + KnightSlayerTsorig2FumeUltraGreatsword = 50006845, - [Annotation(Name = "[Creighton the Wanderer] Dragonslayer's Axe 50006850")] - CreightonTheWandererDragonslayersAxe = 50006850, + [Annotation(Name = "[Creighton the Wanderer] Dragonslayer's Axe 50006850")] + CreightonTheWandererDragonslayersAxe = 50006850, - [Annotation(Name = "[Alva, Seeker of the Spurned] Murakumo 50006860")] - AlvaSeekerOfTheSpurnedMurakumo = 50006860, + [Annotation(Name = "[Alva, Seeker of the Spurned] Murakumo 50006860")] + AlvaSeekerOfTheSpurnedMurakumo = 50006860, - [Annotation(Name = "[Longfinger Kirk] Barbed Straight Sword 50006870")] - LongfingerKirkBarbedStraightSword = 50006870, + [Annotation(Name = "[Longfinger Kirk] Barbed Straight Sword 50006870")] + LongfingerKirkBarbedStraightSword = 50006870, - [Annotation(Name = "[Isabella the Mad] Butcher Knife 50006880")] - IsabellaTheMadButcherKnife = 50006880, + [Annotation(Name = "[Isabella the Mad] Butcher Knife 50006880")] + IsabellaTheMadButcherKnife = 50006880, - [Annotation(Name = "[Livid Pyromancer Dunnel] Floating Chaos 50006920")] - LividPyromancerDunnelFloatingChaos = 50006920, + [Annotation(Name = "[Livid Pyromancer Dunnel] Floating Chaos 50006920")] + LividPyromancerDunnelFloatingChaos = 50006920, - [Annotation(Name = "[Shira, Knight of Filianore] Crucifix of the Mad King 50006939")] - ShiraKnightOfFilianoreCrucifixOfTheMadKing = 50006939, + [Annotation(Name = "[Shira, Knight of Filianore] Crucifix of the Mad King 50006939")] + ShiraKnightOfFilianoreCrucifixOfTheMadKing = 50006939, - [Annotation(Name = "[Unk] White Birch Bow 50006940")] - UnkWhiteBirchBow = 50006940, + [Annotation(Name = "[Unk] White Birch Bow 50006940")] + UnkWhiteBirchBow = 50006940, - [Annotation(Name = "[Desert Pyromancer Zoey] Flame Fan 50006950")] - DesertPyromancerZoeyFlameFan = 50006950, + [Annotation(Name = "[Desert Pyromancer Zoey] Flame Fan 50006950")] + DesertPyromancerZoeyFlameFan = 50006950, - [Annotation(Name = "[Silver Knight Ledo] Ledo's Great Hammer 50006960")] - SilverKnightLedoLedosGreatHammer = 50006960, + [Annotation(Name = "[Silver Knight Ledo] Ledo's Great Hammer 50006960")] + SilverKnightLedoLedosGreatHammer = 50006960, - [Annotation(Name = "[Alva, Seeker of the Spurned] Wolf Ring+3 50006970")] - AlvaSeekerOfTheSpurnedWolfRing3 = 50006970, + [Annotation(Name = "[Alva, Seeker of the Spurned] Wolf Ring+3 50006970")] + AlvaSeekerOfTheSpurnedWolfRing3 = 50006970, - [Annotation(Name = "[Moaning Knight] Blindfold Mask 50006980")] - MoaningKnightBlindfoldMask = 50006980, + [Annotation(Name = "[Moaning Knight] Blindfold Mask 50006980")] + MoaningKnightBlindfoldMask = 50006980, - [Annotation(Name = "[Untended Graves] Eyes of a Fire Keeper 50006020")] - UntendedGravesEyesOfaFireKeeper = 50006020, + [Annotation(Name = "[Untended Graves] Eyes of a Fire Keeper 50006020")] + UntendedGravesEyesOfaFireKeeper = 50006020, - [Annotation(Name = "[Yuria of Londor] Morion Blade 50006040")] - YuriaOfLondorMorionBlade = 50006040, + [Annotation(Name = "[Yuria of Londor] Morion Blade 50006040")] + YuriaOfLondorMorionBlade = 50006040, - [Annotation(Name = "[Yuria of Londor] Billed Mask - Lord of Hollow reward 50006042")] - YuriaOfLondorBilledMaskLordOfHollowreward = 50006042, + [Annotation(Name = "[Yuria of Londor] Billed Mask - Lord of Hollow reward 50006042")] + YuriaOfLondorBilledMaskLordOfHollowreward = 50006042, - [Annotation(Name = "Kukri 50006063")] - Kukri_ = 50006063, + [Annotation(Name = "Kukri 50006063")] + Kukri_ = 50006063, - [Annotation(Name = "[Archdragon Peak] Twinkling Dragon Torso Stone - Pray at Altar 50006071")] - ArchdragonPeakTwinklingDragonTorsoStonePrayatAltar = 50006071, + [Annotation(Name = "[Archdragon Peak] Twinkling Dragon Torso Stone - Pray at Altar 50006071")] + ArchdragonPeakTwinklingDragonTorsoStonePrayatAltar = 50006071, - [Annotation(Name = "[Hawkwood] Twinkling Dragon Head Stone 50006072")] - HawkwoodTwinklingDragonHeadStone = 50006072, + [Annotation(Name = "[Hawkwood] Twinkling Dragon Head Stone 50006072")] + HawkwoodTwinklingDragonHeadStone = 50006072, - [Annotation(Name = "[Hawkwood] Farron Ring 50006073")] - HawkwoodFarronRing = 50006073, + [Annotation(Name = "[Hawkwood] Farron Ring 50006073")] + HawkwoodFarronRing = 50006073, - [Annotation(Name = "[Hawkwood] Hawkwood's Shield 50006074")] - HawkwoodHawkwoodsShield = 50006074, + [Annotation(Name = "[Hawkwood] Hawkwood's Shield 50006074")] + HawkwoodHawkwoodsShield = 50006074, - [Annotation(Name = "[Sirris of the Sunless Realms] Blessed Mail Breaker 50006080")] - SirrisOfTheSunlessRealmsBlessedMailBreaker = 50006080, + [Annotation(Name = "[Sirris of the Sunless Realms] Blessed Mail Breaker 50006080")] + SirrisOfTheSunlessRealmsBlessedMailBreaker = 50006080, - [Annotation(Name = "[Sirris of the Sunless Realms] Sunset Shield 50006081")] - SirrisOfTheSunlessRealmsSunsetShield = 50006081, + [Annotation(Name = "[Sirris of the Sunless Realms] Sunset Shield 50006081")] + SirrisOfTheSunlessRealmsSunsetShield = 50006081, - [Annotation(Name = "[Sirris of the Sunless Realms] Sunset Helm 50006083")] - SirrisOfTheSunlessRealmsSunsetHelm = 50006083, + [Annotation(Name = "[Sirris of the Sunless Realms] Sunset Helm 50006083")] + SirrisOfTheSunlessRealmsSunsetHelm = 50006083, - [Annotation(Name = "[Ringfinger Leonhard] Black Eye Orb 50006092")] - RingfingerLeonhardBlackEyeOrb = 50006092, + [Annotation(Name = "[Ringfinger Leonhard] Black Eye Orb 50006092")] + RingfingerLeonhardBlackEyeOrb = 50006092, - [Annotation(Name = "[Ringfinger Leonhard] Red Eye Orb 6780")] - RingfingerLeonhardRedEyeOrb = 6780, + [Annotation(Name = "[Ringfinger Leonhard] Red Eye Orb 6780")] + RingfingerLeonhardRedEyeOrb = 6780, - [Annotation(Name = "[Andre] Hawkwood's Swordgrass 50006100")] - AndreHawkwoodsSwordgrass = 50006100, + [Annotation(Name = "[Andre] Hawkwood's Swordgrass 50006100")] + AndreHawkwoodsSwordgrass = 50006100, - [Annotation(Name = "[Orbeck of Vinheim] Young Dragon Ring 50006130")] - OrbeckOfVinheimYoungDragonRing = 50006130, + [Annotation(Name = "[Orbeck of Vinheim] Young Dragon Ring 50006130")] + OrbeckOfVinheimYoungDragonRing = 50006130, - [Annotation(Name = "[Orbeck of Vinheim] Slumbering Dragoncrest Ring 50006131")] - OrbeckOfVinheimSlumberingDragoncrestRing = 50006131, + [Annotation(Name = "[Orbeck of Vinheim] Slumbering Dragoncrest Ring 50006131")] + OrbeckOfVinheimSlumberingDragoncrestRing = 50006131, - [Annotation(Name = "[Undead Settlement] Saint's Talisman 50006161")] - UndeadSettlementSaintsTalisman = 50006161, + [Annotation(Name = "[Undead Settlement] Saint's Talisman 50006161")] + UndeadSettlementSaintsTalisman = 50006161, - [Annotation(Name = "[Cathedral of the Deep] Deep Braille Divine Tome - Mimic drop 50006162")] - CathedralOfTheDeepDeepBrailleDivineTomeMimicdrop = 50006162, + [Annotation(Name = "[Cathedral of the Deep] Deep Braille Divine Tome - Mimic drop 50006162")] + CathedralOfTheDeepDeepBrailleDivineTomeMimicdrop = 50006162, - [Annotation(Name = "[Yuria of Londor] Londor Braille Divine Tome 50006163")] - YuriaOfLondorLondorBrailleDivineTome = 50006163, + [Annotation(Name = "[Yuria of Londor] Londor Braille Divine Tome 50006163")] + YuriaOfLondorLondorBrailleDivineTome = 50006163, - [Annotation(Name = "[Yoel of Londor] Dark Sigil 50006193")] - YoelOfLondorDarkSigil = 50006193, + [Annotation(Name = "[Yoel of Londor] Dark Sigil 50006193")] + YoelOfLondorDarkSigil = 50006193, - [Annotation(Name = "Rusted Coin 50006200")] - RustedCoin = 50006200, + [Annotation(Name = "Rusted Coin 50006200")] + RustedCoin = 50006200, - [Annotation(Name = "Rusted Gold Coin 50006201")] - RustedGoldCoin = 50006201, + [Annotation(Name = "Rusted Gold Coin 50006201")] + RustedGoldCoin = 50006201, - [Annotation(Name = "[Siegward of Catarina] Siegbräu 50006210")] - SiegwardOfCatarinaSiegbräu = 50006210, + [Annotation(Name = "[Siegward of Catarina] Siegbräu 50006210")] + SiegwardOfCatarinaSiegbräu = 50006210, - [Annotation(Name = "[Siegward of Catarina] Siegbräu 50006211")] - SiegwardOfCatarinaSiegbräu_ = 50006211, + [Annotation(Name = "[Siegward of Catarina] Siegbräu 50006211")] + SiegwardOfCatarinaSiegbräu_ = 50006211, - [Annotation(Name = "[Siegward of Catarina] Siegbräu 50006212")] - SiegwardOfCatarinaSiegbräu__ = 50006212, + [Annotation(Name = "[Siegward of Catarina] Siegbräu 50006212")] + SiegwardOfCatarinaSiegbräu__ = 50006212, - [Annotation(Name = "[Siegward of Catarina] Kukri 50006213")] - SiegwardOfCatarinaKukri = 50006213, + [Annotation(Name = "[Siegward of Catarina] Kukri 50006213")] + SiegwardOfCatarinaKukri = 50006213, - [Annotation(Name = "[Siegward of Catarina] Emit Force 50006214")] - SiegwardOfCatarinaEmitForce = 50006214, + [Annotation(Name = "[Siegward of Catarina] Emit Force 50006214")] + SiegwardOfCatarinaEmitForce = 50006214, - [Annotation(Name = "[Siegward of Catarina] Storm Ruler 50006216")] - SiegwardOfCatarinaStormRuler = 50006216, + [Annotation(Name = "[Siegward of Catarina] Storm Ruler 50006216")] + SiegwardOfCatarinaStormRuler = 50006216, - [Annotation(Name = "[Giant] Young White Branch 50006250")] - GiantYoungWhiteBranch = 50006250, + [Annotation(Name = "[Giant] Young White Branch 50006250")] + GiantYoungWhiteBranch = 50006250, - [Annotation(Name = "[Amnesiac Lapp] Lapp's Helm 50006624")] - AmnesiacLappLappsHelm = 50006624, + [Annotation(Name = "[Amnesiac Lapp] Lapp's Helm 50006624")] + AmnesiacLappLappsHelm = 50006624, - [Annotation(Name = "[High Wall of Lothric] Estus Shard 53000000")] - HighWallOfLothricEstusShard = 53000000, + [Annotation(Name = "[High Wall of Lothric] Estus Shard 53000000")] + HighWallOfLothricEstusShard = 53000000, - [Annotation(Name = "[High Wall of Lothric] Green Blossom 53000010")] - HighWallOfLothricGreenBlossom = 53000010, + [Annotation(Name = "[High Wall of Lothric] Green Blossom 53000010")] + HighWallOfLothricGreenBlossom = 53000010, - [Annotation(Name = "[High Wall of Lothric] Gold Pine Resin 53000020")] - HighWallOfLothricGoldPineResin = 53000020, + [Annotation(Name = "[High Wall of Lothric] Gold Pine Resin 53000020")] + HighWallOfLothricGoldPineResin = 53000020, - [Annotation(Name = "[High Wall of Lothric] Large Soul of a Deserted Corpse 53000030")] - HighWallOfLothricLargeSoulOfaDesertedCorpse = 53000030, + [Annotation(Name = "[High Wall of Lothric] Large Soul of a Deserted Corpse 53000030")] + HighWallOfLothricLargeSoulOfaDesertedCorpse = 53000030, - [Annotation(Name = "[High Wall of Lothric] Soul of a Deserted Corpse 53000040")] - HighWallOfLothricSoulOfaDesertedCorpse = 53000040, + [Annotation(Name = "[High Wall of Lothric] Soul of a Deserted Corpse 53000040")] + HighWallOfLothricSoulOfaDesertedCorpse = 53000040, - [Annotation(Name = "[High Wall of Lothric] Longbow 53000060")] - HighWallOfLothricLongbow = 53000060, + [Annotation(Name = "[High Wall of Lothric] Longbow 53000060")] + HighWallOfLothricLongbow = 53000060, - [Annotation(Name = "[High Wall of Lothric] Firebomb 53000070")] - HighWallOfLothricFirebomb = 53000070, + [Annotation(Name = "[High Wall of Lothric] Firebomb 53000070")] + HighWallOfLothricFirebomb = 53000070, - [Annotation(Name = "[High Wall of Lothric] Throwing Knife 53000090")] - HighWallOfLothricThrowingKnife = 53000090, + [Annotation(Name = "[High Wall of Lothric] Throwing Knife 53000090")] + HighWallOfLothricThrowingKnife = 53000090, - [Annotation(Name = "[High Wall of Lothric] Soul of a Deserted Corpse 53000110")] - HighWallOfLothricSoulOfaDesertedCorpse_ = 53000110, + [Annotation(Name = "[High Wall of Lothric] Soul of a Deserted Corpse 53000110")] + HighWallOfLothricSoulOfaDesertedCorpse_ = 53000110, - [Annotation(Name = "[High Wall of Lothric] Club 53000120")] - HighWallOfLothricClub = 53000120, + [Annotation(Name = "[High Wall of Lothric] Club 53000120")] + HighWallOfLothricClub = 53000120, - [Annotation(Name = "[High Wall of Lothric] Claymore 53000130")] - HighWallOfLothricClaymore = 53000130, + [Annotation(Name = "[High Wall of Lothric] Claymore 53000130")] + HighWallOfLothricClaymore = 53000130, - [Annotation(Name = "[High Wall of Lothric] Ember 53000140")] - HighWallOfLothricEmber = 53000140, + [Annotation(Name = "[High Wall of Lothric] Ember 53000140")] + HighWallOfLothricEmber = 53000140, - [Annotation(Name = "[High Wall of Lothric] Firebomb 53000150")] - HighWallOfLothricFirebomb_ = 53000150, + [Annotation(Name = "[High Wall of Lothric] Firebomb 53000150")] + HighWallOfLothricFirebomb_ = 53000150, - [Annotation(Name = "[High Wall of Lothric] Titanite Shard 53000160")] - HighWallOfLothricTitaniteShard = 53000160, + [Annotation(Name = "[High Wall of Lothric] Titanite Shard 53000160")] + HighWallOfLothricTitaniteShard = 53000160, - [Annotation(Name = "[High Wall of Lothric] Undead Hunter Charm 53000170")] - HighWallOfLothricUndeadHunterCharm = 53000170, + [Annotation(Name = "[High Wall of Lothric] Undead Hunter Charm 53000170")] + HighWallOfLothricUndeadHunterCharm = 53000170, - [Annotation(Name = "[High Wall of Lothric] Firebomb 53000180")] - HighWallOfLothricFirebomb__ = 53000180, + [Annotation(Name = "[High Wall of Lothric] Firebomb 53000180")] + HighWallOfLothricFirebomb__ = 53000180, - [Annotation(Name = "[High Wall of Lothric] Cell Key 53000210")] - HighWallOfLothricCellKey = 53000210, + [Annotation(Name = "[High Wall of Lothric] Cell Key 53000210")] + HighWallOfLothricCellKey = 53000210, - [Annotation(Name = "[High Wall of Lothric] Ember 53000230")] - HighWallOfLothricEmber_ = 53000230, + [Annotation(Name = "[High Wall of Lothric] Ember 53000230")] + HighWallOfLothricEmber_ = 53000230, - [Annotation(Name = "[High Wall of Lothric] Soul of a Deserted Corpse 53000240")] - HighWallOfLothricSoulOfaDesertedCorpse__ = 53000240, + [Annotation(Name = "[High Wall of Lothric] Soul of a Deserted Corpse 53000240")] + HighWallOfLothricSoulOfaDesertedCorpse__ = 53000240, - [Annotation(Name = "[High Wall of Lothric] Lucerne 53000250")] - HighWallOfLothricLucerne = 53000250, + [Annotation(Name = "[High Wall of Lothric] Lucerne 53000250")] + HighWallOfLothricLucerne = 53000250, - [Annotation(Name = "[High Wall of Lothric] Mail Breaker 53000270")] - HighWallOfLothricMailBreaker = 53000270, + [Annotation(Name = "[High Wall of Lothric] Mail Breaker 53000270")] + HighWallOfLothricMailBreaker = 53000270, - [Annotation(Name = "[High Wall of Lothric] Titanite Shard 53000280")] - HighWallOfLothricTitaniteShard_ = 53000280, + [Annotation(Name = "[High Wall of Lothric] Titanite Shard 53000280")] + HighWallOfLothricTitaniteShard_ = 53000280, - [Annotation(Name = "[High Wall of Lothric] Rapier 53000290")] - HighWallOfLothricRapier = 53000290, + [Annotation(Name = "[High Wall of Lothric] Rapier 53000290")] + HighWallOfLothricRapier = 53000290, - [Annotation(Name = "[High Wall of Lothric] Titanite Shard 53000300")] - HighWallOfLothricTitaniteShard__ = 53000300, + [Annotation(Name = "[High Wall of Lothric] Titanite Shard 53000300")] + HighWallOfLothricTitaniteShard__ = 53000300, - [Annotation(Name = "[High Wall of Lothric] Large Soul of a Deserted Corpse 53000310")] - HighWallOfLothricLargeSoulOfaDesertedCorpse_ = 53000310, + [Annotation(Name = "[High Wall of Lothric] Large Soul of a Deserted Corpse 53000310")] + HighWallOfLothricLargeSoulOfaDesertedCorpse_ = 53000310, - [Annotation(Name = "[High Wall of Lothric] Black Firebomb 53000320")] - HighWallOfLothricBlackFirebomb = 53000320, + [Annotation(Name = "[High Wall of Lothric] Black Firebomb 53000320")] + HighWallOfLothricBlackFirebomb = 53000320, - [Annotation(Name = "[High Wall of Lothric] Soul of a Deserted Corpse 53000340")] - HighWallOfLothricSoulOfaDesertedCorpse___ = 53000340, + [Annotation(Name = "[High Wall of Lothric] Soul of a Deserted Corpse 53000340")] + HighWallOfLothricSoulOfaDesertedCorpse___ = 53000340, - [Annotation(Name = "[High Wall of Lothric] Ember 53000360")] - HighWallOfLothricEmber__ = 53000360, + [Annotation(Name = "[High Wall of Lothric] Ember 53000360")] + HighWallOfLothricEmber__ = 53000360, - [Annotation(Name = "[High Wall of Lothric] Large Soul of a Deserted Corpse 53000370")] - HighWallOfLothricLargeSoulOfaDesertedCorpse__ = 53000370, + [Annotation(Name = "[High Wall of Lothric] Large Soul of a Deserted Corpse 53000370")] + HighWallOfLothricLargeSoulOfaDesertedCorpse__ = 53000370, - [Annotation(Name = "[High Wall of Lothric] Binoculars 53000380")] - HighWallOfLothricBinoculars = 53000380, + [Annotation(Name = "[High Wall of Lothric] Binoculars 53000380")] + HighWallOfLothricBinoculars = 53000380, - [Annotation(Name = "[High Wall of Lothric] Ring of Sacrifice 53000390")] - HighWallOfLothricRingOfSacrifice = 53000390, + [Annotation(Name = "[High Wall of Lothric] Ring of Sacrifice 53000390")] + HighWallOfLothricRingOfSacrifice = 53000390, - [Annotation(Name = "[High Wall of Lothric] Throwing Knife 53000400")] - HighWallOfLothricThrowingKnife_ = 53000400, + [Annotation(Name = "[High Wall of Lothric] Throwing Knife 53000400")] + HighWallOfLothricThrowingKnife_ = 53000400, - [Annotation(Name = "[High Wall of Lothric] Soul of a Deserted Corpse 53000410")] - HighWallOfLothricSoulOfaDesertedCorpse____ = 53000410, + [Annotation(Name = "[High Wall of Lothric] Soul of a Deserted Corpse 53000410")] + HighWallOfLothricSoulOfaDesertedCorpse____ = 53000410, - [Annotation(Name = "[High Wall of Lothric] Green Blossom 53000420")] - HighWallOfLothricGreenBlossom_ = 53000420, + [Annotation(Name = "[High Wall of Lothric] Green Blossom 53000420")] + HighWallOfLothricGreenBlossom_ = 53000420, - [Annotation(Name = "[Consumed King's Garden] Shadow Mask 53000430")] - ConsumedKingsGardenShadowMask = 53000430, + [Annotation(Name = "[Consumed King's Garden] Shadow Mask 53000430")] + ConsumedKingsGardenShadowMask = 53000430, - [Annotation(Name = "[High Wall of Lothric] Broadsword 53000440")] - HighWallOfLothricBroadsword = 53000440, + [Annotation(Name = "[High Wall of Lothric] Broadsword 53000440")] + HighWallOfLothricBroadsword = 53000440, - [Annotation(Name = "[High Wall of Lothric] Soul of a Deserted Corpse 53000450")] - HighWallOfLothricSoulOfaDesertedCorpse_____ = 53000450, + [Annotation(Name = "[High Wall of Lothric] Soul of a Deserted Corpse 53000450")] + HighWallOfLothricSoulOfaDesertedCorpse_____ = 53000450, - [Annotation(Name = "[High Wall of Lothric] Black Firebomb 53000470")] - HighWallOfLothricBlackFirebomb_ = 53000470, + [Annotation(Name = "[High Wall of Lothric] Black Firebomb 53000470")] + HighWallOfLothricBlackFirebomb_ = 53000470, - [Annotation(Name = "[Consumed King's Garden] Claw 53000480")] - ConsumedKingsGardenClaw = 53000480, + [Annotation(Name = "[Consumed King's Garden] Claw 53000480")] + ConsumedKingsGardenClaw = 53000480, - [Annotation(Name = "[Consumed King's Garden] Large Titanite Shard 53000490")] - ConsumedKingsGardenLargeTitaniteShard = 53000490, + [Annotation(Name = "[Consumed King's Garden] Large Titanite Shard 53000490")] + ConsumedKingsGardenLargeTitaniteShard = 53000490, - [Annotation(Name = "[Consumed King's Garden] Dragonscale Ring 53000500")] - ConsumedKingsGardenDragonscaleRing = 53000500, + [Annotation(Name = "[Consumed King's Garden] Dragonscale Ring 53000500")] + ConsumedKingsGardenDragonscaleRing = 53000500, - [Annotation(Name = "[Consumed King's Garden] Human Pine Resin 53000510")] - ConsumedKingsGardenHumanPineResin = 53000510, + [Annotation(Name = "[Consumed King's Garden] Human Pine Resin 53000510")] + ConsumedKingsGardenHumanPineResin = 53000510, - [Annotation(Name = "[Consumed King's Garden] Titanite Chunk 53000520")] - ConsumedKingsGardenTitaniteChunk = 53000520, + [Annotation(Name = "[Consumed King's Garden] Titanite Chunk 53000520")] + ConsumedKingsGardenTitaniteChunk = 53000520, - [Annotation(Name = "[Consumed King's Garden] Titanite Chunk 53000530")] - ConsumedKingsGardenTitaniteChunk_ = 53000530, + [Annotation(Name = "[Consumed King's Garden] Titanite Chunk 53000530")] + ConsumedKingsGardenTitaniteChunk_ = 53000530, - [Annotation(Name = "[Consumed King's Garden] Soul of a Weary Warrior 53000540")] - ConsumedKingsGardenSoulOfaWearyWarrior = 53000540, + [Annotation(Name = "[Consumed King's Garden] Soul of a Weary Warrior 53000540")] + ConsumedKingsGardenSoulOfaWearyWarrior = 53000540, - [Annotation(Name = "[Consumed King's Garden] Dark Gem 53000550")] - ConsumedKingsGardenDarkGem = 53000550, + [Annotation(Name = "[Consumed King's Garden] Dark Gem 53000550")] + ConsumedKingsGardenDarkGem = 53000550, - [Annotation(Name = "[Consumed King's Garden] Refined Gem 53000570")] - ConsumedKingsGardenRefinedGem = 53000570, + [Annotation(Name = "[Consumed King's Garden] Refined Gem 53000570")] + ConsumedKingsGardenRefinedGem = 53000570, - [Annotation(Name = "[Consumed King's Garden] Firebomb 53000580")] - ConsumedKingsGardenFirebomb = 53000580, + [Annotation(Name = "[Consumed King's Garden] Firebomb 53000580")] + ConsumedKingsGardenFirebomb = 53000580, - [Annotation(Name = "[Consumed King's Garden] Soul of a Deserted Corpse 53000610")] - ConsumedKingsGardenSoulOfaDesertedCorpse = 53000610, + [Annotation(Name = "[Consumed King's Garden] Soul of a Deserted Corpse 53000610")] + ConsumedKingsGardenSoulOfaDesertedCorpse = 53000610, - [Annotation(Name = "[Consumed King's Garden] Human Pine Resin 53000620")] - ConsumedKingsGardenHumanPineResin_ = 53000620, + [Annotation(Name = "[Consumed King's Garden] Human Pine Resin 53000620")] + ConsumedKingsGardenHumanPineResin_ = 53000620, - [Annotation(Name = "[Consumed King's Garden] Titanite Chunk 53000630")] - ConsumedKingsGardenTitaniteChunk__ = 53000630, + [Annotation(Name = "[Consumed King's Garden] Titanite Chunk 53000630")] + ConsumedKingsGardenTitaniteChunk__ = 53000630, - [Annotation(Name = "[Consumed King's Garden] Ring of Sacrifice 53000640")] - ConsumedKingsGardenRingOfSacrifice = 53000640, + [Annotation(Name = "[Consumed King's Garden] Ring of Sacrifice 53000640")] + ConsumedKingsGardenRingOfSacrifice = 53000640, - [Annotation(Name = "[High Wall of Lothric] Estus Shard 53000650")] - HighWallOfLothricEstusShard_ = 53000650, + [Annotation(Name = "[High Wall of Lothric] Estus Shard 53000650")] + HighWallOfLothricEstusShard_ = 53000650, - [Annotation(Name = "[High Wall of Lothric] Fleshbite Ring+1 53000700")] - HighWallOfLothricFleshbiteRing1 = 53000700, + [Annotation(Name = "[High Wall of Lothric] Fleshbite Ring+1 53000700")] + HighWallOfLothricFleshbiteRing1 = 53000700, - [Annotation(Name = "[High Wall of Lothric] Wood Grain Ring+1 53000710")] - HighWallOfLothricWoodGrainRing1 = 53000710, + [Annotation(Name = "[High Wall of Lothric] Wood Grain Ring+1 53000710")] + HighWallOfLothricWoodGrainRing1 = 53000710, - [Annotation(Name = "[High Wall of Lothric] Ring of the Evil Eye+2 53000720")] - HighWallOfLothricRingOfTheEvilEye2 = 53000720, + [Annotation(Name = "[High Wall of Lothric] Ring of the Evil Eye+2 53000720")] + HighWallOfLothricRingOfTheEvilEye2 = 53000720, - [Annotation(Name = "[Consumed King's Garden] Sage Ring+2 53000730")] - ConsumedKingsGardenSageRing2 = 53000730, + [Annotation(Name = "[Consumed King's Garden] Sage Ring+2 53000730")] + ConsumedKingsGardenSageRing2 = 53000730, - [Annotation(Name = "[Consumed King's Garden] Titanite Scale 53000800")] - ConsumedKingsGardenTitaniteScale = 53000800, + [Annotation(Name = "[Consumed King's Garden] Titanite Scale 53000800")] + ConsumedKingsGardenTitaniteScale = 53000800, - [Annotation(Name = "[High Wall of Lothric] Silver Eagle Kite Shield 53000820")] - HighWallOfLothricSilverEagleKiteShield = 53000820, + [Annotation(Name = "[High Wall of Lothric] Silver Eagle Kite Shield 53000820")] + HighWallOfLothricSilverEagleKiteShield = 53000820, - [Annotation(Name = "[High Wall of Lothric] Astora Straight Sword 53000830")] - HighWallOfLothricAstoraStraightSword = 53000830, + [Annotation(Name = "[High Wall of Lothric] Astora Straight Sword 53000830")] + HighWallOfLothricAstoraStraightSword = 53000830, - [Annotation(Name = "[Consumed King's Garden] Titanite Scale 53000840")] - ConsumedKingsGardenTitaniteScale_ = 53000840, + [Annotation(Name = "[Consumed King's Garden] Titanite Scale 53000840")] + ConsumedKingsGardenTitaniteScale_ = 53000840, - [Annotation(Name = "[Consumed King's Garden] Drakeblood Helm 53000950")] - ConsumedKingsGardenDrakebloodHelm = 53000950, + [Annotation(Name = "[Consumed King's Garden] Drakeblood Helm 53000950")] + ConsumedKingsGardenDrakebloodHelm = 53000950, - [Annotation(Name = "[Lothric Castle] Sniper Crossbow 53010000")] - LothricCastleSniperCrossbow = 53010000, + [Annotation(Name = "[Lothric Castle] Sniper Crossbow 53010000")] + LothricCastleSniperCrossbow = 53010000, - [Annotation(Name = "[Lothric Castle] Titanite Scale 53010010")] - LothricCastleTitaniteScale = 53010010, + [Annotation(Name = "[Lothric Castle] Titanite Scale 53010010")] + LothricCastleTitaniteScale = 53010010, - [Annotation(Name = "[Lothric Castle] Titanite Chunk 53010020")] - LothricCastleTitaniteChunk = 53010020, + [Annotation(Name = "[Lothric Castle] Titanite Chunk 53010020")] + LothricCastleTitaniteChunk = 53010020, - [Annotation(Name = "[Lothric Castle] Greatlance 53010030")] - LothricCastleGreatlance = 53010030, + [Annotation(Name = "[Lothric Castle] Greatlance 53010030")] + LothricCastleGreatlance = 53010030, - [Annotation(Name = "[Lothric Castle] Titanite Chunk 53010040")] - LothricCastleTitaniteChunk_ = 53010040, + [Annotation(Name = "[Lothric Castle] Titanite Chunk 53010040")] + LothricCastleTitaniteChunk_ = 53010040, - [Annotation(Name = "[Lothric Castle] Titanite Chunk 53010050")] - LothricCastleTitaniteChunk__ = 53010050, + [Annotation(Name = "[Lothric Castle] Titanite Chunk 53010050")] + LothricCastleTitaniteChunk__ = 53010050, - [Annotation(Name = "[Lothric Castle] Sacred Bloom Shield 53010060")] - LothricCastleSacredBloomShield = 53010060, + [Annotation(Name = "[Lothric Castle] Sacred Bloom Shield 53010060")] + LothricCastleSacredBloomShield = 53010060, - [Annotation(Name = "[Lothric Castle] Titanite Chunk 53010070")] - LothricCastleTitaniteChunk___ = 53010070, + [Annotation(Name = "[Lothric Castle] Titanite Chunk 53010070")] + LothricCastleTitaniteChunk___ = 53010070, - [Annotation(Name = "[Lothric Castle] Refined Gem 53010080")] - LothricCastleRefinedGem = 53010080, + [Annotation(Name = "[Lothric Castle] Refined Gem 53010080")] + LothricCastleRefinedGem = 53010080, - [Annotation(Name = "[Lothric Castle] Soul of a Crestfallen Knight 53010090")] - LothricCastleSoulOfaCrestfallenKnight = 53010090, + [Annotation(Name = "[Lothric Castle] Soul of a Crestfallen Knight 53010090")] + LothricCastleSoulOfaCrestfallenKnight = 53010090, - [Annotation(Name = "[Lothric Castle] Undead Bone Shard 53010100")] - LothricCastleUndeadBoneShard = 53010100, + [Annotation(Name = "[Lothric Castle] Undead Bone Shard 53010100")] + LothricCastleUndeadBoneShard = 53010100, - [Annotation(Name = "[Lothric Castle] Lightning Urn 53010110")] - LothricCastleLightningUrn = 53010110, + [Annotation(Name = "[Lothric Castle] Lightning Urn 53010110")] + LothricCastleLightningUrn = 53010110, - [Annotation(Name = "[Lothric Castle] Titanite Chunk 53010120")] - LothricCastleTitaniteChunk____ = 53010120, + [Annotation(Name = "[Lothric Castle] Titanite Chunk 53010120")] + LothricCastleTitaniteChunk____ = 53010120, - [Annotation(Name = "[Lothric Castle] Titanite Chunk 53010130")] - LothricCastleTitaniteChunk_____ = 53010130, + [Annotation(Name = "[Lothric Castle] Titanite Chunk 53010130")] + LothricCastleTitaniteChunk_____ = 53010130, - [Annotation(Name = "[Lothric Castle] Titanite Chunk 53010140")] - LothricCastleTitaniteChunk______ = 53010140, + [Annotation(Name = "[Lothric Castle] Titanite Chunk 53010140")] + LothricCastleTitaniteChunk______ = 53010140, - [Annotation(Name = "[Grand Archives] Caitha's Chime 53010150")] - GrandArchivesCaithasChime = 53010150, + [Annotation(Name = "[Grand Archives] Caitha's Chime 53010150")] + GrandArchivesCaithasChime = 53010150, - [Annotation(Name = "[Lothric Castle] Lightning Urn 53010160")] - LothricCastleLightningUrn_ = 53010160, + [Annotation(Name = "[Lothric Castle] Lightning Urn 53010160")] + LothricCastleLightningUrn_ = 53010160, - [Annotation(Name = "[Lothric Castle] Ember 53010170")] - LothricCastleEmber = 53010170, + [Annotation(Name = "[Lothric Castle] Ember 53010170")] + LothricCastleEmber = 53010170, - [Annotation(Name = "[Lothric Castle] Raw Gem 53010180")] - LothricCastleRawGem = 53010180, + [Annotation(Name = "[Lothric Castle] Raw Gem 53010180")] + LothricCastleRawGem = 53010180, - [Annotation(Name = "[Lothric Castle] Black Firebomb 53010190")] - LothricCastleBlackFirebomb = 53010190, + [Annotation(Name = "[Lothric Castle] Black Firebomb 53010190")] + LothricCastleBlackFirebomb = 53010190, - [Annotation(Name = "[Lothric Castle] Pale Pine Resin 53010200")] - LothricCastlePalePineResin = 53010200, + [Annotation(Name = "[Lothric Castle] Pale Pine Resin 53010200")] + LothricCastlePalePineResin = 53010200, - [Annotation(Name = "[Lothric Castle] Large Soul of a Weary Warrior 53010210")] - LothricCastleLargeSoulOfaWearyWarrior = 53010210, + [Annotation(Name = "[Lothric Castle] Large Soul of a Weary Warrior 53010210")] + LothricCastleLargeSoulOfaWearyWarrior = 53010210, - [Annotation(Name = "[Lothric Castle] Sunlight Medal 53010220")] - LothricCastleSunlightMedal = 53010220, + [Annotation(Name = "[Lothric Castle] Sunlight Medal 53010220")] + LothricCastleSunlightMedal = 53010220, - [Annotation(Name = "[Lothric Castle] Soul of a Crestfallen Knight 53010230")] - LothricCastleSoulOfaCrestfallenKnight_ = 53010230, + [Annotation(Name = "[Lothric Castle] Soul of a Crestfallen Knight 53010230")] + LothricCastleSoulOfaCrestfallenKnight_ = 53010230, - [Annotation(Name = "[Lothric Castle] Titanite Chunk 53010240")] - LothricCastleTitaniteChunk_______ = 53010240, + [Annotation(Name = "[Lothric Castle] Titanite Chunk 53010240")] + LothricCastleTitaniteChunk_______ = 53010240, - [Annotation(Name = "[Lothric Castle] Titanite Scale 53010250")] - LothricCastleTitaniteScale_ = 53010250, + [Annotation(Name = "[Lothric Castle] Titanite Scale 53010250")] + LothricCastleTitaniteScale_ = 53010250, - [Annotation(Name = "[Lothric Castle] Large Soul of a Nameless Soldier 53010260")] - LothricCastleLargeSoulOfaNamelessSoldier = 53010260, + [Annotation(Name = "[Lothric Castle] Large Soul of a Nameless Soldier 53010260")] + LothricCastleLargeSoulOfaNamelessSoldier = 53010260, - [Annotation(Name = "[Lothric Castle] Knight's Ring 53010270")] - LothricCastleKnightsRing = 53010270, + [Annotation(Name = "[Lothric Castle] Knight's Ring 53010270")] + LothricCastleKnightsRing = 53010270, - [Annotation(Name = "[Lothric Castle] Ember 53010280")] - LothricCastleEmber_ = 53010280, + [Annotation(Name = "[Lothric Castle] Ember 53010280")] + LothricCastleEmber_ = 53010280, - [Annotation(Name = "[Lothric Castle] Large Soul of a Weary Warrior 53010290")] - LothricCastleLargeSoulOfaWearyWarrior_ = 53010290, + [Annotation(Name = "[Lothric Castle] Large Soul of a Weary Warrior 53010290")] + LothricCastleLargeSoulOfaWearyWarrior_ = 53010290, - [Annotation(Name = "[Lothric Castle] Ember 53010300")] - LothricCastleEmber__ = 53010300, + [Annotation(Name = "[Lothric Castle] Ember 53010300")] + LothricCastleEmber__ = 53010300, - [Annotation(Name = "[Lothric Castle] Twinkling Titanite 53010310")] - LothricCastleTwinklingTitanite = 53010310, + [Annotation(Name = "[Lothric Castle] Twinkling Titanite 53010310")] + LothricCastleTwinklingTitanite = 53010310, - [Annotation(Name = "[Lothric Castle] Large Soul of a Nameless Soldier 53010320")] - LothricCastleLargeSoulOfaNamelessSoldier_ = 53010320, + [Annotation(Name = "[Lothric Castle] Large Soul of a Nameless Soldier 53010320")] + LothricCastleLargeSoulOfaNamelessSoldier_ = 53010320, - [Annotation(Name = "[Lothric Castle] Ember 53010330")] - LothricCastleEmber___ = 53010330, + [Annotation(Name = "[Lothric Castle] Ember 53010330")] + LothricCastleEmber___ = 53010330, - [Annotation(Name = "[Lothric Castle] Winged Knight Helm 53010340")] - LothricCastleWingedKnightHelm = 53010340, + [Annotation(Name = "[Lothric Castle] Winged Knight Helm 53010340")] + LothricCastleWingedKnightHelm = 53010340, - [Annotation(Name = "[Lothric Castle] Rusted Coin 53010350")] - LothricCastleRustedCoin = 53010350, + [Annotation(Name = "[Lothric Castle] Rusted Coin 53010350")] + LothricCastleRustedCoin = 53010350, - [Annotation(Name = "[Lothric Castle] Titanite Slab 53010360")] - LothricCastleTitaniteSlab = 53010360, + [Annotation(Name = "[Lothric Castle] Titanite Slab 53010360")] + LothricCastleTitaniteSlab = 53010360, - [Annotation(Name = "[Lothric Castle] Braille Divine Tome of Lothric 53010370")] - LothricCastleBrailleDivineTomeOfLothric = 53010370, + [Annotation(Name = "[Lothric Castle] Braille Divine Tome of Lothric 53010370")] + LothricCastleBrailleDivineTomeOfLothric = 53010370, - [Annotation(Name = "[Lothric Castle] Red Tearstone Ring 53010380")] - LothricCastleRedTearstoneRing = 53010380, + [Annotation(Name = "[Lothric Castle] Red Tearstone Ring 53010380")] + LothricCastleRedTearstoneRing = 53010380, - [Annotation(Name = "[Lothric Castle] Twinkling Titanite 53010400")] - LothricCastleTwinklingTitanite_ = 53010400, + [Annotation(Name = "[Lothric Castle] Twinkling Titanite 53010400")] + LothricCastleTwinklingTitanite_ = 53010400, - [Annotation(Name = "[Lothric Castle] Large Soul of a Nameless Soldier 53010420")] - LothricCastleLargeSoulOfaNamelessSoldier__ = 53010420, + [Annotation(Name = "[Lothric Castle] Large Soul of a Nameless Soldier 53010420")] + LothricCastleLargeSoulOfaNamelessSoldier__ = 53010420, - [Annotation(Name = "[Lothric Castle] Titanite Scale 53010500")] - LothricCastleTitaniteScale__ = 53010500, + [Annotation(Name = "[Lothric Castle] Titanite Scale 53010500")] + LothricCastleTitaniteScale__ = 53010500, - [Annotation(Name = "[Lothric Castle] Titanite Scale 53010520")] - LothricCastleTitaniteScale___ = 53010520, + [Annotation(Name = "[Lothric Castle] Titanite Scale 53010520")] + LothricCastleTitaniteScale___ = 53010520, - [Annotation(Name = "[Lothric Castle] Hood of Prayer 53010530")] - LothricCastleHoodOfPrayer = 53010530, + [Annotation(Name = "[Lothric Castle] Hood of Prayer 53010530")] + LothricCastleHoodOfPrayer = 53010530, - [Annotation(Name = "[Lothric Castle] Spirit Tree Crest Shield 53010600")] - LothricCastleSpiritTreeCrestShield = 53010600, + [Annotation(Name = "[Lothric Castle] Spirit Tree Crest Shield 53010600")] + LothricCastleSpiritTreeCrestShield = 53010600, - [Annotation(Name = "[Lothric Castle] Titanite Scale 53010610")] - LothricCastleTitaniteScale____ = 53010610, + [Annotation(Name = "[Lothric Castle] Titanite Scale 53010610")] + LothricCastleTitaniteScale____ = 53010610, - [Annotation(Name = "[Lothric Castle] Twinkling Titanite 53010620")] - LothricCastleTwinklingTitanite__ = 53010620, + [Annotation(Name = "[Lothric Castle] Twinkling Titanite 53010620")] + LothricCastleTwinklingTitanite__ = 53010620, - [Annotation(Name = "[Lothric Castle] Twinkling Titanite 53010640")] - LothricCastleTwinklingTitanite___ = 53010640, + [Annotation(Name = "[Lothric Castle] Twinkling Titanite 53010640")] + LothricCastleTwinklingTitanite___ = 53010640, - [Annotation(Name = "[Lothric Castle] Life Ring+2 53010700")] - LothricCastleLifeRing2 = 53010700, + [Annotation(Name = "[Lothric Castle] Life Ring+2 53010700")] + LothricCastleLifeRing2 = 53010700, - [Annotation(Name = "[Lothric Castle] Dark Stoneplate Ring+1 53010710")] - LothricCastleDarkStoneplateRing1 = 53010710, + [Annotation(Name = "[Lothric Castle] Dark Stoneplate Ring+1 53010710")] + LothricCastleDarkStoneplateRing1 = 53010710, - [Annotation(Name = "[Lothric Castle] Thunder Stoneplate Ring+2 53010720")] - LothricCastleThunderStoneplateRing2 = 53010720, + [Annotation(Name = "[Lothric Castle] Thunder Stoneplate Ring+2 53010720")] + LothricCastleThunderStoneplateRing2 = 53010720, - [Annotation(Name = "[Undead Settlement] Flynn's Ring 53100000")] - UndeadSettlementFlynnsRing = 53100000, + [Annotation(Name = "[Undead Settlement] Flynn's Ring 53100000")] + UndeadSettlementFlynnsRing = 53100000, - [Annotation(Name = "[Undead Settlement] Undead Bone Shard 53100010")] - UndeadSettlementUndeadBoneShard = 53100010, + [Annotation(Name = "[Undead Settlement] Undead Bone Shard 53100010")] + UndeadSettlementUndeadBoneShard = 53100010, - [Annotation(Name = "[Undead Settlement] Alluring Skull 53100020")] - UndeadSettlementAlluringSkull = 53100020, + [Annotation(Name = "[Undead Settlement] Alluring Skull 53100020")] + UndeadSettlementAlluringSkull = 53100020, - [Annotation(Name = "[Undead Settlement] Mortician's Ashes 53100030")] - UndeadSettlementMorticiansAshes = 53100030, + [Annotation(Name = "[Undead Settlement] Mortician's Ashes 53100030")] + UndeadSettlementMorticiansAshes = 53100030, - [Annotation(Name = "[Undead Settlement] Homeward Bone 53100040")] - UndeadSettlementHomewardBone = 53100040, + [Annotation(Name = "[Undead Settlement] Homeward Bone 53100040")] + UndeadSettlementHomewardBone = 53100040, - [Annotation(Name = "[Undead Settlement] Caduceus Round Shield 53100050")] - UndeadSettlementCaduceusRoundShield = 53100050, + [Annotation(Name = "[Undead Settlement] Caduceus Round Shield 53100050")] + UndeadSettlementCaduceusRoundShield = 53100050, - [Annotation(Name = "[Undead Settlement] Ember 53100060")] - UndeadSettlementEmber = 53100060, + [Annotation(Name = "[Undead Settlement] Ember 53100060")] + UndeadSettlementEmber = 53100060, - [Annotation(Name = "[Undead Settlement] Soul of an Unknown Traveler 53100070")] - UndeadSettlementSoulOfanUnknownTraveler = 53100070, + [Annotation(Name = "[Undead Settlement] Soul of an Unknown Traveler 53100070")] + UndeadSettlementSoulOfanUnknownTraveler = 53100070, - [Annotation(Name = "[Undead Settlement] Repair Powder 53100080")] - UndeadSettlementRepairPowder = 53100080, + [Annotation(Name = "[Undead Settlement] Repair Powder 53100080")] + UndeadSettlementRepairPowder = 53100080, - [Annotation(Name = "[Undead Settlement] Homeward Bone 53100090")] - UndeadSettlementHomewardBone_ = 53100090, + [Annotation(Name = "[Undead Settlement] Homeward Bone 53100090")] + UndeadSettlementHomewardBone_ = 53100090, - [Annotation(Name = "[Undead Settlement] Spotted Whip 53100100")] - UndeadSettlementSpottedWhip = 53100100, + [Annotation(Name = "[Undead Settlement] Spotted Whip 53100100")] + UndeadSettlementSpottedWhip = 53100100, - [Annotation(Name = "[Undead Settlement] Titanite Shard 53100110")] - UndeadSettlementTitaniteShard = 53100110, + [Annotation(Name = "[Undead Settlement] Titanite Shard 53100110")] + UndeadSettlementTitaniteShard = 53100110, - [Annotation(Name = "[Undead Settlement] Wargod Wooden Shield 53100120")] - UndeadSettlementWargodWoodenShield = 53100120, + [Annotation(Name = "[Undead Settlement] Wargod Wooden Shield 53100120")] + UndeadSettlementWargodWoodenShield = 53100120, - [Annotation(Name = "[Undead Settlement] Large Soul of a Deserted Corpse 53100130")] - UndeadSettlementLargeSoulOfaDesertedCorpse = 53100130, + [Annotation(Name = "[Undead Settlement] Large Soul of a Deserted Corpse 53100130")] + UndeadSettlementLargeSoulOfaDesertedCorpse = 53100130, - [Annotation(Name = "[Undead Settlement] Ember 53100140")] - UndeadSettlementEmber_ = 53100140, + [Annotation(Name = "[Undead Settlement] Ember 53100140")] + UndeadSettlementEmber_ = 53100140, - [Annotation(Name = "[Undead Settlement] Large Soul of a Deserted Corpse 53100150")] - UndeadSettlementLargeSoulOfaDesertedCorpse_ = 53100150, + [Annotation(Name = "[Undead Settlement] Large Soul of a Deserted Corpse 53100150")] + UndeadSettlementLargeSoulOfaDesertedCorpse_ = 53100150, - [Annotation(Name = "[Undead Settlement] Titanite Shard 53100160")] - UndeadSettlementTitaniteShard_ = 53100160, + [Annotation(Name = "[Undead Settlement] Titanite Shard 53100160")] + UndeadSettlementTitaniteShard_ = 53100160, - [Annotation(Name = "[Undead Settlement] Alluring Skull 53100170")] - UndeadSettlementAlluringSkull_ = 53100170, + [Annotation(Name = "[Undead Settlement] Alluring Skull 53100170")] + UndeadSettlementAlluringSkull_ = 53100170, - [Annotation(Name = "[Undead Settlement] Charcoal Pine Bundle 53100180")] - UndeadSettlementCharcoalPineBundle = 53100180, + [Annotation(Name = "[Undead Settlement] Charcoal Pine Bundle 53100180")] + UndeadSettlementCharcoalPineBundle = 53100180, - [Annotation(Name = "[Undead Settlement] Blue Wooden Shield 53100190")] - UndeadSettlementBlueWoodenShield = 53100190, + [Annotation(Name = "[Undead Settlement] Blue Wooden Shield 53100190")] + UndeadSettlementBlueWoodenShield = 53100190, - [Annotation(Name = "[Undead Settlement] Soul of an Unknown Traveler 53100200")] - UndeadSettlementSoulOfanUnknownTraveler_ = 53100200, + [Annotation(Name = "[Undead Settlement] Soul of an Unknown Traveler 53100200")] + UndeadSettlementSoulOfanUnknownTraveler_ = 53100200, - [Annotation(Name = "[Undead Settlement] Charcoal Pine Resin 53100210")] - UndeadSettlementCharcoalPineResin = 53100210, + [Annotation(Name = "[Undead Settlement] Charcoal Pine Resin 53100210")] + UndeadSettlementCharcoalPineResin = 53100210, - [Annotation(Name = "[Undead Settlement] Loincloth 53100220")] - UndeadSettlementLoincloth = 53100220, + [Annotation(Name = "[Undead Settlement] Loincloth 53100220")] + UndeadSettlementLoincloth = 53100220, - [Annotation(Name = "[Undead Settlement] Charcoal Pine Bundle 53100230")] - UndeadSettlementCharcoalPineBundle_ = 53100230, + [Annotation(Name = "[Undead Settlement] Charcoal Pine Bundle 53100230")] + UndeadSettlementCharcoalPineBundle_ = 53100230, - [Annotation(Name = "[Undead Settlement] Soul of an Unknown Traveler 53100240")] - UndeadSettlementSoulOfanUnknownTraveler__ = 53100240, + [Annotation(Name = "[Undead Settlement] Soul of an Unknown Traveler 53100240")] + UndeadSettlementSoulOfanUnknownTraveler__ = 53100240, - [Annotation(Name = "[Undead Settlement] Titanite Shard 53100250")] - UndeadSettlementTitaniteShard__ = 53100250, + [Annotation(Name = "[Undead Settlement] Titanite Shard 53100250")] + UndeadSettlementTitaniteShard__ = 53100250, - [Annotation(Name = "[Undead Settlement] Red Hilted Halberd 53100260")] - UndeadSettlementRedHiltedHalberd = 53100260, + [Annotation(Name = "[Undead Settlement] Red Hilted Halberd 53100260")] + UndeadSettlementRedHiltedHalberd = 53100260, - [Annotation(Name = "[Undead Settlement] Rusted Coin 53100270")] - UndeadSettlementRustedCoin = 53100270, + [Annotation(Name = "[Undead Settlement] Rusted Coin 53100270")] + UndeadSettlementRustedCoin = 53100270, - [Annotation(Name = "[Undead Settlement] Caestus 53100280")] - UndeadSettlementCaestus = 53100280, + [Annotation(Name = "[Undead Settlement] Caestus 53100280")] + UndeadSettlementCaestus = 53100280, - [Annotation(Name = "[Undead Settlement] Saint's Talisman 53100300")] - UndeadSettlementSaintsTalisman_ = 53100300, + [Annotation(Name = "[Undead Settlement] Saint's Talisman 53100300")] + UndeadSettlementSaintsTalisman_ = 53100300, - [Annotation(Name = "[Undead Settlement] Alluring Skull 53100310")] - UndeadSettlementAlluringSkull__ = 53100310, + [Annotation(Name = "[Undead Settlement] Alluring Skull 53100310")] + UndeadSettlementAlluringSkull__ = 53100310, - [Annotation(Name = "[Undead Settlement] Large Club 53100320")] - UndeadSettlementLargeClub = 53100320, + [Annotation(Name = "[Undead Settlement] Large Club 53100320")] + UndeadSettlementLargeClub = 53100320, - [Annotation(Name = "[Undead Settlement] Titanite Shard 53100330")] - UndeadSettlementTitaniteShard___ = 53100330, + [Annotation(Name = "[Undead Settlement] Titanite Shard 53100330")] + UndeadSettlementTitaniteShard___ = 53100330, - [Annotation(Name = "[Undead Settlement] Titanite Shard 53100340")] - UndeadSettlementTitaniteShard____ = 53100340, + [Annotation(Name = "[Undead Settlement] Titanite Shard 53100340")] + UndeadSettlementTitaniteShard____ = 53100340, - [Annotation(Name = "[Undead Settlement] Fading Soul 53100350")] - UndeadSettlementFadingSoul = 53100350, + [Annotation(Name = "[Undead Settlement] Fading Soul 53100350")] + UndeadSettlementFadingSoul = 53100350, - [Annotation(Name = "[Undead Settlement] Titanite Shard 53100360")] - UndeadSettlementTitaniteShard_____ = 53100360, + [Annotation(Name = "[Undead Settlement] Titanite Shard 53100360")] + UndeadSettlementTitaniteShard_____ = 53100360, - [Annotation(Name = "[Undead Settlement] Hand Axe 53100370")] - UndeadSettlementHandAxe = 53100370, + [Annotation(Name = "[Undead Settlement] Hand Axe 53100370")] + UndeadSettlementHandAxe = 53100370, - [Annotation(Name = "[Undead Settlement] Soul of an Unknown Traveler 53100380")] - UndeadSettlementSoulOfanUnknownTraveler___ = 53100380, + [Annotation(Name = "[Undead Settlement] Soul of an Unknown Traveler 53100380")] + UndeadSettlementSoulOfanUnknownTraveler___ = 53100380, - [Annotation(Name = "[Undead Settlement] Ember 53100390")] - UndeadSettlementEmber__ = 53100390, + [Annotation(Name = "[Undead Settlement] Ember 53100390")] + UndeadSettlementEmber__ = 53100390, - [Annotation(Name = "[Undead Settlement] Mirrah Vest 53100400")] - UndeadSettlementMirrahVest = 53100400, + [Annotation(Name = "[Undead Settlement] Mirrah Vest 53100400")] + UndeadSettlementMirrahVest = 53100400, - [Annotation(Name = "[Undead Settlement] Plank Shield 53100410")] - UndeadSettlementPlankShield = 53100410, + [Annotation(Name = "[Undead Settlement] Plank Shield 53100410")] + UndeadSettlementPlankShield = 53100410, - [Annotation(Name = "[Undead Settlement] Red Bug Pellet 53100420")] - UndeadSettlementRedBugPellet = 53100420, + [Annotation(Name = "[Undead Settlement] Red Bug Pellet 53100420")] + UndeadSettlementRedBugPellet = 53100420, - [Annotation(Name = "[Undead Settlement] Chloranthy Ring 53100430")] - UndeadSettlementChloranthyRing = 53100430, + [Annotation(Name = "[Undead Settlement] Chloranthy Ring 53100430")] + UndeadSettlementChloranthyRing = 53100430, - [Annotation(Name = "[Undead Settlement] Fire Clutch Ring 53100440")] - UndeadSettlementFireClutchRing = 53100440, + [Annotation(Name = "[Undead Settlement] Fire Clutch Ring 53100440")] + UndeadSettlementFireClutchRing = 53100440, - [Annotation(Name = "[Undead Settlement] Estus Shard 53100450")] - UndeadSettlementEstusShard = 53100450, + [Annotation(Name = "[Undead Settlement] Estus Shard 53100450")] + UndeadSettlementEstusShard = 53100450, - [Annotation(Name = "[Undead Settlement] Firebomb 53100460")] - UndeadSettlementFirebomb = 53100460, + [Annotation(Name = "[Undead Settlement] Firebomb 53100460")] + UndeadSettlementFirebomb = 53100460, - [Annotation(Name = "[Undead Settlement] Whip 53100490")] - UndeadSettlementWhip = 53100490, + [Annotation(Name = "[Undead Settlement] Whip 53100490")] + UndeadSettlementWhip = 53100490, - [Annotation(Name = "[Undead Settlement] Great Scythe 53100500")] - UndeadSettlementGreatScythe = 53100500, + [Annotation(Name = "[Undead Settlement] Great Scythe 53100500")] + UndeadSettlementGreatScythe = 53100500, - [Annotation(Name = "[Undead Settlement] Homeward Bone 53100540")] - UndeadSettlementHomewardBone__ = 53100540, + [Annotation(Name = "[Undead Settlement] Homeward Bone 53100540")] + UndeadSettlementHomewardBone__ = 53100540, - [Annotation(Name = "[Undead Settlement] Large Soul of a Deserted Corpse 53100550")] - UndeadSettlementLargeSoulOfaDesertedCorpse__ = 53100550, + [Annotation(Name = "[Undead Settlement] Large Soul of a Deserted Corpse 53100550")] + UndeadSettlementLargeSoulOfaDesertedCorpse__ = 53100550, - [Annotation(Name = "[Undead Settlement] Ember 53100570")] - UndeadSettlementEmber___ = 53100570, + [Annotation(Name = "[Undead Settlement] Ember 53100570")] + UndeadSettlementEmber___ = 53100570, - [Annotation(Name = "[Undead Settlement] Large Soul of a Deserted Corpse 53100610")] - UndeadSettlementLargeSoulOfaDesertedCorpse___ = 53100610, + [Annotation(Name = "[Undead Settlement] Large Soul of a Deserted Corpse 53100610")] + UndeadSettlementLargeSoulOfaDesertedCorpse___ = 53100610, - [Annotation(Name = "[Undead Settlement] Fading Soul 53100620")] - UndeadSettlementFadingSoul_ = 53100620, + [Annotation(Name = "[Undead Settlement] Fading Soul 53100620")] + UndeadSettlementFadingSoul_ = 53100620, - [Annotation(Name = "[Undead Settlement] Young White Branch 53100630")] - UndeadSettlementYoungWhiteBranch = 53100630, + [Annotation(Name = "[Undead Settlement] Young White Branch 53100630")] + UndeadSettlementYoungWhiteBranch = 53100630, - [Annotation(Name = "[Undead Settlement] Ember 53100640")] - UndeadSettlementEmber____ = 53100640, + [Annotation(Name = "[Undead Settlement] Ember 53100640")] + UndeadSettlementEmber____ = 53100640, - [Annotation(Name = "[Undead Settlement] Large Soul of a Deserted Corpse 53100650")] - UndeadSettlementLargeSoulOfaDesertedCorpse____ = 53100650, + [Annotation(Name = "[Undead Settlement] Large Soul of a Deserted Corpse 53100650")] + UndeadSettlementLargeSoulOfaDesertedCorpse____ = 53100650, - [Annotation(Name = "[Undead Settlement] Young White Branch 53100660")] - UndeadSettlementYoungWhiteBranch_ = 53100660, + [Annotation(Name = "[Undead Settlement] Young White Branch 53100660")] + UndeadSettlementYoungWhiteBranch_ = 53100660, - [Annotation(Name = "[Undead Settlement] Reinforced Club 53100670")] - UndeadSettlementReinforcedClub = 53100670, + [Annotation(Name = "[Undead Settlement] Reinforced Club 53100670")] + UndeadSettlementReinforcedClub = 53100670, - [Annotation(Name = "[Undead Settlement] Soul of a Nameless Soldier 53100680")] - UndeadSettlementSoulOfaNamelessSoldier = 53100680, + [Annotation(Name = "[Undead Settlement] Soul of a Nameless Soldier 53100680")] + UndeadSettlementSoulOfaNamelessSoldier = 53100680, - [Annotation(Name = "[Undead Settlement] Loretta's Bone 53100700")] - UndeadSettlementLorettasBone = 53100700, + [Annotation(Name = "[Undead Settlement] Loretta's Bone 53100700")] + UndeadSettlementLorettasBone = 53100700, - [Annotation(Name = "[Undead Settlement] Northern Helm 53100710")] - UndeadSettlementNorthernHelm = 53100710, + [Annotation(Name = "[Undead Settlement] Northern Helm 53100710")] + UndeadSettlementNorthernHelm = 53100710, - [Annotation(Name = "[Undead Settlement] Partizan 53100720")] - UndeadSettlementPartizan = 53100720, + [Annotation(Name = "[Undead Settlement] Partizan 53100720")] + UndeadSettlementPartizan = 53100720, - [Annotation(Name = "[Undead Settlement] Flame Stoneplate Ring 53100730")] - UndeadSettlementFlameStoneplateRing = 53100730, + [Annotation(Name = "[Undead Settlement] Flame Stoneplate Ring 53100730")] + UndeadSettlementFlameStoneplateRing = 53100730, - [Annotation(Name = "[Undead Settlement] Red and White Round Shield 53100740")] - UndeadSettlementRedandWhiteRoundShield = 53100740, + [Annotation(Name = "[Undead Settlement] Red and White Round Shield 53100740")] + UndeadSettlementRedandWhiteRoundShield = 53100740, - [Annotation(Name = "[Undead Settlement] Small Leather Shield 53100750")] - UndeadSettlementSmallLeatherShield = 53100750, + [Annotation(Name = "[Undead Settlement] Small Leather Shield 53100750")] + UndeadSettlementSmallLeatherShield = 53100750, - [Annotation(Name = "[Undead Settlement] Pale Tongue 53100760")] - UndeadSettlementPaleTongue = 53100760, + [Annotation(Name = "[Undead Settlement] Pale Tongue 53100760")] + UndeadSettlementPaleTongue = 53100760, - [Annotation(Name = "[Undead Settlement] Large Soul of a Deserted Corpse 53100770")] - UndeadSettlementLargeSoulOfaDesertedCorpse_____ = 53100770, + [Annotation(Name = "[Undead Settlement] Large Soul of a Deserted Corpse 53100770")] + UndeadSettlementLargeSoulOfaDesertedCorpse_____ = 53100770, - [Annotation(Name = "[Undead Settlement] Kukri 53100800")] - UndeadSettlementKukri = 53100800, + [Annotation(Name = "[Undead Settlement] Kukri 53100800")] + UndeadSettlementKukri = 53100800, - [Annotation(Name = "[Undead Settlement] Life Ring+1 53100850")] - UndeadSettlementLifeRing1 = 53100850, + [Annotation(Name = "[Undead Settlement] Life Ring+1 53100850")] + UndeadSettlementLifeRing1 = 53100850, - [Annotation(Name = "[Undead Settlement] Poisonbite Ring+1 53100860")] - UndeadSettlementPoisonbiteRing1 = 53100860, + [Annotation(Name = "[Undead Settlement] Poisonbite Ring+1 53100860")] + UndeadSettlementPoisonbiteRing1 = 53100860, - [Annotation(Name = "[Undead Settlement] Covetous Silver Serpent Ring+2 53100870")] - UndeadSettlementCovetousSilverSerpentRing2 = 53100870, + [Annotation(Name = "[Undead Settlement] Covetous Silver Serpent Ring+2 53100870")] + UndeadSettlementCovetousSilverSerpentRing2 = 53100870, - [Annotation(Name = "[Undead Settlement] Human Pine Resin 53100910")] - UndeadSettlementHumanPineResin = 53100910, + [Annotation(Name = "[Undead Settlement] Human Pine Resin 53100910")] + UndeadSettlementHumanPineResin = 53100910, - [Annotation(Name = "[Undead Settlement] Homeward Bone 53100950")] - UndeadSettlementHomewardBone___ = 53100950, + [Annotation(Name = "[Undead Settlement] Homeward Bone 53100950")] + UndeadSettlementHomewardBone___ = 53100950, - [Annotation(Name = "[Archdragon Peak] Lightning Clutch Ring 53200000")] - ArchdragonPeakLightningClutchRing = 53200000, + [Annotation(Name = "[Archdragon Peak] Lightning Clutch Ring 53200000")] + ArchdragonPeakLightningClutchRing = 53200000, - [Annotation(Name = "[Archdragon Peak] Stalk Dung Pie 53200010")] - ArchdragonPeakStalkDungPie = 53200010, + [Annotation(Name = "[Archdragon Peak] Stalk Dung Pie 53200010")] + ArchdragonPeakStalkDungPie = 53200010, - [Annotation(Name = "[Archdragon Peak] Titanite Chunk 53200020")] - ArchdragonPeakTitaniteChunk = 53200020, + [Annotation(Name = "[Archdragon Peak] Titanite Chunk 53200020")] + ArchdragonPeakTitaniteChunk = 53200020, - [Annotation(Name = "[Archdragon Peak] Titanite Scale 53200030")] - ArchdragonPeakTitaniteScale = 53200030, + [Annotation(Name = "[Archdragon Peak] Titanite Scale 53200030")] + ArchdragonPeakTitaniteScale = 53200030, - [Annotation(Name = "[Archdragon Peak] Soul of a Weary Warrior 53200040")] - ArchdragonPeakSoulOfaWearyWarrior = 53200040, + [Annotation(Name = "[Archdragon Peak] Soul of a Weary Warrior 53200040")] + ArchdragonPeakSoulOfaWearyWarrior = 53200040, - [Annotation(Name = "[Archdragon Peak] Titanite Chunk 53200050")] - ArchdragonPeakTitaniteChunk_ = 53200050, + [Annotation(Name = "[Archdragon Peak] Titanite Chunk 53200050")] + ArchdragonPeakTitaniteChunk_ = 53200050, - [Annotation(Name = "[Archdragon Peak] Lightning Gem 53200060")] - ArchdragonPeakLightningGem = 53200060, + [Annotation(Name = "[Archdragon Peak] Lightning Gem 53200060")] + ArchdragonPeakLightningGem = 53200060, - [Annotation(Name = "[Archdragon Peak] Homeward Bone 53200070")] - ArchdragonPeakHomewardBone = 53200070, + [Annotation(Name = "[Archdragon Peak] Homeward Bone 53200070")] + ArchdragonPeakHomewardBone = 53200070, - [Annotation(Name = "[Archdragon Peak] Soul of a Nameless Soldier 53200080")] - ArchdragonPeakSoulOfaNamelessSoldier = 53200080, + [Annotation(Name = "[Archdragon Peak] Soul of a Nameless Soldier 53200080")] + ArchdragonPeakSoulOfaNamelessSoldier = 53200080, - [Annotation(Name = "[Archdragon Peak] Titanite Chunk 53200090")] - ArchdragonPeakTitaniteChunk__ = 53200090, + [Annotation(Name = "[Archdragon Peak] Titanite Chunk 53200090")] + ArchdragonPeakTitaniteChunk__ = 53200090, - [Annotation(Name = "[Archdragon Peak] Ember 53200100")] - ArchdragonPeakEmber = 53200100, + [Annotation(Name = "[Archdragon Peak] Ember 53200100")] + ArchdragonPeakEmber = 53200100, - [Annotation(Name = "[Archdragon Peak] Large Soul of a Weary Warrior 53200110")] - ArchdragonPeakLargeSoulOfaWearyWarrior = 53200110, + [Annotation(Name = "[Archdragon Peak] Large Soul of a Weary Warrior 53200110")] + ArchdragonPeakLargeSoulOfaWearyWarrior = 53200110, - [Annotation(Name = "[Archdragon Peak] Large Soul of a Nameless Soldier 53200120")] - ArchdragonPeakLargeSoulOfaNamelessSoldier = 53200120, + [Annotation(Name = "[Archdragon Peak] Large Soul of a Nameless Soldier 53200120")] + ArchdragonPeakLargeSoulOfaNamelessSoldier = 53200120, - [Annotation(Name = "[Archdragon Peak] Lightning Urn 53200130")] - ArchdragonPeakLightningUrn = 53200130, + [Annotation(Name = "[Archdragon Peak] Lightning Urn 53200130")] + ArchdragonPeakLightningUrn = 53200130, - [Annotation(Name = "[Archdragon Peak] Lightning Bolt 53200140")] - ArchdragonPeakLightningBolt = 53200140, + [Annotation(Name = "[Archdragon Peak] Lightning Bolt 53200140")] + ArchdragonPeakLightningBolt = 53200140, - [Annotation(Name = "[Archdragon Peak] Titanite Chunk 53200150")] - ArchdragonPeakTitaniteChunk___ = 53200150, + [Annotation(Name = "[Archdragon Peak] Titanite Chunk 53200150")] + ArchdragonPeakTitaniteChunk___ = 53200150, - [Annotation(Name = "[Archdragon Peak] Dung Pie 53200160")] - ArchdragonPeakDungPie = 53200160, + [Annotation(Name = "[Archdragon Peak] Dung Pie 53200160")] + ArchdragonPeakDungPie = 53200160, - [Annotation(Name = "[Archdragon Peak] Titanite Scale 53200170")] - ArchdragonPeakTitaniteScale_ = 53200170, + [Annotation(Name = "[Archdragon Peak] Titanite Scale 53200170")] + ArchdragonPeakTitaniteScale_ = 53200170, - [Annotation(Name = "[Archdragon Peak] Soul of a Weary Warrior 53200180")] - ArchdragonPeakSoulOfaWearyWarrior_ = 53200180, + [Annotation(Name = "[Archdragon Peak] Soul of a Weary Warrior 53200180")] + ArchdragonPeakSoulOfaWearyWarrior_ = 53200180, - [Annotation(Name = "[Archdragon Peak] Soul of a Crestfallen Knight 53200190")] - ArchdragonPeakSoulOfaCrestfallenKnight = 53200190, + [Annotation(Name = "[Archdragon Peak] Soul of a Crestfallen Knight 53200190")] + ArchdragonPeakSoulOfaCrestfallenKnight = 53200190, - [Annotation(Name = "[Archdragon Peak] Titanite Chunk 53200200")] - ArchdragonPeakTitaniteChunk____ = 53200200, + [Annotation(Name = "[Archdragon Peak] Titanite Chunk 53200200")] + ArchdragonPeakTitaniteChunk____ = 53200200, - [Annotation(Name = "[Archdragon Peak] Ember 53200210")] - ArchdragonPeakEmber_ = 53200210, + [Annotation(Name = "[Archdragon Peak] Ember 53200210")] + ArchdragonPeakEmber_ = 53200210, - [Annotation(Name = "[Archdragon Peak] Thunder Stoneplate Ring 53200220")] - ArchdragonPeakThunderStoneplateRing = 53200220, + [Annotation(Name = "[Archdragon Peak] Thunder Stoneplate Ring 53200220")] + ArchdragonPeakThunderStoneplateRing = 53200220, - [Annotation(Name = "[Archdragon Peak] Titanite Scale 53200230")] - ArchdragonPeakTitaniteScale__ = 53200230, + [Annotation(Name = "[Archdragon Peak] Titanite Scale 53200230")] + ArchdragonPeakTitaniteScale__ = 53200230, - [Annotation(Name = "[Archdragon Peak] Ember 53200240")] - ArchdragonPeakEmber__ = 53200240, + [Annotation(Name = "[Archdragon Peak] Ember 53200240")] + ArchdragonPeakEmber__ = 53200240, - [Annotation(Name = "[Archdragon Peak] Ancient Dragon Greatshield 53200260")] - ArchdragonPeakAncientDragonGreatshield = 53200260, + [Annotation(Name = "[Archdragon Peak] Ancient Dragon Greatshield 53200260")] + ArchdragonPeakAncientDragonGreatshield = 53200260, - [Annotation(Name = "[Archdragon Peak] Large Soul of a Crestfallen Knight 53200270")] - ArchdragonPeakLargeSoulOfaCrestfallenKnight = 53200270, + [Annotation(Name = "[Archdragon Peak] Large Soul of a Crestfallen Knight 53200270")] + ArchdragonPeakLargeSoulOfaCrestfallenKnight = 53200270, - [Annotation(Name = "[Archdragon Peak] Dragon Chaser's Ashes 53200280")] - ArchdragonPeakDragonChasersAshes = 53200280, + [Annotation(Name = "[Archdragon Peak] Dragon Chaser's Ashes 53200280")] + ArchdragonPeakDragonChasersAshes = 53200280, - [Annotation(Name = "[Archdragon Peak] Ember 53200290")] - ArchdragonPeakEmber___ = 53200290, + [Annotation(Name = "[Archdragon Peak] Ember 53200290")] + ArchdragonPeakEmber___ = 53200290, - [Annotation(Name = "[Archdragon Peak] Dragonslayer Spear 53200300")] - ArchdragonPeakDragonslayerSpear = 53200300, + [Annotation(Name = "[Archdragon Peak] Dragonslayer Spear 53200300")] + ArchdragonPeakDragonslayerSpear = 53200300, - [Annotation(Name = "[Archdragon Peak] Dragonslayer Helm 53200310")] - ArchdragonPeakDragonslayerHelm = 53200310, + [Annotation(Name = "[Archdragon Peak] Dragonslayer Helm 53200310")] + ArchdragonPeakDragonslayerHelm = 53200310, - [Annotation(Name = "[Archdragon Peak] Twinkling Titanite 53200330")] - ArchdragonPeakTwinklingTitanite = 53200330, + [Annotation(Name = "[Archdragon Peak] Twinkling Titanite 53200330")] + ArchdragonPeakTwinklingTitanite = 53200330, - [Annotation(Name = "[Archdragon Peak] Twinkling Titanite 53200340")] - ArchdragonPeakTwinklingTitanite_ = 53200340, + [Annotation(Name = "[Archdragon Peak] Twinkling Titanite 53200340")] + ArchdragonPeakTwinklingTitanite_ = 53200340, - [Annotation(Name = "[Archdragon Peak] Titanite Slab 53200350")] - ArchdragonPeakTitaniteSlab = 53200350, + [Annotation(Name = "[Archdragon Peak] Titanite Slab 53200350")] + ArchdragonPeakTitaniteSlab = 53200350, - [Annotation(Name = "[Archdragon Peak] Great Magic Barrier 53200360")] - ArchdragonPeakGreatMagicBarrier = 53200360, + [Annotation(Name = "[Archdragon Peak] Great Magic Barrier 53200360")] + ArchdragonPeakGreatMagicBarrier = 53200360, - [Annotation(Name = "[Archdragon Peak] Titanite Slab 53200370")] - ArchdragonPeakTitaniteSlab_ = 53200370, + [Annotation(Name = "[Archdragon Peak] Titanite Slab 53200370")] + ArchdragonPeakTitaniteSlab_ = 53200370, - [Annotation(Name = "[Archdragon Peak] Ring of Steel Protection 53200380")] - ArchdragonPeakRingOfSteelProtection = 53200380, + [Annotation(Name = "[Archdragon Peak] Ring of Steel Protection 53200380")] + ArchdragonPeakRingOfSteelProtection = 53200380, - [Annotation(Name = "[Archdragon Peak] Havel's Ring+1 53200500")] - ArchdragonPeakHavelsRing1 = 53200500, + [Annotation(Name = "[Archdragon Peak] Havel's Ring+1 53200500")] + ArchdragonPeakHavelsRing1 = 53200500, - [Annotation(Name = "[Archdragon Peak] Covetous Gold Serpent Ring+2 53200510")] - ArchdragonPeakCovetousGoldSerpentRing2 = 53200510, + [Annotation(Name = "[Archdragon Peak] Covetous Gold Serpent Ring+2 53200510")] + ArchdragonPeakCovetousGoldSerpentRing2 = 53200510, - [Annotation(Name = "[Archdragon Peak] Titanite Scale 53200700")] - ArchdragonPeakTitaniteScale___ = 53200700, + [Annotation(Name = "[Archdragon Peak] Titanite Scale 53200700")] + ArchdragonPeakTitaniteScale___ = 53200700, - [Annotation(Name = "[Archdragon Peak] Twinkling Titanite 53200710")] - ArchdragonPeakTwinklingTitanite__ = 53200710, + [Annotation(Name = "[Archdragon Peak] Twinkling Titanite 53200710")] + ArchdragonPeakTwinklingTitanite__ = 53200710, - [Annotation(Name = "[Archdragon Peak] Twinkling Dragon Torso Stone 53200900")] - ArchdragonPeakTwinklingDragonTorsoStone = 53200900, + [Annotation(Name = "[Archdragon Peak] Twinkling Dragon Torso Stone 53200900")] + ArchdragonPeakTwinklingDragonTorsoStone = 53200900, - [Annotation(Name = "[Archdragon Peak] Calamity Ring 53200910")] - ArchdragonPeakCalamityRing = 53200910, + [Annotation(Name = "[Archdragon Peak] Calamity Ring 53200910")] + ArchdragonPeakCalamityRing = 53200910, - [Annotation(Name = "[Road of Sacrifices] Titanite Shard 53300000")] - RoadOfSacrificesTitaniteShard = 53300000, + [Annotation(Name = "[Road of Sacrifices] Titanite Shard 53300000")] + RoadOfSacrificesTitaniteShard = 53300000, - [Annotation(Name = "[Road of Sacrifices] Titanite Shard 53300010")] - RoadOfSacrificesTitaniteShard_ = 53300010, + [Annotation(Name = "[Road of Sacrifices] Titanite Shard 53300010")] + RoadOfSacrificesTitaniteShard_ = 53300010, - [Annotation(Name = "[Road of Sacrifices] Green Blossom 53300020")] - RoadOfSacrificesGreenBlossom = 53300020, + [Annotation(Name = "[Road of Sacrifices] Green Blossom 53300020")] + RoadOfSacrificesGreenBlossom = 53300020, - [Annotation(Name = "[Road of Sacrifices] Estus Shard 53300030")] - RoadOfSacrificesEstusShard = 53300030, + [Annotation(Name = "[Road of Sacrifices] Estus Shard 53300030")] + RoadOfSacrificesEstusShard = 53300030, - [Annotation(Name = "[Road of Sacrifices] Ring of Sacrifice 53300040")] - RoadOfSacrificesRingOfSacrifice = 53300040, + [Annotation(Name = "[Road of Sacrifices] Ring of Sacrifice 53300040")] + RoadOfSacrificesRingOfSacrifice = 53300040, - [Annotation(Name = "[Road of Sacrifices] Soul of an Unknown Traveler 53300050")] - RoadOfSacrificesSoulOfanUnknownTraveler = 53300050, + [Annotation(Name = "[Road of Sacrifices] Soul of an Unknown Traveler 53300050")] + RoadOfSacrificesSoulOfanUnknownTraveler = 53300050, - [Annotation(Name = "[Road of Sacrifices] Fallen Knight Helm 53300060")] - RoadOfSacrificesFallenKnightHelm = 53300060, + [Annotation(Name = "[Road of Sacrifices] Fallen Knight Helm 53300060")] + RoadOfSacrificesFallenKnightHelm = 53300060, - [Annotation(Name = "[Road of Sacrifices] Heretic's Staff 53300070")] - RoadOfSacrificesHereticsStaff = 53300070, + [Annotation(Name = "[Road of Sacrifices] Heretic's Staff 53300070")] + RoadOfSacrificesHereticsStaff = 53300070, - [Annotation(Name = "[Road of Sacrifices] Large Soul of an Unknown Traveler 53300080")] - RoadOfSacrificesLargeSoulOfanUnknownTraveler = 53300080, + [Annotation(Name = "[Road of Sacrifices] Large Soul of an Unknown Traveler 53300080")] + RoadOfSacrificesLargeSoulOfanUnknownTraveler = 53300080, - [Annotation(Name = "[Road of Sacrifices] Conjurator Hood 53300090")] - RoadOfSacrificesConjuratorHood = 53300090, + [Annotation(Name = "[Road of Sacrifices] Conjurator Hood 53300090")] + RoadOfSacrificesConjuratorHood = 53300090, - [Annotation(Name = "[Road of Sacrifices] Soul of an Unknown Traveler 53300100")] - RoadOfSacrificesSoulOfanUnknownTraveler_ = 53300100, + [Annotation(Name = "[Road of Sacrifices] Soul of an Unknown Traveler 53300100")] + RoadOfSacrificesSoulOfanUnknownTraveler_ = 53300100, - [Annotation(Name = "[Road of Sacrifices] Green Blossom 53300110")] - RoadOfSacrificesGreenBlossom_ = 53300110, + [Annotation(Name = "[Road of Sacrifices] Green Blossom 53300110")] + RoadOfSacrificesGreenBlossom_ = 53300110, - [Annotation(Name = "[Road of Sacrifices] Great Swamp Pyromancy Tome 53300120")] - RoadOfSacrificesGreatSwampPyromancyTome = 53300120, + [Annotation(Name = "[Road of Sacrifices] Great Swamp Pyromancy Tome 53300120")] + RoadOfSacrificesGreatSwampPyromancyTome = 53300120, - [Annotation(Name = "[Road of Sacrifices] Homeward Bone 53300130")] - RoadOfSacrificesHomewardBone = 53300130, + [Annotation(Name = "[Road of Sacrifices] Homeward Bone 53300130")] + RoadOfSacrificesHomewardBone = 53300130, - [Annotation(Name = "[Road of Sacrifices] Titanite Shard 53300140")] - RoadOfSacrificesTitaniteShard__ = 53300140, + [Annotation(Name = "[Road of Sacrifices] Titanite Shard 53300140")] + RoadOfSacrificesTitaniteShard__ = 53300140, - [Annotation(Name = "[Road of Sacrifices] Purple Moss Clump 53300150")] - RoadOfSacrificesPurpleMossClump = 53300150, + [Annotation(Name = "[Road of Sacrifices] Purple Moss Clump 53300150")] + RoadOfSacrificesPurpleMossClump = 53300150, - [Annotation(Name = "[Road of Sacrifices] Purple Moss Clump 53300160")] - RoadOfSacrificesPurpleMossClump_ = 53300160, + [Annotation(Name = "[Road of Sacrifices] Purple Moss Clump 53300160")] + RoadOfSacrificesPurpleMossClump_ = 53300160, - [Annotation(Name = "[Road of Sacrifices] Greatsword 53300170")] - RoadOfSacrificesGreatsword = 53300170, + [Annotation(Name = "[Road of Sacrifices] Greatsword 53300170")] + RoadOfSacrificesGreatsword = 53300170, - [Annotation(Name = "[Road of Sacrifices] Twin Dragon Greatshield 53300180")] - RoadOfSacrificesTwinDragonGreatshield = 53300180, + [Annotation(Name = "[Road of Sacrifices] Twin Dragon Greatshield 53300180")] + RoadOfSacrificesTwinDragonGreatshield = 53300180, - [Annotation(Name = "[Road of Sacrifices] Hollow Gem 53300190")] - RoadOfSacrificesHollowGem = 53300190, + [Annotation(Name = "[Road of Sacrifices] Hollow Gem 53300190")] + RoadOfSacrificesHollowGem = 53300190, - [Annotation(Name = "[Road of Sacrifices] Fading Soul 53300210")] - RoadOfSacrificesFadingSoul = 53300210, + [Annotation(Name = "[Road of Sacrifices] Fading Soul 53300210")] + RoadOfSacrificesFadingSoul = 53300210, - [Annotation(Name = "[Road of Sacrifices] Sorcerer Hood 53300220")] - RoadOfSacrificesSorcererHood = 53300220, + [Annotation(Name = "[Road of Sacrifices] Sorcerer Hood 53300220")] + RoadOfSacrificesSorcererHood = 53300220, - [Annotation(Name = "[Road of Sacrifices] Sage Ring 53300230")] - RoadOfSacrificesSageRing = 53300230, + [Annotation(Name = "[Road of Sacrifices] Sage Ring 53300230")] + RoadOfSacrificesSageRing = 53300230, - [Annotation(Name = "[Road of Sacrifices] Purple Moss Clump 53300240")] - RoadOfSacrificesPurpleMossClump__ = 53300240, + [Annotation(Name = "[Road of Sacrifices] Purple Moss Clump 53300240")] + RoadOfSacrificesPurpleMossClump__ = 53300240, - [Annotation(Name = "[Road of Sacrifices] Undead Bone Shard 53300270")] - RoadOfSacrificesUndeadBoneShard = 53300270, + [Annotation(Name = "[Road of Sacrifices] Undead Bone Shard 53300270")] + RoadOfSacrificesUndeadBoneShard = 53300270, - [Annotation(Name = "[Road of Sacrifices] Atonement 53300280")] - RoadOfSacrificesAtonement = 53300280, + [Annotation(Name = "[Road of Sacrifices] Atonement 53300280")] + RoadOfSacrificesAtonement = 53300280, - [Annotation(Name = "[Road of Sacrifices] Titanite Shard 53300290")] - RoadOfSacrificesTitaniteShard___ = 53300290, + [Annotation(Name = "[Road of Sacrifices] Titanite Shard 53300290")] + RoadOfSacrificesTitaniteShard___ = 53300290, - [Annotation(Name = "[Road of Sacrifices] Iron Flesh 53300300")] - RoadOfSacrificesIronFlesh = 53300300, + [Annotation(Name = "[Road of Sacrifices] Iron Flesh 53300300")] + RoadOfSacrificesIronFlesh = 53300300, - [Annotation(Name = "[Road of Sacrifices] Grass Crest Shield 53300310")] - RoadOfSacrificesGrassCrestShield = 53300310, + [Annotation(Name = "[Road of Sacrifices] Grass Crest Shield 53300310")] + RoadOfSacrificesGrassCrestShield = 53300310, - [Annotation(Name = "[Road of Sacrifices] Stone Parma 53300320")] - RoadOfSacrificesStoneParma = 53300320, + [Annotation(Name = "[Road of Sacrifices] Stone Parma 53300320")] + RoadOfSacrificesStoneParma = 53300320, - [Annotation(Name = "[Road of Sacrifices] Rotten Pine Resin 53300340")] - RoadOfSacrificesRottenPineResin = 53300340, + [Annotation(Name = "[Road of Sacrifices] Rotten Pine Resin 53300340")] + RoadOfSacrificesRottenPineResin = 53300340, - [Annotation(Name = "[Road of Sacrifices] Titanite Shard 53300350")] - RoadOfSacrificesTitaniteShard____ = 53300350, + [Annotation(Name = "[Road of Sacrifices] Titanite Shard 53300350")] + RoadOfSacrificesTitaniteShard____ = 53300350, - [Annotation(Name = "[Road of Sacrifices] Rusted Gold Coin 53300360")] - RoadOfSacrificesRustedGoldCoin = 53300360, + [Annotation(Name = "[Road of Sacrifices] Rusted Gold Coin 53300360")] + RoadOfSacrificesRustedGoldCoin = 53300360, - [Annotation(Name = "[Road of Sacrifices] Nameless Knight Helm 53300370")] - RoadOfSacrificesNamelessKnightHelm = 53300370, + [Annotation(Name = "[Road of Sacrifices] Nameless Knight Helm 53300370")] + RoadOfSacrificesNamelessKnightHelm = 53300370, - [Annotation(Name = "[Road of Sacrifices] Shriving Stone 53300380")] - RoadOfSacrificesShrivingStone = 53300380, + [Annotation(Name = "[Road of Sacrifices] Shriving Stone 53300380")] + RoadOfSacrificesShrivingStone = 53300380, - [Annotation(Name = "[Road of Sacrifices] Repair Powder 53300390")] - RoadOfSacrificesRepairPowder = 53300390, + [Annotation(Name = "[Road of Sacrifices] Repair Powder 53300390")] + RoadOfSacrificesRepairPowder = 53300390, - [Annotation(Name = "[Road of Sacrifices] Golden Scroll 53300400")] - RoadOfSacrificesGoldenScroll = 53300400, + [Annotation(Name = "[Road of Sacrifices] Golden Scroll 53300400")] + RoadOfSacrificesGoldenScroll = 53300400, - [Annotation(Name = "[Road of Sacrifices] Sage's Scroll 53300410")] - RoadOfSacrificesSagesScroll = 53300410, + [Annotation(Name = "[Road of Sacrifices] Sage's Scroll 53300410")] + RoadOfSacrificesSagesScroll = 53300410, - [Annotation(Name = "[Road of Sacrifices] Dreamchaser's Ashes 53300420")] - RoadOfSacrificesDreamchasersAshes = 53300420, + [Annotation(Name = "[Road of Sacrifices] Dreamchaser's Ashes 53300420")] + RoadOfSacrificesDreamchasersAshes = 53300420, - [Annotation(Name = "[Road of Sacrifices] Titanite Shard 53300430")] - RoadOfSacrificesTitaniteShard_____ = 53300430, + [Annotation(Name = "[Road of Sacrifices] Titanite Shard 53300430")] + RoadOfSacrificesTitaniteShard_____ = 53300430, - [Annotation(Name = "[Road of Sacrifices] Wolf's Blood Swordgrass 53300440")] - RoadOfSacrificesWolfsBloodSwordgrass = 53300440, + [Annotation(Name = "[Road of Sacrifices] Wolf's Blood Swordgrass 53300440")] + RoadOfSacrificesWolfsBloodSwordgrass = 53300440, - [Annotation(Name = "[Road of Sacrifices] Great Magic Weapon 53300450")] - RoadOfSacrificesGreatMagicWeapon = 53300450, + [Annotation(Name = "[Road of Sacrifices] Great Magic Weapon 53300450")] + RoadOfSacrificesGreatMagicWeapon = 53300450, - [Annotation(Name = "[Road of Sacrifices] Ember 53300460")] - RoadOfSacrificesEmber = 53300460, + [Annotation(Name = "[Road of Sacrifices] Ember 53300460")] + RoadOfSacrificesEmber = 53300460, - [Annotation(Name = "[Road of Sacrifices] Titanite Shard 53300470")] - RoadOfSacrificesTitaniteShard______ = 53300470, + [Annotation(Name = "[Road of Sacrifices] Titanite Shard 53300470")] + RoadOfSacrificesTitaniteShard______ = 53300470, - [Annotation(Name = "[Road of Sacrifices] Titanite Shard 53300480")] - RoadOfSacrificesTitaniteShard_______ = 53300480, + [Annotation(Name = "[Road of Sacrifices] Titanite Shard 53300480")] + RoadOfSacrificesTitaniteShard_______ = 53300480, - [Annotation(Name = "[Road of Sacrifices] Titanite Shard 53300490")] - RoadOfSacrificesTitaniteShard________ = 53300490, + [Annotation(Name = "[Road of Sacrifices] Titanite Shard 53300490")] + RoadOfSacrificesTitaniteShard________ = 53300490, - [Annotation(Name = "[Road of Sacrifices] Black Bug Pellet 53300500")] - RoadOfSacrificesBlackBugPellet = 53300500, + [Annotation(Name = "[Road of Sacrifices] Black Bug Pellet 53300500")] + RoadOfSacrificesBlackBugPellet = 53300500, - [Annotation(Name = "[Road of Sacrifices] Rotten Pine Resin 53300510")] - RoadOfSacrificesRottenPineResin_ = 53300510, + [Annotation(Name = "[Road of Sacrifices] Rotten Pine Resin 53300510")] + RoadOfSacrificesRottenPineResin_ = 53300510, - [Annotation(Name = "[Road of Sacrifices] Poison Gem 53300520")] - RoadOfSacrificesPoisonGem = 53300520, + [Annotation(Name = "[Road of Sacrifices] Poison Gem 53300520")] + RoadOfSacrificesPoisonGem = 53300520, - [Annotation(Name = "[Road of Sacrifices] Ragged Mask 53300525")] - RoadOfSacrificesRaggedMask = 53300525, + [Annotation(Name = "[Road of Sacrifices] Ragged Mask 53300525")] + RoadOfSacrificesRaggedMask = 53300525, - [Annotation(Name = "[Road of Sacrifices] Estus Shard 53300530")] - RoadOfSacrificesEstusShard_ = 53300530, + [Annotation(Name = "[Road of Sacrifices] Estus Shard 53300530")] + RoadOfSacrificesEstusShard_ = 53300530, - [Annotation(Name = "[Road of Sacrifices] Homeward Bone 53300535")] - RoadOfSacrificesHomewardBone_ = 53300535, + [Annotation(Name = "[Road of Sacrifices] Homeward Bone 53300535")] + RoadOfSacrificesHomewardBone_ = 53300535, - [Annotation(Name = "[Road of Sacrifices] Titanite Shard 53300540")] - RoadOfSacrificesTitaniteShard_________ = 53300540, + [Annotation(Name = "[Road of Sacrifices] Titanite Shard 53300540")] + RoadOfSacrificesTitaniteShard_________ = 53300540, - [Annotation(Name = "[Road of Sacrifices] Large Soul of a Nameless Soldier 53300545")] - RoadOfSacrificesLargeSoulOfaNamelessSoldier = 53300545, + [Annotation(Name = "[Road of Sacrifices] Large Soul of a Nameless Soldier 53300545")] + RoadOfSacrificesLargeSoulOfaNamelessSoldier = 53300545, - [Annotation(Name = "[Road of Sacrifices] Prism Stone 53300550")] - RoadOfSacrificesPrismStone = 53300550, + [Annotation(Name = "[Road of Sacrifices] Prism Stone 53300550")] + RoadOfSacrificesPrismStone = 53300550, - [Annotation(Name = "[Road of Sacrifices] Large Soul of a Nameless Soldier 53300555")] - RoadOfSacrificesLargeSoulOfaNamelessSoldier_ = 53300555, + [Annotation(Name = "[Road of Sacrifices] Large Soul of a Nameless Soldier 53300555")] + RoadOfSacrificesLargeSoulOfaNamelessSoldier_ = 53300555, - [Annotation(Name = "[Road of Sacrifices] Ember 53300560")] - RoadOfSacrificesEmber_ = 53300560, + [Annotation(Name = "[Road of Sacrifices] Ember 53300560")] + RoadOfSacrificesEmber_ = 53300560, - [Annotation(Name = "[Road of Sacrifices] Sage's Coal 53300570")] - RoadOfSacrificesSagesCoal = 53300570, + [Annotation(Name = "[Road of Sacrifices] Sage's Coal 53300570")] + RoadOfSacrificesSagesCoal = 53300570, - [Annotation(Name = "[Road of Sacrifices] Lightning Spear 53300580")] - RoadOfSacrificesLightningSpear = 53300580, + [Annotation(Name = "[Road of Sacrifices] Lightning Spear 53300580")] + RoadOfSacrificesLightningSpear = 53300580, - [Annotation(Name = "[Road of Sacrifices] Blue Bug Pellet 53300590")] - RoadOfSacrificesBlueBugPellet = 53300590, + [Annotation(Name = "[Road of Sacrifices] Blue Bug Pellet 53300590")] + RoadOfSacrificesBlueBugPellet = 53300590, - [Annotation(Name = "[Road of Sacrifices] Soul of an Unknown Traveler 53300600")] - RoadOfSacrificesSoulOfanUnknownTraveler__ = 53300600, + [Annotation(Name = "[Road of Sacrifices] Soul of an Unknown Traveler 53300600")] + RoadOfSacrificesSoulOfanUnknownTraveler__ = 53300600, - [Annotation(Name = "[Road of Sacrifices] Shriving Stone 53300610")] - RoadOfSacrificesShrivingStone_ = 53300610, + [Annotation(Name = "[Road of Sacrifices] Shriving Stone 53300610")] + RoadOfSacrificesShrivingStone_ = 53300610, - [Annotation(Name = "[Road of Sacrifices] Titanite Shard 53300620")] - RoadOfSacrificesTitaniteShard__________ = 53300620, + [Annotation(Name = "[Road of Sacrifices] Titanite Shard 53300620")] + RoadOfSacrificesTitaniteShard__________ = 53300620, - [Annotation(Name = "[Road of Sacrifices] Brigand Twindaggers 53300630")] - RoadOfSacrificesBrigandTwindaggers = 53300630, + [Annotation(Name = "[Road of Sacrifices] Brigand Twindaggers 53300630")] + RoadOfSacrificesBrigandTwindaggers = 53300630, - [Annotation(Name = "[Road of Sacrifices] Braille Divine Tome of Carim 53300640")] - RoadOfSacrificesBrailleDivineTomeOfCarim = 53300640, + [Annotation(Name = "[Road of Sacrifices] Braille Divine Tome of Carim 53300640")] + RoadOfSacrificesBrailleDivineTomeOfCarim = 53300640, - [Annotation(Name = "[Road of Sacrifices] Ember 53300650")] - RoadOfSacrificesEmber__ = 53300650, + [Annotation(Name = "[Road of Sacrifices] Ember 53300650")] + RoadOfSacrificesEmber__ = 53300650, - [Annotation(Name = "[Road of Sacrifices] Gold Pine Bundle 53300680")] - RoadOfSacrificesGoldPineBundle = 53300680, + [Annotation(Name = "[Road of Sacrifices] Gold Pine Bundle 53300680")] + RoadOfSacrificesGoldPineBundle = 53300680, - [Annotation(Name = "[Road of Sacrifices] Ember 53300690")] - RoadOfSacrificesEmber___ = 53300690, + [Annotation(Name = "[Road of Sacrifices] Ember 53300690")] + RoadOfSacrificesEmber___ = 53300690, - [Annotation(Name = "[Road of Sacrifices] Soul of a Nameless Soldier 53300700")] - RoadOfSacrificesSoulOfaNamelessSoldier = 53300700, + [Annotation(Name = "[Road of Sacrifices] Soul of a Nameless Soldier 53300700")] + RoadOfSacrificesSoulOfaNamelessSoldier = 53300700, - [Annotation(Name = "[Road of Sacrifices] Large Soul of an Unknown Traveler 53300710")] - RoadOfSacrificesLargeSoulOfanUnknownTraveler_ = 53300710, + [Annotation(Name = "[Road of Sacrifices] Large Soul of an Unknown Traveler 53300710")] + RoadOfSacrificesLargeSoulOfanUnknownTraveler_ = 53300710, - [Annotation(Name = "[Road of Sacrifices] Sellsword Twinblades 53300720")] - RoadOfSacrificesSellswordTwinblades = 53300720, + [Annotation(Name = "[Road of Sacrifices] Sellsword Twinblades 53300720")] + RoadOfSacrificesSellswordTwinblades = 53300720, - [Annotation(Name = "[Road of Sacrifices] Golden Falcon Shield 53300730")] - RoadOfSacrificesGoldenFalconShield = 53300730, + [Annotation(Name = "[Road of Sacrifices] Golden Falcon Shield 53300730")] + RoadOfSacrificesGoldenFalconShield = 53300730, - [Annotation(Name = "[Road of Sacrifices] Herald Helm 53300740")] - RoadOfSacrificesHeraldHelm = 53300740, + [Annotation(Name = "[Road of Sacrifices] Herald Helm 53300740")] + RoadOfSacrificesHeraldHelm = 53300740, - [Annotation(Name = "[Road of Sacrifices] Brigand Axe 53300750")] - RoadOfSacrificesBrigandAxe = 53300750, + [Annotation(Name = "[Road of Sacrifices] Brigand Axe 53300750")] + RoadOfSacrificesBrigandAxe = 53300750, - [Annotation(Name = "[Road of Sacrifices] Brigand Hood 53300760")] - RoadOfSacrificesBrigandHood = 53300760, + [Annotation(Name = "[Road of Sacrifices] Brigand Hood 53300760")] + RoadOfSacrificesBrigandHood = 53300760, - [Annotation(Name = "[Road of Sacrifices] Morne's Ring 53300770")] - RoadOfSacrificesMornesRing = 53300770, + [Annotation(Name = "[Road of Sacrifices] Morne's Ring 53300770")] + RoadOfSacrificesMornesRing = 53300770, - [Annotation(Name = "[Road of Sacrifices] Sellsword Helm 53300780")] - RoadOfSacrificesSellswordHelm = 53300780, + [Annotation(Name = "[Road of Sacrifices] Sellsword Helm 53300780")] + RoadOfSacrificesSellswordHelm = 53300780, - [Annotation(Name = "[Road of Sacrifices] Farron Coal 53300790")] - RoadOfSacrificesFarronCoal = 53300790, + [Annotation(Name = "[Road of Sacrifices] Farron Coal 53300790")] + RoadOfSacrificesFarronCoal = 53300790, - [Annotation(Name = "[Farron Keep] Havel's Helm 53300800")] - FarronKeepHavelsHelm = 53300800, + [Annotation(Name = "[Farron Keep] Havel's Helm 53300800")] + FarronKeepHavelsHelm = 53300800, - [Annotation(Name = "[Farron Keep] Greataxe 53300810")] - FarronKeepGreataxe = 53300810, + [Annotation(Name = "[Farron Keep] Greataxe 53300810")] + FarronKeepGreataxe = 53300810, - [Annotation(Name = "[Farron Keep] Speckled Stoneplate Ring 53300820")] - FarronKeepSpeckledStoneplateRing = 53300820, + [Annotation(Name = "[Farron Keep] Speckled Stoneplate Ring 53300820")] + FarronKeepSpeckledStoneplateRing = 53300820, - [Annotation(Name = "[Farron Keep] Ember 53300830")] - FarronKeepEmber = 53300830, + [Annotation(Name = "[Farron Keep] Ember 53300830")] + FarronKeepEmber = 53300830, - [Annotation(Name = "[Farron Keep] Dragon Crest Shield 53300840")] - FarronKeepDragonCrestShield = 53300840, + [Annotation(Name = "[Farron Keep] Dragon Crest Shield 53300840")] + FarronKeepDragonCrestShield = 53300840, - [Annotation(Name = "[Farron Keep] Dark Stoneplate Ring+2 53300850")] - FarronKeepDarkStoneplateRing2 = 53300850, + [Annotation(Name = "[Farron Keep] Dark Stoneplate Ring+2 53300850")] + FarronKeepDarkStoneplateRing2 = 53300850, - [Annotation(Name = "[Farron Keep] Chloranthy Ring+2 53300860")] - FarronKeepChloranthyRing2 = 53300860, + [Annotation(Name = "[Farron Keep] Chloranthy Ring+2 53300860")] + FarronKeepChloranthyRing2 = 53300860, - [Annotation(Name = "[Farron Keep] Lingering Dragoncrest Ring+1 53300870")] - FarronKeepLingeringDragoncrestRing1 = 53300870, + [Annotation(Name = "[Farron Keep] Lingering Dragoncrest Ring+1 53300870")] + FarronKeepLingeringDragoncrestRing1 = 53300870, - [Annotation(Name = "[Farron Keep] Magic Stoneplate Ring+1 53300880")] - FarronKeepMagicStoneplateRing1 = 53300880, + [Annotation(Name = "[Farron Keep] Magic Stoneplate Ring+1 53300880")] + FarronKeepMagicStoneplateRing1 = 53300880, - [Annotation(Name = "[Farron Keep] Wolf Ring+1 53300890")] - FarronKeepWolfRing1 = 53300890, + [Annotation(Name = "[Farron Keep] Wolf Ring+1 53300890")] + FarronKeepWolfRing1 = 53300890, - [Annotation(Name = "[Farron Keep] Antiquated Dress 53300940")] - FarronKeepAntiquatedDress = 53300940, + [Annotation(Name = "[Farron Keep] Antiquated Dress 53300940")] + FarronKeepAntiquatedDress = 53300940, - [Annotation(Name = "[Farron Keep] Sunlight Talisman 53300950")] - FarronKeepSunlightTalisman = 53300950, + [Annotation(Name = "[Farron Keep] Sunlight Talisman 53300950")] + FarronKeepSunlightTalisman = 53300950, - [Annotation(Name = "[Farron Keep] Young White Branch 53300960")] - FarronKeepYoungWhiteBranch = 53300960, + [Annotation(Name = "[Farron Keep] Young White Branch 53300960")] + FarronKeepYoungWhiteBranch = 53300960, - [Annotation(Name = "[Farron Keep] Young White Branch 53300970")] - FarronKeepYoungWhiteBranch_ = 53300970, + [Annotation(Name = "[Farron Keep] Young White Branch 53300970")] + FarronKeepYoungWhiteBranch_ = 53300970, - [Annotation(Name = "[Farron Keep] Crown of Dusk 53300980")] - FarronKeepCrownOfDusk = 53300980, + [Annotation(Name = "[Farron Keep] Crown of Dusk 53300980")] + FarronKeepCrownOfDusk = 53300980, - [Annotation(Name = "[Grand Archives] Titanite Chunk 53410000")] - GrandArchivesTitaniteChunk = 53410000, + [Annotation(Name = "[Grand Archives] Titanite Chunk 53410000")] + GrandArchivesTitaniteChunk = 53410000, - [Annotation(Name = "[Grand Archives] Titanite Chunk 53410010")] - GrandArchivesTitaniteChunk_ = 53410010, + [Annotation(Name = "[Grand Archives] Titanite Chunk 53410010")] + GrandArchivesTitaniteChunk_ = 53410010, - [Annotation(Name = "[Grand Archives] Soul of a Crestfallen Knight 53410020")] - GrandArchivesSoulOfaCrestfallenKnight = 53410020, + [Annotation(Name = "[Grand Archives] Soul of a Crestfallen Knight 53410020")] + GrandArchivesSoulOfaCrestfallenKnight = 53410020, - [Annotation(Name = "[Grand Archives] Titanite Chunk 53410030")] - GrandArchivesTitaniteChunk__ = 53410030, + [Annotation(Name = "[Grand Archives] Titanite Chunk 53410030")] + GrandArchivesTitaniteChunk__ = 53410030, - [Annotation(Name = "[Grand Archives] Fleshbite Ring 53410040")] - GrandArchivesFleshbiteRing = 53410040, + [Annotation(Name = "[Grand Archives] Fleshbite Ring 53410040")] + GrandArchivesFleshbiteRing = 53410040, - [Annotation(Name = "[Grand Archives] Soul of a Crestfallen Knight 53410060")] - GrandArchivesSoulOfaCrestfallenKnight_ = 53410060, + [Annotation(Name = "[Grand Archives] Soul of a Crestfallen Knight 53410060")] + GrandArchivesSoulOfaCrestfallenKnight_ = 53410060, - [Annotation(Name = "[Grand Archives] Soul of a Nameless Soldier 53410070")] - GrandArchivesSoulOfaNamelessSoldier = 53410070, + [Annotation(Name = "[Grand Archives] Soul of a Nameless Soldier 53410070")] + GrandArchivesSoulOfaNamelessSoldier = 53410070, - [Annotation(Name = "[Grand Archives] Crystal Chime 53410080")] - GrandArchivesCrystalChime = 53410080, + [Annotation(Name = "[Grand Archives] Crystal Chime 53410080")] + GrandArchivesCrystalChime = 53410080, - [Annotation(Name = "[Grand Archives] Titanite Scale 53410090")] - GrandArchivesTitaniteScale = 53410090, + [Annotation(Name = "[Grand Archives] Titanite Scale 53410090")] + GrandArchivesTitaniteScale = 53410090, - [Annotation(Name = "[Grand Archives] Estus Shard 53410100")] - GrandArchivesEstusShard = 53410100, + [Annotation(Name = "[Grand Archives] Estus Shard 53410100")] + GrandArchivesEstusShard = 53410100, - [Annotation(Name = "[Grand Archives] Homeward Bone 53410110")] - GrandArchivesHomewardBone = 53410110, + [Annotation(Name = "[Grand Archives] Homeward Bone 53410110")] + GrandArchivesHomewardBone = 53410110, - [Annotation(Name = "[Grand Archives] Titanite Scale 53410120")] - GrandArchivesTitaniteScale_ = 53410120, + [Annotation(Name = "[Grand Archives] Titanite Scale 53410120")] + GrandArchivesTitaniteScale_ = 53410120, - [Annotation(Name = "[Grand Archives] Titanite Chunk 53410130")] - GrandArchivesTitaniteChunk___ = 53410130, + [Annotation(Name = "[Grand Archives] Titanite Chunk 53410130")] + GrandArchivesTitaniteChunk___ = 53410130, - [Annotation(Name = "[Grand Archives] Hollow Gem 53410140")] - GrandArchivesHollowGem = 53410140, + [Annotation(Name = "[Grand Archives] Hollow Gem 53410140")] + GrandArchivesHollowGem = 53410140, - [Annotation(Name = "[Grand Archives] Titanite Scale 53410150")] - GrandArchivesTitaniteScale__ = 53410150, + [Annotation(Name = "[Grand Archives] Titanite Scale 53410150")] + GrandArchivesTitaniteScale__ = 53410150, - [Annotation(Name = "[Grand Archives] Titanite Scale 53410160")] - GrandArchivesTitaniteScale___ = 53410160, + [Annotation(Name = "[Grand Archives] Titanite Scale 53410160")] + GrandArchivesTitaniteScale___ = 53410160, - [Annotation(Name = "[Grand Archives] Titanite Scale 53410180")] - GrandArchivesTitaniteScale____ = 53410180, + [Annotation(Name = "[Grand Archives] Titanite Scale 53410180")] + GrandArchivesTitaniteScale____ = 53410180, - [Annotation(Name = "[Grand Archives] Shriving Stone 53410200")] - GrandArchivesShrivingStone = 53410200, + [Annotation(Name = "[Grand Archives] Shriving Stone 53410200")] + GrandArchivesShrivingStone = 53410200, - [Annotation(Name = "[Grand Archives] Large Soul of a Crestfallen Knight 53410210")] - GrandArchivesLargeSoulOfaCrestfallenKnight = 53410210, + [Annotation(Name = "[Grand Archives] Large Soul of a Crestfallen Knight 53410210")] + GrandArchivesLargeSoulOfaCrestfallenKnight = 53410210, - [Annotation(Name = "[Grand Archives] Titanite Chunk 53410220")] - GrandArchivesTitaniteChunk____ = 53410220, + [Annotation(Name = "[Grand Archives] Titanite Chunk 53410220")] + GrandArchivesTitaniteChunk____ = 53410220, - [Annotation(Name = "[Grand Archives] Titanite Scale 53410240")] - GrandArchivesTitaniteScale_____ = 53410240, + [Annotation(Name = "[Grand Archives] Titanite Scale 53410240")] + GrandArchivesTitaniteScale_____ = 53410240, - [Annotation(Name = "[Grand Archives] Titanite Chunk 53410250")] - GrandArchivesTitaniteChunk_____ = 53410250, + [Annotation(Name = "[Grand Archives] Titanite Chunk 53410250")] + GrandArchivesTitaniteChunk_____ = 53410250, - [Annotation(Name = "[Grand Archives] Soul of a Weary Warrior 53410260")] - GrandArchivesSoulOfaWearyWarrior = 53410260, + [Annotation(Name = "[Grand Archives] Soul of a Weary Warrior 53410260")] + GrandArchivesSoulOfaWearyWarrior = 53410260, - [Annotation(Name = "[Grand Archives] Titanite Chunk 53410280")] - GrandArchivesTitaniteChunk______ = 53410280, + [Annotation(Name = "[Grand Archives] Titanite Chunk 53410280")] + GrandArchivesTitaniteChunk______ = 53410280, - [Annotation(Name = "[Grand Archives] Ember 53410290")] - GrandArchivesEmber = 53410290, + [Annotation(Name = "[Grand Archives] Ember 53410290")] + GrandArchivesEmber = 53410290, - [Annotation(Name = "[Grand Archives] Blessed Gem 53410300")] - GrandArchivesBlessedGem = 53410300, + [Annotation(Name = "[Grand Archives] Blessed Gem 53410300")] + GrandArchivesBlessedGem = 53410300, - [Annotation(Name = "[Grand Archives] Titanite Chunk 53410320")] - GrandArchivesTitaniteChunk_______ = 53410320, + [Annotation(Name = "[Grand Archives] Titanite Chunk 53410320")] + GrandArchivesTitaniteChunk_______ = 53410320, - [Annotation(Name = "[Grand Archives] Large Soul of a Crestfallen Knight 53410330")] - GrandArchivesLargeSoulOfaCrestfallenKnight_ = 53410330, + [Annotation(Name = "[Grand Archives] Large Soul of a Crestfallen Knight 53410330")] + GrandArchivesLargeSoulOfaCrestfallenKnight_ = 53410330, - [Annotation(Name = "[Grand Archives] Avelyn 53410350")] - GrandArchivesAvelyn = 53410350, + [Annotation(Name = "[Grand Archives] Avelyn 53410350")] + GrandArchivesAvelyn = 53410350, - [Annotation(Name = "[Grand Archives] Titanite Chunk 53410360")] - GrandArchivesTitaniteChunk________ = 53410360, + [Annotation(Name = "[Grand Archives] Titanite Chunk 53410360")] + GrandArchivesTitaniteChunk________ = 53410360, - [Annotation(Name = "[Grand Archives] Hunter's Ring 53410370")] - GrandArchivesHuntersRing = 53410370, + [Annotation(Name = "[Grand Archives] Hunter's Ring 53410370")] + GrandArchivesHuntersRing = 53410370, - [Annotation(Name = "[Grand Archives] Divine Pillars of Light 53410380")] - GrandArchivesDivinePillarsOfLight = 53410380, + [Annotation(Name = "[Grand Archives] Divine Pillars of Light 53410380")] + GrandArchivesDivinePillarsOfLight = 53410380, - [Annotation(Name = "[Grand Archives] Titanite Chunk 53410410")] - GrandArchivesTitaniteChunk_________ = 53410410, + [Annotation(Name = "[Grand Archives] Titanite Chunk 53410410")] + GrandArchivesTitaniteChunk_________ = 53410410, - [Annotation(Name = "[Grand Archives] Power Within 53410420")] - GrandArchivesPowerWithin = 53410420, + [Annotation(Name = "[Grand Archives] Power Within 53410420")] + GrandArchivesPowerWithin = 53410420, - [Annotation(Name = "[Grand Archives] Sage Ring+1 53410450")] - GrandArchivesSageRing1 = 53410450, + [Annotation(Name = "[Grand Archives] Sage Ring+1 53410450")] + GrandArchivesSageRing1 = 53410450, - [Annotation(Name = "[Grand Archives] Lingering Dragoncrest Ring+2 53410470")] - GrandArchivesLingeringDragoncrestRing2 = 53410470, + [Annotation(Name = "[Grand Archives] Lingering Dragoncrest Ring+2 53410470")] + GrandArchivesLingeringDragoncrestRing2 = 53410470, - [Annotation(Name = "[Grand Archives] Divine Blessing 53410500")] - GrandArchivesDivineBlessing = 53410500, + [Annotation(Name = "[Grand Archives] Divine Blessing 53410500")] + GrandArchivesDivineBlessing = 53410500, - [Annotation(Name = "[Grand Archives] Twinkling Titanite 53410510")] - GrandArchivesTwinklingTitanite = 53410510, + [Annotation(Name = "[Grand Archives] Twinkling Titanite 53410510")] + GrandArchivesTwinklingTitanite = 53410510, - [Annotation(Name = "[Grand Archives] Witch's Locks 53410520")] - GrandArchivesWitchsLocks = 53410520, + [Annotation(Name = "[Grand Archives] Witch's Locks 53410520")] + GrandArchivesWitchsLocks = 53410520, - [Annotation(Name = "[Grand Archives] Titanite Slab 53410530")] - GrandArchivesTitaniteSlab = 53410530, + [Annotation(Name = "[Grand Archives] Titanite Slab 53410530")] + GrandArchivesTitaniteSlab = 53410530, - [Annotation(Name = "[Grand Archives] Titanite Scale 53410540")] - GrandArchivesTitaniteScale______ = 53410540, + [Annotation(Name = "[Grand Archives] Titanite Scale 53410540")] + GrandArchivesTitaniteScale______ = 53410540, - [Annotation(Name = "[Grand Archives] Soul Stream 53410600")] - GrandArchivesSoulStream = 53410600, + [Annotation(Name = "[Grand Archives] Soul Stream 53410600")] + GrandArchivesSoulStream = 53410600, - [Annotation(Name = "[Grand Archives] Scholar Ring 53410610")] - GrandArchivesScholarRing = 53410610, + [Annotation(Name = "[Grand Archives] Scholar Ring 53410610")] + GrandArchivesScholarRing = 53410610, - [Annotation(Name = "[Grand Archives] Undead Bone Shard 53410620")] - GrandArchivesUndeadBoneShard = 53410620, + [Annotation(Name = "[Grand Archives] Undead Bone Shard 53410620")] + GrandArchivesUndeadBoneShard = 53410620, - [Annotation(Name = "[Cathedral of the Deep] Notched Whip 53500000")] - CathedralOfTheDeepNotchedWhip = 53500000, + [Annotation(Name = "[Cathedral of the Deep] Notched Whip 53500000")] + CathedralOfTheDeepNotchedWhip = 53500000, - [Annotation(Name = "[Cathedral of the Deep] Titanite Shard 53500010")] - CathedralOfTheDeepTitaniteShard = 53500010, + [Annotation(Name = "[Cathedral of the Deep] Titanite Shard 53500010")] + CathedralOfTheDeepTitaniteShard = 53500010, - [Annotation(Name = "[Cathedral of the Deep] Astora Greatsword 53500020")] - CathedralOfTheDeepAstoraGreatsword = 53500020, + [Annotation(Name = "[Cathedral of the Deep] Astora Greatsword 53500020")] + CathedralOfTheDeepAstoraGreatsword = 53500020, - [Annotation(Name = "[Cathedral of the Deep] Executioner's Greatsword 53500030")] - CathedralOfTheDeepExecutionersGreatsword = 53500030, + [Annotation(Name = "[Cathedral of the Deep] Executioner's Greatsword 53500030")] + CathedralOfTheDeepExecutionersGreatsword = 53500030, - [Annotation(Name = "[Cathedral of the Deep] Undead Bone Shard 53500040")] - CathedralOfTheDeepUndeadBoneShard = 53500040, + [Annotation(Name = "[Cathedral of the Deep] Undead Bone Shard 53500040")] + CathedralOfTheDeepUndeadBoneShard = 53500040, - [Annotation(Name = "[Cathedral of the Deep] Curse Ward Greatshield 53500050")] - CathedralOfTheDeepCurseWardGreatshield = 53500050, + [Annotation(Name = "[Cathedral of the Deep] Curse Ward Greatshield 53500050")] + CathedralOfTheDeepCurseWardGreatshield = 53500050, - [Annotation(Name = "[Cathedral of the Deep] Titanite Shard 53500060")] - CathedralOfTheDeepTitaniteShard_ = 53500060, + [Annotation(Name = "[Cathedral of the Deep] Titanite Shard 53500060")] + CathedralOfTheDeepTitaniteShard_ = 53500060, - [Annotation(Name = "[Cathedral of the Deep] Large Soul of an Unknown Traveler 53500070")] - CathedralOfTheDeepLargeSoulOfanUnknownTraveler = 53500070, + [Annotation(Name = "[Cathedral of the Deep] Large Soul of an Unknown Traveler 53500070")] + CathedralOfTheDeepLargeSoulOfanUnknownTraveler = 53500070, - [Annotation(Name = "[Cathedral of the Deep] Paladin's Ashes 53500080")] - CathedralOfTheDeepPaladinsAshes = 53500080, + [Annotation(Name = "[Cathedral of the Deep] Paladin's Ashes 53500080")] + CathedralOfTheDeepPaladinsAshes = 53500080, - [Annotation(Name = "[Cathedral of the Deep] Arbalest 53500090")] - CathedralOfTheDeepArbalest = 53500090, + [Annotation(Name = "[Cathedral of the Deep] Arbalest 53500090")] + CathedralOfTheDeepArbalest = 53500090, - [Annotation(Name = "[Cathedral of the Deep] Ember 53500110")] - CathedralOfTheDeepEmber = 53500110, + [Annotation(Name = "[Cathedral of the Deep] Ember 53500110")] + CathedralOfTheDeepEmber = 53500110, - [Annotation(Name = "[Cathedral of the Deep] Ember 53500130")] - CathedralOfTheDeepEmber_ = 53500130, + [Annotation(Name = "[Cathedral of the Deep] Ember 53500130")] + CathedralOfTheDeepEmber_ = 53500130, - [Annotation(Name = "[Cathedral of the Deep] Poisonbite Ring 53500140")] - CathedralOfTheDeepPoisonbiteRing = 53500140, + [Annotation(Name = "[Cathedral of the Deep] Poisonbite Ring 53500140")] + CathedralOfTheDeepPoisonbiteRing = 53500140, - [Annotation(Name = "[Cathedral of the Deep] Drang Armor 53500150")] - CathedralOfTheDeepDrangArmor = 53500150, + [Annotation(Name = "[Cathedral of the Deep] Drang Armor 53500150")] + CathedralOfTheDeepDrangArmor = 53500150, - [Annotation(Name = "[Cathedral of the Deep] Ember 53500160")] - CathedralOfTheDeepEmber__ = 53500160, + [Annotation(Name = "[Cathedral of the Deep] Ember 53500160")] + CathedralOfTheDeepEmber__ = 53500160, - [Annotation(Name = "[Cathedral of the Deep] Duel Charm 53500170")] - CathedralOfTheDeepDuelCharm = 53500170, + [Annotation(Name = "[Cathedral of the Deep] Duel Charm 53500170")] + CathedralOfTheDeepDuelCharm = 53500170, - [Annotation(Name = "[Cathedral of the Deep] Seek Guidance 53500180")] - CathedralOfTheDeepSeekGuidance = 53500180, + [Annotation(Name = "[Cathedral of the Deep] Seek Guidance 53500180")] + CathedralOfTheDeepSeekGuidance = 53500180, - [Annotation(Name = "[Cathedral of the Deep] Estus Shard 53500200")] - CathedralOfTheDeepEstusShard = 53500200, + [Annotation(Name = "[Cathedral of the Deep] Estus Shard 53500200")] + CathedralOfTheDeepEstusShard = 53500200, - [Annotation(Name = "[Cathedral of the Deep] Maiden Hood 53500210")] - CathedralOfTheDeepMaidenHood = 53500210, + [Annotation(Name = "[Cathedral of the Deep] Maiden Hood 53500210")] + CathedralOfTheDeepMaidenHood = 53500210, - [Annotation(Name = "[Cathedral of the Deep] Pale Tongue 53500220")] - CathedralOfTheDeepPaleTongue = 53500220, + [Annotation(Name = "[Cathedral of the Deep] Pale Tongue 53500220")] + CathedralOfTheDeepPaleTongue = 53500220, - [Annotation(Name = "[Cathedral of the Deep] Fading Soul 53500230")] - CathedralOfTheDeepFadingSoul = 53500230, + [Annotation(Name = "[Cathedral of the Deep] Fading Soul 53500230")] + CathedralOfTheDeepFadingSoul = 53500230, - [Annotation(Name = "[Cathedral of the Deep] Blessed Gem 53500240")] - CathedralOfTheDeepBlessedGem = 53500240, + [Annotation(Name = "[Cathedral of the Deep] Blessed Gem 53500240")] + CathedralOfTheDeepBlessedGem = 53500240, - [Annotation(Name = "[Cathedral of the Deep] Red Bug Pellet 53500260")] - CathedralOfTheDeepRedBugPellet = 53500260, + [Annotation(Name = "[Cathedral of the Deep] Red Bug Pellet 53500260")] + CathedralOfTheDeepRedBugPellet = 53500260, - [Annotation(Name = "[Cathedral of the Deep] Soul of a Nameless Soldier 53500270")] - CathedralOfTheDeepSoulOfaNamelessSoldier = 53500270, + [Annotation(Name = "[Cathedral of the Deep] Soul of a Nameless Soldier 53500270")] + CathedralOfTheDeepSoulOfaNamelessSoldier = 53500270, - [Annotation(Name = "[Cathedral of the Deep] Duel Charm 53500280")] - CathedralOfTheDeepDuelCharm_ = 53500280, + [Annotation(Name = "[Cathedral of the Deep] Duel Charm 53500280")] + CathedralOfTheDeepDuelCharm_ = 53500280, - [Annotation(Name = "[Cathedral of the Deep] Large Soul of an Unknown Traveler 53500300")] - CathedralOfTheDeepLargeSoulOfanUnknownTraveler_ = 53500300, + [Annotation(Name = "[Cathedral of the Deep] Large Soul of an Unknown Traveler 53500300")] + CathedralOfTheDeepLargeSoulOfanUnknownTraveler_ = 53500300, - [Annotation(Name = "[Cathedral of the Deep] Ember 53500310")] - CathedralOfTheDeepEmber___ = 53500310, + [Annotation(Name = "[Cathedral of the Deep] Ember 53500310")] + CathedralOfTheDeepEmber___ = 53500310, - [Annotation(Name = "[Cathedral of the Deep] Repair Powder 53500320")] - CathedralOfTheDeepRepairPowder = 53500320, + [Annotation(Name = "[Cathedral of the Deep] Repair Powder 53500320")] + CathedralOfTheDeepRepairPowder = 53500320, - [Annotation(Name = "[Cathedral of the Deep] Large Soul of an Unknown Traveler 53500330")] - CathedralOfTheDeepLargeSoulOfanUnknownTraveler__ = 53500330, + [Annotation(Name = "[Cathedral of the Deep] Large Soul of an Unknown Traveler 53500330")] + CathedralOfTheDeepLargeSoulOfanUnknownTraveler__ = 53500330, - [Annotation(Name = "[Cathedral of the Deep] Large Soul of an Unknown Traveler 53500340")] - CathedralOfTheDeepLargeSoulOfanUnknownTraveler___ = 53500340, + [Annotation(Name = "[Cathedral of the Deep] Large Soul of an Unknown Traveler 53500340")] + CathedralOfTheDeepLargeSoulOfanUnknownTraveler___ = 53500340, - [Annotation(Name = "[Cathedral of the Deep] Undead Hunter Charm 53500370")] - CathedralOfTheDeepUndeadHunterCharm = 53500370, + [Annotation(Name = "[Cathedral of the Deep] Undead Hunter Charm 53500370")] + CathedralOfTheDeepUndeadHunterCharm = 53500370, - [Annotation(Name = "[Cathedral of the Deep] Red Bug Pellet 53500380")] - CathedralOfTheDeepRedBugPellet_ = 53500380, + [Annotation(Name = "[Cathedral of the Deep] Red Bug Pellet 53500380")] + CathedralOfTheDeepRedBugPellet_ = 53500380, - [Annotation(Name = "[Cathedral of the Deep] Titanite Shard 53500390")] - CathedralOfTheDeepTitaniteShard__ = 53500390, + [Annotation(Name = "[Cathedral of the Deep] Titanite Shard 53500390")] + CathedralOfTheDeepTitaniteShard__ = 53500390, - [Annotation(Name = "[Cathedral of the Deep] Titanite Shard 53500400")] - CathedralOfTheDeepTitaniteShard___ = 53500400, + [Annotation(Name = "[Cathedral of the Deep] Titanite Shard 53500400")] + CathedralOfTheDeepTitaniteShard___ = 53500400, - [Annotation(Name = "[Cathedral of the Deep] Rusted Coin 53500420")] - CathedralOfTheDeepRustedCoin = 53500420, + [Annotation(Name = "[Cathedral of the Deep] Rusted Coin 53500420")] + CathedralOfTheDeepRustedCoin = 53500420, - [Annotation(Name = "[Cathedral of the Deep] Drang Hammers 53500430")] - CathedralOfTheDeepDrangHammers = 53500430, + [Annotation(Name = "[Cathedral of the Deep] Drang Hammers 53500430")] + CathedralOfTheDeepDrangHammers = 53500430, - [Annotation(Name = "[Cathedral of the Deep] Drang Shoes 53500450")] - CathedralOfTheDeepDrangShoes = 53500450, + [Annotation(Name = "[Cathedral of the Deep] Drang Shoes 53500450")] + CathedralOfTheDeepDrangShoes = 53500450, - [Annotation(Name = "[Cathedral of the Deep] Large Soul of an Unknown Traveler 53500460")] - CathedralOfTheDeepLargeSoulOfanUnknownTraveler____ = 53500460, + [Annotation(Name = "[Cathedral of the Deep] Large Soul of an Unknown Traveler 53500460")] + CathedralOfTheDeepLargeSoulOfanUnknownTraveler____ = 53500460, - [Annotation(Name = "[Cathedral of the Deep] Pale Tongue 53500470")] - CathedralOfTheDeepPaleTongue_ = 53500470, + [Annotation(Name = "[Cathedral of the Deep] Pale Tongue 53500470")] + CathedralOfTheDeepPaleTongue_ = 53500470, - [Annotation(Name = "[Cathedral of the Deep] Drang Gauntlets 53500480")] - CathedralOfTheDeepDrangGauntlets = 53500480, + [Annotation(Name = "[Cathedral of the Deep] Drang Gauntlets 53500480")] + CathedralOfTheDeepDrangGauntlets = 53500480, - [Annotation(Name = "[Cathedral of the Deep] Soul of a Nameless Soldier 53500490")] - CathedralOfTheDeepSoulOfaNamelessSoldier_ = 53500490, + [Annotation(Name = "[Cathedral of the Deep] Soul of a Nameless Soldier 53500490")] + CathedralOfTheDeepSoulOfaNamelessSoldier_ = 53500490, - [Annotation(Name = "[Cathedral of the Deep] Helm of Thorns 53500500")] - CathedralOfTheDeepHelmOfThorns = 53500500, + [Annotation(Name = "[Cathedral of the Deep] Helm of Thorns 53500500")] + CathedralOfTheDeepHelmOfThorns = 53500500, - [Annotation(Name = "[Cathedral of the Deep] Exploding Bolt 53500540")] - CathedralOfTheDeepExplodingBolt = 53500540, + [Annotation(Name = "[Cathedral of the Deep] Exploding Bolt 53500540")] + CathedralOfTheDeepExplodingBolt = 53500540, - [Annotation(Name = "[Cathedral of the Deep] Lloyd's Sword Ring 53500550")] - CathedralOfTheDeepLloydsSwordRing = 53500550, + [Annotation(Name = "[Cathedral of the Deep] Lloyd's Sword Ring 53500550")] + CathedralOfTheDeepLloydsSwordRing = 53500550, - [Annotation(Name = "[Cathedral of the Deep] Soul of a Nameless Soldier 53500560")] - CathedralOfTheDeepSoulOfaNamelessSoldier__ = 53500560, + [Annotation(Name = "[Cathedral of the Deep] Soul of a Nameless Soldier 53500560")] + CathedralOfTheDeepSoulOfaNamelessSoldier__ = 53500560, - [Annotation(Name = "[Cathedral of the Deep] Homeward Bone 53500620")] - CathedralOfTheDeepHomewardBone = 53500620, + [Annotation(Name = "[Cathedral of the Deep] Homeward Bone 53500620")] + CathedralOfTheDeepHomewardBone = 53500620, - [Annotation(Name = "[Cathedral of the Deep] Deep Gem 53500630")] - CathedralOfTheDeepDeepGem = 53500630, + [Annotation(Name = "[Cathedral of the Deep] Deep Gem 53500630")] + CathedralOfTheDeepDeepGem = 53500630, - [Annotation(Name = "[Cathedral of the Deep] Titanite Shard 53500680")] - CathedralOfTheDeepTitaniteShard____ = 53500680, + [Annotation(Name = "[Cathedral of the Deep] Titanite Shard 53500680")] + CathedralOfTheDeepTitaniteShard____ = 53500680, - [Annotation(Name = "[Cathedral of the Deep] Large Soul of an Unknown Traveler 53500690")] - CathedralOfTheDeepLargeSoulOfanUnknownTraveler_____ = 53500690, + [Annotation(Name = "[Cathedral of the Deep] Large Soul of an Unknown Traveler 53500690")] + CathedralOfTheDeepLargeSoulOfanUnknownTraveler_____ = 53500690, - [Annotation(Name = "[Cathedral of the Deep] Ring of the Evil Eye+1 53500800")] - CathedralOfTheDeepRingOfTheEvilEye1 = 53500800, + [Annotation(Name = "[Cathedral of the Deep] Ring of the Evil Eye+1 53500800")] + CathedralOfTheDeepRingOfTheEvilEye1 = 53500800, - [Annotation(Name = "[Cathedral of the Deep] Ring of Favor+2 53500810")] - CathedralOfTheDeepRingOfFavor2 = 53500810, + [Annotation(Name = "[Cathedral of the Deep] Ring of Favor+2 53500810")] + CathedralOfTheDeepRingOfFavor2 = 53500810, - [Annotation(Name = "[Cathedral of the Deep] Crest Shield 53500850")] - CathedralOfTheDeepCrestShield = 53500850, + [Annotation(Name = "[Cathedral of the Deep] Crest Shield 53500850")] + CathedralOfTheDeepCrestShield = 53500850, - [Annotation(Name = "[Cathedral of the Deep] Young White Branch 53500860")] - CathedralOfTheDeepYoungWhiteBranch = 53500860, + [Annotation(Name = "[Cathedral of the Deep] Young White Branch 53500860")] + CathedralOfTheDeepYoungWhiteBranch = 53500860, - [Annotation(Name = "[Cathedral of the Deep] Young White Branch 53500870")] - CathedralOfTheDeepYoungWhiteBranch_ = 53500870, + [Annotation(Name = "[Cathedral of the Deep] Young White Branch 53500870")] + CathedralOfTheDeepYoungWhiteBranch_ = 53500870, - [Annotation(Name = "[Cathedral of the Deep] Saint-tree Bellvine 53500880")] - CathedralOfTheDeepSainttreeBellvine = 53500880, + [Annotation(Name = "[Cathedral of the Deep] Saint-tree Bellvine 53500880")] + CathedralOfTheDeepSainttreeBellvine = 53500880, - [Annotation(Name = "[Cathedral of the Deep] Saint Bident 53500890")] - CathedralOfTheDeepSaintBident = 53500890, + [Annotation(Name = "[Cathedral of the Deep] Saint Bident 53500890")] + CathedralOfTheDeepSaintBident = 53500890, - [Annotation(Name = "[Cathedral of the Deep] Archdeacon White Crown 53500950")] - CathedralOfTheDeepArchdeaconWhiteCrown = 53500950, + [Annotation(Name = "[Cathedral of the Deep] Archdeacon White Crown 53500950")] + CathedralOfTheDeepArchdeaconWhiteCrown = 53500950, - [Annotation(Name = "Large Soul of an Unknown Traveler 53600000")] - LargeSoulOfanUnknownTraveler = 53600000, + [Annotation(Name = "Large Soul of an Unknown Traveler 53600000")] + LargeSoulOfanUnknownTraveler = 53600000, - [Annotation(Name = "Large Soul of an Unknown Traveler 53600010")] - LargeSoulOfanUnknownTraveler_ = 53600010, + [Annotation(Name = "Large Soul of an Unknown Traveler 53600010")] + LargeSoulOfanUnknownTraveler_ = 53600010, - [Annotation(Name = "Large Soul of an Unknown Traveler 53600020")] - LargeSoulOfanUnknownTraveler__ = 53600020, + [Annotation(Name = "Large Soul of an Unknown Traveler 53600020")] + LargeSoulOfanUnknownTraveler__ = 53600020, - [Annotation(Name = "Large Soul of an Unknown Traveler 53600030")] - LargeSoulOfanUnknownTraveler___ = 53600030, + [Annotation(Name = "Large Soul of an Unknown Traveler 53600030")] + LargeSoulOfanUnknownTraveler___ = 53600030, - [Annotation(Name = "Large Soul of an Unknown Traveler 53600040")] - LargeSoulOfanUnknownTraveler____ = 53600040, + [Annotation(Name = "Large Soul of an Unknown Traveler 53600040")] + LargeSoulOfanUnknownTraveler____ = 53600040, - [Annotation(Name = "Large Soul of an Unknown Traveler 53600050")] - LargeSoulOfanUnknownTraveler_____ = 53600050, + [Annotation(Name = "Large Soul of an Unknown Traveler 53600050")] + LargeSoulOfanUnknownTraveler_____ = 53600050, - [Annotation(Name = "Large Soul of an Unknown Traveler 53600060")] - LargeSoulOfanUnknownTraveler______ = 53600060, + [Annotation(Name = "Large Soul of an Unknown Traveler 53600060")] + LargeSoulOfanUnknownTraveler______ = 53600060, - [Annotation(Name = "Large Soul of an Unknown Traveler 53600070")] - LargeSoulOfanUnknownTraveler_______ = 53600070, + [Annotation(Name = "Large Soul of an Unknown Traveler 53600070")] + LargeSoulOfanUnknownTraveler_______ = 53600070, - [Annotation(Name = "Large Soul of an Unknown Traveler 53600080")] - LargeSoulOfanUnknownTraveler________ = 53600080, + [Annotation(Name = "Large Soul of an Unknown Traveler 53600080")] + LargeSoulOfanUnknownTraveler________ = 53600080, - [Annotation(Name = "Large Soul of an Unknown Traveler 53600090")] - LargeSoulOfanUnknownTraveler_________ = 53600090, + [Annotation(Name = "Large Soul of an Unknown Traveler 53600090")] + LargeSoulOfanUnknownTraveler_________ = 53600090, - [Annotation(Name = "[Irithyll] Creighton's Steel Mask 53700000")] - IrithyllCreightonsSteelMask = 53700000, + [Annotation(Name = "[Irithyll] Creighton's Steel Mask 53700000")] + IrithyllCreightonsSteelMask = 53700000, - [Annotation(Name = "[Irithyll] Homeward Bone 53700010")] - IrithyllHomewardBone = 53700010, + [Annotation(Name = "[Irithyll] Homeward Bone 53700010")] + IrithyllHomewardBone = 53700010, - [Annotation(Name = "[Irithyll] Large Soul of a Nameless Soldier 53700020")] - IrithyllLargeSoulOfaNamelessSoldier = 53700020, + [Annotation(Name = "[Irithyll] Large Soul of a Nameless Soldier 53700020")] + IrithyllLargeSoulOfaNamelessSoldier = 53700020, - [Annotation(Name = "[Irithyll] Large Titanite Shard 53700030")] - IrithyllLargeTitaniteShard = 53700030, + [Annotation(Name = "[Irithyll] Large Titanite Shard 53700030")] + IrithyllLargeTitaniteShard = 53700030, - [Annotation(Name = "[Irithyll] Soul of a Weary Warrior 53700040")] - IrithyllSoulOfaWearyWarrior = 53700040, + [Annotation(Name = "[Irithyll] Soul of a Weary Warrior 53700040")] + IrithyllSoulOfaWearyWarrior = 53700040, - [Annotation(Name = "[Irithyll] Soul of a Weary Warrior 53700050")] - IrithyllSoulOfaWearyWarrior_ = 53700050, + [Annotation(Name = "[Irithyll] Soul of a Weary Warrior 53700050")] + IrithyllSoulOfaWearyWarrior_ = 53700050, - [Annotation(Name = "[Irithyll] Rime-blue Moss Clump 53700060")] - IrithyllRimeblueMossClump = 53700060, + [Annotation(Name = "[Irithyll] Rime-blue Moss Clump 53700060")] + IrithyllRimeblueMossClump = 53700060, - [Annotation(Name = "[Irithyll] Witchtree Branch 53700070")] - IrithyllWitchtreeBranch = 53700070, + [Annotation(Name = "[Irithyll] Witchtree Branch 53700070")] + IrithyllWitchtreeBranch = 53700070, - [Annotation(Name = "[Irithyll] Large Titanite Shard 53700080")] - IrithyllLargeTitaniteShard_ = 53700080, + [Annotation(Name = "[Irithyll] Large Titanite Shard 53700080")] + IrithyllLargeTitaniteShard_ = 53700080, - [Annotation(Name = "[Irithyll] Estus Shard 53700090")] - IrithyllEstusShard = 53700090, + [Annotation(Name = "[Irithyll] Estus Shard 53700090")] + IrithyllEstusShard = 53700090, - [Annotation(Name = "[Irithyll] Budding Green Blossom 53700100")] - IrithyllBuddingGreenBlossom = 53700100, + [Annotation(Name = "[Irithyll] Budding Green Blossom 53700100")] + IrithyllBuddingGreenBlossom = 53700100, - [Annotation(Name = "[Irithyll] Rime-blue Moss Clump 53700110")] - IrithyllRimeblueMossClump_ = 53700110, + [Annotation(Name = "[Irithyll] Rime-blue Moss Clump 53700110")] + IrithyllRimeblueMossClump_ = 53700110, - [Annotation(Name = "[Irithyll] Large Titanite Shard 53700120")] - IrithyllLargeTitaniteShard__ = 53700120, + [Annotation(Name = "[Irithyll] Large Titanite Shard 53700120")] + IrithyllLargeTitaniteShard__ = 53700120, - [Annotation(Name = "[Irithyll] Large Titanite Shard 53700130")] - IrithyllLargeTitaniteShard___ = 53700130, + [Annotation(Name = "[Irithyll] Large Titanite Shard 53700130")] + IrithyllLargeTitaniteShard___ = 53700130, - [Annotation(Name = "[Irithyll] Ring of the Sun's First Born 53700140")] - IrithyllRingOfTheSunsFirstBorn = 53700140, + [Annotation(Name = "[Irithyll] Ring of the Sun's First Born 53700140")] + IrithyllRingOfTheSunsFirstBorn = 53700140, - [Annotation(Name = "[Irithyll] Large Soul of a Nameless Soldier 53700150")] - IrithyllLargeSoulOfaNamelessSoldier_ = 53700150, + [Annotation(Name = "[Irithyll] Large Soul of a Nameless Soldier 53700150")] + IrithyllLargeSoulOfaNamelessSoldier_ = 53700150, - [Annotation(Name = "[Irithyll] Large Titanite Shard 53700160")] - IrithyllLargeTitaniteShard____ = 53700160, + [Annotation(Name = "[Irithyll] Large Titanite Shard 53700160")] + IrithyllLargeTitaniteShard____ = 53700160, - [Annotation(Name = "[Irithyll] Large Titanite Shard 53700170")] - IrithyllLargeTitaniteShard_____ = 53700170, + [Annotation(Name = "[Irithyll] Large Titanite Shard 53700170")] + IrithyllLargeTitaniteShard_____ = 53700170, - [Annotation(Name = "[Irithyll] Soul of a Weary Warrior 53700180")] - IrithyllSoulOfaWearyWarrior__ = 53700180, + [Annotation(Name = "[Irithyll] Soul of a Weary Warrior 53700180")] + IrithyllSoulOfaWearyWarrior__ = 53700180, - [Annotation(Name = "[Irithyll] Magic Clutch Ring 53700190")] - IrithyllMagicClutchRing = 53700190, + [Annotation(Name = "[Irithyll] Magic Clutch Ring 53700190")] + IrithyllMagicClutchRing = 53700190, - [Annotation(Name = "[Irithyll] Fading Soul 53700200")] - IrithyllFadingSoul = 53700200, + [Annotation(Name = "[Irithyll] Fading Soul 53700200")] + IrithyllFadingSoul = 53700200, - [Annotation(Name = "[Irithyll] Fading Soul 53700210")] - IrithyllFadingSoul_ = 53700210, + [Annotation(Name = "[Irithyll] Fading Soul 53700210")] + IrithyllFadingSoul_ = 53700210, - [Annotation(Name = "[Anor Londo] Painting Guardian's Curved Sword 53700220")] - AnorLondoPaintingGuardiansCurvedSword = 53700220, + [Annotation(Name = "[Anor Londo] Painting Guardian's Curved Sword 53700220")] + AnorLondoPaintingGuardiansCurvedSword = 53700220, - [Annotation(Name = "[Irithyll] Homeward Bone 53700230")] - IrithyllHomewardBone_ = 53700230, + [Annotation(Name = "[Irithyll] Homeward Bone 53700230")] + IrithyllHomewardBone_ = 53700230, - [Annotation(Name = "[Irithyll] Undead Bone Shard 53700240")] - IrithyllUndeadBoneShard = 53700240, + [Annotation(Name = "[Irithyll] Undead Bone Shard 53700240")] + IrithyllUndeadBoneShard = 53700240, - [Annotation(Name = "[Irithyll] Kukri 53700250")] - IrithyllKukri = 53700250, + [Annotation(Name = "[Irithyll] Kukri 53700250")] + IrithyllKukri = 53700250, - [Annotation(Name = "[Irithyll] Rusted Gold Coin 53700260")] - IrithyllRustedGoldCoin = 53700260, + [Annotation(Name = "[Irithyll] Rusted Gold Coin 53700260")] + IrithyllRustedGoldCoin = 53700260, - [Annotation(Name = "[Irithyll] Brass Helm 53700270")] - IrithyllBrassHelm = 53700270, + [Annotation(Name = "[Irithyll] Brass Helm 53700270")] + IrithyllBrassHelm = 53700270, - [Annotation(Name = "[Irithyll] Blue Bug Pellet 53700280")] - IrithyllBlueBugPellet = 53700280, + [Annotation(Name = "[Irithyll] Blue Bug Pellet 53700280")] + IrithyllBlueBugPellet = 53700280, - [Annotation(Name = "[Irithyll] Shriving Stone 53700290")] - IrithyllShrivingStone = 53700290, + [Annotation(Name = "[Irithyll] Shriving Stone 53700290")] + IrithyllShrivingStone = 53700290, - [Annotation(Name = "[Irithyll] Human Dregs 53700300")] - IrithyllHumanDregs = 53700300, + [Annotation(Name = "[Irithyll] Human Dregs 53700300")] + IrithyllHumanDregs = 53700300, - [Annotation(Name = "[Irithyll] Roster of Knights 6782")] - IrithyllRosterOfKnights = 6782, + [Annotation(Name = "[Irithyll] Roster of Knights 6782")] + IrithyllRosterOfKnights = 6782, - [Annotation(Name = "[Irithyll] Blood Gem 53700320")] - IrithyllBloodGem = 53700320, + [Annotation(Name = "[Irithyll] Blood Gem 53700320")] + IrithyllBloodGem = 53700320, - [Annotation(Name = "[Irithyll] Green Blossom 53700330")] - IrithyllGreenBlossom = 53700330, + [Annotation(Name = "[Irithyll] Green Blossom 53700330")] + IrithyllGreenBlossom = 53700330, - [Annotation(Name = "[Irithyll] Ring of Sacrifice 53700340")] - IrithyllRingOfSacrifice = 53700340, + [Annotation(Name = "[Irithyll] Ring of Sacrifice 53700340")] + IrithyllRingOfSacrifice = 53700340, - [Annotation(Name = "[Irithyll] Great Heal 53700350")] - IrithyllGreatHeal = 53700350, + [Annotation(Name = "[Irithyll] Great Heal 53700350")] + IrithyllGreatHeal = 53700350, - [Annotation(Name = "[Irithyll] Large Soul of a Nameless Soldier 53700360")] - IrithyllLargeSoulOfaNamelessSoldier__ = 53700360, + [Annotation(Name = "[Irithyll] Large Soul of a Nameless Soldier 53700360")] + IrithyllLargeSoulOfaNamelessSoldier__ = 53700360, - [Annotation(Name = "[Irithyll] Green Blossom 53700370")] - IrithyllGreenBlossom_ = 53700370, + [Annotation(Name = "[Irithyll] Green Blossom 53700370")] + IrithyllGreenBlossom_ = 53700370, - [Annotation(Name = "[Irithyll] Dung Pie 53700380")] - IrithyllDungPie = 53700380, + [Annotation(Name = "[Irithyll] Dung Pie 53700380")] + IrithyllDungPie = 53700380, - [Annotation(Name = "[Irithyll] Dung Pie 53700390")] - IrithyllDungPie_ = 53700390, + [Annotation(Name = "[Irithyll] Dung Pie 53700390")] + IrithyllDungPie_ = 53700390, - [Annotation(Name = "[Irithyll] Excrement-covered Ashes 53700400")] - IrithyllExcrementcoveredAshes = 53700400, + [Annotation(Name = "[Irithyll] Excrement-covered Ashes 53700400")] + IrithyllExcrementcoveredAshes = 53700400, - [Annotation(Name = "[Irithyll] Ember 53700410")] - IrithyllEmber = 53700410, + [Annotation(Name = "[Irithyll] Ember 53700410")] + IrithyllEmber = 53700410, - [Annotation(Name = "[Irithyll] Large Titanite Shard 53700420")] - IrithyllLargeTitaniteShard______ = 53700420, + [Annotation(Name = "[Irithyll] Large Titanite Shard 53700420")] + IrithyllLargeTitaniteShard______ = 53700420, - [Annotation(Name = "[Irithyll] Large Soul of a Nameless Soldier 53700430")] - IrithyllLargeSoulOfaNamelessSoldier___ = 53700430, + [Annotation(Name = "[Irithyll] Large Soul of a Nameless Soldier 53700430")] + IrithyllLargeSoulOfaNamelessSoldier___ = 53700430, - [Annotation(Name = "[Irithyll] Soul of a Weary Warrior 53700440")] - IrithyllSoulOfaWearyWarrior___ = 53700440, + [Annotation(Name = "[Irithyll] Soul of a Weary Warrior 53700440")] + IrithyllSoulOfaWearyWarrior___ = 53700440, - [Annotation(Name = "[Irithyll] Large Titanite Shard 53700450")] - IrithyllLargeTitaniteShard_______ = 53700450, + [Annotation(Name = "[Irithyll] Large Titanite Shard 53700450")] + IrithyllLargeTitaniteShard_______ = 53700450, - [Annotation(Name = "[Irithyll] Blue Bug Pellet 53700460")] - IrithyllBlueBugPellet_ = 53700460, + [Annotation(Name = "[Irithyll] Blue Bug Pellet 53700460")] + IrithyllBlueBugPellet_ = 53700460, - [Annotation(Name = "[Irithyll] Ember 53700470")] - IrithyllEmber_ = 53700470, + [Annotation(Name = "[Irithyll] Ember 53700470")] + IrithyllEmber_ = 53700470, - [Annotation(Name = "[Irithyll] Large Titanite Shard 53700480")] - IrithyllLargeTitaniteShard________ = 53700480, + [Annotation(Name = "[Irithyll] Large Titanite Shard 53700480")] + IrithyllLargeTitaniteShard________ = 53700480, - [Annotation(Name = "[Irithyll] Large Titanite Shard 53700490")] - IrithyllLargeTitaniteShard_________ = 53700490, + [Annotation(Name = "[Irithyll] Large Titanite Shard 53700490")] + IrithyllLargeTitaniteShard_________ = 53700490, - [Annotation(Name = "[Irithyll] Soul of a Weary Warrior 53700500")] - IrithyllSoulOfaWearyWarrior____ = 53700500, + [Annotation(Name = "[Irithyll] Soul of a Weary Warrior 53700500")] + IrithyllSoulOfaWearyWarrior____ = 53700500, - [Annotation(Name = "[Irithyll] Ember 53700510")] - IrithyllEmber__ = 53700510, + [Annotation(Name = "[Irithyll] Ember 53700510")] + IrithyllEmber__ = 53700510, - [Annotation(Name = "[Irithyll] Ember 53700520")] - IrithyllEmber___ = 53700520, + [Annotation(Name = "[Irithyll] Ember 53700520")] + IrithyllEmber___ = 53700520, - [Annotation(Name = "[Irithyll] Large Titanite Shard 53700530")] - IrithyllLargeTitaniteShard__________ = 53700530, + [Annotation(Name = "[Irithyll] Large Titanite Shard 53700530")] + IrithyllLargeTitaniteShard__________ = 53700530, - [Annotation(Name = "[Irithyll] Dark Stoneplate Ring 53700540")] - IrithyllDarkStoneplateRing = 53700540, + [Annotation(Name = "[Irithyll] Dark Stoneplate Ring 53700540")] + IrithyllDarkStoneplateRing = 53700540, - [Annotation(Name = "[Irithyll] Large Titanite Shard 53700550")] - IrithyllLargeTitaniteShard___________ = 53700550, + [Annotation(Name = "[Irithyll] Large Titanite Shard 53700550")] + IrithyllLargeTitaniteShard___________ = 53700550, - [Annotation(Name = "[Irithyll] Green Blossom 53700560")] - IrithyllGreenBlossom__ = 53700560, + [Annotation(Name = "[Irithyll] Green Blossom 53700560")] + IrithyllGreenBlossom__ = 53700560, - [Annotation(Name = "[Irithyll] Deep Gem 53700600")] - IrithyllDeepGem = 53700600, + [Annotation(Name = "[Irithyll] Deep Gem 53700600")] + IrithyllDeepGem = 53700600, - [Annotation(Name = "[Irithyll] Titanite Scale 53700610")] - IrithyllTitaniteScale = 53700610, + [Annotation(Name = "[Irithyll] Titanite Scale 53700610")] + IrithyllTitaniteScale = 53700610, - [Annotation(Name = "[Irithyll] Dragonslayer Greatbow 53700620")] - IrithyllDragonslayerGreatbow = 53700620, + [Annotation(Name = "[Irithyll] Dragonslayer Greatbow 53700620")] + IrithyllDragonslayerGreatbow = 53700620, - [Annotation(Name = "[Irithyll] Easterner's Ashes 53700630")] - IrithyllEasternersAshes = 53700630, + [Annotation(Name = "[Irithyll] Easterner's Ashes 53700630")] + IrithyllEasternersAshes = 53700630, - [Annotation(Name = "[Anor Londo] Painting Guardian Hood 53700640")] - AnorLondoPaintingGuardianHood = 53700640, + [Annotation(Name = "[Anor Londo] Painting Guardian Hood 53700640")] + AnorLondoPaintingGuardianHood = 53700640, - [Annotation(Name = "[Anor Londo] Soul of a Crestfallen Knight 53700660")] - AnorLondoSoulOfaCrestfallenKnight = 53700660, + [Annotation(Name = "[Anor Londo] Soul of a Crestfallen Knight 53700660")] + AnorLondoSoulOfaCrestfallenKnight = 53700660, - [Annotation(Name = "[Irithyll] Lightning Gem 53700670")] - IrithyllLightningGem = 53700670, + [Annotation(Name = "[Irithyll] Lightning Gem 53700670")] + IrithyllLightningGem = 53700670, - [Annotation(Name = "[Anor Londo] Moonlight Arrow 53700690")] - AnorLondoMoonlightArrow = 53700690, + [Annotation(Name = "[Anor Londo] Moonlight Arrow 53700690")] + AnorLondoMoonlightArrow = 53700690, - [Annotation(Name = "[Irithyll] Proof of a Concord Kept 53700700")] - IrithyllProofOfaConcordKept = 53700700, + [Annotation(Name = "[Irithyll] Proof of a Concord Kept 53700700")] + IrithyllProofOfaConcordKept = 53700700, - [Annotation(Name = "[Irithyll] Large Soul of a Nameless Soldier 53700720")] - IrithyllLargeSoulOfaNamelessSoldier____ = 53700720, + [Annotation(Name = "[Irithyll] Large Soul of a Nameless Soldier 53700720")] + IrithyllLargeSoulOfaNamelessSoldier____ = 53700720, - [Annotation(Name = "[Irithyll] Soul of a Weary Warrior 53700740")] - IrithyllSoulOfaWearyWarrior_____ = 53700740, + [Annotation(Name = "[Irithyll] Soul of a Weary Warrior 53700740")] + IrithyllSoulOfaWearyWarrior_____ = 53700740, - [Annotation(Name = "[Irithyll] Proof of a Concord Kept 53700750")] - IrithyllProofOfaConcordKept_ = 53700750, + [Annotation(Name = "[Irithyll] Proof of a Concord Kept 53700750")] + IrithyllProofOfaConcordKept_ = 53700750, - [Annotation(Name = "[Irithyll] Rusted Gold Coin 53700760")] - IrithyllRustedGoldCoin_ = 53700760, + [Annotation(Name = "[Irithyll] Rusted Gold Coin 53700760")] + IrithyllRustedGoldCoin_ = 53700760, - [Annotation(Name = "[Irithyll] Large Soul of a Weary Warrior 53700770")] - IrithyllLargeSoulOfaWearyWarrior = 53700770, + [Annotation(Name = "[Irithyll] Large Soul of a Weary Warrior 53700770")] + IrithyllLargeSoulOfaWearyWarrior = 53700770, - [Annotation(Name = "[Anor Londo] Giant's Coal 53700800")] - AnorLondoGiantsCoal = 53700800, + [Annotation(Name = "[Anor Londo] Giant's Coal 53700800")] + AnorLondoGiantsCoal = 53700800, - [Annotation(Name = "[Irithyll] Chloranthy Ring+1 53700810")] - IrithyllChloranthyRing1 = 53700810, + [Annotation(Name = "[Irithyll] Chloranthy Ring+1 53700810")] + IrithyllChloranthyRing1 = 53700810, - [Annotation(Name = "[Irithyll] Havel's Ring+2 53700820")] - IrithyllHavelsRing2 = 53700820, + [Annotation(Name = "[Irithyll] Havel's Ring+2 53700820")] + IrithyllHavelsRing2 = 53700820, - [Annotation(Name = "[Irithyll] Ring of Favor+1 53700830")] - IrithyllRingOfFavor1 = 53700830, + [Annotation(Name = "[Irithyll] Ring of Favor+1 53700830")] + IrithyllRingOfFavor1 = 53700830, - [Annotation(Name = "[Irithyll] Sun Princess Ring 53700840")] - IrithyllSunPrincessRing = 53700840, + [Annotation(Name = "[Irithyll] Sun Princess Ring 53700840")] + IrithyllSunPrincessRing = 53700840, - [Annotation(Name = "[Irithyll] Covetous Gold Serpent Ring+1 53700850")] - IrithyllCovetousGoldSerpentRing1 = 53700850, + [Annotation(Name = "[Irithyll] Covetous Gold Serpent Ring+1 53700850")] + IrithyllCovetousGoldSerpentRing1 = 53700850, - [Annotation(Name = "[Irithyll] Wood Grain Ring+2 53700860")] - IrithyllWoodGrainRing2 = 53700860, + [Annotation(Name = "[Irithyll] Wood Grain Ring+2 53700860")] + IrithyllWoodGrainRing2 = 53700860, - [Annotation(Name = "[Irithyll] Divine Blessing 53700900")] - IrithyllDivineBlessing = 53700900, + [Annotation(Name = "[Irithyll] Divine Blessing 53700900")] + IrithyllDivineBlessing = 53700900, - [Annotation(Name = "[Irithyll] Smough's Great Hammer 53700920")] - IrithyllSmoughsGreatHammer = 53700920, + [Annotation(Name = "[Irithyll] Smough's Great Hammer 53700920")] + IrithyllSmoughsGreatHammer = 53700920, - [Annotation(Name = "[Irithyll] Reversal Ring 53700940")] - IrithyllReversalRing = 53700940, + [Annotation(Name = "[Irithyll] Reversal Ring 53700940")] + IrithyllReversalRing = 53700940, - [Annotation(Name = "[Irithyll] Yorshka's Spear 53700950")] - IrithyllYorshkasSpear = 53700950, + [Annotation(Name = "[Irithyll] Yorshka's Spear 53700950")] + IrithyllYorshkasSpear = 53700950, - [Annotation(Name = "[Irithyll] Leo Ring 53700960")] - IrithyllLeoRing = 53700960, + [Annotation(Name = "[Irithyll] Leo Ring 53700960")] + IrithyllLeoRing = 53700960, - [Annotation(Name = "[Catacombs of Carthus] Carthus Rouge 53800000")] - CatacombsOfCarthusCarthusRouge = 53800000, + [Annotation(Name = "[Catacombs of Carthus] Carthus Rouge 53800000")] + CatacombsOfCarthusCarthusRouge = 53800000, - [Annotation(Name = "[Catacombs of Carthus] Sharp Gem 53800010")] - CatacombsOfCarthusSharpGem = 53800010, + [Annotation(Name = "[Catacombs of Carthus] Sharp Gem 53800010")] + CatacombsOfCarthusSharpGem = 53800010, - [Annotation(Name = "[Catacombs of Carthus] Soul of a Nameless Soldier 53800020")] - CatacombsOfCarthusSoulOfaNamelessSoldier = 53800020, + [Annotation(Name = "[Catacombs of Carthus] Soul of a Nameless Soldier 53800020")] + CatacombsOfCarthusSoulOfaNamelessSoldier = 53800020, - [Annotation(Name = "[Catacombs of Carthus] Titanite Shard 53800030")] - CatacombsOfCarthusTitaniteShard = 53800030, + [Annotation(Name = "[Catacombs of Carthus] Titanite Shard 53800030")] + CatacombsOfCarthusTitaniteShard = 53800030, - [Annotation(Name = "[Catacombs of Carthus] Bloodred Moss Clump 53800040")] - CatacombsOfCarthusBloodredMossClump = 53800040, + [Annotation(Name = "[Catacombs of Carthus] Bloodred Moss Clump 53800040")] + CatacombsOfCarthusBloodredMossClump = 53800040, - [Annotation(Name = "[Catacombs of Carthus] Carthus Milkring 53800050")] - CatacombsOfCarthusCarthusMilkring = 53800050, + [Annotation(Name = "[Catacombs of Carthus] Carthus Milkring 53800050")] + CatacombsOfCarthusCarthusMilkring = 53800050, - [Annotation(Name = "[Catacombs of Carthus] Ember 53800060")] - CatacombsOfCarthusEmber = 53800060, + [Annotation(Name = "[Catacombs of Carthus] Ember 53800060")] + CatacombsOfCarthusEmber = 53800060, - [Annotation(Name = "[Catacombs of Carthus] Carthus Rouge 53800070")] - CatacombsOfCarthusCarthusRouge_ = 53800070, + [Annotation(Name = "[Catacombs of Carthus] Carthus Rouge 53800070")] + CatacombsOfCarthusCarthusRouge_ = 53800070, - [Annotation(Name = "[Catacombs of Carthus] Ember 53800080")] - CatacombsOfCarthusEmber_ = 53800080, + [Annotation(Name = "[Catacombs of Carthus] Ember 53800080")] + CatacombsOfCarthusEmber_ = 53800080, - [Annotation(Name = "[Catacombs of Carthus] Carthus Bloodring 53800090")] - CatacombsOfCarthusCarthusBloodring = 53800090, + [Annotation(Name = "[Catacombs of Carthus] Carthus Bloodring 53800090")] + CatacombsOfCarthusCarthusBloodring = 53800090, - [Annotation(Name = "[Catacombs of Carthus] Titanite Shard 53800100")] - CatacombsOfCarthusTitaniteShard_ = 53800100, + [Annotation(Name = "[Catacombs of Carthus] Titanite Shard 53800100")] + CatacombsOfCarthusTitaniteShard_ = 53800100, - [Annotation(Name = "[Catacombs of Carthus] Titanite Shard 53800110")] - CatacombsOfCarthusTitaniteShard__ = 53800110, + [Annotation(Name = "[Catacombs of Carthus] Titanite Shard 53800110")] + CatacombsOfCarthusTitaniteShard__ = 53800110, - [Annotation(Name = "[Catacombs of Carthus] Ember 53800120")] - CatacombsOfCarthusEmber__ = 53800120, + [Annotation(Name = "[Catacombs of Carthus] Ember 53800120")] + CatacombsOfCarthusEmber__ = 53800120, - [Annotation(Name = "[Catacombs of Carthus] Carthus Pyromancy Tome 53800130")] - CatacombsOfCarthusCarthusPyromancyTome = 53800130, + [Annotation(Name = "[Catacombs of Carthus] Carthus Pyromancy Tome 53800130")] + CatacombsOfCarthusCarthusPyromancyTome = 53800130, - [Annotation(Name = "[Catacombs of Carthus] Large Titanite Shard 53800140")] - CatacombsOfCarthusLargeTitaniteShard = 53800140, + [Annotation(Name = "[Catacombs of Carthus] Large Titanite Shard 53800140")] + CatacombsOfCarthusLargeTitaniteShard = 53800140, - [Annotation(Name = "[Catacombs of Carthus] Large Titanite Shard 53800150")] - CatacombsOfCarthusLargeTitaniteShard_ = 53800150, + [Annotation(Name = "[Catacombs of Carthus] Large Titanite Shard 53800150")] + CatacombsOfCarthusLargeTitaniteShard_ = 53800150, - [Annotation(Name = "[Catacombs of Carthus] Yellow Bug Pellet 53800160")] - CatacombsOfCarthusYellowBugPellet = 53800160, + [Annotation(Name = "[Catacombs of Carthus] Yellow Bug Pellet 53800160")] + CatacombsOfCarthusYellowBugPellet = 53800160, - [Annotation(Name = "[Catacombs of Carthus] Large Soul of a Nameless Soldier 53800170")] - CatacombsOfCarthusLargeSoulOfaNamelessSoldier = 53800170, + [Annotation(Name = "[Catacombs of Carthus] Large Soul of a Nameless Soldier 53800170")] + CatacombsOfCarthusLargeSoulOfaNamelessSoldier = 53800170, - [Annotation(Name = "[Catacombs of Carthus] Black Bug Pellet 53800180")] - CatacombsOfCarthusBlackBugPellet = 53800180, + [Annotation(Name = "[Catacombs of Carthus] Black Bug Pellet 53800180")] + CatacombsOfCarthusBlackBugPellet = 53800180, - [Annotation(Name = "[Catacombs of Carthus] Grave Warden's Ashes 53800190")] - CatacombsOfCarthusGraveWardensAshes = 53800190, + [Annotation(Name = "[Catacombs of Carthus] Grave Warden's Ashes 53800190")] + CatacombsOfCarthusGraveWardensAshes = 53800190, - [Annotation(Name = "[Catacombs of Carthus] Large Titanite Shard 53800200")] - CatacombsOfCarthusLargeTitaniteShard__ = 53800200, + [Annotation(Name = "[Catacombs of Carthus] Large Titanite Shard 53800200")] + CatacombsOfCarthusLargeTitaniteShard__ = 53800200, - [Annotation(Name = "[Catacombs of Carthus] Large Titanite Shard 53800210")] - CatacombsOfCarthusLargeTitaniteShard___ = 53800210, + [Annotation(Name = "[Catacombs of Carthus] Large Titanite Shard 53800210")] + CatacombsOfCarthusLargeTitaniteShard___ = 53800210, - [Annotation(Name = "[Catacombs of Carthus] Large Titanite Shard 53800220")] - CatacombsOfCarthusLargeTitaniteShard____ = 53800220, + [Annotation(Name = "[Catacombs of Carthus] Large Titanite Shard 53800220")] + CatacombsOfCarthusLargeTitaniteShard____ = 53800220, - [Annotation(Name = "[Catacombs of Carthus] Large Titanite Shard 53800230")] - CatacombsOfCarthusLargeTitaniteShard_____ = 53800230, + [Annotation(Name = "[Catacombs of Carthus] Large Titanite Shard 53800230")] + CatacombsOfCarthusLargeTitaniteShard_____ = 53800230, - [Annotation(Name = "[Catacombs of Carthus] Large Titanite Shard 53800240")] - CatacombsOfCarthusLargeTitaniteShard______ = 53800240, + [Annotation(Name = "[Catacombs of Carthus] Large Titanite Shard 53800240")] + CatacombsOfCarthusLargeTitaniteShard______ = 53800240, - [Annotation(Name = "[Catacombs of Carthus] Large Titanite Shard 53800250")] - CatacombsOfCarthusLargeTitaniteShard_______ = 53800250, + [Annotation(Name = "[Catacombs of Carthus] Large Titanite Shard 53800250")] + CatacombsOfCarthusLargeTitaniteShard_______ = 53800250, - [Annotation(Name = "[Catacombs of Carthus] Yellow Bug Pellet 53800260")] - CatacombsOfCarthusYellowBugPellet_ = 53800260, + [Annotation(Name = "[Catacombs of Carthus] Yellow Bug Pellet 53800260")] + CatacombsOfCarthusYellowBugPellet_ = 53800260, - [Annotation(Name = "[Catacombs of Carthus] Large Titanite Shard 53800270")] - CatacombsOfCarthusLargeTitaniteShard________ = 53800270, + [Annotation(Name = "[Catacombs of Carthus] Large Titanite Shard 53800270")] + CatacombsOfCarthusLargeTitaniteShard________ = 53800270, - [Annotation(Name = "[Catacombs of Carthus] Large Titanite Shard 53800280")] - CatacombsOfCarthusLargeTitaniteShard_________ = 53800280, + [Annotation(Name = "[Catacombs of Carthus] Large Titanite Shard 53800280")] + CatacombsOfCarthusLargeTitaniteShard_________ = 53800280, - [Annotation(Name = "[Catacombs of Carthus] Large Titanite Shard 53800290")] - CatacombsOfCarthusLargeTitaniteShard__________ = 53800290, + [Annotation(Name = "[Catacombs of Carthus] Large Titanite Shard 53800290")] + CatacombsOfCarthusLargeTitaniteShard__________ = 53800290, - [Annotation(Name = "[Catacombs of Carthus] Speckled Stoneplate Ring 53800300")] - CatacombsOfCarthusSpeckledStoneplateRing = 53800300, + [Annotation(Name = "[Catacombs of Carthus] Speckled Stoneplate Ring 53800300")] + CatacombsOfCarthusSpeckledStoneplateRing = 53800300, - [Annotation(Name = "[Catacombs of Carthus] Homeward Bone 53800310")] - CatacombsOfCarthusHomewardBone = 53800310, + [Annotation(Name = "[Catacombs of Carthus] Homeward Bone 53800310")] + CatacombsOfCarthusHomewardBone = 53800310, - [Annotation(Name = "[Catacombs of Carthus] Ember 53800330")] - CatacombsOfCarthusEmber___ = 53800330, + [Annotation(Name = "[Catacombs of Carthus] Ember 53800330")] + CatacombsOfCarthusEmber___ = 53800330, - [Annotation(Name = "[Catacombs of Carthus] Chaos Gem 53800340")] - CatacombsOfCarthusChaosGem = 53800340, + [Annotation(Name = "[Catacombs of Carthus] Chaos Gem 53800340")] + CatacombsOfCarthusChaosGem = 53800340, - [Annotation(Name = "[Catacombs of Carthus] Ember 53800350")] - CatacombsOfCarthusEmber____ = 53800350, + [Annotation(Name = "[Catacombs of Carthus] Ember 53800350")] + CatacombsOfCarthusEmber____ = 53800350, - [Annotation(Name = "[Catacombs of Carthus] Izalith Pyromancy Tome 53800360")] - CatacombsOfCarthusIzalithPyromancyTome = 53800360, + [Annotation(Name = "[Catacombs of Carthus] Izalith Pyromancy Tome 53800360")] + CatacombsOfCarthusIzalithPyromancyTome = 53800360, - [Annotation(Name = "[Catacombs of Carthus] Black Knight Sword 53800370")] - CatacombsOfCarthusBlackKnightSword = 53800370, + [Annotation(Name = "[Catacombs of Carthus] Black Knight Sword 53800370")] + CatacombsOfCarthusBlackKnightSword = 53800370, - [Annotation(Name = "[Catacombs of Carthus] Large Soul of a Nameless Soldier 53800380")] - CatacombsOfCarthusLargeSoulOfaNamelessSoldier_ = 53800380, + [Annotation(Name = "[Catacombs of Carthus] Large Soul of a Nameless Soldier 53800380")] + CatacombsOfCarthusLargeSoulOfaNamelessSoldier_ = 53800380, - [Annotation(Name = "[Catacombs of Carthus] Old Sage's Blindfold 53800390")] - CatacombsOfCarthusOldSagesBlindfold = 53800390, + [Annotation(Name = "[Catacombs of Carthus] Old Sage's Blindfold 53800390")] + CatacombsOfCarthusOldSagesBlindfold = 53800390, - [Annotation(Name = "[Catacombs of Carthus] Ember 53800400")] - CatacombsOfCarthusEmber_____ = 53800400, + [Annotation(Name = "[Catacombs of Carthus] Ember 53800400")] + CatacombsOfCarthusEmber_____ = 53800400, - [Annotation(Name = "[Catacombs of Carthus] Quelana Pyromancy Tome 53800410")] - CatacombsOfCarthusQuelanaPyromancyTome = 53800410, + [Annotation(Name = "[Catacombs of Carthus] Quelana Pyromancy Tome 53800410")] + CatacombsOfCarthusQuelanaPyromancyTome = 53800410, - [Annotation(Name = "[Catacombs of Carthus] Izalith Staff 53800420")] - CatacombsOfCarthusIzalithStaff = 53800420, + [Annotation(Name = "[Catacombs of Carthus] Izalith Staff 53800420")] + CatacombsOfCarthusIzalithStaff = 53800420, - [Annotation(Name = "[Catacombs of Carthus] White Hair Talisman 53800430")] - CatacombsOfCarthusWhiteHairTalisman = 53800430, + [Annotation(Name = "[Catacombs of Carthus] White Hair Talisman 53800430")] + CatacombsOfCarthusWhiteHairTalisman = 53800430, - [Annotation(Name = "[Catacombs of Carthus] Toxic Mist 53800440")] - CatacombsOfCarthusToxicMist = 53800440, + [Annotation(Name = "[Catacombs of Carthus] Toxic Mist 53800440")] + CatacombsOfCarthusToxicMist = 53800440, - [Annotation(Name = "[Catacombs of Carthus] Undead Bone Shard 53800450")] - CatacombsOfCarthusUndeadBoneShard = 53800450, + [Annotation(Name = "[Catacombs of Carthus] Undead Bone Shard 53800450")] + CatacombsOfCarthusUndeadBoneShard = 53800450, - [Annotation(Name = "[Catacombs of Carthus] Titanite Scale 53800460")] - CatacombsOfCarthusTitaniteScale = 53800460, + [Annotation(Name = "[Catacombs of Carthus] Titanite Scale 53800460")] + CatacombsOfCarthusTitaniteScale = 53800460, - [Annotation(Name = "[Catacombs of Carthus] Soul of a Nameless Soldier 53800470")] - CatacombsOfCarthusSoulOfaNamelessSoldier_ = 53800470, + [Annotation(Name = "[Catacombs of Carthus] Soul of a Nameless Soldier 53800470")] + CatacombsOfCarthusSoulOfaNamelessSoldier_ = 53800470, - [Annotation(Name = "[Catacombs of Carthus] Grave Warden Pyromancy Tome 53800500")] - CatacombsOfCarthusGraveWardenPyromancyTome = 53800500, + [Annotation(Name = "[Catacombs of Carthus] Grave Warden Pyromancy Tome 53800500")] + CatacombsOfCarthusGraveWardenPyromancyTome = 53800500, - [Annotation(Name = "[Catacombs of Carthus] Shield of Want 53800520")] - CatacombsOfCarthusShieldOfWant = 53800520, + [Annotation(Name = "[Catacombs of Carthus] Shield of Want 53800520")] + CatacombsOfCarthusShieldOfWant = 53800520, - [Annotation(Name = "[Catacombs of Carthus] Soul of a Crestfallen Knight 53800530")] - CatacombsOfCarthusSoulOfaCrestfallenKnight = 53800530, + [Annotation(Name = "[Catacombs of Carthus] Soul of a Crestfallen Knight 53800530")] + CatacombsOfCarthusSoulOfaCrestfallenKnight = 53800530, - [Annotation(Name = "[Catacombs of Carthus] Ember 53800540")] - CatacombsOfCarthusEmber______ = 53800540, + [Annotation(Name = "[Catacombs of Carthus] Ember 53800540")] + CatacombsOfCarthusEmber______ = 53800540, - [Annotation(Name = "[Catacombs of Carthus] Sacred Flame 53800560")] - CatacombsOfCarthusSacredFlame = 53800560, + [Annotation(Name = "[Catacombs of Carthus] Sacred Flame 53800560")] + CatacombsOfCarthusSacredFlame = 53800560, - [Annotation(Name = "[Catacombs of Carthus] Large Soul of an Unknown Traveler 53800570")] - CatacombsOfCarthusLargeSoulOfanUnknownTraveler = 53800570, + [Annotation(Name = "[Catacombs of Carthus] Large Soul of an Unknown Traveler 53800570")] + CatacombsOfCarthusLargeSoulOfanUnknownTraveler = 53800570, - [Annotation(Name = "[Catacombs of Carthus] Dragonrider Bow 53800580")] - CatacombsOfCarthusDragonriderBow = 53800580, + [Annotation(Name = "[Catacombs of Carthus] Dragonrider Bow 53800580")] + CatacombsOfCarthusDragonriderBow = 53800580, - [Annotation(Name = "[Catacombs of Carthus] Estus Shard 53800590")] - CatacombsOfCarthusEstusShard = 53800590, + [Annotation(Name = "[Catacombs of Carthus] Estus Shard 53800590")] + CatacombsOfCarthusEstusShard = 53800590, - [Annotation(Name = "[Catacombs of Carthus] Ring of Steel Protection+2 53800600")] - CatacombsOfCarthusRingOfSteelProtection2 = 53800600, + [Annotation(Name = "[Catacombs of Carthus] Ring of Steel Protection+2 53800600")] + CatacombsOfCarthusRingOfSteelProtection2 = 53800600, - [Annotation(Name = "[Catacombs of Carthus] Thunder Stoneplate Ring+1 53800610")] - CatacombsOfCarthusThunderStoneplateRing1 = 53800610, + [Annotation(Name = "[Catacombs of Carthus] Thunder Stoneplate Ring+1 53800610")] + CatacombsOfCarthusThunderStoneplateRing1 = 53800610, - [Annotation(Name = "[Catacombs of Carthus] Bloodbite Ring+1 53800620")] - CatacombsOfCarthusBloodbiteRing1 = 53800620, + [Annotation(Name = "[Catacombs of Carthus] Bloodbite Ring+1 53800620")] + CatacombsOfCarthusBloodbiteRing1 = 53800620, - [Annotation(Name = "[Catacombs of Carthus] Flame Stoneplate Ring+2 53800630")] - CatacombsOfCarthusFlameStoneplateRing2 = 53800630, + [Annotation(Name = "[Catacombs of Carthus] Flame Stoneplate Ring+2 53800630")] + CatacombsOfCarthusFlameStoneplateRing2 = 53800630, - [Annotation(Name = "[Catacombs of Carthus] Large Titanite Shard 53800760")] - CatacombsOfCarthusLargeTitaniteShard___________ = 53800760, + [Annotation(Name = "[Catacombs of Carthus] Large Titanite Shard 53800760")] + CatacombsOfCarthusLargeTitaniteShard___________ = 53800760, - [Annotation(Name = "[Catacombs of Carthus] Undead Bone Shard 53800900")] - CatacombsOfCarthusUndeadBoneShard_ = 53800900, + [Annotation(Name = "[Catacombs of Carthus] Undead Bone Shard 53800900")] + CatacombsOfCarthusUndeadBoneShard_ = 53800900, - [Annotation(Name = "[Catacombs of Carthus] Dark Gem 53800910")] - CatacombsOfCarthusDarkGem = 53800910, + [Annotation(Name = "[Catacombs of Carthus] Dark Gem 53800910")] + CatacombsOfCarthusDarkGem = 53800910, - [Annotation(Name = "[Irithyll Dungeon] Large Titanite Shard 53900000")] - IrithyllDungeonLargeTitaniteShard = 53900000, + [Annotation(Name = "[Irithyll Dungeon] Large Titanite Shard 53900000")] + IrithyllDungeonLargeTitaniteShard = 53900000, - [Annotation(Name = "[Irithyll Dungeon] Fading Soul 53900010")] - IrithyllDungeonFadingSoul = 53900010, + [Annotation(Name = "[Irithyll Dungeon] Fading Soul 53900010")] + IrithyllDungeonFadingSoul = 53900010, - [Annotation(Name = "[Irithyll Dungeon] Large Soul of a Nameless Soldier 53900030")] - IrithyllDungeonLargeSoulOfaNamelessSoldier = 53900030, + [Annotation(Name = "[Irithyll Dungeon] Large Soul of a Nameless Soldier 53900030")] + IrithyllDungeonLargeSoulOfaNamelessSoldier = 53900030, - [Annotation(Name = "[Irithyll Dungeon] Jailbreaker's Key 53900040")] - IrithyllDungeonJailbreakersKey = 53900040, + [Annotation(Name = "[Irithyll Dungeon] Jailbreaker's Key 53900040")] + IrithyllDungeonJailbreakersKey = 53900040, - [Annotation(Name = "[Irithyll Dungeon] Pale Pine Resin 53900050")] - IrithyllDungeonPalePineResin = 53900050, + [Annotation(Name = "[Irithyll Dungeon] Pale Pine Resin 53900050")] + IrithyllDungeonPalePineResin = 53900050, - [Annotation(Name = "[Irithyll Dungeon] Simple Gem 53900060")] - IrithyllDungeonSimpleGem = 53900060, + [Annotation(Name = "[Irithyll Dungeon] Simple Gem 53900060")] + IrithyllDungeonSimpleGem = 53900060, - [Annotation(Name = "[Irithyll Dungeon] Large Soul of a Nameless Soldier 53900070")] - IrithyllDungeonLargeSoulOfaNamelessSoldier_ = 53900070, + [Annotation(Name = "[Irithyll Dungeon] Large Soul of a Nameless Soldier 53900070")] + IrithyllDungeonLargeSoulOfaNamelessSoldier_ = 53900070, - [Annotation(Name = "[Irithyll Dungeon] Large Titanite Shard 53900080")] - IrithyllDungeonLargeTitaniteShard_ = 53900080, + [Annotation(Name = "[Irithyll Dungeon] Large Titanite Shard 53900080")] + IrithyllDungeonLargeTitaniteShard_ = 53900080, - [Annotation(Name = "[Irithyll Dungeon] Homeward Bone 53900090")] - IrithyllDungeonHomewardBone = 53900090, + [Annotation(Name = "[Irithyll Dungeon] Homeward Bone 53900090")] + IrithyllDungeonHomewardBone = 53900090, - [Annotation(Name = "[Irithyll Dungeon] Bellowing Dragoncrest Ring 53900100")] - IrithyllDungeonBellowingDragoncrestRing = 53900100, + [Annotation(Name = "[Irithyll Dungeon] Bellowing Dragoncrest Ring 53900100")] + IrithyllDungeonBellowingDragoncrestRing = 53900100, - [Annotation(Name = "[Irithyll Dungeon] Soul of a Weary Warrior 53900110")] - IrithyllDungeonSoulOfaWearyWarrior = 53900110, + [Annotation(Name = "[Irithyll Dungeon] Soul of a Weary Warrior 53900110")] + IrithyllDungeonSoulOfaWearyWarrior = 53900110, - [Annotation(Name = "[Irithyll Dungeon] Soul of a Crestfallen Knight 53900120")] - IrithyllDungeonSoulOfaCrestfallenKnight = 53900120, + [Annotation(Name = "[Irithyll Dungeon] Soul of a Crestfallen Knight 53900120")] + IrithyllDungeonSoulOfaCrestfallenKnight = 53900120, - [Annotation(Name = "[Irithyll Dungeon] Alva Helm 53900130")] - IrithyllDungeonAlvaHelm = 53900130, + [Annotation(Name = "[Irithyll Dungeon] Alva Helm 53900130")] + IrithyllDungeonAlvaHelm = 53900130, - [Annotation(Name = "[Irithyll Dungeon] Lightning Bolt 53900140")] - IrithyllDungeonLightningBolt = 53900140, + [Annotation(Name = "[Irithyll Dungeon] Lightning Bolt 53900140")] + IrithyllDungeonLightningBolt = 53900140, - [Annotation(Name = "[Irithyll Dungeon] Large Titanite Shard 53900150")] - IrithyllDungeonLargeTitaniteShard__ = 53900150, + [Annotation(Name = "[Irithyll Dungeon] Large Titanite Shard 53900150")] + IrithyllDungeonLargeTitaniteShard__ = 53900150, - [Annotation(Name = "[Irithyll Dungeon] Profaned Flame 53900160")] - IrithyllDungeonProfanedFlame = 53900160, + [Annotation(Name = "[Irithyll Dungeon] Profaned Flame 53900160")] + IrithyllDungeonProfanedFlame = 53900160, - [Annotation(Name = "[Irithyll Dungeon] Large Titanite Shard 53900180")] - IrithyllDungeonLargeTitaniteShard___ = 53900180, + [Annotation(Name = "[Irithyll Dungeon] Large Titanite Shard 53900180")] + IrithyllDungeonLargeTitaniteShard___ = 53900180, - [Annotation(Name = "[Irithyll Dungeon] Soul of a Weary Warrior 53900190")] - IrithyllDungeonSoulOfaWearyWarrior_ = 53900190, + [Annotation(Name = "[Irithyll Dungeon] Soul of a Weary Warrior 53900190")] + IrithyllDungeonSoulOfaWearyWarrior_ = 53900190, - [Annotation(Name = "[Irithyll Dungeon] Dung Pie 53900200")] - IrithyllDungeonDungPie = 53900200, + [Annotation(Name = "[Irithyll Dungeon] Dung Pie 53900200")] + IrithyllDungeonDungPie = 53900200, - [Annotation(Name = "[Irithyll Dungeon] Purging Stone 53900210")] - IrithyllDungeonPurgingStone = 53900210, + [Annotation(Name = "[Irithyll Dungeon] Purging Stone 53900210")] + IrithyllDungeonPurgingStone = 53900210, - [Annotation(Name = "[Irithyll Dungeon] Ember 53900220")] - IrithyllDungeonEmber = 53900220, + [Annotation(Name = "[Irithyll Dungeon] Ember 53900220")] + IrithyllDungeonEmber = 53900220, - [Annotation(Name = "[Irithyll Dungeon] Ember 53900230")] - IrithyllDungeonEmber_ = 53900230, + [Annotation(Name = "[Irithyll Dungeon] Ember 53900230")] + IrithyllDungeonEmber_ = 53900230, - [Annotation(Name = "[Irithyll Dungeon] Profaned Coal 53900240")] - IrithyllDungeonProfanedCoal = 53900240, + [Annotation(Name = "[Irithyll Dungeon] Profaned Coal 53900240")] + IrithyllDungeonProfanedCoal = 53900240, - [Annotation(Name = "[Irithyll Dungeon] Large Titanite Shard 53900250")] - IrithyllDungeonLargeTitaniteShard____ = 53900250, + [Annotation(Name = "[Irithyll Dungeon] Large Titanite Shard 53900250")] + IrithyllDungeonLargeTitaniteShard____ = 53900250, - [Annotation(Name = "[Irithyll Dungeon] Old Sorcerer Hat 53900260")] - IrithyllDungeonOldSorcererHat = 53900260, + [Annotation(Name = "[Irithyll Dungeon] Old Sorcerer Hat 53900260")] + IrithyllDungeonOldSorcererHat = 53900260, - [Annotation(Name = "[Irithyll Dungeon] Large Soul of a Weary Warrior 53900270")] - IrithyllDungeonLargeSoulOfaWearyWarrior = 53900270, + [Annotation(Name = "[Irithyll Dungeon] Large Soul of a Weary Warrior 53900270")] + IrithyllDungeonLargeSoulOfaWearyWarrior = 53900270, - [Annotation(Name = "[Profaned Capital] Rusted Coin 53900280")] - ProfanedCapitalRustedCoin = 53900280, + [Annotation(Name = "[Profaned Capital] Rusted Coin 53900280")] + ProfanedCapitalRustedCoin = 53900280, - [Annotation(Name = "[Profaned Capital] Rusted Gold Coin 53900290")] - ProfanedCapitalRustedGoldCoin = 53900290, + [Annotation(Name = "[Profaned Capital] Rusted Gold Coin 53900290")] + ProfanedCapitalRustedGoldCoin = 53900290, - [Annotation(Name = "[Profaned Capital] Purging Stone 53900300")] - ProfanedCapitalPurgingStone = 53900300, + [Annotation(Name = "[Profaned Capital] Purging Stone 53900300")] + ProfanedCapitalPurgingStone = 53900300, - [Annotation(Name = "[Profaned Capital] Cursebite Ring 53900310")] - ProfanedCapitalCursebiteRing = 53900310, + [Annotation(Name = "[Profaned Capital] Cursebite Ring 53900310")] + ProfanedCapitalCursebiteRing = 53900310, - [Annotation(Name = "[Profaned Capital] Poison Gem 53900320")] - ProfanedCapitalPoisonGem = 53900320, + [Annotation(Name = "[Profaned Capital] Poison Gem 53900320")] + ProfanedCapitalPoisonGem = 53900320, - [Annotation(Name = "[Profaned Capital] Shriving Stone 53900330")] - ProfanedCapitalShrivingStone = 53900330, + [Annotation(Name = "[Profaned Capital] Shriving Stone 53900330")] + ProfanedCapitalShrivingStone = 53900330, - [Annotation(Name = "[Profaned Capital] Poison Arrow 53900340")] - ProfanedCapitalPoisonArrow = 53900340, + [Annotation(Name = "[Profaned Capital] Poison Arrow 53900340")] + ProfanedCapitalPoisonArrow = 53900340, - [Annotation(Name = "[Profaned Capital] Rubbish 53900350")] - ProfanedCapitalRubbish = 53900350, + [Annotation(Name = "[Profaned Capital] Rubbish 53900350")] + ProfanedCapitalRubbish = 53900350, - [Annotation(Name = "[Profaned Capital] Onislayer Greatarrow 53900360")] - ProfanedCapitalOnislayerGreatarrow = 53900360, + [Annotation(Name = "[Profaned Capital] Onislayer Greatarrow 53900360")] + ProfanedCapitalOnislayerGreatarrow = 53900360, - [Annotation(Name = "[Profaned Capital] Large Soul of a Weary Warrior 53900370")] - ProfanedCapitalLargeSoulOfaWearyWarrior = 53900370, + [Annotation(Name = "[Profaned Capital] Large Soul of a Weary Warrior 53900370")] + ProfanedCapitalLargeSoulOfaWearyWarrior = 53900370, - [Annotation(Name = "[Profaned Capital] Rusted Coin 53900380")] - ProfanedCapitalRustedCoin_ = 53900380, + [Annotation(Name = "[Profaned Capital] Rusted Coin 53900380")] + ProfanedCapitalRustedCoin_ = 53900380, - [Annotation(Name = "[Profaned Capital] Rusted Coin 53900390")] - ProfanedCapitalRustedCoin__ = 53900390, + [Annotation(Name = "[Profaned Capital] Rusted Coin 53900390")] + ProfanedCapitalRustedCoin__ = 53900390, - [Annotation(Name = "[Profaned Capital] Covetous Gold Serpent Ring 53900400")] - ProfanedCapitalCovetousGoldSerpentRing = 53900400, + [Annotation(Name = "[Profaned Capital] Covetous Gold Serpent Ring 53900400")] + ProfanedCapitalCovetousGoldSerpentRing = 53900400, - [Annotation(Name = "[Profaned Capital] Blooming Purple Moss Clump 53900410")] - ProfanedCapitalBloomingPurpleMossClump = 53900410, + [Annotation(Name = "[Profaned Capital] Blooming Purple Moss Clump 53900410")] + ProfanedCapitalBloomingPurpleMossClump = 53900410, - [Annotation(Name = "[Profaned Capital] Wrath of the Gods 53900420")] - ProfanedCapitalWrathOfTheGods = 53900420, + [Annotation(Name = "[Profaned Capital] Wrath of the Gods 53900420")] + ProfanedCapitalWrathOfTheGods = 53900420, - [Annotation(Name = "[Irithyll Dungeon] Lightning Blade 53900430")] - IrithyllDungeonLightningBlade = 53900430, + [Annotation(Name = "[Irithyll Dungeon] Lightning Blade 53900430")] + IrithyllDungeonLightningBlade = 53900430, - [Annotation(Name = "[Irithyll Dungeon] Large Titanite Shard 53900440")] - IrithyllDungeonLargeTitaniteShard_____ = 53900440, + [Annotation(Name = "[Irithyll Dungeon] Large Titanite Shard 53900440")] + IrithyllDungeonLargeTitaniteShard_____ = 53900440, - [Annotation(Name = "[Irithyll Dungeon] Rusted Coin 53900450")] - IrithyllDungeonRustedCoin = 53900450, + [Annotation(Name = "[Irithyll Dungeon] Rusted Coin 53900450")] + IrithyllDungeonRustedCoin = 53900450, - [Annotation(Name = "[Irithyll Dungeon] Dusk Crown Ring 53900460")] - IrithyllDungeonDuskCrownRing = 53900460, + [Annotation(Name = "[Irithyll Dungeon] Dusk Crown Ring 53900460")] + IrithyllDungeonDuskCrownRing = 53900460, - [Annotation(Name = "[Irithyll Dungeon] Pickaxe 53900470")] - IrithyllDungeonPickaxe = 53900470, + [Annotation(Name = "[Irithyll Dungeon] Pickaxe 53900470")] + IrithyllDungeonPickaxe = 53900470, - [Annotation(Name = "[Irithyll Dungeon] Xanthous Ashes 53900480")] - IrithyllDungeonXanthousAshes = 53900480, + [Annotation(Name = "[Irithyll Dungeon] Xanthous Ashes 53900480")] + IrithyllDungeonXanthousAshes = 53900480, - [Annotation(Name = "[Irithyll Dungeon] Onislayer Greatbow 53900490")] - IrithyllDungeonOnislayerGreatbow = 53900490, + [Annotation(Name = "[Irithyll Dungeon] Onislayer Greatbow 53900490")] + IrithyllDungeonOnislayerGreatbow = 53900490, - [Annotation(Name = "[Irithyll Dungeon] Rusted Gold Coin 53900500")] - IrithyllDungeonRustedGoldCoin = 53900500, + [Annotation(Name = "[Irithyll Dungeon] Rusted Gold Coin 53900500")] + IrithyllDungeonRustedGoldCoin = 53900500, - [Annotation(Name = "[Irithyll Dungeon] Large Titanite Shard 53900510")] - IrithyllDungeonLargeTitaniteShard______ = 53900510, + [Annotation(Name = "[Irithyll Dungeon] Large Titanite Shard 53900510")] + IrithyllDungeonLargeTitaniteShard______ = 53900510, - [Annotation(Name = "[Irithyll Dungeon] Jailer's Key Ring 53900520")] - IrithyllDungeonJailersKeyRing = 53900520, + [Annotation(Name = "[Irithyll Dungeon] Jailer's Key Ring 53900520")] + IrithyllDungeonJailersKeyRing = 53900520, - [Annotation(Name = "[Irithyll Dungeon] Ember 53900590")] - IrithyllDungeonEmber__ = 53900590, + [Annotation(Name = "[Irithyll Dungeon] Ember 53900590")] + IrithyllDungeonEmber__ = 53900590, - [Annotation(Name = "[Irithyll Dungeon] Old Cell Key 53900610")] - IrithyllDungeonOldCellKey = 53900610, + [Annotation(Name = "[Irithyll Dungeon] Old Cell Key 53900610")] + IrithyllDungeonOldCellKey = 53900610, - [Annotation(Name = "[Irithyll Dungeon] Flame Stoneplate Ring+1 53900710")] - IrithyllDungeonFlameStoneplateRing1 = 53900710, + [Annotation(Name = "[Irithyll Dungeon] Flame Stoneplate Ring+1 53900710")] + IrithyllDungeonFlameStoneplateRing1 = 53900710, - [Annotation(Name = "[Irithyll Dungeon] Covetous Silver Serpent Ring+1 53900720")] - IrithyllDungeonCovetousSilverSerpentRing1 = 53900720, + [Annotation(Name = "[Irithyll Dungeon] Covetous Silver Serpent Ring+1 53900720")] + IrithyllDungeonCovetousSilverSerpentRing1 = 53900720, - [Annotation(Name = "[Irithyll Dungeon] Magic Stoneplate Ring+2 53900730")] - IrithyllDungeonMagicStoneplateRing2 = 53900730, + [Annotation(Name = "[Irithyll Dungeon] Magic Stoneplate Ring+2 53900730")] + IrithyllDungeonMagicStoneplateRing2 = 53900730, - [Annotation(Name = "[Irithyll Dungeon] Dragon Torso Stone 53900750")] - IrithyllDungeonDragonTorsoStone = 53900750, + [Annotation(Name = "[Irithyll Dungeon] Dragon Torso Stone 53900750")] + IrithyllDungeonDragonTorsoStone = 53900750, - [Annotation(Name = "[Profaned Capital] Court Sorcerer Hood 53900800")] - ProfanedCapitalCourtSorcererHood = 53900800, + [Annotation(Name = "[Profaned Capital] Court Sorcerer Hood 53900800")] + ProfanedCapitalCourtSorcererHood = 53900800, - [Annotation(Name = "[Profaned Capital] Storm Ruler 53900810")] - ProfanedCapitalStormRuler = 53900810, + [Annotation(Name = "[Profaned Capital] Storm Ruler 53900810")] + ProfanedCapitalStormRuler = 53900810, - [Annotation(Name = "[Irithyll Dungeon] Prisoner Chief's Ashes 53900820")] - IrithyllDungeonPrisonerChiefsAshes = 53900820, + [Annotation(Name = "[Irithyll Dungeon] Prisoner Chief's Ashes 53900820")] + IrithyllDungeonPrisonerChiefsAshes = 53900820, - [Annotation(Name = "[Irithyll Dungeon] Undead Bone Shard 53900900")] - IrithyllDungeonUndeadBoneShard = 53900900, + [Annotation(Name = "[Irithyll Dungeon] Undead Bone Shard 53900900")] + IrithyllDungeonUndeadBoneShard = 53900900, - [Annotation(Name = "[Cemetery of Ash] Broken Straight Sword 54000010")] - CemeteryOfAshBrokenStraightSword = 54000010, + [Annotation(Name = "[Cemetery of Ash] Broken Straight Sword 54000010")] + CemeteryOfAshBrokenStraightSword = 54000010, - [Annotation(Name = "[Cemetery of Ash] Soul of a Deserted Corpse 54000020")] - CemeteryOfAshSoulOfaDesertedCorpse = 54000020, + [Annotation(Name = "[Cemetery of Ash] Soul of a Deserted Corpse 54000020")] + CemeteryOfAshSoulOfaDesertedCorpse = 54000020, - [Annotation(Name = "[Cemetery of Ash] Firebomb 54000030")] - CemeteryOfAshFirebomb = 54000030, + [Annotation(Name = "[Cemetery of Ash] Firebomb 54000030")] + CemeteryOfAshFirebomb = 54000030, - [Annotation(Name = "[Cemetery of Ash] Titanite Shard 54000050")] - CemeteryOfAshTitaniteShard = 54000050, + [Annotation(Name = "[Cemetery of Ash] Titanite Shard 54000050")] + CemeteryOfAshTitaniteShard = 54000050, - [Annotation(Name = "[Cemetery of Ash] Homeward Bone 54000060")] - CemeteryOfAshHomewardBone = 54000060, + [Annotation(Name = "[Cemetery of Ash] Homeward Bone 54000060")] + CemeteryOfAshHomewardBone = 54000060, - [Annotation(Name = "[Cemetery of Ash] Ember 54000070")] - CemeteryOfAshEmber = 54000070, + [Annotation(Name = "[Cemetery of Ash] Ember 54000070")] + CemeteryOfAshEmber = 54000070, - [Annotation(Name = "[Cemetery of Ash] Soul of a Deserted Corpse 54000080")] - CemeteryOfAshSoulOfaDesertedCorpse_ = 54000080, + [Annotation(Name = "[Cemetery of Ash] Soul of a Deserted Corpse 54000080")] + CemeteryOfAshSoulOfaDesertedCorpse_ = 54000080, - [Annotation(Name = "[Cemetery of Ash] East-West Shield 54000090")] - CemeteryOfAshEastWestShield = 54000090, + [Annotation(Name = "[Cemetery of Ash] East-West Shield 54000090")] + CemeteryOfAshEastWestShield = 54000090, - [Annotation(Name = "[Cemetery of Ash] Homeward Bone 54000100")] - CemeteryOfAshHomewardBone_ = 54000100, + [Annotation(Name = "[Cemetery of Ash] Homeward Bone 54000100")] + CemeteryOfAshHomewardBone_ = 54000100, - [Annotation(Name = "[Cemetery of Ash] Soul of an Unknown Traveler 54000110")] - CemeteryOfAshSoulOfanUnknownTraveler = 54000110, + [Annotation(Name = "[Cemetery of Ash] Soul of an Unknown Traveler 54000110")] + CemeteryOfAshSoulOfanUnknownTraveler = 54000110, - [Annotation(Name = "[Cemetery of Ash] Ember 54000120")] - CemeteryOfAshEmber_ = 54000120, + [Annotation(Name = "[Cemetery of Ash] Ember 54000120")] + CemeteryOfAshEmber_ = 54000120, - [Annotation(Name = "[Cemetery of Ash] Sneering Mask 54000140")] - CemeteryOfAshSneeringMask = 54000140, + [Annotation(Name = "[Cemetery of Ash] Sneering Mask 54000140")] + CemeteryOfAshSneeringMask = 54000140, - [Annotation(Name = "[Cemetery of Ash] Homeward Bone 54000160")] - CemeteryOfAshHomewardBone__ = 54000160, + [Annotation(Name = "[Cemetery of Ash] Homeward Bone 54000160")] + CemeteryOfAshHomewardBone__ = 54000160, - [Annotation(Name = "[Cemetery of Ash] Estus Ring 54000170")] - CemeteryOfAshEstusRing = 54000170, + [Annotation(Name = "[Cemetery of Ash] Estus Ring 54000170")] + CemeteryOfAshEstusRing = 54000170, - [Annotation(Name = "[Cemetery of Ash] Estus Shard 54000180")] - CemeteryOfAshEstusShard = 54000180, + [Annotation(Name = "[Cemetery of Ash] Estus Shard 54000180")] + CemeteryOfAshEstusShard = 54000180, - [Annotation(Name = "[Cemetery of Ash] Fire Keeper Soul 54000190")] - CemeteryOfAshFireKeeperSoul = 54000190, + [Annotation(Name = "[Cemetery of Ash] Fire Keeper Soul 54000190")] + CemeteryOfAshFireKeeperSoul = 54000190, - [Annotation(Name = "[Cemetery of Ash] Shriving Stone 54000200")] - CemeteryOfAshShrivingStone = 54000200, + [Annotation(Name = "[Cemetery of Ash] Shriving Stone 54000200")] + CemeteryOfAshShrivingStone = 54000200, - [Annotation(Name = "[Cemetery of Ash] Titanite Chunk 54000220")] - CemeteryOfAshTitaniteChunk = 54000220, + [Annotation(Name = "[Cemetery of Ash] Titanite Chunk 54000220")] + CemeteryOfAshTitaniteChunk = 54000220, - [Annotation(Name = "[Cemetery of Ash] Soul of a Crestfallen Knight 54000230")] - CemeteryOfAshSoulOfaCrestfallenKnight = 54000230, + [Annotation(Name = "[Cemetery of Ash] Soul of a Crestfallen Knight 54000230")] + CemeteryOfAshSoulOfaCrestfallenKnight = 54000230, - [Annotation(Name = "[Cemetery of Ash] Titanite Chunk 54000240")] - CemeteryOfAshTitaniteChunk_ = 54000240, + [Annotation(Name = "[Cemetery of Ash] Titanite Chunk 54000240")] + CemeteryOfAshTitaniteChunk_ = 54000240, - [Annotation(Name = "[Cemetery of Ash] Ashen Estus Ring 54000250")] - CemeteryOfAshAshenEstusRing = 54000250, + [Annotation(Name = "[Cemetery of Ash] Ashen Estus Ring 54000250")] + CemeteryOfAshAshenEstusRing = 54000250, - [Annotation(Name = "[Cemetery of Ash] Black Knight Glaive 54000260")] - CemeteryOfAshBlackKnightGlaive = 54000260, + [Annotation(Name = "[Cemetery of Ash] Black Knight Glaive 54000260")] + CemeteryOfAshBlackKnightGlaive = 54000260, - [Annotation(Name = "[Cemetery of Ash] Eyes of a Fire Keeper 54000280")] - CemeteryOfAshEyesOfaFireKeeper = 54000280, + [Annotation(Name = "[Cemetery of Ash] Eyes of a Fire Keeper 54000280")] + CemeteryOfAshEyesOfaFireKeeper = 54000280, - [Annotation(Name = "[Cemetery of Ash] Soul of a Crestfallen Knight 54000290")] - CemeteryOfAshSoulOfaCrestfallenKnight_ = 54000290, + [Annotation(Name = "[Cemetery of Ash] Soul of a Crestfallen Knight 54000290")] + CemeteryOfAshSoulOfaCrestfallenKnight_ = 54000290, - [Annotation(Name = "[Cemetery of Ash] Blacksmith Hammer 54000300")] - CemeteryOfAshBlacksmithHammer = 54000300, + [Annotation(Name = "[Cemetery of Ash] Blacksmith Hammer 54000300")] + CemeteryOfAshBlacksmithHammer = 54000300, - [Annotation(Name = "[Cemetery of Ash] Chaos Blade 54000310")] - CemeteryOfAshChaosBlade = 54000310, + [Annotation(Name = "[Cemetery of Ash] Chaos Blade 54000310")] + CemeteryOfAshChaosBlade = 54000310, - [Annotation(Name = "[Cemetery of Ash] Hollow's Ashes 54000320")] - CemeteryOfAshHollowsAshes = 54000320, + [Annotation(Name = "[Cemetery of Ash] Hollow's Ashes 54000320")] + CemeteryOfAshHollowsAshes = 54000320, - [Annotation(Name = "[Cemetery of Ash] Hornet Ring 54000330")] - CemeteryOfAshHornetRing = 54000330, + [Annotation(Name = "[Cemetery of Ash] Hornet Ring 54000330")] + CemeteryOfAshHornetRing = 54000330, - [Annotation(Name = "[Cemetery of Ash] Coiled Sword Fragment 54000340")] - CemeteryOfAshCoiledSwordFragment = 54000340, + [Annotation(Name = "[Cemetery of Ash] Coiled Sword Fragment 54000340")] + CemeteryOfAshCoiledSwordFragment = 54000340, - [Annotation(Name = "[Cemetery of Ash] Fire Keeper Robe 54000350")] - CemeteryOfAshFireKeeperRobe = 54000350, + [Annotation(Name = "[Cemetery of Ash] Fire Keeper Robe 54000350")] + CemeteryOfAshFireKeeperRobe = 54000350, - [Annotation(Name = "[Cemetery of Ash] Life Ring+3 54000400")] - CemeteryOfAshLifeRing3 = 54000400, + [Annotation(Name = "[Cemetery of Ash] Life Ring+3 54000400")] + CemeteryOfAshLifeRing3 = 54000400, - [Annotation(Name = "[Cemetery of Ash] Ring of Steel Protection+1 54000410")] - CemeteryOfAshRingOfSteelProtection1 = 54000410, + [Annotation(Name = "[Cemetery of Ash] Ring of Steel Protection+1 54000410")] + CemeteryOfAshRingOfSteelProtection1 = 54000410, - [Annotation(Name = "[Cemetery of Ash] Speckled Stoneplate Ring+1 54000420")] - CemeteryOfAshSpeckledStoneplateRing1 = 54000420, + [Annotation(Name = "[Cemetery of Ash] Speckled Stoneplate Ring+1 54000420")] + CemeteryOfAshSpeckledStoneplateRing1 = 54000420, - [Annotation(Name = "[Cemetery of Ash] Wolf Ring+2 54000430")] - CemeteryOfAshWolfRing2 = 54000430, + [Annotation(Name = "[Cemetery of Ash] Wolf Ring+2 54000430")] + CemeteryOfAshWolfRing2 = 54000430, - [Annotation(Name = "Ashen Estus Flask 6600")] - AshenEstusFlask = 6600, + [Annotation(Name = "Ashen Estus Flask 6600")] + AshenEstusFlask = 6600, - [Annotation(Name = "[Cemetery of Ash] Covetous Silver Serpent Ring 54000700")] - CemeteryOfAshCovetousSilverSerpentRing = 54000700, + [Annotation(Name = "[Cemetery of Ash] Covetous Silver Serpent Ring 54000700")] + CemeteryOfAshCovetousSilverSerpentRing = 54000700, - [Annotation(Name = "[Ariandel] Rime-blue Moss Clump 54500000")] - AriandelRimeblueMossClump = 54500000, + [Annotation(Name = "[Ariandel] Rime-blue Moss Clump 54500000")] + AriandelRimeblueMossClump = 54500000, - [Annotation(Name = "[Ariandel] Poison Gem 54500010")] - AriandelPoisonGem = 54500010, + [Annotation(Name = "[Ariandel] Poison Gem 54500010")] + AriandelPoisonGem = 54500010, - [Annotation(Name = "[Ariandel] Large Soul of an Unknown Traveler 54500020")] - AriandelLargeSoulOfanUnknownTraveler = 54500020, + [Annotation(Name = "[Ariandel] Large Soul of an Unknown Traveler 54500020")] + AriandelLargeSoulOfanUnknownTraveler = 54500020, - [Annotation(Name = "[Ariandel] Follower Javelin 54500030")] - AriandelFollowerJavelin = 54500030, + [Annotation(Name = "[Ariandel] Follower Javelin 54500030")] + AriandelFollowerJavelin = 54500030, - [Annotation(Name = "[Ariandel] Large Soul of an Unknown Traveler 54500040")] - AriandelLargeSoulOfanUnknownTraveler_ = 54500040, + [Annotation(Name = "[Ariandel] Large Soul of an Unknown Traveler 54500040")] + AriandelLargeSoulOfanUnknownTraveler_ = 54500040, - [Annotation(Name = "[Ariandel] Homeward Bone 54500050")] - AriandelHomewardBone = 54500050, + [Annotation(Name = "[Ariandel] Homeward Bone 54500050")] + AriandelHomewardBone = 54500050, - [Annotation(Name = "[Ariandel] Blessed Gem 54500060")] - AriandelBlessedGem = 54500060, + [Annotation(Name = "[Ariandel] Blessed Gem 54500060")] + AriandelBlessedGem = 54500060, - [Annotation(Name = "[Ariandel] Captain's Ashes 54500070")] - AriandelCaptainsAshes = 54500070, + [Annotation(Name = "[Ariandel] Captain's Ashes 54500070")] + AriandelCaptainsAshes = 54500070, - [Annotation(Name = "[Ariandel] Black Firebomb 54500080")] - AriandelBlackFirebomb = 54500080, + [Annotation(Name = "[Ariandel] Black Firebomb 54500080")] + AriandelBlackFirebomb = 54500080, - [Annotation(Name = "[Ariandel] Shriving Stone 54500090")] - AriandelShrivingStone = 54500090, + [Annotation(Name = "[Ariandel] Shriving Stone 54500090")] + AriandelShrivingStone = 54500090, - [Annotation(Name = "[Ariandel] Millwood Greatbow 54500100")] - AriandelMillwoodGreatbow = 54500100, + [Annotation(Name = "[Ariandel] Millwood Greatbow 54500100")] + AriandelMillwoodGreatbow = 54500100, - [Annotation(Name = "[Ariandel] Large Soul of an Unknown Traveler 54500110")] - AriandelLargeSoulOfanUnknownTraveler__ = 54500110, + [Annotation(Name = "[Ariandel] Large Soul of an Unknown Traveler 54500110")] + AriandelLargeSoulOfanUnknownTraveler__ = 54500110, - [Annotation(Name = "[Ariandel] Rusted Coin 54500120")] - AriandelRustedCoin = 54500120, + [Annotation(Name = "[Ariandel] Rusted Coin 54500120")] + AriandelRustedCoin = 54500120, - [Annotation(Name = "[Ariandel] Large Titanite Shard 54500130")] - AriandelLargeTitaniteShard = 54500130, + [Annotation(Name = "[Ariandel] Large Titanite Shard 54500130")] + AriandelLargeTitaniteShard = 54500130, - [Annotation(Name = "[Ariandel] Large Soul of an Unknown Traveler 54500140")] - AriandelLargeSoulOfanUnknownTraveler___ = 54500140, + [Annotation(Name = "[Ariandel] Large Soul of an Unknown Traveler 54500140")] + AriandelLargeSoulOfanUnknownTraveler___ = 54500140, - [Annotation(Name = "[Ariandel] Crow Quills 54500150")] - AriandelCrowQuills = 54500150, + [Annotation(Name = "[Ariandel] Crow Quills 54500150")] + AriandelCrowQuills = 54500150, - [Annotation(Name = "[Ariandel] Simple Gem 54500160")] - AriandelSimpleGem = 54500160, + [Annotation(Name = "[Ariandel] Simple Gem 54500160")] + AriandelSimpleGem = 54500160, - [Annotation(Name = "[Ariandel] Large Soul of an Unknown Traveler 54500170")] - AriandelLargeSoulOfanUnknownTraveler____ = 54500170, + [Annotation(Name = "[Ariandel] Large Soul of an Unknown Traveler 54500170")] + AriandelLargeSoulOfanUnknownTraveler____ = 54500170, - [Annotation(Name = "[Ariandel] Slave Knight Hood 54500180")] - AriandelSlaveKnightHood = 54500180, + [Annotation(Name = "[Ariandel] Slave Knight Hood 54500180")] + AriandelSlaveKnightHood = 54500180, - [Annotation(Name = "[Ariandel] Ember 54500190")] - AriandelEmber = 54500190, + [Annotation(Name = "[Ariandel] Ember 54500190")] + AriandelEmber = 54500190, - [Annotation(Name = "[Ariandel] Dark Gem 54500200")] - AriandelDarkGem = 54500200, + [Annotation(Name = "[Ariandel] Dark Gem 54500200")] + AriandelDarkGem = 54500200, - [Annotation(Name = "[Ariandel] Large Soul of an Unknown Traveler 54500220")] - AriandelLargeSoulOfanUnknownTraveler_____ = 54500220, + [Annotation(Name = "[Ariandel] Large Soul of an Unknown Traveler 54500220")] + AriandelLargeSoulOfanUnknownTraveler_____ = 54500220, - [Annotation(Name = "[Ariandel] Large Soul of an Unknown Traveler 54500230")] - AriandelLargeSoulOfanUnknownTraveler______ = 54500230, + [Annotation(Name = "[Ariandel] Large Soul of an Unknown Traveler 54500230")] + AriandelLargeSoulOfanUnknownTraveler______ = 54500230, - [Annotation(Name = "[Ariandel] Rusted Gold Coin 54500240")] - AriandelRustedGoldCoin = 54500240, + [Annotation(Name = "[Ariandel] Rusted Gold Coin 54500240")] + AriandelRustedGoldCoin = 54500240, - [Annotation(Name = "[Ariandel] Soul of a Crestfallen Knight 54500250")] - AriandelSoulOfaCrestfallenKnight = 54500250, + [Annotation(Name = "[Ariandel] Soul of a Crestfallen Knight 54500250")] + AriandelSoulOfaCrestfallenKnight = 54500250, - [Annotation(Name = "[Ariandel] Way of White Corona 54500260")] - AriandelWayOfWhiteCorona = 54500260, + [Annotation(Name = "[Ariandel] Way of White Corona 54500260")] + AriandelWayOfWhiteCorona = 54500260, - [Annotation(Name = "[Ariandel] Rusted Coin 54500270")] - AriandelRustedCoin_ = 54500270, + [Annotation(Name = "[Ariandel] Rusted Coin 54500270")] + AriandelRustedCoin_ = 54500270, - [Annotation(Name = "[Ariandel] Young White Branch 54500280")] - AriandelYoungWhiteBranch = 54500280, + [Annotation(Name = "[Ariandel] Young White Branch 54500280")] + AriandelYoungWhiteBranch = 54500280, - [Annotation(Name = "[Ariandel] Budding Green Blossom 54500290")] - AriandelBuddingGreenBlossom = 54500290, + [Annotation(Name = "[Ariandel] Budding Green Blossom 54500290")] + AriandelBuddingGreenBlossom = 54500290, - [Annotation(Name = "[Ariandel] Crow Talons 54500300")] - AriandelCrowTalons = 54500300, + [Annotation(Name = "[Ariandel] Crow Talons 54500300")] + AriandelCrowTalons = 54500300, - [Annotation(Name = "[Ariandel] Prism Stone 54500310")] - AriandelPrismStone = 54500310, + [Annotation(Name = "[Ariandel] Prism Stone 54500310")] + AriandelPrismStone = 54500310, - [Annotation(Name = "[Ariandel] Titanite Chunk 54500320")] - AriandelTitaniteChunk = 54500320, + [Annotation(Name = "[Ariandel] Titanite Chunk 54500320")] + AriandelTitaniteChunk = 54500320, - [Annotation(Name = "[Ariandel] Titanite Chunk 54500330")] - AriandelTitaniteChunk_ = 54500330, + [Annotation(Name = "[Ariandel] Titanite Chunk 54500330")] + AriandelTitaniteChunk_ = 54500330, - [Annotation(Name = "[Ariandel] Follower Shield 54500340")] - AriandelFollowerShield = 54500340, + [Annotation(Name = "[Ariandel] Follower Shield 54500340")] + AriandelFollowerShield = 54500340, - [Annotation(Name = "[Ariandel] Large Titanite Shard 54500350")] - AriandelLargeTitaniteShard_ = 54500350, + [Annotation(Name = "[Ariandel] Large Titanite Shard 54500350")] + AriandelLargeTitaniteShard_ = 54500350, - [Annotation(Name = "[Ariandel] Quakestone Hammer 54500360")] - AriandelQuakestoneHammer = 54500360, + [Annotation(Name = "[Ariandel] Quakestone Hammer 54500360")] + AriandelQuakestoneHammer = 54500360, - [Annotation(Name = "[Ariandel] Ember 54500370")] - AriandelEmber_ = 54500370, + [Annotation(Name = "[Ariandel] Ember 54500370")] + AriandelEmber_ = 54500370, - [Annotation(Name = "[Ariandel] Large Titanite Shard 54500380")] - AriandelLargeTitaniteShard__ = 54500380, + [Annotation(Name = "[Ariandel] Large Titanite Shard 54500380")] + AriandelLargeTitaniteShard__ = 54500380, - [Annotation(Name = "[Ariandel] Soul of a Crestfallen Knight 54500390")] - AriandelSoulOfaCrestfallenKnight_ = 54500390, + [Annotation(Name = "[Ariandel] Soul of a Crestfallen Knight 54500390")] + AriandelSoulOfaCrestfallenKnight_ = 54500390, - [Annotation(Name = "[Ariandel] Soul of a Crestfallen Knight 54500400")] - AriandelSoulOfaCrestfallenKnight__ = 54500400, + [Annotation(Name = "[Ariandel] Soul of a Crestfallen Knight 54500400")] + AriandelSoulOfaCrestfallenKnight__ = 54500400, - [Annotation(Name = "[Ariandel] Large Soul of a Crestfallen Knight 54500410")] - AriandelLargeSoulOfaCrestfallenKnight = 54500410, + [Annotation(Name = "[Ariandel] Large Soul of a Crestfallen Knight 54500410")] + AriandelLargeSoulOfaCrestfallenKnight = 54500410, - [Annotation(Name = "[Ariandel] Earth Seeker 54500420")] - AriandelEarthSeeker = 54500420, + [Annotation(Name = "[Ariandel] Earth Seeker 54500420")] + AriandelEarthSeeker = 54500420, - [Annotation(Name = "[Ariandel] Follower Torch 54500430")] - AriandelFollowerTorch = 54500430, + [Annotation(Name = "[Ariandel] Follower Torch 54500430")] + AriandelFollowerTorch = 54500430, - [Annotation(Name = "[Ariandel] Dung Pie 54500460")] - AriandelDungPie = 54500460, + [Annotation(Name = "[Ariandel] Dung Pie 54500460")] + AriandelDungPie = 54500460, - [Annotation(Name = "[Ariandel] Vilhelm's Helm 54500470")] - AriandelVilhelmsHelm = 54500470, + [Annotation(Name = "[Ariandel] Vilhelm's Helm 54500470")] + AriandelVilhelmsHelm = 54500470, - [Annotation(Name = "[Ariandel] Blood Gem 54500480")] - AriandelBloodGem = 54500480, + [Annotation(Name = "[Ariandel] Blood Gem 54500480")] + AriandelBloodGem = 54500480, - [Annotation(Name = "[Ariandel] Hollow Gem 54500490")] - AriandelHollowGem = 54500490, + [Annotation(Name = "[Ariandel] Hollow Gem 54500490")] + AriandelHollowGem = 54500490, - [Annotation(Name = "[Ariandel] Rime-blue Moss Clump 54500530")] - AriandelRimeblueMossClump_ = 54500530, + [Annotation(Name = "[Ariandel] Rime-blue Moss Clump 54500530")] + AriandelRimeblueMossClump_ = 54500530, - [Annotation(Name = "[Ariandel] Follower Sabre 54500540")] - AriandelFollowerSabre = 54500540, + [Annotation(Name = "[Ariandel] Follower Sabre 54500540")] + AriandelFollowerSabre = 54500540, - [Annotation(Name = "[Ariandel] Ember 54500550")] - AriandelEmber__ = 54500550, + [Annotation(Name = "[Ariandel] Ember 54500550")] + AriandelEmber__ = 54500550, - [Annotation(Name = "[Ariandel] Snap Freeze 54500560")] - AriandelSnapFreeze = 54500560, + [Annotation(Name = "[Ariandel] Snap Freeze 54500560")] + AriandelSnapFreeze = 54500560, - [Annotation(Name = "[Ariandel] Pyromancer's Parting Flame 54500570")] - AriandelPyromancersPartingFlame = 54500570, + [Annotation(Name = "[Ariandel] Pyromancer's Parting Flame 54500570")] + AriandelPyromancersPartingFlame = 54500570, - [Annotation(Name = "[Ariandel] Rime-blue Moss Clump 54500600")] - AriandelRimeblueMossClump__ = 54500600, + [Annotation(Name = "[Ariandel] Rime-blue Moss Clump 54500600")] + AriandelRimeblueMossClump__ = 54500600, - [Annotation(Name = "[Ariandel] Large Soul of an Unknown Traveler 54500610")] - AriandelLargeSoulOfanUnknownTraveler_______ = 54500610, + [Annotation(Name = "[Ariandel] Large Soul of an Unknown Traveler 54500610")] + AriandelLargeSoulOfanUnknownTraveler_______ = 54500610, - [Annotation(Name = "[Ariandel] Ember 54500620")] - AriandelEmber___ = 54500620, + [Annotation(Name = "[Ariandel] Ember 54500620")] + AriandelEmber___ = 54500620, - [Annotation(Name = "[Ariandel] Frozen Weapon 54500630")] - AriandelFrozenWeapon = 54500630, + [Annotation(Name = "[Ariandel] Frozen Weapon 54500630")] + AriandelFrozenWeapon = 54500630, - [Annotation(Name = "[Ariandel] Titanite Slab 54500640")] - AriandelTitaniteSlab = 54500640, + [Annotation(Name = "[Ariandel] Titanite Slab 54500640")] + AriandelTitaniteSlab = 54500640, - [Annotation(Name = "[Ariandel] Homeward Bone 54500650")] - AriandelHomewardBone_ = 54500650, + [Annotation(Name = "[Ariandel] Homeward Bone 54500650")] + AriandelHomewardBone_ = 54500650, - [Annotation(Name = "[Ariandel] Large Soul of an Unknown Traveler 54500660")] - AriandelLargeSoulOfanUnknownTraveler________ = 54500660, + [Annotation(Name = "[Ariandel] Large Soul of an Unknown Traveler 54500660")] + AriandelLargeSoulOfanUnknownTraveler________ = 54500660, - [Annotation(Name = "[Ariandel] Large Soul of a Weary Warrior 54500670")] - AriandelLargeSoulOfaWearyWarrior = 54500670, + [Annotation(Name = "[Ariandel] Large Soul of a Weary Warrior 54500670")] + AriandelLargeSoulOfaWearyWarrior = 54500670, - [Annotation(Name = "[Ariandel] Large Soul of an Unknown Traveler 54500680")] - AriandelLargeSoulOfanUnknownTraveler_________ = 54500680, + [Annotation(Name = "[Ariandel] Large Soul of an Unknown Traveler 54500680")] + AriandelLargeSoulOfanUnknownTraveler_________ = 54500680, - [Annotation(Name = "[Ariandel] Heavy Gem 54500690")] - AriandelHeavyGem = 54500690, + [Annotation(Name = "[Ariandel] Heavy Gem 54500690")] + AriandelHeavyGem = 54500690, - [Annotation(Name = "[Ariandel] Large Soul of a Weary Warrior 54500800")] - AriandelLargeSoulOfaWearyWarrior_ = 54500800, + [Annotation(Name = "[Ariandel] Large Soul of a Weary Warrior 54500800")] + AriandelLargeSoulOfaWearyWarrior_ = 54500800, - [Annotation(Name = "[Ariandel] Millwood Battle Axe 54500810")] - AriandelMillwoodBattleAxe = 54500810, + [Annotation(Name = "[Ariandel] Millwood Battle Axe 54500810")] + AriandelMillwoodBattleAxe = 54500810, - [Annotation(Name = "[Ariandel] Ethereal Oak Shield 54500820")] - AriandelEtherealOakShield = 54500820, + [Annotation(Name = "[Ariandel] Ethereal Oak Shield 54500820")] + AriandelEtherealOakShield = 54500820, - [Annotation(Name = "[Ariandel] Soul of a Weary Warrior 54500830")] - AriandelSoulOfaWearyWarrior = 54500830, + [Annotation(Name = "[Ariandel] Soul of a Weary Warrior 54500830")] + AriandelSoulOfaWearyWarrior = 54500830, - [Annotation(Name = "[Dreg Heap] Ember 55000000")] - DregHeapEmber = 55000000, + [Annotation(Name = "[Dreg Heap] Ember 55000000")] + DregHeapEmber = 55000000, - [Annotation(Name = "[Dreg Heap] Soul of a Weary Warrior 55000010")] - DregHeapSoulOfaWearyWarrior = 55000010, + [Annotation(Name = "[Dreg Heap] Soul of a Weary Warrior 55000010")] + DregHeapSoulOfaWearyWarrior = 55000010, - [Annotation(Name = "[Dreg Heap] Titanite Chunk 55000020")] - DregHeapTitaniteChunk = 55000020, + [Annotation(Name = "[Dreg Heap] Titanite Chunk 55000020")] + DregHeapTitaniteChunk = 55000020, - [Annotation(Name = "[Dreg Heap] Aquamarine Dagger 55000030")] - DregHeapAquamarineDagger = 55000030, + [Annotation(Name = "[Dreg Heap] Aquamarine Dagger 55000030")] + DregHeapAquamarineDagger = 55000030, - [Annotation(Name = "[Dreg Heap] Twinkling Titanite 55000040")] - DregHeapTwinklingTitanite = 55000040, + [Annotation(Name = "[Dreg Heap] Twinkling Titanite 55000040")] + DregHeapTwinklingTitanite = 55000040, - [Annotation(Name = "[Dreg Heap] Murky Hand Scythe 55000050")] - DregHeapMurkyHandScythe = 55000050, + [Annotation(Name = "[Dreg Heap] Murky Hand Scythe 55000050")] + DregHeapMurkyHandScythe = 55000050, - [Annotation(Name = "[Dreg Heap] Divine Blessing 55000060")] - DregHeapDivineBlessing = 55000060, + [Annotation(Name = "[Dreg Heap] Divine Blessing 55000060")] + DregHeapDivineBlessing = 55000060, - [Annotation(Name = "[Dreg Heap] Ring of Steel Protection+3 55000070")] - DregHeapRingOfSteelProtection3 = 55000070, + [Annotation(Name = "[Dreg Heap] Ring of Steel Protection+3 55000070")] + DregHeapRingOfSteelProtection3 = 55000070, - [Annotation(Name = "[Dreg Heap] Soul of a Crestfallen Knight 55000080")] - DregHeapSoulOfaCrestfallenKnight = 55000080, + [Annotation(Name = "[Dreg Heap] Soul of a Crestfallen Knight 55000080")] + DregHeapSoulOfaCrestfallenKnight = 55000080, - [Annotation(Name = "[Dreg Heap] Rusted Coin 55000090")] - DregHeapRustedCoin = 55000090, + [Annotation(Name = "[Dreg Heap] Rusted Coin 55000090")] + DregHeapRustedCoin = 55000090, - [Annotation(Name = "[Dreg Heap] Titanite Chunk 55000100")] - DregHeapTitaniteChunk_ = 55000100, + [Annotation(Name = "[Dreg Heap] Titanite Chunk 55000100")] + DregHeapTitaniteChunk_ = 55000100, - [Annotation(Name = "[Dreg Heap] Murky Longstaff 55000110")] - DregHeapMurkyLongstaff = 55000110, + [Annotation(Name = "[Dreg Heap] Murky Longstaff 55000110")] + DregHeapMurkyLongstaff = 55000110, - [Annotation(Name = "[Dreg Heap] Ember 55000120")] - DregHeapEmber_ = 55000120, + [Annotation(Name = "[Dreg Heap] Ember 55000120")] + DregHeapEmber_ = 55000120, - [Annotation(Name = "[Dreg Heap] Great Soul Dregs 55000130")] - DregHeapGreatSoulDregs = 55000130, + [Annotation(Name = "[Dreg Heap] Great Soul Dregs 55000130")] + DregHeapGreatSoulDregs = 55000130, - [Annotation(Name = "[Dreg Heap] Covetous Silver Serpent Ring+3 55000140")] - DregHeapCovetousSilverSerpentRing3 = 55000140, + [Annotation(Name = "[Dreg Heap] Covetous Silver Serpent Ring+3 55000140")] + DregHeapCovetousSilverSerpentRing3 = 55000140, - [Annotation(Name = "[Dreg Heap] Fading Soul 55000150")] - DregHeapFadingSoul = 55000150, + [Annotation(Name = "[Dreg Heap] Fading Soul 55000150")] + DregHeapFadingSoul = 55000150, - [Annotation(Name = "[Dreg Heap] Titanite Chunk 55000160")] - DregHeapTitaniteChunk__ = 55000160, + [Annotation(Name = "[Dreg Heap] Titanite Chunk 55000160")] + DregHeapTitaniteChunk__ = 55000160, - [Annotation(Name = "[Dreg Heap] Homeward Bone 55000170")] - DregHeapHomewardBone = 55000170, + [Annotation(Name = "[Dreg Heap] Homeward Bone 55000170")] + DregHeapHomewardBone = 55000170, - [Annotation(Name = "[Dreg Heap] Fading Soul 55000180")] - DregHeapFadingSoul_ = 55000180, + [Annotation(Name = "[Dreg Heap] Fading Soul 55000180")] + DregHeapFadingSoul_ = 55000180, - [Annotation(Name = "[Dreg Heap] Lightning Urn 55000190")] - DregHeapLightningUrn = 55000190, + [Annotation(Name = "[Dreg Heap] Lightning Urn 55000190")] + DregHeapLightningUrn = 55000190, - [Annotation(Name = "[Dreg Heap] Projected Heal 55000200")] - DregHeapProjectedHeal = 55000200, + [Annotation(Name = "[Dreg Heap] Projected Heal 55000200")] + DregHeapProjectedHeal = 55000200, - [Annotation(Name = "[Dreg Heap] Large Soul of a Weary Warrior 55000210")] - DregHeapLargeSoulOfaWearyWarrior = 55000210, + [Annotation(Name = "[Dreg Heap] Large Soul of a Weary Warrior 55000210")] + DregHeapLargeSoulOfaWearyWarrior = 55000210, - [Annotation(Name = "[Dreg Heap] Lothric War Banner 55000220")] - DregHeapLothricWarBanner = 55000220, + [Annotation(Name = "[Dreg Heap] Lothric War Banner 55000220")] + DregHeapLothricWarBanner = 55000220, - [Annotation(Name = "[Dreg Heap] Titanite Scale 55000230")] - DregHeapTitaniteScale = 55000230, + [Annotation(Name = "[Dreg Heap] Titanite Scale 55000230")] + DregHeapTitaniteScale = 55000230, - [Annotation(Name = "[Dreg Heap] Fading Soul 55000240")] - DregHeapFadingSoul__ = 55000240, + [Annotation(Name = "[Dreg Heap] Fading Soul 55000240")] + DregHeapFadingSoul__ = 55000240, - [Annotation(Name = "[Dreg Heap] Fading Soul 55000250")] - DregHeapFadingSoul___ = 55000250, + [Annotation(Name = "[Dreg Heap] Fading Soul 55000250")] + DregHeapFadingSoul___ = 55000250, - [Annotation(Name = "[Dreg Heap] Fading Soul 55000260")] - DregHeapFadingSoul____ = 55000260, + [Annotation(Name = "[Dreg Heap] Fading Soul 55000260")] + DregHeapFadingSoul____ = 55000260, - [Annotation(Name = "[Dreg Heap] Fading Soul 55000270")] - DregHeapFadingSoul_____ = 55000270, + [Annotation(Name = "[Dreg Heap] Fading Soul 55000270")] + DregHeapFadingSoul_____ = 55000270, - [Annotation(Name = "[Dreg Heap] Fading Soul 55000280")] - DregHeapFadingSoul______ = 55000280, + [Annotation(Name = "[Dreg Heap] Fading Soul 55000280")] + DregHeapFadingSoul______ = 55000280, - [Annotation(Name = "[Dreg Heap] Fading Soul 55000290")] - DregHeapFadingSoul_______ = 55000290, + [Annotation(Name = "[Dreg Heap] Fading Soul 55000290")] + DregHeapFadingSoul_______ = 55000290, - [Annotation(Name = "[Dreg Heap] Black Firebomb 55000300")] - DregHeapBlackFirebomb = 55000300, + [Annotation(Name = "[Dreg Heap] Black Firebomb 55000300")] + DregHeapBlackFirebomb = 55000300, - [Annotation(Name = "[Dreg Heap] Titanite Chunk 55000310")] - DregHeapTitaniteChunk___ = 55000310, + [Annotation(Name = "[Dreg Heap] Titanite Chunk 55000310")] + DregHeapTitaniteChunk___ = 55000310, - [Annotation(Name = "[Dreg Heap] Twinkling Titanite 55000320")] - DregHeapTwinklingTitanite_ = 55000320, + [Annotation(Name = "[Dreg Heap] Twinkling Titanite 55000320")] + DregHeapTwinklingTitanite_ = 55000320, - [Annotation(Name = "[Dreg Heap] Desert Pyromancer Garb 55000330")] - DregHeapDesertPyromancerGarb = 55000330, + [Annotation(Name = "[Dreg Heap] Desert Pyromancer Garb 55000330")] + DregHeapDesertPyromancerGarb = 55000330, - [Annotation(Name = "[Dreg Heap] Titanite Chunk 55000340")] - DregHeapTitaniteChunk____ = 55000340, + [Annotation(Name = "[Dreg Heap] Titanite Chunk 55000340")] + DregHeapTitaniteChunk____ = 55000340, - [Annotation(Name = "[Dreg Heap] Giant Door Shield 55000350")] - DregHeapGiantDoorShield = 55000350, + [Annotation(Name = "[Dreg Heap] Giant Door Shield 55000350")] + DregHeapGiantDoorShield = 55000350, - [Annotation(Name = "[Dreg Heap] Ember 55000360")] - DregHeapEmber__ = 55000360, + [Annotation(Name = "[Dreg Heap] Ember 55000360")] + DregHeapEmber__ = 55000360, - [Annotation(Name = "[Dreg Heap] Desert Pyromancer Hood 55000370")] - DregHeapDesertPyromancerHood = 55000370, + [Annotation(Name = "[Dreg Heap] Desert Pyromancer Hood 55000370")] + DregHeapDesertPyromancerHood = 55000370, - [Annotation(Name = "[Dreg Heap] Desert Pyromancer Gloves 55000380")] - DregHeapDesertPyromancerGloves = 55000380, + [Annotation(Name = "[Dreg Heap] Desert Pyromancer Gloves 55000380")] + DregHeapDesertPyromancerGloves = 55000380, - [Annotation(Name = "[Dreg Heap] Desert Pyromancer Skirt 55000390")] - DregHeapDesertPyromancerSkirt = 55000390, + [Annotation(Name = "[Dreg Heap] Desert Pyromancer Skirt 55000390")] + DregHeapDesertPyromancerSkirt = 55000390, - [Annotation(Name = "[Dreg Heap] Titanite Scale 55000400")] - DregHeapTitaniteScale_ = 55000400, + [Annotation(Name = "[Dreg Heap] Titanite Scale 55000400")] + DregHeapTitaniteScale_ = 55000400, - [Annotation(Name = "[Dreg Heap] Purple Moss Clump 55000410")] - DregHeapPurpleMossClump = 55000410, + [Annotation(Name = "[Dreg Heap] Purple Moss Clump 55000410")] + DregHeapPurpleMossClump = 55000410, - [Annotation(Name = "[Dreg Heap] Ring of Favor+3 55000420")] - DregHeapRingOfFavor3 = 55000420, + [Annotation(Name = "[Dreg Heap] Ring of Favor+3 55000420")] + DregHeapRingOfFavor3 = 55000420, - [Annotation(Name = "[Dreg Heap] Titanite Chunk 55000430")] - DregHeapTitaniteChunk_____ = 55000430, + [Annotation(Name = "[Dreg Heap] Titanite Chunk 55000430")] + DregHeapTitaniteChunk_____ = 55000430, - [Annotation(Name = "[Dreg Heap] Large Soul of a Weary Warrior 55000440")] - DregHeapLargeSoulOfaWearyWarrior_ = 55000440, + [Annotation(Name = "[Dreg Heap] Large Soul of a Weary Warrior 55000440")] + DregHeapLargeSoulOfaWearyWarrior_ = 55000440, - [Annotation(Name = "[Dreg Heap] Titanite Slab 55000450")] - DregHeapTitaniteSlab = 55000450, + [Annotation(Name = "[Dreg Heap] Titanite Slab 55000450")] + DregHeapTitaniteSlab = 55000450, - [Annotation(Name = "[Dreg Heap] Titanite Chunk 55000460")] - DregHeapTitaniteChunk______ = 55000460, + [Annotation(Name = "[Dreg Heap] Titanite Chunk 55000460")] + DregHeapTitaniteChunk______ = 55000460, - [Annotation(Name = "[Dreg Heap] Loincloth 55000470")] - DregHeapLoincloth = 55000470, + [Annotation(Name = "[Dreg Heap] Loincloth 55000470")] + DregHeapLoincloth = 55000470, - [Annotation(Name = "[Dreg Heap] Titanite Chunk 55000480")] - DregHeapTitaniteChunk_______ = 55000480, + [Annotation(Name = "[Dreg Heap] Titanite Chunk 55000480")] + DregHeapTitaniteChunk_______ = 55000480, - [Annotation(Name = "[Dreg Heap] Large Soul of a Weary Warrior 55000490")] - DregHeapLargeSoulOfaWearyWarrior__ = 55000490, + [Annotation(Name = "[Dreg Heap] Large Soul of a Weary Warrior 55000490")] + DregHeapLargeSoulOfaWearyWarrior__ = 55000490, - [Annotation(Name = "[Dreg Heap] Harald Curved Greatsword 55000500")] - DregHeapHaraldCurvedGreatsword = 55000500, + [Annotation(Name = "[Dreg Heap] Harald Curved Greatsword 55000500")] + DregHeapHaraldCurvedGreatsword = 55000500, - [Annotation(Name = "[Dreg Heap] Homeward Bone 55000510")] - DregHeapHomewardBone_ = 55000510, + [Annotation(Name = "[Dreg Heap] Homeward Bone 55000510")] + DregHeapHomewardBone_ = 55000510, - [Annotation(Name = "[Dreg Heap] Prism Stone 55000520")] - DregHeapPrismStone = 55000520, + [Annotation(Name = "[Dreg Heap] Prism Stone 55000520")] + DregHeapPrismStone = 55000520, - [Annotation(Name = "[Dreg Heap] Desert Pyromancer Hood 55000530")] - DregHeapDesertPyromancerHood_ = 55000530, + [Annotation(Name = "[Dreg Heap] Desert Pyromancer Hood 55000530")] + DregHeapDesertPyromancerHood_ = 55000530, - [Annotation(Name = "[Dreg Heap] Twinkling Titanite 55000540")] - DregHeapTwinklingTitanite__ = 55000540, + [Annotation(Name = "[Dreg Heap] Twinkling Titanite 55000540")] + DregHeapTwinklingTitanite__ = 55000540, - [Annotation(Name = "[Dreg Heap] Divine Blessing 55000550")] - DregHeapDivineBlessing_ = 55000550, + [Annotation(Name = "[Dreg Heap] Divine Blessing 55000550")] + DregHeapDivineBlessing_ = 55000550, - [Annotation(Name = "[Dreg Heap] Ember 55000560")] - DregHeapEmber___ = 55000560, + [Annotation(Name = "[Dreg Heap] Ember 55000560")] + DregHeapEmber___ = 55000560, - [Annotation(Name = "[Dreg Heap] Small Envoy Banner 55000600")] - DregHeapSmallEnvoyBanner = 55000600, + [Annotation(Name = "[Dreg Heap] Small Envoy Banner 55000600")] + DregHeapSmallEnvoyBanner = 55000600, - [Annotation(Name = "[Dreg Heap] Titanite Scale 55100000")] - DregHeapTitaniteScale__ = 55100000, + [Annotation(Name = "[Dreg Heap] Titanite Scale 55100000")] + DregHeapTitaniteScale__ = 55100000, - [Annotation(Name = "[Ringed City] Ruin Helm 55100010")] - RingedCityRuinHelm = 55100010, + [Annotation(Name = "[Ringed City] Ruin Helm 55100010")] + RingedCityRuinHelm = 55100010, - [Annotation(Name = "[Ringed City] Budding Green Blossom 55100020")] - RingedCityBuddingGreenBlossom = 55100020, + [Annotation(Name = "[Ringed City] Budding Green Blossom 55100020")] + RingedCityBuddingGreenBlossom = 55100020, - [Annotation(Name = "[Ringed City] Titanite Chunk 55100030")] - RingedCityTitaniteChunk = 55100030, + [Annotation(Name = "[Ringed City] Titanite Chunk 55100030")] + RingedCityTitaniteChunk = 55100030, - [Annotation(Name = "[Ringed City] Ember 55100040")] - RingedCityEmber = 55100040, + [Annotation(Name = "[Ringed City] Ember 55100040")] + RingedCityEmber = 55100040, - [Annotation(Name = "[Ringed City] Budding Green Blossom 55100050")] - RingedCityBuddingGreenBlossom_ = 55100050, + [Annotation(Name = "[Ringed City] Budding Green Blossom 55100050")] + RingedCityBuddingGreenBlossom_ = 55100050, - [Annotation(Name = "[Ringed City] Hidden Blessing 55100060")] - RingedCityHiddenBlessing = 55100060, + [Annotation(Name = "[Ringed City] Hidden Blessing 55100060")] + RingedCityHiddenBlessing = 55100060, - [Annotation(Name = "[Ringed City] Soul of a Crestfallen Knight 55100070")] - RingedCitySoulOfaCrestfallenKnight = 55100070, + [Annotation(Name = "[Ringed City] Soul of a Crestfallen Knight 55100070")] + RingedCitySoulOfaCrestfallenKnight = 55100070, - [Annotation(Name = "[Ringed City] Large Soul of a Weary Warrior 55100080")] - RingedCityLargeSoulOfaWearyWarrior = 55100080, + [Annotation(Name = "[Ringed City] Large Soul of a Weary Warrior 55100080")] + RingedCityLargeSoulOfaWearyWarrior = 55100080, - [Annotation(Name = "[Ringed City] Fading Soul 55100090")] - RingedCityFadingSoul = 55100090, + [Annotation(Name = "[Ringed City] Fading Soul 55100090")] + RingedCityFadingSoul = 55100090, - [Annotation(Name = "[Ringed City] Soul of a Crestfallen Knight 55100100")] - RingedCitySoulOfaCrestfallenKnight_ = 55100100, + [Annotation(Name = "[Ringed City] Soul of a Crestfallen Knight 55100100")] + RingedCitySoulOfaCrestfallenKnight_ = 55100100, - [Annotation(Name = "[Ringed City] Ember 55100110")] - RingedCityEmber_ = 55100110, + [Annotation(Name = "[Ringed City] Ember 55100110")] + RingedCityEmber_ = 55100110, - [Annotation(Name = "[Ringed City] Purging Stone 55100120")] - RingedCityPurgingStone = 55100120, + [Annotation(Name = "[Ringed City] Purging Stone 55100120")] + RingedCityPurgingStone = 55100120, - [Annotation(Name = "[Ringed City] Fading Soul 55100130")] - RingedCityFadingSoul_ = 55100130, + [Annotation(Name = "[Ringed City] Fading Soul 55100130")] + RingedCityFadingSoul_ = 55100130, - [Annotation(Name = "[Ringed City] Fading Soul 55100140")] - RingedCityFadingSoul__ = 55100140, + [Annotation(Name = "[Ringed City] Fading Soul 55100140")] + RingedCityFadingSoul__ = 55100140, - [Annotation(Name = "[Ringed City] Hollow Gem 55100150")] - RingedCityHollowGem = 55100150, + [Annotation(Name = "[Ringed City] Hollow Gem 55100150")] + RingedCityHollowGem = 55100150, - [Annotation(Name = "[Ringed City] Titanite Chunk 55100160")] - RingedCityTitaniteChunk_ = 55100160, + [Annotation(Name = "[Ringed City] Titanite Chunk 55100160")] + RingedCityTitaniteChunk_ = 55100160, - [Annotation(Name = "[Ringed City] Twinkling Titanite 55100170")] - RingedCityTwinklingTitanite = 55100170, + [Annotation(Name = "[Ringed City] Twinkling Titanite 55100170")] + RingedCityTwinklingTitanite = 55100170, - [Annotation(Name = "[Ringed City] Shriving Stone 55100180")] - RingedCityShrivingStone = 55100180, + [Annotation(Name = "[Ringed City] Shriving Stone 55100180")] + RingedCityShrivingStone = 55100180, - [Annotation(Name = "[Ringed City] Shira's Crown 55100190")] - RingedCityShirasCrown = 55100190, + [Annotation(Name = "[Ringed City] Shira's Crown 55100190")] + RingedCityShirasCrown = 55100190, - [Annotation(Name = "[Ringed City] Mossfruit 55100200")] - RingedCityMossfruit = 55100200, + [Annotation(Name = "[Ringed City] Mossfruit 55100200")] + RingedCityMossfruit = 55100200, - [Annotation(Name = "[Ringed City] Fading Soul 55100210")] - RingedCityFadingSoul___ = 55100210, + [Annotation(Name = "[Ringed City] Fading Soul 55100210")] + RingedCityFadingSoul___ = 55100210, - [Annotation(Name = "[Ringed City] Large Soul of a Crestfallen Knight 55100220")] - RingedCityLargeSoulOfaCrestfallenKnight = 55100220, + [Annotation(Name = "[Ringed City] Large Soul of a Crestfallen Knight 55100220")] + RingedCityLargeSoulOfaCrestfallenKnight = 55100220, - [Annotation(Name = "[Ringed City] Ringed Knight Spear 55100230")] - RingedCityRingedKnightSpear = 55100230, + [Annotation(Name = "[Ringed City] Ringed Knight Spear 55100230")] + RingedCityRingedKnightSpear = 55100230, - [Annotation(Name = "[Ringed City] Fading Soul 55100240")] - RingedCityFadingSoul____ = 55100240, + [Annotation(Name = "[Ringed City] Fading Soul 55100240")] + RingedCityFadingSoul____ = 55100240, - [Annotation(Name = "[Ringed City] Black Witch Hat 55100250")] - RingedCityBlackWitchHat = 55100250, + [Annotation(Name = "[Ringed City] Black Witch Hat 55100250")] + RingedCityBlackWitchHat = 55100250, - [Annotation(Name = "[Ringed City] Dragonhead Shield 55100260")] - RingedCityDragonheadShield = 55100260, + [Annotation(Name = "[Ringed City] Dragonhead Shield 55100260")] + RingedCityDragonheadShield = 55100260, - [Annotation(Name = "[Ringed City] Titanite Chunk 55100270")] - RingedCityTitaniteChunk__ = 55100270, + [Annotation(Name = "[Ringed City] Titanite Chunk 55100270")] + RingedCityTitaniteChunk__ = 55100270, - [Annotation(Name = "[Ringed City] Mossfruit 55100280")] - RingedCityMossfruit_ = 55100280, + [Annotation(Name = "[Ringed City] Mossfruit 55100280")] + RingedCityMossfruit_ = 55100280, - [Annotation(Name = "[Ringed City] Large Soul of a Crestfallen Knight 55100290")] - RingedCityLargeSoulOfaCrestfallenKnight_ = 55100290, + [Annotation(Name = "[Ringed City] Large Soul of a Crestfallen Knight 55100290")] + RingedCityLargeSoulOfaCrestfallenKnight_ = 55100290, - [Annotation(Name = "[Ringed City] Covetous Gold Serpent Ring+3 55100300")] - RingedCityCovetousGoldSerpentRing3 = 55100300, + [Annotation(Name = "[Ringed City] Covetous Gold Serpent Ring+3 55100300")] + RingedCityCovetousGoldSerpentRing3 = 55100300, - [Annotation(Name = "[Ringed City] Fading Soul 55100310")] - RingedCityFadingSoul_____ = 55100310, + [Annotation(Name = "[Ringed City] Fading Soul 55100310")] + RingedCityFadingSoul_____ = 55100310, - [Annotation(Name = "[Ringed City] Fading Soul 55100320")] - RingedCityFadingSoul______ = 55100320, + [Annotation(Name = "[Ringed City] Fading Soul 55100320")] + RingedCityFadingSoul______ = 55100320, - [Annotation(Name = "[Ringed City] Titanite Chunk 55100330")] - RingedCityTitaniteChunk___ = 55100330, + [Annotation(Name = "[Ringed City] Titanite Chunk 55100330")] + RingedCityTitaniteChunk___ = 55100330, - [Annotation(Name = "[Ringed City] Fading Soul 55100340")] - RingedCityFadingSoul_______ = 55100340, + [Annotation(Name = "[Ringed City] Fading Soul 55100340")] + RingedCityFadingSoul_______ = 55100340, - [Annotation(Name = "[Ringed City] Dark Gem 55100350")] - RingedCityDarkGem = 55100350, + [Annotation(Name = "[Ringed City] Dark Gem 55100350")] + RingedCityDarkGem = 55100350, - [Annotation(Name = "[Ringed City] Prism Stone 55100360")] - RingedCityPrismStone = 55100360, + [Annotation(Name = "[Ringed City] Prism Stone 55100360")] + RingedCityPrismStone = 55100360, - [Annotation(Name = "[Ringed City] Ringed Knight Straight Sword 55100370")] - RingedCityRingedKnightStraightSword = 55100370, + [Annotation(Name = "[Ringed City] Ringed Knight Straight Sword 55100370")] + RingedCityRingedKnightStraightSword = 55100370, - [Annotation(Name = "[Ringed City] Havel's Ring+3 55100380")] - RingedCityHavelsRing3 = 55100380, + [Annotation(Name = "[Ringed City] Havel's Ring+3 55100380")] + RingedCityHavelsRing3 = 55100380, - [Annotation(Name = "[Ringed City] Titanite Chunk 55100390")] - RingedCityTitaniteChunk____ = 55100390, + [Annotation(Name = "[Ringed City] Titanite Chunk 55100390")] + RingedCityTitaniteChunk____ = 55100390, - [Annotation(Name = "[Ringed City] Twinkling Titanite 55100400")] - RingedCityTwinklingTitanite_ = 55100400, + [Annotation(Name = "[Ringed City] Twinkling Titanite 55100400")] + RingedCityTwinklingTitanite_ = 55100400, - [Annotation(Name = "[Ringed City] Fading Soul 55100410")] - RingedCityFadingSoul________ = 55100410, + [Annotation(Name = "[Ringed City] Fading Soul 55100410")] + RingedCityFadingSoul________ = 55100410, - [Annotation(Name = "[Ringed City] Soul of a Weary Warrior 55100420")] - RingedCitySoulOfaWearyWarrior = 55100420, + [Annotation(Name = "[Ringed City] Soul of a Weary Warrior 55100420")] + RingedCitySoulOfaWearyWarrior = 55100420, - [Annotation(Name = "[Ringed City] Preacher's Right Arm 55100430")] - RingedCityPreachersRightArm = 55100430, + [Annotation(Name = "[Ringed City] Preacher's Right Arm 55100430")] + RingedCityPreachersRightArm = 55100430, - [Annotation(Name = "[Ringed City] Rubbish 55100440")] - RingedCityRubbish = 55100440, + [Annotation(Name = "[Ringed City] Rubbish 55100440")] + RingedCityRubbish = 55100440, - [Annotation(Name = "[Ringed City] Titanite Chunk 55100450")] - RingedCityTitaniteChunk_____ = 55100450, + [Annotation(Name = "[Ringed City] Titanite Chunk 55100450")] + RingedCityTitaniteChunk_____ = 55100450, - [Annotation(Name = "[Ringed City] Black Witch Veil 55100460")] - RingedCityBlackWitchVeil = 55100460, + [Annotation(Name = "[Ringed City] Black Witch Veil 55100460")] + RingedCityBlackWitchVeil = 55100460, - [Annotation(Name = "[Ringed City] Church Guardian Shiv 6660")] - RingedCityChurchGuardianShiv = 6660, + [Annotation(Name = "[Ringed City] Church Guardian Shiv 6660")] + RingedCityChurchGuardianShiv = 6660, - [Annotation(Name = "[Ringed City] Twinkling Titanite 55100480")] - RingedCityTwinklingTitanite__ = 55100480, + [Annotation(Name = "[Ringed City] Twinkling Titanite 55100480")] + RingedCityTwinklingTitanite__ = 55100480, - [Annotation(Name = "[Ringed City] Fading Soul 55100490")] - RingedCityFadingSoul_________ = 55100490, + [Annotation(Name = "[Ringed City] Fading Soul 55100490")] + RingedCityFadingSoul_________ = 55100490, - [Annotation(Name = "[Ringed City] Fading Soul 55100500")] - RingedCityFadingSoul__________ = 55100500, + [Annotation(Name = "[Ringed City] Fading Soul 55100500")] + RingedCityFadingSoul__________ = 55100500, - [Annotation(Name = "[Ringed City] Soul of a Crestfallen Knight 55100510")] - RingedCitySoulOfaCrestfallenKnight__ = 55100510, + [Annotation(Name = "[Ringed City] Soul of a Crestfallen Knight 55100510")] + RingedCitySoulOfaCrestfallenKnight__ = 55100510, - [Annotation(Name = "[Ringed City] White Preacher Head 55100520")] - RingedCityWhitePreacherHead = 55100520, + [Annotation(Name = "[Ringed City] White Preacher Head 55100520")] + RingedCityWhitePreacherHead = 55100520, - [Annotation(Name = "[Ringed City] Fading Soul 55100530")] - RingedCityFadingSoul___________ = 55100530, + [Annotation(Name = "[Ringed City] Fading Soul 55100530")] + RingedCityFadingSoul___________ = 55100530, - [Annotation(Name = "[Ringed City] Titanite Scale 55100540")] - RingedCityTitaniteScale = 55100540, + [Annotation(Name = "[Ringed City] Titanite Scale 55100540")] + RingedCityTitaniteScale = 55100540, - [Annotation(Name = "[Ringed City] Titanite Scale 55100550")] - RingedCityTitaniteScale_ = 55100550, + [Annotation(Name = "[Ringed City] Titanite Scale 55100550")] + RingedCityTitaniteScale_ = 55100550, - [Annotation(Name = "[Ringed City] Dragonhead Greatshield 55100560")] - RingedCityDragonheadGreatshield = 55100560, + [Annotation(Name = "[Ringed City] Dragonhead Greatshield 55100560")] + RingedCityDragonheadGreatshield = 55100560, - [Annotation(Name = "[Ringed City] Titanite Scale 55100570")] - RingedCityTitaniteScale__ = 55100570, + [Annotation(Name = "[Ringed City] Titanite Scale 55100570")] + RingedCityTitaniteScale__ = 55100570, - [Annotation(Name = "[Ringed City] Rubbish 55100580")] - RingedCityRubbish_ = 55100580, + [Annotation(Name = "[Ringed City] Rubbish 55100580")] + RingedCityRubbish_ = 55100580, - [Annotation(Name = "[Ringed City] Large Soul of a Weary Warrior 55100590")] - RingedCityLargeSoulOfaWearyWarrior_ = 55100590, + [Annotation(Name = "[Ringed City] Large Soul of a Weary Warrior 55100590")] + RingedCityLargeSoulOfaWearyWarrior_ = 55100590, - [Annotation(Name = "[Ringed City] Titanite Scale 55100600")] - RingedCityTitaniteScale___ = 55100600, + [Annotation(Name = "[Ringed City] Titanite Scale 55100600")] + RingedCityTitaniteScale___ = 55100600, - [Annotation(Name = "[Ringed City] Titanite Scale 55100610")] - RingedCityTitaniteScale____ = 55100610, + [Annotation(Name = "[Ringed City] Titanite Scale 55100610")] + RingedCityTitaniteScale____ = 55100610, - [Annotation(Name = "[Ringed City] Lightning Gem 55100620")] - RingedCityLightningGem = 55100620, + [Annotation(Name = "[Ringed City] Lightning Gem 55100620")] + RingedCityLightningGem = 55100620, - [Annotation(Name = "[Ringed City] Blessed Gem 55100630")] - RingedCityBlessedGem = 55100630, + [Annotation(Name = "[Ringed City] Blessed Gem 55100630")] + RingedCityBlessedGem = 55100630, - [Annotation(Name = "[Ringed City] Simple Gem 55100640")] - RingedCitySimpleGem = 55100640, + [Annotation(Name = "[Ringed City] Simple Gem 55100640")] + RingedCitySimpleGem = 55100640, - [Annotation(Name = "[Ringed City] Large Soul of a Weary Warrior 55100650")] - RingedCityLargeSoulOfaWearyWarrior__ = 55100650, + [Annotation(Name = "[Ringed City] Large Soul of a Weary Warrior 55100650")] + RingedCityLargeSoulOfaWearyWarrior__ = 55100650, - [Annotation(Name = "[Ringed City] Lightning Arrow 55100660")] - RingedCityLightningArrow = 55100660, + [Annotation(Name = "[Ringed City] Lightning Arrow 55100660")] + RingedCityLightningArrow = 55100660, - [Annotation(Name = "[Ringed City] Chloranthy Ring+3 55100670")] - RingedCityChloranthyRing3 = 55100670, + [Annotation(Name = "[Ringed City] Chloranthy Ring+3 55100670")] + RingedCityChloranthyRing3 = 55100670, - [Annotation(Name = "[Ringed City] Ember 55100680")] - RingedCityEmber__ = 55100680, + [Annotation(Name = "[Ringed City] Ember 55100680")] + RingedCityEmber__ = 55100680, - [Annotation(Name = "[Ringed City] Filianore's Spear Ornament 55100690")] - RingedCityFilianoresSpearOrnament = 55100690, + [Annotation(Name = "[Ringed City] Filianore's Spear Ornament 55100690")] + RingedCityFilianoresSpearOrnament = 55100690, - [Annotation(Name = "[Ringed City] Antiquated Plain Garb 55100700")] - RingedCityAntiquatedPlainGarb = 55100700, + [Annotation(Name = "[Ringed City] Antiquated Plain Garb 55100700")] + RingedCityAntiquatedPlainGarb = 55100700, - [Annotation(Name = "[Ringed City] Soul of a Weary Warrior 55100710")] - RingedCitySoulOfaWearyWarrior_ = 55100710, + [Annotation(Name = "[Ringed City] Soul of a Weary Warrior 55100710")] + RingedCitySoulOfaWearyWarrior_ = 55100710, - [Annotation(Name = "[Ringed City] Fading Soul 55100720")] - RingedCityFadingSoul____________ = 55100720, + [Annotation(Name = "[Ringed City] Fading Soul 55100720")] + RingedCityFadingSoul____________ = 55100720, - [Annotation(Name = "[Ringed City] Fading Soul 55100730")] - RingedCityFadingSoul_____________ = 55100730, + [Annotation(Name = "[Ringed City] Fading Soul 55100730")] + RingedCityFadingSoul_____________ = 55100730, - [Annotation(Name = "[Ringed City] Fading Soul 55100740")] - RingedCityFadingSoul______________ = 55100740, + [Annotation(Name = "[Ringed City] Fading Soul 55100740")] + RingedCityFadingSoul______________ = 55100740, - [Annotation(Name = "[Ringed City] Twinkling Titanite 55100750")] - RingedCityTwinklingTitanite___ = 55100750, + [Annotation(Name = "[Ringed City] Twinkling Titanite 55100750")] + RingedCityTwinklingTitanite___ = 55100750, - [Annotation(Name = "[Ringed City] Ritual Spear Fragment 6835")] - RingedCityRitualSpearFragment = 6835, + [Annotation(Name = "[Ringed City] Ritual Spear Fragment 6835")] + RingedCityRitualSpearFragment = 6835, - [Annotation(Name = "[Ringed City] Budding Green Blossom 55100770")] - RingedCityBuddingGreenBlossom__ = 55100770, + [Annotation(Name = "[Ringed City] Budding Green Blossom 55100770")] + RingedCityBuddingGreenBlossom__ = 55100770, - [Annotation(Name = "[Ringed City] Fading Soul 55100780")] - RingedCityFadingSoul_______________ = 55100780, + [Annotation(Name = "[Ringed City] Fading Soul 55100780")] + RingedCityFadingSoul_______________ = 55100780, - [Annotation(Name = "[Ringed City] Fading Soul 55100790")] - RingedCityFadingSoul________________ = 55100790, + [Annotation(Name = "[Ringed City] Fading Soul 55100790")] + RingedCityFadingSoul________________ = 55100790, - [Annotation(Name = "[Ringed City] Titanite Chunk 55100800")] - RingedCityTitaniteChunk______ = 55100800, + [Annotation(Name = "[Ringed City] Titanite Chunk 55100800")] + RingedCityTitaniteChunk______ = 55100800, - [Annotation(Name = "[Ringed City] Large Soul of a Weary Warrior 55100810")] - RingedCityLargeSoulOfaWearyWarrior___ = 55100810, + [Annotation(Name = "[Ringed City] Large Soul of a Weary Warrior 55100810")] + RingedCityLargeSoulOfaWearyWarrior___ = 55100810, - [Annotation(Name = "[Ringed City] Fading Soul 55100820")] - RingedCityFadingSoul_________________ = 55100820, + [Annotation(Name = "[Ringed City] Fading Soul 55100820")] + RingedCityFadingSoul_________________ = 55100820, - [Annotation(Name = "[Ringed City] Soul of a Weary Warrior 55100830")] - RingedCitySoulOfaWearyWarrior__ = 55100830, + [Annotation(Name = "[Ringed City] Soul of a Weary Warrior 55100830")] + RingedCitySoulOfaWearyWarrior__ = 55100830, - [Annotation(Name = "[Ringed City] Fading Soul 55100840")] - RingedCityFadingSoul__________________ = 55100840, + [Annotation(Name = "[Ringed City] Fading Soul 55100840")] + RingedCityFadingSoul__________________ = 55100840, - [Annotation(Name = "[Ringed City] Titanite Scale 55100850")] - RingedCityTitaniteScale_____ = 55100850, + [Annotation(Name = "[Ringed City] Titanite Scale 55100850")] + RingedCityTitaniteScale_____ = 55100850, - [Annotation(Name = "[Ringed City] Soul of a Crestfallen Knight 55100860")] - RingedCitySoulOfaCrestfallenKnight___ = 55100860, + [Annotation(Name = "[Ringed City] Soul of a Crestfallen Knight 55100860")] + RingedCitySoulOfaCrestfallenKnight___ = 55100860, - [Annotation(Name = "[Ringed City] White Birch Bow 55100870")] - RingedCityWhiteBirchBow = 55100870, + [Annotation(Name = "[Ringed City] White Birch Bow 55100870")] + RingedCityWhiteBirchBow = 55100870, - [Annotation(Name = "[Ringed City] Titanite Chunk 55100880")] - RingedCityTitaniteChunk_______ = 55100880, + [Annotation(Name = "[Ringed City] Titanite Chunk 55100880")] + RingedCityTitaniteChunk_______ = 55100880, - [Annotation(Name = "[Ringed City] Fading Soul 55100890")] - RingedCityFadingSoul___________________ = 55100890, + [Annotation(Name = "[Ringed City] Fading Soul 55100890")] + RingedCityFadingSoul___________________ = 55100890, - [Annotation(Name = "[Ringed City] Young White Branch 55100900")] - RingedCityYoungWhiteBranch = 55100900, + [Annotation(Name = "[Ringed City] Young White Branch 55100900")] + RingedCityYoungWhiteBranch = 55100900, - [Annotation(Name = "[Ringed City] Young White Branch 55100910")] - RingedCityYoungWhiteBranch_ = 55100910, + [Annotation(Name = "[Ringed City] Young White Branch 55100910")] + RingedCityYoungWhiteBranch_ = 55100910, - [Annotation(Name = "[Ringed City] Young White Branch 55100920")] - RingedCityYoungWhiteBranch__ = 55100920, + [Annotation(Name = "[Ringed City] Young White Branch 55100920")] + RingedCityYoungWhiteBranch__ = 55100920, - [Annotation(Name = "[Pus of Man #1] Titanite Shard 53000980")] - PusOfMan1TitaniteShard = 53000980, + [Annotation(Name = "[Pus of Man #1] Titanite Shard 53000980")] + PusOfMan1TitaniteShard = 53000980, - [Annotation(Name = "[Pus of Man #2] Titanite Shard 53000981")] - PusOfMan2TitaniteShard = 53000981, + [Annotation(Name = "[Pus of Man #2] Titanite Shard 53000981")] + PusOfMan2TitaniteShard = 53000981, - [Annotation(Name = "[Cathedral Knight - Oceiros] Magic Stoneplate Ring 53010955")] - CathedralKnightOceirosMagicStoneplateRing = 53010955, + [Annotation(Name = "[Cathedral Knight - Oceiros] Magic Stoneplate Ring 53010955")] + CathedralKnightOceirosMagicStoneplateRing = 53010955, - [Annotation(Name = "[Cathedral Evangelist #4] Dorhys' Gnawing 53700975")] - CathedralEvangelist4DorhysGnawing = 53700975, + [Annotation(Name = "[Cathedral Evangelist #4] Dorhys' Gnawing 53700975")] + CathedralEvangelist4DorhysGnawing = 53700975, - [Annotation(Name = "[Lothric Knight] Raw Gem 53010980")] - LothricKnightRawGem = 53010980, + [Annotation(Name = "[Lothric Knight] Raw Gem 53010980")] + LothricKnightRawGem = 53010980, - [Annotation(Name = "[Winged Knight #3 - Grand Archives] Titanite Slab 53410900")] - WingedKnight3GrandArchivesTitaniteSlab = 53410900, + [Annotation(Name = "[Winged Knight #3 - Grand Archives] Titanite Slab 53410900")] + WingedKnight3GrandArchivesTitaniteSlab = 53410900, - [Annotation(Name = "[Boreal Outrider Knight] Outrider Knight Helm 53410905")] - BorealOutriderKnightOutriderKnightHelm = 53410905, + [Annotation(Name = "[Boreal Outrider Knight] Outrider Knight Helm 53410905")] + BorealOutriderKnightOutriderKnightHelm = 53410905, - [Annotation(Name = "[Boreal Outrider Knight] Irithyll Straight Sword 53100980")] - BorealOutriderKnightIrithyllStraightSword = 53100980, + [Annotation(Name = "[Boreal Outrider Knight] Irithyll Straight Sword 53100980")] + BorealOutriderKnightIrithyllStraightSword = 53100980, - [Annotation(Name = "[Boreal Outrider Knight] Irithyll Rapier 53010995")] - BorealOutriderKnightIrithyllRapier = 53010995, + [Annotation(Name = "[Boreal Outrider Knight] Irithyll Rapier 53010995")] + BorealOutriderKnightIrithyllRapier = 53010995, - [Annotation(Name = "[Crystal Sage] Crystal Scroll 53410908")] - CrystalSageCrystalScroll = 53410908, + [Annotation(Name = "[Crystal Sage] Crystal Scroll 53410908")] + CrystalSageCrystalScroll = 53410908, - [Annotation(Name = "[Silver Knight #1] 53700983")] - SilverKnight1 = 53700983, + [Annotation(Name = "[Silver Knight #1] 53700983")] + SilverKnight1 = 53700983, - [Annotation(Name = "[Silver Knight #2] 53700984")] - SilverKnight2 = 53700984, + [Annotation(Name = "[Silver Knight #2] 53700984")] + SilverKnight2 = 53700984, - [Annotation(Name = "[Silver Knight #3] 53700985")] - SilverKnight3 = 53700985, + [Annotation(Name = "[Silver Knight #3] 53700985")] + SilverKnight3 = 53700985, - [Annotation(Name = "[Monstrosity of Sin #3] Eleonora 53900910")] - MonstrosityOfSin3Eleonora = 53900910, + [Annotation(Name = "[Monstrosity of Sin #3] Eleonora 53900910")] + MonstrosityOfSin3Eleonora = 53900910, - [Annotation(Name = "[Corpse-grub #2] Great Magic Shield 53900920")] - Corpsegrub2GreatMagicShield = 53900920, + [Annotation(Name = "[Corpse-grub #2] Great Magic Shield 53900920")] + Corpsegrub2GreatMagicShield = 53900920, - [Annotation(Name = "[Mimic] Symbol of Avarice 53500981")] - MimicSymbolOfAvarice = 53500981, + [Annotation(Name = "[Mimic] Symbol of Avarice 53500981")] + MimicSymbolOfAvarice = 53500981, - [Annotation(Name = "[Mimic] Deep Braille Divine Tome 53500980")] - MimicDeepBrailleDivineTome = 53500980, + [Annotation(Name = "[Mimic] Deep Braille Divine Tome 53500980")] + MimicDeepBrailleDivineTome = 53500980, - [Annotation(Name = "[Mimic] Symbol of Avarice 53010951")] - MimicSymbolOfAvarice_ = 53010951, + [Annotation(Name = "[Mimic] Symbol of Avarice 53010951")] + MimicSymbolOfAvarice_ = 53010951, - [Annotation(Name = "[Mimic] Sunlight Straight Sword 53010950")] - MimicSunlightStraightSword = 53010950, + [Annotation(Name = "[Mimic] Sunlight Straight Sword 53010950")] + MimicSunlightStraightSword = 53010950, - [Annotation(Name = "[Mimic] Symbol of Avarice 53010961")] - MimicSymbolOfAvarice__ = 53010961, + [Annotation(Name = "[Mimic] Symbol of Avarice 53010961")] + MimicSymbolOfAvarice__ = 53010961, - [Annotation(Name = "[Mimic] Titanite Scale 53010960")] - MimicTitaniteScale = 53010960, + [Annotation(Name = "[Mimic] Titanite Scale 53010960")] + MimicTitaniteScale = 53010960, - [Annotation(Name = "[Mimic] Symbol of Avarice 53800945")] - MimicSymbolOfAvarice___ = 53800945, + [Annotation(Name = "[Mimic] Symbol of Avarice 53800945")] + MimicSymbolOfAvarice___ = 53800945, - [Annotation(Name = "[Mimic] Black Blade 53800940")] - MimicBlackBlade = 53800940, + [Annotation(Name = "[Mimic] Black Blade 53800940")] + MimicBlackBlade = 53800940, - [Annotation(Name = "[Mimic] Symbol of Avarice 53900941")] - MimicSymbolOfAvarice____ = 53900941, + [Annotation(Name = "[Mimic] Symbol of Avarice 53900941")] + MimicSymbolOfAvarice____ = 53900941, - [Annotation(Name = "[Mimic] Dragonslayer Lightning Arrow 53900940")] - MimicDragonslayerLightningArrow = 53900940, + [Annotation(Name = "[Mimic] Dragonslayer Lightning Arrow 53900940")] + MimicDragonslayerLightningArrow = 53900940, - [Annotation(Name = "[Mimic] Symbol of Avarice 53900951")] - MimicSymbolOfAvarice_____ = 53900951, + [Annotation(Name = "[Mimic] Symbol of Avarice 53900951")] + MimicSymbolOfAvarice_____ = 53900951, - [Annotation(Name = "[Mimic] Titanite Scale 53900950")] - MimicTitaniteScale_ = 53900950, + [Annotation(Name = "[Mimic] Titanite Scale 53900950")] + MimicTitaniteScale_ = 53900950, - [Annotation(Name = "[Mimic] Symbol of Avarice 53900961")] - MimicSymbolOfAvarice______ = 53900961, + [Annotation(Name = "[Mimic] Symbol of Avarice 53900961")] + MimicSymbolOfAvarice______ = 53900961, - [Annotation(Name = "[Mimic] Rusted Gold Coin 53900960")] - MimicRustedGoldCoin = 53900960, + [Annotation(Name = "[Mimic] Rusted Gold Coin 53900960")] + MimicRustedGoldCoin = 53900960, - [Annotation(Name = "[Mimic] Symbol of Avarice 53900971")] - MimicSymbolOfAvarice_______ = 53900971, + [Annotation(Name = "[Mimic] Symbol of Avarice 53900971")] + MimicSymbolOfAvarice_______ = 53900971, - [Annotation(Name = "[Mimic] Court Sorcerer's Staff 53900970")] - MimicCourtSorcerersStaff = 53900970, + [Annotation(Name = "[Mimic] Court Sorcerer's Staff 53900970")] + MimicCourtSorcerersStaff = 53900970, - [Annotation(Name = "[Mimic] Symbol of Avarice 53900981")] - MimicSymbolOfAvarice________ = 53900981, + [Annotation(Name = "[Mimic] Symbol of Avarice 53900981")] + MimicSymbolOfAvarice________ = 53900981, - [Annotation(Name = "[Mimic] Greatshield of Glory 53900980")] - MimicGreatshieldOfGlory = 53900980, + [Annotation(Name = "[Mimic] Greatshield of Glory 53900980")] + MimicGreatshieldOfGlory = 53900980, - [Annotation(Name = "[Mimic] Symbol of Avarice 53900996")] - MimicSymbolOfAvarice_________ = 53900996, + [Annotation(Name = "[Mimic] Symbol of Avarice 53900996")] + MimicSymbolOfAvarice_________ = 53900996, - [Annotation(Name = "[Mimic] Estus Shard 53900995")] - MimicEstusShard = 53900995, + [Annotation(Name = "[Mimic] Estus Shard 53900995")] + MimicEstusShard = 53900995, - [Annotation(Name = "[Mimic] Symbol of Avarice 53900991")] - MimicSymbolOfAvarice__________ = 53900991, + [Annotation(Name = "[Mimic] Symbol of Avarice 53900991")] + MimicSymbolOfAvarice__________ = 53900991, - [Annotation(Name = "[Mimic] Dark Clutch Ring 53900990")] - MimicDarkClutchRing = 53900990, + [Annotation(Name = "[Mimic] Dark Clutch Ring 53900990")] + MimicDarkClutchRing = 53900990, - [Annotation(Name = "[Mimic] Symbol of Avarice 53700981")] - MimicSymbolOfAvarice___________ = 53700981, + [Annotation(Name = "[Mimic] Symbol of Avarice 53700981")] + MimicSymbolOfAvarice___________ = 53700981, - [Annotation(Name = "[Mimic] Golden Ritual Spear 53700980")] - MimicGoldenRitualSpear = 53700980, + [Annotation(Name = "[Mimic] Golden Ritual Spear 53700980")] + MimicGoldenRitualSpear = 53700980, - [Annotation(Name = "[Mimic] Symbol of Avarice 53000961")] - MimicSymbolOfAvarice____________ = 53000961, + [Annotation(Name = "[Mimic] Symbol of Avarice 53000961")] + MimicSymbolOfAvarice____________ = 53000961, - [Annotation(Name = "[Mimic] Deep Battle Axe 53000960")] - MimicDeepBattleAxe = 53000960, + [Annotation(Name = "[Mimic] Deep Battle Axe 53000960")] + MimicDeepBattleAxe = 53000960, - [Annotation(Name = "[Mimic] Symbol of Avarice 55100985")] - MimicSymbolOfAvarice_____________ = 55100985, + [Annotation(Name = "[Mimic] Symbol of Avarice 55100985")] + MimicSymbolOfAvarice_____________ = 55100985, - [Annotation(Name = "[Mimic] Ring of the Evil Eye +3 55100986")] - MimicRingOfTheEvilEye3 = 55100986, + [Annotation(Name = "[Mimic] Ring of the Evil Eye +3 55100986")] + MimicRingOfTheEvilEye3 = 55100986, - [Annotation(Name = "[Yellowfinger Heysel] Heysel Pick 53500960")] - YellowfingerHeyselHeyselPick_ = 53500960, + [Annotation(Name = "[Yellowfinger Heysel] Heysel Pick 53500960")] + YellowfingerHeyselHeyselPick_ = 53500960, - [Annotation(Name = "Red Sign Soapstone 6781")] - RedSignSoapstone = 6781, + [Annotation(Name = "Red Sign Soapstone 6781")] + RedSignSoapstone = 6781, - [Annotation(Name = "[Carthus Sandworm] Lightning Stake 53800941")] - CarthusSandwormLightningStake = 53800941, + [Annotation(Name = "[Carthus Sandworm] Lightning Stake 53800941")] + CarthusSandwormLightningStake = 53800941, - [Annotation(Name = "[Jailer #2] Jailer's Key Ring 53900930")] - Jailer2JailersKeyRing = 53900930, + [Annotation(Name = "[Jailer #2] Jailer's Key Ring 53900930")] + Jailer2JailersKeyRing = 53900930, - [Annotation(Name = "[Sulyvahn's Beast #1] Pontiff's Right Eye 53700995")] - SulyvahnsBeast1PontiffsRightEye = 53700995, + [Annotation(Name = "[Sulyvahn's Beast #1] Pontiff's Right Eye 53700995")] + SulyvahnsBeast1PontiffsRightEye = 53700995, - [Annotation(Name = "[Sulyvahn's Beast #2] Ring of Favor 53700990")] - SulyvahnsBeast2RingOfFavor = 53700990, + [Annotation(Name = "[Sulyvahn's Beast #2] Ring of Favor 53700990")] + SulyvahnsBeast2RingOfFavor = 53700990, - [Annotation(Name = "[Great Crab - Road of Sacrifices] Great Swamp Ring 53300990")] - GreatCrabRoadOfSacrificesGreatSwampRing = 53300990, + [Annotation(Name = "[Great Crab - Road of Sacrifices] Great Swamp Ring 53300990")] + GreatCrabRoadOfSacrificesGreatSwampRing = 53300990, - [Annotation(Name = "[Great Crab - Farron Keep] Lingering Dragoncrest Ring 53300991")] - GreatCrabFarronKeepLingeringDragoncrestRing = 53300991, + [Annotation(Name = "[Great Crab - Farron Keep] Lingering Dragoncrest Ring 53300991")] + GreatCrabFarronKeepLingeringDragoncrestRing = 53300991, - [Annotation(Name = "[Giant Rat] Bloodbite Ring 53100228")] - GiantRatBloodbiteRing = 53100228, + [Annotation(Name = "[Giant Rat] Bloodbite Ring 53100228")] + GiantRatBloodbiteRing = 53100228, - [Annotation(Name = "[Demon] Fire Gem 53100985")] - DemonFireGem = 53100985, + [Annotation(Name = "[Demon] Fire Gem 53100985")] + DemonFireGem = 53100985, - [Annotation(Name = "[Elder Ghru #3] Pharis's Hat 53300995")] - ElderGhru3PharissHat = 53300995, + [Annotation(Name = "[Elder Ghru #3] Pharis's Hat 53300995")] + ElderGhru3PharissHat = 53300995, - [Annotation(Name = "[Elder Ghru #4] Black Bow of Pharis 53300996")] - ElderGhru4BlackBowOfPharis = 53300996, + [Annotation(Name = "[Elder Ghru #4] Black Bow of Pharis 53300996")] + ElderGhru4BlackBowOfPharis = 53300996, - [Annotation(Name = "[Ancient Wyvern] Large Titanite Shard 53000985")] - AncientWyvernLargeTitaniteShard = 53000985, + [Annotation(Name = "[Ancient Wyvern] Large Titanite Shard 53000985")] + AncientWyvernLargeTitaniteShard = 53000985, - [Annotation(Name = "[Ancient Wyvern] Titanite Chunk 53010990")] - AncientWyvernTitaniteChunk = 53010990, + [Annotation(Name = "[Ancient Wyvern] Titanite Chunk 53010990")] + AncientWyvernTitaniteChunk = 53010990, - [Annotation(Name = "[Ancient Wyvern] Titanite Chunk 53010991")] - AncientWyvernTitaniteChunk_ = 53010991, + [Annotation(Name = "[Ancient Wyvern] Titanite Chunk 53010991")] + AncientWyvernTitaniteChunk_ = 53010991, - [Annotation(Name = "[Dragonslayer Armour] Iron Dragonslayer Helm 55100987")] - DragonslayerArmourIronDragonslayerHelm = 55100987, + [Annotation(Name = "[Dragonslayer Armour] Iron Dragonslayer Helm 55100987")] + DragonslayerArmourIronDragonslayerHelm = 55100987, - [Annotation(Name = "[Deacon #1 - Irithyll] Deep Ring 53500970")] - Deacon1IrithyllDeepRing = 53500970, + [Annotation(Name = "[Deacon #1 - Irithyll] Deep Ring 53500970")] + Deacon1IrithyllDeepRing = 53500970, - [Annotation(Name = "Green Blossom 53400040")] - GreenBlossom = 53400040, - } + [Annotation(Name = "Green Blossom 53400040")] + GreenBlossom = 53400040, } diff --git a/src/SoulMemory/EldenRing/Boss.cs b/src/SoulMemory/EldenRing/Boss.cs index 29d0ea1..7824200 100644 --- a/src/SoulMemory/EldenRing/Boss.cs +++ b/src/SoulMemory/EldenRing/Boss.cs @@ -14,644 +14,643 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -namespace SoulMemory.EldenRing +namespace SoulMemory.EldenRing; + +public enum Boss : uint { - public enum Boss : uint - { - [Annotation(Name = "Godrick the Grafted - Stormveil Castle", Description = "Stormveil Castle")] - GodrickTheGraftedStormveilCastle = 10000800, + [Annotation(Name = "Godrick the Grafted - Stormveil Castle", Description = "Stormveil Castle")] + GodrickTheGraftedStormveilCastle = 10000800, - [Annotation(Name = "Margit, the Fell Omen - Stormveil Castle", Description = "Stormveil Castle")] - MargitTheFellOmenStormveilCastle = 10000850, + [Annotation(Name = "Margit, the Fell Omen - Stormveil Castle", Description = "Stormveil Castle")] + MargitTheFellOmenStormveilCastle = 10000850, - [Annotation(Name = "Grafted Scion - Chapel of Anticipation", Description = "Limgrave")] - GraftedScionChapelOfAnticipation = 10010800, + [Annotation(Name = "Grafted Scion - Chapel of Anticipation", Description = "Limgrave")] + GraftedScionChapelOfAnticipation = 10010800, - [Annotation(Name = "Morgott, the Omen King - Leyndell", Description = "Leyndell")] - MorgottTheOmenKingLeyndell = 11000800, + [Annotation(Name = "Morgott, the Omen King - Leyndell", Description = "Leyndell")] + MorgottTheOmenKingLeyndell = 11000800, - [Annotation(Name = "Godfrey, First Elden Lord - Leyndell", Description = "Leyndell")] - GodfreyFirstEldenLordLeyndell = 11000850, + [Annotation(Name = "Godfrey, First Elden Lord - Leyndell", Description = "Leyndell")] + GodfreyFirstEldenLordLeyndell = 11000850, - [Annotation(Name = "Hoarah Loux - Leyndell", Description = "Leyndell")] - HoarahLouxLeyndell = 11050800, + [Annotation(Name = "Hoarah Loux - Leyndell", Description = "Leyndell")] + HoarahLouxLeyndell = 11050800, - [Annotation(Name = "Sir Gideon Ofnir, the All-Knowing - Leyndell", Description = "Leyndell")] - SirGideonOfnirTheAllKnowingLeyndell = 11050850, + [Annotation(Name = "Sir Gideon Ofnir, the All-Knowing - Leyndell", Description = "Leyndell")] + SirGideonOfnirTheAllKnowingLeyndell = 11050850, - [Annotation(Name = "Dragonkin Soldier of Nokstella - Ainsel River", Description = "Ainsel River")] - DragonkinSoldierOfNokstellaAinselRiver = 12010800, + [Annotation(Name = "Dragonkin Soldier of Nokstella - Ainsel River", Description = "Ainsel River")] + DragonkinSoldierOfNokstellaAinselRiver = 12010800, - [Annotation(Name = "Dragonkin Soldier - Lake of Rot", Description = "Lake of Rot")] - DragonkinSoldierLakeOfRot = 12010850, + [Annotation(Name = "Dragonkin Soldier - Lake of Rot", Description = "Lake of Rot")] + DragonkinSoldierLakeOfRot = 12010850, - [Annotation(Name = "Valiant Gargoyles - Siofra River", Description = "Siofra River")] - ValiantGargoylesSiofraRiver = 12020800, + [Annotation(Name = "Valiant Gargoyles - Siofra River", Description = "Siofra River")] + ValiantGargoylesSiofraRiver = 12020800, - [Annotation(Name = "Dragonkin Soldier - Siofra River", Description = "Siofra River")] - DragonkinSoldierSiofraRiver = 12020830, + [Annotation(Name = "Dragonkin Soldier - Siofra River", Description = "Siofra River")] + DragonkinSoldierSiofraRiver = 12020830, - [Annotation(Name = "Mimic Tear - Siofra River", Description = "Siofra River")] - MimicTearSiofraRiver = 12020850, + [Annotation(Name = "Mimic Tear - Siofra River", Description = "Siofra River")] + MimicTearSiofraRiver = 12020850, - [Annotation(Name = "Crucible Knight Sirulia - Deeproot Depths", Description = "Deeproot Depths")] - CrucibleKnightSiruliaDeeprootDepths = 12030390, + [Annotation(Name = "Crucible Knight Sirulia - Deeproot Depths", Description = "Deeproot Depths")] + CrucibleKnightSiruliaDeeprootDepths = 12030390, - [Annotation(Name = "Fia's Champion - Deeproot Depths", Description = "Deeproot Depths")] - FiasChampionDeeprootDepths = 12030800, + [Annotation(Name = "Fia's Champion - Deeproot Depths", Description = "Deeproot Depths")] + FiasChampionDeeprootDepths = 12030800, - [Annotation(Name = "Lichdragon Fortissax - Deeproot Depths", Description = "Deeproot Depths")] - LichdragonFortissaxDeeprootDepths = 12030850, + [Annotation(Name = "Lichdragon Fortissax - Deeproot Depths", Description = "Deeproot Depths")] + LichdragonFortissaxDeeprootDepths = 12030850, - [Annotation(Name = "Astel, Naturalborn of the Void - Lake of Rot", Description = "Lake of Rot")] - AstelNaturalbornOfTheVoidLakeOfRot = 12040800, + [Annotation(Name = "Astel, Naturalborn of the Void - Lake of Rot", Description = "Lake of Rot")] + AstelNaturalbornOfTheVoidLakeOfRot = 12040800, - [Annotation(Name = "Mohg, Lord of Blood - Mohgwyn Palace", Description = "Mohgwyn Palace")] - MohgLordOfBloodMohgwynPalace = 12050800, + [Annotation(Name = "Mohg, Lord of Blood - Mohgwyn Palace", Description = "Mohgwyn Palace")] + MohgLordOfBloodMohgwynPalace = 12050800, - [Annotation(Name = "Ancestor Spirit - Siofra River", Description = "Siofra River")] - AncestorSpiritSiofraRiver = 12080800, + [Annotation(Name = "Ancestor Spirit - Siofra River", Description = "Siofra River")] + AncestorSpiritSiofraRiver = 12080800, - [Annotation(Name = "Regal Ancestor Spirit - Nokron, Eternal City", Description = "Nokron, Eternal City")] - RegalAncestorSpiritNokronEternalCity = 12090800, + [Annotation(Name = "Regal Ancestor Spirit - Nokron, Eternal City", Description = "Nokron, Eternal City")] + RegalAncestorSpiritNokronEternalCity = 12090800, - [Annotation(Name = "Maliketh, The Black Blade - Crumbling Farum Azula", Description = "Crumbling Farum Azula")] - MalikethTheBlackBladeCrumblingFarumAzula = 13000800, + [Annotation(Name = "Maliketh, The Black Blade - Crumbling Farum Azula", Description = "Crumbling Farum Azula")] + MalikethTheBlackBladeCrumblingFarumAzula = 13000800, - [Annotation(Name = "Dragonlord Placidusax - Crumbling Farum Azula", Description = "Crumbling Farum Azula")] - DragonlordPlacidusaxCrumblingFarumAzula = 13000830, + [Annotation(Name = "Dragonlord Placidusax - Crumbling Farum Azula", Description = "Crumbling Farum Azula")] + DragonlordPlacidusaxCrumblingFarumAzula = 13000830, - [Annotation(Name = "Godskin Duo - Crumbling Farum Azula", Description = "Crumbling Farum Azula")] - GodskinDuoCrumblingFarumAzula = 13000850, + [Annotation(Name = "Godskin Duo - Crumbling Farum Azula", Description = "Crumbling Farum Azula")] + GodskinDuoCrumblingFarumAzula = 13000850, - [Annotation(Name = "Rennala, Queen of the Full Moon - Academy of Raya Lucaria", Description = "Academy of Raya Lucaria")] - RennalaQueenOfTheFullMoonAcademyOfRayaLucaria = 14000800, + [Annotation(Name = "Rennala, Queen of the Full Moon - Academy of Raya Lucaria", Description = "Academy of Raya Lucaria")] + RennalaQueenOfTheFullMoonAcademyOfRayaLucaria = 14000800, - [Annotation(Name = "Red Wolf of Radagon - Academy of Raya Lucaria", Description = "Academy of Raya Lucaria")] - RedWolfOfRadagonAcademyOfRayaLucaria = 14000850, + [Annotation(Name = "Red Wolf of Radagon - Academy of Raya Lucaria", Description = "Academy of Raya Lucaria")] + RedWolfOfRadagonAcademyOfRayaLucaria = 14000850, - [Annotation(Name = "Malenia, Blade of Miquella - Miquella's Haligtree", Description = "Miquella's Haligtree")] - MaleniaBladeOfMiquellaMiquellasHaligtree = 15000800, + [Annotation(Name = "Malenia, Blade of Miquella - Miquella's Haligtree", Description = "Miquella's Haligtree")] + MaleniaBladeOfMiquellaMiquellasHaligtree = 15000800, - [Annotation(Name = "Loretta, Knight of the Haligtree - Miquella's Haligtree", Description = "Miquella's Haligtree")] - LorettaKnightOfTheHaligtreeMiquellasHaligtree = 15000850, + [Annotation(Name = "Loretta, Knight of the Haligtree - Miquella's Haligtree", Description = "Miquella's Haligtree")] + LorettaKnightOfTheHaligtreeMiquellasHaligtree = 15000850, - [Annotation(Name = "Rykard, Lord of Blasphemy - Volcano Manor", Description = "Volcano Manor")] - RykardLordOfBlasphemyVolcanoManor = 16000800, + [Annotation(Name = "Rykard, Lord of Blasphemy - Volcano Manor", Description = "Volcano Manor")] + RykardLordOfBlasphemyVolcanoManor = 16000800, - [Annotation(Name = "Godskin Noble - Volcano Manor", Description = "Volcano Manor")] - GodskinNobleVolcanoManor = 16000850, + [Annotation(Name = "Godskin Noble - Volcano Manor", Description = "Volcano Manor")] + GodskinNobleVolcanoManor = 16000850, - [Annotation(Name = "Abductor Virgins - Volcano Manor", Description = "Volcano Manor")] - AbductorVirginsVolcanoManor = 16000860, + [Annotation(Name = "Abductor Virgins - Volcano Manor", Description = "Volcano Manor")] + AbductorVirginsVolcanoManor = 16000860, - [Annotation(Name = "Ulcerated Tree Spirit - Stranded Graveyard", Description = "Stranded Graveyard")] - UlceratedTreeSpiritStrandedGraveyard = 18000800, + [Annotation(Name = "Ulcerated Tree Spirit - Stranded Graveyard", Description = "Stranded Graveyard")] + UlceratedTreeSpiritStrandedGraveyard = 18000800, - [Annotation(Name = "Soldier of Godrick - Stranded Graveyard", Description = "Stranded Graveyard")] - SoldierOfGodrickStrandedGraveyard = 18000850, + [Annotation(Name = "Soldier of Godrick - Stranded Graveyard", Description = "Stranded Graveyard")] + SoldierOfGodrickStrandedGraveyard = 18000850, - [Annotation(Name = "Elden Beast - Elden Throne", Description = "Leyndell")] - EldenBeastEldenThrone = 19000800, + [Annotation(Name = "Elden Beast - Elden Throne", Description = "Leyndell")] + EldenBeastEldenThrone = 19000800, - [Annotation(Name = "Mohg, The Omen - Subterranean Shunning-Grounds (Leyndell)", Description = "Subterranean Shunning-Grounds")] - MohgTheOmenSubterraneanShunningGroundsLeyndell = 35000800, + [Annotation(Name = "Mohg, The Omen - Subterranean Shunning-Grounds (Leyndell)", Description = "Subterranean Shunning-Grounds")] + MohgTheOmenSubterraneanShunningGroundsLeyndell = 35000800, - [Annotation(Name = "Esgar, Priest of Blood - Subterranean Shunning-Grounds (Leyndell)", Description = "Subterranean Shunning-Grounds")] - EsgarPriestOfBloodSubterraneanShunningGroundsLeyndell = 35000850, + [Annotation(Name = "Esgar, Priest of Blood - Subterranean Shunning-Grounds (Leyndell)", Description = "Subterranean Shunning-Grounds")] + EsgarPriestOfBloodSubterraneanShunningGroundsLeyndell = 35000850, - [Annotation(Name = "Magma Wyrm Makar - Ruin-Strewn Precipice (Liurnia)", Description = "Liurnia of the Lakes")] - MagmaWyrmMakarRuinStrewnPrecipiceLiurnia = 39200800, + [Annotation(Name = "Magma Wyrm Makar - Ruin-Strewn Precipice (Liurnia)", Description = "Liurnia of the Lakes")] + MagmaWyrmMakarRuinStrewnPrecipiceLiurnia = 39200800, - [Annotation(Name = "Cemetery Shade - Tombsward Catacombs (Limgrave)", Description = "Limgrave")] - CemeteryShadeTombswardCatacombsLimgrave = 30000800, + [Annotation(Name = "Cemetery Shade - Tombsward Catacombs (Limgrave)", Description = "Limgrave")] + CemeteryShadeTombswardCatacombsLimgrave = 30000800, - [Annotation(Name = "Erdtree Burial Watchdog - Impaler's Catacombs (Weeping Penisula)", Description = "Weeping Peninsula")] - ErdtreeBurialWatchdogImpalersCatacombsWeepingPenisula = 30010800, + [Annotation(Name = "Erdtree Burial Watchdog - Impaler's Catacombs (Weeping Penisula)", Description = "Weeping Peninsula")] + ErdtreeBurialWatchdogImpalersCatacombsWeepingPenisula = 30010800, - [Annotation(Name = "Erdtree Burial Watchdog - Stormfoot Catacombs (Limgrave)", Description = "Limgrave")] - ErdtreeBurialWatchdogStormfootCatacombsLimgrave = 30020800, + [Annotation(Name = "Erdtree Burial Watchdog - Stormfoot Catacombs (Limgrave)", Description = "Limgrave")] + ErdtreeBurialWatchdogStormfootCatacombsLimgrave = 30020800, - [Annotation(Name = "Black Knife Assassin - Deathtouched Catacombs (Limgrave)", Description = "Limgrave")] - BlackKnifeAssassinDeathtouchedCatacombsLimgrave = 30110800, + [Annotation(Name = "Black Knife Assassin - Deathtouched Catacombs (Limgrave)", Description = "Limgrave")] + BlackKnifeAssassinDeathtouchedCatacombsLimgrave = 30110800, - [Annotation(Name = "Grave Warden Duelist - Murkwater Catacombs (Limgrave)", Description = "Limgrave")] - GraveWardenDuelistMurkwaterCatacombsLimgrave = 30040800, + [Annotation(Name = "Grave Warden Duelist - Murkwater Catacombs (Limgrave)", Description = "Limgrave")] + GraveWardenDuelistMurkwaterCatacombsLimgrave = 30040800, - [Annotation(Name = "Cemetery Shade - Black Knife Catacombs (Liurnia)", Description = "Liurnia of the Lakes")] - CemeteryShadeBlackKnifeCatacombsLiurnia = 30050800, + [Annotation(Name = "Cemetery Shade - Black Knife Catacombs (Liurnia)", Description = "Liurnia of the Lakes")] + CemeteryShadeBlackKnifeCatacombsLiurnia = 30050800, - [Annotation(Name = "Black Knife Assassin - Black Knife Catacombs (Liurnia)", Description = "Liurnia of the Lakes")] - BlackKnifeAssassinBlackKnifeCatacombsLiurnia = 30050850, + [Annotation(Name = "Black Knife Assassin - Black Knife Catacombs (Liurnia)", Description = "Liurnia of the Lakes")] + BlackKnifeAssassinBlackKnifeCatacombsLiurnia = 30050850, - [Annotation(Name = "Spirit-Caller Snail - Road's End Catacombs (Liurnia)", Description = "Liurnia of the Lakes")] - SpiritCallerSnailRoadsEndCatacombsLiurnia = 30030800, + [Annotation(Name = "Spirit-Caller Snail - Road's End Catacombs (Liurnia)", Description = "Liurnia of the Lakes")] + SpiritCallerSnailRoadsEndCatacombsLiurnia = 30030800, - [Annotation(Name = "Erdtree Burial Watchdog - Cliffbottom Catacombs (Liurnia)", Description = "Liurnia of the Lakes")] - ErdtreeBurialWatchdogCliffbottomCatacombsLiurnia = 30060800, + [Annotation(Name = "Erdtree Burial Watchdog - Cliffbottom Catacombs (Liurnia)", Description = "Liurnia of the Lakes")] + ErdtreeBurialWatchdogCliffbottomCatacombsLiurnia = 30060800, - [Annotation(Name = "Ancient Hero of Zamor - Sainted Hero's Grave (Altus Plateau)", Description = "Altus Plateau")] - AncientHeroOfZamorSaintedHerosGraveAltusPlateau = 30080800, + [Annotation(Name = "Ancient Hero of Zamor - Sainted Hero's Grave (Altus Plateau)", Description = "Altus Plateau")] + AncientHeroOfZamorSaintedHerosGraveAltusPlateau = 30080800, - [Annotation(Name = "Red Wolf of the Champion - Gelmir Hero's Grave (Mt. Gelmir)", Description = "Mt. Gelmir")] - RedWolfOfTheChampionGelmirHerosGraveMtGelmir = 30090800, + [Annotation(Name = "Red Wolf of the Champion - Gelmir Hero's Grave (Mt. Gelmir)", Description = "Mt. Gelmir")] + RedWolfOfTheChampionGelmirHerosGraveMtGelmir = 30090800, - [Annotation(Name = "Crucible Knight Ordovis - Auriza Hero's Grave (Altus Plateau)", Description = "Altus Plateau")] - CrucibleKnightOrdovisAurizaHerosGraveAltusPlateau = 30100800, + [Annotation(Name = "Crucible Knight Ordovis - Auriza Hero's Grave (Altus Plateau)", Description = "Altus Plateau")] + CrucibleKnightOrdovisAurizaHerosGraveAltusPlateau = 30100800, - [Annotation(Name = "Crucible Knight (Tree Spear) - Auriza Hero's Grave (Altus Plateau)", Description = "Altus Plateau")] - CrucibleKnightTreeSpearAurizaHerosGraveAltusPlateau = 30100800, + [Annotation(Name = "Crucible Knight (Tree Spear) - Auriza Hero's Grave (Altus Plateau)", Description = "Altus Plateau")] + CrucibleKnightTreeSpearAurizaHerosGraveAltusPlateau = 30100800, - [Annotation(Name = "Misbegotten Warrior - Unsightly Catacombs (Mt. Gelmir)", Description = "Mt. Gelmir")] - MisbegottenWarriorUnsightlyCatacombsMtGelmir = 30120800, + [Annotation(Name = "Misbegotten Warrior - Unsightly Catacombs (Mt. Gelmir)", Description = "Mt. Gelmir")] + MisbegottenWarriorUnsightlyCatacombsMtGelmir = 30120800, - [Annotation(Name = "Perfumer Tricia - Unsightly Catacombs (Mt. Gelmir)", Description = "Mt. Gelmir")] - PerfumerTriciaUnsightlyCatacombsMtGelmir = 30120800, + [Annotation(Name = "Perfumer Tricia - Unsightly Catacombs (Mt. Gelmir)", Description = "Mt. Gelmir")] + PerfumerTriciaUnsightlyCatacombsMtGelmir = 30120800, - [Annotation(Name = "Erdtree Burial Watchdog - Wyndham Catacombs (Altus Plateau)", Description = "Altus Plateau")] - ErdtreeBurialWatchdogWyndhamCatacombsAltusPlateau = 30070800, + [Annotation(Name = "Erdtree Burial Watchdog - Wyndham Catacombs (Altus Plateau)", Description = "Altus Plateau")] + ErdtreeBurialWatchdogWyndhamCatacombsAltusPlateau = 30070800, - [Annotation(Name = "Grave Warden Duelist - Auriza Side Tomb (Altus Plateau)", Description = "Altus Plateau")] - GraveWardenDuelistAurizaSideTombAltusPlateau = 30130800, + [Annotation(Name = "Grave Warden Duelist - Auriza Side Tomb (Altus Plateau)", Description = "Altus Plateau")] + GraveWardenDuelistAurizaSideTombAltusPlateau = 30130800, - [Annotation(Name = "Erdtree Burial Watchdog - Minor Erdtree Catacombs (Caelid)", Description = "Caelid")] - ErdtreeBurialWatchdogMinorErdtreeCatacombsCaelid = 30140800, + [Annotation(Name = "Erdtree Burial Watchdog - Minor Erdtree Catacombs (Caelid)", Description = "Caelid")] + ErdtreeBurialWatchdogMinorErdtreeCatacombsCaelid = 30140800, - [Annotation(Name = "Cemetery Shade - Caelid Catacombs (Caelid)", Description = "Caelid")] - CemeteryShadeCaelidCatacombsCaelid = 30150800, + [Annotation(Name = "Cemetery Shade - Caelid Catacombs (Caelid)", Description = "Caelid")] + CemeteryShadeCaelidCatacombsCaelid = 30150800, - [Annotation(Name = "Putrid Tree Spirit - War-Dead Catacombs (Caelid)", Description = "Caelid")] - PutridTreeSpiritWarDeadCatacombsCaelid = 30160800, + [Annotation(Name = "Putrid Tree Spirit - War-Dead Catacombs (Caelid)", Description = "Caelid")] + PutridTreeSpiritWarDeadCatacombsCaelid = 30160800, - [Annotation(Name = "Ancient Hero of Zamor - Giant-Conquering Hero's Grave (Mountaintops)", Description = "Mountaintops of the Giants")] - AncientHeroOfZamorGiantConqueringHerosGraveMountaintops = 30170800, + [Annotation(Name = "Ancient Hero of Zamor - Giant-Conquering Hero's Grave (Mountaintops)", Description = "Mountaintops of the Giants")] + AncientHeroOfZamorGiantConqueringHerosGraveMountaintops = 30170800, - [Annotation(Name = "Ulcerated Tree Sprit - Giants' Mountaintop Catacombs (Mountaintops)", Description = "Mountaintops of the Giants")] - UlceratedTreeSpritGiantsMountaintopCatacombsMountaintops = 30180800, + [Annotation(Name = "Ulcerated Tree Sprit - Giants' Mountaintop Catacombs (Mountaintops)", Description = "Mountaintops of the Giants")] + UlceratedTreeSpritGiantsMountaintopCatacombsMountaintops = 30180800, - [Annotation(Name = "Putrid Grave Warden Duelist - Consecrated Snowfield Catacombs (Snowfield)", Description = "Consecrated Snowfield")] - PutridGraveWardenDuelistConsecratedSnowfieldCatacombsSnowfield = 30190800, + [Annotation(Name = "Putrid Grave Warden Duelist - Consecrated Snowfield Catacombs (Snowfield)", Description = "Consecrated Snowfield")] + PutridGraveWardenDuelistConsecratedSnowfieldCatacombsSnowfield = 30190800, - [Annotation(Name = "Stray Mimic Tear - Hidden Path to the Haligtree", Description = "Forbidden Lands")] - StrayMimicTearHiddenPathToTheHaligtree = 30202800, + [Annotation(Name = "Stray Mimic Tear - Hidden Path to the Haligtree", Description = "Forbidden Lands")] + StrayMimicTearHiddenPathToTheHaligtree = 30202800, - [Annotation(Name = "Patches - Murkwater Cave (Limgrave)", Description = "Limgrave")] - PatchesMurkwaterCaveLimgrave = 31000800, + [Annotation(Name = "Patches - Murkwater Cave (Limgrave)", Description = "Limgrave")] + PatchesMurkwaterCaveLimgrave = 31000800, - [Annotation(Name = "Runebear - Earthbore Cave (Weeping Penisula)", Description = "Weeping Peninsula")] - RunebearEarthboreCaveWeepingPenisula = 31010800, + [Annotation(Name = "Runebear - Earthbore Cave (Weeping Penisula)", Description = "Weeping Peninsula")] + RunebearEarthboreCaveWeepingPenisula = 31010800, - [Annotation(Name = "Miranda the Blighted Bloom - Tombsward Cave (Limgrave)", Description = "Limgrave")] - MirandaTheBlightedBloomTombswardCaveLimgrave = 31020800, + [Annotation(Name = "Miranda the Blighted Bloom - Tombsward Cave (Limgrave)", Description = "Limgrave")] + MirandaTheBlightedBloomTombswardCaveLimgrave = 31020800, - [Annotation(Name = "Beastman of Farum Azula - Groveside Cave (Limgrave)", Description = "Limgrave")] - BeastmanOfFarumAzulaGrovesideCaveLimgrave = 31030800, + [Annotation(Name = "Beastman of Farum Azula - Groveside Cave (Limgrave)", Description = "Limgrave")] + BeastmanOfFarumAzulaGrovesideCaveLimgrave = 31030800, - [Annotation(Name = "Demi-Human Chief - Coastal Cave (Limgrave)", Description = "Limgrave")] - DemiHumanChiefCoastalCaveLimgrave = 31150800, + [Annotation(Name = "Demi-Human Chief - Coastal Cave (Limgrave)", Description = "Limgrave")] + DemiHumanChiefCoastalCaveLimgrave = 31150800, - [Annotation(Name = "Guardian Golem - Highroad Cave (Limgrave)", Description = "Limgrave")] - GuardianGolemHighroadCaveLimgrave = 31170800, + [Annotation(Name = "Guardian Golem - Highroad Cave (Limgrave)", Description = "Limgrave")] + GuardianGolemHighroadCaveLimgrave = 31170800, - [Annotation(Name = "Cleanrot Knight - Stillwater Cave (Liurnia)", Description = "Liurnia of the Lakes")] - CleanrotKnightStillwaterCaveLiurnia = 31040800, + [Annotation(Name = "Cleanrot Knight - Stillwater Cave (Liurnia)", Description = "Liurnia of the Lakes")] + CleanrotKnightStillwaterCaveLiurnia = 31040800, - [Annotation(Name = "Bloodhound Knight - Lakeside Crystal Cave (Liurnia)", Description = "Liurnia of the Lakes")] - BloodhoundKnightLakesideCrystalCaveLiurnia = 31050800, + [Annotation(Name = "Bloodhound Knight - Lakeside Crystal Cave (Liurnia)", Description = "Liurnia of the Lakes")] + BloodhoundKnightLakesideCrystalCaveLiurnia = 31050800, - [Annotation(Name = "Crystalians - Academy Crystal Cave (Liurnia)", Description = "Liurnia of the Lakes")] - CrystaliansAcademyCrystalCaveLiurnia = 31060800, + [Annotation(Name = "Crystalians - Academy Crystal Cave (Liurnia)", Description = "Liurnia of the Lakes")] + CrystaliansAcademyCrystalCaveLiurnia = 31060800, - [Annotation(Name = "Kindred of Rot - Seethewater Cave (Mt. Gelmir)", Description = "Mt. Gelmir")] - KindredOfRotSeethewaterCaveMtGelmir = 31070800, + [Annotation(Name = "Kindred of Rot - Seethewater Cave (Mt. Gelmir)", Description = "Mt. Gelmir")] + KindredOfRotSeethewaterCaveMtGelmir = 31070800, - [Annotation(Name = "Demi-Human Queen Margot - Volcano Cave (Mt. Gelmir)", Description = "Mt. Gelmir")] - DemiHumanQueenMargotVolcanoCaveMtGelmir = 31090800, + [Annotation(Name = "Demi-Human Queen Margot - Volcano Cave (Mt. Gelmir)", Description = "Mt. Gelmir")] + DemiHumanQueenMargotVolcanoCaveMtGelmir = 31090800, - [Annotation(Name = "Miranda the Blighted Bloom - Perfumer's Grotto (Altus Plateau)", Description = "Altus Plateau")] - MirandaTheBlightedBloomPerfumersGrottoAltusPlateau = 31180800, + [Annotation(Name = "Miranda the Blighted Bloom - Perfumer's Grotto (Altus Plateau)", Description = "Altus Plateau")] + MirandaTheBlightedBloomPerfumersGrottoAltusPlateau = 31180800, - [Annotation(Name = "Black Knife Assassin - Sage's Cave (Altus Plateau)", Description = "Altus Plateau")] - BlackKnifeAssassinSagesCaveAltusPlateau = 31190800, + [Annotation(Name = "Black Knife Assassin - Sage's Cave (Altus Plateau)", Description = "Altus Plateau")] + BlackKnifeAssassinSagesCaveAltusPlateau = 31190800, - [Annotation(Name = "Necromancer Garris - Sage's Cave (Altus Plateau)", Description = "Altus Plateau")] - NecromancerGarrisSagesCaveAltusPlateau = 31190850, + [Annotation(Name = "Necromancer Garris - Sage's Cave (Altus Plateau)", Description = "Altus Plateau")] + NecromancerGarrisSagesCaveAltusPlateau = 31190850, - [Annotation(Name = "Frenzied Duelist - Gaol Cave (Caelid)", Description = "Caelid")] - FrenziedDuelistGaolCaveCaelid = 31210800, + [Annotation(Name = "Frenzied Duelist - Gaol Cave (Caelid)", Description = "Caelid")] + FrenziedDuelistGaolCaveCaelid = 31210800, - [Annotation(Name = "Beastman of Farum Azula - Dragonbarrow Cave (Dragonbarrow)", Description = "Greyoll's Dragonbarrow")] - BeastmanOfFarumAzulaDragonbarrowCaveDragonbarrow = 31100800, + [Annotation(Name = "Beastman of Farum Azula - Dragonbarrow Cave (Dragonbarrow)", Description = "Greyoll's Dragonbarrow")] + BeastmanOfFarumAzulaDragonbarrowCaveDragonbarrow = 31100800, - [Annotation(Name = "Cleanrot Knight - Abandoned Cave (Caelid)", Description = "Caelid")] - CleanrotKnightAbandonedCaveCaelid = 31200800, + [Annotation(Name = "Cleanrot Knight - Abandoned Cave (Caelid)", Description = "Caelid")] + CleanrotKnightAbandonedCaveCaelid = 31200800, - [Annotation(Name = "Putrid Crystalians - Sellia Hideaway (Caelid)", Description = "Caelid")] - PutridCrystaliansSelliaHideawayCaelid = 31110800, + [Annotation(Name = "Putrid Crystalians - Sellia Hideaway (Caelid)", Description = "Caelid")] + PutridCrystaliansSelliaHideawayCaelid = 31110800, - [Annotation(Name = "Misbegotten Crusader - Cave of the Forlorn (Mountaintops)", Description = "Mountaintops of the Giants")] - MisbegottenCrusaderCaveOfTheForlornMountaintops = 31120800, + [Annotation(Name = "Misbegotten Crusader - Cave of the Forlorn (Mountaintops)", Description = "Mountaintops of the Giants")] + MisbegottenCrusaderCaveOfTheForlornMountaintops = 31120800, - [Annotation(Name = "Spirit-Caller Snail - Spiritcaller's Cave (Mountaintops)", Description = "Mountaintops of the Giants")] - SpiritCallerSnailSpiritcallersCaveMountaintops = 31220800, + [Annotation(Name = "Spirit-Caller Snail - Spiritcaller's Cave (Mountaintops)", Description = "Mountaintops of the Giants")] + SpiritCallerSnailSpiritcallersCaveMountaintops = 31220800, - [Annotation(Name = "Scaly Misbegotten - Morne Tunnel (Weeping Penisula)", Description = "Weeping Peninsula")] - ScalyMisbegottenMorneTunnelWeepingPenisula = 32000800, + [Annotation(Name = "Scaly Misbegotten - Morne Tunnel (Weeping Penisula)", Description = "Weeping Peninsula")] + ScalyMisbegottenMorneTunnelWeepingPenisula = 32000800, - [Annotation(Name = "Stonedigger Troll - Limgrave Tunnels (Limgrave)", Description = "Limgrave")] - StonediggerTrollLimgraveTunnelsLimgrave = 32010800, + [Annotation(Name = "Stonedigger Troll - Limgrave Tunnels (Limgrave)", Description = "Limgrave")] + StonediggerTrollLimgraveTunnelsLimgrave = 32010800, - [Annotation(Name = "Crystalian (Ringblade) - Raya Lucaria Crystal Tunnel (Liurnia)", Description = "Liurnia of the Lakes")] - CrystalianRingbladeRayaLucariaCrystalTunnelLiurnia = 32020800, + [Annotation(Name = "Crystalian (Ringblade) - Raya Lucaria Crystal Tunnel (Liurnia)", Description = "Liurnia of the Lakes")] + CrystalianRingbladeRayaLucariaCrystalTunnelLiurnia = 32020800, - [Annotation(Name = "Stonedigger Troll - Old Altus Tunnel (Altus Plateau)", Description = "Altus Plateau")] - StonediggerTrollOldAltusTunnelAltusPlateau = 32040800, + [Annotation(Name = "Stonedigger Troll - Old Altus Tunnel (Altus Plateau)", Description = "Altus Plateau")] + StonediggerTrollOldAltusTunnelAltusPlateau = 32040800, - [Annotation(Name = "Onyx Lord - Divine Tower of West Altus (Altus Plateau)", Description = "Altus Plateau")] - OnyxLordDivineTowerOfWestAltusAltusPlateau = 34120800, + [Annotation(Name = "Onyx Lord - Divine Tower of West Altus (Altus Plateau)", Description = "Altus Plateau")] + OnyxLordDivineTowerOfWestAltusAltusPlateau = 34120800, - [Annotation(Name = "Crystalian (Ringblade) - Altus Tunnel (Altus Plateau)", Description = "Altus Plateau")] - CrystalianRingbladeAltusTunnelAltusPlateau = 32050800, + [Annotation(Name = "Crystalian (Ringblade) - Altus Tunnel (Altus Plateau)", Description = "Altus Plateau")] + CrystalianRingbladeAltusTunnelAltusPlateau = 32050800, - [Annotation(Name = "Crystalian (Spear) - Altus Tunnel (Altus Plateau)", Description = "Altus Plateau")] - CrystalianSpearAltusTunnelAltusPlateau = 32050800, + [Annotation(Name = "Crystalian (Spear) - Altus Tunnel (Altus Plateau)", Description = "Altus Plateau")] + CrystalianSpearAltusTunnelAltusPlateau = 32050800, - [Annotation(Name = "Magma Wyrm - Gael Tunnel (Caelid)", Description = "Caelid")] - MagmaWyrmGaelTunnelCaelid = 32070800, + [Annotation(Name = "Magma Wyrm - Gael Tunnel (Caelid)", Description = "Caelid")] + MagmaWyrmGaelTunnelCaelid = 32070800, - [Annotation(Name = "Fallingstar Beast - Sellia Crystal Tunnel (Caelid)", Description = "Caelid")] - FallingstarBeastSelliaCrystalTunnelCaelid = 32080800, + [Annotation(Name = "Fallingstar Beast - Sellia Crystal Tunnel (Caelid)", Description = "Caelid")] + FallingstarBeastSelliaCrystalTunnelCaelid = 32080800, - [Annotation(Name = "Astel, Stars of Darkness - Yelough Anix Tunnel (Snowfield)", Description = "Consecrated Snowfield")] - AstelStarsOfDarknessYeloughAnixTunnelSnowfield = 32110800, + [Annotation(Name = "Astel, Stars of Darkness - Yelough Anix Tunnel (Snowfield)", Description = "Consecrated Snowfield")] + AstelStarsOfDarknessYeloughAnixTunnelSnowfield = 32110800, - [Annotation(Name = "Godskin Apostle - Divine Tower of Caelid (Caelid)", Description = "Caelid")] - GodskinApostleDivineTowerOfCaelidCaelid = 34130800, + [Annotation(Name = "Godskin Apostle - Divine Tower of Caelid (Caelid)", Description = "Caelid")] + GodskinApostleDivineTowerOfCaelidCaelid = 34130800, - [Annotation(Name = "Fell Twins - Divine Tower of East Altus (Capital Outskirts)", Description = "Capital Outskirts")] - FellTwinsDivineTowerOfEastAltusCapitalOutskirts = 34140850, + [Annotation(Name = "Fell Twins - Divine Tower of East Altus (Capital Outskirts)", Description = "Capital Outskirts")] + FellTwinsDivineTowerOfEastAltusCapitalOutskirts = 34140850, - [Annotation(Name = "Mad Pumpkin Head - Waypoint Ruins (Limgrave)", Description = "Limgrave")] - MadPumpkinHeadWaypointRuinsLimgrave = 1044360800, + [Annotation(Name = "Mad Pumpkin Head - Waypoint Ruins (Limgrave)", Description = "Limgrave")] + MadPumpkinHeadWaypointRuinsLimgrave = 1044360800, - [Annotation(Name = "Night's Cavalry - Agheel Lake North (Limgrave)", Description = "Limgrave")] - NightsCavalryAgheelLakeNorthLimgrave = 1043370800, + [Annotation(Name = "Night's Cavalry - Agheel Lake North (Limgrave)", Description = "Limgrave")] + NightsCavalryAgheelLakeNorthLimgrave = 1043370800, - [Annotation(Name = "Deathbird - Stormgate (Limgrave)", Description = "Limgrave")] - DeathRiteBirdStormgateLimgrave = 1042380800, + [Annotation(Name = "Deathbird - Stormgate (Limgrave)", Description = "Limgrave")] + DeathRiteBirdStormgateLimgrave = 1042380800, - [Annotation(Name = "Ball-Bearing Hunter - Warmaster's Shack (Limgrave)", Description = "Limgrave")] - BallBearingHunterWarmastersShackLimgrave = 1042380850, + [Annotation(Name = "Ball-Bearing Hunter - Warmaster's Shack (Limgrave)", Description = "Limgrave")] + BallBearingHunterWarmastersShackLimgrave = 1042380850, - [Annotation(Name = "Ancient Hero of Zamor - Weeping Evergaol (Weeping Penisula)", Description = "Weeping Peninsula")] - AncientHeroOfZamorWeepingEvergaolWeepingPenisula = 1042330800, + [Annotation(Name = "Ancient Hero of Zamor - Weeping Evergaol (Weeping Penisula)", Description = "Weeping Peninsula")] + AncientHeroOfZamorWeepingEvergaolWeepingPenisula = 1042330800, - [Annotation(Name = "Bloodhound Knight Darriwill - Forlorn Hound Evergaol (Limgrave)", Description = "Limgrave")] - BloodhoundKnightDarriwillForlornHoundEvergaolLimgrave = 1044350800, + [Annotation(Name = "Bloodhound Knight Darriwill - Forlorn Hound Evergaol (Limgrave)", Description = "Limgrave")] + BloodhoundKnightDarriwillForlornHoundEvergaolLimgrave = 1044350800, - [Annotation(Name = "Crucible Knight - Stormhill Evergaol (Limgrave)", Description = "Limgrave")] - CrucibleKnightStormhillEvergaolLimgrave = 1042370800, + [Annotation(Name = "Crucible Knight - Stormhill Evergaol (Limgrave)", Description = "Limgrave")] + CrucibleKnightStormhillEvergaolLimgrave = 1042370800, - [Annotation(Name = "Erdtree Avatar - Minor Erdtree (Weeping Penisula)", Description = "Weeping Peninsula")] - ErdtreeAvatarMinorErdtreeWeepingPenisula = 1043330800, + [Annotation(Name = "Erdtree Avatar - Minor Erdtree (Weeping Penisula)", Description = "Weeping Peninsula")] + ErdtreeAvatarMinorErdtreeWeepingPenisula = 1043330800, - [Annotation(Name = "Night's Cavalry - Castle Morne Approach (Weeping Penisula)", Description = "Weeping Peninsula")] - NightsCavalryCastleMorneApproachWeepingPenisula = 1044320850, + [Annotation(Name = "Night's Cavalry - Castle Morne Approach (Weeping Penisula)", Description = "Weeping Peninsula")] + NightsCavalryCastleMorneApproachWeepingPenisula = 1044320850, - [Annotation(Name = "Deathbird - Castle Morne Approach (Weeping Penisula)", Description = "Weeping Peninsula")] - DeathRiteBirdCastleMorneApproachWeepingPenisula = 1044320800, + [Annotation(Name = "Deathbird - Castle Morne Approach (Weeping Penisula)", Description = "Weeping Peninsula")] + DeathRiteBirdCastleMorneApproachWeepingPenisula = 1044320800, - [Annotation(Name = "Leonine Misbegotten - Castle Morne (Weeping Penisula)", Description = "Weeping Peninsula")] - LeonineMisbegottenCastleMorneWeepingPenisula = 1043300800, + [Annotation(Name = "Leonine Misbegotten - Castle Morne (Weeping Penisula)", Description = "Weeping Peninsula")] + LeonineMisbegottenCastleMorneWeepingPenisula = 1043300800, - [Annotation(Name = "Tree Sentinel - Church of Elleh (Limgrave)", Description = "Limgrave")] - TreeSentinelChurchOfEllehLimgrave = 1042360800, + [Annotation(Name = "Tree Sentinel - Church of Elleh (Limgrave)", Description = "Limgrave")] + TreeSentinelChurchOfEllehLimgrave = 1042360800, - [Annotation(Name = "Flying Dragon Agheel - Dragon-Burnt Ruins (Limgrave)", Description = "Limgrave")] - FlyingDragonAgheelDragonBurntRuinsLimgrave = 1043360800, + [Annotation(Name = "Flying Dragon Agheel - Dragon-Burnt Ruins (Limgrave)", Description = "Limgrave")] + FlyingDragonAgheelDragonBurntRuinsLimgrave = 1043360800, - [Annotation(Name = "Tibia Mariner - Summonwater Village (Limgrave)", Description = "Limgrave")] - TibiaMarinerSummonwaterVillageLimgrave = 1045390800, + [Annotation(Name = "Tibia Mariner - Summonwater Village (Limgrave)", Description = "Limgrave")] + TibiaMarinerSummonwaterVillageLimgrave = 1045390800, - [Annotation(Name = "Royal Revenant - Kingsrealm Ruins (Liurnia)", Description = "Liurnia of the Lakes")] - RoyalRevenantKingsrealmRuinsLiurnia = 1034480800, + [Annotation(Name = "Royal Revenant - Kingsrealm Ruins (Liurnia)", Description = "Liurnia of the Lakes")] + RoyalRevenantKingsrealmRuinsLiurnia = 1034480800, - [Annotation(Name = "Adan, Thief of Fire - Malefactor's Evergaol (Liurnia)", Description = "Liurnia of the Lakes")] - AdanThiefOfFireMalefactorsEvergaolLiurnia = 1038410800, + [Annotation(Name = "Adan, Thief of Fire - Malefactor's Evergaol (Liurnia)", Description = "Liurnia of the Lakes")] + AdanThiefOfFireMalefactorsEvergaolLiurnia = 1038410800, - [Annotation(Name = "Bols, Carian Knight - Cuckoo's Evergaol (Liurnia)", Description = "Liurnia of the Lakes")] - BolsCarianKnightCuckoosEvergaolLiurnia = 1033450800, + [Annotation(Name = "Bols, Carian Knight - Cuckoo's Evergaol (Liurnia)", Description = "Liurnia of the Lakes")] + BolsCarianKnightCuckoosEvergaolLiurnia = 1033450800, - [Annotation(Name = "Onyx Lord - Royal Grave Evergaol (Liurnia)", Description = "Liurnia of the Lakes")] - OnyxLordRoyalGraveEvergaolLiurnia = 1036500800, + [Annotation(Name = "Onyx Lord - Royal Grave Evergaol (Liurnia)", Description = "Liurnia of the Lakes")] + OnyxLordRoyalGraveEvergaolLiurnia = 1036500800, - [Annotation(Name = "Alecto, Black Knife Ringleader - Moonlight Altar (Liurnia)", Description = "Liurnia of the Lakes")] - AlectoBlackKnifeRingleaderMoonlightAltarLiurnia = 1033420800, + [Annotation(Name = "Alecto, Black Knife Ringleader - Moonlight Altar (Liurnia)", Description = "Liurnia of the Lakes")] + AlectoBlackKnifeRingleaderMoonlightAltarLiurnia = 1033420800, - [Annotation(Name = "Erdtree Avatar - Revenger's Shack (Liurnia)", Description = "Liurnia of the Lakes")] - ErdtreeAvatarRevengersShackLiurnia = 1033430800, + [Annotation(Name = "Erdtree Avatar - Revenger's Shack (Liurnia)", Description = "Liurnia of the Lakes")] + ErdtreeAvatarRevengersShackLiurnia = 1033430800, - [Annotation(Name = "Erdtree Avatar - Minor Erdtree (Liurnia)", Description = "Liurnia of the Lakes")] - ErdtreeAvatarMinorErdtreeLiurnia = 1038480800, + [Annotation(Name = "Erdtree Avatar - Minor Erdtree (Liurnia)", Description = "Liurnia of the Lakes")] + ErdtreeAvatarMinorErdtreeLiurnia = 1038480800, - [Annotation(Name = "Royal Knight Loretta - Carian Manor (Liurnia)", Description = "Liurnia of the Lakes")] - RoyalKnightLorettaCarianManorLiurnia = 1035500800, + [Annotation(Name = "Royal Knight Loretta - Carian Manor (Liurnia)", Description = "Liurnia of the Lakes")] + RoyalKnightLorettaCarianManorLiurnia = 1035500800, - [Annotation(Name = "Ball-Bearing Hunter - Church of Vows (Liurnia)", Description = "Liurnia of the Lakes")] - BallBearingHunterChurchOfVowsLiurnia = 1037460800, + [Annotation(Name = "Ball-Bearing Hunter - Church of Vows (Liurnia)", Description = "Liurnia of the Lakes")] + BallBearingHunterChurchOfVowsLiurnia = 1037460800, - [Annotation(Name = "Night's Cavalry - Liurnia Highway Far North (Liurnia)", Description = "Liurnia of the Lakes")] - NightsCavalryLiurniaHighwayFarNorthLiurnia = 1039430800, + [Annotation(Name = "Night's Cavalry - Liurnia Highway Far North (Liurnia)", Description = "Liurnia of the Lakes")] + NightsCavalryLiurniaHighwayFarNorthLiurnia = 1039430800, - [Annotation(Name = "Night's Cavalry - East Raya Lucaria Gate (Liurnia)", Description = "Liurnia of the Lakes")] - NightsCavalryEastRayaLucariaGateLiurnia = 1036480800, + [Annotation(Name = "Night's Cavalry - East Raya Lucaria Gate (Liurnia)", Description = "Liurnia of the Lakes")] + NightsCavalryEastRayaLucariaGateLiurnia = 1036480800, - [Annotation(Name = "Deathbird - Laskyar Ruins (Liurnia)", Description = "Liurnia of the Lakes")] - DeathRiteBirdLaskyarRuinsLiurnia = 1037420800, + [Annotation(Name = "Deathbird - Laskyar Ruins (Liurnia)", Description = "Liurnia of the Lakes")] + DeathRiteBirdLaskyarRuinsLiurnia = 1037420800, - [Annotation(Name = "Death Rite Bird - Gate Town Northwest (Liurnia)", Description = "Liurnia of the Lakes")] - DeathRiteBirdGateTownNorthwestLiurnia = 1036450800, + [Annotation(Name = "Death Rite Bird - Gate Town Northwest (Liurnia)", Description = "Liurnia of the Lakes")] + DeathRiteBirdGateTownNorthwestLiurnia = 1036450800, - [Annotation(Name = "Glintstone Dragon Smarag - Meeting Place (Liurnia)", Description = "Liurnia of the Lakes")] - GlintstoneDragonSmaragMeetingPlaceLiurnia = 1034450800, + [Annotation(Name = "Glintstone Dragon Smarag - Meeting Place (Liurnia)", Description = "Liurnia of the Lakes")] + GlintstoneDragonSmaragMeetingPlaceLiurnia = 1034450800, - //[Display(Name = "Glintstone Dragon Adula - Ranni's Rise (Liurnia)", Description = "Liurnia of the Lakes")] - //GlintstoneDragonAdulaRannisRiseLiurnia = 1034500800, + //[Display(Name = "Glintstone Dragon Adula - Ranni's Rise (Liurnia)", Description = "Liurnia of the Lakes")] + //GlintstoneDragonAdulaRannisRiseLiurnia = 1034500800, - [Annotation(Name = "Glintstone Dragon Adula - Moonfolk Ruins (Liurnia)", Description = "Liurnia of the Lakes")] - GlintstoneDragonAdulaMoonfolkRuinsLiurnia = 1034420800, + [Annotation(Name = "Glintstone Dragon Adula - Moonfolk Ruins (Liurnia)", Description = "Liurnia of the Lakes")] + GlintstoneDragonAdulaMoonfolkRuinsLiurnia = 1034420800, - [Annotation(Name = "Omenkiller - Village of the Albinaurics (Liurnia)", Description = "Liurnia of the Lakes")] - OmenkillerVillageOfTheAlbinauricsLiurnia = 1035420800, + [Annotation(Name = "Omenkiller - Village of the Albinaurics (Liurnia)", Description = "Liurnia of the Lakes")] + OmenkillerVillageOfTheAlbinauricsLiurnia = 1035420800, - [Annotation(Name = "Tibia Mariner - Jarburg (Liurnia)", Description = "Liurnia of the Lakes")] - TibiaMarinerJarburgLiurnia = 1039440800, + [Annotation(Name = "Tibia Mariner - Jarburg (Liurnia)", Description = "Liurnia of the Lakes")] + TibiaMarinerJarburgLiurnia = 1039440800, - [Annotation(Name = "Ancient Dragon Lansseax - Abandoned Coffin (Altus Plateau)", Description = "Altus Plateau")] - AncientDragonLansseaxAbandonedCoffinAltusPlateau = 1037510800, + [Annotation(Name = "Ancient Dragon Lansseax - Abandoned Coffin (Altus Plateau)", Description = "Altus Plateau")] + AncientDragonLansseaxAbandonedCoffinAltusPlateau = 1037510800, - [Annotation(Name = "Ancient Dragon Lansseax - Rampartside Path (Altus Plateau)", Description = "Altus Plateau")] - AncientDragonLansseaxRampartsidePathAltusPlateau = 1041520800, + [Annotation(Name = "Ancient Dragon Lansseax - Rampartside Path (Altus Plateau)", Description = "Altus Plateau")] + AncientDragonLansseaxRampartsidePathAltusPlateau = 1041520800, - [Annotation(Name = "Demi-Human Queen - Lux Ruins (Altus Plateau)", Description = "Altus Plateau")] - DemiHumanQueenLuxRuinsAltusPlateau = 1038510800, + [Annotation(Name = "Demi-Human Queen - Lux Ruins (Altus Plateau)", Description = "Altus Plateau")] + DemiHumanQueenLuxRuinsAltusPlateau = 1038510800, - [Annotation(Name = "Fallingstar Beast - South of Tree Sentinel Duo (Altus Plateau)", Description = "Altus Plateau")] - FallingstarBeastSouthOfTreeSentinelDuoAltusPlateau = 1041500800, + [Annotation(Name = "Fallingstar Beast - South of Tree Sentinel Duo (Altus Plateau)", Description = "Altus Plateau")] + FallingstarBeastSouthOfTreeSentinelDuoAltusPlateau = 1041500800, - [Annotation(Name = "Sanguine Noble - Writheblood Ruins (Altus Plateau)", Description = "Altus Plateau")] - SanguineNobleWrithebloodRuinsAltusPlateau = 1040530800, + [Annotation(Name = "Sanguine Noble - Writheblood Ruins (Altus Plateau)", Description = "Altus Plateau")] + SanguineNobleWrithebloodRuinsAltusPlateau = 1040530800, - [Annotation(Name = "Tree Sentinel - Tree Sentinel Duo (Altus Plateau)", Description = "Altus Plateau")] - TreeSentinelTreeSentinelDuoAltusPlateau = 1041510800, + [Annotation(Name = "Tree Sentinel - Tree Sentinel Duo (Altus Plateau)", Description = "Altus Plateau")] + TreeSentinelTreeSentinelDuoAltusPlateau = 1041510800, - [Annotation(Name = "Godskin Apostle - Windmill Heights (Altus Plateau)", Description = "Altus Plateau")] - GodskinApostleWindmillHeightsAltusPlateau = 1042550800, + [Annotation(Name = "Godskin Apostle - Windmill Heights (Altus Plateau)", Description = "Altus Plateau")] + GodskinApostleWindmillHeightsAltusPlateau = 1042550800, - [Annotation(Name = "Black Knife Assassin - Sainted Hero's Grave Entrance (Altus Plateau)", Description = "Altus Plateau")] - BlackKnifeAssassinSaintedHerosGraveEntranceAltusPlateau = 1040520800, + [Annotation(Name = "Black Knife Assassin - Sainted Hero's Grave Entrance (Altus Plateau)", Description = "Altus Plateau")] + BlackKnifeAssassinSaintedHerosGraveEntranceAltusPlateau = 1040520800, - [Annotation(Name = "Draconic Tree Sentinel - Capital Rampart (Capital Outskirts)", Description = "Capital Outskirts")] - DraconicTreeSentinelCapitalRampartCapitalOutskirts = 1045520800, + [Annotation(Name = "Draconic Tree Sentinel - Capital Rampart (Capital Outskirts)", Description = "Capital Outskirts")] + DraconicTreeSentinelCapitalRampartCapitalOutskirts = 1045520800, - [Annotation(Name = "Godefroy the Grafted - Golden Lineage Evergaol (Altus Plateau)", Description = "Altus Plateau")] - GodefroyTheGraftedGoldenLineageEvergaolAltusPlateau = 1039500800, + [Annotation(Name = "Godefroy the Grafted - Golden Lineage Evergaol (Altus Plateau)", Description = "Altus Plateau")] + GodefroyTheGraftedGoldenLineageEvergaolAltusPlateau = 1039500800, - [Annotation(Name = "Wormface - Woodfolk Ruins (Altus Plateau)", Description = "Altus Plateau")] - WormfaceWoodfolkRuinsAltusPlateau = 1041530800, + [Annotation(Name = "Wormface - Woodfolk Ruins (Altus Plateau)", Description = "Altus Plateau")] + WormfaceWoodfolkRuinsAltusPlateau = 1041530800, - [Annotation(Name = "Deathbird - Minor Erdtree (Capital Outskirts)", Description = "Capital Outskirts")] - DeathRiteBirdMinorErdtreeCapitalOutskirts = 1044530800, + [Annotation(Name = "Deathbird - Minor Erdtree (Capital Outskirts)", Description = "Capital Outskirts")] + DeathRiteBirdMinorErdtreeCapitalOutskirts = 1044530800, - [Annotation(Name = "Ball-Bearing Hunter - Hermit Merchant's Shack (Capital Outskirts)", Description = "Capital Outskirts")] - BallBearingHunterHermitMerchantsShackCapitalOutskirts = 1043530800, + [Annotation(Name = "Ball-Bearing Hunter - Hermit Merchant's Shack (Capital Outskirts)", Description = "Capital Outskirts")] + BallBearingHunterHermitMerchantsShackCapitalOutskirts = 1043530800, - [Annotation(Name = "Demi-Human Queen - Primeval Sorcerer Azur (Mt. Gelmir)", Description = "Mt. Gelmir")] - DemiHumanQueenPrimevalSorcererAzurMtGelmir = 1037530800, + [Annotation(Name = "Demi-Human Queen - Primeval Sorcerer Azur (Mt. Gelmir)", Description = "Mt. Gelmir")] + DemiHumanQueenPrimevalSorcererAzurMtGelmir = 1037530800, - [Annotation(Name = "Magma Wyrm - Seethewater Terminus (Mt. Gelmir)", Description = "Mt. Gelmir")] - MagmaWyrmSeethewaterTerminusMtGelmir = 1035530800, + [Annotation(Name = "Magma Wyrm - Seethewater Terminus (Mt. Gelmir)", Description = "Mt. Gelmir")] + MagmaWyrmSeethewaterTerminusMtGelmir = 1035530800, - [Annotation(Name = "Full-Grown Fallingstar Beast - Crater (Mt. Gelmir)", Description = "Mt. Gelmir")] - FullGrownFallingstarBeastCraterMtGelmir = 1036540800, + [Annotation(Name = "Full-Grown Fallingstar Beast - Crater (Mt. Gelmir)", Description = "Mt. Gelmir")] + FullGrownFallingstarBeastCraterMtGelmir = 1036540800, - [Annotation(Name = "Elemer of the Briar - Shaded Castle (Altus Plateau)", Description = "Altus Plateau")] - ElemerOfTheBriarShadedCastleAltusPlateau = 1039540800, + [Annotation(Name = "Elemer of the Briar - Shaded Castle (Altus Plateau)", Description = "Altus Plateau")] + ElemerOfTheBriarShadedCastleAltusPlateau = 1039540800, - [Annotation(Name = "Ulcerated Tree Spirit - Minor Erdtree (Mt. Gelmir)", Description = "Mt. Gelmir")] - UlceratedTreeSpiritMinorErdtreeMtGelmir = 1037540810, + [Annotation(Name = "Ulcerated Tree Spirit - Minor Erdtree (Mt. Gelmir)", Description = "Mt. Gelmir")] + UlceratedTreeSpiritMinorErdtreeMtGelmir = 1037540810, - [Annotation(Name = "Tibia Mariner - Wyndham Ruins (Altus Plateau)", Description = "Altus Plateau")] - TibiaMarinerWyndhamRuinsAltusPlateau = 1038520800, + [Annotation(Name = "Tibia Mariner - Wyndham Ruins (Altus Plateau)", Description = "Altus Plateau")] + TibiaMarinerWyndhamRuinsAltusPlateau = 1038520800, - [Annotation(Name = "Putrid Avatar - Minor Erdtree (Caelid)", Description = "Caelid")] - PutridAvatarMinorErdtreeCaelid = 1047400800, + [Annotation(Name = "Putrid Avatar - Minor Erdtree (Caelid)", Description = "Caelid")] + PutridAvatarMinorErdtreeCaelid = 1047400800, - [Annotation(Name = "Decaying Ekzykes - Caelid Highway South (Caelid)", Description = "Caelid")] - DecayingEkzykesCaelidHighwaySouthCaelid = 1048370800, + [Annotation(Name = "Decaying Ekzykes - Caelid Highway South (Caelid)", Description = "Caelid")] + DecayingEkzykesCaelidHighwaySouthCaelid = 1048370800, - [Annotation(Name = "Night's Cavalry - Southern Aeonia Swamp Bank (Caelid)", Description = "Caelid")] - NightsCavalrySouthernAeoniaSwampBankCaelid = 1049370800, + [Annotation(Name = "Night's Cavalry - Southern Aeonia Swamp Bank (Caelid)", Description = "Caelid")] + NightsCavalrySouthernAeoniaSwampBankCaelid = 1049370800, - [Annotation(Name = "Death Rite Bird - Southern Aeonia Swamp Bank (Caelid)", Description = "Caelid")] - DeathRiteBirdSouthernAeoniaSwampBankCaelid = 1049370850, + [Annotation(Name = "Death Rite Bird - Southern Aeonia Swamp Bank (Caelid)", Description = "Caelid")] + DeathRiteBirdSouthernAeoniaSwampBankCaelid = 1049370850, - [Annotation(Name = "Commander O'Neil - East Aeonia Swamp (Caelid)", Description = "Caelid")] - CommanderONeilEastAeoniaSwampCaelid = 1049380800, + [Annotation(Name = "Commander O'Neil - East Aeonia Swamp (Caelid)", Description = "Caelid")] + CommanderONeilEastAeoniaSwampCaelid = 1049380800, - [Annotation(Name = "Crucible Knight - Redmane Castle (Caelid)", Description = "Caelid")] - CrucibleKnightRedmaneCastleCaelid = 1051360800, + [Annotation(Name = "Crucible Knight - Redmane Castle (Caelid)", Description = "Caelid")] + CrucibleKnightRedmaneCastleCaelid = 1051360800, - [Annotation(Name = "Starscourge Radahn - Battlefield (Caelid)", Description = "Caelid")] - StarscourgeRadahnBattlefieldCaelid = 1252380800, + [Annotation(Name = "Starscourge Radahn - Battlefield (Caelid)", Description = "Caelid")] + StarscourgeRadahnBattlefieldCaelid = 1252380800, - [Annotation(Name = "Nox Priest - West Sellia (Caelid)", Description = "Caelid")] - NoxPriestWestSelliaCaelid = 1049390800, + [Annotation(Name = "Nox Priest - West Sellia (Caelid)", Description = "Caelid")] + NoxPriestWestSelliaCaelid = 1049390800, - [Annotation(Name = "Bell-Bearing Hunter - Isolated Merchant's Shack (Dragonbarrow)", Description = "Greyoll's Dragonbarrow")] - BallBearingHunterIsolatedMerchantsShackDragonbarrow = 1048410800, + [Annotation(Name = "Bell-Bearing Hunter - Isolated Merchant's Shack (Dragonbarrow)", Description = "Greyoll's Dragonbarrow")] + BallBearingHunterIsolatedMerchantsShackDragonbarrow = 1048410800, - [Annotation(Name = "Battlemage Hugues - Sellia Crystal Tunnel Entrance (Caelid)", Description = "Caelid")] - BattlemageHuguesSelliaCrystalTunnelEntranceCaelid = 1049390850, + [Annotation(Name = "Battlemage Hugues - Sellia Crystal Tunnel Entrance (Caelid)", Description = "Caelid")] + BattlemageHuguesSelliaCrystalTunnelEntranceCaelid = 1049390850, - [Annotation(Name = "Putrid Avatar - Dragonbarrow Fork (Caelid)", Description = "Caelid")] - PutridAvatarDragonbarrowForkCaelid = 1051400800, + [Annotation(Name = "Putrid Avatar - Dragonbarrow Fork (Caelid)", Description = "Caelid")] + PutridAvatarDragonbarrowForkCaelid = 1051400800, - [Annotation(Name = "Flying Dragon Greyll - Dragonbarrow (Caelid)", Description = "Caelid")] - FlyingDragonGreyllDragonbarrowCaelid = 1052410800, + [Annotation(Name = "Flying Dragon Greyll - Dragonbarrow (Caelid)", Description = "Caelid")] + FlyingDragonGreyllDragonbarrowCaelid = 1052410800, - [Annotation(Name = "Night's Cavalry - Dragonbarrow (Caelid)", Description = "Caelid")] - NightsCavalryDragonbarrowCaelid = 1052410850, + [Annotation(Name = "Night's Cavalry - Dragonbarrow (Caelid)", Description = "Caelid")] + NightsCavalryDragonbarrowCaelid = 1052410850, - [Annotation(Name = "Black Blade Kindred - Bestial Sanctum (Caelid)", Description = "Caelid")] - BlackBladeKindredBestialSanctumCaelid = 1051430800, + [Annotation(Name = "Black Blade Kindred - Bestial Sanctum (Caelid)", Description = "Caelid")] + BlackBladeKindredBestialSanctumCaelid = 1051430800, - [Annotation(Name = "Night's Cavalry - Forbidden Lands (Mountaintops)", Description = "Mountaintops of the Giants")] - NightsCavalryForbiddenLandsMountaintops = 1048510800, + [Annotation(Name = "Night's Cavalry - Forbidden Lands (Mountaintops)", Description = "Mountaintops of the Giants")] + NightsCavalryForbiddenLandsMountaintops = 1048510800, - [Annotation(Name = "Black Blade Kindred - Before Grand Lift of Rold (Mountaintops)", Description = "Mountaintops of the Giants")] - BlackBladeKindredBeforeGrandLiftOfRoldMountaintops = 1049520800, + [Annotation(Name = "Black Blade Kindred - Before Grand Lift of Rold (Mountaintops)", Description = "Mountaintops of the Giants")] + BlackBladeKindredBeforeGrandLiftOfRoldMountaintops = 1049520800, - [Annotation(Name = "Borealis the Freezing Fog - Freezing Fields (Mountaintops)", Description = "Mountaintops of the Giants")] - BorealisTheFreezingFogFreezingFieldsMountaintops = 1254560800, + [Annotation(Name = "Borealis the Freezing Fog - Freezing Fields (Mountaintops)", Description = "Mountaintops of the Giants")] + BorealisTheFreezingFogFreezingFieldsMountaintops = 1254560800, - [Annotation(Name = "Roundtable Knight Vyke - Lord Contender's Evergaol (Mountaintops)", Description = "Mountaintops of the Giants")] - RoundtableKnightVykeLordContendersEvergaolMountaintops = 1053560800, + [Annotation(Name = "Roundtable Knight Vyke - Lord Contender's Evergaol (Mountaintops)", Description = "Mountaintops of the Giants")] + RoundtableKnightVykeLordContendersEvergaolMountaintops = 1053560800, - [Annotation(Name = "Fire Giant - Giant's Forge (Mountaintops)", Description = "Mountaintops of the Giants")] - FireGiantGiantsForgeMountaintops = 1052520800, + [Annotation(Name = "Fire Giant - Giant's Forge (Mountaintops)", Description = "Mountaintops of the Giants")] + FireGiantGiantsForgeMountaintops = 1052520800, - [Annotation(Name = "Erdtree Avatar - Minor Erdtree (Mountaintops)", Description = "Mountaintops of the Giants")] - ErdtreeAvatarMinorErdtreeMountaintops = 1052560800, + [Annotation(Name = "Erdtree Avatar - Minor Erdtree (Mountaintops)", Description = "Mountaintops of the Giants")] + ErdtreeAvatarMinorErdtreeMountaintops = 1052560800, - [Annotation(Name = "Death Rite Bird - West of Castle So (Mountaintops)", Description = "Mountaintops of the Giants")] - DeathRiteBirdWestOfCastleSoMountaintops = 1050570800, + [Annotation(Name = "Death Rite Bird - West of Castle So (Mountaintops)", Description = "Mountaintops of the Giants")] + DeathRiteBirdWestOfCastleSoMountaintops = 1050570800, - [Annotation(Name = "Putrid Avatar - Minor Erdtree (Snowfield)", Description = "Consecrated Snowfield")] - PutridAvatarMinorErdtreeSnowfield = 1050570850, + [Annotation(Name = "Putrid Avatar - Minor Erdtree (Snowfield)", Description = "Consecrated Snowfield")] + PutridAvatarMinorErdtreeSnowfield = 1050570850, - [Annotation(Name = "Commander Niall - Castle Soul (Mountaintops)", Description = "Mountaintops of the Giants")] - CommanderNiallCastleSoulMountaintops = 1051570800, + [Annotation(Name = "Commander Niall - Castle Soul (Mountaintops)", Description = "Mountaintops of the Giants")] + CommanderNiallCastleSoulMountaintops = 1051570800, - [Annotation(Name = "Great Wyrm Theodorix - Albinauric Rise (Mountaintops)", Description = "Mountaintops of the Giants")] - GreatWyrmTheodorixAlbinauricRiseMountaintops = 1050560800, + [Annotation(Name = "Great Wyrm Theodorix - Albinauric Rise (Mountaintops)", Description = "Mountaintops of the Giants")] + GreatWyrmTheodorixAlbinauricRiseMountaintops = 1050560800, - [Annotation(Name = "Night's Cavalry - Sourthwest (Mountaintops)", Description = "Mountaintops of the Giants")] - NightsCavalrySourthwestMountaintops = 1248550800, + [Annotation(Name = "Night's Cavalry - Sourthwest (Mountaintops)", Description = "Mountaintops of the Giants")] + NightsCavalrySourthwestMountaintops = 1248550800, - [Annotation(Name = "Death Rite Bird - Ordina, Liturgical Town (Snowfield)", Description = "Consecrated Snowfield")] - DeathRiteBirdOrdinaLiturgicalTownSnowfield = 1048570800, + [Annotation(Name = "Death Rite Bird - Ordina, Liturgical Town (Snowfield)", Description = "Consecrated Snowfield")] + DeathRiteBirdOrdinaLiturgicalTownSnowfield = 1048570800, - [Annotation(Name = "Pumpkinhead Duo - Caelem Ruins (Caelid)", Description = "Caelid")] - PumpkinheadDuoCaelemRuinsCaelid = 1048400800, + [Annotation(Name = "Pumpkinhead Duo - Caelem Ruins (Caelid)", Description = "Caelid")] + PumpkinheadDuoCaelemRuinsCaelid = 1048400800, - [Annotation(Name = "Night's Cavalry - Altus Highway (Altus Plateau)", Description = "Altus Plateau")] - NightsCavalryAltusHighwayAltusPlateau = 1039510800, + [Annotation(Name = "Night's Cavalry - Altus Highway (Altus Plateau)", Description = "Altus Plateau")] + NightsCavalryAltusHighwayAltusPlateau = 1039510800, - [Annotation(Name = "Ghostflame Dragon - Gravesite Plain (Northwest)", Description = "Gravesite Plain")] - GhostflameDragonGravesitePlain = 2045440800, + [Annotation(Name = "Ghostflame Dragon - Gravesite Plain (Northwest)", Description = "Gravesite Plain")] + GhostflameDragonGravesitePlain = 2045440800, - [Annotation(Name = "Blackgaol Knight - Western Nameless Mausoleum", Description = "Gravesite Plain")] - BlackgaolKnightWesternNamelessMausoleum = 2046410800, + [Annotation(Name = "Blackgaol Knight - Western Nameless Mausoleum", Description = "Gravesite Plain")] + BlackgaolKnightWesternNamelessMausoleum = 2046410800, - [Annotation(Name = "Chief Bloodfiend - Rivermouth Cave", Description = "Gravesite Plain")] - ChiefBloodfiendRivermouthCave = 43000800, + [Annotation(Name = "Chief Bloodfiend - Rivermouth Cave", Description = "Gravesite Plain")] + ChiefBloodfiendRivermouthCave = 43000800, - [Annotation(Name = "Lamenter - Lamenter's Gaol", Description = "Gravesite Plain")] - LamenterLamentersGaol = 41020800, + [Annotation(Name = "Lamenter - Lamenter's Gaol", Description = "Gravesite Plain")] + LamenterLamentersGaol = 41020800, - [Annotation(Name = "Demi-Human Swordmaster Onze - Belurat Gaol", Description = "Gravesite Plain")] - DemiHumanSwordmasterOnzeBeluratGaol = 41000800, + [Annotation(Name = "Demi-Human Swordmaster Onze - Belurat Gaol", Description = "Gravesite Plain")] + DemiHumanSwordmasterOnzeBeluratGaol = 41000800, - [Annotation(Name = "Divine Beast Dancing Lion - Belurat, Tower Settlement", Description = "Belurat, Tower Settlement")] - DivineBeastDancingLionBeluratTowerSettlement = 20000800, + [Annotation(Name = "Divine Beast Dancing Lion - Belurat, Tower Settlement", Description = "Belurat, Tower Settlement")] + DivineBeastDancingLionBeluratTowerSettlement = 20000800, - [Annotation(Name = "Rellana, Twin Moon Knight - Castle Ensis", Description = "Castle Ensis")] - RellanaTwinMoonKnightCastleEnsis = 2048440800, + [Annotation(Name = "Rellana, Twin Moon Knight - Castle Ensis", Description = "Castle Ensis")] + RellanaTwinMoonKnightCastleEnsis = 2048440800, - [Annotation(Name = "Ghostflame Dragon", Description = "Scadu Altus")] - GhostflameDragon = 2049430800, + [Annotation(Name = "Ghostflame Dragon", Description = "Scadu Altus")] + GhostflameDragon = 2049430800, - [Annotation(Name = "Ralva the Great Red Bear", Description = "Scadu Altus")] - RalvatheGreatRedBear = 2049450800, + [Annotation(Name = "Ralva the Great Red Bear", Description = "Scadu Altus")] + RalvatheGreatRedBear = 2049450800, - [Annotation(Name = "Rugalea the Great Red Bear - Rauh Base (Northwest)", Description = "Scadu Altus")] - RugaleatheGreatRedBearRauhBase = 2044470800, + [Annotation(Name = "Rugalea the Great Red Bear - Rauh Base (Northwest)", Description = "Scadu Altus")] + RugaleatheGreatRedBearRauhBase = 2044470800, - [Annotation(Name = "Dryleaf Dane - Moorth Ruins", Description = "Scadu Altus")] - DryleafDaneMoorthRuins = 2049440800, + [Annotation(Name = "Dryleaf Dane - Moorth Ruins", Description = "Scadu Altus")] + DryleafDaneMoorthRuins = 2049440800, - [Annotation(Name = "Black Knight Edredd - Fort of Reprimand", Description = "Scadu Altus")] - BlackKnightEdreddFortofReprimand = 2049430850, + [Annotation(Name = "Black Knight Edredd - Fort of Reprimand", Description = "Scadu Altus")] + BlackKnightEdreddFortofReprimand = 2049430850, - [Annotation(Name = "Black Knight Garrew - Fog Rift Fort", Description = "Scadu Altus")] - BlackKnightGarrewFogRiftFort = 2047450800, + [Annotation(Name = "Black Knight Garrew - Fog Rift Fort", Description = "Scadu Altus")] + BlackKnightGarrewFogRiftFort = 2047450800, - [Annotation(Name = "Red Bear - Northern Nameless Mausoleum", Description = "Scadu Altus")] - RedBearNorthernNamelessMausoleum = 2046450800, + [Annotation(Name = "Red Bear - Northern Nameless Mausoleum", Description = "Scadu Altus")] + RedBearNorthernNamelessMausoleum = 2046450800, - [Annotation(Name = "Rakshasa - Eastern Nameless Mausoleum", Description = "Scadu Altus")] - RakshasaEasternNamelessMausoleum = 2051440800, + [Annotation(Name = "Rakshasa - Eastern Nameless Mausoleum", Description = "Scadu Altus")] + RakshasaEasternNamelessMausoleum = 2051440800, - [Annotation(Name = "Metyr, Mother of Fingers - Cathedral of Manus Metyr", Description = "Scadu Altus")] - MetyrMotherofFingersCathedralofManusMetyr = 25000800, + [Annotation(Name = "Metyr, Mother of Fingers - Cathedral of Manus Metyr", Description = "Scadu Altus")] + MetyrMotherofFingersCathedralofManusMetyr = 25000800, - [Annotation(Name = "Count Ymir, Mother of Fingers - Cathedral of Manus Metyr", Description = "Scadu Altus")] - CountYmirMotherofFingersCathedralofManusMetyr = 2051450800, + [Annotation(Name = "Count Ymir, Mother of Fingers - Cathedral of Manus Metyr", Description = "Scadu Altus")] + CountYmirMotherofFingersCathedralofManusMetyr = 2051450800, - [Annotation(Name = "Death Knight - Fog Rift Catacombs", Description = "Scadu Altus")] - DeathKnightFogRiftCatacombs = 40000800, + [Annotation(Name = "Death Knight - Fog Rift Catacombs", Description = "Scadu Altus")] + DeathKnightFogRiftCatacombs = 40000800, - [Annotation(Name = "Death Knight - Scorpion River Catacombs", Description = "Scadu Altus")] - DeathKnightScorpionRiverCatacombs = 40010800, + [Annotation(Name = "Death Knight - Scorpion River Catacombs", Description = "Scadu Altus")] + DeathKnightScorpionRiverCatacombs = 40010800, - [Annotation(Name = "Curseblade Labirith - Bonny Gaol", Description = "Scadu Altus")] - CursebladeLabirithBonnyGaol = 41010800, + [Annotation(Name = "Curseblade Labirith - Bonny Gaol", Description = "Scadu Altus")] + CursebladeLabirithBonnyGaol = 41010800, - [Annotation(Name = "Golden Hippopotamus - Main Gate Plaza", Description = "Shadow Keep")] - GoldenHippopotamusMainGatePlaza = 21000850, + [Annotation(Name = "Golden Hippopotamus - Main Gate Plaza", Description = "Shadow Keep")] + GoldenHippopotamusMainGatePlaza = 21000850, - [Annotation(Name = "Base Serpent Messmer - Messmer's Dark Chamber", Description = "Shadow Keep")] - BaseSerpentMessmerMessmersDarkChamber = 21010800, + [Annotation(Name = "Base Serpent Messmer - Messmer's Dark Chamber", Description = "Shadow Keep")] + BaseSerpentMessmerMessmersDarkChamber = 21010800, - [Annotation(Name = "Divine Beast Dancing Lion - Ancient Ruins of Rauh", Description = "Ancient Ruins of Rauh")] - DivineBeastDancingLionAncientRuinsofRauh = 2046460800, + [Annotation(Name = "Divine Beast Dancing Lion - Ancient Ruins of Rauh", Description = "Ancient Ruins of Rauh")] + DivineBeastDancingLionAncientRuinsofRauh = 2046460800, - [Annotation(Name = "Romina, Saint of the Bud - Church of the Bud", Description = "Church of the Bud")] - RominaSaintoftheBudChurchoftheBud = 2044450800, + [Annotation(Name = "Romina, Saint of the Bud - Church of the Bud", Description = "Church of the Bud")] + RominaSaintoftheBudChurchoftheBud = 2044450800, - [Annotation(Name = "Ghostflame Dragon - Cerulean Coast", Description = "Cerulean Coast")] - GhostflameDragonCeruleanCoast = 2048380850, + [Annotation(Name = "Ghostflame Dragon - Cerulean Coast", Description = "Cerulean Coast")] + GhostflameDragonCeruleanCoast = 2048380850, - [Annotation(Name = "Dancer of Ranah - Southern Nameless Mausoleum", Description = "Cerulean Coast")] - DancerofRanahSouthernNamelessMausoleum = 2046380800, + [Annotation(Name = "Dancer of Ranah - Southern Nameless Mausoleum", Description = "Cerulean Coast")] + DancerofRanahSouthernNamelessMausoleum = 2046380800, - [Annotation(Name = "Putrescent Knight - Stone Coffin Fissure", Description = "Cerulean Coast")] - PutrescentKnightStoneCoffinFissure = 22000800, + [Annotation(Name = "Putrescent Knight - Stone Coffin Fissure", Description = "Cerulean Coast")] + PutrescentKnightStoneCoffinFissure = 22000800, - [Annotation(Name = "Death Rite Bird - Charo's Hidden Grave", Description = "Charo's Hidden Grave")] - DeathRiteBirdCharosHiddenGrave = 2047390800, + [Annotation(Name = "Death Rite Bird - Charo's Hidden Grave", Description = "Charo's Hidden Grave")] + DeathRiteBirdCharosHiddenGrave = 2047390800, - [Annotation(Name = "Demi-Human Queen Marigga - Charo's Hidden Grave (West)", Description = "Charo's Hidden Grave")] - DemiHumanQueenMariggaCharosHiddenGrave = 2046400800, + [Annotation(Name = "Demi-Human Queen Marigga - Charo's Hidden Grave (West)", Description = "Charo's Hidden Grave")] + DemiHumanQueenMariggaCharosHiddenGrave = 2046400800, - [Annotation(Name = "Jagged Peak Drake - Foot of the Jagged Peak", Description = "Jagged Peak")] - JaggedPeakDrakeFootoftheJaggedPeak = 2049410800, + [Annotation(Name = "Jagged Peak Drake - Foot of the Jagged Peak", Description = "Jagged Peak")] + JaggedPeakDrakeFootoftheJaggedPeak = 2049410800, - [Annotation(Name = "Jagged Peak Drake - Jagged Peak Mountainside", Description = "Jagged Peak")] - JaggedPeakDrakeJaggedPeakMountainside = 2052400800, + [Annotation(Name = "Jagged Peak Drake - Jagged Peak Mountainside", Description = "Jagged Peak")] + JaggedPeakDrakeJaggedPeakMountainside = 2052400800, - [Annotation(Name = "Ancient Dragon-Man - Dragon's Pit", Description = "Jagged Peak")] - AncientDragonManDragonsPit = 43010800, + [Annotation(Name = "Ancient Dragon-Man - Dragon's Pit", Description = "Jagged Peak")] + AncientDragonManDragonsPit = 43010800, - [Annotation(Name = "Ancient Dragon Senessax - Jagged Peak Mountainside", Description = "Jagged Peak")] - AncientDragonSenessaxJaggedPeakMountainside = 2054390850, + [Annotation(Name = "Ancient Dragon Senessax - Jagged Peak Mountainside", Description = "Jagged Peak")] + AncientDragonSenessaxJaggedPeakMountainside = 2054390850, - [Annotation(Name = "Bayle the Dread - Jagged Peak Summit", Description = "Jagged Peak")] - BayletheDreadJaggedPeakSummit = 2054390800, + [Annotation(Name = "Bayle the Dread - Jagged Peak Summit", Description = "Jagged Peak")] + BayletheDreadJaggedPeakSummit = 2054390800, - [Annotation(Name = "Tree Sentinel - Hinterland", Description = "Scaduview")] - TreeSentinelHinterland = 2050470800, + [Annotation(Name = "Tree Sentinel - Hinterland", Description = "Scaduview")] + TreeSentinelHinterland = 2050470800, - [Annotation(Name = "Tree Sentinel - Hinterland Bridge", Description = "Scaduview")] - TreeSentinelHinterlandBridge = 2050480860, + [Annotation(Name = "Tree Sentinel - Hinterland Bridge", Description = "Scaduview")] + TreeSentinelHinterlandBridge = 2050480860, - [Annotation(Name = "Fallingstar Beast - Fingerstone Hill", Description = "Scaduview")] - FallingstarBeastFingerstoneHill = 2052480800, + [Annotation(Name = "Fallingstar Beast - Fingerstone Hill", Description = "Scaduview")] + FallingstarBeastFingerstoneHill = 2052480800, - [Annotation(Name = "Commander Gaius - Scaduview", Description = "Scaduview")] - CommanderGaiusScaduview = 2049480800, + [Annotation(Name = "Commander Gaius - Scaduview", Description = "Scaduview")] + CommanderGaiusScaduview = 2049480800, - [Annotation(Name = "Scadutree Avatar - Scadutree Base", Description = "Scaduview")] - ScadutreeAvatarScadutreeBase = 2050480800, + [Annotation(Name = "Scadutree Avatar - Scadutree Base", Description = "Scaduview")] + ScadutreeAvatarScadutreeBase = 2050480800, - [Annotation(Name = "Jori, Elder Inquisitor - Darklight Catacombs", Description = "Abyssal Woods")] - JoriElderInquisitorDarklightCatacombs = 2052430800, + [Annotation(Name = "Jori, Elder Inquisitor - Darklight Catacombs", Description = "Abyssal Woods")] + JoriElderInquisitorDarklightCatacombs = 2052430800, - [Annotation(Name = "Midra, Lord of Frenzied Flame - Midra's Manse", Description = "Abyssal Woods")] - MidraLordofFrenziedFlameMidrasManse = 28000800, + [Annotation(Name = "Midra, Lord of Frenzied Flame - Midra's Manse", Description = "Abyssal Woods")] + MidraLordofFrenziedFlameMidrasManse = 28000800, - [Annotation(Name = "Radahn, Consort of Miquella - Enir-Ilim", Description = "Enir-Ilim")] - RadahnConsortofMiquellaEnirIlim = 20010800, - } + [Annotation(Name = "Radahn, Consort of Miquella - Enir-Ilim", Description = "Enir-Ilim")] + RadahnConsortofMiquellaEnirIlim = 20010800, } diff --git a/src/SoulMemory/EldenRing/EldenRing.cs b/src/SoulMemory/EldenRing/EldenRing.cs index 1e7485a..64093cf 100644 --- a/src/SoulMemory/EldenRing/EldenRing.cs +++ b/src/SoulMemory/EldenRing/EldenRing.cs @@ -22,600 +22,599 @@ using SoulMemory.Native; using Pointer = SoulMemory.Memory.Pointer; -namespace SoulMemory.EldenRing +namespace SoulMemory.EldenRing; + +public class EldenRing : IGame { - public class EldenRing : IGame - { - private Process? _process = null; - - private readonly Pointer _igt = new Pointer(); - private readonly Pointer _hud = new Pointer(); - private readonly Pointer _playerIns = new Pointer(); - private readonly Pointer _playerGameData = new Pointer(); - private readonly Pointer _inventory = new Pointer(); - private readonly Pointer _menuManImp = new Pointer(); - private readonly Pointer _virtualMemoryFlag = new Pointer(); - private readonly Pointer _noLogo = new Pointer(); - - private long _screenStateOffset; - private long _positionOffset; - private long _mapIdOffset; - private long _playerInsOffset; - + private Process? _process = null; - #region Refresh/init/reset ================================================================================================ - public Process? GetProcess() => _process; + private readonly Pointer _igt = new Pointer(); + private readonly Pointer _hud = new Pointer(); + private readonly Pointer _playerIns = new Pointer(); + private readonly Pointer _playerGameData = new Pointer(); + private readonly Pointer _inventory = new Pointer(); + private readonly Pointer _menuManImp = new Pointer(); + private readonly Pointer _virtualMemoryFlag = new Pointer(); + private readonly Pointer _noLogo = new Pointer(); - public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, "eldenring", InitPointers, ResetPointers); + private long _screenStateOffset; + private long _positionOffset; + private long _mapIdOffset; + private long _playerInsOffset; + - public TreeBuilder GetTreeBuilder() - { - var treeBuilder = new TreeBuilder(); - treeBuilder - .ScanRelative("FD4Time", "48 8b 05 ? ? ? ? 4c 8b 40 08 4d 85 c0 74 0d 45 0f b6 80 be 00 00 00 e9 13 00 00 00", 3, 7) - .AddPointer(_igt, 0, 0xa0) - .AddPointer(_hud, 0, 0x58, 0x9); - - treeBuilder - .ScanRelative("WorldChrManImp", "48 8b 35 ? ? ? ? 48 85 f6 ? ? bb 01 00 00 00 89 5c 24 20 48 8b b6", 3, 7) //48 8B 05 ? ? ? ? 48 85 C0 74 0F 48 39 88 ? ? ? ? 75 06 89 B1 5C 03 00 00 0F 28 05 ? ? ? ? 4C 8D 45 E7 - .AddPointer(_playerIns, 0, _playerInsOffset); - - treeBuilder - .ScanRelative("MenuManImp", "48 8b 0d ? ? ? ? 48 8b 53 08 48 8b 92 d8 00 00 00 48 83 c4 20 5b", 3, 7) - .AddPointer(_menuManImp, 0); - - treeBuilder - //.ScanRelative("VirtualMemoryFlag", "48 83 3d ? ? ? ? 00 75 46 4c 8b 05 ? ? ? ? 4c 89 44 24 40 ba 08 00 00 00 b9 c8 01 00 00", 3, 8) - .ScanRelative("VirtualMemoryFlag", "44 89 7c 24 28 4c 8b 25 ? ? ? ? 4d 85 e4", 8, 7) - .AddPointer(_virtualMemoryFlag, 0x5); - - treeBuilder - .ScanAbsolute("NoLogo", "80 bf b8 00 00 00 00 ? ? 48 8b 05 ? ? ? ? 48 85 c0 75 2e 48 8d 0d", 7) - .AddPointer(_noLogo); + #region Refresh/init/reset ================================================================================================ + public Process? GetProcess() => _process; - return treeBuilder; - } + public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, "eldenring", InitPointers, ResetPointers); - private void InitializeOffsets(Version v) + public TreeBuilder GetTreeBuilder() + { + var treeBuilder = new TreeBuilder(); + treeBuilder + .ScanRelative("FD4Time", "48 8b 05 ? ? ? ? 4c 8b 40 08 4d 85 c0 74 0d 45 0f b6 80 be 00 00 00 e9 13 00 00 00", 3, 7) + .AddPointer(_igt, 0, 0xa0) + .AddPointer(_hud, 0, 0x58, 0x9); + + treeBuilder + .ScanRelative("WorldChrManImp", "48 8b 35 ? ? ? ? 48 85 f6 ? ? bb 01 00 00 00 89 5c 24 20 48 8b b6", 3, 7) //48 8B 05 ? ? ? ? 48 85 C0 74 0F 48 39 88 ? ? ? ? 75 06 89 B1 5C 03 00 00 0F 28 05 ? ? ? ? 4C 8D 45 E7 + .AddPointer(_playerIns, 0, _playerInsOffset); + + treeBuilder + .ScanRelative("MenuManImp", "48 8b 0d ? ? ? ? 48 8b 53 08 48 8b 92 d8 00 00 00 48 83 c4 20 5b", 3, 7) + .AddPointer(_menuManImp, 0); + + treeBuilder + //.ScanRelative("VirtualMemoryFlag", "48 83 3d ? ? ? ? 00 75 46 4c 8b 05 ? ? ? ? 4c 89 44 24 40 ba 08 00 00 00 b9 c8 01 00 00", 3, 8) + .ScanRelative("VirtualMemoryFlag", "44 89 7c 24 28 4c 8b 25 ? ? ? ? 4d 85 e4", 8, 7) + .AddPointer(_virtualMemoryFlag, 0x5); + + treeBuilder + .ScanAbsolute("NoLogo", "80 bf b8 00 00 00 00 ? ? 48 8b 05 ? ? ? ? 48 85 c0 75 2e 48 8d 0d", 7) + .AddPointer(_noLogo); + + return treeBuilder; + } + + private void InitializeOffsets(Version v) + { + var version = GetVersion(v); + switch (version) { - var version = GetVersion(v); - switch (version) - { - case EldenRingVersion.V1_02_0: - case EldenRingVersion.V1_02_1: - case EldenRingVersion.V1_02_2: - case EldenRingVersion.V1_02_3: - _screenStateOffset = 0x718; - _positionOffset = 0x6b8; - _mapIdOffset = 0x6c8; - _playerInsOffset = 0x18468; - break; - - case EldenRingVersion.V1_03_0: - case EldenRingVersion.V1_03_1: - case EldenRingVersion.V1_03_2: - _screenStateOffset = 0x728; - _positionOffset = 0x6b8; - _mapIdOffset = 0x6c8; - _playerInsOffset = 0x18468; - break; - - - case EldenRingVersion.V1_04_0: - case EldenRingVersion.V1_04_1: - case EldenRingVersion.V1_05_0: - case EldenRingVersion.V1_06_0: - _screenStateOffset = 0x728; - _positionOffset = 0x6B0; - _mapIdOffset = 0x6c0; - _playerInsOffset = 0x18468; - break; - - case EldenRingVersion.V1_07_0: - _screenStateOffset = 0x728; - _positionOffset = 0x6B0; - _mapIdOffset = 0x6c0; - _playerInsOffset = 0x1e508; - break; - - case EldenRingVersion.V1_08_0: - case EldenRingVersion.V1_08_1: - case EldenRingVersion.V1_09_0: - case EldenRingVersion.V1_09_1: - case EldenRingVersion.V1_10_0: - case EldenRingVersion.V1_10_1: - _screenStateOffset = 0x728; - _positionOffset = 0x6d4; - _mapIdOffset = 0x6d0; - _playerInsOffset = 0x1e508; - break; - - default: - case EldenRingVersion.V1_12_0: - case EldenRingVersion.V1_12_3: - case EldenRingVersion.V1_13_0: - case EldenRingVersion.V1_14_0: - case EldenRingVersion.V1_15_0: - case EldenRingVersion.V1_16_0: - _screenStateOffset = 0x730; - _positionOffset = 0x6d4; - _mapIdOffset = 0x6d0; - _playerInsOffset = 0x1e508; - break; - } + case EldenRingVersion.V1_02_0: + case EldenRingVersion.V1_02_1: + case EldenRingVersion.V1_02_2: + case EldenRingVersion.V1_02_3: + _screenStateOffset = 0x718; + _positionOffset = 0x6b8; + _mapIdOffset = 0x6c8; + _playerInsOffset = 0x18468; + break; + + case EldenRingVersion.V1_03_0: + case EldenRingVersion.V1_03_1: + case EldenRingVersion.V1_03_2: + _screenStateOffset = 0x728; + _positionOffset = 0x6b8; + _mapIdOffset = 0x6c8; + _playerInsOffset = 0x18468; + break; + + + case EldenRingVersion.V1_04_0: + case EldenRingVersion.V1_04_1: + case EldenRingVersion.V1_05_0: + case EldenRingVersion.V1_06_0: + _screenStateOffset = 0x728; + _positionOffset = 0x6B0; + _mapIdOffset = 0x6c0; + _playerInsOffset = 0x18468; + break; + + case EldenRingVersion.V1_07_0: + _screenStateOffset = 0x728; + _positionOffset = 0x6B0; + _mapIdOffset = 0x6c0; + _playerInsOffset = 0x1e508; + break; + + case EldenRingVersion.V1_08_0: + case EldenRingVersion.V1_08_1: + case EldenRingVersion.V1_09_0: + case EldenRingVersion.V1_09_1: + case EldenRingVersion.V1_10_0: + case EldenRingVersion.V1_10_1: + _screenStateOffset = 0x728; + _positionOffset = 0x6d4; + _mapIdOffset = 0x6d0; + _playerInsOffset = 0x1e508; + break; + + default: + case EldenRingVersion.V1_12_0: + case EldenRingVersion.V1_12_3: + case EldenRingVersion.V1_13_0: + case EldenRingVersion.V1_14_0: + case EldenRingVersion.V1_15_0: + case EldenRingVersion.V1_16_0: + _screenStateOffset = 0x730; + _positionOffset = 0x6d4; + _mapIdOffset = 0x6d0; + _playerInsOffset = 0x1e508; + break; } + } - private ResultErr InitPointers() + private ResultErr InitPointers() + { + try { - try + var versionString = _process?.MainModule?.FileVersionInfo.ProductVersion ?? "Read failed"; + if (!Version.TryParse(versionString, out Version v)) { - var versionString = _process?.MainModule?.FileVersionInfo.ProductVersion ?? "Read failed"; - if (!Version.TryParse(versionString, out Version v)) - { - return Result.Err(new RefreshError(RefreshErrorReason.UnknownException, $"Unable to determine game version: {versionString}")); - } + return Result.Err(new RefreshError(RefreshErrorReason.UnknownException, $"Unable to determine game version: {versionString}")); + } - InitializeOffsets(v); + InitializeOffsets(v); - var treeBuilder = GetTreeBuilder(); - var result = MemoryScanner.TryResolvePointers(treeBuilder, _process); - if (result.IsErr) - { - _igt.Clear(); - return result; - } + var treeBuilder = GetTreeBuilder(); + var result = MemoryScanner.TryResolvePointers(treeBuilder, _process); + if (result.IsErr) + { + _igt.Clear(); + return result; + } - ApplyNoLogo(); + ApplyNoLogo(); - if (!soulmods.Soulmods.Inject(_process!)) - { - _igt.Clear(); - return Result.Err(new RefreshError(RefreshErrorReason.UnknownException, "soulmods injection failed")); - } - - return Result.Ok(); - } - catch (Exception e) + if (!soulmods.Soulmods.Inject(_process!)) { - if(e.Message == "Access is denied") - { - _process = null; - return Result.Err(new RefreshError(RefreshErrorReason.AccessDenied, "Access is denied. Make sure you disable easy anti cheat and try running livesplit as admin.")); - } - - return RefreshError.FromException(e); + _igt.Clear(); + return Result.Err(new RefreshError(RefreshErrorReason.UnknownException, "soulmods injection failed")); } + + return Result.Ok(); } - - private void ResetPointers() + catch (Exception e) { - _igt.Clear(); - _hud.Clear(); - _playerIns.Clear(); - _playerGameData.Clear(); - _inventory.Clear(); - _menuManImp.Clear(); - _virtualMemoryFlag.Clear(); - _noLogo.Clear(); - } + if(e.Message == "Access is denied") + { + _process = null; + return Result.Err(new RefreshError(RefreshErrorReason.AccessDenied, "Access is denied. Make sure you disable easy anti cheat and try running livesplit as admin.")); + } - #endregion + return RefreshError.FromException(e); + } + } + + private void ResetPointers() + { + _igt.Clear(); + _hud.Clear(); + _playerIns.Clear(); + _playerGameData.Clear(); + _inventory.Clear(); + _menuManImp.Clear(); + _virtualMemoryFlag.Clear(); + _noLogo.Clear(); + } - #region version ================================================================================================ + #endregion - private readonly List<(EldenRingVersion eldenRingVersion, Version version)> _versions = new List<(EldenRingVersion, Version)>() - { + #region version ================================================================================================ - (EldenRingVersion.V1_02_0, new Version(1,2,0,0)), - (EldenRingVersion.V1_02_1, new Version(1,2,1,0)), - (EldenRingVersion.V1_02_2, new Version(1,2,2,0)), - (EldenRingVersion.V1_02_3, new Version(1,2,3,0)), - (EldenRingVersion.V1_03_0, new Version(1,3,0,0)), - (EldenRingVersion.V1_03_1, new Version(1,3,1,0)), - (EldenRingVersion.V1_03_2, new Version(1,3,2,0)), - (EldenRingVersion.V1_04_0, new Version(1,4,0,0)), - (EldenRingVersion.V1_04_1, new Version(1,4,1,0)), - (EldenRingVersion.V1_05_0, new Version(1,5,0,0)), - (EldenRingVersion.V1_06_0, new Version(1,6,0,0)), - (EldenRingVersion.V1_07_0, new Version(1,7,0,0)), - (EldenRingVersion.V1_08_0, new Version(1,8,0,0)), - (EldenRingVersion.V1_08_1, new Version(1,8,1,0)), - (EldenRingVersion.V1_09_0, new Version(1,9,0,0)), - (EldenRingVersion.V1_09_1, new Version(1,9,1,0)), - //1.10 turned into 2.0.0.0 for some reason - (EldenRingVersion.V1_10_0, new Version(2,0,0,0)), - (EldenRingVersion.V1_10_0, new Version(2,0,0,1)), //JP-only version for 1.10 - (EldenRingVersion.V1_10_1, new Version(2,0,1,0)), - (EldenRingVersion.V1_12_0, new Version(2,2,0,0)), - (EldenRingVersion.V1_12_3, new Version(2,2,3,0)), - (EldenRingVersion.V1_13_0, new Version(2,3,0,0)), - (EldenRingVersion.V1_14_0, new Version(2,4,0,0)), - (EldenRingVersion.V1_15_0, new Version(2,5,0,0)), - (EldenRingVersion.V1_16_0, new Version(2,6,0,0)), - }; + private readonly List<(EldenRingVersion eldenRingVersion, Version version)> _versions = new List<(EldenRingVersion, Version)>() + { - public enum EldenRingVersion - { - - V1_02_0, - V1_02_1, - V1_02_2, - V1_02_3, + (EldenRingVersion.V1_02_0, new Version(1,2,0,0)), + (EldenRingVersion.V1_02_1, new Version(1,2,1,0)), + (EldenRingVersion.V1_02_2, new Version(1,2,2,0)), + (EldenRingVersion.V1_02_3, new Version(1,2,3,0)), + (EldenRingVersion.V1_03_0, new Version(1,3,0,0)), + (EldenRingVersion.V1_03_1, new Version(1,3,1,0)), + (EldenRingVersion.V1_03_2, new Version(1,3,2,0)), + (EldenRingVersion.V1_04_0, new Version(1,4,0,0)), + (EldenRingVersion.V1_04_1, new Version(1,4,1,0)), + (EldenRingVersion.V1_05_0, new Version(1,5,0,0)), + (EldenRingVersion.V1_06_0, new Version(1,6,0,0)), + (EldenRingVersion.V1_07_0, new Version(1,7,0,0)), + (EldenRingVersion.V1_08_0, new Version(1,8,0,0)), + (EldenRingVersion.V1_08_1, new Version(1,8,1,0)), + (EldenRingVersion.V1_09_0, new Version(1,9,0,0)), + (EldenRingVersion.V1_09_1, new Version(1,9,1,0)), + //1.10 turned into 2.0.0.0 for some reason + (EldenRingVersion.V1_10_0, new Version(2,0,0,0)), + (EldenRingVersion.V1_10_0, new Version(2,0,0,1)), //JP-only version for 1.10 + (EldenRingVersion.V1_10_1, new Version(2,0,1,0)), + (EldenRingVersion.V1_12_0, new Version(2,2,0,0)), + (EldenRingVersion.V1_12_3, new Version(2,2,3,0)), + (EldenRingVersion.V1_13_0, new Version(2,3,0,0)), + (EldenRingVersion.V1_14_0, new Version(2,4,0,0)), + (EldenRingVersion.V1_15_0, new Version(2,5,0,0)), + (EldenRingVersion.V1_16_0, new Version(2,6,0,0)), + }; + + public enum EldenRingVersion + { + + V1_02_0, + V1_02_1, + V1_02_2, + V1_02_3, - V1_03_0, - V1_03_1, - V1_03_2, + V1_03_0, + V1_03_1, + V1_03_2, - V1_04_0, - V1_04_1, + V1_04_0, + V1_04_1, - V1_05_0, - V1_06_0, - V1_07_0, + V1_05_0, + V1_06_0, + V1_07_0, - V1_08_0, - V1_08_1, + V1_08_0, + V1_08_1, - V1_09_0, - V1_09_1, + V1_09_0, + V1_09_1, - V1_10_0, - V1_10_1, + V1_10_0, + V1_10_1, - V1_12_0, - V1_12_3, + V1_12_0, + V1_12_3, - V1_13_0, - V1_14_0, - V1_15_0, - V1_16_0, + V1_13_0, + V1_14_0, + V1_15_0, + V1_16_0, - Unknown, - }; + Unknown, + }; - public EldenRingVersion GetVersion(Version v) + public EldenRingVersion GetVersion(Version v) + { + var version = _versions.FirstOrDefault(i => i.version.CompareTo(v) == 0); + if (version.version == null) { - var version = _versions.FirstOrDefault(i => i.version.CompareTo(v) == 0); - if (version.version == null) - { - return EldenRingVersion.Unknown; - } - - return version.eldenRingVersion; + return EldenRingVersion.Unknown; } - #endregion + return version.eldenRingVersion; + } + + #endregion - public void EnableHud() + public void EnableHud() + { + if (_hud != null) { - if (_hud != null) - { - var b = _hud.ReadByte(); - b |= 0x1; //Not sure if this whole byte is reserved for the HUD setting. Just going to write a 1 to the first bit and preserve the other bits. - _hud.WriteByte(null, b); - } + var b = _hud.ReadByte(); + b |= 0x1; //Not sure if this whole byte is reserved for the HUD setting. Just going to write a 1 to the first bit and preserve the other bits. + _hud.WriteByte(null, b); } + } - public Position GetPosition() + public Position GetPosition() + { + var map = _playerIns.ReadInt32(_mapIdOffset); + return new Position() { - var map = _playerIns.ReadInt32(_mapIdOffset); - return new Position() - { - Area = (byte)(map >> 24 & 0xff), - Block = (byte)(map >> 16 & 0xff), - Region = (byte)(map >> 8 & 0xff), - Size = (byte)(map & 0xff), - - X = _playerIns.ReadFloat(_positionOffset + 0x0), - Y = _playerIns.ReadFloat(_positionOffset + 0x4), - Z = _playerIns.ReadFloat(_positionOffset + 0x8), - }; - } + Area = (byte)(map >> 24 & 0xff), + Block = (byte)(map >> 16 & 0xff), + Region = (byte)(map >> 8 & 0xff), + Size = (byte)(map & 0xff), + + X = _playerIns.ReadFloat(_positionOffset + 0x0), + Y = _playerIns.ReadFloat(_positionOffset + 0x4), + Z = _playerIns.ReadFloat(_positionOffset + 0x8), + }; + } - public bool IsPlayerLoaded() + public bool IsPlayerLoaded() + { + var player = _playerIns.ReadInt64(); + return player != 0; + } + + public ScreenState GetScreenState() + { + var screenState = _menuManImp?.ReadInt32(_screenStateOffset) ?? (int)ScreenState.Unknown; + if (screenState.TryParseEnum(out ScreenState s)) { - var player = _playerIns.ReadInt64(); - return player != 0; + return s; } - - public ScreenState GetScreenState() + return ScreenState.Unknown; + } + + public bool IsBlackscreenActive() + { + var screenState = GetScreenState(); + if (screenState != ScreenState.InGame) { - var screenState = _menuManImp?.ReadInt32(_screenStateOffset) ?? (int)ScreenState.Unknown; - if (screenState.TryParseEnum(out ScreenState s)) - { - return s; - } - return ScreenState.Unknown; + return false; } - - public bool IsBlackscreenActive() + + var flag = _menuManImp.ReadInt32(0x18); + + if ( + (flag & 0x1) == 1 && + (flag >> 8 & 0x1) == 0 && + (flag >> 16 & 0x1) == 1 + ) { - var screenState = GetScreenState(); - if (screenState != ScreenState.InGame) - { - return false; - } + return true; + } + else + { + return false; + } + } + + private void ApplyNoLogo() + { + _process!.NtSuspendProcess(); + _noLogo.WriteBytes(null, new byte[] { 0x90, 0x90 }); + _process!.NtResumeProcess(); + } + - var flag = _menuManImp.ReadInt32(0x18); + #region Read inventory + //Got some help from Nordgaren to read the inventory. Cheers! + //https://github.com/Nordgaren/Erd-Tools - if ( - (flag & 0x1) == 1 && - (flag >> 8 & 0x1) == 0 && - (flag >> 16 & 0x1) == 1 - ) + private const int InventoryEntrySize = 0x14; + + private int DeleteFromEnd(int num, int n) + { + for (int i = 1; num != 0; i++) + { + num = num / 10; + + if (i == n) + return num; + } + + return 0; + } + + public List ReadInventory() + { + var items = new List(); + + var inventoryCount = _playerGameData.ReadInt32(0x420); + var inventory = _inventory.ReadBytes(inventoryCount * InventoryEntrySize); + + for (int i = 0; i < inventoryCount; i++) + { + var itemIndex = i * InventoryEntrySize; + + + + var itemId = BitConverter.ToInt32(new byte[] + { + inventory[itemIndex + 0x4], + inventory[itemIndex + 0x5], + inventory[itemIndex + 0x6], + 0x0, + }, 0); + + byte cat = inventory[itemIndex + 0X7]; + byte mask = 0xF0; + cat &= mask; + var category = (Category)(cat * 0x1000000); + + if (category == Category.Weapons) { - return true; + itemId = DeleteFromEnd(itemId, 2) * 100; } - else + + var item = Item.FromLookupTable(category, (uint)itemId); + if (item != null) { - return false; + Console.WriteLine($"{item.GroupName} {item.Name}"); + items.Add(item); } } + + return items; + } - private void ApplyNoLogo() + #endregion + + #region Read event flag + + public bool ReadEventFlag(uint eventFlagId) + { + var divisor = _virtualMemoryFlag.ReadInt32(0x1c); + //This check does not exist in the games code; reading 0 here means something isn't initialized yet and we should check this flag again later. + if (divisor == 0) { - _process!.NtSuspendProcess(); - _noLogo.WriteBytes(null, new byte[] { 0x90, 0x90 }); - _process!.NtResumeProcess(); + return false; } + var category = (eventFlagId / divisor); //stored in rax after; div r8d + var leastSignificantDigits = eventFlagId - (category * divisor);//stored in r11 after; sub r11d,r8d - #region Read inventory - //Got some help from Nordgaren to read the inventory. Cheers! - //https://github.com/Nordgaren/Erd-Tools - - private const int InventoryEntrySize = 0x14; + var currentElement = _virtualMemoryFlag.CreatePointerFromAddress(0x38); //rdx + var currentSubElement = currentElement.CreatePointerFromAddress(0x8); //rcx - private int DeleteFromEnd(int num, int n) + while (currentSubElement.ReadByte(0x19) == '\0') //cmp [rcx+19],r9l -> r9 get's cleared before this instruction and will always be 0 { - for (int i = 1; num != 0; i++) + if (currentSubElement.ReadInt32(0x20) < category) { - num = num / 10; - - if (i == n) - return num; + currentSubElement = currentSubElement.CreatePointerFromAddress(0x10); } - - return 0; - } - - public List ReadInventory() - { - var items = new List(); - - var inventoryCount = _playerGameData.ReadInt32(0x420); - var inventory = _inventory.ReadBytes(inventoryCount * InventoryEntrySize); - - for (int i = 0; i < inventoryCount; i++) + else { - var itemIndex = i * InventoryEntrySize; - - - - var itemId = BitConverter.ToInt32(new byte[] - { - inventory[itemIndex + 0x4], - inventory[itemIndex + 0x5], - inventory[itemIndex + 0x6], - 0x0, - }, 0); - - byte cat = inventory[itemIndex + 0X7]; - byte mask = 0xF0; - cat &= mask; - var category = (Category)(cat * 0x1000000); - - if (category == Category.Weapons) - { - itemId = DeleteFromEnd(itemId, 2) * 100; - } - - var item = Item.FromLookupTable(category, (uint)itemId); - if (item != null) - { - Console.WriteLine($"{item.GroupName} {item.Name}"); - items.Add(item); - } + currentElement = currentSubElement; + currentSubElement = currentSubElement.CreatePointerFromAddress(0x0); } - - return items; } - #endregion - - #region Read event flag + if (currentElement.GetAddress() == currentSubElement.GetAddress() || category < currentElement.ReadInt32(0x20)) + { + currentElement = currentSubElement; + } - public bool ReadEventFlag(uint eventFlagId) + if (currentElement.GetAddress() != currentSubElement.GetAddress()) { - var divisor = _virtualMemoryFlag.ReadInt32(0x1c); - //This check does not exist in the games code; reading 0 here means something isn't initialized yet and we should check this flag again later. - if (divisor == 0) - { - return false; - } + var mysteryValue = currentElement.ReadInt32(0x28) - 1; + + //These if statements can obviously be optimized in C#. + //They are written out like this explicitly, to match the game's assembly - var category = (eventFlagId / divisor); //stored in rax after; div r8d - var leastSignificantDigits = eventFlagId - (category * divisor);//stored in r11 after; sub r11d,r8d + long calculatedPointer = 0; - var currentElement = _virtualMemoryFlag.CreatePointerFromAddress(0x38); //rdx - var currentSubElement = currentElement.CreatePointerFromAddress(0x8); //rcx - - while (currentSubElement.ReadByte(0x19) == '\0') //cmp [rcx+19],r9l -> r9 get's cleared before this instruction and will always be 0 + //jump to calculate ptr if zero + if (mysteryValue != 0) { - if (currentSubElement.ReadInt32(0x20) < category) + //jnz skip to return, otherwise set calculated ptr + if (mysteryValue != 1) { - currentSubElement = currentSubElement.CreatePointerFromAddress(0x10); + calculatedPointer = currentElement.ReadInt64(0x30); } else { - currentElement = currentSubElement; - currentSubElement = currentSubElement.CreatePointerFromAddress(0x0); + return false; } } - - if (currentElement.GetAddress() == currentSubElement.GetAddress() || category < currentElement.ReadInt32(0x20)) + else { - currentElement = currentSubElement; + calculatedPointer = (_virtualMemoryFlag.ReadInt32(0x20) * currentElement.ReadInt32(0x30)) + _virtualMemoryFlag.ReadInt64(0x28); } - if (currentElement.GetAddress() != currentSubElement.GetAddress()) + if (calculatedPointer != 0) { - var mysteryValue = currentElement.ReadInt32(0x28) - 1; - - //These if statements can obviously be optimized in C#. - //They are written out like this explicitly, to match the game's assembly - - long calculatedPointer = 0; - - //jump to calculate ptr if zero - if (mysteryValue != 0) + var thing = 7 - (leastSignificantDigits & 7); + var anotherThing = 1 << (int)thing; + var shifted = leastSignificantDigits >> 3; + + var pointer = new Pointer(); + pointer.Initialize(_process!, _virtualMemoryFlag.Is64Bit, calculatedPointer + shifted); + var read = pointer.ReadInt32(); + if ((read & anotherThing) != 0) { - //jnz skip to return, otherwise set calculated ptr - if (mysteryValue != 1) - { - calculatedPointer = currentElement.ReadInt64(0x30); - } - else - { - return false; - } - } - else - { - calculatedPointer = (_virtualMemoryFlag.ReadInt32(0x20) * currentElement.ReadInt32(0x30)) + _virtualMemoryFlag.ReadInt64(0x28); - } - - if (calculatedPointer != 0) - { - var thing = 7 - (leastSignificantDigits & 7); - var anotherThing = 1 << (int)thing; - var shifted = leastSignificantDigits >> 3; - - var pointer = new Pointer(); - pointer.Initialize(_process!, _virtualMemoryFlag.Is64Bit, calculatedPointer + shifted); - var read = pointer.ReadInt32(); - if ((read & anotherThing) != 0) - { - return true; - } + return true; } } - - return false; - - // From Ghidra, elden ring 1.03.2 runtime dump. - // param_1 is rcx, holds a pointer to the VirtualMemoryFlag instance - // param_2 is edx, holds the event flag ID - - // ************************************************************** - // * * - // * FUNCTION * - // ************************************************************** - // bool __fastcall ReadEventFlag(longlong param_1, uint par - // bool AL:1 XREF[1]: 7ff743a6a8c4(W) - // longlong RCX:8 param_1 - // uint EDX:4 param_2 XREF[1]: 7ff743a6a8a4(W) - // undefined8 RDX:8 currentElement XREF[1]: 7ff743a6a8a4(W) - // undefined8 RAX:8 calculated_pointer XREF[1]: 7ff743a6a8c4(W) - // undefined8 HASH:5ff087e firstElement - // ReadEventFlag XREF[8]: FUN_7ff743a451a0:7ff743a451aa(c), - // FUN_7ff743a451d0:7ff743a45212(c), - // FUN_7ff743a45260:7ff743a452a2(c), - // FUN_7ff743a45580:7ff743a45663(c), - // SetEventFlag:7ff743a45a28(c), - // FUN_7ff743a45ae0:7ff743a45b04(c), - // FUN_7ff743a45ba0:7ff743a45bf0(c), - // FUN_7ff743a45ca0:7ff743a45cf0(c) - //7ff743a6a850 44 8b 41 1c MOV R8D,dword ptr [param_1 + 0x1c] - //7ff743a6a854 44 8b da MOV R11D,param_2 - //7ff743a6a857 33 d2 XOR param_2,param_2 - //7ff743a6a859 41 8b c3 MOV EAX,R11D - //7ff743a6a85c 41 f7 f0 DIV R8D - //7ff743a6a85f 4c 8b d1 MOV R10,param_1 - //7ff743a6a862 45 33 c9 XOR R9D,R9D - //7ff743a6a865 44 0f af c0 IMUL R8D,EAX - //7ff743a6a869 45 2b d8 SUB R11D,R8D - //7ff743a6a86c 4c 8b 41 38 MOV R8,qword ptr [param_1 + 0x38] - //7ff743a6a870 49 8b d0 MOV param_2,R8 - //7ff743a6a873 49 8b 48 08 MOV param_1,qword ptr [R8 + 0x8] - //7ff743a6a877 44 38 49 19 CMP byte ptr [param_1 + 0x19],R9B - //7ff743a6a87b 75 1a JNZ after_element_loop - //7ff743a6a87d 0f 1f 00 NOP dword ptr [RAX] - - - // element_loop XREF[1]: 7ff743a6a895(j) - //7ff743a6a880 39 41 20 CMP dword ptr [param_1 + 0x20],EAX - //7ff743a6a883 73 06 JNC LAB_7ff743a6a88b - //7ff743a6a885 48 8b 49 10 MOV param_1,qword ptr [param_1 + 0x10] - //7ff743a6a889 eb 06 JMP LAB_7ff743a6a891 - // LAB_7ff743a6a88b XREF[1]: 7ff743a6a883(j) - //7ff743a6a88b 48 8b d1 MOV param_2,param_1 - //7ff743a6a88e 48 8b 09 MOV param_1,qword ptr [param_1] - // LAB_7ff743a6a891 XREF[1]: 7ff743a6a889(j) - //7ff743a6a891 44 38 49 19 CMP byte ptr [param_1 + 0x19],R9B - //7ff743a6a895 74 e9 JZ element_loop - - - // after_element_loop XREF[1]: 7ff743a6a87b(j) - //7ff743a6a897 49 3b d0 CMP param_2,R8 after while loop - //7ff743a6a89a 74 05 JZ LAB_7ff743a6a8a1 - //7ff743a6a89c 3b 42 20 CMP EAX,dword ptr [param_2 + 0x20] - //7ff743a6a89f 73 03 JNC LAB_7ff743a6a8a4 - // LAB_7ff743a6a8a1 XREF[1]: 7ff743a6a89a(j) - //7ff743a6a8a1 49 8b d0 MOV param_2,R8 - // LAB_7ff743a6a8a4 XREF[1]: 7ff743a6a89f(j) - //7ff743a6a8a4 49 3b d0 CMP currentElement,R8 skip to return - //7ff743a6a8a7 74 49 JZ skip_to_return - //7ff743a6a8a9 8b 4a 28 MOV param_1,dword ptr [currentElement + 0x28] Read value from currentElement + 0x28 (usually 1 when debugging) - //7ff743a6a8ac 83 e9 01 SUB param_1,0x1 subtract 1 - //7ff743a6a8af 74 0b JZ build_pointer if value is 0, jump to build_pointer - //7ff743a6a8b1 83 f9 01 CMP param_1,0x1 compare value to 1 - if equal, sets the zero flag - //7ff743a6a8b4 75 3c JNZ skip_to_return if zero flag is NOT set, jump to skip_to_return - //7ff743a6a8b6 48 8b 42 30 MOV RAX,qword ptr [currentElement + 0x30] do not build pointer, instead consider [currentElement + 0x30] as the built pointer - //7ff743a6a8ba eb 0c JMP bitwise_operations - // build_pointer XREF[1]: 7ff743a6a8af(j) - //7ff743a6a8bc 8b 42 30 MOV EAX,dword ptr [currentElement + 0x30] - //7ff743a6a8bf 41 0f af IMUL EAX,dword ptr [R10 + 0x20] - // 42 20 - //7ff743a6a8c4 49 03 42 28 ADD calculated_pointer,qword ptr [R10 + 0x28] - - - // bitwise_operations XREF[1]: 7ff743a6a8ba(j) - //7ff743a6a8c8 48 85 c0 TEST calculated_pointer,calculated_pointer - //7ff743a6a8cb 74 25 JZ skip_to_return - //7ff743a6a8cd b9 07 00 MOV param_1,0x7 - // 00 00 - //7ff743a6a8d2 41 8b d3 MOV currentElement,R11D - //7ff743a6a8d5 83 e2 07 AND currentElement,0x7 - //7ff743a6a8d8 41 b8 01 MOV R8D,0x1 - // 00 00 00 - //7ff743a6a8de 2b ca SUB param_1,currentElement - //7ff743a6a8e0 41 d3 e0 SHL R8D,param_1 - //7ff743a6a8e3 41 8b cb MOV param_1,R11D - //7ff743a6a8e6 48 c1 e9 03 SHR param_1,0x3 - //7ff743a6a8ea 44 84 04 01 TEST byte ptr [param_1 + calculated_pointer*0x1],R8B - //7ff743a6a8ee 41 0f 95 c1 SETNZ R9B - - - // skip_to_return XREF[3]: 7ff743a6a8a7(j), 7ff743a6a8b4(j), - // 7ff743a6a8cb(j) - //7ff743a6a8f2 41 8b c1 MOV calculated_pointer,R9D - //7ff743a6a8f5 c3 RET } - #endregion + return false; + + // From Ghidra, elden ring 1.03.2 runtime dump. + // param_1 is rcx, holds a pointer to the VirtualMemoryFlag instance + // param_2 is edx, holds the event flag ID + + // ************************************************************** + // * * + // * FUNCTION * + // ************************************************************** + // bool __fastcall ReadEventFlag(longlong param_1, uint par + // bool AL:1 XREF[1]: 7ff743a6a8c4(W) + // longlong RCX:8 param_1 + // uint EDX:4 param_2 XREF[1]: 7ff743a6a8a4(W) + // undefined8 RDX:8 currentElement XREF[1]: 7ff743a6a8a4(W) + // undefined8 RAX:8 calculated_pointer XREF[1]: 7ff743a6a8c4(W) + // undefined8 HASH:5ff087e firstElement + // ReadEventFlag XREF[8]: FUN_7ff743a451a0:7ff743a451aa(c), + // FUN_7ff743a451d0:7ff743a45212(c), + // FUN_7ff743a45260:7ff743a452a2(c), + // FUN_7ff743a45580:7ff743a45663(c), + // SetEventFlag:7ff743a45a28(c), + // FUN_7ff743a45ae0:7ff743a45b04(c), + // FUN_7ff743a45ba0:7ff743a45bf0(c), + // FUN_7ff743a45ca0:7ff743a45cf0(c) + //7ff743a6a850 44 8b 41 1c MOV R8D,dword ptr [param_1 + 0x1c] + //7ff743a6a854 44 8b da MOV R11D,param_2 + //7ff743a6a857 33 d2 XOR param_2,param_2 + //7ff743a6a859 41 8b c3 MOV EAX,R11D + //7ff743a6a85c 41 f7 f0 DIV R8D + //7ff743a6a85f 4c 8b d1 MOV R10,param_1 + //7ff743a6a862 45 33 c9 XOR R9D,R9D + //7ff743a6a865 44 0f af c0 IMUL R8D,EAX + //7ff743a6a869 45 2b d8 SUB R11D,R8D + //7ff743a6a86c 4c 8b 41 38 MOV R8,qword ptr [param_1 + 0x38] + //7ff743a6a870 49 8b d0 MOV param_2,R8 + //7ff743a6a873 49 8b 48 08 MOV param_1,qword ptr [R8 + 0x8] + //7ff743a6a877 44 38 49 19 CMP byte ptr [param_1 + 0x19],R9B + //7ff743a6a87b 75 1a JNZ after_element_loop + //7ff743a6a87d 0f 1f 00 NOP dword ptr [RAX] + + + // element_loop XREF[1]: 7ff743a6a895(j) + //7ff743a6a880 39 41 20 CMP dword ptr [param_1 + 0x20],EAX + //7ff743a6a883 73 06 JNC LAB_7ff743a6a88b + //7ff743a6a885 48 8b 49 10 MOV param_1,qword ptr [param_1 + 0x10] + //7ff743a6a889 eb 06 JMP LAB_7ff743a6a891 + // LAB_7ff743a6a88b XREF[1]: 7ff743a6a883(j) + //7ff743a6a88b 48 8b d1 MOV param_2,param_1 + //7ff743a6a88e 48 8b 09 MOV param_1,qword ptr [param_1] + // LAB_7ff743a6a891 XREF[1]: 7ff743a6a889(j) + //7ff743a6a891 44 38 49 19 CMP byte ptr [param_1 + 0x19],R9B + //7ff743a6a895 74 e9 JZ element_loop + + + // after_element_loop XREF[1]: 7ff743a6a87b(j) + //7ff743a6a897 49 3b d0 CMP param_2,R8 after while loop + //7ff743a6a89a 74 05 JZ LAB_7ff743a6a8a1 + //7ff743a6a89c 3b 42 20 CMP EAX,dword ptr [param_2 + 0x20] + //7ff743a6a89f 73 03 JNC LAB_7ff743a6a8a4 + // LAB_7ff743a6a8a1 XREF[1]: 7ff743a6a89a(j) + //7ff743a6a8a1 49 8b d0 MOV param_2,R8 + // LAB_7ff743a6a8a4 XREF[1]: 7ff743a6a89f(j) + //7ff743a6a8a4 49 3b d0 CMP currentElement,R8 skip to return + //7ff743a6a8a7 74 49 JZ skip_to_return + //7ff743a6a8a9 8b 4a 28 MOV param_1,dword ptr [currentElement + 0x28] Read value from currentElement + 0x28 (usually 1 when debugging) + //7ff743a6a8ac 83 e9 01 SUB param_1,0x1 subtract 1 + //7ff743a6a8af 74 0b JZ build_pointer if value is 0, jump to build_pointer + //7ff743a6a8b1 83 f9 01 CMP param_1,0x1 compare value to 1 - if equal, sets the zero flag + //7ff743a6a8b4 75 3c JNZ skip_to_return if zero flag is NOT set, jump to skip_to_return + //7ff743a6a8b6 48 8b 42 30 MOV RAX,qword ptr [currentElement + 0x30] do not build pointer, instead consider [currentElement + 0x30] as the built pointer + //7ff743a6a8ba eb 0c JMP bitwise_operations + // build_pointer XREF[1]: 7ff743a6a8af(j) + //7ff743a6a8bc 8b 42 30 MOV EAX,dword ptr [currentElement + 0x30] + //7ff743a6a8bf 41 0f af IMUL EAX,dword ptr [R10 + 0x20] + // 42 20 + //7ff743a6a8c4 49 03 42 28 ADD calculated_pointer,qword ptr [R10 + 0x28] + + + // bitwise_operations XREF[1]: 7ff743a6a8ba(j) + //7ff743a6a8c8 48 85 c0 TEST calculated_pointer,calculated_pointer + //7ff743a6a8cb 74 25 JZ skip_to_return + //7ff743a6a8cd b9 07 00 MOV param_1,0x7 + // 00 00 + //7ff743a6a8d2 41 8b d3 MOV currentElement,R11D + //7ff743a6a8d5 83 e2 07 AND currentElement,0x7 + //7ff743a6a8d8 41 b8 01 MOV R8D,0x1 + // 00 00 00 + //7ff743a6a8de 2b ca SUB param_1,currentElement + //7ff743a6a8e0 41 d3 e0 SHL R8D,param_1 + //7ff743a6a8e3 41 8b cb MOV param_1,R11D + //7ff743a6a8e6 48 c1 e9 03 SHR param_1,0x3 + //7ff743a6a8ea 44 84 04 01 TEST byte ptr [param_1 + calculated_pointer*0x1],R8B + //7ff743a6a8ee 41 0f 95 c1 SETNZ R9B + + + // skip_to_return XREF[3]: 7ff743a6a8a7(j), 7ff743a6a8b4(j), + // 7ff743a6a8cb(j) + //7ff743a6a8f2 41 8b c1 MOV calculated_pointer,R9D + //7ff743a6a8f5 c3 RET + } - #region Timeable - public int GetInGameTimeMilliseconds() - { - return _igt.ReadInt32(); - } - public void WriteInGameTimeMilliseconds(int milliseconds) - { - _igt.WriteInt32(milliseconds); - } + #endregion - #endregion + #region Timeable + public int GetInGameTimeMilliseconds() + { + return _igt.ReadInt32(); + } + public void WriteInGameTimeMilliseconds(int milliseconds) + { + _igt.WriteInt32(milliseconds); } + + #endregion } diff --git a/src/SoulMemory/EldenRing/Grace.cs b/src/SoulMemory/EldenRing/Grace.cs index d274c3c..eb75ee8 100644 --- a/src/SoulMemory/EldenRing/Grace.cs +++ b/src/SoulMemory/EldenRing/Grace.cs @@ -14,1338 +14,1337 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -namespace SoulMemory.EldenRing +namespace SoulMemory.EldenRing; + +public enum Grace : uint { - public enum Grace : uint - { - //Academy of Raya Lucaria + //Academy of Raya Lucaria - [Annotation(Name = "Raya Lucaria Grand Library", Description = "Academy of Raya Lucaria")] - RayaLucariaGrandLibrary = 71400, + [Annotation(Name = "Raya Lucaria Grand Library", Description = "Academy of Raya Lucaria")] + RayaLucariaGrandLibrary = 71400, - [Annotation(Name = "Debate Parlor", Description = "Academy of Raya Lucaria")] - DebateParlor = 71401, + [Annotation(Name = "Debate Parlor", Description = "Academy of Raya Lucaria")] + DebateParlor = 71401, - [Annotation(Name = "Church of the Cuckoo", Description = "Academy of Raya Lucaria")] - ChurchOfTheCuckoo = 71402, + [Annotation(Name = "Church of the Cuckoo", Description = "Academy of Raya Lucaria")] + ChurchOfTheCuckoo = 71402, - [Annotation(Name = "Schoolhouse Classroom", Description = "Academy of Raya Lucaria")] - SchoolhouseClassroom = 71403, + [Annotation(Name = "Schoolhouse Classroom", Description = "Academy of Raya Lucaria")] + SchoolhouseClassroom = 71403, - //Ainsel River + //Ainsel River - [Annotation(Name = "Dragonkin Soldier of Nokstella", Description = "Ainsel River")] - DragonkinSoldierOfNokstella = 71210, + [Annotation(Name = "Dragonkin Soldier of Nokstella", Description = "Ainsel River")] + DragonkinSoldierOfNokstella = 71210, - [Annotation(Name = "Ainsel River Well Depths", Description = "Ainsel River")] - AinselRiverWellDepths = 71211, + [Annotation(Name = "Ainsel River Well Depths", Description = "Ainsel River")] + AinselRiverWellDepths = 71211, - [Annotation(Name = "Ainsel River Sluice Gate", Description = "Ainsel River")] - AinselRiverSluiceGate = 71212, + [Annotation(Name = "Ainsel River Sluice Gate", Description = "Ainsel River")] + AinselRiverSluiceGate = 71212, - [Annotation(Name = "Ainsel River Downstream", Description = "Ainsel River")] - AinselRiverDownstream = 71213, + [Annotation(Name = "Ainsel River Downstream", Description = "Ainsel River")] + AinselRiverDownstream = 71213, - [Annotation(Name = "Astel, Naturalborn of the Void", Description = "Ainsel River")] - AstelNaturalbornOfTheVoid = 71240, + [Annotation(Name = "Astel, Naturalborn of the Void", Description = "Ainsel River")] + AstelNaturalbornOfTheVoid = 71240, - //Ainsel River Main + //Ainsel River Main - [Annotation(Name = "Ainsel River Main", Description = "Ainsel River Main")] - AinselRiverMain = 71214, + [Annotation(Name = "Ainsel River Main", Description = "Ainsel River Main")] + AinselRiverMain = 71214, - [Annotation(Name = "Nokstella, Eternal City", Description = "Ainsel River Main")] - NokstellaEternalCity = 71215, + [Annotation(Name = "Nokstella, Eternal City", Description = "Ainsel River Main")] + NokstellaEternalCity = 71215, - [Annotation(Name = "Nokstella Waterfall Basin", Description = "Ainsel River Main")] - NokstellaWaterfallBasin = 71219, + [Annotation(Name = "Nokstella Waterfall Basin", Description = "Ainsel River Main")] + NokstellaWaterfallBasin = 71219, - //Altus Plateau + //Altus Plateau - [Annotation(Name = "Sainted Hero's Grave", Description = "Altus Plateau")] - SaintedHerosGrave = 73008, + [Annotation(Name = "Sainted Hero's Grave", Description = "Altus Plateau")] + SaintedHerosGrave = 73008, - [Annotation(Name = "Unsightly Catacombs", Description = "Altus Plateau")] - UnsightlyCatacombs = 73012, + [Annotation(Name = "Unsightly Catacombs", Description = "Altus Plateau")] + UnsightlyCatacombs = 73012, - [Annotation(Name = "Perfumer's Grotto", Description = "Altus Plateau")] - PerfumersGrotto = 73118, + [Annotation(Name = "Perfumer's Grotto", Description = "Altus Plateau")] + PerfumersGrotto = 73118, - [Annotation(Name = "Sage's Cave", Description = "Altus Plateau")] - SagesCave = 73119, + [Annotation(Name = "Sage's Cave", Description = "Altus Plateau")] + SagesCave = 73119, - [Annotation(Name = "Old Altus Tunnel", Description = "Altus Plateau")] - OldAltusTunnel = 73204, + [Annotation(Name = "Old Altus Tunnel", Description = "Altus Plateau")] + OldAltusTunnel = 73204, - [Annotation(Name = "Altus Tunnel", Description = "Altus Plateau")] - AltusTunnel = 73205, + [Annotation(Name = "Altus Tunnel", Description = "Altus Plateau")] + AltusTunnel = 73205, - [Annotation(Name = "Abandoned Coffin", Description = "Altus Plateau")] - AbandonedCoffin = 76300, + [Annotation(Name = "Abandoned Coffin", Description = "Altus Plateau")] + AbandonedCoffin = 76300, - [Annotation(Name = "Altus Plateau", Description = "Altus Plateau")] - AltusPlateau = 76301, + [Annotation(Name = "Altus Plateau", Description = "Altus Plateau")] + AltusPlateau = 76301, - [Annotation(Name = "Erdtree-Gazing Hill", Description = "Altus Plateau")] - ErdtreeGazingHill = 76302, + [Annotation(Name = "Erdtree-Gazing Hill", Description = "Altus Plateau")] + ErdtreeGazingHill = 76302, - [Annotation(Name = "Altus Highway Junction", Description = "Altus Plateau")] - AltusHighwayJunction = 76303, + [Annotation(Name = "Altus Highway Junction", Description = "Altus Plateau")] + AltusHighwayJunction = 76303, - [Annotation(Name = "Forest-Spanning Greatbridge", Description = "Altus Plateau")] - ForestSpanningGreatbridge = 76304, + [Annotation(Name = "Forest-Spanning Greatbridge", Description = "Altus Plateau")] + ForestSpanningGreatbridge = 76304, - [Annotation(Name = "Rampartside Path", Description = "Altus Plateau")] - RampartsidePath = 76305, + [Annotation(Name = "Rampartside Path", Description = "Altus Plateau")] + RampartsidePath = 76305, - [Annotation(Name = "Bower of Bounty", Description = "Altus Plateau")] - BowerOfBounty = 76306, + [Annotation(Name = "Bower of Bounty", Description = "Altus Plateau")] + BowerOfBounty = 76306, - [Annotation(Name = "Road of Iniquity Side Path", Description = "Altus Plateau")] - RoadOfIniquitySidePath = 76307, + [Annotation(Name = "Road of Iniquity Side Path", Description = "Altus Plateau")] + RoadOfIniquitySidePath = 76307, - [Annotation(Name = "Windmill Village", Description = "Altus Plateau")] - WindmillVillage = 76308, + [Annotation(Name = "Windmill Village", Description = "Altus Plateau")] + WindmillVillage = 76308, - [Annotation(Name = "Windmill Heights", Description = "Altus Plateau")] - WindmillHeights = 76313, + [Annotation(Name = "Windmill Heights", Description = "Altus Plateau")] + WindmillHeights = 76313, - [Annotation(Name = "Shaded Castle Ramparts", Description = "Altus Plateau")] - ShadedCastleRamparts = 76320, + [Annotation(Name = "Shaded Castle Ramparts", Description = "Altus Plateau")] + ShadedCastleRamparts = 76320, - [Annotation(Name = "Shaded Castle Inner Gate", Description = "Altus Plateau")] - ShadedCastleInnerGate = 76321, + [Annotation(Name = "Shaded Castle Inner Gate", Description = "Altus Plateau")] + ShadedCastleInnerGate = 76321, - [Annotation(Name = "Castellan's Hall", Description = "Altus Plateau")] - CastellansHall = 76322, + [Annotation(Name = "Castellan's Hall", Description = "Altus Plateau")] + CastellansHall = 76322, - //Bellum Highway + //Bellum Highway - [Annotation(Name = "East Raya Lucaria Gate", Description = "Bellum Highway")] - EastRayaLucariaGate = 76207, + [Annotation(Name = "East Raya Lucaria Gate", Description = "Bellum Highway")] + EastRayaLucariaGate = 76207, - [Annotation(Name = "Bellum Church", Description = "Bellum Highway")] - BellumChurch = 76208, + [Annotation(Name = "Bellum Church", Description = "Bellum Highway")] + BellumChurch = 76208, - [Annotation(Name = "Frenzied Flame Village Outskirts", Description = "Bellum Highway")] - FrenziedFlameVillageOutskirts = 76239, + [Annotation(Name = "Frenzied Flame Village Outskirts", Description = "Bellum Highway")] + FrenziedFlameVillageOutskirts = 76239, - [Annotation(Name = "Church of Inhibition", Description = "Bellum Highway")] - ChurchOfInhibition = 76240, + [Annotation(Name = "Church of Inhibition", Description = "Bellum Highway")] + ChurchOfInhibition = 76240, - //Caelid + //Caelid - [Annotation(Name = "Minor Erdtree Catacombs", Description = "Caelid")] - MinorErdtreeCatacombs = 73014, + [Annotation(Name = "Minor Erdtree Catacombs", Description = "Caelid")] + MinorErdtreeCatacombs = 73014, - [Annotation(Name = "Caelid Catacombs", Description = "Caelid")] - CaelidCatacombs = 73015, + [Annotation(Name = "Caelid Catacombs", Description = "Caelid")] + CaelidCatacombs = 73015, - [Annotation(Name = "War-Dead Catacombs", Description = "Caelid")] - WarDeadCatacombs = 73016, + [Annotation(Name = "War-Dead Catacombs", Description = "Caelid")] + WarDeadCatacombs = 73016, - [Annotation(Name = "Abandoned Cave", Description = "Caelid")] - AbandonedCave = 73120, + [Annotation(Name = "Abandoned Cave", Description = "Caelid")] + AbandonedCave = 73120, - [Annotation(Name = "Gaol Cave", Description = "Caelid")] - GaolCave = 73121, + [Annotation(Name = "Gaol Cave", Description = "Caelid")] + GaolCave = 73121, - [Annotation(Name = "Gael Tunnel", Description = "Caelid")] - GaelTunnel = 73207, + [Annotation(Name = "Gael Tunnel", Description = "Caelid")] + GaelTunnel = 73207, - [Annotation(Name = "Rear Gael Tunnel Entrance", Description = "Caelid")] - RearGaelTunnelEntrance = 73207, + [Annotation(Name = "Rear Gael Tunnel Entrance", Description = "Caelid")] + RearGaelTunnelEntrance = 73207, - [Annotation(Name = "Sellia Crystal Tunnel", Description = "Caelid")] - SelliaCrystalTunnel = 73208, + [Annotation(Name = "Sellia Crystal Tunnel", Description = "Caelid")] + SelliaCrystalTunnel = 73208, - [Annotation(Name = "Smoldering Church", Description = "Caelid")] - SmolderingChurch = 76400, + [Annotation(Name = "Smoldering Church", Description = "Caelid")] + SmolderingChurch = 76400, - [Annotation(Name = "Rotview Balcony", Description = "Caelid")] - RotviewBalcony = 76401, + [Annotation(Name = "Rotview Balcony", Description = "Caelid")] + RotviewBalcony = 76401, - [Annotation(Name = "Fort Gael North", Description = "Caelid")] - FortGaelNorth = 76402, + [Annotation(Name = "Fort Gael North", Description = "Caelid")] + FortGaelNorth = 76402, - [Annotation(Name = "Caelem Ruins", Description = "Caelid")] - CaelemRuins = 76403, + [Annotation(Name = "Caelem Ruins", Description = "Caelid")] + CaelemRuins = 76403, - [Annotation(Name = "Cathedral of Dragon Communion", Description = "Caelid")] - CathedralOfDragonCommunion = 76404, + [Annotation(Name = "Cathedral of Dragon Communion", Description = "Caelid")] + CathedralOfDragonCommunion = 76404, - [Annotation(Name = "Caelid Highway South", Description = "Caelid")] - CaelidHighwaySouth = 76405, + [Annotation(Name = "Caelid Highway South", Description = "Caelid")] + CaelidHighwaySouth = 76405, - [Annotation(Name = "Smoldering Wall", Description = "Caelid")] - SmolderingWall = 76409, + [Annotation(Name = "Smoldering Wall", Description = "Caelid")] + SmolderingWall = 76409, - [Annotation(Name = "Deep Siofra Well", Description = "Caelid")] - DeepSiofraWell = 76410, + [Annotation(Name = "Deep Siofra Well", Description = "Caelid")] + DeepSiofraWell = 76410, - [Annotation(Name = "Southern Aeonia Swamp Bank", Description = "Caelid")] - SouthernAeoniaSwampBank = 76411, + [Annotation(Name = "Southern Aeonia Swamp Bank", Description = "Caelid")] + SouthernAeoniaSwampBank = 76411, - [Annotation(Name = "Sellia Backstreets", Description = "Caelid")] - SelliaBackstreets = 76414, + [Annotation(Name = "Sellia Backstreets", Description = "Caelid")] + SelliaBackstreets = 76414, - [Annotation(Name = "Chair-Crypt of Sellia", Description = "Caelid")] - ChairCryptOfSellia = 76415, + [Annotation(Name = "Chair-Crypt of Sellia", Description = "Caelid")] + ChairCryptOfSellia = 76415, - [Annotation(Name = "Sellia Under-Stair", Description = "Caelid")] - SelliaUnderStair = 76416, + [Annotation(Name = "Sellia Under-Stair", Description = "Caelid")] + SelliaUnderStair = 76416, - [Annotation(Name = "Impassable Greatbridge", Description = "Caelid")] - ImpassableGreatbridge = 76417, + [Annotation(Name = "Impassable Greatbridge", Description = "Caelid")] + ImpassableGreatbridge = 76417, - [Annotation(Name = "Church of the Plague", Description = "Caelid")] - ChurchOfThePlague = 76418, + [Annotation(Name = "Church of the Plague", Description = "Caelid")] + ChurchOfThePlague = 76418, - [Annotation(Name = "Redmane Castle Plaza", Description = "Caelid")] - RedmaneCastlePlaza = 76419, + [Annotation(Name = "Redmane Castle Plaza", Description = "Caelid")] + RedmaneCastlePlaza = 76419, - [Annotation(Name = "Chamber Outside the Plaza", Description = "Caelid")] - ChamberOutsideThePlaza = 76420, + [Annotation(Name = "Chamber Outside the Plaza", Description = "Caelid")] + ChamberOutsideThePlaza = 76420, - [Annotation(Name = "Starscourge Radahn", Description = "Caelid")] - StarscourgeRadahn = 76422, + [Annotation(Name = "Starscourge Radahn", Description = "Caelid")] + StarscourgeRadahn = 76422, - //Capital Outskirts + //Capital Outskirts - [Annotation(Name = "Auriza Hero's Grave", Description = "Capital Outskirts")] - AurizaHerosGrave = 73010, + [Annotation(Name = "Auriza Hero's Grave", Description = "Capital Outskirts")] + AurizaHerosGrave = 73010, - [Annotation(Name = "Auriza Side Tomb", Description = "Capital Outskirts")] - AurizaSideTomb = 73013, + [Annotation(Name = "Auriza Side Tomb", Description = "Capital Outskirts")] + AurizaSideTomb = 73013, - [Annotation(Name = "Divine Tower of West Altus", Description = "Capital Outskirts")] - DivineTowerOfWestAltus = 73430, + [Annotation(Name = "Divine Tower of West Altus", Description = "Capital Outskirts")] + DivineTowerOfWestAltus = 73430, - [Annotation(Name = "Sealed Tunnel", Description = "Capital Outskirts")] - SealedTunnel = 73431, + [Annotation(Name = "Sealed Tunnel", Description = "Capital Outskirts")] + SealedTunnel = 73431, - [Annotation(Name = "Divine Tower of West Altus: Gate", Description = "Capital Outskirts")] - DivineTowerOfWestAltusGate = 73432, + [Annotation(Name = "Divine Tower of West Altus: Gate", Description = "Capital Outskirts")] + DivineTowerOfWestAltusGate = 73432, - [Annotation(Name = "Outer Wall Phantom Tree", Description = "Capital Outskirts")] - OuterWallPhantomTree = 76309, + [Annotation(Name = "Outer Wall Phantom Tree", Description = "Capital Outskirts")] + OuterWallPhantomTree = 76309, - [Annotation(Name = "Minor Erdtree Church", Description = "Capital Outskirts")] - MinorErdtreeChurch = 76310, + [Annotation(Name = "Minor Erdtree Church", Description = "Capital Outskirts")] + MinorErdtreeChurch = 76310, - [Annotation(Name = "Hermit Merchant's Shack", Description = "Capital Outskirts")] - HermitMerchantsShack = 76311, + [Annotation(Name = "Hermit Merchant's Shack", Description = "Capital Outskirts")] + HermitMerchantsShack = 76311, - [Annotation(Name = "Outer Wall Battleground", Description = "Capital Outskirts")] - OuterWallBattleground = 76312, + [Annotation(Name = "Outer Wall Battleground", Description = "Capital Outskirts")] + OuterWallBattleground = 76312, - [Annotation(Name = "Capital Rampart", Description = "Capital Outskirts")] - CapitalRampart = 76314, + [Annotation(Name = "Capital Rampart", Description = "Capital Outskirts")] + CapitalRampart = 76314, - //Consecrated Snowfield + //Consecrated Snowfield - [Annotation(Name = "Consecrated Snowfield Catacombs", Description = "Consecrated Snowfield")] - ConsecratedSnowfieldCatacombs = 73019, + [Annotation(Name = "Consecrated Snowfield Catacombs", Description = "Consecrated Snowfield")] + ConsecratedSnowfieldCatacombs = 73019, - [Annotation(Name = "Cave of the Forlorn", Description = "Consecrated Snowfield")] - CaveOfTheForlorn = 73112, + [Annotation(Name = "Cave of the Forlorn", Description = "Consecrated Snowfield")] + CaveOfTheForlorn = 73112, - [Annotation(Name = "Yelough Anix Tunnel", Description = "Consecrated Snowfield")] - YeloughAnixTunnel = 73211, + [Annotation(Name = "Yelough Anix Tunnel", Description = "Consecrated Snowfield")] + YeloughAnixTunnel = 73211, - [Annotation(Name = "Consecrated Snowfield", Description = "Consecrated Snowfield")] - ConsecratedSnowfield = 76550, + [Annotation(Name = "Consecrated Snowfield", Description = "Consecrated Snowfield")] + ConsecratedSnowfield = 76550, - [Annotation(Name = "Inner Consecrated Snowfield", Description = "Consecrated Snowfield")] - InnerConsecratedSnowfield = 76551, + [Annotation(Name = "Inner Consecrated Snowfield", Description = "Consecrated Snowfield")] + InnerConsecratedSnowfield = 76551, - [Annotation(Name = "Ordina, Liturgical Town", Description = "Consecrated Snowfield")] - OrdinaLiturgicalTown = 76652, + [Annotation(Name = "Ordina, Liturgical Town", Description = "Consecrated Snowfield")] + OrdinaLiturgicalTown = 76652, - [Annotation(Name = "Apostate Derelict", Description = "Consecrated Snowfield")] - ApostateDerelict = 76653, + [Annotation(Name = "Apostate Derelict", Description = "Consecrated Snowfield")] + ApostateDerelict = 76653, - //Crumbling Farum Azula + //Crumbling Farum Azula - [Annotation(Name = "Maliketh, the Black Blade", Description = "Crumbling Farum Azula")] - MalikethTheBlackBlade = 71300, + [Annotation(Name = "Maliketh, the Black Blade", Description = "Crumbling Farum Azula")] + MalikethTheBlackBlade = 71300, - [Annotation(Name = "Dragonlord Placidusax", Description = "Crumbling Farum Azula")] - DragonlordPlacidusax = 71301, + [Annotation(Name = "Dragonlord Placidusax", Description = "Crumbling Farum Azula")] + DragonlordPlacidusax = 71301, - [Annotation(Name = "Dragon Temple Altar", Description = "Crumbling Farum Azula")] - DragonTempleAltar = 71302, + [Annotation(Name = "Dragon Temple Altar", Description = "Crumbling Farum Azula")] + DragonTempleAltar = 71302, - [Annotation(Name = "Crumbling Beast Grave", Description = "Crumbling Farum Azula")] - CrumblingBeastGrave = 71303, + [Annotation(Name = "Crumbling Beast Grave", Description = "Crumbling Farum Azula")] + CrumblingBeastGrave = 71303, - [Annotation(Name = "Crumbling Beast Grave Depths", Description = "Crumbling Farum Azula")] - CrumblingBeastGraveDepths = 71304, + [Annotation(Name = "Crumbling Beast Grave Depths", Description = "Crumbling Farum Azula")] + CrumblingBeastGraveDepths = 71304, - [Annotation(Name = "Tempest-Facing Balcony", Description = "Crumbling Farum Azula")] - TempestFacingBalcony = 71305, + [Annotation(Name = "Tempest-Facing Balcony", Description = "Crumbling Farum Azula")] + TempestFacingBalcony = 71305, - [Annotation(Name = "Dragon Temple", Description = "Crumbling Farum Azula")] - DragonTemple = 71306, + [Annotation(Name = "Dragon Temple", Description = "Crumbling Farum Azula")] + DragonTemple = 71306, - [Annotation(Name = "Dragon Temple Transept", Description = "Crumbling Farum Azula")] - DragonTempleTransept = 71307, + [Annotation(Name = "Dragon Temple Transept", Description = "Crumbling Farum Azula")] + DragonTempleTransept = 71307, - [Annotation(Name = "Dragon Temple Lift", Description = "Crumbling Farum Azula")] - DragonTempleLift = 71308, + [Annotation(Name = "Dragon Temple Lift", Description = "Crumbling Farum Azula")] + DragonTempleLift = 71308, - [Annotation(Name = "Dragon Temple Rooftop", Description = "Crumbling Farum Azula")] - DragonTempleRooftop = 71309, + [Annotation(Name = "Dragon Temple Rooftop", Description = "Crumbling Farum Azula")] + DragonTempleRooftop = 71309, - [Annotation(Name = "Beside the Great Bridge", Description = "Crumbling Farum Azula")] - BesideTheGreatBridge = 71310, + [Annotation(Name = "Beside the Great Bridge", Description = "Crumbling Farum Azula")] + BesideTheGreatBridge = 71310, - //Deeproot Depths + //Deeproot Depths - [Annotation(Name = "Prince of Death's Throne", Description = "Deeproot Depths")] - PrinceOfDeathsThrone = 71230, + [Annotation(Name = "Prince of Death's Throne", Description = "Deeproot Depths")] + PrinceOfDeathsThrone = 71230, - [Annotation(Name = "Root-Facing Cliffs", Description = "Deeproot Depths")] - RootFacingCliffs = 71231, + [Annotation(Name = "Root-Facing Cliffs", Description = "Deeproot Depths")] + RootFacingCliffs = 71231, - [Annotation(Name = "Great Waterfall Crest", Description = "Deeproot Depths")] - GreatWaterfallCrest = 71232, + [Annotation(Name = "Great Waterfall Crest", Description = "Deeproot Depths")] + GreatWaterfallCrest = 71232, - [Annotation(Name = "Deeproot Depths", Description = "Deeproot Depths")] - DeeprootDepths = 71233, + [Annotation(Name = "Deeproot Depths", Description = "Deeproot Depths")] + DeeprootDepths = 71233, - [Annotation(Name = "The Nameless Eternal City", Description = "Deeproot Depths")] - TheNamelessEternalCity = 71234, + [Annotation(Name = "The Nameless Eternal City", Description = "Deeproot Depths")] + TheNamelessEternalCity = 71234, - [Annotation(Name = "Across the Roots", Description = "Deeproot Depths")] - AcrossTheRoots = 71235, + [Annotation(Name = "Across the Roots", Description = "Deeproot Depths")] + AcrossTheRoots = 71235, - //Elden Throne + //Elden Throne - [Annotation(Name = "Fractured Marika", Description = "Elden Throne")] - FracturedMarika = 71900, + [Annotation(Name = "Fractured Marika", Description = "Elden Throne")] + FracturedMarika = 71900, - //Elphael, Brace of the Haligtree + //Elphael, Brace of the Haligtree - [Annotation(Name = "Malenia, Goddess of Rot", Description = "Elphael, Brace of the Haligtree")] - MaleniaGoddessOfRot = 71500, + [Annotation(Name = "Malenia, Goddess of Rot", Description = "Elphael, Brace of the Haligtree")] + MaleniaGoddessOfRot = 71500, - [Annotation(Name = "Prayer Room", Description = "Elphael, Brace of the Haligtree")] - PrayerRoom = 71501, + [Annotation(Name = "Prayer Room", Description = "Elphael, Brace of the Haligtree")] + PrayerRoom = 71501, - [Annotation(Name = "Elphael Inner Wall", Description = "Elphael, Brace of the Haligtree")] - ElphaelInnerWall = 71502, + [Annotation(Name = "Elphael Inner Wall", Description = "Elphael, Brace of the Haligtree")] + ElphaelInnerWall = 71502, - [Annotation(Name = "Drainage Channel", Description = "Elphael, Brace of the Haligtree")] - DrainageChannel = 71503, + [Annotation(Name = "Drainage Channel", Description = "Elphael, Brace of the Haligtree")] + DrainageChannel = 71503, - [Annotation(Name = "Haligtree Roots", Description = "Elphael, Brace of the Haligtree")] - HaligtreeRoots = 71504, + [Annotation(Name = "Haligtree Roots", Description = "Elphael, Brace of the Haligtree")] + HaligtreeRoots = 71504, - //Flame Peak + //Flame Peak - [Annotation(Name = "Giant-Conquering Hero's Grave", Description = "Flame Peak")] - GiantConqueringHerosGrave = 73017, + [Annotation(Name = "Giant-Conquering Hero's Grave", Description = "Flame Peak")] + GiantConqueringHerosGrave = 73017, - [Annotation(Name = "Giants' Mountaintop Catacombs", Description = "Flame Peak")] - GiantsMountaintopCatacombs = 73018, + [Annotation(Name = "Giants' Mountaintop Catacombs", Description = "Flame Peak")] + GiantsMountaintopCatacombs = 73018, - [Annotation(Name = "Giants' Gravepost", Description = "Flame Peak")] - GiantsGravepost = 76506, + [Annotation(Name = "Giants' Gravepost", Description = "Flame Peak")] + GiantsGravepost = 76506, - [Annotation(Name = "Church of Repose", Description = "Flame Peak")] - ChurchOfRepose = 76507, + [Annotation(Name = "Church of Repose", Description = "Flame Peak")] + ChurchOfRepose = 76507, - [Annotation(Name = "Foot of the Forge", Description = "Flame Peak")] - FootOfTheForge = 76508, + [Annotation(Name = "Foot of the Forge", Description = "Flame Peak")] + FootOfTheForge = 76508, - [Annotation(Name = "Fire Giant", Description = "Flame Peak")] - FireGiant = 76509, + [Annotation(Name = "Fire Giant", Description = "Flame Peak")] + FireGiant = 76509, - [Annotation(Name = "Forge of the Giants", Description = "Flame Peak")] - ForgeOfTheGiants = 76510, + [Annotation(Name = "Forge of the Giants", Description = "Flame Peak")] + ForgeOfTheGiants = 76510, - //Forbidden Lands + //Forbidden Lands - [Annotation(Name = "Hidden Path to the Haligtree", Description = "Forbidden Lands")] - HiddenPathToTheHaligtree = 73020, + [Annotation(Name = "Hidden Path to the Haligtree", Description = "Forbidden Lands")] + HiddenPathToTheHaligtree = 73020, - [Annotation(Name = "Divine Tower of East Altus: Gate", Description = "Forbidden Lands")] - DivineTowerOfEastAltusGate = 73450, + [Annotation(Name = "Divine Tower of East Altus: Gate", Description = "Forbidden Lands")] + DivineTowerOfEastAltusGate = 73450, - [Annotation(Name = "Divine Tower of East Altus", Description = "Forbidden Lands")] - DivineTowerOfEastAltus = 73451, + [Annotation(Name = "Divine Tower of East Altus", Description = "Forbidden Lands")] + DivineTowerOfEastAltus = 73451, - [Annotation(Name = "Forbidden Lands", Description = "Forbidden Lands")] - ForbiddenLands = 76500, + [Annotation(Name = "Forbidden Lands", Description = "Forbidden Lands")] + ForbiddenLands = 76500, - [Annotation(Name = "Grand Lift of Rold", Description = "Forbidden Lands")] - GrandLiftOfRold = 76502, + [Annotation(Name = "Grand Lift of Rold", Description = "Forbidden Lands")] + GrandLiftOfRold = 76502, - //Greyoll's Dragonbarrow + //Greyoll's Dragonbarrow - [Annotation(Name = "Dragonbarrow Cave", Description = "Greyoll's Dragonbarrow")] - DragonbarrowCave = 73110, + [Annotation(Name = "Dragonbarrow Cave", Description = "Greyoll's Dragonbarrow")] + DragonbarrowCave = 73110, - [Annotation(Name = "Sellia Hideaway", Description = "Greyoll's Dragonbarrow")] - SelliaHideaway = 73111, + [Annotation(Name = "Sellia Hideaway", Description = "Greyoll's Dragonbarrow")] + SelliaHideaway = 73111, - [Annotation(Name = "Divine Tower of Caelid", Description = "Greyoll's Dragonbarrow")] - DivineTowerOfCaelid = 73440, + [Annotation(Name = "Divine Tower of Caelid", Description = "Greyoll's Dragonbarrow")] + DivineTowerOfCaelid = 73440, - [Annotation(Name = "Divine Tower of Caelid: Center", Description = "Greyoll's Dragonbarrow")] - DivineTowerOfCaelidCenter = 73441, + [Annotation(Name = "Divine Tower of Caelid: Center", Description = "Greyoll's Dragonbarrow")] + DivineTowerOfCaelidCenter = 73441, - [Annotation(Name = "Isolated Divine Tower", Description = "Greyoll's Dragonbarrow")] - IsolatedDivineTower = 73460, + [Annotation(Name = "Isolated Divine Tower", Description = "Greyoll's Dragonbarrow")] + IsolatedDivineTower = 73460, - [Annotation(Name = "Dragonbarrow West", Description = "Greyoll's Dragonbarrow")] - DragonbarrowWest = 76450, + [Annotation(Name = "Dragonbarrow West", Description = "Greyoll's Dragonbarrow")] + DragonbarrowWest = 76450, - [Annotation(Name = "Isolated Merchant's Shack (Greyoll's Dragonbarrow)", Description = "Greyoll's Dragonbarrow")] - IsolatedMerchantsShackGreyollsDragonbarrow = 76451, + [Annotation(Name = "Isolated Merchant's Shack (Greyoll's Dragonbarrow)", Description = "Greyoll's Dragonbarrow")] + IsolatedMerchantsShackGreyollsDragonbarrow = 76451, - [Annotation(Name = "Dragonbarrow Fork", Description = "Greyoll's Dragonbarrow")] - DragonbarrowFork = 76452, + [Annotation(Name = "Dragonbarrow Fork", Description = "Greyoll's Dragonbarrow")] + DragonbarrowFork = 76452, - [Annotation(Name = "Fort Faroth", Description = "Greyoll's Dragonbarrow")] - FortFaroth = 76453, + [Annotation(Name = "Fort Faroth", Description = "Greyoll's Dragonbarrow")] + FortFaroth = 76453, - [Annotation(Name = "Bestial Sanctum", Description = "Greyoll's Dragonbarrow")] - BestialSanctum = 76454, + [Annotation(Name = "Bestial Sanctum", Description = "Greyoll's Dragonbarrow")] + BestialSanctum = 76454, - [Annotation(Name = "Lenne's Rise", Description = "Greyoll's Dragonbarrow")] - LennesRise = 76455, + [Annotation(Name = "Lenne's Rise", Description = "Greyoll's Dragonbarrow")] + LennesRise = 76455, - [Annotation(Name = "Farum Greatbridge", Description = "Greyoll's Dragonbarrow")] - FarumGreatbridge = 76456, + [Annotation(Name = "Farum Greatbridge", Description = "Greyoll's Dragonbarrow")] + FarumGreatbridge = 76456, - //Lake of Rot + //Lake of Rot - [Annotation(Name = "Lake of Rot Shoreside", Description = "Lake of Rot")] - LakeOfRotShoreside = 71216, + [Annotation(Name = "Lake of Rot Shoreside", Description = "Lake of Rot")] + LakeOfRotShoreside = 71216, - [Annotation(Name = "Grand Cloister", Description = "Lake of Rot")] - GrandCloister = 71218, + [Annotation(Name = "Grand Cloister", Description = "Lake of Rot")] + GrandCloister = 71218, - //Leyndell, Ashen Capital + //Leyndell, Ashen Capital - [Annotation(Name = "Elden Throne (Leyndell, Ashen Capital)", Description = "Leyndell, Ashen Capital")] - EldenThroneLeyndellAshenCapital = 71120, + [Annotation(Name = "Elden Throne (Leyndell, Ashen Capital)", Description = "Leyndell, Ashen Capital")] + EldenThroneLeyndellAshenCapital = 71120, - [Annotation(Name = "Erdtree Sanctuary (Leyndell, Ashen Capital)", Description = "Leyndell, Ashen Capital")] - ErdtreeSanctuaryLeyndellAshenCapital = 71121, + [Annotation(Name = "Erdtree Sanctuary (Leyndell, Ashen Capital)", Description = "Leyndell, Ashen Capital")] + ErdtreeSanctuaryLeyndellAshenCapital = 71121, - [Annotation(Name = "East Capital Rampart (Leyndell, Ashen Capital)", Description = "Leyndell, Ashen Capital")] - EastCapitalRampartLeyndellAshenCapital = 71122, + [Annotation(Name = "East Capital Rampart (Leyndell, Ashen Capital)", Description = "Leyndell, Ashen Capital")] + EastCapitalRampartLeyndellAshenCapital = 71122, - [Annotation(Name = "Leyndell, Capital of Ash", Description = "Leyndell, Ashen Capital")] - LeyndellCapitalOfAsh = 71123, + [Annotation(Name = "Leyndell, Capital of Ash", Description = "Leyndell, Ashen Capital")] + LeyndellCapitalOfAsh = 71123, - [Annotation(Name = "Queen's Bedchamber (Leyndell, Ashen Capital)", Description = "Leyndell, Ashen Capital")] - QueensBedchamberLeyndellAshenCapital = 71124, + [Annotation(Name = "Queen's Bedchamber (Leyndell, Ashen Capital)", Description = "Leyndell, Ashen Capital")] + QueensBedchamberLeyndellAshenCapital = 71124, - [Annotation(Name = "Divine Bridge (Leyndell, Ashen Capital)", Description = "Leyndell, Ashen Capital")] - DivineBridgeLeyndellAshenCapital = 71125, + [Annotation(Name = "Divine Bridge (Leyndell, Ashen Capital)", Description = "Leyndell, Ashen Capital")] + DivineBridgeLeyndellAshenCapital = 71125, - //Leyndell, Royal Capital + //Leyndell, Royal Capital - [Annotation(Name = "Elden Throne (Leyndell, Royal Capital)", Description = "Leyndell, Royal Capital")] - EldenThroneLeyndellRoyalCapital = 71100, + [Annotation(Name = "Elden Throne (Leyndell, Royal Capital)", Description = "Leyndell, Royal Capital")] + EldenThroneLeyndellRoyalCapital = 71100, - [Annotation(Name = "Erdtree Sanctuary (Leyndell, Royal Capital)", Description = "Leyndell, Royal Capital")] - ErdtreeSanctuaryLeyndellRoyalCapital = 71101, + [Annotation(Name = "Erdtree Sanctuary (Leyndell, Royal Capital)", Description = "Leyndell, Royal Capital")] + ErdtreeSanctuaryLeyndellRoyalCapital = 71101, - [Annotation(Name = "East Capital Rampart (Leyndell, Royal Capital)", Description = "Leyndell, Royal Capital")] - EastCapitalRampartLeyndellRoyalCapital = 71102, + [Annotation(Name = "East Capital Rampart (Leyndell, Royal Capital)", Description = "Leyndell, Royal Capital")] + EastCapitalRampartLeyndellRoyalCapital = 71102, - [Annotation(Name = "Lower Capital Church", Description = "Leyndell, Royal Capital")] - LowerCapitalChurch = 71103, + [Annotation(Name = "Lower Capital Church", Description = "Leyndell, Royal Capital")] + LowerCapitalChurch = 71103, - [Annotation(Name = "Avenue Balcony", Description = "Leyndell, Royal Capital")] - AvenueBalcony = 71104, + [Annotation(Name = "Avenue Balcony", Description = "Leyndell, Royal Capital")] + AvenueBalcony = 71104, - [Annotation(Name = "West Capital Rampart", Description = "Leyndell, Royal Capital")] - WestCapitalRampart = 71105, + [Annotation(Name = "West Capital Rampart", Description = "Leyndell, Royal Capital")] + WestCapitalRampart = 71105, - [Annotation(Name = "Queen's Bedchamber (Leyndell, Royal Capital)", Description = "Leyndell, Royal Capital")] - QueensBedchamberLeyndellRoyalCapital = 71107, + [Annotation(Name = "Queen's Bedchamber (Leyndell, Royal Capital)", Description = "Leyndell, Royal Capital")] + QueensBedchamberLeyndellRoyalCapital = 71107, - [Annotation(Name = "Fortified Manor, First Floor", Description = "Leyndell, Royal Capital")] - FortifiedManorFirstFloor = 71108, + [Annotation(Name = "Fortified Manor, First Floor", Description = "Leyndell, Royal Capital")] + FortifiedManorFirstFloor = 71108, - [Annotation(Name = "Divine Bridge (Leyndell, Royal Capital)", Description = "Leyndell, Royal Capital")] - DivineBridgeLeyndellRoyalCapital = 71109, + [Annotation(Name = "Divine Bridge (Leyndell, Royal Capital)", Description = "Leyndell, Royal Capital")] + DivineBridgeLeyndellRoyalCapital = 71109, - //Limgrave + //Limgrave - [Annotation(Name = "Stormfoot Catacombs", Description = "Limgrave")] - StormfootCatacombs = 73002, + [Annotation(Name = "Stormfoot Catacombs", Description = "Limgrave")] + StormfootCatacombs = 73002, - [Annotation(Name = "Murkwater Catacombs", Description = "Limgrave")] - MurkwaterCatacombs = 73004, + [Annotation(Name = "Murkwater Catacombs", Description = "Limgrave")] + MurkwaterCatacombs = 73004, - [Annotation(Name = "Murkwater Cave", Description = "Limgrave")] - MurkwaterCave = 73100, + [Annotation(Name = "Murkwater Cave", Description = "Limgrave")] + MurkwaterCave = 73100, - [Annotation(Name = "Groveside Cave", Description = "Limgrave")] - GrovesideCave = 73103, + [Annotation(Name = "Groveside Cave", Description = "Limgrave")] + GrovesideCave = 73103, - [Annotation(Name = "Coastal Cave", Description = "Limgrave")] - CoastalCave = 73115, + [Annotation(Name = "Coastal Cave", Description = "Limgrave")] + CoastalCave = 73115, - [Annotation(Name = "Highroad Cave", Description = "Limgrave")] - HighroadCave = 73117, + [Annotation(Name = "Highroad Cave", Description = "Limgrave")] + HighroadCave = 73117, - [Annotation(Name = "Limgrave Tunnels", Description = "Limgrave")] - LimgraveTunnels = 73201, + [Annotation(Name = "Limgrave Tunnels", Description = "Limgrave")] + LimgraveTunnels = 73201, - [Annotation(Name = "Church of Elleh", Description = "Limgrave")] - ChurchOfElleh = 76100, + [Annotation(Name = "Church of Elleh", Description = "Limgrave")] + ChurchOfElleh = 76100, - [Annotation(Name = "The First Step", Description = "Limgrave")] - TheFirstStep = 76101, + [Annotation(Name = "The First Step", Description = "Limgrave")] + TheFirstStep = 76101, - [Annotation(Name = "Artist's Shack (Limgrave)", Description = "Limgrave")] - ArtistsShackLimgrave = 76103, + [Annotation(Name = "Artist's Shack (Limgrave)", Description = "Limgrave")] + ArtistsShackLimgrave = 76103, - [Annotation(Name = "Third Church of Marika", Description = "Limgrave")] - ThirdChurchOfMarika = 76104, + [Annotation(Name = "Third Church of Marika", Description = "Limgrave")] + ThirdChurchOfMarika = 76104, - [Annotation(Name = "Fort Haight West", Description = "Limgrave")] - FortHaightWest = 76105, + [Annotation(Name = "Fort Haight West", Description = "Limgrave")] + FortHaightWest = 76105, - [Annotation(Name = "Agheel Lake South", Description = "Limgrave")] - AgheelLakeSouth = 76106, + [Annotation(Name = "Agheel Lake South", Description = "Limgrave")] + AgheelLakeSouth = 76106, - [Annotation(Name = "Agheel Lake North", Description = "Limgrave")] - AgheelLakeNorth = 76108, + [Annotation(Name = "Agheel Lake North", Description = "Limgrave")] + AgheelLakeNorth = 76108, - [Annotation(Name = "Church of Dragon Communion", Description = "Limgrave")] - ChurchOfDragonCommunion = 76110, + [Annotation(Name = "Church of Dragon Communion", Description = "Limgrave")] + ChurchOfDragonCommunion = 76110, - [Annotation(Name = "Gatefront", Description = "Limgrave")] - Gatefront = 76111, + [Annotation(Name = "Gatefront", Description = "Limgrave")] + Gatefront = 76111, - [Annotation(Name = "Seaside Ruins", Description = "Limgrave")] - SeasideRuins = 76113, + [Annotation(Name = "Seaside Ruins", Description = "Limgrave")] + SeasideRuins = 76113, - [Annotation(Name = "Mistwood Outskirts", Description = "Limgrave")] - MistwoodOutskirts = 76114, + [Annotation(Name = "Mistwood Outskirts", Description = "Limgrave")] + MistwoodOutskirts = 76114, - [Annotation(Name = "Murkwater Coast", Description = "Limgrave")] - MurkwaterCoast = 76116, + [Annotation(Name = "Murkwater Coast", Description = "Limgrave")] + MurkwaterCoast = 76116, - [Annotation(Name = "Summonwater Village Outskirts", Description = "Limgrave")] - SummonwaterVillageOutskirts = 76119, + [Annotation(Name = "Summonwater Village Outskirts", Description = "Limgrave")] + SummonwaterVillageOutskirts = 76119, - [Annotation(Name = "Waypoint Ruins Cellar", Description = "Limgrave")] - WaypointRuinsCellar = 76120, + [Annotation(Name = "Waypoint Ruins Cellar", Description = "Limgrave")] + WaypointRuinsCellar = 76120, - //Liurnia of the Lakes + //Liurnia of the Lakes - [Annotation(Name = "Road's End Catacombs", Description = "Liurnia of the Lakes")] - RoadsEndCatacombs = 73003, + [Annotation(Name = "Road's End Catacombs", Description = "Liurnia of the Lakes")] + RoadsEndCatacombs = 73003, - [Annotation(Name = "Black Knife Catacombs", Description = "Liurnia of the Lakes")] - BlackKnifeCatacombs = 73005, + [Annotation(Name = "Black Knife Catacombs", Description = "Liurnia of the Lakes")] + BlackKnifeCatacombs = 73005, - [Annotation(Name = "Cliffbottom Catacombs", Description = "Liurnia of the Lakes")] - CliffbottomCatacombs = 73006, + [Annotation(Name = "Cliffbottom Catacombs", Description = "Liurnia of the Lakes")] + CliffbottomCatacombs = 73006, - [Annotation(Name = "Stillwater Cave", Description = "Liurnia of the Lakes")] - StillwaterCave = 73104, + [Annotation(Name = "Stillwater Cave", Description = "Liurnia of the Lakes")] + StillwaterCave = 73104, - [Annotation(Name = "Lakeside Crystal Cave", Description = "Liurnia of the Lakes")] - LakesideCrystalCave = 73105, + [Annotation(Name = "Lakeside Crystal Cave", Description = "Liurnia of the Lakes")] + LakesideCrystalCave = 73105, - [Annotation(Name = "Academy Crystal Cave", Description = "Liurnia of the Lakes")] - AcademyCrystalCave = 73106, + [Annotation(Name = "Academy Crystal Cave", Description = "Liurnia of the Lakes")] + AcademyCrystalCave = 73106, - [Annotation(Name = "Raya Lucaria Crystal Tunnel", Description = "Liurnia of the Lakes")] - RayaLucariaCrystalTunnel = 73202, + [Annotation(Name = "Raya Lucaria Crystal Tunnel", Description = "Liurnia of the Lakes")] + RayaLucariaCrystalTunnel = 73202, - [Annotation(Name = "Study Hall Entrance", Description = "Liurnia of the Lakes")] - StudyHallEntrance = 73420, + [Annotation(Name = "Study Hall Entrance", Description = "Liurnia of the Lakes")] + StudyHallEntrance = 73420, - [Annotation(Name = "Liurnia Tower Bridge", Description = "Liurnia of the Lakes")] - LiurniaTowerBridge = 73421, + [Annotation(Name = "Liurnia Tower Bridge", Description = "Liurnia of the Lakes")] + LiurniaTowerBridge = 73421, - [Annotation(Name = "Divine Tower of Liurnia", Description = "Liurnia of the Lakes")] - DivineTowerOfLiurnia = 73422, + [Annotation(Name = "Divine Tower of Liurnia", Description = "Liurnia of the Lakes")] + DivineTowerOfLiurnia = 73422, - [Annotation(Name = "Lake-Facing Cliffs", Description = "Liurnia of the Lakes")] - LakeFacingCliffs = 76200, + [Annotation(Name = "Lake-Facing Cliffs", Description = "Liurnia of the Lakes")] + LakeFacingCliffs = 76200, - [Annotation(Name = "Liurnia Lake Shore", Description = "Liurnia of the Lakes")] - LiurniaLakeShore = 76201, + [Annotation(Name = "Liurnia Lake Shore", Description = "Liurnia of the Lakes")] + LiurniaLakeShore = 76201, - [Annotation(Name = "Laskyar Ruins", Description = "Liurnia of the Lakes")] - LaskyarRuins = 76202, + [Annotation(Name = "Laskyar Ruins", Description = "Liurnia of the Lakes")] + LaskyarRuins = 76202, - [Annotation(Name = "Scenic Isle", Description = "Liurnia of the Lakes")] - ScenicIsle = 76203, + [Annotation(Name = "Scenic Isle", Description = "Liurnia of the Lakes")] + ScenicIsle = 76203, - [Annotation(Name = "Academy Gate Town", Description = "Liurnia of the Lakes")] - AcademyGateTown = 76204, + [Annotation(Name = "Academy Gate Town", Description = "Liurnia of the Lakes")] + AcademyGateTown = 76204, - [Annotation(Name = "South Raya Lucaria Gate", Description = "Liurnia of the Lakes")] - SouthRayaLucariaGate = 76205, + [Annotation(Name = "South Raya Lucaria Gate", Description = "Liurnia of the Lakes")] + SouthRayaLucariaGate = 76205, - [Annotation(Name = "Main Academy Gate", Description = "Liurnia of the Lakes")] - MainAcademyGate = 76206, + [Annotation(Name = "Main Academy Gate", Description = "Liurnia of the Lakes")] + MainAcademyGate = 76206, - [Annotation(Name = "Grand Lift of Dectus", Description = "Liurnia of the Lakes")] - GrandLiftOfDectus = 76209, + [Annotation(Name = "Grand Lift of Dectus", Description = "Liurnia of the Lakes")] + GrandLiftOfDectus = 76209, - [Annotation(Name = "Foot of the Four Belfries", Description = "Liurnia of the Lakes")] - FootOfTheFourBelfries = 76210, + [Annotation(Name = "Foot of the Four Belfries", Description = "Liurnia of the Lakes")] + FootOfTheFourBelfries = 76210, - [Annotation(Name = "Sorcerer's Isle", Description = "Liurnia of the Lakes")] - SorcerersIsle = 76211, + [Annotation(Name = "Sorcerer's Isle", Description = "Liurnia of the Lakes")] + SorcerersIsle = 76211, - [Annotation(Name = "Northern Liurnia Lake Shore", Description = "Liurnia of the Lakes")] - NorthernLiurniaLakeShore = 76212, + [Annotation(Name = "Northern Liurnia Lake Shore", Description = "Liurnia of the Lakes")] + NorthernLiurniaLakeShore = 76212, - [Annotation(Name = "Road to the Manor", Description = "Liurnia of the Lakes")] - RoadToTheManor = 76213, + [Annotation(Name = "Road to the Manor", Description = "Liurnia of the Lakes")] + RoadToTheManor = 76213, - [Annotation(Name = "Main Caria Manor Gate", Description = "Liurnia of the Lakes")] - MainCariaManorGate = 76214, + [Annotation(Name = "Main Caria Manor Gate", Description = "Liurnia of the Lakes")] + MainCariaManorGate = 76214, - [Annotation(Name = "Slumbering Wolf's Shack", Description = "Liurnia of the Lakes")] - SlumberingWolfsShack = 76215, + [Annotation(Name = "Slumbering Wolf's Shack", Description = "Liurnia of the Lakes")] + SlumberingWolfsShack = 76215, - [Annotation(Name = "Boilprawn Shack", Description = "Liurnia of the Lakes")] - BoilprawnShack = 76216, + [Annotation(Name = "Boilprawn Shack", Description = "Liurnia of the Lakes")] + BoilprawnShack = 76216, - [Annotation(Name = "Artist's Shack (Liurnia of the Lakes)", Description = "Liurnia of the Lakes")] - ArtistsShackLiurniaOfTheLakes = 76217, + [Annotation(Name = "Artist's Shack (Liurnia of the Lakes)", Description = "Liurnia of the Lakes")] + ArtistsShackLiurniaOfTheLakes = 76217, - [Annotation(Name = "Revenger's Shack", Description = "Liurnia of the Lakes")] - RevengersShack = 76218, + [Annotation(Name = "Revenger's Shack", Description = "Liurnia of the Lakes")] + RevengersShack = 76218, - [Annotation(Name = "Folly on the Lake", Description = "Liurnia of the Lakes")] - FollyonTheLake = 76219, + [Annotation(Name = "Folly on the Lake", Description = "Liurnia of the Lakes")] + FollyonTheLake = 76219, - [Annotation(Name = "Village of the Albinaurics", Description = "Liurnia of the Lakes")] - VillageOfTheAlbinaurics = 76220, + [Annotation(Name = "Village of the Albinaurics", Description = "Liurnia of the Lakes")] + VillageOfTheAlbinaurics = 76220, - [Annotation(Name = "Liurnia Highway North", Description = "Liurnia of the Lakes")] - LiurniaHighwayNorth = 76221, + [Annotation(Name = "Liurnia Highway North", Description = "Liurnia of the Lakes")] + LiurniaHighwayNorth = 76221, - [Annotation(Name = "Gate Town Bridge", Description = "Liurnia of the Lakes")] - GateTownBridge = 76222, + [Annotation(Name = "Gate Town Bridge", Description = "Liurnia of the Lakes")] + GateTownBridge = 76222, - [Annotation(Name = "Eastern Liurnia Lake Shore", Description = "Liurnia of the Lakes")] - EasternLiurniaLakeShore = 76223, + [Annotation(Name = "Eastern Liurnia Lake Shore", Description = "Liurnia of the Lakes")] + EasternLiurniaLakeShore = 76223, - [Annotation(Name = "Church of Vows", Description = "Liurnia of the Lakes")] - ChurchOfVows = 76224, + [Annotation(Name = "Church of Vows", Description = "Liurnia of the Lakes")] + ChurchOfVows = 76224, - [Annotation(Name = "Ruined Labyrinth", Description = "Liurnia of the Lakes")] - RuinedLabyrinth = 76225, + [Annotation(Name = "Ruined Labyrinth", Description = "Liurnia of the Lakes")] + RuinedLabyrinth = 76225, - [Annotation(Name = "Mausoleum Compound", Description = "Liurnia of the Lakes")] - MausoleumCompound = 76226, + [Annotation(Name = "Mausoleum Compound", Description = "Liurnia of the Lakes")] + MausoleumCompound = 76226, - [Annotation(Name = "The Four Belfries", Description = "Liurnia of the Lakes")] - TheFourBelfries = 76227, + [Annotation(Name = "The Four Belfries", Description = "Liurnia of the Lakes")] + TheFourBelfries = 76227, - [Annotation(Name = "Ranni's Rise", Description = "Liurnia of the Lakes")] - RannisRise = 76228, + [Annotation(Name = "Ranni's Rise", Description = "Liurnia of the Lakes")] + RannisRise = 76228, - [Annotation(Name = "Ravine-Veiled Village", Description = "Liurnia of the Lakes")] - RavineVeiledVillage = 76229, + [Annotation(Name = "Ravine-Veiled Village", Description = "Liurnia of the Lakes")] + RavineVeiledVillage = 76229, - [Annotation(Name = "Manor Upper Level", Description = "Liurnia of the Lakes")] - ManorUpperLevel = 76230, + [Annotation(Name = "Manor Upper Level", Description = "Liurnia of the Lakes")] + ManorUpperLevel = 76230, - [Annotation(Name = "Manor Lower Level", Description = "Liurnia of the Lakes")] - ManorLowerLevel = 76231, + [Annotation(Name = "Manor Lower Level", Description = "Liurnia of the Lakes")] + ManorLowerLevel = 76231, - [Annotation(Name = "Royal Moongazing Grounds", Description = "Liurnia of the Lakes")] - RoyalMoongazingGrounds = 76232, + [Annotation(Name = "Royal Moongazing Grounds", Description = "Liurnia of the Lakes")] + RoyalMoongazingGrounds = 76232, - [Annotation(Name = "Gate Town North", Description = "Liurnia of the Lakes")] - GateTownNorth = 76233, + [Annotation(Name = "Gate Town North", Description = "Liurnia of the Lakes")] + GateTownNorth = 76233, - [Annotation(Name = "Eastern Tableland", Description = "Liurnia of the Lakes")] - EasternTableland = 76234, + [Annotation(Name = "Eastern Tableland", Description = "Liurnia of the Lakes")] + EasternTableland = 76234, - [Annotation(Name = "The Ravine", Description = "Liurnia of the Lakes")] - TheRavine = 76235, + [Annotation(Name = "The Ravine", Description = "Liurnia of the Lakes")] + TheRavine = 76235, - [Annotation(Name = "Fallen Ruins of the Lake", Description = "Liurnia of the Lakes")] - FallenRuinsOfTheLake = 76236, + [Annotation(Name = "Fallen Ruins of the Lake", Description = "Liurnia of the Lakes")] + FallenRuinsOfTheLake = 76236, - [Annotation(Name = "Converted Tower", Description = "Liurnia of the Lakes")] - ConvertedTower = 76237, + [Annotation(Name = "Converted Tower", Description = "Liurnia of the Lakes")] + ConvertedTower = 76237, - [Annotation(Name = "Behind Caria Manor", Description = "Liurnia of the Lakes")] - BehindCariaManor = 76238, + [Annotation(Name = "Behind Caria Manor", Description = "Liurnia of the Lakes")] + BehindCariaManor = 76238, - [Annotation(Name = "Temple Quarter", Description = "Liurnia of the Lakes")] - TempleQuarter = 76241, + [Annotation(Name = "Temple Quarter", Description = "Liurnia of the Lakes")] + TempleQuarter = 76241, - [Annotation(Name = "East Gate Bridge Trestle", Description = "Liurnia of the Lakes")] - EastGateBridgeTrestle = 76242, + [Annotation(Name = "East Gate Bridge Trestle", Description = "Liurnia of the Lakes")] + EastGateBridgeTrestle = 76242, - [Annotation(Name = "Crystalline Woods", Description = "Liurnia of the Lakes")] - CrystallineWoods = 76243, + [Annotation(Name = "Crystalline Woods", Description = "Liurnia of the Lakes")] + CrystallineWoods = 76243, - [Annotation(Name = "Liurnia Highway South", Description = "Liurnia of the Lakes")] - LiurniaHighwaySouth = 76244, + [Annotation(Name = "Liurnia Highway South", Description = "Liurnia of the Lakes")] + LiurniaHighwaySouth = 76244, - [Annotation(Name = "Jarburg", Description = "Liurnia of the Lakes")] - Jarburg = 76245, + [Annotation(Name = "Jarburg", Description = "Liurnia of the Lakes")] + Jarburg = 76245, - [Annotation(Name = "Ranni's Chamber", Description = "Liurnia of the Lakes")] - RannisChamber = 76247, + [Annotation(Name = "Ranni's Chamber", Description = "Liurnia of the Lakes")] + RannisChamber = 76247, - //Miquella's Haligtree + //Miquella's Haligtree - [Annotation(Name = "Haligtree Promenade", Description = "Miquella's Haligtree")] - HaligtreePromenade = 71505, + [Annotation(Name = "Haligtree Promenade", Description = "Miquella's Haligtree")] + HaligtreePromenade = 71505, - [Annotation(Name = "Haligtree Canopy", Description = "Miquella's Haligtree")] - HaligtreeCanopy = 71506, + [Annotation(Name = "Haligtree Canopy", Description = "Miquella's Haligtree")] + HaligtreeCanopy = 71506, - [Annotation(Name = "Haligtree Town", Description = "Miquella's Haligtree")] - HaligtreeTown = 71507, + [Annotation(Name = "Haligtree Town", Description = "Miquella's Haligtree")] + HaligtreeTown = 71507, - [Annotation(Name = "Haligtree Town Plaza", Description = "Miquella's Haligtree")] - HaligtreeTownPlaza = 71508, + [Annotation(Name = "Haligtree Town Plaza", Description = "Miquella's Haligtree")] + HaligtreeTownPlaza = 71508, - //Mohgwyn Palace + //Mohgwyn Palace - [Annotation(Name = "Cocoon of the Empyrean", Description = "Mohgwyn Palace")] - CocoonOfTheEmpyrean = 71250, + [Annotation(Name = "Cocoon of the Empyrean", Description = "Mohgwyn Palace")] + CocoonOfTheEmpyrean = 71250, - [Annotation(Name = "Palace Approach Ledge-Road", Description = "Mohgwyn Palace")] - PalaceApproachLedgeRoad = 71251, + [Annotation(Name = "Palace Approach Ledge-Road", Description = "Mohgwyn Palace")] + PalaceApproachLedgeRoad = 71251, - [Annotation(Name = "Dynasty Mausoleum Entrance", Description = "Mohgwyn Palace")] - DynastyMausoleumEntrance = 71252, + [Annotation(Name = "Dynasty Mausoleum Entrance", Description = "Mohgwyn Palace")] + DynastyMausoleumEntrance = 71252, - [Annotation(Name = "Dynasty Mausoleum Midpoint", Description = "Mohgwyn Palace")] - DynastyMausoleumMidpoint = 71253, + [Annotation(Name = "Dynasty Mausoleum Midpoint", Description = "Mohgwyn Palace")] + DynastyMausoleumMidpoint = 71253, - //Moonlight Altar + //Moonlight Altar - [Annotation(Name = "Moonlight Altar", Description = "Moonlight Altar")] - MoonlightAltar = 76250, + [Annotation(Name = "Moonlight Altar", Description = "Moonlight Altar")] + MoonlightAltar = 76250, - [Annotation(Name = "Cathedral of Manus Celes", Description = "Moonlight Altar")] - CathedralOfManusCeles = 76251, + [Annotation(Name = "Cathedral of Manus Celes", Description = "Moonlight Altar")] + CathedralOfManusCeles = 76251, - [Annotation(Name = "Altar South", Description = "Moonlight Altar")] - AltarSouth = 76252, + [Annotation(Name = "Altar South", Description = "Moonlight Altar")] + AltarSouth = 76252, - //Mountaintops of the Giants + //Mountaintops of the Giants - [Annotation(Name = "Spiritcaller's Cave", Description = "Mountaintops of the Giants")] - SpiritcallersCave = 73122, + [Annotation(Name = "Spiritcaller's Cave", Description = "Mountaintops of the Giants")] + SpiritcallersCave = 73122, - [Annotation(Name = "Zamor Ruins", Description = "Mountaintops of the Giants")] - ZamorRuins = 76501, + [Annotation(Name = "Zamor Ruins", Description = "Mountaintops of the Giants")] + ZamorRuins = 76501, - [Annotation(Name = "Ancient Snow Valley Ruins", Description = "Mountaintops of the Giants")] - AncientSnowValleyRuins = 76503, + [Annotation(Name = "Ancient Snow Valley Ruins", Description = "Mountaintops of the Giants")] + AncientSnowValleyRuins = 76503, - [Annotation(Name = "Freezing Lake", Description = "Mountaintops of the Giants")] - FreezingLake = 76504, + [Annotation(Name = "Freezing Lake", Description = "Mountaintops of the Giants")] + FreezingLake = 76504, - [Annotation(Name = "First Church of Marika", Description = "Mountaintops of the Giants")] - FirstChurchOfMarika = 76505, + [Annotation(Name = "First Church of Marika", Description = "Mountaintops of the Giants")] + FirstChurchOfMarika = 76505, - [Annotation(Name = "Whiteridge Road", Description = "Mountaintops of the Giants")] - WhiteridgeRoad = 76520, + [Annotation(Name = "Whiteridge Road", Description = "Mountaintops of the Giants")] + WhiteridgeRoad = 76520, - [Annotation(Name = "Snow Valley Ruins Overlook", Description = "Mountaintops of the Giants")] - SnowValleyRuinsOverlook = 76521, + [Annotation(Name = "Snow Valley Ruins Overlook", Description = "Mountaintops of the Giants")] + SnowValleyRuinsOverlook = 76521, - [Annotation(Name = "Castle Sol Main Gate", Description = "Mountaintops of the Giants")] - CastleSolMainGate = 76522, + [Annotation(Name = "Castle Sol Main Gate", Description = "Mountaintops of the Giants")] + CastleSolMainGate = 76522, - [Annotation(Name = "Church of the Eclipse", Description = "Mountaintops of the Giants")] - ChurchOfTheEclipse = 76523, + [Annotation(Name = "Church of the Eclipse", Description = "Mountaintops of the Giants")] + ChurchOfTheEclipse = 76523, - [Annotation(Name = "Castle Sol Rooftop", Description = "Mountaintops of the Giants")] - CastleSolRooftop = 76524, + [Annotation(Name = "Castle Sol Rooftop", Description = "Mountaintops of the Giants")] + CastleSolRooftop = 76524, - //Mt. Gelmir + //Mt. Gelmir - [Annotation(Name = "Wyndham Catacombs", Description = "Mt. Gelmir")] - WyndhamCatacombs = 73007, + [Annotation(Name = "Wyndham Catacombs", Description = "Mt. Gelmir")] + WyndhamCatacombs = 73007, - [Annotation(Name = "Gelmir Hero's Grave", Description = "Mt. Gelmir")] - GelmirHerosGrave = 73009, + [Annotation(Name = "Gelmir Hero's Grave", Description = "Mt. Gelmir")] + GelmirHerosGrave = 73009, - [Annotation(Name = "Seethewater Cave", Description = "Mt. Gelmir")] - SeethewaterCave = 73107, + [Annotation(Name = "Seethewater Cave", Description = "Mt. Gelmir")] + SeethewaterCave = 73107, - [Annotation(Name = "Volcano Cave", Description = "Mt. Gelmir")] - VolcanoCave = 73109, + [Annotation(Name = "Volcano Cave", Description = "Mt. Gelmir")] + VolcanoCave = 73109, - [Annotation(Name = "Bridge of Iniquity", Description = "Mt. Gelmir")] - BridgeOfIniquity = 76350, + [Annotation(Name = "Bridge of Iniquity", Description = "Mt. Gelmir")] + BridgeOfIniquity = 76350, - [Annotation(Name = "First Mt. Gelmir Campsite", Description = "Mt. Gelmir")] - FirstMtGelmirCampsite = 76351, + [Annotation(Name = "First Mt. Gelmir Campsite", Description = "Mt. Gelmir")] + FirstMtGelmirCampsite = 76351, - [Annotation(Name = "Ninth Mt. Gelmir Campsite", Description = "Mt. Gelmir")] - NinthMtGelmirCampsite = 76352, + [Annotation(Name = "Ninth Mt. Gelmir Campsite", Description = "Mt. Gelmir")] + NinthMtGelmirCampsite = 76352, - [Annotation(Name = "Road of Iniquity", Description = "Mt. Gelmir")] - RoadOfIniquity = 76353, + [Annotation(Name = "Road of Iniquity", Description = "Mt. Gelmir")] + RoadOfIniquity = 76353, - [Annotation(Name = "Seethewater River", Description = "Mt. Gelmir")] - SeethewaterRiver = 76354, + [Annotation(Name = "Seethewater River", Description = "Mt. Gelmir")] + SeethewaterRiver = 76354, - [Annotation(Name = "Seethewater Terminus", Description = "Mt. Gelmir")] - SeethewaterTerminus = 76355, + [Annotation(Name = "Seethewater Terminus", Description = "Mt. Gelmir")] + SeethewaterTerminus = 76355, - [Annotation(Name = "Craftsman's Shack", Description = "Mt. Gelmir")] - CraftsmansShack = 76356, + [Annotation(Name = "Craftsman's Shack", Description = "Mt. Gelmir")] + CraftsmansShack = 76356, - [Annotation(Name = "Primeval Sorcerer Azur", Description = "Mt. Gelmir")] - PrimevalSorcererAzur = 76357, + [Annotation(Name = "Primeval Sorcerer Azur", Description = "Mt. Gelmir")] + PrimevalSorcererAzur = 76357, - //Nokron, Eternal City + //Nokron, Eternal City - [Annotation(Name = "Great Waterfall Basin", Description = "Nokron, Eternal City")] - GreatWaterfallBasin = 71220, + [Annotation(Name = "Great Waterfall Basin", Description = "Nokron, Eternal City")] + GreatWaterfallBasin = 71220, - [Annotation(Name = "Mimic Tear", Description = "Nokron, Eternal City")] - MimicTear = 71221, + [Annotation(Name = "Mimic Tear", Description = "Nokron, Eternal City")] + MimicTear = 71221, - [Annotation(Name = "Ancestral Woods", Description = "Nokron, Eternal City")] - AncestralWoods = 71224, + [Annotation(Name = "Ancestral Woods", Description = "Nokron, Eternal City")] + AncestralWoods = 71224, - [Annotation(Name = "Aqueduct-Facing Cliffs", Description = "Nokron, Eternal City")] - AqueductFacingCliffs = 71225, + [Annotation(Name = "Aqueduct-Facing Cliffs", Description = "Nokron, Eternal City")] + AqueductFacingCliffs = 71225, - [Annotation(Name = "Night's Sacred Ground", Description = "Nokron, Eternal City")] - NightsSacredGround = 71226, + [Annotation(Name = "Night's Sacred Ground", Description = "Nokron, Eternal City")] + NightsSacredGround = 71226, - [Annotation(Name = "Nokron, Eternal City", Description = "Nokron, Eternal City")] - NokronEternalCity = 71271, + [Annotation(Name = "Nokron, Eternal City", Description = "Nokron, Eternal City")] + NokronEternalCity = 71271, - //Roundtable Hold + //Roundtable Hold - [Annotation(Name = "Table of Lost Grace", Description = "Roundtable Hold")] - TableOfLostGrace = 71190, + [Annotation(Name = "Table of Lost Grace", Description = "Roundtable Hold")] + TableOfLostGrace = 71190, - //Ruin-Strewn Precipice + //Ruin-Strewn Precipice - [Annotation(Name = "Magma Wyrm", Description = "Ruin-Strewn Precipice")] - MagmaWyrm = 73900, + [Annotation(Name = "Magma Wyrm", Description = "Ruin-Strewn Precipice")] + MagmaWyrm = 73900, - [Annotation(Name = "Ruin-Strewn Precipice", Description = "Ruin-Strewn Precipice")] - RuinStrewnPrecipice = 73901, + [Annotation(Name = "Ruin-Strewn Precipice", Description = "Ruin-Strewn Precipice")] + RuinStrewnPrecipice = 73901, - [Annotation(Name = "Ruin-Strewn Precipice Overlook", Description = "Ruin-Strewn Precipice")] - RuinStrewnPrecipiceOverlook = 73902, + [Annotation(Name = "Ruin-Strewn Precipice Overlook", Description = "Ruin-Strewn Precipice")] + RuinStrewnPrecipiceOverlook = 73902, - //Siofra River + //Siofra River - [Annotation(Name = "Siofra River Bank", Description = "Siofra River")] - SiofraRiverBank = 71222, + [Annotation(Name = "Siofra River Bank", Description = "Siofra River")] + SiofraRiverBank = 71222, - [Annotation(Name = "Worshippers' Woods", Description = "Siofra River")] - WorshippersWoods = 71223, + [Annotation(Name = "Worshippers' Woods", Description = "Siofra River")] + WorshippersWoods = 71223, - [Annotation(Name = "Below the Well", Description = "Siofra River")] - BelowTheWell = 71227, + [Annotation(Name = "Below the Well", Description = "Siofra River")] + BelowTheWell = 71227, - [Annotation(Name = "Siofra River Well Depths", Description = "Siofra River")] - SiofraRiverWellDepths = 71270, + [Annotation(Name = "Siofra River Well Depths", Description = "Siofra River")] + SiofraRiverWellDepths = 71270, - //Stormhill + //Stormhill - [Annotation(Name = "Deathtouched Catacombs", Description = "Stormhill")] - DeathtouchedCatacombs = 73011, + [Annotation(Name = "Deathtouched Catacombs", Description = "Stormhill")] + DeathtouchedCatacombs = 73011, - [Annotation(Name = "Limgrave Tower Bridge", Description = "Stormhill")] - LimgraveTowerBridge = 73410, + [Annotation(Name = "Limgrave Tower Bridge", Description = "Stormhill")] + LimgraveTowerBridge = 73410, - [Annotation(Name = "Divine Tower of Limgrave", Description = "Stormhill")] - DivineTowerOfLimgrave = 73412, + [Annotation(Name = "Divine Tower of Limgrave", Description = "Stormhill")] + DivineTowerOfLimgrave = 73412, - [Annotation(Name = "Stormhill Shack", Description = "Stormhill")] - StormhillShack = 76102, + [Annotation(Name = "Stormhill Shack", Description = "Stormhill")] + StormhillShack = 76102, - [Annotation(Name = "Saintsbridge", Description = "Stormhill")] - Saintsbridge = 76117, + [Annotation(Name = "Saintsbridge", Description = "Stormhill")] + Saintsbridge = 76117, - [Annotation(Name = "Warmaster's Shack", Description = "Stormhill")] - WarmastersShack = 76118, + [Annotation(Name = "Warmaster's Shack", Description = "Stormhill")] + WarmastersShack = 76118, - //Stormveil Castle + //Stormveil Castle - [Annotation(Name = "Godrick the Grafted", Description = "Stormveil Castle")] - GodrickTheGrafted = 71000, + [Annotation(Name = "Godrick the Grafted", Description = "Stormveil Castle")] + GodrickTheGrafted = 71000, - [Annotation(Name = "Margit, the Fell Omen", Description = "Stormveil Castle")] - MargitTheFellOmen = 71001, + [Annotation(Name = "Margit, the Fell Omen", Description = "Stormveil Castle")] + MargitTheFellOmen = 71001, - [Annotation(Name = "Castleward Tunnel", Description = "Stormveil Castle")] - CastlewardTunnel = 71002, + [Annotation(Name = "Castleward Tunnel", Description = "Stormveil Castle")] + CastlewardTunnel = 71002, - [Annotation(Name = "Gateside Chamber", Description = "Stormveil Castle")] - GatesideChamber = 71003, + [Annotation(Name = "Gateside Chamber", Description = "Stormveil Castle")] + GatesideChamber = 71003, - [Annotation(Name = "Stormveil Cliffside", Description = "Stormveil Castle")] - StormveilCliffside = 71004, + [Annotation(Name = "Stormveil Cliffside", Description = "Stormveil Castle")] + StormveilCliffside = 71004, - [Annotation(Name = "Rampart Tower", Description = "Stormveil Castle")] - RampartTower = 71005, + [Annotation(Name = "Rampart Tower", Description = "Stormveil Castle")] + RampartTower = 71005, - [Annotation(Name = "Liftside Chamber", Description = "Stormveil Castle")] - LiftsideChamber = 71006, + [Annotation(Name = "Liftside Chamber", Description = "Stormveil Castle")] + LiftsideChamber = 71006, - [Annotation(Name = "Secluded Cell", Description = "Stormveil Castle")] - SecludedCell = 71007, + [Annotation(Name = "Secluded Cell", Description = "Stormveil Castle")] + SecludedCell = 71007, - [Annotation(Name = "Stormveil Main Gate", Description = "Stormveil Castle")] - StormveilMainGate = 71008, + [Annotation(Name = "Stormveil Main Gate", Description = "Stormveil Castle")] + StormveilMainGate = 71008, - //Stranded Graveyard + //Stranded Graveyard - [Annotation(Name = "Cave of Knowledge", Description = "Stranded Graveyard")] - CaveOfKnowledge = 71800, + [Annotation(Name = "Cave of Knowledge", Description = "Stranded Graveyard")] + CaveOfKnowledge = 71800, - [Annotation(Name = "Stranded Graveyard", Description = "Stranded Graveyard")] - StrandedGraveyard = 71801, + [Annotation(Name = "Stranded Graveyard", Description = "Stranded Graveyard")] + StrandedGraveyard = 71801, - //Subterranean Shunning-Grounds + //Subterranean Shunning-Grounds - [Annotation(Name = "Cathedral of the Forsaken", Description = "Subterranean Shunning-Grounds")] - CathedralOfTheForsaken = 73500, + [Annotation(Name = "Cathedral of the Forsaken", Description = "Subterranean Shunning-Grounds")] + CathedralOfTheForsaken = 73500, - [Annotation(Name = "Underground Roadside", Description = "Subterranean Shunning-Grounds")] - UndergroundRoadside = 73501, + [Annotation(Name = "Underground Roadside", Description = "Subterranean Shunning-Grounds")] + UndergroundRoadside = 73501, - [Annotation(Name = "Forsaken Depths", Description = "Subterranean Shunning-Grounds")] - ForsakenDepths = 73502, + [Annotation(Name = "Forsaken Depths", Description = "Subterranean Shunning-Grounds")] + ForsakenDepths = 73502, - [Annotation(Name = "Leyndell Catacombs", Description = "Subterranean Shunning-Grounds")] - LeyndellCatacombs = 73503, + [Annotation(Name = "Leyndell Catacombs", Description = "Subterranean Shunning-Grounds")] + LeyndellCatacombs = 73503, - [Annotation(Name = "Frenzied Flame Proscription", Description = "Subterranean Shunning-Grounds")] - FrenziedFlameProscription = 73504, + [Annotation(Name = "Frenzied Flame Proscription", Description = "Subterranean Shunning-Grounds")] + FrenziedFlameProscription = 73504, - //Swamp of Aeonia + //Swamp of Aeonia - [Annotation(Name = "Aeonia Swamp Shore", Description = "Swamp of Aeonia")] - AeoniaSwampShore = 76406, + [Annotation(Name = "Aeonia Swamp Shore", Description = "Swamp of Aeonia")] + AeoniaSwampShore = 76406, - [Annotation(Name = "Astray from Caelid Highway North", Description = "Swamp of Aeonia")] - AstrayfromCaelidHighwayNorth = 76407, + [Annotation(Name = "Astray from Caelid Highway North", Description = "Swamp of Aeonia")] + AstrayfromCaelidHighwayNorth = 76407, - [Annotation(Name = "Heart of Aeonia", Description = "Swamp of Aeonia")] - HeartOfAeonia = 76412, + [Annotation(Name = "Heart of Aeonia", Description = "Swamp of Aeonia")] + HeartOfAeonia = 76412, - [Annotation(Name = "Inner Aeonia", Description = "Swamp of Aeonia")] - InnerAeonia = 76413, + [Annotation(Name = "Inner Aeonia", Description = "Swamp of Aeonia")] + InnerAeonia = 76413, - //Volcano Manor + //Volcano Manor - [Annotation(Name = "Rykard, Lord of Blasphemy", Description = "Volcano Manor")] - RykardLordOfBlasphemy = 71600, + [Annotation(Name = "Rykard, Lord of Blasphemy", Description = "Volcano Manor")] + RykardLordOfBlasphemy = 71600, - [Annotation(Name = "Temple of Eiglay", Description = "Volcano Manor")] - TempleOfEiglay = 71601, + [Annotation(Name = "Temple of Eiglay", Description = "Volcano Manor")] + TempleOfEiglay = 71601, - [Annotation(Name = "Volcano Manor", Description = "Volcano Manor")] - VolcanoManor = 71602, + [Annotation(Name = "Volcano Manor", Description = "Volcano Manor")] + VolcanoManor = 71602, - [Annotation(Name = "Prison Town Church", Description = "Volcano Manor")] - PrisonTownChurch = 71603, + [Annotation(Name = "Prison Town Church", Description = "Volcano Manor")] + PrisonTownChurch = 71603, - [Annotation(Name = "Guest Hall", Description = "Volcano Manor")] - GuestHall = 71604, + [Annotation(Name = "Guest Hall", Description = "Volcano Manor")] + GuestHall = 71604, - [Annotation(Name = "Audience Pathway", Description = "Volcano Manor")] - AudiencePathway = 71605, + [Annotation(Name = "Audience Pathway", Description = "Volcano Manor")] + AudiencePathway = 71605, - [Annotation(Name = "Abductor Virgin", Description = "Volcano Manor")] - AbductorVirgin = 71606, + [Annotation(Name = "Abductor Virgin", Description = "Volcano Manor")] + AbductorVirgin = 71606, - [Annotation(Name = "Subterranean Inquisition Chamber", Description = "Volcano Manor")] - SubterraneanInquisitionChamber = 71607, + [Annotation(Name = "Subterranean Inquisition Chamber", Description = "Volcano Manor")] + SubterraneanInquisitionChamber = 71607, - //Weeping Peninsula + //Weeping Peninsula - [Annotation(Name = "Tombsward Catacombs", Description = "Weeping Peninsula")] - TombswardCatacombs = 73000, + [Annotation(Name = "Tombsward Catacombs", Description = "Weeping Peninsula")] + TombswardCatacombs = 73000, - [Annotation(Name = "Impaler's Catacombs", Description = "Weeping Peninsula")] - ImpalersCatacombs = 73001, + [Annotation(Name = "Impaler's Catacombs", Description = "Weeping Peninsula")] + ImpalersCatacombs = 73001, - [Annotation(Name = "Earthbore Cave", Description = "Weeping Peninsula")] - EarthboreCave = 73101, + [Annotation(Name = "Earthbore Cave", Description = "Weeping Peninsula")] + EarthboreCave = 73101, - [Annotation(Name = "Tombsward Cave", Description = "Weeping Peninsula")] - TombswardCave = 73102, + [Annotation(Name = "Tombsward Cave", Description = "Weeping Peninsula")] + TombswardCave = 73102, - [Annotation(Name = "Morne Tunnel", Description = "Weeping Peninsula")] - MorneTunnel = 73200, + [Annotation(Name = "Morne Tunnel", Description = "Weeping Peninsula")] + MorneTunnel = 73200, - [Annotation(Name = "Church of Pilgrimage", Description = "Weeping Peninsula")] - ChurchOfPilgrimage = 76150, + [Annotation(Name = "Church of Pilgrimage", Description = "Weeping Peninsula")] + ChurchOfPilgrimage = 76150, - [Annotation(Name = "Castle Morne Rampart", Description = "Weeping Peninsula")] - CastleMorneRampart = 76151, + [Annotation(Name = "Castle Morne Rampart", Description = "Weeping Peninsula")] + CastleMorneRampart = 76151, - [Annotation(Name = "Tombsward", Description = "Weeping Peninsula")] - Tombsward = 76152, + [Annotation(Name = "Tombsward", Description = "Weeping Peninsula")] + Tombsward = 76152, - [Annotation(Name = "South of the Lookout Tower", Description = "Weeping Peninsula")] - SouthOfTheLookoutTower = 76153, + [Annotation(Name = "South of the Lookout Tower", Description = "Weeping Peninsula")] + SouthOfTheLookoutTower = 76153, - [Annotation(Name = "Ailing Village Outskirts", Description = "Weeping Peninsula")] - AilingVillageOutskirts = 76154, + [Annotation(Name = "Ailing Village Outskirts", Description = "Weeping Peninsula")] + AilingVillageOutskirts = 76154, - [Annotation(Name = "Beside the Crater-Pocked Glade", Description = "Weeping Peninsula")] - BesideTheCraterPockedGlade = 76155, + [Annotation(Name = "Beside the Crater-Pocked Glade", Description = "Weeping Peninsula")] + BesideTheCraterPockedGlade = 76155, - [Annotation(Name = "Isolated Merchant's Shack (Weeping Peninsula)", Description = "Weeping Peninsula")] - IsolatedMerchantsShackWeepingPeninsula = 76156, + [Annotation(Name = "Isolated Merchant's Shack (Weeping Peninsula)", Description = "Weeping Peninsula")] + IsolatedMerchantsShackWeepingPeninsula = 76156, - [Annotation(Name = "Bridge of Sacrifice", Description = "Weeping Peninsula")] - BridgeOfSacrifice = 76157, + [Annotation(Name = "Bridge of Sacrifice", Description = "Weeping Peninsula")] + BridgeOfSacrifice = 76157, - [Annotation(Name = "Castle Morne Lift", Description = "Weeping Peninsula")] - CastleMorneLift = 76158, + [Annotation(Name = "Castle Morne Lift", Description = "Weeping Peninsula")] + CastleMorneLift = 76158, - [Annotation(Name = "Behind the Castle", Description = "Weeping Peninsula")] - BehindTheCastle = 76159, + [Annotation(Name = "Behind the Castle", Description = "Weeping Peninsula")] + BehindTheCastle = 76159, - [Annotation(Name = "Beside the Rampart Gaol", Description = "Weeping Peninsula")] - BesideTheRampartGaol = 76160, + [Annotation(Name = "Beside the Rampart Gaol", Description = "Weeping Peninsula")] + BesideTheRampartGaol = 76160, - [Annotation(Name = "Morne Moangrave", Description = "Weeping Peninsula")] - MorneMoangrave = 76161, + [Annotation(Name = "Morne Moangrave", Description = "Weeping Peninsula")] + MorneMoangrave = 76161, - [Annotation(Name = "Fourth Church of Marika", Description = "Weeping Peninsula")] - FourthChurchOfMarika = 76162, + [Annotation(Name = "Fourth Church of Marika", Description = "Weeping Peninsula")] + FourthChurchOfMarika = 76162, - // The Realm of Shadow - [Annotation(Name = "Theatre of the Divine Beast", Description = "Belurat, Tower Settlement")] - TheatreoftheDivineBeast = 72000, + // The Realm of Shadow + [Annotation(Name = "Theatre of the Divine Beast", Description = "Belurat, Tower Settlement")] + TheatreoftheDivineBeast = 72000, - [Annotation(Name = "Belurat, Tower Settlement", Description = "Belurat, Tower Settlement")] - BeluratTowerSettlement = 72001, + [Annotation(Name = "Belurat, Tower Settlement", Description = "Belurat, Tower Settlement")] + BeluratTowerSettlement = 72001, - [Annotation(Name = "Small Private Altar", Description = "Belurat, Tower Settlement")] - SmallPrivateAltar = 72002, + [Annotation(Name = "Small Private Altar", Description = "Belurat, Tower Settlement")] + SmallPrivateAltar = 72002, - [Annotation(Name = "Stagefront", Description = "Belurat, Tower Settlement")] - Stagefront = 72003, + [Annotation(Name = "Stagefront", Description = "Belurat, Tower Settlement")] + Stagefront = 72003, - [Annotation(Name = "Gate of Divinity", Description = "Enir-Ilim")] - GateofDivinity = 72010, + [Annotation(Name = "Gate of Divinity", Description = "Enir-Ilim")] + GateofDivinity = 72010, - [Annotation(Name = "Enir-Ilim: Outer Wall", Description = "Enir-Ilim")] - EnirIlimOuterWall = 72012, + [Annotation(Name = "Enir-Ilim: Outer Wall", Description = "Enir-Ilim")] + EnirIlimOuterWall = 72012, - [Annotation(Name = "First Rise", Description = "Enir-Ilim")] - FirstRise = 72013, + [Annotation(Name = "First Rise", Description = "Enir-Ilim")] + FirstRise = 72013, - [Annotation(Name = "Spiral Rise", Description = "Enir-Ilim")] - SpiralRise = 72014, + [Annotation(Name = "Spiral Rise", Description = "Enir-Ilim")] + SpiralRise = 72014, - [Annotation(Name = "Cleansing Chamber Anteroom", Description = "Enir-Ilim")] - CleansingChamberAnteroom = 72015, + [Annotation(Name = "Cleansing Chamber Anteroom", Description = "Enir-Ilim")] + CleansingChamberAnteroom = 72015, - [Annotation(Name = "Divine Gate Front Staircase", Description = "Enir-Ilim")] - DivineGateFrontStaircase = 72016, + [Annotation(Name = "Divine Gate Front Staircase", Description = "Enir-Ilim")] + DivineGateFrontStaircase = 72016, - [Annotation(Name = "Main Gate Plaza", Description = "Shadow Keep")] - MainGatePlaza = 72101, + [Annotation(Name = "Main Gate Plaza", Description = "Shadow Keep")] + MainGatePlaza = 72101, - [Annotation(Name = "Shadow Keep Main Gate", Description = "Shadow Keep")] - ShadowKeepMainGate = 72102, + [Annotation(Name = "Shadow Keep Main Gate", Description = "Shadow Keep")] + ShadowKeepMainGate = 72102, - [Annotation(Name = "Church District Entrance", Description = "Shadow Keep, Church District")] - ChurchDistrictEntrance = 72106, + [Annotation(Name = "Church District Entrance", Description = "Shadow Keep, Church District")] + ChurchDistrictEntrance = 72106, - [Annotation(Name = "Sunken Chapel", Description = "Shadow Keep, Church District")] - SunkenChapel = 72107, + [Annotation(Name = "Sunken Chapel", Description = "Shadow Keep, Church District")] + SunkenChapel = 72107, - [Annotation(Name = "Tree,Worship Passage", Description = "Shadow Keep, Church District")] - TreeWorshipPassage = 72108, + [Annotation(Name = "Tree,Worship Passage", Description = "Shadow Keep, Church District")] + TreeWorshipPassage = 72108, - [Annotation(Name = "Tree,Worship Sanctum", Description = "Shadow Keep, Church District")] - TreeWorshipSanctum = 72109, + [Annotation(Name = "Tree,Worship Sanctum", Description = "Shadow Keep, Church District")] + TreeWorshipSanctum = 72109, - [Annotation(Name = "Messmer's Dark Chamber", Description = "Specimen Storehouse")] - MessmersDarkChamber = 72110, + [Annotation(Name = "Messmer's Dark Chamber", Description = "Specimen Storehouse")] + MessmersDarkChamber = 72110, - [Annotation(Name = "Storehouse, First Floor", Description = "Specimen Storehouse")] - StorehouseFirstFloor = 72111, + [Annotation(Name = "Storehouse, First Floor", Description = "Specimen Storehouse")] + StorehouseFirstFloor = 72111, - [Annotation(Name = "Storehouse, Fourth Floor", Description = "Specimen Storehouse")] - StorehouseFourthFloor = 72112, + [Annotation(Name = "Storehouse, Fourth Floor", Description = "Specimen Storehouse")] + StorehouseFourthFloor = 72112, - [Annotation(Name = "Storehouse, Seventh Floor", Description = "Specimen Storehouse")] - StorehouseSeventhFloor = 72113, + [Annotation(Name = "Storehouse, Seventh Floor", Description = "Specimen Storehouse")] + StorehouseSeventhFloor = 72113, - [Annotation(Name = "Dark Chamber Entrance", Description = "Specimen Storehouse")] - DarkChamberEntrance = 72114, + [Annotation(Name = "Dark Chamber Entrance", Description = "Specimen Storehouse")] + DarkChamberEntrance = 72114, - [Annotation(Name = "Storehouse, Back Section", Description = "Specimen Storehouse")] - StorehouseBackSection = 72116, + [Annotation(Name = "Storehouse, Back Section", Description = "Specimen Storehouse")] + StorehouseBackSection = 72116, - [Annotation(Name = "Storehouse, Loft", Description = "Specimen Storehouse")] - StorehouseLoft = 72117, + [Annotation(Name = "Storehouse, Loft", Description = "Specimen Storehouse")] + StorehouseLoft = 72117, - [Annotation(Name = "West Rampart", Description = "Specimen Storehouse")] - WestRampart = 72120, + [Annotation(Name = "West Rampart", Description = "Specimen Storehouse")] + WestRampart = 72120, - [Annotation(Name = "Garden of Deep Purple", Description = "Stone Coffin Fissure")] - GardenofDeepPurple = 72200, + [Annotation(Name = "Garden of Deep Purple", Description = "Stone Coffin Fissure")] + GardenofDeepPurple = 72200, - [Annotation(Name = "Stone Coffin Fissure", Description = "Stone Coffin Fissure")] - StoneCoffinFissure = 72201, + [Annotation(Name = "Stone Coffin Fissure", Description = "Stone Coffin Fissure")] + StoneCoffinFissure = 72201, - [Annotation(Name = "Fissure Cross", Description = "Stone Coffin Fissure")] - FissureCross = 72202, + [Annotation(Name = "Fissure Cross", Description = "Stone Coffin Fissure")] + FissureCross = 72202, - [Annotation(Name = "Fissure Waypoint", Description = "Stone Coffin Fissure")] - FissureWaypoint = 72203, + [Annotation(Name = "Fissure Waypoint", Description = "Stone Coffin Fissure")] + FissureWaypoint = 72203, - [Annotation(Name = "Fissure Depths", Description = "Stone Coffin Fissure")] - FissureDepths = 72204, + [Annotation(Name = "Fissure Depths", Description = "Stone Coffin Fissure")] + FissureDepths = 72204, - [Annotation(Name = "Finger Birthing Grounds", Description = "Scadu Altus")] - FingerBirthingGrounds = 72500, + [Annotation(Name = "Finger Birthing Grounds", Description = "Scadu Altus")] + FingerBirthingGrounds = 72500, - [Annotation(Name = "Discussion Chamber", Description = "Midra's Manse")] - DiscussionChamber = 72800, + [Annotation(Name = "Discussion Chamber", Description = "Midra's Manse")] + DiscussionChamber = 72800, - [Annotation(Name = "Manse Hall", Description = "Midra's Manse")] - ManseHall = 72801, + [Annotation(Name = "Manse Hall", Description = "Midra's Manse")] + ManseHall = 72801, - [Annotation(Name = "Midra's Library", Description = "Midra's Manse")] - MidrasLibrary = 72802, + [Annotation(Name = "Midra's Library", Description = "Midra's Manse")] + MidrasLibrary = 72802, - [Annotation(Name = "Second Floor Chamber", Description = "Midra's Manse")] - SecondFloorChamber = 72803, + [Annotation(Name = "Second Floor Chamber", Description = "Midra's Manse")] + SecondFloorChamber = 72803, - [Annotation(Name = "Fog Rift Catacombs", Description = "Gravesite Plain")] - FogRiftCatacombs = 74000, + [Annotation(Name = "Fog Rift Catacombs", Description = "Gravesite Plain")] + FogRiftCatacombs = 74000, - [Annotation(Name = "Ruined Forge Lava Intake", Description = "Gravesite Plain")] - RuinedForgeLavaIntake = 74200, + [Annotation(Name = "Ruined Forge Lava Intake", Description = "Gravesite Plain")] + RuinedForgeLavaIntake = 74200, - [Annotation(Name = "Rivermouth Cave", Description = "Gravesite Plain")] - RivermouthCave = 74300, + [Annotation(Name = "Rivermouth Cave", Description = "Gravesite Plain")] + RivermouthCave = 74300, - [Annotation(Name = "Dragon's Pit", Description = "Gravesite Plain")] - DragonsPit = 74301, + [Annotation(Name = "Dragon's Pit", Description = "Gravesite Plain")] + DragonsPit = 74301, - [Annotation(Name = "Dragon's Pit Terminus", Description = "Gravesite Plain")] - DragonsPitTerminus = 74351, + [Annotation(Name = "Dragon's Pit Terminus", Description = "Gravesite Plain")] + DragonsPitTerminus = 74351, - [Annotation(Name = "Cliffroad Terminus", Description = "Gravesite Plain")] - CliffroadTerminus = 76804, + [Annotation(Name = "Cliffroad Terminus", Description = "Gravesite Plain")] + CliffroadTerminus = 76804, - [Annotation(Name = "Main Gate Cross", Description = "Gravesite Plain")] - MainGateCross = 76803, + [Annotation(Name = "Main Gate Cross", Description = "Gravesite Plain")] + MainGateCross = 76803, - [Annotation(Name = "Gravesite Plain", Description = "Gravesite Plain")] - GravesitePlain = 76800, + [Annotation(Name = "Gravesite Plain", Description = "Gravesite Plain")] + GravesitePlain = 76800, - [Annotation(Name = "Three,Path Cross", Description = "Gravesite Plain")] - ThreePathCross = 76802, + [Annotation(Name = "Three,Path Cross", Description = "Gravesite Plain")] + ThreePathCross = 76802, - [Annotation(Name = "Greatbridge, North", Description = "Gravesite Plain")] - GreatbridgeNorth = 76805, + [Annotation(Name = "Greatbridge, North", Description = "Gravesite Plain")] + GreatbridgeNorth = 76805, - [Annotation(Name = "Scorched Ruins", Description = "Gravesite Plain")] - ScorchedRuins = 76801, + [Annotation(Name = "Scorched Ruins", Description = "Gravesite Plain")] + ScorchedRuins = 76801, - [Annotation(Name = "Ellac River Cave", Description = "Gravesite Plain")] - EllacRiverCave = 76812, + [Annotation(Name = "Ellac River Cave", Description = "Gravesite Plain")] + EllacRiverCave = 76812, - [Annotation(Name = "Castle Front", Description = "Gravesite Plain")] - CastleFront = 76813, + [Annotation(Name = "Castle Front", Description = "Gravesite Plain")] + CastleFront = 76813, - [Annotation(Name = "Pillar Path Waypoint", Description = "Gravesite Plain")] - PillarPathWaypoint = 76811, + [Annotation(Name = "Pillar Path Waypoint", Description = "Gravesite Plain")] + PillarPathWaypoint = 76811, - [Annotation(Name = "Pillar Path Cross", Description = "Gravesite Plain")] - PillarPathCross = 76810, + [Annotation(Name = "Pillar Path Cross", Description = "Gravesite Plain")] + PillarPathCross = 76810, - [Annotation(Name = "Belurat Gaol", Description = "Gravesite Plain")] - BeluratGaol = 74100, + [Annotation(Name = "Belurat Gaol", Description = "Gravesite Plain")] + BeluratGaol = 74100, - [Annotation(Name = "Ellac River Downstream", Description = "Gravesite Plain")] - EllacRiverDownstream = 76830, + [Annotation(Name = "Ellac River Downstream", Description = "Gravesite Plain")] + EllacRiverDownstream = 76830, - [Annotation(Name = "Charo's Hidden Grave", Description = "Charo's Hidden Grave")] - CharosHiddenGrave = 76841, + [Annotation(Name = "Charo's Hidden Grave", Description = "Charo's Hidden Grave")] + CharosHiddenGrave = 76841, - [Annotation(Name = "Lamenter's Gaol", Description = "Charo's Hidden Grave")] - LamentersGaol = 74102, + [Annotation(Name = "Lamenter's Gaol", Description = "Charo's Hidden Grave")] + LamentersGaol = 74102, - [Annotation(Name = "Castle Ensis Checkpoint", Description = "Castle Ensis")] - CastleEnsisCheckpoint = 76821, + [Annotation(Name = "Castle Ensis Checkpoint", Description = "Castle Ensis")] + CastleEnsisCheckpoint = 76821, - [Annotation(Name = "Ensis Moongazing Grounds", Description = "Castle Ensis")] - EnsisMoongazingGrounds = 76823, + [Annotation(Name = "Ensis Moongazing Grounds", Description = "Castle Ensis")] + EnsisMoongazingGrounds = 76823, - [Annotation(Name = "Castle,Lord's Chamber", Description = "Castle Ensis")] - CastleLordsChamber = 76822, + [Annotation(Name = "Castle,Lord's Chamber", Description = "Castle Ensis")] + CastleLordsChamber = 76822, - [Annotation(Name = "Cerulean Coast West", Description = "Cerulean Coast")] - CeruleanCoastWest = 76832, + [Annotation(Name = "Cerulean Coast West", Description = "Cerulean Coast")] + CeruleanCoastWest = 76832, - [Annotation(Name = "The Fissure", Description = "Cerulean Coast")] - TheFissure = 76833, + [Annotation(Name = "The Fissure", Description = "Cerulean Coast")] + TheFissure = 76833, - [Annotation(Name = "Cerulean Coast Cross", Description = "Cerulean Coast")] - CeruleanCoastCross = 76835, + [Annotation(Name = "Cerulean Coast Cross", Description = "Cerulean Coast")] + CeruleanCoastCross = 76835, - [Annotation(Name = "Cerulean Coast", Description = "Cerulean Coast")] - CeruleanCoast = 76831, + [Annotation(Name = "Cerulean Coast", Description = "Cerulean Coast")] + CeruleanCoast = 76831, - [Annotation(Name = "Finger Ruins of Rhia", Description = "Cerulean Coast")] - FingerRuinsofRhia = 76834, + [Annotation(Name = "Finger Ruins of Rhia", Description = "Cerulean Coast")] + FingerRuinsofRhia = 76834, - [Annotation(Name = "Grand Altar of Dragon Communion", Description = "Foot of the Jagged Peak")] - GrandAltarofDragonCommunion = 76840, + [Annotation(Name = "Grand Altar of Dragon Communion", Description = "Foot of the Jagged Peak")] + GrandAltarofDragonCommunion = 76840, - [Annotation(Name = "Divided Falls", Description = "Abyssal Woods")] - DividedFalls = 76861, + [Annotation(Name = "Divided Falls", Description = "Abyssal Woods")] + DividedFalls = 76861, - [Annotation(Name = "Abyssal Woods", Description = "Abyssal Woods")] - AbyssalWoods = 76860, + [Annotation(Name = "Abyssal Woods", Description = "Abyssal Woods")] + AbyssalWoods = 76860, - [Annotation(Name = "Forsaken Graveyard", Description = "Abyssal Woods")] - ForsakenGraveyard = 76862, + [Annotation(Name = "Forsaken Graveyard", Description = "Abyssal Woods")] + ForsakenGraveyard = 76862, - [Annotation(Name = "Church Ruins", Description = "Abyssal Woods")] - ChurchRuins = 76864, + [Annotation(Name = "Church Ruins", Description = "Abyssal Woods")] + ChurchRuins = 76864, - [Annotation(Name = "Woodland Trail", Description = "Abyssal Woods")] - WoodlandTrail = 76863, + [Annotation(Name = "Woodland Trail", Description = "Abyssal Woods")] + WoodlandTrail = 76863, - [Annotation(Name = "Foot of the Jagged Peak", Description = "Foot of the Jagged Peak")] - FootoftheJaggedPeak = 76850, + [Annotation(Name = "Foot of the Jagged Peak", Description = "Foot of the Jagged Peak")] + FootoftheJaggedPeak = 76850, - [Annotation(Name = "Jagged Peak Mountainside", Description = "Jagged Peak")] - JaggedPeakMountainside = 76851, + [Annotation(Name = "Jagged Peak Mountainside", Description = "Jagged Peak")] + JaggedPeakMountainside = 76851, - [Annotation(Name = "Jagged Peak Summit", Description = "Jagged Peak")] - JaggedPeakSummit = 76852, + [Annotation(Name = "Jagged Peak Summit", Description = "Jagged Peak")] + JaggedPeakSummit = 76852, - [Annotation(Name = "Rest of the Dread Dragon", Description = "Jagged Peak")] - RestoftheDreadDragon = 76853, + [Annotation(Name = "Rest of the Dread Dragon", Description = "Jagged Peak")] + RestoftheDreadDragon = 76853, - [Annotation(Name = "Ancient Ruins, Grand Stairway", Description = "Ancient Ruins of Rauh")] - AncientRuinsGrandStairway = 76944, + [Annotation(Name = "Ancient Ruins, Grand Stairway", Description = "Ancient Ruins of Rauh")] + AncientRuinsGrandStairway = 76944, - [Annotation(Name = "Church of the Bud", Description = "Ancient Ruins of Rauh")] - ChurchoftheBud = 76945, + [Annotation(Name = "Church of the Bud", Description = "Ancient Ruins of Rauh")] + ChurchoftheBud = 76945, - [Annotation(Name = "Church of the Bud, Main Entrance", Description = "Ancient Ruins of Rauh")] - ChurchoftheBudMainEntrance = 76943, + [Annotation(Name = "Church of the Bud, Main Entrance", Description = "Ancient Ruins of Rauh")] + ChurchoftheBudMainEntrance = 76943, - [Annotation(Name = "Rauh Ancient Ruins, West", Description = "Ancient Ruins of Rauh")] - RauhAncientRuinsWest = 76942, + [Annotation(Name = "Rauh Ancient Ruins, West", Description = "Ancient Ruins of Rauh")] + RauhAncientRuinsWest = 76942, - [Annotation(Name = "Rauh Ancient Ruins, East", Description = "Ancient Ruins of Rauh")] - RauhAncientRuinsEast = 76941, + [Annotation(Name = "Rauh Ancient Ruins, East", Description = "Ancient Ruins of Rauh")] + RauhAncientRuinsEast = 76941, - [Annotation(Name = "Viaduct Minor Tower", Description = "Ancient Ruins of Rauh")] - ViaductMinorTower = 76940, + [Annotation(Name = "Viaduct Minor Tower", Description = "Ancient Ruins of Rauh")] + ViaductMinorTower = 76940, - [Annotation(Name = "Temple Town Ruins", Description = "Rauh Base")] - TempleTownRuins = 76913, + [Annotation(Name = "Temple Town Ruins", Description = "Rauh Base")] + TempleTownRuins = 76913, - [Annotation(Name = "Ravine North", Description = "Rauh Base")] - RavineNorth = 76914, + [Annotation(Name = "Ravine North", Description = "Rauh Base")] + RavineNorth = 76914, - [Annotation(Name = "Scorpion River Catacombs", Description = "Rauh Base")] - ScorpionRiverCatacombs = 74001, + [Annotation(Name = "Scorpion River Catacombs", Description = "Rauh Base")] + ScorpionRiverCatacombs = 74001, - [Annotation(Name = "Taylew's Ruined Forge", Description = "Rauh Base")] - TaylewsRuinedForge = 74203, + [Annotation(Name = "Taylew's Ruined Forge", Description = "Rauh Base")] + TaylewsRuinedForge = 74203, - [Annotation(Name = "Ancient Ruins Base", Description = "Rauh Base")] - AncientRuinsBase = 76912, + [Annotation(Name = "Ancient Ruins Base", Description = "Rauh Base")] + AncientRuinsBase = 76912, - [Annotation(Name = "Darklight Catacombs", Description = "Scadu Altus")] - DarklightCatacombs = 74002, + [Annotation(Name = "Darklight Catacombs", Description = "Scadu Altus")] + DarklightCatacombs = 74002, - [Annotation(Name = "Bonny Gaol", Description = "Scadu Altus")] - BonnyGaol = 74101, + [Annotation(Name = "Bonny Gaol", Description = "Scadu Altus")] + BonnyGaol = 74101, - [Annotation(Name = "Highroad Cross", Description = "Scadu Altus")] - HighroadCross = 76900, + [Annotation(Name = "Highroad Cross", Description = "Scadu Altus")] + HighroadCross = 76900, - [Annotation(Name = "Scadu Altus, West", Description = "Scadu Altus")] - ScaduAltusWest = 76907, + [Annotation(Name = "Scadu Altus, West", Description = "Scadu Altus")] + ScaduAltusWest = 76907, - [Annotation(Name = "Moorth Highway, South", Description = "Scadu Altus")] - MoorthHighwaySouth = 76908, + [Annotation(Name = "Moorth Highway, South", Description = "Scadu Altus")] + MoorthHighwaySouth = 76908, - [Annotation(Name = "Fort of Reprimand", Description = "Scadu Altus")] - FortofReprimand = 76909, + [Annotation(Name = "Fort of Reprimand", Description = "Scadu Altus")] + FortofReprimand = 76909, - [Annotation(Name = "Behind the Fort of Reprimand", Description = "Scadu Altus")] - BehindtheFortofReprimand = 76910, + [Annotation(Name = "Behind the Fort of Reprimand", Description = "Scadu Altus")] + BehindtheFortofReprimand = 76910, - [Annotation(Name = "Moorth Ruins", Description = "Scadu Altus")] - MoorthRuins = 76902, + [Annotation(Name = "Moorth Ruins", Description = "Scadu Altus")] + MoorthRuins = 76902, - [Annotation(Name = "Bonny Village", Description = "Scadu Altus")] - BonnyVillage = 76903, + [Annotation(Name = "Bonny Village", Description = "Scadu Altus")] + BonnyVillage = 76903, - [Annotation(Name = "Castle Watering Hole", Description = "Scadu Altus")] - CastleWateringHole = 76916, + [Annotation(Name = "Castle Watering Hole", Description = "Scadu Altus")] + CastleWateringHole = 76916, - [Annotation(Name = "Ruined Forge of Starfall Past", Description = "Scadu Altus")] - RuinedForgeofStarfallPast = 74202, + [Annotation(Name = "Ruined Forge of Starfall Past", Description = "Scadu Altus")] + RuinedForgeofStarfallPast = 74202, - [Annotation(Name = "Scaduview Cross", Description = "Scadu Altus")] - ScaduviewCross = 76911, + [Annotation(Name = "Scaduview Cross", Description = "Scadu Altus")] + ScaduviewCross = 76911, - [Annotation(Name = "Recluses' River Downstream", Description = "Scadu Altus")] - ReclusesRiverDownstream = 76918, + [Annotation(Name = "Recluses' River Downstream", Description = "Scadu Altus")] + ReclusesRiverDownstream = 76918, - [Annotation(Name = "Recluses' River Upstream", Description = "Scadu Altus")] - ReclusesRiverUpstream = 76917, + [Annotation(Name = "Recluses' River Upstream", Description = "Scadu Altus")] + ReclusesRiverUpstream = 76917, - [Annotation(Name = "Bridge Leading to the Village", Description = "Scadu Altus")] - BridgeLeadingtotheVillage = 76904, + [Annotation(Name = "Bridge Leading to the Village", Description = "Scadu Altus")] + BridgeLeadingtotheVillage = 76904, - [Annotation(Name = "Cathedral of Manus Metyr", Description = "Scadu Altus")] - CathedralofManusMetyr = 76906, + [Annotation(Name = "Cathedral of Manus Metyr", Description = "Scadu Altus")] + CathedralofManusMetyr = 76906, - [Annotation(Name = "Church District Highroad", Description = "Scadu Altus")] - ChurchDistrictHighroad = 76905, + [Annotation(Name = "Church District Highroad", Description = "Scadu Altus")] + ChurchDistrictHighroad = 76905, - [Annotation(Name = "Scaduview", Description = "Scaduview")] - Scaduview = 76930, + [Annotation(Name = "Scaduview", Description = "Scaduview")] + Scaduview = 76930, - [Annotation(Name = "Shadow Keep, Back Gate", Description = "Scaduview")] - ShadowKeepBackGate = 76931, + [Annotation(Name = "Shadow Keep, Back Gate", Description = "Scaduview")] + ShadowKeepBackGate = 76931, - [Annotation(Name = "Fingerstone Hill", Description = "Scaduview")] - FingerstoneHill = 76936, + [Annotation(Name = "Fingerstone Hill", Description = "Scaduview")] + FingerstoneHill = 76936, - [Annotation(Name = "Hinterland Bridge", Description = "Scaduview")] - HinterlandBridge = 76937, + [Annotation(Name = "Hinterland Bridge", Description = "Scaduview")] + HinterlandBridge = 76937, - [Annotation(Name = "Hinterland", Description = "Scaduview")] - Hinterland = 76935, + [Annotation(Name = "Hinterland", Description = "Scaduview")] + Hinterland = 76935, - [Annotation(Name = "Scadutree Base", Description = "Scaduview")] - ScadutreeBase = 76960, - } + [Annotation(Name = "Scadutree Base", Description = "Scaduview")] + ScadutreeBase = 76960, } diff --git a/src/SoulMemory/EldenRing/Item.cs b/src/SoulMemory/EldenRing/Item.cs index 6ab3511..4fb7ccc 100644 --- a/src/SoulMemory/EldenRing/Item.cs +++ b/src/SoulMemory/EldenRing/Item.cs @@ -19,2695 +19,2694 @@ using System.Diagnostics.CodeAnalysis; using System.Linq; -namespace SoulMemory.EldenRing +namespace SoulMemory.EldenRing; + +//Got some help from Nordgaren to read the inventory. Cheers! +//https://github.com/Nordgaren/Erd-Tools +//Lookup table is generated from the resource .txt files + +public enum Category : uint { - //Got some help from Nordgaren to read the inventory. Cheers! - //https://github.com/Nordgaren/Erd-Tools - //Lookup table is generated from the resource .txt files + Weapons = 0x00000000, + Protector = 0x10000000, + Accessory = 0x20000000, + Goods = 0x40000000, + Gem = 0x80000000 +} - public enum Category : uint - { - Weapons = 0x00000000, - Protector = 0x10000000, - Accessory = 0x20000000, - Goods = 0x40000000, - Gem = 0x80000000 - } +[ExcludeFromCodeCoverage] +public class Item +{ + public Category Category; + public string GroupName = null!; + public string Name = null!; + public uint Id; - [ExcludeFromCodeCoverage] - public class Item + public static Item FromLookupTable(Category category, uint id) { - public Category Category; - public string GroupName = null!; - public string Name = null!; - public uint Id; - - public static Item FromLookupTable(Category category, uint id) - { - return LookupTable.SingleOrDefault(i => i.Category == category && i.Id == id); - } + return LookupTable.SingleOrDefault(i => i.Category == category && i.Id == id); + } - private readonly static ReadOnlyCollection LookupTable = new ReadOnlyCollection(new List() - { - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Iron Helmet", Id = 40000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Scale Armor", Id = 40100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Iron Gauntlets", Id = 40200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Leather Trousers", Id = 40300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Kaiden Helm", Id = 50000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Kaiden Armor", Id = 50100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Kaiden Gauntlets", Id = 50200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Kaiden Trousers", Id = 50300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Drake Knight Helm", Id = 60000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Drake Knight Armor", Id = 60100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Drake Knight Gauntlets", Id = 60200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Drake Knight Greaves", Id = 60300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Drake Knight Helm (Altered)", Id = 61000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Drake Knight Armor (Altered)", Id = 61100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Scaled Helm", Id = 80000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Scaled Armor", Id = 80100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Scaled Gauntlets", Id = 80200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Scaled Greaves", Id = 80300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Scaled Armor (Altered)", Id = 81100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Perfumer Hood", Id = 90000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Perfumer Robe", Id = 90100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Perfumer Gloves", Id = 90200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Perfumer Sarong", Id = 90300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Perfumer Robe (Altered)", Id = 91100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Traveler's Hat", Id = 100000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Perfumer's Traveling Garb", Id = 100100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Traveler's Gloves", Id = 100200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Traveler's Slops", Id = 100300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Perfumer's Traveling Garb (Altered)", Id = 101100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Alberich's Pointed Hat", Id = 120000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Alberich's Robe", Id = 120100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Alberich's Bracers", Id = 120200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Alberich's Trousers", Id = 120300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Alberich's Pointed Hat (Altered)", Id = 121000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Alberich's Robe (Altered)", Id = 121100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Spellblade's Pointed Hat", Id = 130000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Spellblade's Traveling Attire", Id = 130100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Spellblade's Gloves", Id = 130200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Spellblade's Trousers", Id = 130300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Spellblade's Traveling Attire (Altered)", Id = 131100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Bull-Goat Helm", Id = 140000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Bull-Goat Armor", Id = 140100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Bull-Goat Gauntlets", Id = 140200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Bull-Goat Greaves", Id = 140300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Iron Kasa", Id = 150000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Ronin's Armor", Id = 150100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Ronin's Gauntlets", Id = 150200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Ronin's Greaves", Id = 150300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Ronin's Armor (Altered)", Id = 151100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Guilty Hood", Id = 160000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Cloth Garb", Id = 160100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Cloth Trousers", Id = 160300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Black Wolf Mask", Id = 170000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blaidd's Armor", Id = 170100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blaidd's Gauntlets", Id = 170200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blaidd's Greaves", Id = 170300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blaidd's Armor (Altered)", Id = 171100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Black Knife Hood", Id = 180000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Black Knife Armor", Id = 180100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Black Knife Gauntlets", Id = 180200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Black Knife Greaves", Id = 180300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Black Knife Armor (Altered)", Id = 181100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Exile Hood", Id = 190000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Exile Armor", Id = 190100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Exile Gauntlets", Id = 190200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Exile Greaves", Id = 190300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Banished Knight Helm", Id = 200000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Banished Knight Armor", Id = 200100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Banished Knight Gauntlets", Id = 200200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Banished Knight Greaves", Id = 200300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Banished Knight Helm (Altered)", Id = 201000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Banished Knight Armor (Altered)", Id = 201100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Briar Helm", Id = 210000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Briar Armor", Id = 210100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Briar Gauntlets", Id = 210200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Briar Greaves", Id = 210300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Briar Armor (Altered)", Id = 211100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Page Hood", Id = 220000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Page Garb", Id = 220100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Page Trousers", Id = 220300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Page Garb (Altered)", Id = 221100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Night's Cavalry Helm", Id = 230000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Night's Cavalry Armor", Id = 230100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Night's Cavalry Gauntlets", Id = 230200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Night's Cavalry Greaves", Id = 230300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Night's Cavalry Helm (Altered)", Id = 231000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Night's Cavalry Armor (Altered)", Id = 231100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blue Silver Mail Hood", Id = 240000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blue Silver Mail Armor", Id = 240100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blue Silver Bracelets", Id = 240200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blue Silver Mail Skirt", Id = 240300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blue Silver Mail Armor (Altered)", Id = 241100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Nomadic Merchant's Chapeau", Id = 250000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Nomadic Merchant's Finery", Id = 250100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Nomadic Merchant's Trousers", Id = 250300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Nomadic Merchant's Finery (Altered)", Id = 251100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Malformed Dragon Helm", Id = 260000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Malformed Dragon Armor", Id = 260100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Malformed Dragon Gauntlets", Id = 260200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Malformed Dragon Greaves", Id = 260300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Tree Sentinel Helm", Id = 270000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Tree Sentinel Armor", Id = 270100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Tree Sentinel Gauntlets", Id = 270200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Tree Sentinel Greaves", Id = 270300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Tree Sentinel Armor (Altered)", Id = 271100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Royal Knight Helm", Id = 280000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Royal Knight Armor", Id = 280100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Royal Knight Gauntlets", Id = 280200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Royal Knight Greaves", Id = 280300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Royal Knight Armor (Altered)", Id = 281100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Nox Monk Hood", Id = 290000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Nox Monk Armor", Id = 290100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Nox Monk Bracelets", Id = 290200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Nox Monk Greaves", Id = 290300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Nox Monk Hood (Altered)", Id = 291000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Nox Monk Armor (Altered)", Id = 291100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Nox Swordstress Crown", Id = 292000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Nox Swordstress Armor", Id = 292100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Night Maiden Twin Crown", Id = 293000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Night Maiden Armor", Id = 293100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Nox Swordstress Crown (Altered)", Id = 294000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Nox Swordstress Armor (Altered)", Id = 294100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Great Horned Headband", Id = 300000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fur Raiment", Id = 300100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fur Leggings", Id = 300300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Shining Horned Headband", Id = 301000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Shaman Furs", Id = 301100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Shaman Leggings", Id = 301300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Duelist Helm", Id = 310000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Gravekeeper Cloak", Id = 310100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Duelist Greaves", Id = 310300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Gravekeeper Cloak (Altered)", Id = 311100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Sanguine Noble Hood", Id = 320000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Sanguine Noble Robe", Id = 320100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Sanguine Noble Waistcloth", Id = 320300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Guardian Mask", Id = 330000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Guardian Garb (Full Bloom)", Id = 330100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Guardian Bracers", Id = 330200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Guardian Greaves", Id = 330300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Guardian Garb", Id = 331100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Cleanrot Helm", Id = 340000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Cleanrot Armor", Id = 340100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Cleanrot Gauntlets", Id = 340200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Cleanrot Greaves", Id = 340300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Cleanrot Helm (Altered)", Id = 341000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Cleanrot Armor (Altered)", Id = 341100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fire Monk Hood", Id = 350000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fire Monk Armor", Id = 350100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fire Monk Gauntlets", Id = 350200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fire Monk Greaves", Id = 350300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blackflame Monk Hood", Id = 351000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blackflame Monk Armor", Id = 351100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blackflame Monk Gauntlets", Id = 351200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blackflame Monk Greaves", Id = 351300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fire Prelate Helm", Id = 360000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fire Prelate Armor", Id = 360100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fire Prelate Gauntlets", Id = 360200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fire Prelate Greaves", Id = 360300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fire Prelate Armor (Altered)", Id = 361100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Aristocrat Headband", Id = 370000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Aristocrat Garb", Id = 370100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Aristocrat Boots", Id = 370300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Aristocrat Garb (Altered)", Id = 371100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Aristocrat Hat", Id = 380000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Aristocrat Coat", Id = 380100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Old Aristocrat Cowl", Id = 390000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Old Aristocrat Gown", Id = 390100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Old Aristocrat Shoes", Id = 390300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Vulgar Militia Helm", Id = 420000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Vulgar Militia Armor", Id = 420100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Vulgar Militia Gauntlets", Id = 420200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Vulgar Militia Greaves", Id = 420300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Sage Hood", Id = 430000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Sage Robe", Id = 430100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Sage Trousers", Id = 430300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Pumpkin Helm", Id = 440000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Elden Lord Crown", Id = 460000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Elden Lord Armor", Id = 460100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Elden Lord Bracers", Id = 460200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Elden Lord Greaves", Id = 460300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Elden Lord Armor (Altered)", Id = 461100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Radahn's Redmane Helm", Id = 470000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Radahn's Lion Armor", Id = 470100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Radahn's Gauntlets", Id = 470200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Radahn's Greaves", Id = 470300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Radahn's Lion Armor (Altered)", Id = 471100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Lord of Blood's Robe", Id = 480100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Lord of Blood's Robe (Altered)", Id = 481100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Queen's Crescent Crown", Id = 510000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Queen's Robe", Id = 510100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Queen's Bracelets", Id = 510200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Queen's Leggings", Id = 510300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Godskin Apostle Hood", Id = 520000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Godskin Apostle Robe", Id = 520100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Godskin Apostle Bracelets", Id = 520200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Godskin Apostle Trousers", Id = 520300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Godskin Noble Hood", Id = 530000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Godskin Noble Robe", Id = 530100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Godskin Noble Bracelets", Id = 530200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Godskin Noble Trousers", Id = 530300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Depraved Perfumer Headscarf", Id = 540000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Depraved Perfumer Robe", Id = 540100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Depraved Perfumer Gloves", Id = 540200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Depraved Perfumer Trousers", Id = 540300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Depraved Perfumer Robe (Altered)", Id = 541100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Crucible Axe Helm", Id = 570000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Crucible Axe Armor", Id = 570100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Crucible Gauntlets", Id = 570200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Crucible Greaves", Id = 570300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Crucible Tree Helm", Id = 571000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Crucible Tree Armor", Id = 571100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Crucible Axe Armor (Altered)", Id = 572100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Crucible Tree Armor (Altered)", Id = 573100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Lusat's Glintstone Crown", Id = 580000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Lusat's Robe", Id = 580100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Lusat's Manchettes", Id = 580200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Old Sorcerer's Legwraps", Id = 580300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Azur's Glintstone Crown", Id = 581000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Azur's Glintstone Robe", Id = 581100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Azur's Manchettes", Id = 581200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "All-Knowing Helm", Id = 590000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "All-Knowing Armor", Id = 590100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "All-Knowing Gauntlets", Id = 590200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "All-Knowing Greaves", Id = 590300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "All-Knowing Armor (Altered)", Id = 591100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Twinned Helm", Id = 600000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Twinned Armor", Id = 600100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Twinned Gauntlets", Id = 600200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Twinned Greaves", Id = 600300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Twinned Armor (Altered)", Id = 601100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Ragged Hat", Id = 610000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Ragged Armor", Id = 610100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Ragged Gloves", Id = 610200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Ragged Loincloth", Id = 610300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Ragged Hat (Altered)", Id = 611000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Ragged Armor (Altered)", Id = 611100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Prophet Blindfold", Id = 620000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Corhyn's Robe", Id = 620100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Prophet Trousers", Id = 620300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Prophet Robe (Altered)", Id = 621100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Prophet Robe", Id = 622100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Astrologer Hood", Id = 630000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Astrologer Robe", Id = 630100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Astrologer Gloves", Id = 630200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Astrologer Trousers", Id = 630300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Astrologer Robe (Altered)", Id = 631100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Lionel's Helm", Id = 640000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Lionel's Armor", Id = 640100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Lionel's Gauntlets", Id = 640200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Lionel's Greaves", Id = 640300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Lionel's Armor (Altered)", Id = 641100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Hoslow's Helm", Id = 650000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Hoslow's Armor", Id = 650100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Hoslow's Gauntlets", Id = 650200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Hoslow's Greaves", Id = 650300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Diallos's Mask", Id = 651000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Hoslow's Armor (Altered)", Id = 652100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Vagabond Knight Helm", Id = 660000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Vagabond Knight Armor", Id = 660100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Vagabond Knight Gauntlets", Id = 660200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Vagabond Knight Greaves", Id = 660300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Vagabond Knight Armor (Altered)", Id = 661100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blue Cloth Cowl", Id = 670000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blue Cloth Vest", Id = 670100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Warrior Gauntlets", Id = 670200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Warrior Greaves", Id = 670300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "White Mask", Id = 680000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "War Surgeon Gown", Id = 680100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "War Surgeon Gloves", Id = 680200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "War Surgeon Trousers", Id = 680300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "War Surgeon Gown (Altered)", Id = 681100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Royal Remains Helm", Id = 690000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Royal Remains Armor", Id = 690100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Royal Remains Gauntlets", Id = 690200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Royal Remains Greaves", Id = 690300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Brave's Cord Circlet", Id = 700000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Brave's Battlewear", Id = 700100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Brave's Bracer", Id = 700200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Brave's Legwraps", Id = 700300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Brave's Leather Helm", Id = 701000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Brave's Battlewear (Altered)", Id = 702000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Beast Champion Helm", Id = 720000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Beast Champion Armor", Id = 720100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Beast Champion Gauntlets", Id = 720200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Beast Champion Greaves", Id = 720300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Beast Champion Armor (Altered)", Id = 721100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Champion Headband", Id = 730000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Champion Pauldron", Id = 730100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Champion Bracers", Id = 730200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Champion Gaiters", Id = 730300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Crimson Hood", Id = 740000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Noble's Traveling Garb", Id = 740100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Noble's Gloves", Id = 740200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Noble's Trousers", Id = 740300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Navy Hood", Id = 741000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Maliketh's Helm", Id = 760000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Maliketh's Armor", Id = 760100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Maliketh's Gauntlets", Id = 760200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Maliketh's Greaves", Id = 760300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Maliketh's Armor (Altered)", Id = 761100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Malenia's Winged Helm", Id = 770000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Malenia's Armor", Id = 770100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Malenia's Gauntlet", Id = 770200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Malenia's Greaves", Id = 770300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Malenia's Armor (Altered)", Id = 771100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Veteran's Helm", Id = 780000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Veteran's Armor", Id = 780100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Veteran's Gauntlets", Id = 780200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Veteran's Greaves", Id = 780300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Veteran's Armor (Altered)", Id = 781100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Bloodhound Knight Helm", Id = 790000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Bloodhound Knight Armor", Id = 790100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Bloodhound Knight Gauntlets", Id = 790200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Bloodhound Knight Greaves", Id = 790300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Bloodhound Knight Armor (Altered)", Id = 791100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Festive Hood", Id = 800000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Festive Garb", Id = 800100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Festive Hood (Altered)", Id = 801000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Festive Garb (Altered)", Id = 801100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blue Festive Hood", Id = 802000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blue Festive Garb", Id = 802100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Commoner's Headband", Id = 810000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Commoner's Garb", Id = 810100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Commoner's Shoes", Id = 810300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Commoner's Headband (Altered)", Id = 811000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Commoner's Garb (Altered)", Id = 811100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Commoner's Simple Garb", Id = 812000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Commoner's Simple Garb (Altered)", Id = 812100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Envoy Crown", Id = 820000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Twinsage Glintstone Crown", Id = 830000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Raya Lucarian Robe", Id = 830100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Sorcerer Manchettes", Id = 830200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Sorcerer Leggings", Id = 830300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Olivinus Glintstone Crown", Id = 831000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Lazuli Glintstone Crown", Id = 832000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Karolos Glintstone Crown", Id = 833000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Witch's Glintstone Crown", Id = 834000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Marionette Soldier Helm", Id = 840000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Marionette Soldier Armor", Id = 840100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Marionette Soldier Birdhelm", Id = 850000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Raging Wolf Helm", Id = 860000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Raging Wolf Armor", Id = 860100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Raging Wolf Gauntlets", Id = 860200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Raging Wolf Greaves", Id = 860300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Raging Wolf Armor (Altered)", Id = 861100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Land of Reeds Helm", Id = 870000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Land of Reeds Armor", Id = 870100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Land of Reeds Gauntlets", Id = 870200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Land of Reeds Greaves", Id = 870300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Land of Reeds Armor (Altered)", Id = 871100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Okina Mask", Id = 872000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "White Reed Armor", Id = 872100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "White Reed Gauntlets", Id = 872200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "White Reed Greaves", Id = 872300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Confessor Hood", Id = 880000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Confessor Armor", Id = 880100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Confessor Gloves", Id = 880200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Confessor Boots", Id = 880300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Confessor Hood (Altered)", Id = 881000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Confessor Armor (Altered)", Id = 881100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Prisoner Iron Mask", Id = 890000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Prisoner Clothing", Id = 890100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Prisoner Trousers", Id = 890300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blackguard's Iron Mask", Id = 891000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Traveling Maiden Hood", Id = 900000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Traveling Maiden Robe", Id = 900100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Traveling Maiden Gloves", Id = 900200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Traveling Maiden Boots", Id = 900300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Traveling Maiden Robe (Altered)", Id = 901100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Finger Maiden Fillet", Id = 902000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Finger Maiden Robe", Id = 902100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Finger Maiden Shoes", Id = 902300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Finger Maiden Robe (Altered)", Id = 903100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Preceptor's Big Hat", Id = 910000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Preceptor's Long Gown", Id = 910100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Preceptor's Gloves", Id = 910200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Preceptor's Trousers", Id = 910300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Mask of Confidence", Id = 911000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Preceptor's Long Gown (Altered)", Id = 911100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Grass Hair Ornament", Id = 920000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Skeletal Mask", Id = 930000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Raptor's Black Feathers", Id = 930100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Bandit Manchettes", Id = 930200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Bandit Boots", Id = 930300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Bandit Garb", Id = 931100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Eccentric's Hood", Id = 940000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Eccentric's Armor", Id = 940100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Eccentric's Manchettes", Id = 940200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Eccentric's Breeches", Id = 940300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Eccentric's Hood (Altered)", Id = 941000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fingerprint Helm", Id = 950000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fingerprint Armor", Id = 950100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fingerprint Gauntlets", Id = 950200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fingerprint Greaves", Id = 950300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fingerprint Armor (Altered)", Id = 951100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Consort's Mask", Id = 960000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Consort's Robe", Id = 960100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Consort's Trousers", Id = 960300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Ruler's Mask", Id = 961000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Ruler's Robe", Id = 961100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Upper-Class Robe", Id = 962100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Marais Mask", Id = 963000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Marais Robe", Id = 963100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Bloodsoaked Manchettes", Id = 963200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Bloodsoaked Mask", Id = 964000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Official's Attire", Id = 964100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Omen Helm", Id = 970000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Omen Armor", Id = 970100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Omen Gauntlets", Id = 970200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Omen Greaves", Id = 970300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Carian Knight Helm", Id = 980000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Carian Knight Armor", Id = 980100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Carian Knight Gauntlets", Id = 980200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Carian Knight Greaves", Id = 980300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Carian Knight Armor (Altered)", Id = 981100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Hierodas Glintstone Crown", Id = 990000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Errant Sorcerer Robe", Id = 990100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Errant Sorcerer Manchettes", Id = 990200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Errant Sorcerer Boots", Id = 990300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Errant Sorcerer Robe (Altered)", Id = 991100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Haima Glintstone Crown", Id = 1000000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Battlemage Robe", Id = 1000100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Battlemage Manchettes", Id = 1000200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Battlemage Legwraps", Id = 1000300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Snow Witch Hat", Id = 1010000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Snow Witch Robe", Id = 1010100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Snow Witch Skirt", Id = 1010300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Snow Witch Robe (Altered)", Id = 1011100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Traveler's Clothes", Id = 1020100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Traveler's Manchettes", Id = 1020200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Traveler's Boots", Id = 1020300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Juvenile Scholar Cap", Id = 1030000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Juvenile Scholar Robe", Id = 1030100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Radiant Gold Mask", Id = 1040000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Goldmask's Rags", Id = 1040100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Gold Bracelets", Id = 1040200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Gold Waistwrap", Id = 1040300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fell Omen Cloak", Id = 1050100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Albinauric Mask", Id = 1060000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Dirty Chainmail", Id = 1060100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Zamor Mask", Id = 1070000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Zamor Armor", Id = 1070100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Zamor Bracelets", Id = 1070200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Zamor Legwraps", Id = 1070300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Imp Head (Cat)", Id = 1080000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Imp Head (Fanged)", Id = 1081000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Imp Head (Long-Tongued)", Id = 1082000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Imp Head (Corpse)", Id = 1083000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Imp Head (Wolf)", Id = 1084000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Imp Head (Elder)", Id = 1085000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Silver Tear Mask", Id = 1090000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Chain Coif", Id = 1100000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Chain Armor", Id = 1100100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Gauntlets", Id = 1100200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Chain Leggings", Id = 1100300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Greathelm", Id = 1101000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Eye Surcoat", Id = 1101100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Tree Surcoat", Id = 1102100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Octopus Head", Id = 1110000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Jar", Id = 1120000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Mushroom Head", Id = 1130000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Mushroom Body", Id = 1130100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Mushroom Arms", Id = 1130200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Mushroom Legs", Id = 1130300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Nox Mirrorhelm", Id = 1300000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Iji's Mirrorhelm", Id = 1301000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Black Hood", Id = 1400000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Leather Armor", Id = 1400100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Leather Gloves", Id = 1400200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Leather Boots", Id = 1400300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Bandit Mask", Id = 1401000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Knight Helm", Id = 1500000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Knight Armor", Id = 1500100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Knight Gauntlets", Id = 1500200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Knight Greaves", Id = 1500300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Greathood", Id = 1600000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Godrick Soldier Helm", Id = 1700000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Tree-and-Beast Surcoat", Id = 1700100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Godrick Soldier Gauntlets", Id = 1700200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Godrick Soldier Greaves", Id = 1700300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Raya Lucarian Helm", Id = 1710000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Cuckoo Surcoat", Id = 1710100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Raya Lucarian Gauntlets", Id = 1710200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Raya Lucarian Greaves", Id = 1710300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Leyndell Soldier Helm", Id = 1720000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Erdtree Surcoat", Id = 1720100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Leyndell Soldier Gauntlets", Id = 1720200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Leyndell Soldier Greaves", Id = 1720300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Radahn Soldier Helm", Id = 1730000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Redmane Surcoat", Id = 1730100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Radahn Soldier Gauntlets", Id = 1730200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Radahn Soldier Greaves", Id = 1730300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Mausoleum Surcoat", Id = 1740100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Mausoleum Gauntlets", Id = 1740200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Mausoleum Greaves", Id = 1740300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Haligtree Helm", Id = 1750000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Haligtree Crest Surcoat", Id = 1750100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Haligtree Gauntlets", Id = 1750200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Haligtree Greaves", Id = 1750300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Gelmir Knight Helm", Id = 1760000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Gelmir Knight Armor", Id = 1760100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Gelmir Knight Gauntlets", Id = 1760200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Gelmir Knight Greaves", Id = 1760300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Gelmir Knight Armor (Altered)", Id = 1761100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Godrick Knight Helm", Id = 1770000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Godrick Knight Armor", Id = 1770100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Godrick Knight Gauntlets", Id = 1770200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Godrick Knight Greaves", Id = 1770300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Godrick Knight Armor (Altered)", Id = 1771100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Cuckoo Knight Helm", Id = 1780000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Cuckoo Knight Armor", Id = 1780100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Cuckoo Knight Gauntlets", Id = 1780200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Cuckoo Knight Greaves", Id = 1780300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Cuckoo Knight Armor (Altered)", Id = 1781100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Leyndell Knight Helm", Id = 1790000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Leyndell Knight Armor", Id = 1790100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Leyndell Knight Gauntlets", Id = 1790200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Leyndell Knight Greaves", Id = 1790300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Leyndell Knight Armor (Altered)", Id = 1791100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Redmane Knight Helm", Id = 1800000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Redmane Knight Armor", Id = 1800100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Redmane Knight Gauntlets", Id = 1800200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Redmane Knight Greaves", Id = 1800300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Redmane Knight Armor (Altered)", Id = 1801100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Mausoleum Knight Armor", Id = 1810100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Mausoleum Knight Gauntlets", Id = 1810200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Mausoleum Knight Greaves", Id = 1810300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Mausoleum Knight Armor (Altered)", Id = 1811100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Haligtree Knight Helm", Id = 1820000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Haligtree Knight Armor", Id = 1820100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Haligtree Knight Gauntlets", Id = 1820200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Haligtree Knight Greaves", Id = 1820300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Haligtree Knight Armor (Altered)", Id = 1821100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Foot Soldier Cap", Id = 1830000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Chain-Draped Tabard", Id = 1830100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Foot Soldier Gauntlets", Id = 1830200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Foot Soldier Greaves", Id = 1830300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Foot Soldier Helmet", Id = 1840000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Foot Soldier Tabard", Id = 1840100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Gilded Foot Soldier Cap", Id = 1850000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Leather-Draped Tabard", Id = 1850100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Foot Soldier Helm", Id = 1860000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Scarlet Tabard", Id = 1860100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Bloodsoaked Tabard", Id = 1870100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Sacred Crown Helm", Id = 1880000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Ivory-Draped Tabard", Id = 1880100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Omensmirk Mask", Id = 1890000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Omenkiller Robe", Id = 1890100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Omenkiller Long Gloves", Id = 1890200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Omenkiller Boots", Id = 1890300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Ash-of-War Scarab", Id = 1900000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Incantation Scarab", Id = 1901000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Glintstone Scarab", Id = 1902000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Crimson Tear Scarab", Id = 1910000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Cerulean Tear Scarab", Id = 1920000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Deathbed Dress", Id = 1930100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fia's Hood", Id = 1940000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fia's Robe", Id = 1940100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fia's Robe (Altered)", Id = 1941100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Highwayman Hood", Id = 1980000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Highwayman Cloth Armor", Id = 1980100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Highwayman Gauntlets", Id = 1980200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "High Page Hood", Id = 1990000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "High Page Clothes", Id = 1990100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "High Page Clothes (Altered)", Id = 1991100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Rotten Duelist Helm", Id = 2000000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Rotten Gravekeeper Cloak", Id = 2000100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Rotten Duelist Greaves", Id = 2000300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Rotten Gravekeeper Cloak (Altered)", Id = 2001100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Mushroom Crown", Id = 2010000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Black Dumpling", Id = 2020000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Lazuli Robe", Id = 2030000 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Lion's Claw", Id = 10000 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Impaling Thrust", Id = 10100 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Piercing Fang", Id = 10200 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Spinning Slash", Id = 10300 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Charge Forth", Id = 10500 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Stamp (Upward Cut)", Id = 10600 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Stamp (Sweep)", Id = 10700 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Blood Tax", Id = 10800 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Repeating Thrust", Id = 10900 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Wild Strikes", Id = 11000 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Spinning Strikes", Id = 11100 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Double Slash", Id = 11200 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Prelate's Charge", Id = 11300 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Unsheathe", Id = 11400 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Square Off", Id = 11500 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Giant Hunt", Id = 11600 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Loretta's Slash", Id = 11800 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Poison Moth Flight", Id = 11900 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Spinning Weapon", Id = 12000 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Storm Assault", Id = 12200 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Stormcaller", Id = 12300 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Sword Dance", Id = 12400 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Glintblade Phalanx", Id = 20000 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Sacred Blade", Id = 20100 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Ice Spear", Id = 20200 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Glintstone Pebble", Id = 20300 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Bloody Slash", Id = 20400 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Lifesteal Fist", Id = 20500 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Eruption", Id = 20700 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Prayerful Strike", Id = 20800 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Gravitas", Id = 20900 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Storm Blade", Id = 21000 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Earthshaker", Id = 21200 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Golden Land", Id = 21300 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Flaming Strike", Id = 21400 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Thunderbolt", Id = 21600 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Lightning Slash", Id = 21700 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Carian Grandeur", Id = 21800 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Carian Greatsword", Id = 21900 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Vacuum Slice", Id = 22000 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Black Flame Tornado", Id = 22100 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Sacred Ring of Light", Id = 22200 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Blood Blade", Id = 22400 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Phantom Slash", Id = 22500 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Spectral Lance", Id = 22600 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Chilling Mist", Id = 22700 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Poisonous Mist", Id = 22800 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Shield Bash", Id = 30000 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Barricade Shield", Id = 30100 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Parry", Id = 30200 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Carian Retaliation", Id = 30500 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Storm Wall", Id = 30600 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Golden Parry", Id = 30700 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Shield Crash", Id = 30800 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: No Skill", Id = 30900 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Thops's Barrier", Id = 31000 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Through and Through", Id = 40000 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Barrage", Id = 40100 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Mighty Shot", Id = 40200 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Enchanted Shot", Id = 40400 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Sky Shot", Id = 40500 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Rain of Arrows", Id = 40600 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Hoarfrost Stomp", Id = 50100 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Storm Stomp", Id = 50200 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Kick", Id = 50300 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Lightning Ram", Id = 50400 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Flame of the Redmanes", Id = 50500 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Ground Slam", Id = 50600 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Golden Slam", Id = 50700 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Waves of Darkness", Id = 50800 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Hoarah Loux's Earthshaker", Id = 50900 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Determination", Id = 60000 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Royal Knight's Resolve", Id = 60100 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Assassin's Gambit", Id = 60200 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Golden Vow", Id = 60300 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Sacred Order", Id = 60400 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Shared Order", Id = 60500 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Seppuku", Id = 60600 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Cragblade", Id = 60700 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Barbaric Roar", Id = 65000 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: War Cry", Id = 65100 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Beast's Roar", Id = 65200 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Troll's Roar", Id = 65300 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Braggart's Roar", Id = 65400 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Endure", Id = 70000 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Vow of the Indomitable", Id = 70100 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Holy Ground", Id = 70200 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Quickstep", Id = 80000 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Bloodhound's Step", Id = 80100 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Raptor of the Mists", Id = 80200 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: White Shadow's Lure", Id = 85000 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Glintstone Pebble", Id = 4000 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Great Glintstone Shard", Id = 4001 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Swift Glintstone Shard", Id = 4010 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Glintstone Cometshard", Id = 4020 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Comet", Id = 4021 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Shard Spiral", Id = 4030 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Glintstone Stars", Id = 4040 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Star Shower", Id = 4050 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Crystal Barrage", Id = 4060 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Glintstone Arc", Id = 4070 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Cannon of Haima", Id = 4080 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Crystal Burst", Id = 4090 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Shatter Earth", Id = 4100 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Rock Blaster", Id = 4110 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Gavel of Haima", Id = 4120 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Terra Magica", Id = 4130 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Starlight", Id = 4140 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Comet Azur", Id = 4200 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Founding Rain of Stars", Id = 4210 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Stars of Ruin", Id = 4220 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Glintblade Phalanx", Id = 4300 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Carian Phalanx", Id = 4301 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Greatblade Phalanx", Id = 4302 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Rennala's Full Moon", Id = 4360 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Ranni's Dark Moon", Id = 4361 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Magic Downpour", Id = 4370 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Loretta's Greatbow", Id = 4380 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Loretta's Mastery", Id = 4381 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Magic Glintblade", Id = 4390 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Glintstone Icecrag", Id = 4400 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Zamor Ice Storm", Id = 4410 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Freezing Mist", Id = 4420 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Carian Greatsword", Id = 4430 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Adula's Moonblade", Id = 4431 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Carian Slicer", Id = 4440 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Carian Piercer", Id = 4450 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Scholar's Armament", Id = 4460 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Scholar's Shield", Id = 4470 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Lucidity", Id = 4480 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Frozen Armament", Id = 4490 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Shattering Crystal", Id = 4500 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Crystal Release", Id = 4510 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Crystal Torrent", Id = 4520 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Ambush Shard", Id = 4600 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Night Shard", Id = 4610 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Night Comet", Id = 4620 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Thops's Barrier", Id = 4630 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Carian Retaliation", Id = 4640 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Eternal Darkness", Id = 4650 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Unseen Blade", Id = 4660 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Unseen Form", Id = 4670 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Meteorite", Id = 4700 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Meteorite of Astel", Id = 4701 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Rock Sling", Id = 4710 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Gravity Well", Id = 4720 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Collapsing Stars", Id = 4721 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Magma Shot", Id = 4800 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Gelmir's Fury", Id = 4810 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Roiling Magma", Id = 4820 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Rykard's Rancor", Id = 4830 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Briars of Sin", Id = 4900 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Briars of Punishment", Id = 4910 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Rancorcall", Id = 5000 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Ancient Death Rancor", Id = 5001 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Explosive Ghostflame", Id = 5010 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Fia's Mist", Id = 5020 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Tibia's Summons", Id = 5030 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Death Lightning", Id = 5040 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Oracle Bubbles", Id = 5100 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Great Oracular Bubble", Id = 5110 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Catch Flame", Id = 6000 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] O, Flame!", Id = 6001 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Flame Sling", Id = 6010 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Flame, Fall Upon Them", Id = 6020 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Whirl, O Flame!", Id = 6030 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Flame, Cleanse Me", Id = 6040 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Flame, Grant Me Strength", Id = 6050 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Flame, Protect Me", Id = 6060 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Giantsflame Take Thee", Id = 6100 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Flame of the Fell God", Id = 6110 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Burn, O Flame!", Id = 6120 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Black Flame", Id = 6210 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Surge, O Flame!", Id = 6220 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Scouring Black Flame", Id = 6230 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Black Flame Ritual", Id = 6240 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Black Flame Blade", Id = 6250 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Black Flame's Protection", Id = 6260 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Noble Presence", Id = 6270 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Bloodflame Talons", Id = 6300 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Bloodboon", Id = 6310 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Bloodflame Blade", Id = 6320 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Barrier of Gold", Id = 6330 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Protection of the Erdtree", Id = 6340 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Rejection", Id = 6400 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Wrath of Gold", Id = 6410 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Urgent Heal", Id = 6420 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Heal", Id = 6421 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Great Heal", Id = 6422 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Lord's Heal", Id = 6423 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Erdtree Heal", Id = 6424 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Blessing's Boon", Id = 6430 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Blessing of the Erdtree", Id = 6431 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Cure Poison", Id = 6440 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Lord's Aid", Id = 6441 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Flame Fortification", Id = 6450 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Magic Fortification", Id = 6460 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Lightning Fortification", Id = 6470 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Divine Fortification", Id = 6480 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Lord's Divine Fortification", Id = 6490 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Night Maiden's Mist", Id = 6500 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Assassin's Approach", Id = 6510 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Shadow Bait", Id = 6520 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Darkness", Id = 6530 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Golden Vow", Id = 6600 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Discus of Light", Id = 6700 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Triple Rings of Light", Id = 6701 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Radagon's Rings of Light", Id = 6710 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Elden Stars", Id = 6720 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Law of Regression", Id = 6730 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Immutable Shield", Id = 6740 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Litany of Proper Death", Id = 6750 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Law of Causality", Id = 6760 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Order's Blade", Id = 6770 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Order Healing", Id = 6780 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Bestial Sling", Id = 6800 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Stone of Gurranq", Id = 6810 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Beast Claw", Id = 6820 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Gurranq's Beast Claw", Id = 6830 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Bestial Vitality", Id = 6840 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Bestial Constitution", Id = 6850 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Lightning Spear", Id = 6900 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Ancient Dragons' Lightning Strike", Id = 6910 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Lightning Strike", Id = 6920 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Frozen Lightning Spear", Id = 6921 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Honed Bolt", Id = 6930 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Ancient Dragons' Lightning Spear", Id = 6940 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Fortissax's Lightning Spear", Id = 6941 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Lansseax's Glaive", Id = 6950 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Electrify Armament", Id = 6960 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Vyke's Dragonbolt", Id = 6970 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Dragonbolt Blessing", Id = 6971 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Dragonfire", Id = 7000 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Agheel's Flame", Id = 7001 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Magma Breath", Id = 7010 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Theodorix's Magma", Id = 7011 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Dragonice", Id = 7020 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Borealis's Mist", Id = 7021 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Rotten Breath", Id = 7030 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Ekzykes's Decay", Id = 7031 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Glintstone Breath", Id = 7040 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Smarag's Glintstone Breath", Id = 7041 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Placidusax's Ruin", Id = 7050 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Dragonclaw", Id = 7060 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Dragonmaw", Id = 7080 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Greyoll's Roar", Id = 7090 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Pest Threads", Id = 7200 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Swarm of Flies", Id = 7210 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Poison Mist", Id = 7220 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Poison Armament", Id = 7230 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Scarlet Aeonia", Id = 7240 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Inescapable Frenzy", Id = 7300 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] The Flame of Frenzy", Id = 7310 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Unendurable Frenzy", Id = 7311 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Frenzied Burst", Id = 7320 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Howl of Shabriri", Id = 7330 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Aspects of the Crucible: Tail", Id = 7500 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Aspects of the Crucible: Horns", Id = 7510 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Aspects of the Crucible: Breath", Id = 7520 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Black Blade", Id = 7530 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Fire's Deadly Sin", Id = 7900 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Golden Lightning Fortification", Id = 7903 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Crimson Amber Medallion", Id = 1000 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Crimson Amber Medallion +1", Id = 1001 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Crimson Amber Medallion +2", Id = 1002 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Cerulean Amber Medallion", Id = 1010 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Cerulean Amber Medallion +1", Id = 1011 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Cerulean Amber Medallion +2", Id = 1012 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Viridian Amber Medallion", Id = 1020 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Viridian Amber Medallion +1", Id = 1021 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Viridian Amber Medallion +2", Id = 1022 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Arsenal Charm", Id = 1030 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Arsenal Charm +1", Id = 1031 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Great-Jar's Arsenal", Id = 1032 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Erdtree's Favor", Id = 1040 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Erdtree's Favor +1", Id = 1041 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Erdtree's Favor +2", Id = 1042 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Radagon's Scarseal", Id = 1050 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Radagon's Soreseal", Id = 1051 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Starscourge Heirloom", Id = 1060 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Prosthesis-Wearer Heirloom", Id = 1070 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Stargazer Heirloom", Id = 1080 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Two Fingers Heirloom", Id = 1090 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Silver Scarab", Id = 1100 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Gold Scarab", Id = 1110 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Moon of Nokstella", Id = 1140 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Green Turtle Talisman", Id = 1150 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Stalwart Horn Charm", Id = 1160 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Stalwart Horn Charm +1", Id = 1161 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Immunizing Horn Charm", Id = 1170 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Immunizing Horn Charm +1", Id = 1171 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Clarifying Horn Charm", Id = 1180 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Clarifying Horn Charm +1", Id = 1181 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Prince of Death's Pustule", Id = 1190 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Prince of Death's Cyst", Id = 1191 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Mottled Necklace", Id = 1200 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Mottled Necklace +1", Id = 1201 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Bull-Goat's Talisman", Id = 1210 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Marika's Scarseal", Id = 1220 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Marika's Soreseal", Id = 1221 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Warrior Jar Shard", Id = 1230 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Shard of Alexander", Id = 1231 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Millicent's Prosthesis", Id = 1250 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Magic Scorpion Charm", Id = 2000 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Lightning Scorpion Charm", Id = 2010 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Fire Scorpion Charm", Id = 2020 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Sacred Scorpion Charm", Id = 2030 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Red-Feathered Branchsword", Id = 2040 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Ritual Sword Talisman", Id = 2050 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Spear Talisman", Id = 2060 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Hammer Talisman", Id = 2070 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Winged Sword Insignia", Id = 2080 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Rotten Winged Sword Insignia", Id = 2081 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Dagger Talisman", Id = 2090 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Arrow's Reach Talisman", Id = 2100 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Blue Dancer Charm", Id = 2110 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Twinblade Talisman", Id = 2120 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Axe Talisman", Id = 2130 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Lance Talisman", Id = 2140 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Arrow's Sting Talisman", Id = 2150 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Lord of Blood's Exultation", Id = 2160 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Kindred of Rot's Exultation", Id = 2170 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Claw Talisman", Id = 2180 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Roar Medallion", Id = 2190 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Curved Sword Talisman", Id = 2200 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Companion Jar", Id = 2210 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Perfumer's Talisman", Id = 2220 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Graven-School Talisman", Id = 3000 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Graven-Mass Talisman", Id = 3001 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Faithful's Canvas Talisman", Id = 3040 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Flock's Canvas Talisman", Id = 3050 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Old Lord's Talisman", Id = 3060 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Radagon Icon", Id = 3070 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Primal Glintstone Blade", Id = 3080 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Godfrey Icon", Id = 3090 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Dragoncrest Shield Talisman", Id = 4000 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Dragoncrest Shield Talisman +1", Id = 4001 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Dragoncrest Shield Talisman +2", Id = 4002 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Dragoncrest Greatshield Talisman", Id = 4003 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Spelldrake Talisman", Id = 4010 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Spelldrake Talisman +1", Id = 4011 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Spelldrake Talisman +2", Id = 4012 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Flamedrake Talisman", Id = 4020 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Flamedrake Talisman +1", Id = 4021 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Flamedrake Talisman +2", Id = 4022 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Boltdrake Talisman", Id = 4030 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Boltdrake Talisman +1", Id = 4031 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Boltdrake Talisman +2", Id = 4032 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Haligdrake Talisman", Id = 4040 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Haligdrake Talisman +1", Id = 4041 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Haligdrake Talisman +2", Id = 4042 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Pearldrake Talisman", Id = 4050 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Pearldrake Talisman +1", Id = 4051 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Pearldrake Talisman +2", Id = 4052 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Crucible Scale Talisman", Id = 4060 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Crucible Feather Talisman", Id = 4070 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Blue-Feathered Branchsword", Id = 4080 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Ritual Shield Talisman", Id = 4090 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Greatshield Talisman", Id = 4100 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Crucible Knot Talisman", Id = 4110 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Crimson Seed Talisman", Id = 5000 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Cerulean Seed Talisman", Id = 5010 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Blessed Dew Talisman", Id = 5020 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Taker's Cameo", Id = 5030 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Godskin Swaddling Cloth", Id = 5040 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Assassin's Crimson Dagger", Id = 5050 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Assassin's Cerulean Dagger", Id = 5060 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Crepus's Vial", Id = 6000 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Concealing Veil", Id = 6010 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Carian Filigreed Crest", Id = 6020 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Longtail Cat Talisman", Id = 6040 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Shabriri's Woe", Id = 6050 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Daedicar's Woe", Id = 6060 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Sacrificial Twig", Id = 6070 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Furled Finger's Trick-Mirror", Id = 6080 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Host's Trick-Mirror", Id = 6090 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Entwining Umbilical Cord", Id = 6100 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Ancestral Spirit's Horn", Id = 6110 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Black Knife Tiche", Id = 200000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Black Knife Tiche +1", Id = 200001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Black Knife Tiche +2", Id = 200002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Black Knife Tiche +3", Id = 200003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Black Knife Tiche +4", Id = 200004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Black Knife Tiche +5", Id = 200005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Black Knife Tiche +6", Id = 200006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Black Knife Tiche +7", Id = 200007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Black Knife Tiche +8", Id = 200008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Black Knife Tiche +9", Id = 200009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Black Knife Tiche +10", Id = 200010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Oleg", Id = 201000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Oleg +1", Id = 201001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Oleg +2", Id = 201002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Oleg +3", Id = 201003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Oleg +4", Id = 201004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Oleg +5", Id = 201005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Oleg +6", Id = 201006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Oleg +7", Id = 201007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Oleg +8", Id = 201008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Oleg +9", Id = 201009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Oleg +10", Id = 201010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Engvall", Id = 202000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Engvall +1", Id = 202001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Engvall +2", Id = 202002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Engvall +3", Id = 202003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Engvall +4", Id = 202004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Engvall +5", Id = 202005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Engvall +6", Id = 202006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Engvall +7", Id = 202007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Engvall +8", Id = 202008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Engvall +9", Id = 202009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Engvall +10", Id = 202010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fanged Imp Ashes", Id = 203000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fanged Imp Ashes +1", Id = 203001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fanged Imp Ashes +2", Id = 203002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fanged Imp Ashes +3", Id = 203003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fanged Imp Ashes +4", Id = 203004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fanged Imp Ashes +5", Id = 203005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fanged Imp Ashes +6", Id = 203006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fanged Imp Ashes +7", Id = 203007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fanged Imp Ashes +8", Id = 203008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fanged Imp Ashes +9", Id = 203009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fanged Imp Ashes +10", Id = 203010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Latenna the Albinauric", Id = 204000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Latenna the Albinauric +1", Id = 204001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Latenna the Albinauric +2", Id = 204002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Latenna the Albinauric +3", Id = 204003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Latenna the Albinauric +4", Id = 204004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Latenna the Albinauric +5", Id = 204005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Latenna the Albinauric +6", Id = 204006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Latenna the Albinauric +7", Id = 204007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Latenna the Albinauric +8", Id = 204008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Latenna the Albinauric +9", Id = 204009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Latenna the Albinauric +10", Id = 204010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nomad Ashes", Id = 205000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nomad Ashes +1", Id = 205001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nomad Ashes +2", Id = 205002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nomad Ashes +3", Id = 205003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nomad Ashes +4", Id = 205004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nomad Ashes +5", Id = 205005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nomad Ashes +6", Id = 205006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nomad Ashes +7", Id = 205007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nomad Ashes +8", Id = 205008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nomad Ashes +9", Id = 205009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nomad Ashes +10", Id = 205010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nightmaiden & Swordstress Puppets", Id = 206000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nightmaiden & Swordstress Puppets +1", Id = 206001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nightmaiden & Swordstress Puppets +2", Id = 206002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nightmaiden & Swordstress Puppets +3", Id = 206003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nightmaiden & Swordstress Puppets +4", Id = 206004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nightmaiden & Swordstress Puppets +5", Id = 206005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nightmaiden & Swordstress Puppets +6", Id = 206006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nightmaiden & Swordstress Puppets +7", Id = 206007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nightmaiden & Swordstress Puppets +8", Id = 206008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nightmaiden & Swordstress Puppets +9", Id = 206009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nightmaiden & Swordstress Puppets +10", Id = 206010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mimic Tear Ashes", Id = 207000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mimic Tear Ashes +1", Id = 207001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mimic Tear Ashes +2", Id = 207002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mimic Tear Ashes +3", Id = 207003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mimic Tear Ashes +4", Id = 207004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mimic Tear Ashes +5", Id = 207005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mimic Tear Ashes +6", Id = 207006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mimic Tear Ashes +7", Id = 207007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mimic Tear Ashes +8", Id = 207008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mimic Tear Ashes +9", Id = 207009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mimic Tear Ashes +10", Id = 207010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Crystalian Ashes", Id = 208000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Crystalian Ashes +1", Id = 208001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Crystalian Ashes +2", Id = 208002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Crystalian Ashes +3", Id = 208003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Crystalian Ashes +4", Id = 208004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Crystalian Ashes +5", Id = 208005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Crystalian Ashes +6", Id = 208006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Crystalian Ashes +7", Id = 208007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Crystalian Ashes +8", Id = 208008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Crystalian Ashes +9", Id = 208009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Crystalian Ashes +10", Id = 208010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancestral Follower Ashes", Id = 209000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancestral Follower Ashes +1", Id = 209001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancestral Follower Ashes +2", Id = 209002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancestral Follower Ashes +3", Id = 209003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancestral Follower Ashes +4", Id = 209004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancestral Follower Ashes +5", Id = 209005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancestral Follower Ashes +6", Id = 209006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancestral Follower Ashes +7", Id = 209007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancestral Follower Ashes +8", Id = 209008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancestral Follower Ashes +9", Id = 209009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancestral Follower Ashes +10", Id = 209010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Winged Misbegotten Ashes", Id = 210000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Winged Misbegotten Ashes + 1", Id = 210001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Winged Misbegotten Ashes + 2", Id = 210002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Winged Misbegotten Ashes + 3", Id = 210003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Winged Misbegotten Ashes + 4", Id = 210004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Winged Misbegotten Ashes + 5", Id = 210005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Winged Misbegotten Ashes + 6", Id = 210006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Winged Misbegotten Ashes + 7", Id = 210007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Winged Misbegotten Ashes + 8", Id = 210008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Winged Misbegotten Ashes + 9", Id = 210009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Winged Misbegotten Ashes + 10", Id = 210010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Albinauric Ashes", Id = 211000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Albinauric Ashes +1", Id = 211001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Albinauric Ashes +2", Id = 211002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Albinauric Ashes +3", Id = 211003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Albinauric Ashes +4", Id = 211004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Albinauric Ashes +5", Id = 211005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Albinauric Ashes +6", Id = 211006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Albinauric Ashes +7", Id = 211007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Albinauric Ashes +8", Id = 211008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Albinauric Ashes +9", Id = 211009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Albinauric Ashes +10", Id = 211010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Militiaman Ashes", Id = 212000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Militiaman Ashes +1", Id = 212001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Militiaman Ashes +2", Id = 212002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Militiaman Ashes +3", Id = 212003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Militiaman Ashes +4", Id = 212004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Militiaman Ashes +5", Id = 212005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Militiaman Ashes +6", Id = 212006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Militiaman Ashes +7", Id = 212007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Militiaman Ashes +8", Id = 212008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Militiaman Ashes +9", Id = 212009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Militiaman Ashes +10", Id = 212010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Bandit Ashes", Id = 213000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Bandit Ashes +1", Id = 213001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Bandit Ashes +2", Id = 213002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Bandit Ashes +3", Id = 213003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Bandit Ashes +4", Id = 213004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Bandit Ashes +5", Id = 213005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Bandit Ashes +6", Id = 213006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Bandit Ashes +7", Id = 213007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Bandit Ashes +8", Id = 213008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Bandit Ashes +9", Id = 213009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Bandit Ashes +10", Id = 213010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Oracle Envoy Ashes", Id = 214000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Oracle Envoy Ashes +1", Id = 214001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Oracle Envoy Ashes +2", Id = 214002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Oracle Envoy Ashes +3", Id = 214003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Oracle Envoy Ashes +4", Id = 214004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Oracle Envoy Ashes +5", Id = 214005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Oracle Envoy Ashes +6", Id = 214006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Oracle Envoy Ashes +7", Id = 214007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Oracle Envoy Ashes +8", Id = 214008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Oracle Envoy Ashes +9", Id = 214009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Oracle Envoy Ashes +10", Id = 214010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Putrid Corpse Ashes", Id = 215000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Putrid Corpse Ashes +1", Id = 215001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Putrid Corpse Ashes +2", Id = 215002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Putrid Corpse Ashes +3", Id = 215003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Putrid Corpse Ashes +4", Id = 215004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Putrid Corpse Ashes +5", Id = 215005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Putrid Corpse Ashes +6", Id = 215006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Putrid Corpse Ashes +7", Id = 215007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Putrid Corpse Ashes +8", Id = 215008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Putrid Corpse Ashes +9", Id = 215009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Putrid Corpse Ashes +10", Id = 215010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Depraved Perfumer Carmaan", Id = 216000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Depraved Perfumer Carmaan +1", Id = 216001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Depraved Perfumer Carmaan +2", Id = 216002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Depraved Perfumer Carmaan +3", Id = 216003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Depraved Perfumer Carmaan +4", Id = 216004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Depraved Perfumer Carmaan +5", Id = 216005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Depraved Perfumer Carmaan +6", Id = 216006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Depraved Perfumer Carmaan +7", Id = 216007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Depraved Perfumer Carmaan +8", Id = 216008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Depraved Perfumer Carmaan +9", Id = 216009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Depraved Perfumer Carmaan +10", Id = 216010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Perfumer Tricia", Id = 217000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Perfumer Tricia +1", Id = 217001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Perfumer Tricia +2", Id = 217002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Perfumer Tricia +3", Id = 217003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Perfumer Tricia +4", Id = 217004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Perfumer Tricia +5", Id = 217005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Perfumer Tricia +6", Id = 217006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Perfumer Tricia +7", Id = 217007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Perfumer Tricia +8", Id = 217008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Perfumer Tricia +9", Id = 217009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Perfumer Tricia +10", Id = 217010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Glintstone Sorcerer Ashes", Id = 218000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Glintstone Sorcerer Ashes +1", Id = 218001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Glintstone Sorcerer Ashes +2", Id = 218002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Glintstone Sorcerer Ashes +3", Id = 218003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Glintstone Sorcerer Ashes +4", Id = 218004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Glintstone Sorcerer Ashes +5", Id = 218005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Glintstone Sorcerer Ashes +6", Id = 218006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Glintstone Sorcerer Ashes +7", Id = 218007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Glintstone Sorcerer Ashes +8", Id = 218008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Glintstone Sorcerer Ashes +9", Id = 218009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Glintstone Sorcerer Ashes +10", Id = 218010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Twinsage Sorcerer Ashes", Id = 219000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Twinsage Sorcerer Ashes +1", Id = 219001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Twinsage Sorcerer Ashes +2", Id = 219002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Twinsage Sorcerer Ashes +3", Id = 219003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Twinsage Sorcerer Ashes +4", Id = 219004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Twinsage Sorcerer Ashes +5", Id = 219005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Twinsage Sorcerer Ashes +6", Id = 219006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Twinsage Sorcerer Ashes +7", Id = 219007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Twinsage Sorcerer Ashes +8", Id = 219008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Twinsage Sorcerer Ashes +9", Id = 219009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Twinsage Sorcerer Ashes +10", Id = 219010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Page Ashes", Id = 220000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Page Ashes +1", Id = 220001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Page Ashes +2", Id = 220002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Page Ashes +3", Id = 220003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Page Ashes +4", Id = 220004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Page Ashes +5", Id = 220005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Page Ashes +6", Id = 220006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Page Ashes +7", Id = 220007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Page Ashes +8", Id = 220008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Page Ashes +9", Id = 220009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Page Ashes +10", Id = 220010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Battlemage Hugues", Id = 221000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Battlemage Hugues +1", Id = 221001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Battlemage Hugues +2", Id = 221002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Battlemage Hugues +3", Id = 221003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Battlemage Hugues +4", Id = 221004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Battlemage Hugues +5", Id = 221005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Battlemage Hugues +6", Id = 221006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Battlemage Hugues +7", Id = 221007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Battlemage Hugues +8", Id = 221008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Battlemage Hugues +9", Id = 221009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Battlemage Hugues +10", Id = 221010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Clayman Ashes", Id = 222000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Clayman Ashes +1", Id = 222001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Clayman Ashes +2", Id = 222002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Clayman Ashes +3", Id = 222003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Clayman Ashes +4", Id = 222004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Clayman Ashes +5", Id = 222005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Clayman Ashes +6", Id = 222006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Clayman Ashes +7", Id = 222007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Clayman Ashes +8", Id = 222008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Clayman Ashes +9", Id = 222009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Clayman Ashes +10", Id = 222010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Cleanrot Knight Finlay", Id = 223000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Cleanrot Knight Finlay +1", Id = 223001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Cleanrot Knight Finlay +2", Id = 223002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Cleanrot Knight Finlay +3", Id = 223003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Cleanrot Knight Finlay +4", Id = 223004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Cleanrot Knight Finlay +5", Id = 223005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Cleanrot Knight Finlay +6", Id = 223006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Cleanrot Knight Finlay +7", Id = 223007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Cleanrot Knight Finlay +8", Id = 223008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Cleanrot Knight Finlay +9", Id = 223009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Cleanrot Knight Finlay +10", Id = 223010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kindred of Rot Ashes", Id = 224000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kindred of Rot Ashes +1", Id = 224001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kindred of Rot Ashes +2", Id = 224002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kindred of Rot Ashes +3", Id = 224003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kindred of Rot Ashes +4", Id = 224004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kindred of Rot Ashes +5", Id = 224005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kindred of Rot Ashes +6", Id = 224006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kindred of Rot Ashes +7", Id = 224007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kindred of Rot Ashes +8", Id = 224008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kindred of Rot Ashes +9", Id = 224009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kindred of Rot Ashes +10", Id = 224010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Marionette Soldier Ashes", Id = 225000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Marionette Soldier Ashes +1", Id = 225001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Marionette Soldier Ashes +2", Id = 225002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Marionette Soldier Ashes +3", Id = 225003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Marionette Soldier Ashes +4", Id = 225004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Marionette Soldier Ashes +5", Id = 225005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Marionette Soldier Ashes +6", Id = 225006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Marionette Soldier Ashes +7", Id = 225007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Marionette Soldier Ashes +8", Id = 225008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Marionette Soldier Ashes +9", Id = 225009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Marionette Soldier Ashes +10", Id = 225010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Avionette Soldier Ashes", Id = 226000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Avionette Soldier Ashes +1", Id = 226001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Avionette Soldier Ashes +2", Id = 226002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Avionette Soldier Ashes +3", Id = 226003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Avionette Soldier Ashes +4", Id = 226004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Avionette Soldier Ashes +5", Id = 226005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Avionette Soldier Ashes +6", Id = 226006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Avionette Soldier Ashes +7", Id = 226007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Avionette Soldier Ashes +8", Id = 226008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Avionette Soldier Ashes +9", Id = 226009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Avionette Soldier Ashes +10", Id = 226010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fire Monk Ashes", Id = 227000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fire Monk Ashes +1", Id = 227001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fire Monk Ashes +2", Id = 227002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fire Monk Ashes +3", Id = 227003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fire Monk Ashes +4", Id = 227004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fire Monk Ashes +5", Id = 227005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fire Monk Ashes +6", Id = 227006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fire Monk Ashes +7", Id = 227007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fire Monk Ashes +8", Id = 227008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fire Monk Ashes +9", Id = 227009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fire Monk Ashes +10", Id = 227010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Blackflame Monk Amon", Id = 228000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Blackflame Monk Amon +1", Id = 228001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Blackflame Monk Amon +2", Id = 228002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Blackflame Monk Amon +3", Id = 228003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Blackflame Monk Amon +4", Id = 228004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Blackflame Monk Amon +5", Id = 228005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Blackflame Monk Amon +6", Id = 228006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Blackflame Monk Amon +7", Id = 228007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Blackflame Monk Amon +8", Id = 228008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Blackflame Monk Amon +9", Id = 228009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Blackflame Monk Amon +10", Id = 228010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Man-Serpent Ashes", Id = 229000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Man-Serpent Ashes +1", Id = 229001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Man-Serpent Ashes +2", Id = 229002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Man-Serpent Ashes +3", Id = 229003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Man-Serpent Ashes +4", Id = 229004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Man-Serpent Ashes +5", Id = 229005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Man-Serpent Ashes +6", Id = 229006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Man-Serpent Ashes +7", Id = 229007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Man-Serpent Ashes +8", Id = 229008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Man-Serpent Ashes +9", Id = 229009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Man-Serpent Ashes +10", Id = 229010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Azula Beastman Ashes", Id = 230000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Azula Beastman Ashes +1", Id = 230001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Azula Beastman Ashes +2", Id = 230002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Azula Beastman Ashes +3", Id = 230003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Azula Beastman Ashes +4", Id = 230004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Azula Beastman Ashes +5", Id = 230005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Azula Beastman Ashes +6", Id = 230006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Azula Beastman Ashes +7", Id = 230007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Azula Beastman Ashes +8", Id = 230008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Azula Beastman Ashes +9", Id = 230009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Azula Beastman Ashes +10", Id = 230010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kaiden Sellsword Ashes", Id = 231000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kaiden Sellsword Ashes +1", Id = 231001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kaiden Sellsword Ashes +2", Id = 231002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kaiden Sellsword Ashes +3", Id = 231003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kaiden Sellsword Ashes +4", Id = 231004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kaiden Sellsword Ashes +5", Id = 231005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kaiden Sellsword Ashes +6", Id = 231006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kaiden Sellsword Ashes +7", Id = 231007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kaiden Sellsword Ashes +8", Id = 231008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kaiden Sellsword Ashes +9", Id = 231009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kaiden Sellsword Ashes +10", Id = 231010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lone Wolf Ashes", Id = 232000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lone Wolf Ashes +1", Id = 232001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lone Wolf Ashes +2", Id = 232002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lone Wolf Ashes +3", Id = 232003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lone Wolf Ashes +4", Id = 232004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lone Wolf Ashes +5", Id = 232005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lone Wolf Ashes +6", Id = 232006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lone Wolf Ashes +7", Id = 232007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lone Wolf Ashes +8", Id = 232008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lone Wolf Ashes +9", Id = 232009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lone Wolf Ashes +10", Id = 232010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Giant Rat Ashes", Id = 233000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Giant Rat Ashes +1", Id = 233001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Giant Rat Ashes +2", Id = 233002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Giant Rat Ashes +3", Id = 233003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Giant Rat Ashes +4", Id = 233004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Giant Rat Ashes +5", Id = 233005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Giant Rat Ashes +6", Id = 233006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Giant Rat Ashes +7", Id = 233007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Giant Rat Ashes +8", Id = 233008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Giant Rat Ashes +9", Id = 233009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Giant Rat Ashes +10", Id = 233010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Demi-Human Ashes", Id = 234000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Demi-Human Ashes +1", Id = 234001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Demi-Human Ashes +2", Id = 234002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Demi-Human Ashes +3", Id = 234003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Demi-Human Ashes +4", Id = 234004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Demi-Human Ashes +5", Id = 234005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Demi-Human Ashes +6", Id = 234006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Demi-Human Ashes +7", Id = 234007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Demi-Human Ashes +8", Id = 234008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Demi-Human Ashes +9", Id = 234009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Demi-Human Ashes +10", Id = 234010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Rotten Stray Ashes", Id = 235000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Rotten Stray Ashes +1", Id = 235001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Rotten Stray Ashes +2", Id = 235002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Rotten Stray Ashes +3", Id = 235003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Rotten Stray Ashes +4", Id = 235004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Rotten Stray Ashes +5", Id = 235005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Rotten Stray Ashes +6", Id = 235006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Rotten Stray Ashes +7", Id = 235007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Rotten Stray Ashes +8", Id = 235008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Rotten Stray Ashes +9", Id = 235009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Rotten Stray Ashes +10", Id = 235010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Spirit Jellyfish Ashes", Id = 236000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Spirit Jellyfish Ashes +1", Id = 236001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Spirit Jellyfish Ashes +2", Id = 236002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Spirit Jellyfish Ashes +3", Id = 236003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Spirit Jellyfish Ashes +4", Id = 236004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Spirit Jellyfish Ashes +5", Id = 236005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Spirit Jellyfish Ashes +6", Id = 236006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Spirit Jellyfish Ashes +7", Id = 236007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Spirit Jellyfish Ashes +8", Id = 236008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Spirit Jellyfish Ashes +9", Id = 236009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Spirit Jellyfish Ashes +10", Id = 236010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Warhawk Ashes", Id = 237000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Warhawk Ashes +1", Id = 237001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Warhawk Ashes +2", Id = 237002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Warhawk Ashes +3", Id = 237003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Warhawk Ashes +4", Id = 237004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Warhawk Ashes +5", Id = 237005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Warhawk Ashes +6", Id = 237006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Warhawk Ashes +7", Id = 237007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Warhawk Ashes +8", Id = 237008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Warhawk Ashes +9", Id = 237009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Warhawk Ashes +10", Id = 237010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Stormhawk Deenh", Id = 238000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Stormhawk Deenh +1", Id = 238001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Stormhawk Deenh +2", Id = 238002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Stormhawk Deenh +3", Id = 238003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Stormhawk Deenh +4", Id = 238004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Stormhawk Deenh +5", Id = 238005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Stormhawk Deenh +6", Id = 238006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Stormhawk Deenh +7", Id = 238007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Stormhawk Deenh +8", Id = 238008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Stormhawk Deenh +9", Id = 238009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Stormhawk Deenh +10", Id = 238010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Bloodhound Knight Floh", Id = 239000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Bloodhound Knight Floh +1", Id = 239001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Bloodhound Knight Floh +2", Id = 239002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Bloodhound Knight Floh +3", Id = 239003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Bloodhound Knight Floh +4", Id = 239004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Bloodhound Knight Floh +5", Id = 239005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Bloodhound Knight Floh +6", Id = 239006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Bloodhound Knight Floh +7", Id = 239007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Bloodhound Knight Floh +8", Id = 239008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Bloodhound Knight Floh +9", Id = 239009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Bloodhound Knight Floh +10", Id = 239010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Wandering Noble Ashes", Id = 240000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Wandering Noble Ashes +1", Id = 240001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Wandering Noble Ashes +2", Id = 240002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Wandering Noble Ashes +3", Id = 240003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Wandering Noble Ashes +4", Id = 240004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Wandering Noble Ashes +5", Id = 240005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Wandering Noble Ashes +6", Id = 240006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Wandering Noble Ashes +7", Id = 240007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Wandering Noble Ashes +8", Id = 240008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Wandering Noble Ashes +9", Id = 240009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Wandering Noble Ashes +10", Id = 240010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Noble Sorcerer Ashes", Id = 241000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Noble Sorcerer Ashes +1", Id = 241001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Noble Sorcerer Ashes +2", Id = 241002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Noble Sorcerer Ashes +3", Id = 241003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Noble Sorcerer Ashes +4", Id = 241004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Noble Sorcerer Ashes +5", Id = 241005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Noble Sorcerer Ashes +6", Id = 241006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Noble Sorcerer Ashes +7", Id = 241007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Noble Sorcerer Ashes +8", Id = 241008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Noble Sorcerer Ashes +9", Id = 241009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Noble Sorcerer Ashes +10", Id = 241010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Vulgar Militia Ashes", Id = 242000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Vulgar Militia Ashes +1", Id = 242001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Vulgar Militia Ashes +2", Id = 242002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Vulgar Militia Ashes +3", Id = 242003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Vulgar Militia Ashes +4", Id = 242004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Vulgar Militia Ashes +5", Id = 242005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Vulgar Militia Ashes +6", Id = 242006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Vulgar Militia Ashes +7", Id = 242007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Vulgar Militia Ashes +8", Id = 242008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Vulgar Militia Ashes +9", Id = 242009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Vulgar Militia Ashes +10", Id = 242010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mad Pumpkin Head Ashes", Id = 243000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mad Pumpkin Head Ashes +1", Id = 243001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mad Pumpkin Head Ashes +2", Id = 243002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mad Pumpkin Head Ashes +3", Id = 243003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mad Pumpkin Head Ashes +4", Id = 243004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mad Pumpkin Head Ashes +5", Id = 243005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mad Pumpkin Head Ashes +6", Id = 243006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mad Pumpkin Head Ashes +7", Id = 243007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mad Pumpkin Head Ashes +8", Id = 243008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mad Pumpkin Head Ashes +9", Id = 243009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mad Pumpkin Head Ashes +10", Id = 243010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Land Squirt Ashes", Id = 244000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Land Squirt Ashes +1", Id = 244001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Land Squirt Ashes +2", Id = 244002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Land Squirt Ashes +3", Id = 244003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Land Squirt Ashes +4", Id = 244004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Land Squirt Ashes +5", Id = 244005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Land Squirt Ashes +6", Id = 244006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Land Squirt Ashes +7", Id = 244007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Land Squirt Ashes +8", Id = 244008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Land Squirt Ashes +9", Id = 244009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Land Squirt Ashes +10", Id = 244010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Miranda Sprout Ashes", Id = 245000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Miranda Sprout Ashes +1 ", Id = 245001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Miranda Sprout Ashes +2", Id = 245002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Miranda Sprout Ashes +3", Id = 245003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Miranda Sprout Ashes +4", Id = 245004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Miranda Sprout Ashes +5", Id = 245005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Miranda Sprout Ashes +6", Id = 245006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Miranda Sprout Ashes +7", Id = 245007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Miranda Sprout Ashes +8", Id = 245008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Miranda Sprout Ashes +9", Id = 245009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Miranda Sprout Ashes +10", Id = 245010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Soldjars of Fortune Ashes", Id = 246000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Soldjars of Fortune Ashes +1", Id = 246001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Soldjars of Fortune Ashes +2", Id = 246002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Soldjars of Fortune Ashes +3", Id = 246003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Soldjars of Fortune Ashes +4", Id = 246004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Soldjars of Fortune Ashes +5", Id = 246005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Soldjars of Fortune Ashes +6", Id = 246006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Soldjars of Fortune Ashes +7", Id = 246007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Soldjars of Fortune Ashes +8", Id = 246008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Soldjars of Fortune Ashes +9", Id = 246009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Soldjars of Fortune Ashes +10", Id = 246010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Omenkiller Rollo", Id = 247000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Omenkiller Rollo +1", Id = 247001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Omenkiller Rollo +2", Id = 247002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Omenkiller Rollo +3", Id = 247003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Omenkiller Rollo +4", Id = 247004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Omenkiller Rollo +5", Id = 247005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Omenkiller Rollo +6", Id = 247006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Omenkiller Rollo +7", Id = 247007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Omenkiller Rollo +8", Id = 247008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Omenkiller Rollo +9", Id = 247009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Omenkiller Rollo +10", Id = 247010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Greatshield Soldier Ashes", Id = 248000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Greatshield Soldier Ashes +1", Id = 248001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Greatshield Soldier Ashes +2", Id = 248002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Greatshield Soldier Ashes +3", Id = 248003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Greatshield Soldier Ashes +4", Id = 248004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Greatshield Soldier Ashes +5", Id = 248005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Greatshield Soldier Ashes +6", Id = 248006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Greatshield Soldier Ashes +7", Id = 248007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Greatshield Soldier Ashes +8", Id = 248008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Greatshield Soldier Ashes +9", Id = 248009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Greatshield Soldier Ashes +10", Id = 248010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Archer Ashes", Id = 249000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Archer Ashes +1", Id = 249001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Archer Ashes +2", Id = 249002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Archer Ashes +3", Id = 249003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Archer Ashes +4", Id = 249004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Archer Ashes +5", Id = 249005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Archer Ashes +6", Id = 249006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Archer Ashes +7", Id = 249007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Archer Ashes +8", Id = 249008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Archer Ashes +9", Id = 249009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Archer Ashes +10", Id = 249010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Godrick Soldier Ashes", Id = 250000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Godrick Soldier Ashes +1", Id = 250001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Godrick Soldier Ashes +2", Id = 250002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Godrick Soldier Ashes +3", Id = 250003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Godrick Soldier Ashes +4", Id = 250004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Godrick Soldier Ashes +5", Id = 250005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Godrick Soldier Ashes +6", Id = 250006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Godrick Soldier Ashes +7", Id = 250007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Godrick Soldier Ashes +8", Id = 250008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Godrick Soldier Ashes +9", Id = 250009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Godrick Soldier Ashes +10", Id = 250010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Raya Lucaria Soldier Ashes", Id = 251000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Raya Lucaria Soldier Ashes +1", Id = 251001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Raya Lucaria Soldier Ashes +2", Id = 251002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Raya Lucaria Soldier Ashes +3", Id = 251003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Raya Lucaria Soldier Ashes +4", Id = 251004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Raya Lucaria Soldier Ashes +5", Id = 251005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Raya Lucaria Soldier Ashes +6", Id = 251006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Raya Lucaria Soldier Ashes +7", Id = 251007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Raya Lucaria Soldier Ashes +8", Id = 251008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Raya Lucaria Soldier Ashes +9", Id = 251009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Raya Lucaria Soldier Ashes +10", Id = 251010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Leyndell Soldier Ashes", Id = 252000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Leyndell Soldier Ashes +1", Id = 252001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Leyndell Soldier Ashes +2", Id = 252002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Leyndell Soldier Ashes +3", Id = 252003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Leyndell Soldier Ashes +4", Id = 252004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Leyndell Soldier Ashes +5", Id = 252005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Leyndell Soldier Ashes +6", Id = 252006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Leyndell Soldier Ashes +7", Id = 252007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Leyndell Soldier Ashes +8", Id = 252008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Leyndell Soldier Ashes +9", Id = 252009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Leyndell Soldier Ashes +10", Id = 252010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Radahn Soldier Ashes", Id = 253000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Radahn Soldier Ashes +1", Id = 253001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Radahn Soldier Ashes +2", Id = 253002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Radahn Soldier Ashes +3", Id = 253003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Radahn Soldier Ashes +4", Id = 253004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Radahn Soldier Ashes +5", Id = 253005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Radahn Soldier Ashes +6", Id = 253006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Radahn Soldier Ashes +7", Id = 253007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Radahn Soldier Ashes +8", Id = 253008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Radahn Soldier Ashes +9", Id = 253009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Radahn Soldier Ashes +10", Id = 253010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mausoleum Soldier Ashes", Id = 254000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mausoleum Soldier Ashes +1", Id = 254001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mausoleum Soldier Ashes +2", Id = 254002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mausoleum Soldier Ashes +3", Id = 254003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mausoleum Soldier Ashes +4", Id = 254004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mausoleum Soldier Ashes +5", Id = 254005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mausoleum Soldier Ashes +6", Id = 254006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mausoleum Soldier Ashes +7", Id = 254007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mausoleum Soldier Ashes +8", Id = 254008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mausoleum Soldier Ashes +9", Id = 254009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mausoleum Soldier Ashes +10", Id = 254010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Haligtree Soldier Ashes", Id = 255000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Haligtree Soldier Ashes +1", Id = 255001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Haligtree Soldier Ashes +2", Id = 255002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Haligtree Soldier Ashes +3", Id = 255003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Haligtree Soldier Ashes +4", Id = 255004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Haligtree Soldier Ashes +5", Id = 255005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Haligtree Soldier Ashes +6", Id = 255006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Haligtree Soldier Ashes +7", Id = 255007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Haligtree Soldier Ashes +8", Id = 255008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Haligtree Soldier Ashes +9", Id = 255009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Haligtree Soldier Ashes +10", Id = 255010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancient Dragon Knight Kristoff", Id = 256000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancient Dragon Knight Kristoff +1", Id = 256001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancient Dragon Knight Kristoff +2", Id = 256002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancient Dragon Knight Kristoff +3", Id = 256003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancient Dragon Knight Kristoff +4", Id = 256004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancient Dragon Knight Kristoff +5", Id = 256005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancient Dragon Knight Kristoff +6", Id = 256006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancient Dragon Knight Kristoff +7", Id = 256007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancient Dragon Knight Kristoff +8", Id = 256008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancient Dragon Knight Kristoff +9", Id = 256009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancient Dragon Knight Kristoff +10", Id = 256010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Redmane Knight Ogha", Id = 257000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Redmane Knight Ogha +1", Id = 257001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Redmane Knight Ogha +2", Id = 257002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Redmane Knight Ogha +3", Id = 257003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Redmane Knight Ogha +4", Id = 257004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Redmane Knight Ogha +5", Id = 257005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Redmane Knight Ogha +6", Id = 257006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Redmane Knight Ogha +7", Id = 257007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Redmane Knight Ogha +8", Id = 257008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Redmane Knight Ogha +9", Id = 257009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Redmane Knight Ogha +10", Id = 257010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lhutel the Headless", Id = 258000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lhutel the Headless +1", Id = 258001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lhutel the Headless +2", Id = 258002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lhutel the Headless +3", Id = 258003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lhutel the Headless +4", Id = 258004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lhutel the Headless +5", Id = 258005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lhutel the Headless +6", Id = 258006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lhutel the Headless +7", Id = 258007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lhutel the Headless +8", Id = 258008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lhutel the Headless +9", Id = 258009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lhutel the Headless +10", Id = 258010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nepheli Loux Puppet", Id = 259000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nepheli Loux Puppet +1", Id = 259001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nepheli Loux Puppet +2", Id = 259002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nepheli Loux Puppet +3", Id = 259003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nepheli Loux Puppet +4", Id = 259004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nepheli Loux Puppet +5", Id = 259005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nepheli Loux Puppet +6", Id = 259006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nepheli Loux Puppet +7", Id = 259007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nepheli Loux Puppet +8", Id = 259008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nepheli Loux Puppet +9", Id = 259009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nepheli Loux Puppet +10", Id = 259010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dung Eater Puppet", Id = 260000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dung Eater Puppet +1", Id = 260001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dung Eater Puppet +2", Id = 260002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dung Eater Puppet +3", Id = 260003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dung Eater Puppet +4", Id = 260004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dung Eater Puppet +5", Id = 260005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dung Eater Puppet +6", Id = 260006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dung Eater Puppet +7", Id = 260007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dung Eater Puppet +8", Id = 260008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dung Eater Puppet +9", Id = 260009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dung Eater Puppet +10", Id = 260010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Finger Maiden Therolina Puppet", Id = 261000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Finger Maiden Therolina Puppet +1", Id = 261001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Finger Maiden Therolina Puppet +2", Id = 261002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Finger Maiden Therolina Puppet +3", Id = 261003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Finger Maiden Therolina Puppet +4", Id = 261004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Finger Maiden Therolina Puppet +5", Id = 261005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Finger Maiden Therolina Puppet +6", Id = 261006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Finger Maiden Therolina Puppet +7", Id = 261007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Finger Maiden Therolina Puppet +8", Id = 261008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Finger Maiden Therolina Puppet +9", Id = 261009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Finger Maiden Therolina Puppet +10", Id = 261010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dolores the Sleeping Arrow Puppet", Id = 262000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dolores the Sleeping Arrow Puppet +1", Id = 262001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dolores the Sleeping Arrow Puppet +2", Id = 262002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dolores the Sleeping Arrow Puppet +3", Id = 262003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dolores the Sleeping Arrow Puppet +4", Id = 262004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dolores the Sleeping Arrow Puppet +5", Id = 262005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dolores the Sleeping Arrow Puppet +6", Id = 262006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dolores the Sleeping Arrow Puppet +7", Id = 262007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dolores the Sleeping Arrow Puppet +8", Id = 262008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dolores the Sleeping Arrow Puppet +9", Id = 262009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dolores the Sleeping Arrow Puppet +10", Id = 262010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Jarwight Puppet", Id = 263000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Jarwight Puppet +1", Id = 263001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Jarwight Puppet +2", Id = 263002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Jarwight Puppet +3", Id = 263003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Jarwight Puppet +4", Id = 263004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Jarwight Puppet +5", Id = 263005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Jarwight Puppet +6", Id = 263006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Jarwight Puppet +7", Id = 263007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Jarwight Puppet +8", Id = 263008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Jarwight Puppet +9", Id = 263009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Jarwight Puppet +10", Id = 263010 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Furlcalling Finger Remedy", Id = 182 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Rune Arc", Id = 190 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Fire Pot", Id = 300 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Redmane Fire Pot", Id = 301 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Giantsflame Fire Pot", Id = 302 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Lightning Pot", Id = 320 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Ancient Dragonbolt Pot", Id = 321 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Fetid Pot", Id = 330 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Swarm Pot", Id = 340 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Holy Water Pot", Id = 350 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Sacred Order Pot", Id = 351 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Freezing Pot", Id = 360 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Poison Pot", Id = 370 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Oil Pot", Id = 380 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Alluring Pot", Id = 390 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Beastlure Pot", Id = 391 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Roped Fire Pot", Id = 400 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Roped Lightning Pot", Id = 420 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Roped Fetid Pot", Id = 430 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Roped Poison Pot", Id = 440 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Roped Oil Pot", Id = 450 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Roped Magic Pot", Id = 460 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Roped Fly Pot", Id = 470 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Roped Freezing Pot", Id = 480 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Roped Volcano Pot", Id = 490 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Roped Holy Water Pot", Id = 510 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Volcano Pot", Id = 600 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Albinauric Pot", Id = 610 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Cursed-Blood Pot", Id = 630 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Sleep Pot", Id = 640 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Rancor Pot", Id = 650 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Magic Pot", Id = 660 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Academy Magic Pot", Id = 661 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Rot Pot", Id = 670 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Boiled Crab", Id = 820 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Boiled Prawn", Id = 830 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Neutralizing Boluses", Id = 900 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Stanching Boluses", Id = 910 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Thawfrost Boluses", Id = 920 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Stimulating Boluses", Id = 930 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Preserving Boluses", Id = 940 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Rejuvenating Boluses", Id = 950 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Clarifying Boluses", Id = 960 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Pickled Turtle Neck", Id = 1100 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Immunizing Cured Meat", Id = 1110 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Invigorating Cured Meat", Id = 1120 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Clarifying Cured Meat", Id = 1130 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Dappled Cured Meat", Id = 1140 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Spellproof Dried Liver", Id = 1150 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Fireproof Dried Liver", Id = 1160 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Lightningproof Dried Liver", Id = 1170 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Holyproof Dried Liver", Id = 1180 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Silver-Pickled Fowl Foot", Id = 1190 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Gold-Pickled Fowl Foot", Id = 1200 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Exalted Flesh", Id = 1210 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Deathsbane Jerky", Id = 1220 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Raw Meat Dumpling", Id = 1235 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Shabriri Grape", Id = 1240 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Starlight Shards", Id = 1290 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Immunizing White Cured Meat", Id = 1310 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Invigorating White Cured Meat", Id = 1320 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Clarifying White Cured Meat", Id = 1330 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Dappled White Cured Meat", Id = 1340 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Deathsbane White Jerky", Id = 1350 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Fire Grease", Id = 1400 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Lightning Grease", Id = 1410 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Magic Grease", Id = 1420 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Holy Grease", Id = 1430 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Blood Grease", Id = 1440 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Soporific Grease", Id = 1450 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Poison Grease", Id = 1460 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Freezing Grease", Id = 1470 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Dragonwound Grease", Id = 1480 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Rot Grease", Id = 1490 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Drawstring Fire Grease", Id = 1500 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Drawstring Lightning Grease", Id = 1510 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Drawstring Magic Grease", Id = 1520 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Drawstring Holy Grease", Id = 1530 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Drawstring Blood Grease", Id = 1540 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Drawstring Soporific Grease", Id = 1550 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Drawstring Poison Grease", Id = 1560 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Drawstring Freezing Grease", Id = 1570 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Drawstring Rot Grease", Id = 1590 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Shield Grease", Id = 1690 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Throwing Dagger", Id = 1700 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Bone Dart", Id = 1710 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Poisonbone Dart", Id = 1720 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Kukri", Id = 1730 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Crystal Dart", Id = 1740 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Fan Daggers", Id = 1750 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Ruin Fragment", Id = 1760 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Explosive Stone", Id = 1830 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Explosive Stone Clump", Id = 1831 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Poisoned Stone", Id = 1840 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Poisoned Stone Clump", Id = 1841 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Rainbow Stone", Id = 2020 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Glowstone", Id = 2030 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Grace Mimic", Id = 2050 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Soft Cotton", Id = 2100 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Soap", Id = 2120 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Celestial Dew", Id = 2130 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Miquella's Needle", Id = 2190 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [1]", Id = 2900 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [2]", Id = 2901 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [3]", Id = 2902 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [4]", Id = 2903 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [5]", Id = 2904 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [6]", Id = 2905 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [7]", Id = 2906 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [8]", Id = 2907 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [9]", Id = 2908 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [10]", Id = 2909 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [11]", Id = 2910 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [12]", Id = 2911 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [13]", Id = 2912 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Numen's Rune", Id = 2913 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Hero's Rune [1]", Id = 2914 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Hero's Rune [2]", Id = 2915 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Hero's Rune [3]", Id = 2916 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Hero's Rune [4]", Id = 2917 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Hero's Rune [5]", Id = 2918 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Lord's Rune", Id = 2919 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Grafted", Id = 2950 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Starscourge", Id = 2951 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Omen King", Id = 2952 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Blasphemous", Id = 2953 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Rot Goddess", Id = 2954 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Blood Lord", Id = 2955 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Black Blade", Id = 2956 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of Hoarah Loux", Id = 2957 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Dragonlord", Id = 2958 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Full Moon Queen", Id = 2959 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Lichdragon", Id = 2960 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Fire Giant", Id = 2961 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Regal Ancestor", Id = 2962 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Elden Remembrance", Id = 2963 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Naturalborn", Id = 2964 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Lands Between Rune", Id = 2990 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Cuckoo Glintstone", Id = 3030 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Glintstone Scrap", Id = 3050 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Large Glintstone Scrap", Id = 3051 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Gravity Stone Fan", Id = 3060 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Gravity Stone Chunk", Id = 3070 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Wraith Calling Bell", Id = 3080 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Holy Water Grease", Id = 3300 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Warming Stone", Id = 3310 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Frenzyflame Stone", Id = 3311 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Scriptstone", Id = 3320 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Bewitching Branch", Id = 3350 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Baldachin's Blessing", Id = 3360 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Radiant Baldachin's Blessing", Id = 3361 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Uplifting Aromatic", Id = 3500 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Spark Aromatic", Id = 3510 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Ironjar Aromatic", Id = 3520 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Bloodboil Aromatic", Id = 3550 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Poison Spraymist", Id = 3580 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Acid Spraymist", Id = 3610 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Cracked Pot", Id = 9500 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Ritual Pot", Id = 9501 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Perfume Bottle", Id = 9510 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Glass Shard", Id = 10000 }, - //new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Great Rune of the Unborn", Id = 10080 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Rowa Raisin", Id = 810 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Sweet Raisin", Id = 811 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Frozen Raisin", Id = 812 }, - //new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Raw Meat Dumpling", Id = 1235 }, - //new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Ruin Fragment", Id = 1760 }, - //new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Soft Cotton", Id = 2100 }, - //new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Celestial Dew", Id = 2130 }, - //new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Cracked Pot", Id = 9500 }, - //new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Ritual Pot", Id = 9501 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Sliver of Meat", Id = 15000 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Beast Liver", Id = 15010 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Lump of Flesh", Id = 15020 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Beast Blood", Id = 15030 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Old Fang", Id = 15040 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Budding Horn", Id = 15050 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Flight Pinion", Id = 15060 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Four-Toed Fowl Foot", Id = 15080 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Turtle Neck Meat", Id = 15090 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Human Bone Shard", Id = 15100 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Great Dragonfly Head", Id = 15110 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Slumbering Egg", Id = 15120 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Crab Eggs", Id = 15130 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Land Octopus Ovary", Id = 15140 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Miranda Powder", Id = 15150 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Strip of White Flesh", Id = 15160 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Thin Beast Bones", Id = 15340 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Hefty Beast Bone", Id = 15341 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "String", Id = 15400 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Living Jar Shard", Id = 15410 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Albinauric Bloodclot", Id = 15420 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Stormhawk Feather", Id = 15430 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Poisonbloom", Id = 20650 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Trina's Lily", Id = 20651 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Fulgurbloom", Id = 20652 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Miquella's Lily", Id = 20653 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Grave Violet", Id = 20654 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Faded Erdleaf Flower", Id = 20660 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Erdleaf Flower", Id = 20680 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Altus Bloom", Id = 20681 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Fire Blossom", Id = 20682 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Golden Sunflower", Id = 20683 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Tarnished Golden Sunflower", Id = 20685 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Herba", Id = 20690 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Arteria Leaf", Id = 20691 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Dewkissed Herba", Id = 20710 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Rowa Fruit", Id = 20720 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Golden Rowa", Id = 20721 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Rimed Rowa", Id = 20722 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Bloodrose", Id = 20723 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Eye of Yelough", Id = 20740 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Crystal Bud", Id = 20750 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Rimed Crystal Bud", Id = 20751 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Sacramental Bud", Id = 20753 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Mushroom", Id = 20760 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Melted Mushroom", Id = 20761 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Toxic Mushroom", Id = 20770 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Root Resin", Id = 20775 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Cracked Crystal", Id = 20780 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Sanctuary Stone", Id = 20795 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Nascent Butterfly", Id = 20800 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Aeonian Butterfly", Id = 20801 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Smoldering Butterfly", Id = 20802 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Silver Firefly", Id = 20810 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Gold Firefly", Id = 20811 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Glintstone Firefly", Id = 20812 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Golden Centipede", Id = 20820 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Silver Tear Husk", Id = 20825 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Gold-Tinged Excrement", Id = 20830 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Blood-Tainted Excrement", Id = 20831 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Cave Moss", Id = 20840 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Budding Cave Moss", Id = 20841 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Crystal Cave Moss", Id = 20842 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Yellow Ember", Id = 20845 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Volcanic Stone", Id = 20850 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Formic Rock", Id = 20852 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Gravel Stone", Id = 20855 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Wondrous Physick (Empty)", Id = 250 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Wondrous Physick", Id = 251 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears (Empty)", Id = 1000 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears", Id = 1001 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +1 (Empty)", Id = 1002 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +1", Id = 1003 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +2 (Empty)", Id = 1004 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +2", Id = 1005 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +3 (Empty)", Id = 1006 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +3", Id = 1007 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +4 (Empty)", Id = 1008 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +4", Id = 1009 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +5 (Empty)", Id = 1010 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +5", Id = 1011 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +6 (Empty)", Id = 1012 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +6", Id = 1013 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +7 (Empty)", Id = 1014 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +7", Id = 1015 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +8 (Empty)", Id = 1016 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +8", Id = 1017 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +9 (Empty)", Id = 1018 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +9", Id = 1019 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +10 (Empty)", Id = 1020 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +10", Id = 1021 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +11 (Empty)", Id = 1022 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +11", Id = 1023 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +12 (Empty)", Id = 1024 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +12", Id = 1025 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears (Empty)", Id = 1050 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears", Id = 1051 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +1 (Empty)", Id = 1052 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +1", Id = 1053 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +2 (Empty)", Id = 1054 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +2", Id = 1055 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +3 (Empty)", Id = 1056 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +3", Id = 1057 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +4 (Empty)", Id = 1058 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +4", Id = 1059 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +5 (Empty)", Id = 1060 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +5", Id = 1061 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +6 (Empty)", Id = 1062 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +6", Id = 1063 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +7 (Empty)", Id = 1064 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +7", Id = 1065 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +8 (Empty)", Id = 1066 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +8", Id = 1067 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +9 (Empty)", Id = 1068 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +9", Id = 1069 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +10 (Empty)", Id = 1070 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +10", Id = 1071 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +11 (Empty)", Id = 1072 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +11", Id = 1073 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +12 (Empty)", Id = 1074 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +12", Id = 1075 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Tarnished's Furled Finger", Id = 100 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Duelist's Furled Finger", Id = 101 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Bloody Finger", Id = 102 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Finger Severer", Id = 103 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "White Cipher Ring", Id = 104 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Blue Cipher Ring", Id = 105 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Tarnished's Wizened Finger", Id = 106 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Phantom Bloody Finger", Id = 107 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Taunter's Tongue", Id = 108 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Small Golden Effigy", Id = 109 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Small Red Effigy", Id = 110 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Festering Bloody Finger", Id = 111 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Recusant Finger", Id = 112 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Phantom Bloody Finger", Id = 113 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Phantom Recusant Finger", Id = 114 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Memory of Grace", Id = 115 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Spectral Steed Whistle", Id = 130 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Phantom Great Rune", Id = 135 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Godrick's Great Rune", Id = 191 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Radahn's Great Rune", Id = 192 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Morgott's Great Rune", Id = 193 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Rykard's Great Rune", Id = 194 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Mohg's Great Rune", Id = 195 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Malenia's Great Rune", Id = 196 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Stonesword Key", Id = 8000 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Rusty Key", Id = 8010 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Lucent Baldachin's Blessing", Id = 8102 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Dectus Medallion (Left)", Id = 8105 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Dectus Medallion (Right)", Id = 8106 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Rold Medallion", Id = 8107 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Academy Glintstone Key", Id = 8109 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Carian Inverted Statue", Id = 8111 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Dark Moon Ring", Id = 8121 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Fingerprint Grape", Id = 8126 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Letter from Volcano Manor", Id = 8127 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Tonic of Forgetfulness", Id = 8128 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Serpent's Amnion", Id = 8129 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Rya's Necklace", Id = 8130 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Irina's Letter", Id = 8131 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Letter from Volcano Manor", Id = 8132 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Red Letter", Id = 8133 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Drawing-Room Key", Id = 8134 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Rya's Necklace", Id = 8136 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Volcano Manor Invitation", Id = 8137 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Amber Starlight", Id = 8142 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Seluvis's Introduction", Id = 8143 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Sellen's Primal Glintstone", Id = 8144 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Miniature Ranni", Id = 8146 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Asimi, Silver Tear", Id = 8147 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Godrick's Great Rune (Unpowered)", Id = 8148 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Radahn's Great Rune (Unpowered)", Id = 8149 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Morgott's Great Rune (Unpowered)", Id = 8150 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Rykard's Great Rune (Unpowered)", Id = 8151 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Mohg's Great Rune (Unpowered)", Id = 8152 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Malenia's Great Rune (Unpowered)", Id = 8153 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Lord of Blood's Favor", Id = 8154 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Lord of Blood's Favor", Id = 8155 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Burial Crow's Letter", Id = 8156 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Spirit Calling Bell", Id = 8158 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Fingerslayer Blade", Id = 8159 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Sewing Needle", Id = 8161 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Gold Sewing Needle", Id = 8162 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Tailoring Tools", Id = 8163 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Seluvis's Potion", Id = 8164 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Amber Draught", Id = 8166 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Letter to Patches", Id = 8167 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Dancer's Castanets", Id = 8168 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Sellian Sealbreaker", Id = 8169 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Chrysalids' Memento", Id = 8171 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Black Knifeprint", Id = 8172 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Letter to Bernahl", Id = 8173 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Academy Glintstone Key", Id = 8174 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Haligtree Secret Medallion (Left)", Id = 8175 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Haligtree Secret Medallion (Right)", Id = 8176 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Burial Crow's Letter", Id = 8181 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Mending Rune of Perfect Order", Id = 8182 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Mending Rune of the Death-Prince", Id = 8183 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Mending Rune of the Fell Curse", Id = 8184 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Larval Tear", Id = 8185 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Imbued Sword Key", Id = 8186 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Miniature Ranni", Id = 8187 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Golden Tailoring Tools", Id = 8188 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Iji's Confession", Id = 8189 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Knifeprint Clue", Id = 8190 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Cursemark of Death", Id = 8191 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Asimi's Husk", Id = 8192 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Seedbed Curse", Id = 8193 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "The Stormhawk King", Id = 8194 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Asimi, Silver Chrysalid", Id = 8195 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Unalloyed Gold Needle", Id = 8196 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Sewer-Gaol Key", Id = 8197 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Meeting Place Map", Id = 8198 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Discarded Palace Key", Id = 8199 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Iron Whetblade", Id = 8970 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Red-Hot Whetblade", Id = 8971 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Sanctified Whetblade", Id = 8972 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Glintstone Whetblade", Id = 8973 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Black Whetblade", Id = 8974 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Unalloyed Gold Needle", Id = 8975 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Unalloyed Gold Needle", Id = 8976 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Valkyrie's Prosthesis", Id = 8977 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Sellia's Secret", Id = 8978 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Beast Eye", Id = 8979 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Weathered Dagger", Id = 8980 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Great Rune of the Unborn", Id = 10080 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Homing Instinct Painting", Id = 8200 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Resurrection Painting", Id = 8201 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Champion's Song Painting", Id = 8202 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Sorcerer Painting", Id = 8203 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Prophecy Painting", Id = 8204 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Flightless Bird Painting", Id = 8205 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Redmane Painting", Id = 8206 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Zorayas's Letter", Id = 8221 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Rogier's Letter", Id = 8223 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: The Preceptor's Secret", Id = 8224 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Weathered Map", Id = 8225 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: The Preceptor's Secret", Id = 8226 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Weathered Map", Id = 8227 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Limgrave, West", Id = 8600 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Weeping Peninsula", Id = 8601 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Limgrave, East", Id = 8602 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Liurnia, East", Id = 8603 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Liurnia, North", Id = 8604 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Liurnia, West", Id = 8605 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Altus Plateau", Id = 8606 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Leyndell, Royal Capital", Id = 8607 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Mt. Gelmir", Id = 8608 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Caelid", Id = 8609 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Dragonbarrow", Id = 8610 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Mountaintops of the Giants, West", Id = 8611 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Mountaintops of the Giants, East", Id = 8612 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Ainsel River", Id = 8613 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Lake of Rot", Id = 8614 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Siofra River", Id = 8615 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Mohgwyn Palace", Id = 8616 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Deeproot Depths", Id = 8617 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Consecrated Snowfield", Id = 8618 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Mirage Riddle", Id = 8660 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Hidden Cave", Id = 8700 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Imp Shades", Id = 8701 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Flask of Wondrous Physick", Id = 8702 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Stonedigger Trolls", Id = 8703 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Walking Mausoleum", Id = 8704 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Unseen Assassins", Id = 8705 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Great Coffins", Id = 8706 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Flame Chariots", Id = 8707 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Demi-human Mobs", Id = 8708 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Land Squirts", Id = 8709 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Gravity's Advantage", Id = 8710 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Revenants", Id = 8711 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Waypoint Ruins", Id = 8712 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Gateway", Id = 8713 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Miquella's Needle", Id = 8714 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Frenzied Flame Village", Id = 8715 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: The Lord of Frenzied Flame", Id = 8716 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Below the Capital", Id = 8717 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Hidden Cave", Id = 8750 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Imp Shades", Id = 8751 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Flask of Wondrous Physick", Id = 8752 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Stonedigger Trolls", Id = 8753 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Walking Mausoleum", Id = 8754 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Unseen Assassins", Id = 8755 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Great Coffins", Id = 8756 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Flame Chariots", Id = 8757 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Demi-human Mobs", Id = 8758 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Land Squirts", Id = 8759 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Gravity's Advantage", Id = 8760 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Revenants", Id = 8761 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Waypoint Ruins", Id = 8762 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Gateway", Id = 8763 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Frenzied Flame Village", Id = 8765 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Below the Capital", Id = 8767 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Sites of Grace", Id = 9100 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Sorceries and Incantations", Id = 9101 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Bows", Id = 9102 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Crouching", Id = 9103 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Stance-Breaking", Id = 9104 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Stakes of Marika", Id = 9105 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Guard Counters", Id = 9106 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About the Map", Id = 9107 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Guidance of Grace", Id = 9108 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Horseback Riding", Id = 9109 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Death", Id = 9110 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Summoning Spirits", Id = 9111 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Guarding", Id = 9112 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Item Crafting", Id = 9113 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Flask of Wondrous Physick", Id = 9115 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Adding Skills", Id = 9116 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Birdseye Telescopes", Id = 9117 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Spiritspring Jumping", Id = 9118 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Vanquishing Enemy Groups", Id = 9119 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Teardrop Scarabs", Id = 9120 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Summoning Other Players", Id = 9121 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Cooperative Multiplayer", Id = 9122 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Competitive Multiplayer", Id = 9123 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Invasion Multiplayer", Id = 9124 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Hunter Multiplayer", Id = 9125 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Summoning Pools", Id = 9126 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Monument Icon", Id = 9127 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Requesting Help from Hunters", Id = 9128 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Skills", Id = 9129 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Fast Travel to Sites of Grace", Id = 9130 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Strengthening Armaments", Id = 9131 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Roundtable Hold", Id = 9132 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Materials", Id = 9134 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Containers", Id = 9135 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Adding Affinities", Id = 9136 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Pouches", Id = 9137 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Dodging", Id = 9138 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Wielding Armaments", Id = 9140 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Great Runes", Id = 9141 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Multiplayer", Id = 9195 }, - new Item() { Category = Category.Goods,GroupName = "Tools", Name = "Margit's Shackle", Id = 2140 }, - new Item() { Category = Category.Goods,GroupName = "Tools", Name = "Mohg's Shackle", Id = 2150 }, - new Item() { Category = Category.Goods,GroupName = "Tools", Name = "Pureblood Knight's Medal", Id = 2160 }, - new Item() { Category = Category.Goods,GroupName = "Tools", Name = "Prattling Pate Hello", Id = 2200 }, - new Item() { Category = Category.Goods,GroupName = "Tools", Name = "Prattling Pate Thank you", Id = 2201 }, - new Item() { Category = Category.Goods,GroupName = "Tools", Name = "Prattling Pate Apologies", Id = 2202 }, - new Item() { Category = Category.Goods,GroupName = "Tools", Name = "Prattling Pate Wonderful", Id = 2203 }, - new Item() { Category = Category.Goods,GroupName = "Tools", Name = "Prattling Pate Please help", Id = 2204 }, - new Item() { Category = Category.Goods,GroupName = "Tools", Name = "Prattling Pate My beloved", Id = 2205 }, - new Item() { Category = Category.Goods,GroupName = "Tools", Name = "Prattling Pate Let's get to it", Id = 2206 }, - new Item() { Category = Category.Goods,GroupName = "Tools", Name = "Prattling Pate You're beautiful", Id = 2207 }, - new Item() { Category = Category.Goods,GroupName = "Tools", Name = "Ancestral Infant's Head", Id = 3000 }, - new Item() { Category = Category.Goods,GroupName = "Tools", Name = "Omen Bairn", Id = 3010 }, - new Item() { Category = Category.Goods,GroupName = "Tools", Name = "Regal Omen Bairn", Id = 3011 }, - new Item() { Category = Category.Goods,GroupName = "Tools", Name = "Miranda's Prayer", Id = 3020 }, - new Item() { Category = Category.Goods,GroupName = "Tools", Name = "Mimic's Veil", Id = 3040 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Golden Seed", Id = 10010 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Sacred Tear", Id = 10020 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Memory Stone", Id = 10030 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Talisman Pouch", Id = 10040 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Dragon Heart", Id = 10060 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Lost Ashes of War", Id = 10070 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Smithing Stone [1]", Id = 10100 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Smithing Stone [2]", Id = 10101 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Smithing Stone [3]", Id = 10102 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Smithing Stone [4]", Id = 10103 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Smithing Stone [5]", Id = 10104 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Smithing Stone [6]", Id = 10105 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Smithing Stone [7]", Id = 10106 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Smithing Stone [8]", Id = 10107 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Ancient Dragon Smithing Stone", Id = 10140 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Somber Smithing Stone [1]", Id = 10160 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Somber Smithing Stone [2]", Id = 10161 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Somber Smithing Stone [3]", Id = 10162 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Somber Smithing Stone [4]", Id = 10163 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Somber Smithing Stone [5]", Id = 10164 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Somber Smithing Stone [6]", Id = 10165 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Somber Smithing Stone [7]", Id = 10166 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Somber Smithing Stone [8]", Id = 10167 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Somber Ancient Dragon Smithing Stone", Id = 10168 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Somber Smithing Stone [9]", Id = 10200 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Grave Glovewort [1]", Id = 10900 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Grave Glovewort [2]", Id = 10901 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Grave Glovewort [3]", Id = 10902 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Grave Glovewort [4]", Id = 10903 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Grave Glovewort [5]", Id = 10904 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Grave Glovewort [6]", Id = 10905 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Grave Glovewort [7]", Id = 10906 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Grave Glovewort [8]", Id = 10907 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Grave Glovewort [9]", Id = 10908 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Great Grave Glovewort", Id = 10909 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Ghost Glovewort [1]", Id = 10910 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Ghost Glovewort [2]", Id = 10911 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Ghost Glovewort [3]", Id = 10912 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Ghost Glovewort [4]", Id = 10913 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Ghost Glovewort [5]", Id = 10914 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Ghost Glovewort [6]", Id = 10915 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Ghost Glovewort [7]", Id = 10916 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Ghost Glovewort [8]", Id = 10917 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Ghost Glovewort [9]", Id = 10918 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Great Ghost Glovewort", Id = 10919 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Arrow", Id = 50000000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Fire", Id = 50010000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Serpent", Id = 50020000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Bone (Fletched)", Id = 50030000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - St. Trina's", Id = 50040000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Shattershard (Fletched)", Id = 50060000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Rainbow Stone (Fletched)", Id = 50080000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Golden", Id = 50090000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Dwelling", Id = 50100000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Bone", Id = 50110000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Firebone (Fletched)", Id = 50130000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Firebone", Id = 50140000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Poisonbone (Fletched)", Id = 50150000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Poisonbone", Id = 50160000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Sleepbone (Fletched)", Id = 50170000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Sleepbone", Id = 50180000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Stormwing Bone", Id = 50190000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Lightningbone (Fletched)", Id = 50200000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Lightningbone", Id = 50210000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Rainbow Stone", Id = 50220000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Shattershard", Id = 50230000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Spiritflame", Id = 50240000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Magicbone (Fletched)", Id = 50260000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Magicbone", Id = 50270000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Haligbone (Fletched)", Id = 50280000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Haligbone", Id = 50290000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Bloodbone (Fletched)", Id = 50300000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Bloodbone", Id = 50310000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Coldbone (Fletched)", Id = 50320000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Coldbone", Id = 50330000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Rotbone (Fletched)", Id = 50340000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Rotbone", Id = 50350000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Golem's Magic", Id = 51030000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Bone (Fletched)", Id = 51050000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Bone", Id = 51060000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Bolt", Id = 52000000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Lightning ", Id = 52010000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Perfumer's ", Id = 52020000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Black-Key ", Id = 52030000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Burred ", Id = 52040000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Meteor ", Id = 52050000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Explosive ", Id = 52060000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Golden ", Id = 52070000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Lordsworn's ", Id = 52080000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Bone ", Id = 52090000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Firebone ", Id = 52100000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Lightningbone ", Id = 52110000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Magicbone ", Id = 52120000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Haligbone ", Id = 52130000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Poisonbone ", Id = 52140000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Bloodbone ", Id = 52150000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Coldbone ", Id = 52160000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Rotbone ", Id = 52170000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Sleepbone ", Id = 52180000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Flaming ", Id = 52190000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Great Arrow - Great Arrow", Id = 51000000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Great Arrow - Golem's", Id = 51010000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Great Arrow - Golden", Id = 51020000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Great Arrow - Radahn's Spear", Id = 51040000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Greatbolt - Ballista Bolt", Id = 53000000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Greatbolt - Lightning", Id = 53010000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Greatbolt - Explosive", Id = 53020000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Greatbolt - Bone Ballista Bolt", Id = 53030000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Dagger", Id = 1000000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Black Knife", Id = 1010000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Parrying Dagger", Id = 1020000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Miséricorde", Id = 1030000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Reduvia", Id = 1040000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Crystal Knife", Id = 1050000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Celebrant's Sickle", Id = 1060000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Glintstone Kris", Id = 1070000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Scorpion's Stinger", Id = 1080000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Great Knife", Id = 1090000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Wakizashi", Id = 1100000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Cinquedea", Id = 1110000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Ivory Sickle", Id = 1130000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Bloodstained Dagger", Id = 1140000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Erdsteel Dagger", Id = 1150000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Blade of Calling", Id = 1160000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Longsword", Id = 2000000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Short Sword", Id = 2010000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Broadsword", Id = 2020000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Lordsworn's Straight Sword", Id = 2040000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Weathered Straight Sword", Id = 2050000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Ornamental Straight Sword", Id = 2060000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Golden Epitaph", Id = 2070000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Nox Flowing Sword", Id = 2080000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Inseparable Sword", Id = 2090000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Coded Sword", Id = 2110000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Sword of Night and Flame", Id = 2140000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Crystal Sword", Id = 2150000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Carian Knight's Sword", Id = 2180000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Sword of St. Trina", Id = 2190000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Miquellan Knight's Sword", Id = 2200000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Cane Sword", Id = 2210000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Regalia of Eochaid", Id = 2220000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Noble's Slender Sword", Id = 2230000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Warhawk's Talon", Id = 2240000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Lazuli Glintstone Sword", Id = 2250000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Rotten Crystal Sword", Id = 2260000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Bastard Sword", Id = 3000000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Forked Greatsword", Id = 3010000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Iron Greatsword", Id = 3020000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Lordsworn's Greatsword", Id = 3030000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Knight's Greatsword", Id = 3040000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Flamberge", Id = 3050000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Ordovis's Greatsword", Id = 3060000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Alabaster Lord's Sword", Id = 3070000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Banished Knight's Greatsword", Id = 3080000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Dark Moon Greatsword", Id = 3090000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Sacred Relic Sword", Id = 3100000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Helphen's Steeple", Id = 3130000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Blasphemous Blade", Id = 3140000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Marais Executioner's Sword", Id = 3150000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Sword of Milos", Id = 3160000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Golden Order Greatsword", Id = 3170000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Claymore", Id = 3180000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Gargoyle's Greatsword", Id = 3190000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Death's Poker", Id = 3200000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Gargoyle's Blackblade", Id = 3210000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Greatsword", Id = 4000000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Watchdog's Greatsword", Id = 4010000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Maliketh's Black Blade", Id = 4020000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Troll's Golden Sword", Id = 4030000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Zweihander", Id = 4040000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Starscourge Greatsword", Id = 4050000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Royal Greatsword", Id = 4060000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Godslayer's Greatsword", Id = 4070000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Ruins Greatsword", Id = 4080000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Grafted Blade Greatsword", Id = 4100000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Troll Knight's Sword", Id = 4110000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Estoc", Id = 5000000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Cleanrot Knight's Sword", Id = 5010000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Rapier", Id = 5020000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Rogier's Rapier", Id = 5030000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Antspur Rapier", Id = 5040000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Frozen Needle", Id = 5050000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Noble's Estoc", Id = 5060000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Bloody Helice", Id = 6000000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Godskin Stitcher", Id = 6010000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Great Épée", Id = 6020000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Dragon King's Cragblade", Id = 6040000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Falchion", Id = 7000000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Beastman's Curved Sword", Id = 7010000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Shotel", Id = 7020000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Shamshir", Id = 7030000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Bandit's Curved Sword", Id = 7040000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Magma Blade", Id = 7050000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Flowing Curved Sword", Id = 7060000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Wing of Astel", Id = 7070000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Scavenger's Curved Sword", Id = 7080000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Eclipse Shotel", Id = 7100000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Serpent-God's Curved Sword", Id = 7110000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Mantis Blade", Id = 7120000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Scimitar", Id = 7140000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Grossmesser", Id = 7150000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Onyx Lord's Greatsword", Id = 8010000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Dismounter", Id = 8020000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Bloodhound's Fang", Id = 8030000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Magma Wyrm's Scalesword", Id = 8040000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Zamor Curved Sword", Id = 8050000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Omen Cleaver", Id = 8060000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Monk's Flameblade", Id = 8070000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Beastman's Cleaver", Id = 8080000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Morgott's Cursed Sword", Id = 8100000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Uchigatana", Id = 9000000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Nagakiba", Id = 9010000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Hand of Malenia", Id = 9020000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Meteoric Ore Blade", Id = 9030000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Rivers of Blood", Id = 9040000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Moonveil", Id = 9060000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Dragonscale Blade", Id = 9070000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Serpentbone Blade", Id = 9080000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Twinblade", Id = 10000000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Godskin Peeler", Id = 10010000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Twinned Knight Swords", Id = 10030000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Eleonora's Poleblade", Id = 10050000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Gargoyle's Twinblade", Id = 10080000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Gargoyle's Black Blades", Id = 10090000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Mace", Id = 11000000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Club", Id = 11010000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Curved Club", Id = 11030000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Warpick", Id = 11040000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Morning Star", Id = 11050000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Varré's Bouquet", Id = 11060000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Spiked Club", Id = 11070000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Hammer", Id = 11080000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Monk's Flamemace", Id = 11090000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Envoy's Horn", Id = 11100000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Scepter of the All-Knowing", Id = 11110000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Nox Flowing Hammer", Id = 11120000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Ringed Finger", Id = 11130000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Stone Club", Id = 11140000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Marika's Hammer", Id = 11150000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Large Club", Id = 12000000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Greathorn Hammer", Id = 12010000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Battle Hammer", Id = 12020000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Great Mace", Id = 12060000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Curved Great Club", Id = 12080000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Celebrant's Skull", Id = 12130000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Pickaxe", Id = 12140000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Beastclaw Greathammer", Id = 12150000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Envoy's Long Horn", Id = 12160000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Cranial Vessel Candlestand", Id = 12170000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Great Stars", Id = 12180000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Brick Hammer", Id = 12190000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Devourer's Scepter", Id = 12200000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Rotten Battle Hammer", Id = 12210000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Nightrider Flail", Id = 13000000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Flail", Id = 13010000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Family Heads", Id = 13020000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Bastard's Stars", Id = 13030000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Chainlink Flail", Id = 13040000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Battle Axe", Id = 14000000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Forked Hatchet", Id = 14010000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Hand Axe", Id = 14020000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Jawbone Axe", Id = 14030000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Iron Cleaver", Id = 14040000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Ripple Blade", Id = 14050000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Celebrant's Cleaver", Id = 14060000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Icerind Hatchet", Id = 14080000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Highland Axe", Id = 14100000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Sacrificial Axe", Id = 14110000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Rosus' Axe", Id = 14120000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Stormhawk Axe", Id = 14140000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Greataxe", Id = 15000000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Warped Axe", Id = 15010000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Great Omenkiller Cleaver", Id = 15020000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Crescent Moon Axe", Id = 15030000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Axe of Godrick", Id = 15040000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Longhaft Axe", Id = 15050000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Rusted Anchor", Id = 15060000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Executioner's Greataxe", Id = 15080000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Winged Greathorn", Id = 15110000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Butchering Knife", Id = 15120000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Gargoyle's Great Axe", Id = 15130000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Gargoyle's Black Axe", Id = 15140000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Short Spear", Id = 16000000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Spear", Id = 16010000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Crystal Spear", Id = 16020000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Clayman's Harpoon", Id = 16030000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Cleanrot Spear", Id = 16040000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Partisan", Id = 16050000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Celebrant's Rib-Rake", Id = 16060000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Pike", Id = 16070000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Torchpole", Id = 16080000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Bolt of Gransax", Id = 16090000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Cross-Naginata", Id = 16110000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Death Ritual Spear", Id = 16120000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Inquisitor's Girandole", Id = 16130000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Spiked Spear", Id = 16140000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Iron Spear", Id = 16150000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Rotten Crystal Spear", Id = 16160000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Mohgwyn's Sacred Spear", Id = 17010000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Siluria's Tree", Id = 17020000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Serpent-Hunter", Id = 17030000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Vyke's War Spear", Id = 17050000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Lance", Id = 17060000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Treespear", Id = 17070000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Halberd", Id = 18000000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Pest's Glaive", Id = 18010000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Lucerne", Id = 18020000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Banished Knight's Halberd", Id = 18030000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Commander's Standard", Id = 18040000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Nightrider Glaive", Id = 18050000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Ripple Crescent Halberd", Id = 18060000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Vulgar Militia Saw", Id = 18070000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Golden Halberd", Id = 18080000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Glaive", Id = 18090000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Loretta's War Sickle", Id = 18100000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Guardian's Swordspear", Id = 18110000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Vulgar Militia Shotel", Id = 18130000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Dragon Halberd", Id = 18140000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Gargoyle's Halberd", Id = 18150000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Gargoyle's Black Halberd", Id = 18160000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Scythe", Id = 19000000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Grave Scythe", Id = 19010000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Halo Scythe", Id = 19020000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Winged Scythe", Id = 19060000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Whip", Id = 20000000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Thorned Whip", Id = 20020000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Magma Whip Candlestick", Id = 20030000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Hoslow's Petal Whip", Id = 20050000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Giant's Red Braid", Id = 20060000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Urumi", Id = 20070000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Caestus", Id = 21000000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Spiked Caestus", Id = 21010000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Grafted Dragon", Id = 21060000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Iron Ball", Id = 21070000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Star Fist", Id = 21080000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Katar", Id = 21100000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Clinging Bone", Id = 21110000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Veteran's Prosthesis", Id = 21120000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Cipher Pata", Id = 21130000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Hookclaws", Id = 22000000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Venomous Fang", Id = 22010000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Bloodhound Claws", Id = 22020000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Raptor Talons", Id = 22030000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Prelate's Inferno Crozier", Id = 23000000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Watchdog's Staff", Id = 23010000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Great Club", Id = 23020000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Envoy's Greathorn", Id = 23030000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Duelist Greataxe", Id = 23040000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Axe of Godfrey", Id = 23050000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Dragon Greatclaw", Id = 23060000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Staff of the Avatar", Id = 23070000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Fallingstar Beast Jaw", Id = 23080000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Ghiza's Wheel", Id = 23100000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Giant-Crusher", Id = 23110000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Golem's Halberd", Id = 23120000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Troll's Hammer", Id = 23130000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Rotten Staff", Id = 23140000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Rotten Greataxe", Id = 23150000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Torch", Id = 24000000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Steel-Wire Torch", Id = 24020000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "St. Trina's Torch", Id = 24040000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Ghostflame Torch", Id = 24050000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Beast-Repellent Torch", Id = 24060000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Sentry's Torch", Id = 24070000 }, - new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Shortbow", Id = 40000000 }, - new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Misbegotten Shortbow", Id = 40010000 }, - new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Red Branch Shortbow", Id = 40020000 }, - new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Harp Bow", Id = 40030000 }, - new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Composite Bow", Id = 40050000 }, - new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Longbow", Id = 41000000 }, - new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Albinauric Bow", Id = 41010000 }, - new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Horn Bow", Id = 41020000 }, - new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Erdtree Bow", Id = 41030000 }, - new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Serpent Bow", Id = 41040000 }, - new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Pulley Bow", Id = 41060000 }, - new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Black Bow", Id = 41070000 }, - new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Lion Greatbow", Id = 42000000 }, - new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Golem Greatbow", Id = 42010000 }, - new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Erdtree Greatbow", Id = 42030000 }, - new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Greatbow", Id = 42040000 }, - new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Soldier's Crossbow", Id = 43000000 }, - new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Light Crossbow", Id = 43020000 }, - new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Heavy Crossbow", Id = 43030000 }, - new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Pulley Crossbow", Id = 43050000 }, - new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Full Moon Crossbow", Id = 43060000 }, - new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Arbalest", Id = 43080000 }, - new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Crepus's Black-Key Crossbow", Id = 43110000 }, - new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Hand Ballista", Id = 44000000 }, - new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Jar Cannon", Id = 44010000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Buckler", Id = 30000000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Perfumer's Shield", Id = 30010000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Man-Serpent's Shield", Id = 30020000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Rickety Shield", Id = 30030000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Pillory Shield", Id = 30040000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Beastman's Jar-Shield", Id = 30060000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Red Thorn Roundshield", Id = 30070000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Scripture Wooden Shield", Id = 30080000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Riveted Wooden Shield", Id = 30090000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Blue-White Wooden Shield", Id = 30100000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Rift Shield", Id = 30110000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Iron Roundshield", Id = 30120000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Gilded Iron Shield", Id = 30130000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Ice Crest Shield", Id = 30140000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Smoldering Shield", Id = 30150000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Spiralhorn Shield", Id = 30190000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Coil Shield", Id = 30200000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Kite Shield", Id = 31000000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Marred Leather Shield", Id = 31010000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Marred Wooden Shield", Id = 31020000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Banished Knight's Shield", Id = 31030000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Albinauric Shield", Id = 31040000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Sun Realm Shield", Id = 31050000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Silver Mirrorshield", Id = 31060000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Round Shield", Id = 31070000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Scorpion Kite Shield", Id = 31080000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Twinbird Kite Shield", Id = 31090000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Blue-Gold Kite Shield", Id = 31100000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Brass Shield", Id = 31130000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Great Turtle Shell", Id = 31140000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Shield of the Guilty", Id = 31170000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Carian Knight's Shield", Id = 31190000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Large Leather Shield", Id = 31230000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Horse Crest Wooden Shield", Id = 31240000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Candletree Wooden Shield", Id = 31250000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Flame Crest Wooden Shield", Id = 31260000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Hawk Crest Wooden Shield", Id = 31270000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Beast Crest Heater Shield", Id = 31280000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Red Crest Heater Shield", Id = 31290000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Blue Crest Heater Shield", Id = 31300000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Eclipse Crest Heater Shield", Id = 31310000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Inverted Hawk Heater Shield", Id = 31320000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Heater Shield", Id = 31330000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Black Leather Shield", Id = 31340000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Dragon Towershield", Id = 32000000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Distinguished Greatshield", Id = 32020000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Crucible Hornshield", Id = 32030000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Dragonclaw Shield", Id = 32040000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Briar Greatshield", Id = 32050000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Erdtree Greatshield", Id = 32080000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Golden Beast Crest Shield", Id = 32090000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Jellyfish Shield", Id = 32120000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Fingerprint Stone Shield", Id = 32130000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Icon Shield", Id = 32140000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "One-Eyed Shield", Id = 32150000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Visage Shield", Id = 32160000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Spiked Palisade Shield", Id = 32170000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Manor Towershield", Id = 32190000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Crossed-Tree Towershield", Id = 32200000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Inverted Hawk Towershield", Id = 32210000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Ant's Skull Plate", Id = 32220000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Redmane Greatshield", Id = 32230000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Eclipse Crest Greatshield", Id = 32240000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Cuckoo Greatshield", Id = 32250000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Golden Greatshield", Id = 32260000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Gilded Greatshield", Id = 32270000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Haligtree Crest Greatshield", Id = 32280000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Wooden Greatshield", Id = 32290000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Lordsworn's Shield", Id = 32300000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Glintstone Staff", Id = 33000000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Crystal Staff", Id = 33040000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Gelmir Glintstone Staff", Id = 33050000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Demi-Human Queen's Staff", Id = 33060000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Carian Regal Scepter", Id = 33090000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Digger's Staff", Id = 33120000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Astrologer's Staff", Id = 33130000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Carian Glintblade Staff", Id = 33170000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Prince of Death's Staff", Id = 33180000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Albinauric Staff", Id = 33190000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Academy Glintstone Staff", Id = 33200000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Carian Glintstone Staff", Id = 33210000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Azur's Glintstone Staff", Id = 33230000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Lusat's Glintstone Staff", Id = 33240000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Meteorite Staff", Id = 33250000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Staff of the Guilty", Id = 33260000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Rotten Crystal Staff", Id = 33270000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Staff of Loss", Id = 33280000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Finger Seal", Id = 34000000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Godslayer's Seal", Id = 34010000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Giant's Seal", Id = 34020000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Gravel Stone Seal", Id = 34030000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Clawmark Seal", Id = 34040000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Golden Order Seal", Id = 34060000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Erdtree Seal", Id = 34070000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Dragon Communion Seal", Id = 34080000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Frenzied Flame Seal", Id = 34090000 }, - }); - } + private readonly static ReadOnlyCollection LookupTable = new ReadOnlyCollection(new List() + { + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Iron Helmet", Id = 40000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Scale Armor", Id = 40100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Iron Gauntlets", Id = 40200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Leather Trousers", Id = 40300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Kaiden Helm", Id = 50000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Kaiden Armor", Id = 50100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Kaiden Gauntlets", Id = 50200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Kaiden Trousers", Id = 50300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Drake Knight Helm", Id = 60000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Drake Knight Armor", Id = 60100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Drake Knight Gauntlets", Id = 60200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Drake Knight Greaves", Id = 60300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Drake Knight Helm (Altered)", Id = 61000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Drake Knight Armor (Altered)", Id = 61100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Scaled Helm", Id = 80000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Scaled Armor", Id = 80100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Scaled Gauntlets", Id = 80200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Scaled Greaves", Id = 80300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Scaled Armor (Altered)", Id = 81100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Perfumer Hood", Id = 90000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Perfumer Robe", Id = 90100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Perfumer Gloves", Id = 90200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Perfumer Sarong", Id = 90300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Perfumer Robe (Altered)", Id = 91100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Traveler's Hat", Id = 100000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Perfumer's Traveling Garb", Id = 100100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Traveler's Gloves", Id = 100200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Traveler's Slops", Id = 100300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Perfumer's Traveling Garb (Altered)", Id = 101100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Alberich's Pointed Hat", Id = 120000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Alberich's Robe", Id = 120100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Alberich's Bracers", Id = 120200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Alberich's Trousers", Id = 120300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Alberich's Pointed Hat (Altered)", Id = 121000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Alberich's Robe (Altered)", Id = 121100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Spellblade's Pointed Hat", Id = 130000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Spellblade's Traveling Attire", Id = 130100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Spellblade's Gloves", Id = 130200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Spellblade's Trousers", Id = 130300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Spellblade's Traveling Attire (Altered)", Id = 131100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Bull-Goat Helm", Id = 140000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Bull-Goat Armor", Id = 140100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Bull-Goat Gauntlets", Id = 140200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Bull-Goat Greaves", Id = 140300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Iron Kasa", Id = 150000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Ronin's Armor", Id = 150100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Ronin's Gauntlets", Id = 150200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Ronin's Greaves", Id = 150300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Ronin's Armor (Altered)", Id = 151100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Guilty Hood", Id = 160000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Cloth Garb", Id = 160100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Cloth Trousers", Id = 160300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Black Wolf Mask", Id = 170000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blaidd's Armor", Id = 170100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blaidd's Gauntlets", Id = 170200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blaidd's Greaves", Id = 170300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blaidd's Armor (Altered)", Id = 171100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Black Knife Hood", Id = 180000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Black Knife Armor", Id = 180100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Black Knife Gauntlets", Id = 180200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Black Knife Greaves", Id = 180300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Black Knife Armor (Altered)", Id = 181100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Exile Hood", Id = 190000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Exile Armor", Id = 190100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Exile Gauntlets", Id = 190200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Exile Greaves", Id = 190300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Banished Knight Helm", Id = 200000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Banished Knight Armor", Id = 200100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Banished Knight Gauntlets", Id = 200200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Banished Knight Greaves", Id = 200300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Banished Knight Helm (Altered)", Id = 201000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Banished Knight Armor (Altered)", Id = 201100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Briar Helm", Id = 210000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Briar Armor", Id = 210100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Briar Gauntlets", Id = 210200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Briar Greaves", Id = 210300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Briar Armor (Altered)", Id = 211100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Page Hood", Id = 220000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Page Garb", Id = 220100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Page Trousers", Id = 220300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Page Garb (Altered)", Id = 221100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Night's Cavalry Helm", Id = 230000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Night's Cavalry Armor", Id = 230100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Night's Cavalry Gauntlets", Id = 230200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Night's Cavalry Greaves", Id = 230300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Night's Cavalry Helm (Altered)", Id = 231000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Night's Cavalry Armor (Altered)", Id = 231100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blue Silver Mail Hood", Id = 240000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blue Silver Mail Armor", Id = 240100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blue Silver Bracelets", Id = 240200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blue Silver Mail Skirt", Id = 240300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blue Silver Mail Armor (Altered)", Id = 241100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Nomadic Merchant's Chapeau", Id = 250000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Nomadic Merchant's Finery", Id = 250100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Nomadic Merchant's Trousers", Id = 250300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Nomadic Merchant's Finery (Altered)", Id = 251100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Malformed Dragon Helm", Id = 260000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Malformed Dragon Armor", Id = 260100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Malformed Dragon Gauntlets", Id = 260200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Malformed Dragon Greaves", Id = 260300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Tree Sentinel Helm", Id = 270000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Tree Sentinel Armor", Id = 270100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Tree Sentinel Gauntlets", Id = 270200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Tree Sentinel Greaves", Id = 270300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Tree Sentinel Armor (Altered)", Id = 271100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Royal Knight Helm", Id = 280000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Royal Knight Armor", Id = 280100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Royal Knight Gauntlets", Id = 280200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Royal Knight Greaves", Id = 280300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Royal Knight Armor (Altered)", Id = 281100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Nox Monk Hood", Id = 290000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Nox Monk Armor", Id = 290100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Nox Monk Bracelets", Id = 290200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Nox Monk Greaves", Id = 290300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Nox Monk Hood (Altered)", Id = 291000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Nox Monk Armor (Altered)", Id = 291100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Nox Swordstress Crown", Id = 292000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Nox Swordstress Armor", Id = 292100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Night Maiden Twin Crown", Id = 293000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Night Maiden Armor", Id = 293100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Nox Swordstress Crown (Altered)", Id = 294000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Nox Swordstress Armor (Altered)", Id = 294100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Great Horned Headband", Id = 300000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fur Raiment", Id = 300100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fur Leggings", Id = 300300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Shining Horned Headband", Id = 301000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Shaman Furs", Id = 301100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Shaman Leggings", Id = 301300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Duelist Helm", Id = 310000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Gravekeeper Cloak", Id = 310100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Duelist Greaves", Id = 310300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Gravekeeper Cloak (Altered)", Id = 311100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Sanguine Noble Hood", Id = 320000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Sanguine Noble Robe", Id = 320100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Sanguine Noble Waistcloth", Id = 320300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Guardian Mask", Id = 330000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Guardian Garb (Full Bloom)", Id = 330100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Guardian Bracers", Id = 330200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Guardian Greaves", Id = 330300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Guardian Garb", Id = 331100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Cleanrot Helm", Id = 340000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Cleanrot Armor", Id = 340100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Cleanrot Gauntlets", Id = 340200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Cleanrot Greaves", Id = 340300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Cleanrot Helm (Altered)", Id = 341000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Cleanrot Armor (Altered)", Id = 341100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fire Monk Hood", Id = 350000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fire Monk Armor", Id = 350100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fire Monk Gauntlets", Id = 350200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fire Monk Greaves", Id = 350300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blackflame Monk Hood", Id = 351000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blackflame Monk Armor", Id = 351100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blackflame Monk Gauntlets", Id = 351200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blackflame Monk Greaves", Id = 351300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fire Prelate Helm", Id = 360000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fire Prelate Armor", Id = 360100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fire Prelate Gauntlets", Id = 360200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fire Prelate Greaves", Id = 360300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fire Prelate Armor (Altered)", Id = 361100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Aristocrat Headband", Id = 370000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Aristocrat Garb", Id = 370100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Aristocrat Boots", Id = 370300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Aristocrat Garb (Altered)", Id = 371100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Aristocrat Hat", Id = 380000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Aristocrat Coat", Id = 380100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Old Aristocrat Cowl", Id = 390000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Old Aristocrat Gown", Id = 390100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Old Aristocrat Shoes", Id = 390300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Vulgar Militia Helm", Id = 420000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Vulgar Militia Armor", Id = 420100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Vulgar Militia Gauntlets", Id = 420200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Vulgar Militia Greaves", Id = 420300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Sage Hood", Id = 430000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Sage Robe", Id = 430100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Sage Trousers", Id = 430300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Pumpkin Helm", Id = 440000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Elden Lord Crown", Id = 460000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Elden Lord Armor", Id = 460100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Elden Lord Bracers", Id = 460200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Elden Lord Greaves", Id = 460300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Elden Lord Armor (Altered)", Id = 461100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Radahn's Redmane Helm", Id = 470000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Radahn's Lion Armor", Id = 470100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Radahn's Gauntlets", Id = 470200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Radahn's Greaves", Id = 470300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Radahn's Lion Armor (Altered)", Id = 471100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Lord of Blood's Robe", Id = 480100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Lord of Blood's Robe (Altered)", Id = 481100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Queen's Crescent Crown", Id = 510000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Queen's Robe", Id = 510100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Queen's Bracelets", Id = 510200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Queen's Leggings", Id = 510300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Godskin Apostle Hood", Id = 520000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Godskin Apostle Robe", Id = 520100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Godskin Apostle Bracelets", Id = 520200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Godskin Apostle Trousers", Id = 520300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Godskin Noble Hood", Id = 530000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Godskin Noble Robe", Id = 530100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Godskin Noble Bracelets", Id = 530200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Godskin Noble Trousers", Id = 530300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Depraved Perfumer Headscarf", Id = 540000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Depraved Perfumer Robe", Id = 540100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Depraved Perfumer Gloves", Id = 540200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Depraved Perfumer Trousers", Id = 540300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Depraved Perfumer Robe (Altered)", Id = 541100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Crucible Axe Helm", Id = 570000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Crucible Axe Armor", Id = 570100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Crucible Gauntlets", Id = 570200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Crucible Greaves", Id = 570300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Crucible Tree Helm", Id = 571000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Crucible Tree Armor", Id = 571100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Crucible Axe Armor (Altered)", Id = 572100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Crucible Tree Armor (Altered)", Id = 573100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Lusat's Glintstone Crown", Id = 580000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Lusat's Robe", Id = 580100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Lusat's Manchettes", Id = 580200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Old Sorcerer's Legwraps", Id = 580300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Azur's Glintstone Crown", Id = 581000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Azur's Glintstone Robe", Id = 581100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Azur's Manchettes", Id = 581200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "All-Knowing Helm", Id = 590000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "All-Knowing Armor", Id = 590100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "All-Knowing Gauntlets", Id = 590200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "All-Knowing Greaves", Id = 590300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "All-Knowing Armor (Altered)", Id = 591100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Twinned Helm", Id = 600000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Twinned Armor", Id = 600100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Twinned Gauntlets", Id = 600200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Twinned Greaves", Id = 600300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Twinned Armor (Altered)", Id = 601100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Ragged Hat", Id = 610000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Ragged Armor", Id = 610100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Ragged Gloves", Id = 610200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Ragged Loincloth", Id = 610300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Ragged Hat (Altered)", Id = 611000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Ragged Armor (Altered)", Id = 611100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Prophet Blindfold", Id = 620000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Corhyn's Robe", Id = 620100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Prophet Trousers", Id = 620300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Prophet Robe (Altered)", Id = 621100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Prophet Robe", Id = 622100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Astrologer Hood", Id = 630000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Astrologer Robe", Id = 630100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Astrologer Gloves", Id = 630200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Astrologer Trousers", Id = 630300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Astrologer Robe (Altered)", Id = 631100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Lionel's Helm", Id = 640000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Lionel's Armor", Id = 640100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Lionel's Gauntlets", Id = 640200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Lionel's Greaves", Id = 640300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Lionel's Armor (Altered)", Id = 641100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Hoslow's Helm", Id = 650000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Hoslow's Armor", Id = 650100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Hoslow's Gauntlets", Id = 650200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Hoslow's Greaves", Id = 650300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Diallos's Mask", Id = 651000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Hoslow's Armor (Altered)", Id = 652100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Vagabond Knight Helm", Id = 660000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Vagabond Knight Armor", Id = 660100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Vagabond Knight Gauntlets", Id = 660200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Vagabond Knight Greaves", Id = 660300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Vagabond Knight Armor (Altered)", Id = 661100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blue Cloth Cowl", Id = 670000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blue Cloth Vest", Id = 670100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Warrior Gauntlets", Id = 670200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Warrior Greaves", Id = 670300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "White Mask", Id = 680000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "War Surgeon Gown", Id = 680100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "War Surgeon Gloves", Id = 680200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "War Surgeon Trousers", Id = 680300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "War Surgeon Gown (Altered)", Id = 681100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Royal Remains Helm", Id = 690000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Royal Remains Armor", Id = 690100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Royal Remains Gauntlets", Id = 690200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Royal Remains Greaves", Id = 690300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Brave's Cord Circlet", Id = 700000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Brave's Battlewear", Id = 700100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Brave's Bracer", Id = 700200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Brave's Legwraps", Id = 700300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Brave's Leather Helm", Id = 701000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Brave's Battlewear (Altered)", Id = 702000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Beast Champion Helm", Id = 720000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Beast Champion Armor", Id = 720100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Beast Champion Gauntlets", Id = 720200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Beast Champion Greaves", Id = 720300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Beast Champion Armor (Altered)", Id = 721100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Champion Headband", Id = 730000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Champion Pauldron", Id = 730100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Champion Bracers", Id = 730200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Champion Gaiters", Id = 730300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Crimson Hood", Id = 740000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Noble's Traveling Garb", Id = 740100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Noble's Gloves", Id = 740200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Noble's Trousers", Id = 740300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Navy Hood", Id = 741000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Maliketh's Helm", Id = 760000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Maliketh's Armor", Id = 760100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Maliketh's Gauntlets", Id = 760200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Maliketh's Greaves", Id = 760300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Maliketh's Armor (Altered)", Id = 761100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Malenia's Winged Helm", Id = 770000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Malenia's Armor", Id = 770100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Malenia's Gauntlet", Id = 770200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Malenia's Greaves", Id = 770300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Malenia's Armor (Altered)", Id = 771100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Veteran's Helm", Id = 780000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Veteran's Armor", Id = 780100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Veteran's Gauntlets", Id = 780200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Veteran's Greaves", Id = 780300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Veteran's Armor (Altered)", Id = 781100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Bloodhound Knight Helm", Id = 790000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Bloodhound Knight Armor", Id = 790100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Bloodhound Knight Gauntlets", Id = 790200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Bloodhound Knight Greaves", Id = 790300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Bloodhound Knight Armor (Altered)", Id = 791100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Festive Hood", Id = 800000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Festive Garb", Id = 800100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Festive Hood (Altered)", Id = 801000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Festive Garb (Altered)", Id = 801100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blue Festive Hood", Id = 802000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blue Festive Garb", Id = 802100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Commoner's Headband", Id = 810000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Commoner's Garb", Id = 810100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Commoner's Shoes", Id = 810300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Commoner's Headband (Altered)", Id = 811000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Commoner's Garb (Altered)", Id = 811100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Commoner's Simple Garb", Id = 812000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Commoner's Simple Garb (Altered)", Id = 812100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Envoy Crown", Id = 820000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Twinsage Glintstone Crown", Id = 830000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Raya Lucarian Robe", Id = 830100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Sorcerer Manchettes", Id = 830200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Sorcerer Leggings", Id = 830300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Olivinus Glintstone Crown", Id = 831000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Lazuli Glintstone Crown", Id = 832000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Karolos Glintstone Crown", Id = 833000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Witch's Glintstone Crown", Id = 834000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Marionette Soldier Helm", Id = 840000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Marionette Soldier Armor", Id = 840100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Marionette Soldier Birdhelm", Id = 850000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Raging Wolf Helm", Id = 860000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Raging Wolf Armor", Id = 860100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Raging Wolf Gauntlets", Id = 860200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Raging Wolf Greaves", Id = 860300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Raging Wolf Armor (Altered)", Id = 861100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Land of Reeds Helm", Id = 870000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Land of Reeds Armor", Id = 870100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Land of Reeds Gauntlets", Id = 870200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Land of Reeds Greaves", Id = 870300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Land of Reeds Armor (Altered)", Id = 871100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Okina Mask", Id = 872000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "White Reed Armor", Id = 872100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "White Reed Gauntlets", Id = 872200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "White Reed Greaves", Id = 872300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Confessor Hood", Id = 880000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Confessor Armor", Id = 880100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Confessor Gloves", Id = 880200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Confessor Boots", Id = 880300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Confessor Hood (Altered)", Id = 881000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Confessor Armor (Altered)", Id = 881100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Prisoner Iron Mask", Id = 890000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Prisoner Clothing", Id = 890100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Prisoner Trousers", Id = 890300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blackguard's Iron Mask", Id = 891000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Traveling Maiden Hood", Id = 900000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Traveling Maiden Robe", Id = 900100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Traveling Maiden Gloves", Id = 900200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Traveling Maiden Boots", Id = 900300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Traveling Maiden Robe (Altered)", Id = 901100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Finger Maiden Fillet", Id = 902000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Finger Maiden Robe", Id = 902100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Finger Maiden Shoes", Id = 902300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Finger Maiden Robe (Altered)", Id = 903100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Preceptor's Big Hat", Id = 910000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Preceptor's Long Gown", Id = 910100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Preceptor's Gloves", Id = 910200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Preceptor's Trousers", Id = 910300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Mask of Confidence", Id = 911000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Preceptor's Long Gown (Altered)", Id = 911100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Grass Hair Ornament", Id = 920000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Skeletal Mask", Id = 930000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Raptor's Black Feathers", Id = 930100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Bandit Manchettes", Id = 930200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Bandit Boots", Id = 930300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Bandit Garb", Id = 931100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Eccentric's Hood", Id = 940000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Eccentric's Armor", Id = 940100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Eccentric's Manchettes", Id = 940200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Eccentric's Breeches", Id = 940300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Eccentric's Hood (Altered)", Id = 941000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fingerprint Helm", Id = 950000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fingerprint Armor", Id = 950100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fingerprint Gauntlets", Id = 950200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fingerprint Greaves", Id = 950300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fingerprint Armor (Altered)", Id = 951100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Consort's Mask", Id = 960000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Consort's Robe", Id = 960100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Consort's Trousers", Id = 960300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Ruler's Mask", Id = 961000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Ruler's Robe", Id = 961100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Upper-Class Robe", Id = 962100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Marais Mask", Id = 963000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Marais Robe", Id = 963100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Bloodsoaked Manchettes", Id = 963200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Bloodsoaked Mask", Id = 964000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Official's Attire", Id = 964100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Omen Helm", Id = 970000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Omen Armor", Id = 970100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Omen Gauntlets", Id = 970200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Omen Greaves", Id = 970300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Carian Knight Helm", Id = 980000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Carian Knight Armor", Id = 980100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Carian Knight Gauntlets", Id = 980200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Carian Knight Greaves", Id = 980300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Carian Knight Armor (Altered)", Id = 981100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Hierodas Glintstone Crown", Id = 990000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Errant Sorcerer Robe", Id = 990100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Errant Sorcerer Manchettes", Id = 990200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Errant Sorcerer Boots", Id = 990300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Errant Sorcerer Robe (Altered)", Id = 991100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Haima Glintstone Crown", Id = 1000000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Battlemage Robe", Id = 1000100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Battlemage Manchettes", Id = 1000200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Battlemage Legwraps", Id = 1000300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Snow Witch Hat", Id = 1010000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Snow Witch Robe", Id = 1010100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Snow Witch Skirt", Id = 1010300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Snow Witch Robe (Altered)", Id = 1011100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Traveler's Clothes", Id = 1020100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Traveler's Manchettes", Id = 1020200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Traveler's Boots", Id = 1020300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Juvenile Scholar Cap", Id = 1030000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Juvenile Scholar Robe", Id = 1030100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Radiant Gold Mask", Id = 1040000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Goldmask's Rags", Id = 1040100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Gold Bracelets", Id = 1040200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Gold Waistwrap", Id = 1040300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fell Omen Cloak", Id = 1050100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Albinauric Mask", Id = 1060000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Dirty Chainmail", Id = 1060100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Zamor Mask", Id = 1070000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Zamor Armor", Id = 1070100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Zamor Bracelets", Id = 1070200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Zamor Legwraps", Id = 1070300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Imp Head (Cat)", Id = 1080000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Imp Head (Fanged)", Id = 1081000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Imp Head (Long-Tongued)", Id = 1082000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Imp Head (Corpse)", Id = 1083000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Imp Head (Wolf)", Id = 1084000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Imp Head (Elder)", Id = 1085000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Silver Tear Mask", Id = 1090000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Chain Coif", Id = 1100000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Chain Armor", Id = 1100100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Gauntlets", Id = 1100200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Chain Leggings", Id = 1100300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Greathelm", Id = 1101000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Eye Surcoat", Id = 1101100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Tree Surcoat", Id = 1102100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Octopus Head", Id = 1110000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Jar", Id = 1120000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Mushroom Head", Id = 1130000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Mushroom Body", Id = 1130100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Mushroom Arms", Id = 1130200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Mushroom Legs", Id = 1130300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Nox Mirrorhelm", Id = 1300000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Iji's Mirrorhelm", Id = 1301000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Black Hood", Id = 1400000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Leather Armor", Id = 1400100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Leather Gloves", Id = 1400200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Leather Boots", Id = 1400300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Bandit Mask", Id = 1401000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Knight Helm", Id = 1500000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Knight Armor", Id = 1500100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Knight Gauntlets", Id = 1500200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Knight Greaves", Id = 1500300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Greathood", Id = 1600000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Godrick Soldier Helm", Id = 1700000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Tree-and-Beast Surcoat", Id = 1700100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Godrick Soldier Gauntlets", Id = 1700200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Godrick Soldier Greaves", Id = 1700300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Raya Lucarian Helm", Id = 1710000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Cuckoo Surcoat", Id = 1710100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Raya Lucarian Gauntlets", Id = 1710200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Raya Lucarian Greaves", Id = 1710300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Leyndell Soldier Helm", Id = 1720000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Erdtree Surcoat", Id = 1720100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Leyndell Soldier Gauntlets", Id = 1720200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Leyndell Soldier Greaves", Id = 1720300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Radahn Soldier Helm", Id = 1730000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Redmane Surcoat", Id = 1730100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Radahn Soldier Gauntlets", Id = 1730200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Radahn Soldier Greaves", Id = 1730300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Mausoleum Surcoat", Id = 1740100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Mausoleum Gauntlets", Id = 1740200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Mausoleum Greaves", Id = 1740300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Haligtree Helm", Id = 1750000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Haligtree Crest Surcoat", Id = 1750100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Haligtree Gauntlets", Id = 1750200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Haligtree Greaves", Id = 1750300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Gelmir Knight Helm", Id = 1760000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Gelmir Knight Armor", Id = 1760100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Gelmir Knight Gauntlets", Id = 1760200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Gelmir Knight Greaves", Id = 1760300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Gelmir Knight Armor (Altered)", Id = 1761100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Godrick Knight Helm", Id = 1770000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Godrick Knight Armor", Id = 1770100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Godrick Knight Gauntlets", Id = 1770200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Godrick Knight Greaves", Id = 1770300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Godrick Knight Armor (Altered)", Id = 1771100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Cuckoo Knight Helm", Id = 1780000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Cuckoo Knight Armor", Id = 1780100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Cuckoo Knight Gauntlets", Id = 1780200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Cuckoo Knight Greaves", Id = 1780300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Cuckoo Knight Armor (Altered)", Id = 1781100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Leyndell Knight Helm", Id = 1790000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Leyndell Knight Armor", Id = 1790100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Leyndell Knight Gauntlets", Id = 1790200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Leyndell Knight Greaves", Id = 1790300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Leyndell Knight Armor (Altered)", Id = 1791100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Redmane Knight Helm", Id = 1800000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Redmane Knight Armor", Id = 1800100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Redmane Knight Gauntlets", Id = 1800200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Redmane Knight Greaves", Id = 1800300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Redmane Knight Armor (Altered)", Id = 1801100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Mausoleum Knight Armor", Id = 1810100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Mausoleum Knight Gauntlets", Id = 1810200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Mausoleum Knight Greaves", Id = 1810300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Mausoleum Knight Armor (Altered)", Id = 1811100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Haligtree Knight Helm", Id = 1820000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Haligtree Knight Armor", Id = 1820100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Haligtree Knight Gauntlets", Id = 1820200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Haligtree Knight Greaves", Id = 1820300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Haligtree Knight Armor (Altered)", Id = 1821100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Foot Soldier Cap", Id = 1830000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Chain-Draped Tabard", Id = 1830100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Foot Soldier Gauntlets", Id = 1830200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Foot Soldier Greaves", Id = 1830300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Foot Soldier Helmet", Id = 1840000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Foot Soldier Tabard", Id = 1840100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Gilded Foot Soldier Cap", Id = 1850000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Leather-Draped Tabard", Id = 1850100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Foot Soldier Helm", Id = 1860000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Scarlet Tabard", Id = 1860100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Bloodsoaked Tabard", Id = 1870100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Sacred Crown Helm", Id = 1880000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Ivory-Draped Tabard", Id = 1880100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Omensmirk Mask", Id = 1890000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Omenkiller Robe", Id = 1890100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Omenkiller Long Gloves", Id = 1890200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Omenkiller Boots", Id = 1890300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Ash-of-War Scarab", Id = 1900000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Incantation Scarab", Id = 1901000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Glintstone Scarab", Id = 1902000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Crimson Tear Scarab", Id = 1910000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Cerulean Tear Scarab", Id = 1920000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Deathbed Dress", Id = 1930100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fia's Hood", Id = 1940000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fia's Robe", Id = 1940100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fia's Robe (Altered)", Id = 1941100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Highwayman Hood", Id = 1980000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Highwayman Cloth Armor", Id = 1980100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Highwayman Gauntlets", Id = 1980200 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "High Page Hood", Id = 1990000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "High Page Clothes", Id = 1990100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "High Page Clothes (Altered)", Id = 1991100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Rotten Duelist Helm", Id = 2000000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Rotten Gravekeeper Cloak", Id = 2000100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Rotten Duelist Greaves", Id = 2000300 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Rotten Gravekeeper Cloak (Altered)", Id = 2001100 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Mushroom Crown", Id = 2010000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Black Dumpling", Id = 2020000 }, + new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Lazuli Robe", Id = 2030000 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Lion's Claw", Id = 10000 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Impaling Thrust", Id = 10100 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Piercing Fang", Id = 10200 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Spinning Slash", Id = 10300 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Charge Forth", Id = 10500 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Stamp (Upward Cut)", Id = 10600 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Stamp (Sweep)", Id = 10700 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Blood Tax", Id = 10800 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Repeating Thrust", Id = 10900 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Wild Strikes", Id = 11000 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Spinning Strikes", Id = 11100 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Double Slash", Id = 11200 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Prelate's Charge", Id = 11300 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Unsheathe", Id = 11400 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Square Off", Id = 11500 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Giant Hunt", Id = 11600 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Loretta's Slash", Id = 11800 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Poison Moth Flight", Id = 11900 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Spinning Weapon", Id = 12000 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Storm Assault", Id = 12200 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Stormcaller", Id = 12300 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Sword Dance", Id = 12400 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Glintblade Phalanx", Id = 20000 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Sacred Blade", Id = 20100 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Ice Spear", Id = 20200 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Glintstone Pebble", Id = 20300 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Bloody Slash", Id = 20400 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Lifesteal Fist", Id = 20500 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Eruption", Id = 20700 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Prayerful Strike", Id = 20800 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Gravitas", Id = 20900 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Storm Blade", Id = 21000 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Earthshaker", Id = 21200 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Golden Land", Id = 21300 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Flaming Strike", Id = 21400 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Thunderbolt", Id = 21600 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Lightning Slash", Id = 21700 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Carian Grandeur", Id = 21800 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Carian Greatsword", Id = 21900 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Vacuum Slice", Id = 22000 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Black Flame Tornado", Id = 22100 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Sacred Ring of Light", Id = 22200 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Blood Blade", Id = 22400 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Phantom Slash", Id = 22500 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Spectral Lance", Id = 22600 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Chilling Mist", Id = 22700 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Poisonous Mist", Id = 22800 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Shield Bash", Id = 30000 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Barricade Shield", Id = 30100 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Parry", Id = 30200 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Carian Retaliation", Id = 30500 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Storm Wall", Id = 30600 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Golden Parry", Id = 30700 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Shield Crash", Id = 30800 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: No Skill", Id = 30900 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Thops's Barrier", Id = 31000 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Through and Through", Id = 40000 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Barrage", Id = 40100 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Mighty Shot", Id = 40200 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Enchanted Shot", Id = 40400 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Sky Shot", Id = 40500 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Rain of Arrows", Id = 40600 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Hoarfrost Stomp", Id = 50100 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Storm Stomp", Id = 50200 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Kick", Id = 50300 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Lightning Ram", Id = 50400 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Flame of the Redmanes", Id = 50500 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Ground Slam", Id = 50600 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Golden Slam", Id = 50700 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Waves of Darkness", Id = 50800 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Hoarah Loux's Earthshaker", Id = 50900 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Determination", Id = 60000 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Royal Knight's Resolve", Id = 60100 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Assassin's Gambit", Id = 60200 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Golden Vow", Id = 60300 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Sacred Order", Id = 60400 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Shared Order", Id = 60500 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Seppuku", Id = 60600 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Cragblade", Id = 60700 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Barbaric Roar", Id = 65000 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: War Cry", Id = 65100 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Beast's Roar", Id = 65200 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Troll's Roar", Id = 65300 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Braggart's Roar", Id = 65400 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Endure", Id = 70000 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Vow of the Indomitable", Id = 70100 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Holy Ground", Id = 70200 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Quickstep", Id = 80000 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Bloodhound's Step", Id = 80100 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Raptor of the Mists", Id = 80200 }, + new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: White Shadow's Lure", Id = 85000 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Glintstone Pebble", Id = 4000 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Great Glintstone Shard", Id = 4001 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Swift Glintstone Shard", Id = 4010 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Glintstone Cometshard", Id = 4020 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Comet", Id = 4021 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Shard Spiral", Id = 4030 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Glintstone Stars", Id = 4040 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Star Shower", Id = 4050 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Crystal Barrage", Id = 4060 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Glintstone Arc", Id = 4070 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Cannon of Haima", Id = 4080 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Crystal Burst", Id = 4090 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Shatter Earth", Id = 4100 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Rock Blaster", Id = 4110 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Gavel of Haima", Id = 4120 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Terra Magica", Id = 4130 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Starlight", Id = 4140 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Comet Azur", Id = 4200 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Founding Rain of Stars", Id = 4210 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Stars of Ruin", Id = 4220 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Glintblade Phalanx", Id = 4300 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Carian Phalanx", Id = 4301 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Greatblade Phalanx", Id = 4302 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Rennala's Full Moon", Id = 4360 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Ranni's Dark Moon", Id = 4361 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Magic Downpour", Id = 4370 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Loretta's Greatbow", Id = 4380 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Loretta's Mastery", Id = 4381 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Magic Glintblade", Id = 4390 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Glintstone Icecrag", Id = 4400 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Zamor Ice Storm", Id = 4410 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Freezing Mist", Id = 4420 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Carian Greatsword", Id = 4430 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Adula's Moonblade", Id = 4431 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Carian Slicer", Id = 4440 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Carian Piercer", Id = 4450 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Scholar's Armament", Id = 4460 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Scholar's Shield", Id = 4470 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Lucidity", Id = 4480 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Frozen Armament", Id = 4490 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Shattering Crystal", Id = 4500 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Crystal Release", Id = 4510 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Crystal Torrent", Id = 4520 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Ambush Shard", Id = 4600 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Night Shard", Id = 4610 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Night Comet", Id = 4620 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Thops's Barrier", Id = 4630 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Carian Retaliation", Id = 4640 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Eternal Darkness", Id = 4650 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Unseen Blade", Id = 4660 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Unseen Form", Id = 4670 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Meteorite", Id = 4700 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Meteorite of Astel", Id = 4701 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Rock Sling", Id = 4710 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Gravity Well", Id = 4720 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Collapsing Stars", Id = 4721 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Magma Shot", Id = 4800 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Gelmir's Fury", Id = 4810 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Roiling Magma", Id = 4820 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Rykard's Rancor", Id = 4830 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Briars of Sin", Id = 4900 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Briars of Punishment", Id = 4910 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Rancorcall", Id = 5000 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Ancient Death Rancor", Id = 5001 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Explosive Ghostflame", Id = 5010 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Fia's Mist", Id = 5020 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Tibia's Summons", Id = 5030 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Death Lightning", Id = 5040 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Oracle Bubbles", Id = 5100 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Great Oracular Bubble", Id = 5110 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Catch Flame", Id = 6000 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] O, Flame!", Id = 6001 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Flame Sling", Id = 6010 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Flame, Fall Upon Them", Id = 6020 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Whirl, O Flame!", Id = 6030 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Flame, Cleanse Me", Id = 6040 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Flame, Grant Me Strength", Id = 6050 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Flame, Protect Me", Id = 6060 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Giantsflame Take Thee", Id = 6100 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Flame of the Fell God", Id = 6110 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Burn, O Flame!", Id = 6120 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Black Flame", Id = 6210 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Surge, O Flame!", Id = 6220 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Scouring Black Flame", Id = 6230 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Black Flame Ritual", Id = 6240 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Black Flame Blade", Id = 6250 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Black Flame's Protection", Id = 6260 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Noble Presence", Id = 6270 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Bloodflame Talons", Id = 6300 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Bloodboon", Id = 6310 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Bloodflame Blade", Id = 6320 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Barrier of Gold", Id = 6330 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Protection of the Erdtree", Id = 6340 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Rejection", Id = 6400 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Wrath of Gold", Id = 6410 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Urgent Heal", Id = 6420 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Heal", Id = 6421 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Great Heal", Id = 6422 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Lord's Heal", Id = 6423 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Erdtree Heal", Id = 6424 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Blessing's Boon", Id = 6430 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Blessing of the Erdtree", Id = 6431 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Cure Poison", Id = 6440 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Lord's Aid", Id = 6441 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Flame Fortification", Id = 6450 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Magic Fortification", Id = 6460 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Lightning Fortification", Id = 6470 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Divine Fortification", Id = 6480 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Lord's Divine Fortification", Id = 6490 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Night Maiden's Mist", Id = 6500 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Assassin's Approach", Id = 6510 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Shadow Bait", Id = 6520 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Darkness", Id = 6530 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Golden Vow", Id = 6600 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Discus of Light", Id = 6700 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Triple Rings of Light", Id = 6701 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Radagon's Rings of Light", Id = 6710 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Elden Stars", Id = 6720 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Law of Regression", Id = 6730 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Immutable Shield", Id = 6740 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Litany of Proper Death", Id = 6750 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Law of Causality", Id = 6760 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Order's Blade", Id = 6770 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Order Healing", Id = 6780 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Bestial Sling", Id = 6800 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Stone of Gurranq", Id = 6810 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Beast Claw", Id = 6820 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Gurranq's Beast Claw", Id = 6830 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Bestial Vitality", Id = 6840 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Bestial Constitution", Id = 6850 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Lightning Spear", Id = 6900 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Ancient Dragons' Lightning Strike", Id = 6910 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Lightning Strike", Id = 6920 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Frozen Lightning Spear", Id = 6921 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Honed Bolt", Id = 6930 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Ancient Dragons' Lightning Spear", Id = 6940 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Fortissax's Lightning Spear", Id = 6941 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Lansseax's Glaive", Id = 6950 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Electrify Armament", Id = 6960 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Vyke's Dragonbolt", Id = 6970 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Dragonbolt Blessing", Id = 6971 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Dragonfire", Id = 7000 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Agheel's Flame", Id = 7001 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Magma Breath", Id = 7010 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Theodorix's Magma", Id = 7011 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Dragonice", Id = 7020 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Borealis's Mist", Id = 7021 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Rotten Breath", Id = 7030 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Ekzykes's Decay", Id = 7031 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Glintstone Breath", Id = 7040 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Smarag's Glintstone Breath", Id = 7041 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Placidusax's Ruin", Id = 7050 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Dragonclaw", Id = 7060 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Dragonmaw", Id = 7080 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Greyoll's Roar", Id = 7090 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Pest Threads", Id = 7200 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Swarm of Flies", Id = 7210 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Poison Mist", Id = 7220 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Poison Armament", Id = 7230 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Scarlet Aeonia", Id = 7240 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Inescapable Frenzy", Id = 7300 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] The Flame of Frenzy", Id = 7310 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Unendurable Frenzy", Id = 7311 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Frenzied Burst", Id = 7320 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Howl of Shabriri", Id = 7330 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Aspects of the Crucible: Tail", Id = 7500 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Aspects of the Crucible: Horns", Id = 7510 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Aspects of the Crucible: Breath", Id = 7520 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Black Blade", Id = 7530 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Fire's Deadly Sin", Id = 7900 }, + new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Golden Lightning Fortification", Id = 7903 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Crimson Amber Medallion", Id = 1000 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Crimson Amber Medallion +1", Id = 1001 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Crimson Amber Medallion +2", Id = 1002 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Cerulean Amber Medallion", Id = 1010 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Cerulean Amber Medallion +1", Id = 1011 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Cerulean Amber Medallion +2", Id = 1012 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Viridian Amber Medallion", Id = 1020 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Viridian Amber Medallion +1", Id = 1021 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Viridian Amber Medallion +2", Id = 1022 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Arsenal Charm", Id = 1030 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Arsenal Charm +1", Id = 1031 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Great-Jar's Arsenal", Id = 1032 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Erdtree's Favor", Id = 1040 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Erdtree's Favor +1", Id = 1041 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Erdtree's Favor +2", Id = 1042 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Radagon's Scarseal", Id = 1050 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Radagon's Soreseal", Id = 1051 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Starscourge Heirloom", Id = 1060 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Prosthesis-Wearer Heirloom", Id = 1070 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Stargazer Heirloom", Id = 1080 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Two Fingers Heirloom", Id = 1090 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Silver Scarab", Id = 1100 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Gold Scarab", Id = 1110 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Moon of Nokstella", Id = 1140 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Green Turtle Talisman", Id = 1150 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Stalwart Horn Charm", Id = 1160 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Stalwart Horn Charm +1", Id = 1161 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Immunizing Horn Charm", Id = 1170 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Immunizing Horn Charm +1", Id = 1171 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Clarifying Horn Charm", Id = 1180 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Clarifying Horn Charm +1", Id = 1181 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Prince of Death's Pustule", Id = 1190 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Prince of Death's Cyst", Id = 1191 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Mottled Necklace", Id = 1200 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Mottled Necklace +1", Id = 1201 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Bull-Goat's Talisman", Id = 1210 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Marika's Scarseal", Id = 1220 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Marika's Soreseal", Id = 1221 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Warrior Jar Shard", Id = 1230 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Shard of Alexander", Id = 1231 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Millicent's Prosthesis", Id = 1250 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Magic Scorpion Charm", Id = 2000 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Lightning Scorpion Charm", Id = 2010 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Fire Scorpion Charm", Id = 2020 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Sacred Scorpion Charm", Id = 2030 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Red-Feathered Branchsword", Id = 2040 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Ritual Sword Talisman", Id = 2050 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Spear Talisman", Id = 2060 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Hammer Talisman", Id = 2070 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Winged Sword Insignia", Id = 2080 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Rotten Winged Sword Insignia", Id = 2081 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Dagger Talisman", Id = 2090 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Arrow's Reach Talisman", Id = 2100 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Blue Dancer Charm", Id = 2110 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Twinblade Talisman", Id = 2120 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Axe Talisman", Id = 2130 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Lance Talisman", Id = 2140 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Arrow's Sting Talisman", Id = 2150 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Lord of Blood's Exultation", Id = 2160 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Kindred of Rot's Exultation", Id = 2170 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Claw Talisman", Id = 2180 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Roar Medallion", Id = 2190 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Curved Sword Talisman", Id = 2200 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Companion Jar", Id = 2210 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Perfumer's Talisman", Id = 2220 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Graven-School Talisman", Id = 3000 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Graven-Mass Talisman", Id = 3001 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Faithful's Canvas Talisman", Id = 3040 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Flock's Canvas Talisman", Id = 3050 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Old Lord's Talisman", Id = 3060 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Radagon Icon", Id = 3070 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Primal Glintstone Blade", Id = 3080 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Godfrey Icon", Id = 3090 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Dragoncrest Shield Talisman", Id = 4000 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Dragoncrest Shield Talisman +1", Id = 4001 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Dragoncrest Shield Talisman +2", Id = 4002 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Dragoncrest Greatshield Talisman", Id = 4003 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Spelldrake Talisman", Id = 4010 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Spelldrake Talisman +1", Id = 4011 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Spelldrake Talisman +2", Id = 4012 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Flamedrake Talisman", Id = 4020 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Flamedrake Talisman +1", Id = 4021 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Flamedrake Talisman +2", Id = 4022 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Boltdrake Talisman", Id = 4030 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Boltdrake Talisman +1", Id = 4031 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Boltdrake Talisman +2", Id = 4032 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Haligdrake Talisman", Id = 4040 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Haligdrake Talisman +1", Id = 4041 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Haligdrake Talisman +2", Id = 4042 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Pearldrake Talisman", Id = 4050 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Pearldrake Talisman +1", Id = 4051 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Pearldrake Talisman +2", Id = 4052 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Crucible Scale Talisman", Id = 4060 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Crucible Feather Talisman", Id = 4070 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Blue-Feathered Branchsword", Id = 4080 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Ritual Shield Talisman", Id = 4090 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Greatshield Talisman", Id = 4100 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Crucible Knot Talisman", Id = 4110 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Crimson Seed Talisman", Id = 5000 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Cerulean Seed Talisman", Id = 5010 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Blessed Dew Talisman", Id = 5020 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Taker's Cameo", Id = 5030 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Godskin Swaddling Cloth", Id = 5040 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Assassin's Crimson Dagger", Id = 5050 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Assassin's Cerulean Dagger", Id = 5060 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Crepus's Vial", Id = 6000 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Concealing Veil", Id = 6010 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Carian Filigreed Crest", Id = 6020 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Longtail Cat Talisman", Id = 6040 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Shabriri's Woe", Id = 6050 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Daedicar's Woe", Id = 6060 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Sacrificial Twig", Id = 6070 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Furled Finger's Trick-Mirror", Id = 6080 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Host's Trick-Mirror", Id = 6090 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Entwining Umbilical Cord", Id = 6100 }, + new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Ancestral Spirit's Horn", Id = 6110 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Black Knife Tiche", Id = 200000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Black Knife Tiche +1", Id = 200001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Black Knife Tiche +2", Id = 200002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Black Knife Tiche +3", Id = 200003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Black Knife Tiche +4", Id = 200004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Black Knife Tiche +5", Id = 200005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Black Knife Tiche +6", Id = 200006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Black Knife Tiche +7", Id = 200007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Black Knife Tiche +8", Id = 200008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Black Knife Tiche +9", Id = 200009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Black Knife Tiche +10", Id = 200010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Oleg", Id = 201000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Oleg +1", Id = 201001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Oleg +2", Id = 201002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Oleg +3", Id = 201003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Oleg +4", Id = 201004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Oleg +5", Id = 201005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Oleg +6", Id = 201006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Oleg +7", Id = 201007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Oleg +8", Id = 201008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Oleg +9", Id = 201009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Oleg +10", Id = 201010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Engvall", Id = 202000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Engvall +1", Id = 202001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Engvall +2", Id = 202002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Engvall +3", Id = 202003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Engvall +4", Id = 202004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Engvall +5", Id = 202005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Engvall +6", Id = 202006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Engvall +7", Id = 202007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Engvall +8", Id = 202008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Engvall +9", Id = 202009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Engvall +10", Id = 202010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fanged Imp Ashes", Id = 203000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fanged Imp Ashes +1", Id = 203001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fanged Imp Ashes +2", Id = 203002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fanged Imp Ashes +3", Id = 203003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fanged Imp Ashes +4", Id = 203004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fanged Imp Ashes +5", Id = 203005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fanged Imp Ashes +6", Id = 203006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fanged Imp Ashes +7", Id = 203007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fanged Imp Ashes +8", Id = 203008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fanged Imp Ashes +9", Id = 203009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fanged Imp Ashes +10", Id = 203010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Latenna the Albinauric", Id = 204000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Latenna the Albinauric +1", Id = 204001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Latenna the Albinauric +2", Id = 204002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Latenna the Albinauric +3", Id = 204003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Latenna the Albinauric +4", Id = 204004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Latenna the Albinauric +5", Id = 204005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Latenna the Albinauric +6", Id = 204006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Latenna the Albinauric +7", Id = 204007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Latenna the Albinauric +8", Id = 204008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Latenna the Albinauric +9", Id = 204009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Latenna the Albinauric +10", Id = 204010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nomad Ashes", Id = 205000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nomad Ashes +1", Id = 205001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nomad Ashes +2", Id = 205002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nomad Ashes +3", Id = 205003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nomad Ashes +4", Id = 205004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nomad Ashes +5", Id = 205005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nomad Ashes +6", Id = 205006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nomad Ashes +7", Id = 205007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nomad Ashes +8", Id = 205008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nomad Ashes +9", Id = 205009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nomad Ashes +10", Id = 205010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nightmaiden & Swordstress Puppets", Id = 206000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nightmaiden & Swordstress Puppets +1", Id = 206001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nightmaiden & Swordstress Puppets +2", Id = 206002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nightmaiden & Swordstress Puppets +3", Id = 206003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nightmaiden & Swordstress Puppets +4", Id = 206004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nightmaiden & Swordstress Puppets +5", Id = 206005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nightmaiden & Swordstress Puppets +6", Id = 206006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nightmaiden & Swordstress Puppets +7", Id = 206007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nightmaiden & Swordstress Puppets +8", Id = 206008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nightmaiden & Swordstress Puppets +9", Id = 206009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nightmaiden & Swordstress Puppets +10", Id = 206010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mimic Tear Ashes", Id = 207000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mimic Tear Ashes +1", Id = 207001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mimic Tear Ashes +2", Id = 207002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mimic Tear Ashes +3", Id = 207003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mimic Tear Ashes +4", Id = 207004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mimic Tear Ashes +5", Id = 207005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mimic Tear Ashes +6", Id = 207006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mimic Tear Ashes +7", Id = 207007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mimic Tear Ashes +8", Id = 207008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mimic Tear Ashes +9", Id = 207009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mimic Tear Ashes +10", Id = 207010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Crystalian Ashes", Id = 208000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Crystalian Ashes +1", Id = 208001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Crystalian Ashes +2", Id = 208002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Crystalian Ashes +3", Id = 208003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Crystalian Ashes +4", Id = 208004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Crystalian Ashes +5", Id = 208005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Crystalian Ashes +6", Id = 208006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Crystalian Ashes +7", Id = 208007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Crystalian Ashes +8", Id = 208008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Crystalian Ashes +9", Id = 208009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Crystalian Ashes +10", Id = 208010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancestral Follower Ashes", Id = 209000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancestral Follower Ashes +1", Id = 209001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancestral Follower Ashes +2", Id = 209002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancestral Follower Ashes +3", Id = 209003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancestral Follower Ashes +4", Id = 209004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancestral Follower Ashes +5", Id = 209005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancestral Follower Ashes +6", Id = 209006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancestral Follower Ashes +7", Id = 209007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancestral Follower Ashes +8", Id = 209008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancestral Follower Ashes +9", Id = 209009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancestral Follower Ashes +10", Id = 209010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Winged Misbegotten Ashes", Id = 210000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Winged Misbegotten Ashes + 1", Id = 210001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Winged Misbegotten Ashes + 2", Id = 210002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Winged Misbegotten Ashes + 3", Id = 210003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Winged Misbegotten Ashes + 4", Id = 210004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Winged Misbegotten Ashes + 5", Id = 210005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Winged Misbegotten Ashes + 6", Id = 210006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Winged Misbegotten Ashes + 7", Id = 210007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Winged Misbegotten Ashes + 8", Id = 210008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Winged Misbegotten Ashes + 9", Id = 210009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Winged Misbegotten Ashes + 10", Id = 210010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Albinauric Ashes", Id = 211000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Albinauric Ashes +1", Id = 211001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Albinauric Ashes +2", Id = 211002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Albinauric Ashes +3", Id = 211003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Albinauric Ashes +4", Id = 211004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Albinauric Ashes +5", Id = 211005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Albinauric Ashes +6", Id = 211006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Albinauric Ashes +7", Id = 211007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Albinauric Ashes +8", Id = 211008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Albinauric Ashes +9", Id = 211009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Albinauric Ashes +10", Id = 211010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Militiaman Ashes", Id = 212000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Militiaman Ashes +1", Id = 212001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Militiaman Ashes +2", Id = 212002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Militiaman Ashes +3", Id = 212003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Militiaman Ashes +4", Id = 212004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Militiaman Ashes +5", Id = 212005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Militiaman Ashes +6", Id = 212006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Militiaman Ashes +7", Id = 212007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Militiaman Ashes +8", Id = 212008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Militiaman Ashes +9", Id = 212009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Militiaman Ashes +10", Id = 212010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Bandit Ashes", Id = 213000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Bandit Ashes +1", Id = 213001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Bandit Ashes +2", Id = 213002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Bandit Ashes +3", Id = 213003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Bandit Ashes +4", Id = 213004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Bandit Ashes +5", Id = 213005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Bandit Ashes +6", Id = 213006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Bandit Ashes +7", Id = 213007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Bandit Ashes +8", Id = 213008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Bandit Ashes +9", Id = 213009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Bandit Ashes +10", Id = 213010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Oracle Envoy Ashes", Id = 214000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Oracle Envoy Ashes +1", Id = 214001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Oracle Envoy Ashes +2", Id = 214002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Oracle Envoy Ashes +3", Id = 214003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Oracle Envoy Ashes +4", Id = 214004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Oracle Envoy Ashes +5", Id = 214005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Oracle Envoy Ashes +6", Id = 214006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Oracle Envoy Ashes +7", Id = 214007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Oracle Envoy Ashes +8", Id = 214008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Oracle Envoy Ashes +9", Id = 214009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Oracle Envoy Ashes +10", Id = 214010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Putrid Corpse Ashes", Id = 215000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Putrid Corpse Ashes +1", Id = 215001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Putrid Corpse Ashes +2", Id = 215002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Putrid Corpse Ashes +3", Id = 215003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Putrid Corpse Ashes +4", Id = 215004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Putrid Corpse Ashes +5", Id = 215005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Putrid Corpse Ashes +6", Id = 215006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Putrid Corpse Ashes +7", Id = 215007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Putrid Corpse Ashes +8", Id = 215008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Putrid Corpse Ashes +9", Id = 215009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Putrid Corpse Ashes +10", Id = 215010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Depraved Perfumer Carmaan", Id = 216000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Depraved Perfumer Carmaan +1", Id = 216001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Depraved Perfumer Carmaan +2", Id = 216002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Depraved Perfumer Carmaan +3", Id = 216003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Depraved Perfumer Carmaan +4", Id = 216004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Depraved Perfumer Carmaan +5", Id = 216005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Depraved Perfumer Carmaan +6", Id = 216006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Depraved Perfumer Carmaan +7", Id = 216007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Depraved Perfumer Carmaan +8", Id = 216008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Depraved Perfumer Carmaan +9", Id = 216009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Depraved Perfumer Carmaan +10", Id = 216010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Perfumer Tricia", Id = 217000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Perfumer Tricia +1", Id = 217001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Perfumer Tricia +2", Id = 217002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Perfumer Tricia +3", Id = 217003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Perfumer Tricia +4", Id = 217004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Perfumer Tricia +5", Id = 217005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Perfumer Tricia +6", Id = 217006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Perfumer Tricia +7", Id = 217007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Perfumer Tricia +8", Id = 217008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Perfumer Tricia +9", Id = 217009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Perfumer Tricia +10", Id = 217010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Glintstone Sorcerer Ashes", Id = 218000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Glintstone Sorcerer Ashes +1", Id = 218001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Glintstone Sorcerer Ashes +2", Id = 218002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Glintstone Sorcerer Ashes +3", Id = 218003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Glintstone Sorcerer Ashes +4", Id = 218004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Glintstone Sorcerer Ashes +5", Id = 218005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Glintstone Sorcerer Ashes +6", Id = 218006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Glintstone Sorcerer Ashes +7", Id = 218007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Glintstone Sorcerer Ashes +8", Id = 218008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Glintstone Sorcerer Ashes +9", Id = 218009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Glintstone Sorcerer Ashes +10", Id = 218010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Twinsage Sorcerer Ashes", Id = 219000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Twinsage Sorcerer Ashes +1", Id = 219001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Twinsage Sorcerer Ashes +2", Id = 219002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Twinsage Sorcerer Ashes +3", Id = 219003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Twinsage Sorcerer Ashes +4", Id = 219004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Twinsage Sorcerer Ashes +5", Id = 219005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Twinsage Sorcerer Ashes +6", Id = 219006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Twinsage Sorcerer Ashes +7", Id = 219007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Twinsage Sorcerer Ashes +8", Id = 219008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Twinsage Sorcerer Ashes +9", Id = 219009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Twinsage Sorcerer Ashes +10", Id = 219010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Page Ashes", Id = 220000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Page Ashes +1", Id = 220001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Page Ashes +2", Id = 220002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Page Ashes +3", Id = 220003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Page Ashes +4", Id = 220004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Page Ashes +5", Id = 220005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Page Ashes +6", Id = 220006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Page Ashes +7", Id = 220007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Page Ashes +8", Id = 220008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Page Ashes +9", Id = 220009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Page Ashes +10", Id = 220010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Battlemage Hugues", Id = 221000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Battlemage Hugues +1", Id = 221001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Battlemage Hugues +2", Id = 221002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Battlemage Hugues +3", Id = 221003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Battlemage Hugues +4", Id = 221004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Battlemage Hugues +5", Id = 221005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Battlemage Hugues +6", Id = 221006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Battlemage Hugues +7", Id = 221007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Battlemage Hugues +8", Id = 221008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Battlemage Hugues +9", Id = 221009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Battlemage Hugues +10", Id = 221010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Clayman Ashes", Id = 222000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Clayman Ashes +1", Id = 222001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Clayman Ashes +2", Id = 222002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Clayman Ashes +3", Id = 222003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Clayman Ashes +4", Id = 222004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Clayman Ashes +5", Id = 222005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Clayman Ashes +6", Id = 222006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Clayman Ashes +7", Id = 222007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Clayman Ashes +8", Id = 222008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Clayman Ashes +9", Id = 222009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Clayman Ashes +10", Id = 222010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Cleanrot Knight Finlay", Id = 223000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Cleanrot Knight Finlay +1", Id = 223001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Cleanrot Knight Finlay +2", Id = 223002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Cleanrot Knight Finlay +3", Id = 223003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Cleanrot Knight Finlay +4", Id = 223004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Cleanrot Knight Finlay +5", Id = 223005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Cleanrot Knight Finlay +6", Id = 223006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Cleanrot Knight Finlay +7", Id = 223007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Cleanrot Knight Finlay +8", Id = 223008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Cleanrot Knight Finlay +9", Id = 223009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Cleanrot Knight Finlay +10", Id = 223010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kindred of Rot Ashes", Id = 224000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kindred of Rot Ashes +1", Id = 224001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kindred of Rot Ashes +2", Id = 224002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kindred of Rot Ashes +3", Id = 224003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kindred of Rot Ashes +4", Id = 224004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kindred of Rot Ashes +5", Id = 224005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kindred of Rot Ashes +6", Id = 224006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kindred of Rot Ashes +7", Id = 224007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kindred of Rot Ashes +8", Id = 224008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kindred of Rot Ashes +9", Id = 224009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kindred of Rot Ashes +10", Id = 224010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Marionette Soldier Ashes", Id = 225000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Marionette Soldier Ashes +1", Id = 225001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Marionette Soldier Ashes +2", Id = 225002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Marionette Soldier Ashes +3", Id = 225003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Marionette Soldier Ashes +4", Id = 225004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Marionette Soldier Ashes +5", Id = 225005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Marionette Soldier Ashes +6", Id = 225006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Marionette Soldier Ashes +7", Id = 225007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Marionette Soldier Ashes +8", Id = 225008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Marionette Soldier Ashes +9", Id = 225009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Marionette Soldier Ashes +10", Id = 225010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Avionette Soldier Ashes", Id = 226000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Avionette Soldier Ashes +1", Id = 226001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Avionette Soldier Ashes +2", Id = 226002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Avionette Soldier Ashes +3", Id = 226003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Avionette Soldier Ashes +4", Id = 226004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Avionette Soldier Ashes +5", Id = 226005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Avionette Soldier Ashes +6", Id = 226006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Avionette Soldier Ashes +7", Id = 226007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Avionette Soldier Ashes +8", Id = 226008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Avionette Soldier Ashes +9", Id = 226009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Avionette Soldier Ashes +10", Id = 226010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fire Monk Ashes", Id = 227000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fire Monk Ashes +1", Id = 227001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fire Monk Ashes +2", Id = 227002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fire Monk Ashes +3", Id = 227003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fire Monk Ashes +4", Id = 227004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fire Monk Ashes +5", Id = 227005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fire Monk Ashes +6", Id = 227006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fire Monk Ashes +7", Id = 227007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fire Monk Ashes +8", Id = 227008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fire Monk Ashes +9", Id = 227009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fire Monk Ashes +10", Id = 227010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Blackflame Monk Amon", Id = 228000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Blackflame Monk Amon +1", Id = 228001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Blackflame Monk Amon +2", Id = 228002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Blackflame Monk Amon +3", Id = 228003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Blackflame Monk Amon +4", Id = 228004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Blackflame Monk Amon +5", Id = 228005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Blackflame Monk Amon +6", Id = 228006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Blackflame Monk Amon +7", Id = 228007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Blackflame Monk Amon +8", Id = 228008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Blackflame Monk Amon +9", Id = 228009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Blackflame Monk Amon +10", Id = 228010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Man-Serpent Ashes", Id = 229000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Man-Serpent Ashes +1", Id = 229001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Man-Serpent Ashes +2", Id = 229002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Man-Serpent Ashes +3", Id = 229003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Man-Serpent Ashes +4", Id = 229004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Man-Serpent Ashes +5", Id = 229005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Man-Serpent Ashes +6", Id = 229006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Man-Serpent Ashes +7", Id = 229007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Man-Serpent Ashes +8", Id = 229008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Man-Serpent Ashes +9", Id = 229009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Man-Serpent Ashes +10", Id = 229010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Azula Beastman Ashes", Id = 230000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Azula Beastman Ashes +1", Id = 230001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Azula Beastman Ashes +2", Id = 230002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Azula Beastman Ashes +3", Id = 230003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Azula Beastman Ashes +4", Id = 230004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Azula Beastman Ashes +5", Id = 230005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Azula Beastman Ashes +6", Id = 230006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Azula Beastman Ashes +7", Id = 230007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Azula Beastman Ashes +8", Id = 230008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Azula Beastman Ashes +9", Id = 230009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Azula Beastman Ashes +10", Id = 230010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kaiden Sellsword Ashes", Id = 231000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kaiden Sellsword Ashes +1", Id = 231001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kaiden Sellsword Ashes +2", Id = 231002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kaiden Sellsword Ashes +3", Id = 231003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kaiden Sellsword Ashes +4", Id = 231004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kaiden Sellsword Ashes +5", Id = 231005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kaiden Sellsword Ashes +6", Id = 231006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kaiden Sellsword Ashes +7", Id = 231007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kaiden Sellsword Ashes +8", Id = 231008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kaiden Sellsword Ashes +9", Id = 231009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kaiden Sellsword Ashes +10", Id = 231010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lone Wolf Ashes", Id = 232000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lone Wolf Ashes +1", Id = 232001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lone Wolf Ashes +2", Id = 232002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lone Wolf Ashes +3", Id = 232003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lone Wolf Ashes +4", Id = 232004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lone Wolf Ashes +5", Id = 232005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lone Wolf Ashes +6", Id = 232006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lone Wolf Ashes +7", Id = 232007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lone Wolf Ashes +8", Id = 232008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lone Wolf Ashes +9", Id = 232009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lone Wolf Ashes +10", Id = 232010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Giant Rat Ashes", Id = 233000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Giant Rat Ashes +1", Id = 233001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Giant Rat Ashes +2", Id = 233002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Giant Rat Ashes +3", Id = 233003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Giant Rat Ashes +4", Id = 233004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Giant Rat Ashes +5", Id = 233005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Giant Rat Ashes +6", Id = 233006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Giant Rat Ashes +7", Id = 233007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Giant Rat Ashes +8", Id = 233008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Giant Rat Ashes +9", Id = 233009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Giant Rat Ashes +10", Id = 233010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Demi-Human Ashes", Id = 234000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Demi-Human Ashes +1", Id = 234001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Demi-Human Ashes +2", Id = 234002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Demi-Human Ashes +3", Id = 234003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Demi-Human Ashes +4", Id = 234004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Demi-Human Ashes +5", Id = 234005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Demi-Human Ashes +6", Id = 234006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Demi-Human Ashes +7", Id = 234007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Demi-Human Ashes +8", Id = 234008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Demi-Human Ashes +9", Id = 234009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Demi-Human Ashes +10", Id = 234010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Rotten Stray Ashes", Id = 235000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Rotten Stray Ashes +1", Id = 235001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Rotten Stray Ashes +2", Id = 235002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Rotten Stray Ashes +3", Id = 235003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Rotten Stray Ashes +4", Id = 235004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Rotten Stray Ashes +5", Id = 235005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Rotten Stray Ashes +6", Id = 235006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Rotten Stray Ashes +7", Id = 235007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Rotten Stray Ashes +8", Id = 235008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Rotten Stray Ashes +9", Id = 235009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Rotten Stray Ashes +10", Id = 235010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Spirit Jellyfish Ashes", Id = 236000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Spirit Jellyfish Ashes +1", Id = 236001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Spirit Jellyfish Ashes +2", Id = 236002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Spirit Jellyfish Ashes +3", Id = 236003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Spirit Jellyfish Ashes +4", Id = 236004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Spirit Jellyfish Ashes +5", Id = 236005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Spirit Jellyfish Ashes +6", Id = 236006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Spirit Jellyfish Ashes +7", Id = 236007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Spirit Jellyfish Ashes +8", Id = 236008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Spirit Jellyfish Ashes +9", Id = 236009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Spirit Jellyfish Ashes +10", Id = 236010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Warhawk Ashes", Id = 237000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Warhawk Ashes +1", Id = 237001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Warhawk Ashes +2", Id = 237002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Warhawk Ashes +3", Id = 237003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Warhawk Ashes +4", Id = 237004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Warhawk Ashes +5", Id = 237005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Warhawk Ashes +6", Id = 237006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Warhawk Ashes +7", Id = 237007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Warhawk Ashes +8", Id = 237008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Warhawk Ashes +9", Id = 237009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Warhawk Ashes +10", Id = 237010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Stormhawk Deenh", Id = 238000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Stormhawk Deenh +1", Id = 238001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Stormhawk Deenh +2", Id = 238002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Stormhawk Deenh +3", Id = 238003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Stormhawk Deenh +4", Id = 238004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Stormhawk Deenh +5", Id = 238005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Stormhawk Deenh +6", Id = 238006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Stormhawk Deenh +7", Id = 238007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Stormhawk Deenh +8", Id = 238008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Stormhawk Deenh +9", Id = 238009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Stormhawk Deenh +10", Id = 238010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Bloodhound Knight Floh", Id = 239000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Bloodhound Knight Floh +1", Id = 239001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Bloodhound Knight Floh +2", Id = 239002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Bloodhound Knight Floh +3", Id = 239003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Bloodhound Knight Floh +4", Id = 239004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Bloodhound Knight Floh +5", Id = 239005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Bloodhound Knight Floh +6", Id = 239006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Bloodhound Knight Floh +7", Id = 239007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Bloodhound Knight Floh +8", Id = 239008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Bloodhound Knight Floh +9", Id = 239009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Bloodhound Knight Floh +10", Id = 239010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Wandering Noble Ashes", Id = 240000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Wandering Noble Ashes +1", Id = 240001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Wandering Noble Ashes +2", Id = 240002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Wandering Noble Ashes +3", Id = 240003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Wandering Noble Ashes +4", Id = 240004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Wandering Noble Ashes +5", Id = 240005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Wandering Noble Ashes +6", Id = 240006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Wandering Noble Ashes +7", Id = 240007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Wandering Noble Ashes +8", Id = 240008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Wandering Noble Ashes +9", Id = 240009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Wandering Noble Ashes +10", Id = 240010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Noble Sorcerer Ashes", Id = 241000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Noble Sorcerer Ashes +1", Id = 241001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Noble Sorcerer Ashes +2", Id = 241002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Noble Sorcerer Ashes +3", Id = 241003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Noble Sorcerer Ashes +4", Id = 241004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Noble Sorcerer Ashes +5", Id = 241005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Noble Sorcerer Ashes +6", Id = 241006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Noble Sorcerer Ashes +7", Id = 241007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Noble Sorcerer Ashes +8", Id = 241008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Noble Sorcerer Ashes +9", Id = 241009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Noble Sorcerer Ashes +10", Id = 241010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Vulgar Militia Ashes", Id = 242000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Vulgar Militia Ashes +1", Id = 242001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Vulgar Militia Ashes +2", Id = 242002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Vulgar Militia Ashes +3", Id = 242003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Vulgar Militia Ashes +4", Id = 242004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Vulgar Militia Ashes +5", Id = 242005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Vulgar Militia Ashes +6", Id = 242006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Vulgar Militia Ashes +7", Id = 242007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Vulgar Militia Ashes +8", Id = 242008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Vulgar Militia Ashes +9", Id = 242009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Vulgar Militia Ashes +10", Id = 242010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mad Pumpkin Head Ashes", Id = 243000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mad Pumpkin Head Ashes +1", Id = 243001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mad Pumpkin Head Ashes +2", Id = 243002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mad Pumpkin Head Ashes +3", Id = 243003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mad Pumpkin Head Ashes +4", Id = 243004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mad Pumpkin Head Ashes +5", Id = 243005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mad Pumpkin Head Ashes +6", Id = 243006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mad Pumpkin Head Ashes +7", Id = 243007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mad Pumpkin Head Ashes +8", Id = 243008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mad Pumpkin Head Ashes +9", Id = 243009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mad Pumpkin Head Ashes +10", Id = 243010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Land Squirt Ashes", Id = 244000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Land Squirt Ashes +1", Id = 244001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Land Squirt Ashes +2", Id = 244002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Land Squirt Ashes +3", Id = 244003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Land Squirt Ashes +4", Id = 244004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Land Squirt Ashes +5", Id = 244005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Land Squirt Ashes +6", Id = 244006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Land Squirt Ashes +7", Id = 244007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Land Squirt Ashes +8", Id = 244008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Land Squirt Ashes +9", Id = 244009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Land Squirt Ashes +10", Id = 244010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Miranda Sprout Ashes", Id = 245000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Miranda Sprout Ashes +1 ", Id = 245001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Miranda Sprout Ashes +2", Id = 245002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Miranda Sprout Ashes +3", Id = 245003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Miranda Sprout Ashes +4", Id = 245004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Miranda Sprout Ashes +5", Id = 245005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Miranda Sprout Ashes +6", Id = 245006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Miranda Sprout Ashes +7", Id = 245007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Miranda Sprout Ashes +8", Id = 245008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Miranda Sprout Ashes +9", Id = 245009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Miranda Sprout Ashes +10", Id = 245010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Soldjars of Fortune Ashes", Id = 246000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Soldjars of Fortune Ashes +1", Id = 246001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Soldjars of Fortune Ashes +2", Id = 246002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Soldjars of Fortune Ashes +3", Id = 246003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Soldjars of Fortune Ashes +4", Id = 246004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Soldjars of Fortune Ashes +5", Id = 246005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Soldjars of Fortune Ashes +6", Id = 246006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Soldjars of Fortune Ashes +7", Id = 246007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Soldjars of Fortune Ashes +8", Id = 246008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Soldjars of Fortune Ashes +9", Id = 246009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Soldjars of Fortune Ashes +10", Id = 246010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Omenkiller Rollo", Id = 247000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Omenkiller Rollo +1", Id = 247001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Omenkiller Rollo +2", Id = 247002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Omenkiller Rollo +3", Id = 247003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Omenkiller Rollo +4", Id = 247004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Omenkiller Rollo +5", Id = 247005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Omenkiller Rollo +6", Id = 247006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Omenkiller Rollo +7", Id = 247007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Omenkiller Rollo +8", Id = 247008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Omenkiller Rollo +9", Id = 247009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Omenkiller Rollo +10", Id = 247010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Greatshield Soldier Ashes", Id = 248000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Greatshield Soldier Ashes +1", Id = 248001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Greatshield Soldier Ashes +2", Id = 248002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Greatshield Soldier Ashes +3", Id = 248003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Greatshield Soldier Ashes +4", Id = 248004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Greatshield Soldier Ashes +5", Id = 248005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Greatshield Soldier Ashes +6", Id = 248006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Greatshield Soldier Ashes +7", Id = 248007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Greatshield Soldier Ashes +8", Id = 248008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Greatshield Soldier Ashes +9", Id = 248009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Greatshield Soldier Ashes +10", Id = 248010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Archer Ashes", Id = 249000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Archer Ashes +1", Id = 249001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Archer Ashes +2", Id = 249002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Archer Ashes +3", Id = 249003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Archer Ashes +4", Id = 249004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Archer Ashes +5", Id = 249005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Archer Ashes +6", Id = 249006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Archer Ashes +7", Id = 249007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Archer Ashes +8", Id = 249008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Archer Ashes +9", Id = 249009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Archer Ashes +10", Id = 249010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Godrick Soldier Ashes", Id = 250000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Godrick Soldier Ashes +1", Id = 250001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Godrick Soldier Ashes +2", Id = 250002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Godrick Soldier Ashes +3", Id = 250003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Godrick Soldier Ashes +4", Id = 250004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Godrick Soldier Ashes +5", Id = 250005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Godrick Soldier Ashes +6", Id = 250006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Godrick Soldier Ashes +7", Id = 250007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Godrick Soldier Ashes +8", Id = 250008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Godrick Soldier Ashes +9", Id = 250009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Godrick Soldier Ashes +10", Id = 250010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Raya Lucaria Soldier Ashes", Id = 251000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Raya Lucaria Soldier Ashes +1", Id = 251001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Raya Lucaria Soldier Ashes +2", Id = 251002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Raya Lucaria Soldier Ashes +3", Id = 251003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Raya Lucaria Soldier Ashes +4", Id = 251004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Raya Lucaria Soldier Ashes +5", Id = 251005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Raya Lucaria Soldier Ashes +6", Id = 251006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Raya Lucaria Soldier Ashes +7", Id = 251007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Raya Lucaria Soldier Ashes +8", Id = 251008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Raya Lucaria Soldier Ashes +9", Id = 251009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Raya Lucaria Soldier Ashes +10", Id = 251010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Leyndell Soldier Ashes", Id = 252000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Leyndell Soldier Ashes +1", Id = 252001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Leyndell Soldier Ashes +2", Id = 252002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Leyndell Soldier Ashes +3", Id = 252003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Leyndell Soldier Ashes +4", Id = 252004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Leyndell Soldier Ashes +5", Id = 252005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Leyndell Soldier Ashes +6", Id = 252006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Leyndell Soldier Ashes +7", Id = 252007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Leyndell Soldier Ashes +8", Id = 252008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Leyndell Soldier Ashes +9", Id = 252009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Leyndell Soldier Ashes +10", Id = 252010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Radahn Soldier Ashes", Id = 253000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Radahn Soldier Ashes +1", Id = 253001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Radahn Soldier Ashes +2", Id = 253002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Radahn Soldier Ashes +3", Id = 253003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Radahn Soldier Ashes +4", Id = 253004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Radahn Soldier Ashes +5", Id = 253005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Radahn Soldier Ashes +6", Id = 253006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Radahn Soldier Ashes +7", Id = 253007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Radahn Soldier Ashes +8", Id = 253008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Radahn Soldier Ashes +9", Id = 253009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Radahn Soldier Ashes +10", Id = 253010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mausoleum Soldier Ashes", Id = 254000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mausoleum Soldier Ashes +1", Id = 254001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mausoleum Soldier Ashes +2", Id = 254002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mausoleum Soldier Ashes +3", Id = 254003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mausoleum Soldier Ashes +4", Id = 254004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mausoleum Soldier Ashes +5", Id = 254005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mausoleum Soldier Ashes +6", Id = 254006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mausoleum Soldier Ashes +7", Id = 254007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mausoleum Soldier Ashes +8", Id = 254008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mausoleum Soldier Ashes +9", Id = 254009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mausoleum Soldier Ashes +10", Id = 254010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Haligtree Soldier Ashes", Id = 255000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Haligtree Soldier Ashes +1", Id = 255001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Haligtree Soldier Ashes +2", Id = 255002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Haligtree Soldier Ashes +3", Id = 255003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Haligtree Soldier Ashes +4", Id = 255004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Haligtree Soldier Ashes +5", Id = 255005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Haligtree Soldier Ashes +6", Id = 255006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Haligtree Soldier Ashes +7", Id = 255007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Haligtree Soldier Ashes +8", Id = 255008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Haligtree Soldier Ashes +9", Id = 255009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Haligtree Soldier Ashes +10", Id = 255010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancient Dragon Knight Kristoff", Id = 256000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancient Dragon Knight Kristoff +1", Id = 256001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancient Dragon Knight Kristoff +2", Id = 256002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancient Dragon Knight Kristoff +3", Id = 256003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancient Dragon Knight Kristoff +4", Id = 256004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancient Dragon Knight Kristoff +5", Id = 256005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancient Dragon Knight Kristoff +6", Id = 256006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancient Dragon Knight Kristoff +7", Id = 256007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancient Dragon Knight Kristoff +8", Id = 256008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancient Dragon Knight Kristoff +9", Id = 256009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancient Dragon Knight Kristoff +10", Id = 256010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Redmane Knight Ogha", Id = 257000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Redmane Knight Ogha +1", Id = 257001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Redmane Knight Ogha +2", Id = 257002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Redmane Knight Ogha +3", Id = 257003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Redmane Knight Ogha +4", Id = 257004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Redmane Knight Ogha +5", Id = 257005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Redmane Knight Ogha +6", Id = 257006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Redmane Knight Ogha +7", Id = 257007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Redmane Knight Ogha +8", Id = 257008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Redmane Knight Ogha +9", Id = 257009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Redmane Knight Ogha +10", Id = 257010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lhutel the Headless", Id = 258000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lhutel the Headless +1", Id = 258001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lhutel the Headless +2", Id = 258002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lhutel the Headless +3", Id = 258003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lhutel the Headless +4", Id = 258004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lhutel the Headless +5", Id = 258005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lhutel the Headless +6", Id = 258006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lhutel the Headless +7", Id = 258007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lhutel the Headless +8", Id = 258008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lhutel the Headless +9", Id = 258009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lhutel the Headless +10", Id = 258010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nepheli Loux Puppet", Id = 259000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nepheli Loux Puppet +1", Id = 259001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nepheli Loux Puppet +2", Id = 259002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nepheli Loux Puppet +3", Id = 259003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nepheli Loux Puppet +4", Id = 259004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nepheli Loux Puppet +5", Id = 259005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nepheli Loux Puppet +6", Id = 259006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nepheli Loux Puppet +7", Id = 259007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nepheli Loux Puppet +8", Id = 259008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nepheli Loux Puppet +9", Id = 259009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nepheli Loux Puppet +10", Id = 259010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dung Eater Puppet", Id = 260000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dung Eater Puppet +1", Id = 260001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dung Eater Puppet +2", Id = 260002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dung Eater Puppet +3", Id = 260003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dung Eater Puppet +4", Id = 260004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dung Eater Puppet +5", Id = 260005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dung Eater Puppet +6", Id = 260006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dung Eater Puppet +7", Id = 260007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dung Eater Puppet +8", Id = 260008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dung Eater Puppet +9", Id = 260009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dung Eater Puppet +10", Id = 260010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Finger Maiden Therolina Puppet", Id = 261000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Finger Maiden Therolina Puppet +1", Id = 261001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Finger Maiden Therolina Puppet +2", Id = 261002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Finger Maiden Therolina Puppet +3", Id = 261003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Finger Maiden Therolina Puppet +4", Id = 261004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Finger Maiden Therolina Puppet +5", Id = 261005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Finger Maiden Therolina Puppet +6", Id = 261006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Finger Maiden Therolina Puppet +7", Id = 261007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Finger Maiden Therolina Puppet +8", Id = 261008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Finger Maiden Therolina Puppet +9", Id = 261009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Finger Maiden Therolina Puppet +10", Id = 261010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dolores the Sleeping Arrow Puppet", Id = 262000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dolores the Sleeping Arrow Puppet +1", Id = 262001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dolores the Sleeping Arrow Puppet +2", Id = 262002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dolores the Sleeping Arrow Puppet +3", Id = 262003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dolores the Sleeping Arrow Puppet +4", Id = 262004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dolores the Sleeping Arrow Puppet +5", Id = 262005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dolores the Sleeping Arrow Puppet +6", Id = 262006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dolores the Sleeping Arrow Puppet +7", Id = 262007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dolores the Sleeping Arrow Puppet +8", Id = 262008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dolores the Sleeping Arrow Puppet +9", Id = 262009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dolores the Sleeping Arrow Puppet +10", Id = 262010 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Jarwight Puppet", Id = 263000 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Jarwight Puppet +1", Id = 263001 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Jarwight Puppet +2", Id = 263002 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Jarwight Puppet +3", Id = 263003 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Jarwight Puppet +4", Id = 263004 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Jarwight Puppet +5", Id = 263005 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Jarwight Puppet +6", Id = 263006 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Jarwight Puppet +7", Id = 263007 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Jarwight Puppet +8", Id = 263008 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Jarwight Puppet +9", Id = 263009 }, + new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Jarwight Puppet +10", Id = 263010 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Furlcalling Finger Remedy", Id = 182 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Rune Arc", Id = 190 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Fire Pot", Id = 300 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Redmane Fire Pot", Id = 301 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Giantsflame Fire Pot", Id = 302 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Lightning Pot", Id = 320 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Ancient Dragonbolt Pot", Id = 321 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Fetid Pot", Id = 330 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Swarm Pot", Id = 340 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Holy Water Pot", Id = 350 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Sacred Order Pot", Id = 351 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Freezing Pot", Id = 360 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Poison Pot", Id = 370 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Oil Pot", Id = 380 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Alluring Pot", Id = 390 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Beastlure Pot", Id = 391 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Roped Fire Pot", Id = 400 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Roped Lightning Pot", Id = 420 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Roped Fetid Pot", Id = 430 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Roped Poison Pot", Id = 440 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Roped Oil Pot", Id = 450 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Roped Magic Pot", Id = 460 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Roped Fly Pot", Id = 470 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Roped Freezing Pot", Id = 480 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Roped Volcano Pot", Id = 490 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Roped Holy Water Pot", Id = 510 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Volcano Pot", Id = 600 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Albinauric Pot", Id = 610 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Cursed-Blood Pot", Id = 630 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Sleep Pot", Id = 640 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Rancor Pot", Id = 650 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Magic Pot", Id = 660 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Academy Magic Pot", Id = 661 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Rot Pot", Id = 670 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Boiled Crab", Id = 820 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Boiled Prawn", Id = 830 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Neutralizing Boluses", Id = 900 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Stanching Boluses", Id = 910 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Thawfrost Boluses", Id = 920 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Stimulating Boluses", Id = 930 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Preserving Boluses", Id = 940 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Rejuvenating Boluses", Id = 950 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Clarifying Boluses", Id = 960 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Pickled Turtle Neck", Id = 1100 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Immunizing Cured Meat", Id = 1110 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Invigorating Cured Meat", Id = 1120 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Clarifying Cured Meat", Id = 1130 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Dappled Cured Meat", Id = 1140 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Spellproof Dried Liver", Id = 1150 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Fireproof Dried Liver", Id = 1160 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Lightningproof Dried Liver", Id = 1170 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Holyproof Dried Liver", Id = 1180 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Silver-Pickled Fowl Foot", Id = 1190 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Gold-Pickled Fowl Foot", Id = 1200 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Exalted Flesh", Id = 1210 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Deathsbane Jerky", Id = 1220 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Raw Meat Dumpling", Id = 1235 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Shabriri Grape", Id = 1240 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Starlight Shards", Id = 1290 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Immunizing White Cured Meat", Id = 1310 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Invigorating White Cured Meat", Id = 1320 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Clarifying White Cured Meat", Id = 1330 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Dappled White Cured Meat", Id = 1340 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Deathsbane White Jerky", Id = 1350 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Fire Grease", Id = 1400 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Lightning Grease", Id = 1410 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Magic Grease", Id = 1420 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Holy Grease", Id = 1430 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Blood Grease", Id = 1440 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Soporific Grease", Id = 1450 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Poison Grease", Id = 1460 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Freezing Grease", Id = 1470 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Dragonwound Grease", Id = 1480 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Rot Grease", Id = 1490 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Drawstring Fire Grease", Id = 1500 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Drawstring Lightning Grease", Id = 1510 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Drawstring Magic Grease", Id = 1520 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Drawstring Holy Grease", Id = 1530 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Drawstring Blood Grease", Id = 1540 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Drawstring Soporific Grease", Id = 1550 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Drawstring Poison Grease", Id = 1560 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Drawstring Freezing Grease", Id = 1570 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Drawstring Rot Grease", Id = 1590 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Shield Grease", Id = 1690 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Throwing Dagger", Id = 1700 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Bone Dart", Id = 1710 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Poisonbone Dart", Id = 1720 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Kukri", Id = 1730 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Crystal Dart", Id = 1740 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Fan Daggers", Id = 1750 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Ruin Fragment", Id = 1760 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Explosive Stone", Id = 1830 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Explosive Stone Clump", Id = 1831 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Poisoned Stone", Id = 1840 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Poisoned Stone Clump", Id = 1841 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Rainbow Stone", Id = 2020 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Glowstone", Id = 2030 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Grace Mimic", Id = 2050 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Soft Cotton", Id = 2100 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Soap", Id = 2120 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Celestial Dew", Id = 2130 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Miquella's Needle", Id = 2190 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [1]", Id = 2900 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [2]", Id = 2901 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [3]", Id = 2902 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [4]", Id = 2903 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [5]", Id = 2904 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [6]", Id = 2905 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [7]", Id = 2906 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [8]", Id = 2907 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [9]", Id = 2908 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [10]", Id = 2909 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [11]", Id = 2910 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [12]", Id = 2911 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [13]", Id = 2912 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Numen's Rune", Id = 2913 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Hero's Rune [1]", Id = 2914 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Hero's Rune [2]", Id = 2915 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Hero's Rune [3]", Id = 2916 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Hero's Rune [4]", Id = 2917 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Hero's Rune [5]", Id = 2918 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Lord's Rune", Id = 2919 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Grafted", Id = 2950 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Starscourge", Id = 2951 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Omen King", Id = 2952 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Blasphemous", Id = 2953 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Rot Goddess", Id = 2954 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Blood Lord", Id = 2955 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Black Blade", Id = 2956 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of Hoarah Loux", Id = 2957 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Dragonlord", Id = 2958 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Full Moon Queen", Id = 2959 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Lichdragon", Id = 2960 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Fire Giant", Id = 2961 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Regal Ancestor", Id = 2962 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Elden Remembrance", Id = 2963 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Naturalborn", Id = 2964 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Lands Between Rune", Id = 2990 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Cuckoo Glintstone", Id = 3030 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Glintstone Scrap", Id = 3050 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Large Glintstone Scrap", Id = 3051 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Gravity Stone Fan", Id = 3060 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Gravity Stone Chunk", Id = 3070 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Wraith Calling Bell", Id = 3080 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Holy Water Grease", Id = 3300 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Warming Stone", Id = 3310 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Frenzyflame Stone", Id = 3311 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Scriptstone", Id = 3320 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Bewitching Branch", Id = 3350 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Baldachin's Blessing", Id = 3360 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Radiant Baldachin's Blessing", Id = 3361 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Uplifting Aromatic", Id = 3500 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Spark Aromatic", Id = 3510 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Ironjar Aromatic", Id = 3520 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Bloodboil Aromatic", Id = 3550 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Poison Spraymist", Id = 3580 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Acid Spraymist", Id = 3610 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Cracked Pot", Id = 9500 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Ritual Pot", Id = 9501 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Perfume Bottle", Id = 9510 }, + new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Glass Shard", Id = 10000 }, + //new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Great Rune of the Unborn", Id = 10080 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Rowa Raisin", Id = 810 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Sweet Raisin", Id = 811 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Frozen Raisin", Id = 812 }, + //new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Raw Meat Dumpling", Id = 1235 }, + //new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Ruin Fragment", Id = 1760 }, + //new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Soft Cotton", Id = 2100 }, + //new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Celestial Dew", Id = 2130 }, + //new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Cracked Pot", Id = 9500 }, + //new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Ritual Pot", Id = 9501 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Sliver of Meat", Id = 15000 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Beast Liver", Id = 15010 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Lump of Flesh", Id = 15020 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Beast Blood", Id = 15030 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Old Fang", Id = 15040 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Budding Horn", Id = 15050 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Flight Pinion", Id = 15060 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Four-Toed Fowl Foot", Id = 15080 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Turtle Neck Meat", Id = 15090 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Human Bone Shard", Id = 15100 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Great Dragonfly Head", Id = 15110 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Slumbering Egg", Id = 15120 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Crab Eggs", Id = 15130 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Land Octopus Ovary", Id = 15140 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Miranda Powder", Id = 15150 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Strip of White Flesh", Id = 15160 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Thin Beast Bones", Id = 15340 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Hefty Beast Bone", Id = 15341 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "String", Id = 15400 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Living Jar Shard", Id = 15410 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Albinauric Bloodclot", Id = 15420 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Stormhawk Feather", Id = 15430 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Poisonbloom", Id = 20650 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Trina's Lily", Id = 20651 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Fulgurbloom", Id = 20652 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Miquella's Lily", Id = 20653 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Grave Violet", Id = 20654 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Faded Erdleaf Flower", Id = 20660 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Erdleaf Flower", Id = 20680 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Altus Bloom", Id = 20681 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Fire Blossom", Id = 20682 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Golden Sunflower", Id = 20683 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Tarnished Golden Sunflower", Id = 20685 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Herba", Id = 20690 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Arteria Leaf", Id = 20691 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Dewkissed Herba", Id = 20710 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Rowa Fruit", Id = 20720 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Golden Rowa", Id = 20721 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Rimed Rowa", Id = 20722 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Bloodrose", Id = 20723 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Eye of Yelough", Id = 20740 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Crystal Bud", Id = 20750 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Rimed Crystal Bud", Id = 20751 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Sacramental Bud", Id = 20753 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Mushroom", Id = 20760 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Melted Mushroom", Id = 20761 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Toxic Mushroom", Id = 20770 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Root Resin", Id = 20775 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Cracked Crystal", Id = 20780 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Sanctuary Stone", Id = 20795 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Nascent Butterfly", Id = 20800 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Aeonian Butterfly", Id = 20801 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Smoldering Butterfly", Id = 20802 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Silver Firefly", Id = 20810 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Gold Firefly", Id = 20811 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Glintstone Firefly", Id = 20812 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Golden Centipede", Id = 20820 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Silver Tear Husk", Id = 20825 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Gold-Tinged Excrement", Id = 20830 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Blood-Tainted Excrement", Id = 20831 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Cave Moss", Id = 20840 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Budding Cave Moss", Id = 20841 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Crystal Cave Moss", Id = 20842 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Yellow Ember", Id = 20845 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Volcanic Stone", Id = 20850 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Formic Rock", Id = 20852 }, + new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Gravel Stone", Id = 20855 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Wondrous Physick (Empty)", Id = 250 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Wondrous Physick", Id = 251 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears (Empty)", Id = 1000 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears", Id = 1001 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +1 (Empty)", Id = 1002 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +1", Id = 1003 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +2 (Empty)", Id = 1004 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +2", Id = 1005 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +3 (Empty)", Id = 1006 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +3", Id = 1007 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +4 (Empty)", Id = 1008 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +4", Id = 1009 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +5 (Empty)", Id = 1010 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +5", Id = 1011 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +6 (Empty)", Id = 1012 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +6", Id = 1013 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +7 (Empty)", Id = 1014 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +7", Id = 1015 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +8 (Empty)", Id = 1016 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +8", Id = 1017 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +9 (Empty)", Id = 1018 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +9", Id = 1019 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +10 (Empty)", Id = 1020 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +10", Id = 1021 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +11 (Empty)", Id = 1022 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +11", Id = 1023 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +12 (Empty)", Id = 1024 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +12", Id = 1025 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears (Empty)", Id = 1050 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears", Id = 1051 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +1 (Empty)", Id = 1052 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +1", Id = 1053 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +2 (Empty)", Id = 1054 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +2", Id = 1055 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +3 (Empty)", Id = 1056 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +3", Id = 1057 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +4 (Empty)", Id = 1058 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +4", Id = 1059 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +5 (Empty)", Id = 1060 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +5", Id = 1061 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +6 (Empty)", Id = 1062 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +6", Id = 1063 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +7 (Empty)", Id = 1064 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +7", Id = 1065 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +8 (Empty)", Id = 1066 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +8", Id = 1067 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +9 (Empty)", Id = 1068 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +9", Id = 1069 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +10 (Empty)", Id = 1070 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +10", Id = 1071 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +11 (Empty)", Id = 1072 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +11", Id = 1073 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +12 (Empty)", Id = 1074 }, + new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +12", Id = 1075 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Tarnished's Furled Finger", Id = 100 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Duelist's Furled Finger", Id = 101 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Bloody Finger", Id = 102 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Finger Severer", Id = 103 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "White Cipher Ring", Id = 104 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Blue Cipher Ring", Id = 105 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Tarnished's Wizened Finger", Id = 106 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Phantom Bloody Finger", Id = 107 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Taunter's Tongue", Id = 108 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Small Golden Effigy", Id = 109 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Small Red Effigy", Id = 110 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Festering Bloody Finger", Id = 111 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Recusant Finger", Id = 112 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Phantom Bloody Finger", Id = 113 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Phantom Recusant Finger", Id = 114 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Memory of Grace", Id = 115 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Spectral Steed Whistle", Id = 130 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Phantom Great Rune", Id = 135 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Godrick's Great Rune", Id = 191 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Radahn's Great Rune", Id = 192 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Morgott's Great Rune", Id = 193 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Rykard's Great Rune", Id = 194 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Mohg's Great Rune", Id = 195 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Malenia's Great Rune", Id = 196 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Stonesword Key", Id = 8000 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Rusty Key", Id = 8010 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Lucent Baldachin's Blessing", Id = 8102 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Dectus Medallion (Left)", Id = 8105 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Dectus Medallion (Right)", Id = 8106 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Rold Medallion", Id = 8107 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Academy Glintstone Key", Id = 8109 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Carian Inverted Statue", Id = 8111 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Dark Moon Ring", Id = 8121 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Fingerprint Grape", Id = 8126 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Letter from Volcano Manor", Id = 8127 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Tonic of Forgetfulness", Id = 8128 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Serpent's Amnion", Id = 8129 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Rya's Necklace", Id = 8130 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Irina's Letter", Id = 8131 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Letter from Volcano Manor", Id = 8132 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Red Letter", Id = 8133 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Drawing-Room Key", Id = 8134 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Rya's Necklace", Id = 8136 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Volcano Manor Invitation", Id = 8137 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Amber Starlight", Id = 8142 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Seluvis's Introduction", Id = 8143 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Sellen's Primal Glintstone", Id = 8144 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Miniature Ranni", Id = 8146 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Asimi, Silver Tear", Id = 8147 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Godrick's Great Rune (Unpowered)", Id = 8148 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Radahn's Great Rune (Unpowered)", Id = 8149 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Morgott's Great Rune (Unpowered)", Id = 8150 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Rykard's Great Rune (Unpowered)", Id = 8151 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Mohg's Great Rune (Unpowered)", Id = 8152 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Malenia's Great Rune (Unpowered)", Id = 8153 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Lord of Blood's Favor", Id = 8154 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Lord of Blood's Favor", Id = 8155 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Burial Crow's Letter", Id = 8156 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Spirit Calling Bell", Id = 8158 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Fingerslayer Blade", Id = 8159 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Sewing Needle", Id = 8161 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Gold Sewing Needle", Id = 8162 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Tailoring Tools", Id = 8163 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Seluvis's Potion", Id = 8164 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Amber Draught", Id = 8166 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Letter to Patches", Id = 8167 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Dancer's Castanets", Id = 8168 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Sellian Sealbreaker", Id = 8169 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Chrysalids' Memento", Id = 8171 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Black Knifeprint", Id = 8172 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Letter to Bernahl", Id = 8173 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Academy Glintstone Key", Id = 8174 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Haligtree Secret Medallion (Left)", Id = 8175 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Haligtree Secret Medallion (Right)", Id = 8176 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Burial Crow's Letter", Id = 8181 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Mending Rune of Perfect Order", Id = 8182 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Mending Rune of the Death-Prince", Id = 8183 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Mending Rune of the Fell Curse", Id = 8184 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Larval Tear", Id = 8185 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Imbued Sword Key", Id = 8186 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Miniature Ranni", Id = 8187 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Golden Tailoring Tools", Id = 8188 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Iji's Confession", Id = 8189 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Knifeprint Clue", Id = 8190 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Cursemark of Death", Id = 8191 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Asimi's Husk", Id = 8192 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Seedbed Curse", Id = 8193 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "The Stormhawk King", Id = 8194 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Asimi, Silver Chrysalid", Id = 8195 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Unalloyed Gold Needle", Id = 8196 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Sewer-Gaol Key", Id = 8197 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Meeting Place Map", Id = 8198 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Discarded Palace Key", Id = 8199 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Iron Whetblade", Id = 8970 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Red-Hot Whetblade", Id = 8971 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Sanctified Whetblade", Id = 8972 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Glintstone Whetblade", Id = 8973 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Black Whetblade", Id = 8974 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Unalloyed Gold Needle", Id = 8975 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Unalloyed Gold Needle", Id = 8976 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Valkyrie's Prosthesis", Id = 8977 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Sellia's Secret", Id = 8978 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Beast Eye", Id = 8979 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Weathered Dagger", Id = 8980 }, + new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Great Rune of the Unborn", Id = 10080 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Homing Instinct Painting", Id = 8200 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Resurrection Painting", Id = 8201 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Champion's Song Painting", Id = 8202 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Sorcerer Painting", Id = 8203 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Prophecy Painting", Id = 8204 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Flightless Bird Painting", Id = 8205 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Redmane Painting", Id = 8206 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Zorayas's Letter", Id = 8221 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Rogier's Letter", Id = 8223 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: The Preceptor's Secret", Id = 8224 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Weathered Map", Id = 8225 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: The Preceptor's Secret", Id = 8226 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Weathered Map", Id = 8227 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Limgrave, West", Id = 8600 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Weeping Peninsula", Id = 8601 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Limgrave, East", Id = 8602 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Liurnia, East", Id = 8603 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Liurnia, North", Id = 8604 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Liurnia, West", Id = 8605 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Altus Plateau", Id = 8606 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Leyndell, Royal Capital", Id = 8607 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Mt. Gelmir", Id = 8608 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Caelid", Id = 8609 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Dragonbarrow", Id = 8610 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Mountaintops of the Giants, West", Id = 8611 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Mountaintops of the Giants, East", Id = 8612 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Ainsel River", Id = 8613 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Lake of Rot", Id = 8614 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Siofra River", Id = 8615 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Mohgwyn Palace", Id = 8616 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Deeproot Depths", Id = 8617 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Consecrated Snowfield", Id = 8618 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Mirage Riddle", Id = 8660 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Hidden Cave", Id = 8700 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Imp Shades", Id = 8701 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Flask of Wondrous Physick", Id = 8702 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Stonedigger Trolls", Id = 8703 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Walking Mausoleum", Id = 8704 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Unseen Assassins", Id = 8705 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Great Coffins", Id = 8706 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Flame Chariots", Id = 8707 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Demi-human Mobs", Id = 8708 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Land Squirts", Id = 8709 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Gravity's Advantage", Id = 8710 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Revenants", Id = 8711 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Waypoint Ruins", Id = 8712 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Gateway", Id = 8713 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Miquella's Needle", Id = 8714 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Frenzied Flame Village", Id = 8715 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: The Lord of Frenzied Flame", Id = 8716 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Below the Capital", Id = 8717 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Hidden Cave", Id = 8750 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Imp Shades", Id = 8751 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Flask of Wondrous Physick", Id = 8752 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Stonedigger Trolls", Id = 8753 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Walking Mausoleum", Id = 8754 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Unseen Assassins", Id = 8755 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Great Coffins", Id = 8756 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Flame Chariots", Id = 8757 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Demi-human Mobs", Id = 8758 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Land Squirts", Id = 8759 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Gravity's Advantage", Id = 8760 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Revenants", Id = 8761 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Waypoint Ruins", Id = 8762 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Gateway", Id = 8763 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Frenzied Flame Village", Id = 8765 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Below the Capital", Id = 8767 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Sites of Grace", Id = 9100 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Sorceries and Incantations", Id = 9101 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Bows", Id = 9102 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Crouching", Id = 9103 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Stance-Breaking", Id = 9104 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Stakes of Marika", Id = 9105 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Guard Counters", Id = 9106 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About the Map", Id = 9107 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Guidance of Grace", Id = 9108 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Horseback Riding", Id = 9109 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Death", Id = 9110 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Summoning Spirits", Id = 9111 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Guarding", Id = 9112 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Item Crafting", Id = 9113 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Flask of Wondrous Physick", Id = 9115 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Adding Skills", Id = 9116 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Birdseye Telescopes", Id = 9117 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Spiritspring Jumping", Id = 9118 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Vanquishing Enemy Groups", Id = 9119 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Teardrop Scarabs", Id = 9120 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Summoning Other Players", Id = 9121 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Cooperative Multiplayer", Id = 9122 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Competitive Multiplayer", Id = 9123 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Invasion Multiplayer", Id = 9124 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Hunter Multiplayer", Id = 9125 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Summoning Pools", Id = 9126 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Monument Icon", Id = 9127 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Requesting Help from Hunters", Id = 9128 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Skills", Id = 9129 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Fast Travel to Sites of Grace", Id = 9130 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Strengthening Armaments", Id = 9131 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Roundtable Hold", Id = 9132 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Materials", Id = 9134 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Containers", Id = 9135 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Adding Affinities", Id = 9136 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Pouches", Id = 9137 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Dodging", Id = 9138 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Wielding Armaments", Id = 9140 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Great Runes", Id = 9141 }, + new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Multiplayer", Id = 9195 }, + new Item() { Category = Category.Goods,GroupName = "Tools", Name = "Margit's Shackle", Id = 2140 }, + new Item() { Category = Category.Goods,GroupName = "Tools", Name = "Mohg's Shackle", Id = 2150 }, + new Item() { Category = Category.Goods,GroupName = "Tools", Name = "Pureblood Knight's Medal", Id = 2160 }, + new Item() { Category = Category.Goods,GroupName = "Tools", Name = "Prattling Pate Hello", Id = 2200 }, + new Item() { Category = Category.Goods,GroupName = "Tools", Name = "Prattling Pate Thank you", Id = 2201 }, + new Item() { Category = Category.Goods,GroupName = "Tools", Name = "Prattling Pate Apologies", Id = 2202 }, + new Item() { Category = Category.Goods,GroupName = "Tools", Name = "Prattling Pate Wonderful", Id = 2203 }, + new Item() { Category = Category.Goods,GroupName = "Tools", Name = "Prattling Pate Please help", Id = 2204 }, + new Item() { Category = Category.Goods,GroupName = "Tools", Name = "Prattling Pate My beloved", Id = 2205 }, + new Item() { Category = Category.Goods,GroupName = "Tools", Name = "Prattling Pate Let's get to it", Id = 2206 }, + new Item() { Category = Category.Goods,GroupName = "Tools", Name = "Prattling Pate You're beautiful", Id = 2207 }, + new Item() { Category = Category.Goods,GroupName = "Tools", Name = "Ancestral Infant's Head", Id = 3000 }, + new Item() { Category = Category.Goods,GroupName = "Tools", Name = "Omen Bairn", Id = 3010 }, + new Item() { Category = Category.Goods,GroupName = "Tools", Name = "Regal Omen Bairn", Id = 3011 }, + new Item() { Category = Category.Goods,GroupName = "Tools", Name = "Miranda's Prayer", Id = 3020 }, + new Item() { Category = Category.Goods,GroupName = "Tools", Name = "Mimic's Veil", Id = 3040 }, + new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Golden Seed", Id = 10010 }, + new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Sacred Tear", Id = 10020 }, + new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Memory Stone", Id = 10030 }, + new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Talisman Pouch", Id = 10040 }, + new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Dragon Heart", Id = 10060 }, + new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Lost Ashes of War", Id = 10070 }, + new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Smithing Stone [1]", Id = 10100 }, + new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Smithing Stone [2]", Id = 10101 }, + new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Smithing Stone [3]", Id = 10102 }, + new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Smithing Stone [4]", Id = 10103 }, + new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Smithing Stone [5]", Id = 10104 }, + new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Smithing Stone [6]", Id = 10105 }, + new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Smithing Stone [7]", Id = 10106 }, + new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Smithing Stone [8]", Id = 10107 }, + new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Ancient Dragon Smithing Stone", Id = 10140 }, + new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Somber Smithing Stone [1]", Id = 10160 }, + new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Somber Smithing Stone [2]", Id = 10161 }, + new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Somber Smithing Stone [3]", Id = 10162 }, + new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Somber Smithing Stone [4]", Id = 10163 }, + new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Somber Smithing Stone [5]", Id = 10164 }, + new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Somber Smithing Stone [6]", Id = 10165 }, + new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Somber Smithing Stone [7]", Id = 10166 }, + new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Somber Smithing Stone [8]", Id = 10167 }, + new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Somber Ancient Dragon Smithing Stone", Id = 10168 }, + new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Somber Smithing Stone [9]", Id = 10200 }, + new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Grave Glovewort [1]", Id = 10900 }, + new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Grave Glovewort [2]", Id = 10901 }, + new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Grave Glovewort [3]", Id = 10902 }, + new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Grave Glovewort [4]", Id = 10903 }, + new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Grave Glovewort [5]", Id = 10904 }, + new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Grave Glovewort [6]", Id = 10905 }, + new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Grave Glovewort [7]", Id = 10906 }, + new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Grave Glovewort [8]", Id = 10907 }, + new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Grave Glovewort [9]", Id = 10908 }, + new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Great Grave Glovewort", Id = 10909 }, + new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Ghost Glovewort [1]", Id = 10910 }, + new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Ghost Glovewort [2]", Id = 10911 }, + new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Ghost Glovewort [3]", Id = 10912 }, + new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Ghost Glovewort [4]", Id = 10913 }, + new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Ghost Glovewort [5]", Id = 10914 }, + new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Ghost Glovewort [6]", Id = 10915 }, + new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Ghost Glovewort [7]", Id = 10916 }, + new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Ghost Glovewort [8]", Id = 10917 }, + new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Ghost Glovewort [9]", Id = 10918 }, + new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Great Ghost Glovewort", Id = 10919 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Arrow", Id = 50000000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Fire", Id = 50010000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Serpent", Id = 50020000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Bone (Fletched)", Id = 50030000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - St. Trina's", Id = 50040000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Shattershard (Fletched)", Id = 50060000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Rainbow Stone (Fletched)", Id = 50080000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Golden", Id = 50090000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Dwelling", Id = 50100000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Bone", Id = 50110000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Firebone (Fletched)", Id = 50130000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Firebone", Id = 50140000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Poisonbone (Fletched)", Id = 50150000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Poisonbone", Id = 50160000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Sleepbone (Fletched)", Id = 50170000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Sleepbone", Id = 50180000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Stormwing Bone", Id = 50190000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Lightningbone (Fletched)", Id = 50200000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Lightningbone", Id = 50210000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Rainbow Stone", Id = 50220000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Shattershard", Id = 50230000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Spiritflame", Id = 50240000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Magicbone (Fletched)", Id = 50260000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Magicbone", Id = 50270000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Haligbone (Fletched)", Id = 50280000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Haligbone", Id = 50290000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Bloodbone (Fletched)", Id = 50300000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Bloodbone", Id = 50310000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Coldbone (Fletched)", Id = 50320000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Coldbone", Id = 50330000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Rotbone (Fletched)", Id = 50340000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Rotbone", Id = 50350000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Golem's Magic", Id = 51030000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Bone (Fletched)", Id = 51050000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Bone", Id = 51060000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Bolt", Id = 52000000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Lightning ", Id = 52010000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Perfumer's ", Id = 52020000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Black-Key ", Id = 52030000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Burred ", Id = 52040000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Meteor ", Id = 52050000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Explosive ", Id = 52060000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Golden ", Id = 52070000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Lordsworn's ", Id = 52080000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Bone ", Id = 52090000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Firebone ", Id = 52100000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Lightningbone ", Id = 52110000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Magicbone ", Id = 52120000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Haligbone ", Id = 52130000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Poisonbone ", Id = 52140000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Bloodbone ", Id = 52150000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Coldbone ", Id = 52160000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Rotbone ", Id = 52170000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Sleepbone ", Id = 52180000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Flaming ", Id = 52190000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Great Arrow - Great Arrow", Id = 51000000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Great Arrow - Golem's", Id = 51010000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Great Arrow - Golden", Id = 51020000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Great Arrow - Radahn's Spear", Id = 51040000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Greatbolt - Ballista Bolt", Id = 53000000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Greatbolt - Lightning", Id = 53010000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Greatbolt - Explosive", Id = 53020000 }, + new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Greatbolt - Bone Ballista Bolt", Id = 53030000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Dagger", Id = 1000000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Black Knife", Id = 1010000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Parrying Dagger", Id = 1020000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Miséricorde", Id = 1030000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Reduvia", Id = 1040000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Crystal Knife", Id = 1050000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Celebrant's Sickle", Id = 1060000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Glintstone Kris", Id = 1070000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Scorpion's Stinger", Id = 1080000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Great Knife", Id = 1090000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Wakizashi", Id = 1100000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Cinquedea", Id = 1110000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Ivory Sickle", Id = 1130000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Bloodstained Dagger", Id = 1140000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Erdsteel Dagger", Id = 1150000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Blade of Calling", Id = 1160000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Longsword", Id = 2000000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Short Sword", Id = 2010000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Broadsword", Id = 2020000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Lordsworn's Straight Sword", Id = 2040000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Weathered Straight Sword", Id = 2050000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Ornamental Straight Sword", Id = 2060000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Golden Epitaph", Id = 2070000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Nox Flowing Sword", Id = 2080000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Inseparable Sword", Id = 2090000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Coded Sword", Id = 2110000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Sword of Night and Flame", Id = 2140000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Crystal Sword", Id = 2150000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Carian Knight's Sword", Id = 2180000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Sword of St. Trina", Id = 2190000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Miquellan Knight's Sword", Id = 2200000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Cane Sword", Id = 2210000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Regalia of Eochaid", Id = 2220000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Noble's Slender Sword", Id = 2230000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Warhawk's Talon", Id = 2240000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Lazuli Glintstone Sword", Id = 2250000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Rotten Crystal Sword", Id = 2260000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Bastard Sword", Id = 3000000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Forked Greatsword", Id = 3010000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Iron Greatsword", Id = 3020000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Lordsworn's Greatsword", Id = 3030000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Knight's Greatsword", Id = 3040000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Flamberge", Id = 3050000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Ordovis's Greatsword", Id = 3060000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Alabaster Lord's Sword", Id = 3070000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Banished Knight's Greatsword", Id = 3080000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Dark Moon Greatsword", Id = 3090000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Sacred Relic Sword", Id = 3100000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Helphen's Steeple", Id = 3130000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Blasphemous Blade", Id = 3140000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Marais Executioner's Sword", Id = 3150000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Sword of Milos", Id = 3160000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Golden Order Greatsword", Id = 3170000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Claymore", Id = 3180000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Gargoyle's Greatsword", Id = 3190000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Death's Poker", Id = 3200000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Gargoyle's Blackblade", Id = 3210000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Greatsword", Id = 4000000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Watchdog's Greatsword", Id = 4010000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Maliketh's Black Blade", Id = 4020000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Troll's Golden Sword", Id = 4030000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Zweihander", Id = 4040000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Starscourge Greatsword", Id = 4050000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Royal Greatsword", Id = 4060000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Godslayer's Greatsword", Id = 4070000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Ruins Greatsword", Id = 4080000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Grafted Blade Greatsword", Id = 4100000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Troll Knight's Sword", Id = 4110000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Estoc", Id = 5000000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Cleanrot Knight's Sword", Id = 5010000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Rapier", Id = 5020000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Rogier's Rapier", Id = 5030000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Antspur Rapier", Id = 5040000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Frozen Needle", Id = 5050000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Noble's Estoc", Id = 5060000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Bloody Helice", Id = 6000000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Godskin Stitcher", Id = 6010000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Great Épée", Id = 6020000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Dragon King's Cragblade", Id = 6040000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Falchion", Id = 7000000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Beastman's Curved Sword", Id = 7010000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Shotel", Id = 7020000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Shamshir", Id = 7030000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Bandit's Curved Sword", Id = 7040000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Magma Blade", Id = 7050000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Flowing Curved Sword", Id = 7060000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Wing of Astel", Id = 7070000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Scavenger's Curved Sword", Id = 7080000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Eclipse Shotel", Id = 7100000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Serpent-God's Curved Sword", Id = 7110000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Mantis Blade", Id = 7120000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Scimitar", Id = 7140000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Grossmesser", Id = 7150000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Onyx Lord's Greatsword", Id = 8010000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Dismounter", Id = 8020000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Bloodhound's Fang", Id = 8030000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Magma Wyrm's Scalesword", Id = 8040000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Zamor Curved Sword", Id = 8050000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Omen Cleaver", Id = 8060000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Monk's Flameblade", Id = 8070000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Beastman's Cleaver", Id = 8080000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Morgott's Cursed Sword", Id = 8100000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Uchigatana", Id = 9000000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Nagakiba", Id = 9010000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Hand of Malenia", Id = 9020000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Meteoric Ore Blade", Id = 9030000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Rivers of Blood", Id = 9040000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Moonveil", Id = 9060000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Dragonscale Blade", Id = 9070000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Serpentbone Blade", Id = 9080000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Twinblade", Id = 10000000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Godskin Peeler", Id = 10010000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Twinned Knight Swords", Id = 10030000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Eleonora's Poleblade", Id = 10050000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Gargoyle's Twinblade", Id = 10080000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Gargoyle's Black Blades", Id = 10090000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Mace", Id = 11000000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Club", Id = 11010000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Curved Club", Id = 11030000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Warpick", Id = 11040000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Morning Star", Id = 11050000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Varré's Bouquet", Id = 11060000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Spiked Club", Id = 11070000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Hammer", Id = 11080000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Monk's Flamemace", Id = 11090000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Envoy's Horn", Id = 11100000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Scepter of the All-Knowing", Id = 11110000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Nox Flowing Hammer", Id = 11120000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Ringed Finger", Id = 11130000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Stone Club", Id = 11140000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Marika's Hammer", Id = 11150000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Large Club", Id = 12000000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Greathorn Hammer", Id = 12010000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Battle Hammer", Id = 12020000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Great Mace", Id = 12060000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Curved Great Club", Id = 12080000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Celebrant's Skull", Id = 12130000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Pickaxe", Id = 12140000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Beastclaw Greathammer", Id = 12150000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Envoy's Long Horn", Id = 12160000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Cranial Vessel Candlestand", Id = 12170000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Great Stars", Id = 12180000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Brick Hammer", Id = 12190000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Devourer's Scepter", Id = 12200000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Rotten Battle Hammer", Id = 12210000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Nightrider Flail", Id = 13000000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Flail", Id = 13010000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Family Heads", Id = 13020000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Bastard's Stars", Id = 13030000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Chainlink Flail", Id = 13040000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Battle Axe", Id = 14000000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Forked Hatchet", Id = 14010000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Hand Axe", Id = 14020000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Jawbone Axe", Id = 14030000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Iron Cleaver", Id = 14040000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Ripple Blade", Id = 14050000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Celebrant's Cleaver", Id = 14060000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Icerind Hatchet", Id = 14080000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Highland Axe", Id = 14100000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Sacrificial Axe", Id = 14110000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Rosus' Axe", Id = 14120000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Stormhawk Axe", Id = 14140000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Greataxe", Id = 15000000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Warped Axe", Id = 15010000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Great Omenkiller Cleaver", Id = 15020000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Crescent Moon Axe", Id = 15030000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Axe of Godrick", Id = 15040000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Longhaft Axe", Id = 15050000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Rusted Anchor", Id = 15060000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Executioner's Greataxe", Id = 15080000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Winged Greathorn", Id = 15110000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Butchering Knife", Id = 15120000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Gargoyle's Great Axe", Id = 15130000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Gargoyle's Black Axe", Id = 15140000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Short Spear", Id = 16000000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Spear", Id = 16010000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Crystal Spear", Id = 16020000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Clayman's Harpoon", Id = 16030000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Cleanrot Spear", Id = 16040000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Partisan", Id = 16050000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Celebrant's Rib-Rake", Id = 16060000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Pike", Id = 16070000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Torchpole", Id = 16080000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Bolt of Gransax", Id = 16090000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Cross-Naginata", Id = 16110000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Death Ritual Spear", Id = 16120000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Inquisitor's Girandole", Id = 16130000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Spiked Spear", Id = 16140000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Iron Spear", Id = 16150000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Rotten Crystal Spear", Id = 16160000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Mohgwyn's Sacred Spear", Id = 17010000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Siluria's Tree", Id = 17020000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Serpent-Hunter", Id = 17030000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Vyke's War Spear", Id = 17050000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Lance", Id = 17060000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Treespear", Id = 17070000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Halberd", Id = 18000000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Pest's Glaive", Id = 18010000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Lucerne", Id = 18020000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Banished Knight's Halberd", Id = 18030000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Commander's Standard", Id = 18040000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Nightrider Glaive", Id = 18050000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Ripple Crescent Halberd", Id = 18060000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Vulgar Militia Saw", Id = 18070000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Golden Halberd", Id = 18080000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Glaive", Id = 18090000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Loretta's War Sickle", Id = 18100000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Guardian's Swordspear", Id = 18110000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Vulgar Militia Shotel", Id = 18130000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Dragon Halberd", Id = 18140000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Gargoyle's Halberd", Id = 18150000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Gargoyle's Black Halberd", Id = 18160000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Scythe", Id = 19000000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Grave Scythe", Id = 19010000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Halo Scythe", Id = 19020000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Winged Scythe", Id = 19060000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Whip", Id = 20000000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Thorned Whip", Id = 20020000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Magma Whip Candlestick", Id = 20030000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Hoslow's Petal Whip", Id = 20050000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Giant's Red Braid", Id = 20060000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Urumi", Id = 20070000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Caestus", Id = 21000000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Spiked Caestus", Id = 21010000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Grafted Dragon", Id = 21060000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Iron Ball", Id = 21070000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Star Fist", Id = 21080000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Katar", Id = 21100000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Clinging Bone", Id = 21110000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Veteran's Prosthesis", Id = 21120000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Cipher Pata", Id = 21130000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Hookclaws", Id = 22000000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Venomous Fang", Id = 22010000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Bloodhound Claws", Id = 22020000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Raptor Talons", Id = 22030000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Prelate's Inferno Crozier", Id = 23000000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Watchdog's Staff", Id = 23010000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Great Club", Id = 23020000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Envoy's Greathorn", Id = 23030000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Duelist Greataxe", Id = 23040000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Axe of Godfrey", Id = 23050000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Dragon Greatclaw", Id = 23060000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Staff of the Avatar", Id = 23070000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Fallingstar Beast Jaw", Id = 23080000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Ghiza's Wheel", Id = 23100000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Giant-Crusher", Id = 23110000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Golem's Halberd", Id = 23120000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Troll's Hammer", Id = 23130000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Rotten Staff", Id = 23140000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Rotten Greataxe", Id = 23150000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Torch", Id = 24000000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Steel-Wire Torch", Id = 24020000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "St. Trina's Torch", Id = 24040000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Ghostflame Torch", Id = 24050000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Beast-Repellent Torch", Id = 24060000 }, + new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Sentry's Torch", Id = 24070000 }, + new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Shortbow", Id = 40000000 }, + new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Misbegotten Shortbow", Id = 40010000 }, + new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Red Branch Shortbow", Id = 40020000 }, + new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Harp Bow", Id = 40030000 }, + new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Composite Bow", Id = 40050000 }, + new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Longbow", Id = 41000000 }, + new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Albinauric Bow", Id = 41010000 }, + new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Horn Bow", Id = 41020000 }, + new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Erdtree Bow", Id = 41030000 }, + new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Serpent Bow", Id = 41040000 }, + new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Pulley Bow", Id = 41060000 }, + new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Black Bow", Id = 41070000 }, + new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Lion Greatbow", Id = 42000000 }, + new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Golem Greatbow", Id = 42010000 }, + new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Erdtree Greatbow", Id = 42030000 }, + new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Greatbow", Id = 42040000 }, + new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Soldier's Crossbow", Id = 43000000 }, + new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Light Crossbow", Id = 43020000 }, + new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Heavy Crossbow", Id = 43030000 }, + new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Pulley Crossbow", Id = 43050000 }, + new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Full Moon Crossbow", Id = 43060000 }, + new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Arbalest", Id = 43080000 }, + new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Crepus's Black-Key Crossbow", Id = 43110000 }, + new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Hand Ballista", Id = 44000000 }, + new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Jar Cannon", Id = 44010000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Buckler", Id = 30000000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Perfumer's Shield", Id = 30010000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Man-Serpent's Shield", Id = 30020000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Rickety Shield", Id = 30030000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Pillory Shield", Id = 30040000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Beastman's Jar-Shield", Id = 30060000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Red Thorn Roundshield", Id = 30070000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Scripture Wooden Shield", Id = 30080000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Riveted Wooden Shield", Id = 30090000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Blue-White Wooden Shield", Id = 30100000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Rift Shield", Id = 30110000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Iron Roundshield", Id = 30120000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Gilded Iron Shield", Id = 30130000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Ice Crest Shield", Id = 30140000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Smoldering Shield", Id = 30150000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Spiralhorn Shield", Id = 30190000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Coil Shield", Id = 30200000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Kite Shield", Id = 31000000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Marred Leather Shield", Id = 31010000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Marred Wooden Shield", Id = 31020000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Banished Knight's Shield", Id = 31030000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Albinauric Shield", Id = 31040000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Sun Realm Shield", Id = 31050000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Silver Mirrorshield", Id = 31060000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Round Shield", Id = 31070000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Scorpion Kite Shield", Id = 31080000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Twinbird Kite Shield", Id = 31090000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Blue-Gold Kite Shield", Id = 31100000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Brass Shield", Id = 31130000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Great Turtle Shell", Id = 31140000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Shield of the Guilty", Id = 31170000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Carian Knight's Shield", Id = 31190000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Large Leather Shield", Id = 31230000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Horse Crest Wooden Shield", Id = 31240000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Candletree Wooden Shield", Id = 31250000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Flame Crest Wooden Shield", Id = 31260000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Hawk Crest Wooden Shield", Id = 31270000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Beast Crest Heater Shield", Id = 31280000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Red Crest Heater Shield", Id = 31290000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Blue Crest Heater Shield", Id = 31300000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Eclipse Crest Heater Shield", Id = 31310000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Inverted Hawk Heater Shield", Id = 31320000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Heater Shield", Id = 31330000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Black Leather Shield", Id = 31340000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Dragon Towershield", Id = 32000000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Distinguished Greatshield", Id = 32020000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Crucible Hornshield", Id = 32030000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Dragonclaw Shield", Id = 32040000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Briar Greatshield", Id = 32050000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Erdtree Greatshield", Id = 32080000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Golden Beast Crest Shield", Id = 32090000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Jellyfish Shield", Id = 32120000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Fingerprint Stone Shield", Id = 32130000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Icon Shield", Id = 32140000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "One-Eyed Shield", Id = 32150000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Visage Shield", Id = 32160000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Spiked Palisade Shield", Id = 32170000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Manor Towershield", Id = 32190000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Crossed-Tree Towershield", Id = 32200000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Inverted Hawk Towershield", Id = 32210000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Ant's Skull Plate", Id = 32220000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Redmane Greatshield", Id = 32230000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Eclipse Crest Greatshield", Id = 32240000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Cuckoo Greatshield", Id = 32250000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Golden Greatshield", Id = 32260000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Gilded Greatshield", Id = 32270000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Haligtree Crest Greatshield", Id = 32280000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Wooden Greatshield", Id = 32290000 }, + new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Lordsworn's Shield", Id = 32300000 }, + new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Glintstone Staff", Id = 33000000 }, + new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Crystal Staff", Id = 33040000 }, + new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Gelmir Glintstone Staff", Id = 33050000 }, + new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Demi-Human Queen's Staff", Id = 33060000 }, + new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Carian Regal Scepter", Id = 33090000 }, + new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Digger's Staff", Id = 33120000 }, + new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Astrologer's Staff", Id = 33130000 }, + new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Carian Glintblade Staff", Id = 33170000 }, + new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Prince of Death's Staff", Id = 33180000 }, + new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Albinauric Staff", Id = 33190000 }, + new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Academy Glintstone Staff", Id = 33200000 }, + new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Carian Glintstone Staff", Id = 33210000 }, + new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Azur's Glintstone Staff", Id = 33230000 }, + new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Lusat's Glintstone Staff", Id = 33240000 }, + new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Meteorite Staff", Id = 33250000 }, + new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Staff of the Guilty", Id = 33260000 }, + new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Rotten Crystal Staff", Id = 33270000 }, + new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Staff of Loss", Id = 33280000 }, + new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Finger Seal", Id = 34000000 }, + new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Godslayer's Seal", Id = 34010000 }, + new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Giant's Seal", Id = 34020000 }, + new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Gravel Stone Seal", Id = 34030000 }, + new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Clawmark Seal", Id = 34040000 }, + new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Golden Order Seal", Id = 34060000 }, + new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Erdtree Seal", Id = 34070000 }, + new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Dragon Communion Seal", Id = 34080000 }, + new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Frenzied Flame Seal", Id = 34090000 }, + }); } diff --git a/src/SoulMemory/EldenRing/ItemPickup.cs b/src/SoulMemory/EldenRing/ItemPickup.cs index 143d349..a2bee64 100644 --- a/src/SoulMemory/EldenRing/ItemPickup.cs +++ b/src/SoulMemory/EldenRing/ItemPickup.cs @@ -14,10919 +14,10918 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -namespace SoulMemory.EldenRing +namespace SoulMemory.EldenRing; + +public enum ItemPickup : uint { - public enum ItemPickup : uint - { - [Annotation(Name = "Flask of Crimson Tears 60000")] - FlaskOfCrimsonTears = 60000, + [Annotation(Name = "Flask of Crimson Tears 60000")] + FlaskOfCrimsonTears = 60000, - [Annotation(Name = "Roped Fire Pot 500010")] - RopedFirePot = 500010, + [Annotation(Name = "Roped Fire Pot 500010")] + RopedFirePot = 500010, - [Annotation(Name = "Small Golden Effigy 60230")] - SmallGoldenEffigy = 60230, + [Annotation(Name = "Small Golden Effigy 60230")] + SmallGoldenEffigy = 60230, - [Annotation(Name = "Flask of Wondrous Physick 6700")] - FlaskOfWondrousPhysick = 6700, + [Annotation(Name = "Flask of Wondrous Physick 6700")] + FlaskOfWondrousPhysick = 6700, - [Annotation(Name = "Baldachin's Blessing 0")] - BaldachinsBlessing = 0, + [Annotation(Name = "Baldachin's Blessing 0")] + BaldachinsBlessing = 0, - [Annotation(Name = "Mending Rune of Perfect Order 9500")] - MendingRuneOfPerfectOrder = 9500, + [Annotation(Name = "Mending Rune of Perfect Order 9500")] + MendingRuneOfPerfectOrder = 9500, - [Annotation(Name = "Mending Rune of the Death-Prince 9502")] - MendingRuneOfTheDeathPrince = 9502, + [Annotation(Name = "Mending Rune of the Death-Prince 9502")] + MendingRuneOfTheDeathPrince = 9502, - [Annotation(Name = "Mending Rune of the Fell Curse 9504")] - MendingRuneOfTheFellCurse = 9504, + [Annotation(Name = "Mending Rune of the Fell Curse 9504")] + MendingRuneOfTheFellCurse = 9504, - [Annotation(Name = "[Stormveil - Margit] Talisman Pouch 60510")] - StormveilMargitTalismanPouch = 60510, + [Annotation(Name = "[Stormveil - Margit] Talisman Pouch 60510")] + StormveilMargitTalismanPouch = 60510, - [Annotation(Name = "[Stormveil - Godrick] Godrick's Great Rune 171")] - StormveilGodrickGodricksGreatRune = 171, + [Annotation(Name = "[Stormveil - Godrick] Godrick's Great Rune 171")] + StormveilGodrickGodricksGreatRune = 171, - [Annotation(Name = "[Stormveil - Godrick] Remembrance of the Grafted 510010")] - StormveilGodrickRemembranceOfTheGrafted = 510010, + [Annotation(Name = "[Stormveil - Godrick] Remembrance of the Grafted 510010")] + StormveilGodrickRemembranceOfTheGrafted = 510010, - [Annotation(Name = "[Chapel of Anticipation - Grafed Scion] Ornamental Straight Sword 510030")] - ChapelOfAnticipationGrafedScionOrnamentalStraightSword = 510030, + [Annotation(Name = "[Chapel of Anticipation - Grafed Scion] Ornamental Straight Sword 510030")] + ChapelOfAnticipationGrafedScionOrnamentalStraightSword = 510030, - [Annotation(Name = "[Leyndell - Morgott] Remembrance of the Omen King 510040")] - LeyndellMorgottRemembranceOfTheOmenKing = 510040, + [Annotation(Name = "[Leyndell - Morgott] Remembrance of the Omen King 510040")] + LeyndellMorgottRemembranceOfTheOmenKing = 510040, - [Annotation(Name = "[Leyndell - Morgott] Morgott's Great Rune 173")] - LeyndellMorgottMorgottsGreatRune = 173, + [Annotation(Name = "[Leyndell - Morgott] Morgott's Great Rune 173")] + LeyndellMorgottMorgottsGreatRune = 173, - [Annotation(Name = "[Enia - 2 Great Runes] Talisman Pouch 60520")] - Enia2GreatRunesTalismanPouch = 60520, + [Annotation(Name = "[Enia - 2 Great Runes] Talisman Pouch 60520")] + Enia2GreatRunesTalismanPouch = 60520, - [Annotation(Name = "[Ashen Leyndell - Gideon] Scepter of the All-Knowing 510060")] - AshenLeyndellGideonScepterOfTheAllKnowing = 510060, + [Annotation(Name = "[Ashen Leyndell - Gideon] Scepter of the All-Knowing 510060")] + AshenLeyndellGideonScepterOfTheAllKnowing = 510060, - [Annotation(Name = "[Ashen Leyndell - Hoarah Loux] Remembrance of Hoarah Loux 510070")] - AshenLeyndellHoarahLouxRemembranceOfHoarahLoux = 510070, + [Annotation(Name = "[Ashen Leyndell - Hoarah Loux] Remembrance of Hoarah Loux 510070")] + AshenLeyndellHoarahLouxRemembranceOfHoarahLoux = 510070, - [Annotation(Name = "[Lake or Rot - Astel] Remembrance of the Naturalborn 510080")] - LakeorRotAstelRemembranceOfTheNaturalborn = 510080, + [Annotation(Name = "[Lake or Rot - Astel] Remembrance of the Naturalborn 510080")] + LakeorRotAstelRemembranceOfTheNaturalborn = 510080, - [Annotation(Name = "[Ainsel - Dragonkin Soldier] Frozen Lightning Spear 510090")] - AinselDragonkinSoldierFrozenLightningSpear = 510090, + [Annotation(Name = "[Ainsel - Dragonkin Soldier] Frozen Lightning Spear 510090")] + AinselDragonkinSoldierFrozenLightningSpear = 510090, - [Annotation(Name = "[Siofra - Valiant Gargoyle] Gargoyle's Greatsword 510100")] - SiofraValiantGargoyleGargoylesGreatsword = 510100, + [Annotation(Name = "[Siofra - Valiant Gargoyle] Gargoyle's Greatsword 510100")] + SiofraValiantGargoyleGargoylesGreatsword = 510100, - [Annotation(Name = "[Deeproot Depths - Fortissax] Remembrance of the Lichdragon 510110")] - DeeprootDepthsFortissaxRemembranceOfTheLichdragon = 510110, + [Annotation(Name = "[Deeproot Depths - Fortissax] Remembrance of the Lichdragon 510110")] + DeeprootDepthsFortissaxRemembranceOfTheLichdragon = 510110, - [Annotation(Name = "[Mohgwyn Palace - Mohg] Remembrance of the Blood Lord 510120")] - MohgwynPalaceMohgRemembranceOfTheBloodLord = 510120, + [Annotation(Name = "[Mohgwyn Palace - Mohg] Remembrance of the Blood Lord 510120")] + MohgwynPalaceMohgRemembranceOfTheBloodLord = 510120, - [Annotation(Name = "[Mohgwyn Palace - Mohg] Mohg's Great Rune 175")] - MohgwynPalaceMohgMohgsGreatRune = 175, + [Annotation(Name = "[Mohgwyn Palace - Mohg] Mohg's Great Rune 175")] + MohgwynPalaceMohgMohgsGreatRune = 175, - [Annotation(Name = "[Farum Azula - Godskin Duo] Smithing-Stone Miner's Bell Bearing [4] 510140")] - FarumAzulaGodskinDuoSmithingStoneMinersBellBearing4 = 510140, + [Annotation(Name = "[Farum Azula - Godskin Duo] Smithing-Stone Miner's Bell Bearing [4] 510140")] + FarumAzulaGodskinDuoSmithingStoneMinersBellBearing4 = 510140, - [Annotation(Name = "[Farum Azula - Dragonlord Placidusax] Remembrance of the Dragonlord 510150")] - FarumAzulaDragonlordPlacidusaxRemembranceOfTheDragonlord = 510150, + [Annotation(Name = "[Farum Azula - Dragonlord Placidusax] Remembrance of the Dragonlord 510150")] + FarumAzulaDragonlordPlacidusaxRemembranceOfTheDragonlord = 510150, - [Annotation(Name = "[Farum Azula - Maliketh] Remembrance of the Black Blade 510160")] - FarumAzulaMalikethRemembranceOfTheBlackBlade = 510160, + [Annotation(Name = "[Farum Azula - Maliketh] Remembrance of the Black Blade 510160")] + FarumAzulaMalikethRemembranceOfTheBlackBlade = 510160, - [Annotation(Name = "[Raya Lucaria - Red Wolf of Radagon] Memory Stone 60440")] - RayaLucariaRedWolfOfRadagonMemoryStone = 60440, + [Annotation(Name = "[Raya Lucaria - Red Wolf of Radagon] Memory Stone 60440")] + RayaLucariaRedWolfOfRadagonMemoryStone = 60440, - [Annotation(Name = "[Raya Lucaria - Rennala] Remembrance of the Full Moon Queen 197")] - RayaLucariaRennalaRemembranceOfTheFullMoonQueen = 197, + [Annotation(Name = "[Raya Lucaria - Rennala] Remembrance of the Full Moon Queen 197")] + RayaLucariaRennalaRemembranceOfTheFullMoonQueen = 197, - [Annotation(Name = "[Raya Lucaria - Rennala] None 177")] - RayaLucariaRennalaNone = 177, + [Annotation(Name = "[Raya Lucaria - Rennala] None 177")] + RayaLucariaRennalaNone = 177, - [Annotation(Name = "[Haligtree - Loretta] Loretta's Mastery 510190")] - HaligtreeLorettaLorettasMastery = 510190, + [Annotation(Name = "[Haligtree - Loretta] Loretta's Mastery 510190")] + HaligtreeLorettaLorettasMastery = 510190, - [Annotation(Name = "[Haligtree - Malenia] Remembrance of the Rot Goddess 510200")] - HaligtreeMaleniaRemembranceOfTheRotGoddess = 510200, + [Annotation(Name = "[Haligtree - Malenia] Remembrance of the Rot Goddess 510200")] + HaligtreeMaleniaRemembranceOfTheRotGoddess = 510200, - [Annotation(Name = "[Haligtree - Malenia] Malenia's Great Rune 176")] - HaligtreeMaleniaMaleniasGreatRune = 176, + [Annotation(Name = "[Haligtree - Malenia] Malenia's Great Rune 176")] + HaligtreeMaleniaMaleniasGreatRune = 176, - [Annotation(Name = "[Volcano Manor - Godskin Noble] Godskin Stitcher 510210")] - VolcanoManorGodskinNobleGodskinStitcher = 510210, + [Annotation(Name = "[Volcano Manor - Godskin Noble] Godskin Stitcher 510210")] + VolcanoManorGodskinNobleGodskinStitcher = 510210, - [Annotation(Name = "[Mt. Gelmir - Rykard] Remembrance of the Blasphemous 510220")] - MtGelmirRykardRemembranceOfTheBlasphemous = 510220, + [Annotation(Name = "[Mt. Gelmir - Rykard] Remembrance of the Blasphemous 510220")] + MtGelmirRykardRemembranceOfTheBlasphemous = 510220, - [Annotation(Name = "[Mt. Gelmir - Rykard] Rykard's Great Rune 174")] - MtGelmirRykardRykardsGreatRune = 174, + [Annotation(Name = "[Mt. Gelmir - Rykard] Rykard's Great Rune 174")] + MtGelmirRykardRykardsGreatRune = 174, - [Annotation(Name = "[Erdtree - Elden Beast] Elden Remembrance 510230")] - ErdtreeEldenBeastEldenRemembrance = 510230, + [Annotation(Name = "[Erdtree - Elden Beast] Elden Remembrance 510230")] + ErdtreeEldenBeastEldenRemembrance = 510230, - [Annotation(Name = "[Mohgwyn Palace - Mohg] Bloodflame Talons 510250")] - MohgwynPalaceMohgBloodflameTalons = 510250, + [Annotation(Name = "[Mohgwyn Palace - Mohg] Bloodflame Talons 510250")] + MohgwynPalaceMohgBloodflameTalons = 510250, - [Annotation(Name = "[Ruin-Strewn Precipice - Magma Wyrm Makar] Magma Wyrm's Scalesword 510260")] - RuinStrewnPrecipiceMagmaWyrmMakarMagmaWyrmsScalesword = 510260, + [Annotation(Name = "[Ruin-Strewn Precipice - Magma Wyrm Makar] Magma Wyrm's Scalesword 510260")] + RuinStrewnPrecipiceMagmaWyrmMakarMagmaWyrmsScalesword = 510260, - [Annotation(Name = "[Fringefolk Hero's Grave - Ulcerated Tree Spirit] Golden Seed 510280")] - FringefolkHerosGraveUlceratedTreeSpiritGoldenSeed = 510280, + [Annotation(Name = "[Fringefolk Hero's Grave - Ulcerated Tree Spirit] Golden Seed 510280")] + FringefolkHerosGraveUlceratedTreeSpiritGoldenSeed = 510280, - [Annotation(Name = "[Volcano Manor - Abducator Virgins] Inquisitor's Girandole 510290")] - VolcanoManorAbducatorVirginsInquisitorsGirandole = 510290, + [Annotation(Name = "[Volcano Manor - Abducator Virgins] Inquisitor's Girandole 510290")] + VolcanoManorAbducatorVirginsInquisitorsGirandole = 510290, - [Annotation(Name = "[Caelid - Radahn] Remembrance of the Starscourge 510300")] - CaelidRadahnRemembranceOfTheStarscourge = 510300, + [Annotation(Name = "[Caelid - Radahn] Remembrance of the Starscourge 510300")] + CaelidRadahnRemembranceOfTheStarscourge = 510300, - [Annotation(Name = "[Caelid - Radahn] Radahn's Great Rune 172")] - CaelidRadahnRadahnsGreatRune = 172, + [Annotation(Name = "[Caelid - Radahn] Radahn's Great Rune 172")] + CaelidRadahnRadahnsGreatRune = 172, - [Annotation(Name = "[Mountaintops - Fire Giant] Remembrance of the Fire Giant 510310")] - MountaintopsFireGiantRemembranceOfTheFireGiant = 510310, + [Annotation(Name = "[Mountaintops - Fire Giant] Remembrance of the Fire Giant 510310")] + MountaintopsFireGiantRemembranceOfTheFireGiant = 510310, - [Annotation(Name = "[Siofra - Ancestor Spirit] Ancestral Follower Ashes 510320")] - SiofraAncestorSpiritAncestralFollowerAshes = 510320, + [Annotation(Name = "[Siofra - Ancestor Spirit] Ancestral Follower Ashes 510320")] + SiofraAncestorSpiritAncestralFollowerAshes = 510320, - [Annotation(Name = "[Nokron - Regal Ancestor Spirit] Remembrance of the Regal Ancestor 510330")] - NokronRegalAncestorSpiritRemembranceOfTheRegalAncestor = 510330, + [Annotation(Name = "[Nokron - Regal Ancestor Spirit] Remembrance of the Regal Ancestor 510330")] + NokronRegalAncestorSpiritRemembranceOfTheRegalAncestor = 510330, - [Annotation(Name = "[Nokron - Mimic Tear] Larval Tear 510340")] - NokronMimicTearLarvalTear = 510340, + [Annotation(Name = "[Nokron - Mimic Tear] Larval Tear 510340")] + NokronMimicTearLarvalTear = 510340, - [Annotation(Name = "[Deeproot Depths - Fia's Champions] Fia's Mist 510350")] - DeeprootDepthsFiasChampionsFiasMist = 510350, + [Annotation(Name = "[Deeproot Depths - Fia's Champions] Fia's Mist 510350")] + DeeprootDepthsFiasChampionsFiasMist = 510350, - [Annotation(Name = "[Mountaintops - Sanguine Noble] Sanguine Noble Hood 510730")] - MountaintopsSanguineNobleSanguineNobleHood = 510730, + [Annotation(Name = "[Mountaintops - Sanguine Noble] Sanguine Noble Hood 510730")] + MountaintopsSanguineNobleSanguineNobleHood = 510730, - [Annotation(Name = "[Capital Outskirts - Fell Twins] Omenkiller Rollo 510740")] - CapitalOutskirtsFellTwinsOmenkillerRollo = 510740, + [Annotation(Name = "[Capital Outskirts - Fell Twins] Omenkiller Rollo 510740")] + CapitalOutskirtsFellTwinsOmenkillerRollo = 510740, - [Annotation(Name = "[Weeping Penisula - Leonine Misbegotten] Blade Greatsword 510800")] - WeepingPenisulaLeonineMisbegottenBladeGreatsword = 510800, + [Annotation(Name = "[Weeping Penisula - Leonine Misbegotten] Blade Greatsword 510800")] + WeepingPenisulaLeonineMisbegottenBladeGreatsword = 510800, - [Annotation(Name = "[Caria Manor - Loretta] Loretta's Greatbow 510810")] - CariaManorLorettaLorettasGreatbow = 510810, + [Annotation(Name = "[Caria Manor - Loretta] Loretta's Greatbow 510810")] + CariaManorLorettaLorettasGreatbow = 510810, - [Annotation(Name = "[Shaded Castle - Elemer of the Briar] Marais Executioner's Sword 510820")] - ShadedCastleElemerOfTheBriarMaraisExecutionersSword = 510820, + [Annotation(Name = "[Shaded Castle - Elemer of the Briar] Marais Executioner's Sword 510820")] + ShadedCastleElemerOfTheBriarMaraisExecutionersSword = 510820, - [Annotation(Name = "[Redmane Castle - Misbegotten Warrior/Crucible Knight] Ruins Greatsword 510830")] - RedmaneCastleMisbegottenWarriorCrucibleKnightRuinsGreatsword = 510830, + [Annotation(Name = "[Redmane Castle - Misbegotten Warrior/Crucible Knight] Ruins Greatsword 510830")] + RedmaneCastleMisbegottenWarriorCrucibleKnightRuinsGreatsword = 510830, - [Annotation(Name = "[Castle Sol - Commander Niall] Veteran's Prosthesis 510840")] - CastleSolCommanderNiallVeteransProsthesis = 510840, + [Annotation(Name = "[Castle Sol - Commander Niall] Veteran's Prosthesis 510840")] + CastleSolCommanderNiallVeteransProsthesis = 510840, - [Annotation(Name = "[Tombsward Catacombs - Cemetery Shade] Lhutel the Headless 520000")] - TombswardCatacombsCemeteryShadeLhutelTheHeadless = 520000, + [Annotation(Name = "[Tombsward Catacombs - Cemetery Shade] Lhutel the Headless 520000")] + TombswardCatacombsCemeteryShadeLhutelTheHeadless = 520000, - [Annotation(Name = "[Impaler's Catacombs - Erdtree Burial Watchdog] Demi-Human Ashes 520010")] - ImpalersCatacombsErdtreeBurialWatchdogDemiHumanAshes = 520010, + [Annotation(Name = "[Impaler's Catacombs - Erdtree Burial Watchdog] Demi-Human Ashes 520010")] + ImpalersCatacombsErdtreeBurialWatchdogDemiHumanAshes = 520010, - [Annotation(Name = "[Stormfoot Catacombs - Erdtree Burial Watchdog] Noble Sorcerer Ashes 520020")] - StormfootCatacombsErdtreeBurialWatchdogNobleSorcererAshes = 520020, + [Annotation(Name = "[Stormfoot Catacombs - Erdtree Burial Watchdog] Noble Sorcerer Ashes 520020")] + StormfootCatacombsErdtreeBurialWatchdogNobleSorcererAshes = 520020, - [Annotation(Name = "[Deathtouched Catacombs - Black Knife Assassin] Assassin's Crimson Dagger 520030")] - DeathtouchedCatacombsBlackKnifeAssassinAssassinsCrimsonDagger = 520030, + [Annotation(Name = "[Deathtouched Catacombs - Black Knife Assassin] Assassin's Crimson Dagger 520030")] + DeathtouchedCatacombsBlackKnifeAssassinAssassinsCrimsonDagger = 520030, - [Annotation(Name = "[Murkwater Catacombs - Grave Warden Duelist] Battle Hammer 520040")] - MurkwaterCatacombsGraveWardenDuelistBattleHammer = 520040, + [Annotation(Name = "[Murkwater Catacombs - Grave Warden Duelist] Battle Hammer 520040")] + MurkwaterCatacombsGraveWardenDuelistBattleHammer = 520040, - [Annotation(Name = "[Black Knife Catacombs - Cemetery Shade] Twinsage Sorcerer Ashes 520050")] - BlackKnifeCatacombsCemeteryShadeTwinsageSorcererAshes = 520050, + [Annotation(Name = "[Black Knife Catacombs - Cemetery Shade] Twinsage Sorcerer Ashes 520050")] + BlackKnifeCatacombsCemeteryShadeTwinsageSorcererAshes = 520050, - [Annotation(Name = "[Road's End Catacombs - Spirit-caller Snail] Glintstone Sorcerer Ashes 520060")] - RoadsEndCatacombsSpiritcallerSnailGlintstoneSorcererAshes = 520060, + [Annotation(Name = "[Road's End Catacombs - Spirit-caller Snail] Glintstone Sorcerer Ashes 520060")] + RoadsEndCatacombsSpiritcallerSnailGlintstoneSorcererAshes = 520060, - [Annotation(Name = "[Cliffbottom Catacombs - Erdtree Burial Watchdog] Kaiden Sellsword Ashes 520070")] - CliffbottomCatacombsErdtreeBurialWatchdogKaidenSellswordAshes = 520070, + [Annotation(Name = "[Cliffbottom Catacombs - Erdtree Burial Watchdog] Kaiden Sellsword Ashes 520070")] + CliffbottomCatacombsErdtreeBurialWatchdogKaidenSellswordAshes = 520070, - [Annotation(Name = "[Sainted Hero's Grave - Leyndell] Ancient Dragon Knight Kristoff 520080")] - SaintedHerosGraveLeyndellAncientDragonKnightKristoff = 520080, + [Annotation(Name = "[Sainted Hero's Grave - Leyndell] Ancient Dragon Knight Kristoff 520080")] + SaintedHerosGraveLeyndellAncientDragonKnightKristoff = 520080, - [Annotation(Name = "[Gelmir's Heo's Grave - Mt. Gelmir] Bloodhound Knight Floh 520090")] - GelmirsHeosGraveMtGelmirBloodhoundKnightFloh = 520090, + [Annotation(Name = "[Gelmir's Heo's Grave - Mt. Gelmir] Bloodhound Knight Floh 520090")] + GelmirsHeosGraveMtGelmirBloodhoundKnightFloh = 520090, - [Annotation(Name = "[Auriza Hero's Grave - Crucible Knigh Ordovis] Ordovis's Greatsword 520100")] - AurizaHerosGraveCrucibleKnighOrdovisOrdovissGreatsword = 520100, + [Annotation(Name = "[Auriza Hero's Grave - Crucible Knigh Ordovis] Ordovis's Greatsword 520100")] + AurizaHerosGraveCrucibleKnighOrdovisOrdovissGreatsword = 520100, - [Annotation(Name = "[Unslightly Catacombs - Perfumer Tricia] Perfumer Tricia 520110")] - UnslightlyCatacombsPerfumerTriciaPerfumerTricia = 520110, + [Annotation(Name = "[Unslightly Catacombs - Perfumer Tricia] Perfumer Tricia 520110")] + UnslightlyCatacombsPerfumerTriciaPerfumerTricia = 520110, - [Annotation(Name = "[Wyndham Catacombs - Erdtree Burial Watchdog] Glovewort Picker's Bell Bearing [1] 520120")] - WyndhamCatacombsErdtreeBurialWatchdogGlovewortPickersBellBearing1 = 520120, + [Annotation(Name = "[Wyndham Catacombs - Erdtree Burial Watchdog] Glovewort Picker's Bell Bearing [1] 520120")] + WyndhamCatacombsErdtreeBurialWatchdogGlovewortPickersBellBearing1 = 520120, - [Annotation(Name = "[Auriza Side Tomb - Grave Warden Duelist] Soldjars of Fortune Ashes 520130")] - AurizaSideTombGraveWardenDuelistSoldjarsOfFortuneAshes = 520130, + [Annotation(Name = "[Auriza Side Tomb - Grave Warden Duelist] Soldjars of Fortune Ashes 520130")] + AurizaSideTombGraveWardenDuelistSoldjarsOfFortuneAshes = 520130, - [Annotation(Name = "[Minor Erdtree Catacombs - Erdtree Burial Watchdog] Mad Pumpkin Head Ashes 520140")] - MinorErdtreeCatacombsErdtreeBurialWatchdogMadPumpkinHeadAshes = 520140, + [Annotation(Name = "[Minor Erdtree Catacombs - Erdtree Burial Watchdog] Mad Pumpkin Head Ashes 520140")] + MinorErdtreeCatacombsErdtreeBurialWatchdogMadPumpkinHeadAshes = 520140, - [Annotation(Name = "[Caelid Catacombs - Cemetery Shade] Kindred of Rot Ashes 520150")] - CaelidCatacombsCemeteryShadeKindredOfRotAshes = 520150, + [Annotation(Name = "[Caelid Catacombs - Cemetery Shade] Kindred of Rot Ashes 520150")] + CaelidCatacombsCemeteryShadeKindredOfRotAshes = 520150, - [Annotation(Name = "[War-Dead Catacombs - Putrid Tree Spirit] Redmane Knight Ogha 520160")] - WarDeadCatacombsPutridTreeSpiritRedmaneKnightOgha = 520160, + [Annotation(Name = "[War-Dead Catacombs - Putrid Tree Spirit] Redmane Knight Ogha 520160")] + WarDeadCatacombsPutridTreeSpiritRedmaneKnightOgha = 520160, - [Annotation(Name = "[Giant-Conquering Hero's Grave - Ancient Hero of Zamor] Zamor Curved Sword 520170")] - GiantConqueringHerosGraveAncientHeroOfZamorZamorCurvedSword = 520170, + [Annotation(Name = "[Giant-Conquering Hero's Grave - Ancient Hero of Zamor] Zamor Curved Sword 520170")] + GiantConqueringHerosGraveAncientHeroOfZamorZamorCurvedSword = 520170, - [Annotation(Name = "[Giants' Mountaintop Catacombs - Ulcerated Tree Spirit] Golden Seed 520180")] - GiantsMountaintopCatacombsUlceratedTreeSpiritGoldenSeed = 520180, + [Annotation(Name = "[Giants' Mountaintop Catacombs - Ulcerated Tree Spirit] Golden Seed 520180")] + GiantsMountaintopCatacombsUlceratedTreeSpiritGoldenSeed = 520180, - [Annotation(Name = "[Consecrated Snowfiled Catacombs - Putrid Grave Warden Duelist] Great Grave Glovewort 520190")] - ConsecratedSnowfiledCatacombsPutridGraveWardenDuelistGreatGraveGlovewort = 520190, + [Annotation(Name = "[Consecrated Snowfiled Catacombs - Putrid Grave Warden Duelist] Great Grave Glovewort 520190")] + ConsecratedSnowfiledCatacombsPutridGraveWardenDuelistGreatGraveGlovewort = 520190, - [Annotation(Name = "[Hidden Path ot the Haligtree - Stray Mimic Tear] Blackflame Monk Amon 520200")] - HiddenPathotTheHaligtreeStrayMimicTearBlackflameMonkAmon = 520200, + [Annotation(Name = "[Hidden Path ot the Haligtree - Stray Mimic Tear] Blackflame Monk Amon 520200")] + HiddenPathotTheHaligtreeStrayMimicTearBlackflameMonkAmon = 520200, - [Annotation(Name = "[Black Knife Catacombs - Black Knife Assassin] Assassin's Cerulean Dagger 520210")] - BlackKnifeCatacombsBlackKnifeAssassinAssassinsCeruleanDagger = 520210, + [Annotation(Name = "[Black Knife Catacombs - Black Knife Assassin] Assassin's Cerulean Dagger 520210")] + BlackKnifeCatacombsBlackKnifeAssassinAssassinsCeruleanDagger = 520210, - [Annotation(Name = "[Leyndell Catacombs - Esgar, Priest of Blood] Lord of Blood's Exultation 520220")] - LeyndellCatacombsEsgarPriestOfBloodLordOfBloodsExultation = 520220, + [Annotation(Name = "[Leyndell Catacombs - Esgar, Priest of Blood] Lord of Blood's Exultation 520220")] + LeyndellCatacombsEsgarPriestOfBloodLordOfBloodsExultation = 520220, - [Annotation(Name = "[Tombsward Cave - Miranda the Blighted Bloom] Viridian Amber Medallion 520300")] - TombswardCaveMirandaTheBlightedBloomViridianAmberMedallion = 520300, + [Annotation(Name = "[Tombsward Cave - Miranda the Blighted Bloom] Viridian Amber Medallion 520300")] + TombswardCaveMirandaTheBlightedBloomViridianAmberMedallion = 520300, - [Annotation(Name = "[Earthbore Cave - Runebear] Spelldrake Talisman 520310")] - EarthboreCaveRunebearSpelldrakeTalisman = 520310, + [Annotation(Name = "[Earthbore Cave - Runebear] Spelldrake Talisman 520310")] + EarthboreCaveRunebearSpelldrakeTalisman = 520310, - [Annotation(Name = "[Groveside Cave - Beastman of Farum Azula] Flamedrake Talisman 520330")] - GrovesideCaveBeastmanOfFarumAzulaFlamedrakeTalisman = 520330, + [Annotation(Name = "[Groveside Cave - Beastman of Farum Azula] Flamedrake Talisman 520330")] + GrovesideCaveBeastmanOfFarumAzulaFlamedrakeTalisman = 520330, - [Annotation(Name = "[Coastal Cave - Demi-Human Chief] Sewing Needle 520340")] - CoastalCaveDemiHumanChiefSewingNeedle = 520340, + [Annotation(Name = "[Coastal Cave - Demi-Human Chief] Sewing Needle 520340")] + CoastalCaveDemiHumanChiefSewingNeedle = 520340, - [Annotation(Name = "[Coastal Cave - Demi-Human Chief] Tailoring Tools 60140")] - CoastalCaveDemiHumanChiefTailoringTools = 60140, + [Annotation(Name = "[Coastal Cave - Demi-Human Chief] Tailoring Tools 60140")] + CoastalCaveDemiHumanChiefTailoringTools = 60140, - [Annotation(Name = "[Highroad Cave - Guardian Golem] Blue Dancer Charm 520350")] - HighroadCaveGuardianGolemBlueDancerCharm = 520350, + [Annotation(Name = "[Highroad Cave - Guardian Golem] Blue Dancer Charm 520350")] + HighroadCaveGuardianGolemBlueDancerCharm = 520350, - [Annotation(Name = "[Stillwater Cave - Cleanrot Knight] Winged Sword Insignia 520360")] - StillwaterCaveCleanrotKnightWingedSwordInsignia = 520360, + [Annotation(Name = "[Stillwater Cave - Cleanrot Knight] Winged Sword Insignia 520360")] + StillwaterCaveCleanrotKnightWingedSwordInsignia = 520360, - [Annotation(Name = "[Lakeside Crystal Cave - Bloodhound Knight] Cerulean Amber Medallion 520370")] - LakesideCrystalCaveBloodhoundKnightCeruleanAmberMedallion = 520370, + [Annotation(Name = "[Lakeside Crystal Cave - Bloodhound Knight] Cerulean Amber Medallion 520370")] + LakesideCrystalCaveBloodhoundKnightCeruleanAmberMedallion = 520370, - [Annotation(Name = "[Academy Crystal Cave - Crystalians] Crystal Release 520380")] - AcademyCrystalCaveCrystaliansCrystalRelease = 520380, + [Annotation(Name = "[Academy Crystal Cave - Crystalians] Crystal Release 520380")] + AcademyCrystalCaveCrystaliansCrystalRelease = 520380, - [Annotation(Name = "[Seethewater Cave - Kindred of Rot] Kindred of Rot's Exultation 520390")] - SeethewaterCaveKindredOfRotKindredOfRotsExultation = 520390, + [Annotation(Name = "[Seethewater Cave - Kindred of Rot] Kindred of Rot's Exultation 520390")] + SeethewaterCaveKindredOfRotKindredOfRotsExultation = 520390, - [Annotation(Name = "[Volcano Cave - Demi-human Queen Margot] Jar Cannon 520400")] - VolcanoCaveDemihumanQueenMargotJarCannon = 520400, + [Annotation(Name = "[Volcano Cave - Demi-human Queen Margot] Jar Cannon 520400")] + VolcanoCaveDemihumanQueenMargotJarCannon = 520400, - [Annotation(Name = "[Omenkiller - Perfumer's Grotto] Great Omenkiller Cleaver 520410")] - OmenkillerPerfumersGrottoGreatOmenkillerCleaver = 520410, + [Annotation(Name = "[Omenkiller - Perfumer's Grotto] Great Omenkiller Cleaver 520410")] + OmenkillerPerfumersGrottoGreatOmenkillerCleaver = 520410, - [Annotation(Name = "[Sage's Cave - Black Knife Assassin] Concealing Veil 520420")] - SagesCaveBlackKnifeAssassinConcealingVeil = 520420, + [Annotation(Name = "[Sage's Cave - Black Knife Assassin] Concealing Veil 520420")] + SagesCaveBlackKnifeAssassinConcealingVeil = 520420, - [Annotation(Name = "[Goal Cave - Frenzied Duelist] Putrid Corpse Ashes 520430")] - GoalCaveFrenziedDuelistPutridCorpseAshes = 520430, + [Annotation(Name = "[Goal Cave - Frenzied Duelist] Putrid Corpse Ashes 520430")] + GoalCaveFrenziedDuelistPutridCorpseAshes = 520430, - [Annotation(Name = "[Dragonbarrow Cave - Beastman of Farum Azula] Flamedrake Talisman +2 520440")] - DragonbarrowCaveBeastmanOfFarumAzulaFlamedrakeTalisman2 = 520440, + [Annotation(Name = "[Dragonbarrow Cave - Beastman of Farum Azula] Flamedrake Talisman +2 520440")] + DragonbarrowCaveBeastmanOfFarumAzulaFlamedrakeTalisman2 = 520440, - [Annotation(Name = "[Abandoned Cave - Cleanrot Knight Duo] Gold Scarab 520450")] - AbandonedCaveCleanrotKnightDuoGoldScarab = 520450, + [Annotation(Name = "[Abandoned Cave - Cleanrot Knight Duo] Gold Scarab 520450")] + AbandonedCaveCleanrotKnightDuoGoldScarab = 520450, - [Annotation(Name = "[Sellia Hideaway - Putrid Crystalians] Crystal Torrent 520460")] - SelliaHideawayPutridCrystaliansCrystalTorrent = 520460, + [Annotation(Name = "[Sellia Hideaway - Putrid Crystalians] Crystal Torrent 520460")] + SelliaHideawayPutridCrystaliansCrystalTorrent = 520460, - [Annotation(Name = "[Cave of the Forlorn - Misbegotten Crusader] Golden Order Greatsword 520470")] - CaveOfTheForlornMisbegottenCrusaderGoldenOrderGreatsword = 520470, + [Annotation(Name = "[Cave of the Forlorn - Misbegotten Crusader] Golden Order Greatsword 520470")] + CaveOfTheForlornMisbegottenCrusaderGoldenOrderGreatsword = 520470, - [Annotation(Name = "[Spiritcaller's Cave - Godskin Apostle/Noble] Godskin Swaddling Cloth 520480")] - SpiritcallersCaveGodskinApostleNobleGodskinSwaddlingCloth = 520480, + [Annotation(Name = "[Spiritcaller's Cave - Godskin Apostle/Noble] Godskin Swaddling Cloth 520480")] + SpiritcallersCaveGodskinApostleNobleGodskinSwaddlingCloth = 520480, - [Annotation(Name = "[Sage's Cave - Necromancer Garris] Family Heads 520490")] - SagesCaveNecromancerGarrisFamilyHeads = 520490, + [Annotation(Name = "[Sage's Cave - Necromancer Garris] Family Heads 520490")] + SagesCaveNecromancerGarrisFamilyHeads = 520490, - [Annotation(Name = "[Morne Tunnel - Scaly Misbegotten] Rusted Anchor 520600")] - MorneTunnelScalyMisbegottenRustedAnchor = 520600, + [Annotation(Name = "[Morne Tunnel - Scaly Misbegotten] Rusted Anchor 520600")] + MorneTunnelScalyMisbegottenRustedAnchor = 520600, - [Annotation(Name = "[Limgrave Tunnels - Stonedigger Troll] Roar Medallion 520610")] - LimgraveTunnelsStonediggerTrollRoarMedallion = 520610, + [Annotation(Name = "[Limgrave Tunnels - Stonedigger Troll] Roar Medallion 520610")] + LimgraveTunnelsStonediggerTrollRoarMedallion = 520610, - [Annotation(Name = "[Raya Lucaria Crystal Tunnel - Crystalian] Smithing-Stone Miner's Bell Bearing [1] 520620")] - RayaLucariaCrystalTunnelCrystalianSmithingStoneMinersBellBearing1 = 520620, + [Annotation(Name = "[Raya Lucaria Crystal Tunnel - Crystalian] Smithing-Stone Miner's Bell Bearing [1] 520620")] + RayaLucariaCrystalTunnelCrystalianSmithingStoneMinersBellBearing1 = 520620, - [Annotation(Name = "[Old Altus Tunnel - Stonedigger Troll] Great Club 520630")] - OldAltusTunnelStonediggerTrollGreatClub = 520630, + [Annotation(Name = "[Old Altus Tunnel - Stonedigger Troll] Great Club 520630")] + OldAltusTunnelStonediggerTrollGreatClub = 520630, - [Annotation(Name = "[Sealed Tunnel - Onyx Lord] Onyx Lord's Greatsword 520640")] - SealedTunnelOnyxLordOnyxLordsGreatsword = 520640, + [Annotation(Name = "[Sealed Tunnel - Onyx Lord] Onyx Lord's Greatsword 520640")] + SealedTunnelOnyxLordOnyxLordsGreatsword = 520640, - [Annotation(Name = "[Altus Tunnel - Crystalians] Somberstone Miner's Bell Bearing [2] 520650")] - AltusTunnelCrystaliansSomberstoneMinersBellBearing2 = 520650, + [Annotation(Name = "[Altus Tunnel - Crystalians] Somberstone Miner's Bell Bearing [2] 520650")] + AltusTunnelCrystaliansSomberstoneMinersBellBearing2 = 520650, - [Annotation(Name = "[Gael Tunnel - Magma Wyrm] Dragon Heart 520660")] - GaelTunnelMagmaWyrmDragonHeart = 520660, + [Annotation(Name = "[Gael Tunnel - Magma Wyrm] Dragon Heart 520660")] + GaelTunnelMagmaWyrmDragonHeart = 520660, - [Annotation(Name = "[Sellia Crystal Tunnel - Fallingstar Beast] Somber Smithing Stone [6] 520670")] - SelliaCrystalTunnelFallingstarBeastSomberSmithingStone6 = 520670, + [Annotation(Name = "[Sellia Crystal Tunnel - Fallingstar Beast] Somber Smithing Stone [6] 520670")] + SelliaCrystalTunnelFallingstarBeastSomberSmithingStone6 = 520670, - [Annotation(Name = "[Yelough Anix Tunnel - Astel] Meteorite of Astel 520680")] - YeloughAnixTunnelAstelMeteoriteOfAstel = 520680, + [Annotation(Name = "[Yelough Anix Tunnel - Astel] Meteorite of Astel 520680")] + YeloughAnixTunnelAstelMeteoriteOfAstel = 520680, - [Annotation(Name = "[Limgrave - Field - Tree Sentinel] Golden Halberd 530100")] - LimgraveFieldTreeSentinelGoldenHalberd = 530100, + [Annotation(Name = "[Limgrave - Field - Tree Sentinel] Golden Halberd 530100")] + LimgraveFieldTreeSentinelGoldenHalberd = 530100, - [Annotation(Name = "[Limgrave - Field - Flying Dragon Agheel] Dragon Heart 530110")] - LimgraveFieldFlyingDragonAgheelDragonHeart = 530110, + [Annotation(Name = "[Limgrave - Field - Flying Dragon Agheel] Dragon Heart 530110")] + LimgraveFieldFlyingDragonAgheelDragonHeart = 530110, - [Annotation(Name = "[Limgrave - Evergaol - Crucible Knight] Aspects of the Crucible: Tail 530120")] - LimgraveEvergaolCrucibleKnightAspectsOfTheCrucibleTail = 530120, + [Annotation(Name = "[Limgrave - Evergaol - Crucible Knight] Aspects of the Crucible: Tail 530120")] + LimgraveEvergaolCrucibleKnightAspectsOfTheCrucibleTail = 530120, - [Annotation(Name = "[Limgrave - Evergaol - Bloodhound Knight Darriwil] Bloodhound's Fang 530130")] - LimgraveEvergaolBloodhoundKnightDarriwilBloodhoundsFang = 530130, + [Annotation(Name = "[Limgrave - Evergaol - Bloodhound Knight Darriwil] Bloodhound's Fang 530130")] + LimgraveEvergaolBloodhoundKnightDarriwilBloodhoundsFang = 530130, - [Annotation(Name = "[Limgrave - Field - Tibia Mariner] Deathroot 530170")] - LimgraveFieldTibiaMarinerDeathroot = 530170, + [Annotation(Name = "[Limgrave - Field - Tibia Mariner] Deathroot 530170")] + LimgraveFieldTibiaMarinerDeathroot = 530170, - [Annotation(Name = "[Weeping Penisula - Field - Erdtree Avatar] Crimsonburst Crystal Tear 65090")] - WeepingPenisulaFieldErdtreeAvatarCrimsonburstCrystalTear = 65090, + [Annotation(Name = "[Weeping Penisula - Field - Erdtree Avatar] Crimsonburst Crystal Tear 65090")] + WeepingPenisulaFieldErdtreeAvatarCrimsonburstCrystalTear = 65090, - [Annotation(Name = "[Weeping Penisula - Field - Erdtree Avatar] Opaline Bubbletear 65080")] - WeepingPenisulaFieldErdtreeAvatarOpalineBubbletear = 65080, + [Annotation(Name = "[Weeping Penisula - Field - Erdtree Avatar] Opaline Bubbletear 65080")] + WeepingPenisulaFieldErdtreeAvatarOpalineBubbletear = 65080, - [Annotation(Name = "[Liurnia - Field - Erdtree Avatar] Magic-Shrouding Cracked Tear 65290")] - LiurniaFieldErdtreeAvatarMagicShroudingCrackedTear = 65290, + [Annotation(Name = "[Liurnia - Field - Erdtree Avatar] Magic-Shrouding Cracked Tear 65290")] + LiurniaFieldErdtreeAvatarMagicShroudingCrackedTear = 65290, - [Annotation(Name = "[Liurnia - Field - Erdtree Avatar] Lightning-Shrouding Cracked Tear 65300")] - LiurniaFieldErdtreeAvatarLightningShroudingCrackedTear = 65300, + [Annotation(Name = "[Liurnia - Field - Erdtree Avatar] Lightning-Shrouding Cracked Tear 65300")] + LiurniaFieldErdtreeAvatarLightningShroudingCrackedTear = 65300, - [Annotation(Name = "[Liurnia - Field - Erdtree Avatar] Holy-Shrouding Cracked Tear 65310")] - LiurniaFieldErdtreeAvatarHolyShroudingCrackedTear = 65310, + [Annotation(Name = "[Liurnia - Field - Erdtree Avatar] Holy-Shrouding Cracked Tear 65310")] + LiurniaFieldErdtreeAvatarHolyShroudingCrackedTear = 65310, - [Annotation(Name = "[Liurnia - Field - Erdtree Avatar] Cerulean Crystal Tear 65040")] - LiurniaFieldErdtreeAvatarCeruleanCrystalTear = 65040, + [Annotation(Name = "[Liurnia - Field - Erdtree Avatar] Cerulean Crystal Tear 65040")] + LiurniaFieldErdtreeAvatarCeruleanCrystalTear = 65040, - [Annotation(Name = "[Liurnia - Field - Erdtree Avatar] Ruptured Crystal Tear 65160")] - LiurniaFieldErdtreeAvatarRupturedCrystalTear = 65160, + [Annotation(Name = "[Liurnia - Field - Erdtree Avatar] Ruptured Crystal Tear 65160")] + LiurniaFieldErdtreeAvatarRupturedCrystalTear = 65160, - [Annotation(Name = "[Liurnia - Field - Glintstone Dragon Smarag] Dragon Heart 530210")] - LiurniaFieldGlintstoneDragonSmaragDragonHeart = 530210, + [Annotation(Name = "[Liurnia - Field - Glintstone Dragon Smarag] Dragon Heart 530210")] + LiurniaFieldGlintstoneDragonSmaragDragonHeart = 530210, - [Annotation(Name = "[Liurnia - Field - Omenkiller] Crucible Knot Talisman 530225")] - LiurniaFieldOmenkillerCrucibleKnotTalisman = 530225, + [Annotation(Name = "[Liurnia - Field - Omenkiller] Crucible Knot Talisman 530225")] + LiurniaFieldOmenkillerCrucibleKnotTalisman = 530225, - [Annotation(Name = "[Liurnia - Field - Tibia Mariner] Deathroot 530240")] - LiurniaFieldTibiaMarinerDeathroot = 530240, + [Annotation(Name = "[Liurnia - Field - Tibia Mariner] Deathroot 530240")] + LiurniaFieldTibiaMarinerDeathroot = 530240, - [Annotation(Name = "[Liurnia - Evergaol - Adan, Thief of Fire] Flame of the Fell God 530245")] - LiurniaEvergaolAdanThiefOfFireFlameOfTheFellGod = 530245, + [Annotation(Name = "[Liurnia - Evergaol - Adan, Thief of Fire] Flame of the Fell God 530245")] + LiurniaEvergaolAdanThiefOfFireFlameOfTheFellGod = 530245, - [Annotation(Name = "[Liurnia - Evergaol - Bols, Carian Knight] Greatblade Phalanx 530250")] - LiurniaEvergaolBolsCarianKnightGreatbladePhalanx = 530250, + [Annotation(Name = "[Liurnia - Evergaol - Bols, Carian Knight] Greatblade Phalanx 530250")] + LiurniaEvergaolBolsCarianKnightGreatbladePhalanx = 530250, - [Annotation(Name = "[Liurnia - Evergaol - Onyx Lord] Meteorite 530255")] - LiurniaEvergaolOnyxLordMeteorite = 530255, + [Annotation(Name = "[Liurnia - Evergaol - Onyx Lord] Meteorite 530255")] + LiurniaEvergaolOnyxLordMeteorite = 530255, - [Annotation(Name = "[Liurnia - Field - Glintstone Dragon Adula] Dragon Heart 530260")] - LiurniaFieldGlintstoneDragonAdulaDragonHeart = 530260, + [Annotation(Name = "[Liurnia - Field - Glintstone Dragon Adula] Dragon Heart 530260")] + LiurniaFieldGlintstoneDragonAdulaDragonHeart = 530260, - [Annotation(Name = "[Liurnia - Evergaol - Alecto, Black Knife Ringleader] Black Knife Tiche 530265")] - LiurniaEvergaolAlectoBlackKnifeRingleaderBlackKnifeTiche = 530265, + [Annotation(Name = "[Liurnia - Evergaol - Alecto, Black Knife Ringleader] Black Knife Tiche 530265")] + LiurniaEvergaolAlectoBlackKnifeRingleaderBlackKnifeTiche = 530265, - [Annotation(Name = "[Altus Plateau - Field - Ancient Dragon Lansseax] Lansseax's Glaive 530300")] - AltusPlateauFieldAncientDragonLansseaxLansseaxsGlaive = 530300, + [Annotation(Name = "[Altus Plateau - Field - Ancient Dragon Lansseax] Lansseax's Glaive 530300")] + AltusPlateauFieldAncientDragonLansseaxLansseaxsGlaive = 530300, - [Annotation(Name = "[Altus Plateau - Field - Fallingstar Beast] Somber Smithing Stone [5] 530310")] - AltusPlateauFieldFallingstarBeastSomberSmithingStone5 = 530310, + [Annotation(Name = "[Altus Plateau - Field - Fallingstar Beast] Somber Smithing Stone [5] 530310")] + AltusPlateauFieldFallingstarBeastSomberSmithingStone5 = 530310, - [Annotation(Name = "[Capital Outskirts - Field - Draconic Tree Sentinel] Dragon Greatclaw 530315")] - CapitalOutskirtsFieldDraconicTreeSentinelDragonGreatclaw = 530315, + [Annotation(Name = "[Capital Outskirts - Field - Draconic Tree Sentinel] Dragon Greatclaw 530315")] + CapitalOutskirtsFieldDraconicTreeSentinelDragonGreatclaw = 530315, - [Annotation(Name = "[Altus Plateau - Field - Wormface] Speckled Hardtear 65060")] - AltusPlateauFieldWormfaceSpeckledHardtear = 65060, + [Annotation(Name = "[Altus Plateau - Field - Wormface] Speckled Hardtear 65060")] + AltusPlateauFieldWormfaceSpeckledHardtear = 65060, - [Annotation(Name = "[Altus Plateau - Field - Wormface] Crimsonspill Crystal Tear 65000")] - AltusPlateauFieldWormfaceCrimsonspillCrystalTear = 65000, + [Annotation(Name = "[Altus Plateau - Field - Wormface] Crimsonspill Crystal Tear 65000")] + AltusPlateauFieldWormfaceCrimsonspillCrystalTear = 65000, - [Annotation(Name = "[Altus Plateau - Field - Godskin Apostle] Godskin Peeler 530325")] - AltusPlateauFieldGodskinApostleGodskinPeeler = 530325, + [Annotation(Name = "[Altus Plateau - Field - Godskin Apostle] Godskin Peeler 530325")] + AltusPlateauFieldGodskinApostleGodskinPeeler = 530325, - [Annotation(Name = "[Capital Outskirts - Field - Tree Sentinel Duo] Erdtree Greatshield 530335")] - CapitalOutskirtsFieldTreeSentinelDuoErdtreeGreatshield = 530335, + [Annotation(Name = "[Capital Outskirts - Field - Tree Sentinel Duo] Erdtree Greatshield 530335")] + CapitalOutskirtsFieldTreeSentinelDuoErdtreeGreatshield = 530335, - [Annotation(Name = "[Altus Plateau - Field - Black Knife Assassin] Black Knife 530350")] - AltusPlateauFieldBlackKnifeAssassinBlackKnife = 530350, + [Annotation(Name = "[Altus Plateau - Field - Black Knife Assassin] Black Knife 530350")] + AltusPlateauFieldBlackKnifeAssassinBlackKnife = 530350, - [Annotation(Name = "[Mt. Gelmir - Field - Full-grown Fallingstar Beast] Somber Smithing Stone [6] 530375")] - MtGelmirFieldFullgrownFallingstarBeastSomberSmithingStone6 = 530375, + [Annotation(Name = "[Mt. Gelmir - Field - Full-grown Fallingstar Beast] Somber Smithing Stone [6] 530375")] + MtGelmirFieldFullgrownFallingstarBeastSomberSmithingStone6 = 530375, - [Annotation(Name = "[Mt. Gelmir - Field - Ulcerated Tree Spirit] Leaden Hardtear 65180")] - MtGelmirFieldUlceratedTreeSpiritLeadenHardtear = 65180, + [Annotation(Name = "[Mt. Gelmir - Field - Ulcerated Tree Spirit] Leaden Hardtear 65180")] + MtGelmirFieldUlceratedTreeSpiritLeadenHardtear = 65180, - [Annotation(Name = "[Mt. Gelmir - Field - Ulcerated Tree Spirit] Cerulean Hidden Tear 65250")] - MtGelmirFieldUlceratedTreeSpiritCeruleanHiddenTear = 65250, + [Annotation(Name = "[Mt. Gelmir - Field - Ulcerated Tree Spirit] Cerulean Hidden Tear 65250")] + MtGelmirFieldUlceratedTreeSpiritCeruleanHiddenTear = 65250, - [Annotation(Name = "[Altus Plateau - Field - Tibia Mariner] Deathroot 530385")] - AltusPlateauFieldTibiaMarinerDeathroot = 530385, + [Annotation(Name = "[Altus Plateau - Field - Tibia Mariner] Deathroot 530385")] + AltusPlateauFieldTibiaMarinerDeathroot = 530385, - [Annotation(Name = "[Mt. Gelmir - Field - Magma Wyrm] Dragon Heart 530390")] - MtGelmirFieldMagmaWyrmDragonHeart = 530390, + [Annotation(Name = "[Mt. Gelmir - Field - Magma Wyrm] Dragon Heart 530390")] + MtGelmirFieldMagmaWyrmDragonHeart = 530390, - [Annotation(Name = "[Mt. Gelmir - Field - Demi-Human Queen Maggie] Memory Stone 60450")] - MtGelmirFieldDemiHumanQueenMaggieMemoryStone = 60450, + [Annotation(Name = "[Mt. Gelmir - Field - Demi-Human Queen Maggie] Memory Stone 60450")] + MtGelmirFieldDemiHumanQueenMaggieMemoryStone = 60450, - [Annotation(Name = "[Mt. Gelmir - Field - Magma Wyrm] Dragon Heart 530400")] - MtGelmirFieldMagmaWyrmDragonHeart_ = 530400, + [Annotation(Name = "[Mt. Gelmir - Field - Magma Wyrm] Dragon Heart 530400")] + MtGelmirFieldMagmaWyrmDragonHeart_ = 530400, - [Annotation(Name = "[Caelid - Field - Commander O'Neil] Commander's Standard 530405")] - CaelidFieldCommanderONeilCommandersStandard = 530405, + [Annotation(Name = "[Caelid - Field - Commander O'Neil] Commander's Standard 530405")] + CaelidFieldCommanderONeilCommandersStandard = 530405, - [Annotation(Name = "[Caelid - Field - Erdtree Avatar] Greenburst Crystal Tear 65100")] - CaelidFieldErdtreeAvatarGreenburstCrystalTear = 65100, + [Annotation(Name = "[Caelid - Field - Erdtree Avatar] Greenburst Crystal Tear 65100")] + CaelidFieldErdtreeAvatarGreenburstCrystalTear = 65100, - [Annotation(Name = "[Caelid - Field - Erdtree Avatar] Flame-Shrouding Cracked Tear 65280")] - CaelidFieldErdtreeAvatarFlameShroudingCrackedTear = 65280, + [Annotation(Name = "[Caelid - Field - Erdtree Avatar] Flame-Shrouding Cracked Tear 65280")] + CaelidFieldErdtreeAvatarFlameShroudingCrackedTear = 65280, - [Annotation(Name = "[Caelid - Field - Putrid Avatar] Opaline Hardtear 65110")] - CaelidFieldPutridAvatarOpalineHardtear = 65110, + [Annotation(Name = "[Caelid - Field - Putrid Avatar] Opaline Hardtear 65110")] + CaelidFieldPutridAvatarOpalineHardtear = 65110, - [Annotation(Name = "[Caelid - Field - Putrid Avatar] Stonebarb Cracked Tear 65260")] - CaelidFieldPutridAvatarStonebarbCrackedTear = 65260, + [Annotation(Name = "[Caelid - Field - Putrid Avatar] Stonebarb Cracked Tear 65260")] + CaelidFieldPutridAvatarStonebarbCrackedTear = 65260, - [Annotation(Name = "[Caelid - Field - Flying Dragon Greyll] Dragon Heart 530420")] - CaelidFieldFlyingDragonGreyllDragonHeart = 530420, + [Annotation(Name = "[Caelid - Field - Flying Dragon Greyll] Dragon Heart 530420")] + CaelidFieldFlyingDragonGreyllDragonHeart = 530420, - [Annotation(Name = "[Caelid - Field - Blade Blade Kindred] Gargoyle's Blackblade 530425")] - CaelidFieldBladeBladeKindredGargoylesBlackblade = 530425, + [Annotation(Name = "[Caelid - Field - Blade Blade Kindred] Gargoyle's Blackblade 530425")] + CaelidFieldBladeBladeKindredGargoylesBlackblade = 530425, - [Annotation(Name = "[Forbidden Lands - Field - Black Blade Kindred] Gargoyle's Black Blades 530505")] - ForbiddenLandsFieldBlackBladeKindredGargoylesBlackBlades = 530505, + [Annotation(Name = "[Forbidden Lands - Field - Black Blade Kindred] Gargoyle's Black Blades 530505")] + ForbiddenLandsFieldBlackBladeKindredGargoylesBlackBlades = 530505, - [Annotation(Name = "[Mountaintops of the Giants - Field - Borealis, the Freezing Fog] Dragon Heart 530510")] - MountaintopsOfTheGiantsFieldBorealisTheFreezingFogDragonHeart = 530510, + [Annotation(Name = "[Mountaintops of the Giants - Field - Borealis, the Freezing Fog] Dragon Heart 530510")] + MountaintopsOfTheGiantsFieldBorealisTheFreezingFogDragonHeart = 530510, - [Annotation(Name = "[Mountaintops of the Giants - Evergaol - Roundtable Knight Vyke] Vyke's Dragonbolt 530515")] - MountaintopsOfTheGiantsEvergaolRoundtableKnightVykeVykesDragonbolt = 530515, + [Annotation(Name = "[Mountaintops of the Giants - Evergaol - Roundtable Knight Vyke] Vyke's Dragonbolt 530515")] + MountaintopsOfTheGiantsEvergaolRoundtableKnightVykeVykesDragonbolt = 530515, - [Annotation(Name = "[Mountaintops of the Giants - Field - Erdtree Avatar] Cerulean Crystal Tear 65050")] - MountaintopsOfTheGiantsFieldErdtreeAvatarCeruleanCrystalTear = 65050, + [Annotation(Name = "[Mountaintops of the Giants - Field - Erdtree Avatar] Cerulean Crystal Tear 65050")] + MountaintopsOfTheGiantsFieldErdtreeAvatarCeruleanCrystalTear = 65050, - [Annotation(Name = "[Mountaintops of the Giants - Field - Erdtree Avatar] Crimson Bubbletear 65070")] - MountaintopsOfTheGiantsFieldErdtreeAvatarCrimsonBubbletear = 65070, + [Annotation(Name = "[Mountaintops of the Giants - Field - Erdtree Avatar] Crimson Bubbletear 65070")] + MountaintopsOfTheGiantsFieldErdtreeAvatarCrimsonBubbletear = 65070, - [Annotation(Name = "[Mountaintops of the Giants - Field - Death Rite Bird] Death Ritual Spear 530530")] - MountaintopsOfTheGiantsFieldDeathRiteBirdDeathRitualSpear = 530530, + [Annotation(Name = "[Mountaintops of the Giants - Field - Death Rite Bird] Death Ritual Spear 530530")] + MountaintopsOfTheGiantsFieldDeathRiteBirdDeathRitualSpear = 530530, - [Annotation(Name = "[Mountaintops of the Giants - Field - Great Wyrm Theodorix] Dragon Heart 530550")] - MountaintopsOfTheGiantsFieldGreatWyrmTheodorixDragonHeart = 530550, + [Annotation(Name = "[Mountaintops of the Giants - Field - Great Wyrm Theodorix] Dragon Heart 530550")] + MountaintopsOfTheGiantsFieldGreatWyrmTheodorixDragonHeart = 530550, - [Annotation(Name = "[Consecrated Snowfield - Field - Putrid Avatar] Thorny Cracked Tear 65130")] - ConsecratedSnowfieldFieldPutridAvatarThornyCrackedTear = 65130, + [Annotation(Name = "[Consecrated Snowfield - Field - Putrid Avatar] Thorny Cracked Tear 65130")] + ConsecratedSnowfieldFieldPutridAvatarThornyCrackedTear = 65130, - [Annotation(Name = "[Consecrated Snowfield - Field - Putrid Avatar] Ruptured Crystal Tear 65170")] - ConsecratedSnowfieldFieldPutridAvatarRupturedCrystalTear = 65170, + [Annotation(Name = "[Consecrated Snowfield - Field - Putrid Avatar] Ruptured Crystal Tear 65170")] + ConsecratedSnowfieldFieldPutridAvatarRupturedCrystalTear = 65170, - [Annotation(Name = "[Lake of Rot - Dragonkin Soldier] Dragonscale Blade 530600")] - LakeOfRotDragonkinSoldierDragonscaleBlade = 530600, + [Annotation(Name = "[Lake of Rot - Dragonkin Soldier] Dragonscale Blade 530600")] + LakeOfRotDragonkinSoldierDragonscaleBlade = 530600, - [Annotation(Name = "[Siofra River - Dragonkin Soldier] Dragon Halberd 530620")] - SiofraRiverDragonkinSoldierDragonHalberd = 530620, + [Annotation(Name = "[Siofra River - Dragonkin Soldier] Dragon Halberd 530620")] + SiofraRiverDragonkinSoldierDragonHalberd = 530620, - [Annotation(Name = "[Teardrop Scarab - Stormhill] Ash of War: Storm Wall 540100")] - TeardropScarabStormhillAshOfWarStormWall = 540100, + [Annotation(Name = "[Teardrop Scarab - Stormhill] Ash of War: Storm Wall 540100")] + TeardropScarabStormhillAshOfWarStormWall = 540100, - [Annotation(Name = "[Teardrop Scarab - Stormhill] Ash of War: Wild Strikes 540104")] - TeardropScarabStormhillAshOfWarWildStrikes = 540104, + [Annotation(Name = "[Teardrop Scarab - Stormhill] Ash of War: Wild Strikes 540104")] + TeardropScarabStormhillAshOfWarWildStrikes = 540104, - [Annotation(Name = "[Teardrop Scarab - Agheel Lake] Ash of War: Determination 540108")] - TeardropScarabAgheelLakeAshOfWarDetermination = 540108, + [Annotation(Name = "[Teardrop Scarab - Agheel Lake] Ash of War: Determination 540108")] + TeardropScarabAgheelLakeAshOfWarDetermination = 540108, - [Annotation(Name = "[Teardrop Scarab - Agheel Lake] Ash of War: Unsheathe 540112")] - TeardropScarabAgheelLakeAshOfWarUnsheathe = 540112, + [Annotation(Name = "[Teardrop Scarab - Agheel Lake] Ash of War: Unsheathe 540112")] + TeardropScarabAgheelLakeAshOfWarUnsheathe = 540112, - [Annotation(Name = "[Teardrop Scarab - Mistwood] Ash of War: Ground Slam 540116")] - TeardropScarabMistwoodAshOfWarGroundSlam = 540116, + [Annotation(Name = "[Teardrop Scarab - Mistwood] Ash of War: Ground Slam 540116")] + TeardropScarabMistwoodAshOfWarGroundSlam = 540116, - [Annotation(Name = "[Teardrop Scarab - Third Chuch of Marika] Ash of War: Sacred Blade 540118")] - TeardropScarabThirdChuchOfMarikaAshOfWarSacredBlade = 540118, + [Annotation(Name = "[Teardrop Scarab - Third Chuch of Marika] Ash of War: Sacred Blade 540118")] + TeardropScarabThirdChuchOfMarikaAshOfWarSacredBlade = 540118, - [Annotation(Name = "[Teardrop Scarab - Limgrave Coast] Ash of War: Stamp (Sweep) 540120")] - TeardropScarabLimgraveCoastAshOfWarStampSweep = 540120, + [Annotation(Name = "[Teardrop Scarab - Limgrave Coast] Ash of War: Stamp (Sweep) 540120")] + TeardropScarabLimgraveCoastAshOfWarStampSweep = 540120, - [Annotation(Name = "[Teardrop Scarab - Weeping Peninsula] Divine Fortification 540132")] - TeardropScarabWeepingPeninsulaDivineFortification = 540132, + [Annotation(Name = "[Teardrop Scarab - Weeping Peninsula] Divine Fortification 540132")] + TeardropScarabWeepingPeninsulaDivineFortification = 540132, - [Annotation(Name = "[Teardrop Scarab - Weeping Peninsula] Lightning Strike 540136")] - TeardropScarabWeepingPeninsulaLightningStrike = 540136, + [Annotation(Name = "[Teardrop Scarab - Weeping Peninsula] Lightning Strike 540136")] + TeardropScarabWeepingPeninsulaLightningStrike = 540136, - [Annotation(Name = "[Teardrop Scarab - Weeping Peninsula] Poison Mist 540138")] - TeardropScarabWeepingPeninsulaPoisonMist = 540138, + [Annotation(Name = "[Teardrop Scarab - Weeping Peninsula] Poison Mist 540138")] + TeardropScarabWeepingPeninsulaPoisonMist = 540138, - [Annotation(Name = "[Teardrop Scarab - Weeping Peninsula] Ash of War: Mighty Shot 540140")] - TeardropScarabWeepingPeninsulaAshOfWarMightyShot = 540140, + [Annotation(Name = "[Teardrop Scarab - Weeping Peninsula] Ash of War: Mighty Shot 540140")] + TeardropScarabWeepingPeninsulaAshOfWarMightyShot = 540140, - [Annotation(Name = "[Teardrop Scarab - Limgrave] Somber Smithing Stone [1] 540142")] - TeardropScarabLimgraveSomberSmithingStone1 = 540142, + [Annotation(Name = "[Teardrop Scarab - Limgrave] Somber Smithing Stone [1] 540142")] + TeardropScarabLimgraveSomberSmithingStone1 = 540142, - [Annotation(Name = "[Teardrop Scarab - Limgrave] Somber Smithing Stone [1] 540144")] - TeardropScarabLimgraveSomberSmithingStone1_ = 540144, + [Annotation(Name = "[Teardrop Scarab - Limgrave] Somber Smithing Stone [1] 540144")] + TeardropScarabLimgraveSomberSmithingStone1_ = 540144, - [Annotation(Name = "[Teardrop Scarab - Limgrave] Somber Smithing Stone [1] 540146")] - TeardropScarabLimgraveSomberSmithingStone1__ = 540146, + [Annotation(Name = "[Teardrop Scarab - Limgrave] Somber Smithing Stone [1] 540146")] + TeardropScarabLimgraveSomberSmithingStone1__ = 540146, - [Annotation(Name = "[Teardrop Scarab - Stormveil Castle] Ash of War: Storm Assault 540170")] - TeardropScarabStormveilCastleAshOfWarStormAssault = 540170, + [Annotation(Name = "[Teardrop Scarab - Stormveil Castle] Ash of War: Storm Assault 540170")] + TeardropScarabStormveilCastleAshOfWarStormAssault = 540170, - [Annotation(Name = "[Teardrop Scarab - Stormveil Castle] Ash of War: Stormcaller 540172")] - TeardropScarabStormveilCastleAshOfWarStormcaller = 540172, + [Annotation(Name = "[Teardrop Scarab - Stormveil Castle] Ash of War: Stormcaller 540172")] + TeardropScarabStormveilCastleAshOfWarStormcaller = 540172, - [Annotation(Name = "[Teardrop Scarab - Stormveil Castle] Rancorcall 540174")] - TeardropScarabStormveilCastleRancorcall = 540174, + [Annotation(Name = "[Teardrop Scarab - Stormveil Castle] Rancorcall 540174")] + TeardropScarabStormveilCastleRancorcall = 540174, - [Annotation(Name = "[Teardrop Scarab - Three Sisters] Ash of War: Chilling Mist 540200")] - TeardropScarabThreeSistersAshOfWarChillingMist = 540200, + [Annotation(Name = "[Teardrop Scarab - Three Sisters] Ash of War: Chilling Mist 540200")] + TeardropScarabThreeSistersAshOfWarChillingMist = 540200, - [Annotation(Name = "[Teardrop Scarab - Liurnia] Ash of War: Charge Forth 540202")] - TeardropScarabLiurniaAshOfWarChargeForth = 540202, + [Annotation(Name = "[Teardrop Scarab - Liurnia] Ash of War: Charge Forth 540202")] + TeardropScarabLiurniaAshOfWarChargeForth = 540202, - [Annotation(Name = "[Teardrop Scarab - Liurnia] Ash of War: Hoarfrost Stomp 540204")] - TeardropScarabLiurniaAshOfWarHoarfrostStomp = 540204, + [Annotation(Name = "[Teardrop Scarab - Liurnia] Ash of War: Hoarfrost Stomp 540204")] + TeardropScarabLiurniaAshOfWarHoarfrostStomp = 540204, - [Annotation(Name = "[Teardrop Scarab - Liurnia] Ash of War: Thops's Barrier 540206")] - TeardropScarabLiurniaAshOfWarThopssBarrier = 540206, + [Annotation(Name = "[Teardrop Scarab - Liurnia] Ash of War: Thops's Barrier 540206")] + TeardropScarabLiurniaAshOfWarThopssBarrier = 540206, - [Annotation(Name = "[Teardrop Scarab - Liurnia] Ash of War: Vow of the Indomitable 540208")] - TeardropScarabLiurniaAshOfWarVowOfTheIndomitable = 540208, + [Annotation(Name = "[Teardrop Scarab - Liurnia] Ash of War: Vow of the Indomitable 540208")] + TeardropScarabLiurniaAshOfWarVowOfTheIndomitable = 540208, - [Annotation(Name = "[Teardrop Scarab - Liurnia] Ash of War: Shield Bash 540210")] - TeardropScarabLiurniaAshOfWarShieldBash = 540210, + [Annotation(Name = "[Teardrop Scarab - Liurnia] Ash of War: Shield Bash 540210")] + TeardropScarabLiurniaAshOfWarShieldBash = 540210, - [Annotation(Name = "[Teardrop Scarab - Liurnia] Bloodflame Blade 540218")] - TeardropScarabLiurniaBloodflameBlade = 540218, + [Annotation(Name = "[Teardrop Scarab - Liurnia] Bloodflame Blade 540218")] + TeardropScarabLiurniaBloodflameBlade = 540218, - [Annotation(Name = "[Teardrop Scarab - Caria Manor] Carian Piercer 540220")] - TeardropScarabCariaManorCarianPiercer = 540220, + [Annotation(Name = "[Teardrop Scarab - Caria Manor] Carian Piercer 540220")] + TeardropScarabCariaManorCarianPiercer = 540220, - [Annotation(Name = "[Teardrop Scarab - Liurnia] Ash of War: Barbaric Roar 540224")] - TeardropScarabLiurniaAshOfWarBarbaricRoar = 540224, + [Annotation(Name = "[Teardrop Scarab - Liurnia] Ash of War: Barbaric Roar 540224")] + TeardropScarabLiurniaAshOfWarBarbaricRoar = 540224, - [Annotation(Name = "[Teardrop Scarab - Liurnia] Frenzied Burst 540236")] - TeardropScarabLiurniaFrenziedBurst = 540236, + [Annotation(Name = "[Teardrop Scarab - Liurnia] Frenzied Burst 540236")] + TeardropScarabLiurniaFrenziedBurst = 540236, - [Annotation(Name = "[Teardrop Scarab - Liurnia] Ash of War: Sword Dance 540238")] - TeardropScarabLiurniaAshOfWarSwordDance = 540238, + [Annotation(Name = "[Teardrop Scarab - Liurnia] Ash of War: Sword Dance 540238")] + TeardropScarabLiurniaAshOfWarSwordDance = 540238, - [Annotation(Name = "[Teardrop Scarab - Caria Manor] Frozen Armament 540250")] - TeardropScarabCariaManorFrozenArmament = 540250, + [Annotation(Name = "[Teardrop Scarab - Caria Manor] Frozen Armament 540250")] + TeardropScarabCariaManorFrozenArmament = 540250, - [Annotation(Name = "[Teardrop Scarab - Liurnia] Somber Smithing Stone [2] 540252")] - TeardropScarabLiurniaSomberSmithingStone2 = 540252, + [Annotation(Name = "[Teardrop Scarab - Liurnia] Somber Smithing Stone [2] 540252")] + TeardropScarabLiurniaSomberSmithingStone2 = 540252, - [Annotation(Name = "[Teardrop Scarab - Liurnia] Somber Smithing Stone [2] 540254")] - TeardropScarabLiurniaSomberSmithingStone2_ = 540254, + [Annotation(Name = "[Teardrop Scarab - Liurnia] Somber Smithing Stone [2] 540254")] + TeardropScarabLiurniaSomberSmithingStone2_ = 540254, - [Annotation(Name = "[Teardrop Scarab - Liurnia] Somber Smithing Stone [3] 540256")] - TeardropScarabLiurniaSomberSmithingStone3 = 540256, + [Annotation(Name = "[Teardrop Scarab - Liurnia] Somber Smithing Stone [3] 540256")] + TeardropScarabLiurniaSomberSmithingStone3 = 540256, - [Annotation(Name = "[Teardrop Scarab - Liurnia] Somber Smithing Stone [3] 540258")] - TeardropScarabLiurniaSomberSmithingStone3_ = 540258, + [Annotation(Name = "[Teardrop Scarab - Liurnia] Somber Smithing Stone [3] 540258")] + TeardropScarabLiurniaSomberSmithingStone3_ = 540258, - [Annotation(Name = "[Teardrop Scarab - Liurnia] Somber Smithing Stone [2] 540260")] - TeardropScarabLiurniaSomberSmithingStone2__ = 540260, + [Annotation(Name = "[Teardrop Scarab - Liurnia] Somber Smithing Stone [2] 540260")] + TeardropScarabLiurniaSomberSmithingStone2__ = 540260, - [Annotation(Name = "[Teardrop Scarab - Liurnia] Somber Smithing Stone [2] 540262")] - TeardropScarabLiurniaSomberSmithingStone2___ = 540262, + [Annotation(Name = "[Teardrop Scarab - Liurnia] Somber Smithing Stone [2] 540262")] + TeardropScarabLiurniaSomberSmithingStone2___ = 540262, - [Annotation(Name = "[Teardrop Scarab - Liurnia] Somber Smithing Stone [2] 540264")] - TeardropScarabLiurniaSomberSmithingStone2____ = 540264, + [Annotation(Name = "[Teardrop Scarab - Liurnia] Somber Smithing Stone [2] 540264")] + TeardropScarabLiurniaSomberSmithingStone2____ = 540264, - [Annotation(Name = "[Teardrop Scarab - Raya Lucaria Academy] Ash of War: Spectral Lance 540272")] - TeardropScarabRayaLucariaAcademyAshOfWarSpectralLance = 540272, + [Annotation(Name = "[Teardrop Scarab - Raya Lucaria Academy] Ash of War: Spectral Lance 540272")] + TeardropScarabRayaLucariaAcademyAshOfWarSpectralLance = 540272, - [Annotation(Name = "[Teardrop Scarab - Raya Lucaria Academy] Somber Smithing Stone [4] 540290")] - TeardropScarabRayaLucariaAcademySomberSmithingStone4 = 540290, + [Annotation(Name = "[Teardrop Scarab - Raya Lucaria Academy] Somber Smithing Stone [4] 540290")] + TeardropScarabRayaLucariaAcademySomberSmithingStone4 = 540290, - [Annotation(Name = "[Teardrop Scarab - Altus Plateau] Ash of War: Sacred Order 540300")] - TeardropScarabAltusPlateauAshOfWarSacredOrder = 540300, + [Annotation(Name = "[Teardrop Scarab - Altus Plateau] Ash of War: Sacred Order 540300")] + TeardropScarabAltusPlateauAshOfWarSacredOrder = 540300, - [Annotation(Name = "[Teardrop Scarab - Altus Plateau] Ash of War: Shield Crash 540302")] - TeardropScarabAltusPlateauAshOfWarShieldCrash = 540302, + [Annotation(Name = "[Teardrop Scarab - Altus Plateau] Ash of War: Shield Crash 540302")] + TeardropScarabAltusPlateauAshOfWarShieldCrash = 540302, - [Annotation(Name = "[Teardrop Scarab - Altus Plateau] Ash of War: Earthshaker 540304")] - TeardropScarabAltusPlateauAshOfWarEarthshaker = 540304, + [Annotation(Name = "[Teardrop Scarab - Altus Plateau] Ash of War: Earthshaker 540304")] + TeardropScarabAltusPlateauAshOfWarEarthshaker = 540304, - [Annotation(Name = "[Teardrop Scarab - Altus Plateau] Ash of War: Blood Blade 540306")] - TeardropScarabAltusPlateauAshOfWarBloodBlade = 540306, + [Annotation(Name = "[Teardrop Scarab - Altus Plateau] Ash of War: Blood Blade 540306")] + TeardropScarabAltusPlateauAshOfWarBloodBlade = 540306, - [Annotation(Name = "[Teardrop Scarab - Altus Plateau] Ash of War: Golden Slam 540308")] - TeardropScarabAltusPlateauAshOfWarGoldenSlam = 540308, + [Annotation(Name = "[Teardrop Scarab - Altus Plateau] Ash of War: Golden Slam 540308")] + TeardropScarabAltusPlateauAshOfWarGoldenSlam = 540308, - [Annotation(Name = "[Teardrop Scarab - Altus Plateau] Ash of War: Lightning Ram 540310")] - TeardropScarabAltusPlateauAshOfWarLightningRam = 540310, + [Annotation(Name = "[Teardrop Scarab - Altus Plateau] Ash of War: Lightning Ram 540310")] + TeardropScarabAltusPlateauAshOfWarLightningRam = 540310, - [Annotation(Name = "[Teardrop Scarab - Altus Plateau] Protection of the Erdtree 540312")] - TeardropScarabAltusPlateauProtectionOfTheErdtree = 540312, + [Annotation(Name = "[Teardrop Scarab - Altus Plateau] Protection of the Erdtree 540312")] + TeardropScarabAltusPlateauProtectionOfTheErdtree = 540312, - [Annotation(Name = "[Teardrop Scarab - Capital Outskirts] Ash of War: Prayerful Strike 540314")] - TeardropScarabCapitalOutskirtsAshOfWarPrayerfulStrike = 540314, + [Annotation(Name = "[Teardrop Scarab - Capital Outskirts] Ash of War: Prayerful Strike 540314")] + TeardropScarabCapitalOutskirtsAshOfWarPrayerfulStrike = 540314, - [Annotation(Name = "[Teardrop Scarab - Capital Outskirts] Ash of War: Golden Parry 540316")] - TeardropScarabCapitalOutskirtsAshOfWarGoldenParry = 540316, + [Annotation(Name = "[Teardrop Scarab - Capital Outskirts] Ash of War: Golden Parry 540316")] + TeardropScarabCapitalOutskirtsAshOfWarGoldenParry = 540316, - [Annotation(Name = "[Teardrop Scarab - Capital Outskirts] Ash of War: Lightning Slash 540318")] - TeardropScarabCapitalOutskirtsAshOfWarLightningSlash = 540318, + [Annotation(Name = "[Teardrop Scarab - Capital Outskirts] Ash of War: Lightning Slash 540318")] + TeardropScarabCapitalOutskirtsAshOfWarLightningSlash = 540318, - [Annotation(Name = "[Teardrop Scarab - Capital Outskirts] Somber Smithing Stone [5] 540320")] - TeardropScarabCapitalOutskirtsSomberSmithingStone5 = 540320, + [Annotation(Name = "[Teardrop Scarab - Capital Outskirts] Somber Smithing Stone [5] 540320")] + TeardropScarabCapitalOutskirtsSomberSmithingStone5 = 540320, - [Annotation(Name = "[Teardrop Scarab - Mt. Gelmir] Ash of War: Barrage 540332")] - TeardropScarabMtGelmirAshOfWarBarrage = 540332, + [Annotation(Name = "[Teardrop Scarab - Mt. Gelmir] Ash of War: Barrage 540332")] + TeardropScarabMtGelmirAshOfWarBarrage = 540332, - [Annotation(Name = "[Teardrop Scarab - Mt. Gelmir] Ash of War: Through and Through 540334")] - TeardropScarabMtGelmirAshOfWarThroughandThrough = 540334, + [Annotation(Name = "[Teardrop Scarab - Mt. Gelmir] Ash of War: Through and Through 540334")] + TeardropScarabMtGelmirAshOfWarThroughandThrough = 540334, - [Annotation(Name = "[Teardrop Scarab - Leyndell] Barrier of Gold 540370")] - TeardropScarabLeyndellBarrierOfGold = 540370, + [Annotation(Name = "[Teardrop Scarab - Leyndell] Barrier of Gold 540370")] + TeardropScarabLeyndellBarrierOfGold = 540370, - [Annotation(Name = "[Teardrop Scarab - Leyndell] Ash of War: Thunderbolt 540372")] - TeardropScarabLeyndellAshOfWarThunderbolt = 540372, + [Annotation(Name = "[Teardrop Scarab - Leyndell] Ash of War: Thunderbolt 540372")] + TeardropScarabLeyndellAshOfWarThunderbolt = 540372, - [Annotation(Name = "[Teardrop Scarab - Caelid] Whirl, O Flame! 540400")] - TeardropScarabCaelidWhirlOFlame = 540400, + [Annotation(Name = "[Teardrop Scarab - Caelid] Whirl, O Flame! 540400")] + TeardropScarabCaelidWhirlOFlame = 540400, - [Annotation(Name = "[Teardrop Scarab - Caelid] Ash of War: Lifesteal Fist 540402")] - TeardropScarabCaelidAshOfWarLifestealFist = 540402, + [Annotation(Name = "[Teardrop Scarab - Caelid] Ash of War: Lifesteal Fist 540402")] + TeardropScarabCaelidAshOfWarLifestealFist = 540402, - [Annotation(Name = "[Teardrop Scarab - Caelid] Ash of War: Sacred Ring of Light 540404")] - TeardropScarabCaelidAshOfWarSacredRingOfLight = 540404, + [Annotation(Name = "[Teardrop Scarab - Caelid] Ash of War: Sacred Ring of Light 540404")] + TeardropScarabCaelidAshOfWarSacredRingOfLight = 540404, - [Annotation(Name = "[Teardrop Scarab - Caelid] Ash of War: Poisonous Mist 540406")] - TeardropScarabCaelidAshOfWarPoisonousMist = 540406, + [Annotation(Name = "[Teardrop Scarab - Caelid] Ash of War: Poisonous Mist 540406")] + TeardropScarabCaelidAshOfWarPoisonousMist = 540406, - [Annotation(Name = "[Teardrop Scarab - Redmane Castle] Ash of War: Flaming Strike 540408")] - TeardropScarabRedmaneCastleAshOfWarFlamingStrike = 540408, + [Annotation(Name = "[Teardrop Scarab - Redmane Castle] Ash of War: Flaming Strike 540408")] + TeardropScarabRedmaneCastleAshOfWarFlamingStrike = 540408, - [Annotation(Name = "[Teardrop Scarab - Caelid] Ash of War: Flame of the Redmanes 540410")] - TeardropScarabCaelidAshOfWarFlameOfTheRedmanes = 540410, + [Annotation(Name = "[Teardrop Scarab - Caelid] Ash of War: Flame of the Redmanes 540410")] + TeardropScarabCaelidAshOfWarFlameOfTheRedmanes = 540410, - [Annotation(Name = "[Teardrop Scarab - Dragonbarrow] Ash of War: Sky Shot 540412")] - TeardropScarabDragonbarrowAshOfWarSkyShot = 540412, + [Annotation(Name = "[Teardrop Scarab - Dragonbarrow] Ash of War: Sky Shot 540412")] + TeardropScarabDragonbarrowAshOfWarSkyShot = 540412, - [Annotation(Name = "[Teardrop Scarab - Dragonbarrow] Ash of War: Cragblade 540414")] - TeardropScarabDragonbarrowAshOfWarCragblade = 540414, + [Annotation(Name = "[Teardrop Scarab - Dragonbarrow] Ash of War: Cragblade 540414")] + TeardropScarabDragonbarrowAshOfWarCragblade = 540414, - [Annotation(Name = "[Teardrop Scarab - Caelid] Poison Armament 540416")] - TeardropScarabCaelidPoisonArmament = 540416, + [Annotation(Name = "[Teardrop Scarab - Caelid] Poison Armament 540416")] + TeardropScarabCaelidPoisonArmament = 540416, - [Annotation(Name = "[Teardrop Scarab - Caelid] Ash of War: Double Slash 540418")] - TeardropScarabCaelidAshOfWarDoubleSlash = 540418, + [Annotation(Name = "[Teardrop Scarab - Caelid] Ash of War: Double Slash 540418")] + TeardropScarabCaelidAshOfWarDoubleSlash = 540418, - [Annotation(Name = "[Teardrop Scarab - Caelid] Bestial Constitution 540420")] - TeardropScarabCaelidBestialConstitution = 540420, + [Annotation(Name = "[Teardrop Scarab - Caelid] Bestial Constitution 540420")] + TeardropScarabCaelidBestialConstitution = 540420, - [Annotation(Name = "[Teardrop Scarab - Caelid] Somber Smithing Stone [4] 540422")] - TeardropScarabCaelidSomberSmithingStone4 = 540422, + [Annotation(Name = "[Teardrop Scarab - Caelid] Somber Smithing Stone [4] 540422")] + TeardropScarabCaelidSomberSmithingStone4 = 540422, - [Annotation(Name = "[Teardrop Scarab - Caelid] Somber Smithing Stone [4] 540424")] - TeardropScarabCaelidSomberSmithingStone4_ = 540424, + [Annotation(Name = "[Teardrop Scarab - Caelid] Somber Smithing Stone [4] 540424")] + TeardropScarabCaelidSomberSmithingStone4_ = 540424, - [Annotation(Name = "[Teardrop Scarab - Caelid] Somber Smithing Stone [8] 540426")] - TeardropScarabCaelidSomberSmithingStone8 = 540426, + [Annotation(Name = "[Teardrop Scarab - Caelid] Somber Smithing Stone [8] 540426")] + TeardropScarabCaelidSomberSmithingStone8 = 540426, - [Annotation(Name = "[Teardrop Scarab - Caelid] Somber Smithing Stone [9] 540428")] - TeardropScarabCaelidSomberSmithingStone9 = 540428, + [Annotation(Name = "[Teardrop Scarab - Caelid] Somber Smithing Stone [9] 540428")] + TeardropScarabCaelidSomberSmithingStone9 = 540428, - [Annotation(Name = "Smithing Stone [1] 540500")] - SmithingStone1 = 540500, + [Annotation(Name = "Smithing Stone [1] 540500")] + SmithingStone1 = 540500, - [Annotation(Name = "Smithing Stone [1] 540502")] - SmithingStone1_ = 540502, + [Annotation(Name = "Smithing Stone [1] 540502")] + SmithingStone1_ = 540502, - [Annotation(Name = "Smithing Stone [1] 540504")] - SmithingStone1__ = 540504, + [Annotation(Name = "Smithing Stone [1] 540504")] + SmithingStone1__ = 540504, - [Annotation(Name = "Smithing Stone [1] 540506")] - SmithingStone1___ = 540506, + [Annotation(Name = "Smithing Stone [1] 540506")] + SmithingStone1___ = 540506, - [Annotation(Name = "Smithing Stone [1] 540508")] - SmithingStone1____ = 540508, + [Annotation(Name = "Smithing Stone [1] 540508")] + SmithingStone1____ = 540508, - [Annotation(Name = "[Teardrop Scarab - Mountaintops of the Giants] Ash of War: Seppuku 540510")] - TeardropScarabMountaintopsOfTheGiantsAshOfWarSeppuku = 540510, + [Annotation(Name = "[Teardrop Scarab - Mountaintops of the Giants] Ash of War: Seppuku 540510")] + TeardropScarabMountaintopsOfTheGiantsAshOfWarSeppuku = 540510, - [Annotation(Name = "[Teardrop Scarab - Mountaintops of the Giants] Ash of War: Troll's Roar 540512")] - TeardropScarabMountaintopsOfTheGiantsAshOfWarTrollsRoar = 540512, + [Annotation(Name = "[Teardrop Scarab - Mountaintops of the Giants] Ash of War: Troll's Roar 540512")] + TeardropScarabMountaintopsOfTheGiantsAshOfWarTrollsRoar = 540512, - [Annotation(Name = "[Teardrop Scarab - Giant-Conquering Hero's Grave] Flame, Protect Me 540514")] - TeardropScarabGiantConqueringHerosGraveFlameProtectMe = 540514, + [Annotation(Name = "[Teardrop Scarab - Giant-Conquering Hero's Grave] Flame, Protect Me 540514")] + TeardropScarabGiantConqueringHerosGraveFlameProtectMe = 540514, - [Annotation(Name = "[Teardrop Scarab - Forbidden Lands] Ash of War: Prelate's Charge 540516")] - TeardropScarabForbiddenLandsAshOfWarPrelatesCharge = 540516, + [Annotation(Name = "[Teardrop Scarab - Forbidden Lands] Ash of War: Prelate's Charge 540516")] + TeardropScarabForbiddenLandsAshOfWarPrelatesCharge = 540516, - [Annotation(Name = "Smithing Stone [1] 540520")] - SmithingStone1_____ = 540520, + [Annotation(Name = "Smithing Stone [1] 540520")] + SmithingStone1_____ = 540520, - [Annotation(Name = "Smithing Stone [1] 540522")] - SmithingStone1______ = 540522, + [Annotation(Name = "Smithing Stone [1] 540522")] + SmithingStone1______ = 540522, - [Annotation(Name = "[Teardrop Scarab - Consecrated Snowfield] Ash of War: White Shadow's Lure 540524")] - TeardropScarabConsecratedSnowfieldAshOfWarWhiteShadowsLure = 540524, + [Annotation(Name = "[Teardrop Scarab - Consecrated Snowfield] Ash of War: White Shadow's Lure 540524")] + TeardropScarabConsecratedSnowfieldAshOfWarWhiteShadowsLure = 540524, - [Annotation(Name = "Smithing Stone [1] 540526")] - SmithingStone1_______ = 540526, + [Annotation(Name = "Smithing Stone [1] 540526")] + SmithingStone1_______ = 540526, - [Annotation(Name = "Smithing Stone [1] 540528")] - SmithingStone1________ = 540528, + [Annotation(Name = "Smithing Stone [1] 540528")] + SmithingStone1________ = 540528, - [Annotation(Name = "Golden Rune [1] 540570")] - GoldenRune1 = 540570, + [Annotation(Name = "Golden Rune [1] 540570")] + GoldenRune1 = 540570, - [Annotation(Name = "Golden Rune [1] 540572")] - GoldenRune1_ = 540572, + [Annotation(Name = "Golden Rune [1] 540572")] + GoldenRune1_ = 540572, - [Annotation(Name = "Golden Rune [1] 540574")] - GoldenRune1__ = 540574, + [Annotation(Name = "Golden Rune [1] 540574")] + GoldenRune1__ = 540574, - [Annotation(Name = "Golden Rune [1] 540576")] - GoldenRune1___ = 540576, + [Annotation(Name = "Golden Rune [1] 540576")] + GoldenRune1___ = 540576, - [Annotation(Name = "[Teardrop Scarab - Siofra River] Somber Smithing Stone [5] 540590")] - TeardropScarabSiofraRiverSomberSmithingStone5 = 540590, + [Annotation(Name = "[Teardrop Scarab - Siofra River] Somber Smithing Stone [5] 540590")] + TeardropScarabSiofraRiverSomberSmithingStone5 = 540590, - [Annotation(Name = "[Teardrop Scarab - Siofra River] Somber Smithing Stone [5] 540592")] - TeardropScarabSiofraRiverSomberSmithingStone5_ = 540592, + [Annotation(Name = "[Teardrop Scarab - Siofra River] Somber Smithing Stone [5] 540592")] + TeardropScarabSiofraRiverSomberSmithingStone5_ = 540592, - [Annotation(Name = "[Teardrop Scarab - Siofra River] Somber Smithing Stone [6] 540600")] - TeardropScarabSiofraRiverSomberSmithingStone6 = 540600, + [Annotation(Name = "[Teardrop Scarab - Siofra River] Somber Smithing Stone [6] 540600")] + TeardropScarabSiofraRiverSomberSmithingStone6 = 540600, - [Annotation(Name = "[Teardrop Scarab - Siofra River] Somber Smithing Stone [6] 540602")] - TeardropScarabSiofraRiverSomberSmithingStone6_ = 540602, + [Annotation(Name = "[Teardrop Scarab - Siofra River] Somber Smithing Stone [6] 540602")] + TeardropScarabSiofraRiverSomberSmithingStone6_ = 540602, - [Annotation(Name = "[Teardrop Scarab - Siofra River] Great Oracular Bubble 540610")] - TeardropScarabSiofraRiverGreatOracularBubble = 540610, + [Annotation(Name = "[Teardrop Scarab - Siofra River] Great Oracular Bubble 540610")] + TeardropScarabSiofraRiverGreatOracularBubble = 540610, - [Annotation(Name = "Golden Rune [1] 540612")] - GoldenRune1____ = 540612, + [Annotation(Name = "Golden Rune [1] 540612")] + GoldenRune1____ = 540612, - [Annotation(Name = "Golden Rune [1] 540614")] - GoldenRune1_____ = 540614, + [Annotation(Name = "Golden Rune [1] 540614")] + GoldenRune1_____ = 540614, - [Annotation(Name = "Golden Rune [1] 540616")] - GoldenRune1______ = 540616, + [Annotation(Name = "Golden Rune [1] 540616")] + GoldenRune1______ = 540616, - [Annotation(Name = "Golden Rune [1] 540618")] - GoldenRune1_______ = 540618, + [Annotation(Name = "Golden Rune [1] 540618")] + GoldenRune1_______ = 540618, - [Annotation(Name = "[Teardrop Scarab - Siofra River] Ash of War: Square Off 540630")] - TeardropScarabSiofraRiverAshOfWarSquareOff = 540630, + [Annotation(Name = "[Teardrop Scarab - Siofra River] Ash of War: Square Off 540630")] + TeardropScarabSiofraRiverAshOfWarSquareOff = 540630, - [Annotation(Name = "Golden Rune [1] 540632")] - GoldenRune1________ = 540632, + [Annotation(Name = "Golden Rune [1] 540632")] + GoldenRune1________ = 540632, - [Annotation(Name = "Golden Rune [1] 540634")] - GoldenRune1_________ = 540634, + [Annotation(Name = "Golden Rune [1] 540634")] + GoldenRune1_________ = 540634, - [Annotation(Name = "Golden Rune [1] 540636")] - GoldenRune1__________ = 540636, + [Annotation(Name = "Golden Rune [1] 540636")] + GoldenRune1__________ = 540636, - [Annotation(Name = "Golden Rune [1] 540638")] - GoldenRune1___________ = 540638, + [Annotation(Name = "Golden Rune [1] 540638")] + GoldenRune1___________ = 540638, - [Annotation(Name = "Golden Rune [1] 540640")] - GoldenRune1____________ = 540640, + [Annotation(Name = "Golden Rune [1] 540640")] + GoldenRune1____________ = 540640, - [Annotation(Name = "[Teardrop Scarab - Nokron] Somber Smithing Stone [5] 540642")] - TeardropScarabNokronSomberSmithingStone5 = 540642, + [Annotation(Name = "[Teardrop Scarab - Nokron] Somber Smithing Stone [5] 540642")] + TeardropScarabNokronSomberSmithingStone5 = 540642, - [Annotation(Name = "Golden Rune [1] 540644")] - GoldenRune1_____________ = 540644, + [Annotation(Name = "Golden Rune [1] 540644")] + GoldenRune1_____________ = 540644, - [Annotation(Name = "[Teardrop Scarab - Nokron] Ash of War: Enchanted Shot 540646")] - TeardropScarabNokronAshOfWarEnchantedShot = 540646, + [Annotation(Name = "[Teardrop Scarab - Nokron] Ash of War: Enchanted Shot 540646")] + TeardropScarabNokronAshOfWarEnchantedShot = 540646, - [Annotation(Name = "[Teardrop Scarab - Nokron] Order Healing 540648")] - TeardropScarabNokronOrderHealing = 540648, + [Annotation(Name = "[Teardrop Scarab - Nokron] Order Healing 540648")] + TeardropScarabNokronOrderHealing = 540648, - [Annotation(Name = "Golden Rune [1] 540650")] - GoldenRune1______________ = 540650, + [Annotation(Name = "Golden Rune [1] 540650")] + GoldenRune1______________ = 540650, - [Annotation(Name = "[Teardrop Scarab - Siofra River] Oracle Bubbles 540652")] - TeardropScarabSiofraRiverOracleBubbles = 540652, + [Annotation(Name = "[Teardrop Scarab - Siofra River] Oracle Bubbles 540652")] + TeardropScarabSiofraRiverOracleBubbles = 540652, - [Annotation(Name = "[Teardrop Scarab - Deeproot Depths] Ash of War: Golden Land 540660")] - TeardropScarabDeeprootDepthsAshOfWarGoldenLand = 540660, + [Annotation(Name = "[Teardrop Scarab - Deeproot Depths] Ash of War: Golden Land 540660")] + TeardropScarabDeeprootDepthsAshOfWarGoldenLand = 540660, - [Annotation(Name = "Golden Rune [1] 540662")] - GoldenRune1_______________ = 540662, + [Annotation(Name = "Golden Rune [1] 540662")] + GoldenRune1_______________ = 540662, - [Annotation(Name = "Golden Rune [1] 540664")] - GoldenRune1________________ = 540664, + [Annotation(Name = "Golden Rune [1] 540664")] + GoldenRune1________________ = 540664, - [Annotation(Name = "Golden Rune [1] 540666")] - GoldenRune1_________________ = 540666, + [Annotation(Name = "Golden Rune [1] 540666")] + GoldenRune1_________________ = 540666, - [Annotation(Name = "Somber Smithing Stone [6] 540668")] - SomberSmithingStone6 = 540668, + [Annotation(Name = "Somber Smithing Stone [6] 540668")] + SomberSmithingStone6 = 540668, - [Annotation(Name = "Somber Smithing Stone [6] 540670")] - SomberSmithingStone6_ = 540670, + [Annotation(Name = "Somber Smithing Stone [6] 540670")] + SomberSmithingStone6_ = 540670, - [Annotation(Name = "Golden Rune [1] 540680")] - GoldenRune1__________________ = 540680, + [Annotation(Name = "Golden Rune [1] 540680")] + GoldenRune1__________________ = 540680, - [Annotation(Name = "Golden Rune [1] 540682")] - GoldenRune1___________________ = 540682, + [Annotation(Name = "Golden Rune [1] 540682")] + GoldenRune1___________________ = 540682, - [Annotation(Name = "Golden Rune [1] 540684")] - GoldenRune1____________________ = 540684, + [Annotation(Name = "Golden Rune [1] 540684")] + GoldenRune1____________________ = 540684, - [Annotation(Name = "[Teardrop Scarab - Mohgwyn Dynasty] Ash of War: Blood Tax 540686")] - TeardropScarabMohgwynDynastyAshOfWarBloodTax = 540686, + [Annotation(Name = "[Teardrop Scarab - Mohgwyn Dynasty] Ash of War: Blood Tax 540686")] + TeardropScarabMohgwynDynastyAshOfWarBloodTax = 540686, - [Annotation(Name = "[Teardrop Scarab - Crumbling Farum Azula] Golden Lightning Fortification 540772")] - TeardropScarabCrumblingFarumAzulaGoldenLightningFortification = 540772, + [Annotation(Name = "[Teardrop Scarab - Crumbling Farum Azula] Golden Lightning Fortification 540772")] + TeardropScarabCrumblingFarumAzulaGoldenLightningFortification = 540772, - [Annotation(Name = "[Info Item] About Sites of Grace 550000")] - InfoItemAboutSitesOfGrace = 550000, + [Annotation(Name = "[Info Item] About Sites of Grace 550000")] + InfoItemAboutSitesOfGrace = 550000, - [Annotation(Name = "[Info Item] About Sorceries and Incantations 550010")] - InfoItemAboutSorceriesandIncantations = 550010, + [Annotation(Name = "[Info Item] About Sorceries and Incantations 550010")] + InfoItemAboutSorceriesandIncantations = 550010, - [Annotation(Name = "[Info Item] About Bows 550020")] - InfoItemAboutBows = 550020, + [Annotation(Name = "[Info Item] About Bows 550020")] + InfoItemAboutBows = 550020, - [Annotation(Name = "[Info Item] About Crouching 550030")] - InfoItemAboutCrouching = 550030, + [Annotation(Name = "[Info Item] About Crouching 550030")] + InfoItemAboutCrouching = 550030, - [Annotation(Name = "[Info Item] About Stance-Breaking 550040")] - InfoItemAboutStanceBreaking = 550040, + [Annotation(Name = "[Info Item] About Stance-Breaking 550040")] + InfoItemAboutStanceBreaking = 550040, - [Annotation(Name = "[Info Item] About Stakes of Marika 550050")] - InfoItemAboutStakesOfMarika = 550050, + [Annotation(Name = "[Info Item] About Stakes of Marika 550050")] + InfoItemAboutStakesOfMarika = 550050, - [Annotation(Name = "[Info Item] About Guard Counters 550060")] - InfoItemAboutGuardCounters = 550060, + [Annotation(Name = "[Info Item] About Guard Counters 550060")] + InfoItemAboutGuardCounters = 550060, - [Annotation(Name = "[Info Item] About the Map 550070")] - InfoItemAboutTheMap = 550070, + [Annotation(Name = "[Info Item] About the Map 550070")] + InfoItemAboutTheMap = 550070, - [Annotation(Name = "[Info Item] About Guidance of Grace 550080")] - InfoItemAboutGuidanceOfGrace = 550080, + [Annotation(Name = "[Info Item] About Guidance of Grace 550080")] + InfoItemAboutGuidanceOfGrace = 550080, - [Annotation(Name = "[Info Item] About Horseback Riding 550090")] - InfoItemAboutHorsebackRiding = 550090, + [Annotation(Name = "[Info Item] About Horseback Riding 550090")] + InfoItemAboutHorsebackRiding = 550090, - [Annotation(Name = "[Info Item] About Death 550100")] - InfoItemAboutDeath = 550100, + [Annotation(Name = "[Info Item] About Death 550100")] + InfoItemAboutDeath = 550100, - [Annotation(Name = "[Info Item] About Summoning Spirits 550110")] - InfoItemAboutSummoningSpirits = 550110, + [Annotation(Name = "[Info Item] About Summoning Spirits 550110")] + InfoItemAboutSummoningSpirits = 550110, - [Annotation(Name = "[Info Item] About Guarding 550120")] - InfoItemAboutGuarding = 550120, + [Annotation(Name = "[Info Item] About Guarding 550120")] + InfoItemAboutGuarding = 550120, - [Annotation(Name = "[Info Item] About Item Crafting 550130")] - InfoItemAboutItemCrafting = 550130, + [Annotation(Name = "[Info Item] About Item Crafting 550130")] + InfoItemAboutItemCrafting = 550130, - [Annotation(Name = "[Info Item] About Flask of Wondrous Physick 550150")] - InfoItemAboutFlaskOfWondrousPhysick = 550150, + [Annotation(Name = "[Info Item] About Flask of Wondrous Physick 550150")] + InfoItemAboutFlaskOfWondrousPhysick = 550150, - [Annotation(Name = "[Info Item] About Adding Skills 550160")] - InfoItemAboutAddingSkills = 550160, + [Annotation(Name = "[Info Item] About Adding Skills 550160")] + InfoItemAboutAddingSkills = 550160, - [Annotation(Name = "[Info Item] About Birdseye Telescopes 550170")] - InfoItemAboutBirdseyeTelescopes = 550170, + [Annotation(Name = "[Info Item] About Birdseye Telescopes 550170")] + InfoItemAboutBirdseyeTelescopes = 550170, - [Annotation(Name = "[Info Item] About Spiritspring Jumping 550180")] - InfoItemAboutSpiritspringJumping = 550180, + [Annotation(Name = "[Info Item] About Spiritspring Jumping 550180")] + InfoItemAboutSpiritspringJumping = 550180, - [Annotation(Name = "[Info Item] About Vanquishing Enemy Groups 550190")] - InfoItemAboutVanquishingEnemyGroups = 550190, + [Annotation(Name = "[Info Item] About Vanquishing Enemy Groups 550190")] + InfoItemAboutVanquishingEnemyGroups = 550190, - [Annotation(Name = "[Info Item] About Teardrop Scarabs 550200")] - InfoItemAboutTeardropScarabs = 550200, + [Annotation(Name = "[Info Item] About Teardrop Scarabs 550200")] + InfoItemAboutTeardropScarabs = 550200, - [Annotation(Name = "[Info Item] About Summoning Other Players 550210")] - InfoItemAboutSummoningOtherPlayers = 550210, + [Annotation(Name = "[Info Item] About Summoning Other Players 550210")] + InfoItemAboutSummoningOtherPlayers = 550210, - [Annotation(Name = "[Info Item] About Cooperative Multiplayer 550220")] - InfoItemAboutCooperativeMultiplayer = 550220, + [Annotation(Name = "[Info Item] About Cooperative Multiplayer 550220")] + InfoItemAboutCooperativeMultiplayer = 550220, - [Annotation(Name = "[Info Item] About Competitive Multiplayer 550230")] - InfoItemAboutCompetitiveMultiplayer = 550230, + [Annotation(Name = "[Info Item] About Competitive Multiplayer 550230")] + InfoItemAboutCompetitiveMultiplayer = 550230, - [Annotation(Name = "[Info Item] About Invasion Multiplayer 550240")] - InfoItemAboutInvasionMultiplayer = 550240, + [Annotation(Name = "[Info Item] About Invasion Multiplayer 550240")] + InfoItemAboutInvasionMultiplayer = 550240, - [Annotation(Name = "[Info Item] About Hunter Multiplayer 550250")] - InfoItemAboutHunterMultiplayer = 550250, + [Annotation(Name = "[Info Item] About Hunter Multiplayer 550250")] + InfoItemAboutHunterMultiplayer = 550250, - [Annotation(Name = "[Info Item] About Summoning Pools 550260")] - InfoItemAboutSummoningPools = 550260, + [Annotation(Name = "[Info Item] About Summoning Pools 550260")] + InfoItemAboutSummoningPools = 550260, - [Annotation(Name = "[Info Item] About Monument Icon 550270")] - InfoItemAboutMonumentIcon = 550270, + [Annotation(Name = "[Info Item] About Monument Icon 550270")] + InfoItemAboutMonumentIcon = 550270, - [Annotation(Name = "[Info Item] About Requesting Help from Hunters 550280")] - InfoItemAboutRequestingHelpfromHunters = 550280, + [Annotation(Name = "[Info Item] About Requesting Help from Hunters 550280")] + InfoItemAboutRequestingHelpfromHunters = 550280, - [Annotation(Name = "[Info Item] About Skills 550290")] - InfoItemAboutSkills = 550290, + [Annotation(Name = "[Info Item] About Skills 550290")] + InfoItemAboutSkills = 550290, - [Annotation(Name = "[Limgrave - Artist's Shack] \"Homing Instinct\" Painting 580000")] - LimgraveArtistsShackHomingInstinctPainting = 580000, + [Annotation(Name = "[Limgrave - Artist's Shack] \"Homing Instinct\" Painting 580000")] + LimgraveArtistsShackHomingInstinctPainting = 580000, - [Annotation(Name = "[Liurnia - Artist's Shack] \"Resurrection\" Painting 580010")] - LiurniaArtistsShackResurrectionPainting = 580010, + [Annotation(Name = "[Liurnia - Artist's Shack] \"Resurrection\" Painting 580010")] + LiurniaArtistsShackResurrectionPainting = 580010, - [Annotation(Name = "[Altus Plateau - Shaded Castle] \"Champion's Song\" Painting 580020")] - AltusPlateauShadedCastleChampionsSongPainting = 580020, + [Annotation(Name = "[Altus Plateau - Shaded Castle] \"Champion's Song\" Painting 580020")] + AltusPlateauShadedCastleChampionsSongPainting = 580020, - [Annotation(Name = "[Consecrated Snowfield - Castle Sol] \"Sorcerer\" Painting 580030")] - ConsecratedSnowfieldCastleSolSorcererPainting = 580030, + [Annotation(Name = "[Consecrated Snowfield - Castle Sol] \"Sorcerer\" Painting 580030")] + ConsecratedSnowfieldCastleSolSorcererPainting = 580030, - [Annotation(Name = "[Stormveil Castle] \"Prophecy\" Painting 580040")] - StormveilCastleProphecyPainting = 580040, + [Annotation(Name = "[Stormveil Castle] \"Prophecy\" Painting 580040")] + StormveilCastleProphecyPainting = 580040, - [Annotation(Name = "[Leyndell - Fortifed Manor] \"Flightless Bird\" Painting 580050")] - LeyndellFortifedManorFlightlessBirdPainting = 580050, + [Annotation(Name = "[Leyndell - Fortifed Manor] \"Flightless Bird\" Painting 580050")] + LeyndellFortifedManorFlightlessBirdPainting = 580050, - [Annotation(Name = "[Caelid - Sellia] \"Redmane\" Painting 580060")] - CaelidSelliaRedmanePainting = 580060, + [Annotation(Name = "[Caelid - Sellia] \"Redmane\" Painting 580060")] + CaelidSelliaRedmanePainting = 580060, - [Annotation(Name = "[Reward - \"Homing Instinct\" Painting] Incantation Scarab 580300")] - RewardHomingInstinctPaintingIncantationScarab = 580300, + [Annotation(Name = "[Reward - \"Homing Instinct\" Painting] Incantation Scarab 580300")] + RewardHomingInstinctPaintingIncantationScarab = 580300, - [Annotation(Name = "[Reward - \"Resurrection\" Painting] Juvenile Scholar Cap 580310")] - RewardResurrectionPaintingJuvenileScholarCap = 580310, + [Annotation(Name = "[Reward - \"Resurrection\" Painting] Juvenile Scholar Cap 580310")] + RewardResurrectionPaintingJuvenileScholarCap = 580310, - [Annotation(Name = "[Reward - \"Champion's Song\" Painting] Harp Bow 580320")] - RewardChampionsSongPaintingHarpBow = 580320, + [Annotation(Name = "[Reward - \"Champion's Song\" Painting] Harp Bow 580320")] + RewardChampionsSongPaintingHarpBow = 580320, - [Annotation(Name = "[Reward - \"Sorcerer\" Painting] Greathood 580330")] - RewardSorcererPaintingGreathood = 580330, + [Annotation(Name = "[Reward - \"Sorcerer\" Painting] Greathood 580330")] + RewardSorcererPaintingGreathood = 580330, - [Annotation(Name = "[Reward - \"Prophecy\" Painting] Warhawk Ashes 580340")] - RewardProphecyPaintingWarhawkAshes = 580340, + [Annotation(Name = "[Reward - \"Prophecy\" Painting] Warhawk Ashes 580340")] + RewardProphecyPaintingWarhawkAshes = 580340, - [Annotation(Name = "[Reward - \"Flightless Bird\" Painting] Fire's Deadly Sin 580350")] - RewardFlightlessBirdPaintingFiresDeadlySin = 580350, + [Annotation(Name = "[Reward - \"Flightless Bird\" Painting] Fire's Deadly Sin 580350")] + RewardFlightlessBirdPaintingFiresDeadlySin = 580350, - [Annotation(Name = "[Reward - \"Redmane\" Painting] Ash of War: Rain of Arrows 580360")] - RewardRedmanePaintingAshOfWarRainOfArrows = 580360, + [Annotation(Name = "[Reward - \"Redmane\" Painting] Ash of War: Rain of Arrows 580360")] + RewardRedmanePaintingAshOfWarRainOfArrows = 580360, - [Annotation(Name = "[Melina - Third Grace Found] Spectral Steed Whistle 60100")] - MelinaThirdGraceFoundSpectralSteedWhistle = 60100, + [Annotation(Name = "[Melina - Third Grace Found] Spectral Steed Whistle 60100")] + MelinaThirdGraceFoundSpectralSteedWhistle = 60100, - [Annotation(Name = "[Melina - Morgott Killed] Rold Medallion 400001")] - MelinaMorgottKilledRoldMedallion = 400001, + [Annotation(Name = "[Melina - Morgott Killed] Rold Medallion 400001")] + MelinaMorgottKilledRoldMedallion = 400001, - [Annotation(Name = "[Unknown] 400010")] - Unknown = 400010, + [Annotation(Name = "[Unknown] 400010")] + Unknown = 400010, - [Annotation(Name = "[Unknown] Neutralizing Boluses 400020")] - UnknownNeutralizingBoluses = 400020, + [Annotation(Name = "[Unknown] Neutralizing Boluses 400020")] + UnknownNeutralizingBoluses = 400020, - [Annotation(Name = "[Unknown] 400021")] - Unknown_ = 400021, + [Annotation(Name = "[Unknown] 400021")] + Unknown_ = 400021, - [Annotation(Name = "[White-Faced Varre - ?] Festering Bloody Finger 400030")] - WhiteFacedVarreFesteringBloodyFinger = 400030, + [Annotation(Name = "[White-Faced Varre - ?] Festering Bloody Finger 400030")] + WhiteFacedVarreFesteringBloodyFinger = 400030, - [Annotation(Name = "[White-Faced Varre - Maiden Kill] Lord of Blood's Favor 400031")] - WhiteFacedVarreMaidenKillLordOfBloodsFavor = 400031, + [Annotation(Name = "[White-Faced Varre - Maiden Kill] Lord of Blood's Favor 400031")] + WhiteFacedVarreMaidenKillLordOfBloodsFavor = 400031, - [Annotation(Name = "[White-Faced Varre - 3 Invasions] Pureblood Knight's Medal 400032")] - WhiteFacedVarre3InvasionsPurebloodKnightsMedal = 400032, + [Annotation(Name = "[White-Faced Varre - 3 Invasions] Pureblood Knight's Medal 400032")] + WhiteFacedVarre3InvasionsPurebloodKnightsMedal = 400032, - [Annotation(Name = "[White-Faced Varre - Maiden Kill] Lord of Blood's Favor 400033")] - WhiteFacedVarreMaidenKillLordOfBloodsFavor_ = 400033, + [Annotation(Name = "[White-Faced Varre - Maiden Kill] Lord of Blood's Favor 400033")] + WhiteFacedVarreMaidenKillLordOfBloodsFavor_ = 400033, - [Annotation(Name = "[White-Faced Varre - Returned Oath-Cloth] Bloody Finger 60270")] - WhiteFacedVarreReturnedOathClothBloodyFinger = 60270, + [Annotation(Name = "[White-Faced Varre - Returned Oath-Cloth] Bloody Finger 60270")] + WhiteFacedVarreReturnedOathClothBloodyFinger = 60270, - [Annotation(Name = "[White-Faced Varre] 400035")] - WhiteFacedVarre = 400035, + [Annotation(Name = "[White-Faced Varre] 400035")] + WhiteFacedVarre = 400035, - [Annotation(Name = "[White-Faced Varre - Invasion] Varre's Bouquet 400037")] - WhiteFacedVarreInvasionVarresBouquet = 400037, + [Annotation(Name = "[White-Faced Varre - Invasion] Varre's Bouquet 400037")] + WhiteFacedVarreInvasionVarresBouquet = 400037, - [Annotation(Name = "[White-Faced Varre - Invasion] Festering Bloody Finger 400036")] - WhiteFacedVarreInvasionFesteringBloodyFinger = 400036, + [Annotation(Name = "[White-Faced Varre - Invasion] Festering Bloody Finger 400036")] + WhiteFacedVarreInvasionFesteringBloodyFinger = 400036, - [Annotation(Name = "[Unknown] 400040")] - Unknown__ = 400040, + [Annotation(Name = "[Unknown] 400040")] + Unknown__ = 400040, - [Annotation(Name = "[Unknown] Perfume Bottle 400041")] - UnknownPerfumeBottle = 400041, + [Annotation(Name = "[Unknown] Perfume Bottle 400041")] + UnknownPerfumeBottle = 400041, - [Annotation(Name = "[Unknown] Glowstone 400042")] - UnknownGlowstone = 400042, + [Annotation(Name = "[Unknown] Glowstone 400042")] + UnknownGlowstone = 400042, - [Annotation(Name = "[Gatekeeper Gostoc - First Meeting] Grace Mimic 400050")] - GatekeeperGostocFirstMeetingGraceMimic = 400050, + [Annotation(Name = "[Gatekeeper Gostoc - First Meeting] Grace Mimic 400050")] + GatekeeperGostocFirstMeetingGraceMimic = 400050, - [Annotation(Name = "[Gatekeeper Gostoc - Gostoc Killed] Gostoc's Bell Bearing 400051")] - GatekeeperGostocGostocKilledGostocsBellBearing = 400051, + [Annotation(Name = "[Gatekeeper Gostoc - Gostoc Killed] Gostoc's Bell Bearing 400051")] + GatekeeperGostocGostocKilledGostocsBellBearing = 400051, - [Annotation(Name = "[Edgar] Sacrificial Twig 400060")] - EdgarSacrificialTwig = 400060, + [Annotation(Name = "[Edgar] Sacrificial Twig 400060")] + EdgarSacrificialTwig = 400060, - [Annotation(Name = "[Edgar] Shabriri Grape 400061")] - EdgarShabririGrape = 400061, + [Annotation(Name = "[Edgar] Shabriri Grape 400061")] + EdgarShabririGrape = 400061, - [Annotation(Name = "[Tanith] Tonic of Forgetfulness 400070")] - TanithTonicOfForgetfulness = 400070, + [Annotation(Name = "[Tanith] Tonic of Forgetfulness 400070")] + TanithTonicOfForgetfulness = 400070, - [Annotation(Name = "[Tanith] Consort's Mask 400071")] - TanithConsortsMask = 400071, + [Annotation(Name = "[Tanith] Consort's Mask 400071")] + TanithConsortsMask = 400071, - [Annotation(Name = "[Tanith] Drawing-Room Key 400072")] - TanithDrawingRoomKey = 400072, + [Annotation(Name = "[Tanith] Drawing-Room Key 400072")] + TanithDrawingRoomKey = 400072, - [Annotation(Name = "[Tanith] Letter from Volcano Manor 400073")] - TanithLetterfromVolcanoManor = 400073, + [Annotation(Name = "[Tanith] Letter from Volcano Manor 400073")] + TanithLetterfromVolcanoManor = 400073, - [Annotation(Name = "[Tanith] Letter from Volcano Manor 400074")] - TanithLetterfromVolcanoManor_ = 400074, + [Annotation(Name = "[Tanith] Letter from Volcano Manor 400074")] + TanithLetterfromVolcanoManor_ = 400074, - [Annotation(Name = "[Tanith] Red Letter 400075")] - TanithRedLetter = 400075, + [Annotation(Name = "[Tanith] Red Letter 400075")] + TanithRedLetter = 400075, - [Annotation(Name = "[Tanith] Magma Shot 400076")] - TanithMagmaShot = 400076, + [Annotation(Name = "[Tanith] Magma Shot 400076")] + TanithMagmaShot = 400076, - [Annotation(Name = "[Tanith] Serpentbone Blade 400077")] - TanithSerpentboneBlade = 400077, + [Annotation(Name = "[Tanith] Serpentbone Blade 400077")] + TanithSerpentboneBlade = 400077, - [Annotation(Name = "[Tanith] Taker's Cameo 400078")] - TanithTakersCameo = 400078, + [Annotation(Name = "[Tanith] Taker's Cameo 400078")] + TanithTakersCameo = 400078, - [Annotation(Name = "[Tanith] Aspects of the Crucible: Breath 400079")] - TanithAspectsOfTheCrucibleBreath = 400079, + [Annotation(Name = "[Tanith] Aspects of the Crucible: Breath 400079")] + TanithAspectsOfTheCrucibleBreath = 400079, - [Annotation(Name = "[Irina] Irina's Letter 400080")] - IrinaIrinasLetter = 400080, + [Annotation(Name = "[Irina] Irina's Letter 400080")] + IrinaIrinasLetter = 400080, - [Annotation(Name = "[Rya] Rya's Necklace 400081")] - RyaRyasNecklace = 400081, + [Annotation(Name = "[Rya] Rya's Necklace 400081")] + RyaRyasNecklace = 400081, - [Annotation(Name = "[Hyetta] Frenzied Flame Seal 400089")] - HyettaFrenziedFlameSeal = 400089, + [Annotation(Name = "[Hyetta] Frenzied Flame Seal 400089")] + HyettaFrenziedFlameSeal = 400089, - [Annotation(Name = "[Rya] Volcano Manor Invitation 400090")] - RyaVolcanoManorInvitation = 400090, + [Annotation(Name = "[Rya] Volcano Manor Invitation 400090")] + RyaVolcanoManorInvitation = 400090, - [Annotation(Name = "[Rya] Zorayas's Letter 400091")] - RyaZorayassLetter = 400091, + [Annotation(Name = "[Rya] Zorayas's Letter 400091")] + RyaZorayassLetter = 400091, - [Annotation(Name = "[Sorceress Sellen] Sellen's Primal Glintstone 400100")] - SorceressSellenSellensPrimalGlintstone = 400100, + [Annotation(Name = "[Sorceress Sellen] Sellen's Primal Glintstone 400100")] + SorceressSellenSellensPrimalGlintstone = 400100, - [Annotation(Name = "[Sorceress Sellen] Glintstone Kris 400101")] - SorceressSellenGlintstoneKris = 400101, + [Annotation(Name = "[Sorceress Sellen] Glintstone Kris 400101")] + SorceressSellenGlintstoneKris = 400101, - [Annotation(Name = "[Sorceress Sellen] Sellian Sealbreaker 400102")] - SorceressSellenSellianSealbreaker = 400102, + [Annotation(Name = "[Sorceress Sellen] Sellian Sealbreaker 400102")] + SorceressSellenSellianSealbreaker = 400102, - [Annotation(Name = "[Sorceress Sellen] Starlight Shards 400103")] - SorceressSellenStarlightShards = 400103, + [Annotation(Name = "[Sorceress Sellen] Starlight Shards 400103")] + SorceressSellenStarlightShards = 400103, - [Annotation(Name = "[Sorceress Sellen] Comet Azur 400104")] - SorceressSellenCometAzur = 400104, + [Annotation(Name = "[Sorceress Sellen] Comet Azur 400104")] + SorceressSellenCometAzur = 400104, - [Annotation(Name = "[Sorceress Sellen] Stars of Ruin 400105")] - SorceressSellenStarsOfRuin = 400105, + [Annotation(Name = "[Sorceress Sellen] Stars of Ruin 400105")] + SorceressSellenStarsOfRuin = 400105, - [Annotation(Name = "[Sorceress Sellen] Sellen's Bell Bearing 400106")] - SorceressSellenSellensBellBearing = 400106, + [Annotation(Name = "[Sorceress Sellen] Sellen's Bell Bearing 400106")] + SorceressSellenSellensBellBearing = 400106, - [Annotation(Name = "[Sorceress Sellen] Witch's Glintstone Crown 400107")] - SorceressSellenWitchsGlintstoneCrown = 400107, + [Annotation(Name = "[Sorceress Sellen] Witch's Glintstone Crown 400107")] + SorceressSellenWitchsGlintstoneCrown = 400107, - [Annotation(Name = "[Finger Reader Enia - Godfrey] Talisman Pouch 60500")] - FingerReaderEniaGodfreyTalismanPouch = 60500, + [Annotation(Name = "[Finger Reader Enia - Godfrey] Talisman Pouch 60500")] + FingerReaderEniaGodfreyTalismanPouch = 60500, - [Annotation(Name = "[Unknown] Glowstone 400120")] - UnknownGlowstone_ = 400120, + [Annotation(Name = "[Unknown] Glowstone 400120")] + UnknownGlowstone_ = 400120, - [Annotation(Name = "[Unknown] Glowstone 400121")] - UnknownGlowstone__ = 400121, + [Annotation(Name = "[Unknown] Glowstone 400121")] + UnknownGlowstone__ = 400121, - [Annotation(Name = "[Albus] Haligtree Secret Medallion (Right) 400130")] - AlbusHaligtreeSecretMedallionRight = 400130, + [Annotation(Name = "[Albus] Haligtree Secret Medallion (Right) 400130")] + AlbusHaligtreeSecretMedallionRight = 400130, - [Annotation(Name = "[Seluvis] Seluvis's Potion 400140")] - SeluvisSeluvissPotion = 400140, + [Annotation(Name = "[Seluvis] Seluvis's Potion 400140")] + SeluvisSeluvissPotion = 400140, - [Annotation(Name = "[Seluvis] Magic Scorpion Charm 400141")] - SeluvisMagicScorpionCharm = 400141, + [Annotation(Name = "[Seluvis] Magic Scorpion Charm 400141")] + SeluvisMagicScorpionCharm = 400141, - [Annotation(Name = "[Seluvis] 400142")] - Seluvis = 400142, + [Annotation(Name = "[Seluvis] 400142")] + Seluvis = 400142, - [Annotation(Name = "[Seluvis] Seluvis's Introduction 400143")] - SeluvisSeluvissIntroduction = 400143, + [Annotation(Name = "[Seluvis] Seluvis's Introduction 400143")] + SeluvisSeluvissIntroduction = 400143, - [Annotation(Name = "[Seluvis] Glowstone 400144")] - SeluvisGlowstone = 400144, + [Annotation(Name = "[Seluvis] Glowstone 400144")] + SeluvisGlowstone = 400144, - [Annotation(Name = "[Seluvis] Amber Draught 400145")] - SeluvisAmberDraught = 400145, + [Annotation(Name = "[Seluvis] Amber Draught 400145")] + SeluvisAmberDraught = 400145, - [Annotation(Name = "[Seluvis] 400146")] - Seluvis_ = 400146, + [Annotation(Name = "[Seluvis] 400146")] + Seluvis_ = 400146, - [Annotation(Name = "[Seluvis] Seluvis's Bell Bearing 400148")] - SeluvisSeluvissBellBearing = 400148, + [Annotation(Name = "[Seluvis] Seluvis's Bell Bearing 400148")] + SeluvisSeluvissBellBearing = 400148, - [Annotation(Name = "[Pidia, Carian Servant] Pidia's Bell Bearing 400149")] - PidiaCarianServantPidiasBellBearing = 400149, + [Annotation(Name = "[Pidia, Carian Servant] Pidia's Bell Bearing 400149")] + PidiaCarianServantPidiasBellBearing = 400149, - [Annotation(Name = "[Blaidd is the Half-Wolf] Somber Smithing Stone [2] 400150")] - BlaiddisTheHalfWolfSomberSmithingStone2 = 400150, + [Annotation(Name = "[Blaidd is the Half-Wolf] Somber Smithing Stone [2] 400150")] + BlaiddisTheHalfWolfSomberSmithingStone2 = 400150, - [Annotation(Name = "[Blaidd is the Half-Wolf] Royal Greatsword 400158")] - BlaiddisTheHalfWolfRoyalGreatsword = 400158, + [Annotation(Name = "[Blaidd is the Half-Wolf] Royal Greatsword 400158")] + BlaiddisTheHalfWolfRoyalGreatsword = 400158, - [Annotation(Name = "[Blaidd is the Half-Wolf] Discarded Palace Key 400159")] - BlaiddisTheHalfWolfDiscardedPalaceKey = 400159, + [Annotation(Name = "[Blaidd is the Half-Wolf] Discarded Palace Key 400159")] + BlaiddisTheHalfWolfDiscardedPalaceKey = 400159, - [Annotation(Name = "[Unknown] White Cipher Ring 60280")] - UnknownWhiteCipherRing = 60280, + [Annotation(Name = "[Unknown] White Cipher Ring 60280")] + UnknownWhiteCipherRing = 60280, - [Annotation(Name = "[Unknown] Smithing Stone [5] 400161")] - UnknownSmithingStone5 = 400161, + [Annotation(Name = "[Unknown] Smithing Stone [5] 400161")] + UnknownSmithingStone5 = 400161, - [Annotation(Name = "[Eleonora, Violet Bloody Finger] Purifying Crystal Tear 65270")] - EleonoraVioletBloodyFingerPurifyingCrystalTear = 65270, + [Annotation(Name = "[Eleonora, Violet Bloody Finger] Purifying Crystal Tear 65270")] + EleonoraVioletBloodyFingerPurifyingCrystalTear = 65270, - [Annotation(Name = "[Eleonora, Violet Bloody Finger] Eleonora's Poleblade 400162")] - EleonoraVioletBloodyFingerEleonorasPoleblade = 400162, + [Annotation(Name = "[Eleonora, Violet Bloody Finger] Eleonora's Poleblade 400162")] + EleonoraVioletBloodyFingerEleonorasPoleblade = 400162, - [Annotation(Name = "[Bloody Finger Hunter Yura] Nagakiba +0 - Piercing Fang 400163")] - BloodyFingerHunterYuraNagakiba0PiercingFang = 400163, + [Annotation(Name = "[Bloody Finger Hunter Yura] Nagakiba +0 - Piercing Fang 400163")] + BloodyFingerHunterYuraNagakiba0PiercingFang = 400163, - [Annotation(Name = "[Bloody Finger Hunter Yura] Iron Kasa 400164")] - BloodyFingerHunterYuraIronKasa = 400164, + [Annotation(Name = "[Bloody Finger Hunter Yura] Iron Kasa 400164")] + BloodyFingerHunterYuraIronKasa = 400164, - [Annotation(Name = "[Iron Fist Alexander] Exalted Flesh 400170")] - IronFistAlexanderExaltedFlesh = 400170, + [Annotation(Name = "[Iron Fist Alexander] Exalted Flesh 400170")] + IronFistAlexanderExaltedFlesh = 400170, - [Annotation(Name = "[Iron Fist Alexander] Exalted Flesh 400171")] - IronFistAlexanderExaltedFlesh_ = 400171, + [Annotation(Name = "[Iron Fist Alexander] Exalted Flesh 400171")] + IronFistAlexanderExaltedFlesh_ = 400171, - [Annotation(Name = "[Iron Fist Alexander] Jar 400172")] - IronFistAlexanderJar = 400172, + [Annotation(Name = "[Iron Fist Alexander] Jar 400172")] + IronFistAlexanderJar = 400172, - [Annotation(Name = "[Iron Fist Alexander] Warrior Jar Shard 400173")] - IronFistAlexanderWarriorJarShard = 400173, + [Annotation(Name = "[Iron Fist Alexander] Warrior Jar Shard 400173")] + IronFistAlexanderWarriorJarShard = 400173, - [Annotation(Name = "[Iron Fist Alexander] Shard of Alexander 400174")] - IronFistAlexanderShardOfAlexander = 400174, + [Annotation(Name = "[Iron Fist Alexander] Shard of Alexander 400174")] + IronFistAlexanderShardOfAlexander = 400174, - [Annotation(Name = "[Unknown] 400179")] - Unknown___ = 400179, + [Annotation(Name = "[Unknown] 400179")] + Unknown___ = 400179, - [Annotation(Name = "[Patches] Letter to Patches 400180")] - PatchesLettertoPatches = 400180, + [Annotation(Name = "[Patches] Letter to Patches 400180")] + PatchesLettertoPatches = 400180, - [Annotation(Name = "[Patches] Dancer's Castanets 400181")] - PatchesDancersCastanets = 400181, + [Annotation(Name = "[Patches] Dancer's Castanets 400181")] + PatchesDancersCastanets = 400181, - [Annotation(Name = "[Patches] Magma Whip Candlestick 400182")] - PatchesMagmaWhipCandlestick = 400182, + [Annotation(Name = "[Patches] Magma Whip Candlestick 400182")] + PatchesMagmaWhipCandlestick = 400182, - [Annotation(Name = "[Patches] Golden Rune [1] 400183")] - PatchesGoldenRune1 = 400183, + [Annotation(Name = "[Patches] Golden Rune [1] 400183")] + PatchesGoldenRune1 = 400183, - [Annotation(Name = "[Patches] Spear+7 400184")] - PatchesSpear7 = 400184, + [Annotation(Name = "[Patches] Spear+7 400184")] + PatchesSpear7 = 400184, - [Annotation(Name = "[Roderika] Spirit Jellyfish Ashes 400190")] - RoderikaSpiritJellyfishAshes = 400190, + [Annotation(Name = "[Roderika] Spirit Jellyfish Ashes 400190")] + RoderikaSpiritJellyfishAshes = 400190, - [Annotation(Name = "[Roderika] Golden Seed 400191")] - RoderikaGoldenSeed = 400191, + [Annotation(Name = "[Roderika] Golden Seed 400191")] + RoderikaGoldenSeed = 400191, - [Annotation(Name = "[Chest - Gatefront Ruins] Whetstone Knife 400210")] - ChestGatefrontRuinsWhetstoneKnife = 400210, + [Annotation(Name = "[Chest - Gatefront Ruins] Whetstone Knife 400210")] + ChestGatefrontRuinsWhetstoneKnife = 400210, - [Annotation(Name = "[Kenneth Haight] Erdsteel Dagger 400221")] - KennethHaightErdsteelDagger = 400221, + [Annotation(Name = "[Kenneth Haight] Erdsteel Dagger 400221")] + KennethHaightErdsteelDagger = 400221, - [Annotation(Name = "[Gurranq - 4th Deathroot] Ash of War: Beast's Roar 400235")] - Gurranq4thDeathrootAshOfWarBeastsRoar = 400235, + [Annotation(Name = "[Gurranq - 4th Deathroot] Ash of War: Beast's Roar 400235")] + Gurranq4thDeathrootAshOfWarBeastsRoar = 400235, - [Annotation(Name = "[Gurranq - 3rd Deathroot] Bestial Vitality 400236")] - Gurranq3rdDeathrootBestialVitality = 400236, + [Annotation(Name = "[Gurranq - 3rd Deathroot] Bestial Vitality 400236")] + Gurranq3rdDeathrootBestialVitality = 400236, - [Annotation(Name = "[Gurranq - 2nd Deathroot] Bestial Sling 400237")] - Gurranq2ndDeathrootBestialSling = 400237, + [Annotation(Name = "[Gurranq - 2nd Deathroot] Bestial Sling 400237")] + Gurranq2ndDeathrootBestialSling = 400237, - [Annotation(Name = "[Gurranq - 1st Deathroot] Clawmark Seal 400238")] - Gurranq1stDeathrootClawmarkSeal = 400238, + [Annotation(Name = "[Gurranq - 1st Deathroot] Clawmark Seal 400238")] + Gurranq1stDeathrootClawmarkSeal = 400238, - [Annotation(Name = "[Gurranq - 1st Deathroot] Beast Eye 400239")] - Gurranq1stDeathrootBeastEye = 400239, + [Annotation(Name = "[Gurranq - 1st Deathroot] Beast Eye 400239")] + Gurranq1stDeathrootBeastEye = 400239, - [Annotation(Name = "[Gurranq - 9th Deathroot] Dragon Smithing Stone 400230")] - Gurranq9thDeathrootDragonSmithingStone = 400230, + [Annotation(Name = "[Gurranq - 9th Deathroot] Dragon Smithing Stone 400230")] + Gurranq9thDeathrootDragonSmithingStone = 400230, - [Annotation(Name = "[Gurranq - 8th Deathroot] Gurranq's Beast Claw 400231")] - Gurranq8thDeathrootGurranqsBeastClaw = 400231, + [Annotation(Name = "[Gurranq - 8th Deathroot] Gurranq's Beast Claw 400231")] + Gurranq8thDeathrootGurranqsBeastClaw = 400231, - [Annotation(Name = "[Gurranq - 7th Deathroot] Beastclaw Greathammer 400232")] - Gurranq7thDeathrootBeastclawGreathammer = 400232, + [Annotation(Name = "[Gurranq - 7th Deathroot] Beastclaw Greathammer 400232")] + Gurranq7thDeathrootBeastclawGreathammer = 400232, - [Annotation(Name = "[Gurranq - 6th Deathroot] Stone of Gurranq 400233")] - Gurranq6thDeathrootStoneOfGurranq = 400233, + [Annotation(Name = "[Gurranq - 6th Deathroot] Stone of Gurranq 400233")] + Gurranq6thDeathrootStoneOfGurranq = 400233, - [Annotation(Name = "[Gurranq - 5th Deathroot] Beast Claw 400234")] - Gurranq5thDeathrootBeastClaw = 400234, + [Annotation(Name = "[Gurranq - 5th Deathroot] Beast Claw 400234")] + Gurranq5thDeathrootBeastClaw = 400234, - [Annotation(Name = "[War Counselor Iji] Iji's Bell Bearing 400240")] - WarCounselorIjiIjisBellBearing = 400240, + [Annotation(Name = "[War Counselor Iji] Iji's Bell Bearing 400240")] + WarCounselorIjiIjisBellBearing = 400240, - [Annotation(Name = "[War Counselor Iji] Iji's Mirrorhelm 400241")] - WarCounselorIjiIjisMirrorhelm = 400241, + [Annotation(Name = "[War Counselor Iji] Iji's Mirrorhelm 400241")] + WarCounselorIjiIjisMirrorhelm = 400241, - [Annotation(Name = "[Unknown] Glowstone 400260")] - UnknownGlowstone___ = 400260, + [Annotation(Name = "[Unknown] Glowstone 400260")] + UnknownGlowstone___ = 400260, - [Annotation(Name = "[Unknown] Mushroom 400271")] - UnknownMushroom = 400271, + [Annotation(Name = "[Unknown] Mushroom 400271")] + UnknownMushroom = 400271, - //duplicate of 1051587800 - //[Annotation(Name = "[Castle Sol] Haligtree Secret Medallion (Left) 400280")] - //CastleSolHaligtreeSecretMedallionLeft = 400280, + //duplicate of 1051587800 + //[Annotation(Name = "[Castle Sol] Haligtree Secret Medallion (Left) 400280")] + //CastleSolHaligtreeSecretMedallionLeft = 400280, - [Annotation(Name = "[Unknown] 400281")] - Unknown____ = 400281, + [Annotation(Name = "[Unknown] 400281")] + Unknown____ = 400281, - [Annotation(Name = "[Gideon Ofnir - Secret Medallion] Black Flame's Protection 400282")] - GideonOfnirSecretMedallionBlackFlamesProtection = 400282, + [Annotation(Name = "[Gideon Ofnir - Secret Medallion] Black Flame's Protection 400282")] + GideonOfnirSecretMedallionBlackFlamesProtection = 400282, - [Annotation(Name = "[Gideon Ofnir - Haligtree] Lord's Divine Fortification 400283")] - GideonOfnirHaligtreeLordsDivineFortification = 400283, + [Annotation(Name = "[Gideon Ofnir - Haligtree] Lord's Divine Fortification 400283")] + GideonOfnirHaligtreeLordsDivineFortification = 400283, - [Annotation(Name = "[Gideon Ofnir - Mohgwyn Dynasty Mausoleum] Fevor's Cookbook [3] 68210")] - GideonOfnirMohgwynDynastyMausoleumFevorsCookbook3 = 68210, + [Annotation(Name = "[Gideon Ofnir - Mohgwyn Dynasty Mausoleum] Fevor's Cookbook [3] 68210")] + GideonOfnirMohgwynDynastyMausoleumFevorsCookbook3 = 68210, - [Annotation(Name = "[Gideon Ofnir - Mohg Killed] Law of Causality 400285")] - GideonOfnirMohgKilledLawOfCausality = 400285, + [Annotation(Name = "[Gideon Ofnir - Mohg Killed] Law of Causality 400285")] + GideonOfnirMohgKilledLawOfCausality = 400285, - [Annotation(Name = "[Gideon Ofnir - Boss Drop] All-Knowing Gauntlets 400284")] - GideonOfnirBossDropAllKnowingGauntlets = 400284, + [Annotation(Name = "[Gideon Ofnir - Boss Drop] All-Knowing Gauntlets 400284")] + GideonOfnirBossDropAllKnowingGauntlets = 400284, - [Annotation(Name = "[Knight Bernahl] Letter to Bernahl 400290")] - KnightBernahlLettertoBernahl = 400290, + [Annotation(Name = "[Knight Bernahl] Letter to Bernahl 400290")] + KnightBernahlLettertoBernahl = 400290, - [Annotation(Name = "[Knight Bernahl] Gelmir's Fury 400291")] - KnightBernahlGelmirsFury = 400291, + [Annotation(Name = "[Knight Bernahl] Gelmir's Fury 400291")] + KnightBernahlGelmirsFury = 400291, - [Annotation(Name = "[Knight Bernahl] Blasphemous Claw 400292")] - KnightBernahlBlasphemousClaw = 400292, + [Annotation(Name = "[Knight Bernahl] Blasphemous Claw 400292")] + KnightBernahlBlasphemousClaw = 400292, - [Annotation(Name = "[Knight Bernahl] Devourer's Scepter 400293")] - KnightBernahlDevourersScepter = 400293, + [Annotation(Name = "[Knight Bernahl] Devourer's Scepter 400293")] + KnightBernahlDevourersScepter = 400293, - [Annotation(Name = "[Knight Bernahl] Beast Champion Helm 400294")] - KnightBernahlBeastChampionHelm = 400294, + [Annotation(Name = "[Knight Bernahl] Beast Champion Helm 400294")] + KnightBernahlBeastChampionHelm = 400294, - [Annotation(Name = "[Knight Bernahl] Gelmir's Fury 400295")] - KnightBernahlGelmirsFury_ = 400295, + [Annotation(Name = "[Knight Bernahl] Gelmir's Fury 400295")] + KnightBernahlGelmirsFury_ = 400295, - [Annotation(Name = "[Big Boggart] Rya's Necklace 400300")] - BigBoggartRyasNecklace = 400300, + [Annotation(Name = "[Big Boggart] Rya's Necklace 400300")] + BigBoggartRyasNecklace = 400300, - [Annotation(Name = "[Big Boggart] Iron Ball +0 - Braggart's Roar 400309")] - BigBoggartIronBall0BraggartsRoar = 400309, + [Annotation(Name = "[Big Boggart] Iron Ball +0 - Braggart's Roar 400309")] + BigBoggartIronBall0BraggartsRoar = 400309, - [Annotation(Name = "[Big Boggart] Seedbed Curse 400308")] - BigBoggartSeedbedCurse = 400308, + [Annotation(Name = "[Big Boggart] Seedbed Curse 400308")] + BigBoggartSeedbedCurse = 400308, - [Annotation(Name = "[Gowry] Unalloyed Gold Needle 400310")] - GowryUnalloyedGoldNeedle = 400310, + [Annotation(Name = "[Gowry] Unalloyed Gold Needle 400310")] + GowryUnalloyedGoldNeedle = 400310, - [Annotation(Name = "[Gowry] Sellia's Secret 400311")] - GowrySelliasSecret = 400311, + [Annotation(Name = "[Gowry] Sellia's Secret 400311")] + GowrySelliasSecret = 400311, - [Annotation(Name = "[Gowry] Flock's Canvas Talisman 400312")] - GowryFlocksCanvasTalisman = 400312, + [Annotation(Name = "[Gowry] Flock's Canvas Talisman 400312")] + GowryFlocksCanvasTalisman = 400312, - [Annotation(Name = "[Millicent] Prosthesis-Wearer Heirloom 400320")] - MillicentProsthesisWearerHeirloom = 400320, + [Annotation(Name = "[Millicent] Prosthesis-Wearer Heirloom 400320")] + MillicentProsthesisWearerHeirloom = 400320, - [Annotation(Name = "[Millicent] Unalloyed Gold Needle 400321")] - MillicentUnalloyedGoldNeedle = 400321, + [Annotation(Name = "[Millicent] Unalloyed Gold Needle 400321")] + MillicentUnalloyedGoldNeedle = 400321, - [Annotation(Name = "[Millicent] Millicent's Prosthesis 400323")] - MillicentMillicentsProsthesis = 400323, + [Annotation(Name = "[Millicent] Millicent's Prosthesis 400323")] + MillicentMillicentsProsthesis = 400323, - [Annotation(Name = "[Millicent] Miquella's Needle 400324")] - MillicentMiquellasNeedle = 400324, + [Annotation(Name = "[Millicent] Miquella's Needle 400324")] + MillicentMiquellasNeedle = 400324, - [Annotation(Name = "[Millicent] Somber Ancient Dragon Smithing Stone 400325")] - MillicentSomberAncientDragonSmithingStone = 400325, + [Annotation(Name = "[Millicent] Somber Ancient Dragon Smithing Stone 400325")] + MillicentSomberAncientDragonSmithingStone = 400325, - [Annotation(Name = "[Fia] Weathered Dagger 400331")] - FiaWeatheredDagger = 400331, + [Annotation(Name = "[Fia] Weathered Dagger 400331")] + FiaWeatheredDagger = 400331, - [Annotation(Name = "[Fia] Sacrificial Twig 400332")] - FiaSacrificialTwig = 400332, + [Annotation(Name = "[Fia] Sacrificial Twig 400332")] + FiaSacrificialTwig = 400332, - [Annotation(Name = "[Fia] Radiant Baldachin's Blessing 400333")] - FiaRadiantBaldachinsBlessing = 400333, + [Annotation(Name = "[Fia] Radiant Baldachin's Blessing 400333")] + FiaRadiantBaldachinsBlessing = 400333, - [Annotation(Name = "[Fia] Knifeprint Clue 400334")] - FiaKnifeprintClue = 400334, + [Annotation(Name = "[Fia] Knifeprint Clue 400334")] + FiaKnifeprintClue = 400334, - [Annotation(Name = "[D, Hunter of the Dead] D's Bell Bearing 400349")] - DHunterOfTheDeadDsBellBearing = 400349, + [Annotation(Name = "[D, Hunter of the Dead] D's Bell Bearing 400349")] + DHunterOfTheDeadDsBellBearing = 400349, - [Annotation(Name = "[Prince of Death's Throne] Inseparable Sword 400348")] - PrinceOfDeathsThroneInseparableSword = 400348, + [Annotation(Name = "[Prince of Death's Throne] Inseparable Sword 400348")] + PrinceOfDeathsThroneInseparableSword = 400348, - [Annotation(Name = "[Sorcerer Rogier] Rogier's Rapier +8 - Glintblade Phalanx 400358")] - SorcererRogierRogiersRapier8GlintbladePhalanx = 400358, + [Annotation(Name = "[Sorcerer Rogier] Rogier's Rapier +8 - Glintblade Phalanx 400358")] + SorcererRogierRogiersRapier8GlintbladePhalanx = 400358, - [Annotation(Name = "[Sorcerer Rogier] Black Knifeprint 400357")] - SorcererRogierBlackKnifeprint = 400357, + [Annotation(Name = "[Sorcerer Rogier] Black Knifeprint 400357")] + SorcererRogierBlackKnifeprint = 400357, - [Annotation(Name = "[Sorcerer Rogier] Rogier's Letter 400356")] - SorcererRogierRogiersLetter = 400356, + [Annotation(Name = "[Sorcerer Rogier] Rogier's Letter 400356")] + SorcererRogierRogiersLetter = 400356, - [Annotation(Name = "[Sorcerer Rogier] Rogier's Bell Bearing 400359")] - SorcererRogierRogiersBellBearing = 400359, + [Annotation(Name = "[Sorcerer Rogier] Rogier's Bell Bearing 400359")] + SorcererRogierRogiersBellBearing = 400359, - [Annotation(Name = "[Thops] Thops's Bell Bearing 400360")] - ThopsThopssBellBearing = 400360, + [Annotation(Name = "[Thops] Thops's Bell Bearing 400360")] + ThopsThopssBellBearing = 400360, - [Annotation(Name = "[Thops] Academy Glintstone Staff 400361")] - ThopsAcademyGlintstoneStaff = 400361, + [Annotation(Name = "[Thops] Academy Glintstone Staff 400361")] + ThopsAcademyGlintstoneStaff = 400361, - [Annotation(Name = "[Thops] Thops's Barrier 400362")] - ThopsThopssBarrier = 400362, + [Annotation(Name = "[Thops] Thops's Barrier 400362")] + ThopsThopssBarrier = 400362, - [Annotation(Name = "[Brother Corhyn] Corhyn's Bell Bearing 400370")] - BrotherCorhynCorhynsBellBearing = 400370, + [Annotation(Name = "[Brother Corhyn] Corhyn's Bell Bearing 400370")] + BrotherCorhynCorhynsBellBearing = 400370, - [Annotation(Name = "[Dung Eater] Sewer-Gaol Key 400380")] - DungEaterSewerGaolKey = 400380, + [Annotation(Name = "[Dung Eater] Sewer-Gaol Key 400380")] + DungEaterSewerGaolKey = 400380, - [Annotation(Name = "[Dung Eater] Omen Helm 400382")] - DungEaterOmenHelm = 400382, + [Annotation(Name = "[Dung Eater] Omen Helm 400382")] + DungEaterOmenHelm = 400382, - [Annotation(Name = "[Ranni the Witch] Spirit Calling Bell 60110")] - RanniTheWitchSpiritCallingBell = 60110, + [Annotation(Name = "[Ranni the Witch] Spirit Calling Bell 60110")] + RanniTheWitchSpiritCallingBell = 60110, - [Annotation(Name = "[Ranni the Witch] Lone Wolf Ashes 400390")] - RanniTheWitchLoneWolfAshes = 400390, + [Annotation(Name = "[Ranni the Witch] Lone Wolf Ashes 400390")] + RanniTheWitchLoneWolfAshes = 400390, - [Annotation(Name = "[Ranni the Witch] Carian Inverted Statue 400391")] - RanniTheWitchCarianInvertedStatue = 400391, + [Annotation(Name = "[Ranni the Witch] Carian Inverted Statue 400391")] + RanniTheWitchCarianInvertedStatue = 400391, - [Annotation(Name = "[Ranni the Witch] Dark Moon Greatsword 400393")] - RanniTheWitchDarkMoonGreatsword = 400393, + [Annotation(Name = "[Ranni the Witch] Dark Moon Greatsword 400393")] + RanniTheWitchDarkMoonGreatsword = 400393, - [Annotation(Name = "[Ranni the Witch] Miniature Ranni 400394")] - RanniTheWitchMiniatureRanni = 400394, + [Annotation(Name = "[Ranni the Witch] Miniature Ranni 400394")] + RanniTheWitchMiniatureRanni = 400394, - [Annotation(Name = "[Ranni the Witch] Fingerslayer Blade 400395")] - RanniTheWitchFingerslayerBlade = 400395, + [Annotation(Name = "[Ranni the Witch] Fingerslayer Blade 400395")] + RanniTheWitchFingerslayerBlade = 400395, - [Annotation(Name = "[Witch-Hunter Jerren] Ancient Dragon Smithing Stone 400400")] - WitchHunterJerrenAncientDragonSmithingStone = 400400, + [Annotation(Name = "[Witch-Hunter Jerren] Ancient Dragon Smithing Stone 400400")] + WitchHunterJerrenAncientDragonSmithingStone = 400400, - [Annotation(Name = "[Witch-Hunter Jerren] Eccentric's Hood 400401")] - WitchHunterJerrenEccentricsHood = 400401, + [Annotation(Name = "[Witch-Hunter Jerren] Eccentric's Hood 400401")] + WitchHunterJerrenEccentricsHood = 400401, - [Annotation(Name = "[Latenna] Latenna the Albinauric 400410")] - LatennaLatennaTheAlbinauric = 400410, + [Annotation(Name = "[Latenna] Latenna the Albinauric 400410")] + LatennaLatennaTheAlbinauric = 400410, - [Annotation(Name = "[Latenna] Somber Ancient Dragon Smithing Stone 400411")] - LatennaSomberAncientDragonSmithingStone = 400411, + [Annotation(Name = "[Latenna] Somber Ancient Dragon Smithing Stone 400411")] + LatennaSomberAncientDragonSmithingStone = 400411, - [Annotation(Name = "[Latenna] Blue Silver Mail Hood 400412")] - LatennaBlueSilverMailHood = 400412, + [Annotation(Name = "[Latenna] Blue Silver Mail Hood 400412")] + LatennaBlueSilverMailHood = 400412, - [Annotation(Name = "[Nepheli Loux] Arsenal Charm 400420")] - NepheliLouxArsenalCharm = 400420, + [Annotation(Name = "[Nepheli Loux] Arsenal Charm 400420")] + NepheliLouxArsenalCharm = 400420, - [Annotation(Name = "[Nepheli Loux] Ancient Dragon Smithing Stone 400422")] - NepheliLouxAncientDragonSmithingStone = 400422, + [Annotation(Name = "[Nepheli Loux] Ancient Dragon Smithing Stone 400422")] + NepheliLouxAncientDragonSmithingStone = 400422, - [Annotation(Name = "[Master Lusat] Stars of Ruin 400430")] - MasterLusatStarsOfRuin = 400430, + [Annotation(Name = "[Master Lusat] Stars of Ruin 400430")] + MasterLusatStarsOfRuin = 400430, - [Annotation(Name = "[Master Azur] Comet Azur 400440")] - MasterAzurCometAzur = 400440, + [Annotation(Name = "[Master Azur] Comet Azur 400440")] + MasterAzurCometAzur = 400440, - [Annotation(Name = "[Juno Hoslow] Hoslow's Petal Whip 400451")] - JunoHoslowHoslowsPetalWhip = 400451, + [Annotation(Name = "[Juno Hoslow] Hoslow's Petal Whip 400451")] + JunoHoslowHoslowsPetalWhip = 400451, - [Annotation(Name = "[Juno Hoslow] Companion Jar 400452")] - JunoHoslowCompanionJar = 400452, + [Annotation(Name = "[Juno Hoslow] Companion Jar 400452")] + JunoHoslowCompanionJar = 400452, - [Annotation(Name = "[Jar Bairn] Companion Jar 400460")] - JarBairnCompanionJar = 400460, + [Annotation(Name = "[Jar Bairn] Companion Jar 400460")] + JarBairnCompanionJar = 400460, - [Annotation(Name = "[The Great-Jar] Great-Jar's Arsenal 400470")] - TheGreatJarGreatJarsArsenal = 400470, + [Annotation(Name = "[The Great-Jar] Great-Jar's Arsenal 400470")] + TheGreatJarGreatJarsArsenal = 400470, - [Annotation(Name = "[Millicent - Killed Sisters] Rotten Winged Sword Insignia 400480")] - MillicentKilledSistersRottenWingedSwordInsignia = 400480, + [Annotation(Name = "[Millicent - Killed Sisters] Rotten Winged Sword Insignia 400480")] + MillicentKilledSistersRottenWingedSwordInsignia = 400480, - [Annotation(Name = "[Ensha of the Royal Remains] Royal Remains Helm 400490")] - EnshaOfTheRoyalRemainsRoyalRemainsHelm = 400490, + [Annotation(Name = "[Ensha of the Royal Remains] Royal Remains Helm 400490")] + EnshaOfTheRoyalRemainsRoyalRemainsHelm = 400490, - [Annotation(Name = "[Goldmask] Goldmask's Rags 400500")] - GoldmaskGoldmasksRags = 400500, + [Annotation(Name = "[Goldmask] Goldmask's Rags 400500")] + GoldmaskGoldmasksRags = 400500, - [Annotation(Name = "[Magnus the Beast Claw - Writheblood Ruins] Great Stars 400510")] - MagnustheBeastClawWrithebloodRuinsGreatStars = 400510, + [Annotation(Name = "[Magnus the Beast Claw - Writheblood Ruins] Great Stars 400510")] + MagnustheBeastClawWrithebloodRuinsGreatStars = 400510, - [Annotation(Name = "[Merchant Kale] Kale's Bell Bearing 400049")] - MerchantKaleKalesBellBearing = 400049, + [Annotation(Name = "[Merchant Kale] Kale's Bell Bearing 400049")] + MerchantKaleKalesBellBearing = 400049, - [Annotation(Name = "[Corpse - Edgar] Banished Knight's Halberd +8 - Spinning Strikes 400069")] - CorpseEdgarBanishedKnightsHalberd8SpinningStrikes = 400069, + [Annotation(Name = "[Corpse - Edgar] Banished Knight's Halberd +8 - Spinning Strikes 400069")] + CorpseEdgarBanishedKnightsHalberd8SpinningStrikes = 400069, - [Annotation(Name = "[Corpse - Unknown] Glowstone 400108")] - CorpseUnknownGlowstone = 400108, + [Annotation(Name = "[Corpse - Unknown] Glowstone 400108")] + CorpseUnknownGlowstone = 400108, - [Annotation(Name = "[Corpse - Unknown] Glowstone 400109")] - CorpseUnknownGlowstone_ = 400109, + [Annotation(Name = "[Corpse - Unknown] Glowstone 400109")] + CorpseUnknownGlowstone_ = 400109, - [Annotation(Name = "[Corpse - Iron Fist Alexander] Warrior Jar Shard 400175")] - CorpseIronFistAlexanderWarriorJarShard = 400175, + [Annotation(Name = "[Corpse - Iron Fist Alexander] Warrior Jar Shard 400175")] + CorpseIronFistAlexanderWarriorJarShard = 400175, - [Annotation(Name = "[Corpse - Patches] Patches' Bell Bearing 400189")] - CorpsePatchesPatchesBellBearing = 400189, + [Annotation(Name = "[Corpse - Patches] Patches' Bell Bearing 400189")] + CorpsePatchesPatchesBellBearing = 400189, - [Annotation(Name = "[Corpse - Unknown] Glowstone 400209")] - CorpseUnknownGlowstone__ = 400209, + [Annotation(Name = "[Corpse - Unknown] Glowstone 400209")] + CorpseUnknownGlowstone__ = 400209, - [Annotation(Name = "[Corpse - Unknown] Golden Seed 400220")] - CorpseUnknownGoldenSeed = 400220, + [Annotation(Name = "[Corpse - Unknown] Golden Seed 400220")] + CorpseUnknownGoldenSeed = 400220, - [Annotation(Name = "[Corpse - Knight Bernahl] Bernahl's Bell Bearing 400299")] - CorpseKnightBernahlBernahlsBellBearing = 400299, + [Annotation(Name = "[Corpse - Knight Bernahl] Bernahl's Bell Bearing 400299")] + CorpseKnightBernahlBernahlsBellBearing = 400299, - [Annotation(Name = "[Corpse - Fia] Fia's Hood 400339")] - CorpseFiaFiasHood = 400339, + [Annotation(Name = "[Corpse - Fia] Fia's Hood 400339")] + CorpseFiaFiasHood = 400339, - [Annotation(Name = "[Corpse - Dung Eater] Sword of Milos 400381")] - CorpseDungEaterSwordOfMilos = 400381, + [Annotation(Name = "[Corpse - Dung Eater] Sword of Milos 400381")] + CorpseDungEaterSwordOfMilos = 400381, - [Annotation(Name = "[Corpse - Nepheli Loux] Stormhawk Axe 400421")] - CorpseNepheliLouxStormhawkAxe = 400421, + [Annotation(Name = "[Corpse - Nepheli Loux] Stormhawk Axe 400421")] + CorpseNepheliLouxStormhawkAxe = 400421, - [Annotation(Name = "[Corpse - Master Lusat] Lusat's Glintstone Crown 400431")] - CorpseMasterLusatLusatsGlintstoneCrown = 400431, + [Annotation(Name = "[Corpse - Master Lusat] Lusat's Glintstone Crown 400431")] + CorpseMasterLusatLusatsGlintstoneCrown = 400431, - [Annotation(Name = "[Corpse - Master Azur] Azur's Glintstone Crown 400441")] - CorpseMasterAzurAzursGlintstoneCrown = 400441, + [Annotation(Name = "[Corpse - Master Azur] Azur's Glintstone Crown 400441")] + CorpseMasterAzurAzursGlintstoneCrown = 400441, - [Annotation(Name = "[Corpse - Merchant] Nomadic Merchant's Bell Bearing [1] 400901")] - CorpseMerchantNomadicMerchantsBellBearing1 = 400901, + [Annotation(Name = "[Corpse - Merchant] Nomadic Merchant's Bell Bearing [1] 400901")] + CorpseMerchantNomadicMerchantsBellBearing1 = 400901, - [Annotation(Name = "[Corpse - Merchant] Nomadic Merchant's Bell Bearing [2] 400902")] - CorpseMerchantNomadicMerchantsBellBearing2 = 400902, + [Annotation(Name = "[Corpse - Merchant] Nomadic Merchant's Bell Bearing [2] 400902")] + CorpseMerchantNomadicMerchantsBellBearing2 = 400902, - [Annotation(Name = "[Corpse - Merchant] Nomadic Merchant's Bell Bearing [3] 400903")] - CorpseMerchantNomadicMerchantsBellBearing3 = 400903, + [Annotation(Name = "[Corpse - Merchant] Nomadic Merchant's Bell Bearing [3] 400903")] + CorpseMerchantNomadicMerchantsBellBearing3 = 400903, - [Annotation(Name = "[Corpse - Merchant] Nomadic Merchant's Bell Bearing [4] 400904")] - CorpseMerchantNomadicMerchantsBellBearing4 = 400904, + [Annotation(Name = "[Corpse - Merchant] Nomadic Merchant's Bell Bearing [4] 400904")] + CorpseMerchantNomadicMerchantsBellBearing4 = 400904, - [Annotation(Name = "[Corpse - Merchant] Nomadic Merchant's Bell Bearing [5] 400905")] - CorpseMerchantNomadicMerchantsBellBearing5 = 400905, + [Annotation(Name = "[Corpse - Merchant] Nomadic Merchant's Bell Bearing [5] 400905")] + CorpseMerchantNomadicMerchantsBellBearing5 = 400905, - [Annotation(Name = "[Corpse - Merchant] Isolated Merchant's Bell Bearing [1] 400906")] - CorpseMerchantIsolatedMerchantsBellBearing1 = 400906, + [Annotation(Name = "[Corpse - Merchant] Isolated Merchant's Bell Bearing [1] 400906")] + CorpseMerchantIsolatedMerchantsBellBearing1 = 400906, - [Annotation(Name = "[Corpse - Merchant] Isolated Merchant's Bell Bearing [2] 400907")] - CorpseMerchantIsolatedMerchantsBellBearing2 = 400907, + [Annotation(Name = "[Corpse - Merchant] Isolated Merchant's Bell Bearing [2] 400907")] + CorpseMerchantIsolatedMerchantsBellBearing2 = 400907, - [Annotation(Name = "[Corpse - Merchant] Nomadic Merchant's Bell Bearing [6] 400908")] - CorpseMerchantNomadicMerchantsBellBearing6 = 400908, + [Annotation(Name = "[Corpse - Merchant] Nomadic Merchant's Bell Bearing [6] 400908")] + CorpseMerchantNomadicMerchantsBellBearing6 = 400908, - [Annotation(Name = "[Corpse - Merchant] Hermit Merchant's Bell Bearing [1] 400909")] - CorpseMerchantHermitMerchantsBellBearing1 = 400909, + [Annotation(Name = "[Corpse - Merchant] Hermit Merchant's Bell Bearing [1] 400909")] + CorpseMerchantHermitMerchantsBellBearing1 = 400909, - [Annotation(Name = "[Corpse - Merchant] Nomadic Merchant's Bell Bearing [7] 400910")] - CorpseMerchantNomadicMerchantsBellBearing7 = 400910, + [Annotation(Name = "[Corpse - Merchant] Nomadic Merchant's Bell Bearing [7] 400910")] + CorpseMerchantNomadicMerchantsBellBearing7 = 400910, - [Annotation(Name = "[Corpse - Merchant] Nomadic Merchant's Bell Bearing [8] 400911")] - CorpseMerchantNomadicMerchantsBellBearing8 = 400911, + [Annotation(Name = "[Corpse - Merchant] Nomadic Merchant's Bell Bearing [8] 400911")] + CorpseMerchantNomadicMerchantsBellBearing8 = 400911, - [Annotation(Name = "[Corpse - Merchant] Nomadic Merchant's Bell Bearing [9] 400912")] - CorpseMerchantNomadicMerchantsBellBearing9 = 400912, + [Annotation(Name = "[Corpse - Merchant] Nomadic Merchant's Bell Bearing [9] 400912")] + CorpseMerchantNomadicMerchantsBellBearing9 = 400912, - [Annotation(Name = "[Corpse - Merchant] Nomadic Merchant's Bell Bearing [10] 400913")] - CorpseMerchantNomadicMerchantsBellBearing10 = 400913, + [Annotation(Name = "[Corpse - Merchant] Nomadic Merchant's Bell Bearing [10] 400913")] + CorpseMerchantNomadicMerchantsBellBearing10 = 400913, - [Annotation(Name = "[Corpse - Merchant] Nomadic Merchant's Bell Bearing [11] 400914")] - CorpseMerchantNomadicMerchantsBellBearing11 = 400914, + [Annotation(Name = "[Corpse - Merchant] Nomadic Merchant's Bell Bearing [11] 400914")] + CorpseMerchantNomadicMerchantsBellBearing11 = 400914, - [Annotation(Name = "[Corpse - Merchant] Isolated Merchant's Bell Bearing [3] 400915")] - CorpseMerchantIsolatedMerchantsBellBearing3 = 400915, + [Annotation(Name = "[Corpse - Merchant] Isolated Merchant's Bell Bearing [3] 400915")] + CorpseMerchantIsolatedMerchantsBellBearing3 = 400915, - [Annotation(Name = "[Corpse - Merchant] Hermit Merchant's Bell Bearing [2] 400916")] - CorpseMerchantHermitMerchantsBellBearing2 = 400916, + [Annotation(Name = "[Corpse - Merchant] Hermit Merchant's Bell Bearing [2] 400916")] + CorpseMerchantHermitMerchantsBellBearing2 = 400916, - [Annotation(Name = "[Corpse - Merchant] Abandoned Merchant's Bell Bearing 400917")] - CorpseMerchantAbandonedMerchantsBellBearing = 400917, + [Annotation(Name = "[Corpse - Merchant] Abandoned Merchant's Bell Bearing 400917")] + CorpseMerchantAbandonedMerchantsBellBearing = 400917, - [Annotation(Name = "[Corpse - Merchant] Hermit Merchant's Bell Bearing [3] 400918")] - CorpseMerchantHermitMerchantsBellBearing3 = 400918, + [Annotation(Name = "[Corpse - Merchant] Hermit Merchant's Bell Bearing [3] 400918")] + CorpseMerchantHermitMerchantsBellBearing3 = 400918, - [Annotation(Name = "[Corpse - Merchant] Imprisoned Merchant's Bell Bearing 400919")] - CorpseMerchantImprisonedMerchantsBellBearing = 400919, + [Annotation(Name = "[Corpse - Merchant] Imprisoned Merchant's Bell Bearing 400919")] + CorpseMerchantImprisonedMerchantsBellBearing = 400919, - [Annotation(Name = "[LD - Stormveil] Furlcalling Finger Remedy 10007030")] - LDStormveilFurlcallingFingerRemedy = 10007030, + [Annotation(Name = "[LD - Stormveil] Furlcalling Finger Remedy 10007030")] + LDStormveilFurlcallingFingerRemedy = 10007030, - [Annotation(Name = "[LD - Stormveil] Fire Grease 10007040")] - LDStormveilFireGrease = 10007040, + [Annotation(Name = "[LD - Stormveil] Fire Grease 10007040")] + LDStormveilFireGrease = 10007040, - [Annotation(Name = "[LD - Stormveil] Gold-Pickled Fowl Foot 10007050")] - LDStormveilGoldPickledFowlFoot = 10007050, + [Annotation(Name = "[LD - Stormveil] Gold-Pickled Fowl Foot 10007050")] + LDStormveilGoldPickledFowlFoot = 10007050, - [Annotation(Name = "[LD - Stormveil] Festering Bloody Finger 10007060")] - LDStormveilFesteringBloodyFinger = 10007060, + [Annotation(Name = "[LD - Stormveil] Festering Bloody Finger 10007060")] + LDStormveilFesteringBloodyFinger = 10007060, - [Annotation(Name = "[LD - Stormveil] Arrow 10007080")] - LDStormveilArrow = 10007080, + [Annotation(Name = "[LD - Stormveil] Arrow 10007080")] + LDStormveilArrow = 10007080, - [Annotation(Name = "[LD - Stormveil] Manor Towershield 10007090")] - LDStormveilManorTowershield = 10007090, + [Annotation(Name = "[LD - Stormveil] Manor Towershield 10007090")] + LDStormveilManorTowershield = 10007090, - [Annotation(Name = "[LD - Stormveil] Marred Leather Shield 10007100")] - LDStormveilMarredLeatherShield = 10007100, + [Annotation(Name = "[LD - Stormveil] Marred Leather Shield 10007100")] + LDStormveilMarredLeatherShield = 10007100, - [Annotation(Name = "[LD - Stormveil] Golden Rune [1] 10007110")] - LDStormveilGoldenRune1 = 10007110, + [Annotation(Name = "[LD - Stormveil] Golden Rune [1] 10007110")] + LDStormveilGoldenRune1 = 10007110, - [Annotation(Name = "[LD - Stormveil] Bolt 10007120")] - LDStormveilBolt = 10007120, + [Annotation(Name = "[LD - Stormveil] Bolt 10007120")] + LDStormveilBolt = 10007120, - [Annotation(Name = "[LD - Stormveil] Smithing Stone [3] 10007130")] - LDStormveilSmithingStone3 = 10007130, + [Annotation(Name = "[LD - Stormveil] Smithing Stone [3] 10007130")] + LDStormveilSmithingStone3 = 10007130, - [Annotation(Name = "[LD - Stormveil] Ruin Fragment 10007140")] - LDStormveilRuinFragment = 10007140, + [Annotation(Name = "[LD - Stormveil] Ruin Fragment 10007140")] + LDStormveilRuinFragment = 10007140, - [Annotation(Name = "[LD - Stormveil] Smithing Stone [2] 10007150")] - LDStormveilSmithingStone2 = 10007150, + [Annotation(Name = "[LD - Stormveil] Smithing Stone [2] 10007150")] + LDStormveilSmithingStone2 = 10007150, - [Annotation(Name = "[LD - Stormveil] Silver-Pickled Fowl Foot 10007160")] - LDStormveilSilverPickledFowlFoot = 10007160, + [Annotation(Name = "[LD - Stormveil] Silver-Pickled Fowl Foot 10007160")] + LDStormveilSilverPickledFowlFoot = 10007160, - [Annotation(Name = "[LD - Stormveil] Golden Rune [2] 10007170")] - LDStormveilGoldenRune2 = 10007170, + [Annotation(Name = "[LD - Stormveil] Golden Rune [2] 10007170")] + LDStormveilGoldenRune2 = 10007170, - [Annotation(Name = "[LD - Stormveil] Hookclaws 10007180")] - LDStormveilHookclaws = 10007180, + [Annotation(Name = "[LD - Stormveil] Hookclaws 10007180")] + LDStormveilHookclaws = 10007180, - [Annotation(Name = "[LD - Stormveil] Throwing Dagger 10007190")] - LDStormveilThrowingDagger = 10007190, + [Annotation(Name = "[LD - Stormveil] Throwing Dagger 10007190")] + LDStormveilThrowingDagger = 10007190, - [Annotation(Name = "[LD - Stormveil] St. Trina's Arrow 10007200")] - LDStormveilStTrinasArrow = 10007200, + [Annotation(Name = "[LD - Stormveil] St. Trina's Arrow 10007200")] + LDStormveilStTrinasArrow = 10007200, - [Annotation(Name = "[LD - Stormveil] Smoldering Butterfly 10007210")] - LDStormveilSmolderingButterfly = 10007210, + [Annotation(Name = "[LD - Stormveil] Smoldering Butterfly 10007210")] + LDStormveilSmolderingButterfly = 10007210, - [Annotation(Name = "[LD - Stormveil] Fire Grease 10007220")] - LDStormveilFireGrease_ = 10007220, + [Annotation(Name = "[LD - Stormveil] Fire Grease 10007220")] + LDStormveilFireGrease_ = 10007220, - [Annotation(Name = "[LD - Stormveil] Claw Talisman 10007230")] - LDStormveilClawTalisman = 10007230, + [Annotation(Name = "[LD - Stormveil] Claw Talisman 10007230")] + LDStormveilClawTalisman = 10007230, - [Annotation(Name = "[LD - Stormveil] Golden Rune [2] 10007240")] - LDStormveilGoldenRune2_ = 10007240, + [Annotation(Name = "[LD - Stormveil] Golden Rune [2] 10007240")] + LDStormveilGoldenRune2_ = 10007240, - [Annotation(Name = "[LD - Stormveil] Arteria Leaf 10007250")] - LDStormveilArteriaLeaf = 10007250, + [Annotation(Name = "[LD - Stormveil] Arteria Leaf 10007250")] + LDStormveilArteriaLeaf = 10007250, - [Annotation(Name = "[LD - Stormveil] Throwing Dagger 10007260")] - LDStormveilThrowingDagger_ = 10007260, + [Annotation(Name = "[LD - Stormveil] Throwing Dagger 10007260")] + LDStormveilThrowingDagger_ = 10007260, - [Annotation(Name = "[LD - Stormveil] Mushroom 10007270")] - LDStormveilMushroom = 10007270, + [Annotation(Name = "[LD - Stormveil] Mushroom 10007270")] + LDStormveilMushroom = 10007270, - [Annotation(Name = "[LD - Stormveil] Drawstring Fire Grease 10007280")] - LDStormveilDrawstringFireGrease = 10007280, + [Annotation(Name = "[LD - Stormveil] Drawstring Fire Grease 10007280")] + LDStormveilDrawstringFireGrease = 10007280, - [Annotation(Name = "[LD - Stormveil] Golden Rune [2] 10007290")] - LDStormveilGoldenRune2__ = 10007290, + [Annotation(Name = "[LD - Stormveil] Golden Rune [2] 10007290")] + LDStormveilGoldenRune2__ = 10007290, - [Annotation(Name = "[LD - Stormveil] Somber Smithing Stone [2] 10007300")] - LDStormveilSomberSmithingStone2 = 10007300, + [Annotation(Name = "[LD - Stormveil] Somber Smithing Stone [2] 10007300")] + LDStormveilSomberSmithingStone2 = 10007300, - [Annotation(Name = "[LD - Stormveil] Smithing Stone [2] 10007310")] - LDStormveilSmithingStone2_ = 10007310, + [Annotation(Name = "[LD - Stormveil] Smithing Stone [2] 10007310")] + LDStormveilSmithingStone2_ = 10007310, - [Annotation(Name = "[LD - Stormveil] Marred Wooden Shield 10007320")] - LDStormveilMarredWoodenShield = 10007320, + [Annotation(Name = "[LD - Stormveil] Marred Wooden Shield 10007320")] + LDStormveilMarredWoodenShield = 10007320, - [Annotation(Name = "[LD - Stormveil] Golden Rune [2] 10007330")] - LDStormveilGoldenRune2___ = 10007330, + [Annotation(Name = "[LD - Stormveil] Golden Rune [2] 10007330")] + LDStormveilGoldenRune2___ = 10007330, - [Annotation(Name = "[LD - Stormveil] Highland Axe 10007340")] - LDStormveilHighlandAxe = 10007340, + [Annotation(Name = "[LD - Stormveil] Highland Axe 10007340")] + LDStormveilHighlandAxe = 10007340, - [Annotation(Name = "[LD - Stormveil] Kukri 10007350")] - LDStormveilKukri = 10007350, + [Annotation(Name = "[LD - Stormveil] Kukri 10007350")] + LDStormveilKukri = 10007350, - [Annotation(Name = "[LD - Stormveil] Golden Rune [2] 10007360")] - LDStormveilGoldenRune2____ = 10007360, + [Annotation(Name = "[LD - Stormveil] Golden Rune [2] 10007360")] + LDStormveilGoldenRune2____ = 10007360, - [Annotation(Name = "[LD - Stormveil] Stonesword Key 10007370")] - LDStormveilStoneswordKey = 10007370, + [Annotation(Name = "[LD - Stormveil] Stonesword Key 10007370")] + LDStormveilStoneswordKey = 10007370, - [Annotation(Name = "[LD - Stormveil] Exalted Flesh 10007380")] - LDStormveilExaltedFlesh = 10007380, + [Annotation(Name = "[LD - Stormveil] Exalted Flesh 10007380")] + LDStormveilExaltedFlesh = 10007380, - [Annotation(Name = "[LD - Stormveil] Lump of Flesh 10007390")] - LDStormveilLumpOfFlesh = 10007390, + [Annotation(Name = "[LD - Stormveil] Lump of Flesh 10007390")] + LDStormveilLumpOfFlesh = 10007390, - [Annotation(Name = "[LD - Stormveil] Golden Rune [1] 10007400")] - LDStormveilGoldenRune1_ = 10007400, + [Annotation(Name = "[LD - Stormveil] Golden Rune [1] 10007400")] + LDStormveilGoldenRune1_ = 10007400, - [Annotation(Name = "[LD - Stormveil] Smithing Stone [2] 10007410")] - LDStormveilSmithingStone2__ = 10007410, + [Annotation(Name = "[LD - Stormveil] Smithing Stone [2] 10007410")] + LDStormveilSmithingStone2__ = 10007410, - [Annotation(Name = "[LD - Stormveil] Iron Whetblade 65610")] - LDStormveilIronWhetblade = 65610, + [Annotation(Name = "[LD - Stormveil] Iron Whetblade 65610")] + LDStormveilIronWhetblade = 65610, - [Annotation(Name = "[LD - Stormveil] Arrow 10007430")] - LDStormveilArrow_ = 10007430, + [Annotation(Name = "[LD - Stormveil] Arrow 10007430")] + LDStormveilArrow_ = 10007430, - [Annotation(Name = "[LD - Stormveil] Fireproof Dried Liver 10007440")] - LDStormveilFireproofDriedLiver = 10007440, + [Annotation(Name = "[LD - Stormveil] Fireproof Dried Liver 10007440")] + LDStormveilFireproofDriedLiver = 10007440, - [Annotation(Name = "[LD - Stormveil] Chrysalids' Memento 10007450")] - LDStormveilChrysalidsMemento = 10007450, + [Annotation(Name = "[LD - Stormveil] Chrysalids' Memento 10007450")] + LDStormveilChrysalidsMemento = 10007450, - [Annotation(Name = "[LD - Stormveil] Crimson Hood 10007452")] - LDStormveilCrimsonHood = 10007452, + [Annotation(Name = "[LD - Stormveil] Crimson Hood 10007452")] + LDStormveilCrimsonHood = 10007452, - [Annotation(Name = "[LD - Stormveil] Stanching Boluses 10007460")] - LDStormveilStanchingBoluses = 10007460, + [Annotation(Name = "[LD - Stormveil] Stanching Boluses 10007460")] + LDStormveilStanchingBoluses = 10007460, - [Annotation(Name = "[LD - Stormveil] Stonesword Key 10007470")] - LDStormveilStoneswordKey_ = 10007470, + [Annotation(Name = "[LD - Stormveil] Stonesword Key 10007470")] + LDStormveilStoneswordKey_ = 10007470, - [Annotation(Name = "[LD - Stormveil] Nomadic Warrior's Cookbook [10] 67030")] - LDStormveilNomadicWarriorsCookbook10 = 67030, + [Annotation(Name = "[LD - Stormveil] Nomadic Warrior's Cookbook [10] 67030")] + LDStormveilNomadicWarriorsCookbook10 = 67030, - [Annotation(Name = "[LD - Stormveil] Rusty Key 10007500")] - LDStormveilRustyKey = 10007500, + [Annotation(Name = "[LD - Stormveil] Rusty Key 10007500")] + LDStormveilRustyKey = 10007500, - [Annotation(Name = "[LD - Stormveil] Smithing Stone [1] 10007510")] - LDStormveilSmithingStone1 = 10007510, + [Annotation(Name = "[LD - Stormveil] Smithing Stone [1] 10007510")] + LDStormveilSmithingStone1 = 10007510, - [Annotation(Name = "[LD - Stormveil] Golden Rune [1] 10007520")] - LDStormveilGoldenRune1__ = 10007520, + [Annotation(Name = "[LD - Stormveil] Golden Rune [1] 10007520")] + LDStormveilGoldenRune1__ = 10007520, - [Annotation(Name = "[LD - Stormveil] Golden Rune [2] 10007530")] - LDStormveilGoldenRune2_____ = 10007530, + [Annotation(Name = "[LD - Stormveil] Golden Rune [2] 10007530")] + LDStormveilGoldenRune2_____ = 10007530, - [Annotation(Name = "[LD - Stormveil] Ballista Bolt 10007540")] - LDStormveilBallistaBolt = 10007540, + [Annotation(Name = "[LD - Stormveil] Ballista Bolt 10007540")] + LDStormveilBallistaBolt = 10007540, - [Annotation(Name = "[LD - Stormveil] Arbalest 10007550")] - LDStormveilArbalest = 10007550, + [Annotation(Name = "[LD - Stormveil] Arbalest 10007550")] + LDStormveilArbalest = 10007550, - [Annotation(Name = "[LD - Stormveil] Commoner's Simple Garb 10007560")] - LDStormveilCommonersSimpleGarb = 10007560, + [Annotation(Name = "[LD - Stormveil] Commoner's Simple Garb 10007560")] + LDStormveilCommonersSimpleGarb = 10007560, - [Annotation(Name = "[LD - Stormveil] Golden Rune [2] 10007570")] - LDStormveilGoldenRune2______ = 10007570, + [Annotation(Name = "[LD - Stormveil] Golden Rune [2] 10007570")] + LDStormveilGoldenRune2______ = 10007570, - [Annotation(Name = "[LD - Stormveil] Golden Rune [5] 10007580")] - LDStormveilGoldenRune5 = 10007580, + [Annotation(Name = "[LD - Stormveil] Golden Rune [5] 10007580")] + LDStormveilGoldenRune5 = 10007580, - [Annotation(Name = "[LD - Stormveil] Smithing Stone [2] 10007590")] - LDStormveilSmithingStone2___ = 10007590, + [Annotation(Name = "[LD - Stormveil] Smithing Stone [2] 10007590")] + LDStormveilSmithingStone2___ = 10007590, - [Annotation(Name = "[LD - Stormveil] Golden Rune [4] 10007600")] - LDStormveilGoldenRune4 = 10007600, + [Annotation(Name = "[LD - Stormveil] Golden Rune [4] 10007600")] + LDStormveilGoldenRune4 = 10007600, - [Annotation(Name = "[LD - Stormveil] Fire Arrow 10007610")] - LDStormveilFireArrow = 10007610, + [Annotation(Name = "[LD - Stormveil] Fire Arrow 10007610")] + LDStormveilFireArrow = 10007610, - [Annotation(Name = "[LD - Stormveil] Pike 10007620")] - LDStormveilPike = 10007620, + [Annotation(Name = "[LD - Stormveil] Pike 10007620")] + LDStormveilPike = 10007620, - [Annotation(Name = "[LD - Stormveil] Furlcalling Finger Remedy 10007630")] - LDStormveilFurlcallingFingerRemedy_ = 10007630, + [Annotation(Name = "[LD - Stormveil] Furlcalling Finger Remedy 10007630")] + LDStormveilFurlcallingFingerRemedy_ = 10007630, - [Annotation(Name = "[LD - Stormveil] Smithing Stone [1] 10007640")] - LDStormveilSmithingStone1_ = 10007640, + [Annotation(Name = "[LD - Stormveil] Smithing Stone [1] 10007640")] + LDStormveilSmithingStone1_ = 10007640, - [Annotation(Name = "[LD - Stormveil] Smoldering Butterfly 10007650")] - LDStormveilSmolderingButterfly_ = 10007650, + [Annotation(Name = "[LD - Stormveil] Smoldering Butterfly 10007650")] + LDStormveilSmolderingButterfly_ = 10007650, - [Annotation(Name = "[LD - Stormveil] Golden Rune [4] 10007660")] - LDStormveilGoldenRune4_ = 10007660, + [Annotation(Name = "[LD - Stormveil] Golden Rune [4] 10007660")] + LDStormveilGoldenRune4_ = 10007660, - [Annotation(Name = "[LD - Stormveil] Golden Rune [1] 10007670")] - LDStormveilGoldenRune1___ = 10007670, + [Annotation(Name = "[LD - Stormveil] Golden Rune [1] 10007670")] + LDStormveilGoldenRune1___ = 10007670, - [Annotation(Name = "[LD - Stormveil] Mushroom 10007680")] - LDStormveilMushroom_ = 10007680, + [Annotation(Name = "[LD - Stormveil] Mushroom 10007680")] + LDStormveilMushroom_ = 10007680, - [Annotation(Name = "[LD - Stormveil] Golden Rune [2] 10007690")] - LDStormveilGoldenRune2_______ = 10007690, + [Annotation(Name = "[LD - Stormveil] Golden Rune [2] 10007690")] + LDStormveilGoldenRune2_______ = 10007690, - [Annotation(Name = "[LD - Stormveil] Magic Grease 10007700")] - LDStormveilMagicGrease = 10007700, + [Annotation(Name = "[LD - Stormveil] Magic Grease 10007700")] + LDStormveilMagicGrease = 10007700, - [Annotation(Name = "[LD - Stormveil] Smithing Stone [2] 10007710")] - LDStormveilSmithingStone2____ = 10007710, + [Annotation(Name = "[LD - Stormveil] Smithing Stone [2] 10007710")] + LDStormveilSmithingStone2____ = 10007710, - [Annotation(Name = "[LD - Stormveil] Golden Rune [2] 10007720")] - LDStormveilGoldenRune2________ = 10007720, + [Annotation(Name = "[LD - Stormveil] Golden Rune [2] 10007720")] + LDStormveilGoldenRune2________ = 10007720, - [Annotation(Name = "[LD - Stormveil] Golden Seed 10007730")] - LDStormveilGoldenSeed = 10007730, + [Annotation(Name = "[LD - Stormveil] Golden Seed 10007730")] + LDStormveilGoldenSeed = 10007730, - [Annotation(Name = "[LD - Stormveil] Smithing Stone [2] 10007740")] - LDStormveilSmithingStone2_____ = 10007740, + [Annotation(Name = "[LD - Stormveil] Smithing Stone [2] 10007740")] + LDStormveilSmithingStone2_____ = 10007740, - [Annotation(Name = "[LD - Stormveil] Smithing Stone [1] 10007750")] - LDStormveilSmithingStone1__ = 10007750, + [Annotation(Name = "[LD - Stormveil] Smithing Stone [1] 10007750")] + LDStormveilSmithingStone1__ = 10007750, - [Annotation(Name = "[LD - Stormveil] Golden Rune [5] 10007760")] - LDStormveilGoldenRune5_ = 10007760, + [Annotation(Name = "[LD - Stormveil] Golden Rune [5] 10007760")] + LDStormveilGoldenRune5_ = 10007760, - [Annotation(Name = "[LD - Stormveil] Cracked Pot 66010")] - LDStormveilCrackedPot = 66010, + [Annotation(Name = "[LD - Stormveil] Cracked Pot 66010")] + LDStormveilCrackedPot = 66010, - [Annotation(Name = "[LD - Stormveil] Cracked Pot 66020")] - LDStormveilCrackedPot_ = 66020, + [Annotation(Name = "[LD - Stormveil] Cracked Pot 66020")] + LDStormveilCrackedPot_ = 66020, - [Annotation(Name = "[LD - Stormveil] Smithing Stone [1] 10007780")] - LDStormveilSmithingStone1___ = 10007780, + [Annotation(Name = "[LD - Stormveil] Smithing Stone [1] 10007780")] + LDStormveilSmithingStone1___ = 10007780, - [Annotation(Name = "[LD - Stormveil] Kukri 10007790")] - LDStormveilKukri_ = 10007790, + [Annotation(Name = "[LD - Stormveil] Kukri 10007790")] + LDStormveilKukri_ = 10007790, - [Annotation(Name = "[LD - Stormveil] Smithing Stone [2] 10007800")] - LDStormveilSmithingStone2______ = 10007800, + [Annotation(Name = "[LD - Stormveil] Smithing Stone [2] 10007800")] + LDStormveilSmithingStone2______ = 10007800, - [Annotation(Name = "[LD - Stormveil] Lump of Flesh 10007810")] - LDStormveilLumpOfFlesh_ = 10007810, + [Annotation(Name = "[LD - Stormveil] Lump of Flesh 10007810")] + LDStormveilLumpOfFlesh_ = 10007810, - [Annotation(Name = "[LD - Stormveil] Smithing Stone [1] 10007820")] - LDStormveilSmithingStone1____ = 10007820, + [Annotation(Name = "[LD - Stormveil] Smithing Stone [1] 10007820")] + LDStormveilSmithingStone1____ = 10007820, - [Annotation(Name = "[LD - Stormveil] Golden Rune [2] 10007830")] - LDStormveilGoldenRune2_________ = 10007830, + [Annotation(Name = "[LD - Stormveil] Golden Rune [2] 10007830")] + LDStormveilGoldenRune2_________ = 10007830, - [Annotation(Name = "[LD - Stormveil] Smithing Stone [3] 10007840")] - LDStormveilSmithingStone3_ = 10007840, + [Annotation(Name = "[LD - Stormveil] Smithing Stone [3] 10007840")] + LDStormveilSmithingStone3_ = 10007840, - [Annotation(Name = "[LD - Stormveil] Shabriri Grape 10007850")] - LDStormveilShabririGrape = 10007850, + [Annotation(Name = "[LD - Stormveil] Shabriri Grape 10007850")] + LDStormveilShabririGrape = 10007850, - [Annotation(Name = "[LD - Stormveil] Rainbow Stone 10007860")] - LDStormveilRainbowStone = 10007860, + [Annotation(Name = "[LD - Stormveil] Rainbow Stone 10007860")] + LDStormveilRainbowStone = 10007860, - [Annotation(Name = "[LD - Stormveil] Smithing Stone [2] 10007870")] - LDStormveilSmithingStone2_______ = 10007870, + [Annotation(Name = "[LD - Stormveil] Smithing Stone [2] 10007870")] + LDStormveilSmithingStone2_______ = 10007870, - [Annotation(Name = "[LD - Stormveil] Arteria Leaf 10007880")] - LDStormveilArteriaLeaf_ = 10007880, + [Annotation(Name = "[LD - Stormveil] Arteria Leaf 10007880")] + LDStormveilArteriaLeaf_ = 10007880, - [Annotation(Name = "[LD - Stormveil] Golden Rune [2] 10007890")] - LDStormveilGoldenRune2__________ = 10007890, + [Annotation(Name = "[LD - Stormveil] Golden Rune [2] 10007890")] + LDStormveilGoldenRune2__________ = 10007890, - [Annotation(Name = "[LD - Stormveil] Poisonbloom 10007900")] - LDStormveilPoisonbloom = 10007900, + [Annotation(Name = "[LD - Stormveil] Poisonbloom 10007900")] + LDStormveilPoisonbloom = 10007900, - [Annotation(Name = "[LD - Stormveil] Smoldering Butterfly 10007910")] - LDStormveilSmolderingButterfly__ = 10007910, + [Annotation(Name = "[LD - Stormveil] Smoldering Butterfly 10007910")] + LDStormveilSmolderingButterfly__ = 10007910, - [Annotation(Name = "[LD - Stormveil] Stonesword Key 10007920")] - LDStormveilStoneswordKey__ = 10007920, + [Annotation(Name = "[LD - Stormveil] Stonesword Key 10007920")] + LDStormveilStoneswordKey__ = 10007920, - [Annotation(Name = "[LD - Stormveil] Throwing Dagger 10007930")] - LDStormveilThrowingDagger__ = 10007930, + [Annotation(Name = "[LD - Stormveil] Throwing Dagger 10007930")] + LDStormveilThrowingDagger__ = 10007930, - [Annotation(Name = "[LD - Stormveil] Prince of Death's Pustule 10007940")] - LDStormveilPrinceOfDeathsPustule = 10007940, + [Annotation(Name = "[LD - Stormveil] Prince of Death's Pustule 10007940")] + LDStormveilPrinceOfDeathsPustule = 10007940, - [Annotation(Name = "[LD - Stormveil] Kukri 10007950")] - LDStormveilKukri__ = 10007950, + [Annotation(Name = "[LD - Stormveil] Kukri 10007950")] + LDStormveilKukri__ = 10007950, - [Annotation(Name = "[LD - Stormveil] Pickled Turtle Neck 10007960")] - LDStormveilPickledTurtleNeck = 10007960, + [Annotation(Name = "[LD - Stormveil] Pickled Turtle Neck 10007960")] + LDStormveilPickledTurtleNeck = 10007960, - [Annotation(Name = "[LD - Stormveil] Godslayer's Seal 10007965")] - LDStormveilGodslayersSeal = 10007965, + [Annotation(Name = "[LD - Stormveil] Godslayer's Seal 10007965")] + LDStormveilGodslayersSeal = 10007965, - [Annotation(Name = "[LD - Stormveil] Mimic's Veil 10007970")] - LDStormveilMimicsVeil = 10007970, + [Annotation(Name = "[LD - Stormveil] Mimic's Veil 10007970")] + LDStormveilMimicsVeil = 10007970, - [Annotation(Name = "[LD - Stormveil] Curved Sword Talisman 10007975")] - LDStormveilCurvedSwordTalisman = 10007975, + [Annotation(Name = "[LD - Stormveil] Curved Sword Talisman 10007975")] + LDStormveilCurvedSwordTalisman = 10007975, - [Annotation(Name = "[LD - Stormveil] Somber Smithing Stone [2] 10007980")] - LDStormveilSomberSmithingStone2_ = 10007980, + [Annotation(Name = "[LD - Stormveil] Somber Smithing Stone [2] 10007980")] + LDStormveilSomberSmithingStone2_ = 10007980, - [Annotation(Name = "[LD - Stormveil] Godskin Prayerbook 10007990")] - LDStormveilGodskinPrayerbook = 10007990, + [Annotation(Name = "[LD - Stormveil] Godskin Prayerbook 10007990")] + LDStormveilGodskinPrayerbook = 10007990, - [Annotation(Name = "[LD - Stormveil] Somber Smithing Stone [1] 10007085")] - LDStormveilSomberSmithingStone1 = 10007085, + [Annotation(Name = "[LD - Stormveil] Somber Smithing Stone [1] 10007085")] + LDStormveilSomberSmithingStone1 = 10007085, - [Annotation(Name = "[LD - Stormveil] Golden Seed 10007195")] - LDStormveilGoldenSeed_ = 10007195, + [Annotation(Name = "[LD - Stormveil] Golden Seed 10007195")] + LDStormveilGoldenSeed_ = 10007195, - [Annotation(Name = "[LD - Stormveil] [Incantation] Aspects of the Crucible: Horns 10007295")] - LDStormveilIncantationAspectsOfTheCrucibleHorns = 10007295, + [Annotation(Name = "[LD - Stormveil] [Incantation] Aspects of the Crucible: Horns 10007295")] + LDStormveilIncantationAspectsOfTheCrucibleHorns = 10007295, - [Annotation(Name = "[LD - Stormveil] Wooden Greatshield 10007005")] - LDStormveilWoodenGreatshield = 10007005, + [Annotation(Name = "[LD - Stormveil] Wooden Greatshield 10007005")] + LDStormveilWoodenGreatshield = 10007005, - [Annotation(Name = "[LD - Stormveil] Hawk Crest Wooden Shield 10007015")] - LDStormveilHawkCrestWoodenShield = 10007015, + [Annotation(Name = "[LD - Stormveil] Hawk Crest Wooden Shield 10007015")] + LDStormveilHawkCrestWoodenShield = 10007015, - [Annotation(Name = "[LD - Stormveil] Misericorde 10007025")] - LDStormveilMisericorde = 10007025, + [Annotation(Name = "[LD - Stormveil] Misericorde 10007025")] + LDStormveilMisericorde = 10007025, - [Annotation(Name = "[LD - Stormveil] Brick Hammer 10007035")] - LDStormveilBrickHammer = 10007035, + [Annotation(Name = "[LD - Stormveil] Brick Hammer 10007035")] + LDStormveilBrickHammer = 10007035, - [Annotation(Name = "[LD - Chapel of Anticipation] Tarnished's Wizened Finger 60210")] - LDChapelOfAnticipationTarnishedsWizenedFinger = 60210, + [Annotation(Name = "[LD - Chapel of Anticipation] Tarnished's Wizened Finger 60210")] + LDChapelOfAnticipationTarnishedsWizenedFinger = 60210, - [Annotation(Name = "[LD - Chapel of Anticipation] The Stormhawk King 10017010")] - LDChapelOfAnticipationTheStormhawkKing = 10017010, + [Annotation(Name = "[LD - Chapel of Anticipation] The Stormhawk King 10017010")] + LDChapelOfAnticipationTheStormhawkKing = 10017010, - [Annotation(Name = "[LD - Chapel of Anticipation] Stormhawk Deenh 10017900")] - LDChapelOfAnticipationStormhawkDeenh = 10017900, + [Annotation(Name = "[LD - Chapel of Anticipation] Stormhawk Deenh 10017900")] + LDChapelOfAnticipationStormhawkDeenh = 10017900, - [Annotation(Name = "[LD - Leyndell] Magic Grease 11007000")] - LDLeyndellMagicGrease = 11007000, + [Annotation(Name = "[LD - Leyndell] Magic Grease 11007000")] + LDLeyndellMagicGrease = 11007000, - [Annotation(Name = "[LD - Leyndell] Furlcalling Finger Remedy 11007010")] - LDLeyndellFurlcallingFingerRemedy = 11007010, + [Annotation(Name = "[LD - Leyndell] Furlcalling Finger Remedy 11007010")] + LDLeyndellFurlcallingFingerRemedy = 11007010, - [Annotation(Name = "[LD - Leyndell] Hefty Beast Bone 11007020")] - LDLeyndellHeftyBeastBone = 11007020, + [Annotation(Name = "[LD - Leyndell] Hefty Beast Bone 11007020")] + LDLeyndellHeftyBeastBone = 11007020, - [Annotation(Name = "[LD - Leyndell] Smithing Stone [4] 11007030")] - LDLeyndellSmithingStone4 = 11007030, + [Annotation(Name = "[LD - Leyndell] Smithing Stone [4] 11007030")] + LDLeyndellSmithingStone4 = 11007030, - [Annotation(Name = "[LD - Leyndell] Golden Rune [7] 11007040")] - LDLeyndellGoldenRune7 = 11007040, + [Annotation(Name = "[LD - Leyndell] Golden Rune [7] 11007040")] + LDLeyndellGoldenRune7 = 11007040, - [Annotation(Name = "[LD - Leyndell] Cave Moss 11007050")] - LDLeyndellCaveMoss = 11007050, + [Annotation(Name = "[LD - Leyndell] Cave Moss 11007050")] + LDLeyndellCaveMoss = 11007050, - [Annotation(Name = "[LD - Leyndell] Preserving Boluses 11007060")] - LDLeyndellPreservingBoluses = 11007060, + [Annotation(Name = "[LD - Leyndell] Preserving Boluses 11007060")] + LDLeyndellPreservingBoluses = 11007060, - [Annotation(Name = "[LD - Leyndell] String 11007070")] - LDLeyndellString = 11007070, + [Annotation(Name = "[LD - Leyndell] String 11007070")] + LDLeyndellString = 11007070, - [Annotation(Name = "[LD - Leyndell] Upper-Class Robe 11007080")] - LDLeyndellUpperClassRobe = 11007080, + [Annotation(Name = "[LD - Leyndell] Upper-Class Robe 11007080")] + LDLeyndellUpperClassRobe = 11007080, - [Annotation(Name = "[LD - Leyndell] Miranda Powder 11007090")] - LDLeyndellMirandaPowder = 11007090, + [Annotation(Name = "[LD - Leyndell] Miranda Powder 11007090")] + LDLeyndellMirandaPowder = 11007090, - [Annotation(Name = "[LD - Leyndell] Smithing Stone [6] 11007100")] - LDLeyndellSmithingStone6 = 11007100, + [Annotation(Name = "[LD - Leyndell] Smithing Stone [6] 11007100")] + LDLeyndellSmithingStone6 = 11007100, - [Annotation(Name = "[LD - Leyndell] Warming Stone 11007110")] - LDLeyndellWarmingStone = 11007110, + [Annotation(Name = "[LD - Leyndell] Warming Stone 11007110")] + LDLeyndellWarmingStone = 11007110, - [Annotation(Name = "[LD - Leyndell] Golden Rune [10] 11007120")] - LDLeyndellGoldenRune10 = 11007120, + [Annotation(Name = "[LD - Leyndell] Golden Rune [10] 11007120")] + LDLeyndellGoldenRune10 = 11007120, - [Annotation(Name = "[LD - Leyndell] Perfume Bottle 66710")] - LDLeyndellPerfumeBottle = 66710, + [Annotation(Name = "[LD - Leyndell] Perfume Bottle 66710")] + LDLeyndellPerfumeBottle = 66710, - [Annotation(Name = "[LD - Leyndell] Fan Daggers 11007140")] - LDLeyndellFanDaggers = 11007140, + [Annotation(Name = "[LD - Leyndell] Fan Daggers 11007140")] + LDLeyndellFanDaggers = 11007140, - [Annotation(Name = "[LD - Leyndell] Marika's Golden Siigl 11007150")] - LDLeyndellMarikasGoldenSiigl = 11007150, + [Annotation(Name = "[LD - Leyndell] Marika's Golden Siigl 11007150")] + LDLeyndellMarikasGoldenSiigl = 11007150, - [Annotation(Name = "[LD - Leyndell] Holy Grease 11007160")] - LDLeyndellHolyGrease = 11007160, + [Annotation(Name = "[LD - Leyndell] Holy Grease 11007160")] + LDLeyndellHolyGrease = 11007160, - [Annotation(Name = "[LD - Leyndell] Golden Rune [8] 11007170")] - LDLeyndellGoldenRune8 = 11007170, + [Annotation(Name = "[LD - Leyndell] Golden Rune [8] 11007170")] + LDLeyndellGoldenRune8 = 11007170, - [Annotation(Name = "[LD - Leyndell] Old Fang 11007180")] - LDLeyndellOldFang = 11007180, + [Annotation(Name = "[LD - Leyndell] Old Fang 11007180")] + LDLeyndellOldFang = 11007180, - [Annotation(Name = "[LD - Leyndell] Smithing Stone [4] 11007190")] - LDLeyndellSmithingStone4_ = 11007190, + [Annotation(Name = "[LD - Leyndell] Smithing Stone [4] 11007190")] + LDLeyndellSmithingStone4_ = 11007190, - [Annotation(Name = "[LD - Leyndell] Golden Rune [8] 11007200")] - LDLeyndellGoldenRune8_ = 11007200, + [Annotation(Name = "[LD - Leyndell] Golden Rune [8] 11007200")] + LDLeyndellGoldenRune8_ = 11007200, - [Annotation(Name = "[LD - Leyndell] Somber Smithing Stone [5] 11007210")] - LDLeyndellSomberSmithingStone5 = 11007210, + [Annotation(Name = "[LD - Leyndell] Somber Smithing Stone [5] 11007210")] + LDLeyndellSomberSmithingStone5 = 11007210, - [Annotation(Name = "[LD - Leyndell] Golden Rune [8] 11007220")] - LDLeyndellGoldenRune8__ = 11007220, + [Annotation(Name = "[LD - Leyndell] Golden Rune [8] 11007220")] + LDLeyndellGoldenRune8__ = 11007220, - [Annotation(Name = "[LD - Leyndell] Lordsworn's Bolt 11007230")] - LDLeyndellLordswornsBolt = 11007230, + [Annotation(Name = "[LD - Leyndell] Lordsworn's Bolt 11007230")] + LDLeyndellLordswornsBolt = 11007230, - [Annotation(Name = "[LD - Leyndell] Tarnished Golden Sunflower 11007240")] - LDLeyndellTarnishedGoldenSunflower = 11007240, + [Annotation(Name = "[LD - Leyndell] Tarnished Golden Sunflower 11007240")] + LDLeyndellTarnishedGoldenSunflower = 11007240, - [Annotation(Name = "[LD - Leyndell] Stonesword Key 11007250")] - LDLeyndellStoneswordKey = 11007250, + [Annotation(Name = "[LD - Leyndell] Stonesword Key 11007250")] + LDLeyndellStoneswordKey = 11007250, - [Annotation(Name = "[LD - Leyndell] Golden Rune [10] 11007260")] - LDLeyndellGoldenRune10_ = 11007260, + [Annotation(Name = "[LD - Leyndell] Golden Rune [10] 11007260")] + LDLeyndellGoldenRune10_ = 11007260, - [Annotation(Name = "[LD - Leyndell] Golden Rune [8] 11007270")] - LDLeyndellGoldenRune8___ = 11007270, + [Annotation(Name = "[LD - Leyndell] Golden Rune [8] 11007270")] + LDLeyndellGoldenRune8___ = 11007270, - [Annotation(Name = "[LD - Leyndell] Golden Rune [9] 11007280")] - LDLeyndellGoldenRune9 = 11007280, + [Annotation(Name = "[LD - Leyndell] Golden Rune [9] 11007280")] + LDLeyndellGoldenRune9 = 11007280, - [Annotation(Name = "[LD - Leyndell] Smithing Stone [6] 11007290")] - LDLeyndellSmithingStone6_ = 11007290, + [Annotation(Name = "[LD - Leyndell] Smithing Stone [6] 11007290")] + LDLeyndellSmithingStone6_ = 11007290, - [Annotation(Name = "[LD - Leyndell] Golden Rune [9] 11007300")] - LDLeyndellGoldenRune9_ = 11007300, + [Annotation(Name = "[LD - Leyndell] Golden Rune [9] 11007300")] + LDLeyndellGoldenRune9_ = 11007300, - [Annotation(Name = "[LD - Leyndell] Arteria Leaf 11007310")] - LDLeyndellArteriaLeaf = 11007310, + [Annotation(Name = "[LD - Leyndell] Arteria Leaf 11007310")] + LDLeyndellArteriaLeaf = 11007310, - [Annotation(Name = "[LD - Leyndell] Imp Head (Corpse) 11007320")] - LDLeyndellImpHeadCorpse = 11007320, + [Annotation(Name = "[LD - Leyndell] Imp Head (Corpse) 11007320")] + LDLeyndellImpHeadCorpse = 11007320, - [Annotation(Name = "[LD - Leyndell] Golden Rune [9] 11007330")] - LDLeyndellGoldenRune9__ = 11007330, + [Annotation(Name = "[LD - Leyndell] Golden Rune [9] 11007330")] + LDLeyndellGoldenRune9__ = 11007330, - [Annotation(Name = "[LD - Leyndell] Seedbed Curse 11007340")] - LDLeyndellSeedbedCurse = 11007340, + [Annotation(Name = "[LD - Leyndell] Seedbed Curse 11007340")] + LDLeyndellSeedbedCurse = 11007340, - [Annotation(Name = "[LD - Leyndell] Smithing Stone [6] 11007350")] - LDLeyndellSmithingStone6__ = 11007350, + [Annotation(Name = "[LD - Leyndell] Smithing Stone [6] 11007350")] + LDLeyndellSmithingStone6__ = 11007350, - [Annotation(Name = "[LD - Leyndell] Golden Rune [9] 11007360")] - LDLeyndellGoldenRune9___ = 11007360, + [Annotation(Name = "[LD - Leyndell] Golden Rune [9] 11007360")] + LDLeyndellGoldenRune9___ = 11007360, - [Annotation(Name = "[LD - Leyndell] Smithing Stone [5] 11007370")] - LDLeyndellSmithingStone5 = 11007370, + [Annotation(Name = "[LD - Leyndell] Smithing Stone [5] 11007370")] + LDLeyndellSmithingStone5 = 11007370, - [Annotation(Name = "[LD - Leyndell] Stonesword Key 11007380")] - LDLeyndellStoneswordKey_ = 11007380, + [Annotation(Name = "[LD - Leyndell] Stonesword Key 11007380")] + LDLeyndellStoneswordKey_ = 11007380, - [Annotation(Name = "[LD - Leyndell] Golden Rune [12] 11007390")] - LDLeyndellGoldenRune12 = 11007390, + [Annotation(Name = "[LD - Leyndell] Golden Rune [12] 11007390")] + LDLeyndellGoldenRune12 = 11007390, - [Annotation(Name = "[LD - Leyndell] Beast Blood 11007400")] - LDLeyndellBeastBlood = 11007400, + [Annotation(Name = "[LD - Leyndell] Beast Blood 11007400")] + LDLeyndellBeastBlood = 11007400, - [Annotation(Name = "[LD - Leyndell] Nascent Butterfly 11007410")] - LDLeyndellNascentButterfly = 11007410, + [Annotation(Name = "[LD - Leyndell] Nascent Butterfly 11007410")] + LDLeyndellNascentButterfly = 11007410, - [Annotation(Name = "[LD - Leyndell] Exalted Flesh 11007420")] - LDLeyndellExaltedFlesh = 11007420, + [Annotation(Name = "[LD - Leyndell] Exalted Flesh 11007420")] + LDLeyndellExaltedFlesh = 11007420, - [Annotation(Name = "[LD - Leyndell] Soporific Grease 11007430")] - LDLeyndellSoporificGrease = 11007430, + [Annotation(Name = "[LD - Leyndell] Soporific Grease 11007430")] + LDLeyndellSoporificGrease = 11007430, - [Annotation(Name = "[LD - Leyndell] Somber Smithing Stone [6] 11007440")] - LDLeyndellSomberSmithingStone6 = 11007440, + [Annotation(Name = "[LD - Leyndell] Somber Smithing Stone [6] 11007440")] + LDLeyndellSomberSmithingStone6 = 11007440, - [Annotation(Name = "[LD - Leyndell] Golden Rune [9] 11007450")] - LDLeyndellGoldenRune9____ = 11007450, + [Annotation(Name = "[LD - Leyndell] Golden Rune [9] 11007450")] + LDLeyndellGoldenRune9____ = 11007450, - [Annotation(Name = "[LD - Leyndell] Lightningproof Dried Liver 11007460")] - LDLeyndellLightningproofDriedLiver = 11007460, + [Annotation(Name = "[LD - Leyndell] Lightningproof Dried Liver 11007460")] + LDLeyndellLightningproofDriedLiver = 11007460, - [Annotation(Name = "[LD - Leyndell] Perfume Bottle 66720")] - LDLeyndellPerfumeBottle_ = 66720, + [Annotation(Name = "[LD - Leyndell] Perfume Bottle 66720")] + LDLeyndellPerfumeBottle_ = 66720, - [Annotation(Name = "[LD - Leyndell] Gravel Stone 11007480")] - LDLeyndellGravelStone = 11007480, + [Annotation(Name = "[LD - Leyndell] Gravel Stone 11007480")] + LDLeyndellGravelStone = 11007480, - [Annotation(Name = "[LD - Leyndell] Stonesword Key 11007490")] - LDLeyndellStoneswordKey__ = 11007490, + [Annotation(Name = "[LD - Leyndell] Stonesword Key 11007490")] + LDLeyndellStoneswordKey__ = 11007490, - [Annotation(Name = "[LD - Leyndell] Golden Rune [9] 11007500")] - LDLeyndellGoldenRune9_____ = 11007500, + [Annotation(Name = "[LD - Leyndell] Golden Rune [9] 11007500")] + LDLeyndellGoldenRune9_____ = 11007500, - [Annotation(Name = "[LD - Leyndell] Smithing Stone [4] 11007510")] - LDLeyndellSmithingStone4__ = 11007510, + [Annotation(Name = "[LD - Leyndell] Smithing Stone [4] 11007510")] + LDLeyndellSmithingStone4__ = 11007510, - [Annotation(Name = "[LD - Leyndell] Golden Arrow 11007520")] - LDLeyndellGoldenArrow = 11007520, + [Annotation(Name = "[LD - Leyndell] Golden Arrow 11007520")] + LDLeyndellGoldenArrow = 11007520, - [Annotation(Name = "[LD - Leyndell] Smithing Stone [6] 11007530")] - LDLeyndellSmithingStone6___ = 11007530, + [Annotation(Name = "[LD - Leyndell] Smithing Stone [6] 11007530")] + LDLeyndellSmithingStone6___ = 11007530, - [Annotation(Name = "[LD - Leyndell] Clarifying Boluses 11007540")] - LDLeyndellClarifyingBoluses = 11007540, + [Annotation(Name = "[LD - Leyndell] Clarifying Boluses 11007540")] + LDLeyndellClarifyingBoluses = 11007540, - [Annotation(Name = "[LD - Leyndell] Golden Rune [8] 11007550")] - LDLeyndellGoldenRune8____ = 11007550, + [Annotation(Name = "[LD - Leyndell] Golden Rune [8] 11007550")] + LDLeyndellGoldenRune8____ = 11007550, - [Annotation(Name = "[LD - Leyndell] Cracked Pot 66130")] - LDLeyndellCrackedPot = 66130, + [Annotation(Name = "[LD - Leyndell] Cracked Pot 66130")] + LDLeyndellCrackedPot = 66130, - [Annotation(Name = "[LD - Leyndell] Lost Ashes of War 11007570")] - LDLeyndellLostAshesOfWar = 11007570, + [Annotation(Name = "[LD - Leyndell] Lost Ashes of War 11007570")] + LDLeyndellLostAshesOfWar = 11007570, - [Annotation(Name = "[LD - Leyndell] Rune Arc 11007580")] - LDLeyndellRuneArc = 11007580, + [Annotation(Name = "[LD - Leyndell] Rune Arc 11007580")] + LDLeyndellRuneArc = 11007580, - [Annotation(Name = "[LD - Leyndell] Erdsteel Dagger 11007590")] - LDLeyndellErdsteelDagger = 11007590, + [Annotation(Name = "[LD - Leyndell] Erdsteel Dagger 11007590")] + LDLeyndellErdsteelDagger = 11007590, - [Annotation(Name = "[LD - Leyndell] Poisonbone Dart 11007600")] - LDLeyndellPoisonboneDart = 11007600, + [Annotation(Name = "[LD - Leyndell] Poisonbone Dart 11007600")] + LDLeyndellPoisonboneDart = 11007600, - [Annotation(Name = "[LD - Leyndell] Somber Smithing Stone [6] 11007610")] - LDLeyndellSomberSmithingStone6_ = 11007610, + [Annotation(Name = "[LD - Leyndell] Somber Smithing Stone [6] 11007610")] + LDLeyndellSomberSmithingStone6_ = 11007610, - [Annotation(Name = "[LD - Leyndell] Albinauric Bloodclot 11007620")] - LDLeyndellAlbinauricBloodclot = 11007620, + [Annotation(Name = "[LD - Leyndell] Albinauric Bloodclot 11007620")] + LDLeyndellAlbinauricBloodclot = 11007620, - [Annotation(Name = "[LD - Leyndell] Smithing Stone [5] 11007630")] - LDLeyndellSmithingStone5_ = 11007630, + [Annotation(Name = "[LD - Leyndell] Smithing Stone [5] 11007630")] + LDLeyndellSmithingStone5_ = 11007630, - [Annotation(Name = "[LD - Leyndell] Pickled Turtle Neck 11007640")] - LDLeyndellPickledTurtleNeck = 11007640, + [Annotation(Name = "[LD - Leyndell] Pickled Turtle Neck 11007640")] + LDLeyndellPickledTurtleNeck = 11007640, - [Annotation(Name = "[LD - Leyndell] Smithing Stone [6] 11007650")] - LDLeyndellSmithingStone6____ = 11007650, + [Annotation(Name = "[LD - Leyndell] Smithing Stone [6] 11007650")] + LDLeyndellSmithingStone6____ = 11007650, - [Annotation(Name = "[LD - Leyndell] Golden Rune [9] 11007660")] - LDLeyndellGoldenRune9______ = 11007660, + [Annotation(Name = "[LD - Leyndell] Golden Rune [9] 11007660")] + LDLeyndellGoldenRune9______ = 11007660, - [Annotation(Name = "[LD - Leyndell] Black Bow 11007670")] - LDLeyndellBlackBow = 11007670, + [Annotation(Name = "[LD - Leyndell] Black Bow 11007670")] + LDLeyndellBlackBow = 11007670, - [Annotation(Name = "[LD - Leyndell] Dragonwound Grease 11007680")] - LDLeyndellDragonwoundGrease = 11007680, + [Annotation(Name = "[LD - Leyndell] Dragonwound Grease 11007680")] + LDLeyndellDragonwoundGrease = 11007680, - [Annotation(Name = "[LD - Leyndell] Two Fingers' Prayerbook 11007690")] - LDLeyndellTwoFingersPrayerbook = 11007690, + [Annotation(Name = "[LD - Leyndell] Two Fingers' Prayerbook 11007690")] + LDLeyndellTwoFingersPrayerbook = 11007690, - [Annotation(Name = "[LD - Leyndell] Smithing Stone [5] 11007700")] - LDLeyndellSmithingStone5__ = 11007700, + [Annotation(Name = "[LD - Leyndell] Smithing Stone [5] 11007700")] + LDLeyndellSmithingStone5__ = 11007700, - [Annotation(Name = "[LD - Leyndell] Golden Rune [9] 11007710")] - LDLeyndellGoldenRune9_______ = 11007710, + [Annotation(Name = "[LD - Leyndell] Golden Rune [9] 11007710")] + LDLeyndellGoldenRune9_______ = 11007710, - [Annotation(Name = "[LD - Leyndell] Smithing Stone [6] 11007720")] - LDLeyndellSmithingStone6_____ = 11007720, + [Annotation(Name = "[LD - Leyndell] Smithing Stone [6] 11007720")] + LDLeyndellSmithingStone6_____ = 11007720, - [Annotation(Name = "[LD - Leyndell] Holyproof Dried Liver 11007730")] - LDLeyndellHolyproofDriedLiver = 11007730, + [Annotation(Name = "[LD - Leyndell] Holyproof Dried Liver 11007730")] + LDLeyndellHolyproofDriedLiver = 11007730, - [Annotation(Name = "[LD - Leyndell] Furlcalling Finger Remedy 11007740")] - LDLeyndellFurlcallingFingerRemedy_ = 11007740, + [Annotation(Name = "[LD - Leyndell] Furlcalling Finger Remedy 11007740")] + LDLeyndellFurlcallingFingerRemedy_ = 11007740, - [Annotation(Name = "[LD - Leyndell] Gravel Stone 11007750")] - LDLeyndellGravelStone_ = 11007750, + [Annotation(Name = "[LD - Leyndell] Gravel Stone 11007750")] + LDLeyndellGravelStone_ = 11007750, - [Annotation(Name = "[LD - Leyndell] Smithing Stone [5] 11007760")] - LDLeyndellSmithingStone5___ = 11007760, + [Annotation(Name = "[LD - Leyndell] Smithing Stone [5] 11007760")] + LDLeyndellSmithingStone5___ = 11007760, - [Annotation(Name = "[LD - Leyndell] Old Fang 11007770")] - LDLeyndellOldFang_ = 11007770, + [Annotation(Name = "[LD - Leyndell] Old Fang 11007770")] + LDLeyndellOldFang_ = 11007770, - [Annotation(Name = "[LD - Leyndell] Smithing Stone [6] 11007780")] - LDLeyndellSmithingStone6______ = 11007780, + [Annotation(Name = "[LD - Leyndell] Smithing Stone [6] 11007780")] + LDLeyndellSmithingStone6______ = 11007780, - [Annotation(Name = "[LD - Leyndell] Nascent Butterfly 11007790")] - LDLeyndellNascentButterfly_ = 11007790, + [Annotation(Name = "[LD - Leyndell] Nascent Butterfly 11007790")] + LDLeyndellNascentButterfly_ = 11007790, - [Annotation(Name = "[LD - Leyndell] Stonesword Key 11007800")] - LDLeyndellStoneswordKey___ = 11007800, + [Annotation(Name = "[LD - Leyndell] Stonesword Key 11007800")] + LDLeyndellStoneswordKey___ = 11007800, - [Annotation(Name = "[LD - Leyndell] Fan Daggers 11007810")] - LDLeyndellFanDaggers_ = 11007810, + [Annotation(Name = "[LD - Leyndell] Fan Daggers 11007810")] + LDLeyndellFanDaggers_ = 11007810, - [Annotation(Name = "[LD - Leyndell] Smithing Stone [6] 11007820")] - LDLeyndellSmithingStone6_______ = 11007820, + [Annotation(Name = "[LD - Leyndell] Smithing Stone [6] 11007820")] + LDLeyndellSmithingStone6_______ = 11007820, - [Annotation(Name = "[LD - Leyndell] Golden Rune [9] 11007830")] - LDLeyndellGoldenRune9________ = 11007830, + [Annotation(Name = "[LD - Leyndell] Golden Rune [9] 11007830")] + LDLeyndellGoldenRune9________ = 11007830, - [Annotation(Name = "[LD - Leyndell] Gravel Stone 11007840")] - LDLeyndellGravelStone__ = 11007840, + [Annotation(Name = "[LD - Leyndell] Gravel Stone 11007840")] + LDLeyndellGravelStone__ = 11007840, - [Annotation(Name = "[LD - Leyndell] Seedbed Curse 11007850")] - LDLeyndellSeedbedCurse_ = 11007850, + [Annotation(Name = "[LD - Leyndell] Seedbed Curse 11007850")] + LDLeyndellSeedbedCurse_ = 11007850, - [Annotation(Name = "[LD - Leyndell] Smithing Stone [5] 11007860")] - LDLeyndellSmithingStone5____ = 11007860, + [Annotation(Name = "[LD - Leyndell] Smithing Stone [5] 11007860")] + LDLeyndellSmithingStone5____ = 11007860, - [Annotation(Name = "[LD - Leyndell] Furlcalling Finger Remedy 11007870")] - LDLeyndellFurlcallingFingerRemedy__ = 11007870, + [Annotation(Name = "[LD - Leyndell] Furlcalling Finger Remedy 11007870")] + LDLeyndellFurlcallingFingerRemedy__ = 11007870, - [Annotation(Name = "[LD - Leyndell] Star Fist 11007880")] - LDLeyndellStarFist = 11007880, + [Annotation(Name = "[LD - Leyndell] Star Fist 11007880")] + LDLeyndellStarFist = 11007880, - [Annotation(Name = "[LD - Leyndell] Holy Grease 11007890")] - LDLeyndellHolyGrease_ = 11007890, + [Annotation(Name = "[LD - Leyndell] Holy Grease 11007890")] + LDLeyndellHolyGrease_ = 11007890, - [Annotation(Name = "[LD - Leyndell] Smithing Stone [6] 11007900")] - LDLeyndellSmithingStone6________ = 11007900, + [Annotation(Name = "[LD - Leyndell] Smithing Stone [6] 11007900")] + LDLeyndellSmithingStone6________ = 11007900, - [Annotation(Name = "[LD - Leyndell] Golden Order Principia 11007910")] - LDLeyndellGoldenOrderPrincipia = 11007910, + [Annotation(Name = "[LD - Leyndell] Golden Order Principia 11007910")] + LDLeyndellGoldenOrderPrincipia = 11007910, - [Annotation(Name = "[LD - Leyndell] Somber Smithing Stone [5] 11007920")] - LDLeyndellSomberSmithingStone5_ = 11007920, + [Annotation(Name = "[LD - Leyndell] Somber Smithing Stone [5] 11007920")] + LDLeyndellSomberSmithingStone5_ = 11007920, - [Annotation(Name = "[LD - Leyndell] Holy Grease 11007930")] - LDLeyndellHolyGrease__ = 11007930, + [Annotation(Name = "[LD - Leyndell] Holy Grease 11007930")] + LDLeyndellHolyGrease__ = 11007930, - [Annotation(Name = "[LD - Leyndell] Holy Grease 11007940")] - LDLeyndellHolyGrease___ = 11007940, + [Annotation(Name = "[LD - Leyndell] Holy Grease 11007940")] + LDLeyndellHolyGrease___ = 11007940, - [Annotation(Name = "[LD - Leyndell] Rune Arc 11007950")] - LDLeyndellRuneArc_ = 11007950, + [Annotation(Name = "[LD - Leyndell] Rune Arc 11007950")] + LDLeyndellRuneArc_ = 11007950, - [Annotation(Name = "[LD - Leyndell] Erdtree Seal 11007960")] - LDLeyndellErdtreeSeal = 11007960, + [Annotation(Name = "[LD - Leyndell] Erdtree Seal 11007960")] + LDLeyndellErdtreeSeal = 11007960, - [Annotation(Name = "[LD - Leyndell] Coded Sword 11007970")] - LDLeyndellCodedSword = 11007970, + [Annotation(Name = "[LD - Leyndell] Coded Sword 11007970")] + LDLeyndellCodedSword = 11007970, - [Annotation(Name = "[LD - Leyndell] Stonesword Key 11007980")] - LDLeyndellStoneswordKey____ = 11007980, + [Annotation(Name = "[LD - Leyndell] Stonesword Key 11007980")] + LDLeyndellStoneswordKey____ = 11007980, - [Annotation(Name = "[LD - Leyndell] Raging Wolf Helm 11007985")] - LDLeyndellRagingWolfHelm = 11007985, + [Annotation(Name = "[LD - Leyndell] Raging Wolf Helm 11007985")] + LDLeyndellRagingWolfHelm = 11007985, - [Annotation(Name = "[LD - Leyndell] Golden Seed 11007990")] - LDLeyndellGoldenSeed = 11007990, + [Annotation(Name = "[LD - Leyndell] Golden Seed 11007990")] + LDLeyndellGoldenSeed = 11007990, - [Annotation(Name = "[LD - Leyndell] [Incantation] Blessing of the Erdtree 11007991")] - LDLeyndellIncantationBlessingOfTheErdtree = 11007991, + [Annotation(Name = "[LD - Leyndell] [Incantation] Blessing of the Erdtree 11007991")] + LDLeyndellIncantationBlessingOfTheErdtree = 11007991, - [Annotation(Name = "[LD - Leyndell] Sanctified Whetblade 65660")] - LDLeyndellSanctifiedWhetblade = 65660, + [Annotation(Name = "[LD - Leyndell] Sanctified Whetblade 65660")] + LDLeyndellSanctifiedWhetblade = 65660, - [Annotation(Name = "[LD - Leyndell] Blessed Dew Talisman 11007994")] - LDLeyndellBlessedDewTalisman = 11007994, + [Annotation(Name = "[LD - Leyndell] Blessed Dew Talisman 11007994")] + LDLeyndellBlessedDewTalisman = 11007994, - [Annotation(Name = "[LD - Leyndell] Ritual Shield Talisman 11007996")] - LDLeyndellRitualShieldTalisman = 11007996, + [Annotation(Name = "[LD - Leyndell] Ritual Shield Talisman 11007996")] + LDLeyndellRitualShieldTalisman = 11007996, - [Annotation(Name = "[LD - Leyndell] Bolt of Gransax 11007997")] - LDLeyndellBoltOfGransax = 11007997, + [Annotation(Name = "[LD - Leyndell] Bolt of Gransax 11007997")] + LDLeyndellBoltOfGransax = 11007997, - [Annotation(Name = "[LD - Leyndell] Gargoyle's Halberd 11007987")] - LDLeyndellGargoylesHalberd = 11007987, + [Annotation(Name = "[LD - Leyndell] Gargoyle's Halberd 11007987")] + LDLeyndellGargoylesHalberd = 11007987, - [Annotation(Name = "[LD - Leyndell] Golden Seed 11007993")] - LDLeyndellGoldenSeed_ = 11007993, + [Annotation(Name = "[LD - Leyndell] Golden Seed 11007993")] + LDLeyndellGoldenSeed_ = 11007993, - [Annotation(Name = "[LD - Leyndell] Somber Smithing Stone [7] 11007995")] - LDLeyndellSomberSmithingStone7 = 11007995, + [Annotation(Name = "[LD - Leyndell] Somber Smithing Stone [7] 11007995")] + LDLeyndellSomberSmithingStone7 = 11007995, - [Annotation(Name = "[LD - Leyndell] Lord's Rune 11007998")] - LDLeyndellLordsRune = 11007998, + [Annotation(Name = "[LD - Leyndell] Lord's Rune 11007998")] + LDLeyndellLordsRune = 11007998, - [Annotation(Name = "[LD - Leyndell] Alberich's Pointed Hat 11007005")] - LDLeyndellAlberichsPointedHat = 11007005, + [Annotation(Name = "[LD - Leyndell] Alberich's Pointed Hat 11007005")] + LDLeyndellAlberichsPointedHat = 11007005, - [Annotation(Name = "[LD - Leyndell] Erdtree Bow 11007015")] - LDLeyndellErdtreeBow = 11007015, + [Annotation(Name = "[LD - Leyndell] Erdtree Bow 11007015")] + LDLeyndellErdtreeBow = 11007015, - [Annotation(Name = "[LD - Leyndell] Celestial Dew 11007025")] - LDLeyndellCelestialDew = 11007025, + [Annotation(Name = "[LD - Leyndell] Celestial Dew 11007025")] + LDLeyndellCelestialDew = 11007025, - [Annotation(Name = "[LD - Leyndell] Deathbed Dress 11007035")] - LDLeyndellDeathbedDress = 11007035, + [Annotation(Name = "[LD - Leyndell] Deathbed Dress 11007035")] + LDLeyndellDeathbedDress = 11007035, - [Annotation(Name = "[LD - Leyndell] Lionel's Helm 11007045")] - LDLeyndellLionelsHelm = 11007045, + [Annotation(Name = "[LD - Leyndell] Lionel's Helm 11007045")] + LDLeyndellLionelsHelm = 11007045, - [Annotation(Name = "[LD - Leyndell] Hammer 11007055")] - LDLeyndellHammer = 11007055, + [Annotation(Name = "[LD - Leyndell] Hammer 11007055")] + LDLeyndellHammer = 11007055, - [Annotation(Name = "[LD - Leyndell] Rune Arc 11007065")] - LDLeyndellRuneArc__ = 11007065, + [Annotation(Name = "[LD - Leyndell] Rune Arc 11007065")] + LDLeyndellRuneArc__ = 11007065, - [Annotation(Name = "[LD - Leyndell] Hero's Rune [1] 11007075")] - LDLeyndellHerosRune1 = 11007075, + [Annotation(Name = "[LD - Leyndell] Hero's Rune [1] 11007075")] + LDLeyndellHerosRune1 = 11007075, - [Annotation(Name = "[LD - Leyndell] Golden Rune [12] 11007085")] - LDLeyndellGoldenRune12_ = 11007085, + [Annotation(Name = "[LD - Leyndell] Golden Rune [12] 11007085")] + LDLeyndellGoldenRune12_ = 11007085, - [Annotation(Name = "[LD - Leyndell] Guilty Hood 11007095")] - LDLeyndellGuiltyHood = 11007095, + [Annotation(Name = "[LD - Leyndell] Guilty Hood 11007095")] + LDLeyndellGuiltyHood = 11007095, - [Annotation(Name = "[LD - Leyndell] Stormhawk Axe 11007105")] - LDLeyndellStormhawkAxe = 11007105, + [Annotation(Name = "[LD - Leyndell] Stormhawk Axe 11007105")] + LDLeyndellStormhawkAxe = 11007105, - [Annotation(Name = "[LD - Leyndell] Cane Sword 11007115")] - LDLeyndellCaneSword = 11007115, + [Annotation(Name = "[LD - Leyndell] Cane Sword 11007115")] + LDLeyndellCaneSword = 11007115, - [Annotation(Name = "[LD - Leyndell] Black-Key Bolt 11007125")] - LDLeyndellBlackKeyBolt = 11007125, + [Annotation(Name = "[LD - Leyndell] Black-Key Bolt 11007125")] + LDLeyndellBlackKeyBolt = 11007125, - [Annotation(Name = "[LD - Leyndell] Gravel Stone 11007135")] - LDLeyndellGravelStone___ = 11007135, + [Annotation(Name = "[LD - Leyndell] Gravel Stone 11007135")] + LDLeyndellGravelStone___ = 11007135, - [Annotation(Name = "[LD - Leyndell] Somber Smithing Stone [6] 11007145")] - LDLeyndellSomberSmithingStone6__ = 11007145, + [Annotation(Name = "[LD - Leyndell] Somber Smithing Stone [6] 11007145")] + LDLeyndellSomberSmithingStone6__ = 11007145, - [Annotation(Name = "[LD - Leyndell] Hero's Rune [5] 11007155")] - LDLeyndellHerosRune5 = 11007155, + [Annotation(Name = "[LD - Leyndell] Hero's Rune [5] 11007155")] + LDLeyndellHerosRune5 = 11007155, - [Annotation(Name = "[LD - Leyndell] Golden Rune [11] 11007165")] - LDLeyndellGoldenRune11 = 11007165, + [Annotation(Name = "[LD - Leyndell] Golden Rune [11] 11007165")] + LDLeyndellGoldenRune11 = 11007165, - [Annotation(Name = "[LD - Leyndell] Hero's Rune [2] 11007175")] - LDLeyndellHerosRune2 = 11007175, + [Annotation(Name = "[LD - Leyndell] Hero's Rune [2] 11007175")] + LDLeyndellHerosRune2 = 11007175, - [Annotation(Name = "[LD - Leyndell] Somber Smithing Stone [6] 11007185")] - LDLeyndellSomberSmithingStone6___ = 11007185, + [Annotation(Name = "[LD - Leyndell] Somber Smithing Stone [6] 11007185")] + LDLeyndellSomberSmithingStone6___ = 11007185, - [Annotation(Name = "[LD - Leyndell] Somber Smithing Stone [6] 11007195")] - LDLeyndellSomberSmithingStone6____ = 11007195, + [Annotation(Name = "[LD - Leyndell] Somber Smithing Stone [6] 11007195")] + LDLeyndellSomberSmithingStone6____ = 11007195, - [Annotation(Name = "[LD - Leyndell] Golden Rune [13] 11007205")] - LDLeyndellGoldenRune13 = 11007205, + [Annotation(Name = "[LD - Leyndell] Golden Rune [13] 11007205")] + LDLeyndellGoldenRune13 = 11007205, - [Annotation(Name = "[LD - Leyndell] Golden Rune [10] 11007215")] - LDLeyndellGoldenRune10__ = 11007215, + [Annotation(Name = "[LD - Leyndell] Golden Rune [10] 11007215")] + LDLeyndellGoldenRune10__ = 11007215, - [Annotation(Name = "[LD - Leyndell] Golden Rune [12] 11007225")] - LDLeyndellGoldenRune12__ = 11007225, + [Annotation(Name = "[LD - Leyndell] Golden Rune [12] 11007225")] + LDLeyndellGoldenRune12__ = 11007225, - [Annotation(Name = "[LD - Leyndell] Lightningproof Dried Liver 11007235")] - LDLeyndellLightningproofDriedLiver_ = 11007235, + [Annotation(Name = "[LD - Leyndell] Lightningproof Dried Liver 11007235")] + LDLeyndellLightningproofDriedLiver_ = 11007235, - [Annotation(Name = "[LD - Leyndell] Golden Rune [11] 11007245")] - LDLeyndellGoldenRune11_ = 11007245, + [Annotation(Name = "[LD - Leyndell] Golden Rune [11] 11007245")] + LDLeyndellGoldenRune11_ = 11007245, - [Annotation(Name = "[LD - Ashen Leyndell] Erdtree Heal 11057000")] - LDAshenLeyndellErdtreeHeal = 11057000, + [Annotation(Name = "[LD - Ashen Leyndell] Erdtree Heal 11057000")] + LDAshenLeyndellErdtreeHeal = 11057000, - [Annotation(Name = "[LD - Ashen Leyndell] Somber Ancient Dragon Smithing Stone 11057010")] - LDAshenLeyndellSomberAncientDragonSmithingStone = 11057010, + [Annotation(Name = "[LD - Ashen Leyndell] Somber Ancient Dragon Smithing Stone 11057010")] + LDAshenLeyndellSomberAncientDragonSmithingStone = 11057010, - [Annotation(Name = "[LD - Ashen Leyndell] Tarnished Golden Sunflower 11057020")] - LDAshenLeyndellTarnishedGoldenSunflower = 11057020, + [Annotation(Name = "[LD - Ashen Leyndell] Tarnished Golden Sunflower 11057020")] + LDAshenLeyndellTarnishedGoldenSunflower = 11057020, - [Annotation(Name = "[LD - Ashen Leyndell] Rune Arc 11057030")] - LDAshenLeyndellRuneArc = 11057030, + [Annotation(Name = "[LD - Ashen Leyndell] Rune Arc 11057030")] + LDAshenLeyndellRuneArc = 11057030, - [Annotation(Name = "[LD - Ashen Leyndell] Golden Sunflower 11057040")] - LDAshenLeyndellGoldenSunflower = 11057040, + [Annotation(Name = "[LD - Ashen Leyndell] Golden Sunflower 11057040")] + LDAshenLeyndellGoldenSunflower = 11057040, - [Annotation(Name = "[LD - Ashen Leyndell] Hero's Rune [4] 11057050")] - LDAshenLeyndellHerosRune4 = 11057050, + [Annotation(Name = "[LD - Ashen Leyndell] Hero's Rune [4] 11057050")] + LDAshenLeyndellHerosRune4 = 11057050, - [Annotation(Name = "[LD - Ashen Leyndell] Erdtree's Favor +2 11057100")] - LDAshenLeyndellErdtreesFavor2 = 11057100, + [Annotation(Name = "[LD - Ashen Leyndell] Erdtree's Favor +2 11057100")] + LDAshenLeyndellErdtreesFavor2 = 11057100, - [Annotation(Name = "[LD - Roundtable Hold] Cipher Pata 11107000")] - LDRoundtableHoldCipherPata = 11107000, + [Annotation(Name = "[LD - Roundtable Hold] Cipher Pata 11107000")] + LDRoundtableHoldCipherPata = 11107000, - [Annotation(Name = "[LD - Roundtable Hold] Assassin's Prayerbook 11107700")] - LDRoundtableHoldAssassinsPrayerbook = 11107700, + [Annotation(Name = "[LD - Roundtable Hold] Assassin's Prayerbook 11107700")] + LDRoundtableHoldAssassinsPrayerbook = 11107700, - [Annotation(Name = "[LD - Roundtable Hold] Crepus's Black-Key Crossbow 11107710")] - LDRoundtableHoldCrepussBlackKeyCrossbow = 11107710, + [Annotation(Name = "[LD - Roundtable Hold] Crepus's Black-Key Crossbow 11107710")] + LDRoundtableHoldCrepussBlackKeyCrossbow = 11107710, - [Annotation(Name = "[LD - Roundtable Hold] Taunter's Tongue 60300")] - LDRoundtableHoldTauntersTongue = 60300, + [Annotation(Name = "[LD - Roundtable Hold] Taunter's Tongue 60300")] + LDRoundtableHoldTauntersTongue = 60300, - [Annotation(Name = "[LD - Roundtable Hold] Clinging Bone 11107900")] - LDRoundtableHoldClingingBone = 11107900, + [Annotation(Name = "[LD - Roundtable Hold] Clinging Bone 11107900")] + LDRoundtableHoldClingingBone = 11107900, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Map: Ainsel 62060")] - LDAinselLakeOfRotMapAinsel = 62060, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Map: Ainsel 62060")] + LDAinselLakeOfRotMapAinsel = 62060, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Map: Lake of Rot 62061")] - LDAinselLakeOfRotMapLakeOfRot = 62061, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Map: Lake of Rot 62061")] + LDAinselLakeOfRotMapLakeOfRot = 62061, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Nomadic Warrior's Cookbook [22] 67890")] - LDAinselLakeOfRotNomadicWarriorsCookbook22 = 67890, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Nomadic Warrior's Cookbook [22] 67890")] + LDAinselLakeOfRotNomadicWarriorsCookbook22 = 67890, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Somber Smithing Stone [8] 12017030")] - LDAinselLakeOfRotSomberSmithingStone8 = 12017030, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Somber Smithing Stone [8] 12017030")] + LDAinselLakeOfRotSomberSmithingStone8 = 12017030, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Golden Rune [1] 12017040")] - LDAinselLakeOfRotGoldenRune1 = 12017040, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Golden Rune [1] 12017040")] + LDAinselLakeOfRotGoldenRune1 = 12017040, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Golden Rune [2] 12017050")] - LDAinselLakeOfRotGoldenRune2 = 12017050, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Golden Rune [2] 12017050")] + LDAinselLakeOfRotGoldenRune2 = 12017050, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Smithing Stone [1] 12017060")] - LDAinselLakeOfRotSmithingStone1 = 12017060, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Smithing Stone [1] 12017060")] + LDAinselLakeOfRotSmithingStone1 = 12017060, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Magic Grease 12017070")] - LDAinselLakeOfRotMagicGrease = 12017070, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Magic Grease 12017070")] + LDAinselLakeOfRotMagicGrease = 12017070, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Golden Rune [3] 12017080")] - LDAinselLakeOfRotGoldenRune3 = 12017080, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Golden Rune [3] 12017080")] + LDAinselLakeOfRotGoldenRune3 = 12017080, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Somber Smithing Stone [9] 12017090")] - LDAinselLakeOfRotSomberSmithingStone9 = 12017090, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Somber Smithing Stone [9] 12017090")] + LDAinselLakeOfRotSomberSmithingStone9 = 12017090, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Golden Seed 12017100")] - LDAinselLakeOfRotGoldenSeed = 12017100, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Golden Seed 12017100")] + LDAinselLakeOfRotGoldenSeed = 12017100, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Rot Grease 12017110")] - LDAinselLakeOfRotRotGrease = 12017110, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Rot Grease 12017110")] + LDAinselLakeOfRotRotGrease = 12017110, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Black-Key Bolt 12017120")] - LDAinselLakeOfRotBlackKeyBolt = 12017120, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Black-Key Bolt 12017120")] + LDAinselLakeOfRotBlackKeyBolt = 12017120, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Warming Stone 12017130")] - LDAinselLakeOfRotWarmingStone = 12017130, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Warming Stone 12017130")] + LDAinselLakeOfRotWarmingStone = 12017130, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Lightningproof Dried Liver 12017140")] - LDAinselLakeOfRotLightningproofDriedLiver = 12017140, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Lightningproof Dried Liver 12017140")] + LDAinselLakeOfRotLightningproofDriedLiver = 12017140, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Smithing Stone [3] 12017150")] - LDAinselLakeOfRotSmithingStone3 = 12017150, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Smithing Stone [3] 12017150")] + LDAinselLakeOfRotSmithingStone3 = 12017150, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Shattershard Arrow (Fletched) 12017160")] - LDAinselLakeOfRotShattershardArrowFletched = 12017160, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Shattershard Arrow (Fletched) 12017160")] + LDAinselLakeOfRotShattershardArrowFletched = 12017160, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Grace Mimic 12017170")] - LDAinselLakeOfRotGraceMimic = 12017170, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Grace Mimic 12017170")] + LDAinselLakeOfRotGraceMimic = 12017170, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Immunizing Horn Charm 12017180")] - LDAinselLakeOfRotImmunizingHornCharm = 12017180, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Immunizing Horn Charm 12017180")] + LDAinselLakeOfRotImmunizingHornCharm = 12017180, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Smithing Stone [3] 12017190")] - LDAinselLakeOfRotSmithingStone3_ = 12017190, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Smithing Stone [3] 12017190")] + LDAinselLakeOfRotSmithingStone3_ = 12017190, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Golden Rune [1] 12017200")] - LDAinselLakeOfRotGoldenRune1_ = 12017200, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Golden Rune [1] 12017200")] + LDAinselLakeOfRotGoldenRune1_ = 12017200, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Smithing Stone [3] 12017210")] - LDAinselLakeOfRotSmithingStone3__ = 12017210, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Smithing Stone [3] 12017210")] + LDAinselLakeOfRotSmithingStone3__ = 12017210, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Throwing Dagger 12017220")] - LDAinselLakeOfRotThrowingDagger = 12017220, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Throwing Dagger 12017220")] + LDAinselLakeOfRotThrowingDagger = 12017220, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Smithing Stone [3] 12017230")] - LDAinselLakeOfRotSmithingStone3___ = 12017230, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Smithing Stone [3] 12017230")] + LDAinselLakeOfRotSmithingStone3___ = 12017230, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Golden Rune [2] 12017240")] - LDAinselLakeOfRotGoldenRune2_ = 12017240, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Golden Rune [2] 12017240")] + LDAinselLakeOfRotGoldenRune2_ = 12017240, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Shield Grease 12017250")] - LDAinselLakeOfRotShieldGrease = 12017250, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Shield Grease 12017250")] + LDAinselLakeOfRotShieldGrease = 12017250, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Smithing Stone [3] 12017260")] - LDAinselLakeOfRotSmithingStone3____ = 12017260, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Smithing Stone [3] 12017260")] + LDAinselLakeOfRotSmithingStone3____ = 12017260, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Smithing Stone [4] 12017270")] - LDAinselLakeOfRotSmithingStone4 = 12017270, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Smithing Stone [4] 12017270")] + LDAinselLakeOfRotSmithingStone4 = 12017270, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Smithing Stone [2] 12017280")] - LDAinselLakeOfRotSmithingStone2 = 12017280, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Smithing Stone [2] 12017280")] + LDAinselLakeOfRotSmithingStone2 = 12017280, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Formic Rock 12017290")] - LDAinselLakeOfRotFormicRock = 12017290, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Formic Rock 12017290")] + LDAinselLakeOfRotFormicRock = 12017290, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Crystal Dart 12017300")] - LDAinselLakeOfRotCrystalDart = 12017300, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Crystal Dart 12017300")] + LDAinselLakeOfRotCrystalDart = 12017300, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Soap 12017310")] - LDAinselLakeOfRotSoap = 12017310, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Soap 12017310")] + LDAinselLakeOfRotSoap = 12017310, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Somber Smithing Stone [3] 12017320")] - LDAinselLakeOfRotSomberSmithingStone3 = 12017320, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Somber Smithing Stone [3] 12017320")] + LDAinselLakeOfRotSomberSmithingStone3 = 12017320, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Melted Mushroom 12017330")] - LDAinselLakeOfRotMeltedMushroom = 12017330, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Melted Mushroom 12017330")] + LDAinselLakeOfRotMeltedMushroom = 12017330, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Golden Rune [3] 12017340")] - LDAinselLakeOfRotGoldenRune3_ = 12017340, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Golden Rune [3] 12017340")] + LDAinselLakeOfRotGoldenRune3_ = 12017340, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Celestial Dew 12017350")] - LDAinselLakeOfRotCelestialDew = 12017350, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Celestial Dew 12017350")] + LDAinselLakeOfRotCelestialDew = 12017350, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Golden Rune [3] 12017360")] - LDAinselLakeOfRotGoldenRune3__ = 12017360, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Golden Rune [3] 12017360")] + LDAinselLakeOfRotGoldenRune3__ = 12017360, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Aeonian Butterfly 12017370")] - LDAinselLakeOfRotAeonianButterfly = 12017370, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Aeonian Butterfly 12017370")] + LDAinselLakeOfRotAeonianButterfly = 12017370, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Somber Smithing Stone [7] 12017380")] - LDAinselLakeOfRotSomberSmithingStone7 = 12017380, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Somber Smithing Stone [7] 12017380")] + LDAinselLakeOfRotSomberSmithingStone7 = 12017380, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Silver Firefly 12017390")] - LDAinselLakeOfRotSilverFirefly = 12017390, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Silver Firefly 12017390")] + LDAinselLakeOfRotSilverFirefly = 12017390, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Golden Rune [3] 12017400")] - LDAinselLakeOfRotGoldenRune3___ = 12017400, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Golden Rune [3] 12017400")] + LDAinselLakeOfRotGoldenRune3___ = 12017400, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Magic Grease 12017410")] - LDAinselLakeOfRotMagicGrease_ = 12017410, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Magic Grease 12017410")] + LDAinselLakeOfRotMagicGrease_ = 12017410, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Golden Rune [3] 12017420")] - LDAinselLakeOfRotGoldenRune3____ = 12017420, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Golden Rune [3] 12017420")] + LDAinselLakeOfRotGoldenRune3____ = 12017420, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Furlcalling Finger Remedy 12017430")] - LDAinselLakeOfRotFurlcallingFingerRemedy = 12017430, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Furlcalling Finger Remedy 12017430")] + LDAinselLakeOfRotFurlcallingFingerRemedy = 12017430, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Smithing Stone [1] 12017440")] - LDAinselLakeOfRotSmithingStone1_ = 12017440, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Smithing Stone [1] 12017440")] + LDAinselLakeOfRotSmithingStone1_ = 12017440, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Golden Rune [9] 12017450")] - LDAinselLakeOfRotGoldenRune9 = 12017450, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Golden Rune [9] 12017450")] + LDAinselLakeOfRotGoldenRune9 = 12017450, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Mushroom Crown 12017460")] - LDAinselLakeOfRotMushroomCrown = 12017460, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Mushroom Crown 12017460")] + LDAinselLakeOfRotMushroomCrown = 12017460, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Preserving Boluses 12017470")] - LDAinselLakeOfRotPreservingBoluses = 12017470, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Preserving Boluses 12017470")] + LDAinselLakeOfRotPreservingBoluses = 12017470, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Golden Rune [7] 12017480")] - LDAinselLakeOfRotGoldenRune7 = 12017480, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Golden Rune [7] 12017480")] + LDAinselLakeOfRotGoldenRune7 = 12017480, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Golden Rune [10] 12017490")] - LDAinselLakeOfRotGoldenRune10 = 12017490, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Golden Rune [10] 12017490")] + LDAinselLakeOfRotGoldenRune10 = 12017490, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Golden Rune [7] 12017500")] - LDAinselLakeOfRotGoldenRune7_ = 12017500, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Golden Rune [7] 12017500")] + LDAinselLakeOfRotGoldenRune7_ = 12017500, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Human Bone Shard 12017510")] - LDAinselLakeOfRotHumanBoneShard = 12017510, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Human Bone Shard 12017510")] + LDAinselLakeOfRotHumanBoneShard = 12017510, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Somber Smithing Stone [6] 12017520")] - LDAinselLakeOfRotSomberSmithingStone6 = 12017520, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Somber Smithing Stone [6] 12017520")] + LDAinselLakeOfRotSomberSmithingStone6 = 12017520, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Smithing Stone [4] 12017530")] - LDAinselLakeOfRotSmithingStone4_ = 12017530, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Smithing Stone [4] 12017530")] + LDAinselLakeOfRotSmithingStone4_ = 12017530, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Stimulating Boluses 12017540")] - LDAinselLakeOfRotStimulatingBoluses = 12017540, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Stimulating Boluses 12017540")] + LDAinselLakeOfRotStimulatingBoluses = 12017540, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Shield Grease 12017550")] - LDAinselLakeOfRotShieldGrease_ = 12017550, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Shield Grease 12017550")] + LDAinselLakeOfRotShieldGrease_ = 12017550, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Golden Rune [10] 12017560")] - LDAinselLakeOfRotGoldenRune10_ = 12017560, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Golden Rune [10] 12017560")] + LDAinselLakeOfRotGoldenRune10_ = 12017560, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Wing of Astel 12017570")] - LDAinselLakeOfRotWingOfAstel = 12017570, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Wing of Astel 12017570")] + LDAinselLakeOfRotWingOfAstel = 12017570, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Stonesword Key 12017580")] - LDAinselLakeOfRotStoneswordKey = 12017580, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Stonesword Key 12017580")] + LDAinselLakeOfRotStoneswordKey = 12017580, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Golden Rune [7] 12017590")] - LDAinselLakeOfRotGoldenRune7__ = 12017590, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Golden Rune [7] 12017590")] + LDAinselLakeOfRotGoldenRune7__ = 12017590, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Golden Rune [10] 12017600")] - LDAinselLakeOfRotGoldenRune10__ = 12017600, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Golden Rune [10] 12017600")] + LDAinselLakeOfRotGoldenRune10__ = 12017600, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Fan Daggers 12017610")] - LDAinselLakeOfRotFanDaggers = 12017610, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Fan Daggers 12017610")] + LDAinselLakeOfRotFanDaggers = 12017610, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Smithing Stone [6] 12017620")] - LDAinselLakeOfRotSmithingStone6 = 12017620, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Smithing Stone [6] 12017620")] + LDAinselLakeOfRotSmithingStone6 = 12017620, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Archer Ashes 12017630")] - LDAinselLakeOfRotArcherAshes = 12017630, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Archer Ashes 12017630")] + LDAinselLakeOfRotArcherAshes = 12017630, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Golden Rune [10] 12017640")] - LDAinselLakeOfRotGoldenRune10___ = 12017640, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Golden Rune [10] 12017640")] + LDAinselLakeOfRotGoldenRune10___ = 12017640, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Golden Rune [10] 12017650")] - LDAinselLakeOfRotGoldenRune10____ = 12017650, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Golden Rune [10] 12017650")] + LDAinselLakeOfRotGoldenRune10____ = 12017650, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Golden Rune [10] 12017660")] - LDAinselLakeOfRotGoldenRune10_____ = 12017660, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Golden Rune [10] 12017660")] + LDAinselLakeOfRotGoldenRune10_____ = 12017660, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Smithing Stone [6] 12017670")] - LDAinselLakeOfRotSmithingStone6_ = 12017670, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Smithing Stone [6] 12017670")] + LDAinselLakeOfRotSmithingStone6_ = 12017670, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Golden Rune [10] 12017680")] - LDAinselLakeOfRotGoldenRune10______ = 12017680, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Golden Rune [10] 12017680")] + LDAinselLakeOfRotGoldenRune10______ = 12017680, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Great Ghost Glovewort 12017690")] - LDAinselLakeOfRotGreatGhostGlovewort = 12017690, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Great Ghost Glovewort 12017690")] + LDAinselLakeOfRotGreatGhostGlovewort = 12017690, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Somber Smithing Stone [7] 12017700")] - LDAinselLakeOfRotSomberSmithingStone7_ = 12017700, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Somber Smithing Stone [7] 12017700")] + LDAinselLakeOfRotSomberSmithingStone7_ = 12017700, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Clayman Ashes 12017710")] - LDAinselLakeOfRotClaymanAshes = 12017710, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Clayman Ashes 12017710")] + LDAinselLakeOfRotClaymanAshes = 12017710, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Stonesword Key 12017720")] - LDAinselLakeOfRotStoneswordKey_ = 12017720, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Stonesword Key 12017720")] + LDAinselLakeOfRotStoneswordKey_ = 12017720, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Magic Grease 12017730")] - LDAinselLakeOfRotMagicGrease__ = 12017730, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Magic Grease 12017730")] + LDAinselLakeOfRotMagicGrease__ = 12017730, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Drawstring Holy Grease 12017740")] - LDAinselLakeOfRotDrawstringHolyGrease = 12017740, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Drawstring Holy Grease 12017740")] + LDAinselLakeOfRotDrawstringHolyGrease = 12017740, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Silver Tear Husk 12017750")] - LDAinselLakeOfRotSilverTearHusk = 12017750, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Silver Tear Husk 12017750")] + LDAinselLakeOfRotSilverTearHusk = 12017750, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Smithing Stone [6] 12017760")] - LDAinselLakeOfRotSmithingStone6__ = 12017760, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Smithing Stone [6] 12017760")] + LDAinselLakeOfRotSmithingStone6__ = 12017760, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Celestial Dew 12017770")] - LDAinselLakeOfRotCelestialDew_ = 12017770, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Celestial Dew 12017770")] + LDAinselLakeOfRotCelestialDew_ = 12017770, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Somber Smithing Stone [7] 12017780")] - LDAinselLakeOfRotSomberSmithingStone7__ = 12017780, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Somber Smithing Stone [7] 12017780")] + LDAinselLakeOfRotSomberSmithingStone7__ = 12017780, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Celestial Dew 12017790")] - LDAinselLakeOfRotCelestialDew__ = 12017790, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Celestial Dew 12017790")] + LDAinselLakeOfRotCelestialDew__ = 12017790, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Smithing Stone [4] 12017800")] - LDAinselLakeOfRotSmithingStone4__ = 12017800, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Smithing Stone [4] 12017800")] + LDAinselLakeOfRotSmithingStone4__ = 12017800, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Smithing Stone [5] 12017810")] - LDAinselLakeOfRotSmithingStone5 = 12017810, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Smithing Stone [5] 12017810")] + LDAinselLakeOfRotSmithingStone5 = 12017810, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Golden Rune [10] 12017820")] - LDAinselLakeOfRotGoldenRune10_______ = 12017820, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Golden Rune [10] 12017820")] + LDAinselLakeOfRotGoldenRune10_______ = 12017820, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Smithing Stone [5] 12017830")] - LDAinselLakeOfRotSmithingStone5_ = 12017830, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Smithing Stone [5] 12017830")] + LDAinselLakeOfRotSmithingStone5_ = 12017830, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Fan Daggers 12017840")] - LDAinselLakeOfRotFanDaggers_ = 12017840, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Fan Daggers 12017840")] + LDAinselLakeOfRotFanDaggers_ = 12017840, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Golden Rune [10] 12017850")] - LDAinselLakeOfRotGoldenRune10________ = 12017850, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Golden Rune [10] 12017850")] + LDAinselLakeOfRotGoldenRune10________ = 12017850, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Smithing Stone [7] 12017860")] - LDAinselLakeOfRotSmithingStone7 = 12017860, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Smithing Stone [7] 12017860")] + LDAinselLakeOfRotSmithingStone7 = 12017860, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Smithing Stone [6] 12017870")] - LDAinselLakeOfRotSmithingStone6___ = 12017870, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Smithing Stone [6] 12017870")] + LDAinselLakeOfRotSmithingStone6___ = 12017870, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Somber Smithing Stone [8] 12017880")] - LDAinselLakeOfRotSomberSmithingStone8_ = 12017880, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Somber Smithing Stone [8] 12017880")] + LDAinselLakeOfRotSomberSmithingStone8_ = 12017880, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Somber Smithing Stone [7] 12017890")] - LDAinselLakeOfRotSomberSmithingStone7___ = 12017890, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Somber Smithing Stone [7] 12017890")] + LDAinselLakeOfRotSomberSmithingStone7___ = 12017890, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Wing of Astel 12017900")] - LDAinselLakeOfRotWingOfAstel_ = 12017900, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Wing of Astel 12017900")] + LDAinselLakeOfRotWingOfAstel_ = 12017900, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Great Ghost Glovewort 12017910")] - LDAinselLakeOfRotGreatGhostGlovewort_ = 12017910, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Great Ghost Glovewort 12017910")] + LDAinselLakeOfRotGreatGhostGlovewort_ = 12017910, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Scorpion's Stinger 12017920")] - LDAinselLakeOfRotScorpionsStinger = 12017920, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Scorpion's Stinger 12017920")] + LDAinselLakeOfRotScorpionsStinger = 12017920, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Fire Longsword 12017930")] - LDAinselLakeOfRotFireLongsword = 12017930, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Fire Longsword 12017930")] + LDAinselLakeOfRotFireLongsword = 12017930, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Somber Smithing Stone [7] 12017940")] - LDAinselLakeOfRotSomberSmithingStone7____ = 12017940, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Somber Smithing Stone [7] 12017940")] + LDAinselLakeOfRotSomberSmithingStone7____ = 12017940, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Ghost Glovewort [9] 12017950")] - LDAinselLakeOfRotGhostGlovewort9 = 12017950, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Ghost Glovewort [9] 12017950")] + LDAinselLakeOfRotGhostGlovewort9 = 12017950, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Moon of Nokstella 12017960")] - LDAinselLakeOfRotMoonOfNokstella = 12017960, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Moon of Nokstella 12017960")] + LDAinselLakeOfRotMoonOfNokstella = 12017960, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Ant's Skull Plate 12017970")] - LDAinselLakeOfRotAntsSkullPlate = 12017970, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Ant's Skull Plate 12017970")] + LDAinselLakeOfRotAntsSkullPlate = 12017970, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Ghost-Glovewort Picker's Bell Bearing [2] 12017980")] - LDAinselLakeOfRotGhostGlovewortPickersBellBearing2 = 12017980, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Ghost-Glovewort Picker's Bell Bearing [2] 12017980")] + LDAinselLakeOfRotGhostGlovewortPickersBellBearing2 = 12017980, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Nightmaiden & Swordstress Puppets 12017990")] - LDAinselLakeOfRotNightmaidenSwordstressPuppets = 12017990, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Nightmaiden & Swordstress Puppets 12017990")] + LDAinselLakeOfRotNightmaidenSwordstressPuppets = 12017990, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Somber Smithing Stone [7] 12017995")] - LDAinselLakeOfRotSomberSmithingStone7_____ = 12017995, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Somber Smithing Stone [7] 12017995")] + LDAinselLakeOfRotSomberSmithingStone7_____ = 12017995, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Golden Seed 12017997")] - LDAinselLakeOfRotGoldenSeed_ = 12017997, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Golden Seed 12017997")] + LDAinselLakeOfRotGoldenSeed_ = 12017997, - [Annotation(Name = "[LD - Ainsel/Lake of Rot] Golden Rune [10] 12017105")] - LDAinselLakeOfRotGoldenRune10_________ = 12017105, + [Annotation(Name = "[LD - Ainsel/Lake of Rot] Golden Rune [10] 12017105")] + LDAinselLakeOfRotGoldenRune10_________ = 12017105, - [Annotation(Name = "[LD - Nokron / Siofra] Mottled Necklace 12027000")] - LDNokronSiofraMottledNecklace = 12027000, + [Annotation(Name = "[LD - Nokron / Siofra] Mottled Necklace 12027000")] + LDNokronSiofraMottledNecklace = 12027000, - [Annotation(Name = "[LD - Nokron / Siofra] Black Whetblade 65720")] - LDNokronSiofraBlackWhetblade = 65720, + [Annotation(Name = "[LD - Nokron / Siofra] Black Whetblade 65720")] + LDNokronSiofraBlackWhetblade = 65720, - [Annotation(Name = "[LD - Nokron / Siofra] Missionary's Cookbook [5] 67630")] - LDNokronSiofraMissionarysCookbook5 = 67630, + [Annotation(Name = "[LD - Nokron / Siofra] Missionary's Cookbook [5] 67630")] + LDNokronSiofraMissionarysCookbook5 = 67630, - [Annotation(Name = "[LD - Nokron / Siofra] Arteria Leaf 12027030")] - LDNokronSiofraArteriaLeaf = 12027030, + [Annotation(Name = "[LD - Nokron / Siofra] Arteria Leaf 12027030")] + LDNokronSiofraArteriaLeaf = 12027030, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Seed 12027040")] - LDNokronSiofraGoldenSeed = 12027040, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Seed 12027040")] + LDNokronSiofraGoldenSeed = 12027040, - [Annotation(Name = "[LD - Nokron / Siofra] Marika's Scarseal 12027050")] - LDNokronSiofraMarikasScarseal = 12027050, + [Annotation(Name = "[LD - Nokron / Siofra] Marika's Scarseal 12027050")] + LDNokronSiofraMarikasScarseal = 12027050, - [Annotation(Name = "[LD - Nokron / Siofra] Map: Siofra River 62063")] - LDNokronSiofraMapSiofraRiver = 62063, + [Annotation(Name = "[LD - Nokron / Siofra] Map: Siofra River 62063")] + LDNokronSiofraMapSiofraRiver = 62063, - [Annotation(Name = "[LD - Nokron / Siofra] Lightning Bastard Sword 12027070")] - LDNokronSiofraLightningBastardSword = 12027070, + [Annotation(Name = "[LD - Nokron / Siofra] Lightning Bastard Sword 12027070")] + LDNokronSiofraLightningBastardSword = 12027070, - [Annotation(Name = "[LD - Nokron / Siofra] Fingerslayer Blade 12027080")] - LDNokronSiofraFingerslayerBlade = 12027080, + [Annotation(Name = "[LD - Nokron / Siofra] Fingerslayer Blade 12027080")] + LDNokronSiofraFingerslayerBlade = 12027080, - [Annotation(Name = "[LD - Nokron / Siofra] Ancestral Infant's Head 12027090")] - LDNokronSiofraAncestralInfantsHead = 12027090, + [Annotation(Name = "[LD - Nokron / Siofra] Ancestral Infant's Head 12027090")] + LDNokronSiofraAncestralInfantsHead = 12027090, - [Annotation(Name = "[LD - Nokron / Siofra] Crab Eggs 12027100")] - LDNokronSiofraCrabEggs = 12027100, + [Annotation(Name = "[LD - Nokron / Siofra] Crab Eggs 12027100")] + LDNokronSiofraCrabEggs = 12027100, - [Annotation(Name = "[LD - Nokron / Siofra] Beast Liver 12027110")] - LDNokronSiofraBeastLiver = 12027110, + [Annotation(Name = "[LD - Nokron / Siofra] Beast Liver 12027110")] + LDNokronSiofraBeastLiver = 12027110, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [3] 12027120")] - LDNokronSiofraGoldenRune3 = 12027120, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [3] 12027120")] + LDNokronSiofraGoldenRune3 = 12027120, - [Annotation(Name = "[LD - Nokron / Siofra] Armorer's Cookbook [6] 67300")] - LDNokronSiofraArmorersCookbook6 = 67300, + [Annotation(Name = "[LD - Nokron / Siofra] Armorer's Cookbook [6] 67300")] + LDNokronSiofraArmorersCookbook6 = 67300, - [Annotation(Name = "[LD - Nokron / Siofra] Inverted Hawk Heater Shield 12027140")] - LDNokronSiofraInvertedHawkHeaterShield = 12027140, + [Annotation(Name = "[LD - Nokron / Siofra] Inverted Hawk Heater Shield 12027140")] + LDNokronSiofraInvertedHawkHeaterShield = 12027140, - [Annotation(Name = "[LD - Nokron / Siofra] Somber Smithing Stone [2] 12027150")] - LDNokronSiofraSomberSmithingStone2 = 12027150, + [Annotation(Name = "[LD - Nokron / Siofra] Somber Smithing Stone [2] 12027150")] + LDNokronSiofraSomberSmithingStone2 = 12027150, - [Annotation(Name = "[LD - Nokron / Siofra] Old Fang 12027160")] - LDNokronSiofraOldFang = 12027160, + [Annotation(Name = "[LD - Nokron / Siofra] Old Fang 12027160")] + LDNokronSiofraOldFang = 12027160, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [2] 12027170")] - LDNokronSiofraGoldenRune2 = 12027170, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [2] 12027170")] + LDNokronSiofraGoldenRune2 = 12027170, - [Annotation(Name = "[LD - Nokron / Siofra] Shield Grease 12027180")] - LDNokronSiofraShieldGrease = 12027180, + [Annotation(Name = "[LD - Nokron / Siofra] Shield Grease 12027180")] + LDNokronSiofraShieldGrease = 12027180, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [3] 12027190")] - LDNokronSiofraGoldenRune3_ = 12027190, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [3] 12027190")] + LDNokronSiofraGoldenRune3_ = 12027190, - [Annotation(Name = "[LD - Nokron / Siofra] Dappled Cured Meat 12027200")] - LDNokronSiofraDappledCuredMeat = 12027200, + [Annotation(Name = "[LD - Nokron / Siofra] Dappled Cured Meat 12027200")] + LDNokronSiofraDappledCuredMeat = 12027200, - [Annotation(Name = "[LD - Nokron / Siofra] Somber Smithing Stone [2] 12027210")] - LDNokronSiofraSomberSmithingStone2_ = 12027210, + [Annotation(Name = "[LD - Nokron / Siofra] Somber Smithing Stone [2] 12027210")] + LDNokronSiofraSomberSmithingStone2_ = 12027210, - [Annotation(Name = "[LD - Nokron / Siofra] Smithing Stone [3] 12027220")] - LDNokronSiofraSmithingStone3 = 12027220, + [Annotation(Name = "[LD - Nokron / Siofra] Smithing Stone [3] 12027220")] + LDNokronSiofraSmithingStone3 = 12027220, - [Annotation(Name = "[LD - Nokron / Siofra] Smithing Stone [2] 12027230")] - LDNokronSiofraSmithingStone2 = 12027230, + [Annotation(Name = "[LD - Nokron / Siofra] Smithing Stone [2] 12027230")] + LDNokronSiofraSmithingStone2 = 12027230, - [Annotation(Name = "[LD - Nokron / Siofra] Dwelling Arrow 12027240")] - LDNokronSiofraDwellingArrow = 12027240, + [Annotation(Name = "[LD - Nokron / Siofra] Dwelling Arrow 12027240")] + LDNokronSiofraDwellingArrow = 12027240, - [Annotation(Name = "[LD - Nokron / Siofra] Gold-Pickled Fowl Foot 12027250")] - LDNokronSiofraGoldPickledFowlFoot = 12027250, + [Annotation(Name = "[LD - Nokron / Siofra] Gold-Pickled Fowl Foot 12027250")] + LDNokronSiofraGoldPickledFowlFoot = 12027250, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [4] 12027260")] - LDNokronSiofraGoldenRune4 = 12027260, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [4] 12027260")] + LDNokronSiofraGoldenRune4 = 12027260, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [4] 12027270")] - LDNokronSiofraGoldenRune4_ = 12027270, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [4] 12027270")] + LDNokronSiofraGoldenRune4_ = 12027270, - [Annotation(Name = "[LD - Nokron / Siofra] Furlcalling Finger Remedy 12027280")] - LDNokronSiofraFurlcallingFingerRemedy = 12027280, + [Annotation(Name = "[LD - Nokron / Siofra] Furlcalling Finger Remedy 12027280")] + LDNokronSiofraFurlcallingFingerRemedy = 12027280, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [4] 12027290")] - LDNokronSiofraGoldenRune4__ = 12027290, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [4] 12027290")] + LDNokronSiofraGoldenRune4__ = 12027290, - [Annotation(Name = "[LD - Nokron / Siofra] Smithing Stone [4] 12027300")] - LDNokronSiofraSmithingStone4 = 12027300, + [Annotation(Name = "[LD - Nokron / Siofra] Smithing Stone [4] 12027300")] + LDNokronSiofraSmithingStone4 = 12027300, - [Annotation(Name = "[LD - Nokron / Siofra] Hefty Beast Bone 12027310")] - LDNokronSiofraHeftyBeastBone = 12027310, + [Annotation(Name = "[LD - Nokron / Siofra] Hefty Beast Bone 12027310")] + LDNokronSiofraHeftyBeastBone = 12027310, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [6] 12027320")] - LDNokronSiofraGoldenRune6 = 12027320, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [6] 12027320")] + LDNokronSiofraGoldenRune6 = 12027320, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [3] 12027330")] - LDNokronSiofraGoldenRune3__ = 12027330, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [3] 12027330")] + LDNokronSiofraGoldenRune3__ = 12027330, - [Annotation(Name = "[LD - Nokron / Siofra] Sliver of Meat 12027340")] - LDNokronSiofraSliverOfMeat = 12027340, + [Annotation(Name = "[LD - Nokron / Siofra] Sliver of Meat 12027340")] + LDNokronSiofraSliverOfMeat = 12027340, - [Annotation(Name = "[LD - Nokron / Siofra] Smithing Stone [3] 12027350")] - LDNokronSiofraSmithingStone3_ = 12027350, + [Annotation(Name = "[LD - Nokron / Siofra] Smithing Stone [3] 12027350")] + LDNokronSiofraSmithingStone3_ = 12027350, - [Annotation(Name = "[LD - Nokron / Siofra] Gold-Pickled Fowl Foot 12027360")] - LDNokronSiofraGoldPickledFowlFoot_ = 12027360, + [Annotation(Name = "[LD - Nokron / Siofra] Gold-Pickled Fowl Foot 12027360")] + LDNokronSiofraGoldPickledFowlFoot_ = 12027360, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [4] 12027370")] - LDNokronSiofraGoldenRune4___ = 12027370, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [4] 12027370")] + LDNokronSiofraGoldenRune4___ = 12027370, - [Annotation(Name = "[LD - Nokron / Siofra] Dwelling Arrow 12027380")] - LDNokronSiofraDwellingArrow_ = 12027380, + [Annotation(Name = "[LD - Nokron / Siofra] Dwelling Arrow 12027380")] + LDNokronSiofraDwellingArrow_ = 12027380, - [Annotation(Name = "[LD - Nokron / Siofra] Stonesword Key 12027390")] - LDNokronSiofraStoneswordKey = 12027390, + [Annotation(Name = "[LD - Nokron / Siofra] Stonesword Key 12027390")] + LDNokronSiofraStoneswordKey = 12027390, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [4] 12027400")] - LDNokronSiofraGoldenRune4____ = 12027400, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [4] 12027400")] + LDNokronSiofraGoldenRune4____ = 12027400, - [Annotation(Name = "[LD - Nokron / Siofra] Smithing Stone [2] 12027410")] - LDNokronSiofraSmithingStone2_ = 12027410, + [Annotation(Name = "[LD - Nokron / Siofra] Smithing Stone [2] 12027410")] + LDNokronSiofraSmithingStone2_ = 12027410, - [Annotation(Name = "[LD - Nokron / Siofra] Horn Bow 12027420")] - LDNokronSiofraHornBow = 12027420, + [Annotation(Name = "[LD - Nokron / Siofra] Horn Bow 12027420")] + LDNokronSiofraHornBow = 12027420, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [4] 12027430")] - LDNokronSiofraGoldenRune4_____ = 12027430, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [4] 12027430")] + LDNokronSiofraGoldenRune4_____ = 12027430, - [Annotation(Name = "[LD - Nokron / Siofra] Sliver of Meat 12027440")] - LDNokronSiofraSliverOfMeat_ = 12027440, + [Annotation(Name = "[LD - Nokron / Siofra] Sliver of Meat 12027440")] + LDNokronSiofraSliverOfMeat_ = 12027440, - [Annotation(Name = "[LD - Nokron / Siofra] Stonesword Key 12027450")] - LDNokronSiofraStoneswordKey_ = 12027450, + [Annotation(Name = "[LD - Nokron / Siofra] Stonesword Key 12027450")] + LDNokronSiofraStoneswordKey_ = 12027450, - [Annotation(Name = "[LD - Nokron / Siofra] Rune Arc 12027460")] - LDNokronSiofraRuneArc = 12027460, + [Annotation(Name = "[LD - Nokron / Siofra] Rune Arc 12027460")] + LDNokronSiofraRuneArc = 12027460, - [Annotation(Name = "[LD - Nokron / Siofra] Clarifying Horn Charm 12027470")] - LDNokronSiofraClarifyingHornCharm = 12027470, + [Annotation(Name = "[LD - Nokron / Siofra] Clarifying Horn Charm 12027470")] + LDNokronSiofraClarifyingHornCharm = 12027470, - [Annotation(Name = "[LD - Nokron / Siofra] Lump of Flesh 12027480")] - LDNokronSiofraLumpOfFlesh = 12027480, + [Annotation(Name = "[LD - Nokron / Siofra] Lump of Flesh 12027480")] + LDNokronSiofraLumpOfFlesh = 12027480, - [Annotation(Name = "[LD - Nokron / Siofra] Clarifying Horn Charm +1 12027490")] - LDNokronSiofraClarifyingHornCharm1 = 12027490, + [Annotation(Name = "[LD - Nokron / Siofra] Clarifying Horn Charm +1 12027490")] + LDNokronSiofraClarifyingHornCharm1 = 12027490, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [4] 12027500")] - LDNokronSiofraGoldenRune4______ = 12027500, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [4] 12027500")] + LDNokronSiofraGoldenRune4______ = 12027500, - [Annotation(Name = "[LD - Nokron / Siofra] Dwelling Arrow 12027510")] - LDNokronSiofraDwellingArrow__ = 12027510, + [Annotation(Name = "[LD - Nokron / Siofra] Dwelling Arrow 12027510")] + LDNokronSiofraDwellingArrow__ = 12027510, - [Annotation(Name = "[LD - Nokron / Siofra] Nascent Butterfly 12027520")] - LDNokronSiofraNascentButterfly = 12027520, + [Annotation(Name = "[LD - Nokron / Siofra] Nascent Butterfly 12027520")] + LDNokronSiofraNascentButterfly = 12027520, - [Annotation(Name = "[LD - Nokron / Siofra] Gold-Tinged Excrement 12027530")] - LDNokronSiofraGoldTingedExcrement = 12027530, + [Annotation(Name = "[LD - Nokron / Siofra] Gold-Tinged Excrement 12027530")] + LDNokronSiofraGoldTingedExcrement = 12027530, - [Annotation(Name = "[LD - Nokron / Siofra] Fireproof Dried Liver 12027540")] - LDNokronSiofraFireproofDriedLiver = 12027540, + [Annotation(Name = "[LD - Nokron / Siofra] Fireproof Dried Liver 12027540")] + LDNokronSiofraFireproofDriedLiver = 12027540, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [4] 12027550")] - LDNokronSiofraGoldenRune4_______ = 12027550, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [4] 12027550")] + LDNokronSiofraGoldenRune4_______ = 12027550, - [Annotation(Name = "[LD - Nokron / Siofra] Shining Horned Headband 12027560")] - LDNokronSiofraShiningHornedHeadband = 12027560, + [Annotation(Name = "[LD - Nokron / Siofra] Shining Horned Headband 12027560")] + LDNokronSiofraShiningHornedHeadband = 12027560, - [Annotation(Name = "[LD - Nokron / Siofra] Old Fang 12027570")] - LDNokronSiofraOldFang_ = 12027570, + [Annotation(Name = "[LD - Nokron / Siofra] Old Fang 12027570")] + LDNokronSiofraOldFang_ = 12027570, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [5] 12027580")] - LDNokronSiofraGoldenRune5 = 12027580, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [5] 12027580")] + LDNokronSiofraGoldenRune5 = 12027580, - [Annotation(Name = "[LD - Nokron / Siofra] Kukri 12027590")] - LDNokronSiofraKukri = 12027590, + [Annotation(Name = "[LD - Nokron / Siofra] Kukri 12027590")] + LDNokronSiofraKukri = 12027590, - [Annotation(Name = "[LD - Nokron / Siofra] Hefty Beast Bone 12027600")] - LDNokronSiofraHeftyBeastBone_ = 12027600, + [Annotation(Name = "[LD - Nokron / Siofra] Hefty Beast Bone 12027600")] + LDNokronSiofraHeftyBeastBone_ = 12027600, - [Annotation(Name = "[LD - Nokron / Siofra] Smithing Stone [5] 12027610")] - LDNokronSiofraSmithingStone5 = 12027610, + [Annotation(Name = "[LD - Nokron / Siofra] Smithing Stone [5] 12027610")] + LDNokronSiofraSmithingStone5 = 12027610, - [Annotation(Name = "[LD - Nokron / Siofra] Mottled Necklace +1 12027620")] - LDNokronSiofraMottledNecklace1 = 12027620, + [Annotation(Name = "[LD - Nokron / Siofra] Mottled Necklace +1 12027620")] + LDNokronSiofraMottledNecklace1 = 12027620, - [Annotation(Name = "[LD - Nokron / Siofra] Old Fang 12027630")] - LDNokronSiofraOldFang__ = 12027630, + [Annotation(Name = "[LD - Nokron / Siofra] Old Fang 12027630")] + LDNokronSiofraOldFang__ = 12027630, - [Annotation(Name = "[LD - Nokron / Siofra] Hefty Beast Bone 12027640")] - LDNokronSiofraHeftyBeastBone__ = 12027640, + [Annotation(Name = "[LD - Nokron / Siofra] Hefty Beast Bone 12027640")] + LDNokronSiofraHeftyBeastBone__ = 12027640, - [Annotation(Name = "[LD - Nokron / Siofra] Smithing Stone [4] 12027650")] - LDNokronSiofraSmithingStone4_ = 12027650, + [Annotation(Name = "[LD - Nokron / Siofra] Smithing Stone [4] 12027650")] + LDNokronSiofraSmithingStone4_ = 12027650, - [Annotation(Name = "[LD - Nokron / Siofra] Beast Blood 12027660")] - LDNokronSiofraBeastBlood = 12027660, + [Annotation(Name = "[LD - Nokron / Siofra] Beast Blood 12027660")] + LDNokronSiofraBeastBlood = 12027660, - [Annotation(Name = "[LD - Nokron / Siofra] Beast Blood 12027670")] - LDNokronSiofraBeastBlood_ = 12027670, + [Annotation(Name = "[LD - Nokron / Siofra] Beast Blood 12027670")] + LDNokronSiofraBeastBlood_ = 12027670, - [Annotation(Name = "[LD - Nokron / Siofra] Somber Smithing Stone [5] 12027680")] - LDNokronSiofraSomberSmithingStone5 = 12027680, + [Annotation(Name = "[LD - Nokron / Siofra] Somber Smithing Stone [5] 12027680")] + LDNokronSiofraSomberSmithingStone5 = 12027680, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [12] 12027690")] - LDNokronSiofraGoldenRune12 = 12027690, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [12] 12027690")] + LDNokronSiofraGoldenRune12 = 12027690, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [1] 12027700")] - LDNokronSiofraGoldenRune1 = 12027700, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [1] 12027700")] + LDNokronSiofraGoldenRune1 = 12027700, - [Annotation(Name = "[LD - Nokron / Siofra] Smithing Stone [5] 12027710")] - LDNokronSiofraSmithingStone5_ = 12027710, + [Annotation(Name = "[LD - Nokron / Siofra] Smithing Stone [5] 12027710")] + LDNokronSiofraSmithingStone5_ = 12027710, - [Annotation(Name = "[LD - Nokron / Siofra] Smithing Stone [2] 12027720")] - LDNokronSiofraSmithingStone2__ = 12027720, + [Annotation(Name = "[LD - Nokron / Siofra] Smithing Stone [2] 12027720")] + LDNokronSiofraSmithingStone2__ = 12027720, - [Annotation(Name = "[LD - Nokron / Siofra] Celestial Dew 12027730")] - LDNokronSiofraCelestialDew = 12027730, + [Annotation(Name = "[LD - Nokron / Siofra] Celestial Dew 12027730")] + LDNokronSiofraCelestialDew = 12027730, - [Annotation(Name = "[LD - Nokron / Siofra] Smithing Stone [5] 12027740")] - LDNokronSiofraSmithingStone5__ = 12027740, + [Annotation(Name = "[LD - Nokron / Siofra] Smithing Stone [5] 12027740")] + LDNokronSiofraSmithingStone5__ = 12027740, - [Annotation(Name = "[LD - Nokron / Siofra] Stonesword Key 12027750")] - LDNokronSiofraStoneswordKey__ = 12027750, + [Annotation(Name = "[LD - Nokron / Siofra] Stonesword Key 12027750")] + LDNokronSiofraStoneswordKey__ = 12027750, - [Annotation(Name = "[LD - Nokron / Siofra] Silver Tear Husk 12027760")] - LDNokronSiofraSilverTearHusk = 12027760, + [Annotation(Name = "[LD - Nokron / Siofra] Silver Tear Husk 12027760")] + LDNokronSiofraSilverTearHusk = 12027760, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [1] 12027770")] - LDNokronSiofraGoldenRune1_ = 12027770, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [1] 12027770")] + LDNokronSiofraGoldenRune1_ = 12027770, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [13] 12027780")] - LDNokronSiofraGoldenRune13 = 12027780, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [13] 12027780")] + LDNokronSiofraGoldenRune13 = 12027780, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [7] 12027790")] - LDNokronSiofraGoldenRune7 = 12027790, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [7] 12027790")] + LDNokronSiofraGoldenRune7 = 12027790, - [Annotation(Name = "[LD - Nokron / Siofra] Smithing Stone [5] 12027800")] - LDNokronSiofraSmithingStone5___ = 12027800, + [Annotation(Name = "[LD - Nokron / Siofra] Smithing Stone [5] 12027800")] + LDNokronSiofraSmithingStone5___ = 12027800, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [6] 12027810")] - LDNokronSiofraGoldenRune6_ = 12027810, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [6] 12027810")] + LDNokronSiofraGoldenRune6_ = 12027810, - [Annotation(Name = "[LD - Nokron / Siofra] Rune Arc 12027820")] - LDNokronSiofraRuneArc_ = 12027820, + [Annotation(Name = "[LD - Nokron / Siofra] Rune Arc 12027820")] + LDNokronSiofraRuneArc_ = 12027820, - [Annotation(Name = "[LD - Nokron / Siofra] Smithing Stone [4] 12027830")] - LDNokronSiofraSmithingStone4__ = 12027830, + [Annotation(Name = "[LD - Nokron / Siofra] Smithing Stone [4] 12027830")] + LDNokronSiofraSmithingStone4__ = 12027830, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [1] 12027840")] - LDNokronSiofraGoldenRune1__ = 12027840, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [1] 12027840")] + LDNokronSiofraGoldenRune1__ = 12027840, - [Annotation(Name = "[LD - Nokron / Siofra] Voidbane Talisman 12027850")] - LDNokronSiofraVoidbaneTalisman = 12027850, + [Annotation(Name = "[LD - Nokron / Siofra] Voidbane Talisman 12027850")] + LDNokronSiofraVoidbaneTalisman = 12027850, - [Annotation(Name = "[LD - Nokron / Siofra] Rune Arc 12027860")] - LDNokronSiofraRuneArc__ = 12027860, + [Annotation(Name = "[LD - Nokron / Siofra] Rune Arc 12027860")] + LDNokronSiofraRuneArc__ = 12027860, - [Annotation(Name = "[LD - Nokron / Siofra] Celestial Dew 12027870")] - LDNokronSiofraCelestialDew_ = 12027870, + [Annotation(Name = "[LD - Nokron / Siofra] Celestial Dew 12027870")] + LDNokronSiofraCelestialDew_ = 12027870, - [Annotation(Name = "[LD - Nokron / Siofra] Mimic Tear Ashes 12027880")] - LDNokronSiofraMimicTearAshes = 12027880, + [Annotation(Name = "[LD - Nokron / Siofra] Mimic Tear Ashes 12027880")] + LDNokronSiofraMimicTearAshes = 12027880, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [7] 12027890")] - LDNokronSiofraGoldenRune7_ = 12027890, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [7] 12027890")] + LDNokronSiofraGoldenRune7_ = 12027890, - [Annotation(Name = "[LD - Nokron / Siofra] Smithing Stone [3] 12027900")] - LDNokronSiofraSmithingStone3__ = 12027900, + [Annotation(Name = "[LD - Nokron / Siofra] Smithing Stone [3] 12027900")] + LDNokronSiofraSmithingStone3__ = 12027900, - [Annotation(Name = "[LD - Nokron / Siofra] Nox Flowing Hammer 12027910")] - LDNokronSiofraNoxFlowingHammer = 12027910, + [Annotation(Name = "[LD - Nokron / Siofra] Nox Flowing Hammer 12027910")] + LDNokronSiofraNoxFlowingHammer = 12027910, - [Annotation(Name = "[LD - Nokron / Siofra] Celestial Dew 12027920")] - LDNokronSiofraCelestialDew__ = 12027920, + [Annotation(Name = "[LD - Nokron / Siofra] Celestial Dew 12027920")] + LDNokronSiofraCelestialDew__ = 12027920, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [7] 12027930")] - LDNokronSiofraGoldenRune7__ = 12027930, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [7] 12027930")] + LDNokronSiofraGoldenRune7__ = 12027930, - [Annotation(Name = "[LD - Nokron / Siofra] Soft Cotton 12027940")] - LDNokronSiofraSoftCotton = 12027940, + [Annotation(Name = "[LD - Nokron / Siofra] Soft Cotton 12027940")] + LDNokronSiofraSoftCotton = 12027940, - [Annotation(Name = "[LD - Nokron / Siofra] Somber Smithing Stone [5] 12027950")] - LDNokronSiofraSomberSmithingStone5_ = 12027950, + [Annotation(Name = "[LD - Nokron / Siofra] Somber Smithing Stone [5] 12027950")] + LDNokronSiofraSomberSmithingStone5_ = 12027950, - [Annotation(Name = "[LD - Nokron / Siofra] Dragonwound Grease 12027960")] - LDNokronSiofraDragonwoundGrease = 12027960, + [Annotation(Name = "[LD - Nokron / Siofra] Dragonwound Grease 12027960")] + LDNokronSiofraDragonwoundGrease = 12027960, - [Annotation(Name = "[LD - Nokron / Siofra] Slumbering Egg 12027970")] - LDNokronSiofraSlumberingEgg = 12027970, + [Annotation(Name = "[LD - Nokron / Siofra] Slumbering Egg 12027970")] + LDNokronSiofraSlumberingEgg = 12027970, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [7] 12027980")] - LDNokronSiofraGoldenRune7___ = 12027980, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [7] 12027980")] + LDNokronSiofraGoldenRune7___ = 12027980, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [7] 12027990")] - LDNokronSiofraGoldenRune7____ = 12027990, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [7] 12027990")] + LDNokronSiofraGoldenRune7____ = 12027990, - [Annotation(Name = "[LD - Nokron / Siofra] Crucible Hornshield 12027435")] - LDNokronSiofraCrucibleHornshield = 12027435, + [Annotation(Name = "[LD - Nokron / Siofra] Crucible Hornshield 12027435")] + LDNokronSiofraCrucibleHornshield = 12027435, - [Annotation(Name = "[LD - Nokron / Siofra] Somber Smithing Stone [6] 12027445")] - LDNokronSiofraSomberSmithingStone6 = 12027445, + [Annotation(Name = "[LD - Nokron / Siofra] Somber Smithing Stone [6] 12027445")] + LDNokronSiofraSomberSmithingStone6 = 12027445, - [Annotation(Name = "[LD - Deeproot Depths] Map: Deeproot Depths 62064")] - LDDeeprootDepthsMapDeeprootDepths = 62064, + [Annotation(Name = "[LD - Deeproot Depths] Map: Deeproot Depths 62064")] + LDDeeprootDepthsMapDeeprootDepths = 62064, - [Annotation(Name = "[LD - Deeproot Depths] Stonesword Key 12037010")] - LDDeeprootDepthsStoneswordKey = 12037010, + [Annotation(Name = "[LD - Deeproot Depths] Stonesword Key 12037010")] + LDDeeprootDepthsStoneswordKey = 12037010, - [Annotation(Name = "[LD - Deeproot Depths] Formic Rock 12037020")] - LDDeeprootDepthsFormicRock = 12037020, + [Annotation(Name = "[LD - Deeproot Depths] Formic Rock 12037020")] + LDDeeprootDepthsFormicRock = 12037020, - [Annotation(Name = "[LD - Deeproot Depths] Golden Rune [5] 12037030")] - LDDeeprootDepthsGoldenRune5 = 12037030, + [Annotation(Name = "[LD - Deeproot Depths] Golden Rune [5] 12037030")] + LDDeeprootDepthsGoldenRune5 = 12037030, - [Annotation(Name = "[LD - Deeproot Depths] Golden Rune [8] 12037040")] - LDDeeprootDepthsGoldenRune8 = 12037040, + [Annotation(Name = "[LD - Deeproot Depths] Golden Rune [8] 12037040")] + LDDeeprootDepthsGoldenRune8 = 12037040, - [Annotation(Name = "[LD - Deeproot Depths] Golden Arrow 12037050")] - LDDeeprootDepthsGoldenArrow = 12037050, + [Annotation(Name = "[LD - Deeproot Depths] Golden Arrow 12037050")] + LDDeeprootDepthsGoldenArrow = 12037050, - [Annotation(Name = "[LD - Deeproot Depths] Smithing Stone [6] 12037060")] - LDDeeprootDepthsSmithingStone6 = 12037060, + [Annotation(Name = "[LD - Deeproot Depths] Smithing Stone [6] 12037060")] + LDDeeprootDepthsSmithingStone6 = 12037060, - [Annotation(Name = "[LD - Deeproot Depths] Holy Grease 12037070")] - LDDeeprootDepthsHolyGrease = 12037070, + [Annotation(Name = "[LD - Deeproot Depths] Holy Grease 12037070")] + LDDeeprootDepthsHolyGrease = 12037070, - [Annotation(Name = "[LD - Deeproot Depths] [Incantation] Elden Stars 12037080")] - LDDeeprootDepthsIncantationEldenStars = 12037080, + [Annotation(Name = "[LD - Deeproot Depths] [Incantation] Elden Stars 12037080")] + LDDeeprootDepthsIncantationEldenStars = 12037080, - [Annotation(Name = "[LD - Deeproot Depths] Smithing Stone [4] 12037090")] - LDDeeprootDepthsSmithingStone4 = 12037090, + [Annotation(Name = "[LD - Deeproot Depths] Smithing Stone [4] 12037090")] + LDDeeprootDepthsSmithingStone4 = 12037090, - [Annotation(Name = "[LD - Deeproot Depths] Golden Rune [5] 12037100")] - LDDeeprootDepthsGoldenRune5_ = 12037100, + [Annotation(Name = "[LD - Deeproot Depths] Golden Rune [5] 12037100")] + LDDeeprootDepthsGoldenRune5_ = 12037100, - [Annotation(Name = "[LD - Deeproot Depths] Golden Rune [6] 12037110")] - LDDeeprootDepthsGoldenRune6 = 12037110, + [Annotation(Name = "[LD - Deeproot Depths] Golden Rune [6] 12037110")] + LDDeeprootDepthsGoldenRune6 = 12037110, - [Annotation(Name = "[LD - Deeproot Depths] Warming Stone 12037120")] - LDDeeprootDepthsWarmingStone = 12037120, + [Annotation(Name = "[LD - Deeproot Depths] Warming Stone 12037120")] + LDDeeprootDepthsWarmingStone = 12037120, - [Annotation(Name = "[LD - Deeproot Depths] Smithing Stone [4] 12037130")] - LDDeeprootDepthsSmithingStone4_ = 12037130, + [Annotation(Name = "[LD - Deeproot Depths] Smithing Stone [4] 12037130")] + LDDeeprootDepthsSmithingStone4_ = 12037130, - [Annotation(Name = "[LD - Deeproot Depths] Ash of War: Vacuum Slice 12037140")] - LDDeeprootDepthsAshOfWarVacuumSlice = 12037140, + [Annotation(Name = "[LD - Deeproot Depths] Ash of War: Vacuum Slice 12037140")] + LDDeeprootDepthsAshOfWarVacuumSlice = 12037140, - [Annotation(Name = "[LD - Deeproot Depths] Dragonwound Grease 12037150")] - LDDeeprootDepthsDragonwoundGrease = 12037150, + [Annotation(Name = "[LD - Deeproot Depths] Dragonwound Grease 12037150")] + LDDeeprootDepthsDragonwoundGrease = 12037150, - [Annotation(Name = "[LD - Deeproot Depths] Hefty Beast Bone 12037160")] - LDDeeprootDepthsHeftyBeastBone = 12037160, + [Annotation(Name = "[LD - Deeproot Depths] Hefty Beast Bone 12037160")] + LDDeeprootDepthsHeftyBeastBone = 12037160, - [Annotation(Name = "[LD - Deeproot Depths] Golden Rune [1] 12037170")] - LDDeeprootDepthsGoldenRune1 = 12037170, + [Annotation(Name = "[LD - Deeproot Depths] Golden Rune [1] 12037170")] + LDDeeprootDepthsGoldenRune1 = 12037170, - [Annotation(Name = "[LD - Deeproot Depths] Prince of Death's Staff 12037180")] - LDDeeprootDepthsPrinceOfDeathsStaff = 12037180, + [Annotation(Name = "[LD - Deeproot Depths] Prince of Death's Staff 12037180")] + LDDeeprootDepthsPrinceOfDeathsStaff = 12037180, - [Annotation(Name = "[LD - Deeproot Depths] Smithing Stone [6] 12037190")] - LDDeeprootDepthsSmithingStone6_ = 12037190, + [Annotation(Name = "[LD - Deeproot Depths] Smithing Stone [6] 12037190")] + LDDeeprootDepthsSmithingStone6_ = 12037190, - [Annotation(Name = "[LD - Deeproot Depths] Golden Rune [5] 12037200")] - LDDeeprootDepthsGoldenRune5__ = 12037200, + [Annotation(Name = "[LD - Deeproot Depths] Golden Rune [5] 12037200")] + LDDeeprootDepthsGoldenRune5__ = 12037200, - [Annotation(Name = "[LD - Deeproot Depths] Golden Rune [8] 12037210")] - LDDeeprootDepthsGoldenRune8_ = 12037210, + [Annotation(Name = "[LD - Deeproot Depths] Golden Rune [8] 12037210")] + LDDeeprootDepthsGoldenRune8_ = 12037210, - [Annotation(Name = "[LD - Deeproot Depths] Nascent Butterfly 12037220")] - LDDeeprootDepthsNascentButterfly = 12037220, + [Annotation(Name = "[LD - Deeproot Depths] Nascent Butterfly 12037220")] + LDDeeprootDepthsNascentButterfly = 12037220, - [Annotation(Name = "[LD - Deeproot Depths] Somber Smithing Stone [7] 12037230")] - LDDeeprootDepthsSomberSmithingStone7 = 12037230, + [Annotation(Name = "[LD - Deeproot Depths] Somber Smithing Stone [7] 12037230")] + LDDeeprootDepthsSomberSmithingStone7 = 12037230, - [Annotation(Name = "[LD - Deeproot Depths] Somber Smithing Stone [7] 12037240")] - LDDeeprootDepthsSomberSmithingStone7_ = 12037240, + [Annotation(Name = "[LD - Deeproot Depths] Somber Smithing Stone [7] 12037240")] + LDDeeprootDepthsSomberSmithingStone7_ = 12037240, - [Annotation(Name = "[LD - Deeproot Depths] Somber Smithing Stone [7] 12037250")] - LDDeeprootDepthsSomberSmithingStone7__ = 12037250, + [Annotation(Name = "[LD - Deeproot Depths] Somber Smithing Stone [7] 12037250")] + LDDeeprootDepthsSomberSmithingStone7__ = 12037250, - [Annotation(Name = "[LD - Deeproot Depths] Fan Daggers 12037260")] - LDDeeprootDepthsFanDaggers = 12037260, + [Annotation(Name = "[LD - Deeproot Depths] Fan Daggers 12037260")] + LDDeeprootDepthsFanDaggers = 12037260, - [Annotation(Name = "[LD - Deeproot Depths] Somber Smithing Stone [6] 12037270")] - LDDeeprootDepthsSomberSmithingStone6 = 12037270, + [Annotation(Name = "[LD - Deeproot Depths] Somber Smithing Stone [6] 12037270")] + LDDeeprootDepthsSomberSmithingStone6 = 12037270, - [Annotation(Name = "[LD - Deeproot Depths] Golden Rune [8] 12037280")] - LDDeeprootDepthsGoldenRune8__ = 12037280, + [Annotation(Name = "[LD - Deeproot Depths] Golden Rune [8] 12037280")] + LDDeeprootDepthsGoldenRune8__ = 12037280, - [Annotation(Name = "[LD - Deeproot Depths] Golden Rune [8] 12037290")] - LDDeeprootDepthsGoldenRune8___ = 12037290, + [Annotation(Name = "[LD - Deeproot Depths] Golden Rune [8] 12037290")] + LDDeeprootDepthsGoldenRune8___ = 12037290, - [Annotation(Name = "[LD - Deeproot Depths] Crucible Tree Helm 12037300")] - LDDeeprootDepthsCrucibleTreeHelm = 12037300, + [Annotation(Name = "[LD - Deeproot Depths] Crucible Tree Helm 12037300")] + LDDeeprootDepthsCrucibleTreeHelm = 12037300, - [Annotation(Name = "[LD - Deeproot Depths] Smithing Stone [6] 12037310")] - LDDeeprootDepthsSmithingStone6__ = 12037310, + [Annotation(Name = "[LD - Deeproot Depths] Smithing Stone [6] 12037310")] + LDDeeprootDepthsSmithingStone6__ = 12037310, - [Annotation(Name = "[LD - Deeproot Depths] Golden Rune [8] 12037320")] - LDDeeprootDepthsGoldenRune8____ = 12037320, + [Annotation(Name = "[LD - Deeproot Depths] Golden Rune [8] 12037320")] + LDDeeprootDepthsGoldenRune8____ = 12037320, - [Annotation(Name = "[LD - Deeproot Depths] Somber Smithing Stone [7] 12037330")] - LDDeeprootDepthsSomberSmithingStone7___ = 12037330, + [Annotation(Name = "[LD - Deeproot Depths] Somber Smithing Stone [7] 12037330")] + LDDeeprootDepthsSomberSmithingStone7___ = 12037330, - [Annotation(Name = "[LD - Deeproot Depths] Arteria Leaf 12037340")] - LDDeeprootDepthsArteriaLeaf = 12037340, + [Annotation(Name = "[LD - Deeproot Depths] Arteria Leaf 12037340")] + LDDeeprootDepthsArteriaLeaf = 12037340, - [Annotation(Name = "[LD - Deeproot Depths] Smithing Stone [7] 12037350")] - LDDeeprootDepthsSmithingStone7 = 12037350, + [Annotation(Name = "[LD - Deeproot Depths] Smithing Stone [7] 12037350")] + LDDeeprootDepthsSmithingStone7 = 12037350, - [Annotation(Name = "[LD - Deeproot Depths] Lightning Greatbolt 12037360")] - LDDeeprootDepthsLightningGreatbolt = 12037360, + [Annotation(Name = "[LD - Deeproot Depths] Lightning Greatbolt 12037360")] + LDDeeprootDepthsLightningGreatbolt = 12037360, - [Annotation(Name = "[LD - Deeproot Depths] Golden Rune [8] 12037370")] - LDDeeprootDepthsGoldenRune8_____ = 12037370, + [Annotation(Name = "[LD - Deeproot Depths] Golden Rune [8] 12037370")] + LDDeeprootDepthsGoldenRune8_____ = 12037370, - [Annotation(Name = "[LD - Deeproot Depths] Smithing Stone [6] 12037380")] - LDDeeprootDepthsSmithingStone6___ = 12037380, + [Annotation(Name = "[LD - Deeproot Depths] Smithing Stone [6] 12037380")] + LDDeeprootDepthsSmithingStone6___ = 12037380, - [Annotation(Name = "[LD - Deeproot Depths] Golden Rune [8] 12037390")] - LDDeeprootDepthsGoldenRune8______ = 12037390, + [Annotation(Name = "[LD - Deeproot Depths] Golden Rune [8] 12037390")] + LDDeeprootDepthsGoldenRune8______ = 12037390, - [Annotation(Name = "[LD - Deeproot Depths] Clarifying Boluses 12037400")] - LDDeeprootDepthsClarifyingBoluses = 12037400, + [Annotation(Name = "[LD - Deeproot Depths] Clarifying Boluses 12037400")] + LDDeeprootDepthsClarifyingBoluses = 12037400, - [Annotation(Name = "[LD - Deeproot Depths] Smithing Stone [4] 12037410")] - LDDeeprootDepthsSmithingStone4__ = 12037410, + [Annotation(Name = "[LD - Deeproot Depths] Smithing Stone [4] 12037410")] + LDDeeprootDepthsSmithingStone4__ = 12037410, - [Annotation(Name = "[LD - Deeproot Depths] Human Bone Shard 12037420")] - LDDeeprootDepthsHumanBoneShard = 12037420, + [Annotation(Name = "[LD - Deeproot Depths] Human Bone Shard 12037420")] + LDDeeprootDepthsHumanBoneShard = 12037420, - [Annotation(Name = "[LD - Deeproot Depths] Golden Rune [8] 12037430")] - LDDeeprootDepthsGoldenRune8_______ = 12037430, + [Annotation(Name = "[LD - Deeproot Depths] Golden Rune [8] 12037430")] + LDDeeprootDepthsGoldenRune8_______ = 12037430, - [Annotation(Name = "[LD - Deeproot Depths] Golden Rune [9] 12037440")] - LDDeeprootDepthsGoldenRune9 = 12037440, + [Annotation(Name = "[LD - Deeproot Depths] Golden Rune [9] 12037440")] + LDDeeprootDepthsGoldenRune9 = 12037440, - [Annotation(Name = "[LD - Deeproot Depths] Smithing Stone [4] 12037450")] - LDDeeprootDepthsSmithingStone4___ = 12037450, + [Annotation(Name = "[LD - Deeproot Depths] Smithing Stone [4] 12037450")] + LDDeeprootDepthsSmithingStone4___ = 12037450, - [Annotation(Name = "[LD - Deeproot Depths] Nascent Butterfly 12037460")] - LDDeeprootDepthsNascentButterfly_ = 12037460, + [Annotation(Name = "[LD - Deeproot Depths] Nascent Butterfly 12037460")] + LDDeeprootDepthsNascentButterfly_ = 12037460, - [Annotation(Name = "[LD - Deeproot Depths] Golden Rune [8] 12037470")] - LDDeeprootDepthsGoldenRune8________ = 12037470, + [Annotation(Name = "[LD - Deeproot Depths] Golden Rune [8] 12037470")] + LDDeeprootDepthsGoldenRune8________ = 12037470, - [Annotation(Name = "[LD - Deeproot Depths] Smithing Stone [5] 12037480")] - LDDeeprootDepthsSmithingStone5 = 12037480, + [Annotation(Name = "[LD - Deeproot Depths] Smithing Stone [5] 12037480")] + LDDeeprootDepthsSmithingStone5 = 12037480, - [Annotation(Name = "[LD - Deeproot Depths] Smithing Stone [5] 12037490")] - LDDeeprootDepthsSmithingStone5_ = 12037490, + [Annotation(Name = "[LD - Deeproot Depths] Smithing Stone [5] 12037490")] + LDDeeprootDepthsSmithingStone5_ = 12037490, - [Annotation(Name = "[LD - Deeproot Depths] Smithing Stone [6] 12037500")] - LDDeeprootDepthsSmithingStone6____ = 12037500, + [Annotation(Name = "[LD - Deeproot Depths] Smithing Stone [6] 12037500")] + LDDeeprootDepthsSmithingStone6____ = 12037500, - [Annotation(Name = "[LD - Deeproot Depths] Rune Arc 12037510")] - LDDeeprootDepthsRuneArc = 12037510, + [Annotation(Name = "[LD - Deeproot Depths] Rune Arc 12037510")] + LDDeeprootDepthsRuneArc = 12037510, - [Annotation(Name = "[LD - Deeproot Depths] Mausoleum Soldier Ashes 12037520")] - LDDeeprootDepthsMausoleumSoldierAshes = 12037520, + [Annotation(Name = "[LD - Deeproot Depths] Mausoleum Soldier Ashes 12037520")] + LDDeeprootDepthsMausoleumSoldierAshes = 12037520, - [Annotation(Name = "[LD - Deeproot Depths] Somber Smithing Stone [7] 12037530")] - LDDeeprootDepthsSomberSmithingStone7____ = 12037530, + [Annotation(Name = "[LD - Deeproot Depths] Somber Smithing Stone [7] 12037530")] + LDDeeprootDepthsSomberSmithingStone7____ = 12037530, - [Annotation(Name = "[LD - Deeproot Depths] Golden Rune [8] 12037540")] - LDDeeprootDepthsGoldenRune8_________ = 12037540, + [Annotation(Name = "[LD - Deeproot Depths] Golden Rune [8] 12037540")] + LDDeeprootDepthsGoldenRune8_________ = 12037540, - [Annotation(Name = "[LD - Deeproot Depths] Somber Smithing Stone [6] 12037550")] - LDDeeprootDepthsSomberSmithingStone6_ = 12037550, + [Annotation(Name = "[LD - Deeproot Depths] Somber Smithing Stone [6] 12037550")] + LDDeeprootDepthsSomberSmithingStone6_ = 12037550, - [Annotation(Name = "[LD - Deeproot Depths] Golden Rune [1] 12037560")] - LDDeeprootDepthsGoldenRune1_ = 12037560, + [Annotation(Name = "[LD - Deeproot Depths] Golden Rune [1] 12037560")] + LDDeeprootDepthsGoldenRune1_ = 12037560, - [Annotation(Name = "[LD - Deeproot Depths] Golden Rune [1] 12037570")] - LDDeeprootDepthsGoldenRune1__ = 12037570, + [Annotation(Name = "[LD - Deeproot Depths] Golden Rune [1] 12037570")] + LDDeeprootDepthsGoldenRune1__ = 12037570, - [Annotation(Name = "[LD - Deeproot Depths] Golden Rune [1] 12037580")] - LDDeeprootDepthsGoldenRune1___ = 12037580, + [Annotation(Name = "[LD - Deeproot Depths] Golden Rune [1] 12037580")] + LDDeeprootDepthsGoldenRune1___ = 12037580, - [Annotation(Name = "[LD - Deeproot Depths] Golden Rune [1] 12037590")] - LDDeeprootDepthsGoldenRune1____ = 12037590, + [Annotation(Name = "[LD - Deeproot Depths] Golden Rune [1] 12037590")] + LDDeeprootDepthsGoldenRune1____ = 12037590, - [Annotation(Name = "[LD - Deeproot Depths] Lightning Bastard Sword 12037900")] - LDDeeprootDepthsLightningBastardSword = 12037900, + [Annotation(Name = "[LD - Deeproot Depths] Lightning Bastard Sword 12037900")] + LDDeeprootDepthsLightningBastardSword = 12037900, - [Annotation(Name = "[LD - Deeproot Depths] Golden Rune [1] 12037910")] - LDDeeprootDepthsGoldenRune1_____ = 12037910, + [Annotation(Name = "[LD - Deeproot Depths] Golden Rune [1] 12037910")] + LDDeeprootDepthsGoldenRune1_____ = 12037910, - [Annotation(Name = "[LD - Deeproot Depths] Siluria's Tree 12037950")] - LDDeeprootDepthsSiluriasTree = 12037950, + [Annotation(Name = "[LD - Deeproot Depths] Siluria's Tree 12037950")] + LDDeeprootDepthsSiluriasTree = 12037950, - [Annotation(Name = "[LD - Deeproot Depths] Staff of the Avatar 12037960")] - LDDeeprootDepthsStaffOfTheAvatar = 12037960, + [Annotation(Name = "[LD - Deeproot Depths] Staff of the Avatar 12037960")] + LDDeeprootDepthsStaffOfTheAvatar = 12037960, - [Annotation(Name = "[LD - Deeproot Depths] Numen's Rune 12037800")] - LDDeeprootDepthsNumensRune = 12037800, + [Annotation(Name = "[LD - Deeproot Depths] Numen's Rune 12037800")] + LDDeeprootDepthsNumensRune = 12037800, - [Annotation(Name = "[LD - Deeproot Depths] Numen's Rune 12037810")] - LDDeeprootDepthsNumensRune_ = 12037810, + [Annotation(Name = "[LD - Deeproot Depths] Numen's Rune 12037810")] + LDDeeprootDepthsNumensRune_ = 12037810, - [Annotation(Name = "[LD - Deeproot Depths] Numen's Rune 12037820")] - LDDeeprootDepthsNumensRune__ = 12037820, + [Annotation(Name = "[LD - Deeproot Depths] Numen's Rune 12037820")] + LDDeeprootDepthsNumensRune__ = 12037820, - [Annotation(Name = "[LD - Deeproot Depths] Numen's Rune 12037830")] - LDDeeprootDepthsNumensRune___ = 12037830, + [Annotation(Name = "[LD - Deeproot Depths] Numen's Rune 12037830")] + LDDeeprootDepthsNumensRune___ = 12037830, - [Annotation(Name = "[LD - Deeproot Depths] Numen's Rune 12037840")] - LDDeeprootDepthsNumensRune____ = 12037840, + [Annotation(Name = "[LD - Deeproot Depths] Numen's Rune 12037840")] + LDDeeprootDepthsNumensRune____ = 12037840, - [Annotation(Name = "[LD - Deeproot Depths] Numen's Rune 12037850")] - LDDeeprootDepthsNumensRune_____ = 12037850, + [Annotation(Name = "[LD - Deeproot Depths] Numen's Rune 12037850")] + LDDeeprootDepthsNumensRune_____ = 12037850, - [Annotation(Name = "[LD - Mohgwyn] Map: Mohgwyn Palace 62062")] - LDMohgwynMapMohgwynPalace = 62062, + [Annotation(Name = "[LD - Mohgwyn] Map: Mohgwyn Palace 62062")] + LDMohgwynMapMohgwynPalace = 62062, - [Annotation(Name = "[LD - Mohgwyn] Golden Seed 12057010")] - LDMohgwynGoldenSeed = 12057010, + [Annotation(Name = "[LD - Mohgwyn] Golden Seed 12057010")] + LDMohgwynGoldenSeed = 12057010, - [Annotation(Name = "[LD - Mohgwyn] Golden Rune [11] 12057020")] - LDMohgwynGoldenRune11 = 12057020, + [Annotation(Name = "[LD - Mohgwyn] Golden Rune [11] 12057020")] + LDMohgwynGoldenRune11 = 12057020, - [Annotation(Name = "[LD - Mohgwyn] Smithing Stone [6] 12057030")] - LDMohgwynSmithingStone6 = 12057030, + [Annotation(Name = "[LD - Mohgwyn] Smithing Stone [6] 12057030")] + LDMohgwynSmithingStone6 = 12057030, - [Annotation(Name = "[LD - Mohgwyn] Bloodrose 12057040")] - LDMohgwynBloodrose = 12057040, + [Annotation(Name = "[LD - Mohgwyn] Bloodrose 12057040")] + LDMohgwynBloodrose = 12057040, - [Annotation(Name = "[LD - Mohgwyn] Nomadic Warrior's Cookbook [24] 67910")] - LDMohgwynNomadicWarriorsCookbook24 = 67910, + [Annotation(Name = "[LD - Mohgwyn] Nomadic Warrior's Cookbook [24] 67910")] + LDMohgwynNomadicWarriorsCookbook24 = 67910, - [Annotation(Name = "[LD - Mohgwyn] Hero's Rune [4] 12057060")] - LDMohgwynHerosRune4 = 12057060, + [Annotation(Name = "[LD - Mohgwyn] Hero's Rune [4] 12057060")] + LDMohgwynHerosRune4 = 12057060, - [Annotation(Name = "[LD - Mohgwyn] Smithing Stone [8] 12057070")] - LDMohgwynSmithingStone8 = 12057070, + [Annotation(Name = "[LD - Mohgwyn] Smithing Stone [8] 12057070")] + LDMohgwynSmithingStone8 = 12057070, - [Annotation(Name = "[LD - Mohgwyn] Hero's Rune [3] 12057080")] - LDMohgwynHerosRune3 = 12057080, + [Annotation(Name = "[LD - Mohgwyn] Hero's Rune [3] 12057080")] + LDMohgwynHerosRune3 = 12057080, - [Annotation(Name = "[LD - Mohgwyn] Blood-Tainted Excrement 12057090")] - LDMohgwynBloodTaintedExcrement = 12057090, + [Annotation(Name = "[LD - Mohgwyn] Blood-Tainted Excrement 12057090")] + LDMohgwynBloodTaintedExcrement = 12057090, - [Annotation(Name = "[LD - Mohgwyn] Somber Smithing Stone [9] 12057100")] - LDMohgwynSomberSmithingStone9 = 12057100, + [Annotation(Name = "[LD - Mohgwyn] Somber Smithing Stone [9] 12057100")] + LDMohgwynSomberSmithingStone9 = 12057100, - [Annotation(Name = "[LD - Mohgwyn] [Incantation] Swarm of Flies 12057110")] - LDMohgwynIncantationSwarmOfFlies = 12057110, + [Annotation(Name = "[LD - Mohgwyn] [Incantation] Swarm of Flies 12057110")] + LDMohgwynIncantationSwarmOfFlies = 12057110, - [Annotation(Name = "[LD - Mohgwyn] Drawstring Blood Grease 12057120")] - LDMohgwynDrawstringBloodGrease = 12057120, + [Annotation(Name = "[LD - Mohgwyn] Drawstring Blood Grease 12057120")] + LDMohgwynDrawstringBloodGrease = 12057120, - [Annotation(Name = "[LD - Mohgwyn] Blood-Tainted Excrement 12057130")] - LDMohgwynBloodTaintedExcrement_ = 12057130, + [Annotation(Name = "[LD - Mohgwyn] Blood-Tainted Excrement 12057130")] + LDMohgwynBloodTaintedExcrement_ = 12057130, - [Annotation(Name = "[LD - Mohgwyn] Golden Rune [12] 12057140")] - LDMohgwynGoldenRune12 = 12057140, + [Annotation(Name = "[LD - Mohgwyn] Golden Rune [12] 12057140")] + LDMohgwynGoldenRune12 = 12057140, - [Annotation(Name = "[LD - Mohgwyn] Smithing Stone [7] 12057150")] - LDMohgwynSmithingStone7 = 12057150, + [Annotation(Name = "[LD - Mohgwyn] Smithing Stone [7] 12057150")] + LDMohgwynSmithingStone7 = 12057150, - [Annotation(Name = "[LD - Mohgwyn] Golden Rune [12] 12057160")] - LDMohgwynGoldenRune12_ = 12057160, + [Annotation(Name = "[LD - Mohgwyn] Golden Rune [12] 12057160")] + LDMohgwynGoldenRune12_ = 12057160, - [Annotation(Name = "[LD - Mohgwyn] Sacramental Bud 12057170")] - LDMohgwynSacramentalBud = 12057170, + [Annotation(Name = "[LD - Mohgwyn] Sacramental Bud 12057170")] + LDMohgwynSacramentalBud = 12057170, - [Annotation(Name = "[LD - Mohgwyn] Nascent Butterfly 12057180")] - LDMohgwynNascentButterfly = 12057180, + [Annotation(Name = "[LD - Mohgwyn] Nascent Butterfly 12057180")] + LDMohgwynNascentButterfly = 12057180, - [Annotation(Name = "[LD - Mohgwyn] Rune Arc 12057190")] - LDMohgwynRuneArc = 12057190, + [Annotation(Name = "[LD - Mohgwyn] Rune Arc 12057190")] + LDMohgwynRuneArc = 12057190, - [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057200")] - LDMohgwynGoldenRune1 = 12057200, + [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057200")] + LDMohgwynGoldenRune1 = 12057200, - [Annotation(Name = "[LD - Mohgwyn] Golden Rune [13] 12057210")] - LDMohgwynGoldenRune13 = 12057210, + [Annotation(Name = "[LD - Mohgwyn] Golden Rune [13] 12057210")] + LDMohgwynGoldenRune13 = 12057210, - [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057220")] - LDMohgwynGoldenRune1_ = 12057220, + [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057220")] + LDMohgwynGoldenRune1_ = 12057220, - [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057230")] - LDMohgwynGoldenRune1__ = 12057230, + [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057230")] + LDMohgwynGoldenRune1__ = 12057230, - [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057240")] - LDMohgwynGoldenRune1___ = 12057240, + [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057240")] + LDMohgwynGoldenRune1___ = 12057240, - [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057250")] - LDMohgwynGoldenRune1____ = 12057250, + [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057250")] + LDMohgwynGoldenRune1____ = 12057250, - [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057260")] - LDMohgwynGoldenRune1_____ = 12057260, + [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057260")] + LDMohgwynGoldenRune1_____ = 12057260, - [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057270")] - LDMohgwynGoldenRune1______ = 12057270, + [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057270")] + LDMohgwynGoldenRune1______ = 12057270, - [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057280")] - LDMohgwynGoldenRune1_______ = 12057280, + [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057280")] + LDMohgwynGoldenRune1_______ = 12057280, - [Annotation(Name = "[LD - Mohgwyn] Bloodrose 12057290")] - LDMohgwynBloodrose_ = 12057290, + [Annotation(Name = "[LD - Mohgwyn] Bloodrose 12057290")] + LDMohgwynBloodrose_ = 12057290, - [Annotation(Name = "[LD - Mohgwyn] Holy Grease 12057300")] - LDMohgwynHolyGrease = 12057300, + [Annotation(Name = "[LD - Mohgwyn] Holy Grease 12057300")] + LDMohgwynHolyGrease = 12057300, - [Annotation(Name = "[LD - Mohgwyn] Stonesword Key 12057310")] - LDMohgwynStoneswordKey = 12057310, + [Annotation(Name = "[LD - Mohgwyn] Stonesword Key 12057310")] + LDMohgwynStoneswordKey = 12057310, - [Annotation(Name = "[LD - Mohgwyn] Smithing Stone [6] 12057320")] - LDMohgwynSmithingStone6_ = 12057320, + [Annotation(Name = "[LD - Mohgwyn] Smithing Stone [6] 12057320")] + LDMohgwynSmithingStone6_ = 12057320, - [Annotation(Name = "[LD - Mohgwyn] Arteria Leaf 12057330")] - LDMohgwynArteriaLeaf = 12057330, + [Annotation(Name = "[LD - Mohgwyn] Arteria Leaf 12057330")] + LDMohgwynArteriaLeaf = 12057330, - [Annotation(Name = "[LD - Mohgwyn] Golden Rune [13] 12057340")] - LDMohgwynGoldenRune13_ = 12057340, + [Annotation(Name = "[LD - Mohgwyn] Golden Rune [13] 12057340")] + LDMohgwynGoldenRune13_ = 12057340, - [Annotation(Name = "[LD - Mohgwyn] Clarifying Boluses 12057350")] - LDMohgwynClarifyingBoluses = 12057350, + [Annotation(Name = "[LD - Mohgwyn] Clarifying Boluses 12057350")] + LDMohgwynClarifyingBoluses = 12057350, - [Annotation(Name = "[LD - Mohgwyn] Rot Grease 12057360")] - LDMohgwynRotGrease = 12057360, + [Annotation(Name = "[LD - Mohgwyn] Rot Grease 12057360")] + LDMohgwynRotGrease = 12057360, - [Annotation(Name = "[LD - Mohgwyn] Haligdrake Talisman +2 12057370")] - LDMohgwynHaligdrakeTalisman2 = 12057370, + [Annotation(Name = "[LD - Mohgwyn] Haligdrake Talisman +2 12057370")] + LDMohgwynHaligdrakeTalisman2 = 12057370, - [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057380")] - LDMohgwynGoldenRune1________ = 12057380, + [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057380")] + LDMohgwynGoldenRune1________ = 12057380, - [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057390")] - LDMohgwynGoldenRune1_________ = 12057390, + [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057390")] + LDMohgwynGoldenRune1_________ = 12057390, - [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057400")] - LDMohgwynGoldenRune1__________ = 12057400, + [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057400")] + LDMohgwynGoldenRune1__________ = 12057400, - [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057410")] - LDMohgwynGoldenRune1___________ = 12057410, + [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057410")] + LDMohgwynGoldenRune1___________ = 12057410, - [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057420")] - LDMohgwynGoldenRune1____________ = 12057420, + [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057420")] + LDMohgwynGoldenRune1____________ = 12057420, - [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057430")] - LDMohgwynGoldenRune1_____________ = 12057430, + [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057430")] + LDMohgwynGoldenRune1_____________ = 12057430, - [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057440")] - LDMohgwynGoldenRune1______________ = 12057440, + [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057440")] + LDMohgwynGoldenRune1______________ = 12057440, - [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057450")] - LDMohgwynGoldenRune1_______________ = 12057450, + [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057450")] + LDMohgwynGoldenRune1_______________ = 12057450, - [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057460")] - LDMohgwynGoldenRune1________________ = 12057460, + [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057460")] + LDMohgwynGoldenRune1________________ = 12057460, - [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057470")] - LDMohgwynGoldenRune1_________________ = 12057470, + [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057470")] + LDMohgwynGoldenRune1_________________ = 12057470, - [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057480")] - LDMohgwynGoldenRune1__________________ = 12057480, + [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057480")] + LDMohgwynGoldenRune1__________________ = 12057480, - [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057490")] - LDMohgwynGoldenRune1___________________ = 12057490, + [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057490")] + LDMohgwynGoldenRune1___________________ = 12057490, - [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057500")] - LDMohgwynGoldenRune1____________________ = 12057500, + [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057500")] + LDMohgwynGoldenRune1____________________ = 12057500, - [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057510")] - LDMohgwynGoldenRune1_____________________ = 12057510, + [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057510")] + LDMohgwynGoldenRune1_____________________ = 12057510, - [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057520")] - LDMohgwynGoldenRune1______________________ = 12057520, + [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057520")] + LDMohgwynGoldenRune1______________________ = 12057520, - [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057530")] - LDMohgwynGoldenRune1_______________________ = 12057530, + [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057530")] + LDMohgwynGoldenRune1_______________________ = 12057530, - [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057540")] - LDMohgwynGoldenRune1________________________ = 12057540, + [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057540")] + LDMohgwynGoldenRune1________________________ = 12057540, - [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057550")] - LDMohgwynGoldenRune1_________________________ = 12057550, + [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057550")] + LDMohgwynGoldenRune1_________________________ = 12057550, - [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057560")] - LDMohgwynGoldenRune1__________________________ = 12057560, + [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057560")] + LDMohgwynGoldenRune1__________________________ = 12057560, - [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057570")] - LDMohgwynGoldenRune1___________________________ = 12057570, + [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057570")] + LDMohgwynGoldenRune1___________________________ = 12057570, - [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057580")] - LDMohgwynGoldenRune1____________________________ = 12057580, + [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057580")] + LDMohgwynGoldenRune1____________________________ = 12057580, - [Annotation(Name = "[LD - Mohgwyn] Smithing Stone [7] 12057590")] - LDMohgwynSmithingStone7_ = 12057590, + [Annotation(Name = "[LD - Mohgwyn] Smithing Stone [7] 12057590")] + LDMohgwynSmithingStone7_ = 12057590, - [Annotation(Name = "[LD - Mohgwyn] Stanching Boluses 12057600")] - LDMohgwynStanchingBoluses = 12057600, + [Annotation(Name = "[LD - Mohgwyn] Stanching Boluses 12057600")] + LDMohgwynStanchingBoluses = 12057600, - [Annotation(Name = "[LD - Mohgwyn] Stonesword Key 12057610")] - LDMohgwynStoneswordKey_ = 12057610, + [Annotation(Name = "[LD - Mohgwyn] Stonesword Key 12057610")] + LDMohgwynStoneswordKey_ = 12057610, - [Annotation(Name = "[LD - Mohgwyn] Bloodrose 12057620")] - LDMohgwynBloodrose__ = 12057620, + [Annotation(Name = "[LD - Mohgwyn] Bloodrose 12057620")] + LDMohgwynBloodrose__ = 12057620, - [Annotation(Name = "[LD - Mohgwyn] Fire Longsword 12057630")] - LDMohgwynFireLongsword = 12057630, + [Annotation(Name = "[LD - Mohgwyn] Fire Longsword 12057630")] + LDMohgwynFireLongsword = 12057630, - [Annotation(Name = "[LD - Mohgwyn] Smithing Stone [8] 12057640")] - LDMohgwynSmithingStone8_ = 12057640, + [Annotation(Name = "[LD - Mohgwyn] Smithing Stone [8] 12057640")] + LDMohgwynSmithingStone8_ = 12057640, - [Annotation(Name = "[LD - Mohgwyn] Numen's Rune 12057650")] - LDMohgwynNumensRune = 12057650, + [Annotation(Name = "[LD - Mohgwyn] Numen's Rune 12057650")] + LDMohgwynNumensRune = 12057650, - [Annotation(Name = "[LD - Mohgwyn] 12057660")] - LDMohgwyn = 12057660, + [Annotation(Name = "[LD - Mohgwyn] 12057660")] + LDMohgwyn = 12057660, - [Annotation(Name = "[LD - Mohgwyn] Golden Rune [13] 12057670")] - LDMohgwynGoldenRune13__ = 12057670, + [Annotation(Name = "[LD - Mohgwyn] Golden Rune [13] 12057670")] + LDMohgwynGoldenRune13__ = 12057670, - [Annotation(Name = "[LD - Mohgwyn] Golden Rune [11] 12057680")] - LDMohgwynGoldenRune11_ = 12057680, + [Annotation(Name = "[LD - Mohgwyn] Golden Rune [11] 12057680")] + LDMohgwynGoldenRune11_ = 12057680, - [Annotation(Name = "[LD - Mohgwyn] Lord's Rune 12057690")] - LDMohgwynLordsRune = 12057690, + [Annotation(Name = "[LD - Mohgwyn] Lord's Rune 12057690")] + LDMohgwynLordsRune = 12057690, - [Annotation(Name = "[LD - Mohgwyn] Smithing Stone [6] 12057700")] - LDMohgwynSmithingStone6__ = 12057700, + [Annotation(Name = "[LD - Mohgwyn] Smithing Stone [6] 12057700")] + LDMohgwynSmithingStone6__ = 12057700, - [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057710")] - LDMohgwynGoldenRune1_____________________________ = 12057710, + [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057710")] + LDMohgwynGoldenRune1_____________________________ = 12057710, - [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057720")] - LDMohgwynGoldenRune1______________________________ = 12057720, + [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057720")] + LDMohgwynGoldenRune1______________________________ = 12057720, - [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057730")] - LDMohgwynGoldenRune1_______________________________ = 12057730, + [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057730")] + LDMohgwynGoldenRune1_______________________________ = 12057730, - [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057740")] - LDMohgwynGoldenRune1________________________________ = 12057740, + [Annotation(Name = "[LD - Mohgwyn] Golden Rune [1] 12057740")] + LDMohgwynGoldenRune1________________________________ = 12057740, - [Annotation(Name = "[LD - Mohgwyn] Somber Ancient Dragon Smithing Stone 12057900")] - LDMohgwynSomberAncientDragonSmithingStone = 12057900, + [Annotation(Name = "[LD - Mohgwyn] Somber Ancient Dragon Smithing Stone 12057900")] + LDMohgwynSomberAncientDragonSmithingStone = 12057900, - [Annotation(Name = "[LD - Mohgwyn] White Mask 12057950")] - LDMohgwynWhiteMask = 12057950, + [Annotation(Name = "[LD - Mohgwyn] White Mask 12057950")] + LDMohgwynWhiteMask = 12057950, - [Annotation(Name = "[LD - Nokron / Siofra] Furlcalling Finger Remedy 12077000")] - LDNokronSiofraFurlcallingFingerRemedy_ = 12077000, + [Annotation(Name = "[LD - Nokron / Siofra] Furlcalling Finger Remedy 12077000")] + LDNokronSiofraFurlcallingFingerRemedy_ = 12077000, - [Annotation(Name = "[LD - Nokron / Siofra] Silver Firefly 12077010")] - LDNokronSiofraSilverFirefly = 12077010, + [Annotation(Name = "[LD - Nokron / Siofra] Silver Firefly 12077010")] + LDNokronSiofraSilverFirefly = 12077010, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [3] 12077020")] - LDNokronSiofraGoldenRune3___ = 12077020, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [3] 12077020")] + LDNokronSiofraGoldenRune3___ = 12077020, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [2] 12077030")] - LDNokronSiofraGoldenRune2_ = 12077030, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [2] 12077030")] + LDNokronSiofraGoldenRune2_ = 12077030, - [Annotation(Name = "[LD - Nokron / Siofra] Smithing Stone [4] 12077040")] - LDNokronSiofraSmithingStone4___ = 12077040, + [Annotation(Name = "[LD - Nokron / Siofra] Smithing Stone [4] 12077040")] + LDNokronSiofraSmithingStone4___ = 12077040, - [Annotation(Name = "[LD - Nokron / Siofra] Smithing Stone [2] 12077050")] - LDNokronSiofraSmithingStone2___ = 12077050, + [Annotation(Name = "[LD - Nokron / Siofra] Smithing Stone [2] 12077050")] + LDNokronSiofraSmithingStone2___ = 12077050, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [2] 12077060")] - LDNokronSiofraGoldenRune2__ = 12077060, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [2] 12077060")] + LDNokronSiofraGoldenRune2__ = 12077060, - [Annotation(Name = "[LD - Nokron / Siofra] Immunizing Cured Meat 12077070")] - LDNokronSiofraImmunizingCuredMeat = 12077070, + [Annotation(Name = "[LD - Nokron / Siofra] Immunizing Cured Meat 12077070")] + LDNokronSiofraImmunizingCuredMeat = 12077070, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [2] 12077080")] - LDNokronSiofraGoldenRune2___ = 12077080, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [2] 12077080")] + LDNokronSiofraGoldenRune2___ = 12077080, - [Annotation(Name = "[LD - Nokron / Siofra] Rainbow Stone 12077090")] - LDNokronSiofraRainbowStone = 12077090, + [Annotation(Name = "[LD - Nokron / Siofra] Rainbow Stone 12077090")] + LDNokronSiofraRainbowStone = 12077090, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [4] 12077100")] - LDNokronSiofraGoldenRune4________ = 12077100, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [4] 12077100")] + LDNokronSiofraGoldenRune4________ = 12077100, - [Annotation(Name = "[LD - Nokron / Siofra] Budding Horn 12077110")] - LDNokronSiofraBuddingHorn = 12077110, + [Annotation(Name = "[LD - Nokron / Siofra] Budding Horn 12077110")] + LDNokronSiofraBuddingHorn = 12077110, - [Annotation(Name = "[LD - Nokron / Siofra] Throwing Dagger 12077120")] - LDNokronSiofraThrowingDagger = 12077120, + [Annotation(Name = "[LD - Nokron / Siofra] Throwing Dagger 12077120")] + LDNokronSiofraThrowingDagger = 12077120, - [Annotation(Name = "[LD - Nokron / Siofra] Smithing Stone [3] 12077130")] - LDNokronSiofraSmithingStone3___ = 12077130, + [Annotation(Name = "[LD - Nokron / Siofra] Smithing Stone [3] 12077130")] + LDNokronSiofraSmithingStone3___ = 12077130, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [4] 12077140")] - LDNokronSiofraGoldenRune4_________ = 12077140, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [4] 12077140")] + LDNokronSiofraGoldenRune4_________ = 12077140, - [Annotation(Name = "[LD - Nokron / Siofra] Smithing Stone [4] 12077150")] - LDNokronSiofraSmithingStone4____ = 12077150, + [Annotation(Name = "[LD - Nokron / Siofra] Smithing Stone [4] 12077150")] + LDNokronSiofraSmithingStone4____ = 12077150, - [Annotation(Name = "[LD - Nokron / Siofra] Soap 12077160")] - LDNokronSiofraSoap = 12077160, + [Annotation(Name = "[LD - Nokron / Siofra] Soap 12077160")] + LDNokronSiofraSoap = 12077160, - [Annotation(Name = "[LD - Nokron / Siofra] Preserving Boluses 12077170")] - LDNokronSiofraPreservingBoluses = 12077170, + [Annotation(Name = "[LD - Nokron / Siofra] Preserving Boluses 12077170")] + LDNokronSiofraPreservingBoluses = 12077170, - [Annotation(Name = "[LD - Nokron / Siofra] Silver-Pickled Fowl Foot 12077180")] - LDNokronSiofraSilverPickledFowlFoot = 12077180, + [Annotation(Name = "[LD - Nokron / Siofra] Silver-Pickled Fowl Foot 12077180")] + LDNokronSiofraSilverPickledFowlFoot = 12077180, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [1] 12077190")] - LDNokronSiofraGoldenRune1___ = 12077190, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [1] 12077190")] + LDNokronSiofraGoldenRune1___ = 12077190, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [1] 12077200")] - LDNokronSiofraGoldenRune1____ = 12077200, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [1] 12077200")] + LDNokronSiofraGoldenRune1____ = 12077200, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [1] 12077210")] - LDNokronSiofraGoldenRune1_____ = 12077210, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [1] 12077210")] + LDNokronSiofraGoldenRune1_____ = 12077210, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [1] 12077220")] - LDNokronSiofraGoldenRune1______ = 12077220, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [1] 12077220")] + LDNokronSiofraGoldenRune1______ = 12077220, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [1] 12077230")] - LDNokronSiofraGoldenRune1_______ = 12077230, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [1] 12077230")] + LDNokronSiofraGoldenRune1_______ = 12077230, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [1] 12077240")] - LDNokronSiofraGoldenRune1________ = 12077240, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [1] 12077240")] + LDNokronSiofraGoldenRune1________ = 12077240, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [1] 12077250")] - LDNokronSiofraGoldenRune1_________ = 12077250, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [1] 12077250")] + LDNokronSiofraGoldenRune1_________ = 12077250, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [1] 12077260")] - LDNokronSiofraGoldenRune1__________ = 12077260, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [1] 12077260")] + LDNokronSiofraGoldenRune1__________ = 12077260, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [1] 12077270")] - LDNokronSiofraGoldenRune1___________ = 12077270, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [1] 12077270")] + LDNokronSiofraGoldenRune1___________ = 12077270, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [1] 12077280")] - LDNokronSiofraGoldenRune1____________ = 12077280, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [1] 12077280")] + LDNokronSiofraGoldenRune1____________ = 12077280, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [1] 12077290")] - LDNokronSiofraGoldenRune1_____________ = 12077290, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [1] 12077290")] + LDNokronSiofraGoldenRune1_____________ = 12077290, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [5] 12077300")] - LDNokronSiofraGoldenRune5_ = 12077300, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [5] 12077300")] + LDNokronSiofraGoldenRune5_ = 12077300, - [Annotation(Name = "[LD - Nokron / Siofra] Soporific Grease 12077310")] - LDNokronSiofraSoporificGrease = 12077310, + [Annotation(Name = "[LD - Nokron / Siofra] Soporific Grease 12077310")] + LDNokronSiofraSoporificGrease = 12077310, - [Annotation(Name = "[LD - Nokron / Siofra] Burred Bolt 12077320")] - LDNokronSiofraBurredBolt = 12077320, + [Annotation(Name = "[LD - Nokron / Siofra] Burred Bolt 12077320")] + LDNokronSiofraBurredBolt = 12077320, - [Annotation(Name = "[LD - Nokron / Siofra] Nascent Butterfly 12077330")] - LDNokronSiofraNascentButterfly_ = 12077330, + [Annotation(Name = "[LD - Nokron / Siofra] Nascent Butterfly 12077330")] + LDNokronSiofraNascentButterfly_ = 12077330, - [Annotation(Name = "[LD - Nokron / Siofra] Rune Arc 12077340")] - LDNokronSiofraRuneArc___ = 12077340, + [Annotation(Name = "[LD - Nokron / Siofra] Rune Arc 12077340")] + LDNokronSiofraRuneArc___ = 12077340, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [6] 12077350")] - LDNokronSiofraGoldenRune6__ = 12077350, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [6] 12077350")] + LDNokronSiofraGoldenRune6__ = 12077350, - [Annotation(Name = "[LD - Nokron / Siofra] Smithing Stone [5] 12077360")] - LDNokronSiofraSmithingStone5____ = 12077360, + [Annotation(Name = "[LD - Nokron / Siofra] Smithing Stone [5] 12077360")] + LDNokronSiofraSmithingStone5____ = 12077360, - [Annotation(Name = "[LD - Nokron / Siofra] Furlcalling Finger Remedy 12077370")] - LDNokronSiofraFurlcallingFingerRemedy__ = 12077370, + [Annotation(Name = "[LD - Nokron / Siofra] Furlcalling Finger Remedy 12077370")] + LDNokronSiofraFurlcallingFingerRemedy__ = 12077370, - [Annotation(Name = "[LD - Nokron / Siofra] Clarifying White Cured Meat 12077380")] - LDNokronSiofraClarifyingWhiteCuredMeat = 12077380, + [Annotation(Name = "[LD - Nokron / Siofra] Clarifying White Cured Meat 12077380")] + LDNokronSiofraClarifyingWhiteCuredMeat = 12077380, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [6] 12077390")] - LDNokronSiofraGoldenRune6___ = 12077390, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [6] 12077390")] + LDNokronSiofraGoldenRune6___ = 12077390, - [Annotation(Name = "[LD - Nokron / Siofra] Ghost-Glovewort Picker's Bell Bearing [1] 12077400")] - LDNokronSiofraGhostGlovewortPickersBellBearing1 = 12077400, + [Annotation(Name = "[LD - Nokron / Siofra] Ghost-Glovewort Picker's Bell Bearing [1] 12077400")] + LDNokronSiofraGhostGlovewortPickersBellBearing1 = 12077400, - [Annotation(Name = "[LD - Nokron / Siofra] Smithing Stone [3] 12077410")] - LDNokronSiofraSmithingStone3____ = 12077410, + [Annotation(Name = "[LD - Nokron / Siofra] Smithing Stone [3] 12077410")] + LDNokronSiofraSmithingStone3____ = 12077410, - [Annotation(Name = "[LD - Nokron / Siofra] Somber Smithing Stone [4] 12077420")] - LDNokronSiofraSomberSmithingStone4 = 12077420, + [Annotation(Name = "[LD - Nokron / Siofra] Somber Smithing Stone [4] 12077420")] + LDNokronSiofraSomberSmithingStone4 = 12077420, - [Annotation(Name = "[LD - Nokron / Siofra] Smithing Stone [5] 12077430")] - LDNokronSiofraSmithingStone5_____ = 12077430, + [Annotation(Name = "[LD - Nokron / Siofra] Smithing Stone [5] 12077430")] + LDNokronSiofraSmithingStone5_____ = 12077430, - [Annotation(Name = "[LD - Nokron / Siofra] Greatshield Soldier Ashes 12077440")] - LDNokronSiofraGreatshieldSoldierAshes = 12077440, + [Annotation(Name = "[LD - Nokron / Siofra] Greatshield Soldier Ashes 12077440")] + LDNokronSiofraGreatshieldSoldierAshes = 12077440, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [7] 12077450")] - LDNokronSiofraGoldenRune7_____ = 12077450, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [7] 12077450")] + LDNokronSiofraGoldenRune7_____ = 12077450, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [7] 12077460")] - LDNokronSiofraGoldenRune7______ = 12077460, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [7] 12077460")] + LDNokronSiofraGoldenRune7______ = 12077460, - [Annotation(Name = "[LD - Nokron / Siofra] Rune Arc 12077470")] - LDNokronSiofraRuneArc____ = 12077470, + [Annotation(Name = "[LD - Nokron / Siofra] Rune Arc 12077470")] + LDNokronSiofraRuneArc____ = 12077470, - [Annotation(Name = "[LD - Nokron / Siofra] Larval Tear 12077480")] - LDNokronSiofraLarvalTear = 12077480, + [Annotation(Name = "[LD - Nokron / Siofra] Larval Tear 12077480")] + LDNokronSiofraLarvalTear = 12077480, - [Annotation(Name = "[LD - Nokron / Siofra] Larval Tear 12077490")] - LDNokronSiofraLarvalTear_ = 12077490, + [Annotation(Name = "[LD - Nokron / Siofra] Larval Tear 12077490")] + LDNokronSiofraLarvalTear_ = 12077490, - [Annotation(Name = "[LD - Nokron / Siofra] Ghostflame Torch 12077500")] - LDNokronSiofraGhostflameTorch = 12077500, + [Annotation(Name = "[LD - Nokron / Siofra] Ghostflame Torch 12077500")] + LDNokronSiofraGhostflameTorch = 12077500, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [1] 12077510")] - LDNokronSiofraGoldenRune1______________ = 12077510, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [1] 12077510")] + LDNokronSiofraGoldenRune1______________ = 12077510, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [1] 12077520")] - LDNokronSiofraGoldenRune1_______________ = 12077520, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [1] 12077520")] + LDNokronSiofraGoldenRune1_______________ = 12077520, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [1] 12077530")] - LDNokronSiofraGoldenRune1________________ = 12077530, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [1] 12077530")] + LDNokronSiofraGoldenRune1________________ = 12077530, - [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [1] 12077540")] - LDNokronSiofraGoldenRune1_________________ = 12077540, + [Annotation(Name = "[LD - Nokron / Siofra] Golden Rune [1] 12077540")] + LDNokronSiofraGoldenRune1_________________ = 12077540, - [Annotation(Name = "[LD - Crumbling Farum Azula] Smithing Stone [8] 13007000")] - LDCrumblingFarumAzulaSmithingStone8 = 13007000, + [Annotation(Name = "[LD - Crumbling Farum Azula] Smithing Stone [8] 13007000")] + LDCrumblingFarumAzulaSmithingStone8 = 13007000, - [Annotation(Name = "[LD - Crumbling Farum Azula] Golden Rune [9] 13007010")] - LDCrumblingFarumAzulaGoldenRune9 = 13007010, + [Annotation(Name = "[LD - Crumbling Farum Azula] Golden Rune [9] 13007010")] + LDCrumblingFarumAzulaGoldenRune9 = 13007010, - [Annotation(Name = "[LD - Crumbling Farum Azula] Old Fang 13007020")] - LDCrumblingFarumAzulaOldFang = 13007020, + [Annotation(Name = "[LD - Crumbling Farum Azula] Old Fang 13007020")] + LDCrumblingFarumAzulaOldFang = 13007020, - [Annotation(Name = "[LD - Crumbling Farum Azula] Lightningproof Dried Liver 13007030")] - LDCrumblingFarumAzulaLightningproofDriedLiver = 13007030, + [Annotation(Name = "[LD - Crumbling Farum Azula] Lightningproof Dried Liver 13007030")] + LDCrumblingFarumAzulaLightningproofDriedLiver = 13007030, - [Annotation(Name = "[LD - Crumbling Farum Azula] Smithing Stone [6] 13007040")] - LDCrumblingFarumAzulaSmithingStone6 = 13007040, + [Annotation(Name = "[LD - Crumbling Farum Azula] Smithing Stone [6] 13007040")] + LDCrumblingFarumAzulaSmithingStone6 = 13007040, - [Annotation(Name = "[LD - Crumbling Farum Azula] Smithing Stone [8] 13007050")] - LDCrumblingFarumAzulaSmithingStone8_ = 13007050, + [Annotation(Name = "[LD - Crumbling Farum Azula] Smithing Stone [8] 13007050")] + LDCrumblingFarumAzulaSmithingStone8_ = 13007050, - [Annotation(Name = "[LD - Crumbling Farum Azula] Dragonwound Grease 13007060")] - LDCrumblingFarumAzulaDragonwoundGrease = 13007060, + [Annotation(Name = "[LD - Crumbling Farum Azula] Dragonwound Grease 13007060")] + LDCrumblingFarumAzulaDragonwoundGrease = 13007060, - [Annotation(Name = "[LD - Crumbling Farum Azula] Smithing Stone [8] 13007070")] - LDCrumblingFarumAzulaSmithingStone8__ = 13007070, + [Annotation(Name = "[LD - Crumbling Farum Azula] Smithing Stone [8] 13007070")] + LDCrumblingFarumAzulaSmithingStone8__ = 13007070, - [Annotation(Name = "[LD - Crumbling Farum Azula] Smithing Stone [8] 13007080")] - LDCrumblingFarumAzulaSmithingStone8___ = 13007080, + [Annotation(Name = "[LD - Crumbling Farum Azula] Smithing Stone [8] 13007080")] + LDCrumblingFarumAzulaSmithingStone8___ = 13007080, - [Annotation(Name = "[LD - Crumbling Farum Azula] Lightning Greatbolt 13007090")] - LDCrumblingFarumAzulaLightningGreatbolt = 13007090, + [Annotation(Name = "[LD - Crumbling Farum Azula] Lightning Greatbolt 13007090")] + LDCrumblingFarumAzulaLightningGreatbolt = 13007090, - [Annotation(Name = "[LD - Crumbling Farum Azula] 13007100")] - LDCrumblingFarumAzula = 13007100, + [Annotation(Name = "[LD - Crumbling Farum Azula] 13007100")] + LDCrumblingFarumAzula = 13007100, - [Annotation(Name = "[LD - Crumbling Farum Azula] Golden Rune [12] 13007110")] - LDCrumblingFarumAzulaGoldenRune12 = 13007110, + [Annotation(Name = "[LD - Crumbling Farum Azula] Golden Rune [12] 13007110")] + LDCrumblingFarumAzulaGoldenRune12 = 13007110, - [Annotation(Name = "[LD - Crumbling Farum Azula] Ancient Dragon Prayerbook 13007120")] - LDCrumblingFarumAzulaAncientDragonPrayerbook = 13007120, + [Annotation(Name = "[LD - Crumbling Farum Azula] Ancient Dragon Prayerbook 13007120")] + LDCrumblingFarumAzulaAncientDragonPrayerbook = 13007120, - [Annotation(Name = "[LD - Crumbling Farum Azula] Hero's Rune [2] 13007130")] - LDCrumblingFarumAzulaHerosRune2 = 13007130, + [Annotation(Name = "[LD - Crumbling Farum Azula] Hero's Rune [2] 13007130")] + LDCrumblingFarumAzulaHerosRune2 = 13007130, - [Annotation(Name = "[LD - Crumbling Farum Azula] Smithing Stone [6] 13007140")] - LDCrumblingFarumAzulaSmithingStone6_ = 13007140, + [Annotation(Name = "[LD - Crumbling Farum Azula] Smithing Stone [6] 13007140")] + LDCrumblingFarumAzulaSmithingStone6_ = 13007140, - [Annotation(Name = "[LD - Crumbling Farum Azula] Somberstone Miner's Bell Bearing [4] 13007150")] - LDCrumblingFarumAzulaSomberstoneMinersBellBearing4 = 13007150, + [Annotation(Name = "[LD - Crumbling Farum Azula] Somberstone Miner's Bell Bearing [4] 13007150")] + LDCrumblingFarumAzulaSomberstoneMinersBellBearing4 = 13007150, - [Annotation(Name = "[LD - Crumbling Farum Azula] 13007160")] - LDCrumblingFarumAzula_ = 13007160, + [Annotation(Name = "[LD - Crumbling Farum Azula] 13007160")] + LDCrumblingFarumAzula_ = 13007160, - [Annotation(Name = "[LD - Crumbling Farum Azula] Somber Smithing Stone [9] 13007170")] - LDCrumblingFarumAzulaSomberSmithingStone9 = 13007170, + [Annotation(Name = "[LD - Crumbling Farum Azula] Somber Smithing Stone [9] 13007170")] + LDCrumblingFarumAzulaSomberSmithingStone9 = 13007170, - [Annotation(Name = "[LD - Crumbling Farum Azula] Fulgurbloom 13007180")] - LDCrumblingFarumAzulaFulgurbloom = 13007180, + [Annotation(Name = "[LD - Crumbling Farum Azula] Fulgurbloom 13007180")] + LDCrumblingFarumAzulaFulgurbloom = 13007180, - [Annotation(Name = "[LD - Crumbling Farum Azula] Smithing Stone [8] 13007190")] - LDCrumblingFarumAzulaSmithingStone8____ = 13007190, + [Annotation(Name = "[LD - Crumbling Farum Azula] Smithing Stone [8] 13007190")] + LDCrumblingFarumAzulaSmithingStone8____ = 13007190, - [Annotation(Name = "[LD - Crumbling Farum Azula] Rejuvenating Boluses 13007200")] - LDCrumblingFarumAzulaRejuvenatingBoluses = 13007200, + [Annotation(Name = "[LD - Crumbling Farum Azula] Rejuvenating Boluses 13007200")] + LDCrumblingFarumAzulaRejuvenatingBoluses = 13007200, - [Annotation(Name = "[LD - Crumbling Farum Azula] 13007210")] - LDCrumblingFarumAzula__ = 13007210, + [Annotation(Name = "[LD - Crumbling Farum Azula] 13007210")] + LDCrumblingFarumAzula__ = 13007210, - [Annotation(Name = "[LD - Crumbling Farum Azula] Smithing Stone [8] 13007220")] - LDCrumblingFarumAzulaSmithingStone8_____ = 13007220, + [Annotation(Name = "[LD - Crumbling Farum Azula] Smithing Stone [8] 13007220")] + LDCrumblingFarumAzulaSmithingStone8_____ = 13007220, - [Annotation(Name = "[LD - Crumbling Farum Azula] 13007230")] - LDCrumblingFarumAzula___ = 13007230, + [Annotation(Name = "[LD - Crumbling Farum Azula] 13007230")] + LDCrumblingFarumAzula___ = 13007230, - [Annotation(Name = "[LD - Crumbling Farum Azula] Gravel Stone 13007240")] - LDCrumblingFarumAzulaGravelStone = 13007240, + [Annotation(Name = "[LD - Crumbling Farum Azula] Gravel Stone 13007240")] + LDCrumblingFarumAzulaGravelStone = 13007240, - [Annotation(Name = "[LD - Crumbling Farum Azula] Somber Smithing Stone [7] 13007250")] - LDCrumblingFarumAzulaSomberSmithingStone7 = 13007250, + [Annotation(Name = "[LD - Crumbling Farum Azula] Somber Smithing Stone [7] 13007250")] + LDCrumblingFarumAzulaSomberSmithingStone7 = 13007250, - [Annotation(Name = "[LD - Crumbling Farum Azula] Golden Rune [9] 13007260")] - LDCrumblingFarumAzulaGoldenRune9_ = 13007260, + [Annotation(Name = "[LD - Crumbling Farum Azula] Golden Rune [9] 13007260")] + LDCrumblingFarumAzulaGoldenRune9_ = 13007260, - [Annotation(Name = "[LD - Crumbling Farum Azula] Golden Arrow 13007270")] - LDCrumblingFarumAzulaGoldenArrow = 13007270, + [Annotation(Name = "[LD - Crumbling Farum Azula] Golden Arrow 13007270")] + LDCrumblingFarumAzulaGoldenArrow = 13007270, - [Annotation(Name = "[LD - Crumbling Farum Azula] 13007280")] - LDCrumblingFarumAzula____ = 13007280, + [Annotation(Name = "[LD - Crumbling Farum Azula] 13007280")] + LDCrumblingFarumAzula____ = 13007280, - [Annotation(Name = "[LD - Crumbling Farum Azula] Gravel Stone 13007290")] - LDCrumblingFarumAzulaGravelStone_ = 13007290, + [Annotation(Name = "[LD - Crumbling Farum Azula] Gravel Stone 13007290")] + LDCrumblingFarumAzulaGravelStone_ = 13007290, - [Annotation(Name = "[LD - Crumbling Farum Azula] Golden Rune [10] 13007300")] - LDCrumblingFarumAzulaGoldenRune10 = 13007300, + [Annotation(Name = "[LD - Crumbling Farum Azula] Golden Rune [10] 13007300")] + LDCrumblingFarumAzulaGoldenRune10 = 13007300, - [Annotation(Name = "[LD - Crumbling Farum Azula] Golden Rune [12] 13007310")] - LDCrumblingFarumAzulaGoldenRune12_ = 13007310, + [Annotation(Name = "[LD - Crumbling Farum Azula] Golden Rune [12] 13007310")] + LDCrumblingFarumAzulaGoldenRune12_ = 13007310, - [Annotation(Name = "[LD - Crumbling Farum Azula] Smithing Stone [6] 13007320")] - LDCrumblingFarumAzulaSmithingStone6__ = 13007320, + [Annotation(Name = "[LD - Crumbling Farum Azula] Smithing Stone [6] 13007320")] + LDCrumblingFarumAzulaSmithingStone6__ = 13007320, - [Annotation(Name = "[LD - Crumbling Farum Azula] Golden Rune [11] 13007330")] - LDCrumblingFarumAzulaGoldenRune11 = 13007330, + [Annotation(Name = "[LD - Crumbling Farum Azula] Golden Rune [11] 13007330")] + LDCrumblingFarumAzulaGoldenRune11 = 13007330, - [Annotation(Name = "[LD - Crumbling Farum Azula] 13007340")] - LDCrumblingFarumAzula_____ = 13007340, + [Annotation(Name = "[LD - Crumbling Farum Azula] 13007340")] + LDCrumblingFarumAzula_____ = 13007340, - [Annotation(Name = "[LD - Crumbling Farum Azula] Stonesword Key 13007350")] - LDCrumblingFarumAzulaStoneswordKey = 13007350, + [Annotation(Name = "[LD - Crumbling Farum Azula] Stonesword Key 13007350")] + LDCrumblingFarumAzulaStoneswordKey = 13007350, - [Annotation(Name = "[LD - Crumbling Farum Azula] Golden Rune [12] 13007360")] - LDCrumblingFarumAzulaGoldenRune12__ = 13007360, + [Annotation(Name = "[LD - Crumbling Farum Azula] Golden Rune [12] 13007360")] + LDCrumblingFarumAzulaGoldenRune12__ = 13007360, - [Annotation(Name = "[LD - Crumbling Farum Azula] 13007370")] - LDCrumblingFarumAzula______ = 13007370, + [Annotation(Name = "[LD - Crumbling Farum Azula] 13007370")] + LDCrumblingFarumAzula______ = 13007370, - [Annotation(Name = "[LD - Crumbling Farum Azula] Rune Arc 13007380")] - LDCrumblingFarumAzulaRuneArc = 13007380, + [Annotation(Name = "[LD - Crumbling Farum Azula] Rune Arc 13007380")] + LDCrumblingFarumAzulaRuneArc = 13007380, - [Annotation(Name = "[LD - Crumbling Farum Azula] Somber Smithing Stone [9] 13007390")] - LDCrumblingFarumAzulaSomberSmithingStone9_ = 13007390, + [Annotation(Name = "[LD - Crumbling Farum Azula] Somber Smithing Stone [9] 13007390")] + LDCrumblingFarumAzulaSomberSmithingStone9_ = 13007390, - [Annotation(Name = "[LD - Crumbling Farum Azula] 13007400")] - LDCrumblingFarumAzula_______ = 13007400, + [Annotation(Name = "[LD - Crumbling Farum Azula] 13007400")] + LDCrumblingFarumAzula_______ = 13007400, - [Annotation(Name = "[LD - Crumbling Farum Azula] 13007410")] - LDCrumblingFarumAzula________ = 13007410, + [Annotation(Name = "[LD - Crumbling Farum Azula] 13007410")] + LDCrumblingFarumAzula________ = 13007410, - [Annotation(Name = "[LD - Crumbling Farum Azula] Golden Rune [11] 13007420")] - LDCrumblingFarumAzulaGoldenRune11_ = 13007420, + [Annotation(Name = "[LD - Crumbling Farum Azula] Golden Rune [11] 13007420")] + LDCrumblingFarumAzulaGoldenRune11_ = 13007420, - [Annotation(Name = "[LD - Crumbling Farum Azula] Godskin Ward 13007430")] - LDCrumblingFarumAzulaGodskinWard = 13007430, + [Annotation(Name = "[LD - Crumbling Farum Azula] Godskin Ward 13007430")] + LDCrumblingFarumAzulaGodskinWard = 13007430, - [Annotation(Name = "[LD - Crumbling Farum Azula] Hero's Rune [5] 13007440")] - LDCrumblingFarumAzulaHerosRune5 = 13007440, + [Annotation(Name = "[LD - Crumbling Farum Azula] Hero's Rune [5] 13007440")] + LDCrumblingFarumAzulaHerosRune5 = 13007440, - [Annotation(Name = "[LD - Crumbling Farum Azula] Smithing Stone [7] 13007450")] - LDCrumblingFarumAzulaSmithingStone7 = 13007450, + [Annotation(Name = "[LD - Crumbling Farum Azula] Smithing Stone [7] 13007450")] + LDCrumblingFarumAzulaSmithingStone7 = 13007450, - [Annotation(Name = "[LD - Crumbling Farum Azula] Lightning Grease 13007460")] - LDCrumblingFarumAzulaLightningGrease = 13007460, + [Annotation(Name = "[LD - Crumbling Farum Azula] Lightning Grease 13007460")] + LDCrumblingFarumAzulaLightningGrease = 13007460, - [Annotation(Name = "[LD - Crumbling Farum Azula] Somber Smithing Stone [9] 13007470")] - LDCrumblingFarumAzulaSomberSmithingStone9__ = 13007470, + [Annotation(Name = "[LD - Crumbling Farum Azula] Somber Smithing Stone [9] 13007470")] + LDCrumblingFarumAzulaSomberSmithingStone9__ = 13007470, - [Annotation(Name = "[LD - Crumbling Farum Azula] Ancient Dragon Smithing Stone 13007480")] - LDCrumblingFarumAzulaAncientDragonSmithingStone = 13007480, + [Annotation(Name = "[LD - Crumbling Farum Azula] Ancient Dragon Smithing Stone 13007480")] + LDCrumblingFarumAzulaAncientDragonSmithingStone = 13007480, - [Annotation(Name = "[LD - Crumbling Farum Azula] Golden Rune [12] 13007490")] - LDCrumblingFarumAzulaGoldenRune12___ = 13007490, + [Annotation(Name = "[LD - Crumbling Farum Azula] Golden Rune [12] 13007490")] + LDCrumblingFarumAzulaGoldenRune12___ = 13007490, - [Annotation(Name = "[LD - Crumbling Farum Azula] Dragoncrest Shield Talisman +2 13007500")] - LDCrumblingFarumAzulaDragoncrestShieldTalisman2 = 13007500, + [Annotation(Name = "[LD - Crumbling Farum Azula] Dragoncrest Shield Talisman +2 13007500")] + LDCrumblingFarumAzulaDragoncrestShieldTalisman2 = 13007500, - [Annotation(Name = "[LD - Crumbling Farum Azula] Dappled Cured Meat 13007510")] - LDCrumblingFarumAzulaDappledCuredMeat = 13007510, + [Annotation(Name = "[LD - Crumbling Farum Azula] Dappled Cured Meat 13007510")] + LDCrumblingFarumAzulaDappledCuredMeat = 13007510, - [Annotation(Name = "[LD - Crumbling Farum Azula] Smithing Stone [8] 13007520")] - LDCrumblingFarumAzulaSmithingStone8______ = 13007520, + [Annotation(Name = "[LD - Crumbling Farum Azula] Smithing Stone [8] 13007520")] + LDCrumblingFarumAzulaSmithingStone8______ = 13007520, - [Annotation(Name = "[LD - Crumbling Farum Azula] Lord's Rune 13007530")] - LDCrumblingFarumAzulaLordsRune = 13007530, + [Annotation(Name = "[LD - Crumbling Farum Azula] Lord's Rune 13007530")] + LDCrumblingFarumAzulaLordsRune = 13007530, - [Annotation(Name = "[LD - Crumbling Farum Azula] Nascent Butterfly 13007540")] - LDCrumblingFarumAzulaNascentButterfly = 13007540, + [Annotation(Name = "[LD - Crumbling Farum Azula] Nascent Butterfly 13007540")] + LDCrumblingFarumAzulaNascentButterfly = 13007540, - [Annotation(Name = "[LD - Crumbling Farum Azula] Golden Rune [12] 13007550")] - LDCrumblingFarumAzulaGoldenRune12____ = 13007550, + [Annotation(Name = "[LD - Crumbling Farum Azula] Golden Rune [12] 13007550")] + LDCrumblingFarumAzulaGoldenRune12____ = 13007550, - [Annotation(Name = "[LD - Crumbling Farum Azula] Smithing Stone [8] 13007560")] - LDCrumblingFarumAzulaSmithingStone8_______ = 13007560, + [Annotation(Name = "[LD - Crumbling Farum Azula] Smithing Stone [8] 13007560")] + LDCrumblingFarumAzulaSmithingStone8_______ = 13007560, - [Annotation(Name = "[LD - Crumbling Farum Azula] Rune Arc 13007570")] - LDCrumblingFarumAzulaRuneArc_ = 13007570, + [Annotation(Name = "[LD - Crumbling Farum Azula] Rune Arc 13007570")] + LDCrumblingFarumAzulaRuneArc_ = 13007570, - [Annotation(Name = "[LD - Crumbling Farum Azula] Smithing Stone [7] 13007580")] - LDCrumblingFarumAzulaSmithingStone7_ = 13007580, + [Annotation(Name = "[LD - Crumbling Farum Azula] Smithing Stone [7] 13007580")] + LDCrumblingFarumAzulaSmithingStone7_ = 13007580, - [Annotation(Name = "[LD - Crumbling Farum Azula] Dragonwound Grease 13007590")] - LDCrumblingFarumAzulaDragonwoundGrease_ = 13007590, + [Annotation(Name = "[LD - Crumbling Farum Azula] Dragonwound Grease 13007590")] + LDCrumblingFarumAzulaDragonwoundGrease_ = 13007590, - [Annotation(Name = "[LD - Crumbling Farum Azula] Smithing Stone [8] 13007600")] - LDCrumblingFarumAzulaSmithingStone8________ = 13007600, + [Annotation(Name = "[LD - Crumbling Farum Azula] Smithing Stone [8] 13007600")] + LDCrumblingFarumAzulaSmithingStone8________ = 13007600, - [Annotation(Name = "[LD - Crumbling Farum Azula] 13007610")] - LDCrumblingFarumAzula_________ = 13007610, + [Annotation(Name = "[LD - Crumbling Farum Azula] 13007610")] + LDCrumblingFarumAzula_________ = 13007610, - [Annotation(Name = "[LD - Crumbling Farum Azula] Golden Rune [12] 13007620")] - LDCrumblingFarumAzulaGoldenRune12_____ = 13007620, + [Annotation(Name = "[LD - Crumbling Farum Azula] Golden Rune [12] 13007620")] + LDCrumblingFarumAzulaGoldenRune12_____ = 13007620, - [Annotation(Name = "[LD - Crumbling Farum Azula] 13007630")] - LDCrumblingFarumAzula__________ = 13007630, + [Annotation(Name = "[LD - Crumbling Farum Azula] 13007630")] + LDCrumblingFarumAzula__________ = 13007630, - [Annotation(Name = "[LD - Crumbling Farum Azula] Smithing Stone [7] 13007640")] - LDCrumblingFarumAzulaSmithingStone7__ = 13007640, + [Annotation(Name = "[LD - Crumbling Farum Azula] Smithing Stone [7] 13007640")] + LDCrumblingFarumAzulaSmithingStone7__ = 13007640, - [Annotation(Name = "[LD - Crumbling Farum Azula] Ancient Dragon Apostle's Cookbook [4] 68020")] - LDCrumblingFarumAzulaAncientDragonApostlesCookbook4 = 68020, + [Annotation(Name = "[LD - Crumbling Farum Azula] Ancient Dragon Apostle's Cookbook [4] 68020")] + LDCrumblingFarumAzulaAncientDragonApostlesCookbook4 = 68020, - [Annotation(Name = "[LD - Crumbling Farum Azula] Somber Smithing Stone [8] 13007660")] - LDCrumblingFarumAzulaSomberSmithingStone8 = 13007660, + [Annotation(Name = "[LD - Crumbling Farum Azula] Somber Smithing Stone [8] 13007660")] + LDCrumblingFarumAzulaSomberSmithingStone8 = 13007660, - [Annotation(Name = "[LD - Crumbling Farum Azula] Smithing Stone [6] 13007670")] - LDCrumblingFarumAzulaSmithingStone6___ = 13007670, + [Annotation(Name = "[LD - Crumbling Farum Azula] Smithing Stone [6] 13007670")] + LDCrumblingFarumAzulaSmithingStone6___ = 13007670, - [Annotation(Name = "[LD - Crumbling Farum Azula] Arteria Leaf 13007680")] - LDCrumblingFarumAzulaArteriaLeaf = 13007680, + [Annotation(Name = "[LD - Crumbling Farum Azula] Arteria Leaf 13007680")] + LDCrumblingFarumAzulaArteriaLeaf = 13007680, - [Annotation(Name = "[LD - Crumbling Farum Azula] 13007690")] - LDCrumblingFarumAzula___________ = 13007690, + [Annotation(Name = "[LD - Crumbling Farum Azula] 13007690")] + LDCrumblingFarumAzula___________ = 13007690, - [Annotation(Name = "[LD - Crumbling Farum Azula] Lightning Greatbolt 13007700")] - LDCrumblingFarumAzulaLightningGreatbolt_ = 13007700, + [Annotation(Name = "[LD - Crumbling Farum Azula] Lightning Greatbolt 13007700")] + LDCrumblingFarumAzulaLightningGreatbolt_ = 13007700, - [Annotation(Name = "[LD - Crumbling Farum Azula] Fulgurbloom 13007710")] - LDCrumblingFarumAzulaFulgurbloom_ = 13007710, + [Annotation(Name = "[LD - Crumbling Farum Azula] Fulgurbloom 13007710")] + LDCrumblingFarumAzulaFulgurbloom_ = 13007710, - [Annotation(Name = "[LD - Crumbling Farum Azula] Golden Rune [12] 13007720")] - LDCrumblingFarumAzulaGoldenRune12______ = 13007720, + [Annotation(Name = "[LD - Crumbling Farum Azula] Golden Rune [12] 13007720")] + LDCrumblingFarumAzulaGoldenRune12______ = 13007720, - [Annotation(Name = "[LD - Crumbling Farum Azula] Smithing Stone [7] 13007730")] - LDCrumblingFarumAzulaSmithingStone7___ = 13007730, + [Annotation(Name = "[LD - Crumbling Farum Azula] Smithing Stone [7] 13007730")] + LDCrumblingFarumAzulaSmithingStone7___ = 13007730, - [Annotation(Name = "[LD - Crumbling Farum Azula] Golden Rune [12] 13007740")] - LDCrumblingFarumAzulaGoldenRune12_______ = 13007740, + [Annotation(Name = "[LD - Crumbling Farum Azula] Golden Rune [12] 13007740")] + LDCrumblingFarumAzulaGoldenRune12_______ = 13007740, - [Annotation(Name = "[LD - Crumbling Farum Azula] 13007750")] - LDCrumblingFarumAzula____________ = 13007750, + [Annotation(Name = "[LD - Crumbling Farum Azula] 13007750")] + LDCrumblingFarumAzula____________ = 13007750, - [Annotation(Name = "[LD - Crumbling Farum Azula] Boltdrake Talisman +2 13007760")] - LDCrumblingFarumAzulaBoltdrakeTalisman2 = 13007760, + [Annotation(Name = "[LD - Crumbling Farum Azula] Boltdrake Talisman +2 13007760")] + LDCrumblingFarumAzulaBoltdrakeTalisman2 = 13007760, - [Annotation(Name = "[LD - Crumbling Farum Azula] Somber Smithing Stone [7] 13007770")] - LDCrumblingFarumAzulaSomberSmithingStone7_ = 13007770, + [Annotation(Name = "[LD - Crumbling Farum Azula] Somber Smithing Stone [7] 13007770")] + LDCrumblingFarumAzulaSomberSmithingStone7_ = 13007770, - [Annotation(Name = "[LD - Crumbling Farum Azula] 13007780")] - LDCrumblingFarumAzula_____________ = 13007780, + [Annotation(Name = "[LD - Crumbling Farum Azula] 13007780")] + LDCrumblingFarumAzula_____________ = 13007780, - [Annotation(Name = "[LD - Crumbling Farum Azula] Somberstone Miner's Bell Bearing [5] 13007790")] - LDCrumblingFarumAzulaSomberstoneMinersBellBearing5 = 13007790, + [Annotation(Name = "[LD - Crumbling Farum Azula] Somberstone Miner's Bell Bearing [5] 13007790")] + LDCrumblingFarumAzulaSomberstoneMinersBellBearing5 = 13007790, - [Annotation(Name = "[LD - Crumbling Farum Azula] Golden Rune [12] 13007800")] - LDCrumblingFarumAzulaGoldenRune12________ = 13007800, + [Annotation(Name = "[LD - Crumbling Farum Azula] Golden Rune [12] 13007800")] + LDCrumblingFarumAzulaGoldenRune12________ = 13007800, - [Annotation(Name = "[LD - Crumbling Farum Azula] Somber Smithing Stone [7] 13007810")] - LDCrumblingFarumAzulaSomberSmithingStone7__ = 13007810, + [Annotation(Name = "[LD - Crumbling Farum Azula] Somber Smithing Stone [7] 13007810")] + LDCrumblingFarumAzulaSomberSmithingStone7__ = 13007810, - [Annotation(Name = "[LD - Crumbling Farum Azula] Somber Smithing Stone [8] 13007820")] - LDCrumblingFarumAzulaSomberSmithingStone8_ = 13007820, + [Annotation(Name = "[LD - Crumbling Farum Azula] Somber Smithing Stone [8] 13007820")] + LDCrumblingFarumAzulaSomberSmithingStone8_ = 13007820, - [Annotation(Name = "[LD - Crumbling Farum Azula] Pearldrake Talisman 13007830")] - LDCrumblingFarumAzulaPearldrakeTalisman = 13007830, + [Annotation(Name = "[LD - Crumbling Farum Azula] Pearldrake Talisman 13007830")] + LDCrumblingFarumAzulaPearldrakeTalisman = 13007830, - [Annotation(Name = "[LD - Crumbling Farum Azula] 13007840")] - LDCrumblingFarumAzula______________ = 13007840, + [Annotation(Name = "[LD - Crumbling Farum Azula] 13007840")] + LDCrumblingFarumAzula______________ = 13007840, - [Annotation(Name = "[LD - Crumbling Farum Azula] Smithing Stone [7] 13007850")] - LDCrumblingFarumAzulaSmithingStone7____ = 13007850, + [Annotation(Name = "[LD - Crumbling Farum Azula] Smithing Stone [7] 13007850")] + LDCrumblingFarumAzulaSmithingStone7____ = 13007850, - [Annotation(Name = "[LD - Crumbling Farum Azula] Gravel Stone 13007860")] - LDCrumblingFarumAzulaGravelStone__ = 13007860, + [Annotation(Name = "[LD - Crumbling Farum Azula] Gravel Stone 13007860")] + LDCrumblingFarumAzulaGravelStone__ = 13007860, - [Annotation(Name = "[LD - Crumbling Farum Azula] Somber Smithing Stone [9] 13007870")] - LDCrumblingFarumAzulaSomberSmithingStone9___ = 13007870, + [Annotation(Name = "[LD - Crumbling Farum Azula] Somber Smithing Stone [9] 13007870")] + LDCrumblingFarumAzulaSomberSmithingStone9___ = 13007870, - [Annotation(Name = "[LD - Crumbling Farum Azula] Smithing Stone [8] 13007880")] - LDCrumblingFarumAzulaSmithingStone8_________ = 13007880, + [Annotation(Name = "[LD - Crumbling Farum Azula] Smithing Stone [8] 13007880")] + LDCrumblingFarumAzulaSmithingStone8_________ = 13007880, - [Annotation(Name = "[LD - Crumbling Farum Azula] Azula Beastman Ashes 13007890")] - LDCrumblingFarumAzulaAzulaBeastmanAshes = 13007890, + [Annotation(Name = "[LD - Crumbling Farum Azula] Azula Beastman Ashes 13007890")] + LDCrumblingFarumAzulaAzulaBeastmanAshes = 13007890, - [Annotation(Name = "[LD - Crumbling Farum Azula] Ancient Dragon Smithing Stone 13007900")] - LDCrumblingFarumAzulaAncientDragonSmithingStone_ = 13007900, + [Annotation(Name = "[LD - Crumbling Farum Azula] Ancient Dragon Smithing Stone 13007900")] + LDCrumblingFarumAzulaAncientDragonSmithingStone_ = 13007900, - [Annotation(Name = "[LD - Crumbling Farum Azula] Glovewort Picker's Bell Bearing [3] 13007910")] - LDCrumblingFarumAzulaGlovewortPickersBellBearing3 = 13007910, + [Annotation(Name = "[LD - Crumbling Farum Azula] Glovewort Picker's Bell Bearing [3] 13007910")] + LDCrumblingFarumAzulaGlovewortPickersBellBearing3 = 13007910, - [Annotation(Name = "[LD - Crumbling Farum Azula] Drake Knight Helm 13007920")] - LDCrumblingFarumAzulaDrakeKnightHelm = 13007920, + [Annotation(Name = "[LD - Crumbling Farum Azula] Drake Knight Helm 13007920")] + LDCrumblingFarumAzulaDrakeKnightHelm = 13007920, - [Annotation(Name = "[LD - Crumbling Farum Azula] 13007930")] - LDCrumblingFarumAzula_______________ = 13007930, + [Annotation(Name = "[LD - Crumbling Farum Azula] 13007930")] + LDCrumblingFarumAzula_______________ = 13007930, - [Annotation(Name = "[LD - Crumbling Farum Azula] Dragon Towershield 13007940")] - LDCrumblingFarumAzulaDragonTowershield = 13007940, + [Annotation(Name = "[LD - Crumbling Farum Azula] Dragon Towershield 13007940")] + LDCrumblingFarumAzulaDragonTowershield = 13007940, - [Annotation(Name = "[LD - Crumbling Farum Azula] Old Lord's Talisman 13007950")] - LDCrumblingFarumAzulaOldLordsTalisman = 13007950, + [Annotation(Name = "[LD - Crumbling Farum Azula] Old Lord's Talisman 13007950")] + LDCrumblingFarumAzulaOldLordsTalisman = 13007950, - [Annotation(Name = "[LD - Crumbling Farum Azula] Golden Seed 13007980")] - LDCrumblingFarumAzulaGoldenSeed = 13007980, + [Annotation(Name = "[LD - Crumbling Farum Azula] Golden Seed 13007980")] + LDCrumblingFarumAzulaGoldenSeed = 13007980, - [Annotation(Name = "[LD - Crumbling Farum Azula] Golden Seed 13007990")] - LDCrumblingFarumAzulaGoldenSeed_ = 13007990, + [Annotation(Name = "[LD - Crumbling Farum Azula] Golden Seed 13007990")] + LDCrumblingFarumAzulaGoldenSeed_ = 13007990, - [Annotation(Name = "[LD - Crumbling Farum Azula] Ancient Dragon Smithing Stone 13007991")] - LDCrumblingFarumAzulaAncientDragonSmithingStone__ = 13007991, + [Annotation(Name = "[LD - Crumbling Farum Azula] Ancient Dragon Smithing Stone 13007991")] + LDCrumblingFarumAzulaAncientDragonSmithingStone__ = 13007991, - [Annotation(Name = "[LD - Crumbling Farum Azula] Ancient Dragon Smithing Stone 13007993")] - LDCrumblingFarumAzulaAncientDragonSmithingStone___ = 13007993, + [Annotation(Name = "[LD - Crumbling Farum Azula] Ancient Dragon Smithing Stone 13007993")] + LDCrumblingFarumAzulaAncientDragonSmithingStone___ = 13007993, - [Annotation(Name = "[LD - Crumbling Farum Azula] Malformed Dragon Helm 13007995")] - LDCrumblingFarumAzulaMalformedDragonHelm = 13007995, + [Annotation(Name = "[LD - Crumbling Farum Azula] Malformed Dragon Helm 13007995")] + LDCrumblingFarumAzulaMalformedDragonHelm = 13007995, - [Annotation(Name = "[LD - Crumbling Farum Azula] Somber Ancient Dragon Smithing Stone 13007005")] - LDCrumblingFarumAzulaSomberAncientDragonSmithingStone = 13007005, + [Annotation(Name = "[LD - Crumbling Farum Azula] Somber Ancient Dragon Smithing Stone 13007005")] + LDCrumblingFarumAzulaSomberAncientDragonSmithingStone = 13007005, - [Annotation(Name = "[LD - Crumbling Farum Azula] Dragonwound Grease 13007015")] - LDCrumblingFarumAzulaDragonwoundGrease__ = 13007015, + [Annotation(Name = "[LD - Crumbling Farum Azula] Dragonwound Grease 13007015")] + LDCrumblingFarumAzulaDragonwoundGrease__ = 13007015, - [Annotation(Name = "[LD - Crumbling Farum Azula] Great Grave Glovewort 13007025")] - LDCrumblingFarumAzulaGreatGraveGlovewort = 13007025, + [Annotation(Name = "[LD - Crumbling Farum Azula] Great Grave Glovewort 13007025")] + LDCrumblingFarumAzulaGreatGraveGlovewort = 13007025, - [Annotation(Name = "[LD - Crumbling Farum Azula] Great Grave Glovewort 13007035")] - LDCrumblingFarumAzulaGreatGraveGlovewort_ = 13007035, + [Annotation(Name = "[LD - Crumbling Farum Azula] Great Grave Glovewort 13007035")] + LDCrumblingFarumAzulaGreatGraveGlovewort_ = 13007035, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Magic Grease 14007000")] - LDAcademyOfRayaLucariaMagicGrease = 14007000, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Magic Grease 14007000")] + LDAcademyOfRayaLucariaMagicGrease = 14007000, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Rune Arc 14007020")] - LDAcademyOfRayaLucariaRuneArc = 14007020, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Rune Arc 14007020")] + LDAcademyOfRayaLucariaRuneArc = 14007020, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Golden Rune [2] 14007030")] - LDAcademyOfRayaLucariaGoldenRune2 = 14007030, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Golden Rune [2] 14007030")] + LDAcademyOfRayaLucariaGoldenRune2 = 14007030, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Somber Smithing Stone [3] 14007040")] - LDAcademyOfRayaLucariaSomberSmithingStone3 = 14007040, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Somber Smithing Stone [3] 14007040")] + LDAcademyOfRayaLucariaSomberSmithingStone3 = 14007040, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Grace Mimic 14007070")] - LDAcademyOfRayaLucariaGraceMimic = 14007070, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Grace Mimic 14007070")] + LDAcademyOfRayaLucariaGraceMimic = 14007070, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Smithing Stone [4] 14007090")] - LDAcademyOfRayaLucariaSmithingStone4 = 14007090, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Smithing Stone [4] 14007090")] + LDAcademyOfRayaLucariaSmithingStone4 = 14007090, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Spellproof Dried Liver 14007120")] - LDAcademyOfRayaLucariaSpellproofDriedLiver = 14007120, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Spellproof Dried Liver 14007120")] + LDAcademyOfRayaLucariaSpellproofDriedLiver = 14007120, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Marionette Soldier Ashes 14007150")] - LDAcademyOfRayaLucariaMarionetteSoldierAshes = 14007150, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Marionette Soldier Ashes 14007150")] + LDAcademyOfRayaLucariaMarionetteSoldierAshes = 14007150, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Silver-Pickled Fowl Foot 14007160")] - LDAcademyOfRayaLucariaSilverPickledFowlFoot = 14007160, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Silver-Pickled Fowl Foot 14007160")] + LDAcademyOfRayaLucariaSilverPickledFowlFoot = 14007160, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Magic Grease 14007190")] - LDAcademyOfRayaLucariaMagicGrease_ = 14007190, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Magic Grease 14007190")] + LDAcademyOfRayaLucariaMagicGrease_ = 14007190, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Golden Rune [4] 14007200")] - LDAcademyOfRayaLucariaGoldenRune4 = 14007200, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Golden Rune [4] 14007200")] + LDAcademyOfRayaLucariaGoldenRune4 = 14007200, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Mushroom 14007220")] - LDAcademyOfRayaLucariaMushroom = 14007220, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Mushroom 14007220")] + LDAcademyOfRayaLucariaMushroom = 14007220, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Golden Rune [4] 14007250")] - LDAcademyOfRayaLucariaGoldenRune4_ = 14007250, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Golden Rune [4] 14007250")] + LDAcademyOfRayaLucariaGoldenRune4_ = 14007250, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Golden Rune [3] 14007280")] - LDAcademyOfRayaLucariaGoldenRune3 = 14007280, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Golden Rune [3] 14007280")] + LDAcademyOfRayaLucariaGoldenRune3 = 14007280, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Avionette Soldier Ashes 14007290")] - LDAcademyOfRayaLucariaAvionetteSoldierAshes = 14007290, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Avionette Soldier Ashes 14007290")] + LDAcademyOfRayaLucariaAvionetteSoldierAshes = 14007290, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Smithing Stone [5] 14007300")] - LDAcademyOfRayaLucariaSmithingStone5 = 14007300, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Smithing Stone [5] 14007300")] + LDAcademyOfRayaLucariaSmithingStone5 = 14007300, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Longtail Cat Talisman 14007320")] - LDAcademyOfRayaLucariaLongtailCatTalisman = 14007320, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Longtail Cat Talisman 14007320")] + LDAcademyOfRayaLucariaLongtailCatTalisman = 14007320, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Crystal Dart 14007330")] - LDAcademyOfRayaLucariaCrystalDart = 14007330, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Crystal Dart 14007330")] + LDAcademyOfRayaLucariaCrystalDart = 14007330, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Golden Rune [4] 14007350")] - LDAcademyOfRayaLucariaGoldenRune4__ = 14007350, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Golden Rune [4] 14007350")] + LDAcademyOfRayaLucariaGoldenRune4__ = 14007350, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Conspectus Scroll 14007360")] - LDAcademyOfRayaLucariaConspectusScroll = 14007360, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Conspectus Scroll 14007360")] + LDAcademyOfRayaLucariaConspectusScroll = 14007360, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Smithing Stone [4] 14007370")] - LDAcademyOfRayaLucariaSmithingStone4_ = 14007370, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Smithing Stone [4] 14007370")] + LDAcademyOfRayaLucariaSmithingStone4_ = 14007370, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Stonesword Key 14007380")] - LDAcademyOfRayaLucariaStoneswordKey = 14007380, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Stonesword Key 14007380")] + LDAcademyOfRayaLucariaStoneswordKey = 14007380, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Furlcalling Finger Remedy 14007390")] - LDAcademyOfRayaLucariaFurlcallingFingerRemedy = 14007390, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Furlcalling Finger Remedy 14007390")] + LDAcademyOfRayaLucariaFurlcallingFingerRemedy = 14007390, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Living Jar Shard 14007410")] - LDAcademyOfRayaLucariaLivingJarShard = 14007410, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Living Jar Shard 14007410")] + LDAcademyOfRayaLucariaLivingJarShard = 14007410, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Stonesword Key 14007420")] - LDAcademyOfRayaLucariaStoneswordKey_ = 14007420, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Stonesword Key 14007420")] + LDAcademyOfRayaLucariaStoneswordKey_ = 14007420, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Glintstone Firefly 14007430")] - LDAcademyOfRayaLucariaGlintstoneFirefly = 14007430, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Glintstone Firefly 14007430")] + LDAcademyOfRayaLucariaGlintstoneFirefly = 14007430, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Golden Rune [2] 14007440")] - LDAcademyOfRayaLucariaGoldenRune2_ = 14007440, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Golden Rune [2] 14007440")] + LDAcademyOfRayaLucariaGoldenRune2_ = 14007440, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Golden Rune [4] 14007450")] - LDAcademyOfRayaLucariaGoldenRune4___ = 14007450, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Golden Rune [4] 14007450")] + LDAcademyOfRayaLucariaGoldenRune4___ = 14007450, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Crystal Bud 14007460")] - LDAcademyOfRayaLucariaCrystalBud = 14007460, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Crystal Bud 14007460")] + LDAcademyOfRayaLucariaCrystalBud = 14007460, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Golden Rune [4] 14007470")] - LDAcademyOfRayaLucariaGoldenRune4____ = 14007470, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Golden Rune [4] 14007470")] + LDAcademyOfRayaLucariaGoldenRune4____ = 14007470, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Smithing Stone [5] 14007480")] - LDAcademyOfRayaLucariaSmithingStone5_ = 14007480, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Smithing Stone [5] 14007480")] + LDAcademyOfRayaLucariaSmithingStone5_ = 14007480, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Golden Rune [2] 14007490")] - LDAcademyOfRayaLucariaGoldenRune2__ = 14007490, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Golden Rune [2] 14007490")] + LDAcademyOfRayaLucariaGoldenRune2__ = 14007490, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Glintstone Whetblade 65680")] - LDAcademyOfRayaLucariaGlintstoneWhetblade = 65680, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Glintstone Whetblade 65680")] + LDAcademyOfRayaLucariaGlintstoneWhetblade = 65680, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Golden Rune [3] 14007510")] - LDAcademyOfRayaLucariaGoldenRune3_ = 14007510, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Golden Rune [3] 14007510")] + LDAcademyOfRayaLucariaGoldenRune3_ = 14007510, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Crystal Dart 14007520")] - LDAcademyOfRayaLucariaCrystalDart_ = 14007520, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Crystal Dart 14007520")] + LDAcademyOfRayaLucariaCrystalDart_ = 14007520, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Golden Rune [4] 14007530")] - LDAcademyOfRayaLucariaGoldenRune4_____ = 14007530, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Golden Rune [4] 14007530")] + LDAcademyOfRayaLucariaGoldenRune4_____ = 14007530, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Furlcalling Finger Remedy 14007540")] - LDAcademyOfRayaLucariaFurlcallingFingerRemedy_ = 14007540, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Furlcalling Finger Remedy 14007540")] + LDAcademyOfRayaLucariaFurlcallingFingerRemedy_ = 14007540, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Golden Rune [7] 14007560")] - LDAcademyOfRayaLucariaGoldenRune7 = 14007560, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Golden Rune [7] 14007560")] + LDAcademyOfRayaLucariaGoldenRune7 = 14007560, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Golden Rune [4] 14007600")] - LDAcademyOfRayaLucariaGoldenRune4______ = 14007600, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Golden Rune [4] 14007600")] + LDAcademyOfRayaLucariaGoldenRune4______ = 14007600, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Crystal Dart 14007620")] - LDAcademyOfRayaLucariaCrystalDart__ = 14007620, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Crystal Dart 14007620")] + LDAcademyOfRayaLucariaCrystalDart__ = 14007620, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Imbued Sword Key 14007630")] - LDAcademyOfRayaLucariaImbuedSwordKey = 14007630, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Imbued Sword Key 14007630")] + LDAcademyOfRayaLucariaImbuedSwordKey = 14007630, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Meteor Bolt 14007660")] - LDAcademyOfRayaLucariaMeteorBolt = 14007660, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Meteor Bolt 14007660")] + LDAcademyOfRayaLucariaMeteorBolt = 14007660, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Smithing Stone [4] 14007670")] - LDAcademyOfRayaLucariaSmithingStone4__ = 14007670, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Smithing Stone [4] 14007670")] + LDAcademyOfRayaLucariaSmithingStone4__ = 14007670, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Golden Rune [4] 14007710")] - LDAcademyOfRayaLucariaGoldenRune4_______ = 14007710, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Golden Rune [4] 14007710")] + LDAcademyOfRayaLucariaGoldenRune4_______ = 14007710, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Smithing Stone [3] 14007720")] - LDAcademyOfRayaLucariaSmithingStone3 = 14007720, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Smithing Stone [3] 14007720")] + LDAcademyOfRayaLucariaSmithingStone3 = 14007720, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Magic Grease 14007740")] - LDAcademyOfRayaLucariaMagicGrease__ = 14007740, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Magic Grease 14007740")] + LDAcademyOfRayaLucariaMagicGrease__ = 14007740, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Golden Rune [3] 14007750")] - LDAcademyOfRayaLucariaGoldenRune3__ = 14007750, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Golden Rune [3] 14007750")] + LDAcademyOfRayaLucariaGoldenRune3__ = 14007750, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Somber Smithing Stone [4] 14007760")] - LDAcademyOfRayaLucariaSomberSmithingStone4 = 14007760, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Somber Smithing Stone [4] 14007760")] + LDAcademyOfRayaLucariaSomberSmithingStone4 = 14007760, - [Annotation(Name = "[LD - Academy of Raya Lucaria] [Sorcery] Shattering Crystal 14007770")] - LDAcademyOfRayaLucariaSorceryShatteringCrystal = 14007770, + [Annotation(Name = "[LD - Academy of Raya Lucaria] [Sorcery] Shattering Crystal 14007770")] + LDAcademyOfRayaLucariaSorceryShatteringCrystal = 14007770, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Cracked Pot 66120")] - LDAcademyOfRayaLucariaCrackedPot = 66120, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Cracked Pot 66120")] + LDAcademyOfRayaLucariaCrackedPot = 66120, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Azur's Glintstone Staff 14007840")] - LDAcademyOfRayaLucariaAzursGlintstoneStaff = 14007840, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Azur's Glintstone Staff 14007840")] + LDAcademyOfRayaLucariaAzursGlintstoneStaff = 14007840, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Carian Knight Helm 14007850")] - LDAcademyOfRayaLucariaCarianKnightHelm = 14007850, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Carian Knight Helm 14007850")] + LDAcademyOfRayaLucariaCarianKnightHelm = 14007850, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Somber Smithing Stone [3] 14007860")] - LDAcademyOfRayaLucariaSomberSmithingStone3_ = 14007860, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Somber Smithing Stone [3] 14007860")] + LDAcademyOfRayaLucariaSomberSmithingStone3_ = 14007860, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Lost Ashes of War 14007870")] - LDAcademyOfRayaLucariaLostAshesOfWar = 14007870, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Lost Ashes of War 14007870")] + LDAcademyOfRayaLucariaLostAshesOfWar = 14007870, - [Annotation(Name = "[LD - Academy of Raya Lucaria] [Sorcery] Comet 14007880")] - LDAcademyOfRayaLucariaSorceryComet = 14007880, + [Annotation(Name = "[LD - Academy of Raya Lucaria] [Sorcery] Comet 14007880")] + LDAcademyOfRayaLucariaSorceryComet = 14007880, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Graven-School Talisman 14007890")] - LDAcademyOfRayaLucariaGravenSchoolTalisman = 14007890, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Graven-School Talisman 14007890")] + LDAcademyOfRayaLucariaGravenSchoolTalisman = 14007890, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Ritual Pot 66410")] - LDAcademyOfRayaLucariaRitualPot = 66410, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Ritual Pot 66410")] + LDAcademyOfRayaLucariaRitualPot = 66410, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Glintstone Scarab 14007910")] - LDAcademyOfRayaLucariaGlintstoneScarab = 14007910, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Glintstone Scarab 14007910")] + LDAcademyOfRayaLucariaGlintstoneScarab = 14007910, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Terra Magicus 14007920")] - LDAcademyOfRayaLucariaTerraMagicus = 14007920, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Terra Magicus 14007920")] + LDAcademyOfRayaLucariaTerraMagicus = 14007920, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Radagon Icon 14007940")] - LDAcademyOfRayaLucariaRadagonIcon = 14007940, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Radagon Icon 14007940")] + LDAcademyOfRayaLucariaRadagonIcon = 14007940, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Glintstone Craftsman's Cookbook [5] 67420")] - LDAcademyOfRayaLucariaGlintstoneCraftsmansCookbook5 = 67420, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Glintstone Craftsman's Cookbook [5] 67420")] + LDAcademyOfRayaLucariaGlintstoneCraftsmansCookbook5 = 67420, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Dark Moon Ring 114")] - LDAcademyOfRayaLucariaDarkMoonRing = 114, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Dark Moon Ring 114")] + LDAcademyOfRayaLucariaDarkMoonRing = 114, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Full Moon Crossbow 14007970")] - LDAcademyOfRayaLucariaFullMoonCrossbow = 14007970, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Full Moon Crossbow 14007970")] + LDAcademyOfRayaLucariaFullMoonCrossbow = 14007970, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Carian Knight's Shield 14007980")] - LDAcademyOfRayaLucariaCarianKnightsShield = 14007980, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Carian Knight's Shield 14007980")] + LDAcademyOfRayaLucariaCarianKnightsShield = 14007980, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Golden Seed 14007990")] - LDAcademyOfRayaLucariaGoldenSeed = 14007990, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Golden Seed 14007990")] + LDAcademyOfRayaLucariaGoldenSeed = 14007990, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Twinsage Glintstone Crown 14007005")] - LDAcademyOfRayaLucariaTwinsageGlintstoneCrown = 14007005, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Twinsage Glintstone Crown 14007005")] + LDAcademyOfRayaLucariaTwinsageGlintstoneCrown = 14007005, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Olivinus Glintstone Crown 14007015")] - LDAcademyOfRayaLucariaOlivinusGlintstoneCrown = 14007015, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Olivinus Glintstone Crown 14007015")] + LDAcademyOfRayaLucariaOlivinusGlintstoneCrown = 14007015, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Lazuli Glintstone Crown 14007025")] - LDAcademyOfRayaLucariaLazuliGlintstoneCrown = 14007025, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Lazuli Glintstone Crown 14007025")] + LDAcademyOfRayaLucariaLazuliGlintstoneCrown = 14007025, - [Annotation(Name = "[LD - Academy of Raya Lucaria] Karolos Glintstone Crown 14007035")] - LDAcademyOfRayaLucariaKarolosGlintstoneCrown = 14007035, + [Annotation(Name = "[LD - Academy of Raya Lucaria] Karolos Glintstone Crown 14007035")] + LDAcademyOfRayaLucariaKarolosGlintstoneCrown = 14007035, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Stonesword Key 15007000")] - LDElphaelMiquellasHaligtreeStoneswordKey = 15007000, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Stonesword Key 15007000")] + LDElphaelMiquellasHaligtreeStoneswordKey = 15007000, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Sacramental Bud 15007010")] - LDElphaelMiquellasHaligtreeSacramentalBud = 15007010, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Sacramental Bud 15007010")] + LDElphaelMiquellasHaligtreeSacramentalBud = 15007010, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Golden Rune [10] 15007020")] - LDElphaelMiquellasHaligtreeGoldenRune10 = 15007020, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Golden Rune [10] 15007020")] + LDElphaelMiquellasHaligtreeGoldenRune10 = 15007020, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Stonesword Key 15007030")] - LDElphaelMiquellasHaligtreeStoneswordKey_ = 15007030, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Stonesword Key 15007030")] + LDElphaelMiquellasHaligtreeStoneswordKey_ = 15007030, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Fire Grease 15007040")] - LDElphaelMiquellasHaligtreeFireGrease = 15007040, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Fire Grease 15007040")] + LDElphaelMiquellasHaligtreeFireGrease = 15007040, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Aeonian Butterfly 15007050")] - LDElphaelMiquellasHaligtreeAeonianButterfly = 15007050, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Aeonian Butterfly 15007050")] + LDElphaelMiquellasHaligtreeAeonianButterfly = 15007050, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Preserving Boluses 15007060")] - LDElphaelMiquellasHaligtreePreservingBoluses = 15007060, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Preserving Boluses 15007060")] + LDElphaelMiquellasHaligtreePreservingBoluses = 15007060, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Golden Rune [10] 15007070")] - LDElphaelMiquellasHaligtreeGoldenRune10_ = 15007070, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Golden Rune [10] 15007070")] + LDElphaelMiquellasHaligtreeGoldenRune10_ = 15007070, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Envoy Crown 15007080")] - LDElphaelMiquellasHaligtreeEnvoyCrown = 15007080, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Envoy Crown 15007080")] + LDElphaelMiquellasHaligtreeEnvoyCrown = 15007080, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Dappled Cured Meat 15007090")] - LDElphaelMiquellasHaligtreeDappledCuredMeat = 15007090, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Dappled Cured Meat 15007090")] + LDElphaelMiquellasHaligtreeDappledCuredMeat = 15007090, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Smithing Stone [8] 15007100")] - LDElphaelMiquellasHaligtreeSmithingStone8 = 15007100, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Smithing Stone [8] 15007100")] + LDElphaelMiquellasHaligtreeSmithingStone8 = 15007100, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Prattling Pate \"My beloved\" 15007110")] - LDElphaelMiquellasHaligtreePrattlingPateMybeloved = 15007110, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Prattling Pate \"My beloved\" 15007110")] + LDElphaelMiquellasHaligtreePrattlingPateMybeloved = 15007110, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Warming Stone 15007120")] - LDElphaelMiquellasHaligtreeWarmingStone = 15007120, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Warming Stone 15007120")] + LDElphaelMiquellasHaligtreeWarmingStone = 15007120, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Flaming Bolt 15007130")] - LDElphaelMiquellasHaligtreeFlamingBolt = 15007130, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Flaming Bolt 15007130")] + LDElphaelMiquellasHaligtreeFlamingBolt = 15007130, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Numen's Rune 15007140")] - LDElphaelMiquellasHaligtreeNumensRune = 15007140, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Numen's Rune 15007140")] + LDElphaelMiquellasHaligtreeNumensRune = 15007140, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Golden Rune [13] 15007150")] - LDElphaelMiquellasHaligtreeGoldenRune13 = 15007150, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Golden Rune [13] 15007150")] + LDElphaelMiquellasHaligtreeGoldenRune13 = 15007150, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Lost Ashes of War 15007160")] - LDElphaelMiquellasHaligtreeLostAshesOfWar = 15007160, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Lost Ashes of War 15007160")] + LDElphaelMiquellasHaligtreeLostAshesOfWar = 15007160, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Oracle Envoy Ashes 15007170")] - LDElphaelMiquellasHaligtreeOracleEnvoyAshes = 15007170, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Oracle Envoy Ashes 15007170")] + LDElphaelMiquellasHaligtreeOracleEnvoyAshes = 15007170, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Golden Rune [1] 15007180")] - LDElphaelMiquellasHaligtreeGoldenRune1 = 15007180, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Golden Rune [1] 15007180")] + LDElphaelMiquellasHaligtreeGoldenRune1 = 15007180, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Golden Rune [1] 15007190")] - LDElphaelMiquellasHaligtreeGoldenRune1_ = 15007190, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Golden Rune [1] 15007190")] + LDElphaelMiquellasHaligtreeGoldenRune1_ = 15007190, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Golden Rune [10] 15007200")] - LDElphaelMiquellasHaligtreeGoldenRune10__ = 15007200, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Golden Rune [10] 15007200")] + LDElphaelMiquellasHaligtreeGoldenRune10__ = 15007200, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Rot Grease 15007210")] - LDElphaelMiquellasHaligtreeRotGrease = 15007210, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Rot Grease 15007210")] + LDElphaelMiquellasHaligtreeRotGrease = 15007210, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Pearldrake Talisman +2 15007220")] - LDElphaelMiquellasHaligtreePearldrakeTalisman2 = 15007220, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Pearldrake Talisman +2 15007220")] + LDElphaelMiquellasHaligtreePearldrakeTalisman2 = 15007220, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Smithing Stone [8] 15007230")] - LDElphaelMiquellasHaligtreeSmithingStone8_ = 15007230, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Smithing Stone [8] 15007230")] + LDElphaelMiquellasHaligtreeSmithingStone8_ = 15007230, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Golden Rune [13] 15007240")] - LDElphaelMiquellasHaligtreeGoldenRune13_ = 15007240, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Golden Rune [13] 15007240")] + LDElphaelMiquellasHaligtreeGoldenRune13_ = 15007240, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Hefty Beast Bone 15007250")] - LDElphaelMiquellasHaligtreeHeftyBeastBone = 15007250, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Hefty Beast Bone 15007250")] + LDElphaelMiquellasHaligtreeHeftyBeastBone = 15007250, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Fire Grease 15007260")] - LDElphaelMiquellasHaligtreeFireGrease_ = 15007260, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Fire Grease 15007260")] + LDElphaelMiquellasHaligtreeFireGrease_ = 15007260, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Ancient Dragon Smithing Stone 15007270")] - LDElphaelMiquellasHaligtreeAncientDragonSmithingStone = 15007270, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Ancient Dragon Smithing Stone 15007270")] + LDElphaelMiquellasHaligtreeAncientDragonSmithingStone = 15007270, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Somber Smithing Stone [8] 15007280")] - LDElphaelMiquellasHaligtreeSomberSmithingStone8 = 15007280, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Somber Smithing Stone [8] 15007280")] + LDElphaelMiquellasHaligtreeSomberSmithingStone8 = 15007280, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Golden Rune [12] 15007290")] - LDElphaelMiquellasHaligtreeGoldenRune12 = 15007290, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Golden Rune [12] 15007290")] + LDElphaelMiquellasHaligtreeGoldenRune12 = 15007290, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Aeonian Butterfly 15007300")] - LDElphaelMiquellasHaligtreeAeonianButterfly_ = 15007300, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Aeonian Butterfly 15007300")] + LDElphaelMiquellasHaligtreeAeonianButterfly_ = 15007300, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Smithing Stone [6] 15007310")] - LDElphaelMiquellasHaligtreeSmithingStone6 = 15007310, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Smithing Stone [6] 15007310")] + LDElphaelMiquellasHaligtreeSmithingStone6 = 15007310, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Somber Smithing Stone [9] 15007320")] - LDElphaelMiquellasHaligtreeSomberSmithingStone9 = 15007320, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Somber Smithing Stone [9] 15007320")] + LDElphaelMiquellasHaligtreeSomberSmithingStone9 = 15007320, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Golden Rune [10] 15007330")] - LDElphaelMiquellasHaligtreeGoldenRune10___ = 15007330, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Golden Rune [10] 15007330")] + LDElphaelMiquellasHaligtreeGoldenRune10___ = 15007330, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Golden Rune [12] 15007340")] - LDElphaelMiquellasHaligtreeGoldenRune12_ = 15007340, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Golden Rune [12] 15007340")] + LDElphaelMiquellasHaligtreeGoldenRune12_ = 15007340, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Viridian Amber Medallion +2 15007350")] - LDElphaelMiquellasHaligtreeViridianAmberMedallion2 = 15007350, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Viridian Amber Medallion +2 15007350")] + LDElphaelMiquellasHaligtreeViridianAmberMedallion2 = 15007350, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Smithing Stone [6] 15007360")] - LDElphaelMiquellasHaligtreeSmithingStone6_ = 15007360, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Smithing Stone [6] 15007360")] + LDElphaelMiquellasHaligtreeSmithingStone6_ = 15007360, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Sacramental Bud 15007370")] - LDElphaelMiquellasHaligtreeSacramentalBud_ = 15007370, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Sacramental Bud 15007370")] + LDElphaelMiquellasHaligtreeSacramentalBud_ = 15007370, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Smithing Stone [7] 15007380")] - LDElphaelMiquellasHaligtreeSmithingStone7 = 15007380, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Smithing Stone [7] 15007380")] + LDElphaelMiquellasHaligtreeSmithingStone7 = 15007380, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Hero's Rune [4] 15007390")] - LDElphaelMiquellasHaligtreeHerosRune4 = 15007390, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Hero's Rune [4] 15007390")] + LDElphaelMiquellasHaligtreeHerosRune4 = 15007390, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Smithing Stone [8] 15007400")] - LDElphaelMiquellasHaligtreeSmithingStone8__ = 15007400, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Smithing Stone [8] 15007400")] + LDElphaelMiquellasHaligtreeSmithingStone8__ = 15007400, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Golden Rune [1] 15007410")] - LDElphaelMiquellasHaligtreeGoldenRune1__ = 15007410, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Golden Rune [1] 15007410")] + LDElphaelMiquellasHaligtreeGoldenRune1__ = 15007410, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Golden Rune [1] 15007420")] - LDElphaelMiquellasHaligtreeGoldenRune1___ = 15007420, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Golden Rune [1] 15007420")] + LDElphaelMiquellasHaligtreeGoldenRune1___ = 15007420, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Golden Rune [1] 15007430")] - LDElphaelMiquellasHaligtreeGoldenRune1____ = 15007430, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Golden Rune [1] 15007430")] + LDElphaelMiquellasHaligtreeGoldenRune1____ = 15007430, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Golden Rune [1] 15007440")] - LDElphaelMiquellasHaligtreeGoldenRune1_____ = 15007440, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Golden Rune [1] 15007440")] + LDElphaelMiquellasHaligtreeGoldenRune1_____ = 15007440, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Somber Smithing Stone [9] 15007450")] - LDElphaelMiquellasHaligtreeSomberSmithingStone9_ = 15007450, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Somber Smithing Stone [9] 15007450")] + LDElphaelMiquellasHaligtreeSomberSmithingStone9_ = 15007450, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Ancient Dragon Smithing Stone 15007460")] - LDElphaelMiquellasHaligtreeAncientDragonSmithingStone_ = 15007460, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Ancient Dragon Smithing Stone 15007460")] + LDElphaelMiquellasHaligtreeAncientDragonSmithingStone_ = 15007460, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Golden Rune [1] 15007470")] - LDElphaelMiquellasHaligtreeGoldenRune1______ = 15007470, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Golden Rune [1] 15007470")] + LDElphaelMiquellasHaligtreeGoldenRune1______ = 15007470, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Golden Rune [1] 15007480")] - LDElphaelMiquellasHaligtreeGoldenRune1_______ = 15007480, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Golden Rune [1] 15007480")] + LDElphaelMiquellasHaligtreeGoldenRune1_______ = 15007480, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Golden Rune [1] 15007490")] - LDElphaelMiquellasHaligtreeGoldenRune1________ = 15007490, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Golden Rune [1] 15007490")] + LDElphaelMiquellasHaligtreeGoldenRune1________ = 15007490, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Holy Grease 15007500")] - LDElphaelMiquellasHaligtreeHolyGrease = 15007500, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Holy Grease 15007500")] + LDElphaelMiquellasHaligtreeHolyGrease = 15007500, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Golden Rune [12] 15007510")] - LDElphaelMiquellasHaligtreeGoldenRune12__ = 15007510, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Golden Rune [12] 15007510")] + LDElphaelMiquellasHaligtreeGoldenRune12__ = 15007510, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Smithing Stone [8] 15007520")] - LDElphaelMiquellasHaligtreeSmithingStone8___ = 15007520, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Smithing Stone [8] 15007520")] + LDElphaelMiquellasHaligtreeSmithingStone8___ = 15007520, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Miquellan Knight's Sword 15007530")] - LDElphaelMiquellasHaligtreeMiquellanKnightsSword = 15007530, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Miquellan Knight's Sword 15007530")] + LDElphaelMiquellasHaligtreeMiquellanKnightsSword = 15007530, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Lightning Greatbolt 15007540")] - LDElphaelMiquellasHaligtreeLightningGreatbolt = 15007540, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Lightning Greatbolt 15007540")] + LDElphaelMiquellasHaligtreeLightningGreatbolt = 15007540, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Smithing Stone [7] 15007550")] - LDElphaelMiquellasHaligtreeSmithingStone7_ = 15007550, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Smithing Stone [7] 15007550")] + LDElphaelMiquellasHaligtreeSmithingStone7_ = 15007550, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] [Incantation] Triple Rings of Light 15007560")] - LDElphaelMiquellasHaligtreeIncantationTripleRingsOfLight = 15007560, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] [Incantation] Triple Rings of Light 15007560")] + LDElphaelMiquellasHaligtreeIncantationTripleRingsOfLight = 15007560, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Immunizing White Cured Meat 15007570")] - LDElphaelMiquellasHaligtreeImmunizingWhiteCuredMeat = 15007570, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Immunizing White Cured Meat 15007570")] + LDElphaelMiquellasHaligtreeImmunizingWhiteCuredMeat = 15007570, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Cleanrot Knight Finlay 15007580")] - LDElphaelMiquellasHaligtreeCleanrotKnightFinlay = 15007580, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Cleanrot Knight Finlay 15007580")] + LDElphaelMiquellasHaligtreeCleanrotKnightFinlay = 15007580, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Somber Ancient Dragon Smithing Stone 15007590")] - LDElphaelMiquellasHaligtreeSomberAncientDragonSmithingStone = 15007590, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Somber Ancient Dragon Smithing Stone 15007590")] + LDElphaelMiquellasHaligtreeSomberAncientDragonSmithingStone = 15007590, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Numen's Rune 15007600")] - LDElphaelMiquellasHaligtreeNumensRune_ = 15007600, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Numen's Rune 15007600")] + LDElphaelMiquellasHaligtreeNumensRune_ = 15007600, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Somber Ancient Dragon Smithing Stone 15007610")] - LDElphaelMiquellasHaligtreeSomberAncientDragonSmithingStone_ = 15007610, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Somber Ancient Dragon Smithing Stone 15007610")] + LDElphaelMiquellasHaligtreeSomberAncientDragonSmithingStone_ = 15007610, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Somber Smithing Stone [9] 15007620")] - LDElphaelMiquellasHaligtreeSomberSmithingStone9__ = 15007620, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Somber Smithing Stone [9] 15007620")] + LDElphaelMiquellasHaligtreeSomberSmithingStone9__ = 15007620, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Golden Rune [10] 15007630")] - LDElphaelMiquellasHaligtreeGoldenRune10____ = 15007630, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Golden Rune [10] 15007630")] + LDElphaelMiquellasHaligtreeGoldenRune10____ = 15007630, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Smithing Stone [7] 15007640")] - LDElphaelMiquellasHaligtreeSmithingStone7__ = 15007640, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Smithing Stone [7] 15007640")] + LDElphaelMiquellasHaligtreeSmithingStone7__ = 15007640, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Old Fang 15007650")] - LDElphaelMiquellasHaligtreeOldFang = 15007650, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Old Fang 15007650")] + LDElphaelMiquellasHaligtreeOldFang = 15007650, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Warming Stone 15007660")] - LDElphaelMiquellasHaligtreeWarmingStone_ = 15007660, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Warming Stone 15007660")] + LDElphaelMiquellasHaligtreeWarmingStone_ = 15007660, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Spiritflame Arrow 15007670")] - LDElphaelMiquellasHaligtreeSpiritflameArrow = 15007670, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Spiritflame Arrow 15007670")] + LDElphaelMiquellasHaligtreeSpiritflameArrow = 15007670, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Smithing Stone [8] 15007680")] - LDElphaelMiquellasHaligtreeSmithingStone8____ = 15007680, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Smithing Stone [8] 15007680")] + LDElphaelMiquellasHaligtreeSmithingStone8____ = 15007680, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Haligtree Soldier Ashes 15007690")] - LDElphaelMiquellasHaligtreeHaligtreeSoldierAshes = 15007690, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Haligtree Soldier Ashes 15007690")] + LDElphaelMiquellasHaligtreeHaligtreeSoldierAshes = 15007690, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Golden Rune [11] 15007700")] - LDElphaelMiquellasHaligtreeGoldenRune11 = 15007700, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Golden Rune [11] 15007700")] + LDElphaelMiquellasHaligtreeGoldenRune11 = 15007700, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Arteria Leaf 15007710")] - LDElphaelMiquellasHaligtreeArteriaLeaf = 15007710, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Arteria Leaf 15007710")] + LDElphaelMiquellasHaligtreeArteriaLeaf = 15007710, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Sacramental Bud 15007720")] - LDElphaelMiquellasHaligtreeSacramentalBud__ = 15007720, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Sacramental Bud 15007720")] + LDElphaelMiquellasHaligtreeSacramentalBud__ = 15007720, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Smithing Stone [8] 15007730")] - LDElphaelMiquellasHaligtreeSmithingStone8_____ = 15007730, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Smithing Stone [8] 15007730")] + LDElphaelMiquellasHaligtreeSmithingStone8_____ = 15007730, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Lord's Rune 15007740")] - LDElphaelMiquellasHaligtreeLordsRune = 15007740, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Lord's Rune 15007740")] + LDElphaelMiquellasHaligtreeLordsRune = 15007740, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Seedbed Curse 15007750")] - LDElphaelMiquellasHaligtreeSeedbedCurse = 15007750, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Seedbed Curse 15007750")] + LDElphaelMiquellasHaligtreeSeedbedCurse = 15007750, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Somber Smithing Stone [9] 15007760")] - LDElphaelMiquellasHaligtreeSomberSmithingStone9___ = 15007760, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Somber Smithing Stone [9] 15007760")] + LDElphaelMiquellasHaligtreeSomberSmithingStone9___ = 15007760, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Pickled Turtle Neck 15007770")] - LDElphaelMiquellasHaligtreePickledTurtleNeck = 15007770, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Pickled Turtle Neck 15007770")] + LDElphaelMiquellasHaligtreePickledTurtleNeck = 15007770, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Beast Blood 15007780")] - LDElphaelMiquellasHaligtreeBeastBlood = 15007780, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Beast Blood 15007780")] + LDElphaelMiquellasHaligtreeBeastBlood = 15007780, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Aeonian Butterfly 15007790")] - LDElphaelMiquellasHaligtreeAeonianButterfly__ = 15007790, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Aeonian Butterfly 15007790")] + LDElphaelMiquellasHaligtreeAeonianButterfly__ = 15007790, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Marika's Soreseal 15007800")] - LDElphaelMiquellasHaligtreeMarikasSoreseal = 15007800, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Marika's Soreseal 15007800")] + LDElphaelMiquellasHaligtreeMarikasSoreseal = 15007800, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Golden Rune [12] 15007810")] - LDElphaelMiquellasHaligtreeGoldenRune12___ = 15007810, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Golden Rune [12] 15007810")] + LDElphaelMiquellasHaligtreeGoldenRune12___ = 15007810, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Haligtree Knight Helm 15007820")] - LDElphaelMiquellasHaligtreeHaligtreeKnightHelm = 15007820, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Haligtree Knight Helm 15007820")] + LDElphaelMiquellasHaligtreeHaligtreeKnightHelm = 15007820, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Smithing Stone [6] 15007830")] - LDElphaelMiquellasHaligtreeSmithingStone6__ = 15007830, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Smithing Stone [6] 15007830")] + LDElphaelMiquellasHaligtreeSmithingStone6__ = 15007830, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Seedbed Curse 15007840")] - LDElphaelMiquellasHaligtreeSeedbedCurse_ = 15007840, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Seedbed Curse 15007840")] + LDElphaelMiquellasHaligtreeSeedbedCurse_ = 15007840, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Golden Rune [1] 15007850")] - LDElphaelMiquellasHaligtreeGoldenRune1_________ = 15007850, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Golden Rune [1] 15007850")] + LDElphaelMiquellasHaligtreeGoldenRune1_________ = 15007850, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Rotten Crystal Sword 15007860")] - LDElphaelMiquellasHaligtreeRottenCrystalSword = 15007860, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Rotten Crystal Sword 15007860")] + LDElphaelMiquellasHaligtreeRottenCrystalSword = 15007860, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Hero's Rune [5] 15007870")] - LDElphaelMiquellasHaligtreeHerosRune5 = 15007870, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Hero's Rune [5] 15007870")] + LDElphaelMiquellasHaligtreeHerosRune5 = 15007870, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Rot Grease 15007880")] - LDElphaelMiquellasHaligtreeRotGrease_ = 15007880, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Rot Grease 15007880")] + LDElphaelMiquellasHaligtreeRotGrease_ = 15007880, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Great Grave Glovewort 15007890")] - LDElphaelMiquellasHaligtreeGreatGraveGlovewort = 15007890, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Great Grave Glovewort 15007890")] + LDElphaelMiquellasHaligtreeGreatGraveGlovewort = 15007890, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Golden Rune [10] 15007900")] - LDElphaelMiquellasHaligtreeGoldenRune10_____ = 15007900, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Golden Rune [10] 15007900")] + LDElphaelMiquellasHaligtreeGoldenRune10_____ = 15007900, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Ghost-Glovewort Picker's Bell Bearing [3] 15007910")] - LDElphaelMiquellasHaligtreeGhostGlovewortPickersBellBearing3 = 15007910, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Ghost-Glovewort Picker's Bell Bearing [3] 15007910")] + LDElphaelMiquellasHaligtreeGhostGlovewortPickersBellBearing3 = 15007910, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Nascent Butterfly 15007920")] - LDElphaelMiquellasHaligtreeNascentButterfly = 15007920, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Nascent Butterfly 15007920")] + LDElphaelMiquellasHaligtreeNascentButterfly = 15007920, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Dragoncrest Greatshield Talisman 15007930")] - LDElphaelMiquellasHaligtreeDragoncrestGreatshieldTalisman = 15007930, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Dragoncrest Greatshield Talisman 15007930")] + LDElphaelMiquellasHaligtreeDragoncrestGreatshieldTalisman = 15007930, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Aeonian Butterfly 15007940")] - LDElphaelMiquellasHaligtreeAeonianButterfly___ = 15007940, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Aeonian Butterfly 15007940")] + LDElphaelMiquellasHaligtreeAeonianButterfly___ = 15007940, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Arteria Leaf 15007950")] - LDElphaelMiquellasHaligtreeArteriaLeaf_ = 15007950, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Arteria Leaf 15007950")] + LDElphaelMiquellasHaligtreeArteriaLeaf_ = 15007950, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Hero's Rune [5] 15007960")] - LDElphaelMiquellasHaligtreeHerosRune5_ = 15007960, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Hero's Rune [5] 15007960")] + LDElphaelMiquellasHaligtreeHerosRune5_ = 15007960, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Numen's Rune 15007970")] - LDElphaelMiquellasHaligtreeNumensRune__ = 15007970, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Numen's Rune 15007970")] + LDElphaelMiquellasHaligtreeNumensRune__ = 15007970, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Traveler's Clothes 15007980")] - LDElphaelMiquellasHaligtreeTravelersClothes = 15007980, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Traveler's Clothes 15007980")] + LDElphaelMiquellasHaligtreeTravelersClothes = 15007980, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Miquella's Needle 15007990")] - LDElphaelMiquellasHaligtreeMiquellasNeedle = 15007990, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Miquella's Needle 15007990")] + LDElphaelMiquellasHaligtreeMiquellasNeedle = 15007990, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Golden Seed 15001200")] - LDElphaelMiquellasHaligtreeGoldenSeed = 15001200, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Golden Seed 15001200")] + LDElphaelMiquellasHaligtreeGoldenSeed = 15001200, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] 15001210")] - LDElphaelMiquellasHaligtree = 15001210, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] 15001210")] + LDElphaelMiquellasHaligtree = 15001210, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] 15001250")] - LDElphaelMiquellasHaligtree_ = 15001250, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] 15001250")] + LDElphaelMiquellasHaligtree_ = 15001250, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] 15001260")] - LDElphaelMiquellasHaligtree__ = 15001260, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] 15001260")] + LDElphaelMiquellasHaligtree__ = 15001260, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Lord's Rune 15001270")] - LDElphaelMiquellasHaligtreeLordsRune_ = 15001270, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Lord's Rune 15001270")] + LDElphaelMiquellasHaligtreeLordsRune_ = 15001270, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Rotten Staff 15001280")] - LDElphaelMiquellasHaligtreeRottenStaff = 15001280, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] Rotten Staff 15001280")] + LDElphaelMiquellasHaligtreeRottenStaff = 15001280, - [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] 15001290")] - LDElphaelMiquellasHaligtree___ = 15001290, + [Annotation(Name = "[LD - Elphael / Miquella's Haligtree] 15001290")] + LDElphaelMiquellasHaligtree___ = 15001290, - [Annotation(Name = "[LD - Volcano Manor] Smithing Stone [6] 16007000")] - LDVolcanoManorSmithingStone6 = 16007000, + [Annotation(Name = "[LD - Volcano Manor] Smithing Stone [6] 16007000")] + LDVolcanoManorSmithingStone6 = 16007000, - [Annotation(Name = "[LD - Volcano Manor] Depraved Perfumer Carmaan 16007010")] - LDVolcanoManorDepravedPerfumerCarmaan = 16007010, + [Annotation(Name = "[LD - Volcano Manor] Depraved Perfumer Carmaan 16007010")] + LDVolcanoManorDepravedPerfumerCarmaan = 16007010, - [Annotation(Name = "[LD - Volcano Manor] Ash of War: Royal Knight's Resolve 16007020")] - LDVolcanoManorAshOfWarRoyalKnightsResolve = 16007020, + [Annotation(Name = "[LD - Volcano Manor] Ash of War: Royal Knight's Resolve 16007020")] + LDVolcanoManorAshOfWarRoyalKnightsResolve = 16007020, - [Annotation(Name = "[LD - Volcano Manor] Budding Horn 16007030")] - LDVolcanoManorBuddingHorn = 16007030, + [Annotation(Name = "[LD - Volcano Manor] Budding Horn 16007030")] + LDVolcanoManorBuddingHorn = 16007030, - [Annotation(Name = "[LD - Volcano Manor] Fireproof Dried Liver 16007040")] - LDVolcanoManorFireproofDriedLiver = 16007040, + [Annotation(Name = "[LD - Volcano Manor] Fireproof Dried Liver 16007040")] + LDVolcanoManorFireproofDriedLiver = 16007040, - [Annotation(Name = "[LD - Volcano Manor] Golden Rune [9] 16007050")] - LDVolcanoManorGoldenRune9 = 16007050, + [Annotation(Name = "[LD - Volcano Manor] Golden Rune [9] 16007050")] + LDVolcanoManorGoldenRune9 = 16007050, - [Annotation(Name = "[LD - Volcano Manor] Golden Rune [5] 16007060")] - LDVolcanoManorGoldenRune5 = 16007060, + [Annotation(Name = "[LD - Volcano Manor] Golden Rune [5] 16007060")] + LDVolcanoManorGoldenRune5 = 16007060, - [Annotation(Name = "[LD - Volcano Manor] Stonesword Key 16007070")] - LDVolcanoManorStoneswordKey = 16007070, + [Annotation(Name = "[LD - Volcano Manor] Stonesword Key 16007070")] + LDVolcanoManorStoneswordKey = 16007070, - [Annotation(Name = "[LD - Volcano Manor] Furlcalling Finger Remedy 16007080")] - LDVolcanoManorFurlcallingFingerRemedy = 16007080, + [Annotation(Name = "[LD - Volcano Manor] Furlcalling Finger Remedy 16007080")] + LDVolcanoManorFurlcallingFingerRemedy = 16007080, - [Annotation(Name = "[LD - Volcano Manor] Nomadic Warrior's Cookbook [21] 67120")] - LDVolcanoManorNomadicWarriorsCookbook21 = 67120, + [Annotation(Name = "[LD - Volcano Manor] Nomadic Warrior's Cookbook [21] 67120")] + LDVolcanoManorNomadicWarriorsCookbook21 = 67120, - [Annotation(Name = "[LD - Volcano Manor] Somber Smithing Stone [7] 16007100")] - LDVolcanoManorSomberSmithingStone7 = 16007100, + [Annotation(Name = "[LD - Volcano Manor] Somber Smithing Stone [7] 16007100")] + LDVolcanoManorSomberSmithingStone7 = 16007100, - [Annotation(Name = "[LD - Volcano Manor] Perfume Bottle 66700")] - LDVolcanoManorPerfumeBottle = 66700, + [Annotation(Name = "[LD - Volcano Manor] Perfume Bottle 66700")] + LDVolcanoManorPerfumeBottle = 66700, - [Annotation(Name = "[LD - Volcano Manor] Smithing Stone [6] 16007120")] - LDVolcanoManorSmithingStone6_ = 16007120, + [Annotation(Name = "[LD - Volcano Manor] Smithing Stone [6] 16007120")] + LDVolcanoManorSmithingStone6_ = 16007120, - [Annotation(Name = "[LD - Volcano Manor] Erdtree Seal 16007130")] - LDVolcanoManorErdtreeSeal = 16007130, + [Annotation(Name = "[LD - Volcano Manor] Erdtree Seal 16007130")] + LDVolcanoManorErdtreeSeal = 16007130, - [Annotation(Name = "[LD - Volcano Manor] Drawstring Fire Grease 16007140")] - LDVolcanoManorDrawstringFireGrease = 16007140, + [Annotation(Name = "[LD - Volcano Manor] Drawstring Fire Grease 16007140")] + LDVolcanoManorDrawstringFireGrease = 16007140, - [Annotation(Name = "[LD - Volcano Manor] Golden Rune [6] 16007150")] - LDVolcanoManorGoldenRune6 = 16007150, + [Annotation(Name = "[LD - Volcano Manor] Golden Rune [6] 16007150")] + LDVolcanoManorGoldenRune6 = 16007150, - [Annotation(Name = "[LD - Volcano Manor] Fire Arrow 16007160")] - LDVolcanoManorFireArrow = 16007160, + [Annotation(Name = "[LD - Volcano Manor] Fire Arrow 16007160")] + LDVolcanoManorFireArrow = 16007160, - [Annotation(Name = "[LD - Volcano Manor] Golden Rune [9] 16007170")] - LDVolcanoManorGoldenRune9_ = 16007170, + [Annotation(Name = "[LD - Volcano Manor] Golden Rune [9] 16007170")] + LDVolcanoManorGoldenRune9_ = 16007170, - [Annotation(Name = "[LD - Volcano Manor] Explosive Greatbolt 16007190")] - LDVolcanoManorExplosiveGreatbolt = 16007190, + [Annotation(Name = "[LD - Volcano Manor] Explosive Greatbolt 16007190")] + LDVolcanoManorExplosiveGreatbolt = 16007190, - [Annotation(Name = "[LD - Volcano Manor] Golden Rune [9] 16007200")] - LDVolcanoManorGoldenRune9__ = 16007200, + [Annotation(Name = "[LD - Volcano Manor] Golden Rune [9] 16007200")] + LDVolcanoManorGoldenRune9__ = 16007200, - [Annotation(Name = "[LD - Volcano Manor] Somber Smithing Stone [6] 16007210")] - LDVolcanoManorSomberSmithingStone6 = 16007210, + [Annotation(Name = "[LD - Volcano Manor] Somber Smithing Stone [6] 16007210")] + LDVolcanoManorSomberSmithingStone6 = 16007210, - [Annotation(Name = "[LD - Volcano Manor] Fireproof Dried Liver 16007220")] - LDVolcanoManorFireproofDriedLiver_ = 16007220, + [Annotation(Name = "[LD - Volcano Manor] Fireproof Dried Liver 16007220")] + LDVolcanoManorFireproofDriedLiver_ = 16007220, - [Annotation(Name = "[LD - Volcano Manor] Albinauric Bloodclot 16007230")] - LDVolcanoManorAlbinauricBloodclot = 16007230, + [Annotation(Name = "[LD - Volcano Manor] Albinauric Bloodclot 16007230")] + LDVolcanoManorAlbinauricBloodclot = 16007230, - [Annotation(Name = "[LD - Volcano Manor] Smithing Stone [4] 16007240")] - LDVolcanoManorSmithingStone4 = 16007240, + [Annotation(Name = "[LD - Volcano Manor] Smithing Stone [4] 16007240")] + LDVolcanoManorSmithingStone4 = 16007240, - [Annotation(Name = "[LD - Volcano Manor] Smithing Stone [6] 16007250")] - LDVolcanoManorSmithingStone6__ = 16007250, + [Annotation(Name = "[LD - Volcano Manor] Smithing Stone [6] 16007250")] + LDVolcanoManorSmithingStone6__ = 16007250, - [Annotation(Name = "[LD - Volcano Manor] Smoldering Butterfly 16007270")] - LDVolcanoManorSmolderingButterfly = 16007270, + [Annotation(Name = "[LD - Volcano Manor] Smoldering Butterfly 16007270")] + LDVolcanoManorSmolderingButterfly = 16007270, - [Annotation(Name = "[LD - Volcano Manor] Smithing Stone [7] 16007280")] - LDVolcanoManorSmithingStone7 = 16007280, + [Annotation(Name = "[LD - Volcano Manor] Smithing Stone [7] 16007280")] + LDVolcanoManorSmithingStone7 = 16007280, - [Annotation(Name = "[LD - Volcano Manor] Somber Smithing Stone [5] 16007290")] - LDVolcanoManorSomberSmithingStone5 = 16007290, + [Annotation(Name = "[LD - Volcano Manor] Somber Smithing Stone [5] 16007290")] + LDVolcanoManorSomberSmithingStone5 = 16007290, - [Annotation(Name = "[LD - Volcano Manor] Smoldering Butterfly 16007310")] - LDVolcanoManorSmolderingButterfly_ = 16007310, + [Annotation(Name = "[LD - Volcano Manor] Smoldering Butterfly 16007310")] + LDVolcanoManorSmolderingButterfly_ = 16007310, - [Annotation(Name = "[LD - Volcano Manor] Golden Rune [9] 16007320")] - LDVolcanoManorGoldenRune9___ = 16007320, + [Annotation(Name = "[LD - Volcano Manor] Golden Rune [9] 16007320")] + LDVolcanoManorGoldenRune9___ = 16007320, - [Annotation(Name = "[LD - Volcano Manor] Golden Rune [10] 16007330")] - LDVolcanoManorGoldenRune10 = 16007330, + [Annotation(Name = "[LD - Volcano Manor] Golden Rune [10] 16007330")] + LDVolcanoManorGoldenRune10 = 16007330, - [Annotation(Name = "[LD - Volcano Manor] Smithing Stone [6] 16007350")] - LDVolcanoManorSmithingStone6___ = 16007350, + [Annotation(Name = "[LD - Volcano Manor] Smithing Stone [6] 16007350")] + LDVolcanoManorSmithingStone6___ = 16007350, - [Annotation(Name = "[LD - Volcano Manor] Golden Rune [9] 16007360")] - LDVolcanoManorGoldenRune9____ = 16007360, + [Annotation(Name = "[LD - Volcano Manor] Golden Rune [9] 16007360")] + LDVolcanoManorGoldenRune9____ = 16007360, - [Annotation(Name = "[LD - Volcano Manor] Smithing Stone [5] 16007380")] - LDVolcanoManorSmithingStone5 = 16007380, + [Annotation(Name = "[LD - Volcano Manor] Smithing Stone [5] 16007380")] + LDVolcanoManorSmithingStone5 = 16007380, - [Annotation(Name = "[LD - Volcano Manor] Smoldering Butterfly 16007390")] - LDVolcanoManorSmolderingButterfly__ = 16007390, + [Annotation(Name = "[LD - Volcano Manor] Smoldering Butterfly 16007390")] + LDVolcanoManorSmolderingButterfly__ = 16007390, - [Annotation(Name = "[LD - Volcano Manor] Golden Rune [12] 16007400")] - LDVolcanoManorGoldenRune12 = 16007400, + [Annotation(Name = "[LD - Volcano Manor] Golden Rune [12] 16007400")] + LDVolcanoManorGoldenRune12 = 16007400, - [Annotation(Name = "[LD - Volcano Manor] Furlcalling Finger Remedy 16007410")] - LDVolcanoManorFurlcallingFingerRemedy_ = 16007410, + [Annotation(Name = "[LD - Volcano Manor] Furlcalling Finger Remedy 16007410")] + LDVolcanoManorFurlcallingFingerRemedy_ = 16007410, - [Annotation(Name = "[LD - Volcano Manor] Beast Blood 16007420")] - LDVolcanoManorBeastBlood = 16007420, + [Annotation(Name = "[LD - Volcano Manor] Beast Blood 16007420")] + LDVolcanoManorBeastBlood = 16007420, - [Annotation(Name = "[LD - Volcano Manor] Albinauric Staff 16007430")] - LDVolcanoManorAlbinauricStaff = 16007430, + [Annotation(Name = "[LD - Volcano Manor] Albinauric Staff 16007430")] + LDVolcanoManorAlbinauricStaff = 16007430, - [Annotation(Name = "[LD - Volcano Manor] Drawstring Fire Grease 16007440")] - LDVolcanoManorDrawstringFireGrease_ = 16007440, + [Annotation(Name = "[LD - Volcano Manor] Drawstring Fire Grease 16007440")] + LDVolcanoManorDrawstringFireGrease_ = 16007440, - [Annotation(Name = "[LD - Volcano Manor] Missionary's Cookbook [6] 67130")] - LDVolcanoManorMissionarysCookbook6 = 67130, + [Annotation(Name = "[LD - Volcano Manor] Missionary's Cookbook [6] 67130")] + LDVolcanoManorMissionarysCookbook6 = 67130, - [Annotation(Name = "[LD - Volcano Manor] Crimson Tear Scarab 16007480")] - LDVolcanoManorCrimsonTearScarab = 16007480, + [Annotation(Name = "[LD - Volcano Manor] Crimson Tear Scarab 16007480")] + LDVolcanoManorCrimsonTearScarab = 16007480, - [Annotation(Name = "[LD - Volcano Manor] Stonesword Key 16007490")] - LDVolcanoManorStoneswordKey_ = 16007490, + [Annotation(Name = "[LD - Volcano Manor] Stonesword Key 16007490")] + LDVolcanoManorStoneswordKey_ = 16007490, - [Annotation(Name = "[LD - Volcano Manor] Rune Arc 16007500")] - LDVolcanoManorRuneArc = 16007500, + [Annotation(Name = "[LD - Volcano Manor] Rune Arc 16007500")] + LDVolcanoManorRuneArc = 16007500, - [Annotation(Name = "[LD - Volcano Manor] Commoner's Headband 16007510")] - LDVolcanoManorCommonersHeadband = 16007510, + [Annotation(Name = "[LD - Volcano Manor] Commoner's Headband 16007510")] + LDVolcanoManorCommonersHeadband = 16007510, - [Annotation(Name = "[LD - Volcano Manor] Man-Serpent Ashes 16007520")] - LDVolcanoManorManSerpentAshes = 16007520, + [Annotation(Name = "[LD - Volcano Manor] Man-Serpent Ashes 16007520")] + LDVolcanoManorManSerpentAshes = 16007520, - [Annotation(Name = "[LD - Volcano Manor] Somber Smithing Stone [6] 16007530")] - LDVolcanoManorSomberSmithingStone6_ = 16007530, + [Annotation(Name = "[LD - Volcano Manor] Somber Smithing Stone [6] 16007530")] + LDVolcanoManorSomberSmithingStone6_ = 16007530, - [Annotation(Name = "[LD - Volcano Manor] Crimson Amber Medallion +1 16007540")] - LDVolcanoManorCrimsonAmberMedallion1 = 16007540, + [Annotation(Name = "[LD - Volcano Manor] Crimson Amber Medallion +1 16007540")] + LDVolcanoManorCrimsonAmberMedallion1 = 16007540, - [Annotation(Name = "[LD - Volcano Manor] Smithing Stone [6] 16007550")] - LDVolcanoManorSmithingStone6____ = 16007550, + [Annotation(Name = "[LD - Volcano Manor] Smithing Stone [6] 16007550")] + LDVolcanoManorSmithingStone6____ = 16007550, - [Annotation(Name = "[LD - Volcano Manor] Smithing Stone [4] 16007560")] - LDVolcanoManorSmithingStone4_ = 16007560, + [Annotation(Name = "[LD - Volcano Manor] Smithing Stone [4] 16007560")] + LDVolcanoManorSmithingStone4_ = 16007560, - [Annotation(Name = "[LD - Volcano Manor] Smoldering Shield 16007610")] - LDVolcanoManorSmolderingShield = 16007610, + [Annotation(Name = "[LD - Volcano Manor] Smoldering Shield 16007610")] + LDVolcanoManorSmolderingShield = 16007610, - [Annotation(Name = "[LD - Volcano Manor] Dagger Talisman 16007620")] - LDVolcanoManorDaggerTalisman = 16007620, + [Annotation(Name = "[LD - Volcano Manor] Dagger Talisman 16007620")] + LDVolcanoManorDaggerTalisman = 16007620, - [Annotation(Name = "[LD - Volcano Manor] Serpent-Hunter 16007690")] - LDVolcanoManorSerpentHunter = 16007690, + [Annotation(Name = "[LD - Volcano Manor] Serpent-Hunter 16007690")] + LDVolcanoManorSerpentHunter = 16007690, - [Annotation(Name = "[LD - Volcano Manor] Seedbed Curse 16007700")] - LDVolcanoManorSeedbedCurse = 16007700, + [Annotation(Name = "[LD - Volcano Manor] Seedbed Curse 16007700")] + LDVolcanoManorSeedbedCurse = 16007700, - [Annotation(Name = "[LD - Volcano Manor] Serpent's Amnion 16007710")] - LDVolcanoManorSerpentsAmnion = 16007710, + [Annotation(Name = "[LD - Volcano Manor] Serpent's Amnion 16007710")] + LDVolcanoManorSerpentsAmnion = 16007710, - [Annotation(Name = "[LD - Volcano Manor] Recusant Finger 60260")] - LDVolcanoManorRecusantFinger = 60260, + [Annotation(Name = "[LD - Volcano Manor] Recusant Finger 60260")] + LDVolcanoManorRecusantFinger = 60260, - [Annotation(Name = "[LD - Volcano Manor] Eye Surcoat 16007730")] - LDVolcanoManorEyeSurcoat = 16007730, + [Annotation(Name = "[LD - Volcano Manor] Eye Surcoat 16007730")] + LDVolcanoManorEyeSurcoat = 16007730, - [Annotation(Name = "[LD - Volcano Manor] Ghiza's Wheel 16007940")] - LDVolcanoManorGhizasWheel = 16007940, + [Annotation(Name = "[LD - Volcano Manor] Ghiza's Wheel 16007940")] + LDVolcanoManorGhizasWheel = 16007940, - [Annotation(Name = "[LD - Volcano Manor] [Incantation] Aspects of the Crucible: Breath 16007950")] - LDVolcanoManorIncantationAspectsOfTheCrucibleBreath = 16007950, + [Annotation(Name = "[LD - Volcano Manor] [Incantation] Aspects of the Crucible: Breath 16007950")] + LDVolcanoManorIncantationAspectsOfTheCrucibleBreath = 16007950, - [Annotation(Name = "[LD - Volcano Manor] Golden Rune [1] 16007991")] - LDVolcanoManorGoldenRune1 = 16007991, + [Annotation(Name = "[LD - Volcano Manor] Golden Rune [1] 16007991")] + LDVolcanoManorGoldenRune1 = 16007991, - [Annotation(Name = "[LD - Volcano Manor] Golden Rune [1] 16007992")] - LDVolcanoManorGoldenRune1_ = 16007992, + [Annotation(Name = "[LD - Volcano Manor] Golden Rune [1] 16007992")] + LDVolcanoManorGoldenRune1_ = 16007992, - [Annotation(Name = "[LD - Volcano Manor] Dragon Heart 16007999")] - LDVolcanoManorDragonHeart = 16007999, + [Annotation(Name = "[LD - Volcano Manor] Dragon Heart 16007999")] + LDVolcanoManorDragonHeart = 16007999, - [Annotation(Name = "[LD - Stranded Graveyard] Poisonbone Dart 18007000")] - LDStrandedGraveyardPoisonboneDart = 18007000, + [Annotation(Name = "[LD - Stranded Graveyard] Poisonbone Dart 18007000")] + LDStrandedGraveyardPoisonboneDart = 18007000, - [Annotation(Name = "[LD - Stranded Graveyard] Stonesword Key 18007010")] - LDStrandedGraveyardStoneswordKey = 18007010, + [Annotation(Name = "[LD - Stranded Graveyard] Stonesword Key 18007010")] + LDStrandedGraveyardStoneswordKey = 18007010, - [Annotation(Name = "[LD - Stranded Graveyard] Golden Rune [5] 18007020")] - LDStrandedGraveyardGoldenRune5 = 18007020, + [Annotation(Name = "[LD - Stranded Graveyard] Golden Rune [5] 18007020")] + LDStrandedGraveyardGoldenRune5 = 18007020, - [Annotation(Name = "[LD - Stranded Graveyard] Dragonwound Grease 18007030")] - LDStrandedGraveyardDragonwoundGrease = 18007030, + [Annotation(Name = "[LD - Stranded Graveyard] Dragonwound Grease 18007030")] + LDStrandedGraveyardDragonwoundGrease = 18007030, - [Annotation(Name = "[LD - Stranded Graveyard] Lightning Grease 18007040")] - LDStrandedGraveyardLightningGrease = 18007040, + [Annotation(Name = "[LD - Stranded Graveyard] Lightning Grease 18007040")] + LDStrandedGraveyardLightningGrease = 18007040, - [Annotation(Name = "[LD - Stranded Graveyard] Erdtree's Favor 18007050")] - LDStrandedGraveyardErdtreesFavor = 18007050, + [Annotation(Name = "[LD - Stranded Graveyard] Erdtree's Favor 18007050")] + LDStrandedGraveyardErdtreesFavor = 18007050, - [Annotation(Name = "[LD - Stranded Graveyard] Grave Glovewort [1] 18007060")] - LDStrandedGraveyardGraveGlovewort1 = 18007060, + [Annotation(Name = "[LD - Stranded Graveyard] Grave Glovewort [1] 18007060")] + LDStrandedGraveyardGraveGlovewort1 = 18007060, - [Annotation(Name = "[LD - Stranded Graveyard] Haligdrake Talisman 18007070")] - LDStrandedGraveyardHaligdrakeTalisman = 18007070, + [Annotation(Name = "[LD - Stranded Graveyard] Haligdrake Talisman 18007070")] + LDStrandedGraveyardHaligdrakeTalisman = 18007070, - [Annotation(Name = "[LD - Stranded Graveyard] Tarnished's Furled Finger 60220")] - LDStrandedGraveyardTarnishedsFurledFinger = 60220, + [Annotation(Name = "[LD - Stranded Graveyard] Tarnished's Furled Finger 60220")] + LDStrandedGraveyardTarnishedsFurledFinger = 60220, - [Annotation(Name = "[LD - Stranded Graveyard] Finger Severer 60310")] - LDStrandedGraveyardFingerSeverer = 60310, + [Annotation(Name = "[LD - Stranded Graveyard] Finger Severer 60310")] + LDStrandedGraveyardFingerSeverer = 60310, - [Annotation(Name = "[LD - Stranded Graveyard] Erdtree Greatbow 18007900")] - LDStrandedGraveyardErdtreeGreatbow = 18007900, + [Annotation(Name = "[LD - Stranded Graveyard] Erdtree Greatbow 18007900")] + LDStrandedGraveyardErdtreeGreatbow = 18007900, - [Annotation(Name = "[Weeping Peninsula - Tombsward Catacombs] Human Bone Shard 30007010")] - WeepingPeninsulaTombswardCatacombsHumanBoneShard = 30007010, + [Annotation(Name = "[Weeping Peninsula - Tombsward Catacombs] Human Bone Shard 30007010")] + WeepingPeninsulaTombswardCatacombsHumanBoneShard = 30007010, - [Annotation(Name = "[Weeping Peninsula - Tombsward Catacombs] Golden Rune [2] 30007020")] - WeepingPeninsulaTombswardCatacombsGoldenRune2 = 30007020, + [Annotation(Name = "[Weeping Peninsula - Tombsward Catacombs] Golden Rune [2] 30007020")] + WeepingPeninsulaTombswardCatacombsGoldenRune2 = 30007020, - [Annotation(Name = "[Weeping Peninsula - Tombsward Catacombs] Nomadic Warrior's Cookbook [9] 67430")] - WeepingPeninsulaTombswardCatacombsNomadicWarriorsCookbook9 = 67430, + [Annotation(Name = "[Weeping Peninsula - Tombsward Catacombs] Nomadic Warrior's Cookbook [9] 67430")] + WeepingPeninsulaTombswardCatacombsNomadicWarriorsCookbook9 = 67430, - [Annotation(Name = "[Weeping Peninsula - Tombsward Catacombs] Prattling Pate \"Thank you\" 30007040")] - WeepingPeninsulaTombswardCatacombsPrattlingPateThankyou = 30007040, + [Annotation(Name = "[Weeping Peninsula - Tombsward Catacombs] Prattling Pate \"Thank you\" 30007040")] + WeepingPeninsulaTombswardCatacombsPrattlingPateThankyou = 30007040, - [Annotation(Name = "[Weeping Peninsula - Impaler's Catacombs] Root Resin 30017010")] - WeepingPeninsulaImpalersCatacombsRootResin = 30017010, + [Annotation(Name = "[Weeping Peninsula - Impaler's Catacombs] Root Resin 30017010")] + WeepingPeninsulaImpalersCatacombsRootResin = 30017010, - [Annotation(Name = "[Weeping Peninsula - Impaler's Catacombs] Prattling Pate \"Please help\" 30017020")] - WeepingPeninsulaImpalersCatacombsPrattlingPatePleasehelp = 30017020, + [Annotation(Name = "[Weeping Peninsula - Impaler's Catacombs] Prattling Pate \"Please help\" 30017020")] + WeepingPeninsulaImpalersCatacombsPrattlingPatePleasehelp = 30017020, - [Annotation(Name = "[Limgrave - Stormfoot Catacombs] Root Resin 30027000")] - LimgraveStormfootCatacombsRootResin = 30027000, + [Annotation(Name = "[Limgrave - Stormfoot Catacombs] Root Resin 30027000")] + LimgraveStormfootCatacombsRootResin = 30027000, - [Annotation(Name = "[Limgrave - Stormfoot Catacombs] Smoldering Butterfly 30027010")] - LimgraveStormfootCatacombsSmolderingButterfly = 30027010, + [Annotation(Name = "[Limgrave - Stormfoot Catacombs] Smoldering Butterfly 30027010")] + LimgraveStormfootCatacombsSmolderingButterfly = 30027010, - [Annotation(Name = "[Limgrave - Stormfoot Catacombs] Wandering Noble Ashes 30027020")] - LimgraveStormfootCatacombsWanderingNobleAshes = 30027020, + [Annotation(Name = "[Limgrave - Stormfoot Catacombs] Wandering Noble Ashes 30027020")] + LimgraveStormfootCatacombsWanderingNobleAshes = 30027020, - [Annotation(Name = "[Limgrave - Stormfoot Catacombs] Prattling Pate \"Hello\" 30027030")] - LimgraveStormfootCatacombsPrattlingPateHello = 30027030, + [Annotation(Name = "[Limgrave - Stormfoot Catacombs] Prattling Pate \"Hello\" 30027030")] + LimgraveStormfootCatacombsPrattlingPateHello = 30027030, - [Annotation(Name = "[Liurnia - Road's End Catacombs] Root Resin 30037000")] - LiurniaRoadsEndCatacombsRootResin = 30037000, + [Annotation(Name = "[Liurnia - Road's End Catacombs] Root Resin 30037000")] + LiurniaRoadsEndCatacombsRootResin = 30037000, - [Annotation(Name = "[Liurnia - Road's End Catacombs] Raya Lucaria Soldier Ashes 30037010")] - LiurniaRoadsEndCatacombsRayaLucariaSoldierAshes = 30037010, + [Annotation(Name = "[Liurnia - Road's End Catacombs] Raya Lucaria Soldier Ashes 30037010")] + LiurniaRoadsEndCatacombsRayaLucariaSoldierAshes = 30037010, - [Annotation(Name = "[Liurnia - Road's End Catacombs] Human Bone Shard 30037020")] - LiurniaRoadsEndCatacombsHumanBoneShard = 30037020, + [Annotation(Name = "[Liurnia - Road's End Catacombs] Human Bone Shard 30037020")] + LiurniaRoadsEndCatacombsHumanBoneShard = 30037020, - [Annotation(Name = "[Liurnia - Road's End Catacombs] Rune Arc 30037030")] - LiurniaRoadsEndCatacombsRuneArc = 30037030, + [Annotation(Name = "[Liurnia - Road's End Catacombs] Rune Arc 30037030")] + LiurniaRoadsEndCatacombsRuneArc = 30037030, - [Annotation(Name = "[Liurnia - Road's End Catacombs] Watchdog's Staff 30037040")] - LiurniaRoadsEndCatacombsWatchdogsStaff = 30037040, + [Annotation(Name = "[Liurnia - Road's End Catacombs] Watchdog's Staff 30037040")] + LiurniaRoadsEndCatacombsWatchdogsStaff = 30037040, - [Annotation(Name = "[Limgrave - Murkwater Catacombs] Root Resin 30047000")] - LimgraveMurkwaterCatacombsRootResin = 30047000, + [Annotation(Name = "[Limgrave - Murkwater Catacombs] Root Resin 30047000")] + LimgraveMurkwaterCatacombsRootResin = 30047000, - [Annotation(Name = "[Liurnia - Black Knife Catacombs] Rosus' Axe 30057000")] - LiurniaBlackKnifeCatacombsRosusAxe = 30057000, + [Annotation(Name = "[Liurnia - Black Knife Catacombs] Rosus' Axe 30057000")] + LiurniaBlackKnifeCatacombsRosusAxe = 30057000, - [Annotation(Name = "[Liurnia - Black Knife Catacombs] Rune Arc 30057010")] - LiurniaBlackKnifeCatacombsRuneArc = 30057010, + [Annotation(Name = "[Liurnia - Black Knife Catacombs] Rune Arc 30057010")] + LiurniaBlackKnifeCatacombsRuneArc = 30057010, - [Annotation(Name = "[Liurnia - Black Knife Catacombs] Deathroot 30057030")] - LiurniaBlackKnifeCatacombsDeathroot = 30057030, + [Annotation(Name = "[Liurnia - Black Knife Catacombs] Deathroot 30057030")] + LiurniaBlackKnifeCatacombsDeathroot = 30057030, - [Annotation(Name = "[Liurnia - Black Knife Catacombs] Spellproof Dried Liver 30057040")] - LiurniaBlackKnifeCatacombsSpellproofDriedLiver = 30057040, + [Annotation(Name = "[Liurnia - Black Knife Catacombs] Spellproof Dried Liver 30057040")] + LiurniaBlackKnifeCatacombsSpellproofDriedLiver = 30057040, - [Annotation(Name = "[Liurnia - Cliffbottom Catacombs] Root Resin 30067000")] - LiurniaCliffbottomCatacombsRootResin = 30067000, + [Annotation(Name = "[Liurnia - Cliffbottom Catacombs] Root Resin 30067000")] + LiurniaCliffbottomCatacombsRootResin = 30067000, - [Annotation(Name = "[Liurnia - Cliffbottom Catacombs] Nox Mirrorhelm 30067010")] - LiurniaCliffbottomCatacombsNoxMirrorhelm = 30067010, + [Annotation(Name = "[Liurnia - Cliffbottom Catacombs] Nox Mirrorhelm 30067010")] + LiurniaCliffbottomCatacombsNoxMirrorhelm = 30067010, - [Annotation(Name = "[Liurnia - Cliffbottom Catacombs] Golden Rune [3] 30067020")] - LiurniaCliffbottomCatacombsGoldenRune3 = 30067020, + [Annotation(Name = "[Liurnia - Cliffbottom Catacombs] Golden Rune [3] 30067020")] + LiurniaCliffbottomCatacombsGoldenRune3 = 30067020, - [Annotation(Name = "[Liurnia - Cliffbottom Catacombs] Page Ashes 30067030")] - LiurniaCliffbottomCatacombsPageAshes = 30067030, + [Annotation(Name = "[Liurnia - Cliffbottom Catacombs] Page Ashes 30067030")] + LiurniaCliffbottomCatacombsPageAshes = 30067030, - [Annotation(Name = "[Liurnia - Cliffbottom Catacombs] Rune Arc 30067040")] - LiurniaCliffbottomCatacombsRuneArc = 30067040, + [Annotation(Name = "[Liurnia - Cliffbottom Catacombs] Rune Arc 30067040")] + LiurniaCliffbottomCatacombsRuneArc = 30067040, - [Annotation(Name = "[Liurnia - Cliffbottom Catacombs] Old Fang 30067050")] - LiurniaCliffbottomCatacombsOldFang = 30067050, + [Annotation(Name = "[Liurnia - Cliffbottom Catacombs] Old Fang 30067050")] + LiurniaCliffbottomCatacombsOldFang = 30067050, - [Annotation(Name = "[Liurnia - Cliffbottom Catacombs] Hefty Beast Bone 30067060")] - LiurniaCliffbottomCatacombsHeftyBeastBone = 30067060, + [Annotation(Name = "[Liurnia - Cliffbottom Catacombs] Hefty Beast Bone 30067060")] + LiurniaCliffbottomCatacombsHeftyBeastBone = 30067060, - [Annotation(Name = "[Liurnia - Cliffbottom Catacombs] Scythe 30067070")] - LiurniaCliffbottomCatacombsScythe = 30067070, + [Annotation(Name = "[Liurnia - Cliffbottom Catacombs] Scythe 30067070")] + LiurniaCliffbottomCatacombsScythe = 30067070, - [Annotation(Name = "[Liurnia - Cliffbottom Catacombs] Prattling Pate \"Wonderful\" 30067080")] - LiurniaCliffbottomCatacombsPrattlingPateWonderful = 30067080, + [Annotation(Name = "[Liurnia - Cliffbottom Catacombs] Prattling Pate \"Wonderful\" 30067080")] + LiurniaCliffbottomCatacombsPrattlingPateWonderful = 30067080, - [Annotation(Name = "[Mt. Gelmir - Wyndham Catacombs] Ancient Dragon Apostle's Cookbook [1] 68000")] - MtGelmirWyndhamCatacombsAncientDragonApostlesCookbook1 = 68000, + [Annotation(Name = "[Mt. Gelmir - Wyndham Catacombs] Ancient Dragon Apostle's Cookbook [1] 68000")] + MtGelmirWyndhamCatacombsAncientDragonApostlesCookbook1 = 68000, - [Annotation(Name = "[Mt. Gelmir - Wyndham Catacombs] Golden Rune [5] 30077010")] - MtGelmirWyndhamCatacombsGoldenRune5 = 30077010, + [Annotation(Name = "[Mt. Gelmir - Wyndham Catacombs] Golden Rune [5] 30077010")] + MtGelmirWyndhamCatacombsGoldenRune5 = 30077010, - [Annotation(Name = "[Mt. Gelmir - Wyndham Catacombs] Magic Grease 30077020")] - MtGelmirWyndhamCatacombsMagicGrease = 30077020, + [Annotation(Name = "[Mt. Gelmir - Wyndham Catacombs] Magic Grease 30077020")] + MtGelmirWyndhamCatacombsMagicGrease = 30077020, - [Annotation(Name = "[Mt. Gelmir - Wyndham Catacombs] Lightning Scorpion Charm 30077600")] - MtGelmirWyndhamCatacombsLightningScorpionCharm = 30077600, + [Annotation(Name = "[Mt. Gelmir - Wyndham Catacombs] Lightning Scorpion Charm 30077600")] + MtGelmirWyndhamCatacombsLightningScorpionCharm = 30077600, - [Annotation(Name = "[Mt. Gelmir - Wyndham Catacombs] Golden Rune [1] 30077900")] - MtGelmirWyndhamCatacombsGoldenRune1 = 30077900, + [Annotation(Name = "[Mt. Gelmir - Wyndham Catacombs] Golden Rune [1] 30077900")] + MtGelmirWyndhamCatacombsGoldenRune1 = 30077900, - [Annotation(Name = "[Altus Plateau - Sainted Hero's Grave] Crimson Seed Talisman 30087010")] - AltusPlateauSaintedHerosGraveCrimsonSeedTalisman = 30087010, + [Annotation(Name = "[Altus Plateau - Sainted Hero's Grave] Crimson Seed Talisman 30087010")] + AltusPlateauSaintedHerosGraveCrimsonSeedTalisman = 30087010, - [Annotation(Name = "[Altus Plateau - Sainted Hero's Grave] Leyndell Soldier Ashes 30087020")] - AltusPlateauSaintedHerosGraveLeyndellSoldierAshes = 30087020, + [Annotation(Name = "[Altus Plateau - Sainted Hero's Grave] Leyndell Soldier Ashes 30087020")] + AltusPlateauSaintedHerosGraveLeyndellSoldierAshes = 30087020, - [Annotation(Name = "[Altus Plateau - Sainted Hero's Grave] Dragoncrest Shield Talisman +1 30087030")] - AltusPlateauSaintedHerosGraveDragoncrestShieldTalisman1 = 30087030, + [Annotation(Name = "[Altus Plateau - Sainted Hero's Grave] Dragoncrest Shield Talisman +1 30087030")] + AltusPlateauSaintedHerosGraveDragoncrestShieldTalisman1 = 30087030, - [Annotation(Name = "[Altus Plateau - Sainted Hero's Grave] Root Resin 30087040")] - AltusPlateauSaintedHerosGraveRootResin = 30087040, + [Annotation(Name = "[Altus Plateau - Sainted Hero's Grave] Root Resin 30087040")] + AltusPlateauSaintedHerosGraveRootResin = 30087040, - [Annotation(Name = "[Altus Plateau - Sainted Hero's Grave] Prattling Pate \"Let's get to it\" 30087050")] - AltusPlateauSaintedHerosGravePrattlingPateLetsgettoit = 30087050, + [Annotation(Name = "[Altus Plateau - Sainted Hero's Grave] Prattling Pate \"Let's get to it\" 30087050")] + AltusPlateauSaintedHerosGravePrattlingPateLetsgettoit = 30087050, - [Annotation(Name = "[Altus Plateau - Sainted Hero's Grave] Human Bone Shard 30087060")] - AltusPlateauSaintedHerosGraveHumanBoneShard = 30087060, + [Annotation(Name = "[Altus Plateau - Sainted Hero's Grave] Human Bone Shard 30087060")] + AltusPlateauSaintedHerosGraveHumanBoneShard = 30087060, - [Annotation(Name = "[Mt. Gelmir - Gelmir Hero's Grave] Deathroot 30097000")] - MtGelmirGelmirHerosGraveDeathroot = 30097000, + [Annotation(Name = "[Mt. Gelmir - Gelmir Hero's Grave] Deathroot 30097000")] + MtGelmirGelmirHerosGraveDeathroot = 30097000, - [Annotation(Name = "[Mt. Gelmir - Gelmir Hero's Grave] Ringed Finger 30097010")] - MtGelmirGelmirHerosGraveRingedFinger = 30097010, + [Annotation(Name = "[Mt. Gelmir - Gelmir Hero's Grave] Ringed Finger 30097010")] + MtGelmirGelmirHerosGraveRingedFinger = 30097010, - [Annotation(Name = "[Mt. Gelmir - Gelmir Hero's Grave] Golden Rune [6] 30097020")] - MtGelmirGelmirHerosGraveGoldenRune6 = 30097020, + [Annotation(Name = "[Mt. Gelmir - Gelmir Hero's Grave] Golden Rune [6] 30097020")] + MtGelmirGelmirHerosGraveGoldenRune6 = 30097020, - [Annotation(Name = "[Mt. Gelmir - Gelmir Hero's Grave] Smoldering Butterfly 30097030")] - MtGelmirGelmirHerosGraveSmolderingButterfly = 30097030, + [Annotation(Name = "[Mt. Gelmir - Gelmir Hero's Grave] Smoldering Butterfly 30097030")] + MtGelmirGelmirHerosGraveSmolderingButterfly = 30097030, - [Annotation(Name = "[Mt. Gelmir - Gelmir Hero's Grave] Stonesword Key 30097040")] - MtGelmirGelmirHerosGraveStoneswordKey = 30097040, + [Annotation(Name = "[Mt. Gelmir - Gelmir Hero's Grave] Stonesword Key 30097040")] + MtGelmirGelmirHerosGraveStoneswordKey = 30097040, - [Annotation(Name = "[Mt. Gelmir - Gelmir Hero's Grave] Gelmir Knight Helm 30097050")] - MtGelmirGelmirHerosGraveGelmirKnightHelm = 30097050, + [Annotation(Name = "[Mt. Gelmir - Gelmir Hero's Grave] Gelmir Knight Helm 30097050")] + MtGelmirGelmirHerosGraveGelmirKnightHelm = 30097050, - [Annotation(Name = "[Mt. Gelmir - Gelmir Hero's Grave] Root Resin 30097060")] - MtGelmirGelmirHerosGraveRootResin = 30097060, + [Annotation(Name = "[Mt. Gelmir - Gelmir Hero's Grave] Root Resin 30097060")] + MtGelmirGelmirHerosGraveRootResin = 30097060, - [Annotation(Name = "[Mt. Gelmir - Gelmir Hero's Grave] Beast Blood 30097070")] - MtGelmirGelmirHerosGraveBeastBlood = 30097070, + [Annotation(Name = "[Mt. Gelmir - Gelmir Hero's Grave] Beast Blood 30097070")] + MtGelmirGelmirHerosGraveBeastBlood = 30097070, - [Annotation(Name = "[Capital Outskirts - Auriza Hero's Grave] Holy Grease 30107010")] - CapitalOutskirtsAurizaHerosGraveHolyGrease = 30107010, + [Annotation(Name = "[Capital Outskirts - Auriza Hero's Grave] Holy Grease 30107010")] + CapitalOutskirtsAurizaHerosGraveHolyGrease = 30107010, - [Annotation(Name = "[Capital Outskirts - Auriza Hero's Grave] Fan Daggers 30107020")] - CapitalOutskirtsAurizaHerosGraveFanDaggers = 30107020, + [Annotation(Name = "[Capital Outskirts - Auriza Hero's Grave] Fan Daggers 30107020")] + CapitalOutskirtsAurizaHerosGraveFanDaggers = 30107020, - [Annotation(Name = "[Capital Outskirts - Auriza Hero's Grave] Golden Rune [7] 30107030")] - CapitalOutskirtsAurizaHerosGraveGoldenRune7 = 30107030, + [Annotation(Name = "[Capital Outskirts - Auriza Hero's Grave] Golden Rune [7] 30107030")] + CapitalOutskirtsAurizaHerosGraveGoldenRune7 = 30107030, - [Annotation(Name = "[Capital Outskirts - Auriza Hero's Grave] Crucible Feather Talisman 30107040")] - CapitalOutskirtsAurizaHerosGraveCrucibleFeatherTalisman = 30107040, + [Annotation(Name = "[Capital Outskirts - Auriza Hero's Grave] Crucible Feather Talisman 30107040")] + CapitalOutskirtsAurizaHerosGraveCrucibleFeatherTalisman = 30107040, - [Annotation(Name = "[Capital Outskirts - Auriza Hero's Grave] Golden Epitaph 30107050")] - CapitalOutskirtsAurizaHerosGraveGoldenEpitaph = 30107050, + [Annotation(Name = "[Capital Outskirts - Auriza Hero's Grave] Golden Epitaph 30107050")] + CapitalOutskirtsAurizaHerosGraveGoldenEpitaph = 30107050, - [Annotation(Name = "[Capital Outskirts - Auriza Hero's Grave] Great Dragonfly Head 30107060")] - CapitalOutskirtsAurizaHerosGraveGreatDragonflyHead = 30107060, + [Annotation(Name = "[Capital Outskirts - Auriza Hero's Grave] Great Dragonfly Head 30107060")] + CapitalOutskirtsAurizaHerosGraveGreatDragonflyHead = 30107060, - [Annotation(Name = "[Capital Outskirts - Auriza Hero's Grave] Stonesword Key 30107070")] - CapitalOutskirtsAurizaHerosGraveStoneswordKey = 30107070, + [Annotation(Name = "[Capital Outskirts - Auriza Hero's Grave] Stonesword Key 30107070")] + CapitalOutskirtsAurizaHerosGraveStoneswordKey = 30107070, - [Annotation(Name = "[Capital Outskirts - Auriza Hero's Grave] Vulgar Militia Ashes 30107080")] - CapitalOutskirtsAurizaHerosGraveVulgarMilitiaAshes = 30107080, + [Annotation(Name = "[Capital Outskirts - Auriza Hero's Grave] Vulgar Militia Ashes 30107080")] + CapitalOutskirtsAurizaHerosGraveVulgarMilitiaAshes = 30107080, - [Annotation(Name = "[Capital Outskirts - Auriza Hero's Grave] Ash of War: Holy Ground 30107100")] - CapitalOutskirtsAurizaHerosGraveAshOfWarHolyGround = 30107100, + [Annotation(Name = "[Capital Outskirts - Auriza Hero's Grave] Ash of War: Holy Ground 30107100")] + CapitalOutskirtsAurizaHerosGraveAshOfWarHolyGround = 30107100, - [Annotation(Name = "[Stormhill - Deathtouched Catacombs] Deathroot 30117000")] - StormhillDeathtouchedCatacombsDeathroot = 30117000, + [Annotation(Name = "[Stormhill - Deathtouched Catacombs] Deathroot 30117000")] + StormhillDeathtouchedCatacombsDeathroot = 30117000, - [Annotation(Name = "[Stormhill - Deathtouched Catacombs] Bloodrose 30117010")] - StormhillDeathtouchedCatacombsBloodrose = 30117010, + [Annotation(Name = "[Stormhill - Deathtouched Catacombs] Bloodrose 30117010")] + StormhillDeathtouchedCatacombsBloodrose = 30117010, - [Annotation(Name = "[Stormhill - Deathtouched Catacombs] Uchigatana 30117020")] - StormhillDeathtouchedCatacombsUchigatana = 30117020, + [Annotation(Name = "[Stormhill - Deathtouched Catacombs] Uchigatana 30117020")] + StormhillDeathtouchedCatacombsUchigatana = 30117020, - [Annotation(Name = "[Altus Plateau - Unsightly Catacombs] Holy Grease 30127000")] - AltusPlateauUnsightlyCatacombsHolyGrease = 30127000, + [Annotation(Name = "[Altus Plateau - Unsightly Catacombs] Holy Grease 30127000")] + AltusPlateauUnsightlyCatacombsHolyGrease = 30127000, - [Annotation(Name = "[Altus Plateau - Unsightly Catacombs] Winged Misbegotten Ashes 30127010")] - AltusPlateauUnsightlyCatacombsWingedMisbegottenAshes = 30127010, + [Annotation(Name = "[Altus Plateau - Unsightly Catacombs] Winged Misbegotten Ashes 30127010")] + AltusPlateauUnsightlyCatacombsWingedMisbegottenAshes = 30127010, - [Annotation(Name = "[Altus Plateau - Unsightly Catacombs] Rune Arc 30127020")] - AltusPlateauUnsightlyCatacombsRuneArc = 30127020, + [Annotation(Name = "[Altus Plateau - Unsightly Catacombs] Rune Arc 30127020")] + AltusPlateauUnsightlyCatacombsRuneArc = 30127020, - [Annotation(Name = "[Altus Plateau - Unsightly Catacombs] Prattling Pate \"Apologies\" 30127030")] - AltusPlateauUnsightlyCatacombsPrattlingPateApologies = 30127030, + [Annotation(Name = "[Altus Plateau - Unsightly Catacombs] Prattling Pate \"Apologies\" 30127030")] + AltusPlateauUnsightlyCatacombsPrattlingPateApologies = 30127030, - [Annotation(Name = "[Altus Plateau - Unsightly Catacombs] Golden Rune [1] 30127900")] - AltusPlateauUnsightlyCatacombsGoldenRune1 = 30127900, + [Annotation(Name = "[Altus Plateau - Unsightly Catacombs] Golden Rune [1] 30127900")] + AltusPlateauUnsightlyCatacombsGoldenRune1 = 30127900, - [Annotation(Name = "[Capital Outskirts - Auriza Side Tomb] Perfumer's Cookbook [3] 67860")] - CapitalOutskirtsAurizaSideTombPerfumersCookbook3 = 67860, + [Annotation(Name = "[Capital Outskirts - Auriza Side Tomb] Perfumer's Cookbook [3] 67860")] + CapitalOutskirtsAurizaSideTombPerfumersCookbook3 = 67860, - [Annotation(Name = "[Capital Outskirts - Auriza Side Tomb] Golden Rune [7] 30137020")] - CapitalOutskirtsAurizaSideTombGoldenRune7 = 30137020, + [Annotation(Name = "[Capital Outskirts - Auriza Side Tomb] Golden Rune [7] 30137020")] + CapitalOutskirtsAurizaSideTombGoldenRune7 = 30137020, - [Annotation(Name = "[Capital Outskirts - Auriza Side Tomb] Smithing Stone [5] 30137030")] - CapitalOutskirtsAurizaSideTombSmithingStone5 = 30137030, + [Annotation(Name = "[Capital Outskirts - Auriza Side Tomb] Smithing Stone [5] 30137030")] + CapitalOutskirtsAurizaSideTombSmithingStone5 = 30137030, - [Annotation(Name = "[Capital Outskirts - Auriza Side Tomb] Root Resin 30137040")] - CapitalOutskirtsAurizaSideTombRootResin = 30137040, + [Annotation(Name = "[Capital Outskirts - Auriza Side Tomb] Root Resin 30137040")] + CapitalOutskirtsAurizaSideTombRootResin = 30137040, - [Annotation(Name = "[Capital Outskirts - Auriza Side Tomb] Cracked Pot 66140")] - CapitalOutskirtsAurizaSideTombCrackedPot = 66140, + [Annotation(Name = "[Capital Outskirts - Auriza Side Tomb] Cracked Pot 66140")] + CapitalOutskirtsAurizaSideTombCrackedPot = 66140, - [Annotation(Name = "[Capital Outskirts - Auriza Side Tomb] Cracked Pot 66150")] - CapitalOutskirtsAurizaSideTombCrackedPot_ = 66150, + [Annotation(Name = "[Capital Outskirts - Auriza Side Tomb] Cracked Pot 66150")] + CapitalOutskirtsAurizaSideTombCrackedPot_ = 66150, - [Annotation(Name = "[Capital Outskirts - Auriza Side Tomb] Cracked Pot 66160")] - CapitalOutskirtsAurizaSideTombCrackedPot__ = 66160, + [Annotation(Name = "[Capital Outskirts - Auriza Side Tomb] Cracked Pot 66160")] + CapitalOutskirtsAurizaSideTombCrackedPot__ = 66160, - [Annotation(Name = "[Capital Outskirts - Auriza Side Tomb] Cracked Pot 66170")] - CapitalOutskirtsAurizaSideTombCrackedPot___ = 66170, + [Annotation(Name = "[Capital Outskirts - Auriza Side Tomb] Cracked Pot 66170")] + CapitalOutskirtsAurizaSideTombCrackedPot___ = 66170, - [Annotation(Name = "[Capital Outskirts - Auriza Side Tomb] Ritual Pot 66470")] - CapitalOutskirtsAurizaSideTombRitualPot = 66470, + [Annotation(Name = "[Capital Outskirts - Auriza Side Tomb] Ritual Pot 66470")] + CapitalOutskirtsAurizaSideTombRitualPot = 66470, - [Annotation(Name = "[Capital Outskirts - Auriza Side Tomb] Ritual Pot 66480")] - CapitalOutskirtsAurizaSideTombRitualPot_ = 66480, + [Annotation(Name = "[Capital Outskirts - Auriza Side Tomb] Ritual Pot 66480")] + CapitalOutskirtsAurizaSideTombRitualPot_ = 66480, - [Annotation(Name = "[Caelid - Minor Erdtree Catacombs] Imp Head (Wolf) 30147000")] - CaelidMinorErdtreeCatacombsImpHeadWolf = 30147000, + [Annotation(Name = "[Caelid - Minor Erdtree Catacombs] Imp Head (Wolf) 30147000")] + CaelidMinorErdtreeCatacombsImpHeadWolf = 30147000, - [Annotation(Name = "[Caelid - Minor Erdtree Catacombs] Grave Violet 30147010")] - CaelidMinorErdtreeCatacombsGraveViolet = 30147010, + [Annotation(Name = "[Caelid - Minor Erdtree Catacombs] Grave Violet 30147010")] + CaelidMinorErdtreeCatacombsGraveViolet = 30147010, - [Annotation(Name = "[Caelid - Minor Erdtree Catacombs] Sacramental Bud 30147020")] - CaelidMinorErdtreeCatacombsSacramentalBud = 30147020, + [Annotation(Name = "[Caelid - Minor Erdtree Catacombs] Sacramental Bud 30147020")] + CaelidMinorErdtreeCatacombsSacramentalBud = 30147020, - [Annotation(Name = "[Caelid - Minor Erdtree Catacombs] Aeonian Butterfly 30147030")] - CaelidMinorErdtreeCatacombsAeonianButterfly = 30147030, + [Annotation(Name = "[Caelid - Minor Erdtree Catacombs] Aeonian Butterfly 30147030")] + CaelidMinorErdtreeCatacombsAeonianButterfly = 30147030, - [Annotation(Name = "[Caelid - Minor Erdtree Catacombs] Golden Rune [4] 30147040")] - CaelidMinorErdtreeCatacombsGoldenRune4 = 30147040, + [Annotation(Name = "[Caelid - Minor Erdtree Catacombs] Golden Rune [4] 30147040")] + CaelidMinorErdtreeCatacombsGoldenRune4 = 30147040, - [Annotation(Name = "[Caelid - Minor Erdtree Catacombs] Golden Rune [1] 30147900")] - CaelidMinorErdtreeCatacombsGoldenRune1 = 30147900, + [Annotation(Name = "[Caelid - Minor Erdtree Catacombs] Golden Rune [1] 30147900")] + CaelidMinorErdtreeCatacombsGoldenRune1 = 30147900, - [Annotation(Name = "[Caelid - Caelid Catacombs] Miranda Sprout Ashes 30157000")] - CaelidCaelidCatacombsMirandaSproutAshes = 30157000, + [Annotation(Name = "[Caelid - Caelid Catacombs] Miranda Sprout Ashes 30157000")] + CaelidCaelidCatacombsMirandaSproutAshes = 30157000, - [Annotation(Name = "[Caelid - War-Dead Catacombs] Golden Rune [6] 30167000")] - CaelidWarDeadCatacombsGoldenRune6 = 30167000, + [Annotation(Name = "[Caelid - War-Dead Catacombs] Golden Rune [6] 30167000")] + CaelidWarDeadCatacombsGoldenRune6 = 30167000, - [Annotation(Name = "[Caelid - War-Dead Catacombs] Magic Grease 30167010")] - CaelidWarDeadCatacombsMagicGrease = 30167010, + [Annotation(Name = "[Caelid - War-Dead Catacombs] Magic Grease 30167010")] + CaelidWarDeadCatacombsMagicGrease = 30167010, - [Annotation(Name = "[Caelid - War-Dead Catacombs] Radahn Soldier Ashes 30167020")] - CaelidWarDeadCatacombsRadahnSoldierAshes = 30167020, + [Annotation(Name = "[Caelid - War-Dead Catacombs] Radahn Soldier Ashes 30167020")] + CaelidWarDeadCatacombsRadahnSoldierAshes = 30167020, - [Annotation(Name = "[Caelid - War-Dead Catacombs] Silver-Pickled Fowl Foot 30167030")] - CaelidWarDeadCatacombsSilverPickledFowlFoot = 30167030, + [Annotation(Name = "[Caelid - War-Dead Catacombs] Silver-Pickled Fowl Foot 30167030")] + CaelidWarDeadCatacombsSilverPickledFowlFoot = 30167030, - [Annotation(Name = "[Caelid - War-Dead Catacombs] [Sorcery] Collapsing Stars 30167040")] - CaelidWarDeadCatacombsSorceryCollapsingStars = 30167040, + [Annotation(Name = "[Caelid - War-Dead Catacombs] [Sorcery] Collapsing Stars 30167040")] + CaelidWarDeadCatacombsSorceryCollapsingStars = 30167040, - [Annotation(Name = "[Flame Peak - Giant-Conquering Hero's Grave] Cranial Vessel Candlestand 30177000")] - FlamePeakGiantConqueringHerosGraveCranialVesselCandlestand = 30177000, + [Annotation(Name = "[Flame Peak - Giant-Conquering Hero's Grave] Cranial Vessel Candlestand 30177000")] + FlamePeakGiantConqueringHerosGraveCranialVesselCandlestand = 30177000, - [Annotation(Name = "[Flame Peak - Giant-Conquering Hero's Grave] [Incantation] Flame 30177010")] - FlamePeakGiantConqueringHerosGraveIncantationFlame = 30177010, + [Annotation(Name = "[Flame Peak - Giant-Conquering Hero's Grave] [Incantation] Flame 30177010")] + FlamePeakGiantConqueringHerosGraveIncantationFlame = 30177010, - [Annotation(Name = "[Flame Peak - Giant-Conquering Hero's Grave] Lightning Bastard Sword 30177020")] - FlamePeakGiantConqueringHerosGraveLightningBastardSword = 30177020, + [Annotation(Name = "[Flame Peak - Giant-Conquering Hero's Grave] Lightning Bastard Sword 30177020")] + FlamePeakGiantConqueringHerosGraveLightningBastardSword = 30177020, - [Annotation(Name = "[Flame Peak - Giant-Conquering Hero's Grave] Giant's Seal 30177030")] - FlamePeakGiantConqueringHerosGraveGiantsSeal = 30177030, + [Annotation(Name = "[Flame Peak - Giant-Conquering Hero's Grave] Giant's Seal 30177030")] + FlamePeakGiantConqueringHerosGraveGiantsSeal = 30177030, - [Annotation(Name = "[Flame Peak - Giant-Conquering Hero's Grave] Freezing Grease 30177040")] - FlamePeakGiantConqueringHerosGraveFreezingGrease = 30177040, + [Annotation(Name = "[Flame Peak - Giant-Conquering Hero's Grave] Freezing Grease 30177040")] + FlamePeakGiantConqueringHerosGraveFreezingGrease = 30177040, - [Annotation(Name = "[Flame Peak - Giant-Conquering Hero's Grave] Golden Rune [11] 30177050")] - FlamePeakGiantConqueringHerosGraveGoldenRune11 = 30177050, + [Annotation(Name = "[Flame Peak - Giant-Conquering Hero's Grave] Golden Rune [11] 30177050")] + FlamePeakGiantConqueringHerosGraveGoldenRune11 = 30177050, - [Annotation(Name = "[Flame Peak - Giant-Conquering Hero's Grave] Golden Rune [1] 30177060")] - FlamePeakGiantConqueringHerosGraveGoldenRune1 = 30177060, + [Annotation(Name = "[Flame Peak - Giant-Conquering Hero's Grave] Golden Rune [1] 30177060")] + FlamePeakGiantConqueringHerosGraveGoldenRune1 = 30177060, - [Annotation(Name = "[Flame Peak - Giants' Mountaintop Catacombs] Golden Rune [10] 30187000")] - FlamePeakGiantsMountaintopCatacombsGoldenRune10 = 30187000, + [Annotation(Name = "[Flame Peak - Giants' Mountaintop Catacombs] Golden Rune [10] 30187000")] + FlamePeakGiantsMountaintopCatacombsGoldenRune10 = 30187000, - [Annotation(Name = "[Flame Peak - Giants' Mountaintop Catacombs] Stimulating Boluses 30187010")] - FlamePeakGiantsMountaintopCatacombsStimulatingBoluses = 30187010, + [Annotation(Name = "[Flame Peak - Giants' Mountaintop Catacombs] Stimulating Boluses 30187010")] + FlamePeakGiantsMountaintopCatacombsStimulatingBoluses = 30187010, - [Annotation(Name = "[Flame Peak - Giants' Mountaintop Catacombs] Nascent Butterfly 30187020")] - FlamePeakGiantsMountaintopCatacombsNascentButterfly = 30187020, + [Annotation(Name = "[Flame Peak - Giants' Mountaintop Catacombs] Nascent Butterfly 30187020")] + FlamePeakGiantsMountaintopCatacombsNascentButterfly = 30187020, - [Annotation(Name = "[Flame Peak - Giants' Mountaintop Catacombs] Root Resin 30187030")] - FlamePeakGiantsMountaintopCatacombsRootResin = 30187030, + [Annotation(Name = "[Flame Peak - Giants' Mountaintop Catacombs] Root Resin 30187030")] + FlamePeakGiantsMountaintopCatacombsRootResin = 30187030, - [Annotation(Name = "[Flame Peak - Giants' Mountaintop Catacombs] Ritual Pot 66400")] - FlamePeakGiantsMountaintopCatacombsRitualPot = 66400, + [Annotation(Name = "[Flame Peak - Giants' Mountaintop Catacombs] Ritual Pot 66400")] + FlamePeakGiantsMountaintopCatacombsRitualPot = 66400, - [Annotation(Name = "[Flame Peak - Giants' Mountaintop Catacombs] Fire Monk Ashes 30187070")] - FlamePeakGiantsMountaintopCatacombsFireMonkAshes = 30187070, + [Annotation(Name = "[Flame Peak - Giants' Mountaintop Catacombs] Fire Monk Ashes 30187070")] + FlamePeakGiantsMountaintopCatacombsFireMonkAshes = 30187070, - [Annotation(Name = "[Flame Peak - Giants' Mountaintop Catacombs] Deathroot 30187900")] - FlamePeakGiantsMountaintopCatacombsDeathroot = 30187900, + [Annotation(Name = "[Flame Peak - Giants' Mountaintop Catacombs] Deathroot 30187900")] + FlamePeakGiantsMountaintopCatacombsDeathroot = 30187900, - [Annotation(Name = "[Flame Peak - Consecrated Snowfield Catacombs] Golden Rune [12] 30197000")] - FlamePeakConsecratedSnowfieldCatacombsGoldenRune12 = 30197000, + [Annotation(Name = "[Flame Peak - Consecrated Snowfield Catacombs] Golden Rune [12] 30197000")] + FlamePeakConsecratedSnowfieldCatacombsGoldenRune12 = 30197000, - [Annotation(Name = "[Flame Peak - Consecrated Snowfield Catacombs] Rejuvenating Boluses 30197010")] - FlamePeakConsecratedSnowfieldCatacombsRejuvenatingBoluses = 30197010, + [Annotation(Name = "[Flame Peak - Consecrated Snowfield Catacombs] Rejuvenating Boluses 30197010")] + FlamePeakConsecratedSnowfieldCatacombsRejuvenatingBoluses = 30197010, - [Annotation(Name = "[Flame Peak - Consecrated Snowfield Catacombs] Root Resin 30197020")] - FlamePeakConsecratedSnowfieldCatacombsRootResin = 30197020, + [Annotation(Name = "[Flame Peak - Consecrated Snowfield Catacombs] Root Resin 30197020")] + FlamePeakConsecratedSnowfieldCatacombsRootResin = 30197020, - [Annotation(Name = "[Flame Peak - Consecrated Snowfield Catacombs] Human Bone Shard 30197030")] - FlamePeakConsecratedSnowfieldCatacombsHumanBoneShard = 30197030, + [Annotation(Name = "[Flame Peak - Consecrated Snowfield Catacombs] Human Bone Shard 30197030")] + FlamePeakConsecratedSnowfieldCatacombsHumanBoneShard = 30197030, - [Annotation(Name = "[Flame Peak - Consecrated Snowfield Catacombs] Imp Head (Elder) 30197040")] - FlamePeakConsecratedSnowfieldCatacombsImpHeadElder = 30197040, + [Annotation(Name = "[Flame Peak - Consecrated Snowfield Catacombs] Imp Head (Elder) 30197040")] + FlamePeakConsecratedSnowfieldCatacombsImpHeadElder = 30197040, - [Annotation(Name = "[Flame Peak - Consecrated Snowfield Catacombs] Golden Rune [1] 30197900")] - FlamePeakConsecratedSnowfieldCatacombsGoldenRune1 = 30197900, + [Annotation(Name = "[Flame Peak - Consecrated Snowfield Catacombs] Golden Rune [1] 30197900")] + FlamePeakConsecratedSnowfieldCatacombsGoldenRune1 = 30197900, - [Annotation(Name = "[Forbidden Lands - Hidden Path to the Haligtree] Warming Stone 30207000")] - ForbiddenLandsHiddenPathtoTheHaligtreeWarmingStone = 30207000, + [Annotation(Name = "[Forbidden Lands - Hidden Path to the Haligtree] Warming Stone 30207000")] + ForbiddenLandsHiddenPathtoTheHaligtreeWarmingStone = 30207000, - [Annotation(Name = "[Forbidden Lands - Hidden Path to the Haligtree] Sacramental Bud 30207010")] - ForbiddenLandsHiddenPathtoTheHaligtreeSacramentalBud = 30207010, + [Annotation(Name = "[Forbidden Lands - Hidden Path to the Haligtree] Sacramental Bud 30207010")] + ForbiddenLandsHiddenPathtoTheHaligtreeSacramentalBud = 30207010, - [Annotation(Name = "[Forbidden Lands - Hidden Path to the Haligtree] Hero's Rune [1] 30207020")] - ForbiddenLandsHiddenPathtoTheHaligtreeHerosRune1 = 30207020, + [Annotation(Name = "[Forbidden Lands - Hidden Path to the Haligtree] Hero's Rune [1] 30207020")] + ForbiddenLandsHiddenPathtoTheHaligtreeHerosRune1 = 30207020, - [Annotation(Name = "[Forbidden Lands - Hidden Path to the Haligtree] Old Fang 30207030")] - ForbiddenLandsHiddenPathtoTheHaligtreeOldFang = 30207030, + [Annotation(Name = "[Forbidden Lands - Hidden Path to the Haligtree] Old Fang 30207030")] + ForbiddenLandsHiddenPathtoTheHaligtreeOldFang = 30207030, - [Annotation(Name = "[Forbidden Lands - Hidden Path to the Haligtree] Root Resin 30207040")] - ForbiddenLandsHiddenPathtoTheHaligtreeRootResin = 30207040, + [Annotation(Name = "[Forbidden Lands - Hidden Path to the Haligtree] Root Resin 30207040")] + ForbiddenLandsHiddenPathtoTheHaligtreeRootResin = 30207040, - [Annotation(Name = "[Forbidden Lands - Hidden Path to the Haligtree] Freezing Grease 30207050")] - ForbiddenLandsHiddenPathtoTheHaligtreeFreezingGrease = 30207050, + [Annotation(Name = "[Forbidden Lands - Hidden Path to the Haligtree] Freezing Grease 30207050")] + ForbiddenLandsHiddenPathtoTheHaligtreeFreezingGrease = 30207050, - [Annotation(Name = "[Forbidden Lands - Hidden Path to the Haligtree] Spelldrake Talisman +2 30207060")] - ForbiddenLandsHiddenPathtoTheHaligtreeSpelldrakeTalisman2 = 30207060, + [Annotation(Name = "[Forbidden Lands - Hidden Path to the Haligtree] Spelldrake Talisman +2 30207060")] + ForbiddenLandsHiddenPathtoTheHaligtreeSpelldrakeTalisman2 = 30207060, - [Annotation(Name = "[Forbidden Lands - Hidden Path to the Haligtree] Silver Scarab 30207900")] - ForbiddenLandsHiddenPathtoTheHaligtreeSilverScarab = 30207900, + [Annotation(Name = "[Forbidden Lands - Hidden Path to the Haligtree] Silver Scarab 30207900")] + ForbiddenLandsHiddenPathtoTheHaligtreeSilverScarab = 30207900, - [Annotation(Name = "[Forbidden Lands - Hidden Path to the Haligtree] Deathroot 30207910")] - ForbiddenLandsHiddenPathtoTheHaligtreeDeathroot = 30207910, + [Annotation(Name = "[Forbidden Lands - Hidden Path to the Haligtree] Deathroot 30207910")] + ForbiddenLandsHiddenPathtoTheHaligtreeDeathroot = 30207910, - [Annotation(Name = "[Limgrave - Murkwater Cave] Mushroom 31007000")] - LimgraveMurkwaterCaveMushroom = 31007000, + [Annotation(Name = "[Limgrave - Murkwater Cave] Mushroom 31007000")] + LimgraveMurkwaterCaveMushroom = 31007000, - [Annotation(Name = "[Limgrave - Murkwater Cave] Cloth Garb 31007010")] - LimgraveMurkwaterCaveClothGarb = 31007010, + [Annotation(Name = "[Limgrave - Murkwater Cave] Cloth Garb 31007010")] + LimgraveMurkwaterCaveClothGarb = 31007010, - [Annotation(Name = "[Weeping Peninsula - Earthbore Cave] Golden Rune [1] 31017000")] - WeepingPeninsulaEarthboreCaveGoldenRune1 = 31017000, + [Annotation(Name = "[Weeping Peninsula - Earthbore Cave] Golden Rune [1] 31017000")] + WeepingPeninsulaEarthboreCaveGoldenRune1 = 31017000, - [Annotation(Name = "[Weeping Peninsula - Earthbore Cave] Glowstone 31017010")] - WeepingPeninsulaEarthboreCaveGlowstone = 31017010, + [Annotation(Name = "[Weeping Peninsula - Earthbore Cave] Glowstone 31017010")] + WeepingPeninsulaEarthboreCaveGlowstone = 31017010, - [Annotation(Name = "[Weeping Peninsula - Earthbore Cave] Kukri 31017020")] - WeepingPeninsulaEarthboreCaveKukri = 31017020, + [Annotation(Name = "[Weeping Peninsula - Earthbore Cave] Kukri 31017020")] + WeepingPeninsulaEarthboreCaveKukri = 31017020, - [Annotation(Name = "[Weeping Peninsula - Earthbore Cave] Smoldering Butterfly 31017030")] - WeepingPeninsulaEarthboreCaveSmolderingButterfly = 31017030, + [Annotation(Name = "[Weeping Peninsula - Earthbore Cave] Smoldering Butterfly 31017030")] + WeepingPeninsulaEarthboreCaveSmolderingButterfly = 31017030, - [Annotation(Name = "[Weeping Peninsula - Earthbore Cave] Trina's Lily 31017040")] - WeepingPeninsulaEarthboreCaveTrinasLily = 31017040, + [Annotation(Name = "[Weeping Peninsula - Earthbore Cave] Trina's Lily 31017040")] + WeepingPeninsulaEarthboreCaveTrinasLily = 31017040, - [Annotation(Name = "[Weeping Peninsula - Earthbore Cave] Pickled Turtle Neck 31017060")] - WeepingPeninsulaEarthboreCavePickledTurtleNeck = 31017060, + [Annotation(Name = "[Weeping Peninsula - Earthbore Cave] Pickled Turtle Neck 31017060")] + WeepingPeninsulaEarthboreCavePickledTurtleNeck = 31017060, - [Annotation(Name = "[Weeping Peninsula - Tombsward Cave] Golden Rune [2] 31027000")] - WeepingPeninsulaTombswardCaveGoldenRune2 = 31027000, + [Annotation(Name = "[Weeping Peninsula - Tombsward Cave] Golden Rune [2] 31027000")] + WeepingPeninsulaTombswardCaveGoldenRune2 = 31027000, - [Annotation(Name = "[Weeping Peninsula - Tombsward Cave] Furlcalling Finger Remedy 31027010")] - WeepingPeninsulaTombswardCaveFurlcallingFingerRemedy = 31027010, + [Annotation(Name = "[Weeping Peninsula - Tombsward Cave] Furlcalling Finger Remedy 31027010")] + WeepingPeninsulaTombswardCaveFurlcallingFingerRemedy = 31027010, - [Annotation(Name = "[Weeping Peninsula - Tombsward Cave] Poisonbone Dart 31027020")] - WeepingPeninsulaTombswardCavePoisonboneDart = 31027020, + [Annotation(Name = "[Weeping Peninsula - Tombsward Cave] Poisonbone Dart 31027020")] + WeepingPeninsulaTombswardCavePoisonboneDart = 31027020, - [Annotation(Name = "[Weeping Peninsula - Tombsward Cave] Arteria Leaf 31027030")] - WeepingPeninsulaTombswardCaveArteriaLeaf = 31027030, + [Annotation(Name = "[Weeping Peninsula - Tombsward Cave] Arteria Leaf 31027030")] + WeepingPeninsulaTombswardCaveArteriaLeaf = 31027030, - [Annotation(Name = "[Weeping Peninsula - Tombsward Cave] Nomadic Warrior's Cookbook [8] 67880")] - WeepingPeninsulaTombswardCaveNomadicWarriorsCookbook8 = 67880, + [Annotation(Name = "[Weeping Peninsula - Tombsward Cave] Nomadic Warrior's Cookbook [8] 67880")] + WeepingPeninsulaTombswardCaveNomadicWarriorsCookbook8 = 67880, - [Annotation(Name = "[Weeping Peninsula - Tombsward Cave] Immunizing White Cured Meat 31027050")] - WeepingPeninsulaTombswardCaveImmunizingWhiteCuredMeat = 31027050, + [Annotation(Name = "[Weeping Peninsula - Tombsward Cave] Immunizing White Cured Meat 31027050")] + WeepingPeninsulaTombswardCaveImmunizingWhiteCuredMeat = 31027050, - [Annotation(Name = "[Limgrave - Groveside Cave] Golden Rune [1] 31037000")] - LimgraveGrovesideCaveGoldenRune1 = 31037000, + [Annotation(Name = "[Limgrave - Groveside Cave] Golden Rune [1] 31037000")] + LimgraveGrovesideCaveGoldenRune1 = 31037000, - [Annotation(Name = "[Limgrave - Groveside Cave] Glowstone 31037010")] - LimgraveGrovesideCaveGlowstone = 31037010, + [Annotation(Name = "[Limgrave - Groveside Cave] Glowstone 31037010")] + LimgraveGrovesideCaveGlowstone = 31037010, - [Annotation(Name = "[Limgrave - Groveside Cave] Cracked Pot 66000")] - LimgraveGrovesideCaveCrackedPot = 66000, + [Annotation(Name = "[Limgrave - Groveside Cave] Cracked Pot 66000")] + LimgraveGrovesideCaveCrackedPot = 66000, - [Annotation(Name = "[Liurnia - Stillwater Cave] Golden Rune [3] 31047000")] - LiurniaStillwaterCaveGoldenRune3 = 31047000, + [Annotation(Name = "[Liurnia - Stillwater Cave] Golden Rune [3] 31047000")] + LiurniaStillwaterCaveGoldenRune3 = 31047000, - [Annotation(Name = "[Liurnia - Stillwater Cave] Golden Rune [4] 31047010")] - LiurniaStillwaterCaveGoldenRune4 = 31047010, + [Annotation(Name = "[Liurnia - Stillwater Cave] Golden Rune [4] 31047010")] + LiurniaStillwaterCaveGoldenRune4 = 31047010, - [Annotation(Name = "[Liurnia - Stillwater Cave] Serpent Arrow 31047020")] - LiurniaStillwaterCaveSerpentArrow = 31047020, + [Annotation(Name = "[Liurnia - Stillwater Cave] Serpent Arrow 31047020")] + LiurniaStillwaterCaveSerpentArrow = 31047020, - [Annotation(Name = "[Liurnia - Stillwater Cave] Golden Rune [5] 31047030")] - LiurniaStillwaterCaveGoldenRune5 = 31047030, + [Annotation(Name = "[Liurnia - Stillwater Cave] Golden Rune [5] 31047030")] + LiurniaStillwaterCaveGoldenRune5 = 31047030, - [Annotation(Name = "[Liurnia - Stillwater Cave] Glowstone 31047040")] - LiurniaStillwaterCaveGlowstone = 31047040, + [Annotation(Name = "[Liurnia - Stillwater Cave] Glowstone 31047040")] + LiurniaStillwaterCaveGlowstone = 31047040, - [Annotation(Name = "[Liurnia - Stillwater Cave] Poison Grease 31047050")] - LiurniaStillwaterCavePoisonGrease = 31047050, + [Annotation(Name = "[Liurnia - Stillwater Cave] Poison Grease 31047050")] + LiurniaStillwaterCavePoisonGrease = 31047050, - [Annotation(Name = "[Liurnia - Stillwater Cave] Sage Hood 31047060")] - LiurniaStillwaterCaveSageHood = 31047060, + [Annotation(Name = "[Liurnia - Stillwater Cave] Sage Hood 31047060")] + LiurniaStillwaterCaveSageHood = 31047060, - [Annotation(Name = "[Liurnia - Lakeside Crystal Cave] Hefty Beast Bone 31057000")] - LiurniaLakesideCrystalCaveHeftyBeastBone = 31057000, + [Annotation(Name = "[Liurnia - Lakeside Crystal Cave] Hefty Beast Bone 31057000")] + LiurniaLakesideCrystalCaveHeftyBeastBone = 31057000, - [Annotation(Name = "[Liurnia - Lakeside Crystal Cave] Throwing Dagger 31057010")] - LiurniaLakesideCrystalCaveThrowingDagger = 31057010, + [Annotation(Name = "[Liurnia - Lakeside Crystal Cave] Throwing Dagger 31057010")] + LiurniaLakesideCrystalCaveThrowingDagger = 31057010, - [Annotation(Name = "[Liurnia - Lakeside Crystal Cave] Golden Rune [5] 31057020")] - LiurniaLakesideCrystalCaveGoldenRune5 = 31057020, + [Annotation(Name = "[Liurnia - Lakeside Crystal Cave] Golden Rune [5] 31057020")] + LiurniaLakesideCrystalCaveGoldenRune5 = 31057020, - [Annotation(Name = "[Liurnia - Lakeside Crystal Cave] Soft Cotton 31057030")] - LiurniaLakesideCrystalCaveSoftCotton = 31057030, + [Annotation(Name = "[Liurnia - Lakeside Crystal Cave] Soft Cotton 31057030")] + LiurniaLakesideCrystalCaveSoftCotton = 31057030, - [Annotation(Name = "[Liurnia - Lakeside Crystal Cave] Smithing Stone [4] 31057040")] - LiurniaLakesideCrystalCaveSmithingStone4 = 31057040, + [Annotation(Name = "[Liurnia - Lakeside Crystal Cave] Smithing Stone [4] 31057040")] + LiurniaLakesideCrystalCaveSmithingStone4 = 31057040, - [Annotation(Name = "[Liurnia - Lakeside Crystal Cave] Smithing Stone [2] 31057050")] - LiurniaLakesideCrystalCaveSmithingStone2 = 31057050, + [Annotation(Name = "[Liurnia - Lakeside Crystal Cave] Smithing Stone [2] 31057050")] + LiurniaLakesideCrystalCaveSmithingStone2 = 31057050, - [Annotation(Name = "[Liurnia - Lakeside Crystal Cave] Lump of Flesh 31057060")] - LiurniaLakesideCrystalCaveLumpOfFlesh = 31057060, + [Annotation(Name = "[Liurnia - Lakeside Crystal Cave] Lump of Flesh 31057060")] + LiurniaLakesideCrystalCaveLumpOfFlesh = 31057060, - [Annotation(Name = "[Liurnia - Lakeside Crystal Cave] Arteria Leaf 31057070")] - LiurniaLakesideCrystalCaveArteriaLeaf = 31057070, + [Annotation(Name = "[Liurnia - Lakeside Crystal Cave] Arteria Leaf 31057070")] + LiurniaLakesideCrystalCaveArteriaLeaf = 31057070, - [Annotation(Name = "[Liurnia - Lakeside Crystal Cave] Spear Talisman 31057100")] - LiurniaLakesideCrystalCaveSpearTalisman = 31057100, + [Annotation(Name = "[Liurnia - Lakeside Crystal Cave] Spear Talisman 31057100")] + LiurniaLakesideCrystalCaveSpearTalisman = 31057100, - [Annotation(Name = "[Liurnia - Academy Crystal Cave] Cuckoo Glintstone 31067000")] - LiurniaAcademyCrystalCaveCuckooGlintstone = 31067000, + [Annotation(Name = "[Liurnia - Academy Crystal Cave] Cuckoo Glintstone 31067000")] + LiurniaAcademyCrystalCaveCuckooGlintstone = 31067000, - [Annotation(Name = "[Liurnia - Academy Crystal Cave] Stonesword Key 31067010")] - LiurniaAcademyCrystalCaveStoneswordKey = 31067010, + [Annotation(Name = "[Liurnia - Academy Crystal Cave] Stonesword Key 31067010")] + LiurniaAcademyCrystalCaveStoneswordKey = 31067010, - [Annotation(Name = "[Liurnia - Academy Crystal Cave] Rune Arc 31067100")] - LiurniaAcademyCrystalCaveRuneArc = 31067100, + [Annotation(Name = "[Liurnia - Academy Crystal Cave] Rune Arc 31067100")] + LiurniaAcademyCrystalCaveRuneArc = 31067100, - [Annotation(Name = "[Liurnia - Academy Crystal Cave] Crystal Staff 31067030")] - LiurniaAcademyCrystalCaveCrystalStaff = 31067030, + [Annotation(Name = "[Liurnia - Academy Crystal Cave] Crystal Staff 31067030")] + LiurniaAcademyCrystalCaveCrystalStaff = 31067030, - [Annotation(Name = "[Mt. Gelmir - Seethewater Cave] Poison Grease 31077000")] - MtGelmirSeethewaterCavePoisonGrease = 31077000, + [Annotation(Name = "[Mt. Gelmir - Seethewater Cave] Poison Grease 31077000")] + MtGelmirSeethewaterCavePoisonGrease = 31077000, - [Annotation(Name = "[Mt. Gelmir - Seethewater Cave] Lump of Flesh 31077010")] - MtGelmirSeethewaterCaveLumpOfFlesh = 31077010, + [Annotation(Name = "[Mt. Gelmir - Seethewater Cave] Lump of Flesh 31077010")] + MtGelmirSeethewaterCaveLumpOfFlesh = 31077010, - [Annotation(Name = "[Mt. Gelmir - Seethewater Cave] Preserving Boluses 31077020")] - MtGelmirSeethewaterCavePreservingBoluses = 31077020, + [Annotation(Name = "[Mt. Gelmir - Seethewater Cave] Preserving Boluses 31077020")] + MtGelmirSeethewaterCavePreservingBoluses = 31077020, - [Annotation(Name = "[Mt. Gelmir - Seethewater Cave] Mushroom Head 31077030")] - MtGelmirSeethewaterCaveMushroomHead = 31077030, + [Annotation(Name = "[Mt. Gelmir - Seethewater Cave] Mushroom Head 31077030")] + MtGelmirSeethewaterCaveMushroomHead = 31077030, - [Annotation(Name = "[Mt. Gelmir - Seethewater Cave] Poisonbone Dart 31077040")] - MtGelmirSeethewaterCavePoisonboneDart = 31077040, + [Annotation(Name = "[Mt. Gelmir - Seethewater Cave] Poisonbone Dart 31077040")] + MtGelmirSeethewaterCavePoisonboneDart = 31077040, - [Annotation(Name = "[Mt. Gelmir - Seethewater Cave] Golden Rune [6] 31077050")] - MtGelmirSeethewaterCaveGoldenRune6 = 31077050, + [Annotation(Name = "[Mt. Gelmir - Seethewater Cave] Golden Rune [6] 31077050")] + MtGelmirSeethewaterCaveGoldenRune6 = 31077050, - [Annotation(Name = "[Mt. Gelmir - Seethewater Cave] Golden Rune [7] 31077060")] - MtGelmirSeethewaterCaveGoldenRune7 = 31077060, + [Annotation(Name = "[Mt. Gelmir - Seethewater Cave] Golden Rune [7] 31077060")] + MtGelmirSeethewaterCaveGoldenRune7 = 31077060, - [Annotation(Name = "[Mt. Gelmir - Seethewater Cave] Immunizing Cured Meat 31077070")] - MtGelmirSeethewaterCaveImmunizingCuredMeat = 31077070, + [Annotation(Name = "[Mt. Gelmir - Seethewater Cave] Immunizing Cured Meat 31077070")] + MtGelmirSeethewaterCaveImmunizingCuredMeat = 31077070, - [Annotation(Name = "[Mt. Gelmir - Volcano Cave] Golden Rune [6] 31097000")] - MtGelmirVolcanoCaveGoldenRune6 = 31097000, + [Annotation(Name = "[Mt. Gelmir - Volcano Cave] Golden Rune [6] 31097000")] + MtGelmirVolcanoCaveGoldenRune6 = 31097000, - [Annotation(Name = "[Mt. Gelmir - Volcano Cave] Sliver of Meat 31097010")] - MtGelmirVolcanoCaveSliverOfMeat = 31097010, + [Annotation(Name = "[Mt. Gelmir - Volcano Cave] Sliver of Meat 31097010")] + MtGelmirVolcanoCaveSliverOfMeat = 31097010, - [Annotation(Name = "[Mt. Gelmir - Volcano Cave] Arteria Leaf 31097020")] - MtGelmirVolcanoCaveArteriaLeaf = 31097020, + [Annotation(Name = "[Mt. Gelmir - Volcano Cave] Arteria Leaf 31097020")] + MtGelmirVolcanoCaveArteriaLeaf = 31097020, - [Annotation(Name = "[Mt. Gelmir - Volcano Cave] Lump of Flesh 31097030")] - MtGelmirVolcanoCaveLumpOfFlesh = 31097030, + [Annotation(Name = "[Mt. Gelmir - Volcano Cave] Lump of Flesh 31097030")] + MtGelmirVolcanoCaveLumpOfFlesh = 31097030, - [Annotation(Name = "[Mt. Gelmir - Volcano Cave] Coil Shield 31097040")] - MtGelmirVolcanoCaveCoilShield = 31097040, + [Annotation(Name = "[Mt. Gelmir - Volcano Cave] Coil Shield 31097040")] + MtGelmirVolcanoCaveCoilShield = 31097040, - [Annotation(Name = "[Altus Plateau - Perfumer's Grotto] Perfume Bottle 66780")] - AltusPlateauPerfumersGrottoPerfumeBottle = 66780, + [Annotation(Name = "[Altus Plateau - Perfumer's Grotto] Perfume Bottle 66780")] + AltusPlateauPerfumersGrottoPerfumeBottle = 66780, - [Annotation(Name = "[Altus Plateau - Perfumer's Grotto] Living Jar Shard 31187020")] - AltusPlateauPerfumersGrottoLivingJarShard = 31187020, + [Annotation(Name = "[Altus Plateau - Perfumer's Grotto] Living Jar Shard 31187020")] + AltusPlateauPerfumersGrottoLivingJarShard = 31187020, - [Annotation(Name = "[Altus Plateau - Perfumer's Grotto] Living Jar Shard 31187030")] - AltusPlateauPerfumersGrottoLivingJarShard_ = 31187030, + [Annotation(Name = "[Altus Plateau - Perfumer's Grotto] Living Jar Shard 31187030")] + AltusPlateauPerfumersGrottoLivingJarShard_ = 31187030, - [Annotation(Name = "[Altus Plateau - Perfumer's Grotto] Arteria Leaf 31187040")] - AltusPlateauPerfumersGrottoArteriaLeaf = 31187040, + [Annotation(Name = "[Altus Plateau - Perfumer's Grotto] Arteria Leaf 31187040")] + AltusPlateauPerfumersGrottoArteriaLeaf = 31187040, - [Annotation(Name = "[Altus Plateau - Perfumer's Grotto] Golden Rune [5] 31187050")] - AltusPlateauPerfumersGrottoGoldenRune5 = 31187050, + [Annotation(Name = "[Altus Plateau - Perfumer's Grotto] Golden Rune [5] 31187050")] + AltusPlateauPerfumersGrottoGoldenRune5 = 31187050, - [Annotation(Name = "[Altus Plateau - Perfumer's Grotto] Miranda Powder 31187060")] - AltusPlateauPerfumersGrottoMirandaPowder = 31187060, + [Annotation(Name = "[Altus Plateau - Perfumer's Grotto] Miranda Powder 31187060")] + AltusPlateauPerfumersGrottoMirandaPowder = 31187060, - [Annotation(Name = "[Altus Plateau - Perfumer's Grotto] Warming Stone 31187070")] - AltusPlateauPerfumersGrottoWarmingStone = 31187070, + [Annotation(Name = "[Altus Plateau - Perfumer's Grotto] Warming Stone 31187070")] + AltusPlateauPerfumersGrottoWarmingStone = 31187070, - [Annotation(Name = "[Altus Plateau - Perfumer's Grotto] Golden Rune [5] 31187080")] - AltusPlateauPerfumersGrottoGoldenRune5_ = 31187080, + [Annotation(Name = "[Altus Plateau - Perfumer's Grotto] Golden Rune [5] 31187080")] + AltusPlateauPerfumersGrottoGoldenRune5_ = 31187080, - [Annotation(Name = "[Altus Plateau - Sage's Cave] Rejuvenating Boluses 31197000")] - AltusPlateauSagesCaveRejuvenatingBoluses = 31197000, + [Annotation(Name = "[Altus Plateau - Sage's Cave] Rejuvenating Boluses 31197000")] + AltusPlateauSagesCaveRejuvenatingBoluses = 31197000, - [Annotation(Name = "[Altus Plateau - Sage's Cave] Lost Ashes of War 31197010")] - AltusPlateauSagesCaveLostAshesOfWar = 31197010, + [Annotation(Name = "[Altus Plateau - Sage's Cave] Lost Ashes of War 31197010")] + AltusPlateauSagesCaveLostAshesOfWar = 31197010, - [Annotation(Name = "[Altus Plateau - Sage's Cave] Candletree Wooden Shield 31197030")] - AltusPlateauSagesCaveCandletreeWoodenShield = 31197030, + [Annotation(Name = "[Altus Plateau - Sage's Cave] Candletree Wooden Shield 31197030")] + AltusPlateauSagesCaveCandletreeWoodenShield = 31197030, - [Annotation(Name = "[Altus Plateau - Sage's Cave] Silver-Pickled Fowl Foot 31197040")] - AltusPlateauSagesCaveSilverPickledFowlFoot = 31197040, + [Annotation(Name = "[Altus Plateau - Sage's Cave] Silver-Pickled Fowl Foot 31197040")] + AltusPlateauSagesCaveSilverPickledFowlFoot = 31197040, - [Annotation(Name = "[Altus Plateau - Sage's Cave] Black Hood 31197050")] - AltusPlateauSagesCaveBlackHood = 31197050, + [Annotation(Name = "[Altus Plateau - Sage's Cave] Black Hood 31197050")] + AltusPlateauSagesCaveBlackHood = 31197050, - [Annotation(Name = "[Altus Plateau - Sage's Cave] Nascent Butterfly 31197060")] - AltusPlateauSagesCaveNascentButterfly = 31197060, + [Annotation(Name = "[Altus Plateau - Sage's Cave] Nascent Butterfly 31197060")] + AltusPlateauSagesCaveNascentButterfly = 31197060, - [Annotation(Name = "[Altus Plateau - Sage's Cave] Stonesword Key 31197080")] - AltusPlateauSagesCaveStoneswordKey = 31197080, + [Annotation(Name = "[Altus Plateau - Sage's Cave] Stonesword Key 31197080")] + AltusPlateauSagesCaveStoneswordKey = 31197080, - [Annotation(Name = "[Altus Plateau - Sage's Cave] Dragonwound Grease 31197090")] - AltusPlateauSagesCaveDragonwoundGrease = 31197090, + [Annotation(Name = "[Altus Plateau - Sage's Cave] Dragonwound Grease 31197090")] + AltusPlateauSagesCaveDragonwoundGrease = 31197090, - [Annotation(Name = "[Altus Plateau - Sage's Cave] Raptor Talons 31197100")] - AltusPlateauSagesCaveRaptorTalons = 31197100, + [Annotation(Name = "[Altus Plateau - Sage's Cave] Raptor Talons 31197100")] + AltusPlateauSagesCaveRaptorTalons = 31197100, - [Annotation(Name = "[Altus Plateau - Sage's Cave] Golden Great Arrow 31197110")] - AltusPlateauSagesCaveGoldenGreatArrow = 31197110, + [Annotation(Name = "[Altus Plateau - Sage's Cave] Golden Great Arrow 31197110")] + AltusPlateauSagesCaveGoldenGreatArrow = 31197110, - [Annotation(Name = "[Altus Plateau - Sage's Cave] Raptor's Black Feathers 31197120")] - AltusPlateauSagesCaveRaptorsBlackFeathers = 31197120, + [Annotation(Name = "[Altus Plateau - Sage's Cave] Raptor's Black Feathers 31197120")] + AltusPlateauSagesCaveRaptorsBlackFeathers = 31197120, - [Annotation(Name = "[Altus Plateau - Sage's Cave] Skeletal Mask 31197130")] - AltusPlateauSagesCaveSkeletalMask = 31197130, + [Annotation(Name = "[Altus Plateau - Sage's Cave] Skeletal Mask 31197130")] + AltusPlateauSagesCaveSkeletalMask = 31197130, - [Annotation(Name = "[Altus Plateau - Sage's Cave] Golden Rune [5] 31197200")] - AltusPlateauSagesCaveGoldenRune5 = 31197200, + [Annotation(Name = "[Altus Plateau - Sage's Cave] Golden Rune [5] 31197200")] + AltusPlateauSagesCaveGoldenRune5 = 31197200, - [Annotation(Name = "[Altus Plateau - Sage's Cave] Golden Rune [5] 31197210")] - AltusPlateauSagesCaveGoldenRune5_ = 31197210, + [Annotation(Name = "[Altus Plateau - Sage's Cave] Golden Rune [5] 31197210")] + AltusPlateauSagesCaveGoldenRune5_ = 31197210, - [Annotation(Name = "[Greyoll's Dragonbarrow - Dragonbarrow Cave] Warming Stone 31107000")] - GreyollsDragonbarrowDragonbarrowCaveWarmingStone = 31107000, + [Annotation(Name = "[Greyoll's Dragonbarrow - Dragonbarrow Cave] Warming Stone 31107000")] + GreyollsDragonbarrowDragonbarrowCaveWarmingStone = 31107000, - [Annotation(Name = "[Greyoll's Dragonbarrow - Dragonbarrow Cave] Golden Rune [12] 31107010")] - GreyollsDragonbarrowDragonbarrowCaveGoldenRune12 = 31107010, + [Annotation(Name = "[Greyoll's Dragonbarrow - Dragonbarrow Cave] Golden Rune [12] 31107010")] + GreyollsDragonbarrowDragonbarrowCaveGoldenRune12 = 31107010, - [Annotation(Name = "[Greyoll's Dragonbarrow - Dragonbarrow Cave] Bull-Goat's Talisman 31107050")] - GreyollsDragonbarrowDragonbarrowCaveBullGoatsTalisman = 31107050, + [Annotation(Name = "[Greyoll's Dragonbarrow - Dragonbarrow Cave] Bull-Goat's Talisman 31107050")] + GreyollsDragonbarrowDragonbarrowCaveBullGoatsTalisman = 31107050, - [Annotation(Name = "[Greyoll's Dragonbarrow - Dragonbarrow Cave] Golden Rune [8] 31107110")] - GreyollsDragonbarrowDragonbarrowCaveGoldenRune8 = 31107110, + [Annotation(Name = "[Greyoll's Dragonbarrow - Dragonbarrow Cave] Golden Rune [8] 31107110")] + GreyollsDragonbarrowDragonbarrowCaveGoldenRune8 = 31107110, - [Annotation(Name = "[Greyoll's Dragonbarrow - Dragonbarrow Cave] Beast Blood 31107120")] - GreyollsDragonbarrowDragonbarrowCaveBeastBlood = 31107120, + [Annotation(Name = "[Greyoll's Dragonbarrow - Dragonbarrow Cave] Beast Blood 31107120")] + GreyollsDragonbarrowDragonbarrowCaveBeastBlood = 31107120, - [Annotation(Name = "[Greyoll's Dragonbarrow - Sellia Hideaway] Golden Rune [3] 31117000")] - GreyollsDragonbarrowSelliaHideawayGoldenRune3 = 31117000, + [Annotation(Name = "[Greyoll's Dragonbarrow - Sellia Hideaway] Golden Rune [3] 31117000")] + GreyollsDragonbarrowSelliaHideawayGoldenRune3 = 31117000, - [Annotation(Name = "[Greyoll's Dragonbarrow - Sellia Hideaway] Lost Ashes of War 31117010")] - GreyollsDragonbarrowSelliaHideawayLostAshesOfWar = 31117010, + [Annotation(Name = "[Greyoll's Dragonbarrow - Sellia Hideaway] Lost Ashes of War 31117010")] + GreyollsDragonbarrowSelliaHideawayLostAshesOfWar = 31117010, - [Annotation(Name = "[Greyoll's Dragonbarrow - Sellia Hideaway] Golden Rune [5] 31117020")] - GreyollsDragonbarrowSelliaHideawayGoldenRune5 = 31117020, + [Annotation(Name = "[Greyoll's Dragonbarrow - Sellia Hideaway] Golden Rune [5] 31117020")] + GreyollsDragonbarrowSelliaHideawayGoldenRune5 = 31117020, - [Annotation(Name = "[Greyoll's Dragonbarrow - Sellia Hideaway] Stimulating Boluses 31117030")] - GreyollsDragonbarrowSelliaHideawayStimulatingBoluses = 31117030, + [Annotation(Name = "[Greyoll's Dragonbarrow - Sellia Hideaway] Stimulating Boluses 31117030")] + GreyollsDragonbarrowSelliaHideawayStimulatingBoluses = 31117030, - [Annotation(Name = "[Greyoll's Dragonbarrow - Sellia Hideaway] Somber Smithing Stone [4] 31117040")] - GreyollsDragonbarrowSelliaHideawaySomberSmithingStone4 = 31117040, + [Annotation(Name = "[Greyoll's Dragonbarrow - Sellia Hideaway] Somber Smithing Stone [4] 31117040")] + GreyollsDragonbarrowSelliaHideawaySomberSmithingStone4 = 31117040, - [Annotation(Name = "[Greyoll's Dragonbarrow - Sellia Hideaway] Preserving Boluses 31117080")] - GreyollsDragonbarrowSelliaHideawayPreservingBoluses = 31117080, + [Annotation(Name = "[Greyoll's Dragonbarrow - Sellia Hideaway] Preserving Boluses 31117080")] + GreyollsDragonbarrowSelliaHideawayPreservingBoluses = 31117080, - [Annotation(Name = "[Greyoll's Dragonbarrow - Sellia Hideaway] Crystal Dart 31117090")] - GreyollsDragonbarrowSelliaHideawayCrystalDart = 31117090, + [Annotation(Name = "[Greyoll's Dragonbarrow - Sellia Hideaway] Crystal Dart 31117090")] + GreyollsDragonbarrowSelliaHideawayCrystalDart = 31117090, - [Annotation(Name = "[Greyoll's Dragonbarrow - Sellia Hideaway] Golden Rune [5] 31117100")] - GreyollsDragonbarrowSelliaHideawayGoldenRune5_ = 31117100, + [Annotation(Name = "[Greyoll's Dragonbarrow - Sellia Hideaway] Golden Rune [5] 31117100")] + GreyollsDragonbarrowSelliaHideawayGoldenRune5_ = 31117100, - [Annotation(Name = "[Greyoll's Dragonbarrow - Sellia Hideaway] Glowstone 31117110")] - GreyollsDragonbarrowSelliaHideawayGlowstone = 31117110, + [Annotation(Name = "[Greyoll's Dragonbarrow - Sellia Hideaway] Glowstone 31117110")] + GreyollsDragonbarrowSelliaHideawayGlowstone = 31117110, - [Annotation(Name = "[Greyoll's Dragonbarrow - Sellia Hideaway] Crystal Spear 31117200")] - GreyollsDragonbarrowSelliaHideawayCrystalSpear = 31117200, + [Annotation(Name = "[Greyoll's Dragonbarrow - Sellia Hideaway] Crystal Spear 31117200")] + GreyollsDragonbarrowSelliaHideawayCrystalSpear = 31117200, - [Annotation(Name = "[Greyoll's Dragonbarrow - Sellia Hideaway] Crystalian Ashes 31117220")] - GreyollsDragonbarrowSelliaHideawayCrystalianAshes = 31117220, + [Annotation(Name = "[Greyoll's Dragonbarrow - Sellia Hideaway] Crystalian Ashes 31117220")] + GreyollsDragonbarrowSelliaHideawayCrystalianAshes = 31117220, - [Annotation(Name = "[Greyoll's Dragonbarrow - Sellia Hideaway] Smithing Stone [1] 31117300")] - GreyollsDragonbarrowSelliaHideawaySmithingStone1 = 31117300, + [Annotation(Name = "[Greyoll's Dragonbarrow - Sellia Hideaway] Smithing Stone [1] 31117300")] + GreyollsDragonbarrowSelliaHideawaySmithingStone1 = 31117300, - [Annotation(Name = "[Consecrated Snowfield - Cave of the Forlorn] Golden Rune [7] 31127000")] - ConsecratedSnowfieldCaveOfTheForlornGoldenRune7 = 31127000, + [Annotation(Name = "[Consecrated Snowfield - Cave of the Forlorn] Golden Rune [7] 31127000")] + ConsecratedSnowfieldCaveOfTheForlornGoldenRune7 = 31127000, - [Annotation(Name = "[Consecrated Snowfield - Cave of the Forlorn] Freezing Grease 31127010")] - ConsecratedSnowfieldCaveOfTheForlornFreezingGrease = 31127010, + [Annotation(Name = "[Consecrated Snowfield - Cave of the Forlorn] Freezing Grease 31127010")] + ConsecratedSnowfieldCaveOfTheForlornFreezingGrease = 31127010, - [Annotation(Name = "[Consecrated Snowfield - Cave of the Forlorn] Hero's Rune [2] 31127020")] - ConsecratedSnowfieldCaveOfTheForlornHerosRune2 = 31127020, + [Annotation(Name = "[Consecrated Snowfield - Cave of the Forlorn] Hero's Rune [2] 31127020")] + ConsecratedSnowfieldCaveOfTheForlornHerosRune2 = 31127020, - [Annotation(Name = "[Consecrated Snowfield - Cave of the Forlorn] Rune Arc 31127030")] - ConsecratedSnowfieldCaveOfTheForlornRuneArc = 31127030, + [Annotation(Name = "[Consecrated Snowfield - Cave of the Forlorn] Rune Arc 31127030")] + ConsecratedSnowfieldCaveOfTheForlornRuneArc = 31127030, - [Annotation(Name = "[Consecrated Snowfield - Cave of the Forlorn] Miquella's Lily 31127040")] - ConsecratedSnowfieldCaveOfTheForlornMiquellasLily = 31127040, + [Annotation(Name = "[Consecrated Snowfield - Cave of the Forlorn] Miquella's Lily 31127040")] + ConsecratedSnowfieldCaveOfTheForlornMiquellasLily = 31127040, - [Annotation(Name = "[Consecrated Snowfield - Cave of the Forlorn] Nascent Butterfly 31127050")] - ConsecratedSnowfieldCaveOfTheForlornNascentButterfly = 31127050, + [Annotation(Name = "[Consecrated Snowfield - Cave of the Forlorn] Nascent Butterfly 31127050")] + ConsecratedSnowfieldCaveOfTheForlornNascentButterfly = 31127050, - [Annotation(Name = "[Consecrated Snowfield - Cave of the Forlorn] Thawfrost Boluses 31127060")] - ConsecratedSnowfieldCaveOfTheForlornThawfrostBoluses = 31127060, + [Annotation(Name = "[Consecrated Snowfield - Cave of the Forlorn] Thawfrost Boluses 31127060")] + ConsecratedSnowfieldCaveOfTheForlornThawfrostBoluses = 31127060, - [Annotation(Name = "[Consecrated Snowfield - Cave of the Forlorn] Crystal Dart 31127070")] - ConsecratedSnowfieldCaveOfTheForlornCrystalDart = 31127070, + [Annotation(Name = "[Consecrated Snowfield - Cave of the Forlorn] Crystal Dart 31127070")] + ConsecratedSnowfieldCaveOfTheForlornCrystalDart = 31127070, - [Annotation(Name = "[Consecrated Snowfield - Cave of the Forlorn] Thawfrost Boluses 31127080")] - ConsecratedSnowfieldCaveOfTheForlornThawfrostBoluses_ = 31127080, + [Annotation(Name = "[Consecrated Snowfield - Cave of the Forlorn] Thawfrost Boluses 31127080")] + ConsecratedSnowfieldCaveOfTheForlornThawfrostBoluses_ = 31127080, - [Annotation(Name = "[Consecrated Snowfield - Cave of the Forlorn] Freezing Grease 31127090")] - ConsecratedSnowfieldCaveOfTheForlornFreezingGrease_ = 31127090, + [Annotation(Name = "[Consecrated Snowfield - Cave of the Forlorn] Freezing Grease 31127090")] + ConsecratedSnowfieldCaveOfTheForlornFreezingGrease_ = 31127090, - [Annotation(Name = "[Consecrated Snowfield - Cave of the Forlorn] Freezing Grease 31127100")] - ConsecratedSnowfieldCaveOfTheForlornFreezingGrease__ = 31127100, + [Annotation(Name = "[Consecrated Snowfield - Cave of the Forlorn] Freezing Grease 31127100")] + ConsecratedSnowfieldCaveOfTheForlornFreezingGrease__ = 31127100, - [Annotation(Name = "[Consecrated Snowfield - Cave of the Forlorn] Golden Rune [10] 31127110")] - ConsecratedSnowfieldCaveOfTheForlornGoldenRune10 = 31127110, + [Annotation(Name = "[Consecrated Snowfield - Cave of the Forlorn] Golden Rune [10] 31127110")] + ConsecratedSnowfieldCaveOfTheForlornGoldenRune10 = 31127110, - [Annotation(Name = "[Consecrated Snowfield - Cave of the Forlorn] Spiritflame Arrow 31127120")] - ConsecratedSnowfieldCaveOfTheForlornSpiritflameArrow = 31127120, + [Annotation(Name = "[Consecrated Snowfield - Cave of the Forlorn] Spiritflame Arrow 31127120")] + ConsecratedSnowfieldCaveOfTheForlornSpiritflameArrow = 31127120, - [Annotation(Name = "[Limgrave - Coastal Cave] Land Octopus Ovary 31157010")] - LimgraveCoastalCaveLandOctopusOvary = 31157010, + [Annotation(Name = "[Limgrave - Coastal Cave] Land Octopus Ovary 31157010")] + LimgraveCoastalCaveLandOctopusOvary = 31157010, - [Annotation(Name = "[Limgrave - Coastal Cave] Smoldering Butterfly 31157020")] - LimgraveCoastalCaveSmolderingButterfly = 31157020, + [Annotation(Name = "[Limgrave - Coastal Cave] Smoldering Butterfly 31157020")] + LimgraveCoastalCaveSmolderingButterfly = 31157020, - [Annotation(Name = "[Limgrave - Highroad Cave] Golden Rune [1] 31177010")] - LimgraveHighroadCaveGoldenRune1 = 31177010, + [Annotation(Name = "[Limgrave - Highroad Cave] Golden Rune [1] 31177010")] + LimgraveHighroadCaveGoldenRune1 = 31177010, - [Annotation(Name = "[Limgrave - Highroad Cave] Arteria Leaf 31177020")] - LimgraveHighroadCaveArteriaLeaf = 31177020, + [Annotation(Name = "[Limgrave - Highroad Cave] Arteria Leaf 31177020")] + LimgraveHighroadCaveArteriaLeaf = 31177020, - [Annotation(Name = "[Limgrave - Highroad Cave] Smithing Stone [1] 31177030")] - LimgraveHighroadCaveSmithingStone1 = 31177030, + [Annotation(Name = "[Limgrave - Highroad Cave] Smithing Stone [1] 31177030")] + LimgraveHighroadCaveSmithingStone1 = 31177030, - [Annotation(Name = "[Limgrave - Highroad Cave] Smithing Stone [2] 31177040")] - LimgraveHighroadCaveSmithingStone2 = 31177040, + [Annotation(Name = "[Limgrave - Highroad Cave] Smithing Stone [2] 31177040")] + LimgraveHighroadCaveSmithingStone2 = 31177040, - [Annotation(Name = "[Limgrave - Highroad Cave] Golden Rune [4] 31177050")] - LimgraveHighroadCaveGoldenRune4 = 31177050, + [Annotation(Name = "[Limgrave - Highroad Cave] Golden Rune [4] 31177050")] + LimgraveHighroadCaveGoldenRune4 = 31177050, - [Annotation(Name = "[Limgrave - Highroad Cave] Fire Grease 31177060")] - LimgraveHighroadCaveFireGrease = 31177060, + [Annotation(Name = "[Limgrave - Highroad Cave] Fire Grease 31177060")] + LimgraveHighroadCaveFireGrease = 31177060, - [Annotation(Name = "[Limgrave - Highroad Cave] Furlcalling Finger Remedy 31177070")] - LimgraveHighroadCaveFurlcallingFingerRemedy = 31177070, + [Annotation(Name = "[Limgrave - Highroad Cave] Furlcalling Finger Remedy 31177070")] + LimgraveHighroadCaveFurlcallingFingerRemedy = 31177070, - [Annotation(Name = "[Limgrave - Highroad Cave] Shamshir 31177080")] - LimgraveHighroadCaveShamshir = 31177080, + [Annotation(Name = "[Limgrave - Highroad Cave] Shamshir 31177080")] + LimgraveHighroadCaveShamshir = 31177080, - [Annotation(Name = "[Caelid - Abandoned Cave] Dragonwound Grease 31207000")] - CaelidAbandonedCaveDragonwoundGrease = 31207000, + [Annotation(Name = "[Caelid - Abandoned Cave] Dragonwound Grease 31207000")] + CaelidAbandonedCaveDragonwoundGrease = 31207000, - [Annotation(Name = "[Caelid - Abandoned Cave] Venomous Fang 31207010")] - CaelidAbandonedCaveVenomousFang = 31207010, + [Annotation(Name = "[Caelid - Abandoned Cave] Venomous Fang 31207010")] + CaelidAbandonedCaveVenomousFang = 31207010, - [Annotation(Name = "[Caelid - Abandoned Cave] Serpent Bow 31207020")] - CaelidAbandonedCaveSerpentBow = 31207020, + [Annotation(Name = "[Caelid - Abandoned Cave] Serpent Bow 31207020")] + CaelidAbandonedCaveSerpentBow = 31207020, - [Annotation(Name = "[Caelid - Abandoned Cave] Fire Grease 31207030")] - CaelidAbandonedCaveFireGrease = 31207030, + [Annotation(Name = "[Caelid - Abandoned Cave] Fire Grease 31207030")] + CaelidAbandonedCaveFireGrease = 31207030, - [Annotation(Name = "[Caelid - Gaol Cave] Golden Rune [2] 31217000")] - CaelidGaolCaveGoldenRune2 = 31217000, + [Annotation(Name = "[Caelid - Gaol Cave] Golden Rune [2] 31217000")] + CaelidGaolCaveGoldenRune2 = 31217000, - [Annotation(Name = "[Caelid - Gaol Cave] Golden Rune [2] 31217030")] - CaelidGaolCaveGoldenRune2_ = 31217030, + [Annotation(Name = "[Caelid - Gaol Cave] Golden Rune [2] 31217030")] + CaelidGaolCaveGoldenRune2_ = 31217030, - [Annotation(Name = "[Caelid - Gaol Cave] Old Fang 31217040")] - CaelidGaolCaveOldFang = 31217040, + [Annotation(Name = "[Caelid - Gaol Cave] Old Fang 31217040")] + CaelidGaolCaveOldFang = 31217040, - [Annotation(Name = "[Caelid - Gaol Cave] Golden Rune [2] 31217070")] - CaelidGaolCaveGoldenRune2__ = 31217070, + [Annotation(Name = "[Caelid - Gaol Cave] Golden Rune [2] 31217070")] + CaelidGaolCaveGoldenRune2__ = 31217070, - [Annotation(Name = "[Caelid - Gaol Cave] Golden Rune [4] 31217080")] - CaelidGaolCaveGoldenRune4 = 31217080, + [Annotation(Name = "[Caelid - Gaol Cave] Golden Rune [4] 31217080")] + CaelidGaolCaveGoldenRune4 = 31217080, - [Annotation(Name = "[Caelid - Gaol Cave] Stonesword Key 31217090")] - CaelidGaolCaveStoneswordKey = 31217090, + [Annotation(Name = "[Caelid - Gaol Cave] Stonesword Key 31217090")] + CaelidGaolCaveStoneswordKey = 31217090, - [Annotation(Name = "[Caelid - Gaol Cave] Wakizashi 31217100")] - CaelidGaolCaveWakizashi = 31217100, + [Annotation(Name = "[Caelid - Gaol Cave] Wakizashi 31217100")] + CaelidGaolCaveWakizashi = 31217100, - [Annotation(Name = "[Caelid - Gaol Cave] Golden Rune [4] 31217110")] - CaelidGaolCaveGoldenRune4_ = 31217110, + [Annotation(Name = "[Caelid - Gaol Cave] Golden Rune [4] 31217110")] + CaelidGaolCaveGoldenRune4_ = 31217110, - [Annotation(Name = "[Caelid - Gaol Cave] Turtle Neck Meat 31217120")] - CaelidGaolCaveTurtleNeckMeat = 31217120, + [Annotation(Name = "[Caelid - Gaol Cave] Turtle Neck Meat 31217120")] + CaelidGaolCaveTurtleNeckMeat = 31217120, - [Annotation(Name = "[Caelid - Gaol Cave] Golden Rune [5] 31217140")] - CaelidGaolCaveGoldenRune5 = 31217140, + [Annotation(Name = "[Caelid - Gaol Cave] Golden Rune [5] 31217140")] + CaelidGaolCaveGoldenRune5 = 31217140, - [Annotation(Name = "[Caelid - Gaol Cave] Rainbow Stone 31217150")] - CaelidGaolCaveRainbowStone = 31217150, + [Annotation(Name = "[Caelid - Gaol Cave] Rainbow Stone 31217150")] + CaelidGaolCaveRainbowStone = 31217150, - [Annotation(Name = "[Caelid - Gaol Cave] Golden Rune [4] 31217160")] - CaelidGaolCaveGoldenRune4__ = 31217160, + [Annotation(Name = "[Caelid - Gaol Cave] Golden Rune [4] 31217160")] + CaelidGaolCaveGoldenRune4__ = 31217160, - [Annotation(Name = "[Caelid - Gaol Cave] Glowstone 31217190")] - CaelidGaolCaveGlowstone = 31217190, + [Annotation(Name = "[Caelid - Gaol Cave] Glowstone 31217190")] + CaelidGaolCaveGlowstone = 31217190, - [Annotation(Name = "[Caelid - Gaol Cave] Somber Smithing Stone [5] 31217200")] - CaelidGaolCaveSomberSmithingStone5 = 31217200, + [Annotation(Name = "[Caelid - Gaol Cave] Somber Smithing Stone [5] 31217200")] + CaelidGaolCaveSomberSmithingStone5 = 31217200, - [Annotation(Name = "[Caelid - Gaol Cave] Pillory Shield 31217210")] - CaelidGaolCavePilloryShield = 31217210, + [Annotation(Name = "[Caelid - Gaol Cave] Pillory Shield 31217210")] + CaelidGaolCavePilloryShield = 31217210, - [Annotation(Name = "[Caelid - Gaol Cave] Regalia of Eochaid 31217350")] - CaelidGaolCaveRegaliaOfEochaid = 31217350, + [Annotation(Name = "[Caelid - Gaol Cave] Regalia of Eochaid 31217350")] + CaelidGaolCaveRegaliaOfEochaid = 31217350, - [Annotation(Name = "[Caelid - Gaol Cave] Rune Arc 31217400")] - CaelidGaolCaveRuneArc = 31217400, + [Annotation(Name = "[Caelid - Gaol Cave] Rune Arc 31217400")] + CaelidGaolCaveRuneArc = 31217400, - [Annotation(Name = "[Mountaintops of the Giants - Spiritcaller's Cave] White Reed Armor 31227000")] - MountaintopsOfTheGiantsSpiritcallersCaveWhiteReedArmor = 31227000, + [Annotation(Name = "[Mountaintops of the Giants - Spiritcaller's Cave] White Reed Armor 31227000")] + MountaintopsOfTheGiantsSpiritcallersCaveWhiteReedArmor = 31227000, - [Annotation(Name = "[Mountaintops of the Giants - Spiritcaller's Cave] Golden Rune [6] 31227010")] - MountaintopsOfTheGiantsSpiritcallersCaveGoldenRune6 = 31227010, + [Annotation(Name = "[Mountaintops of the Giants - Spiritcaller's Cave] Golden Rune [6] 31227010")] + MountaintopsOfTheGiantsSpiritcallersCaveGoldenRune6 = 31227010, - [Annotation(Name = "[Mountaintops of the Giants - Spiritcaller's Cave] Golden Rune [12] 31227020")] - MountaintopsOfTheGiantsSpiritcallersCaveGoldenRune12 = 31227020, + [Annotation(Name = "[Mountaintops of the Giants - Spiritcaller's Cave] Golden Rune [12] 31227020")] + MountaintopsOfTheGiantsSpiritcallersCaveGoldenRune12 = 31227020, - [Annotation(Name = "[Mountaintops of the Giants - Spiritcaller's Cave] Freezing Grease 31227030")] - MountaintopsOfTheGiantsSpiritcallersCaveFreezingGrease = 31227030, + [Annotation(Name = "[Mountaintops of the Giants - Spiritcaller's Cave] Freezing Grease 31227030")] + MountaintopsOfTheGiantsSpiritcallersCaveFreezingGrease = 31227030, - [Annotation(Name = "[Mountaintops of the Giants - Spiritcaller's Cave] Golden Rune [10] 31227040")] - MountaintopsOfTheGiantsSpiritcallersCaveGoldenRune10 = 31227040, + [Annotation(Name = "[Mountaintops of the Giants - Spiritcaller's Cave] Golden Rune [10] 31227040")] + MountaintopsOfTheGiantsSpiritcallersCaveGoldenRune10 = 31227040, - [Annotation(Name = "[Mountaintops of the Giants - Spiritcaller's Cave] Hero's Rune [1] 31227050")] - MountaintopsOfTheGiantsSpiritcallersCaveHerosRune1 = 31227050, + [Annotation(Name = "[Mountaintops of the Giants - Spiritcaller's Cave] Hero's Rune [1] 31227050")] + MountaintopsOfTheGiantsSpiritcallersCaveHerosRune1 = 31227050, - [Annotation(Name = "[Mountaintops of the Giants - Spiritcaller's Cave] Rune Arc 31227060")] - MountaintopsOfTheGiantsSpiritcallersCaveRuneArc = 31227060, + [Annotation(Name = "[Mountaintops of the Giants - Spiritcaller's Cave] Rune Arc 31227060")] + MountaintopsOfTheGiantsSpiritcallersCaveRuneArc = 31227060, - [Annotation(Name = "[Mountaintops of the Giants - Spiritcaller's Cave] Invigorating White Cured Meat 31227070")] - MountaintopsOfTheGiantsSpiritcallersCaveInvigoratingWhiteCuredMeat = 31227070, + [Annotation(Name = "[Mountaintops of the Giants - Spiritcaller's Cave] Invigorating White Cured Meat 31227070")] + MountaintopsOfTheGiantsSpiritcallersCaveInvigoratingWhiteCuredMeat = 31227070, - [Annotation(Name = "[Mountaintops of the Giants - Spiritcaller's Cave] Arteria Leaf 31227080")] - MountaintopsOfTheGiantsSpiritcallersCaveArteriaLeaf = 31227080, + [Annotation(Name = "[Mountaintops of the Giants - Spiritcaller's Cave] Arteria Leaf 31227080")] + MountaintopsOfTheGiantsSpiritcallersCaveArteriaLeaf = 31227080, - [Annotation(Name = "[Weeping Peninsula - Morne Tunnel] Golden Rune [2] 32007000")] - WeepingPeninsulaMorneTunnelGoldenRune2 = 32007000, + [Annotation(Name = "[Weeping Peninsula - Morne Tunnel] Golden Rune [2] 32007000")] + WeepingPeninsulaMorneTunnelGoldenRune2 = 32007000, - [Annotation(Name = "[Weeping Peninsula - Morne Tunnel] Golden Rune [4] 32007010")] - WeepingPeninsulaMorneTunnelGoldenRune4 = 32007010, + [Annotation(Name = "[Weeping Peninsula - Morne Tunnel] Golden Rune [4] 32007010")] + WeepingPeninsulaMorneTunnelGoldenRune4 = 32007010, - [Annotation(Name = "[Weeping Peninsula - Morne Tunnel] Large Glintstone Scrap 32007020")] - WeepingPeninsulaMorneTunnelLargeGlintstoneScrap = 32007020, + [Annotation(Name = "[Weeping Peninsula - Morne Tunnel] Large Glintstone Scrap 32007020")] + WeepingPeninsulaMorneTunnelLargeGlintstoneScrap = 32007020, - [Annotation(Name = "[Weeping Peninsula - Morne Tunnel] Stanching Boluses 32007030")] - WeepingPeninsulaMorneTunnelStanchingBoluses = 32007030, + [Annotation(Name = "[Weeping Peninsula - Morne Tunnel] Stanching Boluses 32007030")] + WeepingPeninsulaMorneTunnelStanchingBoluses = 32007030, - [Annotation(Name = "[Weeping Peninsula - Morne Tunnel] Soft Cotton 32007060")] - WeepingPeninsulaMorneTunnelSoftCotton = 32007060, + [Annotation(Name = "[Weeping Peninsula - Morne Tunnel] Soft Cotton 32007060")] + WeepingPeninsulaMorneTunnelSoftCotton = 32007060, - [Annotation(Name = "[Weeping Peninsula - Morne Tunnel] Arteria Leaf 32007070")] - WeepingPeninsulaMorneTunnelArteriaLeaf = 32007070, + [Annotation(Name = "[Weeping Peninsula - Morne Tunnel] Arteria Leaf 32007070")] + WeepingPeninsulaMorneTunnelArteriaLeaf = 32007070, - [Annotation(Name = "[Weeping Peninsula - Morne Tunnel] Exalted Flesh 32007900")] - WeepingPeninsulaMorneTunnelExaltedFlesh = 32007900, + [Annotation(Name = "[Weeping Peninsula - Morne Tunnel] Exalted Flesh 32007900")] + WeepingPeninsulaMorneTunnelExaltedFlesh = 32007900, - [Annotation(Name = "[Limgrave - Limgrave Tunnels] Smithing Stone [1] 32017000")] - LimgraveLimgraveTunnelsSmithingStone1 = 32017000, + [Annotation(Name = "[Limgrave - Limgrave Tunnels] Smithing Stone [1] 32017000")] + LimgraveLimgraveTunnelsSmithingStone1 = 32017000, - [Annotation(Name = "[Limgrave - Limgrave Tunnels] Golden Rune [4] 32017010")] - LimgraveLimgraveTunnelsGoldenRune4 = 32017010, + [Annotation(Name = "[Limgrave - Limgrave Tunnels] Golden Rune [4] 32017010")] + LimgraveLimgraveTunnelsGoldenRune4 = 32017010, - [Annotation(Name = "[Limgrave - Limgrave Tunnels] Large Glintstone Scrap 32017020")] - LimgraveLimgraveTunnelsLargeGlintstoneScrap = 32017020, + [Annotation(Name = "[Limgrave - Limgrave Tunnels] Large Glintstone Scrap 32017020")] + LimgraveLimgraveTunnelsLargeGlintstoneScrap = 32017020, - [Annotation(Name = "[Limgrave - Limgrave Tunnels] Golden Rune [1] 32017030")] - LimgraveLimgraveTunnelsGoldenRune1 = 32017030, + [Annotation(Name = "[Limgrave - Limgrave Tunnels] Golden Rune [1] 32017030")] + LimgraveLimgraveTunnelsGoldenRune1 = 32017030, - [Annotation(Name = "[Limgrave - Limgrave Tunnels] Glintstone Scrap 32017040")] - LimgraveLimgraveTunnelsGlintstoneScrap = 32017040, + [Annotation(Name = "[Limgrave - Limgrave Tunnels] Glintstone Scrap 32017040")] + LimgraveLimgraveTunnelsGlintstoneScrap = 32017040, - [Annotation(Name = "[Liurnia - Raya Lucaria Crystal Tunnel Somber Smithing Stone [2] 32027000")] - LiurniaRayaLucariaCrystalTunnelSomberSmithingStone2 = 32027000, + [Annotation(Name = "[Liurnia - Raya Lucaria Crystal Tunnel Somber Smithing Stone [2] 32027000")] + LiurniaRayaLucariaCrystalTunnelSomberSmithingStone2 = 32027000, - [Annotation(Name = "[Liurnia - Raya Lucaria Crystal Tunnel Somber Smithing Stone [3] 32027010")] - LiurniaRayaLucariaCrystalTunnelSomberSmithingStone3 = 32027010, + [Annotation(Name = "[Liurnia - Raya Lucaria Crystal Tunnel Somber Smithing Stone [3] 32027010")] + LiurniaRayaLucariaCrystalTunnelSomberSmithingStone3 = 32027010, - [Annotation(Name = "[Liurnia - Raya Lucaria Crystal Tunnel Golden Rune [3] 32027020")] - LiurniaRayaLucariaCrystalTunnelGoldenRune3 = 32027020, + [Annotation(Name = "[Liurnia - Raya Lucaria Crystal Tunnel Golden Rune [3] 32027020")] + LiurniaRayaLucariaCrystalTunnelGoldenRune3 = 32027020, - [Annotation(Name = "[Liurnia - Raya Lucaria Crystal Tunnel Smithing Stone [3] 32027030")] - LiurniaRayaLucariaCrystalTunnelSmithingStone3 = 32027030, + [Annotation(Name = "[Liurnia - Raya Lucaria Crystal Tunnel Smithing Stone [3] 32027030")] + LiurniaRayaLucariaCrystalTunnelSmithingStone3 = 32027030, - [Annotation(Name = "[Liurnia - Raya Lucaria Crystal Tunnel Somber Smithing Stone [3] 32027040")] - LiurniaRayaLucariaCrystalTunnelSomberSmithingStone3_ = 32027040, + [Annotation(Name = "[Liurnia - Raya Lucaria Crystal Tunnel Somber Smithing Stone [3] 32027040")] + LiurniaRayaLucariaCrystalTunnelSomberSmithingStone3_ = 32027040, - [Annotation(Name = "[Liurnia - Raya Lucaria Crystal Tunnel Smithing Stone [1] 32027060")] - LiurniaRayaLucariaCrystalTunnelSmithingStone1 = 32027060, + [Annotation(Name = "[Liurnia - Raya Lucaria Crystal Tunnel Smithing Stone [1] 32027060")] + LiurniaRayaLucariaCrystalTunnelSmithingStone1 = 32027060, - [Annotation(Name = "[Liurnia - Raya Lucaria Crystal Tunnel [Sorcery] Shatter Earth 32027070")] - LiurniaRayaLucariaCrystalTunnelSorceryShatterEarth = 32027070, + [Annotation(Name = "[Liurnia - Raya Lucaria Crystal Tunnel [Sorcery] Shatter Earth 32027070")] + LiurniaRayaLucariaCrystalTunnelSorceryShatterEarth = 32027070, - [Annotation(Name = "[Liurnia - Raya Lucaria Crystal Tunnel Crystal Knife 32027900")] - LiurniaRayaLucariaCrystalTunnelCrystalKnife = 32027900, + [Annotation(Name = "[Liurnia - Raya Lucaria Crystal Tunnel Crystal Knife 32027900")] + LiurniaRayaLucariaCrystalTunnelCrystalKnife = 32027900, - [Annotation(Name = "[Altus Plateau - Old Altus Tunnel] Golden Rune [6] 32047000")] - AltusPlateauOldAltusTunnelGoldenRune6 = 32047000, + [Annotation(Name = "[Altus Plateau - Old Altus Tunnel] Golden Rune [6] 32047000")] + AltusPlateauOldAltusTunnelGoldenRune6 = 32047000, - [Annotation(Name = "[Altus Plateau - Old Altus Tunnel] Stanching Boluses 32047010")] - AltusPlateauOldAltusTunnelStanchingBoluses = 32047010, + [Annotation(Name = "[Altus Plateau - Old Altus Tunnel] Stanching Boluses 32047010")] + AltusPlateauOldAltusTunnelStanchingBoluses = 32047010, - [Annotation(Name = "[Altus Plateau - Old Altus Tunnel] Somber Smithing Stone [4] 32047020")] - AltusPlateauOldAltusTunnelSomberSmithingStone4 = 32047020, + [Annotation(Name = "[Altus Plateau - Old Altus Tunnel] Somber Smithing Stone [4] 32047020")] + AltusPlateauOldAltusTunnelSomberSmithingStone4 = 32047020, - [Annotation(Name = "[Altus Plateau - Old Altus Tunnel] Explosive Stone Clump 32047030")] - AltusPlateauOldAltusTunnelExplosiveStoneClump = 32047030, + [Annotation(Name = "[Altus Plateau - Old Altus Tunnel] Explosive Stone Clump 32047030")] + AltusPlateauOldAltusTunnelExplosiveStoneClump = 32047030, - [Annotation(Name = "[Altus Plateau - Old Altus Tunnel] Boltdrake Talisman +1 32047040")] - AltusPlateauOldAltusTunnelBoltdrakeTalisman1 = 32047040, + [Annotation(Name = "[Altus Plateau - Old Altus Tunnel] Boltdrake Talisman +1 32047040")] + AltusPlateauOldAltusTunnelBoltdrakeTalisman1 = 32047040, - [Annotation(Name = "[Altus Plateau - Old Altus Tunnel] Troll's Hammer 32047050")] - AltusPlateauOldAltusTunnelTrollsHammer = 32047050, + [Annotation(Name = "[Altus Plateau - Old Altus Tunnel] Troll's Hammer 32047050")] + AltusPlateauOldAltusTunnelTrollsHammer = 32047050, - [Annotation(Name = "[Altus Plateau - Altus Tunnel] Crystal Dart 32057000")] - AltusPlateauAltusTunnelCrystalDart = 32057000, + [Annotation(Name = "[Altus Plateau - Altus Tunnel] Crystal Dart 32057000")] + AltusPlateauAltusTunnelCrystalDart = 32057000, - [Annotation(Name = "[Altus Plateau - Altus Tunnel] Arteria Leaf 32057010")] - AltusPlateauAltusTunnelArteriaLeaf = 32057010, + [Annotation(Name = "[Altus Plateau - Altus Tunnel] Arteria Leaf 32057010")] + AltusPlateauAltusTunnelArteriaLeaf = 32057010, - [Annotation(Name = "[Altus Plateau - Altus Tunnel] Golden Rune [7] 32057020")] - AltusPlateauAltusTunnelGoldenRune7 = 32057020, + [Annotation(Name = "[Altus Plateau - Altus Tunnel] Golden Rune [7] 32057020")] + AltusPlateauAltusTunnelGoldenRune7 = 32057020, - [Annotation(Name = "[Altus Plateau - Altus Tunnel] Arsenal Charm +1 32057030")] - AltusPlateauAltusTunnelArsenalCharm1 = 32057030, + [Annotation(Name = "[Altus Plateau - Altus Tunnel] Arsenal Charm +1 32057030")] + AltusPlateauAltusTunnelArsenalCharm1 = 32057030, - [Annotation(Name = "[Altus Plateau - Altus Tunnel] Glintstone Scrap 32057040")] - AltusPlateauAltusTunnelGlintstoneScrap = 32057040, + [Annotation(Name = "[Altus Plateau - Altus Tunnel] Glintstone Scrap 32057040")] + AltusPlateauAltusTunnelGlintstoneScrap = 32057040, - [Annotation(Name = "[Altus Plateau - Altus Tunnel] 32057900")] - AltusPlateauAltusTunnel = 32057900, + [Annotation(Name = "[Altus Plateau - Altus Tunnel] 32057900")] + AltusPlateauAltusTunnel = 32057900, - [Annotation(Name = "[Altus Plateau - Altus Tunnel] Rune Arc 32057910")] - AltusPlateauAltusTunnelRuneArc = 32057910, + [Annotation(Name = "[Altus Plateau - Altus Tunnel] Rune Arc 32057910")] + AltusPlateauAltusTunnelRuneArc = 32057910, - [Annotation(Name = "[Caelid - Gael Tunnel] Somber Smithing Stone [2] 32077000")] - CaelidGaelTunnelSomberSmithingStone2 = 32077000, + [Annotation(Name = "[Caelid - Gael Tunnel] Somber Smithing Stone [2] 32077000")] + CaelidGaelTunnelSomberSmithingStone2 = 32077000, - [Annotation(Name = "[Caelid - Gael Tunnel] Golden Rune [5] 32077010")] - CaelidGaelTunnelGoldenRune5 = 32077010, + [Annotation(Name = "[Caelid - Gael Tunnel] Golden Rune [5] 32077010")] + CaelidGaelTunnelGoldenRune5 = 32077010, - [Annotation(Name = "[Caelid - Gael Tunnel] Cross-Naginata 32077020")] - CaelidGaelTunnelCrossNaginata = 32077020, + [Annotation(Name = "[Caelid - Gael Tunnel] Cross-Naginata 32077020")] + CaelidGaelTunnelCrossNaginata = 32077020, - [Annotation(Name = "[Caelid - Gael Tunnel] Dragonbane Talisman 32077030")] - CaelidGaelTunnelDragonbaneTalisman = 32077030, + [Annotation(Name = "[Caelid - Gael Tunnel] Dragonbane Talisman 32077030")] + CaelidGaelTunnelDragonbaneTalisman = 32077030, - [Annotation(Name = "[Caelid - Gael Tunnel] Large Glintstone Scrap 32077060")] - CaelidGaelTunnelLargeGlintstoneScrap = 32077060, + [Annotation(Name = "[Caelid - Gael Tunnel] Large Glintstone Scrap 32077060")] + CaelidGaelTunnelLargeGlintstoneScrap = 32077060, - [Annotation(Name = "[Caelid - Gael Tunnel] Grace Mimic 32077070")] - CaelidGaelTunnelGraceMimic = 32077070, + [Annotation(Name = "[Caelid - Gael Tunnel] Grace Mimic 32077070")] + CaelidGaelTunnelGraceMimic = 32077070, - [Annotation(Name = "[Caelid - Sellia Crystal Tunnel] Rot Grease 32087000")] - CaelidSelliaCrystalTunnelRotGrease = 32087000, + [Annotation(Name = "[Caelid - Sellia Crystal Tunnel] Rot Grease 32087000")] + CaelidSelliaCrystalTunnelRotGrease = 32087000, - [Annotation(Name = "[Caelid - Sellia Crystal Tunnel] Golden Rune [5] 32087020")] - CaelidSelliaCrystalTunnelGoldenRune5 = 32087020, + [Annotation(Name = "[Caelid - Sellia Crystal Tunnel] Golden Rune [5] 32087020")] + CaelidSelliaCrystalTunnelGoldenRune5 = 32087020, - [Annotation(Name = "[Caelid - Sellia Crystal Tunnel] Glintstone Scrap 32087030")] - CaelidSelliaCrystalTunnelGlintstoneScrap = 32087030, + [Annotation(Name = "[Caelid - Sellia Crystal Tunnel] Glintstone Scrap 32087030")] + CaelidSelliaCrystalTunnelGlintstoneScrap = 32087030, - [Annotation(Name = "[Caelid - Sellia Crystal Tunnel] Rune Arc 32087050")] - CaelidSelliaCrystalTunnelRuneArc = 32087050, + [Annotation(Name = "[Caelid - Sellia Crystal Tunnel] Rune Arc 32087050")] + CaelidSelliaCrystalTunnelRuneArc = 32087050, - [Annotation(Name = "[Caelid - Sellia Crystal Tunnel] Cuckoo Glintstone 32087060")] - CaelidSelliaCrystalTunnelCuckooGlintstone = 32087060, + [Annotation(Name = "[Caelid - Sellia Crystal Tunnel] Cuckoo Glintstone 32087060")] + CaelidSelliaCrystalTunnelCuckooGlintstone = 32087060, - [Annotation(Name = "[Caelid - Sellia Crystal Tunnel] Somber Smithing Stone [4] 32087070")] - CaelidSelliaCrystalTunnelSomberSmithingStone4 = 32087070, + [Annotation(Name = "[Caelid - Sellia Crystal Tunnel] Somber Smithing Stone [4] 32087070")] + CaelidSelliaCrystalTunnelSomberSmithingStone4 = 32087070, - [Annotation(Name = "[Caelid - Sellia Crystal Tunnel] Golden Rune [4] 32087100")] - CaelidSelliaCrystalTunnelGoldenRune4 = 32087100, + [Annotation(Name = "[Caelid - Sellia Crystal Tunnel] Golden Rune [4] 32087100")] + CaelidSelliaCrystalTunnelGoldenRune4 = 32087100, - [Annotation(Name = "[Caelid - Sellia Crystal Tunnel] Dragonwound Grease 32087110")] - CaelidSelliaCrystalTunnelDragonwoundGrease = 32087110, + [Annotation(Name = "[Caelid - Sellia Crystal Tunnel] Dragonwound Grease 32087110")] + CaelidSelliaCrystalTunnelDragonwoundGrease = 32087110, - [Annotation(Name = "[Caelid - Sellia Crystal Tunnel] Faithful's Canvas Talisman 32087120")] - CaelidSelliaCrystalTunnelFaithfulsCanvasTalisman = 32087120, + [Annotation(Name = "[Caelid - Sellia Crystal Tunnel] Faithful's Canvas Talisman 32087120")] + CaelidSelliaCrystalTunnelFaithfulsCanvasTalisman = 32087120, - [Annotation(Name = "[Caelid - Sellia Crystal Tunnel] Gravity Stone Fan 32087900")] - CaelidSelliaCrystalTunnelGravityStoneFan = 32087900, + [Annotation(Name = "[Caelid - Sellia Crystal Tunnel] Gravity Stone Fan 32087900")] + CaelidSelliaCrystalTunnelGravityStoneFan = 32087900, - [Annotation(Name = "[Caelid - Sellia Crystal Tunnel] [Sorcery] Rock Blaster 32087910")] - CaelidSelliaCrystalTunnelSorceryRockBlaster = 32087910, + [Annotation(Name = "[Caelid - Sellia Crystal Tunnel] [Sorcery] Rock Blaster 32087910")] + CaelidSelliaCrystalTunnelSorceryRockBlaster = 32087910, - [Annotation(Name = "[Consecrated Snowfield - Yelough Anix Tunnel] Freezing Grease 32117000")] - ConsecratedSnowfieldYeloughAnixTunnelFreezingGrease = 32117000, + [Annotation(Name = "[Consecrated Snowfield - Yelough Anix Tunnel] Freezing Grease 32117000")] + ConsecratedSnowfieldYeloughAnixTunnelFreezingGrease = 32117000, - [Annotation(Name = "[Consecrated Snowfield - Yelough Anix Tunnel] Golden Rune [10] 32117020")] - ConsecratedSnowfieldYeloughAnixTunnelGoldenRune10 = 32117020, + [Annotation(Name = "[Consecrated Snowfield - Yelough Anix Tunnel] Golden Rune [10] 32117020")] + ConsecratedSnowfieldYeloughAnixTunnelGoldenRune10 = 32117020, - [Annotation(Name = "[Consecrated Snowfield - Yelough Anix Tunnel] Ancient Dragon Smithing Stone 32117030")] - ConsecratedSnowfieldYeloughAnixTunnelAncientDragonSmithingStone = 32117030, + [Annotation(Name = "[Consecrated Snowfield - Yelough Anix Tunnel] Ancient Dragon Smithing Stone 32117030")] + ConsecratedSnowfieldYeloughAnixTunnelAncientDragonSmithingStone = 32117030, - [Annotation(Name = "[Consecrated Snowfield - Yelough Anix Tunnel] Rune Arc 32117040")] - ConsecratedSnowfieldYeloughAnixTunnelRuneArc = 32117040, + [Annotation(Name = "[Consecrated Snowfield - Yelough Anix Tunnel] Rune Arc 32117040")] + ConsecratedSnowfieldYeloughAnixTunnelRuneArc = 32117040, - [Annotation(Name = "[Consecrated Snowfield - Yelough Anix Tunnel] Explosive Stone Clump 32117060")] - ConsecratedSnowfieldYeloughAnixTunnelExplosiveStoneClump = 32117060, + [Annotation(Name = "[Consecrated Snowfield - Yelough Anix Tunnel] Explosive Stone Clump 32117060")] + ConsecratedSnowfieldYeloughAnixTunnelExplosiveStoneClump = 32117060, - [Annotation(Name = "[Consecrated Snowfield - Yelough Anix Tunnel] Hero's Rune [5] 32117080")] - ConsecratedSnowfieldYeloughAnixTunnelHerosRune5 = 32117080, + [Annotation(Name = "[Consecrated Snowfield - Yelough Anix Tunnel] Hero's Rune [5] 32117080")] + ConsecratedSnowfieldYeloughAnixTunnelHerosRune5 = 32117080, - [Annotation(Name = "[Stormhill - Divine Tower of Limgrave] Warming Stone 34107000")] - StormhillDivineTowerOfLimgraveWarmingStone = 34107000, + [Annotation(Name = "[Stormhill - Divine Tower of Limgrave] Warming Stone 34107000")] + StormhillDivineTowerOfLimgraveWarmingStone = 34107000, - [Annotation(Name = "[Stormhill - Divine Tower of Limgrave] Soft Cotton 34107010")] - StormhillDivineTowerOfLimgraveSoftCotton = 34107010, + [Annotation(Name = "[Stormhill - Divine Tower of Limgrave] Soft Cotton 34107010")] + StormhillDivineTowerOfLimgraveSoftCotton = 34107010, - [Annotation(Name = "[Stormhill - Divine Tower of Limgrave] Stormhawk Feather 34107070")] - StormhillDivineTowerOfLimgraveStormhawkFeather = 34107070, + [Annotation(Name = "[Stormhill - Divine Tower of Limgrave] Stormhawk Feather 34107070")] + StormhillDivineTowerOfLimgraveStormhawkFeather = 34107070, - [Annotation(Name = "[Stormhill - Divine Tower of Limgrave] Silver-Pickled Fowl Foot 34107080")] - StormhillDivineTowerOfLimgraveSilverPickledFowlFoot = 34107080, + [Annotation(Name = "[Stormhill - Divine Tower of Limgrave] Silver-Pickled Fowl Foot 34107080")] + StormhillDivineTowerOfLimgraveSilverPickledFowlFoot = 34107080, - [Annotation(Name = "[Stormhill - Divine Tower of Limgrave] Golden Rune [2] 34107090")] - StormhillDivineTowerOfLimgraveGoldenRune2 = 34107090, + [Annotation(Name = "[Stormhill - Divine Tower of Limgrave] Golden Rune [2] 34107090")] + StormhillDivineTowerOfLimgraveGoldenRune2 = 34107090, - [Annotation(Name = "[Stormhill - Divine Tower of Limgrave] Boltdrake Talisman 34107100")] - StormhillDivineTowerOfLimgraveBoltdrakeTalisman = 34107100, + [Annotation(Name = "[Stormhill - Divine Tower of Limgrave] Boltdrake Talisman 34107100")] + StormhillDivineTowerOfLimgraveBoltdrakeTalisman = 34107100, - [Annotation(Name = "[Stormhill - Divine Tower of Limgrave] Ash-of-War Scarab 34107110")] - StormhillDivineTowerOfLimgraveAshofWarScarab = 34107110, + [Annotation(Name = "[Stormhill - Divine Tower of Limgrave] Ash-of-War Scarab 34107110")] + StormhillDivineTowerOfLimgraveAshofWarScarab = 34107110, - [Annotation(Name = "[Stormhill - Divine Tower of Limgrave] Godrick's Great Rune 191")] - StormhillDivineTowerOfLimgraveGodricksGreatRune = 191, + [Annotation(Name = "[Stormhill - Divine Tower of Limgrave] Godrick's Great Rune 191")] + StormhillDivineTowerOfLimgraveGodricksGreatRune = 191, - [Annotation(Name = "[Liurnia - Divine Tower of Liurnia] Golden Rune [3] 34117010")] - LiurniaDivineTowerOfLiurniaGoldenRune3 = 34117010, + [Annotation(Name = "[Liurnia - Divine Tower of Liurnia] Golden Rune [3] 34117010")] + LiurniaDivineTowerOfLiurniaGoldenRune3 = 34117010, - [Annotation(Name = "[Liurnia - Divine Tower of Liurnia] Golden Rune [4] 34117060")] - LiurniaDivineTowerOfLiurniaGoldenRune4 = 34117060, + [Annotation(Name = "[Liurnia - Divine Tower of Liurnia] Golden Rune [4] 34117060")] + LiurniaDivineTowerOfLiurniaGoldenRune4 = 34117060, - [Annotation(Name = "[Liurnia - Divine Tower of Liurnia] Cerulean Seed Talisman 34117080")] - LiurniaDivineTowerOfLiurniaCeruleanSeedTalisman = 34117080, + [Annotation(Name = "[Liurnia - Divine Tower of Liurnia] Cerulean Seed Talisman 34117080")] + LiurniaDivineTowerOfLiurniaCeruleanSeedTalisman = 34117080, - [Annotation(Name = "[Liurnia - Divine Tower of Liurnia] Mask of Confidence 34117100")] - LiurniaDivineTowerOfLiurniaMaskOfConfidence = 34117100, + [Annotation(Name = "[Liurnia - Divine Tower of Liurnia] Mask of Confidence 34117100")] + LiurniaDivineTowerOfLiurniaMaskOfConfidence = 34117100, - [Annotation(Name = "[Liurnia - Divine Tower of Liurnia] Holyproof Dried Liver 34117110")] - LiurniaDivineTowerOfLiurniaHolyproofDriedLiver = 34117110, + [Annotation(Name = "[Liurnia - Divine Tower of Liurnia] Holyproof Dried Liver 34117110")] + LiurniaDivineTowerOfLiurniaHolyproofDriedLiver = 34117110, - [Annotation(Name = "[Liurnia - Divine Tower of Liurnia] Glintstone Firefly 34117120")] - LiurniaDivineTowerOfLiurniaGlintstoneFirefly = 34117120, + [Annotation(Name = "[Liurnia - Divine Tower of Liurnia] Glintstone Firefly 34117120")] + LiurniaDivineTowerOfLiurniaGlintstoneFirefly = 34117120, - [Annotation(Name = "[Liurnia - Divine Tower of Liurnia] Carian Glintstone Staff 34117200")] - LiurniaDivineTowerOfLiurniaCarianGlintstoneStaff = 34117200, + [Annotation(Name = "[Liurnia - Divine Tower of Liurnia] Carian Glintstone Staff 34117200")] + LiurniaDivineTowerOfLiurniaCarianGlintstoneStaff = 34117200, - [Annotation(Name = "[Liurnia - Divine Tower of Liurnia] Godskin Apostle Hood 34117400")] - LiurniaDivineTowerOfLiurniaGodskinApostleHood = 34117400, + [Annotation(Name = "[Liurnia - Divine Tower of Liurnia] Godskin Apostle Hood 34117400")] + LiurniaDivineTowerOfLiurniaGodskinApostleHood = 34117400, - [Annotation(Name = "[Liurnia - Divine Tower of Liurnia] Godskin Apostle Robe 34117401")] - LiurniaDivineTowerOfLiurniaGodskinApostleRobe = 34117401, + [Annotation(Name = "[Liurnia - Divine Tower of Liurnia] Godskin Apostle Robe 34117401")] + LiurniaDivineTowerOfLiurniaGodskinApostleRobe = 34117401, - [Annotation(Name = "[Liurnia - Divine Tower of Liurnia] Godskin Apostle Bracelets 34117402")] - LiurniaDivineTowerOfLiurniaGodskinApostleBracelets = 34117402, + [Annotation(Name = "[Liurnia - Divine Tower of Liurnia] Godskin Apostle Bracelets 34117402")] + LiurniaDivineTowerOfLiurniaGodskinApostleBracelets = 34117402, - [Annotation(Name = "[Liurnia - Divine Tower of Liurnia] Godskin Apostle Trousers 34117403")] - LiurniaDivineTowerOfLiurniaGodskinApostleTrousers = 34117403, + [Annotation(Name = "[Liurnia - Divine Tower of Liurnia] Godskin Apostle Trousers 34117403")] + LiurniaDivineTowerOfLiurniaGodskinApostleTrousers = 34117403, - [Annotation(Name = "[Liurnia - Divine Tower of Liurnia] Cursemark of Death 34117500")] - LiurniaDivineTowerOfLiurniaCursemarkOfDeath = 34117500, + [Annotation(Name = "[Liurnia - Divine Tower of Liurnia] Cursemark of Death 34117500")] + LiurniaDivineTowerOfLiurniaCursemarkOfDeath = 34117500, - [Annotation(Name = "[Liurnia - Divine Tower of Liurnia] [Sorcery] Magic Downpour 34117700")] - LiurniaDivineTowerOfLiurniaSorceryMagicDownpour = 34117700, + [Annotation(Name = "[Liurnia - Divine Tower of Liurnia] [Sorcery] Magic Downpour 34117700")] + LiurniaDivineTowerOfLiurniaSorceryMagicDownpour = 34117700, - [Annotation(Name = "[Liurnia - Divine Tower of Liurnia] [Sorcery] Lucidity 34117710")] - LiurniaDivineTowerOfLiurniaSorceryLucidity = 34117710, + [Annotation(Name = "[Liurnia - Divine Tower of Liurnia] [Sorcery] Lucidity 34117710")] + LiurniaDivineTowerOfLiurniaSorceryLucidity = 34117710, - [Annotation(Name = "[Capital Outskirts - Divine Tower of West Altus] Golden Rune [5] 34127010")] - CapitalOutskirtsDivineTowerOfWestAltusGoldenRune5 = 34127010, + [Annotation(Name = "[Capital Outskirts - Divine Tower of West Altus] Golden Rune [5] 34127010")] + CapitalOutskirtsDivineTowerOfWestAltusGoldenRune5 = 34127010, - [Annotation(Name = "[Capital Outskirts - Divine Tower of West Altus] Golden Rune [5] 34127020")] - CapitalOutskirtsDivineTowerOfWestAltusGoldenRune5_ = 34127020, + [Annotation(Name = "[Capital Outskirts - Divine Tower of West Altus] Golden Rune [5] 34127020")] + CapitalOutskirtsDivineTowerOfWestAltusGoldenRune5_ = 34127020, - [Annotation(Name = "[Capital Outskirts - Divine Tower of West Altus] 34127030")] - CapitalOutskirtsDivineTowerOfWestAltus = 34127030, + [Annotation(Name = "[Capital Outskirts - Divine Tower of West Altus] 34127030")] + CapitalOutskirtsDivineTowerOfWestAltus = 34127030, - [Annotation(Name = "[Capital Outskirts - Divine Tower of West Altus] Hefty Beast Bone 34127040")] - CapitalOutskirtsDivineTowerOfWestAltusHeftyBeastBone = 34127040, + [Annotation(Name = "[Capital Outskirts - Divine Tower of West Altus] Hefty Beast Bone 34127040")] + CapitalOutskirtsDivineTowerOfWestAltusHeftyBeastBone = 34127040, - [Annotation(Name = "[Capital Outskirts - Divine Tower of West Altus] Gold-Pickled Fowl Foot 34127050")] - CapitalOutskirtsDivineTowerOfWestAltusGoldPickledFowlFoot = 34127050, + [Annotation(Name = "[Capital Outskirts - Divine Tower of West Altus] Gold-Pickled Fowl Foot 34127050")] + CapitalOutskirtsDivineTowerOfWestAltusGoldPickledFowlFoot = 34127050, - [Annotation(Name = "[Capital Outskirts - Divine Tower of West Altus] Stonesword Key 34127060")] - CapitalOutskirtsDivineTowerOfWestAltusStoneswordKey = 34127060, + [Annotation(Name = "[Capital Outskirts - Divine Tower of West Altus] Stonesword Key 34127060")] + CapitalOutskirtsDivineTowerOfWestAltusStoneswordKey = 34127060, - [Annotation(Name = "[Capital Outskirts - Divine Tower of West Altus] Rune Arc 34127070")] - CapitalOutskirtsDivineTowerOfWestAltusRuneArc = 34127070, + [Annotation(Name = "[Capital Outskirts - Divine Tower of West Altus] Rune Arc 34127070")] + CapitalOutskirtsDivineTowerOfWestAltusRuneArc = 34127070, - [Annotation(Name = "[Capital Outskirts - Divine Tower of West Altus] Golden Rune [1] 34127080")] - CapitalOutskirtsDivineTowerOfWestAltusGoldenRune1 = 34127080, + [Annotation(Name = "[Capital Outskirts - Divine Tower of West Altus] Golden Rune [1] 34127080")] + CapitalOutskirtsDivineTowerOfWestAltusGoldenRune1 = 34127080, - [Annotation(Name = "[Capital Outskirts - Divine Tower of West Altus] Furlcalling Finger Remedy 34127090")] - CapitalOutskirtsDivineTowerOfWestAltusFurlcallingFingerRemedy = 34127090, + [Annotation(Name = "[Capital Outskirts - Divine Tower of West Altus] Furlcalling Finger Remedy 34127090")] + CapitalOutskirtsDivineTowerOfWestAltusFurlcallingFingerRemedy = 34127090, - [Annotation(Name = "[Capital Outskirts - Divine Tower of West Altus] Old Fang 34127100")] - CapitalOutskirtsDivineTowerOfWestAltusOldFang = 34127100, + [Annotation(Name = "[Capital Outskirts - Divine Tower of West Altus] Old Fang 34127100")] + CapitalOutskirtsDivineTowerOfWestAltusOldFang = 34127100, - [Annotation(Name = "[Capital Outskirts - Divine Tower of West Altus] Grace Mimic 34127110")] - CapitalOutskirtsDivineTowerOfWestAltusGraceMimic = 34127110, + [Annotation(Name = "[Capital Outskirts - Divine Tower of West Altus] Grace Mimic 34127110")] + CapitalOutskirtsDivineTowerOfWestAltusGraceMimic = 34127110, - [Annotation(Name = "[Capital Outskirts - Divine Tower of West Altus] Large Glintstone Scrap 34127120")] - CapitalOutskirtsDivineTowerOfWestAltusLargeGlintstoneScrap = 34127120, + [Annotation(Name = "[Capital Outskirts - Divine Tower of West Altus] Large Glintstone Scrap 34127120")] + CapitalOutskirtsDivineTowerOfWestAltusLargeGlintstoneScrap = 34127120, - [Annotation(Name = "[Capital Outskirts - Divine Tower of West Altus] Smithing Stone [6] 34127130")] - CapitalOutskirtsDivineTowerOfWestAltusSmithingStone6 = 34127130, + [Annotation(Name = "[Capital Outskirts - Divine Tower of West Altus] Smithing Stone [6] 34127130")] + CapitalOutskirtsDivineTowerOfWestAltusSmithingStone6 = 34127130, - [Annotation(Name = "[Capital Outskirts - Divine Tower of West Altus] 34127140")] - CapitalOutskirtsDivineTowerOfWestAltus_ = 34127140, + [Annotation(Name = "[Capital Outskirts - Divine Tower of West Altus] 34127140")] + CapitalOutskirtsDivineTowerOfWestAltus_ = 34127140, - [Annotation(Name = "[Capital Outskirts - Divine Tower of West Altus] Lightning Grease 34127150")] - CapitalOutskirtsDivineTowerOfWestAltusLightningGrease = 34127150, + [Annotation(Name = "[Capital Outskirts - Divine Tower of West Altus] Lightning Grease 34127150")] + CapitalOutskirtsDivineTowerOfWestAltusLightningGrease = 34127150, - [Annotation(Name = "[Capital Outskirts - Divine Tower of West Altus] Golden Rune [9] 34127160")] - CapitalOutskirtsDivineTowerOfWestAltusGoldenRune9 = 34127160, + [Annotation(Name = "[Capital Outskirts - Divine Tower of West Altus] Golden Rune [9] 34127160")] + CapitalOutskirtsDivineTowerOfWestAltusGoldenRune9 = 34127160, - [Annotation(Name = "[Capital Outskirts - Divine Tower of West Altus] Rykard's Great Rune 194")] - CapitalOutskirtsDivineTowerOfWestAltusRykardsGreatRune = 194, + [Annotation(Name = "[Capital Outskirts - Divine Tower of West Altus] Rykard's Great Rune 194")] + CapitalOutskirtsDivineTowerOfWestAltusRykardsGreatRune = 194, - [Annotation(Name = "[Capital Outskirts - Divine Tower of West Altus] Smithing-Stone Miner's Bell Bearing [2] 34127900")] - CapitalOutskirtsDivineTowerOfWestAltusSmithingStoneMinersBellBearing2 = 34127900, + [Annotation(Name = "[Capital Outskirts - Divine Tower of West Altus] Smithing-Stone Miner's Bell Bearing [2] 34127900")] + CapitalOutskirtsDivineTowerOfWestAltusSmithingStoneMinersBellBearing2 = 34127900, - [Annotation(Name = "[Greyoll's Dragonbarrow - Divine Tower of Caelid] Stonesword Key 34137000")] - GreyollsDragonbarrowDivineTowerOfCaelidStoneswordKey = 34137000, + [Annotation(Name = "[Greyoll's Dragonbarrow - Divine Tower of Caelid] Stonesword Key 34137000")] + GreyollsDragonbarrowDivineTowerOfCaelidStoneswordKey = 34137000, - [Annotation(Name = "[Greyoll's Dragonbarrow - Divine Tower of Caelid] Rune Arc 34137010")] - GreyollsDragonbarrowDivineTowerOfCaelidRuneArc = 34137010, + [Annotation(Name = "[Greyoll's Dragonbarrow - Divine Tower of Caelid] Rune Arc 34137010")] + GreyollsDragonbarrowDivineTowerOfCaelidRuneArc = 34137010, - [Annotation(Name = "[Greyoll's Dragonbarrow - Divine Tower of Caelid] Golden Rune [12] 34137020")] - GreyollsDragonbarrowDivineTowerOfCaelidGoldenRune12 = 34137020, + [Annotation(Name = "[Greyoll's Dragonbarrow - Divine Tower of Caelid] Golden Rune [12] 34137020")] + GreyollsDragonbarrowDivineTowerOfCaelidGoldenRune12 = 34137020, - [Annotation(Name = "[Greyoll's Dragonbarrow - Divine Tower of Caelid] Radahn's Great Rune 192")] - GreyollsDragonbarrowDivineTowerOfCaelidRadahnsGreatRune = 192, + [Annotation(Name = "[Greyoll's Dragonbarrow - Divine Tower of Caelid] Radahn's Great Rune 192")] + GreyollsDragonbarrowDivineTowerOfCaelidRadahnsGreatRune = 192, - [Annotation(Name = "[Greyoll's Dragonbarrow - Divine Tower of Caelid] Godslayer's Greatsword 34137900")] - GreyollsDragonbarrowDivineTowerOfCaelidGodslayersGreatsword = 34137900, + [Annotation(Name = "[Greyoll's Dragonbarrow - Divine Tower of Caelid] Godslayer's Greatsword 34137900")] + GreyollsDragonbarrowDivineTowerOfCaelidGodslayersGreatsword = 34137900, - [Annotation(Name = "[Forbidden Lands - Divine Tower of East Altus] Invigorating White Cured Meat 34147000")] - ForbiddenLandsDivineTowerOfEastAltusInvigoratingWhiteCuredMeat = 34147000, + [Annotation(Name = "[Forbidden Lands - Divine Tower of East Altus] Invigorating White Cured Meat 34147000")] + ForbiddenLandsDivineTowerOfEastAltusInvigoratingWhiteCuredMeat = 34147000, - [Annotation(Name = "[Forbidden Lands - Divine Tower of East Altus] Official's Attire 34147010")] - ForbiddenLandsDivineTowerOfEastAltusOfficialsAttire = 34147010, + [Annotation(Name = "[Forbidden Lands - Divine Tower of East Altus] Official's Attire 34147010")] + ForbiddenLandsDivineTowerOfEastAltusOfficialsAttire = 34147010, - [Annotation(Name = "[Forbidden Lands - Divine Tower of East Altus] Flamedrake Talisman +1 34147020")] - ForbiddenLandsDivineTowerOfEastAltusFlamedrakeTalisman1 = 34147020, + [Annotation(Name = "[Forbidden Lands - Divine Tower of East Altus] Flamedrake Talisman +1 34147020")] + ForbiddenLandsDivineTowerOfEastAltusFlamedrakeTalisman1 = 34147020, - [Annotation(Name = "[Forbidden Lands - Divine Tower of East Altus] Morgott's Great Rune 193")] - ForbiddenLandsDivineTowerOfEastAltusMorgottsGreatRune = 193, + [Annotation(Name = "[Forbidden Lands - Divine Tower of East Altus] Morgott's Great Rune 193")] + ForbiddenLandsDivineTowerOfEastAltusMorgottsGreatRune = 193, - [Annotation(Name = "[Forbidden Lands - Divine Tower of East Altus] Mohg's Great Rune 195")] - ForbiddenLandsDivineTowerOfEastAltusMohgsGreatRune = 195, + [Annotation(Name = "[Forbidden Lands - Divine Tower of East Altus] Mohg's Great Rune 195")] + ForbiddenLandsDivineTowerOfEastAltusMohgsGreatRune = 195, - [Annotation(Name = "[Forbidden Lands - Divine Tower of East Altus] Somber Smithing Stone [6] 34147720")] - ForbiddenLandsDivineTowerOfEastAltusSomberSmithingStone6 = 34147720, + [Annotation(Name = "[Forbidden Lands - Divine Tower of East Altus] Somber Smithing Stone [6] 34147720")] + ForbiddenLandsDivineTowerOfEastAltusSomberSmithingStone6 = 34147720, - [Annotation(Name = "[Forbidden Lands - Divine Tower of East Altus] Golden Rune [9] 34147800")] - ForbiddenLandsDivineTowerOfEastAltusGoldenRune9 = 34147800, + [Annotation(Name = "[Forbidden Lands - Divine Tower of East Altus] Golden Rune [9] 34147800")] + ForbiddenLandsDivineTowerOfEastAltusGoldenRune9 = 34147800, - [Annotation(Name = "[Forbidden Lands - Divine Tower of East Altus] Blade of Calling 34147810")] - ForbiddenLandsDivineTowerOfEastAltusBladeOfCalling = 34147810, + [Annotation(Name = "[Forbidden Lands - Divine Tower of East Altus] Blade of Calling 34147810")] + ForbiddenLandsDivineTowerOfEastAltusBladeOfCalling = 34147810, - [Annotation(Name = "[Greyoll's Dragonbarrow - Isolated Divine Tower] Malenia's Great Rune 196")] - GreyollsDragonbarrowIsolatedDivineTowerMaleniasGreatRune = 196, + [Annotation(Name = "[Greyoll's Dragonbarrow - Isolated Divine Tower] Malenia's Great Rune 196")] + GreyollsDragonbarrowIsolatedDivineTowerMaleniasGreatRune = 196, - [Annotation(Name = "[Subterranean Shunning-Grounds] Poisonbone Dart 35007000")] - SubterraneanShunningGroundsPoisonboneDart = 35007000, + [Annotation(Name = "[Subterranean Shunning-Grounds] Poisonbone Dart 35007000")] + SubterraneanShunningGroundsPoisonboneDart = 35007000, - [Annotation(Name = "[Subterranean Shunning-Grounds] Glass Shard 35007010")] - SubterraneanShunningGroundsGlassShard = 35007010, + [Annotation(Name = "[Subterranean Shunning-Grounds] Glass Shard 35007010")] + SubterraneanShunningGroundsGlassShard = 35007010, - [Annotation(Name = "[Subterranean Shunning-Grounds] Golden Rune [1] 35007020")] - SubterraneanShunningGroundsGoldenRune1 = 35007020, + [Annotation(Name = "[Subterranean Shunning-Grounds] Golden Rune [1] 35007020")] + SubterraneanShunningGroundsGoldenRune1 = 35007020, - [Annotation(Name = "[Subterranean Shunning-Grounds] Crimson Amber Medallion +2 35007030")] - SubterraneanShunningGroundsCrimsonAmberMedallion2 = 35007030, + [Annotation(Name = "[Subterranean Shunning-Grounds] Crimson Amber Medallion +2 35007030")] + SubterraneanShunningGroundsCrimsonAmberMedallion2 = 35007030, - [Annotation(Name = "[Subterranean Shunning-Grounds] Golden Rune [11] 35007040")] - SubterraneanShunningGroundsGoldenRune11 = 35007040, + [Annotation(Name = "[Subterranean Shunning-Grounds] Golden Rune [11] 35007040")] + SubterraneanShunningGroundsGoldenRune11 = 35007040, - [Annotation(Name = "[Subterranean Shunning-Grounds] Bloodsoaked Manchettes 35007050")] - SubterraneanShunningGroundsBloodsoakedManchettes = 35007050, + [Annotation(Name = "[Subterranean Shunning-Grounds] Bloodsoaked Manchettes 35007050")] + SubterraneanShunningGroundsBloodsoakedManchettes = 35007050, - [Annotation(Name = "[Subterranean Shunning-Grounds] Eye of Yelough 35007060")] - SubterraneanShunningGroundsEyeOfYelough = 35007060, + [Annotation(Name = "[Subterranean Shunning-Grounds] Eye of Yelough 35007060")] + SubterraneanShunningGroundsEyeOfYelough = 35007060, - [Annotation(Name = "[Subterranean Shunning-Grounds] Note: Miquella's Needle 69740")] - SubterraneanShunningGroundsNoteMiquellasNeedle = 69740, + [Annotation(Name = "[Subterranean Shunning-Grounds] Note: Miquella's Needle 69740")] + SubterraneanShunningGroundsNoteMiquellasNeedle = 69740, - [Annotation(Name = "[Subterranean Shunning-Grounds] Preserving Boluses 35007080")] - SubterraneanShunningGroundsPreservingBoluses = 35007080, + [Annotation(Name = "[Subterranean Shunning-Grounds] Preserving Boluses 35007080")] + SubterraneanShunningGroundsPreservingBoluses = 35007080, - [Annotation(Name = "[Subterranean Shunning-Grounds] Furlcalling Finger Remedy 35007090")] - SubterraneanShunningGroundsFurlcallingFingerRemedy = 35007090, + [Annotation(Name = "[Subterranean Shunning-Grounds] Furlcalling Finger Remedy 35007090")] + SubterraneanShunningGroundsFurlcallingFingerRemedy = 35007090, - [Annotation(Name = "[Subterranean Shunning-Grounds] Golden Rune [1] 35007100")] - SubterraneanShunningGroundsGoldenRune1_ = 35007100, + [Annotation(Name = "[Subterranean Shunning-Grounds] Golden Rune [1] 35007100")] + SubterraneanShunningGroundsGoldenRune1_ = 35007100, - [Annotation(Name = "[Subterranean Shunning-Grounds] Golden Rune [11] 35007110")] - SubterraneanShunningGroundsGoldenRune11_ = 35007110, + [Annotation(Name = "[Subterranean Shunning-Grounds] Golden Rune [11] 35007110")] + SubterraneanShunningGroundsGoldenRune11_ = 35007110, - [Annotation(Name = "[Subterranean Shunning-Grounds] Rune Arc 35007120")] - SubterraneanShunningGroundsRuneArc = 35007120, + [Annotation(Name = "[Subterranean Shunning-Grounds] Rune Arc 35007120")] + SubterraneanShunningGroundsRuneArc = 35007120, - [Annotation(Name = "[Subterranean Shunning-Grounds] Lost Ashes of War 35007130")] - SubterraneanShunningGroundsLostAshesOfWar = 35007130, + [Annotation(Name = "[Subterranean Shunning-Grounds] Lost Ashes of War 35007130")] + SubterraneanShunningGroundsLostAshesOfWar = 35007130, - [Annotation(Name = "[Subterranean Shunning-Grounds] Glass Shard 35007150")] - SubterraneanShunningGroundsGlassShard_ = 35007150, + [Annotation(Name = "[Subterranean Shunning-Grounds] Glass Shard 35007150")] + SubterraneanShunningGroundsGlassShard_ = 35007150, - [Annotation(Name = "[Subterranean Shunning-Grounds] Stonesword Key 35007160")] - SubterraneanShunningGroundsStoneswordKey = 35007160, + [Annotation(Name = "[Subterranean Shunning-Grounds] Stonesword Key 35007160")] + SubterraneanShunningGroundsStoneswordKey = 35007160, - [Annotation(Name = "[Subterranean Shunning-Grounds] Rainbow Stone Arrow (Fletched) 35007170")] - SubterraneanShunningGroundsRainbowStoneArrowFletched = 35007170, + [Annotation(Name = "[Subterranean Shunning-Grounds] Rainbow Stone Arrow (Fletched) 35007170")] + SubterraneanShunningGroundsRainbowStoneArrowFletched = 35007170, - [Annotation(Name = "[Subterranean Shunning-Grounds] Grave Violet 35007180")] - SubterraneanShunningGroundsGraveViolet = 35007180, + [Annotation(Name = "[Subterranean Shunning-Grounds] Grave Violet 35007180")] + SubterraneanShunningGroundsGraveViolet = 35007180, - [Annotation(Name = "[Subterranean Shunning-Grounds] Smithing Stone [7] 35007190")] - SubterraneanShunningGroundsSmithingStone7 = 35007190, + [Annotation(Name = "[Subterranean Shunning-Grounds] Smithing Stone [7] 35007190")] + SubterraneanShunningGroundsSmithingStone7 = 35007190, - [Annotation(Name = "[Subterranean Shunning-Grounds] Fireproof Dried Liver 35007200")] - SubterraneanShunningGroundsFireproofDriedLiver = 35007200, + [Annotation(Name = "[Subterranean Shunning-Grounds] Fireproof Dried Liver 35007200")] + SubterraneanShunningGroundsFireproofDriedLiver = 35007200, - [Annotation(Name = "[Subterranean Shunning-Grounds] Somber Smithing Stone [8] 35007210")] - SubterraneanShunningGroundsSomberSmithingStone8 = 35007210, + [Annotation(Name = "[Subterranean Shunning-Grounds] Somber Smithing Stone [8] 35007210")] + SubterraneanShunningGroundsSomberSmithingStone8 = 35007210, - [Annotation(Name = "[Subterranean Shunning-Grounds] Smithing Stone [7] 35007220")] - SubterraneanShunningGroundsSmithingStone7_ = 35007220, + [Annotation(Name = "[Subterranean Shunning-Grounds] Smithing Stone [7] 35007220")] + SubterraneanShunningGroundsSmithingStone7_ = 35007220, - [Annotation(Name = "[Subterranean Shunning-Grounds] Grace Mimic 35007240")] - SubterraneanShunningGroundsGraceMimic = 35007240, + [Annotation(Name = "[Subterranean Shunning-Grounds] Grace Mimic 35007240")] + SubterraneanShunningGroundsGraceMimic = 35007240, - [Annotation(Name = "[Subterranean Shunning-Grounds] String 35007250")] - SubterraneanShunningGroundsString = 35007250, + [Annotation(Name = "[Subterranean Shunning-Grounds] String 35007250")] + SubterraneanShunningGroundsString = 35007250, - [Annotation(Name = "[Subterranean Shunning-Grounds] Fire Grease 35007260")] - SubterraneanShunningGroundsFireGrease = 35007260, + [Annotation(Name = "[Subterranean Shunning-Grounds] Fire Grease 35007260")] + SubterraneanShunningGroundsFireGrease = 35007260, - [Annotation(Name = "[Subterranean Shunning-Grounds] Nomad Ashes 35007270")] - SubterraneanShunningGroundsNomadAshes = 35007270, + [Annotation(Name = "[Subterranean Shunning-Grounds] Nomad Ashes 35007270")] + SubterraneanShunningGroundsNomadAshes = 35007270, - [Annotation(Name = "[Subterranean Shunning-Grounds] Preserving Boluses 35007280")] - SubterraneanShunningGroundsPreservingBoluses_ = 35007280, + [Annotation(Name = "[Subterranean Shunning-Grounds] Preserving Boluses 35007280")] + SubterraneanShunningGroundsPreservingBoluses_ = 35007280, - [Annotation(Name = "[Subterranean Shunning-Grounds] Glass Shard 35007300")] - SubterraneanShunningGroundsGlassShard__ = 35007300, + [Annotation(Name = "[Subterranean Shunning-Grounds] Glass Shard 35007300")] + SubterraneanShunningGroundsGlassShard__ = 35007300, - [Annotation(Name = "[Subterranean Shunning-Grounds] Mohg's Shackle 35007310")] - SubterraneanShunningGroundsMohgsShackle = 35007310, + [Annotation(Name = "[Subterranean Shunning-Grounds] Mohg's Shackle 35007310")] + SubterraneanShunningGroundsMohgsShackle = 35007310, - [Annotation(Name = "[Subterranean Shunning-Grounds] Dappled White Cured Meat 35007320")] - SubterraneanShunningGroundsDappledWhiteCuredMeat = 35007320, + [Annotation(Name = "[Subterranean Shunning-Grounds] Dappled White Cured Meat 35007320")] + SubterraneanShunningGroundsDappledWhiteCuredMeat = 35007320, - [Annotation(Name = "[Subterranean Shunning-Grounds] Glass Shard 35007330")] - SubterraneanShunningGroundsGlassShard___ = 35007330, + [Annotation(Name = "[Subterranean Shunning-Grounds] Glass Shard 35007330")] + SubterraneanShunningGroundsGlassShard___ = 35007330, - [Annotation(Name = "[Subterranean Shunning-Grounds] Golden Centipede 35007340")] - SubterraneanShunningGroundsGoldenCentipede = 35007340, + [Annotation(Name = "[Subterranean Shunning-Grounds] Golden Centipede 35007340")] + SubterraneanShunningGroundsGoldenCentipede = 35007340, - [Annotation(Name = "[Subterranean Shunning-Grounds] Poisoned Stone 35007350")] - SubterraneanShunningGroundsPoisonedStone = 35007350, + [Annotation(Name = "[Subterranean Shunning-Grounds] Poisoned Stone 35007350")] + SubterraneanShunningGroundsPoisonedStone = 35007350, - [Annotation(Name = "[Subterranean Shunning-Grounds] Freezing Grease 35007370")] - SubterraneanShunningGroundsFreezingGrease = 35007370, + [Annotation(Name = "[Subterranean Shunning-Grounds] Freezing Grease 35007370")] + SubterraneanShunningGroundsFreezingGrease = 35007370, - [Annotation(Name = "[Subterranean Shunning-Grounds] Serpent Arrow 35007380")] - SubterraneanShunningGroundsSerpentArrow = 35007380, + [Annotation(Name = "[Subterranean Shunning-Grounds] Serpent Arrow 35007380")] + SubterraneanShunningGroundsSerpentArrow = 35007380, - [Annotation(Name = "[Subterranean Shunning-Grounds] Fire Grease 35007390")] - SubterraneanShunningGroundsFireGrease_ = 35007390, + [Annotation(Name = "[Subterranean Shunning-Grounds] Fire Grease 35007390")] + SubterraneanShunningGroundsFireGrease_ = 35007390, - [Annotation(Name = "[Subterranean Shunning-Grounds] Somber Smithing Stone [6] 35007400")] - SubterraneanShunningGroundsSomberSmithingStone6 = 35007400, + [Annotation(Name = "[Subterranean Shunning-Grounds] Somber Smithing Stone [6] 35007400")] + SubterraneanShunningGroundsSomberSmithingStone6 = 35007400, - [Annotation(Name = "[Subterranean Shunning-Grounds] Smithing Stone [7] 35007410")] - SubterraneanShunningGroundsSmithingStone7__ = 35007410, + [Annotation(Name = "[Subterranean Shunning-Grounds] Smithing Stone [7] 35007410")] + SubterraneanShunningGroundsSmithingStone7__ = 35007410, - [Annotation(Name = "[Subterranean Shunning-Grounds] [Incantation] Shadow Bait 35007420")] - SubterraneanShunningGroundsIncantationShadowBait = 35007420, + [Annotation(Name = "[Subterranean Shunning-Grounds] [Incantation] Shadow Bait 35007420")] + SubterraneanShunningGroundsIncantationShadowBait = 35007420, - [Annotation(Name = "[Subterranean Shunning-Grounds] Golden Rune [10] 35007430")] - SubterraneanShunningGroundsGoldenRune10 = 35007430, + [Annotation(Name = "[Subterranean Shunning-Grounds] Golden Rune [10] 35007430")] + SubterraneanShunningGroundsGoldenRune10 = 35007430, - [Annotation(Name = "[Subterranean Shunning-Grounds] Somber Smithing Stone [7] 35007450")] - SubterraneanShunningGroundsSomberSmithingStone7 = 35007450, + [Annotation(Name = "[Subterranean Shunning-Grounds] Somber Smithing Stone [7] 35007450")] + SubterraneanShunningGroundsSomberSmithingStone7 = 35007450, - [Annotation(Name = "[Subterranean Shunning-Grounds] Smithing Stone [7] 35007460")] - SubterraneanShunningGroundsSmithingStone7___ = 35007460, + [Annotation(Name = "[Subterranean Shunning-Grounds] Smithing Stone [7] 35007460")] + SubterraneanShunningGroundsSmithingStone7___ = 35007460, - [Annotation(Name = "[Subterranean Shunning-Grounds] Glass Shard 35007470")] - SubterraneanShunningGroundsGlassShard____ = 35007470, + [Annotation(Name = "[Subterranean Shunning-Grounds] Glass Shard 35007470")] + SubterraneanShunningGroundsGlassShard____ = 35007470, - [Annotation(Name = "[Subterranean Shunning-Grounds] Smithing Stone [7] 35007480")] - SubterraneanShunningGroundsSmithingStone7____ = 35007480, + [Annotation(Name = "[Subterranean Shunning-Grounds] Smithing Stone [7] 35007480")] + SubterraneanShunningGroundsSmithingStone7____ = 35007480, - [Annotation(Name = "[Subterranean Shunning-Grounds] Golden Rune [9] 35007500")] - SubterraneanShunningGroundsGoldenRune9 = 35007500, + [Annotation(Name = "[Subterranean Shunning-Grounds] Golden Rune [9] 35007500")] + SubterraneanShunningGroundsGoldenRune9 = 35007500, - [Annotation(Name = "[Subterranean Shunning-Grounds] Golden Rune [11] 35007510")] - SubterraneanShunningGroundsGoldenRune11__ = 35007510, + [Annotation(Name = "[Subterranean Shunning-Grounds] Golden Rune [11] 35007510")] + SubterraneanShunningGroundsGoldenRune11__ = 35007510, - [Annotation(Name = "[Subterranean Shunning-Grounds] Warming Stone 35007530")] - SubterraneanShunningGroundsWarmingStone = 35007530, + [Annotation(Name = "[Subterranean Shunning-Grounds] Warming Stone 35007530")] + SubterraneanShunningGroundsWarmingStone = 35007530, - [Annotation(Name = "[Subterranean Shunning-Grounds] Smithing Stone [8] 35007540")] - SubterraneanShunningGroundsSmithingStone8 = 35007540, + [Annotation(Name = "[Subterranean Shunning-Grounds] Smithing Stone [8] 35007540")] + SubterraneanShunningGroundsSmithingStone8 = 35007540, - [Annotation(Name = "[Subterranean Shunning-Grounds] Eye of Yelough 35007550")] - SubterraneanShunningGroundsEyeOfYelough_ = 35007550, + [Annotation(Name = "[Subterranean Shunning-Grounds] Eye of Yelough 35007550")] + SubterraneanShunningGroundsEyeOfYelough_ = 35007550, - [Annotation(Name = "[Subterranean Shunning-Grounds] Golden Rune [8] 35007560")] - SubterraneanShunningGroundsGoldenRune8 = 35007560, + [Annotation(Name = "[Subterranean Shunning-Grounds] Golden Rune [8] 35007560")] + SubterraneanShunningGroundsGoldenRune8 = 35007560, - [Annotation(Name = "[Subterranean Shunning-Grounds] Smithing Stone [7] 35007570")] - SubterraneanShunningGroundsSmithingStone7_____ = 35007570, + [Annotation(Name = "[Subterranean Shunning-Grounds] Smithing Stone [7] 35007570")] + SubterraneanShunningGroundsSmithingStone7_____ = 35007570, - [Annotation(Name = "[Subterranean Shunning-Grounds] Golden Rune [1] 35007580")] - SubterraneanShunningGroundsGoldenRune1__ = 35007580, + [Annotation(Name = "[Subterranean Shunning-Grounds] Golden Rune [1] 35007580")] + SubterraneanShunningGroundsGoldenRune1__ = 35007580, - [Annotation(Name = "[Subterranean Shunning-Grounds] Golden Rune [11] 35007590")] - SubterraneanShunningGroundsGoldenRune11___ = 35007590, + [Annotation(Name = "[Subterranean Shunning-Grounds] Golden Rune [11] 35007590")] + SubterraneanShunningGroundsGoldenRune11___ = 35007590, - [Annotation(Name = "[Subterranean Shunning-Grounds] Smithing Stone [5] 35007600")] - SubterraneanShunningGroundsSmithingStone5 = 35007600, + [Annotation(Name = "[Subterranean Shunning-Grounds] Smithing Stone [5] 35007600")] + SubterraneanShunningGroundsSmithingStone5 = 35007600, - [Annotation(Name = "[Subterranean Shunning-Grounds] Ritual Pot 66490")] - SubterraneanShunningGroundsRitualPot = 66490, + [Annotation(Name = "[Subterranean Shunning-Grounds] Ritual Pot 66490")] + SubterraneanShunningGroundsRitualPot = 66490, - [Annotation(Name = "[Subterranean Shunning-Grounds] Smithing Stone [6] 35007630")] - SubterraneanShunningGroundsSmithingStone6 = 35007630, + [Annotation(Name = "[Subterranean Shunning-Grounds] Smithing Stone [6] 35007630")] + SubterraneanShunningGroundsSmithingStone6 = 35007630, - [Annotation(Name = "[Subterranean Shunning-Grounds] Grace Mimic 35007650")] - SubterraneanShunningGroundsGraceMimic_ = 35007650, + [Annotation(Name = "[Subterranean Shunning-Grounds] Grace Mimic 35007650")] + SubterraneanShunningGroundsGraceMimic_ = 35007650, - [Annotation(Name = "[Subterranean Shunning-Grounds] Golden Rune [11] 35007660")] - SubterraneanShunningGroundsGoldenRune11____ = 35007660, + [Annotation(Name = "[Subterranean Shunning-Grounds] Golden Rune [11] 35007660")] + SubterraneanShunningGroundsGoldenRune11____ = 35007660, - [Annotation(Name = "[Subterranean Shunning-Grounds] Hefty Beast Bone 35007670")] - SubterraneanShunningGroundsHeftyBeastBone = 35007670, + [Annotation(Name = "[Subterranean Shunning-Grounds] Hefty Beast Bone 35007670")] + SubterraneanShunningGroundsHeftyBeastBone = 35007670, - [Annotation(Name = "[Subterranean Shunning-Grounds] [Incantation] Inescapable Frenzy 35007680")] - SubterraneanShunningGroundsIncantationInescapableFrenzy = 35007680, + [Annotation(Name = "[Subterranean Shunning-Grounds] [Incantation] Inescapable Frenzy 35007680")] + SubterraneanShunningGroundsIncantationInescapableFrenzy = 35007680, - [Annotation(Name = "[Subterranean Shunning-Grounds] Erdtree's Favor +1 35007700")] - SubterraneanShunningGroundsErdtreesFavor1 = 35007700, + [Annotation(Name = "[Subterranean Shunning-Grounds] Erdtree's Favor +1 35007700")] + SubterraneanShunningGroundsErdtreesFavor1 = 35007700, - [Annotation(Name = "[Subterranean Shunning-Grounds] Nomadic Merchant's Chapeau 35007710")] - SubterraneanShunningGroundsNomadicMerchantsChapeau = 35007710, + [Annotation(Name = "[Subterranean Shunning-Grounds] Nomadic Merchant's Chapeau 35007710")] + SubterraneanShunningGroundsNomadicMerchantsChapeau = 35007710, - [Annotation(Name = "[Subterranean Shunning-Grounds] Fingerprint Stone Shield 35007720")] - SubterraneanShunningGroundsFingerprintStoneShield = 35007720, + [Annotation(Name = "[Subterranean Shunning-Grounds] Fingerprint Stone Shield 35007720")] + SubterraneanShunningGroundsFingerprintStoneShield = 35007720, - [Annotation(Name = "[Subterranean Shunning-Grounds] Warming Stone 35007730")] - SubterraneanShunningGroundsWarmingStone_ = 35007730, + [Annotation(Name = "[Subterranean Shunning-Grounds] Warming Stone 35007730")] + SubterraneanShunningGroundsWarmingStone_ = 35007730, - [Annotation(Name = "[Subterranean Shunning-Grounds] Poisoned Stone 35007740")] - SubterraneanShunningGroundsPoisonedStone_ = 35007740, + [Annotation(Name = "[Subterranean Shunning-Grounds] Poisoned Stone 35007740")] + SubterraneanShunningGroundsPoisonedStone_ = 35007740, - [Annotation(Name = "[Subterranean Shunning-Grounds] Smithing Stone [1] 35007750")] - SubterraneanShunningGroundsSmithingStone1 = 35007750, + [Annotation(Name = "[Subterranean Shunning-Grounds] Smithing Stone [1] 35007750")] + SubterraneanShunningGroundsSmithingStone1 = 35007750, - [Annotation(Name = "[Subterranean Shunning-Grounds] Fire Longsword 35007770")] - SubterraneanShunningGroundsFireLongsword = 35007770, + [Annotation(Name = "[Subterranean Shunning-Grounds] Fire Longsword 35007770")] + SubterraneanShunningGroundsFireLongsword = 35007770, - [Annotation(Name = "[Subterranean Shunning-Grounds] Rune Arc 35007780")] - SubterraneanShunningGroundsRuneArc_ = 35007780, + [Annotation(Name = "[Subterranean Shunning-Grounds] Rune Arc 35007780")] + SubterraneanShunningGroundsRuneArc_ = 35007780, - [Annotation(Name = "[Subterranean Shunning-Grounds] Frenzied's Cookbook [2] 68410")] - SubterraneanShunningGroundsFrenziedsCookbook2 = 68410, + [Annotation(Name = "[Subterranean Shunning-Grounds] Frenzied's Cookbook [2] 68410")] + SubterraneanShunningGroundsFrenziedsCookbook2 = 68410, - [Annotation(Name = "[Subterranean Shunning-Grounds] Ghost Glovewort [6] 35007900")] - SubterraneanShunningGroundsGhostGlovewort6 = 35007900, + [Annotation(Name = "[Subterranean Shunning-Grounds] Ghost Glovewort [6] 35007900")] + SubterraneanShunningGroundsGhostGlovewort6 = 35007900, - [Annotation(Name = "[Subterranean Shunning-Grounds] Root Resin 35007910")] - SubterraneanShunningGroundsRootResin = 35007910, + [Annotation(Name = "[Subterranean Shunning-Grounds] Root Resin 35007910")] + SubterraneanShunningGroundsRootResin = 35007910, - [Annotation(Name = "[Subterranean Shunning-Grounds] Mushroom 35007920")] - SubterraneanShunningGroundsMushroom = 35007920, + [Annotation(Name = "[Subterranean Shunning-Grounds] Mushroom 35007920")] + SubterraneanShunningGroundsMushroom = 35007920, - [Annotation(Name = "[Subterranean Shunning-Grounds] Sacramental Bud 35007930")] - SubterraneanShunningGroundsSacramentalBud = 35007930, + [Annotation(Name = "[Subterranean Shunning-Grounds] Sacramental Bud 35007930")] + SubterraneanShunningGroundsSacramentalBud = 35007930, - [Annotation(Name = "[Subterranean Shunning-Grounds] Crucible Scale Talisman 35007940")] - SubterraneanShunningGroundsCrucibleScaleTalisman = 35007940, + [Annotation(Name = "[Subterranean Shunning-Grounds] Crucible Scale Talisman 35007940")] + SubterraneanShunningGroundsCrucibleScaleTalisman = 35007940, - [Annotation(Name = "[Subterranean Shunning-Grounds] Haligdrake Talisman +1 35007950")] - SubterraneanShunningGroundsHaligdrakeTalisman1 = 35007950, + [Annotation(Name = "[Subterranean Shunning-Grounds] Haligdrake Talisman +1 35007950")] + SubterraneanShunningGroundsHaligdrakeTalisman1 = 35007950, - [Annotation(Name = "[Subterranean Shunning-Grounds] Rune Arc 35007960")] - SubterraneanShunningGroundsRuneArc__ = 35007960, + [Annotation(Name = "[Subterranean Shunning-Grounds] Rune Arc 35007960")] + SubterraneanShunningGroundsRuneArc__ = 35007960, - [Annotation(Name = "[Subterranean Shunning-Grounds] Somber Smithing Stone [6] 35007970")] - SubterraneanShunningGroundsSomberSmithingStone6_ = 35007970, + [Annotation(Name = "[Subterranean Shunning-Grounds] Somber Smithing Stone [6] 35007970")] + SubterraneanShunningGroundsSomberSmithingStone6_ = 35007970, - [Annotation(Name = "[Subterranean Shunning-Grounds] Somber Smithing Stone [7] 35007980")] - SubterraneanShunningGroundsSomberSmithingStone7_ = 35007980, + [Annotation(Name = "[Subterranean Shunning-Grounds] Somber Smithing Stone [7] 35007980")] + SubterraneanShunningGroundsSomberSmithingStone7_ = 35007980, - [Annotation(Name = "[Ruin-Strewn Precipice] Golden Rune [1] 39207000")] - RuinStrewnPrecipiceGoldenRune1 = 39207000, + [Annotation(Name = "[Ruin-Strewn Precipice] Golden Rune [1] 39207000")] + RuinStrewnPrecipiceGoldenRune1 = 39207000, - [Annotation(Name = "[Ruin-Strewn Precipice] Smithing Stone [5] 39207010")] - RuinStrewnPrecipiceSmithingStone5 = 39207010, + [Annotation(Name = "[Ruin-Strewn Precipice] Smithing Stone [5] 39207010")] + RuinStrewnPrecipiceSmithingStone5 = 39207010, - [Annotation(Name = "[Ruin-Strewn Precipice] Rune Arc 39207020")] - RuinStrewnPrecipiceRuneArc = 39207020, + [Annotation(Name = "[Ruin-Strewn Precipice] Rune Arc 39207020")] + RuinStrewnPrecipiceRuneArc = 39207020, - [Annotation(Name = "[Ruin-Strewn Precipice] Somber Smithing Stone [3] 39207030")] - RuinStrewnPrecipiceSomberSmithingStone3 = 39207030, + [Annotation(Name = "[Ruin-Strewn Precipice] Somber Smithing Stone [3] 39207030")] + RuinStrewnPrecipiceSomberSmithingStone3 = 39207030, - [Annotation(Name = "[Ruin-Strewn Precipice] Serpent-God's Curved Sword 39207040")] - RuinStrewnPrecipiceSerpentGodsCurvedSword = 39207040, + [Annotation(Name = "[Ruin-Strewn Precipice] Serpent-God's Curved Sword 39207040")] + RuinStrewnPrecipiceSerpentGodsCurvedSword = 39207040, - [Annotation(Name = "[Ruin-Strewn Precipice] Smithing Stone [4] 39207050")] - RuinStrewnPrecipiceSmithingStone4 = 39207050, + [Annotation(Name = "[Ruin-Strewn Precipice] Smithing Stone [4] 39207050")] + RuinStrewnPrecipiceSmithingStone4 = 39207050, - [Annotation(Name = "[Ruin-Strewn Precipice] Golden Rune [4] 39207060")] - RuinStrewnPrecipiceGoldenRune4 = 39207060, + [Annotation(Name = "[Ruin-Strewn Precipice] Golden Rune [4] 39207060")] + RuinStrewnPrecipiceGoldenRune4 = 39207060, - [Annotation(Name = "[Ruin-Strewn Precipice] Golden Rune [5] 39207070")] - RuinStrewnPrecipiceGoldenRune5 = 39207070, + [Annotation(Name = "[Ruin-Strewn Precipice] Golden Rune [5] 39207070")] + RuinStrewnPrecipiceGoldenRune5 = 39207070, - [Annotation(Name = "[Ruin-Strewn Precipice] Rune Arc 39207080")] - RuinStrewnPrecipiceRuneArc_ = 39207080, + [Annotation(Name = "[Ruin-Strewn Precipice] Rune Arc 39207080")] + RuinStrewnPrecipiceRuneArc_ = 39207080, - [Annotation(Name = "[Ruin-Strewn Precipice] Soft Cotton 39207090")] - RuinStrewnPrecipiceSoftCotton = 39207090, + [Annotation(Name = "[Ruin-Strewn Precipice] Soft Cotton 39207090")] + RuinStrewnPrecipiceSoftCotton = 39207090, - [Annotation(Name = "[Ruin-Strewn Precipice] Golden Rune [5] 39207100")] - RuinStrewnPrecipiceGoldenRune5_ = 39207100, + [Annotation(Name = "[Ruin-Strewn Precipice] Golden Rune [5] 39207100")] + RuinStrewnPrecipiceGoldenRune5_ = 39207100, - [Annotation(Name = "[Ruin-Strewn Precipice] Golden Rune [5] 39207110")] - RuinStrewnPrecipiceGoldenRune5__ = 39207110, + [Annotation(Name = "[Ruin-Strewn Precipice] Golden Rune [5] 39207110")] + RuinStrewnPrecipiceGoldenRune5__ = 39207110, - [Annotation(Name = "[Ruin-Strewn Precipice] Lost Ashes of War 39207120")] - RuinStrewnPrecipiceLostAshesOfWar = 39207120, + [Annotation(Name = "[Ruin-Strewn Precipice] Lost Ashes of War 39207120")] + RuinStrewnPrecipiceLostAshesOfWar = 39207120, - [Annotation(Name = "[Ruin-Strewn Precipice] Smithing Stone [3] 39207130")] - RuinStrewnPrecipiceSmithingStone3 = 39207130, + [Annotation(Name = "[Ruin-Strewn Precipice] Smithing Stone [3] 39207130")] + RuinStrewnPrecipiceSmithingStone3 = 39207130, - [Annotation(Name = "[Ruin-Strewn Precipice] Smithing Stone [3] 39207140")] - RuinStrewnPrecipiceSmithingStone3_ = 39207140, + [Annotation(Name = "[Ruin-Strewn Precipice] Smithing Stone [3] 39207140")] + RuinStrewnPrecipiceSmithingStone3_ = 39207140, - [Annotation(Name = "[Ruin-Strewn Precipice] Smithing Stone [3] 39207150")] - RuinStrewnPrecipiceSmithingStone3__ = 39207150, + [Annotation(Name = "[Ruin-Strewn Precipice] Smithing Stone [3] 39207150")] + RuinStrewnPrecipiceSmithingStone3__ = 39207150, - [Annotation(Name = "[Ruin-Strewn Precipice] Lightning Grease 39207160")] - RuinStrewnPrecipiceLightningGrease = 39207160, + [Annotation(Name = "[Ruin-Strewn Precipice] Lightning Grease 39207160")] + RuinStrewnPrecipiceLightningGrease = 39207160, - [Annotation(Name = "[Ruin-Strewn Precipice] Sacred Tear 39207170")] - RuinStrewnPrecipiceSacredTear = 39207170, + [Annotation(Name = "[Ruin-Strewn Precipice] Sacred Tear 39207170")] + RuinStrewnPrecipiceSacredTear = 39207170, - [Annotation(Name = "[Ruin-Strewn Precipice] Smithing Stone [1] 39207200")] - RuinStrewnPrecipiceSmithingStone1 = 39207200, + [Annotation(Name = "[Ruin-Strewn Precipice] Smithing Stone [1] 39207200")] + RuinStrewnPrecipiceSmithingStone1 = 39207200, - [Annotation(Name = "[Ruin-Strewn Precipice] Bull-Goat Helm 39207500")] - RuinStrewnPrecipiceBullGoatHelm = 39207500, + [Annotation(Name = "[Ruin-Strewn Precipice] Bull-Goat Helm 39207500")] + RuinStrewnPrecipiceBullGoatHelm = 39207500, - [Annotation(Name = "Golden Rune [1] 99017000")] - GoldenRune1_____________________ = 99017000, + [Annotation(Name = "Golden Rune [1] 99017000")] + GoldenRune1_____________________ = 99017000, - [Annotation(Name = "Cracked Pot 99997020")] - CrackedPot = 99997020, + [Annotation(Name = "Cracked Pot 99997020")] + CrackedPot = 99997020, - [Annotation(Name = "Perfume Bottle 99997030")] - PerfumeBottle = 99997030, + [Annotation(Name = "Perfume Bottle 99997030")] + PerfumeBottle = 99997030, - [Annotation(Name = "Veteran's Helm 59930000")] - VeteransHelm = 59930000, + [Annotation(Name = "Veteran's Helm 59930000")] + VeteransHelm = 59930000, - [Annotation(Name = "Soft Cotton 59931000")] - SoftCotton = 59931000, + [Annotation(Name = "Soft Cotton 59931000")] + SoftCotton = 59931000, - [Annotation(Name = "[Limgrave - Mistwood] Spiked Cracked Tear 65140")] - LimgraveMistwoodSpikedCrackedTear = 65140, + [Annotation(Name = "[Limgrave - Mistwood] Spiked Cracked Tear 65140")] + LimgraveMistwoodSpikedCrackedTear = 65140, - [Annotation(Name = "[Limgrave - Mistwood] Greenspill Crystal Tear 65010")] - LimgraveMistwoodGreenspillCrystalTear = 65010, + [Annotation(Name = "[Limgrave - Mistwood] Greenspill Crystal Tear 65010")] + LimgraveMistwoodGreenspillCrystalTear = 65010, - [Annotation(Name = "[Limgrave - Third Church of Marika] Flask of Wondrous Physick 60020")] - LimgraveThirdChurchOfMarikaFlaskOfWondrousPhysick = 60020, + [Annotation(Name = "[Limgrave - Third Church of Marika] Flask of Wondrous Physick 60020")] + LimgraveThirdChurchOfMarikaFlaskOfWondrousPhysick = 60020, - [Annotation(Name = "[Limgrave - Third Church of Marika] Crimson Crystal Tear 65020")] - LimgraveThirdChurchOfMarikaCrimsonCrystalTear = 65020, + [Annotation(Name = "[Limgrave - Third Church of Marika] Crimson Crystal Tear 65020")] + LimgraveThirdChurchOfMarikaCrimsonCrystalTear = 65020, - [Annotation(Name = "[Limgrave - Third Church of Marika] Sacred Tear 1046387100")] - LimgraveThirdChurchOfMarikaSacredTear = 1046387100, + [Annotation(Name = "[Limgrave - Third Church of Marika] Sacred Tear 1046387100")] + LimgraveThirdChurchOfMarikaSacredTear = 1046387100, - [Annotation(Name = "[Weeping Peninsula - Fourth Church of Marika] Sacred Tear 1041337200")] - WeepingPeninsulaFourthChurchOfMarikaSacredTear = 1041337200, + [Annotation(Name = "[Weeping Peninsula - Fourth Church of Marika] Sacred Tear 1041337200")] + WeepingPeninsulaFourthChurchOfMarikaSacredTear = 1041337200, - [Annotation(Name = "[Limgrave - Seaside Ruins] Sacred Tear 1043357100")] - LimgraveSeasideRuinsSacredTear = 1043357100, + [Annotation(Name = "[Limgrave - Seaside Ruins] Sacred Tear 1043357100")] + LimgraveSeasideRuinsSacredTear = 1043357100, - [Annotation(Name = "[Weeping Peninsula - Ailing Village Outskirts] Sacred Tear 1044337100")] - WeepingPeninsulaAilingVillageOutskirtsSacredTear = 1044337100, + [Annotation(Name = "[Weeping Peninsula - Ailing Village Outskirts] Sacred Tear 1044337100")] + WeepingPeninsulaAilingVillageOutskirtsSacredTear = 1044337100, - [Annotation(Name = "[Stormhill - Stormhill Shack] Golden Seed 1041387100")] - StormhillStormhillShackGoldenSeed = 1041387100, + [Annotation(Name = "[Stormhill - Stormhill Shack] Golden Seed 1041387100")] + StormhillStormhillShackGoldenSeed = 1041387100, - [Annotation(Name = "[Weeping Peninsula - Castle Morne Approach] Golden Seed 1044327020")] - WeepingPeninsulaCastleMorneApproachGoldenSeed = 1044327020, + [Annotation(Name = "[Weeping Peninsula - Castle Morne Approach] Golden Seed 1044327020")] + WeepingPeninsulaCastleMorneApproachGoldenSeed = 1044327020, - [Annotation(Name = "[Limgrave - Fort Haight] Golden Seed 1046367100")] - LimgraveFortHaightGoldenSeed = 1046367100, + [Annotation(Name = "[Limgrave - Fort Haight] Golden Seed 1046367100")] + LimgraveFortHaightGoldenSeed = 1046367100, - [Annotation(Name = "[Limgrave - Agheel Lake North] Ash of War: Repeating Thrust 1043377400")] - LimgraveAgheelLakeNorthAshOfWarRepeatingThrust = 1043377400, + [Annotation(Name = "[Limgrave - Agheel Lake North] Ash of War: Repeating Thrust 1043377400")] + LimgraveAgheelLakeNorthAshOfWarRepeatingThrust = 1043377400, - [Annotation(Name = "[Stormhill - Warmaster's Shack] Blue-Feathered Branchsword 1042387400")] - StormhillWarmastersShackBlueFeatheredBranchsword = 1042387400, + [Annotation(Name = "[Stormhill - Warmaster's Shack] Blue-Feathered Branchsword 1042387400")] + StormhillWarmastersShackBlueFeatheredBranchsword = 1042387400, - [Annotation(Name = "[Stormhill - Warmaster's Shack] Bone Peddler's Bell Bearing 1042387410")] - StormhillWarmastersShackBonePeddlersBellBearing = 1042387410, + [Annotation(Name = "[Stormhill - Warmaster's Shack] Bone Peddler's Bell Bearing 1042387410")] + StormhillWarmastersShackBonePeddlersBellBearing = 1042387410, - [Annotation(Name = "[Stormhill - Forested West Cliffside] Smithing Stone [1] 1040387000")] - StormhillForestedWestCliffsideSmithingStone1 = 1040387000, + [Annotation(Name = "[Stormhill - Forested West Cliffside] Smithing Stone [1] 1040387000")] + StormhillForestedWestCliffsideSmithingStone1 = 1040387000, - [Annotation(Name = "[Stormhill - Forested West Cliffside] Nomadic Warrior's Cookbook [7] 67050")] - StormhillForestedWestCliffsideNomadicWarriorsCookbook7 = 67050, + [Annotation(Name = "[Stormhill - Forested West Cliffside] Nomadic Warrior's Cookbook [7] 67050")] + StormhillForestedWestCliffsideNomadicWarriorsCookbook7 = 67050, - [Annotation(Name = "[Limgrave - Church of Dragon Communion] Great Dragonfly Head 1041357000")] - LimgraveChurchOfDragonCommunionGreatDragonflyHead = 1041357000, + [Annotation(Name = "[Limgrave - Church of Dragon Communion] Great Dragonfly Head 1041357000")] + LimgraveChurchOfDragonCommunionGreatDragonflyHead = 1041357000, - [Annotation(Name = "[Limgrave - Church of Dragon Communion] Smithing Stone [2] 1041357010")] - LimgraveChurchOfDragonCommunionSmithingStone2 = 1041357010, + [Annotation(Name = "[Limgrave - Church of Dragon Communion] Smithing Stone [2] 1041357010")] + LimgraveChurchOfDragonCommunionSmithingStone2 = 1041357010, - [Annotation(Name = "[Limgrave - Church of Dragon Communion] Exalted Flesh 1041357020")] - LimgraveChurchOfDragonCommunionExaltedFlesh = 1041357020, + [Annotation(Name = "[Limgrave - Church of Dragon Communion] Exalted Flesh 1041357020")] + LimgraveChurchOfDragonCommunionExaltedFlesh = 1041357020, - [Annotation(Name = "[Limgrave - Coastal Cave Entrance] Land Octopus Ovary 1041367000")] - LimgraveCoastalCaveEntranceLandOctopusOvary = 1041367000, + [Annotation(Name = "[Limgrave - Coastal Cave Entrance] Land Octopus Ovary 1041367000")] + LimgraveCoastalCaveEntranceLandOctopusOvary = 1041367000, - [Annotation(Name = "[Limgrave - Stormfoot Catacombs Entrance] Strip of White Flesh 1041377000")] - LimgraveStormfootCatacombsEntranceStripOfWhiteFlesh = 1041377000, + [Annotation(Name = "[Limgrave - Stormfoot Catacombs Entrance] Strip of White Flesh 1041377000")] + LimgraveStormfootCatacombsEntranceStripOfWhiteFlesh = 1041377000, - [Annotation(Name = "[Limgrave - Stormfoot Catacombs Entrance] Starlight Shards 1041377020")] - LimgraveStormfootCatacombsEntranceStarlightShards = 1041377020, + [Annotation(Name = "[Limgrave - Stormfoot Catacombs Entrance] Starlight Shards 1041377020")] + LimgraveStormfootCatacombsEntranceStarlightShards = 1041377020, - [Annotation(Name = "[Stormhill - Stormhill Shack] Magic Grease 1041387010")] - StormhillStormhillShackMagicGrease = 1041387010, + [Annotation(Name = "[Stormhill - Stormhill Shack] Magic Grease 1041387010")] + StormhillStormhillShackMagicGrease = 1041387010, - [Annotation(Name = "[Stormhill - Stormhill Shack] Smithing Stone [1] 1041387030")] - StormhillStormhillShackSmithingStone1 = 1041387030, + [Annotation(Name = "[Stormhill - Stormhill Shack] Smithing Stone [1] 1041387030")] + StormhillStormhillShackSmithingStone1 = 1041387030, - [Annotation(Name = "[Stormhill - Stormhill Shack] Stonesword Key 1041387040")] - StormhillStormhillShackStoneswordKey = 1041387040, + [Annotation(Name = "[Stormhill - Stormhill Shack] Stonesword Key 1041387040")] + StormhillStormhillShackStoneswordKey = 1041387040, - [Annotation(Name = "[Stormhill - Stormhill Shack] Godrick Soldier Ashes 1041387050")] - StormhillStormhillShackGodrickSoldierAshes = 1041387050, + [Annotation(Name = "[Stormhill - Stormhill Shack] Godrick Soldier Ashes 1041387050")] + StormhillStormhillShackGodrickSoldierAshes = 1041387050, - [Annotation(Name = "[Stormhill - Stormhill Shack] Bloodrose 1041387200")] - StormhillStormhillShackBloodrose = 1041387200, + [Annotation(Name = "[Stormhill - Stormhill Shack] Bloodrose 1041387200")] + StormhillStormhillShackBloodrose = 1041387200, - [Annotation(Name = "[Stormhill - North of Stormhill Shack] Lump of Flesh 1041397000")] - StormhillNorthOfStormhillShackLumpOfFlesh = 1041397000, + [Annotation(Name = "[Stormhill - North of Stormhill Shack] Lump of Flesh 1041397000")] + StormhillNorthOfStormhillShackLumpOfFlesh = 1041397000, - [Annotation(Name = "[Stormhill - Northwest Cliffside] Duelist's Furled Finger 60240")] - StormhillNorthwestCliffsideDuelistsFurledFinger = 60240, + [Annotation(Name = "[Stormhill - Northwest Cliffside] Duelist's Furled Finger 60240")] + StormhillNorthwestCliffsideDuelistsFurledFinger = 60240, - [Annotation(Name = "[Stormhill - Northwest Cliffside] Small Red Effigy 60250")] - StormhillNorthwestCliffsideSmallRedEffigy = 60250, + [Annotation(Name = "[Stormhill - Northwest Cliffside] Small Red Effigy 60250")] + StormhillNorthwestCliffsideSmallRedEffigy = 60250, - [Annotation(Name = "[Limgrave - South of Stranded Graveyard] Gold-Pickled Fowl Foot 1042357010")] - LimgraveSouthOfStrandedGraveyardGoldPickledFowlFoot = 1042357010, + [Annotation(Name = "[Limgrave - South of Stranded Graveyard] Gold-Pickled Fowl Foot 1042357010")] + LimgraveSouthOfStrandedGraveyardGoldPickledFowlFoot = 1042357010, - [Annotation(Name = "[Limgrave - South of Stranded Graveyard] Lump of Flesh 1042357000")] - LimgraveSouthOfStrandedGraveyardLumpOfFlesh = 1042357000, + [Annotation(Name = "[Limgrave - South of Stranded Graveyard] Lump of Flesh 1042357000")] + LimgraveSouthOfStrandedGraveyardLumpOfFlesh = 1042357000, - [Annotation(Name = "[Limgrave - Church of Elleh] Silver-Pickled Fowl Foot 1042367010")] - LimgraveChurchOfEllehSilverPickledFowlFoot = 1042367010, + [Annotation(Name = "[Limgrave - Church of Elleh] Silver-Pickled Fowl Foot 1042367010")] + LimgraveChurchOfEllehSilverPickledFowlFoot = 1042367010, - [Annotation(Name = "[Limgrave - Church of Elleh] Golden Rune [2] 1042367030")] - LimgraveChurchOfEllehGoldenRune2 = 1042367030, + [Annotation(Name = "[Limgrave - Church of Elleh] Golden Rune [2] 1042367030")] + LimgraveChurchOfEllehGoldenRune2 = 1042367030, - [Annotation(Name = "[Limgrave - Church of Elleh] Golden Rune [1] 1042367040")] - LimgraveChurchOfEllehGoldenRune1 = 1042367040, + [Annotation(Name = "[Limgrave - Church of Elleh] Golden Rune [1] 1042367040")] + LimgraveChurchOfEllehGoldenRune1 = 1042367040, - [Annotation(Name = "[Limgrave - Church of Elleh] Smithing Stone [1] 1042367050")] - LimgraveChurchOfEllehSmithingStone1 = 1042367050, + [Annotation(Name = "[Limgrave - Church of Elleh] Smithing Stone [1] 1042367050")] + LimgraveChurchOfEllehSmithingStone1 = 1042367050, - [Annotation(Name = "[Limgrave - Church of Elleh] Smithing Stone [1] 1042367060")] - LimgraveChurchOfEllehSmithingStone1_ = 1042367060, + [Annotation(Name = "[Limgrave - Church of Elleh] Smithing Stone [1] 1042367060")] + LimgraveChurchOfEllehSmithingStone1_ = 1042367060, - [Annotation(Name = "[Limgrave - Gatefront] Ruin Fragment 1042377000")] - LimgraveGatefrontRuinFragment = 1042377000, + [Annotation(Name = "[Limgrave - Gatefront] Ruin Fragment 1042377000")] + LimgraveGatefrontRuinFragment = 1042377000, - [Annotation(Name = "[Troll Carriage - Gatefront Ruins] Flail 1042377060")] - TrollCarriageGatefrontRuinsFlail = 1042377060, + [Annotation(Name = "[Troll Carriage - Gatefront Ruins] Flail 1042377060")] + TrollCarriageGatefrontRuinsFlail = 1042377060, - [Annotation(Name = "[Troll Carriage - Gatefront Ruins] Lordsworn's Greatsword 1042377070")] - TrollCarriageGatefrontRuinsLordswornsGreatsword = 1042377070, + [Annotation(Name = "[Troll Carriage - Gatefront Ruins] Lordsworn's Greatsword 1042377070")] + TrollCarriageGatefrontRuinsLordswornsGreatsword = 1042377070, - [Annotation(Name = "[Limgrave - Gatefront] Whetstone Knife 60130")] - LimgraveGatefrontWhetstoneKnife = 60130, + [Annotation(Name = "[Limgrave - Gatefront] Whetstone Knife 60130")] + LimgraveGatefrontWhetstoneKnife = 60130, - [Annotation(Name = "[Limgrave - Gatefront] Ash of War: Storm Stomp 1042377110")] - LimgraveGatefrontAshOfWarStormStomp = 1042377110, + [Annotation(Name = "[Limgrave - Gatefront] Ash of War: Storm Stomp 1042377110")] + LimgraveGatefrontAshOfWarStormStomp = 1042377110, - [Annotation(Name = "[Limgrave - Gatefront] Kukri 1042377010")] - LimgraveGatefrontKukri = 1042377010, + [Annotation(Name = "[Limgrave - Gatefront] Kukri 1042377010")] + LimgraveGatefrontKukri = 1042377010, - [Annotation(Name = "[Limgrave - Gatefront] Arrow's Reach Talisman 1042377300")] - LimgraveGatefrontArrowsReachTalisman = 1042377300, + [Annotation(Name = "[Limgrave - Gatefront] Arrow's Reach Talisman 1042377300")] + LimgraveGatefrontArrowsReachTalisman = 1042377300, - [Annotation(Name = "[Limgrave - Gatefront] Assassin's Crimson Dagger 1042377100")] - LimgraveGatefrontAssassinsCrimsonDagger = 1042377100, + [Annotation(Name = "[Limgrave - Gatefront] Assassin's Crimson Dagger 1042377100")] + LimgraveGatefrontAssassinsCrimsonDagger = 1042377100, - [Annotation(Name = "[Stormhill - Warmaster's Shack] Beast Liver 1042387000")] - StormhillWarmastersShackBeastLiver = 1042387000, + [Annotation(Name = "[Stormhill - Warmaster's Shack] Beast Liver 1042387000")] + StormhillWarmastersShackBeastLiver = 1042387000, - [Annotation(Name = "[Stormhill - Warmaster's Shack] Golden Rune [1] 1042387010")] - StormhillWarmastersShackGoldenRune1 = 1042387010, + [Annotation(Name = "[Stormhill - Warmaster's Shack] Golden Rune [1] 1042387010")] + StormhillWarmastersShackGoldenRune1 = 1042387010, - [Annotation(Name = "[Stormhill - Warmaster's Shack] Fire Arrow 1042387020")] - StormhillWarmastersShackFireArrow = 1042387020, + [Annotation(Name = "[Stormhill - Warmaster's Shack] Fire Arrow 1042387020")] + StormhillWarmastersShackFireArrow = 1042387020, - [Annotation(Name = "[Stormhill - Warmaster's Shack] Golden Rune [5] 1042387030")] - StormhillWarmastersShackGoldenRune5 = 1042387030, + [Annotation(Name = "[Stormhill - Warmaster's Shack] Golden Rune [5] 1042387030")] + StormhillWarmastersShackGoldenRune5 = 1042387030, - [Annotation(Name = "[Stormhill - Warmaster's Shack] Golden Rune [1] 1042387040")] - StormhillWarmastersShackGoldenRune1_ = 1042387040, + [Annotation(Name = "[Stormhill - Warmaster's Shack] Golden Rune [1] 1042387040")] + StormhillWarmastersShackGoldenRune1_ = 1042387040, - [Annotation(Name = "[Stormhill - Warmaster's Shack] Golden Rune [3] 1042387050")] - StormhillWarmastersShackGoldenRune3 = 1042387050, + [Annotation(Name = "[Stormhill - Warmaster's Shack] Golden Rune [3] 1042387050")] + StormhillWarmastersShackGoldenRune3 = 1042387050, - [Annotation(Name = "[Stormhill - Warmaster's Shack] Golden Rune [2] 1042387070")] - StormhillWarmastersShackGoldenRune2 = 1042387070, + [Annotation(Name = "[Stormhill - Warmaster's Shack] Golden Rune [2] 1042387070")] + StormhillWarmastersShackGoldenRune2 = 1042387070, - [Annotation(Name = "[Stormhill - Warmaster's Shack] Golden Rune [1] 1042387080")] - StormhillWarmastersShackGoldenRune1__ = 1042387080, + [Annotation(Name = "[Stormhill - Warmaster's Shack] Golden Rune [1] 1042387080")] + StormhillWarmastersShackGoldenRune1__ = 1042387080, - [Annotation(Name = "[Stormhill - Warmaster's Shack] Golden Rune [2] 1042387090")] - StormhillWarmastersShackGoldenRune2_ = 1042387090, + [Annotation(Name = "[Stormhill - Warmaster's Shack] Golden Rune [2] 1042387090")] + StormhillWarmastersShackGoldenRune2_ = 1042387090, - [Annotation(Name = "[Stormhill - Warmaster's Shack] Golden Rune [1] 1042387100")] - StormhillWarmastersShackGoldenRune1___ = 1042387100, + [Annotation(Name = "[Stormhill - Warmaster's Shack] Golden Rune [1] 1042387100")] + StormhillWarmastersShackGoldenRune1___ = 1042387100, - [Annotation(Name = "[Stormhill - Warmaster's Shack] Golden Rune [1] 1042387110")] - StormhillWarmastersShackGoldenRune1____ = 1042387110, + [Annotation(Name = "[Stormhill - Warmaster's Shack] Golden Rune [1] 1042387110")] + StormhillWarmastersShackGoldenRune1____ = 1042387110, - [Annotation(Name = "[Stormhill - Warmaster's Shack] Golden Rune [2] 1042387120")] - StormhillWarmastersShackGoldenRune2__ = 1042387120, + [Annotation(Name = "[Stormhill - Warmaster's Shack] Golden Rune [2] 1042387120")] + StormhillWarmastersShackGoldenRune2__ = 1042387120, - [Annotation(Name = "[Stormhill - Warmaster's Shack] Lump of Flesh 1042387140")] - StormhillWarmastersShackLumpOfFlesh = 1042387140, + [Annotation(Name = "[Stormhill - Warmaster's Shack] Lump of Flesh 1042387140")] + StormhillWarmastersShackLumpOfFlesh = 1042387140, - [Annotation(Name = "[Stormhill - Warmaster's Shack] Smithing Stone [1] 1042387600")] - StormhillWarmastersShackSmithingStone1 = 1042387600, + [Annotation(Name = "[Stormhill - Warmaster's Shack] Smithing Stone [1] 1042387600")] + StormhillWarmastersShackSmithingStone1 = 1042387600, - [Annotation(Name = "[Stormhill - Warmaster's Shack] Smoldering Butterfly 1042387200")] - StormhillWarmastersShackSmolderingButterfly = 1042387200, + [Annotation(Name = "[Stormhill - Warmaster's Shack] Smoldering Butterfly 1042387200")] + StormhillWarmastersShackSmolderingButterfly = 1042387200, - [Annotation(Name = "[Stormhill - North of Warmaster's Shack] Strength-knot Crystal Tear 65210")] - StormhillNorthOfWarmastersShackStrengthknotCrystalTear = 65210, + [Annotation(Name = "[Stormhill - North of Warmaster's Shack] Strength-knot Crystal Tear 65210")] + StormhillNorthOfWarmastersShackStrengthknotCrystalTear = 65210, - [Annotation(Name = "[Stormhill - North of Warmaster's Shack] Lance 1042397010")] - StormhillNorthOfWarmastersShackLance = 1042397010, + [Annotation(Name = "[Stormhill - North of Warmaster's Shack] Lance 1042397010")] + StormhillNorthOfWarmastersShackLance = 1042397010, - [Annotation(Name = "[Stormhill - North of Warmaster's Shack] Beast Crest Heater Shield 1042397900")] - StormhillNorthOfWarmastersShackBeastCrestHeaterShield = 1042397900, + [Annotation(Name = "[Stormhill - North of Warmaster's Shack] Beast Crest Heater Shield 1042397900")] + StormhillNorthOfWarmastersShackBeastCrestHeaterShield = 1042397900, - [Annotation(Name = "[Stormhill - North of Warmaster's Shack] Scaled Helm 1042397500")] - StormhillNorthOfWarmastersShackScaledHelm = 1042397500, + [Annotation(Name = "[Stormhill - North of Warmaster's Shack] Scaled Helm 1042397500")] + StormhillNorthOfWarmastersShackScaledHelm = 1042397500, - [Annotation(Name = "[Stormhill - North of Warmaster's Shack] Hammer Talisman 1042397700")] - StormhillNorthOfWarmastersShackHammerTalisman = 1042397700, + [Annotation(Name = "[Stormhill - North of Warmaster's Shack] Hammer Talisman 1042397700")] + StormhillNorthOfWarmastersShackHammerTalisman = 1042397700, - [Annotation(Name = "[Limgrave - Seaside Ruins] Crab Eggs 1043357000")] - LimgraveSeasideRuinsCrabEggs = 1043357000, + [Annotation(Name = "[Limgrave - Seaside Ruins] Crab Eggs 1043357000")] + LimgraveSeasideRuinsCrabEggs = 1043357000, - [Annotation(Name = "[Limgrave - Seaside Ruins] Golden Rune [1] 1043357010")] - LimgraveSeasideRuinsGoldenRune1 = 1043357010, + [Annotation(Name = "[Limgrave - Seaside Ruins] Golden Rune [1] 1043357010")] + LimgraveSeasideRuinsGoldenRune1 = 1043357010, - [Annotation(Name = "[Limgrave - Seaside Ruins] Slumbering Egg 1043357030")] - LimgraveSeasideRuinsSlumberingEgg = 1043357030, + [Annotation(Name = "[Limgrave - Seaside Ruins] Slumbering Egg 1043357030")] + LimgraveSeasideRuinsSlumberingEgg = 1043357030, - [Annotation(Name = "[Limgrave - Dragon-Burnt Ruins] Stonesword Key 1043367010")] - LimgraveDragonBurntRuinsStoneswordKey = 1043367010, + [Annotation(Name = "[Limgrave - Dragon-Burnt Ruins] Stonesword Key 1043367010")] + LimgraveDragonBurntRuinsStoneswordKey = 1043367010, - [Annotation(Name = "[Limgrave - Dragon-Burnt Ruins] Golden Rune [2] 1043367020")] - LimgraveDragonBurntRuinsGoldenRune2 = 1043367020, + [Annotation(Name = "[Limgrave - Dragon-Burnt Ruins] Golden Rune [2] 1043367020")] + LimgraveDragonBurntRuinsGoldenRune2 = 1043367020, - [Annotation(Name = "[Limgrave - Dragon-Burnt Ruins] Crab Eggs 1043367040")] - LimgraveDragonBurntRuinsCrabEggs = 1043367040, + [Annotation(Name = "[Limgrave - Dragon-Burnt Ruins] Crab Eggs 1043367040")] + LimgraveDragonBurntRuinsCrabEggs = 1043367040, - [Annotation(Name = "[Limgrave - Dragon-Burnt Ruins] Twinblade 1043367110")] - LimgraveDragonBurntRuinsTwinblade = 1043367110, + [Annotation(Name = "[Limgrave - Dragon-Burnt Ruins] Twinblade 1043367110")] + LimgraveDragonBurntRuinsTwinblade = 1043367110, - [Annotation(Name = "[Limgrave - Dragon-Burnt Ruins] Arteria Leaf 1043367070")] - LimgraveDragonBurntRuinsArteriaLeaf = 1043367070, + [Annotation(Name = "[Limgrave - Dragon-Burnt Ruins] Arteria Leaf 1043367070")] + LimgraveDragonBurntRuinsArteriaLeaf = 1043367070, - [Annotation(Name = "[Limgrave - Agheel Lake North] Smithing Stone [1] 1043377000")] - LimgraveAgheelLakeNorthSmithingStone1 = 1043377000, + [Annotation(Name = "[Limgrave - Agheel Lake North] Smithing Stone [1] 1043377000")] + LimgraveAgheelLakeNorthSmithingStone1 = 1043377000, - [Annotation(Name = "[Limgrave - Agheel Lake North] Fire Grease 1043377010")] - LimgraveAgheelLakeNorthFireGrease = 1043377010, + [Annotation(Name = "[Limgrave - Agheel Lake North] Fire Grease 1043377010")] + LimgraveAgheelLakeNorthFireGrease = 1043377010, - [Annotation(Name = "[Limgrave - Agheel Lake North] Arteria Leaf 1043377020")] - LimgraveAgheelLakeNorthArteriaLeaf = 1043377020, + [Annotation(Name = "[Limgrave - Agheel Lake North] Arteria Leaf 1043377020")] + LimgraveAgheelLakeNorthArteriaLeaf = 1043377020, - [Annotation(Name = "[Limgrave - Gatefront] Map: Limgrave, West 62010")] - LimgraveGatefrontMapLimgraveWest = 62010, + [Annotation(Name = "[Limgrave - Gatefront] Map: Limgrave, West 62010")] + LimgraveGatefrontMapLimgraveWest = 62010, - [Annotation(Name = "[Limgrave - Gatefront] Reduvia 1042377700")] - LimgraveGatefrontReduvia = 1042377700, + [Annotation(Name = "[Limgrave - Gatefront] Reduvia 1042377700")] + LimgraveGatefrontReduvia = 1042377700, - [Annotation(Name = "[Limgrave - Murkwater Coast] Armorer's Cookbook [1] 67200")] - LimgraveMurkwaterCoastArmorersCookbook1 = 67200, + [Annotation(Name = "[Limgrave - Murkwater Coast] Armorer's Cookbook [1] 67200")] + LimgraveMurkwaterCoastArmorersCookbook1 = 67200, - [Annotation(Name = "[Limgrave - Murkwater Coast] Smithing Stone [1] 1043387010")] - LimgraveMurkwaterCoastSmithingStone1 = 1043387010, + [Annotation(Name = "[Limgrave - Murkwater Coast] Smithing Stone [1] 1043387010")] + LimgraveMurkwaterCoastSmithingStone1 = 1043387010, - [Annotation(Name = "[Limgrave - Murkwater Coast] Golden Rune [2] 1043387020")] - LimgraveMurkwaterCoastGoldenRune2 = 1043387020, + [Annotation(Name = "[Limgrave - Murkwater Coast] Golden Rune [2] 1043387020")] + LimgraveMurkwaterCoastGoldenRune2 = 1043387020, - [Annotation(Name = "[Stormhill - Saintsbridge] Exalted Flesh 1043397010")] - StormhillSaintsbridgeExaltedFlesh = 1043397010, + [Annotation(Name = "[Stormhill - Saintsbridge] Exalted Flesh 1043397010")] + StormhillSaintsbridgeExaltedFlesh = 1043397010, - [Annotation(Name = "[Stormhill - Saintsbridge] Smithing Stone [1] 1043397020")] - StormhillSaintsbridgeSmithingStone1 = 1043397020, + [Annotation(Name = "[Stormhill - Saintsbridge] Smithing Stone [1] 1043397020")] + StormhillSaintsbridgeSmithingStone1 = 1043397020, - [Annotation(Name = "[Stormhill - Saintsbridge] Golden Rune [3] 1043397200")] - StormhillSaintsbridgeGoldenRune3 = 1043397200, + [Annotation(Name = "[Stormhill - Saintsbridge] Golden Rune [3] 1043397200")] + StormhillSaintsbridgeGoldenRune3 = 1043397200, - [Annotation(Name = "[Stormhill - Saintsbridge] Turtle Neck Meat 1043397030")] - StormhillSaintsbridgeTurtleNeckMeat = 1043397030, + [Annotation(Name = "[Stormhill - Saintsbridge] Turtle Neck Meat 1043397030")] + StormhillSaintsbridgeTurtleNeckMeat = 1043397030, - [Annotation(Name = "[Stormhill - Godrick Knight] Golden Vow 1043397500")] - StormhillGodrickKnightGoldenVow = 1043397500, + [Annotation(Name = "[Stormhill - Godrick Knight] Golden Vow 1043397500")] + StormhillGodrickKnightGoldenVow = 1043397500, - [Annotation(Name = "[Stormhill - Northeast Cliffside] Soporific Grease 1043407000")] - StormhillNortheastCliffsideSoporificGrease = 1043407000, + [Annotation(Name = "[Stormhill - Northeast Cliffside] Soporific Grease 1043407000")] + StormhillNortheastCliffsideSoporificGrease = 1043407000, - [Annotation(Name = "[Stormhill - Northeast Cliffside] Lance Talisman 1043407010")] - StormhillNortheastCliffsideLanceTalisman = 1043407010, + [Annotation(Name = "[Stormhill - Northeast Cliffside] Lance Talisman 1043407010")] + StormhillNortheastCliffsideLanceTalisman = 1043407010, - [Annotation(Name = "[Weeping Peninsula - Castle Morne Approach] Map: Weeping Peninsula 62011")] - WeepingPeninsulaCastleMorneApproachMapWeepingPeninsula = 62011, + [Annotation(Name = "[Weeping Peninsula - Castle Morne Approach] Map: Weeping Peninsula 62011")] + WeepingPeninsulaCastleMorneApproachMapWeepingPeninsula = 62011, - [Annotation(Name = "[Weeping Peninsula - Bridge of Sacrifice] Stonesword Key 1044347000")] - WeepingPeninsulaBridgeOfSacrificeStoneswordKey = 1044347000, + [Annotation(Name = "[Weeping Peninsula - Bridge of Sacrifice] Stonesword Key 1044347000")] + WeepingPeninsulaBridgeOfSacrificeStoneswordKey = 1044347000, - [Annotation(Name = "[Weeping Peninsula - Bridge of Sacrifice] Smithing Stone [1] 1044347010")] - WeepingPeninsulaBridgeOfSacrificeSmithingStone1 = 1044347010, + [Annotation(Name = "[Weeping Peninsula - Bridge of Sacrifice] Smithing Stone [1] 1044347010")] + WeepingPeninsulaBridgeOfSacrificeSmithingStone1 = 1044347010, - [Annotation(Name = "[Weeping Peninsula - Bridge of Sacrifice] Ruin Fragment 1044347050")] - WeepingPeninsulaBridgeOfSacrificeRuinFragment = 1044347050, + [Annotation(Name = "[Weeping Peninsula - Bridge of Sacrifice] Ruin Fragment 1044347050")] + WeepingPeninsulaBridgeOfSacrificeRuinFragment = 1044347050, - [Annotation(Name = "[Weeping Peninsula - Bridge of Sacrifice] Large Club 1044347080")] - WeepingPeninsulaBridgeOfSacrificeLargeClub = 1044347080, + [Annotation(Name = "[Weeping Peninsula - Bridge of Sacrifice] Large Club 1044347080")] + WeepingPeninsulaBridgeOfSacrificeLargeClub = 1044347080, - [Annotation(Name = "[Limgrave - Agheel Lake South] Golden Rune [2] 1044357000")] - LimgraveAgheelLakeSouthGoldenRune2 = 1044357000, + [Annotation(Name = "[Limgrave - Agheel Lake South] Golden Rune [2] 1044357000")] + LimgraveAgheelLakeSouthGoldenRune2 = 1044357000, - [Annotation(Name = "[Limgrave - Agheel Lake South] Royal House Scroll 1044357010")] - LimgraveAgheelLakeSouthRoyalHouseScroll = 1044357010, + [Annotation(Name = "[Limgrave - Agheel Lake South] Royal House Scroll 1044357010")] + LimgraveAgheelLakeSouthRoyalHouseScroll = 1044357010, - [Annotation(Name = "[Limgrave - Agheel Lake South] Golden Rune [1] 1044357020")] - LimgraveAgheelLakeSouthGoldenRune1 = 1044357020, + [Annotation(Name = "[Limgrave - Agheel Lake South] Golden Rune [1] 1044357020")] + LimgraveAgheelLakeSouthGoldenRune1 = 1044357020, - [Annotation(Name = "[Limgrave - Agheel Lake South] Sliver of Meat 1044357030")] - LimgraveAgheelLakeSouthSliverOfMeat = 1044357030, + [Annotation(Name = "[Limgrave - Agheel Lake South] Sliver of Meat 1044357030")] + LimgraveAgheelLakeSouthSliverOfMeat = 1044357030, - [Annotation(Name = "Flame Sling 1044357050")] - FlameSling = 1044357050, + [Annotation(Name = "Flame Sling 1044357050")] + FlameSling = 1044357050, - [Annotation(Name = "[Limgrave - Agheel Lake South] Crab Eggs 1044357040")] - LimgraveAgheelLakeSouthCrabEggs = 1044357040, + [Annotation(Name = "[Limgrave - Agheel Lake South] Crab Eggs 1044357040")] + LimgraveAgheelLakeSouthCrabEggs = 1044357040, - [Annotation(Name = "[Limgrave - Agheel Lake South] Golden Rune [1] 1044357060")] - LimgraveAgheelLakeSouthGoldenRune1_ = 1044357060, + [Annotation(Name = "[Limgrave - Agheel Lake South] Golden Rune [1] 1044357060")] + LimgraveAgheelLakeSouthGoldenRune1_ = 1044357060, - [Annotation(Name = "[Limgrave - Agheel Lake South] Starlight Shards 1044357070")] - LimgraveAgheelLakeSouthStarlightShards = 1044357070, + [Annotation(Name = "[Limgrave - Agheel Lake South] Starlight Shards 1044357070")] + LimgraveAgheelLakeSouthStarlightShards = 1044357070, - [Annotation(Name = "[Limgrave - Agheel Lake South] Larval Tear 1044357100")] - LimgraveAgheelLakeSouthLarvalTear = 1044357100, + [Annotation(Name = "[Limgrave - Agheel Lake South] Larval Tear 1044357100")] + LimgraveAgheelLakeSouthLarvalTear = 1044357100, - [Annotation(Name = "[Limgrave - Agheel Lake South] Great epee 1044357900")] - LimgraveAgheelLakeSouthGreatepee = 1044357900, + [Annotation(Name = "[Limgrave - Agheel Lake South] Great epee 1044357900")] + LimgraveAgheelLakeSouthGreatepee = 1044357900, - [Annotation(Name = "[Limgrave - Waypoint Ruins] Glowstone 1044367000")] - LimgraveWaypointRuinsGlowstone = 1044367000, + [Annotation(Name = "[Limgrave - Waypoint Ruins] Glowstone 1044367000")] + LimgraveWaypointRuinsGlowstone = 1044367000, - [Annotation(Name = "[Limgrave - Waypoint Ruins] Golden Rune [1] 1044367010")] - LimgraveWaypointRuinsGoldenRune1 = 1044367010, + [Annotation(Name = "[Limgrave - Waypoint Ruins] Golden Rune [1] 1044367010")] + LimgraveWaypointRuinsGoldenRune1 = 1044367010, - [Annotation(Name = "[Limgrave - Waypoint Ruins] Immunizing Cured Meat 1044367020")] - LimgraveWaypointRuinsImmunizingCuredMeat = 1044367020, + [Annotation(Name = "[Limgrave - Waypoint Ruins] Immunizing Cured Meat 1044367020")] + LimgraveWaypointRuinsImmunizingCuredMeat = 1044367020, - [Annotation(Name = "[Limgrave - Waypoint Ruins] Trina's Lily 1044367100")] - LimgraveWaypointRuinsTrinasLily = 1044367100, + [Annotation(Name = "[Limgrave - Waypoint Ruins] Trina's Lily 1044367100")] + LimgraveWaypointRuinsTrinasLily = 1044367100, - [Annotation(Name = "[Limgrave - Waypoint Ruins] Smoldering Butterfly 1044367030")] - LimgraveWaypointRuinsSmolderingButterfly = 1044367030, + [Annotation(Name = "[Limgrave - Waypoint Ruins] Smoldering Butterfly 1044367030")] + LimgraveWaypointRuinsSmolderingButterfly = 1044367030, - [Annotation(Name = "[Limgrave - Waypoint Ruins] Somber Smithing Stone [1] 1044367040")] - LimgraveWaypointRuinsSomberSmithingStone1 = 1044367040, + [Annotation(Name = "[Limgrave - Waypoint Ruins] Somber Smithing Stone [1] 1044367040")] + LimgraveWaypointRuinsSomberSmithingStone1 = 1044367040, - [Annotation(Name = "[Troll Carriage - Waypoint Ruins] Greataxe 1044367200")] - TrollCarriageWaypointRuinsGreataxe = 1044367200, + [Annotation(Name = "[Troll Carriage - Waypoint Ruins] Greataxe 1044367200")] + TrollCarriageWaypointRuinsGreataxe = 1044367200, - [Annotation(Name = "[Limgrave - Waypoint Ruins] Golden Rune [1] 1044367300")] - LimgraveWaypointRuinsGoldenRune1_ = 1044367300, + [Annotation(Name = "[Limgrave - Waypoint Ruins] Golden Rune [1] 1044367300")] + LimgraveWaypointRuinsGoldenRune1_ = 1044367300, - [Annotation(Name = "[Limgrave - Waypoint Ruins] Golden Rune [1] 1044367310")] - LimgraveWaypointRuinsGoldenRune1__ = 1044367310, + [Annotation(Name = "[Limgrave - Waypoint Ruins] Golden Rune [1] 1044367310")] + LimgraveWaypointRuinsGoldenRune1__ = 1044367310, - [Annotation(Name = "[Limgrave - Waypoint Ruins] Golden Rune [2] 1044367320")] - LimgraveWaypointRuinsGoldenRune2 = 1044367320, + [Annotation(Name = "[Limgrave - Waypoint Ruins] Golden Rune [2] 1044367320")] + LimgraveWaypointRuinsGoldenRune2 = 1044367320, - [Annotation(Name = "[Limgrave - Waypoint Ruins] Golden Rune [1] 1044367330")] - LimgraveWaypointRuinsGoldenRune1___ = 1044367330, + [Annotation(Name = "[Limgrave - Waypoint Ruins] Golden Rune [1] 1044367330")] + LimgraveWaypointRuinsGoldenRune1___ = 1044367330, - [Annotation(Name = "[Limgrave - Waypoint Ruins] Golden Rune [3] 1044367340")] - LimgraveWaypointRuinsGoldenRune3 = 1044367340, + [Annotation(Name = "[Limgrave - Waypoint Ruins] Golden Rune [3] 1044367340")] + LimgraveWaypointRuinsGoldenRune3 = 1044367340, - [Annotation(Name = "[Limgrave - Mistwood Outskirts] Golden Rune [1] 1044377010")] - LimgraveMistwoodOutskirtsGoldenRune1 = 1044377010, + [Annotation(Name = "[Limgrave - Mistwood Outskirts] Golden Rune [1] 1044377010")] + LimgraveMistwoodOutskirtsGoldenRune1 = 1044377010, - [Annotation(Name = "[Limgrave - Mistwood Outskirts] Gold-Pickled Fowl Foot 1044377200")] - LimgraveMistwoodOutskirtsGoldPickledFowlFoot = 1044377200, + [Annotation(Name = "[Limgrave - Mistwood Outskirts] Gold-Pickled Fowl Foot 1044377200")] + LimgraveMistwoodOutskirtsGoldPickledFowlFoot = 1044377200, - [Annotation(Name = "[Limgrave - Mistwood Outskirts] Sacrificial Twig 1044377020")] - LimgraveMistwoodOutskirtsSacrificialTwig = 1044377020, + [Annotation(Name = "[Limgrave - Mistwood Outskirts] Sacrificial Twig 1044377020")] + LimgraveMistwoodOutskirtsSacrificialTwig = 1044377020, - [Annotation(Name = "[Limgrave - Artist's Shack] Smithing Stone [1] 1044387010")] - LimgraveArtistsShackSmithingStone1 = 1044387010, + [Annotation(Name = "[Limgrave - Artist's Shack] Smithing Stone [1] 1044387010")] + LimgraveArtistsShackSmithingStone1 = 1044387010, - [Annotation(Name = "[Limgrave - Artist's Shack] Poisonbloom 1044387040")] - LimgraveArtistsShackPoisonbloom = 1044387040, + [Annotation(Name = "[Limgrave - Artist's Shack] Poisonbloom 1044387040")] + LimgraveArtistsShackPoisonbloom = 1044387040, - [Annotation(Name = "[Limgrave - Artist's Shack] Golden Rune [1] 1044387100")] - LimgraveArtistsShackGoldenRune1 = 1044387100, + [Annotation(Name = "[Limgrave - Artist's Shack] Golden Rune [1] 1044387100")] + LimgraveArtistsShackGoldenRune1 = 1044387100, - [Annotation(Name = "[Leyndell - Minor Erdtree] 1045337400")] - LeyndellMinorErdtree = 1045337400, + [Annotation(Name = "[Leyndell - Minor Erdtree] 1045337400")] + LeyndellMinorErdtree = 1045337400, - [Annotation(Name = "[Limgrave - Southwest of Fort Haight] Golden Rune [1] 1045357000")] - LimgraveSouthwestOfFortHaightGoldenRune1 = 1045357000, + [Annotation(Name = "[Limgrave - Southwest of Fort Haight] Golden Rune [1] 1045357000")] + LimgraveSouthwestOfFortHaightGoldenRune1 = 1045357000, - [Annotation(Name = "[Limgrave - Southwest of Fort Haight] Golden Rune [1] 1045357020")] - LimgraveSouthwestOfFortHaightGoldenRune1_ = 1045357020, + [Annotation(Name = "[Limgrave - Southwest of Fort Haight] Golden Rune [1] 1045357020")] + LimgraveSouthwestOfFortHaightGoldenRune1_ = 1045357020, - [Annotation(Name = "[Limgrave - Southwest of Fort Haight] Golden Rune [4] 1045357030")] - LimgraveSouthwestOfFortHaightGoldenRune4 = 1045357030, + [Annotation(Name = "[Limgrave - Southwest of Fort Haight] Golden Rune [4] 1045357030")] + LimgraveSouthwestOfFortHaightGoldenRune4 = 1045357030, - [Annotation(Name = "[Limgrave - Southwest of Fort Haight] Golden Rune [3] 1045357040")] - LimgraveSouthwestOfFortHaightGoldenRune3 = 1045357040, + [Annotation(Name = "[Limgrave - Southwest of Fort Haight] Golden Rune [3] 1045357040")] + LimgraveSouthwestOfFortHaightGoldenRune3 = 1045357040, - [Annotation(Name = "[Limgrave - Southwest of Fort Haight] Golden Rune [2] 1045357050")] - LimgraveSouthwestOfFortHaightGoldenRune2 = 1045357050, + [Annotation(Name = "[Limgrave - Southwest of Fort Haight] Golden Rune [2] 1045357050")] + LimgraveSouthwestOfFortHaightGoldenRune2 = 1045357050, - [Annotation(Name = "[Limgrave - Southwest of Fort Haight] Golden Rune [1] 1045357060")] - LimgraveSouthwestOfFortHaightGoldenRune1__ = 1045357060, + [Annotation(Name = "[Limgrave - Southwest of Fort Haight] Golden Rune [1] 1045357060")] + LimgraveSouthwestOfFortHaightGoldenRune1__ = 1045357060, - [Annotation(Name = "[Limgrave - Southwest of Fort Haight] Golden Rune [2] 1045357070")] - LimgraveSouthwestOfFortHaightGoldenRune2_ = 1045357070, + [Annotation(Name = "[Limgrave - Southwest of Fort Haight] Golden Rune [2] 1045357070")] + LimgraveSouthwestOfFortHaightGoldenRune2_ = 1045357070, - [Annotation(Name = "[Limgrave - Southwest of Fort Haight] Golden Rune [1] 1045357080")] - LimgraveSouthwestOfFortHaightGoldenRune1___ = 1045357080, + [Annotation(Name = "[Limgrave - Southwest of Fort Haight] Golden Rune [1] 1045357080")] + LimgraveSouthwestOfFortHaightGoldenRune1___ = 1045357080, - [Annotation(Name = "[Limgrave - Southwest of Fort Haight] Golden Rune [1] 1045357090")] - LimgraveSouthwestOfFortHaightGoldenRune1____ = 1045357090, + [Annotation(Name = "[Limgrave - Southwest of Fort Haight] Golden Rune [1] 1045357090")] + LimgraveSouthwestOfFortHaightGoldenRune1____ = 1045357090, - [Annotation(Name = "[Limgrave - Mistwood] Golden Rune [2] 1045377000")] - LimgraveMistwoodGoldenRune2 = 1045377000, + [Annotation(Name = "[Limgrave - Mistwood] Golden Rune [2] 1045377000")] + LimgraveMistwoodGoldenRune2 = 1045377000, - [Annotation(Name = "[Limgrave - Mistwood] Smithing Stone [2] 1045377010")] - LimgraveMistwoodSmithingStone2 = 1045377010, + [Annotation(Name = "[Limgrave - Mistwood] Smithing Stone [2] 1045377010")] + LimgraveMistwoodSmithingStone2 = 1045377010, - [Annotation(Name = "[Limgrave - Mistwood] Map: Limgrave, East 62012")] - LimgraveMistwoodMapLimgraveEast = 62012, + [Annotation(Name = "[Limgrave - Mistwood] Map: Limgrave, East 62012")] + LimgraveMistwoodMapLimgraveEast = 62012, - [Annotation(Name = "[Limgrave - Mistwood] Nomadic Warrior's Cookbook [4] 67800")] - LimgraveMistwoodNomadicWarriorsCookbook4 = 67800, + [Annotation(Name = "[Limgrave - Mistwood] Nomadic Warrior's Cookbook [4] 67800")] + LimgraveMistwoodNomadicWarriorsCookbook4 = 67800, - [Annotation(Name = "[Limgrave - Mistwood] Axe Talisman 1045377100")] - LimgraveMistwoodAxeTalisman = 1045377100, + [Annotation(Name = "[Limgrave - Mistwood] Axe Talisman 1045377100")] + LimgraveMistwoodAxeTalisman = 1045377100, - [Annotation(Name = "[Limgrave - Mistwood] Golden Rune [1] 1045377050")] - LimgraveMistwoodGoldenRune1 = 1045377050, + [Annotation(Name = "[Limgrave - Mistwood] Golden Rune [1] 1045377050")] + LimgraveMistwoodGoldenRune1 = 1045377050, - [Annotation(Name = "[Limgrave - Mistwood] Thin Beast Bones 1045377060")] - LimgraveMistwoodThinBeastBones = 1045377060, + [Annotation(Name = "[Limgrave - Mistwood] Thin Beast Bones 1045377060")] + LimgraveMistwoodThinBeastBones = 1045377060, - [Annotation(Name = "[Limgrave - Mistwood] Gold-Tinged Excrement 1045377070")] - LimgraveMistwoodGoldTingedExcrement = 1045377070, + [Annotation(Name = "[Limgrave - Mistwood] Gold-Tinged Excrement 1045377070")] + LimgraveMistwoodGoldTingedExcrement = 1045377070, - [Annotation(Name = "[Limgrave - Mistwood] Throwing Dagger 1045377080")] - LimgraveMistwoodThrowingDagger = 1045377080, + [Annotation(Name = "[Limgrave - Mistwood] Throwing Dagger 1045377080")] + LimgraveMistwoodThrowingDagger = 1045377080, - [Annotation(Name = "[Limgrave - Mistwood] Golden Rune [5] 1045377090")] - LimgraveMistwoodGoldenRune5 = 1045377090, + [Annotation(Name = "[Limgrave - Mistwood] Golden Rune [5] 1045377090")] + LimgraveMistwoodGoldenRune5 = 1045377090, - [Annotation(Name = "[Limgrave - South of Summonwater Village] Magic Grease 1045387000")] - LimgraveSouthOfSummonwaterVillageMagicGrease = 1045387000, + [Annotation(Name = "[Limgrave - South of Summonwater Village] Magic Grease 1045387000")] + LimgraveSouthOfSummonwaterVillageMagicGrease = 1045387000, - [Annotation(Name = "[Limgrave - South of Summonwater Village] Fevor's Cookbook [1] 68200")] - LimgraveSouthOfSummonwaterVillageFevorsCookbook1 = 68200, + [Annotation(Name = "[Limgrave - South of Summonwater Village] Fevor's Cookbook [1] 68200")] + LimgraveSouthOfSummonwaterVillageFevorsCookbook1 = 68200, - [Annotation(Name = "[Limgrave - South of Summonwater Village] Golden Rune [1] 1045387020")] - LimgraveSouthOfSummonwaterVillageGoldenRune1 = 1045387020, + [Annotation(Name = "[Limgrave - South of Summonwater Village] Golden Rune [1] 1045387020")] + LimgraveSouthOfSummonwaterVillageGoldenRune1 = 1045387020, - [Annotation(Name = "[Limgrave - South of Summonwater Village] Golden Rune [1] 1045387030")] - LimgraveSouthOfSummonwaterVillageGoldenRune1_ = 1045387030, + [Annotation(Name = "[Limgrave - South of Summonwater Village] Golden Rune [1] 1045387030")] + LimgraveSouthOfSummonwaterVillageGoldenRune1_ = 1045387030, - [Annotation(Name = "[Limgrave - South of Summonwater Village] Golden Rune [1] 1045387040")] - LimgraveSouthOfSummonwaterVillageGoldenRune1__ = 1045387040, + [Annotation(Name = "[Limgrave - South of Summonwater Village] Golden Rune [1] 1045387040")] + LimgraveSouthOfSummonwaterVillageGoldenRune1__ = 1045387040, - [Annotation(Name = "[Limgrave - South of Summonwater Village] Golden Rune [2] 1045387050")] - LimgraveSouthOfSummonwaterVillageGoldenRune2 = 1045387050, + [Annotation(Name = "[Limgrave - South of Summonwater Village] Golden Rune [2] 1045387050")] + LimgraveSouthOfSummonwaterVillageGoldenRune2 = 1045387050, - [Annotation(Name = "[Limgrave - South of Summonwater Village] Golden Rune [4] 1045387060")] - LimgraveSouthOfSummonwaterVillageGoldenRune4 = 1045387060, + [Annotation(Name = "[Limgrave - South of Summonwater Village] Golden Rune [4] 1045387060")] + LimgraveSouthOfSummonwaterVillageGoldenRune4 = 1045387060, - [Annotation(Name = "[Limgrave - South of Summonwater Village] Golden Rune [4] 1045387070")] - LimgraveSouthOfSummonwaterVillageGoldenRune4_ = 1045387070, + [Annotation(Name = "[Limgrave - South of Summonwater Village] Golden Rune [4] 1045387070")] + LimgraveSouthOfSummonwaterVillageGoldenRune4_ = 1045387070, - [Annotation(Name = "[Limgrave - South of Summonwater Village] Golden Rune [6] 1045387080")] - LimgraveSouthOfSummonwaterVillageGoldenRune6 = 1045387080, + [Annotation(Name = "[Limgrave - South of Summonwater Village] Golden Rune [6] 1045387080")] + LimgraveSouthOfSummonwaterVillageGoldenRune6 = 1045387080, - [Annotation(Name = "[Limgrave - Summonwater Village] Golden Rune [4] 1045397000")] - LimgraveSummonwaterVillageGoldenRune4 = 1045397000, + [Annotation(Name = "[Limgrave - Summonwater Village] Golden Rune [4] 1045397000")] + LimgraveSummonwaterVillageGoldenRune4 = 1045397000, - [Annotation(Name = "[Limgrave - Summonwater Village] Mushroom 1045397020")] - LimgraveSummonwaterVillageMushroom = 1045397020, + [Annotation(Name = "[Limgrave - Summonwater Village] Mushroom 1045397020")] + LimgraveSummonwaterVillageMushroom = 1045397020, - [Annotation(Name = "[Limgrave - Summonwater Village] Smithing Stone [1] 1045397140")] - LimgraveSummonwaterVillageSmithingStone1 = 1045397140, + [Annotation(Name = "[Limgrave - Summonwater Village] Smithing Stone [1] 1045397140")] + LimgraveSummonwaterVillageSmithingStone1 = 1045397140, - [Annotation(Name = "[Limgrave - Summonwater Village] Green Turtle Talisman 1045397120")] - LimgraveSummonwaterVillageGreenTurtleTalisman = 1045397120, + [Annotation(Name = "[Limgrave - Summonwater Village] Green Turtle Talisman 1045397120")] + LimgraveSummonwaterVillageGreenTurtleTalisman = 1045397120, - [Annotation(Name = "[Limgrave - Summonwater Village] Smithing Stone [2] 1045397040")] - LimgraveSummonwaterVillageSmithingStone2 = 1045397040, + [Annotation(Name = "[Limgrave - Summonwater Village] Smithing Stone [2] 1045397040")] + LimgraveSummonwaterVillageSmithingStone2 = 1045397040, - [Annotation(Name = "[Limgrave - Summonwater Village] Golden Rune [1] 1045397050")] - LimgraveSummonwaterVillageGoldenRune1 = 1045397050, + [Annotation(Name = "[Limgrave - Summonwater Village] Golden Rune [1] 1045397050")] + LimgraveSummonwaterVillageGoldenRune1 = 1045397050, - [Annotation(Name = "[Limgrave - Summonwater Village] Golden Rune [1] 1045397060")] - LimgraveSummonwaterVillageGoldenRune1_ = 1045397060, + [Annotation(Name = "[Limgrave - Summonwater Village] Golden Rune [1] 1045397060")] + LimgraveSummonwaterVillageGoldenRune1_ = 1045397060, - [Annotation(Name = "[Limgrave - Summonwater Village] Golden Rune [1] 1045397070")] - LimgraveSummonwaterVillageGoldenRune1__ = 1045397070, + [Annotation(Name = "[Limgrave - Summonwater Village] Golden Rune [1] 1045397070")] + LimgraveSummonwaterVillageGoldenRune1__ = 1045397070, - [Annotation(Name = "[Limgrave - Summonwater Village] Golden Rune [1] 1045397080")] - LimgraveSummonwaterVillageGoldenRune1___ = 1045397080, + [Annotation(Name = "[Limgrave - Summonwater Village] Golden Rune [1] 1045397080")] + LimgraveSummonwaterVillageGoldenRune1___ = 1045397080, - [Annotation(Name = "[Limgrave - Summonwater Village] Golden Rune [5] 1045397090")] - LimgraveSummonwaterVillageGoldenRune5 = 1045397090, + [Annotation(Name = "[Limgrave - Summonwater Village] Golden Rune [5] 1045397090")] + LimgraveSummonwaterVillageGoldenRune5 = 1045397090, - [Annotation(Name = "[Limgrave - Summonwater Village] Golden Rune [2] 1045397100")] - LimgraveSummonwaterVillageGoldenRune2 = 1045397100, + [Annotation(Name = "[Limgrave - Summonwater Village] Golden Rune [2] 1045397100")] + LimgraveSummonwaterVillageGoldenRune2 = 1045397100, - [Annotation(Name = "[Limgrave - Summonwater Village] Golden Rune [1] 1045397110")] - LimgraveSummonwaterVillageGoldenRune1____ = 1045397110, + [Annotation(Name = "[Limgrave - Summonwater Village] Golden Rune [1] 1045397110")] + LimgraveSummonwaterVillageGoldenRune1____ = 1045397110, - [Annotation(Name = "[Limgrave - Fort Haight] Smithing Stone [1] 1046367000")] - LimgraveFortHaightSmithingStone1 = 1046367000, + [Annotation(Name = "[Limgrave - Fort Haight] Smithing Stone [1] 1046367000")] + LimgraveFortHaightSmithingStone1 = 1046367000, - [Annotation(Name = "[Limgrave - Fort Haight] Bloodrose 1046367010")] - LimgraveFortHaightBloodrose = 1046367010, + [Annotation(Name = "[Limgrave - Fort Haight] Bloodrose 1046367010")] + LimgraveFortHaightBloodrose = 1046367010, - [Annotation(Name = "[Limgrave - Fort Haight] Nomadic Warrior's Cookbook [6] 67020")] - LimgraveFortHaightNomadicWarriorsCookbook6 = 67020, + [Annotation(Name = "[Limgrave - Fort Haight] Nomadic Warrior's Cookbook [6] 67020")] + LimgraveFortHaightNomadicWarriorsCookbook6 = 67020, - [Annotation(Name = "[Limgrave - Fort Haight] Bloodrose 1046367030")] - LimgraveFortHaightBloodrose_ = 1046367030, + [Annotation(Name = "[Limgrave - Fort Haight] Bloodrose 1046367030")] + LimgraveFortHaightBloodrose_ = 1046367030, - [Annotation(Name = "[Limgrave - Fort Haight] Dectus Medallion (Left) 1046367500")] - LimgraveFortHaightDectusMedallionLeft = 1046367500, + [Annotation(Name = "[Limgrave - Fort Haight] Dectus Medallion (Left) 1046367500")] + LimgraveFortHaightDectusMedallionLeft = 1046367500, - [Annotation(Name = "[Limgrave - Fort Haight] Ash of War: Bloody Slash 1046367700")] - LimgraveFortHaightAshOfWarBloodySlash = 1046367700, + [Annotation(Name = "[Limgrave - Fort Haight] Ash of War: Bloody Slash 1046367700")] + LimgraveFortHaightAshOfWarBloodySlash = 1046367700, - [Annotation(Name = "[Limgrave - East of Siofra River Well] Strip of White Flesh 1046377000")] - LimgraveEastOfSiofraRiverWellStripOfWhiteFlesh = 1046377000, + [Annotation(Name = "[Limgrave - East of Siofra River Well] Strip of White Flesh 1046377000")] + LimgraveEastOfSiofraRiverWellStripOfWhiteFlesh = 1046377000, - [Annotation(Name = "[Limgrave - Third Church of Marika] Neutralizing Boluses 1046387010")] - LimgraveThirdChurchOfMarikaNeutralizingBoluses = 1046387010, + [Annotation(Name = "[Limgrave - Third Church of Marika] Neutralizing Boluses 1046387010")] + LimgraveThirdChurchOfMarikaNeutralizingBoluses = 1046387010, - [Annotation(Name = "[Weeping Peninsula - Isolated Merchant's Shack] Golden Rune [1] 1041327000")] - WeepingPeninsulaIsolatedMerchantsShackGoldenRune1 = 1041327000, + [Annotation(Name = "[Weeping Peninsula - Isolated Merchant's Shack] Golden Rune [1] 1041327000")] + WeepingPeninsulaIsolatedMerchantsShackGoldenRune1 = 1041327000, - [Annotation(Name = "[Weeping Peninsula - Isolated Merchant's Shack] Golden Rune [1] 1041327010")] - WeepingPeninsulaIsolatedMerchantsShackGoldenRune1_ = 1041327010, + [Annotation(Name = "[Weeping Peninsula - Isolated Merchant's Shack] Golden Rune [1] 1041327010")] + WeepingPeninsulaIsolatedMerchantsShackGoldenRune1_ = 1041327010, - [Annotation(Name = "[Weeping Peninsula - Isolated Merchant's Shack] Golden Rune [2] 1041327020")] - WeepingPeninsulaIsolatedMerchantsShackGoldenRune2 = 1041327020, + [Annotation(Name = "[Weeping Peninsula - Isolated Merchant's Shack] Golden Rune [2] 1041327020")] + WeepingPeninsulaIsolatedMerchantsShackGoldenRune2 = 1041327020, - [Annotation(Name = "[Weeping Peninsula - Isolated Merchant's Shack] Golden Rune [1] 1041327030")] - WeepingPeninsulaIsolatedMerchantsShackGoldenRune1__ = 1041327030, + [Annotation(Name = "[Weeping Peninsula - Isolated Merchant's Shack] Golden Rune [1] 1041327030")] + WeepingPeninsulaIsolatedMerchantsShackGoldenRune1__ = 1041327030, - [Annotation(Name = "[Weeping Peninsula - Isolated Merchant's Shack] Golden Rune [1] 1041327040")] - WeepingPeninsulaIsolatedMerchantsShackGoldenRune1___ = 1041327040, + [Annotation(Name = "[Weeping Peninsula - Isolated Merchant's Shack] Golden Rune [1] 1041327040")] + WeepingPeninsulaIsolatedMerchantsShackGoldenRune1___ = 1041327040, - [Annotation(Name = "[Weeping Peninsula - Isolated Merchant's Shack] Golden Rune [3] 1041327050")] - WeepingPeninsulaIsolatedMerchantsShackGoldenRune3 = 1041327050, + [Annotation(Name = "[Weeping Peninsula - Isolated Merchant's Shack] Golden Rune [3] 1041327050")] + WeepingPeninsulaIsolatedMerchantsShackGoldenRune3 = 1041327050, - [Annotation(Name = "[Weeping Peninsula - Fourth Church of Marika] Golden Rune [1] 1041337000")] - WeepingPeninsulaFourthChurchOfMarikaGoldenRune1 = 1041337000, + [Annotation(Name = "[Weeping Peninsula - Fourth Church of Marika] Golden Rune [1] 1041337000")] + WeepingPeninsulaFourthChurchOfMarikaGoldenRune1 = 1041337000, - [Annotation(Name = "[Weeping Peninsula - Fourth Church of Marika] Golden Rune [5] 1041337010")] - WeepingPeninsulaFourthChurchOfMarikaGoldenRune5 = 1041337010, + [Annotation(Name = "[Weeping Peninsula - Fourth Church of Marika] Golden Rune [5] 1041337010")] + WeepingPeninsulaFourthChurchOfMarikaGoldenRune5 = 1041337010, - [Annotation(Name = "[Weeping Peninsula - Fourth Church of Marika] Great Dragonfly Head 1041337030")] - WeepingPeninsulaFourthChurchOfMarikaGreatDragonflyHead = 1041337030, + [Annotation(Name = "[Weeping Peninsula - Fourth Church of Marika] Great Dragonfly Head 1041337030")] + WeepingPeninsulaFourthChurchOfMarikaGreatDragonflyHead = 1041337030, - [Annotation(Name = "[Weeping Peninsula - Fourth Church of Marika] Ambush Shard 1041337100")] - WeepingPeninsulaFourthChurchOfMarikaAmbushShard = 1041337100, + [Annotation(Name = "[Weeping Peninsula - Fourth Church of Marika] Ambush Shard 1041337100")] + WeepingPeninsulaFourthChurchOfMarikaAmbushShard = 1041337100, - [Annotation(Name = "[Weeping Peninsula - Tower of Return] Great Dragonfly Head 1042327000")] - WeepingPeninsulaTowerOfReturnGreatDragonflyHead = 1042327000, + [Annotation(Name = "[Weeping Peninsula - Tower of Return] Great Dragonfly Head 1042327000")] + WeepingPeninsulaTowerOfReturnGreatDragonflyHead = 1042327000, - [Annotation(Name = "[Weeping Peninsula - Tower of Return] Mushroom 1042327020")] - WeepingPeninsulaTowerOfReturnMushroom = 1042327020, + [Annotation(Name = "[Weeping Peninsula - Tower of Return] Mushroom 1042327020")] + WeepingPeninsulaTowerOfReturnMushroom = 1042327020, - [Annotation(Name = "[Weeping Peninsula - Tower of Return] Composite Bow 1042327100")] - WeepingPeninsulaTowerOfReturnCompositeBow = 1042327100, + [Annotation(Name = "[Weeping Peninsula - Tower of Return] Composite Bow 1042327100")] + WeepingPeninsulaTowerOfReturnCompositeBow = 1042327100, - [Annotation(Name = "[Weeping Peninsula - Tombsward] Eclipse Crest Heater Shield 1042337000")] - WeepingPeninsulaTombswardEclipseCrestHeaterShield = 1042337000, + [Annotation(Name = "[Weeping Peninsula - Tombsward] Eclipse Crest Heater Shield 1042337000")] + WeepingPeninsulaTombswardEclipseCrestHeaterShield = 1042337000, - [Annotation(Name = "[Weeping Peninsula - Tombsward] Radagon's Scarseal 1042337100")] - WeepingPeninsulaTombswardRadagonsScarseal = 1042337100, + [Annotation(Name = "[Weeping Peninsula - Tombsward] Radagon's Scarseal 1042337100")] + WeepingPeninsulaTombswardRadagonsScarseal = 1042337100, - [Annotation(Name = "[Weeping Peninsula - Tombsward Ruins] Blood Grease 1042347000")] - WeepingPeninsulaTombswardRuinsBloodGrease = 1042347000, + [Annotation(Name = "[Weeping Peninsula - Tombsward Ruins] Blood Grease 1042347000")] + WeepingPeninsulaTombswardRuinsBloodGrease = 1042347000, - [Annotation(Name = "[Limgrave - South of Stranded Graveyard] Sliver of Meat 1042357020")] - LimgraveSouthOfStrandedGraveyardSliverOfMeat = 1042357020, + [Annotation(Name = "[Limgrave - South of Stranded Graveyard] Sliver of Meat 1042357020")] + LimgraveSouthOfStrandedGraveyardSliverOfMeat = 1042357020, - [Annotation(Name = "[Limgrave - South of Stranded Graveyard] Bewitching Branch 1042357030")] - LimgraveSouthOfStrandedGraveyardBewitchingBranch = 1042357030, + [Annotation(Name = "[Limgrave - South of Stranded Graveyard] Bewitching Branch 1042357030")] + LimgraveSouthOfStrandedGraveyardBewitchingBranch = 1042357030, - [Annotation(Name = "[Weeping Peninsula - Tombsward Ruins] Beast Liver 1042347010")] - WeepingPeninsulaTombswardRuinsBeastLiver = 1042347010, + [Annotation(Name = "[Weeping Peninsula - Tombsward Ruins] Beast Liver 1042347010")] + WeepingPeninsulaTombswardRuinsBeastLiver = 1042347010, - [Annotation(Name = "[Weeping Peninsula - Tombsward Ruins] Winged Scythe 1042347100")] - WeepingPeninsulaTombswardRuinsWingedScythe = 1042347100, + [Annotation(Name = "[Weeping Peninsula - Tombsward Ruins] Winged Scythe 1042347100")] + WeepingPeninsulaTombswardRuinsWingedScythe = 1042347100, - [Annotation(Name = "[Weeping Peninsula - Tombsward Ruins] Golden Rune [2] 1042347020")] - WeepingPeninsulaTombswardRuinsGoldenRune2 = 1042347020, + [Annotation(Name = "[Weeping Peninsula - Tombsward Ruins] Golden Rune [2] 1042347020")] + WeepingPeninsulaTombswardRuinsGoldenRune2 = 1042347020, - [Annotation(Name = "[Weeping Peninsula - Tombsward Ruins] Gilded Iron Shield 1042347030")] - WeepingPeninsulaTombswardRuinsGildedIronShield = 1042347030, + [Annotation(Name = "[Weeping Peninsula - Tombsward Ruins] Gilded Iron Shield 1042347030")] + WeepingPeninsulaTombswardRuinsGildedIronShield = 1042347030, - [Annotation(Name = "[Weeping Peninsula - Castle Morne Approach] Yellow Ember 1043327000")] - WeepingPeninsulaCastleMorneApproachYellowEmber = 1043327000, + [Annotation(Name = "[Weeping Peninsula - Castle Morne Approach] Yellow Ember 1043327000")] + WeepingPeninsulaCastleMorneApproachYellowEmber = 1043327000, - [Annotation(Name = "[Weeping Peninsula - Castle Morne Approach] Sliver of Meat 1043327010")] - WeepingPeninsulaCastleMorneApproachSliverOfMeat = 1043327010, + [Annotation(Name = "[Weeping Peninsula - Castle Morne Approach] Sliver of Meat 1043327010")] + WeepingPeninsulaCastleMorneApproachSliverOfMeat = 1043327010, - [Annotation(Name = "[Weeping Peninsula - Minor Erdtree] Golden Rune [2] 1043337000")] - WeepingPeninsulaMinorErdtreeGoldenRune2 = 1043337000, + [Annotation(Name = "[Weeping Peninsula - Minor Erdtree] Golden Rune [2] 1043337000")] + WeepingPeninsulaMinorErdtreeGoldenRune2 = 1043337000, - [Annotation(Name = "[Weeping Peninsula - Minor Erdtree] Golden Rune [2] 1043337010")] - WeepingPeninsulaMinorErdtreeGoldenRune2_ = 1043337010, + [Annotation(Name = "[Weeping Peninsula - Minor Erdtree] Golden Rune [2] 1043337010")] + WeepingPeninsulaMinorErdtreeGoldenRune2_ = 1043337010, - [Annotation(Name = "[Weeping Peninsula - Church of Pilgrimage] Arteria Leaf 1043347000")] - WeepingPeninsulaChurchOfPilgrimageArteriaLeaf = 1043347000, + [Annotation(Name = "[Weeping Peninsula - Church of Pilgrimage] Arteria Leaf 1043347000")] + WeepingPeninsulaChurchOfPilgrimageArteriaLeaf = 1043347000, - [Annotation(Name = "[Weeping Peninsula - Church of Pilgrimage] Shield of the Guilty 1043347100")] - WeepingPeninsulaChurchOfPilgrimageShieldOfTheGuilty = 1043347100, + [Annotation(Name = "[Weeping Peninsula - Church of Pilgrimage] Shield of the Guilty 1043347100")] + WeepingPeninsulaChurchOfPilgrimageShieldOfTheGuilty = 1043347100, - [Annotation(Name = "[Weeping Peninsula - Church of Pilgrimage] Faith-knot Crystal Tear 65240")] - WeepingPeninsulaChurchOfPilgrimageFaithknotCrystalTear = 65240, + [Annotation(Name = "[Weeping Peninsula - Church of Pilgrimage] Faith-knot Crystal Tear 65240")] + WeepingPeninsulaChurchOfPilgrimageFaithknotCrystalTear = 65240, - [Annotation(Name = "[Weeping Peninsula - Church of Pilgrimage] Gold-Tinged Excrement 1043347040")] - WeepingPeninsulaChurchOfPilgrimageGoldTingedExcrement = 1043347040, + [Annotation(Name = "[Weeping Peninsula - Church of Pilgrimage] Gold-Tinged Excrement 1043347040")] + WeepingPeninsulaChurchOfPilgrimageGoldTingedExcrement = 1043347040, - [Annotation(Name = "[Weeping Peninsula - Church of Pilgrimage] String 1043347050")] - WeepingPeninsulaChurchOfPilgrimageString = 1043347050, + [Annotation(Name = "[Weeping Peninsula - Church of Pilgrimage] String 1043347050")] + WeepingPeninsulaChurchOfPilgrimageString = 1043347050, - [Annotation(Name = "[Weeping Peninsula - Church of Pilgrimage] Demi-Human Queen's Staff 1043347400")] - WeepingPeninsulaChurchOfPilgrimageDemiHumanQueensStaff = 1043347400, + [Annotation(Name = "[Weeping Peninsula - Church of Pilgrimage] Demi-Human Queen's Staff 1043347400")] + WeepingPeninsulaChurchOfPilgrimageDemiHumanQueensStaff = 1043347400, - [Annotation(Name = "[Weeping Peninsula - Castle Morne Approach] Golden Rune [4] 1044317010")] - WeepingPeninsulaCastleMorneApproachGoldenRune4 = 1044317010, + [Annotation(Name = "[Weeping Peninsula - Castle Morne Approach] Golden Rune [4] 1044317010")] + WeepingPeninsulaCastleMorneApproachGoldenRune4 = 1044317010, - [Annotation(Name = "[Weeping Peninsula - Castle Morne Approach] Arteria Leaf 1044317020")] - WeepingPeninsulaCastleMorneApproachArteriaLeaf = 1044317020, + [Annotation(Name = "[Weeping Peninsula - Castle Morne Approach] Arteria Leaf 1044317020")] + WeepingPeninsulaCastleMorneApproachArteriaLeaf = 1044317020, - [Annotation(Name = "[Weeping Peninsula - Castle Morne Approach] Somber Smithing Stone [2] 1044317030")] - WeepingPeninsulaCastleMorneApproachSomberSmithingStone2 = 1044317030, + [Annotation(Name = "[Weeping Peninsula - Castle Morne Approach] Somber Smithing Stone [2] 1044317030")] + WeepingPeninsulaCastleMorneApproachSomberSmithingStone2 = 1044317030, - [Annotation(Name = "[Weeping Peninsula - Castle Morne Approach] Smithing Stone [1] 1044327010")] - WeepingPeninsulaCastleMorneApproachSmithingStone1 = 1044327010, + [Annotation(Name = "[Weeping Peninsula - Castle Morne Approach] Smithing Stone [1] 1044327010")] + WeepingPeninsulaCastleMorneApproachSmithingStone1 = 1044327010, - [Annotation(Name = "[Weeping Peninsula - Castle Morne Approach] Warming Stone 1044327030")] - WeepingPeninsulaCastleMorneApproachWarmingStone = 1044327030, + [Annotation(Name = "[Weeping Peninsula - Castle Morne Approach] Warming Stone 1044327030")] + WeepingPeninsulaCastleMorneApproachWarmingStone = 1044327030, - [Annotation(Name = "[Weeping Peninsula - Castle Morne Approach] Great Turtle Shell 1044327040")] - WeepingPeninsulaCastleMorneApproachGreatTurtleShell = 1044327040, + [Annotation(Name = "[Weeping Peninsula - Castle Morne Approach] Great Turtle Shell 1044327040")] + WeepingPeninsulaCastleMorneApproachGreatTurtleShell = 1044327040, - [Annotation(Name = "[Weeping Peninsula - Castle Morne Approach] Sacrificial Axe 1044327400")] - WeepingPeninsulaCastleMorneApproachSacrificialAxe = 1044327400, + [Annotation(Name = "[Weeping Peninsula - Castle Morne Approach] Sacrificial Axe 1044327400")] + WeepingPeninsulaCastleMorneApproachSacrificialAxe = 1044327400, - [Annotation(Name = "[Weeping Peninsula - Castle Morne Approach] Ash of War: Barricade Shield 1044327410")] - WeepingPeninsulaCastleMorneApproachAshOfWarBarricadeShield = 1044327410, + [Annotation(Name = "[Weeping Peninsula - Castle Morne Approach] Ash of War: Barricade Shield 1044327410")] + WeepingPeninsulaCastleMorneApproachAshOfWarBarricadeShield = 1044327410, - [Annotation(Name = "[Weeping Peninsula - Ailing Village Outskirts] Crest Wooden Shield 1044337000")] - WeepingPeninsulaAilingVillageOutskirtsCrestWoodenShield = 1044337000, + [Annotation(Name = "[Weeping Peninsula - Ailing Village Outskirts] Crest Wooden Shield 1044337000")] + WeepingPeninsulaAilingVillageOutskirtsCrestWoodenShield = 1044337000, - [Annotation(Name = "[Weeping Peninsula - Ailing Village Outskirts] Rainbow Stone 1044337020")] - WeepingPeninsulaAilingVillageOutskirtsRainbowStone = 1044337020, + [Annotation(Name = "[Weeping Peninsula - Ailing Village Outskirts] Rainbow Stone 1044337020")] + WeepingPeninsulaAilingVillageOutskirtsRainbowStone = 1044337020, - [Annotation(Name = "[Weeping Peninsula - Bridge of Sacrifice] Hand Ballista 1044347100")] - WeepingPeninsulaBridgeOfSacrificeHandBallista = 1044347100, + [Annotation(Name = "[Weeping Peninsula - Bridge of Sacrifice] Hand Ballista 1044347100")] + WeepingPeninsulaBridgeOfSacrificeHandBallista = 1044347100, - [Annotation(Name = "[Weeping Peninsula - Bridge of Sacrifice] Rainbow Stone 1044347040")] - WeepingPeninsulaBridgeOfSacrificeRainbowStone = 1044347040, + [Annotation(Name = "[Weeping Peninsula - Bridge of Sacrifice] Rainbow Stone 1044347040")] + WeepingPeninsulaBridgeOfSacrificeRainbowStone = 1044347040, - [Annotation(Name = "[Weeping Peninsula - Bridge of Sacrifice] Golden Rune [1] 1044347060")] - WeepingPeninsulaBridgeOfSacrificeGoldenRune1 = 1044347060, + [Annotation(Name = "[Weeping Peninsula - Bridge of Sacrifice] Golden Rune [1] 1044347060")] + WeepingPeninsulaBridgeOfSacrificeGoldenRune1 = 1044347060, - [Annotation(Name = "[Weeping Peninsula - Bridge of Sacrifice] Golden Rune [1] 1044347070")] - WeepingPeninsulaBridgeOfSacrificeGoldenRune1_ = 1044347070, + [Annotation(Name = "[Weeping Peninsula - Bridge of Sacrifice] Golden Rune [1] 1044347070")] + WeepingPeninsulaBridgeOfSacrificeGoldenRune1_ = 1044347070, - [Annotation(Name = "[Leyndell - Minor Erdtree] Starlight Shards 1045337000")] - LeyndellMinorErdtreeStarlightShards = 1045337000, + [Annotation(Name = "[Leyndell - Minor Erdtree] Starlight Shards 1045337000")] + LeyndellMinorErdtreeStarlightShards = 1045337000, - [Annotation(Name = "[Leyndell - Minor Erdtree] Memory Stone 60400")] - LeyndellMinorErdtreeMemoryStone = 60400, + [Annotation(Name = "[Leyndell - Minor Erdtree] Memory Stone 60400")] + LeyndellMinorErdtreeMemoryStone = 60400, - [Annotation(Name = "[Weeping Peninsula - Impaler's Catacombs Entrance] Stonesword Key 1045347000")] - WeepingPeninsulaImpalersCatacombsEntranceStoneswordKey = 1045347000, + [Annotation(Name = "[Weeping Peninsula - Impaler's Catacombs Entrance] Stonesword Key 1045347000")] + WeepingPeninsulaImpalersCatacombsEntranceStoneswordKey = 1045347000, - [Annotation(Name = "[Weeping Peninsula - Tombsward] Golden Rune [1] 1042337200")] - WeepingPeninsulaTombswardGoldenRune1 = 1042337200, + [Annotation(Name = "[Weeping Peninsula - Tombsward] Golden Rune [1] 1042337200")] + WeepingPeninsulaTombswardGoldenRune1 = 1042337200, - [Annotation(Name = "[Weeping Peninsula - Morne Moangrave] Somber Smithing Stone [1] 1043307000")] - WeepingPeninsulaMorneMoangraveSomberSmithingStone1 = 1043307000, + [Annotation(Name = "[Weeping Peninsula - Morne Moangrave] Somber Smithing Stone [1] 1043307000")] + WeepingPeninsulaMorneMoangraveSomberSmithingStone1 = 1043307000, - [Annotation(Name = "[Weeping Peninsula - Morne Moangrave] Fire Arrow 1043307010")] - WeepingPeninsulaMorneMoangraveFireArrow = 1043307010, + [Annotation(Name = "[Weeping Peninsula - Morne Moangrave] Fire Arrow 1043307010")] + WeepingPeninsulaMorneMoangraveFireArrow = 1043307010, - [Annotation(Name = "[Weeping Peninsula - Castle Morne] Fire Grease 1043317000")] - WeepingPeninsulaCastleMorneFireGrease = 1043317000, + [Annotation(Name = "[Weeping Peninsula - Castle Morne] Fire Grease 1043317000")] + WeepingPeninsulaCastleMorneFireGrease = 1043317000, - [Annotation(Name = "[Weeping Peninsula - Castle Morne] 1043317010")] - WeepingPeninsulaCastleMorne = 1043317010, + [Annotation(Name = "[Weeping Peninsula - Castle Morne] 1043317010")] + WeepingPeninsulaCastleMorne = 1043317010, - [Annotation(Name = "[Weeping Peninsula - Castle Morne] Smithing Stone [2] 1043317020")] - WeepingPeninsulaCastleMorneSmithingStone2 = 1043317020, + [Annotation(Name = "[Weeping Peninsula - Castle Morne] Smithing Stone [2] 1043317020")] + WeepingPeninsulaCastleMorneSmithingStone2 = 1043317020, - [Annotation(Name = "[Weeping Peninsula - Castle Morne] 1043317030")] - WeepingPeninsulaCastleMorne_ = 1043317030, + [Annotation(Name = "[Weeping Peninsula - Castle Morne] 1043317030")] + WeepingPeninsulaCastleMorne_ = 1043317030, - [Annotation(Name = "[Weeping Peninsula - Castle Morne] 1043317040")] - WeepingPeninsulaCastleMorne__ = 1043317040, + [Annotation(Name = "[Weeping Peninsula - Castle Morne] 1043317040")] + WeepingPeninsulaCastleMorne__ = 1043317040, - [Annotation(Name = "[Weeping Peninsula - Castle Morne] 1043317050")] - WeepingPeninsulaCastleMorne___ = 1043317050, + [Annotation(Name = "[Weeping Peninsula - Castle Morne] 1043317050")] + WeepingPeninsulaCastleMorne___ = 1043317050, - [Annotation(Name = "[Weeping Peninsula - Castle Morne] 1043317060")] - WeepingPeninsulaCastleMorne____ = 1043317060, + [Annotation(Name = "[Weeping Peninsula - Castle Morne] 1043317060")] + WeepingPeninsulaCastleMorne____ = 1043317060, - [Annotation(Name = "[Weeping Peninsula - Castle Morne] 1043317070")] - WeepingPeninsulaCastleMorne_____ = 1043317070, + [Annotation(Name = "[Weeping Peninsula - Castle Morne] 1043317070")] + WeepingPeninsulaCastleMorne_____ = 1043317070, - [Annotation(Name = "[Weeping Peninsula - Castle Morne] Golden Rune [2] 1043317080")] - WeepingPeninsulaCastleMorneGoldenRune2 = 1043317080, + [Annotation(Name = "[Weeping Peninsula - Castle Morne] Golden Rune [2] 1043317080")] + WeepingPeninsulaCastleMorneGoldenRune2 = 1043317080, - [Annotation(Name = "[Weeping Peninsula - Castle Morne] Smithing Stone [2] 1043317090")] - WeepingPeninsulaCastleMorneSmithingStone2_ = 1043317090, + [Annotation(Name = "[Weeping Peninsula - Castle Morne] Smithing Stone [2] 1043317090")] + WeepingPeninsulaCastleMorneSmithingStone2_ = 1043317090, - [Annotation(Name = "[Weeping Peninsula - Castle Morne] 1043317100")] - WeepingPeninsulaCastleMorne______ = 1043317100, + [Annotation(Name = "[Weeping Peninsula - Castle Morne] 1043317100")] + WeepingPeninsulaCastleMorne______ = 1043317100, - [Annotation(Name = "[Weeping Peninsula - Castle Morne] Golden Rune [2] 1043317110")] - WeepingPeninsulaCastleMorneGoldenRune2_ = 1043317110, + [Annotation(Name = "[Weeping Peninsula - Castle Morne] Golden Rune [2] 1043317110")] + WeepingPeninsulaCastleMorneGoldenRune2_ = 1043317110, - [Annotation(Name = "[Weeping Peninsula - Castle Morne] 1043317120")] - WeepingPeninsulaCastleMorne_______ = 1043317120, + [Annotation(Name = "[Weeping Peninsula - Castle Morne] 1043317120")] + WeepingPeninsulaCastleMorne_______ = 1043317120, - [Annotation(Name = "[Weeping Peninsula - Castle Morne] 1043317130")] - WeepingPeninsulaCastleMorne________ = 1043317130, + [Annotation(Name = "[Weeping Peninsula - Castle Morne] 1043317130")] + WeepingPeninsulaCastleMorne________ = 1043317130, - [Annotation(Name = "[Weeping Peninsula - Castle Morne] Pickled Turtle Neck 1043317140")] - WeepingPeninsulaCastleMornePickledTurtleNeck = 1043317140, + [Annotation(Name = "[Weeping Peninsula - Castle Morne] Pickled Turtle Neck 1043317140")] + WeepingPeninsulaCastleMornePickledTurtleNeck = 1043317140, - [Annotation(Name = "[Weeping Peninsula - Castle Morne] 1043317150")] - WeepingPeninsulaCastleMorne_________ = 1043317150, + [Annotation(Name = "[Weeping Peninsula - Castle Morne] 1043317150")] + WeepingPeninsulaCastleMorne_________ = 1043317150, - [Annotation(Name = "[Weeping Peninsula - Castle Morne] 1043317160")] - WeepingPeninsulaCastleMorne__________ = 1043317160, + [Annotation(Name = "[Weeping Peninsula - Castle Morne] 1043317160")] + WeepingPeninsulaCastleMorne__________ = 1043317160, - [Annotation(Name = "[Weeping Peninsula - Castle Morne] Stonesword Key 1043317170")] - WeepingPeninsulaCastleMorneStoneswordKey = 1043317170, + [Annotation(Name = "[Weeping Peninsula - Castle Morne] Stonesword Key 1043317170")] + WeepingPeninsulaCastleMorneStoneswordKey = 1043317170, - [Annotation(Name = "[Weeping Peninsula - Castle Morne] 1043317180")] - WeepingPeninsulaCastleMorne___________ = 1043317180, + [Annotation(Name = "[Weeping Peninsula - Castle Morne] 1043317180")] + WeepingPeninsulaCastleMorne___________ = 1043317180, - [Annotation(Name = "[Weeping Peninsula - Castle Morne] 1043317190")] - WeepingPeninsulaCastleMorne____________ = 1043317190, + [Annotation(Name = "[Weeping Peninsula - Castle Morne] 1043317190")] + WeepingPeninsulaCastleMorne____________ = 1043317190, - [Annotation(Name = "[Weeping Peninsula - Castle Morne] 1043317200")] - WeepingPeninsulaCastleMorne_____________ = 1043317200, + [Annotation(Name = "[Weeping Peninsula - Castle Morne] 1043317200")] + WeepingPeninsulaCastleMorne_____________ = 1043317200, - [Annotation(Name = "[Weeping Peninsula - Castle Morne] 1043317210")] - WeepingPeninsulaCastleMorne______________ = 1043317210, + [Annotation(Name = "[Weeping Peninsula - Castle Morne] 1043317210")] + WeepingPeninsulaCastleMorne______________ = 1043317210, - [Annotation(Name = "[Weeping Peninsula - Castle Morne] Tarnished Golden Sunflower 1043317220")] - WeepingPeninsulaCastleMorneTarnishedGoldenSunflower = 1043317220, + [Annotation(Name = "[Weeping Peninsula - Castle Morne] Tarnished Golden Sunflower 1043317220")] + WeepingPeninsulaCastleMorneTarnishedGoldenSunflower = 1043317220, - [Annotation(Name = "[Weeping Peninsula - Castle Morne] 1043317230")] - WeepingPeninsulaCastleMorne_______________ = 1043317230, + [Annotation(Name = "[Weeping Peninsula - Castle Morne] 1043317230")] + WeepingPeninsulaCastleMorne_______________ = 1043317230, - [Annotation(Name = "[Weeping Peninsula - Castle Morne] Smithing Stone [2] 1043317240")] - WeepingPeninsulaCastleMorneSmithingStone2__ = 1043317240, + [Annotation(Name = "[Weeping Peninsula - Castle Morne] Smithing Stone [2] 1043317240")] + WeepingPeninsulaCastleMorneSmithingStone2__ = 1043317240, - [Annotation(Name = "[Weeping Peninsula - Castle Morne] 1043317250")] - WeepingPeninsulaCastleMorne________________ = 1043317250, + [Annotation(Name = "[Weeping Peninsula - Castle Morne] 1043317250")] + WeepingPeninsulaCastleMorne________________ = 1043317250, - [Annotation(Name = "[Weeping Peninsula - Castle Morne] 1043317260")] - WeepingPeninsulaCastleMorne_________________ = 1043317260, + [Annotation(Name = "[Weeping Peninsula - Castle Morne] 1043317260")] + WeepingPeninsulaCastleMorne_________________ = 1043317260, - [Annotation(Name = "[Weeping Peninsula - Castle Morne] 1043317270")] - WeepingPeninsulaCastleMorne__________________ = 1043317270, + [Annotation(Name = "[Weeping Peninsula - Castle Morne] 1043317270")] + WeepingPeninsulaCastleMorne__________________ = 1043317270, - [Annotation(Name = "[Weeping Peninsula - Castle Morne] Throwing Dagger 1043317280")] - WeepingPeninsulaCastleMorneThrowingDagger = 1043317280, + [Annotation(Name = "[Weeping Peninsula - Castle Morne] Throwing Dagger 1043317280")] + WeepingPeninsulaCastleMorneThrowingDagger = 1043317280, - [Annotation(Name = "[Weeping Peninsula - Castle Morne] 1043317290")] - WeepingPeninsulaCastleMorne___________________ = 1043317290, + [Annotation(Name = "[Weeping Peninsula - Castle Morne] 1043317290")] + WeepingPeninsulaCastleMorne___________________ = 1043317290, - [Annotation(Name = "[Weeping Peninsula - Castle Morne] 1043317300")] - WeepingPeninsulaCastleMorne____________________ = 1043317300, + [Annotation(Name = "[Weeping Peninsula - Castle Morne] 1043317300")] + WeepingPeninsulaCastleMorne____________________ = 1043317300, - [Annotation(Name = "[Weeping Peninsula - Castle Morne] 1043317310")] - WeepingPeninsulaCastleMorne_____________________ = 1043317310, + [Annotation(Name = "[Weeping Peninsula - Castle Morne] 1043317310")] + WeepingPeninsulaCastleMorne_____________________ = 1043317310, - [Annotation(Name = "[Weeping Peninsula - Castle Morne] Furlcalling Finger Remedy 1043317320")] - WeepingPeninsulaCastleMorneFurlcallingFingerRemedy = 1043317320, + [Annotation(Name = "[Weeping Peninsula - Castle Morne] Furlcalling Finger Remedy 1043317320")] + WeepingPeninsulaCastleMorneFurlcallingFingerRemedy = 1043317320, - [Annotation(Name = "[Weeping Peninsula - Castle Morne] Steel-Wire Torch 1043317330")] - WeepingPeninsulaCastleMorneSteelWireTorch = 1043317330, + [Annotation(Name = "[Weeping Peninsula - Castle Morne] Steel-Wire Torch 1043317330")] + WeepingPeninsulaCastleMorneSteelWireTorch = 1043317330, - [Annotation(Name = "[Weeping Peninsula - Castle Morne] 1043317340")] - WeepingPeninsulaCastleMorne______________________ = 1043317340, + [Annotation(Name = "[Weeping Peninsula - Castle Morne] 1043317340")] + WeepingPeninsulaCastleMorne______________________ = 1043317340, - [Annotation(Name = "[Weeping Peninsula - Castle Morne] Smithing Stone [1] 1043317350")] - WeepingPeninsulaCastleMorneSmithingStone1 = 1043317350, + [Annotation(Name = "[Weeping Peninsula - Castle Morne] Smithing Stone [1] 1043317350")] + WeepingPeninsulaCastleMorneSmithingStone1 = 1043317350, - [Annotation(Name = "[Weeping Peninsula - Castle Morne] Ballista Bolt 1043317360")] - WeepingPeninsulaCastleMorneBallistaBolt = 1043317360, + [Annotation(Name = "[Weeping Peninsula - Castle Morne] Ballista Bolt 1043317360")] + WeepingPeninsulaCastleMorneBallistaBolt = 1043317360, - [Annotation(Name = "[Weeping Peninsula - Castle Morne] Whip 1043317370")] - WeepingPeninsulaCastleMorneWhip = 1043317370, + [Annotation(Name = "[Weeping Peninsula - Castle Morne] Whip 1043317370")] + WeepingPeninsulaCastleMorneWhip = 1043317370, - [Annotation(Name = "[Weeping Peninsula - Castle Morne] Golden Rune [1] 1043317400")] - WeepingPeninsulaCastleMorneGoldenRune1 = 1043317400, + [Annotation(Name = "[Weeping Peninsula - Castle Morne] Golden Rune [1] 1043317400")] + WeepingPeninsulaCastleMorneGoldenRune1 = 1043317400, - [Annotation(Name = "[Weeping Peninsula - Castle Morne] Smithing Stone [1] 1043317500")] - WeepingPeninsulaCastleMorneSmithingStone1_ = 1043317500, + [Annotation(Name = "[Weeping Peninsula - Castle Morne] Smithing Stone [1] 1043317500")] + WeepingPeninsulaCastleMorneSmithingStone1_ = 1043317500, - [Annotation(Name = "[Weeping Peninsula - Castle Morne] Twinblade Talisman 1043317900")] - WeepingPeninsulaCastleMorneTwinbladeTalisman = 1043317900, + [Annotation(Name = "[Weeping Peninsula - Castle Morne] Twinblade Talisman 1043317900")] + WeepingPeninsulaCastleMorneTwinbladeTalisman = 1043317900, - [Annotation(Name = "[Weeping Peninsula - Castle Morne] Claymore 1043317910")] - WeepingPeninsulaCastleMorneClaymore = 1043317910, + [Annotation(Name = "[Weeping Peninsula - Castle Morne] Claymore 1043317910")] + WeepingPeninsulaCastleMorneClaymore = 1043317910, - [Annotation(Name = "[Weeping Peninsula - Ailing Village Outskirts] Strip of White Flesh 1044337030")] - WeepingPeninsulaAilingVillageOutskirtsStripOfWhiteFlesh = 1044337030, + [Annotation(Name = "[Weeping Peninsula - Ailing Village Outskirts] Strip of White Flesh 1044337030")] + WeepingPeninsulaAilingVillageOutskirtsStripOfWhiteFlesh = 1044337030, - [Annotation(Name = "[Weeping Peninsula - Ailing Village Outskirts] 1044337040")] - WeepingPeninsulaAilingVillageOutskirts = 1044337040, + [Annotation(Name = "[Weeping Peninsula - Ailing Village Outskirts] 1044337040")] + WeepingPeninsulaAilingVillageOutskirts = 1044337040, - [Annotation(Name = "[Weeping Peninsula - Ailing Village Outskirts] Golden Rune [2] 1044337050")] - WeepingPeninsulaAilingVillageOutskirtsGoldenRune2 = 1044337050, + [Annotation(Name = "[Weeping Peninsula - Ailing Village Outskirts] Golden Rune [2] 1044337050")] + WeepingPeninsulaAilingVillageOutskirtsGoldenRune2 = 1044337050, - [Annotation(Name = "[Weeping Peninsula - Ailing Village Outskirts] 1044337060")] - WeepingPeninsulaAilingVillageOutskirts_ = 1044337060, + [Annotation(Name = "[Weeping Peninsula - Ailing Village Outskirts] 1044337060")] + WeepingPeninsulaAilingVillageOutskirts_ = 1044337060, - [Annotation(Name = "[Weeping Peninsula - Ailing Village Outskirts] Golden Rune [2] 1044337070")] - WeepingPeninsulaAilingVillageOutskirtsGoldenRune2_ = 1044337070, + [Annotation(Name = "[Weeping Peninsula - Ailing Village Outskirts] Golden Rune [2] 1044337070")] + WeepingPeninsulaAilingVillageOutskirtsGoldenRune2_ = 1044337070, - [Annotation(Name = "[Weeping Peninsula - Ailing Village Outskirts] The Flame of Frenzy 1044337080")] - WeepingPeninsulaAilingVillageOutskirtsTheFlameOfFrenzy = 1044337080, + [Annotation(Name = "[Weeping Peninsula - Ailing Village Outskirts] The Flame of Frenzy 1044337080")] + WeepingPeninsulaAilingVillageOutskirtsTheFlameOfFrenzy = 1044337080, - [Annotation(Name = "[Weeping Peninsula - Ailing Village Outskirts] Smithing Stone [2] 1044337200")] - WeepingPeninsulaAilingVillageOutskirtsSmithingStone2 = 1044337200, + [Annotation(Name = "[Weeping Peninsula - Ailing Village Outskirts] Smithing Stone [2] 1044337200")] + WeepingPeninsulaAilingVillageOutskirtsSmithingStone2 = 1044337200, - [Annotation(Name = "[Weeping Peninsula - Ailing Village Outskirts] Morning Star 1044337210")] - WeepingPeninsulaAilingVillageOutskirtsMorningStar = 1044337210, + [Annotation(Name = "[Weeping Peninsula - Ailing Village Outskirts] Morning Star 1044337210")] + WeepingPeninsulaAilingVillageOutskirtsMorningStar = 1044337210, - [Annotation(Name = "[Limgrave - Rear Gael Tunnel Entrance] Golden Rune [1] 1046397000")] - LimgraveRearGaelTunnelEntranceGoldenRune1 = 1046397000, + [Annotation(Name = "[Limgrave - Rear Gael Tunnel Entrance] Golden Rune [1] 1046397000")] + LimgraveRearGaelTunnelEntranceGoldenRune1 = 1046397000, - [Annotation(Name = "[Limgrave - Rear Gael Tunnel Entrance] Golden Rune [2] 1046397010")] - LimgraveRearGaelTunnelEntranceGoldenRune2 = 1046397010, + [Annotation(Name = "[Limgrave - Rear Gael Tunnel Entrance] Golden Rune [2] 1046397010")] + LimgraveRearGaelTunnelEntranceGoldenRune2 = 1046397010, - [Annotation(Name = "[Limgrave - Rear Gael Tunnel Entrance] Golden Rune [3] 1046397020")] - LimgraveRearGaelTunnelEntranceGoldenRune3 = 1046397020, + [Annotation(Name = "[Limgrave - Rear Gael Tunnel Entrance] Golden Rune [3] 1046397020")] + LimgraveRearGaelTunnelEntranceGoldenRune3 = 1046397020, - [Annotation(Name = "[Caelid - Smoldering Church] Nascent Butterfly 1046407000")] - CaelidSmolderingChurchNascentButterfly = 1046407000, + [Annotation(Name = "[Caelid - Smoldering Church] Nascent Butterfly 1046407000")] + CaelidSmolderingChurchNascentButterfly = 1046407000, - [Annotation(Name = "[Caelid - Smoldering Church] Rune Arc 1046407010")] - CaelidSmolderingChurchRuneArc = 1046407010, + [Annotation(Name = "[Caelid - Smoldering Church] Rune Arc 1046407010")] + CaelidSmolderingChurchRuneArc = 1046407010, - [Annotation(Name = "[Caelid - Smoldering Church] Golden Rune [3] 1046407020")] - CaelidSmolderingChurchGoldenRune3 = 1046407020, + [Annotation(Name = "[Caelid - Smoldering Church] Golden Rune [3] 1046407020")] + CaelidSmolderingChurchGoldenRune3 = 1046407020, - [Annotation(Name = "[Caelid - Smoldering Church] Missionary's Cookbook [3] 67650")] - CaelidSmolderingChurchMissionarysCookbook3 = 67650, + [Annotation(Name = "[Caelid - Smoldering Church] Missionary's Cookbook [3] 67650")] + CaelidSmolderingChurchMissionarysCookbook3 = 67650, - [Annotation(Name = "[Caelid - Smoldering Church] Preserving Boluses 1046407040")] - CaelidSmolderingChurchPreservingBoluses = 1046407040, + [Annotation(Name = "[Caelid - Smoldering Church] Preserving Boluses 1046407040")] + CaelidSmolderingChurchPreservingBoluses = 1046407040, - [Annotation(Name = "[Caelid - Smoldering Church] Nomadic Warrior's Cookbook [14] 67870")] - CaelidSmolderingChurchNomadicWarriorsCookbook14 = 67870, + [Annotation(Name = "[Caelid - Smoldering Church] Nomadic Warrior's Cookbook [14] 67870")] + CaelidSmolderingChurchNomadicWarriorsCookbook14 = 67870, - [Annotation(Name = "[Caelid - Smoldering Church] Drawstring Lightning Grease 1046407060")] - CaelidSmolderingChurchDrawstringLightningGrease = 1046407060, + [Annotation(Name = "[Caelid - Smoldering Church] Drawstring Lightning Grease 1046407060")] + CaelidSmolderingChurchDrawstringLightningGrease = 1046407060, - [Annotation(Name = "[Caelid - Smoldering Church] Sacred Scorpion Charm 1046407700")] - CaelidSmolderingChurchSacredScorpionCharm = 1046407700, + [Annotation(Name = "[Caelid - Smoldering Church] Sacred Scorpion Charm 1046407700")] + CaelidSmolderingChurchSacredScorpionCharm = 1046407700, - [Annotation(Name = "[Caelid - West of Caelid Highway South] Golden Rune [1] 1047377000")] - CaelidWestOfCaelidHighwaySouthGoldenRune1 = 1047377000, + [Annotation(Name = "[Caelid - West of Caelid Highway South] Golden Rune [1] 1047377000")] + CaelidWestOfCaelidHighwaySouthGoldenRune1 = 1047377000, - [Annotation(Name = "[Caelid - West of Caelid Highway South] Golden Rune [5] 1047377010")] - CaelidWestOfCaelidHighwaySouthGoldenRune5 = 1047377010, + [Annotation(Name = "[Caelid - West of Caelid Highway South] Golden Rune [5] 1047377010")] + CaelidWestOfCaelidHighwaySouthGoldenRune5 = 1047377010, - [Annotation(Name = "[Caelid - West of Caelid Highway South] Golden Rune [1] 1047377020")] - CaelidWestOfCaelidHighwaySouthGoldenRune1_ = 1047377020, + [Annotation(Name = "[Caelid - West of Caelid Highway South] Golden Rune [1] 1047377020")] + CaelidWestOfCaelidHighwaySouthGoldenRune1_ = 1047377020, - [Annotation(Name = "[Caelid - West of Caelid Highway South] Golden Rune [2] 1047377030")] - CaelidWestOfCaelidHighwaySouthGoldenRune2 = 1047377030, + [Annotation(Name = "[Caelid - West of Caelid Highway South] Golden Rune [2] 1047377030")] + CaelidWestOfCaelidHighwaySouthGoldenRune2 = 1047377030, - [Annotation(Name = "[Caelid - West of Caelid Highway South] Poisonbloom 1047377040")] - CaelidWestOfCaelidHighwaySouthPoisonbloom = 1047377040, + [Annotation(Name = "[Caelid - West of Caelid Highway South] Poisonbloom 1047377040")] + CaelidWestOfCaelidHighwaySouthPoisonbloom = 1047377040, - [Annotation(Name = "[Caelid - West of Caelid Highway South] Starlight Shards 1047377050")] - CaelidWestOfCaelidHighwaySouthStarlightShards = 1047377050, + [Annotation(Name = "[Caelid - West of Caelid Highway South] Starlight Shards 1047377050")] + CaelidWestOfCaelidHighwaySouthStarlightShards = 1047377050, - [Annotation(Name = "[Caelid - West of Caelid Highway South] Larval Tear 1047377100")] - CaelidWestOfCaelidHighwaySouthLarvalTear = 1047377100, + [Annotation(Name = "[Caelid - West of Caelid Highway South] Larval Tear 1047377100")] + CaelidWestOfCaelidHighwaySouthLarvalTear = 1047377100, - [Annotation(Name = "[Caelid - Fort Gael] Somber Smithing Stone [4] 1047387010")] - CaelidFortGaelSomberSmithingStone4 = 1047387010, + [Annotation(Name = "[Caelid - Fort Gael] Somber Smithing Stone [4] 1047387010")] + CaelidFortGaelSomberSmithingStone4 = 1047387010, - [Annotation(Name = "[Caelid - Fort Gael] Great Dragonfly Head 1047387030")] - CaelidFortGaelGreatDragonflyHead = 1047387030, + [Annotation(Name = "[Caelid - Fort Gael] Great Dragonfly Head 1047387030")] + CaelidFortGaelGreatDragonflyHead = 1047387030, - [Annotation(Name = "[Caelid - Fort Gael] Rot Grease 1047387040")] - CaelidFortGaelRotGrease = 1047387040, + [Annotation(Name = "[Caelid - Fort Gael] Rot Grease 1047387040")] + CaelidFortGaelRotGrease = 1047387040, - [Annotation(Name = "[Caelid - Fort Gael] Rune Arc 1047387070")] - CaelidFortGaelRuneArc = 1047387070, + [Annotation(Name = "[Caelid - Fort Gael] Rune Arc 1047387070")] + CaelidFortGaelRuneArc = 1047387070, - [Annotation(Name = "[Caelid - Fort Gael] Warming Stone 1047387080")] - CaelidFortGaelWarmingStone = 1047387080, + [Annotation(Name = "[Caelid - Fort Gael] Warming Stone 1047387080")] + CaelidFortGaelWarmingStone = 1047387080, - [Annotation(Name = "[Caelid - Fort Gael] Smoldering Butterfly 1047387100")] - CaelidFortGaelSmolderingButterfly = 1047387100, + [Annotation(Name = "[Caelid - Fort Gael] Smoldering Butterfly 1047387100")] + CaelidFortGaelSmolderingButterfly = 1047387100, - [Annotation(Name = "[Caelid - Fort Gael] Mushroom 1047387110")] - CaelidFortGaelMushroom = 1047387110, + [Annotation(Name = "[Caelid - Fort Gael] Mushroom 1047387110")] + CaelidFortGaelMushroom = 1047387110, - [Annotation(Name = "[Caelid - Fort Gael] Flame, Grant Me Strength 1047387120")] - CaelidFortGaelFlameGrantMeStrength = 1047387120, + [Annotation(Name = "[Caelid - Fort Gael] Flame, Grant Me Strength 1047387120")] + CaelidFortGaelFlameGrantMeStrength = 1047387120, - [Annotation(Name = "[Caelid - Fort Gael] Explosive Greatbolt 1047387130")] - CaelidFortGaelExplosiveGreatbolt = 1047387130, + [Annotation(Name = "[Caelid - Fort Gael] Explosive Greatbolt 1047387130")] + CaelidFortGaelExplosiveGreatbolt = 1047387130, - [Annotation(Name = "[Caelid - Fort Gael] Ash of War: Lion's Claw 1047387700")] - CaelidFortGaelAshOfWarLionsClaw = 1047387700, + [Annotation(Name = "[Caelid - Fort Gael] Ash of War: Lion's Claw 1047387700")] + CaelidFortGaelAshOfWarLionsClaw = 1047387700, - [Annotation(Name = "[Caelid - Fort Gael] Starscourge Heirloom 1047387900")] - CaelidFortGaelStarscourgeHeirloom = 1047387900, + [Annotation(Name = "[Caelid - Fort Gael] Starscourge Heirloom 1047387900")] + CaelidFortGaelStarscourgeHeirloom = 1047387900, - [Annotation(Name = "[Caelid - Fort Gael] Meteoric Ore Blade 1047387910")] - CaelidFortGaelMeteoricOreBlade = 1047387910, + [Annotation(Name = "[Caelid - Fort Gael] Meteoric Ore Blade 1047387910")] + CaelidFortGaelMeteoricOreBlade = 1047387910, - [Annotation(Name = "[Caelid - Fort Gael] Katar 1047387920")] - CaelidFortGaelKatar = 1047387920, + [Annotation(Name = "[Caelid - Fort Gael] Katar 1047387920")] + CaelidFortGaelKatar = 1047387920, - [Annotation(Name = "[Caelid - Fort Gael North] Smithing Stone [5] 1047397000")] - CaelidFortGaelNorthSmithingStone5 = 1047397000, + [Annotation(Name = "[Caelid - Fort Gael North] Smithing Stone [5] 1047397000")] + CaelidFortGaelNorthSmithingStone5 = 1047397000, - [Annotation(Name = "[Caelid - Fort Gael North] Golden Rune [9] 1047397040")] - CaelidFortGaelNorthGoldenRune9 = 1047397040, + [Annotation(Name = "[Caelid - Fort Gael North] Golden Rune [9] 1047397040")] + CaelidFortGaelNorthGoldenRune9 = 1047397040, - [Annotation(Name = "[Caelid - Fort Gael North] Slumbering Egg 1047397080")] - CaelidFortGaelNorthSlumberingEgg = 1047397080, + [Annotation(Name = "[Caelid - Fort Gael North] Slumbering Egg 1047397080")] + CaelidFortGaelNorthSlumberingEgg = 1047397080, - [Annotation(Name = "[Caelid - Caelem Ruins] Golden Rune [5] 1047407000")] - CaelidCaelemRuinsGoldenRune5 = 1047407000, + [Annotation(Name = "[Caelid - Caelem Ruins] Golden Rune [5] 1047407000")] + CaelidCaelemRuinsGoldenRune5 = 1047407000, - [Annotation(Name = "[Caelid - Caelem Ruins] Cracked Pot 66190")] - CaelidCaelemRuinsCrackedPot = 66190, + [Annotation(Name = "[Caelid - Caelem Ruins] Cracked Pot 66190")] + CaelidCaelemRuinsCrackedPot = 66190, - [Annotation(Name = "[Caelid - Caelem Ruins] Smithing Stone [4] 1047407020")] - CaelidCaelemRuinsSmithingStone4 = 1047407020, + [Annotation(Name = "[Caelid - Caelem Ruins] Smithing Stone [4] 1047407020")] + CaelidCaelemRuinsSmithingStone4 = 1047407020, - [Annotation(Name = "[Caelid - Caelem Ruins] Somber Smithing Stone [4] 1047407030")] - CaelidCaelemRuinsSomberSmithingStone4 = 1047407030, + [Annotation(Name = "[Caelid - Caelem Ruins] Somber Smithing Stone [4] 1047407030")] + CaelidCaelemRuinsSomberSmithingStone4 = 1047407030, - [Annotation(Name = "[Caelid - Caelem Ruins] Explosive Bolt 1047407040")] - CaelidCaelemRuinsExplosiveBolt = 1047407040, + [Annotation(Name = "[Caelid - Caelem Ruins] Explosive Bolt 1047407040")] + CaelidCaelemRuinsExplosiveBolt = 1047407040, - [Annotation(Name = "[Caelid - Caelem Ruins] Drawstring Fire Grease 1047407070")] - CaelidCaelemRuinsDrawstringFireGrease = 1047407070, + [Annotation(Name = "[Caelid - Caelem Ruins] Drawstring Fire Grease 1047407070")] + CaelidCaelemRuinsDrawstringFireGrease = 1047407070, - [Annotation(Name = "[Caelid - Caelem Ruins] Smoldering Butterfly 1047407080")] - CaelidCaelemRuinsSmolderingButterfly = 1047407080, + [Annotation(Name = "[Caelid - Caelem Ruins] Smoldering Butterfly 1047407080")] + CaelidCaelemRuinsSmolderingButterfly = 1047407080, - [Annotation(Name = "[Caelid - Caelem Ruins] Rune Arc 1047407900")] - CaelidCaelemRuinsRuneArc = 1047407900, + [Annotation(Name = "[Caelid - Caelem Ruins] Rune Arc 1047407900")] + CaelidCaelemRuinsRuneArc = 1047407900, - [Annotation(Name = "[Caelid - Caelem Ruins] Sword of St. Trina 1047407910")] - CaelidCaelemRuinsSwordOfStTrina = 1047407910, + [Annotation(Name = "[Caelid - Caelem Ruins] Sword of St. Trina 1047407910")] + CaelidCaelemRuinsSwordOfStTrina = 1047407910, - [Annotation(Name = "[Caelid - Caelem Ruins] Greatsword 1047407920")] - CaelidCaelemRuinsGreatsword = 1047407920, + [Annotation(Name = "[Caelid - Caelem Ruins] Greatsword 1047407920")] + CaelidCaelemRuinsGreatsword = 1047407920, - [Annotation(Name = "[Caelid - Cathedral of Dragon Communion] Ancient Dragon Apostle's Cookbook [3] 68030")] - CaelidCathedralOfDragonCommunionAncientDragonApostlesCookbook3 = 68030, + [Annotation(Name = "[Caelid - Cathedral of Dragon Communion] Ancient Dragon Apostle's Cookbook [3] 68030")] + CaelidCathedralOfDragonCommunionAncientDragonApostlesCookbook3 = 68030, - [Annotation(Name = "[Caelid - Caelid Highway South] Crab Eggs 1048377000")] - CaelidCaelidHighwaySouthCrabEggs = 1048377000, + [Annotation(Name = "[Caelid - Caelid Highway South] Crab Eggs 1048377000")] + CaelidCaelidHighwaySouthCrabEggs = 1048377000, - [Annotation(Name = "[Caelid - Caelid Highway South] Golden Rune [3] 1048377020")] - CaelidCaelidHighwaySouthGoldenRune3 = 1048377020, + [Annotation(Name = "[Caelid - Caelid Highway South] Golden Rune [3] 1048377020")] + CaelidCaelidHighwaySouthGoldenRune3 = 1048377020, - [Annotation(Name = "[Caelid - Caelid Highway South] Golden Rune [4] 1048377030")] - CaelidCaelidHighwaySouthGoldenRune4 = 1048377030, + [Annotation(Name = "[Caelid - Caelid Highway South] Golden Rune [4] 1048377030")] + CaelidCaelidHighwaySouthGoldenRune4 = 1048377030, - [Annotation(Name = "[Caelid - West Aeonia Swamp] Golden Rune [4] 1048387000")] - CaelidWestAeoniaSwampGoldenRune4 = 1048387000, + [Annotation(Name = "[Caelid - West Aeonia Swamp] Golden Rune [4] 1048387000")] + CaelidWestAeoniaSwampGoldenRune4 = 1048387000, - [Annotation(Name = "[Caelid - West Aeonia Swamp] Perfume Bottle 66790")] - CaelidWestAeoniaSwampPerfumeBottle = 66790, + [Annotation(Name = "[Caelid - West Aeonia Swamp] Perfume Bottle 66790")] + CaelidWestAeoniaSwampPerfumeBottle = 66790, - [Annotation(Name = "[Caelid - West Aeonia Swamp] Traveler's Hat 1048387010")] - CaelidWestAeoniaSwampTravelersHat = 1048387010, + [Annotation(Name = "[Caelid - West Aeonia Swamp] Traveler's Hat 1048387010")] + CaelidWestAeoniaSwampTravelersHat = 1048387010, - [Annotation(Name = "[Caelid - West Aeonia Swamp] Golden Rune [5] 1048387020")] - CaelidWestAeoniaSwampGoldenRune5 = 1048387020, + [Annotation(Name = "[Caelid - West Aeonia Swamp] Golden Rune [5] 1048387020")] + CaelidWestAeoniaSwampGoldenRune5 = 1048387020, - [Annotation(Name = "[Caelid - West Aeonia Swamp] Sacramental Bud 1048387500")] - CaelidWestAeoniaSwampSacramentalBud = 1048387500, + [Annotation(Name = "[Caelid - West Aeonia Swamp] Sacramental Bud 1048387500")] + CaelidWestAeoniaSwampSacramentalBud = 1048387500, - [Annotation(Name = "[Caelid - Smoldering Wall] Sacramental Bud 1048397000")] - CaelidSmolderingWallSacramentalBud = 1048397000, + [Annotation(Name = "[Caelid - Smoldering Wall] Sacramental Bud 1048397000")] + CaelidSmolderingWallSacramentalBud = 1048397000, - [Annotation(Name = "[Caelid - Smoldering Wall] Somber Smithing Stone [5] 1048397010")] - CaelidSmolderingWallSomberSmithingStone5 = 1048397010, + [Annotation(Name = "[Caelid - Smoldering Wall] Somber Smithing Stone [5] 1048397010")] + CaelidSmolderingWallSomberSmithingStone5 = 1048397010, - [Annotation(Name = "[Caelid - Smoldering Wall] Great Dragonfly Head 1048397040")] - CaelidSmolderingWallGreatDragonflyHead = 1048397040, + [Annotation(Name = "[Caelid - Smoldering Wall] Great Dragonfly Head 1048397040")] + CaelidSmolderingWallGreatDragonflyHead = 1048397040, - [Annotation(Name = "[Caelid - Smoldering Wall] Stonesword Key 1048397050")] - CaelidSmolderingWallStoneswordKey = 1048397050, + [Annotation(Name = "[Caelid - Smoldering Wall] Stonesword Key 1048397050")] + CaelidSmolderingWallStoneswordKey = 1048397050, - [Annotation(Name = "[Caelid - Smoldering Wall] Rock Sling 1048397900")] - CaelidSmolderingWallRockSling = 1048397900, + [Annotation(Name = "[Caelid - Smoldering Wall] Rock Sling 1048397900")] + CaelidSmolderingWallRockSling = 1048397900, - [Annotation(Name = "[Caelid - Deep Siofra Well] Golden Rune [1] 1048407010")] - CaelidDeepSiofraWellGoldenRune1 = 1048407010, + [Annotation(Name = "[Caelid - Deep Siofra Well] Golden Rune [1] 1048407010")] + CaelidDeepSiofraWellGoldenRune1 = 1048407010, - [Annotation(Name = "[Caelid - Deep Siofra Well] Golden Rune [6] 1048407020")] - CaelidDeepSiofraWellGoldenRune6 = 1048407020, + [Annotation(Name = "[Caelid - Deep Siofra Well] Golden Rune [6] 1048407020")] + CaelidDeepSiofraWellGoldenRune6 = 1048407020, - [Annotation(Name = "[Caelid - Deep Siofra Well] Golden Rune [2] 1048407030")] - CaelidDeepSiofraWellGoldenRune2 = 1048407030, + [Annotation(Name = "[Caelid - Deep Siofra Well] Golden Rune [2] 1048407030")] + CaelidDeepSiofraWellGoldenRune2 = 1048407030, - [Annotation(Name = "[Caelid - Deep Siofra Well] Sacramental Bud 1048407040")] - CaelidDeepSiofraWellSacramentalBud = 1048407040, + [Annotation(Name = "[Caelid - Deep Siofra Well] Sacramental Bud 1048407040")] + CaelidDeepSiofraWellSacramentalBud = 1048407040, - [Annotation(Name = "[Caelid - Deep Siofra Well] Hefty Beast Bone 1048407050")] - CaelidDeepSiofraWellHeftyBeastBone = 1048407050, + [Annotation(Name = "[Caelid - Deep Siofra Well] Hefty Beast Bone 1048407050")] + CaelidDeepSiofraWellHeftyBeastBone = 1048407050, - [Annotation(Name = "[Caelid - Deep Siofra Well] Spiked Palisade Shield 1048407060")] - CaelidDeepSiofraWellSpikedPalisadeShield = 1048407060, + [Annotation(Name = "[Caelid - Deep Siofra Well] Spiked Palisade Shield 1048407060")] + CaelidDeepSiofraWellSpikedPalisadeShield = 1048407060, - [Annotation(Name = "[Caelid - Deep Siofra Well] Visage Shield 1048407900")] - CaelidDeepSiofraWellVisageShield = 1048407900, + [Annotation(Name = "[Caelid - Deep Siofra Well] Visage Shield 1048407900")] + CaelidDeepSiofraWellVisageShield = 1048407900, - [Annotation(Name = "[Greyoll's Dragonbarrow - Isolated Merchant's Shack] Gravity Stone Peddler's Bell Bearing 1048417800")] - GreyollsDragonbarrowIsolatedMerchantsShackGravityStonePeddlersBellBearing = 1048417800, + [Annotation(Name = "[Greyoll's Dragonbarrow - Isolated Merchant's Shack] Gravity Stone Peddler's Bell Bearing 1048417800")] + GreyollsDragonbarrowIsolatedMerchantsShackGravityStonePeddlersBellBearing = 1048417800, - [Annotation(Name = "[Caelid - Southwest of Caelid Highway South] Smoldering Butterfly 1049367000")] - CaelidSouthwestOfCaelidHighwaySouthSmolderingButterfly = 1049367000, + [Annotation(Name = "[Caelid - Southwest of Caelid Highway South] Smoldering Butterfly 1049367000")] + CaelidSouthwestOfCaelidHighwaySouthSmolderingButterfly = 1049367000, - [Annotation(Name = "[Caelid - Southwest of Caelid Highway South] Fan Daggers 1049367010")] - CaelidSouthwestOfCaelidHighwaySouthFanDaggers = 1049367010, + [Annotation(Name = "[Caelid - Southwest of Caelid Highway South] Fan Daggers 1049367010")] + CaelidSouthwestOfCaelidHighwaySouthFanDaggers = 1049367010, - [Annotation(Name = "[Caelid - Southern Aeonia Swamp Bank] Windy Crystal Tear 65150")] - CaelidSouthernAeoniaSwampBankWindyCrystalTear = 65150, + [Annotation(Name = "[Caelid - Southern Aeonia Swamp Bank] Windy Crystal Tear 65150")] + CaelidSouthernAeoniaSwampBankWindyCrystalTear = 65150, - [Annotation(Name = "[Caelid - Southern Aeonia Swamp Bank] Beast Blood 1049377010")] - CaelidSouthernAeoniaSwampBankBeastBlood = 1049377010, + [Annotation(Name = "[Caelid - Southern Aeonia Swamp Bank] Beast Blood 1049377010")] + CaelidSouthernAeoniaSwampBankBeastBlood = 1049377010, - [Annotation(Name = "[Caelid - Southern Aeonia Swamp Bank] Golden Seed 1049377020")] - CaelidSouthernAeoniaSwampBankGoldenSeed = 1049377020, + [Annotation(Name = "[Caelid - Southern Aeonia Swamp Bank] Golden Seed 1049377020")] + CaelidSouthernAeoniaSwampBankGoldenSeed = 1049377020, - [Annotation(Name = "[Caelid - Southern Aeonia Swamp Bank] Beast Blood 1049377050")] - CaelidSouthernAeoniaSwampBankBeastBlood_ = 1049377050, + [Annotation(Name = "[Caelid - Southern Aeonia Swamp Bank] Beast Blood 1049377050")] + CaelidSouthernAeoniaSwampBankBeastBlood_ = 1049377050, - [Annotation(Name = "[Caelid - Southern Aeonia Swamp Bank] Golden Rune [2] 1049377070")] - CaelidSouthernAeoniaSwampBankGoldenRune2 = 1049377070, + [Annotation(Name = "[Caelid - Southern Aeonia Swamp Bank] Golden Rune [2] 1049377070")] + CaelidSouthernAeoniaSwampBankGoldenRune2 = 1049377070, - [Annotation(Name = "[Caelid - Southern Aeonia Swamp Bank] Ash of War: Poison Moth Flight 1049377100")] - CaelidSouthernAeoniaSwampBankAshOfWarPoisonMothFlight = 1049377100, + [Annotation(Name = "[Caelid - Southern Aeonia Swamp Bank] Ash of War: Poison Moth Flight 1049377100")] + CaelidSouthernAeoniaSwampBankAshOfWarPoisonMothFlight = 1049377100, - [Annotation(Name = "[Caelid - Southern Aeonia Swamp Bank] Death's Poker 1049377110")] - CaelidSouthernAeoniaSwampBankDeathsPoker = 1049377110, + [Annotation(Name = "[Caelid - Southern Aeonia Swamp Bank] Death's Poker 1049377110")] + CaelidSouthernAeoniaSwampBankDeathsPoker = 1049377110, - [Annotation(Name = "[Caelid - Southern Aeonia Swamp Bank] Somber Smithing Stone [4] 1049377700")] - CaelidSouthernAeoniaSwampBankSomberSmithingStone4 = 1049377700, + [Annotation(Name = "[Caelid - Southern Aeonia Swamp Bank] Somber Smithing Stone [4] 1049377700")] + CaelidSouthernAeoniaSwampBankSomberSmithingStone4 = 1049377700, - [Annotation(Name = "[Caelid - East Aeonia Swamp] Eternal Darkness 1049387800")] - CaelidEastAeoniaSwampEternalDarkness = 1049387800, + [Annotation(Name = "[Caelid - East Aeonia Swamp] Eternal Darkness 1049387800")] + CaelidEastAeoniaSwampEternalDarkness = 1049387800, - [Annotation(Name = "[Caelid - East Aeonia Swamp] Somber Smithing Stone [4] 1049387010")] - CaelidEastAeoniaSwampSomberSmithingStone4 = 1049387010, + [Annotation(Name = "[Caelid - East Aeonia Swamp] Somber Smithing Stone [4] 1049387010")] + CaelidEastAeoniaSwampSomberSmithingStone4 = 1049387010, - [Annotation(Name = "[Caelid - East Aeonia Swamp] Aeonian Butterfly 1049387020")] - CaelidEastAeoniaSwampAeonianButterfly = 1049387020, + [Annotation(Name = "[Caelid - East Aeonia Swamp] Aeonian Butterfly 1049387020")] + CaelidEastAeoniaSwampAeonianButterfly = 1049387020, - [Annotation(Name = "[Caelid - East Aeonia Swamp] Smithing Stone [4] 1049387030")] - CaelidEastAeoniaSwampSmithingStone4 = 1049387030, + [Annotation(Name = "[Caelid - East Aeonia Swamp] Smithing Stone [4] 1049387030")] + CaelidEastAeoniaSwampSmithingStone4 = 1049387030, - [Annotation(Name = "[Caelid - East Aeonia Swamp] Black-Key Bolt 1049387040")] - CaelidEastAeoniaSwampBlackKeyBolt = 1049387040, + [Annotation(Name = "[Caelid - East Aeonia Swamp] Black-Key Bolt 1049387040")] + CaelidEastAeoniaSwampBlackKeyBolt = 1049387040, - [Annotation(Name = "[Caelid - East Aeonia Swamp] Sacramental Bud 1049387060")] - CaelidEastAeoniaSwampSacramentalBud = 1049387060, + [Annotation(Name = "[Caelid - East Aeonia Swamp] Sacramental Bud 1049387060")] + CaelidEastAeoniaSwampSacramentalBud = 1049387060, - [Annotation(Name = "[Caelid - East Aeonia Swamp] Rune Arc 1049387070")] - CaelidEastAeoniaSwampRuneArc = 1049387070, + [Annotation(Name = "[Caelid - East Aeonia Swamp] Rune Arc 1049387070")] + CaelidEastAeoniaSwampRuneArc = 1049387070, - [Annotation(Name = "[Caelid - East Aeonia Swamp] Golden Rune [4] 1049387080")] - CaelidEastAeoniaSwampGoldenRune4 = 1049387080, + [Annotation(Name = "[Caelid - East Aeonia Swamp] Golden Rune [4] 1049387080")] + CaelidEastAeoniaSwampGoldenRune4 = 1049387080, - [Annotation(Name = "[Caelid - East Aeonia Swamp] Golden Rune [5] 1049387110")] - CaelidEastAeoniaSwampGoldenRune5 = 1049387110, + [Annotation(Name = "[Caelid - East Aeonia Swamp] Golden Rune [5] 1049387110")] + CaelidEastAeoniaSwampGoldenRune5 = 1049387110, - [Annotation(Name = "[Caelid - East Aeonia Swamp] Glass Shard 1049387120")] - CaelidEastAeoniaSwampGlassShard = 1049387120, + [Annotation(Name = "[Caelid - East Aeonia Swamp] Glass Shard 1049387120")] + CaelidEastAeoniaSwampGlassShard = 1049387120, - [Annotation(Name = "[Caelid - West Sellia] Stonesword Key 1049397000")] - CaelidWestSelliaStoneswordKey = 1049397000, + [Annotation(Name = "[Caelid - West Sellia] Stonesword Key 1049397000")] + CaelidWestSelliaStoneswordKey = 1049397000, - [Annotation(Name = "[Caelid - West Sellia] Poisonbloom 1049397010")] - CaelidWestSelliaPoisonbloom = 1049397010, + [Annotation(Name = "[Caelid - West Sellia] Poisonbloom 1049397010")] + CaelidWestSelliaPoisonbloom = 1049397010, - [Annotation(Name = "[Caelid - West Sellia] Rune Arc 1049397020")] - CaelidWestSelliaRuneArc = 1049397020, + [Annotation(Name = "[Caelid - West Sellia] Rune Arc 1049397020")] + CaelidWestSelliaRuneArc = 1049397020, - [Annotation(Name = "[Caelid - West Sellia] Staff of Loss 1049397030")] - CaelidWestSelliaStaffOfLoss = 1049397030, + [Annotation(Name = "[Caelid - West Sellia] Staff of Loss 1049397030")] + CaelidWestSelliaStaffOfLoss = 1049397030, - [Annotation(Name = "[Caelid - West Sellia] Rotten Stray Ashes 1049397040")] - CaelidWestSelliaRottenStrayAshes = 1049397040, + [Annotation(Name = "[Caelid - West Sellia] Rotten Stray Ashes 1049397040")] + CaelidWestSelliaRottenStrayAshes = 1049397040, - [Annotation(Name = "[Caelid - West Sellia] Nox Flowing Sword 1049397800")] - CaelidWestSelliaNoxFlowingSword = 1049397800, + [Annotation(Name = "[Caelid - West Sellia] Nox Flowing Sword 1049397800")] + CaelidWestSelliaNoxFlowingSword = 1049397800, - [Annotation(Name = "[Caelid - West Sellia] Battlemage Hugues 1049397850")] - CaelidWestSelliaBattlemageHugues = 1049397850, + [Annotation(Name = "[Caelid - West Sellia] Battlemage Hugues 1049397850")] + CaelidWestSelliaBattlemageHugues = 1049397850, - [Annotation(Name = "[Caelid - West Sellia] Lusat's Glintstone Staff 1049397900")] - CaelidWestSelliaLusatsGlintstoneStaff = 1049397900, + [Annotation(Name = "[Caelid - West Sellia] Lusat's Glintstone Staff 1049397900")] + CaelidWestSelliaLusatsGlintstoneStaff = 1049397900, - [Annotation(Name = "[Caelid - West Sellia] Spelldrake Talisman +1 1049397910")] - CaelidWestSelliaSpelldrakeTalisman1 = 1049397910, + [Annotation(Name = "[Caelid - West Sellia] Spelldrake Talisman +1 1049397910")] + CaelidWestSelliaSpelldrakeTalisman1 = 1049397910, - [Annotation(Name = "[Greyoll's Dragonbarrow - Deep Siofra Well] Map: Dragonbarrow 62041")] - GreyollsDragonbarrowDeepSiofraWellMapDragonbarrow = 62041, + [Annotation(Name = "[Greyoll's Dragonbarrow - Deep Siofra Well] Map: Dragonbarrow 62041")] + GreyollsDragonbarrowDeepSiofraWellMapDragonbarrow = 62041, - [Annotation(Name = "[Caelid - Southern Aeonia Swamp Bank] Map: Caelid 62040")] - CaelidSouthernAeoniaSwampBankMapCaelid = 62040, + [Annotation(Name = "[Caelid - Southern Aeonia Swamp Bank] Map: Caelid 62040")] + CaelidSouthernAeoniaSwampBankMapCaelid = 62040, - [Annotation(Name = "[Greyoll's Dragonbarrow - Deep Siofra Well] Golden Rune [5] 1049407000")] - GreyollsDragonbarrowDeepSiofraWellGoldenRune5 = 1049407000, + [Annotation(Name = "[Greyoll's Dragonbarrow - Deep Siofra Well] Golden Rune [5] 1049407000")] + GreyollsDragonbarrowDeepSiofraWellGoldenRune5 = 1049407000, - [Annotation(Name = "[Greyoll's Dragonbarrow - Deep Siofra Well] Gravel Stone 1049407010")] - GreyollsDragonbarrowDeepSiofraWellGravelStone = 1049407010, + [Annotation(Name = "[Greyoll's Dragonbarrow - Deep Siofra Well] Gravel Stone 1049407010")] + GreyollsDragonbarrowDeepSiofraWellGravelStone = 1049407010, - [Annotation(Name = "[Greyoll's Dragonbarrow - Deep Siofra Well] Sliver of Meat 1049407020")] - GreyollsDragonbarrowDeepSiofraWellSliverOfMeat = 1049407020, + [Annotation(Name = "[Greyoll's Dragonbarrow - Deep Siofra Well] Sliver of Meat 1049407020")] + GreyollsDragonbarrowDeepSiofraWellSliverOfMeat = 1049407020, - [Annotation(Name = "[Greyoll's Dragonbarrow - Deep Siofra Well] Smithing Stone [5] 1049407040")] - GreyollsDragonbarrowDeepSiofraWellSmithingStone5 = 1049407040, + [Annotation(Name = "[Greyoll's Dragonbarrow - Deep Siofra Well] Smithing Stone [5] 1049407040")] + GreyollsDragonbarrowDeepSiofraWellSmithingStone5 = 1049407040, - [Annotation(Name = "[Greyoll's Dragonbarrow - Divine Tower of Caelid Entrance] Arteria Leaf 1049417040")] - GreyollsDragonbarrowDivineTowerOfCaelidEntranceArteriaLeaf = 1049417040, + [Annotation(Name = "[Greyoll's Dragonbarrow - Divine Tower of Caelid Entrance] Arteria Leaf 1049417040")] + GreyollsDragonbarrowDivineTowerOfCaelidEntranceArteriaLeaf = 1049417040, - [Annotation(Name = "[Greyoll's Dragonbarrow - Divine Tower of Caelid Entrance] Dragonwound Grease 1049417070")] - GreyollsDragonbarrowDivineTowerOfCaelidEntranceDragonwoundGrease = 1049417070, + [Annotation(Name = "[Greyoll's Dragonbarrow - Divine Tower of Caelid Entrance] Dragonwound Grease 1049417070")] + GreyollsDragonbarrowDivineTowerOfCaelidEntranceDragonwoundGrease = 1049417070, - [Annotation(Name = "[Greyoll's Dragonbarrow - Divine Tower of Caelid Entrance] Rune Arc 1049417080")] - GreyollsDragonbarrowDivineTowerOfCaelidEntranceRuneArc = 1049417080, + [Annotation(Name = "[Greyoll's Dragonbarrow - Divine Tower of Caelid Entrance] Rune Arc 1049417080")] + GreyollsDragonbarrowDivineTowerOfCaelidEntranceRuneArc = 1049417080, - [Annotation(Name = "[Greyoll's Dragonbarrow - Divine Tower of Caelid Entrance] Somber Smithing Stone [9] 1049417090")] - GreyollsDragonbarrowDivineTowerOfCaelidEntranceSomberSmithingStone9 = 1049417090, + [Annotation(Name = "[Greyoll's Dragonbarrow - Divine Tower of Caelid Entrance] Somber Smithing Stone [9] 1049417090")] + GreyollsDragonbarrowDivineTowerOfCaelidEntranceSomberSmithingStone9 = 1049417090, - [Annotation(Name = "[Greyoll's Dragonbarrow - Divine Tower of Caelid Entrance] Numen's Rune 1049417100")] - GreyollsDragonbarrowDivineTowerOfCaelidEntranceNumensRune = 1049417100, + [Annotation(Name = "[Greyoll's Dragonbarrow - Divine Tower of Caelid Entrance] Numen's Rune 1049417100")] + GreyollsDragonbarrowDivineTowerOfCaelidEntranceNumensRune = 1049417100, - [Annotation(Name = "[Caelid - East Sellia] Night Comet 1050397900")] - CaelidEastSelliaNightComet = 1050397900, + [Annotation(Name = "[Caelid - East Sellia] Night Comet 1050397900")] + CaelidEastSelliaNightComet = 1050397900, - [Annotation(Name = "[Caelid - East Sellia] Imbued Sword Key 1050397910")] - CaelidEastSelliaImbuedSwordKey = 1050397910, + [Annotation(Name = "[Caelid - East Sellia] Imbued Sword Key 1050397910")] + CaelidEastSelliaImbuedSwordKey = 1050397910, - [Annotation(Name = "[Caelid - Impassable Greatbridge] Mushroom 1050367000")] - CaelidImpassableGreatbridgeMushroom = 1050367000, + [Annotation(Name = "[Caelid - Impassable Greatbridge] Mushroom 1050367000")] + CaelidImpassableGreatbridgeMushroom = 1050367000, - [Annotation(Name = "[Caelid - Impassable Greatbridge] Arrow's Sting Talisman 1050367900")] - CaelidImpassableGreatbridgeArrowsStingTalisman = 1050367900, + [Annotation(Name = "[Caelid - Impassable Greatbridge] Arrow's Sting Talisman 1050367900")] + CaelidImpassableGreatbridgeArrowsStingTalisman = 1050367900, - [Annotation(Name = "[Caelid - Gowry's Shack] Golden Rune [5] 1050387000")] - CaelidGowrysShackGoldenRune5 = 1050387000, + [Annotation(Name = "[Caelid - Gowry's Shack] Golden Rune [5] 1050387000")] + CaelidGowrysShackGoldenRune5 = 1050387000, - [Annotation(Name = "[Caelid - Gowry's Shack] Drawstring Poison Grease 1050387010")] - CaelidGowrysShackDrawstringPoisonGrease = 1050387010, + [Annotation(Name = "[Caelid - Gowry's Shack] Drawstring Poison Grease 1050387010")] + CaelidGowrysShackDrawstringPoisonGrease = 1050387010, - [Annotation(Name = "[Caelid - Gowry's Shack] Sacred Tear 1050387020")] - CaelidGowrysShackSacredTear = 1050387020, + [Annotation(Name = "[Caelid - Gowry's Shack] Sacred Tear 1050387020")] + CaelidGowrysShackSacredTear = 1050387020, - [Annotation(Name = "[Caelid - East Sellia] Poison Grease 1050397000")] - CaelidEastSelliaPoisonGrease = 1050397000, + [Annotation(Name = "[Caelid - East Sellia] Poison Grease 1050397000")] + CaelidEastSelliaPoisonGrease = 1050397000, - [Annotation(Name = "[Caelid - East Sellia] Toxic Mushroom 1050397010")] - CaelidEastSelliaToxicMushroom = 1050397010, + [Annotation(Name = "[Caelid - East Sellia] Toxic Mushroom 1050397010")] + CaelidEastSelliaToxicMushroom = 1050397010, - [Annotation(Name = "[Caelid - East Sellia] Smithing Stone [7] 1050397020")] - CaelidEastSelliaSmithingStone7 = 1050397020, + [Annotation(Name = "[Caelid - East Sellia] Smithing Stone [7] 1050397020")] + CaelidEastSelliaSmithingStone7 = 1050397020, - [Annotation(Name = "[Caelid - East Sellia] Smithing Stone [7] 1050397030")] - CaelidEastSelliaSmithingStone7_ = 1050397030, + [Annotation(Name = "[Caelid - East Sellia] Smithing Stone [7] 1050397030")] + CaelidEastSelliaSmithingStone7_ = 1050397030, - [Annotation(Name = "[Caelid - East Sellia] Stonesword Key 1050397040")] - CaelidEastSelliaStoneswordKey = 1050397040, + [Annotation(Name = "[Caelid - East Sellia] Stonesword Key 1050397040")] + CaelidEastSelliaStoneswordKey = 1050397040, - [Annotation(Name = "[Caelid - East Sellia] Smithing Stone [8] 1050397050")] - CaelidEastSelliaSmithingStone8 = 1050397050, + [Annotation(Name = "[Caelid - East Sellia] Smithing Stone [8] 1050397050")] + CaelidEastSelliaSmithingStone8 = 1050397050, - [Annotation(Name = "[Caelid - East Sellia] Starlight Shards 1050397060")] - CaelidEastSelliaStarlightShards = 1050397060, + [Annotation(Name = "[Caelid - East Sellia] Starlight Shards 1050397060")] + CaelidEastSelliaStarlightShards = 1050397060, - [Annotation(Name = "[Caelid - East Sellia] Cerulean Tear Scarab 1050397070")] - CaelidEastSelliaCeruleanTearScarab = 1050397070, + [Annotation(Name = "[Caelid - East Sellia] Cerulean Tear Scarab 1050397070")] + CaelidEastSelliaCeruleanTearScarab = 1050397070, - [Annotation(Name = "[Caelid - East Sellia] Beast Blood 1050397090")] - CaelidEastSelliaBeastBlood = 1050397090, + [Annotation(Name = "[Caelid - East Sellia] Beast Blood 1050397090")] + CaelidEastSelliaBeastBlood = 1050397090, - [Annotation(Name = "[Caelid - East Sellia] Golden Seed 1050397100")] - CaelidEastSelliaGoldenSeed = 1050397100, + [Annotation(Name = "[Caelid - East Sellia] Golden Seed 1050397100")] + CaelidEastSelliaGoldenSeed = 1050397100, - [Annotation(Name = "[Greyoll's Dragonbarrow - Dragonbarrow Fork] Dragon Heart 1050407800")] - GreyollsDragonbarrowDragonbarrowForkDragonHeart = 1050407800, + [Annotation(Name = "[Greyoll's Dragonbarrow - Dragonbarrow Fork] Dragon Heart 1050407800")] + GreyollsDragonbarrowDragonbarrowForkDragonHeart = 1050407800, - [Annotation(Name = "[Caelid - Redmane Castle South Cliffside] Smoldering Butterfly 1051357000")] - CaelidRedmaneCastleSouthCliffsideSmolderingButterfly = 1051357000, + [Annotation(Name = "[Caelid - Redmane Castle South Cliffside] Smoldering Butterfly 1051357000")] + CaelidRedmaneCastleSouthCliffsideSmolderingButterfly = 1051357000, - [Annotation(Name = "[Caelid - Redmane Castle] Golden Rune [6] 1051367000")] - CaelidRedmaneCastleGoldenRune6 = 1051367000, + [Annotation(Name = "[Caelid - Redmane Castle] Golden Rune [6] 1051367000")] + CaelidRedmaneCastleGoldenRune6 = 1051367000, - [Annotation(Name = "[Caelid - Redmane Castle] Armorer's Cookbook [4] 67260")] - CaelidRedmaneCastleArmorersCookbook4 = 67260, + [Annotation(Name = "[Caelid - Redmane Castle] Armorer's Cookbook [4] 67260")] + CaelidRedmaneCastleArmorersCookbook4 = 67260, - [Annotation(Name = "[Caelid - Redmane Castle] Smithing Stone [6] 1051367020")] - CaelidRedmaneCastleSmithingStone6 = 1051367020, + [Annotation(Name = "[Caelid - Redmane Castle] Smithing Stone [6] 1051367020")] + CaelidRedmaneCastleSmithingStone6 = 1051367020, - [Annotation(Name = "[Caelid - Redmane Castle] Smithing Stone [3] 1051367030")] - CaelidRedmaneCastleSmithingStone3 = 1051367030, + [Annotation(Name = "[Caelid - Redmane Castle] Smithing Stone [3] 1051367030")] + CaelidRedmaneCastleSmithingStone3 = 1051367030, - [Annotation(Name = "[Caelid - Redmane Castle] Smithing Stone [4] 1051367040")] - CaelidRedmaneCastleSmithingStone4 = 1051367040, + [Annotation(Name = "[Caelid - Redmane Castle] Smithing Stone [4] 1051367040")] + CaelidRedmaneCastleSmithingStone4 = 1051367040, - [Annotation(Name = "[Caelid - Redmane Castle] Smithing Stone [3] 1051367050")] - CaelidRedmaneCastleSmithingStone3_ = 1051367050, + [Annotation(Name = "[Caelid - Redmane Castle] Smithing Stone [3] 1051367050")] + CaelidRedmaneCastleSmithingStone3_ = 1051367050, - [Annotation(Name = "[Caelid - Redmane Castle] Smithing Stone [5] 1051367060")] - CaelidRedmaneCastleSmithingStone5 = 1051367060, + [Annotation(Name = "[Caelid - Redmane Castle] Smithing Stone [5] 1051367060")] + CaelidRedmaneCastleSmithingStone5 = 1051367060, - [Annotation(Name = "[Caelid - Redmane Castle] Red-Hot Whetblade 65640")] - CaelidRedmaneCastleRedHotWhetblade = 65640, + [Annotation(Name = "[Caelid - Redmane Castle] Red-Hot Whetblade 65640")] + CaelidRedmaneCastleRedHotWhetblade = 65640, - [Annotation(Name = "[Caelid - Redmane Castle] Smithing Stone [5] 1051367080")] - CaelidRedmaneCastleSmithingStone5_ = 1051367080, + [Annotation(Name = "[Caelid - Redmane Castle] Smithing Stone [5] 1051367080")] + CaelidRedmaneCastleSmithingStone5_ = 1051367080, - [Annotation(Name = "[Caelid - Redmane Castle] Smithing Stone [4] 1051367090")] - CaelidRedmaneCastleSmithingStone4_ = 1051367090, + [Annotation(Name = "[Caelid - Redmane Castle] Smithing Stone [4] 1051367090")] + CaelidRedmaneCastleSmithingStone4_ = 1051367090, - [Annotation(Name = "[Caelid - Redmane Castle] Smithing Stone [6] 1051367100")] - CaelidRedmaneCastleSmithingStone6_ = 1051367100, + [Annotation(Name = "[Caelid - Redmane Castle] Smithing Stone [6] 1051367100")] + CaelidRedmaneCastleSmithingStone6_ = 1051367100, - [Annotation(Name = "[Caelid - Redmane Castle] Somber Smithing Stone [5] 1051367110")] - CaelidRedmaneCastleSomberSmithingStone5 = 1051367110, + [Annotation(Name = "[Caelid - Redmane Castle] Somber Smithing Stone [5] 1051367110")] + CaelidRedmaneCastleSomberSmithingStone5 = 1051367110, - [Annotation(Name = "[Caelid - Redmane Castle] Armorer's Cookbook [5] 67310")] - CaelidRedmaneCastleArmorersCookbook5 = 67310, + [Annotation(Name = "[Caelid - Redmane Castle] Armorer's Cookbook [5] 67310")] + CaelidRedmaneCastleArmorersCookbook5 = 67310, - [Annotation(Name = "[Caelid - Redmane Castle] Flamberge 1051367130")] - CaelidRedmaneCastleFlamberge = 1051367130, + [Annotation(Name = "[Caelid - Redmane Castle] Flamberge 1051367130")] + CaelidRedmaneCastleFlamberge = 1051367130, - [Annotation(Name = "[Caelid - Redmane Castle] Somber Smithing Stone [4] 1051367700")] - CaelidRedmaneCastleSomberSmithingStone4 = 1051367700, + [Annotation(Name = "[Caelid - Redmane Castle] Somber Smithing Stone [4] 1051367700")] + CaelidRedmaneCastleSomberSmithingStone4 = 1051367700, - [Annotation(Name = "[Caelid - Redmane Castle] Somber Smithing Stone [4] 1051367800")] - CaelidRedmaneCastleSomberSmithingStone4_ = 1051367800, + [Annotation(Name = "[Caelid - Redmane Castle] Somber Smithing Stone [4] 1051367800")] + CaelidRedmaneCastleSomberSmithingStone4_ = 1051367800, - [Annotation(Name = "[Caelid - Redmane Castle] Smithing Stone [6] 1051367910")] - CaelidRedmaneCastleSmithingStone6__ = 1051367910, + [Annotation(Name = "[Caelid - Redmane Castle] Smithing Stone [6] 1051367910")] + CaelidRedmaneCastleSmithingStone6__ = 1051367910, - [Annotation(Name = "[Caelid - West Radahn Arena] Radahn's Spear 1051387000")] - CaelidWestRadahnArenaRadahnsSpear = 1051387000, + [Annotation(Name = "[Caelid - West Radahn Arena] Radahn's Spear 1051387000")] + CaelidWestRadahnArenaRadahnsSpear = 1051387000, - [Annotation(Name = "[Caelid - West Radahn Arena] Radahn's Spear 1051387010")] - CaelidWestRadahnArenaRadahnsSpear_ = 1051387010, + [Annotation(Name = "[Caelid - West Radahn Arena] Radahn's Spear 1051387010")] + CaelidWestRadahnArenaRadahnsSpear_ = 1051387010, - [Annotation(Name = "[Caelid - West Radahn Arena] Radahn's Spear 1051387020")] - CaelidWestRadahnArenaRadahnsSpear__ = 1051387020, + [Annotation(Name = "[Caelid - West Radahn Arena] Radahn's Spear 1051387020")] + CaelidWestRadahnArenaRadahnsSpear__ = 1051387020, - [Annotation(Name = "[Greyoll's Dragonbarrow - Fort Faroth] Golden Rune [12] 1051397040")] - GreyollsDragonbarrowFortFarothGoldenRune12 = 1051397040, + [Annotation(Name = "[Greyoll's Dragonbarrow - Fort Faroth] Golden Rune [12] 1051397040")] + GreyollsDragonbarrowFortFarothGoldenRune12 = 1051397040, - [Annotation(Name = "[Greyoll's Dragonbarrow - Fort Faroth] Neutralizing Boluses 1051397050")] - GreyollsDragonbarrowFortFarothNeutralizingBoluses = 1051397050, + [Annotation(Name = "[Greyoll's Dragonbarrow - Fort Faroth] Neutralizing Boluses 1051397050")] + GreyollsDragonbarrowFortFarothNeutralizingBoluses = 1051397050, - [Annotation(Name = "[Greyoll's Dragonbarrow - Fort Faroth] Radagon's Soreseal 1051397060")] - GreyollsDragonbarrowFortFarothRadagonsSoreseal = 1051397060, + [Annotation(Name = "[Greyoll's Dragonbarrow - Fort Faroth] Radagon's Soreseal 1051397060")] + GreyollsDragonbarrowFortFarothRadagonsSoreseal = 1051397060, - [Annotation(Name = "[Greyoll's Dragonbarrow - Fort Faroth] Dectus Medallion (Right) 1051397900")] - GreyollsDragonbarrowFortFarothDectusMedallionRight = 1051397900, + [Annotation(Name = "[Greyoll's Dragonbarrow - Fort Faroth] Dectus Medallion (Right) 1051397900")] + GreyollsDragonbarrowFortFarothDectusMedallionRight = 1051397900, - [Annotation(Name = "[Greyoll's Dragonbarrow - Minor Erdtree] Rune Arc 1051407040")] - GreyollsDragonbarrowMinorErdtreeRuneArc = 1051407040, + [Annotation(Name = "[Greyoll's Dragonbarrow - Minor Erdtree] Rune Arc 1051407040")] + GreyollsDragonbarrowMinorErdtreeRuneArc = 1051407040, - [Annotation(Name = "[Greyoll's Dragonbarrow - Bestial Sanctum] Soft Cotton 1051417000")] - GreyollsDragonbarrowBestialSanctumSoftCotton = 1051417000, + [Annotation(Name = "[Greyoll's Dragonbarrow - Bestial Sanctum] Soft Cotton 1051417000")] + GreyollsDragonbarrowBestialSanctumSoftCotton = 1051417000, - [Annotation(Name = "[Greyoll's Dragonbarrow - Bestial Sanctum] Cinquedea 1051417010")] - GreyollsDragonbarrowBestialSanctumCinquedea = 1051417010, + [Annotation(Name = "[Greyoll's Dragonbarrow - Bestial Sanctum] Cinquedea 1051417010")] + GreyollsDragonbarrowBestialSanctumCinquedea = 1051417010, - [Annotation(Name = "[Greyoll's Dragonbarrow - Bestial Sanctum] Golden Seed 1051437020")] - GreyollsDragonbarrowBestialSanctumGoldenSeed = 1051437020, + [Annotation(Name = "[Greyoll's Dragonbarrow - Bestial Sanctum] Golden Seed 1051437020")] + GreyollsDragonbarrowBestialSanctumGoldenSeed = 1051437020, - [Annotation(Name = "[Greyoll's Dragonbarrow - Bestial Sanctum] Dragoncrest Shield Talisman 1051417030")] - GreyollsDragonbarrowBestialSanctumDragoncrestShieldTalisman = 1051417030, + [Annotation(Name = "[Greyoll's Dragonbarrow - Bestial Sanctum] Dragoncrest Shield Talisman 1051417030")] + GreyollsDragonbarrowBestialSanctumDragoncrestShieldTalisman = 1051417030, - [Annotation(Name = "[Greyoll's Dragonbarrow - Southeast Farum Greatbridge] Golden Rune [8] 1052417000")] - GreyollsDragonbarrowSoutheastFarumGreatbridgeGoldenRune8 = 1052417000, + [Annotation(Name = "[Greyoll's Dragonbarrow - Southeast Farum Greatbridge] Golden Rune [8] 1052417000")] + GreyollsDragonbarrowSoutheastFarumGreatbridgeGoldenRune8 = 1052417000, - [Annotation(Name = "[Greyoll's Dragonbarrow - Southeast Farum Greatbridge] Golden Rune [6] 1052417010")] - GreyollsDragonbarrowSoutheastFarumGreatbridgeGoldenRune6 = 1052417010, + [Annotation(Name = "[Greyoll's Dragonbarrow - Southeast Farum Greatbridge] Golden Rune [6] 1052417010")] + GreyollsDragonbarrowSoutheastFarumGreatbridgeGoldenRune6 = 1052417010, - [Annotation(Name = "[Greyoll's Dragonbarrow - Southeast Farum Greatbridge] Golden Rune [3] 1052417020")] - GreyollsDragonbarrowSoutheastFarumGreatbridgeGoldenRune3 = 1052417020, + [Annotation(Name = "[Greyoll's Dragonbarrow - Southeast Farum Greatbridge] Golden Rune [3] 1052417020")] + GreyollsDragonbarrowSoutheastFarumGreatbridgeGoldenRune3 = 1052417020, - [Annotation(Name = "[Greyoll's Dragonbarrow - Southeast Farum Greatbridge] Golden Rune [1] 1052417030")] - GreyollsDragonbarrowSoutheastFarumGreatbridgeGoldenRune1 = 1052417030, + [Annotation(Name = "[Greyoll's Dragonbarrow - Southeast Farum Greatbridge] Golden Rune [1] 1052417030")] + GreyollsDragonbarrowSoutheastFarumGreatbridgeGoldenRune1 = 1052417030, - [Annotation(Name = "[Greyoll's Dragonbarrow - Southeast Farum Greatbridge] Ash of War: Bloodhound's Step 1052417100")] - GreyollsDragonbarrowSoutheastFarumGreatbridgeAshOfWarBloodhoundsStep = 1052417100, + [Annotation(Name = "[Greyoll's Dragonbarrow - Southeast Farum Greatbridge] Ash of War: Bloodhound's Step 1052417100")] + GreyollsDragonbarrowSoutheastFarumGreatbridgeAshOfWarBloodhoundsStep = 1052417100, - [Annotation(Name = "[Greyoll's Dragonbarrow - Southeast Farum Greatbridge] Memory Stone 60460")] - GreyollsDragonbarrowSoutheastFarumGreatbridgeMemoryStone = 60460, + [Annotation(Name = "[Greyoll's Dragonbarrow - Southeast Farum Greatbridge] Memory Stone 60460")] + GreyollsDragonbarrowSoutheastFarumGreatbridgeMemoryStone = 60460, - [Annotation(Name = "[Greyoll's Dragonbarrow - Northeast Cliffside] Starlight Shards 1052437000")] - GreyollsDragonbarrowNortheastCliffsideStarlightShards = 1052437000, + [Annotation(Name = "[Greyoll's Dragonbarrow - Northeast Cliffside] Starlight Shards 1052437000")] + GreyollsDragonbarrowNortheastCliffsideStarlightShards = 1052437000, - [Annotation(Name = "[Liurnia of the Lakes - Main Academy Gate] Golden Seed 1035467100")] - LiurniaOfTheLakesMainAcademyGateGoldenSeed = 1035467100, + [Annotation(Name = "[Liurnia of the Lakes - Main Academy Gate] Golden Seed 1035467100")] + LiurniaOfTheLakesMainAcademyGateGoldenSeed = 1035467100, - [Annotation(Name = "[Liurnia of the Lakes - Gate Town Southwest] Golden Seed 1036447300")] - LiurniaOfTheLakesGateTownSouthwestGoldenSeed = 1036447300, + [Annotation(Name = "[Liurnia of the Lakes - Gate Town Southwest] Golden Seed 1036447300")] + LiurniaOfTheLakesGateTownSouthwestGoldenSeed = 1036447300, - [Annotation(Name = "[Liurnia of the Lakes - Church of Irith] Sacred Tear 1039397000")] - LiurniaOfTheLakesChurchOfIrithSacredTear = 1039397000, + [Annotation(Name = "[Liurnia of the Lakes - Church of Irith] Sacred Tear 1039397000")] + LiurniaOfTheLakesChurchOfIrithSacredTear = 1039397000, - [Annotation(Name = "[Liurnia of the Lakes - Southeast Ravine] Sacred Tear 1036497000")] - LiurniaOfTheLakesSoutheastRavineSacredTear = 1036497000, + [Annotation(Name = "[Liurnia of the Lakes - Southeast Ravine] Sacred Tear 1036497000")] + LiurniaOfTheLakesSoutheastRavineSacredTear = 1036497000, - [Annotation(Name = "[Bellum Highway - Church of Inhibition] Sacred Tear 1037497100")] - BellumHighwayChurchOfInhibitionSacredTear = 1037497100, + [Annotation(Name = "[Bellum Highway - Church of Inhibition] Sacred Tear 1037497100")] + BellumHighwayChurchOfInhibitionSacredTear = 1037497100, - [Annotation(Name = "[Liurnia of the Lakes - West of Scenic Isle] Dexterity-knot Crystal Tear 65220")] - LiurniaOfTheLakesWestOfScenicIsleDexterityknotCrystalTear = 65220, + [Annotation(Name = "[Liurnia of the Lakes - West of Scenic Isle] Dexterity-knot Crystal Tear 65220")] + LiurniaOfTheLakesWestOfScenicIsleDexterityknotCrystalTear = 65220, - [Annotation(Name = "[Liurnia of the Lakes - South of Caria Manor] Intelligence-knot Crystal Tear 65230")] - LiurniaOfTheLakesSouthOfCariaManorIntelligenceknotCrystalTear = 65230, + [Annotation(Name = "[Liurnia of the Lakes - South of Caria Manor] Intelligence-knot Crystal Tear 65230")] + LiurniaOfTheLakesSouthOfCariaManorIntelligenceknotCrystalTear = 65230, - [Annotation(Name = "[Liurnia of the Lakes - Gate Town Northwest] Ancient Death Rancor 1036457400")] - LiurniaOfTheLakesGateTownNorthwestAncientDeathRancor = 1036457400, + [Annotation(Name = "[Liurnia of the Lakes - Gate Town Northwest] Ancient Death Rancor 1036457400")] + LiurniaOfTheLakesGateTownNorthwestAncientDeathRancor = 1036457400, - [Annotation(Name = "[Bellum Highway - East Raya Lucaria Gate] Ash of War: Giant Hunt 1036487400")] - BellumHighwayEastRayaLucariaGateAshOfWarGiantHunt = 1036487400, + [Annotation(Name = "[Bellum Highway - East Raya Lucaria Gate] Ash of War: Giant Hunt 1036487400")] + BellumHighwayEastRayaLucariaGateAshOfWarGiantHunt = 1036487400, - [Annotation(Name = "[Liurnia of the Lakes - Laskyar Ruins] Red-Feathered Branchsword 1037427400")] - LiurniaOfTheLakesLaskyarRuinsRedFeatheredBranchsword = 1037427400, + [Annotation(Name = "[Liurnia of the Lakes - Laskyar Ruins] Red-Feathered Branchsword 1037427400")] + LiurniaOfTheLakesLaskyarRuinsRedFeatheredBranchsword = 1037427400, - [Annotation(Name = "[Liurnia of the Lakes - Church of Vows] Meat Peddler's Bell Bearing 1037467400")] - LiurniaOfTheLakesChurchOfVowsMeatPeddlersBellBearing = 1037467400, + [Annotation(Name = "[Liurnia of the Lakes - Church of Vows] Meat Peddler's Bell Bearing 1037467400")] + LiurniaOfTheLakesChurchOfVowsMeatPeddlersBellBearing = 1037467400, - [Annotation(Name = "[Liurnia of the Lakes - Liurnia Highway Far North] Ash of War: Ice Spear 1039437400")] - LiurniaOfTheLakesLiurniaHighwayFarNorthAshOfWarIceSpear = 1039437400, + [Annotation(Name = "[Liurnia of the Lakes - Liurnia Highway Far North] Ash of War: Ice Spear 1039437400")] + LiurniaOfTheLakesLiurniaHighwayFarNorthAshOfWarIceSpear = 1039437400, - [Annotation(Name = "[Liurnia of the Lakes - North of Gate Town Bridge] Dragon Cult Prayerbook 1038447100")] - LiurniaOfTheLakesNorthOfGateTownBridgeDragonCultPrayerbook = 1038447100, + [Annotation(Name = "[Liurnia of the Lakes - North of Gate Town Bridge] Dragon Cult Prayerbook 1038447100")] + LiurniaOfTheLakesNorthOfGateTownBridgeDragonCultPrayerbook = 1038447100, - [Annotation(Name = "[Moonlight Altar - Cathedral of Manus Celes] Starlight Shards 1035427200")] - MoonlightAltarCathedralOfManusCelesStarlightShards = 1035427200, + [Annotation(Name = "[Moonlight Altar - Cathedral of Manus Celes] Starlight Shards 1035427200")] + MoonlightAltarCathedralOfManusCelesStarlightShards = 1035427200, - [Annotation(Name = "[Liurnia of the Lakes - Liurnia Highway Far North] Starlight Shards 1039437100")] - LiurniaOfTheLakesLiurniaHighwayFarNorthStarlightShards = 1039437100, + [Annotation(Name = "[Liurnia of the Lakes - Liurnia Highway Far North] Starlight Shards 1039437100")] + LiurniaOfTheLakesLiurniaHighwayFarNorthStarlightShards = 1039437100, - [Annotation(Name = "[Liurnia of the Lakes - Behind Caria Manor] Golden Rune [3] 1036507010")] - LiurniaOfTheLakesBehindCariaManorGoldenRune3 = 1036507010, + [Annotation(Name = "[Liurnia of the Lakes - Behind Caria Manor] Golden Rune [3] 1036507010")] + LiurniaOfTheLakesBehindCariaManorGoldenRune3 = 1036507010, - [Annotation(Name = "[Liurnia of the Lakes - Behind Caria Manor] Thawfrost Boluses 1036507020")] - LiurniaOfTheLakesBehindCariaManorThawfrostBoluses = 1036507020, + [Annotation(Name = "[Liurnia of the Lakes - Behind Caria Manor] Thawfrost Boluses 1036507020")] + LiurniaOfTheLakesBehindCariaManorThawfrostBoluses = 1036507020, - [Annotation(Name = "[Liurnia of the Lakes - Behind Caria Manor] Albinauric Ashes 1036507030")] - LiurniaOfTheLakesBehindCariaManorAlbinauricAshes = 1036507030, + [Annotation(Name = "[Liurnia of the Lakes - Behind Caria Manor] Albinauric Ashes 1036507030")] + LiurniaOfTheLakesBehindCariaManorAlbinauricAshes = 1036507030, - [Annotation(Name = "[Liurnia of the Lakes - Lake-Facing Cliffs] Academy Scroll 1039407000")] - LiurniaOfTheLakesLakeFacingCliffsAcademyScroll = 1039407000, + [Annotation(Name = "[Liurnia of the Lakes - Lake-Facing Cliffs] Academy Scroll 1039407000")] + LiurniaOfTheLakesLakeFacingCliffsAcademyScroll = 1039407000, - [Annotation(Name = "[Liurnia of the Lakes - West of Church of Irith] Warming Stone 1038397000")] - LiurniaOfTheLakesWestOfChurchOfIrithWarmingStone = 1038397000, + [Annotation(Name = "[Liurnia of the Lakes - West of Church of Irith] Warming Stone 1038397000")] + LiurniaOfTheLakesWestOfChurchOfIrithWarmingStone = 1038397000, - [Annotation(Name = "[Liurnia of the Lakes - Liurnia Lake Shore] Smoldering Butterfly 1038407000")] - LiurniaOfTheLakesLiurniaLakeShoreSmolderingButterfly = 1038407000, + [Annotation(Name = "[Liurnia of the Lakes - Liurnia Lake Shore] Smoldering Butterfly 1038407000")] + LiurniaOfTheLakesLiurniaLakeShoreSmolderingButterfly = 1038407000, - [Annotation(Name = "[Liurnia of the Lakes - Liurnia Lake Shore] Glintstone Craftsman's Cookbook [1] 67410")] - LiurniaOfTheLakesLiurniaLakeShoreGlintstoneCraftsmansCookbook1 = 67410, + [Annotation(Name = "[Liurnia of the Lakes - Liurnia Lake Shore] Glintstone Craftsman's Cookbook [1] 67410")] + LiurniaOfTheLakesLiurniaLakeShoreGlintstoneCraftsmansCookbook1 = 67410, - [Annotation(Name = "[Liurnia of the Lakes - Purified Ruins] Golden Rune [3] 1039417000")] - LiurniaOfTheLakesPurifiedRuinsGoldenRune3 = 1039417000, + [Annotation(Name = "[Liurnia of the Lakes - Purified Ruins] Golden Rune [3] 1039417000")] + LiurniaOfTheLakesPurifiedRuinsGoldenRune3 = 1039417000, - [Annotation(Name = "[Liurnia of the Lakes - Purified Ruins] Cuckoo Glintstone 1039417010")] - LiurniaOfTheLakesPurifiedRuinsCuckooGlintstone = 1039417010, + [Annotation(Name = "[Liurnia of the Lakes - Purified Ruins] Cuckoo Glintstone 1039417010")] + LiurniaOfTheLakesPurifiedRuinsCuckooGlintstone = 1039417010, - [Annotation(Name = "[Liurnia of the Lakes - Purified Ruins] Somber Smithing Stone [2] 1039417020")] - LiurniaOfTheLakesPurifiedRuinsSomberSmithingStone2 = 1039417020, + [Annotation(Name = "[Liurnia of the Lakes - Purified Ruins] Somber Smithing Stone [2] 1039417020")] + LiurniaOfTheLakesPurifiedRuinsSomberSmithingStone2 = 1039417020, - [Annotation(Name = "[Liurnia of the Lakes - Purified Ruins] Stormhawk Feather 1039417030")] - LiurniaOfTheLakesPurifiedRuinsStormhawkFeather = 1039417030, + [Annotation(Name = "[Liurnia of the Lakes - Purified Ruins] Stormhawk Feather 1039417030")] + LiurniaOfTheLakesPurifiedRuinsStormhawkFeather = 1039417030, - [Annotation(Name = "[Liurnia of the Lakes - Purified Ruins] Two Fingers Heirloom 1039417100")] - LiurniaOfTheLakesPurifiedRuinsTwoFingersHeirloom = 1039417100, + [Annotation(Name = "[Liurnia of the Lakes - Purified Ruins] Two Fingers Heirloom 1039417100")] + LiurniaOfTheLakesPurifiedRuinsTwoFingersHeirloom = 1039417100, - [Annotation(Name = "[Liurnia of the Lakes - Purified Ruins] Shabriri Grape 1039417200")] - LiurniaOfTheLakesPurifiedRuinsShabririGrape = 1039417200, + [Annotation(Name = "[Liurnia of the Lakes - Purified Ruins] Shabriri Grape 1039417200")] + LiurniaOfTheLakesPurifiedRuinsShabririGrape = 1039417200, - [Annotation(Name = "[Liurnia of the Lakes - Purified Ruins] Golden Rune [6] 1039417300")] - LiurniaOfTheLakesPurifiedRuinsGoldenRune6 = 1039417300, + [Annotation(Name = "[Liurnia of the Lakes - Purified Ruins] Golden Rune [6] 1039417300")] + LiurniaOfTheLakesPurifiedRuinsGoldenRune6 = 1039417300, - [Annotation(Name = "[Liurnia of the Lakes - Purified Ruins] Golden Rune [6] 1039417310")] - LiurniaOfTheLakesPurifiedRuinsGoldenRune6_ = 1039417310, + [Annotation(Name = "[Liurnia of the Lakes - Purified Ruins] Golden Rune [6] 1039417310")] + LiurniaOfTheLakesPurifiedRuinsGoldenRune6_ = 1039417310, - [Annotation(Name = "[Liurnia of the Lakes - Liurnia Highway North] Mushroom 1039427000")] - LiurniaOfTheLakesLiurniaHighwayNorthMushroom = 1039427000, + [Annotation(Name = "[Liurnia of the Lakes - Liurnia Highway North] Mushroom 1039427000")] + LiurniaOfTheLakesLiurniaHighwayNorthMushroom = 1039427000, - [Annotation(Name = "[Liurnia of the Lakes - Liurnia Highway North] Crystal Dart 1039427010")] - LiurniaOfTheLakesLiurniaHighwayNorthCrystalDart = 1039427010, + [Annotation(Name = "[Liurnia of the Lakes - Liurnia Highway North] Crystal Dart 1039427010")] + LiurniaOfTheLakesLiurniaHighwayNorthCrystalDart = 1039427010, - [Annotation(Name = "[Liurnia of the Lakes - Liurnia Highway North] Golden Rune [6] 1039427020")] - LiurniaOfTheLakesLiurniaHighwayNorthGoldenRune6 = 1039427020, + [Annotation(Name = "[Liurnia of the Lakes - Liurnia Highway North] Golden Rune [6] 1039427020")] + LiurniaOfTheLakesLiurniaHighwayNorthGoldenRune6 = 1039427020, - [Annotation(Name = "[Liurnia of the Lakes - Liurnia Highway North] Golden Rune [3] 1039427030")] - LiurniaOfTheLakesLiurniaHighwayNorthGoldenRune3 = 1039427030, + [Annotation(Name = "[Liurnia of the Lakes - Liurnia Highway North] Golden Rune [3] 1039427030")] + LiurniaOfTheLakesLiurniaHighwayNorthGoldenRune3 = 1039427030, - [Annotation(Name = "[Liurnia of the Lakes - Liurnia Highway North] Beast Blood 1039427040")] - LiurniaOfTheLakesLiurniaHighwayNorthBeastBlood = 1039427040, + [Annotation(Name = "[Liurnia of the Lakes - Liurnia Highway North] Beast Blood 1039427040")] + LiurniaOfTheLakesLiurniaHighwayNorthBeastBlood = 1039427040, - [Annotation(Name = "[Liurnia of the Lakes - Liurnia Highway North] Lucerne 1039427050")] - LiurniaOfTheLakesLiurniaHighwayNorthLucerne = 1039427050, + [Annotation(Name = "[Liurnia of the Lakes - Liurnia Highway North] Lucerne 1039427050")] + LiurniaOfTheLakesLiurniaHighwayNorthLucerne = 1039427050, - [Annotation(Name = "[Liurnia of the Lakes - Laskyar Ruins] Golden Rune [3] 1037427000")] - LiurniaOfTheLakesLaskyarRuinsGoldenRune3 = 1037427000, + [Annotation(Name = "[Liurnia of the Lakes - Laskyar Ruins] Golden Rune [3] 1037427000")] + LiurniaOfTheLakesLaskyarRuinsGoldenRune3 = 1037427000, - [Annotation(Name = "[Liurnia of the Lakes - Laskyar Ruins] Glass Shard 1037427030")] - LiurniaOfTheLakesLaskyarRuinsGlassShard = 1037427030, + [Annotation(Name = "[Liurnia of the Lakes - Laskyar Ruins] Glass Shard 1037427030")] + LiurniaOfTheLakesLaskyarRuinsGlassShard = 1037427030, - [Annotation(Name = "[Liurnia of the Lakes - Laskyar Ruins] Ritual Pot 66420")] - LiurniaOfTheLakesLaskyarRuinsRitualPot = 66420, + [Annotation(Name = "[Liurnia of the Lakes - Laskyar Ruins] Ritual Pot 66420")] + LiurniaOfTheLakesLaskyarRuinsRitualPot = 66420, - [Annotation(Name = "[Liurnia of the Lakes - Laskyar Ruins] Wraith Calling Bell 1037427900")] - LiurniaOfTheLakesLaskyarRuinsWraithCallingBell = 1037427900, + [Annotation(Name = "[Liurnia of the Lakes - Laskyar Ruins] Wraith Calling Bell 1037427900")] + LiurniaOfTheLakesLaskyarRuinsWraithCallingBell = 1037427900, - [Annotation(Name = "[Liurnia of the Lakes - South of Mausoleum Compound] Grave Violet 1037477000")] - LiurniaOfTheLakesSouthOfMausoleumCompoundGraveViolet = 1037477000, + [Annotation(Name = "[Liurnia of the Lakes - South of Mausoleum Compound] Grave Violet 1037477000")] + LiurniaOfTheLakesSouthOfMausoleumCompoundGraveViolet = 1037477000, - [Annotation(Name = "[Liurnia of the Lakes - South of Mausoleum Compound] Arteria Leaf 1037477010")] - LiurniaOfTheLakesSouthOfMausoleumCompoundArteriaLeaf = 1037477010, + [Annotation(Name = "[Liurnia of the Lakes - South of Mausoleum Compound] Arteria Leaf 1037477010")] + LiurniaOfTheLakesSouthOfMausoleumCompoundArteriaLeaf = 1037477010, - [Annotation(Name = "[Liurnia of the Lakes - South of Mausoleum Compound] Stalwart Horn Charm 1037477020")] - LiurniaOfTheLakesSouthOfMausoleumCompoundStalwartHornCharm = 1037477020, + [Annotation(Name = "[Liurnia of the Lakes - South of Mausoleum Compound] Stalwart Horn Charm 1037477020")] + LiurniaOfTheLakesSouthOfMausoleumCompoundStalwartHornCharm = 1037477020, - [Annotation(Name = "[Liurnia of the Lakes - South of Mausoleum Compound] Spiralhorn Shield 1037477030")] - LiurniaOfTheLakesSouthOfMausoleumCompoundSpiralhornShield = 1037477030, + [Annotation(Name = "[Liurnia of the Lakes - South of Mausoleum Compound] Spiralhorn Shield 1037477030")] + LiurniaOfTheLakesSouthOfMausoleumCompoundSpiralhornShield = 1037477030, - [Annotation(Name = "[Liurnia of the Lakes - Slumbering Wolf's Shack] Fire Monks' Prayerbook 1036417000")] - LiurniaOfTheLakesSlumberingWolfsShackFireMonksPrayerbook = 1036417000, + [Annotation(Name = "[Liurnia of the Lakes - Slumbering Wolf's Shack] Fire Monks' Prayerbook 1036417000")] + LiurniaOfTheLakesSlumberingWolfsShackFireMonksPrayerbook = 1036417000, - [Annotation(Name = "[Liurnia of the Lakes - Slumbering Wolf's Shack] Dappled Cured Meat 1036417010")] - LiurniaOfTheLakesSlumberingWolfsShackDappledCuredMeat = 1036417010, + [Annotation(Name = "[Liurnia of the Lakes - Slumbering Wolf's Shack] Dappled Cured Meat 1036417010")] + LiurniaOfTheLakesSlumberingWolfsShackDappledCuredMeat = 1036417010, - [Annotation(Name = "[Liurnia of the Lakes - Slumbering Wolf's Shack] Rune Arc 1036417020")] - LiurniaOfTheLakesSlumberingWolfsShackRuneArc = 1036417020, + [Annotation(Name = "[Liurnia of the Lakes - Slumbering Wolf's Shack] Rune Arc 1036417020")] + LiurniaOfTheLakesSlumberingWolfsShackRuneArc = 1036417020, - [Annotation(Name = "[Liurnia of the Lakes - Gate Town Southwest] Crystal Bud 1036447000")] - LiurniaOfTheLakesGateTownSouthwestCrystalBud = 1036447000, + [Annotation(Name = "[Liurnia of the Lakes - Gate Town Southwest] Crystal Bud 1036447000")] + LiurniaOfTheLakesGateTownSouthwestCrystalBud = 1036447000, - [Annotation(Name = "[Liurnia of the Lakes - Gate Town Southwest] Arteria Leaf 1036447010")] - LiurniaOfTheLakesGateTownSouthwestArteriaLeaf = 1036447010, + [Annotation(Name = "[Liurnia of the Lakes - Gate Town Southwest] Arteria Leaf 1036447010")] + LiurniaOfTheLakesGateTownSouthwestArteriaLeaf = 1036447010, - [Annotation(Name = "[Liurnia of the Lakes - Gate Town Southwest] Smithing Stone [2] 1036447040")] - LiurniaOfTheLakesGateTownSouthwestSmithingStone2 = 1036447040, + [Annotation(Name = "[Liurnia of the Lakes - Gate Town Southwest] Smithing Stone [2] 1036447040")] + LiurniaOfTheLakesGateTownSouthwestSmithingStone2 = 1036447040, - [Annotation(Name = "[Liurnia of the Lakes - Gate Town Southwest] Shattershard Arrow (Fletched) 1036447050")] - LiurniaOfTheLakesGateTownSouthwestShattershardArrowFletched = 1036447050, + [Annotation(Name = "[Liurnia of the Lakes - Gate Town Southwest] Shattershard Arrow (Fletched) 1036447050")] + LiurniaOfTheLakesGateTownSouthwestShattershardArrowFletched = 1036447050, - [Annotation(Name = "[Liurnia of the Lakes - Gate Town Southwest] Glintstone Firefly 1036447060")] - LiurniaOfTheLakesGateTownSouthwestGlintstoneFirefly = 1036447060, + [Annotation(Name = "[Liurnia of the Lakes - Gate Town Southwest] Glintstone Firefly 1036447060")] + LiurniaOfTheLakesGateTownSouthwestGlintstoneFirefly = 1036447060, - [Annotation(Name = "[Liurnia of the Lakes - Gate Town Southwest] Glintstone Craftsman's Cookbook [4] 67400")] - LiurniaOfTheLakesGateTownSouthwestGlintstoneCraftsmansCookbook4 = 67400, + [Annotation(Name = "[Liurnia of the Lakes - Gate Town Southwest] Glintstone Craftsman's Cookbook [4] 67400")] + LiurniaOfTheLakesGateTownSouthwestGlintstoneCraftsmansCookbook4 = 67400, - [Annotation(Name = "[Liurnia of the Lakes - Gate Town Northwest] Crystal Cave Moss 1036457020")] - LiurniaOfTheLakesGateTownNorthwestCrystalCaveMoss = 1036457020, + [Annotation(Name = "[Liurnia of the Lakes - Gate Town Northwest] Crystal Cave Moss 1036457020")] + LiurniaOfTheLakesGateTownNorthwestCrystalCaveMoss = 1036457020, - [Annotation(Name = "[Liurnia of the Lakes - Gate Town Northwest] Stonesword Key 1036457110")] - LiurniaOfTheLakesGateTownNorthwestStoneswordKey = 1036457110, + [Annotation(Name = "[Liurnia of the Lakes - Gate Town Northwest] Stonesword Key 1036457110")] + LiurniaOfTheLakesGateTownNorthwestStoneswordKey = 1036457110, - [Annotation(Name = "[Liurnia of the Lakes - South Rose Church] Somber Smithing Stone [1] 1035437010")] - LiurniaOfTheLakesSouthRoseChurchSomberSmithingStone1 = 1035437010, + [Annotation(Name = "[Liurnia of the Lakes - South Rose Church] Somber Smithing Stone [1] 1035437010")] + LiurniaOfTheLakesSouthRoseChurchSomberSmithingStone1 = 1035437010, - [Annotation(Name = "[Liurnia of the Lakes - South Rose Church] Larval Tear 1035437100")] - LiurniaOfTheLakesSouthRoseChurchLarvalTear = 1035437100, + [Annotation(Name = "[Liurnia of the Lakes - South Rose Church] Larval Tear 1035437100")] + LiurniaOfTheLakesSouthRoseChurchLarvalTear = 1035437100, - [Annotation(Name = "[Liurnia of the Lakes - North Rose Church] Smithing Stone [3] 1035447000")] - LiurniaOfTheLakesNorthRoseChurchSmithingStone3 = 1035447000, + [Annotation(Name = "[Liurnia of the Lakes - North Rose Church] Smithing Stone [3] 1035447000")] + LiurniaOfTheLakesNorthRoseChurchSmithingStone3 = 1035447000, - [Annotation(Name = "[Liurnia of the Lakes - North Rose Church] Golden Rune [1] 1035447010")] - LiurniaOfTheLakesNorthRoseChurchGoldenRune1 = 1035447010, + [Annotation(Name = "[Liurnia of the Lakes - North Rose Church] Golden Rune [1] 1035447010")] + LiurniaOfTheLakesNorthRoseChurchGoldenRune1 = 1035447010, - [Annotation(Name = "[Liurnia of the Lakes - North Rose Church] Golden Rune [4] 1035447020")] - LiurniaOfTheLakesNorthRoseChurchGoldenRune4 = 1035447020, + [Annotation(Name = "[Liurnia of the Lakes - North Rose Church] Golden Rune [4] 1035447020")] + LiurniaOfTheLakesNorthRoseChurchGoldenRune4 = 1035447020, - [Annotation(Name = "[Liurnia of the Lakes - North Rose Church] Golden Rune [3] 1035447030")] - LiurniaOfTheLakesNorthRoseChurchGoldenRune3 = 1035447030, + [Annotation(Name = "[Liurnia of the Lakes - North Rose Church] Golden Rune [3] 1035447030")] + LiurniaOfTheLakesNorthRoseChurchGoldenRune3 = 1035447030, - [Annotation(Name = "[Liurnia of the Lakes - North Rose Church] Golden Rune [2] 1035447040")] - LiurniaOfTheLakesNorthRoseChurchGoldenRune2 = 1035447040, + [Annotation(Name = "[Liurnia of the Lakes - North Rose Church] Golden Rune [2] 1035447040")] + LiurniaOfTheLakesNorthRoseChurchGoldenRune2 = 1035447040, - [Annotation(Name = "[Liurnia of the Lakes - North Rose Church] Golden Rune [4] 1035447050")] - LiurniaOfTheLakesNorthRoseChurchGoldenRune4_ = 1035447050, + [Annotation(Name = "[Liurnia of the Lakes - North Rose Church] Golden Rune [4] 1035447050")] + LiurniaOfTheLakesNorthRoseChurchGoldenRune4_ = 1035447050, - [Annotation(Name = "[Liurnia of the Lakes - North Rose Church] Golden Rune [2] 1035447060")] - LiurniaOfTheLakesNorthRoseChurchGoldenRune2_ = 1035447060, + [Annotation(Name = "[Liurnia of the Lakes - North Rose Church] Golden Rune [2] 1035447060")] + LiurniaOfTheLakesNorthRoseChurchGoldenRune2_ = 1035447060, - [Annotation(Name = "[Liurnia of the Lakes - North Rose Church] Golden Rune [1] 1035447070")] - LiurniaOfTheLakesNorthRoseChurchGoldenRune1_ = 1035447070, + [Annotation(Name = "[Liurnia of the Lakes - North Rose Church] Golden Rune [1] 1035447070")] + LiurniaOfTheLakesNorthRoseChurchGoldenRune1_ = 1035447070, - [Annotation(Name = "[Liurnia of the Lakes - North Rose Church] Golden Rune [5] 1035447080")] - LiurniaOfTheLakesNorthRoseChurchGoldenRune5 = 1035447080, + [Annotation(Name = "[Liurnia of the Lakes - North Rose Church] Golden Rune [5] 1035447080")] + LiurniaOfTheLakesNorthRoseChurchGoldenRune5 = 1035447080, - [Annotation(Name = "[Liurnia of the Lakes - North Rose Church] Golden Rune [2] 1035447090")] - LiurniaOfTheLakesNorthRoseChurchGoldenRune2__ = 1035447090, + [Annotation(Name = "[Liurnia of the Lakes - North Rose Church] Golden Rune [2] 1035447090")] + LiurniaOfTheLakesNorthRoseChurchGoldenRune2__ = 1035447090, - [Annotation(Name = "[Liurnia of the Lakes - North Rose Church] Golden Rune [3] 1035447100")] - LiurniaOfTheLakesNorthRoseChurchGoldenRune3_ = 1035447100, + [Annotation(Name = "[Liurnia of the Lakes - North Rose Church] Golden Rune [3] 1035447100")] + LiurniaOfTheLakesNorthRoseChurchGoldenRune3_ = 1035447100, - [Annotation(Name = "[Liurnia of the Lakes - North Rose Church] Smithing Stone [2] 1035447110")] - LiurniaOfTheLakesNorthRoseChurchSmithingStone2 = 1035447110, + [Annotation(Name = "[Liurnia of the Lakes - North Rose Church] Smithing Stone [2] 1035447110")] + LiurniaOfTheLakesNorthRoseChurchSmithingStone2 = 1035447110, - [Annotation(Name = "[Liurnia of the Lakes - North Rose Church] Blue-White Wooden Shield 1035447120")] - LiurniaOfTheLakesNorthRoseChurchBlueWhiteWoodenShield = 1035447120, + [Annotation(Name = "[Liurnia of the Lakes - North Rose Church] Blue-White Wooden Shield 1035447120")] + LiurniaOfTheLakesNorthRoseChurchBlueWhiteWoodenShield = 1035447120, - [Annotation(Name = "[Liurnia of the Lakes - North Rose Church] Nomadic Warrior's Cookbook [12] 67060")] - LiurniaOfTheLakesNorthRoseChurchNomadicWarriorsCookbook12 = 67060, + [Annotation(Name = "[Liurnia of the Lakes - North Rose Church] Nomadic Warrior's Cookbook [12] 67060")] + LiurniaOfTheLakesNorthRoseChurchNomadicWarriorsCookbook12 = 67060, - [Annotation(Name = "[Liurnia of the Lakes - South Raya Lucaria Gate] Celestial Dew 1035457000")] - LiurniaOfTheLakesSouthRayaLucariaGateCelestialDew = 1035457000, + [Annotation(Name = "[Liurnia of the Lakes - South Raya Lucaria Gate] Celestial Dew 1035457000")] + LiurniaOfTheLakesSouthRayaLucariaGateCelestialDew = 1035457000, - [Annotation(Name = "[Liurnia of the Lakes - South Raya Lucaria Gate] Strip of White Flesh 1035457030")] - LiurniaOfTheLakesSouthRayaLucariaGateStripOfWhiteFlesh = 1035457030, + [Annotation(Name = "[Liurnia of the Lakes - South Raya Lucaria Gate] Strip of White Flesh 1035457030")] + LiurniaOfTheLakesSouthRayaLucariaGateStripOfWhiteFlesh = 1035457030, - [Annotation(Name = "[Liurnia of the Lakes - Main Academy Gate] Stonesword Key 1035467020")] - LiurniaOfTheLakesMainAcademyGateStoneswordKey = 1035467020, + [Annotation(Name = "[Liurnia of the Lakes - Main Academy Gate] Stonesword Key 1035467020")] + LiurniaOfTheLakesMainAcademyGateStoneswordKey = 1035467020, - [Annotation(Name = "[Liurnia of the Lakes - Main Academy Gate] Ash of War: Raptor of the Mists 1035467700")] - LiurniaOfTheLakesMainAcademyGateAshOfWarRaptorOfTheMists = 1035467700, + [Annotation(Name = "[Liurnia of the Lakes - Main Academy Gate] Ash of War: Raptor of the Mists 1035467700")] + LiurniaOfTheLakesMainAcademyGateAshOfWarRaptorOfTheMists = 1035467700, - [Annotation(Name = "[Liurnia of the Lakes - Testu's Rise] Golden Rune [1] 1035477000")] - LiurniaOfTheLakesTestusRiseGoldenRune1 = 1035477000, + [Annotation(Name = "[Liurnia of the Lakes - Testu's Rise] Golden Rune [1] 1035477000")] + LiurniaOfTheLakesTestusRiseGoldenRune1 = 1035477000, - [Annotation(Name = "[Liurnia of the Lakes - Temple Quarter] Rimed Crystal Bud 1034447000")] - LiurniaOfTheLakesTempleQuarterRimedCrystalBud = 1034447000, + [Annotation(Name = "[Liurnia of the Lakes - Temple Quarter] Rimed Crystal Bud 1034447000")] + LiurniaOfTheLakesTempleQuarterRimedCrystalBud = 1034447000, - [Annotation(Name = "[Liurnia of the Lakes - Temple Quarter] Smithing Stone [2] 1034447010")] - LiurniaOfTheLakesTempleQuarterSmithingStone2 = 1034447010, + [Annotation(Name = "[Liurnia of the Lakes - Temple Quarter] Smithing Stone [2] 1034447010")] + LiurniaOfTheLakesTempleQuarterSmithingStone2 = 1034447010, - [Annotation(Name = "[Liurnia of the Lakes - Temple Quarter] Icerind Hatchet 1034447900")] - LiurniaOfTheLakesTempleQuarterIcerindHatchet = 1034447900, + [Annotation(Name = "[Liurnia of the Lakes - Temple Quarter] Icerind Hatchet 1034447900")] + LiurniaOfTheLakesTempleQuarterIcerindHatchet = 1034447900, - [Annotation(Name = "[Liurnia of the Lakes - Church of Vows] Gold Sewing Needle 1037467000")] - LiurniaOfTheLakesChurchOfVowsGoldSewingNeedle = 1037467000, + [Annotation(Name = "[Liurnia of the Lakes - Church of Vows] Gold Sewing Needle 1037467000")] + LiurniaOfTheLakesChurchOfVowsGoldSewingNeedle = 1037467000, - [Annotation(Name = "[Liurnia of the Lakes - Church of Vows] Golden Tailoring Tools 60150")] - LiurniaOfTheLakesChurchOfVowsGoldenTailoringTools = 60150, + [Annotation(Name = "[Liurnia of the Lakes - Church of Vows] Golden Tailoring Tools 60150")] + LiurniaOfTheLakesChurchOfVowsGoldenTailoringTools = 60150, - [Annotation(Name = "[Liurnia of the Lakes - Church of Vows] Stormhawk Feather 1037467010")] - LiurniaOfTheLakesChurchOfVowsStormhawkFeather = 1037467010, + [Annotation(Name = "[Liurnia of the Lakes - Church of Vows] Stormhawk Feather 1037467010")] + LiurniaOfTheLakesChurchOfVowsStormhawkFeather = 1037467010, - [Annotation(Name = "[Liurnia of the Lakes - Highway Lookout Tower] Smithing Stone [2] 1038427000")] - LiurniaOfTheLakesHighwayLookoutTowerSmithingStone2 = 1038427000, + [Annotation(Name = "[Liurnia of the Lakes - Highway Lookout Tower] Smithing Stone [2] 1038427000")] + LiurniaOfTheLakesHighwayLookoutTowerSmithingStone2 = 1038427000, - [Annotation(Name = "[Liurnia of the Lakes - Highway Lookout Tower] Golden Rune [4] 1038427010")] - LiurniaOfTheLakesHighwayLookoutTowerGoldenRune4 = 1038427010, + [Annotation(Name = "[Liurnia of the Lakes - Highway Lookout Tower] Golden Rune [4] 1038427010")] + LiurniaOfTheLakesHighwayLookoutTowerGoldenRune4 = 1038427010, - [Annotation(Name = "[Liurnia of the Lakes - Highway Lookout Tower] Carian Glintblade Staff 1038427020")] - LiurniaOfTheLakesHighwayLookoutTowerCarianGlintbladeStaff = 1038427020, + [Annotation(Name = "[Liurnia of the Lakes - Highway Lookout Tower] Carian Glintblade Staff 1038427020")] + LiurniaOfTheLakesHighwayLookoutTowerCarianGlintbladeStaff = 1038427020, - [Annotation(Name = "[Liurnia of the Lakes - Highway Lookout Tower] Glintstone Craftsman's Cookbook [3] 67480")] - LiurniaOfTheLakesHighwayLookoutTowerGlintstoneCraftsmansCookbook3 = 67480, + [Annotation(Name = "[Liurnia of the Lakes - Highway Lookout Tower] Glintstone Craftsman's Cookbook [3] 67480")] + LiurniaOfTheLakesHighwayLookoutTowerGlintstoneCraftsmansCookbook3 = 67480, - [Annotation(Name = "[Liurnia of the Lakes - Testu's Rise] Smithing Stone [2] 1035477010")] - LiurniaOfTheLakesTestusRiseSmithingStone2 = 1035477010, + [Annotation(Name = "[Liurnia of the Lakes - Testu's Rise] Smithing Stone [2] 1035477010")] + LiurniaOfTheLakesTestusRiseSmithingStone2 = 1035477010, - [Annotation(Name = "[Liurnia of the Lakes - Testu's Rise] Memory Stone 60420")] - LiurniaOfTheLakesTestusRiseMemoryStone = 60420, + [Annotation(Name = "[Liurnia of the Lakes - Testu's Rise] Memory Stone 60420")] + LiurniaOfTheLakesTestusRiseMemoryStone = 60420, - [Annotation(Name = "[Bellum Highway - Converted Fringe Tower] Crystal Dart 1039487000")] - BellumHighwayConvertedFringeTowerCrystalDart = 1039487000, + [Annotation(Name = "[Bellum Highway - Converted Fringe Tower] Crystal Dart 1039487000")] + BellumHighwayConvertedFringeTowerCrystalDart = 1039487000, - [Annotation(Name = "[Bellum Highway - Converted Fringe Tower] Cannon of Haima 1039487100")] - BellumHighwayConvertedFringeTowerCannonOfHaima = 1039487100, + [Annotation(Name = "[Bellum Highway - Converted Fringe Tower] Cannon of Haima 1039487100")] + BellumHighwayConvertedFringeTowerCannonOfHaima = 1039487100, - [Annotation(Name = "[Moonlight Altar] Ranni's Dark Moon 1033407100")] - MoonlightAltarRannisDarkMoon = 1033407100, + [Annotation(Name = "[Moonlight Altar] Ranni's Dark Moon 1033407100")] + MoonlightAltarRannisDarkMoon = 1033407100, - [Annotation(Name = "[Liurnia of the Lakes - Foot of the Four Belfries] Strip of White Flesh 1033467000")] - LiurniaOfTheLakesFootOfTheFourBelfriesStripOfWhiteFlesh = 1033467000, + [Annotation(Name = "[Liurnia of the Lakes - Foot of the Four Belfries] Strip of White Flesh 1033467000")] + LiurniaOfTheLakesFootOfTheFourBelfriesStripOfWhiteFlesh = 1033467000, - [Annotation(Name = "[Liurnia of the Lakes - Foot of the Four Belfries] Blood Grease 1033467030")] - LiurniaOfTheLakesFootOfTheFourBelfriesBloodGrease = 1033467030, + [Annotation(Name = "[Liurnia of the Lakes - Foot of the Four Belfries] Blood Grease 1033467030")] + LiurniaOfTheLakesFootOfTheFourBelfriesBloodGrease = 1033467030, - [Annotation(Name = "[Liurnia of the Lakes - Foot of the Four Belfries] Jellyfish Shield 1033467040")] - LiurniaOfTheLakesFootOfTheFourBelfriesJellyfishShield = 1033467040, + [Annotation(Name = "[Liurnia of the Lakes - Foot of the Four Belfries] Jellyfish Shield 1033467040")] + LiurniaOfTheLakesFootOfTheFourBelfriesJellyfishShield = 1033467040, - [Annotation(Name = "[Liurnia of the Lakes - The Four Belfries] Imbued Sword Key 1033477020")] - LiurniaOfTheLakesTheFourBelfriesImbuedSwordKey = 1033477020, + [Annotation(Name = "[Liurnia of the Lakes - The Four Belfries] Imbued Sword Key 1033477020")] + LiurniaOfTheLakesTheFourBelfriesImbuedSwordKey = 1033477020, - [Annotation(Name = "[Liurnia of the Lakes - The Four Belfries] Albinauric Bloodclot 1033477900")] - LiurniaOfTheLakesTheFourBelfriesAlbinauricBloodclot = 1033477900, + [Annotation(Name = "[Liurnia of the Lakes - The Four Belfries] Albinauric Bloodclot 1033477900")] + LiurniaOfTheLakesTheFourBelfriesAlbinauricBloodclot = 1033477900, - [Annotation(Name = "[Liurnia of the Lakes - The Four Belfries] Cuckoo Glintstone 1033477910")] - LiurniaOfTheLakesTheFourBelfriesCuckooGlintstone = 1033477910, + [Annotation(Name = "[Liurnia of the Lakes - The Four Belfries] Cuckoo Glintstone 1033477910")] + LiurniaOfTheLakesTheFourBelfriesCuckooGlintstone = 1033477910, - [Annotation(Name = "[Liurnia of the Lakes - Ranni's Rise] Golden Rune [3] 1034507010")] - LiurniaOfTheLakesRannisRiseGoldenRune3 = 1034507010, + [Annotation(Name = "[Liurnia of the Lakes - Ranni's Rise] Golden Rune [3] 1034507010")] + LiurniaOfTheLakesRannisRiseGoldenRune3 = 1034507010, - [Annotation(Name = "[Liurnia of the Lakes - Ranni's Rise] Golden Rune [4] 1034507020")] - LiurniaOfTheLakesRannisRiseGoldenRune4 = 1034507020, + [Annotation(Name = "[Liurnia of the Lakes - Ranni's Rise] Golden Rune [4] 1034507020")] + LiurniaOfTheLakesRannisRiseGoldenRune4 = 1034507020, - [Annotation(Name = "[Liurnia of the Lakes - Ranni's Rise] Golden Rune [5] 1034507030")] - LiurniaOfTheLakesRannisRiseGoldenRune5 = 1034507030, + [Annotation(Name = "[Liurnia of the Lakes - Ranni's Rise] Golden Rune [5] 1034507030")] + LiurniaOfTheLakesRannisRiseGoldenRune5 = 1034507030, - [Annotation(Name = "[Liurnia of the Lakes - Ranni's Rise] Golden Rune [1] 1034507040")] - LiurniaOfTheLakesRannisRiseGoldenRune1 = 1034507040, + [Annotation(Name = "[Liurnia of the Lakes - Ranni's Rise] Golden Rune [1] 1034507040")] + LiurniaOfTheLakesRannisRiseGoldenRune1 = 1034507040, - [Annotation(Name = "[Liurnia of the Lakes - Ranni's Rise] Golden Rune [3] 1034507050")] - LiurniaOfTheLakesRannisRiseGoldenRune3_ = 1034507050, + [Annotation(Name = "[Liurnia of the Lakes - Ranni's Rise] Golden Rune [3] 1034507050")] + LiurniaOfTheLakesRannisRiseGoldenRune3_ = 1034507050, - [Annotation(Name = "[Liurnia of the Lakes - Ranni's Rise] Golden Rune [3] 1034507060")] - LiurniaOfTheLakesRannisRiseGoldenRune3__ = 1034507060, + [Annotation(Name = "[Liurnia of the Lakes - Ranni's Rise] Golden Rune [3] 1034507060")] + LiurniaOfTheLakesRannisRiseGoldenRune3__ = 1034507060, - [Annotation(Name = "[Liurnia of the Lakes - Ranni's Rise] Golden Rune [2] 1034507070")] - LiurniaOfTheLakesRannisRiseGoldenRune2 = 1034507070, + [Annotation(Name = "[Liurnia of the Lakes - Ranni's Rise] Golden Rune [2] 1034507070")] + LiurniaOfTheLakesRannisRiseGoldenRune2 = 1034507070, - [Annotation(Name = "[Liurnia of the Lakes - Ranni's Rise] Golden Rune [3] 1034507080")] - LiurniaOfTheLakesRannisRiseGoldenRune3___ = 1034507080, + [Annotation(Name = "[Liurnia of the Lakes - Ranni's Rise] Golden Rune [3] 1034507080")] + LiurniaOfTheLakesRannisRiseGoldenRune3___ = 1034507080, - [Annotation(Name = "[Liurnia of the Lakes - Ranni's Rise] Black Wolf Mask 1034507090")] - LiurniaOfTheLakesRannisRiseBlackWolfMask = 1034507090, + [Annotation(Name = "[Liurnia of the Lakes - Ranni's Rise] Black Wolf Mask 1034507090")] + LiurniaOfTheLakesRannisRiseBlackWolfMask = 1034507090, - [Annotation(Name = "[Liurnia of the Lakes - Ranni's Rise] Memory Stone 60430")] - LiurniaOfTheLakesRannisRiseMemoryStone = 60430, + [Annotation(Name = "[Liurnia of the Lakes - Ranni's Rise] Memory Stone 60430")] + LiurniaOfTheLakesRannisRiseMemoryStone = 60430, - [Annotation(Name = "[Liurnia of the Lakes - Ranni's Rise] 1034507200")] - LiurniaOfTheLakesRannisRise = 1034507200, + [Annotation(Name = "[Liurnia of the Lakes - Ranni's Rise] 1034507200")] + LiurniaOfTheLakesRannisRise = 1034507200, - [Annotation(Name = "[Liurnia of the Lakes - Renna's Rise] Snow Witch Skirt 1034517900")] - LiurniaOfTheLakesRennasRiseSnowWitchSkirt = 1034517900, + [Annotation(Name = "[Liurnia of the Lakes - Renna's Rise] Snow Witch Skirt 1034517900")] + LiurniaOfTheLakesRennasRiseSnowWitchSkirt = 1034517900, - [Annotation(Name = "[Liurnia of the Lakes - Sorcerer's Isle West] Throwing Dagger 1034477000")] - LiurniaOfTheLakesSorcerersIsleWestThrowingDagger = 1034477000, + [Annotation(Name = "[Liurnia of the Lakes - Sorcerer's Isle West] Throwing Dagger 1034477000")] + LiurniaOfTheLakesSorcerersIsleWestThrowingDagger = 1034477000, - [Annotation(Name = "[Liurnia of the Lakes - Sorcerer's Isle West] Golden Rune [2] 1034477500")] - LiurniaOfTheLakesSorcerersIsleWestGoldenRune2 = 1034477500, + [Annotation(Name = "[Liurnia of the Lakes - Sorcerer's Isle West] Golden Rune [2] 1034477500")] + LiurniaOfTheLakesSorcerersIsleWestGoldenRune2 = 1034477500, - [Annotation(Name = "[Liurnia of the Lakes - Sorcerer's Isle West] Golden Rune [1] 1034477110")] - LiurniaOfTheLakesSorcerersIsleWestGoldenRune1 = 1034477110, + [Annotation(Name = "[Liurnia of the Lakes - Sorcerer's Isle West] Golden Rune [1] 1034477110")] + LiurniaOfTheLakesSorcerersIsleWestGoldenRune1 = 1034477110, - [Annotation(Name = "[Liurnia of the Lakes - Sorcerer's Isle West] Golden Rune [3] 1034477120")] - LiurniaOfTheLakesSorcerersIsleWestGoldenRune3 = 1034477120, + [Annotation(Name = "[Liurnia of the Lakes - Sorcerer's Isle West] Golden Rune [3] 1034477120")] + LiurniaOfTheLakesSorcerersIsleWestGoldenRune3 = 1034477120, - [Annotation(Name = "[Liurnia of the Lakes - Sorcerer's Isle West] Golden Rune [3] 1034477130")] - LiurniaOfTheLakesSorcerersIsleWestGoldenRune3_ = 1034477130, + [Annotation(Name = "[Liurnia of the Lakes - Sorcerer's Isle West] Golden Rune [3] 1034477130")] + LiurniaOfTheLakesSorcerersIsleWestGoldenRune3_ = 1034477130, - [Annotation(Name = "[Liurnia of the Lakes - Sorcerer's Isle West] Golden Rune [1] 1034477140")] - LiurniaOfTheLakesSorcerersIsleWestGoldenRune1_ = 1034477140, + [Annotation(Name = "[Liurnia of the Lakes - Sorcerer's Isle West] Golden Rune [1] 1034477140")] + LiurniaOfTheLakesSorcerersIsleWestGoldenRune1_ = 1034477140, - [Annotation(Name = "[Liurnia of the Lakes - Sorcerer's Isle West] Golden Rune [5] 1034477150")] - LiurniaOfTheLakesSorcerersIsleWestGoldenRune5 = 1034477150, + [Annotation(Name = "[Liurnia of the Lakes - Sorcerer's Isle West] Golden Rune [5] 1034477150")] + LiurniaOfTheLakesSorcerersIsleWestGoldenRune5 = 1034477150, - [Annotation(Name = "[Liurnia of the Lakes - Sorcerer's Isle West] Golden Rune [3] 1034477160")] - LiurniaOfTheLakesSorcerersIsleWestGoldenRune3__ = 1034477160, + [Annotation(Name = "[Liurnia of the Lakes - Sorcerer's Isle West] Golden Rune [3] 1034477160")] + LiurniaOfTheLakesSorcerersIsleWestGoldenRune3__ = 1034477160, - [Annotation(Name = "[Liurnia of the Lakes - Sorcerer's Isle West] Golden Rune [2] 1034477170")] - LiurniaOfTheLakesSorcerersIsleWestGoldenRune2_ = 1034477170, + [Annotation(Name = "[Liurnia of the Lakes - Sorcerer's Isle West] Golden Rune [2] 1034477170")] + LiurniaOfTheLakesSorcerersIsleWestGoldenRune2_ = 1034477170, - [Annotation(Name = "[Liurnia of the Lakes - Sorcerer's Isle West] Golden Rune [3] 1034477180")] - LiurniaOfTheLakesSorcerersIsleWestGoldenRune3___ = 1034477180, + [Annotation(Name = "[Liurnia of the Lakes - Sorcerer's Isle West] Golden Rune [3] 1034477180")] + LiurniaOfTheLakesSorcerersIsleWestGoldenRune3___ = 1034477180, - [Annotation(Name = "[Liurnia of the Lakes - Sorcerer's Isle West] Golden Rune [3] 1034477190")] - LiurniaOfTheLakesSorcerersIsleWestGoldenRune3____ = 1034477190, + [Annotation(Name = "[Liurnia of the Lakes - Sorcerer's Isle West] Golden Rune [3] 1034477190")] + LiurniaOfTheLakesSorcerersIsleWestGoldenRune3____ = 1034477190, - [Annotation(Name = "[Liurnia of the Lakes - Sorcerer's Isle West] Golden Rune [4] 1034477200")] - LiurniaOfTheLakesSorcerersIsleWestGoldenRune4 = 1034477200, + [Annotation(Name = "[Liurnia of the Lakes - Sorcerer's Isle West] Golden Rune [4] 1034477200")] + LiurniaOfTheLakesSorcerersIsleWestGoldenRune4 = 1034477200, - [Annotation(Name = "[Liurnia of the Lakes - Sorcerer's Isle West] Golden Rune [2] 1034477210")] - LiurniaOfTheLakesSorcerersIsleWestGoldenRune2__ = 1034477210, + [Annotation(Name = "[Liurnia of the Lakes - Sorcerer's Isle West] Golden Rune [2] 1034477210")] + LiurniaOfTheLakesSorcerersIsleWestGoldenRune2__ = 1034477210, - [Annotation(Name = "[Liurnia of the Lakes - Sorcerer's Isle West] Golden Rune [4] 1034477220")] - LiurniaOfTheLakesSorcerersIsleWestGoldenRune4_ = 1034477220, + [Annotation(Name = "[Liurnia of the Lakes - Sorcerer's Isle West] Golden Rune [4] 1034477220")] + LiurniaOfTheLakesSorcerersIsleWestGoldenRune4_ = 1034477220, - [Annotation(Name = "[Liurnia of the Lakes - Sorcerer's Isle West] Golden Rune [6] 1034477300")] - LiurniaOfTheLakesSorcerersIsleWestGoldenRune6 = 1034477300, + [Annotation(Name = "[Liurnia of the Lakes - Sorcerer's Isle West] Golden Rune [6] 1034477300")] + LiurniaOfTheLakesSorcerersIsleWestGoldenRune6 = 1034477300, - [Annotation(Name = "[Liurnia of the Lakes - Sorcerer's Isle West] Golden Rune [6] 1034477310")] - LiurniaOfTheLakesSorcerersIsleWestGoldenRune6_ = 1034477310, + [Annotation(Name = "[Liurnia of the Lakes - Sorcerer's Isle West] Golden Rune [6] 1034477310")] + LiurniaOfTheLakesSorcerersIsleWestGoldenRune6_ = 1034477310, - [Annotation(Name = "[Liurnia of the Lakes - Kingsrealm Ruins] Golden Rune [6] 1034487300")] - LiurniaOfTheLakesKingsrealmRuinsGoldenRune6 = 1034487300, + [Annotation(Name = "[Liurnia of the Lakes - Kingsrealm Ruins] Golden Rune [6] 1034487300")] + LiurniaOfTheLakesKingsrealmRuinsGoldenRune6 = 1034487300, - [Annotation(Name = "[Liurnia of the Lakes - Kingsrealm Ruins] Golden Rune [6] 1034487310")] - LiurniaOfTheLakesKingsrealmRuinsGoldenRune6_ = 1034487310, + [Annotation(Name = "[Liurnia of the Lakes - Kingsrealm Ruins] Golden Rune [6] 1034487310")] + LiurniaOfTheLakesKingsrealmRuinsGoldenRune6_ = 1034487310, - [Annotation(Name = "[Liurnia of the Lakes - Kingsrealm Ruins] Rimed Crystal Bud 1034487000")] - LiurniaOfTheLakesKingsrealmRuinsRimedCrystalBud = 1034487000, + [Annotation(Name = "[Liurnia of the Lakes - Kingsrealm Ruins] Rimed Crystal Bud 1034487000")] + LiurniaOfTheLakesKingsrealmRuinsRimedCrystalBud = 1034487000, - [Annotation(Name = "[Liurnia of the Lakes - Kingsrealm Ruins] Glintstone Firefly 1034487010")] - LiurniaOfTheLakesKingsrealmRuinsGlintstoneFirefly = 1034487010, + [Annotation(Name = "[Liurnia of the Lakes - Kingsrealm Ruins] Glintstone Firefly 1034487010")] + LiurniaOfTheLakesKingsrealmRuinsGlintstoneFirefly = 1034487010, - [Annotation(Name = "[Liurnia of the Lakes - Kingsrealm Ruins] Frozen Needle 1034487100")] - LiurniaOfTheLakesKingsrealmRuinsFrozenNeedle = 1034487100, + [Annotation(Name = "[Liurnia of the Lakes - Kingsrealm Ruins] Frozen Needle 1034487100")] + LiurniaOfTheLakesKingsrealmRuinsFrozenNeedle = 1034487100, - [Annotation(Name = "[Liurnia of the Lakes - Artist's Shack] Smoldering Butterfly 1038457000")] - LiurniaOfTheLakesArtistsShackSmolderingButterfly = 1038457000, + [Annotation(Name = "[Liurnia of the Lakes - Artist's Shack] Smoldering Butterfly 1038457000")] + LiurniaOfTheLakesArtistsShackSmolderingButterfly = 1038457000, - [Annotation(Name = "[Liurnia of the Lakes - Artist's Shack] Flame, Cleanse Me 1038457010")] - LiurniaOfTheLakesArtistsShackFlameCleanseMe = 1038457010, + [Annotation(Name = "[Liurnia of the Lakes - Artist's Shack] Flame, Cleanse Me 1038457010")] + LiurniaOfTheLakesArtistsShackFlameCleanseMe = 1038457010, - [Annotation(Name = "[Liurnia of the Lakes - Artist's Shack] Smithing Stone [4] 1038457020")] - LiurniaOfTheLakesArtistsShackSmithingStone4 = 1038457020, + [Annotation(Name = "[Liurnia of the Lakes - Artist's Shack] Smithing Stone [4] 1038457020")] + LiurniaOfTheLakesArtistsShackSmithingStone4 = 1038457020, - [Annotation(Name = "[Bellum Highway - Frenzied Flame Village] Frenzied's Cookbook [1] 68400")] - BellumHighwayFrenziedFlameVillageFrenziedsCookbook1 = 68400, + [Annotation(Name = "[Bellum Highway - Frenzied Flame Village] Frenzied's Cookbook [1] 68400")] + BellumHighwayFrenziedFlameVillageFrenziedsCookbook1 = 68400, - [Annotation(Name = "[Bellum Highway - Frenzied Flame Village] Eye of Yelough 1038487020")] - BellumHighwayFrenziedFlameVillageEyeOfYelough = 1038487020, + [Annotation(Name = "[Bellum Highway - Frenzied Flame Village] Eye of Yelough 1038487020")] + BellumHighwayFrenziedFlameVillageEyeOfYelough = 1038487020, - [Annotation(Name = "[Bellum Highway - Frenzied Flame Village] Stonesword Key 1038487030")] - BellumHighwayFrenziedFlameVillageStoneswordKey = 1038487030, + [Annotation(Name = "[Bellum Highway - Frenzied Flame Village] Stonesword Key 1038487030")] + BellumHighwayFrenziedFlameVillageStoneswordKey = 1038487030, - [Annotation(Name = "[Bellum Highway - Frenzied Flame Village] Note: The Lord of Frenzied Flame 69760")] - BellumHighwayFrenziedFlameVillageNoteTheLordOfFrenziedFlame = 69760, + [Annotation(Name = "[Bellum Highway - Frenzied Flame Village] Note: The Lord of Frenzied Flame 69760")] + BellumHighwayFrenziedFlameVillageNoteTheLordOfFrenziedFlame = 69760, - [Annotation(Name = "[Bellum Highway - Frenzied Flame Village] Shabriri's Woe 1038487100")] - BellumHighwayFrenziedFlameVillageShabririsWoe = 1038487100, + [Annotation(Name = "[Bellum Highway - Frenzied Flame Village] Shabriri's Woe 1038487100")] + BellumHighwayFrenziedFlameVillageShabririsWoe = 1038487100, - [Annotation(Name = "[Bellum Highway - Frenzied Flame Village] Eye of Yelough 1038487120")] - BellumHighwayFrenziedFlameVillageEyeOfYelough_ = 1038487120, + [Annotation(Name = "[Bellum Highway - Frenzied Flame Village] Eye of Yelough 1038487120")] + BellumHighwayFrenziedFlameVillageEyeOfYelough_ = 1038487120, - [Annotation(Name = "[Bellum Highway - Frenzied Flame Village] Frenzyflame Stone 1038487130")] - BellumHighwayFrenziedFlameVillageFrenzyflameStone = 1038487130, + [Annotation(Name = "[Bellum Highway - Frenzied Flame Village] Frenzyflame Stone 1038487130")] + BellumHighwayFrenziedFlameVillageFrenzyflameStone = 1038487130, - [Annotation(Name = "[Liurnia of the Lakes - Ravine-Veiled Village] Smithing Stone [5] 1038507000")] - LiurniaOfTheLakesRavineVeiledVillageSmithingStone5 = 1038507000, + [Annotation(Name = "[Liurnia of the Lakes - Ravine-Veiled Village] Smithing Stone [5] 1038507000")] + LiurniaOfTheLakesRavineVeiledVillageSmithingStone5 = 1038507000, - [Annotation(Name = "[Liurnia of the Lakes - Ravine-Veiled Village] Dragonwound Grease 1038507010")] - LiurniaOfTheLakesRavineVeiledVillageDragonwoundGrease = 1038507010, + [Annotation(Name = "[Liurnia of the Lakes - Ravine-Veiled Village] Dragonwound Grease 1038507010")] + LiurniaOfTheLakesRavineVeiledVillageDragonwoundGrease = 1038507010, - [Annotation(Name = "[Bellum Highway - Church of Inhibition] Cuckoo Glintstone 1037497000")] - BellumHighwayChurchOfInhibitionCuckooGlintstone = 1037497000, + [Annotation(Name = "[Bellum Highway - Church of Inhibition] Cuckoo Glintstone 1037497000")] + BellumHighwayChurchOfInhibitionCuckooGlintstone = 1037497000, - [Annotation(Name = "[Bellum Highway - Church of Inhibition] Rune Arc 1037497010")] - BellumHighwayChurchOfInhibitionRuneArc = 1037497010, + [Annotation(Name = "[Bellum Highway - Church of Inhibition] Rune Arc 1037497010")] + BellumHighwayChurchOfInhibitionRuneArc = 1037497010, - [Annotation(Name = "[Bellum Highway - Church of Inhibition] Finger Maiden Fillet 1037497030")] - BellumHighwayChurchOfInhibitionFingerMaidenFillet = 1037497030, + [Annotation(Name = "[Bellum Highway - Church of Inhibition] Finger Maiden Fillet 1037497030")] + BellumHighwayChurchOfInhibitionFingerMaidenFillet = 1037497030, - [Annotation(Name = "[Bellum Highway - Church of Inhibition] Great Mace 1037497200")] - BellumHighwayChurchOfInhibitionGreatMace = 1037497200, + [Annotation(Name = "[Bellum Highway - Church of Inhibition] Great Mace 1037497200")] + BellumHighwayChurchOfInhibitionGreatMace = 1037497200, - [Annotation(Name = "[Bellum Highway - Church of Inhibition] Fingerprint Grape 1037497300")] - BellumHighwayChurchOfInhibitionFingerprintGrape = 1037497300, + [Annotation(Name = "[Bellum Highway - Church of Inhibition] Fingerprint Grape 1037497300")] + BellumHighwayChurchOfInhibitionFingerprintGrape = 1037497300, - [Annotation(Name = "[Liurnia of the Lakes - Liurnia Highway Far North] Golden Rune [2] 1039437010")] - LiurniaOfTheLakesLiurniaHighwayFarNorthGoldenRune2 = 1039437010, + [Annotation(Name = "[Liurnia of the Lakes - Liurnia Highway Far North] Golden Rune [2] 1039437010")] + LiurniaOfTheLakesLiurniaHighwayFarNorthGoldenRune2 = 1039437010, - [Annotation(Name = "[Liurnia of the Lakes - Liurnia Highway Far North] Golden Rune [6] 1039437020")] - LiurniaOfTheLakesLiurniaHighwayFarNorthGoldenRune6 = 1039437020, + [Annotation(Name = "[Liurnia of the Lakes - Liurnia Highway Far North] Golden Rune [6] 1039437020")] + LiurniaOfTheLakesLiurniaHighwayFarNorthGoldenRune6 = 1039437020, - [Annotation(Name = "[Liurnia of the Lakes - Liurnia Highway Far North] Golden Rune [1] 1039437030")] - LiurniaOfTheLakesLiurniaHighwayFarNorthGoldenRune1 = 1039437030, + [Annotation(Name = "[Liurnia of the Lakes - Liurnia Highway Far North] Golden Rune [1] 1039437030")] + LiurniaOfTheLakesLiurniaHighwayFarNorthGoldenRune1 = 1039437030, - [Annotation(Name = "[Liurnia of the Lakes - Liurnia Highway Far North] Golden Rune [3] 1039437040")] - LiurniaOfTheLakesLiurniaHighwayFarNorthGoldenRune3 = 1039437040, + [Annotation(Name = "[Liurnia of the Lakes - Liurnia Highway Far North] Golden Rune [3] 1039437040")] + LiurniaOfTheLakesLiurniaHighwayFarNorthGoldenRune3 = 1039437040, - [Annotation(Name = "[Liurnia of the Lakes - Liurnia Highway Far North] Golden Rune [2] 1039437050")] - LiurniaOfTheLakesLiurniaHighwayFarNorthGoldenRune2_ = 1039437050, + [Annotation(Name = "[Liurnia of the Lakes - Liurnia Highway Far North] Golden Rune [2] 1039437050")] + LiurniaOfTheLakesLiurniaHighwayFarNorthGoldenRune2_ = 1039437050, - [Annotation(Name = "[Liurnia of the Lakes - Liurnia Highway Far North] Golden Rune [3] 1039437060")] - LiurniaOfTheLakesLiurniaHighwayFarNorthGoldenRune3_ = 1039437060, + [Annotation(Name = "[Liurnia of the Lakes - Liurnia Highway Far North] Golden Rune [3] 1039437060")] + LiurniaOfTheLakesLiurniaHighwayFarNorthGoldenRune3_ = 1039437060, - [Annotation(Name = "[Liurnia of the Lakes - Gate Town Bridge] Strip of White Flesh 1038437000")] - LiurniaOfTheLakesGateTownBridgeStripOfWhiteFlesh = 1038437000, + [Annotation(Name = "[Liurnia of the Lakes - Gate Town Bridge] Strip of White Flesh 1038437000")] + LiurniaOfTheLakesGateTownBridgeStripOfWhiteFlesh = 1038437000, - [Annotation(Name = "[Liurnia of the Lakes - Gate Town Bridge] Sliver of Meat 1038437010")] - LiurniaOfTheLakesGateTownBridgeSliverOfMeat = 1038437010, + [Annotation(Name = "[Liurnia of the Lakes - Gate Town Bridge] Sliver of Meat 1038437010")] + LiurniaOfTheLakesGateTownBridgeSliverOfMeat = 1038437010, - [Annotation(Name = "[Liurnia of the Lakes - Gate Town Bridge] Silver-Pickled Fowl Foot 1038437020")] - LiurniaOfTheLakesGateTownBridgeSilverPickledFowlFoot = 1038437020, + [Annotation(Name = "[Liurnia of the Lakes - Gate Town Bridge] Silver-Pickled Fowl Foot 1038437020")] + LiurniaOfTheLakesGateTownBridgeSilverPickledFowlFoot = 1038437020, - [Annotation(Name = "[Liurnia of the Lakes - Gate Town Bridge] Golden Rune [6] 1038437100")] - LiurniaOfTheLakesGateTownBridgeGoldenRune6 = 1038437100, + [Annotation(Name = "[Liurnia of the Lakes - Gate Town Bridge] Golden Rune [6] 1038437100")] + LiurniaOfTheLakesGateTownBridgeGoldenRune6 = 1038437100, - [Annotation(Name = "[Liurnia of the Lakes - South of Scenic Isle] Ballista Bolt 1037417010")] - LiurniaOfTheLakesSouthOfScenicIsleBallistaBolt = 1037417010, + [Annotation(Name = "[Liurnia of the Lakes - South of Scenic Isle] Ballista Bolt 1037417010")] + LiurniaOfTheLakesSouthOfScenicIsleBallistaBolt = 1037417010, - [Annotation(Name = "[Liurnia of the Lakes - North of Scenic Isle] Golden Rune [3] 1037437000")] - LiurniaOfTheLakesNorthOfScenicIsleGoldenRune3 = 1037437000, + [Annotation(Name = "[Liurnia of the Lakes - North of Scenic Isle] Golden Rune [3] 1037437000")] + LiurniaOfTheLakesNorthOfScenicIsleGoldenRune3 = 1037437000, - [Annotation(Name = "[Liurnia of the Lakes - North of Scenic Isle] Smithing Stone [3] 1037437010")] - LiurniaOfTheLakesNorthOfScenicIsleSmithingStone3 = 1037437010, + [Annotation(Name = "[Liurnia of the Lakes - North of Scenic Isle] Smithing Stone [3] 1037437010")] + LiurniaOfTheLakesNorthOfScenicIsleSmithingStone3 = 1037437010, - [Annotation(Name = "[Liurnia of the Lakes - Gate Town Southeast] Golden Rune [4] 1037447000")] - LiurniaOfTheLakesGateTownSoutheastGoldenRune4 = 1037447000, + [Annotation(Name = "[Liurnia of the Lakes - Gate Town Southeast] Golden Rune [4] 1037447000")] + LiurniaOfTheLakesGateTownSoutheastGoldenRune4 = 1037447000, - [Annotation(Name = "[Liurnia of the Lakes - Gate Town Southeast] Magic Grease 1037447010")] - LiurniaOfTheLakesGateTownSoutheastMagicGrease = 1037447010, + [Annotation(Name = "[Liurnia of the Lakes - Gate Town Southeast] Magic Grease 1037447010")] + LiurniaOfTheLakesGateTownSoutheastMagicGrease = 1037447010, - [Annotation(Name = "[Liurnia of the Lakes - Gate Town Northeast] Smithing Stone [3] 1037457100")] - LiurniaOfTheLakesGateTownNortheastSmithingStone3 = 1037457100, + [Annotation(Name = "[Liurnia of the Lakes - Gate Town Northeast] Smithing Stone [3] 1037457100")] + LiurniaOfTheLakesGateTownNortheastSmithingStone3 = 1037457100, - [Annotation(Name = "[Liurnia of the Lakes - Boilprawn Shack] Smithing Stone [2] 1036437000")] - LiurniaOfTheLakesBoilprawnShackSmithingStone2 = 1036437000, + [Annotation(Name = "[Liurnia of the Lakes - Boilprawn Shack] Smithing Stone [2] 1036437000")] + LiurniaOfTheLakesBoilprawnShackSmithingStone2 = 1036437000, - [Annotation(Name = "[Liurnia of the Lakes - Boilprawn Shack] Confessor Hood 1036437010")] - LiurniaOfTheLakesBoilprawnShackConfessorHood = 1036437010, + [Annotation(Name = "[Liurnia of the Lakes - Boilprawn Shack] Confessor Hood 1036437010")] + LiurniaOfTheLakesBoilprawnShackConfessorHood = 1036437010, - [Annotation(Name = "[Liurnia of the Lakes - Boilprawn Shack] Tarnished Golden Sunflower 1036437020")] - LiurniaOfTheLakesBoilprawnShackTarnishedGoldenSunflower = 1036437020, + [Annotation(Name = "[Liurnia of the Lakes - Boilprawn Shack] Tarnished Golden Sunflower 1036437020")] + LiurniaOfTheLakesBoilprawnShackTarnishedGoldenSunflower = 1036437020, - [Annotation(Name = "[Liurnia of the Lakes - Boilprawn Shack] Rainbow Stone 1036437030")] - LiurniaOfTheLakesBoilprawnShackRainbowStone = 1036437030, + [Annotation(Name = "[Liurnia of the Lakes - Boilprawn Shack] Rainbow Stone 1036437030")] + LiurniaOfTheLakesBoilprawnShackRainbowStone = 1036437030, - [Annotation(Name = "[Liurnia of the Lakes - Jarburg] Smithing Stone [3] 1039447000")] - LiurniaOfTheLakesJarburgSmithingStone3 = 1039447000, + [Annotation(Name = "[Liurnia of the Lakes - Jarburg] Smithing Stone [3] 1039447000")] + LiurniaOfTheLakesJarburgSmithingStone3 = 1039447000, - [Annotation(Name = "[Liurnia of the Lakes - Jarburg] Great Dragonfly Head 1039447010")] - LiurniaOfTheLakesJarburgGreatDragonflyHead = 1039447010, + [Annotation(Name = "[Liurnia of the Lakes - Jarburg] Great Dragonfly Head 1039447010")] + LiurniaOfTheLakesJarburgGreatDragonflyHead = 1039447010, - [Annotation(Name = "[Liurnia of the Lakes - Jarburg] Trina's Lily 1039447020")] - LiurniaOfTheLakesJarburgTrinasLily = 1039447020, + [Annotation(Name = "[Liurnia of the Lakes - Jarburg] Trina's Lily 1039447020")] + LiurniaOfTheLakesJarburgTrinasLily = 1039447020, - [Annotation(Name = "[Liurnia of the Lakes - Jarburg] Smithing Stone [3] 1039447030")] - LiurniaOfTheLakesJarburgSmithingStone3_ = 1039447030, + [Annotation(Name = "[Liurnia of the Lakes - Jarburg] Smithing Stone [3] 1039447030")] + LiurniaOfTheLakesJarburgSmithingStone3_ = 1039447030, - [Annotation(Name = "[Liurnia of the Lakes - Jarburg] Living Jar Shard 1039447040")] - LiurniaOfTheLakesJarburgLivingJarShard = 1039447040, + [Annotation(Name = "[Liurnia of the Lakes - Jarburg] Living Jar Shard 1039447040")] + LiurniaOfTheLakesJarburgLivingJarShard = 1039447040, - [Annotation(Name = "[Liurnia of the Lakes - Jarburg] Cracked Pot 66080")] - LiurniaOfTheLakesJarburgCrackedPot = 66080, + [Annotation(Name = "[Liurnia of the Lakes - Jarburg] Cracked Pot 66080")] + LiurniaOfTheLakesJarburgCrackedPot = 66080, - [Annotation(Name = "[Liurnia of the Lakes - Jarburg] Cracked Pot 66090")] - LiurniaOfTheLakesJarburgCrackedPot_ = 66090, + [Annotation(Name = "[Liurnia of the Lakes - Jarburg] Cracked Pot 66090")] + LiurniaOfTheLakesJarburgCrackedPot_ = 66090, - [Annotation(Name = "[Liurnia of the Lakes - Jarburg] Cracked Pot 66100")] - LiurniaOfTheLakesJarburgCrackedPot__ = 66100, + [Annotation(Name = "[Liurnia of the Lakes - Jarburg] Cracked Pot 66100")] + LiurniaOfTheLakesJarburgCrackedPot__ = 66100, - [Annotation(Name = "[Liurnia of the Lakes - Jarburg] Ritual Pot 66430")] - LiurniaOfTheLakesJarburgRitualPot = 66430, + [Annotation(Name = "[Liurnia of the Lakes - Jarburg] Ritual Pot 66430")] + LiurniaOfTheLakesJarburgRitualPot = 66430, - [Annotation(Name = "[Liurnia of the Lakes - Jarburg] Ritual Pot 66440")] - LiurniaOfTheLakesJarburgRitualPot_ = 66440, + [Annotation(Name = "[Liurnia of the Lakes - Jarburg] Ritual Pot 66440")] + LiurniaOfTheLakesJarburgRitualPot_ = 66440, - [Annotation(Name = "[Liurnia of the Lakes - Crystalline Woods] Smithing Stone [3] 1034467100")] - LiurniaOfTheLakesCrystallineWoodsSmithingStone3 = 1034467100, + [Annotation(Name = "[Liurnia of the Lakes - Crystalline Woods] Smithing Stone [3] 1034467100")] + LiurniaOfTheLakesCrystallineWoodsSmithingStone3 = 1034467100, - [Annotation(Name = "[Liurnia of the Lakes - Meeting Place] Dragonwound Grease 1034457010")] - LiurniaOfTheLakesMeetingPlaceDragonwoundGrease = 1034457010, + [Annotation(Name = "[Liurnia of the Lakes - Meeting Place] Dragonwound Grease 1034457010")] + LiurniaOfTheLakesMeetingPlaceDragonwoundGrease = 1034457010, - [Annotation(Name = "[Liurnia of the Lakes - Meeting Place] Kukri 1034457020")] - LiurniaOfTheLakesMeetingPlaceKukri = 1034457020, + [Annotation(Name = "[Liurnia of the Lakes - Meeting Place] Kukri 1034457020")] + LiurniaOfTheLakesMeetingPlaceKukri = 1034457020, - [Annotation(Name = "[Liurnia of the Lakes - Meeting Place] Academy Glintstone Key 1034457100")] - LiurniaOfTheLakesMeetingPlaceAcademyGlintstoneKey = 1034457100, + [Annotation(Name = "[Liurnia of the Lakes - Meeting Place] Academy Glintstone Key 1034457100")] + LiurniaOfTheLakesMeetingPlaceAcademyGlintstoneKey = 1034457100, - [Annotation(Name = "[Liurnia of the Lakes - Laskyar Ruins] Smithing Stone [3] 1037427010")] - LiurniaOfTheLakesLaskyarRuinsSmithingStone3 = 1037427010, + [Annotation(Name = "[Liurnia of the Lakes - Laskyar Ruins] Smithing Stone [3] 1037427010")] + LiurniaOfTheLakesLaskyarRuinsSmithingStone3 = 1037427010, - [Annotation(Name = "[Liurnia of the Lakes - Laskyar Ruins] Nomadic Warrior's Cookbook [11] 67220")] - LiurniaOfTheLakesLaskyarRuinsNomadicWarriorsCookbook11 = 67220, + [Annotation(Name = "[Liurnia of the Lakes - Laskyar Ruins] Nomadic Warrior's Cookbook [11] 67220")] + LiurniaOfTheLakesLaskyarRuinsNomadicWarriorsCookbook11 = 67220, - [Annotation(Name = "[Moonlight Altar - Cathedral of Manus Celes] Smithing Stone [2] 1035427010")] - MoonlightAltarCathedralOfManusCelesSmithingStone2 = 1035427010, + [Annotation(Name = "[Moonlight Altar - Cathedral of Manus Celes] Smithing Stone [2] 1035427010")] + MoonlightAltarCathedralOfManusCelesSmithingStone2 = 1035427010, - [Annotation(Name = "[Moonlight Altar - Cathedral of Manus Celes] Rune Arc 1035427030")] - MoonlightAltarCathedralOfManusCelesRuneArc = 1035427030, + [Annotation(Name = "[Moonlight Altar - Cathedral of Manus Celes] Rune Arc 1035427030")] + MoonlightAltarCathedralOfManusCelesRuneArc = 1035427030, - [Annotation(Name = "[Moonlight Altar - Cathedral of Manus Celes] Ivory Sickle 1035427040")] - MoonlightAltarCathedralOfManusCelesIvorySickle = 1035427040, + [Annotation(Name = "[Moonlight Altar - Cathedral of Manus Celes] Ivory Sickle 1035427040")] + MoonlightAltarCathedralOfManusCelesIvorySickle = 1035427040, - [Annotation(Name = "[Moonlight Altar - Cathedral of Manus Celes] Starlight Shards 1035427100")] - MoonlightAltarCathedralOfManusCelesStarlightShards_ = 1035427100, + [Annotation(Name = "[Moonlight Altar - Cathedral of Manus Celes] Starlight Shards 1035427100")] + MoonlightAltarCathedralOfManusCelesStarlightShards_ = 1035427100, - [Annotation(Name = "[Moonlight Altar - Cathedral of Manus Celes] Starlight Shards 1035427110")] - MoonlightAltarCathedralOfManusCelesStarlightShards__ = 1035427110, + [Annotation(Name = "[Moonlight Altar - Cathedral of Manus Celes] Starlight Shards 1035427110")] + MoonlightAltarCathedralOfManusCelesStarlightShards__ = 1035427110, - [Annotation(Name = "[Moonlight Altar - Cathedral of Manus Celes] Starlight Shards 1035427120")] - MoonlightAltarCathedralOfManusCelesStarlightShards___ = 1035427120, + [Annotation(Name = "[Moonlight Altar - Cathedral of Manus Celes] Starlight Shards 1035427120")] + MoonlightAltarCathedralOfManusCelesStarlightShards___ = 1035427120, - [Annotation(Name = "[Moonlight Altar - Cathedral of Manus Celes] Starlight Shards 1035427130")] - MoonlightAltarCathedralOfManusCelesStarlightShards____ = 1035427130, + [Annotation(Name = "[Moonlight Altar - Cathedral of Manus Celes] Starlight Shards 1035427130")] + MoonlightAltarCathedralOfManusCelesStarlightShards____ = 1035427130, - [Annotation(Name = "[Moonlight Altar - Cathedral of Manus Celes] Starlight Shards 1035427140")] - MoonlightAltarCathedralOfManusCelesStarlightShards_____ = 1035427140, + [Annotation(Name = "[Moonlight Altar - Cathedral of Manus Celes] Starlight Shards 1035427140")] + MoonlightAltarCathedralOfManusCelesStarlightShards_____ = 1035427140, - [Annotation(Name = "[Moonlight Altar - Cathedral of Manus Celes] Starlight Shards 1035427150")] - MoonlightAltarCathedralOfManusCelesStarlightShards______ = 1035427150, + [Annotation(Name = "[Moonlight Altar - Cathedral of Manus Celes] Starlight Shards 1035427150")] + MoonlightAltarCathedralOfManusCelesStarlightShards______ = 1035427150, - [Annotation(Name = "[Moonlight Altar - Cathedral of Manus Celes] Starlight Shards 1035427160")] - MoonlightAltarCathedralOfManusCelesStarlightShards_______ = 1035427160, + [Annotation(Name = "[Moonlight Altar - Cathedral of Manus Celes] Starlight Shards 1035427160")] + MoonlightAltarCathedralOfManusCelesStarlightShards_______ = 1035427160, - [Annotation(Name = "[Moonlight Altar - Cathedral of Manus Celes] Starlight Shards 1035427170")] - MoonlightAltarCathedralOfManusCelesStarlightShards________ = 1035427170, + [Annotation(Name = "[Moonlight Altar - Cathedral of Manus Celes] Starlight Shards 1035427170")] + MoonlightAltarCathedralOfManusCelesStarlightShards________ = 1035427170, - [Annotation(Name = "[Moonlight Altar - Cathedral of Manus Celes] Starlight Shards 1035427180")] - MoonlightAltarCathedralOfManusCelesStarlightShards_________ = 1035427180, + [Annotation(Name = "[Moonlight Altar - Cathedral of Manus Celes] Starlight Shards 1035427180")] + MoonlightAltarCathedralOfManusCelesStarlightShards_________ = 1035427180, - [Annotation(Name = "[Moonlight Altar - Cathedral of Manus Celes] Starlight Shards 1035427190")] - MoonlightAltarCathedralOfManusCelesStarlightShards__________ = 1035427190, + [Annotation(Name = "[Moonlight Altar - Cathedral of Manus Celes] Starlight Shards 1035427190")] + MoonlightAltarCathedralOfManusCelesStarlightShards__________ = 1035427190, - [Annotation(Name = "[Liurnia of the Lakes - South Raya Lucaria Gate] Meeting Place Map 1035457100")] - LiurniaOfTheLakesSouthRayaLucariaGateMeetingPlaceMap = 1035457100, + [Annotation(Name = "[Liurnia of the Lakes - South Raya Lucaria Gate] Meeting Place Map 1035457100")] + LiurniaOfTheLakesSouthRayaLucariaGateMeetingPlaceMap = 1035457100, - [Annotation(Name = "[Liurnia of the Lakes - South of Caria Manor] Somber Smithing Stone [4] 1035497020")] - LiurniaOfTheLakesSouthOfCariaManorSomberSmithingStone4 = 1035497020, + [Annotation(Name = "[Liurnia of the Lakes - South of Caria Manor] Somber Smithing Stone [4] 1035497020")] + LiurniaOfTheLakesSouthOfCariaManorSomberSmithingStone4 = 1035497020, - [Annotation(Name = "[Liurnia of the Lakes - North of Sorcerer's Isle] Old Fang 1035487010")] - LiurniaOfTheLakesNorthOfSorcerersIsleOldFang = 1035487010, + [Annotation(Name = "[Liurnia of the Lakes - North of Sorcerer's Isle] Old Fang 1035487010")] + LiurniaOfTheLakesNorthOfSorcerersIsleOldFang = 1035487010, - [Annotation(Name = "[Liurnia of the Lakes - North of Sorcerer's Isle] Soporific Grease 1035487020")] - LiurniaOfTheLakesNorthOfSorcerersIsleSoporificGrease = 1035487020, + [Annotation(Name = "[Liurnia of the Lakes - North of Sorcerer's Isle] Soporific Grease 1035487020")] + LiurniaOfTheLakesNorthOfSorcerersIsleSoporificGrease = 1035487020, - [Annotation(Name = "[Liurnia of the Lakes - North of Sorcerer's Isle] Lump of Flesh 1035487030")] - LiurniaOfTheLakesNorthOfSorcerersIsleLumpOfFlesh = 1035487030, + [Annotation(Name = "[Liurnia of the Lakes - North of Sorcerer's Isle] Lump of Flesh 1035487030")] + LiurniaOfTheLakesNorthOfSorcerersIsleLumpOfFlesh = 1035487030, - [Annotation(Name = "[Liurnia of the Lakes - North of Sorcerer's Isle] Golden Rune [6] 1035487100")] - LiurniaOfTheLakesNorthOfSorcerersIsleGoldenRune6 = 1035487100, + [Annotation(Name = "[Liurnia of the Lakes - North of Sorcerer's Isle] Golden Rune [6] 1035487100")] + LiurniaOfTheLakesNorthOfSorcerersIsleGoldenRune6 = 1035487100, - [Annotation(Name = "[Bellum Highway - East Raya Lucaria Gate] Sanctuary Stone 1036487000")] - BellumHighwayEastRayaLucariaGateSanctuaryStone = 1036487000, + [Annotation(Name = "[Bellum Highway - East Raya Lucaria Gate] Sanctuary Stone 1036487000")] + BellumHighwayEastRayaLucariaGateSanctuaryStone = 1036487000, - [Annotation(Name = "[Bellum Highway - East Raya Lucaria Gate] Golden Rune [1] 1036487100")] - BellumHighwayEastRayaLucariaGateGoldenRune1 = 1036487100, + [Annotation(Name = "[Bellum Highway - East Raya Lucaria Gate] Golden Rune [1] 1036487100")] + BellumHighwayEastRayaLucariaGateGoldenRune1 = 1036487100, - [Annotation(Name = "[Liurnia of the Lakes - Mausoleum Compound] Slumbering Egg 1037487000")] - LiurniaOfTheLakesMausoleumCompoundSlumberingEgg = 1037487000, + [Annotation(Name = "[Liurnia of the Lakes - Mausoleum Compound] Slumbering Egg 1037487000")] + LiurniaOfTheLakesMausoleumCompoundSlumberingEgg = 1037487000, - [Annotation(Name = "[Liurnia of the Lakes - Mausoleum Compound] Golden Rune [3] 1037487010")] - LiurniaOfTheLakesMausoleumCompoundGoldenRune3 = 1037487010, + [Annotation(Name = "[Liurnia of the Lakes - Mausoleum Compound] Golden Rune [3] 1037487010")] + LiurniaOfTheLakesMausoleumCompoundGoldenRune3 = 1037487010, - [Annotation(Name = "[Liurnia of the Lakes - Mausoleum Compound] Golden Rune [3] 1037487020")] - LiurniaOfTheLakesMausoleumCompoundGoldenRune3_ = 1037487020, + [Annotation(Name = "[Liurnia of the Lakes - Mausoleum Compound] Golden Rune [3] 1037487020")] + LiurniaOfTheLakesMausoleumCompoundGoldenRune3_ = 1037487020, - [Annotation(Name = "[Liurnia of the Lakes - Mausoleum Compound] Golden Rune [1] 1037487030")] - LiurniaOfTheLakesMausoleumCompoundGoldenRune1 = 1037487030, + [Annotation(Name = "[Liurnia of the Lakes - Mausoleum Compound] Golden Rune [1] 1037487030")] + LiurniaOfTheLakesMausoleumCompoundGoldenRune1 = 1037487030, - [Annotation(Name = "[Liurnia of the Lakes - Mausoleum Compound] Golden Rune [7] 1037487040")] - LiurniaOfTheLakesMausoleumCompoundGoldenRune7 = 1037487040, + [Annotation(Name = "[Liurnia of the Lakes - Mausoleum Compound] Golden Rune [7] 1037487040")] + LiurniaOfTheLakesMausoleumCompoundGoldenRune7 = 1037487040, - [Annotation(Name = "[Liurnia of the Lakes - Mausoleum Compound] Golden Rune [3] 1037487050")] - LiurniaOfTheLakesMausoleumCompoundGoldenRune3__ = 1037487050, + [Annotation(Name = "[Liurnia of the Lakes - Mausoleum Compound] Golden Rune [3] 1037487050")] + LiurniaOfTheLakesMausoleumCompoundGoldenRune3__ = 1037487050, - [Annotation(Name = "[Liurnia of the Lakes - Mausoleum Compound] Golden Rune [2] 1037487060")] - LiurniaOfTheLakesMausoleumCompoundGoldenRune2 = 1037487060, + [Annotation(Name = "[Liurnia of the Lakes - Mausoleum Compound] Golden Rune [2] 1037487060")] + LiurniaOfTheLakesMausoleumCompoundGoldenRune2 = 1037487060, - [Annotation(Name = "[Liurnia of the Lakes - Mausoleum Compound] Golden Rune [4] 1037487070")] - LiurniaOfTheLakesMausoleumCompoundGoldenRune4 = 1037487070, + [Annotation(Name = "[Liurnia of the Lakes - Mausoleum Compound] Golden Rune [4] 1037487070")] + LiurniaOfTheLakesMausoleumCompoundGoldenRune4 = 1037487070, - [Annotation(Name = "[Liurnia of the Lakes - Mausoleum Compound] Golden Rune [3] 1037487080")] - LiurniaOfTheLakesMausoleumCompoundGoldenRune3___ = 1037487080, + [Annotation(Name = "[Liurnia of the Lakes - Mausoleum Compound] Golden Rune [3] 1037487080")] + LiurniaOfTheLakesMausoleumCompoundGoldenRune3___ = 1037487080, - [Annotation(Name = "[Liurnia of the Lakes - Mausoleum Compound] Golden Rune [1] 1037487100")] - LiurniaOfTheLakesMausoleumCompoundGoldenRune1_ = 1037487100, + [Annotation(Name = "[Liurnia of the Lakes - Mausoleum Compound] Golden Rune [1] 1037487100")] + LiurniaOfTheLakesMausoleumCompoundGoldenRune1_ = 1037487100, - [Annotation(Name = "[Liurnia of the Lakes - The Four Belfries] Somber Smithing Stone [3] 1033477000")] - LiurniaOfTheLakesTheFourBelfriesSomberSmithingStone3 = 1033477000, + [Annotation(Name = "[Liurnia of the Lakes - The Four Belfries] Somber Smithing Stone [3] 1033477000")] + LiurniaOfTheLakesTheFourBelfriesSomberSmithingStone3 = 1033477000, - [Annotation(Name = "[Liurnia of the Lakes - The Four Belfries] Smithing Stone [4] 1033477010")] - LiurniaOfTheLakesTheFourBelfriesSmithingStone4 = 1033477010, + [Annotation(Name = "[Liurnia of the Lakes - The Four Belfries] Smithing Stone [4] 1033477010")] + LiurniaOfTheLakesTheFourBelfriesSmithingStone4 = 1033477010, - [Annotation(Name = "[Liurnia of the Lakes - The Four Belfries] Rune Arc 1033477030")] - LiurniaOfTheLakesTheFourBelfriesRuneArc = 1033477030, + [Annotation(Name = "[Liurnia of the Lakes - The Four Belfries] Rune Arc 1033477030")] + LiurniaOfTheLakesTheFourBelfriesRuneArc = 1033477030, - [Annotation(Name = "[Liurnia of the Lakes - The Four Belfries] Carian Knight's Sword 1033477200")] - LiurniaOfTheLakesTheFourBelfriesCarianKnightsSword = 1033477200, + [Annotation(Name = "[Liurnia of the Lakes - The Four Belfries] Carian Knight's Sword 1033477200")] + LiurniaOfTheLakesTheFourBelfriesCarianKnightsSword = 1033477200, - [Annotation(Name = "[Liurnia of the Lakes - Ruined Labyrinth] Frenzyflame Stone 1038477010")] - LiurniaOfTheLakesRuinedLabyrinthFrenzyflameStone = 1038477010, + [Annotation(Name = "[Liurnia of the Lakes - Ruined Labyrinth] Frenzyflame Stone 1038477010")] + LiurniaOfTheLakesRuinedLabyrinthFrenzyflameStone = 1038477010, - [Annotation(Name = "[Liurnia of the Lakes - Ruined Labyrinth] Stonesword Key 1038477030")] - LiurniaOfTheLakesRuinedLabyrinthStoneswordKey = 1038477030, + [Annotation(Name = "[Liurnia of the Lakes - Ruined Labyrinth] Stonesword Key 1038477030")] + LiurniaOfTheLakesRuinedLabyrinthStoneswordKey = 1038477030, - [Annotation(Name = "[Liurnia of the Lakes - Ruined Labyrinth] Golden Rune [1] 1038477100")] - LiurniaOfTheLakesRuinedLabyrinthGoldenRune1 = 1038477100, + [Annotation(Name = "[Liurnia of the Lakes - Ruined Labyrinth] Golden Rune [1] 1038477100")] + LiurniaOfTheLakesRuinedLabyrinthGoldenRune1 = 1038477100, - [Annotation(Name = "[Liurnia of the Lakes - North of Gate Town Bridge] Smithing Stone [3] 1038447030")] - LiurniaOfTheLakesNorthOfGateTownBridgeSmithingStone3 = 1038447030, + [Annotation(Name = "[Liurnia of the Lakes - North of Gate Town Bridge] Smithing Stone [3] 1038447030")] + LiurniaOfTheLakesNorthOfGateTownBridgeSmithingStone3 = 1038447030, - [Annotation(Name = "[Liurnia of the Lakes - North of Gate Town Bridge] Land Squirt Ashes 1038447040")] - LiurniaOfTheLakesNorthOfGateTownBridgeLandSquirtAshes = 1038447040, + [Annotation(Name = "[Liurnia of the Lakes - North of Gate Town Bridge] Land Squirt Ashes 1038447040")] + LiurniaOfTheLakesNorthOfGateTownBridgeLandSquirtAshes = 1038447040, - [Annotation(Name = "[Liurnia - Liurnia Highway South Endpoint] Treespear 1040407000")] - LiurniaLiurniaHighwaySouthEndpointTreespear = 1040407000, + [Annotation(Name = "[Liurnia - Liurnia Highway South Endpoint] Treespear 1040407000")] + LiurniaLiurniaHighwaySouthEndpointTreespear = 1040407000, - [Annotation(Name = "[Liurnia of the Lakes - Laskyar Ruins] Glintstone Craftsman's Cookbook [2] 67450")] - LiurniaOfTheLakesLaskyarRuinsGlintstoneCraftsmansCookbook2 = 67450, + [Annotation(Name = "[Liurnia of the Lakes - Laskyar Ruins] Glintstone Craftsman's Cookbook [2] 67450")] + LiurniaOfTheLakesLaskyarRuinsGlintstoneCraftsmansCookbook2 = 67450, - [Annotation(Name = "[Liurnia of the Lakes - Laskyar Ruins] Sacrificial Twig 1038417010")] - LiurniaOfTheLakesLaskyarRuinsSacrificialTwig = 1038417010, + [Annotation(Name = "[Liurnia of the Lakes - Laskyar Ruins] Sacrificial Twig 1038417010")] + LiurniaOfTheLakesLaskyarRuinsSacrificialTwig = 1038417010, - [Annotation(Name = "[Liurnia of the Lakes - Laskyar Ruins] Gravitas 1038417100")] - LiurniaOfTheLakesLaskyarRuinsGravitas = 1038417100, + [Annotation(Name = "[Liurnia of the Lakes - Laskyar Ruins] Gravitas 1038417100")] + LiurniaOfTheLakesLaskyarRuinsGravitas = 1038417100, - [Annotation(Name = "[Liurnia of the Lakes - Cuckoo's Evergaol] Dragonscale Blade 1033457100")] - LiurniaOfTheLakesCuckoosEvergaolDragonscaleBlade = 1033457100, + [Annotation(Name = "[Liurnia of the Lakes - Cuckoo's Evergaol] Dragonscale Blade 1033457100")] + LiurniaOfTheLakesCuckoosEvergaolDragonscaleBlade = 1033457100, - [Annotation(Name = "[Liurnia of the Lakes - Bellum Highway] Somber Smithing Stone [3] 1036477000")] - LiurniaOfTheLakesBellumHighwaySomberSmithingStone3 = 1036477000, + [Annotation(Name = "[Liurnia of the Lakes - Bellum Highway] Somber Smithing Stone [3] 1036477000")] + LiurniaOfTheLakesBellumHighwaySomberSmithingStone3 = 1036477000, - [Annotation(Name = "[Liurnia of the Lakes - Bellum Highway] Golden Rune [1] 1036477100")] - LiurniaOfTheLakesBellumHighwayGoldenRune1 = 1036477100, + [Annotation(Name = "[Liurnia of the Lakes - Bellum Highway] Golden Rune [1] 1036477100")] + LiurniaOfTheLakesBellumHighwayGoldenRune1 = 1036477100, - [Annotation(Name = "[Moonlight Altar - Moonfolk Ruins] Albinauric Bloodclot 1034427020")] - MoonlightAltarMoonfolkRuinsAlbinauricBloodclot = 1034427020, + [Annotation(Name = "[Moonlight Altar - Moonfolk Ruins] Albinauric Bloodclot 1034427020")] + MoonlightAltarMoonfolkRuinsAlbinauricBloodclot = 1034427020, - [Annotation(Name = "[Moonlight Altar - Moonfolk Ruins] Smithing Stone [2] 1034427030")] - MoonlightAltarMoonfolkRuinsSmithingStone2 = 1034427030, + [Annotation(Name = "[Moonlight Altar - Moonfolk Ruins] Smithing Stone [2] 1034427030")] + MoonlightAltarMoonfolkRuinsSmithingStone2 = 1034427030, - [Annotation(Name = "[Moonlight Altar - Moonfolk Ruins] Crystal Sword 1034427050")] - MoonlightAltarMoonfolkRuinsCrystalSword = 1034427050, + [Annotation(Name = "[Moonlight Altar - Moonfolk Ruins] Crystal Sword 1034427050")] + MoonlightAltarMoonfolkRuinsCrystalSword = 1034427050, - [Annotation(Name = "[Moonlight Altar - Moonfolk Ruins] Larval Tear 1034427060")] - MoonlightAltarMoonfolkRuinsLarvalTear = 1034427060, + [Annotation(Name = "[Moonlight Altar - Moonfolk Ruins] Larval Tear 1034427060")] + MoonlightAltarMoonfolkRuinsLarvalTear = 1034427060, - [Annotation(Name = "[Liurnia of the Lakes - Converted Tower] Magic Grease 1034437000")] - LiurniaOfTheLakesConvertedTowerMagicGrease = 1034437000, + [Annotation(Name = "[Liurnia of the Lakes - Converted Tower] Magic Grease 1034437000")] + LiurniaOfTheLakesConvertedTowerMagicGrease = 1034437000, - [Annotation(Name = "[Liurnia of the Lakes - Converted Tower] Memory Stone 60410")] - LiurniaOfTheLakesConvertedTowerMemoryStone = 60410, + [Annotation(Name = "[Liurnia of the Lakes - Converted Tower] Memory Stone 60410")] + LiurniaOfTheLakesConvertedTowerMemoryStone = 60410, - [Annotation(Name = "[Liurnia of the Lakes - Converted Tower] Golden Rune [6] 1034437200")] - LiurniaOfTheLakesConvertedTowerGoldenRune6 = 1034437200, + [Annotation(Name = "[Liurnia of the Lakes - Converted Tower] Golden Rune [6] 1034437200")] + LiurniaOfTheLakesConvertedTowerGoldenRune6 = 1034437200, - [Annotation(Name = "[Liurnia of the Lakes - Converted Tower] Cuckoo Glintstone 1034437300")] - LiurniaOfTheLakesConvertedTowerCuckooGlintstone = 1034437300, + [Annotation(Name = "[Liurnia of the Lakes - Converted Tower] Cuckoo Glintstone 1034437300")] + LiurniaOfTheLakesConvertedTowerCuckooGlintstone = 1034437300, - [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Rune Arc 1035507000")] - LiurniaOfTheLakesCariaManorRuneArc = 1035507000, + [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Rune Arc 1035507000")] + LiurniaOfTheLakesCariaManorRuneArc = 1035507000, - [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Golden Rune [4] 1035507010")] - LiurniaOfTheLakesCariaManorGoldenRune4 = 1035507010, + [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Golden Rune [4] 1035507010")] + LiurniaOfTheLakesCariaManorGoldenRune4 = 1035507010, - [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Stonesword Key 1035507020")] - LiurniaOfTheLakesCariaManorStoneswordKey = 1035507020, + [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Stonesword Key 1035507020")] + LiurniaOfTheLakesCariaManorStoneswordKey = 1035507020, - [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Slumbering Egg 1035507030")] - LiurniaOfTheLakesCariaManorSlumberingEgg = 1035507030, + [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Slumbering Egg 1035507030")] + LiurniaOfTheLakesCariaManorSlumberingEgg = 1035507030, - [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Glintstone Craftsman's Cookbook [6] 67460")] - LiurniaOfTheLakesCariaManorGlintstoneCraftsmansCookbook6 = 67460, + [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Glintstone Craftsman's Cookbook [6] 67460")] + LiurniaOfTheLakesCariaManorGlintstoneCraftsmansCookbook6 = 67460, - [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Somber Smithing Stone [3] 1035507050")] - LiurniaOfTheLakesCariaManorSomberSmithingStone3 = 1035507050, + [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Somber Smithing Stone [3] 1035507050")] + LiurniaOfTheLakesCariaManorSomberSmithingStone3 = 1035507050, - [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Golden Rune [3] 1035507060")] - LiurniaOfTheLakesCariaManorGoldenRune3 = 1035507060, + [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Golden Rune [3] 1035507060")] + LiurniaOfTheLakesCariaManorGoldenRune3 = 1035507060, - [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Crystal Dart 1035507070")] - LiurniaOfTheLakesCariaManorCrystalDart = 1035507070, + [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Crystal Dart 1035507070")] + LiurniaOfTheLakesCariaManorCrystalDart = 1035507070, - [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Smithing Stone [4] 1035507080")] - LiurniaOfTheLakesCariaManorSmithingStone4 = 1035507080, + [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Smithing Stone [4] 1035507080")] + LiurniaOfTheLakesCariaManorSmithingStone4 = 1035507080, - [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Ash of War: Carian Grandeur 1035507090")] - LiurniaOfTheLakesCariaManorAshOfWarCarianGrandeur = 1035507090, + [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Ash of War: Carian Grandeur 1035507090")] + LiurniaOfTheLakesCariaManorAshOfWarCarianGrandeur = 1035507090, - [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Somber Smithing Stone [3] 1035507100")] - LiurniaOfTheLakesCariaManorSomberSmithingStone3_ = 1035507100, + [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Somber Smithing Stone [3] 1035507100")] + LiurniaOfTheLakesCariaManorSomberSmithingStone3_ = 1035507100, - [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Spellproof Dried Liver 1035507110")] - LiurniaOfTheLakesCariaManorSpellproofDriedLiver = 1035507110, + [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Spellproof Dried Liver 1035507110")] + LiurniaOfTheLakesCariaManorSpellproofDriedLiver = 1035507110, - [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Rimed Crystal Bud 1035507120")] - LiurniaOfTheLakesCariaManorRimedCrystalBud = 1035507120, + [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Rimed Crystal Bud 1035507120")] + LiurniaOfTheLakesCariaManorRimedCrystalBud = 1035507120, - [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Smithing Stone [2] 1035507130")] - LiurniaOfTheLakesCariaManorSmithingStone2 = 1035507130, + [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Smithing Stone [2] 1035507130")] + LiurniaOfTheLakesCariaManorSmithingStone2 = 1035507130, - [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Smithing Stone [4] 1035507140")] - LiurniaOfTheLakesCariaManorSmithingStone4_ = 1035507140, + [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Smithing Stone [4] 1035507140")] + LiurniaOfTheLakesCariaManorSmithingStone4_ = 1035507140, - [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Urumi 1035507150")] - LiurniaOfTheLakesCariaManorUrumi = 1035507150, + [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Urumi 1035507150")] + LiurniaOfTheLakesCariaManorUrumi = 1035507150, - [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Smithing Stone [3] 1035507160")] - LiurniaOfTheLakesCariaManorSmithingStone3 = 1035507160, + [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Smithing Stone [3] 1035507160")] + LiurniaOfTheLakesCariaManorSmithingStone3 = 1035507160, - [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Golden Rune [4] 1035507170")] - LiurniaOfTheLakesCariaManorGoldenRune4_ = 1035507170, + [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Golden Rune [4] 1035507170")] + LiurniaOfTheLakesCariaManorGoldenRune4_ = 1035507170, - [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Old Fang 1035507180")] - LiurniaOfTheLakesCariaManorOldFang = 1035507180, + [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Old Fang 1035507180")] + LiurniaOfTheLakesCariaManorOldFang = 1035507180, - [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Glintstone Firefly 1035507190")] - LiurniaOfTheLakesCariaManorGlintstoneFirefly = 1035507190, + [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Glintstone Firefly 1035507190")] + LiurniaOfTheLakesCariaManorGlintstoneFirefly = 1035507190, - [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Ice Crest Shield 1035507200")] - LiurniaOfTheLakesCariaManorIceCrestShield = 1035507200, + [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Ice Crest Shield 1035507200")] + LiurniaOfTheLakesCariaManorIceCrestShield = 1035507200, - [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Magic Grease 1035507220")] - LiurniaOfTheLakesCariaManorMagicGrease = 1035507220, + [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Magic Grease 1035507220")] + LiurniaOfTheLakesCariaManorMagicGrease = 1035507220, - [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Rimed Crystal Bud 1035507230")] - LiurniaOfTheLakesCariaManorRimedCrystalBud_ = 1035507230, + [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Rimed Crystal Bud 1035507230")] + LiurniaOfTheLakesCariaManorRimedCrystalBud_ = 1035507230, - [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Rimed Crystal Bud 1035507240")] - LiurniaOfTheLakesCariaManorRimedCrystalBud__ = 1035507240, + [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Rimed Crystal Bud 1035507240")] + LiurniaOfTheLakesCariaManorRimedCrystalBud__ = 1035507240, - [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Rimed Crystal Bud 1035507250")] - LiurniaOfTheLakesCariaManorRimedCrystalBud___ = 1035507250, + [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Rimed Crystal Bud 1035507250")] + LiurniaOfTheLakesCariaManorRimedCrystalBud___ = 1035507250, - [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Rimed Crystal Bud 1035507260")] - LiurniaOfTheLakesCariaManorRimedCrystalBud____ = 1035507260, + [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Rimed Crystal Bud 1035507260")] + LiurniaOfTheLakesCariaManorRimedCrystalBud____ = 1035507260, - [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Rimed Crystal Bud 1035507270")] - LiurniaOfTheLakesCariaManorRimedCrystalBud_____ = 1035507270, + [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Rimed Crystal Bud 1035507270")] + LiurniaOfTheLakesCariaManorRimedCrystalBud_____ = 1035507270, - [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Rimed Crystal Bud 1035507280")] - LiurniaOfTheLakesCariaManorRimedCrystalBud______ = 1035507280, + [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Rimed Crystal Bud 1035507280")] + LiurniaOfTheLakesCariaManorRimedCrystalBud______ = 1035507280, - [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Golden Seed 1035507300")] - LiurniaOfTheLakesCariaManorGoldenSeed = 1035507300, + [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Golden Seed 1035507300")] + LiurniaOfTheLakesCariaManorGoldenSeed = 1035507300, - [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Cracked Pot 66110")] - LiurniaOfTheLakesCariaManorCrackedPot = 66110, + [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Cracked Pot 66110")] + LiurniaOfTheLakesCariaManorCrackedPot = 66110, - [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Sword of Night and Flame 1035507900")] - LiurniaOfTheLakesCariaManorSwordOfNightandFlame = 1035507900, + [Annotation(Name = "[Liurnia of the Lakes - Caria Manor] Sword of Night and Flame 1035507900")] + LiurniaOfTheLakesCariaManorSwordOfNightandFlame = 1035507900, - [Annotation(Name = "[Bellum Highway - Church of Inhibition] Rune Arc 1037497020")] - BellumHighwayChurchOfInhibitionRuneArc_ = 1037497020, + [Annotation(Name = "[Bellum Highway - Church of Inhibition] Rune Arc 1037497020")] + BellumHighwayChurchOfInhibitionRuneArc_ = 1037497020, - [Annotation(Name = "[Liurnia of the Lakes - Eastern Tableland] Immunizing White Cured Meat 1038467000")] - LiurniaOfTheLakesEasternTablelandImmunizingWhiteCuredMeat = 1038467000, + [Annotation(Name = "[Liurnia of the Lakes - Eastern Tableland] Immunizing White Cured Meat 1038467000")] + LiurniaOfTheLakesEasternTablelandImmunizingWhiteCuredMeat = 1038467000, - [Annotation(Name = "[Liurnia of the Lakes - Eastern Tableland] Golden Rune [1] 1038467400")] - LiurniaOfTheLakesEasternTablelandGoldenRune1 = 1038467400, + [Annotation(Name = "[Liurnia of the Lakes - Eastern Tableland] Golden Rune [1] 1038467400")] + LiurniaOfTheLakesEasternTablelandGoldenRune1 = 1038467400, - [Annotation(Name = "[Bellum Highway - Frenzy-Flaming Tower] Yellow Ember 1038497000")] - BellumHighwayFrenzyFlamingTowerYellowEmber = 1038497000, + [Annotation(Name = "[Bellum Highway - Frenzy-Flaming Tower] Yellow Ember 1038497000")] + BellumHighwayFrenzyFlamingTowerYellowEmber = 1038497000, - [Annotation(Name = "[Bellum Highway - Frenzy-Flaming Tower] Smithing Stone [2] 1038497010")] - BellumHighwayFrenzyFlamingTowerSmithingStone2 = 1038497010, + [Annotation(Name = "[Bellum Highway - Frenzy-Flaming Tower] Smithing Stone [2] 1038497010")] + BellumHighwayFrenzyFlamingTowerSmithingStone2 = 1038497010, - [Annotation(Name = "[Bellum Highway - Frenzy-Flaming Tower] Burred Bolt 1038497030")] - BellumHighwayFrenzyFlamingTowerBurredBolt = 1038497030, + [Annotation(Name = "[Bellum Highway - Frenzy-Flaming Tower] Burred Bolt 1038497030")] + BellumHighwayFrenzyFlamingTowerBurredBolt = 1038497030, - [Annotation(Name = "[Bellum Highway - Frenzy-Flaming Tower] Golden Rune [3] 1038497040")] - BellumHighwayFrenzyFlamingTowerGoldenRune3 = 1038497040, + [Annotation(Name = "[Bellum Highway - Frenzy-Flaming Tower] Golden Rune [3] 1038497040")] + BellumHighwayFrenzyFlamingTowerGoldenRune3 = 1038497040, - [Annotation(Name = "[Bellum Highway - Frenzy-Flaming Tower] Howl of Shabriri 1038497900")] - BellumHighwayFrenzyFlamingTowerHowlOfShabriri = 1038497900, + [Annotation(Name = "[Bellum Highway - Frenzy-Flaming Tower] Howl of Shabriri 1038497900")] + BellumHighwayFrenzyFlamingTowerHowlOfShabriri = 1038497900, - [Annotation(Name = "[Moonlight Altar] Smithing Stone [7] 1033417000")] - MoonlightAltarSmithingStone7 = 1033417000, + [Annotation(Name = "[Moonlight Altar] Smithing Stone [7] 1033417000")] + MoonlightAltarSmithingStone7 = 1033417000, - [Annotation(Name = "[Moonlight Altar] Smithing Stone [8] 1033417010")] - MoonlightAltarSmithingStone8 = 1033417010, + [Annotation(Name = "[Moonlight Altar] Smithing Stone [8] 1033417010")] + MoonlightAltarSmithingStone8 = 1033417010, - [Annotation(Name = "[Moonlight Altar] Smithing Stone [7] 1033417020")] - MoonlightAltarSmithingStone7_ = 1033417020, + [Annotation(Name = "[Moonlight Altar] Smithing Stone [7] 1033417020")] + MoonlightAltarSmithingStone7_ = 1033417020, - [Annotation(Name = "[Moonlight Altar] Dragon Heart 1033417400")] - MoonlightAltarDragonHeart = 1033417400, + [Annotation(Name = "[Moonlight Altar] Dragon Heart 1033417400")] + MoonlightAltarDragonHeart = 1033417400, - [Annotation(Name = "[Moonlight Altar] Dragon Heart 1033417410")] - MoonlightAltarDragonHeart_ = 1033417410, + [Annotation(Name = "[Moonlight Altar] Dragon Heart 1033417410")] + MoonlightAltarDragonHeart_ = 1033417410, - [Annotation(Name = "[Liurnia of the Lakes - Revenger's Shack] Raw Meat Dumpling 1033447000")] - LiurniaOfTheLakesRevengersShackRawMeatDumpling = 1033447000, + [Annotation(Name = "[Liurnia of the Lakes - Revenger's Shack] Raw Meat Dumpling 1033447000")] + LiurniaOfTheLakesRevengersShackRawMeatDumpling = 1033447000, - [Annotation(Name = "[Liurnia of the Lakes - Revenger's Shack] Raw Meat Dumpling 1033447010")] - LiurniaOfTheLakesRevengersShackRawMeatDumpling_ = 1033447010, + [Annotation(Name = "[Liurnia of the Lakes - Revenger's Shack] Raw Meat Dumpling 1033447010")] + LiurniaOfTheLakesRevengersShackRawMeatDumpling_ = 1033447010, - [Annotation(Name = "[Liurnia of the Lakes - Revenger's Shack] Raw Meat Dumpling 1033447020")] - LiurniaOfTheLakesRevengersShackRawMeatDumpling__ = 1033447020, + [Annotation(Name = "[Liurnia of the Lakes - Revenger's Shack] Raw Meat Dumpling 1033447020")] + LiurniaOfTheLakesRevengersShackRawMeatDumpling__ = 1033447020, - [Annotation(Name = "[Liurnia of the Lakes - Revenger's Shack] Raw Meat Dumpling 1033447030")] - LiurniaOfTheLakesRevengersShackRawMeatDumpling___ = 1033447030, + [Annotation(Name = "[Liurnia of the Lakes - Revenger's Shack] Raw Meat Dumpling 1033447030")] + LiurniaOfTheLakesRevengersShackRawMeatDumpling___ = 1033447030, - [Annotation(Name = "[Liurnia of the Lakes - Revenger's Shack] Raw Meat Dumpling 1033447040")] - LiurniaOfTheLakesRevengersShackRawMeatDumpling____ = 1033447040, + [Annotation(Name = "[Liurnia of the Lakes - Revenger's Shack] Raw Meat Dumpling 1033447040")] + LiurniaOfTheLakesRevengersShackRawMeatDumpling____ = 1033447040, - [Annotation(Name = "[Moonlight Altar - Deep Ainsel Well] Gravel Stone 1034417000")] - MoonlightAltarDeepAinselWellGravelStone = 1034417000, + [Annotation(Name = "[Moonlight Altar - Deep Ainsel Well] Gravel Stone 1034417000")] + MoonlightAltarDeepAinselWellGravelStone = 1034417000, - [Annotation(Name = "[Moonlight Altar - Moonfolk Ruins] Golden Rune [9] 1034427000")] - MoonlightAltarMoonfolkRuinsGoldenRune9 = 1034427000, + [Annotation(Name = "[Moonlight Altar - Moonfolk Ruins] Golden Rune [9] 1034427000")] + MoonlightAltarMoonfolkRuinsGoldenRune9 = 1034427000, - [Annotation(Name = "[Moonlight Altar - Moonfolk Ruins] Magic Grease 1034427010")] - MoonlightAltarMoonfolkRuinsMagicGrease = 1034427010, + [Annotation(Name = "[Moonlight Altar - Moonfolk Ruins] Magic Grease 1034427010")] + MoonlightAltarMoonfolkRuinsMagicGrease = 1034427010, - [Annotation(Name = "[Moonlight Altar - Moonfolk Ruins] Rune Arc 1034427040")] - MoonlightAltarMoonfolkRuinsRuneArc = 1034427040, + [Annotation(Name = "[Moonlight Altar - Moonfolk Ruins] Rune Arc 1034427040")] + MoonlightAltarMoonfolkRuinsRuneArc = 1034427040, - [Annotation(Name = "[Moonlight Altar - Moonfolk Ruins] Somber Smithing Stone [8] 1034427100")] - MoonlightAltarMoonfolkRuinsSomberSmithingStone8 = 1034427100, + [Annotation(Name = "[Moonlight Altar - Moonfolk Ruins] Somber Smithing Stone [8] 1034427100")] + MoonlightAltarMoonfolkRuinsSomberSmithingStone8 = 1034427100, - [Annotation(Name = "[Moonlight Altar - Moonfolk Ruins] Dragon Heart 1034427400")] - MoonlightAltarMoonfolkRuinsDragonHeart = 1034427400, + [Annotation(Name = "[Moonlight Altar - Moonfolk Ruins] Dragon Heart 1034427400")] + MoonlightAltarMoonfolkRuinsDragonHeart = 1034427400, - [Annotation(Name = "[Moonlight Altar - Lunar Estate Ruins] Golden Rune [10] 1035417000")] - MoonlightAltarLunarEstateRuinsGoldenRune10 = 1035417000, + [Annotation(Name = "[Moonlight Altar - Lunar Estate Ruins] Golden Rune [10] 1035417000")] + MoonlightAltarLunarEstateRuinsGoldenRune10 = 1035417000, - [Annotation(Name = "[Moonlight Altar - Lunar Estate Ruins] Glintstone Firefly 1035417010")] - MoonlightAltarLunarEstateRuinsGlintstoneFirefly = 1035417010, + [Annotation(Name = "[Moonlight Altar - Lunar Estate Ruins] Glintstone Firefly 1035417010")] + MoonlightAltarLunarEstateRuinsGlintstoneFirefly = 1035417010, - [Annotation(Name = "[Moonlight Altar - Lunar Estate Ruins] Cerulean Amber Medallion +2 1035417100")] - MoonlightAltarLunarEstateRuinsCeruleanAmberMedallion2 = 1035417100, + [Annotation(Name = "[Moonlight Altar - Lunar Estate Ruins] Cerulean Amber Medallion +2 1035417100")] + MoonlightAltarLunarEstateRuinsCeruleanAmberMedallion2 = 1035417100, - [Annotation(Name = "[Moonlight Altar - Lunar Estate Ruins] Smithing Stone [8] 1035417110")] - MoonlightAltarLunarEstateRuinsSmithingStone8 = 1035417110, + [Annotation(Name = "[Moonlight Altar - Lunar Estate Ruins] Smithing Stone [8] 1035417110")] + MoonlightAltarLunarEstateRuinsSmithingStone8 = 1035417110, - [Annotation(Name = "[Liurnia of the Lakes - Laskyar Ruins] Map: Liurnia, East 62020")] - LiurniaOfTheLakesLaskyarRuinsMapLiurniaEast = 62020, + [Annotation(Name = "[Liurnia of the Lakes - Laskyar Ruins] Map: Liurnia, East 62020")] + LiurniaOfTheLakesLaskyarRuinsMapLiurniaEast = 62020, - [Annotation(Name = "[Liurnia of the Lakes - Gate Town Southeast] Map: Liurnia, North 62021")] - LiurniaOfTheLakesGateTownSoutheastMapLiurniaNorth = 62021, + [Annotation(Name = "[Liurnia of the Lakes - Gate Town Southeast] Map: Liurnia, North 62021")] + LiurniaOfTheLakesGateTownSoutheastMapLiurniaNorth = 62021, - [Annotation(Name = "[Liurnia of the Lakes - Kingsrealm Ruins] Map: Liurnia, West 62022")] - LiurniaOfTheLakesKingsrealmRuinsMapLiurniaWest = 62022, + [Annotation(Name = "[Liurnia of the Lakes - Kingsrealm Ruins] Map: Liurnia, West 62022")] + LiurniaOfTheLakesKingsrealmRuinsMapLiurniaWest = 62022, - [Annotation(Name = "[Mt. Gelmir - Before Hermit Shack] Golden Rune [2] 1035527010")] - MtGelmirBeforeHermitShackGoldenRune2 = 1035527010, + [Annotation(Name = "[Mt. Gelmir - Before Hermit Shack] Golden Rune [2] 1035527010")] + MtGelmirBeforeHermitShackGoldenRune2 = 1035527010, - [Annotation(Name = "[Mt. Gelmir - Before Hermit Shack] Golden Rune [4] 1035527020")] - MtGelmirBeforeHermitShackGoldenRune4 = 1035527020, + [Annotation(Name = "[Mt. Gelmir - Before Hermit Shack] Golden Rune [4] 1035527020")] + MtGelmirBeforeHermitShackGoldenRune4 = 1035527020, - [Annotation(Name = "[Mt. Gelmir - Before Hermit Shack] Golden Rune [2] 1035527030")] - MtGelmirBeforeHermitShackGoldenRune2_ = 1035527030, + [Annotation(Name = "[Mt. Gelmir - Before Hermit Shack] Golden Rune [2] 1035527030")] + MtGelmirBeforeHermitShackGoldenRune2_ = 1035527030, - [Annotation(Name = "[Mt. Gelmir - Before Hermit Shack] Golden Rune [6] 1035527040")] - MtGelmirBeforeHermitShackGoldenRune6 = 1035527040, + [Annotation(Name = "[Mt. Gelmir - Before Hermit Shack] Golden Rune [6] 1035527040")] + MtGelmirBeforeHermitShackGoldenRune6 = 1035527040, - [Annotation(Name = "[Mt. Gelmir - Seethewater Terminus] Smoldering Butterfly 1035537000")] - MtGelmirSeethewaterTerminusSmolderingButterfly = 1035537000, + [Annotation(Name = "[Mt. Gelmir - Seethewater Terminus] Smoldering Butterfly 1035537000")] + MtGelmirSeethewaterTerminusSmolderingButterfly = 1035537000, - [Annotation(Name = "[Mt. Gelmir - Seethewater Terminus] Golden Rune [3] 1035537010")] - MtGelmirSeethewaterTerminusGoldenRune3 = 1035537010, + [Annotation(Name = "[Mt. Gelmir - Seethewater Terminus] Golden Rune [3] 1035537010")] + MtGelmirSeethewaterTerminusGoldenRune3 = 1035537010, - [Annotation(Name = "[Mt. Gelmir - Seethewater Terminus] Mushroom 1035537020")] - MtGelmirSeethewaterTerminusMushroom = 1035537020, + [Annotation(Name = "[Mt. Gelmir - Seethewater Terminus] Mushroom 1035537020")] + MtGelmirSeethewaterTerminusMushroom = 1035537020, - [Annotation(Name = "[Mt. Gelmir - Seethewater Terminus] Smoldering Butterfly 1035537030")] - MtGelmirSeethewaterTerminusSmolderingButterfly_ = 1035537030, + [Annotation(Name = "[Mt. Gelmir - Seethewater Terminus] Smoldering Butterfly 1035537030")] + MtGelmirSeethewaterTerminusSmolderingButterfly_ = 1035537030, - [Annotation(Name = "[Mt. Gelmir - Seethewater Terminus] Smoldering Butterfly 1035537040")] - MtGelmirSeethewaterTerminusSmolderingButterfly__ = 1035537040, + [Annotation(Name = "[Mt. Gelmir - Seethewater Terminus] Smoldering Butterfly 1035537040")] + MtGelmirSeethewaterTerminusSmolderingButterfly__ = 1035537040, - [Annotation(Name = "[Mt. Gelmir - Seethewater Terminus] Golden Rune [5] 1035537050")] - MtGelmirSeethewaterTerminusGoldenRune5 = 1035537050, + [Annotation(Name = "[Mt. Gelmir - Seethewater Terminus] Golden Rune [5] 1035537050")] + MtGelmirSeethewaterTerminusGoldenRune5 = 1035537050, - [Annotation(Name = "[Mt. Gelmir - Fort Laiedd] Dragonwound Grease 1035547000")] - MtGelmirFortLaieddDragonwoundGrease = 1035547000, + [Annotation(Name = "[Mt. Gelmir - Fort Laiedd] Dragonwound Grease 1035547000")] + MtGelmirFortLaieddDragonwoundGrease = 1035547000, - [Annotation(Name = "[Mt. Gelmir - Fort Laiedd] Golden Rune [3] 1035547010")] - MtGelmirFortLaieddGoldenRune3 = 1035547010, + [Annotation(Name = "[Mt. Gelmir - Fort Laiedd] Golden Rune [3] 1035547010")] + MtGelmirFortLaieddGoldenRune3 = 1035547010, - [Annotation(Name = "[Mt. Gelmir - Fort Laiedd] Stonesword Key 1035547020")] - MtGelmirFortLaieddStoneswordKey = 1035547020, + [Annotation(Name = "[Mt. Gelmir - Fort Laiedd] Stonesword Key 1035547020")] + MtGelmirFortLaieddStoneswordKey = 1035547020, - [Annotation(Name = "[Mt. Gelmir - Fort Laiedd] Armorer's Cookbook [7] 67250")] - MtGelmirFortLaieddArmorersCookbook7 = 67250, + [Annotation(Name = "[Mt. Gelmir - Fort Laiedd] Armorer's Cookbook [7] 67250")] + MtGelmirFortLaieddArmorersCookbook7 = 67250, - [Annotation(Name = "[Mt. Gelmir - Fort Laiedd] Fire Scorpion Charm 1035547050")] - MtGelmirFortLaieddFireScorpionCharm = 1035547050, + [Annotation(Name = "[Mt. Gelmir - Fort Laiedd] Fire Scorpion Charm 1035547050")] + MtGelmirFortLaieddFireScorpionCharm = 1035547050, - [Annotation(Name = "[Mt. Gelmir - Fort Laiedd] Golden Rune [8] 1035547060")] - MtGelmirFortLaieddGoldenRune8 = 1035547060, + [Annotation(Name = "[Mt. Gelmir - Fort Laiedd] Golden Rune [8] 1035547060")] + MtGelmirFortLaieddGoldenRune8 = 1035547060, - [Annotation(Name = "[Mt. Gelmir - Fort Laiedd] Slumbering Egg 1035547070")] - MtGelmirFortLaieddSlumberingEgg = 1035547070, + [Annotation(Name = "[Mt. Gelmir - Fort Laiedd] Slumbering Egg 1035547070")] + MtGelmirFortLaieddSlumberingEgg = 1035547070, - [Annotation(Name = "[Altus Plateau - Perfumer's Ruins] Golden Rune [5] 1036517000")] - AltusPlateauPerfumersRuinsGoldenRune5 = 1036517000, + [Annotation(Name = "[Altus Plateau - Perfumer's Ruins] Golden Rune [5] 1036517000")] + AltusPlateauPerfumersRuinsGoldenRune5 = 1036517000, - [Annotation(Name = "[Altus Plateau - Perfumer's Ruins] Perfumer's Cookbook [1] 67840")] - AltusPlateauPerfumersRuinsPerfumersCookbook1 = 67840, + [Annotation(Name = "[Altus Plateau - Perfumer's Ruins] Perfumer's Cookbook [1] 67840")] + AltusPlateauPerfumersRuinsPerfumersCookbook1 = 67840, - [Annotation(Name = "[Altus Plateau - Perfumer's Ruins] Perfume Bottle 66730")] - AltusPlateauPerfumersRuinsPerfumeBottle = 66730, + [Annotation(Name = "[Altus Plateau - Perfumer's Ruins] Perfume Bottle 66730")] + AltusPlateauPerfumersRuinsPerfumeBottle = 66730, - [Annotation(Name = "[Mt. Gelmir - Craftsman's Shack] Smithing Stone [6] 1036527000")] - MtGelmirCraftsmansShackSmithingStone6 = 1036527000, + [Annotation(Name = "[Mt. Gelmir - Craftsman's Shack] Smithing Stone [6] 1036527000")] + MtGelmirCraftsmansShackSmithingStone6 = 1036527000, - [Annotation(Name = "[Mt. Gelmir - Craftsman's Shack] Perfumer's Talisman 1036527010")] - MtGelmirCraftsmansShackPerfumersTalisman = 1036527010, + [Annotation(Name = "[Mt. Gelmir - Craftsman's Shack] Perfumer's Talisman 1036527010")] + MtGelmirCraftsmansShackPerfumersTalisman = 1036527010, - [Annotation(Name = "[Mt. Gelmir - Craftsman's Shack] Budding Cave Moss 1036527020")] - MtGelmirCraftsmansShackBuddingCaveMoss = 1036527020, + [Annotation(Name = "[Mt. Gelmir - Craftsman's Shack] Budding Cave Moss 1036527020")] + MtGelmirCraftsmansShackBuddingCaveMoss = 1036527020, - [Annotation(Name = "[Mt. Gelmir - Craftsman's Shack] Nascent Butterfly 1036527030")] - MtGelmirCraftsmansShackNascentButterfly = 1036527030, + [Annotation(Name = "[Mt. Gelmir - Craftsman's Shack] Nascent Butterfly 1036527030")] + MtGelmirCraftsmansShackNascentButterfly = 1036527030, - [Annotation(Name = "[Mt. Gelmir - Craftsman's Shack] Gravel Stone 1036527040")] - MtGelmirCraftsmansShackGravelStone = 1036527040, + [Annotation(Name = "[Mt. Gelmir - Craftsman's Shack] Gravel Stone 1036527040")] + MtGelmirCraftsmansShackGravelStone = 1036527040, - [Annotation(Name = "[Mt. Gelmir - Craftsman's Shack] Roiling Magma 1036527050")] - MtGelmirCraftsmansShackRoilingMagma = 1036527050, + [Annotation(Name = "[Mt. Gelmir - Craftsman's Shack] Roiling Magma 1036527050")] + MtGelmirCraftsmansShackRoilingMagma = 1036527050, - [Annotation(Name = "[Mt. Gelmir - Craftsman's Shack] Pulley Crossbow 1036527060")] - MtGelmirCraftsmansShackPulleyCrossbow = 1036527060, + [Annotation(Name = "[Mt. Gelmir - Craftsman's Shack] Pulley Crossbow 1036527060")] + MtGelmirCraftsmansShackPulleyCrossbow = 1036527060, - [Annotation(Name = "[Mt. Gelmir - Craftsman's Shack] Perfume Bottle 66740")] - MtGelmirCraftsmansShackPerfumeBottle = 66740, + [Annotation(Name = "[Mt. Gelmir - Craftsman's Shack] Perfume Bottle 66740")] + MtGelmirCraftsmansShackPerfumeBottle = 66740, - [Annotation(Name = "[Mt. Gelmir - Outside Volcano Manor] Golden Rune [6] 1036537000")] - MtGelmirOutsideVolcanoManorGoldenRune6 = 1036537000, + [Annotation(Name = "[Mt. Gelmir - Outside Volcano Manor] Golden Rune [6] 1036537000")] + MtGelmirOutsideVolcanoManorGoldenRune6 = 1036537000, - [Annotation(Name = "[Mt. Gelmir - Volcano Manor Entrance] Golden Rune [3] 1036547000")] - MtGelmirVolcanoManorEntranceGoldenRune3 = 1036547000, + [Annotation(Name = "[Mt. Gelmir - Volcano Manor Entrance] Golden Rune [3] 1036547000")] + MtGelmirVolcanoManorEntranceGoldenRune3 = 1036547000, - [Annotation(Name = "[Mt. Gelmir - Volcano Manor Entrance] Smoldering Butterfly 1036547010")] - MtGelmirVolcanoManorEntranceSmolderingButterfly = 1036547010, + [Annotation(Name = "[Mt. Gelmir - Volcano Manor Entrance] Smoldering Butterfly 1036547010")] + MtGelmirVolcanoManorEntranceSmolderingButterfly = 1036547010, - [Annotation(Name = "[Mt. Gelmir - Volcano Manor Entrance] Golden Rune [7] 1036547020")] - MtGelmirVolcanoManorEntranceGoldenRune7 = 1036547020, + [Annotation(Name = "[Mt. Gelmir - Volcano Manor Entrance] Golden Rune [7] 1036547020")] + MtGelmirVolcanoManorEntranceGoldenRune7 = 1036547020, - [Annotation(Name = "[Mt. Gelmir - Volcano Manor Entrance] Smoldering Butterfly 1036547030")] - MtGelmirVolcanoManorEntranceSmolderingButterfly_ = 1036547030, + [Annotation(Name = "[Mt. Gelmir - Volcano Manor Entrance] Smoldering Butterfly 1036547030")] + MtGelmirVolcanoManorEntranceSmolderingButterfly_ = 1036547030, - [Annotation(Name = "[Mt. Gelmir - Volcano Manor Entrance] Starlight Shards 1036547040")] - MtGelmirVolcanoManorEntranceStarlightShards = 1036547040, + [Annotation(Name = "[Mt. Gelmir - Volcano Manor Entrance] Starlight Shards 1036547040")] + MtGelmirVolcanoManorEntranceStarlightShards = 1036547040, - [Annotation(Name = "[Mt. Gelmir - Volcano Manor Entrance] Fireproof Dried Liver 1036547050")] - MtGelmirVolcanoManorEntranceFireproofDriedLiver = 1036547050, + [Annotation(Name = "[Mt. Gelmir - Volcano Manor Entrance] Fireproof Dried Liver 1036547050")] + MtGelmirVolcanoManorEntranceFireproofDriedLiver = 1036547050, - [Annotation(Name = "[Mt. Gelmir - Volcano Manor Entrance] Larval Tear 1036547100")] - MtGelmirVolcanoManorEntranceLarvalTear = 1036547100, + [Annotation(Name = "[Mt. Gelmir - Volcano Manor Entrance] Larval Tear 1036547100")] + MtGelmirVolcanoManorEntranceLarvalTear = 1036547100, - [Annotation(Name = "[Altus Plateau - Abandoned Coffin] Smithing Stone [5] 1037517000")] - AltusPlateauAbandonedCoffinSmithingStone5 = 1037517000, + [Annotation(Name = "[Altus Plateau - Abandoned Coffin] Smithing Stone [5] 1037517000")] + AltusPlateauAbandonedCoffinSmithingStone5 = 1037517000, - [Annotation(Name = "[Altus Plateau - Abandoned Coffin] Fulgurbloom 1037517010")] - AltusPlateauAbandonedCoffinFulgurbloom = 1037517010, + [Annotation(Name = "[Altus Plateau - Abandoned Coffin] Fulgurbloom 1037517010")] + AltusPlateauAbandonedCoffinFulgurbloom = 1037517010, - [Annotation(Name = "[Altus Plateau - Abandoned Coffin] Ruler's Mask 1037517020")] - AltusPlateauAbandonedCoffinRulersMask = 1037517020, + [Annotation(Name = "[Altus Plateau - Abandoned Coffin] Ruler's Mask 1037517020")] + AltusPlateauAbandonedCoffinRulersMask = 1037517020, - [Annotation(Name = "[Mt. Gelmir - Seethewater River] Arrow 1037527020")] - MtGelmirSeethewaterRiverArrow = 1037527020, + [Annotation(Name = "[Mt. Gelmir - Seethewater River] Arrow 1037527020")] + MtGelmirSeethewaterRiverArrow = 1037527020, - [Annotation(Name = "[Mt. Gelmir - Seethewater River] Sacramental Bud 1037527030")] - MtGelmirSeethewaterRiverSacramentalBud = 1037527030, + [Annotation(Name = "[Mt. Gelmir - Seethewater River] Sacramental Bud 1037527030")] + MtGelmirSeethewaterRiverSacramentalBud = 1037527030, - [Annotation(Name = "[Mt. Gelmir - Seethewater River] String 1037527040")] - MtGelmirSeethewaterRiverString = 1037527040, + [Annotation(Name = "[Mt. Gelmir - Seethewater River] String 1037527040")] + MtGelmirSeethewaterRiverString = 1037527040, - [Annotation(Name = "[Mt. Gelmir - Seethewater River] Gold-Tinged Excrement 1037527050")] - MtGelmirSeethewaterRiverGoldTingedExcrement = 1037527050, + [Annotation(Name = "[Mt. Gelmir - Seethewater River] Gold-Tinged Excrement 1037527050")] + MtGelmirSeethewaterRiverGoldTingedExcrement = 1037527050, - [Annotation(Name = "[Mt. Gelmir - Seethewater River] Gold Firefly 1037527060")] - MtGelmirSeethewaterRiverGoldFirefly = 1037527060, + [Annotation(Name = "[Mt. Gelmir - Seethewater River] Gold Firefly 1037527060")] + MtGelmirSeethewaterRiverGoldFirefly = 1037527060, - [Annotation(Name = "[Mt. Gelmir - Seethewater River] Prattling Pate \"You're beautiful\" 1037527070")] - MtGelmirSeethewaterRiverPrattlingPateYourebeautiful = 1037527070, + [Annotation(Name = "[Mt. Gelmir - Seethewater River] Prattling Pate \"You're beautiful\" 1037527070")] + MtGelmirSeethewaterRiverPrattlingPateYourebeautiful = 1037527070, - [Annotation(Name = "[Mt. Gelmir - Seethewater River] Starlight Shards 1037527080")] - MtGelmirSeethewaterRiverStarlightShards = 1037527080, + [Annotation(Name = "[Mt. Gelmir - Seethewater River] Starlight Shards 1037527080")] + MtGelmirSeethewaterRiverStarlightShards = 1037527080, - [Annotation(Name = "[Mt. Gelmir - Seethewater River] Hierodas Glintstone Crown 1037527090")] - MtGelmirSeethewaterRiverHierodasGlintstoneCrown = 1037527090, + [Annotation(Name = "[Mt. Gelmir - Seethewater River] Hierodas Glintstone Crown 1037527090")] + MtGelmirSeethewaterRiverHierodasGlintstoneCrown = 1037527090, - [Annotation(Name = "[Mt. Gelmir - Seethewater River] Errant Sorcerer Manchettes 1037527100")] - MtGelmirSeethewaterRiverErrantSorcererManchettes = 1037527100, + [Annotation(Name = "[Mt. Gelmir - Seethewater River] Errant Sorcerer Manchettes 1037527100")] + MtGelmirSeethewaterRiverErrantSorcererManchettes = 1037527100, - [Annotation(Name = "[Mt. Gelmir - Primeval Sorcerer Azur] Mushroom 1037537000")] - MtGelmirPrimevalSorcererAzurMushroom = 1037537000, + [Annotation(Name = "[Mt. Gelmir - Primeval Sorcerer Azur] Mushroom 1037537000")] + MtGelmirPrimevalSorcererAzurMushroom = 1037537000, - [Annotation(Name = "[Mt. Gelmir - Primeval Sorcerer Azur] Golden Rune [6] 1037537010")] - MtGelmirPrimevalSorcererAzurGoldenRune6 = 1037537010, + [Annotation(Name = "[Mt. Gelmir - Primeval Sorcerer Azur] Golden Rune [6] 1037537010")] + MtGelmirPrimevalSorcererAzurGoldenRune6 = 1037537010, - [Annotation(Name = "[Mt. Gelmir - Primeval Sorcerer Azur] Smithing Stone [5] 1037537020")] - MtGelmirPrimevalSorcererAzurSmithingStone5 = 1037537020, + [Annotation(Name = "[Mt. Gelmir - Primeval Sorcerer Azur] Smithing Stone [5] 1037537020")] + MtGelmirPrimevalSorcererAzurSmithingStone5 = 1037537020, - [Annotation(Name = "[Mt. Gelmir - Minor Erdtree] Beast Blood 1037547000")] - MtGelmirMinorErdtreeBeastBlood = 1037547000, + [Annotation(Name = "[Mt. Gelmir - Minor Erdtree] Beast Blood 1037547000")] + MtGelmirMinorErdtreeBeastBlood = 1037547000, - [Annotation(Name = "[Mt. Gelmir - Minor Erdtree] Stonesword Key 1037547010")] - MtGelmirMinorErdtreeStoneswordKey = 1037547010, + [Annotation(Name = "[Mt. Gelmir - Minor Erdtree] Stonesword Key 1037547010")] + MtGelmirMinorErdtreeStoneswordKey = 1037547010, - [Annotation(Name = "[Mt. Gelmir - Minor Erdtree] Soporific Grease 1037547020")] - MtGelmirMinorErdtreeSoporificGrease = 1037547020, + [Annotation(Name = "[Mt. Gelmir - Minor Erdtree] Soporific Grease 1037547020")] + MtGelmirMinorErdtreeSoporificGrease = 1037547020, - [Annotation(Name = "[Mt. Gelmir - Minor Erdtree] Herba 1037547030")] - MtGelmirMinorErdtreeHerba = 1037547030, + [Annotation(Name = "[Mt. Gelmir - Minor Erdtree] Herba 1037547030")] + MtGelmirMinorErdtreeHerba = 1037547030, - [Annotation(Name = "[Mt. Gelmir - Minor Erdtree] Eye of Yelough 1037547040")] - MtGelmirMinorErdtreeEyeOfYelough = 1037547040, + [Annotation(Name = "[Mt. Gelmir - Minor Erdtree] Eye of Yelough 1037547040")] + MtGelmirMinorErdtreeEyeOfYelough = 1037547040, - [Annotation(Name = "[Mt. Gelmir - Minor Erdtree] Golden Arrow 1037547050")] - MtGelmirMinorErdtreeGoldenArrow = 1037547050, + [Annotation(Name = "[Mt. Gelmir - Minor Erdtree] Golden Arrow 1037547050")] + MtGelmirMinorErdtreeGoldenArrow = 1037547050, - [Annotation(Name = "[Mt. Gelmir - Minor Erdtree] Glass Shard 1037547060")] - MtGelmirMinorErdtreeGlassShard = 1037547060, + [Annotation(Name = "[Mt. Gelmir - Minor Erdtree] Glass Shard 1037547060")] + MtGelmirMinorErdtreeGlassShard = 1037547060, - [Annotation(Name = "[Mt. Gelmir - Minor Erdtree] Nascent Butterfly 1037547070")] - MtGelmirMinorErdtreeNascentButterfly = 1037547070, + [Annotation(Name = "[Mt. Gelmir - Minor Erdtree] Nascent Butterfly 1037547070")] + MtGelmirMinorErdtreeNascentButterfly = 1037547070, - [Annotation(Name = "[Mt. Gelmir - Minor Erdtree] Rejuvenating Boluses 1037547080")] - MtGelmirMinorErdtreeRejuvenatingBoluses = 1037547080, + [Annotation(Name = "[Mt. Gelmir - Minor Erdtree] Rejuvenating Boluses 1037547080")] + MtGelmirMinorErdtreeRejuvenatingBoluses = 1037547080, - [Annotation(Name = "[Mt. Gelmir - Minor Erdtree] Hefty Beast Bone 1037547090")] - MtGelmirMinorErdtreeHeftyBeastBone = 1037547090, + [Annotation(Name = "[Mt. Gelmir - Minor Erdtree] Hefty Beast Bone 1037547090")] + MtGelmirMinorErdtreeHeftyBeastBone = 1037547090, - [Annotation(Name = "[Mt. Gelmir - Minor Erdtree] Golden Rune [6] 1037547100")] - MtGelmirMinorErdtreeGoldenRune6 = 1037547100, + [Annotation(Name = "[Mt. Gelmir - Minor Erdtree] Golden Rune [6] 1037547100")] + MtGelmirMinorErdtreeGoldenRune6 = 1037547100, - [Annotation(Name = "[Mt. Gelmir - Minor Erdtree] Great Arrow 1037547110")] - MtGelmirMinorErdtreeGreatArrow = 1037547110, + [Annotation(Name = "[Mt. Gelmir - Minor Erdtree] Great Arrow 1037547110")] + MtGelmirMinorErdtreeGreatArrow = 1037547110, - [Annotation(Name = "[Mt. Gelmir - Minor Erdtree] Fan Daggers 1037547120")] - MtGelmirMinorErdtreeFanDaggers = 1037547120, + [Annotation(Name = "[Mt. Gelmir - Minor Erdtree] Fan Daggers 1037547120")] + MtGelmirMinorErdtreeFanDaggers = 1037547120, - [Annotation(Name = "[Mt. Gelmir - Minor Erdtree] Drawstring Fire Grease 1037547130")] - MtGelmirMinorErdtreeDrawstringFireGrease = 1037547130, + [Annotation(Name = "[Mt. Gelmir - Minor Erdtree] Drawstring Fire Grease 1037547130")] + MtGelmirMinorErdtreeDrawstringFireGrease = 1037547130, - [Annotation(Name = "[Mt. Gelmir - Minor Erdtree] Golden Rune [4] 1037547140")] - MtGelmirMinorErdtreeGoldenRune4 = 1037547140, + [Annotation(Name = "[Mt. Gelmir - Minor Erdtree] Golden Rune [4] 1037547140")] + MtGelmirMinorErdtreeGoldenRune4 = 1037547140, - [Annotation(Name = "[Mt. Gelmir - Minor Erdtree] Scavenger's Curved Sword 1037547150")] - MtGelmirMinorErdtreeScavengersCurvedSword = 1037547150, + [Annotation(Name = "[Mt. Gelmir - Minor Erdtree] Scavenger's Curved Sword 1037547150")] + MtGelmirMinorErdtreeScavengersCurvedSword = 1037547150, - [Annotation(Name = "[Mt. Gelmir - Volcano Cave Entrance] Poison Grease 1037557000")] - MtGelmirVolcanoCaveEntrancePoisonGrease = 1037557000, + [Annotation(Name = "[Mt. Gelmir - Volcano Cave Entrance] Poison Grease 1037557000")] + MtGelmirVolcanoCaveEntrancePoisonGrease = 1037557000, - [Annotation(Name = "[Altus Plateau - Lux Ruins] Nascent Butterfly 1038517000")] - AltusPlateauLuxRuinsNascentButterfly = 1038517000, + [Annotation(Name = "[Altus Plateau - Lux Ruins] Nascent Butterfly 1038517000")] + AltusPlateauLuxRuinsNascentButterfly = 1038517000, - [Annotation(Name = "[Altus Plateau - Lux Ruins] String 1038517010")] - AltusPlateauLuxRuinsString = 1038517010, + [Annotation(Name = "[Altus Plateau - Lux Ruins] String 1038517010")] + AltusPlateauLuxRuinsString = 1038517010, - [Annotation(Name = "[Altus Plateau - Lux Ruins] Lightningproof Dried Liver 1038517020")] - AltusPlateauLuxRuinsLightningproofDriedLiver = 1038517020, + [Annotation(Name = "[Altus Plateau - Lux Ruins] Lightningproof Dried Liver 1038517020")] + AltusPlateauLuxRuinsLightningproofDriedLiver = 1038517020, - [Annotation(Name = "[Altus Plateau - Lux Ruins] Greatshield Talisman 1038517030")] - AltusPlateauLuxRuinsGreatshieldTalisman = 1038517030, + [Annotation(Name = "[Altus Plateau - Lux Ruins] Greatshield Talisman 1038517030")] + AltusPlateauLuxRuinsGreatshieldTalisman = 1038517030, - [Annotation(Name = "[Altus Plateau - Lux Ruins] Lightningproof Dried Liver 1038517040")] - AltusPlateauLuxRuinsLightningproofDriedLiver_ = 1038517040, + [Annotation(Name = "[Altus Plateau - Lux Ruins] Lightningproof Dried Liver 1038517040")] + AltusPlateauLuxRuinsLightningproofDriedLiver_ = 1038517040, - [Annotation(Name = "[Altus Plateau - Lux Ruins] Ritual Sword Talisman 1038517050")] - AltusPlateauLuxRuinsRitualSwordTalisman = 1038517050, + [Annotation(Name = "[Altus Plateau - Lux Ruins] Ritual Sword Talisman 1038517050")] + AltusPlateauLuxRuinsRitualSwordTalisman = 1038517050, - [Annotation(Name = "[Altus Plateau - Lux Ruins] Lightning Grease 1038517060")] - AltusPlateauLuxRuinsLightningGrease = 1038517060, + [Annotation(Name = "[Altus Plateau - Lux Ruins] Lightning Grease 1038517060")] + AltusPlateauLuxRuinsLightningGrease = 1038517060, - [Annotation(Name = "[Altus Plateau - Lux Ruins] String 1038517070")] - AltusPlateauLuxRuinsString_ = 1038517070, + [Annotation(Name = "[Altus Plateau - Lux Ruins] String 1038517070")] + AltusPlateauLuxRuinsString_ = 1038517070, - [Annotation(Name = "[Altus Plateau - Lux Ruins] Golden Rune [3] 1038517080")] - AltusPlateauLuxRuinsGoldenRune3 = 1038517080, + [Annotation(Name = "[Altus Plateau - Lux Ruins] Golden Rune [3] 1038517080")] + AltusPlateauLuxRuinsGoldenRune3 = 1038517080, - [Annotation(Name = "[Altus Plateau - Lux Ruins] Troll's Golden Sword 1038517090")] - AltusPlateauLuxRuinsTrollsGoldenSword = 1038517090, + [Annotation(Name = "[Altus Plateau - Lux Ruins] Troll's Golden Sword 1038517090")] + AltusPlateauLuxRuinsTrollsGoldenSword = 1038517090, - [Annotation(Name = "[Altus Plateau - Wyndham Ruins] Pearldrake Talisman +1 1038527000")] - AltusPlateauWyndhamRuinsPearldrakeTalisman1 = 1038527000, + [Annotation(Name = "[Altus Plateau - Wyndham Ruins] Pearldrake Talisman +1 1038527000")] + AltusPlateauWyndhamRuinsPearldrakeTalisman1 = 1038527000, - [Annotation(Name = "[Altus Plateau - Wyndham Ruins] Smithing Stone [5] 1038527010")] - AltusPlateauWyndhamRuinsSmithingStone5 = 1038527010, + [Annotation(Name = "[Altus Plateau - Wyndham Ruins] Smithing Stone [5] 1038527010")] + AltusPlateauWyndhamRuinsSmithingStone5 = 1038527010, - [Annotation(Name = "[Altus Plateau - Wyndham Ruins] Golden Rune [3] 1038527020")] - AltusPlateauWyndhamRuinsGoldenRune3 = 1038527020, + [Annotation(Name = "[Altus Plateau - Wyndham Ruins] Golden Rune [3] 1038527020")] + AltusPlateauWyndhamRuinsGoldenRune3 = 1038527020, - [Annotation(Name = "[Altus Plateau - Wyndham Ruins] Golden Rune [7] 1038527030")] - AltusPlateauWyndhamRuinsGoldenRune7 = 1038527030, + [Annotation(Name = "[Altus Plateau - Wyndham Ruins] Golden Rune [7] 1038527030")] + AltusPlateauWyndhamRuinsGoldenRune7 = 1038527030, - [Annotation(Name = "[Altus Plateau - Wyndham Ruins] Dappled White Cured Meat 1038527040")] - AltusPlateauWyndhamRuinsDappledWhiteCuredMeat = 1038527040, + [Annotation(Name = "[Altus Plateau - Wyndham Ruins] Dappled White Cured Meat 1038527040")] + AltusPlateauWyndhamRuinsDappledWhiteCuredMeat = 1038527040, - [Annotation(Name = "[Altus Plateau - Wyndham Ruins] Stormhawk Feather 1038527050")] - AltusPlateauWyndhamRuinsStormhawkFeather = 1038527050, + [Annotation(Name = "[Altus Plateau - Wyndham Ruins] Stormhawk Feather 1038527050")] + AltusPlateauWyndhamRuinsStormhawkFeather = 1038527050, - [Annotation(Name = "[Altus Plateau - Wyndham Ruins] Golden Rune [4] 1038527060")] - AltusPlateauWyndhamRuinsGoldenRune4 = 1038527060, + [Annotation(Name = "[Altus Plateau - Wyndham Ruins] Golden Rune [4] 1038527060")] + AltusPlateauWyndhamRuinsGoldenRune4 = 1038527060, - [Annotation(Name = "[Altus Plateau - Wyndham Ruins] Human Bone Shard 1038527070")] - AltusPlateauWyndhamRuinsHumanBoneShard = 1038527070, + [Annotation(Name = "[Altus Plateau - Wyndham Ruins] Human Bone Shard 1038527070")] + AltusPlateauWyndhamRuinsHumanBoneShard = 1038527070, - [Annotation(Name = "[Altus Plateau - Old Altus Tunnel Entrance] Golden Rune [2] 1038537000")] - AltusPlateauOldAltusTunnelEntranceGoldenRune2 = 1038537000, + [Annotation(Name = "[Altus Plateau - Old Altus Tunnel Entrance] Golden Rune [2] 1038537000")] + AltusPlateauOldAltusTunnelEntranceGoldenRune2 = 1038537000, - [Annotation(Name = "[Altus Plateau - Old Altus Tunnel Entrance] Golden Rune [3] 1038537010")] - AltusPlateauOldAltusTunnelEntranceGoldenRune3 = 1038537010, + [Annotation(Name = "[Altus Plateau - Old Altus Tunnel Entrance] Golden Rune [3] 1038537010")] + AltusPlateauOldAltusTunnelEntranceGoldenRune3 = 1038537010, - [Annotation(Name = "[Altus Plateau - Old Altus Tunnel Entrance] Golden Rune [4] 1038537020")] - AltusPlateauOldAltusTunnelEntranceGoldenRune4 = 1038537020, + [Annotation(Name = "[Altus Plateau - Old Altus Tunnel Entrance] Golden Rune [4] 1038537020")] + AltusPlateauOldAltusTunnelEntranceGoldenRune4 = 1038537020, - [Annotation(Name = "[Altus Plateau - Old Altus Tunnel Entrance] Golden Rune [7] 1038537030")] - AltusPlateauOldAltusTunnelEntranceGoldenRune7 = 1038537030, + [Annotation(Name = "[Altus Plateau - Old Altus Tunnel Entrance] Golden Rune [7] 1038537030")] + AltusPlateauOldAltusTunnelEntranceGoldenRune7 = 1038537030, - [Annotation(Name = "[Altus Plateau - Old Altus Tunnel Entrance] Golden Rune [3] 1038537040")] - AltusPlateauOldAltusTunnelEntranceGoldenRune3_ = 1038537040, + [Annotation(Name = "[Altus Plateau - Old Altus Tunnel Entrance] Golden Rune [3] 1038537040")] + AltusPlateauOldAltusTunnelEntranceGoldenRune3_ = 1038537040, - [Annotation(Name = "[Altus Plateau - Old Altus Tunnel Entrance] Somber Smithing Stone [6] 1038537050")] - AltusPlateauOldAltusTunnelEntranceSomberSmithingStone6 = 1038537050, + [Annotation(Name = "[Altus Plateau - Old Altus Tunnel Entrance] Somber Smithing Stone [6] 1038537050")] + AltusPlateauOldAltusTunnelEntranceSomberSmithingStone6 = 1038537050, - [Annotation(Name = "[Altus Plateau - West of Shaded Castle] Bloodrose 1038547000")] - AltusPlateauWestOfShadedCastleBloodrose = 1038547000, + [Annotation(Name = "[Altus Plateau - West of Shaded Castle] Bloodrose 1038547000")] + AltusPlateauWestOfShadedCastleBloodrose = 1038547000, - [Annotation(Name = "[Altus Plateau - West of Shaded Castle] Explosive Greatbolt 1038547010")] - AltusPlateauWestOfShadedCastleExplosiveGreatbolt = 1038547010, + [Annotation(Name = "[Altus Plateau - West of Shaded Castle] Explosive Greatbolt 1038547010")] + AltusPlateauWestOfShadedCastleExplosiveGreatbolt = 1038547010, - [Annotation(Name = "[Altus Plateau - West of Shaded Castle] Golden Rune [8] 1038547020")] - AltusPlateauWestOfShadedCastleGoldenRune8 = 1038547020, + [Annotation(Name = "[Altus Plateau - West of Shaded Castle] Golden Rune [8] 1038547020")] + AltusPlateauWestOfShadedCastleGoldenRune8 = 1038547020, - [Annotation(Name = "[Altus Plateau - West of Shaded Castle] Fire Arrow 1038547030")] - AltusPlateauWestOfShadedCastleFireArrow = 1038547030, + [Annotation(Name = "[Altus Plateau - West of Shaded Castle] Fire Arrow 1038547030")] + AltusPlateauWestOfShadedCastleFireArrow = 1038547030, - [Annotation(Name = "[Altus Plateau - West of Shaded Castle] Golden Vow 1038547050")] - AltusPlateauWestOfShadedCastleGoldenVow = 1038547050, + [Annotation(Name = "[Altus Plateau - West of Shaded Castle] Golden Vow 1038547050")] + AltusPlateauWestOfShadedCastleGoldenVow = 1038547050, - [Annotation(Name = "[Altus Plateau - West of Shaded Castle] Arteria Leaf 1038547060")] - AltusPlateauWestOfShadedCastleArteriaLeaf = 1038547060, + [Annotation(Name = "[Altus Plateau - West of Shaded Castle] Arteria Leaf 1038547060")] + AltusPlateauWestOfShadedCastleArteriaLeaf = 1038547060, - [Annotation(Name = "[Altus Plateau - West of Shaded Castle] Throwing Dagger 1038547070")] - AltusPlateauWestOfShadedCastleThrowingDagger = 1038547070, + [Annotation(Name = "[Altus Plateau - West of Shaded Castle] Throwing Dagger 1038547070")] + AltusPlateauWestOfShadedCastleThrowingDagger = 1038547070, - [Annotation(Name = "[Altus Plateau - West of Shaded Castle] Beast Blood 1038547080")] - AltusPlateauWestOfShadedCastleBeastBlood = 1038547080, + [Annotation(Name = "[Altus Plateau - West of Shaded Castle] Beast Blood 1038547080")] + AltusPlateauWestOfShadedCastleBeastBlood = 1038547080, - [Annotation(Name = "[Altus Plateau - West of Shaded Castle] Smithing Stone [5] 1038547090")] - AltusPlateauWestOfShadedCastleSmithingStone5 = 1038547090, + [Annotation(Name = "[Altus Plateau - West of Shaded Castle] Smithing Stone [5] 1038547090")] + AltusPlateauWestOfShadedCastleSmithingStone5 = 1038547090, - [Annotation(Name = "[Altus Plateau - West of Shaded Castle] Antspur Rapier 1038547100")] - AltusPlateauWestOfShadedCastleAntspurRapier = 1038547100, + [Annotation(Name = "[Altus Plateau - West of Shaded Castle] Antspur Rapier 1038547100")] + AltusPlateauWestOfShadedCastleAntspurRapier = 1038547100, - [Annotation(Name = "[Altus Plateau - West of Shaded Castle] Pulley Bow 1038547110")] - AltusPlateauWestOfShadedCastlePulleyBow = 1038547110, + [Annotation(Name = "[Altus Plateau - West of Shaded Castle] Pulley Bow 1038547110")] + AltusPlateauWestOfShadedCastlePulleyBow = 1038547110, - [Annotation(Name = "[Altus Plateau - West of Shaded Castle] Sacred Butchering Knife 1038547700")] - AltusPlateauWestOfShadedCastleSacredButcheringKnife = 1038547700, + [Annotation(Name = "[Altus Plateau - West of Shaded Castle] Sacred Butchering Knife 1038547700")] + AltusPlateauWestOfShadedCastleSacredButcheringKnife = 1038547700, - [Annotation(Name = "[Altus Plateau - Golden Lineage Evergaol] Hefty Beast Bone 1039507000")] - AltusPlateauGoldenLineageEvergaolHeftyBeastBone = 1039507000, + [Annotation(Name = "[Altus Plateau - Golden Lineage Evergaol] Hefty Beast Bone 1039507000")] + AltusPlateauGoldenLineageEvergaolHeftyBeastBone = 1039507000, - [Annotation(Name = "[Altus Plateau - Golden Lineage Evergaol] Stonesword Key 1039507010")] - AltusPlateauGoldenLineageEvergaolStoneswordKey = 1039507010, + [Annotation(Name = "[Altus Plateau - Golden Lineage Evergaol] Stonesword Key 1039507010")] + AltusPlateauGoldenLineageEvergaolStoneswordKey = 1039507010, - [Annotation(Name = "[Altus Plateau - Golden Lineage Evergaol] Golden Rune [4] 1039507020")] - AltusPlateauGoldenLineageEvergaolGoldenRune4 = 1039507020, + [Annotation(Name = "[Altus Plateau - Golden Lineage Evergaol] Golden Rune [4] 1039507020")] + AltusPlateauGoldenLineageEvergaolGoldenRune4 = 1039507020, - [Annotation(Name = "[Altus Plateau - Golden Lineage Evergaol] Godfrey Icon 1039507100")] - AltusPlateauGoldenLineageEvergaolGodfreyIcon = 1039507100, + [Annotation(Name = "[Altus Plateau - Golden Lineage Evergaol] Godfrey Icon 1039507100")] + AltusPlateauGoldenLineageEvergaolGodfreyIcon = 1039507100, - [Annotation(Name = "[Altus Plateau - Altus Highway Junction] Perfume Bottle 66760")] - AltusPlateauAltusHighwayJunctionPerfumeBottle = 66760, + [Annotation(Name = "[Altus Plateau - Altus Highway Junction] Perfume Bottle 66760")] + AltusPlateauAltusHighwayJunctionPerfumeBottle = 66760, - [Annotation(Name = "[Altus Plateau - Altus Highway Junction] Fan Daggers 1039517010")] - AltusPlateauAltusHighwayJunctionFanDaggers = 1039517010, + [Annotation(Name = "[Altus Plateau - Altus Highway Junction] Fan Daggers 1039517010")] + AltusPlateauAltusHighwayJunctionFanDaggers = 1039517010, - [Annotation(Name = "[Altus Plateau - Altus Highway Junction] Sacrificial Twig 1039517020")] - AltusPlateauAltusHighwayJunctionSacrificialTwig = 1039517020, + [Annotation(Name = "[Altus Plateau - Altus Highway Junction] Sacrificial Twig 1039517020")] + AltusPlateauAltusHighwayJunctionSacrificialTwig = 1039517020, - [Annotation(Name = "[Altus Plateau - Altus Highway Junction] Warming Stone 1039517030")] - AltusPlateauAltusHighwayJunctionWarmingStone = 1039517030, + [Annotation(Name = "[Altus Plateau - Altus Highway Junction] Warming Stone 1039517030")] + AltusPlateauAltusHighwayJunctionWarmingStone = 1039517030, - [Annotation(Name = "[Altus Plateau - Altus Highway Junction] Turtle Neck Meat 1039517040")] - AltusPlateauAltusHighwayJunctionTurtleNeckMeat = 1039517040, + [Annotation(Name = "[Altus Plateau - Altus Highway Junction] Turtle Neck Meat 1039517040")] + AltusPlateauAltusHighwayJunctionTurtleNeckMeat = 1039517040, - [Annotation(Name = "[Altus Plateau - Altus Highway Junction] Ash of War: Shared Order 1039517200")] - AltusPlateauAltusHighwayJunctionAshOfWarSharedOrder = 1039517200, + [Annotation(Name = "[Altus Plateau - Altus Highway Junction] Ash of War: Shared Order 1039517200")] + AltusPlateauAltusHighwayJunctionAshOfWarSharedOrder = 1039517200, - [Annotation(Name = "[Altus Plateau - Second Church of Marika] Human Bone Shard 1039527000")] - AltusPlateauSecondChurchOfMarikaHumanBoneShard = 1039527000, + [Annotation(Name = "[Altus Plateau - Second Church of Marika] Human Bone Shard 1039527000")] + AltusPlateauSecondChurchOfMarikaHumanBoneShard = 1039527000, - [Annotation(Name = "[Altus Plateau - Second Church of Marika] Magic Grease 1039527020")] - AltusPlateauSecondChurchOfMarikaMagicGrease = 1039527020, + [Annotation(Name = "[Altus Plateau - Second Church of Marika] Magic Grease 1039527020")] + AltusPlateauSecondChurchOfMarikaMagicGrease = 1039527020, - [Annotation(Name = "[Altus Plateau - Second Church of Marika] Eleonora's Poleblade 1039527700")] - AltusPlateauSecondChurchOfMarikaEleonorasPoleblade = 1039527700, + [Annotation(Name = "[Altus Plateau - Second Church of Marika] Eleonora's Poleblade 1039527700")] + AltusPlateauSecondChurchOfMarikaEleonorasPoleblade = 1039527700, - [Annotation(Name = "[Altus Plateau - Mirage Rise] Golden Rune [4] 1039537000")] - AltusPlateauMirageRiseGoldenRune4 = 1039537000, + [Annotation(Name = "[Altus Plateau - Mirage Rise] Golden Rune [4] 1039537000")] + AltusPlateauMirageRiseGoldenRune4 = 1039537000, - [Annotation(Name = "[Altus Plateau - Mirage Rise] Blood Grease 1039537010")] - AltusPlateauMirageRiseBloodGrease = 1039537010, + [Annotation(Name = "[Altus Plateau - Mirage Rise] Blood Grease 1039537010")] + AltusPlateauMirageRiseBloodGrease = 1039537010, - [Annotation(Name = "[Altus Plateau - Mirage Rise] Golden Rune [3] 1039537020")] - AltusPlateauMirageRiseGoldenRune3 = 1039537020, + [Annotation(Name = "[Altus Plateau - Mirage Rise] Golden Rune [3] 1039537020")] + AltusPlateauMirageRiseGoldenRune3 = 1039537020, - [Annotation(Name = "[Altus Plateau - Mirage Rise] Miquella's Lily 1039537030")] - AltusPlateauMirageRiseMiquellasLily = 1039537030, + [Annotation(Name = "[Altus Plateau - Mirage Rise] Miquella's Lily 1039537030")] + AltusPlateauMirageRiseMiquellasLily = 1039537030, - [Annotation(Name = "[Altus Plateau - Mirage Rise] Nascent Butterfly 1039537040")] - AltusPlateauMirageRiseNascentButterfly = 1039537040, + [Annotation(Name = "[Altus Plateau - Mirage Rise] Nascent Butterfly 1039537040")] + AltusPlateauMirageRiseNascentButterfly = 1039537040, - [Annotation(Name = "[Altus Plateau - Mirage Rise] Unseen Blade 1039537050")] - AltusPlateauMirageRiseUnseenBlade = 1039537050, + [Annotation(Name = "[Altus Plateau - Mirage Rise] Unseen Blade 1039537050")] + AltusPlateauMirageRiseUnseenBlade = 1039537050, - [Annotation(Name = "[Altus Plateau - Mirage Rise] Slumbering Egg 1039537060")] - AltusPlateauMirageRiseSlumberingEgg = 1039537060, + [Annotation(Name = "[Altus Plateau - Mirage Rise] Slumbering Egg 1039537060")] + AltusPlateauMirageRiseSlumberingEgg = 1039537060, - [Annotation(Name = "[Altus Plateau - Mirage Rise] Golden Rune [3] 1039537070")] - AltusPlateauMirageRiseGoldenRune3_ = 1039537070, + [Annotation(Name = "[Altus Plateau - Mirage Rise] Golden Rune [3] 1039537070")] + AltusPlateauMirageRiseGoldenRune3_ = 1039537070, - [Annotation(Name = "[Altus Plateau - Mirage Rise] Mirage Riddle 1039537080")] - AltusPlateauMirageRiseMirageRiddle = 1039537080, + [Annotation(Name = "[Altus Plateau - Mirage Rise] Mirage Riddle 1039537080")] + AltusPlateauMirageRiseMirageRiddle = 1039537080, - [Annotation(Name = "[Altus Plateau - Mirage Rise] Crepus's Vial 1039537700")] - AltusPlateauMirageRiseCrepussVial = 1039537700, + [Annotation(Name = "[Altus Plateau - Mirage Rise] Crepus's Vial 1039537700")] + AltusPlateauMirageRiseCrepussVial = 1039537700, - [Annotation(Name = "[Altus Plateau - Shaded Castle] Rot Grease 1039570000")] - AltusPlateauShadedCastleRotGrease = 1039570000, + [Annotation(Name = "[Altus Plateau - Shaded Castle] Rot Grease 1039570000")] + AltusPlateauShadedCastleRotGrease = 1039570000, - [Annotation(Name = "[Altus Plateau - Shaded Castle] Golden Rune [3] 1039547010")] - AltusPlateauShadedCastleGoldenRune3 = 1039547010, + [Annotation(Name = "[Altus Plateau - Shaded Castle] Golden Rune [3] 1039547010")] + AltusPlateauShadedCastleGoldenRune3 = 1039547010, - [Annotation(Name = "[Altus Plateau - Shaded Castle] Smithing Stone [5] 1039547020")] - AltusPlateauShadedCastleSmithingStone5 = 1039547020, + [Annotation(Name = "[Altus Plateau - Shaded Castle] Smithing Stone [5] 1039547020")] + AltusPlateauShadedCastleSmithingStone5 = 1039547020, - [Annotation(Name = "[Altus Plateau - Shaded Castle] Poisonbloom 1039547030")] - AltusPlateauShadedCastlePoisonbloom = 1039547030, + [Annotation(Name = "[Altus Plateau - Shaded Castle] Poisonbloom 1039547030")] + AltusPlateauShadedCastlePoisonbloom = 1039547030, - [Annotation(Name = "[Altus Plateau - Shaded Castle] Perfume Bottle 66770")] - AltusPlateauShadedCastlePerfumeBottle = 66770, + [Annotation(Name = "[Altus Plateau - Shaded Castle] Perfume Bottle 66770")] + AltusPlateauShadedCastlePerfumeBottle = 66770, - [Annotation(Name = "[Altus Plateau - Shaded Castle] Poisonbone Dart 1039547050")] - AltusPlateauShadedCastlePoisonboneDart = 1039547050, + [Annotation(Name = "[Altus Plateau - Shaded Castle] Poisonbone Dart 1039547050")] + AltusPlateauShadedCastlePoisonboneDart = 1039547050, - [Annotation(Name = "[Altus Plateau - Shaded Castle] Golden Rune [6] 1039547060")] - AltusPlateauShadedCastleGoldenRune6 = 1039547060, + [Annotation(Name = "[Altus Plateau - Shaded Castle] Golden Rune [6] 1039547060")] + AltusPlateauShadedCastleGoldenRune6 = 1039547060, - [Annotation(Name = "[Altus Plateau - Shaded Castle] Smithing Stone [4] 1039547070")] - AltusPlateauShadedCastleSmithingStone4 = 1039547070, + [Annotation(Name = "[Altus Plateau - Shaded Castle] Smithing Stone [4] 1039547070")] + AltusPlateauShadedCastleSmithingStone4 = 1039547070, - [Annotation(Name = "[Altus Plateau - Shaded Castle] Somber Smithing Stone [5] 1039547080")] - AltusPlateauShadedCastleSomberSmithingStone5 = 1039547080, + [Annotation(Name = "[Altus Plateau - Shaded Castle] Somber Smithing Stone [5] 1039547080")] + AltusPlateauShadedCastleSomberSmithingStone5 = 1039547080, - [Annotation(Name = "[Altus Plateau - Shaded Castle] Smithing Stone [5] 1039547090")] - AltusPlateauShadedCastleSmithingStone5_ = 1039547090, + [Annotation(Name = "[Altus Plateau - Shaded Castle] Smithing Stone [5] 1039547090")] + AltusPlateauShadedCastleSmithingStone5_ = 1039547090, - [Annotation(Name = "[Altus Plateau - Shaded Castle] Drawstring Fire Grease 1039547100")] - AltusPlateauShadedCastleDrawstringFireGrease = 1039547100, + [Annotation(Name = "[Altus Plateau - Shaded Castle] Drawstring Fire Grease 1039547100")] + AltusPlateauShadedCastleDrawstringFireGrease = 1039547100, - [Annotation(Name = "[Altus Plateau - Shaded Castle] Golden Rune [6] 1039547110")] - AltusPlateauShadedCastleGoldenRune6_ = 1039547110, + [Annotation(Name = "[Altus Plateau - Shaded Castle] Golden Rune [6] 1039547110")] + AltusPlateauShadedCastleGoldenRune6_ = 1039547110, - [Annotation(Name = "[Altus Plateau - Shaded Castle] Beast Blood 1039547120")] - AltusPlateauShadedCastleBeastBlood = 1039547120, + [Annotation(Name = "[Altus Plateau - Shaded Castle] Beast Blood 1039547120")] + AltusPlateauShadedCastleBeastBlood = 1039547120, - [Annotation(Name = "[Altus Plateau - Shaded Castle] Neutralizing Boluses 1039547130")] - AltusPlateauShadedCastleNeutralizingBoluses = 1039547130, + [Annotation(Name = "[Altus Plateau - Shaded Castle] Neutralizing Boluses 1039547130")] + AltusPlateauShadedCastleNeutralizingBoluses = 1039547130, - [Annotation(Name = "[Altus Plateau - Shaded Castle] Glass Shard 1039547140")] - AltusPlateauShadedCastleGlassShard = 1039547140, + [Annotation(Name = "[Altus Plateau - Shaded Castle] Glass Shard 1039547140")] + AltusPlateauShadedCastleGlassShard = 1039547140, - [Annotation(Name = "[Altus Plateau - Shaded Castle] Stonesword Key 1039547150")] - AltusPlateauShadedCastleStoneswordKey = 1039547150, + [Annotation(Name = "[Altus Plateau - Shaded Castle] Stonesword Key 1039547150")] + AltusPlateauShadedCastleStoneswordKey = 1039547150, - [Annotation(Name = "[Altus Plateau - Shaded Castle] Golden Rune [6] 1039547160")] - AltusPlateauShadedCastleGoldenRune6__ = 1039547160, + [Annotation(Name = "[Altus Plateau - Shaded Castle] Golden Rune [6] 1039547160")] + AltusPlateauShadedCastleGoldenRune6__ = 1039547160, - [Annotation(Name = "[Altus Plateau - Shaded Castle] Poison Grease 1039547170")] - AltusPlateauShadedCastlePoisonGrease = 1039547170, + [Annotation(Name = "[Altus Plateau - Shaded Castle] Poison Grease 1039547170")] + AltusPlateauShadedCastlePoisonGrease = 1039547170, - [Annotation(Name = "[Altus Plateau - Shaded Castle] Hefty Beast Bone 1039547180")] - AltusPlateauShadedCastleHeftyBeastBone = 1039547180, + [Annotation(Name = "[Altus Plateau - Shaded Castle] Hefty Beast Bone 1039547180")] + AltusPlateauShadedCastleHeftyBeastBone = 1039547180, - [Annotation(Name = "[Altus Plateau - Shaded Castle] Perfumer's Cookbook [2] 67850")] - AltusPlateauShadedCastlePerfumersCookbook2 = 67850, + [Annotation(Name = "[Altus Plateau - Shaded Castle] Perfumer's Cookbook [2] 67850")] + AltusPlateauShadedCastlePerfumersCookbook2 = 67850, - [Annotation(Name = "[Altus Plateau - Shaded Castle] Smithing Stone [5] 1039547200")] - AltusPlateauShadedCastleSmithingStone5__ = 1039547200, + [Annotation(Name = "[Altus Plateau - Shaded Castle] Smithing Stone [5] 1039547200")] + AltusPlateauShadedCastleSmithingStone5__ = 1039547200, - [Annotation(Name = "[Altus Plateau - Shaded Castle] Gold Firefly 1039547210")] - AltusPlateauShadedCastleGoldFirefly = 1039547210, + [Annotation(Name = "[Altus Plateau - Shaded Castle] Gold Firefly 1039547210")] + AltusPlateauShadedCastleGoldFirefly = 1039547210, - [Annotation(Name = "[Altus Plateau - Shaded Castle] Glass Shard 1039547220")] - AltusPlateauShadedCastleGlassShard_ = 1039547220, + [Annotation(Name = "[Altus Plateau - Shaded Castle] Glass Shard 1039547220")] + AltusPlateauShadedCastleGlassShard_ = 1039547220, - [Annotation(Name = "[Altus Plateau - Shaded Castle] Smithing Stone [5] 1039547230")] - AltusPlateauShadedCastleSmithingStone5___ = 1039547230, + [Annotation(Name = "[Altus Plateau - Shaded Castle] Smithing Stone [5] 1039547230")] + AltusPlateauShadedCastleSmithingStone5___ = 1039547230, - [Annotation(Name = "[Altus Plateau - Shaded Castle] Smithing Stone [5] 1039547240")] - AltusPlateauShadedCastleSmithingStone5____ = 1039547240, + [Annotation(Name = "[Altus Plateau - Shaded Castle] Smithing Stone [5] 1039547240")] + AltusPlateauShadedCastleSmithingStone5____ = 1039547240, - [Annotation(Name = "[Altus Plateau - Shaded Castle] Golden Rune [4] 1039547250")] - AltusPlateauShadedCastleGoldenRune4 = 1039547250, + [Annotation(Name = "[Altus Plateau - Shaded Castle] Golden Rune [4] 1039547250")] + AltusPlateauShadedCastleGoldenRune4 = 1039547250, - [Annotation(Name = "[Altus Plateau - Shaded Castle] Smithing Stone [4] 1039547260")] - AltusPlateauShadedCastleSmithingStone4_ = 1039547260, + [Annotation(Name = "[Altus Plateau - Shaded Castle] Smithing Stone [4] 1039547260")] + AltusPlateauShadedCastleSmithingStone4_ = 1039547260, - [Annotation(Name = "[Altus Plateau - Shaded Castle] Valkyrie's Prosthesis 1039547300")] - AltusPlateauShadedCastleValkyriesProsthesis = 1039547300, + [Annotation(Name = "[Altus Plateau - Shaded Castle] Valkyrie's Prosthesis 1039547300")] + AltusPlateauShadedCastleValkyriesProsthesis = 1039547300, - [Annotation(Name = "[Altus Plateau - Shaded Castle] Starlight Shards 1039547350")] - AltusPlateauShadedCastleStarlightShards = 1039547350, + [Annotation(Name = "[Altus Plateau - Shaded Castle] Starlight Shards 1039547350")] + AltusPlateauShadedCastleStarlightShards = 1039547350, - [Annotation(Name = "[Altus Plateau - Southwest of Tree Sentinel Duo] Gravity Stone Fan 1040507000")] - AltusPlateauSouthwestOfTreeSentinelDuoGravityStoneFan = 1040507000, + [Annotation(Name = "[Altus Plateau - Southwest of Tree Sentinel Duo] Gravity Stone Fan 1040507000")] + AltusPlateauSouthwestOfTreeSentinelDuoGravityStoneFan = 1040507000, - [Annotation(Name = "[Altus Plateau - Stormcaller Church] Celestial Dew 1040517000")] - AltusPlateauStormcallerChurchCelestialDew = 1040517000, + [Annotation(Name = "[Altus Plateau - Stormcaller Church] Celestial Dew 1040517000")] + AltusPlateauStormcallerChurchCelestialDew = 1040517000, - [Annotation(Name = "[Altus Plateau - Stormcaller Church] Old Fang 1040517010")] - AltusPlateauStormcallerChurchOldFang = 1040517010, + [Annotation(Name = "[Altus Plateau - Stormcaller Church] Old Fang 1040517010")] + AltusPlateauStormcallerChurchOldFang = 1040517010, - [Annotation(Name = "[Altus Plateau - Stormcaller Church] Dragonbolt Blessing 1040517020")] - AltusPlateauStormcallerChurchDragonboltBlessing = 1040517020, + [Annotation(Name = "[Altus Plateau - Stormcaller Church] Dragonbolt Blessing 1040517020")] + AltusPlateauStormcallerChurchDragonboltBlessing = 1040517020, - [Annotation(Name = "[Altus Plateau - Stormcaller Church] Beast Blood 1040517030")] - AltusPlateauStormcallerChurchBeastBlood = 1040517030, + [Annotation(Name = "[Altus Plateau - Stormcaller Church] Beast Blood 1040517030")] + AltusPlateauStormcallerChurchBeastBlood = 1040517030, - [Annotation(Name = "[Altus Plateau - Stormcaller Church] Lightning Greatbolt 1040517040")] - AltusPlateauStormcallerChurchLightningGreatbolt = 1040517040, + [Annotation(Name = "[Altus Plateau - Stormcaller Church] Lightning Greatbolt 1040517040")] + AltusPlateauStormcallerChurchLightningGreatbolt = 1040517040, - [Annotation(Name = "[Altus Plateau - Forest-Spanning Greatbridge] Amber Starlight 1040527000")] - AltusPlateauForestSpanningGreatbridgeAmberStarlight = 1040527000, + [Annotation(Name = "[Altus Plateau - Forest-Spanning Greatbridge] Amber Starlight 1040527000")] + AltusPlateauForestSpanningGreatbridgeAmberStarlight = 1040527000, - [Annotation(Name = "[Altus Plateau - Forest-Spanning Greatbridge] Golden Rune [6] 1040527010")] - AltusPlateauForestSpanningGreatbridgeGoldenRune6 = 1040527010, + [Annotation(Name = "[Altus Plateau - Forest-Spanning Greatbridge] Golden Rune [6] 1040527010")] + AltusPlateauForestSpanningGreatbridgeGoldenRune6 = 1040527010, - [Annotation(Name = "[Altus Plateau - Forest-Spanning Greatbridge] Golden Rune [6] 1040527020")] - AltusPlateauForestSpanningGreatbridgeGoldenRune6_ = 1040527020, + [Annotation(Name = "[Altus Plateau - Forest-Spanning Greatbridge] Golden Rune [6] 1040527020")] + AltusPlateauForestSpanningGreatbridgeGoldenRune6_ = 1040527020, - [Annotation(Name = "[Altus Plateau - Forest-Spanning Greatbridge] Golden Rune [4] 1040527030")] - AltusPlateauForestSpanningGreatbridgeGoldenRune4 = 1040527030, + [Annotation(Name = "[Altus Plateau - Forest-Spanning Greatbridge] Golden Rune [4] 1040527030")] + AltusPlateauForestSpanningGreatbridgeGoldenRune4 = 1040527030, - [Annotation(Name = "[Altus Plateau - Forest-Spanning Greatbridge] Golden Rune [3] 1040527040")] - AltusPlateauForestSpanningGreatbridgeGoldenRune3 = 1040527040, + [Annotation(Name = "[Altus Plateau - Forest-Spanning Greatbridge] Golden Rune [3] 1040527040")] + AltusPlateauForestSpanningGreatbridgeGoldenRune3 = 1040527040, - [Annotation(Name = "[Altus Plateau - Forest-Spanning Greatbridge] Golden Rune [4] 1040527050")] - AltusPlateauForestSpanningGreatbridgeGoldenRune4_ = 1040527050, + [Annotation(Name = "[Altus Plateau - Forest-Spanning Greatbridge] Golden Rune [4] 1040527050")] + AltusPlateauForestSpanningGreatbridgeGoldenRune4_ = 1040527050, - [Annotation(Name = "[Altus Plateau - Writheblood Ruins] Golden Rune [5] 1040537000")] - AltusPlateauWrithebloodRuinsGoldenRune5 = 1040537000, + [Annotation(Name = "[Altus Plateau - Writheblood Ruins] Golden Rune [5] 1040537000")] + AltusPlateauWrithebloodRuinsGoldenRune5 = 1040537000, - [Annotation(Name = "[Altus Plateau - Writheblood Ruins] Bloody Helice 1040537010")] - AltusPlateauWrithebloodRuinsBloodyHelice = 1040537010, + [Annotation(Name = "[Altus Plateau - Writheblood Ruins] Bloody Helice 1040537010")] + AltusPlateauWrithebloodRuinsBloodyHelice = 1040537010, - [Annotation(Name = "[Altus Plateau - Writheblood Ruins] Nascent Butterfly 1040537020")] - AltusPlateauWrithebloodRuinsNascentButterfly = 1040537020, + [Annotation(Name = "[Altus Plateau - Writheblood Ruins] Nascent Butterfly 1040537020")] + AltusPlateauWrithebloodRuinsNascentButterfly = 1040537020, - [Annotation(Name = "[Altus Plateau - Writheblood Ruins] Fulgurbloom 1040537030")] - AltusPlateauWrithebloodRuinsFulgurbloom = 1040537030, + [Annotation(Name = "[Altus Plateau - Writheblood Ruins] Fulgurbloom 1040537030")] + AltusPlateauWrithebloodRuinsFulgurbloom = 1040537030, - [Annotation(Name = "[Altus Plateau - Writheblood Ruins] Golden Arrow 1040537040")] - AltusPlateauWrithebloodRuinsGoldenArrow = 1040537040, + [Annotation(Name = "[Altus Plateau - Writheblood Ruins] Golden Arrow 1040537040")] + AltusPlateauWrithebloodRuinsGoldenArrow = 1040537040, - [Annotation(Name = "[Altus Plateau - Writheblood Ruins] Lump of Flesh 1040537050")] - AltusPlateauWrithebloodRuinsLumpOfFlesh = 1040537050, + [Annotation(Name = "[Altus Plateau - Writheblood Ruins] Lump of Flesh 1040537050")] + AltusPlateauWrithebloodRuinsLumpOfFlesh = 1040537050, - [Annotation(Name = "[Altus Plateau - Writheblood Ruins] Hefty Beast Bone 1040537060")] - AltusPlateauWrithebloodRuinsHeftyBeastBone = 1040537060, + [Annotation(Name = "[Altus Plateau - Writheblood Ruins] Hefty Beast Bone 1040537060")] + AltusPlateauWrithebloodRuinsHeftyBeastBone = 1040537060, - [Annotation(Name = "[Altus Plateau - Road of Iniquity Side Path] Great Stars 1040547000")] - AltusPlateauRoadOfIniquitySidePathGreatStars = 1040547000, + [Annotation(Name = "[Altus Plateau - Road of Iniquity Side Path] Great Stars 1040547000")] + AltusPlateauRoadOfIniquitySidePathGreatStars = 1040547000, - [Annotation(Name = "[Altus Plateau - Road of Iniquity Side Path] Gravel Stone 1040547010")] - AltusPlateauRoadOfIniquitySidePathGravelStone = 1040547010, + [Annotation(Name = "[Altus Plateau - Road of Iniquity Side Path] Gravel Stone 1040547010")] + AltusPlateauRoadOfIniquitySidePathGravelStone = 1040547010, - [Annotation(Name = "[Altus Plateau - Road of Iniquity Side Path] Stimulating Boluses 1040547030")] - AltusPlateauRoadOfIniquitySidePathStimulatingBoluses = 1040547030, + [Annotation(Name = "[Altus Plateau - Road of Iniquity Side Path] Stimulating Boluses 1040547030")] + AltusPlateauRoadOfIniquitySidePathStimulatingBoluses = 1040547030, - [Annotation(Name = "[Altus Plateau - Road of Iniquity Side Path] Dragonwound Grease 1040547050")] - AltusPlateauRoadOfIniquitySidePathDragonwoundGrease = 1040547050, + [Annotation(Name = "[Altus Plateau - Road of Iniquity Side Path] Dragonwound Grease 1040547050")] + AltusPlateauRoadOfIniquitySidePathDragonwoundGrease = 1040547050, - [Annotation(Name = "[Altus Plateau - Road of Iniquity Side Path] Radiant Gold Mask 1040547090")] - AltusPlateauRoadOfIniquitySidePathRadiantGoldMask = 1040547090, + [Annotation(Name = "[Altus Plateau - Road of Iniquity Side Path] Radiant Gold Mask 1040547090")] + AltusPlateauRoadOfIniquitySidePathRadiantGoldMask = 1040547090, - [Annotation(Name = "[Altus Plateau - West Windmill Pasture] Giant Rat Ashes 1040557000")] - AltusPlateauWestWindmillPastureGiantRatAshes = 1040557000, + [Annotation(Name = "[Altus Plateau - West Windmill Pasture] Giant Rat Ashes 1040557000")] + AltusPlateauWestWindmillPastureGiantRatAshes = 1040557000, - [Annotation(Name = "[Altus Plateau - Tree Sentinel Duo] Golden Rune [3] 1041517000")] - AltusPlateauTreeSentinelDuoGoldenRune3 = 1041517000, + [Annotation(Name = "[Altus Plateau - Tree Sentinel Duo] Golden Rune [3] 1041517000")] + AltusPlateauTreeSentinelDuoGoldenRune3 = 1041517000, - [Annotation(Name = "[Altus Plateau - Tree Sentinel Duo] Golden Rune [6] 1041517010")] - AltusPlateauTreeSentinelDuoGoldenRune6 = 1041517010, + [Annotation(Name = "[Altus Plateau - Tree Sentinel Duo] Golden Rune [6] 1041517010")] + AltusPlateauTreeSentinelDuoGoldenRune6 = 1041517010, - [Annotation(Name = "[Altus Plateau - Tree Sentinel Duo] Silver-Pickled Fowl Foot 1041517020")] - AltusPlateauTreeSentinelDuoSilverPickledFowlFoot = 1041517020, + [Annotation(Name = "[Altus Plateau - Tree Sentinel Duo] Silver-Pickled Fowl Foot 1041517020")] + AltusPlateauTreeSentinelDuoSilverPickledFowlFoot = 1041517020, - [Annotation(Name = "[Altus Plateau - Tree Sentinel Duo] Gravity Stone Chunk 1041517030")] - AltusPlateauTreeSentinelDuoGravityStoneChunk = 1041517030, + [Annotation(Name = "[Altus Plateau - Tree Sentinel Duo] Gravity Stone Chunk 1041517030")] + AltusPlateauTreeSentinelDuoGravityStoneChunk = 1041517030, - [Annotation(Name = "[Altus Plateau - Rampartside Path] Golden Rune [8] 1041527000")] - AltusPlateauRampartsidePathGoldenRune8 = 1041527000, + [Annotation(Name = "[Altus Plateau - Rampartside Path] Golden Rune [8] 1041527000")] + AltusPlateauRampartsidePathGoldenRune8 = 1041527000, - [Annotation(Name = "[Altus Plateau - Rampartside Path] Golden Rune [6] 1041527010")] - AltusPlateauRampartsidePathGoldenRune6 = 1041527010, + [Annotation(Name = "[Altus Plateau - Rampartside Path] Golden Rune [6] 1041527010")] + AltusPlateauRampartsidePathGoldenRune6 = 1041527010, - [Annotation(Name = "[Altus Plateau - Rampartside Path] Golden Rune [4] 1041527020")] - AltusPlateauRampartsidePathGoldenRune4 = 1041527020, + [Annotation(Name = "[Altus Plateau - Rampartside Path] Golden Rune [4] 1041527020")] + AltusPlateauRampartsidePathGoldenRune4 = 1041527020, - [Annotation(Name = "[Altus Plateau - Rampartside Path] Golden Rune [3] 1041527030")] - AltusPlateauRampartsidePathGoldenRune3 = 1041527030, + [Annotation(Name = "[Altus Plateau - Rampartside Path] Golden Rune [3] 1041527030")] + AltusPlateauRampartsidePathGoldenRune3 = 1041527030, - [Annotation(Name = "[Altus Plateau - Rampartside Path] Golden Rune [1] 1041527040")] - AltusPlateauRampartsidePathGoldenRune1 = 1041527040, + [Annotation(Name = "[Altus Plateau - Rampartside Path] Golden Rune [1] 1041527040")] + AltusPlateauRampartsidePathGoldenRune1 = 1041527040, - [Annotation(Name = "[Altus Plateau - Rampartside Path] Lump of Flesh 1041527070")] - AltusPlateauRampartsidePathLumpOfFlesh = 1041527070, + [Annotation(Name = "[Altus Plateau - Rampartside Path] Lump of Flesh 1041527070")] + AltusPlateauRampartsidePathLumpOfFlesh = 1041527070, - [Annotation(Name = "[Altus Plateau - Rampartside Path] Land Octopus Ovary 1041527080")] - AltusPlateauRampartsidePathLandOctopusOvary = 1041527080, + [Annotation(Name = "[Altus Plateau - Rampartside Path] Land Octopus Ovary 1041527080")] + AltusPlateauRampartsidePathLandOctopusOvary = 1041527080, - [Annotation(Name = "[Altus Plateau - Rampartside Path] Stonesword Key 1041527090")] - AltusPlateauRampartsidePathStoneswordKey = 1041527090, + [Annotation(Name = "[Altus Plateau - Rampartside Path] Stonesword Key 1041527090")] + AltusPlateauRampartsidePathStoneswordKey = 1041527090, - [Annotation(Name = "[Altus Plateau - Woodfolk Ruins] Poisonbone Dart 1041537010")] - AltusPlateauWoodfolkRuinsPoisonboneDart = 1041537010, + [Annotation(Name = "[Altus Plateau - Woodfolk Ruins] Poisonbone Dart 1041537010")] + AltusPlateauWoodfolkRuinsPoisonboneDart = 1041537010, - [Annotation(Name = "[Altus Plateau - Woodfolk Ruins] Wrath of Gold 1041537020")] - AltusPlateauWoodfolkRuinsWrathOfGold = 1041537020, + [Annotation(Name = "[Altus Plateau - Woodfolk Ruins] Wrath of Gold 1041537020")] + AltusPlateauWoodfolkRuinsWrathOfGold = 1041537020, - [Annotation(Name = "[Altus Plateau - Woodfolk Ruins] Invigorating White Cured Meat 1041537030")] - AltusPlateauWoodfolkRuinsInvigoratingWhiteCuredMeat = 1041537030, + [Annotation(Name = "[Altus Plateau - Woodfolk Ruins] Invigorating White Cured Meat 1041537030")] + AltusPlateauWoodfolkRuinsInvigoratingWhiteCuredMeat = 1041537030, - [Annotation(Name = "[Altus Plateau - Woodfolk Ruins] Beast Blood 1041537040")] - AltusPlateauWoodfolkRuinsBeastBlood = 1041537040, + [Annotation(Name = "[Altus Plateau - Woodfolk Ruins] Beast Blood 1041537040")] + AltusPlateauWoodfolkRuinsBeastBlood = 1041537040, - [Annotation(Name = "[Altus Plateau - Woodfolk Ruins] Nomadic Warrior's Cookbook [19] 67070")] - AltusPlateauWoodfolkRuinsNomadicWarriorsCookbook19 = 67070, + [Annotation(Name = "[Altus Plateau - Woodfolk Ruins] Nomadic Warrior's Cookbook [19] 67070")] + AltusPlateauWoodfolkRuinsNomadicWarriorsCookbook19 = 67070, - [Annotation(Name = "[Altus Plateau - Woodfolk Ruins] Gravel Stone 1041537060")] - AltusPlateauWoodfolkRuinsGravelStone = 1041537060, + [Annotation(Name = "[Altus Plateau - Woodfolk Ruins] Gravel Stone 1041537060")] + AltusPlateauWoodfolkRuinsGravelStone = 1041537060, - [Annotation(Name = "[Altus Plateau - Woodfolk Ruins] Soft Cotton 1041537070")] - AltusPlateauWoodfolkRuinsSoftCotton = 1041537070, + [Annotation(Name = "[Altus Plateau - Woodfolk Ruins] Soft Cotton 1041537070")] + AltusPlateauWoodfolkRuinsSoftCotton = 1041537070, - [Annotation(Name = "[Altus Plateau - Woodfolk Ruins] Icon Shield 1041537080")] - AltusPlateauWoodfolkRuinsIconShield = 1041537080, + [Annotation(Name = "[Altus Plateau - Woodfolk Ruins] Icon Shield 1041537080")] + AltusPlateauWoodfolkRuinsIconShield = 1041537080, - [Annotation(Name = "[Altus Plateau - West Windmill Village] Poison Grease 1041547000")] - AltusPlateauWestWindmillVillagePoisonGrease = 1041547000, + [Annotation(Name = "[Altus Plateau - West Windmill Village] Poison Grease 1041547000")] + AltusPlateauWestWindmillVillagePoisonGrease = 1041547000, - [Annotation(Name = "[Altus Plateau - East Windmill Pasture] Twinned Knight Swords 1041557000")] - AltusPlateauEastWindmillPastureTwinnedKnightSwords = 1041557000, + [Annotation(Name = "[Altus Plateau - East Windmill Pasture] Twinned Knight Swords 1041557000")] + AltusPlateauEastWindmillPastureTwinnedKnightSwords = 1041557000, - [Annotation(Name = "[Altus Plateau - East Windmill Pasture] Raw Meat Dumpling 1041557010")] - AltusPlateauEastWindmillPastureRawMeatDumpling = 1041557010, + [Annotation(Name = "[Altus Plateau - East Windmill Pasture] Raw Meat Dumpling 1041557010")] + AltusPlateauEastWindmillPastureRawMeatDumpling = 1041557010, - [Annotation(Name = "[Altus Plateau - East Windmill Pasture] Navy Hood 1041557020")] - AltusPlateauEastWindmillPastureNavyHood = 1041557020, + [Annotation(Name = "[Altus Plateau - East Windmill Pasture] Navy Hood 1041557020")] + AltusPlateauEastWindmillPastureNavyHood = 1041557020, - [Annotation(Name = "[Leyndell - South of Outer Wall Phantom Tree] Giant-Crusher 1042507000")] - LeyndellSouthOfOuterWallPhantomTreeGiantCrusher = 1042507000, + [Annotation(Name = "[Leyndell - South of Outer Wall Phantom Tree] Giant-Crusher 1042507000")] + LeyndellSouthOfOuterWallPhantomTreeGiantCrusher = 1042507000, - [Annotation(Name = "[Leyndell - South of Outer Wall Phantom Tree] Golden Seed 1042507020")] - LeyndellSouthOfOuterWallPhantomTreeGoldenSeed = 1042507020, + [Annotation(Name = "[Leyndell - South of Outer Wall Phantom Tree] Golden Seed 1042507020")] + LeyndellSouthOfOuterWallPhantomTreeGoldenSeed = 1042507020, - [Annotation(Name = "[Leyndell - Outer Wall Phantom Tree] Holy Grease 1042517000")] - LeyndellOuterWallPhantomTreeHolyGrease = 1042517000, + [Annotation(Name = "[Leyndell - Outer Wall Phantom Tree] Holy Grease 1042517000")] + LeyndellOuterWallPhantomTreeHolyGrease = 1042517000, - [Annotation(Name = "[Leyndell - Outer Wall Phantom Tree] Gargoyle's Great Axe 1042517900")] - LeyndellOuterWallPhantomTreeGargoylesGreatAxe = 1042517900, + [Annotation(Name = "[Leyndell - Outer Wall Phantom Tree] Gargoyle's Great Axe 1042517900")] + LeyndellOuterWallPhantomTreeGargoylesGreatAxe = 1042517900, - [Annotation(Name = "[Leyndell - Southwest Outer Wall Battleground] Old Fang 1042527000")] - LeyndellSouthwestOuterWallBattlegroundOldFang = 1042527000, + [Annotation(Name = "[Leyndell - Southwest Outer Wall Battleground] Old Fang 1042527000")] + LeyndellSouthwestOuterWallBattlegroundOldFang = 1042527000, - [Annotation(Name = "[Leyndell - Southwest Outer Wall Battleground] Golden Rune [4] 1042527010")] - LeyndellSouthwestOuterWallBattlegroundGoldenRune4 = 1042527010, + [Annotation(Name = "[Leyndell - Southwest Outer Wall Battleground] Golden Rune [4] 1042527010")] + LeyndellSouthwestOuterWallBattlegroundGoldenRune4 = 1042527010, - [Annotation(Name = "[Leyndell - Southwest Outer Wall Battleground] Rainbow Stone 1042527020")] - LeyndellSouthwestOuterWallBattlegroundRainbowStone = 1042527020, + [Annotation(Name = "[Leyndell - Southwest Outer Wall Battleground] Rainbow Stone 1042527020")] + LeyndellSouthwestOuterWallBattlegroundRainbowStone = 1042527020, - [Annotation(Name = "[Leyndell - Southwest Outer Wall Battleground] Golden Rune [10] 1042527030")] - LeyndellSouthwestOuterWallBattlegroundGoldenRune10 = 1042527030, + [Annotation(Name = "[Leyndell - Southwest Outer Wall Battleground] Golden Rune [10] 1042527030")] + LeyndellSouthwestOuterWallBattlegroundGoldenRune10 = 1042527030, - [Annotation(Name = "[Leyndell - Southwest Outer Wall Battleground] Arteria Leaf 1042527040")] - LeyndellSouthwestOuterWallBattlegroundArteriaLeaf = 1042527040, + [Annotation(Name = "[Leyndell - Southwest Outer Wall Battleground] Arteria Leaf 1042527040")] + LeyndellSouthwestOuterWallBattlegroundArteriaLeaf = 1042527040, - [Annotation(Name = "[Leyndell - Northwest Outer Wall Battleground] Lightning Greatbolt 1042537000")] - LeyndellNorthwestOuterWallBattlegroundLightningGreatbolt = 1042537000, + [Annotation(Name = "[Leyndell - Northwest Outer Wall Battleground] Lightning Greatbolt 1042537000")] + LeyndellNorthwestOuterWallBattlegroundLightningGreatbolt = 1042537000, - [Annotation(Name = "[Leyndell - Northwest Outer Wall Battleground] Somber Smithing Stone [5] 1042537010")] - LeyndellNorthwestOuterWallBattlegroundSomberSmithingStone5 = 1042537010, + [Annotation(Name = "[Leyndell - Northwest Outer Wall Battleground] Somber Smithing Stone [5] 1042537010")] + LeyndellNorthwestOuterWallBattlegroundSomberSmithingStone5 = 1042537010, - [Annotation(Name = "[Altus Plateau - Highway Lookout Tower] Four-Toed Fowl Foot 1042547000")] - AltusPlateauHighwayLookoutTowerFourToedFowlFoot = 1042547000, + [Annotation(Name = "[Altus Plateau - Highway Lookout Tower] Four-Toed Fowl Foot 1042547000")] + AltusPlateauHighwayLookoutTowerFourToedFowlFoot = 1042547000, - [Annotation(Name = "[Altus Plateau - Highway Lookout Tower] Golden Rune [5] 1042547010")] - AltusPlateauHighwayLookoutTowerGoldenRune5 = 1042547010, + [Annotation(Name = "[Altus Plateau - Highway Lookout Tower] Golden Rune [5] 1042547010")] + AltusPlateauHighwayLookoutTowerGoldenRune5 = 1042547010, - [Annotation(Name = "[Altus Plateau - Highway Lookout Tower] Holyproof Dried Liver 1042547020")] - AltusPlateauHighwayLookoutTowerHolyproofDriedLiver = 1042547020, + [Annotation(Name = "[Altus Plateau - Highway Lookout Tower] Holyproof Dried Liver 1042547020")] + AltusPlateauHighwayLookoutTowerHolyproofDriedLiver = 1042547020, - [Annotation(Name = "[Altus Plateau - Highway Lookout Tower] Stormhawk Feather 1042547030")] - AltusPlateauHighwayLookoutTowerStormhawkFeather = 1042547030, + [Annotation(Name = "[Altus Plateau - Highway Lookout Tower] Stormhawk Feather 1042547030")] + AltusPlateauHighwayLookoutTowerStormhawkFeather = 1042547030, - [Annotation(Name = "[Altus Plateau - Highway Lookout Tower] Hefty Beast Bone 1042547040")] - AltusPlateauHighwayLookoutTowerHeftyBeastBone = 1042547040, + [Annotation(Name = "[Altus Plateau - Highway Lookout Tower] Hefty Beast Bone 1042547040")] + AltusPlateauHighwayLookoutTowerHeftyBeastBone = 1042547040, - [Annotation(Name = "[Altus Plateau - Highway Lookout Tower] Golden Arrow 1042547050")] - AltusPlateauHighwayLookoutTowerGoldenArrow = 1042547050, + [Annotation(Name = "[Altus Plateau - Highway Lookout Tower] Golden Arrow 1042547050")] + AltusPlateauHighwayLookoutTowerGoldenArrow = 1042547050, - [Annotation(Name = "[Altus Plateau - Highway Lookout Tower] Greatbow 1042547060")] - AltusPlateauHighwayLookoutTowerGreatbow = 1042547060, + [Annotation(Name = "[Altus Plateau - Highway Lookout Tower] Greatbow 1042547060")] + AltusPlateauHighwayLookoutTowerGreatbow = 1042547060, - [Annotation(Name = "[Altus Plateau - Highway Lookout Tower] Gold Firefly 1042547070")] - AltusPlateauHighwayLookoutTowerGoldFirefly = 1042547070, + [Annotation(Name = "[Altus Plateau - Highway Lookout Tower] Gold Firefly 1042547070")] + AltusPlateauHighwayLookoutTowerGoldFirefly = 1042547070, - [Annotation(Name = "[Altus Plateau - Highway Lookout Tower] Lightning Grease 1042547080")] - AltusPlateauHighwayLookoutTowerLightningGrease = 1042547080, + [Annotation(Name = "[Altus Plateau - Highway Lookout Tower] Lightning Grease 1042547080")] + AltusPlateauHighwayLookoutTowerLightningGrease = 1042547080, - [Annotation(Name = "[Altus Plateau - Highway Lookout Tower] Exalted Flesh 1042547090")] - AltusPlateauHighwayLookoutTowerExaltedFlesh = 1042547090, + [Annotation(Name = "[Altus Plateau - Highway Lookout Tower] Exalted Flesh 1042547090")] + AltusPlateauHighwayLookoutTowerExaltedFlesh = 1042547090, - [Annotation(Name = "[Altus Plateau - Highway Lookout Tower] Rune Arc 1042547100")] - AltusPlateauHighwayLookoutTowerRuneArc = 1042547100, + [Annotation(Name = "[Altus Plateau - Highway Lookout Tower] Rune Arc 1042547100")] + AltusPlateauHighwayLookoutTowerRuneArc = 1042547100, - [Annotation(Name = "[Altus Plateau - Windmill Heights] Celebrant's Skull 1042557000")] - AltusPlateauWindmillHeightsCelebrantsSkull = 1042557000, + [Annotation(Name = "[Altus Plateau - Windmill Heights] Celebrant's Skull 1042557000")] + AltusPlateauWindmillHeightsCelebrantsSkull = 1042557000, - [Annotation(Name = "[Leyndell - Minor Erdtree Church] Golden Order Seal 1043507000")] - LeyndellMinorErdtreeChurchGoldenOrderSeal = 1043507000, + [Annotation(Name = "[Leyndell - Minor Erdtree Church] Golden Order Seal 1043507000")] + LeyndellMinorErdtreeChurchGoldenOrderSeal = 1043507000, - [Annotation(Name = "[Leyndell - Minor Erdtree Church] Smoldering Butterfly 1043507010")] - LeyndellMinorErdtreeChurchSmolderingButterfly = 1043507010, + [Annotation(Name = "[Leyndell - Minor Erdtree Church] Smoldering Butterfly 1043507010")] + LeyndellMinorErdtreeChurchSmolderingButterfly = 1043507010, - [Annotation(Name = "[Leyndell - Minor Erdtree Church] Missionary's Cookbook [4] 67640")] - LeyndellMinorErdtreeChurchMissionarysCookbook4 = 67640, + [Annotation(Name = "[Leyndell - Minor Erdtree Church] Missionary's Cookbook [4] 67640")] + LeyndellMinorErdtreeChurchMissionarysCookbook4 = 67640, - [Annotation(Name = "[Leyndell - Southeast Outer Wall Battleground] Lost Ashes of War 1043527000")] - LeyndellSoutheastOuterWallBattlegroundLostAshesOfWar = 1043527000, + [Annotation(Name = "[Leyndell - Southeast Outer Wall Battleground] Lost Ashes of War 1043527000")] + LeyndellSoutheastOuterWallBattlegroundLostAshesOfWar = 1043527000, - [Annotation(Name = "[Leyndell - Southeast Outer Wall Battleground] Golden Rune [5] 1043527030")] - LeyndellSoutheastOuterWallBattlegroundGoldenRune5 = 1043527030, + [Annotation(Name = "[Leyndell - Southeast Outer Wall Battleground] Golden Rune [5] 1043527030")] + LeyndellSoutheastOuterWallBattlegroundGoldenRune5 = 1043527030, - [Annotation(Name = "[Leyndell - Southeast Outer Wall Battleground] Viridian Amber Medallion +1 1043527500")] - LeyndellSoutheastOuterWallBattlegroundViridianAmberMedallion1 = 1043527500, + [Annotation(Name = "[Leyndell - Southeast Outer Wall Battleground] Viridian Amber Medallion +1 1043527500")] + LeyndellSoutheastOuterWallBattlegroundViridianAmberMedallion1 = 1043527500, - [Annotation(Name = "[Leyndell - Northeast Outer Wall Battleground] Golden Rune [9] 1043537000")] - LeyndellNortheastOuterWallBattlegroundGoldenRune9 = 1043537000, + [Annotation(Name = "[Leyndell - Northeast Outer Wall Battleground] Golden Rune [9] 1043537000")] + LeyndellNortheastOuterWallBattlegroundGoldenRune9 = 1043537000, - [Annotation(Name = "[Leyndell - Northeast Outer Wall Battleground] Golden Rune [10] 1043537010")] - LeyndellNortheastOuterWallBattlegroundGoldenRune10 = 1043537010, + [Annotation(Name = "[Leyndell - Northeast Outer Wall Battleground] Golden Rune [10] 1043537010")] + LeyndellNortheastOuterWallBattlegroundGoldenRune10 = 1043537010, - [Annotation(Name = "[Leyndell - Northeast Outer Wall Battleground] Larval Tear 1043537100")] - LeyndellNortheastOuterWallBattlegroundLarvalTear = 1043537100, + [Annotation(Name = "[Leyndell - Northeast Outer Wall Battleground] Larval Tear 1043537100")] + LeyndellNortheastOuterWallBattlegroundLarvalTear = 1043537100, - [Annotation(Name = "[Leyndell - Northeast Outer Wall Battleground] Grace Mimic 1043537020")] - LeyndellNortheastOuterWallBattlegroundGraceMimic = 1043537020, + [Annotation(Name = "[Leyndell - Northeast Outer Wall Battleground] Grace Mimic 1043537020")] + LeyndellNortheastOuterWallBattlegroundGraceMimic = 1043537020, - [Annotation(Name = "[Leyndell - Northeast Outer Wall Battleground] Drawstring Holy Grease 1043537030")] - LeyndellNortheastOuterWallBattlegroundDrawstringHolyGrease = 1043537030, + [Annotation(Name = "[Leyndell - Northeast Outer Wall Battleground] Drawstring Holy Grease 1043537030")] + LeyndellNortheastOuterWallBattlegroundDrawstringHolyGrease = 1043537030, - [Annotation(Name = "[Leyndell - Northeast Outer Wall Battleground] Smithing Stone [5] 1043537040")] - LeyndellNortheastOuterWallBattlegroundSmithingStone5 = 1043537040, + [Annotation(Name = "[Leyndell - Northeast Outer Wall Battleground] Smithing Stone [5] 1043537040")] + LeyndellNortheastOuterWallBattlegroundSmithingStone5 = 1043537040, - [Annotation(Name = "[Leyndell - Northeast Outer Wall Battleground] Golden Rune [5] 1043537050")] - LeyndellNortheastOuterWallBattlegroundGoldenRune5 = 1043537050, + [Annotation(Name = "[Leyndell - Northeast Outer Wall Battleground] Golden Rune [5] 1043537050")] + LeyndellNortheastOuterWallBattlegroundGoldenRune5 = 1043537050, - [Annotation(Name = "[Leyndell - Northeast Outer Wall Battleground] Golden Rune [7] 1043537060")] - LeyndellNortheastOuterWallBattlegroundGoldenRune7 = 1043537060, + [Annotation(Name = "[Leyndell - Northeast Outer Wall Battleground] Golden Rune [7] 1043537060")] + LeyndellNortheastOuterWallBattlegroundGoldenRune7 = 1043537060, - [Annotation(Name = "[Leyndell - Northeast Outer Wall Battleground] Mushroom 1043537070")] - LeyndellNortheastOuterWallBattlegroundMushroom = 1043537070, + [Annotation(Name = "[Leyndell - Northeast Outer Wall Battleground] Mushroom 1043537070")] + LeyndellNortheastOuterWallBattlegroundMushroom = 1043537070, - [Annotation(Name = "[Leyndell - Northeast Outer Wall Battleground] Medicine Peddler's Bell Bearing 1043537400")] - LeyndellNortheastOuterWallBattlegroundMedicinePeddlersBellBearing = 1043537400, + [Annotation(Name = "[Leyndell - Northeast Outer Wall Battleground] Medicine Peddler's Bell Bearing 1043537400")] + LeyndellNortheastOuterWallBattlegroundMedicinePeddlersBellBearing = 1043537400, - [Annotation(Name = "[Leyndell - South of Minor Erdtree] Great Arrow 1044527000")] - LeyndellSouthOfMinorErdtreeGreatArrow = 1044527000, + [Annotation(Name = "[Leyndell - South of Minor Erdtree] Great Arrow 1044527000")] + LeyndellSouthOfMinorErdtreeGreatArrow = 1044527000, - [Annotation(Name = "[Leyndell - South of Minor Erdtree] Golden Rune [6] 1044527010")] - LeyndellSouthOfMinorErdtreeGoldenRune6 = 1044527010, + [Annotation(Name = "[Leyndell - South of Minor Erdtree] Golden Rune [6] 1044527010")] + LeyndellSouthOfMinorErdtreeGoldenRune6 = 1044527010, - [Annotation(Name = "[Leyndell - South of Minor Erdtree] Golden Rune [2] 1044527020")] - LeyndellSouthOfMinorErdtreeGoldenRune2 = 1044527020, + [Annotation(Name = "[Leyndell - South of Minor Erdtree] Golden Rune [2] 1044527020")] + LeyndellSouthOfMinorErdtreeGoldenRune2 = 1044527020, - [Annotation(Name = "[Leyndell - Minor Erdtree] Golden Rune [4] 1044537010")] - LeyndellMinorErdtreeGoldenRune4 = 1044537010, + [Annotation(Name = "[Leyndell - Minor Erdtree] Golden Rune [4] 1044537010")] + LeyndellMinorErdtreeGoldenRune4 = 1044537010, - [Annotation(Name = "[Leyndell - Capital Rampart] Gravity Stone Fan 1045527000")] - LeyndellCapitalRampartGravityStoneFan = 1045527000, + [Annotation(Name = "[Leyndell - Capital Rampart] Gravity Stone Fan 1045527000")] + LeyndellCapitalRampartGravityStoneFan = 1045527000, - [Annotation(Name = "[Leyndell - Capital Rampart] Gravel Stone 1045527010")] - LeyndellCapitalRampartGravelStone = 1045527010, + [Annotation(Name = "[Leyndell - Capital Rampart] Gravel Stone 1045527010")] + LeyndellCapitalRampartGravelStone = 1045527010, - [Annotation(Name = "[Leyndell - Capital Rampart] Smithing Stone [6] 1045527020")] - LeyndellCapitalRampartSmithingStone6 = 1045527020, + [Annotation(Name = "[Leyndell - Capital Rampart] Smithing Stone [6] 1045527020")] + LeyndellCapitalRampartSmithingStone6 = 1045527020, - [Annotation(Name = "[Leyndell - Capital Rampart] Smithing Stone [5] 1045527030")] - LeyndellCapitalRampartSmithingStone5 = 1045527030, + [Annotation(Name = "[Leyndell - Capital Rampart] Smithing Stone [5] 1045527030")] + LeyndellCapitalRampartSmithingStone5 = 1045527030, - [Annotation(Name = "[Leyndell - Minor Erdtree] Crimson Crystal Tear 65030")] - LeyndellMinorErdtreeCrimsonCrystalTear = 65030, + [Annotation(Name = "[Leyndell - Minor Erdtree] Crimson Crystal Tear 65030")] + LeyndellMinorErdtreeCrimsonCrystalTear = 65030, - [Annotation(Name = "[Leyndell - Minor Erdtree] Twiggy Cracked Tear 65190")] - LeyndellMinorErdtreeTwiggyCrackedTear = 65190, + [Annotation(Name = "[Leyndell - Minor Erdtree] Twiggy Cracked Tear 65190")] + LeyndellMinorErdtreeTwiggyCrackedTear = 65190, - [Annotation(Name = "[Leyndell - Minor Erdtree] Winged Crystal Tear 65120")] - LeyndellMinorErdtreeWingedCrystalTear = 65120, + [Annotation(Name = "[Leyndell - Minor Erdtree] Winged Crystal Tear 65120")] + LeyndellMinorErdtreeWingedCrystalTear = 65120, - [Annotation(Name = "[Leyndell - Minor Erdtree] Twinbird Kite Shield 1044537300")] - LeyndellMinorErdtreeTwinbirdKiteShield = 1044537300, + [Annotation(Name = "[Leyndell - Minor Erdtree] Twinbird Kite Shield 1044537300")] + LeyndellMinorErdtreeTwinbirdKiteShield = 1044537300, - [Annotation(Name = "[Altus Plateau - Lux Ruins] Golden Seed 1038517400")] - AltusPlateauLuxRuinsGoldenSeed = 1038517400, + [Annotation(Name = "[Altus Plateau - Lux Ruins] Golden Seed 1038517400")] + AltusPlateauLuxRuinsGoldenSeed = 1038517400, - [Annotation(Name = "[Altus Plateau - Altus Highway Junction] Golden Seed 1039517400")] - AltusPlateauAltusHighwayJunctionGoldenSeed = 1039517400, + [Annotation(Name = "[Altus Plateau - Altus Highway Junction] Golden Seed 1039517400")] + AltusPlateauAltusHighwayJunctionGoldenSeed = 1039517400, - [Annotation(Name = "[Altus Plateau - Second Church of Marika] Sacred Tear 1039527400")] - AltusPlateauSecondChurchOfMarikaSacredTear = 1039527400, + [Annotation(Name = "[Altus Plateau - Second Church of Marika] Sacred Tear 1039527400")] + AltusPlateauSecondChurchOfMarikaSacredTear = 1039527400, - [Annotation(Name = "[Altus Plateau - West Windmill Village] Golden Seed 1041547400")] - AltusPlateauWestWindmillVillageGoldenSeed = 1041547400, + [Annotation(Name = "[Altus Plateau - West Windmill Village] Golden Seed 1041547400")] + AltusPlateauWestWindmillVillageGoldenSeed = 1041547400, - [Annotation(Name = "[Altus Plateau - Stormcaller Church] Sacred Tear 1040517400")] - AltusPlateauStormcallerChurchSacredTear = 1040517400, + [Annotation(Name = "[Altus Plateau - Stormcaller Church] Sacred Tear 1040517400")] + AltusPlateauStormcallerChurchSacredTear = 1040517400, - [Annotation(Name = "[Leyndell - Outer Wall Phantom Tree] Golden Seed 1042517400")] - LeyndellOuterWallPhantomTreeGoldenSeed = 1042517400, + [Annotation(Name = "[Leyndell - Outer Wall Phantom Tree] Golden Seed 1042517400")] + LeyndellOuterWallPhantomTreeGoldenSeed = 1042517400, - [Annotation(Name = "[Leyndell - Outer Wall Phantom Tree] Golden Seed 1042517410")] - LeyndellOuterWallPhantomTreeGoldenSeed_ = 1042517410, + [Annotation(Name = "[Leyndell - Outer Wall Phantom Tree] Golden Seed 1042517410")] + LeyndellOuterWallPhantomTreeGoldenSeed_ = 1042517410, - [Annotation(Name = "[Altus Plateau - Highway Lookout Tower] Golden Seed 1042547400")] - AltusPlateauHighwayLookoutTowerGoldenSeed = 1042547400, + [Annotation(Name = "[Altus Plateau - Highway Lookout Tower] Golden Seed 1042547400")] + AltusPlateauHighwayLookoutTowerGoldenSeed = 1042547400, - [Annotation(Name = "[Leyndell - Southeast Outer Wall Battleground] Golden Seed 1043527400")] - LeyndellSoutheastOuterWallBattlegroundGoldenSeed = 1043527400, + [Annotation(Name = "[Leyndell - Southeast Outer Wall Battleground] Golden Seed 1043527400")] + LeyndellSoutheastOuterWallBattlegroundGoldenSeed = 1043527400, - [Annotation(Name = "[Leyndell - Southeast Outer Wall Battleground] Golden Seed 1043527410")] - LeyndellSoutheastOuterWallBattlegroundGoldenSeed_ = 1043527410, + [Annotation(Name = "[Leyndell - Southeast Outer Wall Battleground] Golden Seed 1043527410")] + LeyndellSoutheastOuterWallBattlegroundGoldenSeed_ = 1043527410, - [Annotation(Name = "[Mt. Gelmir - Volcano Manor Entrance] Golden Seed 1036547400")] - MtGelmirVolcanoManorEntranceGoldenSeed = 1036547400, + [Annotation(Name = "[Mt. Gelmir - Volcano Manor Entrance] Golden Seed 1036547400")] + MtGelmirVolcanoManorEntranceGoldenSeed = 1036547400, - [Annotation(Name = "[Mt. Gelmir - Primeval Sorcerer Azur] Golden Seed 1037537400")] - MtGelmirPrimevalSorcererAzurGoldenSeed = 1037537400, + [Annotation(Name = "[Mt. Gelmir - Primeval Sorcerer Azur] Golden Seed 1037537400")] + MtGelmirPrimevalSorcererAzurGoldenSeed = 1037537400, - [Annotation(Name = "[Altus Plateau - Forest-Spanning Greatbridge] Map: Altus Plateau 62030")] - AltusPlateauForestSpanningGreatbridgeMapAltusPlateau = 62030, + [Annotation(Name = "[Altus Plateau - Forest-Spanning Greatbridge] Map: Altus Plateau 62030")] + AltusPlateauForestSpanningGreatbridgeMapAltusPlateau = 62030, - [Annotation(Name = "[Leyndell - Outer Wall Phantom Tree] Map: Leyndell, Royal Capital 62031")] - LeyndellOuterWallPhantomTreeMapLeyndellRoyalCapital = 62031, + [Annotation(Name = "[Leyndell - Outer Wall Phantom Tree] Map: Leyndell, Royal Capital 62031")] + LeyndellOuterWallPhantomTreeMapLeyndellRoyalCapital = 62031, - [Annotation(Name = "[Mt. Gelmir - Volcano Manor Entrance] Map: Mt. Gelmir 62032")] - MtGelmirVolcanoManorEntranceMapMtGelmir = 62032, + [Annotation(Name = "[Mt. Gelmir - Volcano Manor Entrance] Map: Mt. Gelmir 62032")] + MtGelmirVolcanoManorEntranceMapMtGelmir = 62032, - [Annotation(Name = "[Liurnia of the Lake - Northeast Ravine] Neutralizing Boluses 1037507000")] - LiurniaOfTheLakeNortheastRavineNeutralizingBoluses = 1037507000, + [Annotation(Name = "[Liurnia of the Lake - Northeast Ravine] Neutralizing Boluses 1037507000")] + LiurniaOfTheLakeNortheastRavineNeutralizingBoluses = 1037507000, - [Annotation(Name = "[Liurnia of the Lake - Northeast Ravine] Golden Seed 1037507100")] - LiurniaOfTheLakeNortheastRavineGoldenSeed = 1037507100, + [Annotation(Name = "[Liurnia of the Lake - Northeast Ravine] Golden Seed 1037507100")] + LiurniaOfTheLakeNortheastRavineGoldenSeed = 1037507100, - [Annotation(Name = "[Leyndell - Divine Tower of East Altus Entrance] Drawstring Fire Grease 1047517000")] - LeyndellDivineTowerOfEastAltusEntranceDrawstringFireGrease = 1047517000, + [Annotation(Name = "[Leyndell - Divine Tower of East Altus Entrance] Drawstring Fire Grease 1047517000")] + LeyndellDivineTowerOfEastAltusEntranceDrawstringFireGrease = 1047517000, - [Annotation(Name = "[Leyndell - Divine Tower of East Altus Entrance] Golden Rune [7] 1047517010")] - LeyndellDivineTowerOfEastAltusEntranceGoldenRune7 = 1047517010, + [Annotation(Name = "[Leyndell - Divine Tower of East Altus Entrance] Golden Rune [7] 1047517010")] + LeyndellDivineTowerOfEastAltusEntranceGoldenRune7 = 1047517010, - [Annotation(Name = "[Leyndell - Divine Tower of East Altus Entrance] Dragonwound Grease 1047517300")] - LeyndellDivineTowerOfEastAltusEntranceDragonwoundGrease = 1047517300, + [Annotation(Name = "[Leyndell - Divine Tower of East Altus Entrance] Dragonwound Grease 1047517300")] + LeyndellDivineTowerOfEastAltusEntranceDragonwoundGrease = 1047517300, - [Annotation(Name = "[Greyoll's Dragonbarrow - Isolated Merchant's Shack] Somber Smithing Stone [7] 1048517000")] - GreyollsDragonbarrowIsolatedMerchantsShackSomberSmithingStone7 = 1048517000, + [Annotation(Name = "[Greyoll's Dragonbarrow - Isolated Merchant's Shack] Somber Smithing Stone [7] 1048517000")] + GreyollsDragonbarrowIsolatedMerchantsShackSomberSmithingStone7 = 1048517000, - [Annotation(Name = "[Greyoll's Dragonbarrow - Isolated Merchant's Shack] Ash of War: Phantom Slash 1048517700")] - GreyollsDragonbarrowIsolatedMerchantsShackAshOfWarPhantomSlash = 1048517700, + [Annotation(Name = "[Greyoll's Dragonbarrow - Isolated Merchant's Shack] Ash of War: Phantom Slash 1048517700")] + GreyollsDragonbarrowIsolatedMerchantsShackAshOfWarPhantomSlash = 1048517700, - [Annotation(Name = "[Mountaintops of the Giants - Before Grand Lift of Rold] Freezing Grease 1049527000")] - MountaintopsOfTheGiantsBeforeGrandLiftOfRoldFreezingGrease = 1049527000, + [Annotation(Name = "[Mountaintops of the Giants - Before Grand Lift of Rold] Freezing Grease 1049527000")] + MountaintopsOfTheGiantsBeforeGrandLiftOfRoldFreezingGrease = 1049527000, - [Annotation(Name = "[Mountaintops of the Giants - Before Grand Lift of Rold] Golden Seed 1049527800")] - MountaintopsOfTheGiantsBeforeGrandLiftOfRoldGoldenSeed = 1049527800, + [Annotation(Name = "[Mountaintops of the Giants - Before Grand Lift of Rold] Golden Seed 1049527800")] + MountaintopsOfTheGiantsBeforeGrandLiftOfRoldGoldenSeed = 1049527800, - [Annotation(Name = "[Mountaintops of the Giants - West Zamor Ruins] Sliver of Meat 1049537000")] - MountaintopsOfTheGiantsWestZamorRuinsSliverOfMeat = 1049537000, + [Annotation(Name = "[Mountaintops of the Giants - West Zamor Ruins] Sliver of Meat 1049537000")] + MountaintopsOfTheGiantsWestZamorRuinsSliverOfMeat = 1049537000, - [Annotation(Name = "[Mountaintops of the Giants - West Zamor Ruins] Invigorating Cured Meat 1049537010")] - MountaintopsOfTheGiantsWestZamorRuinsInvigoratingCuredMeat = 1049537010, + [Annotation(Name = "[Mountaintops of the Giants - West Zamor Ruins] Invigorating Cured Meat 1049537010")] + MountaintopsOfTheGiantsWestZamorRuinsInvigoratingCuredMeat = 1049537010, - [Annotation(Name = "[Mountaintops of the Giants - West Zamor Ruins] Golden Rune [10] 1049537020")] - MountaintopsOfTheGiantsWestZamorRuinsGoldenRune10 = 1049537020, + [Annotation(Name = "[Mountaintops of the Giants - West Zamor Ruins] Golden Rune [10] 1049537020")] + MountaintopsOfTheGiantsWestZamorRuinsGoldenRune10 = 1049537020, - [Annotation(Name = "[Mountaintops of the Giants - West Zamor Ruins] Zamor Ice Storm 1049537030")] - MountaintopsOfTheGiantsWestZamorRuinsZamorIceStorm = 1049537030, + [Annotation(Name = "[Mountaintops of the Giants - West Zamor Ruins] Zamor Ice Storm 1049537030")] + MountaintopsOfTheGiantsWestZamorRuinsZamorIceStorm = 1049537030, - [Annotation(Name = "[Mountaintops of the Giants - West Zamor Ruins] Beast Blood 1049537300")] - MountaintopsOfTheGiantsWestZamorRuinsBeastBlood = 1049537300, + [Annotation(Name = "[Mountaintops of the Giants - West Zamor Ruins] Beast Blood 1049537300")] + MountaintopsOfTheGiantsWestZamorRuinsBeastBlood = 1049537300, - [Annotation(Name = "[Mountaintops of the Giants - West Zamor Ruins] Map: Mountaintops of the Giants, West 62050")] - MountaintopsOfTheGiantsWestZamorRuinsMapMountaintopsOfTheGiantsWest = 62050, + [Annotation(Name = "[Mountaintops of the Giants - West Zamor Ruins] Map: Mountaintops of the Giants, West 62050")] + MountaintopsOfTheGiantsWestZamorRuinsMapMountaintopsOfTheGiantsWest = 62050, - [Annotation(Name = "[Mountaintops of the Giants - West Zamor Ruins] Smithing-Stone Miner's Bell Bearing [3] 1049537900")] - MountaintopsOfTheGiantsWestZamorRuinsSmithingStoneMinersBellBearing3 = 1049537900, + [Annotation(Name = "[Mountaintops of the Giants - West Zamor Ruins] Smithing-Stone Miner's Bell Bearing [3] 1049537900")] + MountaintopsOfTheGiantsWestZamorRuinsSmithingStoneMinersBellBearing3 = 1049537900, - [Annotation(Name = "[Mountaintops of the Giants - East Zamor Ruins] Somber Smithing Stone [7] 1050537000")] - MountaintopsOfTheGiantsEastZamorRuinsSomberSmithingStone7 = 1050537000, + [Annotation(Name = "[Mountaintops of the Giants - East Zamor Ruins] Somber Smithing Stone [7] 1050537000")] + MountaintopsOfTheGiantsEastZamorRuinsSomberSmithingStone7 = 1050537000, - [Annotation(Name = "[Mountaintops of the Giants - East Zamor Ruins] Smoldering Butterfly 1050537300")] - MountaintopsOfTheGiantsEastZamorRuinsSmolderingButterfly = 1050537300, + [Annotation(Name = "[Mountaintops of the Giants - East Zamor Ruins] Smoldering Butterfly 1050537300")] + MountaintopsOfTheGiantsEastZamorRuinsSmolderingButterfly = 1050537300, - [Annotation(Name = "[Mountaintops of the Giants - East Zamor Ruins] Somber Smithing Stone [7] 1050537700")] - MountaintopsOfTheGiantsEastZamorRuinsSomberSmithingStone7_ = 1050537700, + [Annotation(Name = "[Mountaintops of the Giants - East Zamor Ruins] Somber Smithing Stone [7] 1050537700")] + MountaintopsOfTheGiantsEastZamorRuinsSomberSmithingStone7_ = 1050537700, - [Annotation(Name = "[Mountaintops of the Giants - North of Zamor Ruins] Lost Ashes of War 1050547000")] - MountaintopsOfTheGiantsNorthOfZamorRuinsLostAshesOfWar = 1050547000, + [Annotation(Name = "[Mountaintops of the Giants - North of Zamor Ruins] Lost Ashes of War 1050547000")] + MountaintopsOfTheGiantsNorthOfZamorRuinsLostAshesOfWar = 1050547000, - [Annotation(Name = "[Mountaintops of the Giants - North of Zamor Ruins] Arteria Leaf 1050547800")] - MountaintopsOfTheGiantsNorthOfZamorRuinsArteriaLeaf = 1050547800, + [Annotation(Name = "[Mountaintops of the Giants - North of Zamor Ruins] Arteria Leaf 1050547800")] + MountaintopsOfTheGiantsNorthOfZamorRuinsArteriaLeaf = 1050547800, - [Annotation(Name = "[Mountaintops of the Giants - North of Zamor Ruins] Briars of Punishment 1050547810")] - MountaintopsOfTheGiantsNorthOfZamorRuinsBriarsOfPunishment = 1050547810, + [Annotation(Name = "[Mountaintops of the Giants - North of Zamor Ruins] Briars of Punishment 1050547810")] + MountaintopsOfTheGiantsNorthOfZamorRuinsBriarsOfPunishment = 1050547810, - [Annotation(Name = "[Mountaintops of the Giants - Ancient Snow Valley Ruins] Golden Rune [7] 1051557300")] - MountaintopsOfTheGiantsAncientSnowValleyRuinsGoldenRune7 = 1051557300, + [Annotation(Name = "[Mountaintops of the Giants - Ancient Snow Valley Ruins] Golden Rune [7] 1051557300")] + MountaintopsOfTheGiantsAncientSnowValleyRuinsGoldenRune7 = 1051557300, - [Annotation(Name = "[Mountaintops of the Giants - Ancient Snow Valley Ruins] Drawstring Holy Grease 1051557310")] - MountaintopsOfTheGiantsAncientSnowValleyRuinsDrawstringHolyGrease = 1051557310, + [Annotation(Name = "[Mountaintops of the Giants - Ancient Snow Valley Ruins] Drawstring Holy Grease 1051557310")] + MountaintopsOfTheGiantsAncientSnowValleyRuinsDrawstringHolyGrease = 1051557310, - [Annotation(Name = "[Mountaintops of the Giants - Ancient Snow Valley Ruins] Rainbow Stone 1051557320")] - MountaintopsOfTheGiantsAncientSnowValleyRuinsRainbowStone = 1051557320, + [Annotation(Name = "[Mountaintops of the Giants - Ancient Snow Valley Ruins] Rainbow Stone 1051557320")] + MountaintopsOfTheGiantsAncientSnowValleyRuinsRainbowStone = 1051557320, - [Annotation(Name = "[Mountaintops of the Giants - Ancient Snow Valley Ruins] Golden Rune [13] 1051557330")] - MountaintopsOfTheGiantsAncientSnowValleyRuinsGoldenRune13 = 1051557330, + [Annotation(Name = "[Mountaintops of the Giants - Ancient Snow Valley Ruins] Golden Rune [13] 1051557330")] + MountaintopsOfTheGiantsAncientSnowValleyRuinsGoldenRune13 = 1051557330, - [Annotation(Name = "[Mountaintops of the Giants - Shack of the Lofty] Tarnished Golden Sunflower 1050567300")] - MountaintopsOfTheGiantsShackOfTheLoftyTarnishedGoldenSunflower = 1050567300, + [Annotation(Name = "[Mountaintops of the Giants - Shack of the Lofty] Tarnished Golden Sunflower 1050567300")] + MountaintopsOfTheGiantsShackOfTheLoftyTarnishedGoldenSunflower = 1050567300, - [Annotation(Name = "[Mountaintops of the Giants - Shack of the Lofty] Warming Stone 1050567500")] - MountaintopsOfTheGiantsShackOfTheLoftyWarmingStone = 1050567500, + [Annotation(Name = "[Mountaintops of the Giants - Shack of the Lofty] Warming Stone 1050567500")] + MountaintopsOfTheGiantsShackOfTheLoftyWarmingStone = 1050567500, - [Annotation(Name = "[Mountaintops of the Giants - Shack of the Lofty] Invigorating White Cured Meat 1050567510")] - MountaintopsOfTheGiantsShackOfTheLoftyInvigoratingWhiteCuredMeat = 1050567510, + [Annotation(Name = "[Mountaintops of the Giants - Shack of the Lofty] Invigorating White Cured Meat 1050567510")] + MountaintopsOfTheGiantsShackOfTheLoftyInvigoratingWhiteCuredMeat = 1050567510, - [Annotation(Name = "[Mountaintops of the Giants - Shack of the Lofty] Smithing Stone [7] 1050567520")] - MountaintopsOfTheGiantsShackOfTheLoftySmithingStone7 = 1050567520, + [Annotation(Name = "[Mountaintops of the Giants - Shack of the Lofty] Smithing Stone [7] 1050567520")] + MountaintopsOfTheGiantsShackOfTheLoftySmithingStone7 = 1050567520, - [Annotation(Name = "[Mountaintops of the Giants - Shack of the Lofty] Ancient Dragon Smithing Stone 1050567600")] - MountaintopsOfTheGiantsShackOfTheLoftyAncientDragonSmithingStone = 1050567600, + [Annotation(Name = "[Mountaintops of the Giants - Shack of the Lofty] Ancient Dragon Smithing Stone 1050567600")] + MountaintopsOfTheGiantsShackOfTheLoftyAncientDragonSmithingStone = 1050567600, - [Annotation(Name = "[Mountaintops of the Giants - Shack of the Lofty] Traveling Maiden Hood 1050567620")] - MountaintopsOfTheGiantsShackOfTheLoftyTravelingMaidenHood = 1050567620, + [Annotation(Name = "[Mountaintops of the Giants - Shack of the Lofty] Traveling Maiden Hood 1050567620")] + MountaintopsOfTheGiantsShackOfTheLoftyTravelingMaidenHood = 1050567620, - [Annotation(Name = "[Mountaintops of the Giants - Shack of the Lofty] Hoslow's Petal Whip 1050567700")] - MountaintopsOfTheGiantsShackOfTheLoftyHoslowsPetalWhip = 1050567700, + [Annotation(Name = "[Mountaintops of the Giants - Shack of the Lofty] Hoslow's Petal Whip 1050567700")] + MountaintopsOfTheGiantsShackOfTheLoftyHoslowsPetalWhip = 1050567700, - [Annotation(Name = "[Mountaintops of the Giants - Shack of the Lofty] Smithing Stone [8] 1050567800")] - MountaintopsOfTheGiantsShackOfTheLoftySmithingStone8 = 1050567800, + [Annotation(Name = "[Mountaintops of the Giants - Shack of the Lofty] Smithing Stone [8] 1050567800")] + MountaintopsOfTheGiantsShackOfTheLoftySmithingStone8 = 1050567800, - [Annotation(Name = "[Mountaintops of the Giants - Shack of the Lofty] Graven-Mass Talisman 1050567820")] - MountaintopsOfTheGiantsShackOfTheLoftyGravenMassTalisman = 1050567820, + [Annotation(Name = "[Mountaintops of the Giants - Shack of the Lofty] Graven-Mass Talisman 1050567820")] + MountaintopsOfTheGiantsShackOfTheLoftyGravenMassTalisman = 1050567820, - [Annotation(Name = "[Mountaintops of the Giants - Before Freezing Lake] Stimulating Boluses 1052577000")] - MountaintopsOfTheGiantsBeforeFreezingLakeStimulatingBoluses = 1052577000, + [Annotation(Name = "[Mountaintops of the Giants - Before Freezing Lake] Stimulating Boluses 1052577000")] + MountaintopsOfTheGiantsBeforeFreezingLakeStimulatingBoluses = 1052577000, - [Annotation(Name = "[Mountaintops of the Giants - Before Freezing Lake] Thawfrost Boluses 1052577300")] - MountaintopsOfTheGiantsBeforeFreezingLakeThawfrostBoluses = 1052577300, + [Annotation(Name = "[Mountaintops of the Giants - Before Freezing Lake] Thawfrost Boluses 1052577300")] + MountaintopsOfTheGiantsBeforeFreezingLakeThawfrostBoluses = 1052577300, - [Annotation(Name = "[Mountaintops of the Giants - Before Freezing Lake] Old Fang 1052577310")] - MountaintopsOfTheGiantsBeforeFreezingLakeOldFang = 1052577310, + [Annotation(Name = "[Mountaintops of the Giants - Before Freezing Lake] Old Fang 1052577310")] + MountaintopsOfTheGiantsBeforeFreezingLakeOldFang = 1052577310, - [Annotation(Name = "[Mountaintops of the Giants - Before Freezing Lake] Golden Seed 1052577800")] - MountaintopsOfTheGiantsBeforeFreezingLakeGoldenSeed = 1052577800, + [Annotation(Name = "[Mountaintops of the Giants - Before Freezing Lake] Golden Seed 1052577800")] + MountaintopsOfTheGiantsBeforeFreezingLakeGoldenSeed = 1052577800, - [Annotation(Name = "[Mountaintops of the Giants - Before Freezing Lake] Smithing Stone [7] 1052577810")] - MountaintopsOfTheGiantsBeforeFreezingLakeSmithingStone7 = 1052577810, + [Annotation(Name = "[Mountaintops of the Giants - Before Freezing Lake] Smithing Stone [7] 1052577810")] + MountaintopsOfTheGiantsBeforeFreezingLakeSmithingStone7 = 1052577810, - [Annotation(Name = "[Mountaintops of the Giants - Northwest Freezing Lake] Golden Rune [11] 1053577300")] - MountaintopsOfTheGiantsNorthwestFreezingLakeGoldenRune11 = 1053577300, + [Annotation(Name = "[Mountaintops of the Giants - Northwest Freezing Lake] Golden Rune [11] 1053577300")] + MountaintopsOfTheGiantsNorthwestFreezingLakeGoldenRune11 = 1053577300, - [Annotation(Name = "[Mountaintops of the Giants - Southwest Freezing Lake] Somber Smithing Stone [8] 1053567300")] - MountaintopsOfTheGiantsSouthwestFreezingLakeSomberSmithingStone8 = 1053567300, + [Annotation(Name = "[Mountaintops of the Giants - Southwest Freezing Lake] Somber Smithing Stone [8] 1053567300")] + MountaintopsOfTheGiantsSouthwestFreezingLakeSomberSmithingStone8 = 1053567300, - [Annotation(Name = "[Mountaintops of the Giants - Southwest Freezing Lake] Golden Rune [10] 1053567310")] - MountaintopsOfTheGiantsSouthwestFreezingLakeGoldenRune10 = 1053567310, + [Annotation(Name = "[Mountaintops of the Giants - Southwest Freezing Lake] Golden Rune [10] 1053567310")] + MountaintopsOfTheGiantsSouthwestFreezingLakeGoldenRune10 = 1053567310, - [Annotation(Name = "[Mountaintops of the Giants - Southwest Freezing Lake] Golden Rune [12] 1053567700")] - MountaintopsOfTheGiantsSouthwestFreezingLakeGoldenRune12 = 1053567700, + [Annotation(Name = "[Mountaintops of the Giants - Southwest Freezing Lake] Golden Rune [12] 1053567700")] + MountaintopsOfTheGiantsSouthwestFreezingLakeGoldenRune12 = 1053567700, - [Annotation(Name = "[Mountaintops of the Giants - Southwest Freezing Lake] Golden Rune [12] 1053567710")] - MountaintopsOfTheGiantsSouthwestFreezingLakeGoldenRune12_ = 1053567710, + [Annotation(Name = "[Mountaintops of the Giants - Southwest Freezing Lake] Golden Rune [12] 1053567710")] + MountaintopsOfTheGiantsSouthwestFreezingLakeGoldenRune12_ = 1053567710, - [Annotation(Name = "[Mountaintops of the Giants - Southwest Freezing Lake] Golden Rune [12] 1053567720")] - MountaintopsOfTheGiantsSouthwestFreezingLakeGoldenRune12__ = 1053567720, + [Annotation(Name = "[Mountaintops of the Giants - Southwest Freezing Lake] Golden Rune [12] 1053567720")] + MountaintopsOfTheGiantsSouthwestFreezingLakeGoldenRune12__ = 1053567720, - [Annotation(Name = "[Mountaintops of the Giants - Southwest Freezing Lake] Golden Rune [7] 1053567800")] - MountaintopsOfTheGiantsSouthwestFreezingLakeGoldenRune7 = 1053567800, + [Annotation(Name = "[Mountaintops of the Giants - Southwest Freezing Lake] Golden Rune [7] 1053567800")] + MountaintopsOfTheGiantsSouthwestFreezingLakeGoldenRune7 = 1053567800, - [Annotation(Name = "[Mountaintops of the Giants - Southwest Freezing Lake] Golden Rune [7] 1053567810")] - MountaintopsOfTheGiantsSouthwestFreezingLakeGoldenRune7_ = 1053567810, + [Annotation(Name = "[Mountaintops of the Giants - Southwest Freezing Lake] Golden Rune [7] 1053567810")] + MountaintopsOfTheGiantsSouthwestFreezingLakeGoldenRune7_ = 1053567810, - [Annotation(Name = "[Mountaintops of the Giants - Before Freezing Lake] Founding Rain of Stars 1052577900")] - MountaintopsOfTheGiantsBeforeFreezingLakeFoundingRainOfStars = 1052577900, + [Annotation(Name = "[Mountaintops of the Giants - Before Freezing Lake] Founding Rain of Stars 1052577900")] + MountaintopsOfTheGiantsBeforeFreezingLakeFoundingRainOfStars = 1052577900, - [Annotation(Name = "[Mountaintops of the Giants - First Church of Marika] Smithing Stone [7] 1054557000")] - MountaintopsOfTheGiantsFirstChurchOfMarikaSmithingStone7 = 1054557000, + [Annotation(Name = "[Mountaintops of the Giants - First Church of Marika] Smithing Stone [7] 1054557000")] + MountaintopsOfTheGiantsFirstChurchOfMarikaSmithingStone7 = 1054557000, - [Annotation(Name = "[Mountaintops of the Giants - First Church of Marika] Somberstone Miner's Bell Bearing [3] 1054557310")] - MountaintopsOfTheGiantsFirstChurchOfMarikaSomberstoneMinersBellBearing3 = 1054557310, + [Annotation(Name = "[Mountaintops of the Giants - First Church of Marika] Somberstone Miner's Bell Bearing [3] 1054557310")] + MountaintopsOfTheGiantsFirstChurchOfMarikaSomberstoneMinersBellBearing3 = 1054557310, - [Annotation(Name = "[Mountaintops of the Giants - First Church of Marika] Sacred Tear 1054557800")] - MountaintopsOfTheGiantsFirstChurchOfMarikaSacredTear = 1054557800, + [Annotation(Name = "[Mountaintops of the Giants - First Church of Marika] Sacred Tear 1054557800")] + MountaintopsOfTheGiantsFirstChurchOfMarikaSacredTear = 1054557800, - [Annotation(Name = "[Mountaintops of the Giants - Whiteridge Road] Explosive Greatbolt 1052567300")] - MountaintopsOfTheGiantsWhiteridgeRoadExplosiveGreatbolt = 1052567300, + [Annotation(Name = "[Mountaintops of the Giants - Whiteridge Road] Explosive Greatbolt 1052567300")] + MountaintopsOfTheGiantsWhiteridgeRoadExplosiveGreatbolt = 1052567300, - [Annotation(Name = "[Mountaintops of the Giants - Whiteridge Road] Rune Arc 1052567310")] - MountaintopsOfTheGiantsWhiteridgeRoadRuneArc = 1052567310, + [Annotation(Name = "[Mountaintops of the Giants - Whiteridge Road] Rune Arc 1052567310")] + MountaintopsOfTheGiantsWhiteridgeRoadRuneArc = 1052567310, - [Annotation(Name = "[Mountaintops of the Giants - Giants' Gravepost] Ancient Dragon Smithing Stone 1051537000")] - MountaintopsOfTheGiantsGiantsGravepostAncientDragonSmithingStone = 1051537000, + [Annotation(Name = "[Mountaintops of the Giants - Giants' Gravepost] Ancient Dragon Smithing Stone 1051537000")] + MountaintopsOfTheGiantsGiantsGravepostAncientDragonSmithingStone = 1051537000, - [Annotation(Name = "[Mountaintops of the Giants - Giants' Gravepost] Smithing Stone [7] 1051537010")] - MountaintopsOfTheGiantsGiantsGravepostSmithingStone7 = 1051537010, + [Annotation(Name = "[Mountaintops of the Giants - Giants' Gravepost] Smithing Stone [7] 1051537010")] + MountaintopsOfTheGiantsGiantsGravepostSmithingStone7 = 1051537010, - [Annotation(Name = "[Mountaintops of the Giants - Giants' Gravepost] Drawstring Holy Grease 1051537300")] - MountaintopsOfTheGiantsGiantsGravepostDrawstringHolyGrease = 1051537300, + [Annotation(Name = "[Mountaintops of the Giants - Giants' Gravepost] Drawstring Holy Grease 1051537300")] + MountaintopsOfTheGiantsGiantsGravepostDrawstringHolyGrease = 1051537300, - [Annotation(Name = "[Mountaintops of the Giants - Giants' Gravepost] Rivers of Blood 1051537500")] - MountaintopsOfTheGiantsGiantsGravepostRiversOfBlood = 1051537500, + [Annotation(Name = "[Mountaintops of the Giants - Giants' Gravepost] Rivers of Blood 1051537500")] + MountaintopsOfTheGiantsGiantsGravepostRiversOfBlood = 1051537500, - [Annotation(Name = "[Mountaintops of the Giants - Giants' Gravepost] Ash of War: Troll's Roar 1051537600")] - MountaintopsOfTheGiantsGiantsGravepostAshOfWarTrollsRoar = 1051537600, + [Annotation(Name = "[Mountaintops of the Giants - Giants' Gravepost] Ash of War: Troll's Roar 1051537600")] + MountaintopsOfTheGiantsGiantsGravepostAshOfWarTrollsRoar = 1051537600, - [Annotation(Name = "[Mountaintops of the Giants - Giants' Gravepost] Somber Smithing Stone [8] 1051537700")] - MountaintopsOfTheGiantsGiantsGravepostSomberSmithingStone8 = 1051537700, + [Annotation(Name = "[Mountaintops of the Giants - Giants' Gravepost] Somber Smithing Stone [8] 1051537700")] + MountaintopsOfTheGiantsGiantsGravepostSomberSmithingStone8 = 1051537700, - [Annotation(Name = "[Mountaintops of the Giants - Giants' Gravepost] Sacred Tear 1051537800")] - MountaintopsOfTheGiantsGiantsGravepostSacredTear = 1051537800, + [Annotation(Name = "[Mountaintops of the Giants - Giants' Gravepost] Sacred Tear 1051537800")] + MountaintopsOfTheGiantsGiantsGravepostSacredTear = 1051537800, - [Annotation(Name = "[Mountaintops of the Giants - Giants' Gravepost] Warming Stone 1051537810")] - MountaintopsOfTheGiantsGiantsGravepostWarmingStone = 1051537810, + [Annotation(Name = "[Mountaintops of the Giants - Giants' Gravepost] Warming Stone 1051537810")] + MountaintopsOfTheGiantsGiantsGravepostWarmingStone = 1051537810, - [Annotation(Name = "[Mountaintops of the Giants - Giants' Gravepost] Invigorating White Cured Meat 1051547000")] - MountaintopsOfTheGiantsGiantsGravepostInvigoratingWhiteCuredMeat = 1051547000, + [Annotation(Name = "[Mountaintops of the Giants - Giants' Gravepost] Invigorating White Cured Meat 1051547000")] + MountaintopsOfTheGiantsGiantsGravepostInvigoratingWhiteCuredMeat = 1051547000, - [Annotation(Name = "[Mountaintops of the Giants - Giants' Gravepost] Fan Daggers 1051547800")] - MountaintopsOfTheGiantsGiantsGravepostFanDaggers = 1051547800, + [Annotation(Name = "[Mountaintops of the Giants - Giants' Gravepost] Fan Daggers 1051547800")] + MountaintopsOfTheGiantsGiantsGravepostFanDaggers = 1051547800, - [Annotation(Name = "[Mountaintops of the Giants - Northwest Fire Giant Arena] Golden Rune [10] 1052537000")] - MountaintopsOfTheGiantsNorthwestFireGiantArenaGoldenRune10 = 1052537000, + [Annotation(Name = "[Mountaintops of the Giants - Northwest Fire Giant Arena] Golden Rune [10] 1052537000")] + MountaintopsOfTheGiantsNorthwestFireGiantArenaGoldenRune10 = 1052537000, - [Annotation(Name = "[Mountaintops of the Giants - Northwest Fire Giant Arena] Golden Seed 1052537800")] - MountaintopsOfTheGiantsNorthwestFireGiantArenaGoldenSeed = 1052537800, + [Annotation(Name = "[Mountaintops of the Giants - Northwest Fire Giant Arena] Golden Seed 1052537800")] + MountaintopsOfTheGiantsNorthwestFireGiantArenaGoldenSeed = 1052537800, - [Annotation(Name = "[Mountaintops of the Giants - Northeast Giants' Gravepost] Grace Mimic 1052547000")] - MountaintopsOfTheGiantsNortheastGiantsGravepostGraceMimic = 1052547000, + [Annotation(Name = "[Mountaintops of the Giants - Northeast Giants' Gravepost] Grace Mimic 1052547000")] + MountaintopsOfTheGiantsNortheastGiantsGravepostGraceMimic = 1052547000, - [Annotation(Name = "[Mountaintops of the Giants - Northeast Giants' Gravepost] Golden Rune [10] 1052547010")] - MountaintopsOfTheGiantsNortheastGiantsGravepostGoldenRune10 = 1052547010, + [Annotation(Name = "[Mountaintops of the Giants - Northeast Giants' Gravepost] Golden Rune [10] 1052547010")] + MountaintopsOfTheGiantsNortheastGiantsGravepostGoldenRune10 = 1052547010, - [Annotation(Name = "[Mountaintops of the Giants - Northeast Giants' Gravepost] Golden Rune [10] 1052547020")] - MountaintopsOfTheGiantsNortheastGiantsGravepostGoldenRune10_ = 1052547020, + [Annotation(Name = "[Mountaintops of the Giants - Northeast Giants' Gravepost] Golden Rune [10] 1052547020")] + MountaintopsOfTheGiantsNortheastGiantsGravepostGoldenRune10_ = 1052547020, - [Annotation(Name = "[Mountaintops of the Giants - Northeast Giants' Gravepost] Map: Mountaintops of the Giants, East 62051")] - MountaintopsOfTheGiantsNortheastGiantsGravepostMapMountaintopsOfTheGiantsEast = 62051, + [Annotation(Name = "[Mountaintops of the Giants - Northeast Giants' Gravepost] Map: Mountaintops of the Giants, East 62051")] + MountaintopsOfTheGiantsNortheastGiantsGravepostMapMountaintopsOfTheGiantsEast = 62051, - [Annotation(Name = "[Mountaintops of the Giants - Northeast Giants' Gravepost] Starlight Shards 1052547800")] - MountaintopsOfTheGiantsNortheastGiantsGravepostStarlightShards = 1052547800, + [Annotation(Name = "[Mountaintops of the Giants - Northeast Giants' Gravepost] Starlight Shards 1052547800")] + MountaintopsOfTheGiantsNortheastGiantsGravepostStarlightShards = 1052547800, - [Annotation(Name = "[Mountaintops of the Giants - Northeast Giants' Gravepost] Crimsonwhorl Bubbletear 65200")] - MountaintopsOfTheGiantsNortheastGiantsGravepostCrimsonwhorlBubbletear = 65200, + [Annotation(Name = "[Mountaintops of the Giants - Northeast Giants' Gravepost] Crimsonwhorl Bubbletear 65200")] + MountaintopsOfTheGiantsNortheastGiantsGravepostCrimsonwhorlBubbletear = 65200, - [Annotation(Name = "[Mountaintops of the Giants - Guardians' Garrison] Smoldering Butterfly 1052557000")] - MountaintopsOfTheGiantsGuardiansGarrisonSmolderingButterfly = 1052557000, + [Annotation(Name = "[Mountaintops of the Giants - Guardians' Garrison] Smoldering Butterfly 1052557000")] + MountaintopsOfTheGiantsGuardiansGarrisonSmolderingButterfly = 1052557000, - [Annotation(Name = "[Mountaintops of the Giants - Guardians' Garrison] Smithing Stone [7] 1052557010")] - MountaintopsOfTheGiantsGuardiansGarrisonSmithingStone7 = 1052557010, + [Annotation(Name = "[Mountaintops of the Giants - Guardians' Garrison] Smithing Stone [7] 1052557010")] + MountaintopsOfTheGiantsGuardiansGarrisonSmithingStone7 = 1052557010, - [Annotation(Name = "[Mountaintops of the Giants - Guardians' Garrison] Golden Rune [10] 1052557020")] - MountaintopsOfTheGiantsGuardiansGarrisonGoldenRune10 = 1052557020, + [Annotation(Name = "[Mountaintops of the Giants - Guardians' Garrison] Golden Rune [10] 1052557020")] + MountaintopsOfTheGiantsGuardiansGarrisonGoldenRune10 = 1052557020, - [Annotation(Name = "[Mountaintops of the Giants - Guardians' Garrison] Smoldering Butterfly 1052557030")] - MountaintopsOfTheGiantsGuardiansGarrisonSmolderingButterfly_ = 1052557030, + [Annotation(Name = "[Mountaintops of the Giants - Guardians' Garrison] Smoldering Butterfly 1052557030")] + MountaintopsOfTheGiantsGuardiansGarrisonSmolderingButterfly_ = 1052557030, - [Annotation(Name = "[Mountaintops of the Giants - Guardians' Garrison] Smithing Stone [7] 1052557040")] - MountaintopsOfTheGiantsGuardiansGarrisonSmithingStone7_ = 1052557040, + [Annotation(Name = "[Mountaintops of the Giants - Guardians' Garrison] Smithing Stone [7] 1052557040")] + MountaintopsOfTheGiantsGuardiansGarrisonSmithingStone7_ = 1052557040, - [Annotation(Name = "[Mountaintops of the Giants - Guardians' Garrison] Golden Rune [8] 1052557300")] - MountaintopsOfTheGiantsGuardiansGarrisonGoldenRune8 = 1052557300, + [Annotation(Name = "[Mountaintops of the Giants - Guardians' Garrison] Golden Rune [8] 1052557300")] + MountaintopsOfTheGiantsGuardiansGarrisonGoldenRune8 = 1052557300, - [Annotation(Name = "[Mountaintops of the Giants - Guardians' Garrison] Stonesword Key 1052557310")] - MountaintopsOfTheGiantsGuardiansGarrisonStoneswordKey = 1052557310, + [Annotation(Name = "[Mountaintops of the Giants - Guardians' Garrison] Stonesword Key 1052557310")] + MountaintopsOfTheGiantsGuardiansGarrisonStoneswordKey = 1052557310, - [Annotation(Name = "[Mountaintops of the Giants - Guardians' Garrison] One-Eyed Shield 1052557700")] - MountaintopsOfTheGiantsGuardiansGarrisonOneEyedShield = 1052557700, + [Annotation(Name = "[Mountaintops of the Giants - Guardians' Garrison] One-Eyed Shield 1052557700")] + MountaintopsOfTheGiantsGuardiansGarrisonOneEyedShield = 1052557700, - [Annotation(Name = "[Mountaintops of the Giants - Guardians' Garrison] Gravel Stone 1052557800")] - MountaintopsOfTheGiantsGuardiansGarrisonGravelStone = 1052557800, + [Annotation(Name = "[Mountaintops of the Giants - Guardians' Garrison] Gravel Stone 1052557800")] + MountaintopsOfTheGiantsGuardiansGarrisonGravelStone = 1052557800, - [Annotation(Name = "[Mountaintops of the Giants - Guardians' Garrison] Giant's Prayerbook 1052557900")] - MountaintopsOfTheGiantsGuardiansGarrisonGiantsPrayerbook = 1052557900, + [Annotation(Name = "[Mountaintops of the Giants - Guardians' Garrison] Giant's Prayerbook 1052557900")] + MountaintopsOfTheGiantsGuardiansGarrisonGiantsPrayerbook = 1052557900, - [Annotation(Name = "[Mountaintops of the Giants - Ancient Snow Valley Ruins] Somber Smithing Stone [9] 1051567020")] - MountaintopsOfTheGiantsAncientSnowValleyRuinsSomberSmithingStone9 = 1051567020, + [Annotation(Name = "[Mountaintops of the Giants - Ancient Snow Valley Ruins] Somber Smithing Stone [9] 1051567020")] + MountaintopsOfTheGiantsAncientSnowValleyRuinsSomberSmithingStone9 = 1051567020, - [Annotation(Name = "[Mountaintops of the Giants - Ancient Snow Valley Ruins] Freezing Grease 1051567030")] - MountaintopsOfTheGiantsAncientSnowValleyRuinsFreezingGrease = 1051567030, + [Annotation(Name = "[Mountaintops of the Giants - Ancient Snow Valley Ruins] Freezing Grease 1051567030")] + MountaintopsOfTheGiantsAncientSnowValleyRuinsFreezingGrease = 1051567030, - [Annotation(Name = "[Mountaintops of the Giants - Ancient Snow Valley Ruins] Formic Rock 1051567300")] - MountaintopsOfTheGiantsAncientSnowValleyRuinsFormicRock = 1051567300, + [Annotation(Name = "[Mountaintops of the Giants - Ancient Snow Valley Ruins] Formic Rock 1051567300")] + MountaintopsOfTheGiantsAncientSnowValleyRuinsFormicRock = 1051567300, - [Annotation(Name = "[Mountaintops of the Giants - Ancient Snow Valley Ruins] Soft Cotton 1051567310")] - MountaintopsOfTheGiantsAncientSnowValleyRuinsSoftCotton = 1051567310, + [Annotation(Name = "[Mountaintops of the Giants - Ancient Snow Valley Ruins] Soft Cotton 1051567310")] + MountaintopsOfTheGiantsAncientSnowValleyRuinsSoftCotton = 1051567310, - [Annotation(Name = "[Mountaintops of the Giants - Ancient Snow Valley Ruins] Golden Rune [10] 1051567320")] - MountaintopsOfTheGiantsAncientSnowValleyRuinsGoldenRune10 = 1051567320, + [Annotation(Name = "[Mountaintops of the Giants - Ancient Snow Valley Ruins] Golden Rune [10] 1051567320")] + MountaintopsOfTheGiantsAncientSnowValleyRuinsGoldenRune10 = 1051567320, - [Annotation(Name = "[Mountaintops of the Giants - Ancient Snow Valley Ruins] Somber Smithing Stone [8] 1051567700")] - MountaintopsOfTheGiantsAncientSnowValleyRuinsSomberSmithingStone8 = 1051567700, + [Annotation(Name = "[Mountaintops of the Giants - Ancient Snow Valley Ruins] Somber Smithing Stone [8] 1051567700")] + MountaintopsOfTheGiantsAncientSnowValleyRuinsSomberSmithingStone8 = 1051567700, - [Annotation(Name = "[Mountaintops of the Giants - Ancient Snow Valley Ruins] Miquella's Lily 1051567800")] - MountaintopsOfTheGiantsAncientSnowValleyRuinsMiquellasLily = 1051567800, + [Annotation(Name = "[Mountaintops of the Giants - Ancient Snow Valley Ruins] Miquella's Lily 1051567800")] + MountaintopsOfTheGiantsAncientSnowValleyRuinsMiquellasLily = 1051567800, - [Annotation(Name = "[Mountaintops of the Giants - Ancient Snow Valley Ruins] Miquella's Lily 1051567810")] - MountaintopsOfTheGiantsAncientSnowValleyRuinsMiquellasLily_ = 1051567810, + [Annotation(Name = "[Mountaintops of the Giants - Ancient Snow Valley Ruins] Miquella's Lily 1051567810")] + MountaintopsOfTheGiantsAncientSnowValleyRuinsMiquellasLily_ = 1051567810, - [Annotation(Name = "[Mountaintops of the Giants - Ancient Snow Valley Ruins] Primal Glintstone Blade 1051567900")] - MountaintopsOfTheGiantsAncientSnowValleyRuinsPrimalGlintstoneBlade = 1051567900, + [Annotation(Name = "[Mountaintops of the Giants - Ancient Snow Valley Ruins] Primal Glintstone Blade 1051567900")] + MountaintopsOfTheGiantsAncientSnowValleyRuinsPrimalGlintstoneBlade = 1051567900, - [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Freezing Grease 1051577000")] - MountaintopsOfTheGiantsSouthCastleSolFreezingGrease = 1051577000, + [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Freezing Grease 1051577000")] + MountaintopsOfTheGiantsSouthCastleSolFreezingGrease = 1051577000, - [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Golden Rune [10] 1051577010")] - MountaintopsOfTheGiantsSouthCastleSolGoldenRune10 = 1051577010, + [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Golden Rune [10] 1051577010")] + MountaintopsOfTheGiantsSouthCastleSolGoldenRune10 = 1051577010, - [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Smithing Stone [5] 1051577020")] - MountaintopsOfTheGiantsSouthCastleSolSmithingStone5 = 1051577020, + [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Smithing Stone [5] 1051577020")] + MountaintopsOfTheGiantsSouthCastleSolSmithingStone5 = 1051577020, - [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Fan Daggers 1051577030")] - MountaintopsOfTheGiantsSouthCastleSolFanDaggers = 1051577030, + [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Fan Daggers 1051577030")] + MountaintopsOfTheGiantsSouthCastleSolFanDaggers = 1051577030, - [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Golden Rune [10] 1051577040")] - MountaintopsOfTheGiantsSouthCastleSolGoldenRune10_ = 1051577040, + [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Golden Rune [10] 1051577040")] + MountaintopsOfTheGiantsSouthCastleSolGoldenRune10_ = 1051577040, - [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Golden Rune [10] 1051577050")] - MountaintopsOfTheGiantsSouthCastleSolGoldenRune10__ = 1051577050, + [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Golden Rune [10] 1051577050")] + MountaintopsOfTheGiantsSouthCastleSolGoldenRune10__ = 1051577050, - [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Nascent Butterfly 1051577060")] - MountaintopsOfTheGiantsSouthCastleSolNascentButterfly = 1051577060, + [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Nascent Butterfly 1051577060")] + MountaintopsOfTheGiantsSouthCastleSolNascentButterfly = 1051577060, - [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Cerulean Amber Medallion +1 1051577070")] - MountaintopsOfTheGiantsSouthCastleSolCeruleanAmberMedallion1 = 1051577070, + [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Cerulean Amber Medallion +1 1051577070")] + MountaintopsOfTheGiantsSouthCastleSolCeruleanAmberMedallion1 = 1051577070, - [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Smithing Stone [7] 1051577080")] - MountaintopsOfTheGiantsSouthCastleSolSmithingStone7 = 1051577080, + [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Smithing Stone [7] 1051577080")] + MountaintopsOfTheGiantsSouthCastleSolSmithingStone7 = 1051577080, - [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Smithing Stone [5] 1051577090")] - MountaintopsOfTheGiantsSouthCastleSolSmithingStone5_ = 1051577090, + [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Smithing Stone [5] 1051577090")] + MountaintopsOfTheGiantsSouthCastleSolSmithingStone5_ = 1051577090, - [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Smithing Stone [6] 1051577100")] - MountaintopsOfTheGiantsSouthCastleSolSmithingStone6 = 1051577100, + [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Smithing Stone [6] 1051577100")] + MountaintopsOfTheGiantsSouthCastleSolSmithingStone6 = 1051577100, - [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Somber Smithing Stone [8] 1051577110")] - MountaintopsOfTheGiantsSouthCastleSolSomberSmithingStone8 = 1051577110, + [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Somber Smithing Stone [8] 1051577110")] + MountaintopsOfTheGiantsSouthCastleSolSomberSmithingStone8 = 1051577110, - [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Golden Rune [10] 1051577120")] - MountaintopsOfTheGiantsSouthCastleSolGoldenRune10___ = 1051577120, + [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Golden Rune [10] 1051577120")] + MountaintopsOfTheGiantsSouthCastleSolGoldenRune10___ = 1051577120, - [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Human Bone Shard 1051577130")] - MountaintopsOfTheGiantsSouthCastleSolHumanBoneShard = 1051577130, + [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Human Bone Shard 1051577130")] + MountaintopsOfTheGiantsSouthCastleSolHumanBoneShard = 1051577130, - [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Golden Rune [11] 1051577140")] - MountaintopsOfTheGiantsSouthCastleSolGoldenRune11 = 1051577140, + [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Golden Rune [11] 1051577140")] + MountaintopsOfTheGiantsSouthCastleSolGoldenRune11 = 1051577140, - [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Thawfrost Boluses 1051577150")] - MountaintopsOfTheGiantsSouthCastleSolThawfrostBoluses = 1051577150, + [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Thawfrost Boluses 1051577150")] + MountaintopsOfTheGiantsSouthCastleSolThawfrostBoluses = 1051577150, - [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Furlcalling Finger Remedy 1051577160")] - MountaintopsOfTheGiantsSouthCastleSolFurlcallingFingerRemedy = 1051577160, + [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Furlcalling Finger Remedy 1051577160")] + MountaintopsOfTheGiantsSouthCastleSolFurlcallingFingerRemedy = 1051577160, - [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Smithing Stone [6] 1051577170")] - MountaintopsOfTheGiantsSouthCastleSolSmithingStone6_ = 1051577170, + [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Smithing Stone [6] 1051577170")] + MountaintopsOfTheGiantsSouthCastleSolSmithingStone6_ = 1051577170, - [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Thawfrost Boluses 1051577180")] - MountaintopsOfTheGiantsSouthCastleSolThawfrostBoluses_ = 1051577180, + [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Thawfrost Boluses 1051577180")] + MountaintopsOfTheGiantsSouthCastleSolThawfrostBoluses_ = 1051577180, - [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Somber Smithing Stone [8] 1051577190")] - MountaintopsOfTheGiantsSouthCastleSolSomberSmithingStone8_ = 1051577190, + [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Somber Smithing Stone [8] 1051577190")] + MountaintopsOfTheGiantsSouthCastleSolSomberSmithingStone8_ = 1051577190, - [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Golden Rune [9] 1051577200")] - MountaintopsOfTheGiantsSouthCastleSolGoldenRune9 = 1051577200, + [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Golden Rune [9] 1051577200")] + MountaintopsOfTheGiantsSouthCastleSolGoldenRune9 = 1051577200, - [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Rune Arc 1051577210")] - MountaintopsOfTheGiantsSouthCastleSolRuneArc = 1051577210, + [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Rune Arc 1051577210")] + MountaintopsOfTheGiantsSouthCastleSolRuneArc = 1051577210, - [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Stormhawk Axe 1051577220")] - MountaintopsOfTheGiantsSouthCastleSolStormhawkAxe = 1051577220, + [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Stormhawk Axe 1051577220")] + MountaintopsOfTheGiantsSouthCastleSolStormhawkAxe = 1051577220, - [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Golden Rune [10] 1051577230")] - MountaintopsOfTheGiantsSouthCastleSolGoldenRune10____ = 1051577230, + [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Golden Rune [10] 1051577230")] + MountaintopsOfTheGiantsSouthCastleSolGoldenRune10____ = 1051577230, - [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Stonesword Key 1051577300")] - MountaintopsOfTheGiantsSouthCastleSolStoneswordKey = 1051577300, + [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Stonesword Key 1051577300")] + MountaintopsOfTheGiantsSouthCastleSolStoneswordKey = 1051577300, - [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Eclipse Shotel 1051577600")] - MountaintopsOfTheGiantsSouthCastleSolEclipseShotel = 1051577600, + [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Eclipse Shotel 1051577600")] + MountaintopsOfTheGiantsSouthCastleSolEclipseShotel = 1051577600, - [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Helphen's Steeple 1051577720")] - MountaintopsOfTheGiantsSouthCastleSolHelphensSteeple = 1051577720, + [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Helphen's Steeple 1051577720")] + MountaintopsOfTheGiantsSouthCastleSolHelphensSteeple = 1051577720, - [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Somber Smithing Stone [7] 1051577800")] - MountaintopsOfTheGiantsSouthCastleSolSomberSmithingStone7 = 1051577800, + [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Somber Smithing Stone [7] 1051577800")] + MountaintopsOfTheGiantsSouthCastleSolSomberSmithingStone7 = 1051577800, - [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Somber Smithing Stone [7] 1051577810")] - MountaintopsOfTheGiantsSouthCastleSolSomberSmithingStone7_ = 1051577810, + [Annotation(Name = "[Mountaintops of the Giants - South Castle Sol] Somber Smithing Stone [7] 1051577810")] + MountaintopsOfTheGiantsSouthCastleSolSomberSmithingStone7_ = 1051577810, - [Annotation(Name = "[Mountaintops of the Giants - Northwest of Freezing Lake] Golden Rune [4] 1052587800")] - MountaintopsOfTheGiantsNorthwestOfFreezingLakeGoldenRune4 = 1052587800, + [Annotation(Name = "[Mountaintops of the Giants - Northwest of Freezing Lake] Golden Rune [4] 1052587800")] + MountaintopsOfTheGiantsNorthwestOfFreezingLakeGoldenRune4 = 1052587800, - [Annotation(Name = "[Mountaintops of the Giants - Northwest of Freezing Lake] Golden Rune [5] 1052587810")] - MountaintopsOfTheGiantsNorthwestOfFreezingLakeGoldenRune5 = 1052587810, + [Annotation(Name = "[Mountaintops of the Giants - Northwest of Freezing Lake] Golden Rune [5] 1052587810")] + MountaintopsOfTheGiantsNorthwestOfFreezingLakeGoldenRune5 = 1052587810, - [Annotation(Name = "[Mountaintops of the Giants - Northwest of Freezing Lake] Golden Rune [10] 1052587820")] - MountaintopsOfTheGiantsNorthwestOfFreezingLakeGoldenRune10 = 1052587820, + [Annotation(Name = "[Mountaintops of the Giants - Northwest of Freezing Lake] Golden Rune [10] 1052587820")] + MountaintopsOfTheGiantsNorthwestOfFreezingLakeGoldenRune10 = 1052587820, - [Annotation(Name = "[Mountaintops of the Giants - North Castle Sol] Haligtree Secret Medallion (Left) 1051587800")] - MountaintopsOfTheGiantsNorthCastleSolHaligtreeSecretMedallionLeft = 1051587800, + [Annotation(Name = "[Mountaintops of the Giants - North Castle Sol] Haligtree Secret Medallion (Left) 1051587800")] + MountaintopsOfTheGiantsNorthCastleSolHaligtreeSecretMedallionLeft = 1051587800, - [Annotation(Name = "[Consecrated Snowfield - Yelough Anix Ruins] Smithing Stone [7] 1047557000")] - ConsecratedSnowfieldYeloughAnixRuinsSmithingStone7 = 1047557000, + [Annotation(Name = "[Consecrated Snowfield - Yelough Anix Ruins] Smithing Stone [7] 1047557000")] + ConsecratedSnowfieldYeloughAnixRuinsSmithingStone7 = 1047557000, - [Annotation(Name = "[Consecrated Snowfield - Yelough Anix Ruins] Rimed Rowa 1047557010")] - ConsecratedSnowfieldYeloughAnixRuinsRimedRowa = 1047557010, + [Annotation(Name = "[Consecrated Snowfield - Yelough Anix Ruins] Rimed Rowa 1047557010")] + ConsecratedSnowfieldYeloughAnixRuinsRimedRowa = 1047557010, - [Annotation(Name = "[Consecrated Snowfield - Yelough Anix Ruins] Golden Rune [13] 1047557020")] - ConsecratedSnowfieldYeloughAnixRuinsGoldenRune13 = 1047557020, + [Annotation(Name = "[Consecrated Snowfield - Yelough Anix Ruins] Golden Rune [13] 1047557020")] + ConsecratedSnowfieldYeloughAnixRuinsGoldenRune13 = 1047557020, - [Annotation(Name = "[Consecrated Snowfield - Yelough Anix Ruins] Stonesword Key 1047557030")] - ConsecratedSnowfieldYeloughAnixRuinsStoneswordKey = 1047557030, + [Annotation(Name = "[Consecrated Snowfield - Yelough Anix Ruins] Stonesword Key 1047557030")] + ConsecratedSnowfieldYeloughAnixRuinsStoneswordKey = 1047557030, - [Annotation(Name = "[Consecrated Snowfield - Yelough Anix Ruins] Golden Rune [7] 1047557040")] - ConsecratedSnowfieldYeloughAnixRuinsGoldenRune7 = 1047557040, + [Annotation(Name = "[Consecrated Snowfield - Yelough Anix Ruins] Golden Rune [7] 1047557040")] + ConsecratedSnowfieldYeloughAnixRuinsGoldenRune7 = 1047557040, - [Annotation(Name = "[Consecrated Snowfield - Yelough Anix Ruins] Unendurable Frenzy 1047557900")] - ConsecratedSnowfieldYeloughAnixRuinsUnendurableFrenzy = 1047557900, + [Annotation(Name = "[Consecrated Snowfield - Yelough Anix Ruins] Unendurable Frenzy 1047557900")] + ConsecratedSnowfieldYeloughAnixRuinsUnendurableFrenzy = 1047557900, - [Annotation(Name = "[Consecrated Snowfield - North of Yelough Anix Ruins] Hero's Rune [2] 1047567300")] - ConsecratedSnowfieldNorthOfYeloughAnixRuinsHerosRune2 = 1047567300, + [Annotation(Name = "[Consecrated Snowfield - North of Yelough Anix Ruins] Hero's Rune [2] 1047567300")] + ConsecratedSnowfieldNorthOfYeloughAnixRuinsHerosRune2 = 1047567300, - [Annotation(Name = "[Consecrated Snowfield - North of Yelough Anix Ruins] Smithing Stone [8] 1047567310")] - ConsecratedSnowfieldNorthOfYeloughAnixRuinsSmithingStone8 = 1047567310, + [Annotation(Name = "[Consecrated Snowfield - North of Yelough Anix Ruins] Smithing Stone [8] 1047567310")] + ConsecratedSnowfieldNorthOfYeloughAnixRuinsSmithingStone8 = 1047567310, - [Annotation(Name = "[Consecrated Snowfield - North of Yelough Anix Ruins] Thawfrost Boluses 1047567320")] - ConsecratedSnowfieldNorthOfYeloughAnixRuinsThawfrostBoluses = 1047567320, + [Annotation(Name = "[Consecrated Snowfield - North of Yelough Anix Ruins] Thawfrost Boluses 1047567320")] + ConsecratedSnowfieldNorthOfYeloughAnixRuinsThawfrostBoluses = 1047567320, - [Annotation(Name = "[Consecrated Snowfield - North of Yelough Anix Ruins] Crystal Dart 1047567330")] - ConsecratedSnowfieldNorthOfYeloughAnixRuinsCrystalDart = 1047567330, + [Annotation(Name = "[Consecrated Snowfield - North of Yelough Anix Ruins] Crystal Dart 1047567330")] + ConsecratedSnowfieldNorthOfYeloughAnixRuinsCrystalDart = 1047567330, - [Annotation(Name = "[Consecrated Snowfield - North of Yelough Anix Ruins] Sanguine Noble Hood 1047567700")] - ConsecratedSnowfieldNorthOfYeloughAnixRuinsSanguineNobleHood = 1047567700, + [Annotation(Name = "[Consecrated Snowfield - North of Yelough Anix Ruins] Sanguine Noble Hood 1047567700")] + ConsecratedSnowfieldNorthOfYeloughAnixRuinsSanguineNobleHood = 1047567700, - [Annotation(Name = "[Consecrated Snowfield - Far West Cliffside] Golden Rune [1] 1046577300")] - ConsecratedSnowfieldFarWestCliffsideGoldenRune1 = 1046577300, + [Annotation(Name = "[Consecrated Snowfield - Far West Cliffside] Golden Rune [1] 1046577300")] + ConsecratedSnowfieldFarWestCliffsideGoldenRune1 = 1046577300, - [Annotation(Name = "[Consecrated Snowfield - Far West Cliffside] Smithing Stone [7] 1046577800")] - ConsecratedSnowfieldFarWestCliffsideSmithingStone7 = 1046577800, + [Annotation(Name = "[Consecrated Snowfield - Far West Cliffside] Smithing Stone [7] 1046577800")] + ConsecratedSnowfieldFarWestCliffsideSmithingStone7 = 1046577800, - [Annotation(Name = "[Consecrated Snowfield - South of Ordina] Stonesword Key 1048567300")] - ConsecratedSnowfieldSouthOfOrdinaStoneswordKey = 1048567300, + [Annotation(Name = "[Consecrated Snowfield - South of Ordina] Stonesword Key 1048567300")] + ConsecratedSnowfieldSouthOfOrdinaStoneswordKey = 1048567300, - [Annotation(Name = "[Consecrated Snowfield - South of Ordina] Map: Consecrated Snowfield 62052")] - ConsecratedSnowfieldSouthOfOrdinaMapConsecratedSnowfield = 62052, + [Annotation(Name = "[Consecrated Snowfield - South of Ordina] Map: Consecrated Snowfield 62052")] + ConsecratedSnowfieldSouthOfOrdinaMapConsecratedSnowfield = 62052, - [Annotation(Name = "[Consecrated Snowfield - South of Ordina] Somber Ancient Dragon Smithing Stone 1048567800")] - ConsecratedSnowfieldSouthOfOrdinaSomberAncientDragonSmithingStone = 1048567800, + [Annotation(Name = "[Consecrated Snowfield - South of Ordina] Somber Ancient Dragon Smithing Stone 1048567800")] + ConsecratedSnowfieldSouthOfOrdinaSomberAncientDragonSmithingStone = 1048567800, - [Annotation(Name = "[Consecrated Snowfield - Ordina, Liturgical Town] Rune Arc 1048577000")] - ConsecratedSnowfieldOrdinaLiturgicalTownRuneArc = 1048577000, + [Annotation(Name = "[Consecrated Snowfield - Ordina, Liturgical Town] Rune Arc 1048577000")] + ConsecratedSnowfieldOrdinaLiturgicalTownRuneArc = 1048577000, - [Annotation(Name = "[Consecrated Snowfield - Ordina, Liturgical Town] Golden Rune [13] 1048577010")] - ConsecratedSnowfieldOrdinaLiturgicalTownGoldenRune13 = 1048577010, + [Annotation(Name = "[Consecrated Snowfield - Ordina, Liturgical Town] Golden Rune [13] 1048577010")] + ConsecratedSnowfieldOrdinaLiturgicalTownGoldenRune13 = 1048577010, - [Annotation(Name = "[Consecrated Snowfield - Ordina, Liturgical Town] Hefty Beast Bone 1048577020")] - ConsecratedSnowfieldOrdinaLiturgicalTownHeftyBeastBone = 1048577020, + [Annotation(Name = "[Consecrated Snowfield - Ordina, Liturgical Town] Hefty Beast Bone 1048577020")] + ConsecratedSnowfieldOrdinaLiturgicalTownHeftyBeastBone = 1048577020, - [Annotation(Name = "[Consecrated Snowfield - Ordina, Liturgical Town] Golden Rune [13] 1048577030")] - ConsecratedSnowfieldOrdinaLiturgicalTownGoldenRune13_ = 1048577030, + [Annotation(Name = "[Consecrated Snowfield - Ordina, Liturgical Town] Golden Rune [13] 1048577030")] + ConsecratedSnowfieldOrdinaLiturgicalTownGoldenRune13_ = 1048577030, - [Annotation(Name = "[Consecrated Snowfield - Ordina, Liturgical Town] Freezing Grease 1048577040")] - ConsecratedSnowfieldOrdinaLiturgicalTownFreezingGrease = 1048577040, + [Annotation(Name = "[Consecrated Snowfield - Ordina, Liturgical Town] Freezing Grease 1048577040")] + ConsecratedSnowfieldOrdinaLiturgicalTownFreezingGrease = 1048577040, - [Annotation(Name = "[Consecrated Snowfield - Ordina, Liturgical Town] Cuckoo Glintstone 1048577050")] - ConsecratedSnowfieldOrdinaLiturgicalTownCuckooGlintstone = 1048577050, + [Annotation(Name = "[Consecrated Snowfield - Ordina, Liturgical Town] Cuckoo Glintstone 1048577050")] + ConsecratedSnowfieldOrdinaLiturgicalTownCuckooGlintstone = 1048577050, - [Annotation(Name = "[Consecrated Snowfield - Ordina, Liturgical Town] Crystal Dart 1048577060")] - ConsecratedSnowfieldOrdinaLiturgicalTownCrystalDart = 1048577060, + [Annotation(Name = "[Consecrated Snowfield - Ordina, Liturgical Town] Crystal Dart 1048577060")] + ConsecratedSnowfieldOrdinaLiturgicalTownCrystalDart = 1048577060, - [Annotation(Name = "[Consecrated Snowfield - Ordina, Liturgical Town] Old Fang 1048577070")] - ConsecratedSnowfieldOrdinaLiturgicalTownOldFang = 1048577070, + [Annotation(Name = "[Consecrated Snowfield - Ordina, Liturgical Town] Old Fang 1048577070")] + ConsecratedSnowfieldOrdinaLiturgicalTownOldFang = 1048577070, - [Annotation(Name = "[Consecrated Snowfield - Ordina, Liturgical Town] Slumbering Egg 1048577080")] - ConsecratedSnowfieldOrdinaLiturgicalTownSlumberingEgg = 1048577080, + [Annotation(Name = "[Consecrated Snowfield - Ordina, Liturgical Town] Slumbering Egg 1048577080")] + ConsecratedSnowfieldOrdinaLiturgicalTownSlumberingEgg = 1048577080, - [Annotation(Name = "[Consecrated Snowfield - Ordina, Liturgical Town] Golden Rune [12] 1048577090")] - ConsecratedSnowfieldOrdinaLiturgicalTownGoldenRune12 = 1048577090, + [Annotation(Name = "[Consecrated Snowfield - Ordina, Liturgical Town] Golden Rune [12] 1048577090")] + ConsecratedSnowfieldOrdinaLiturgicalTownGoldenRune12 = 1048577090, - [Annotation(Name = "[Consecrated Snowfield - Ordina, Liturgical Town] Invigorating Cured Meat 1048577300")] - ConsecratedSnowfieldOrdinaLiturgicalTownInvigoratingCuredMeat = 1048577300, + [Annotation(Name = "[Consecrated Snowfield - Ordina, Liturgical Town] Invigorating Cured Meat 1048577300")] + ConsecratedSnowfieldOrdinaLiturgicalTownInvigoratingCuredMeat = 1048577300, - [Annotation(Name = "[Consecrated Snowfield - Ordina, Liturgical Town] Golden Rune [10] 1048577310")] - ConsecratedSnowfieldOrdinaLiturgicalTownGoldenRune10 = 1048577310, + [Annotation(Name = "[Consecrated Snowfield - Ordina, Liturgical Town] Golden Rune [10] 1048577310")] + ConsecratedSnowfieldOrdinaLiturgicalTownGoldenRune10 = 1048577310, - [Annotation(Name = "[Consecrated Snowfield - Ordina, Liturgical Town] Explosive Ghostflame 1048577700")] - ConsecratedSnowfieldOrdinaLiturgicalTownExplosiveGhostflame = 1048577700, + [Annotation(Name = "[Consecrated Snowfield - Ordina, Liturgical Town] Explosive Ghostflame 1048577700")] + ConsecratedSnowfieldOrdinaLiturgicalTownExplosiveGhostflame = 1048577700, - [Annotation(Name = "[Consecrated Snowfield - Ordina, Liturgical Town] Golden Seed 1048577800")] - ConsecratedSnowfieldOrdinaLiturgicalTownGoldenSeed = 1048577800, + [Annotation(Name = "[Consecrated Snowfield - Ordina, Liturgical Town] Golden Seed 1048577800")] + ConsecratedSnowfieldOrdinaLiturgicalTownGoldenSeed = 1048577800, - [Annotation(Name = "[Consecrated Snowfield - Ordina, Liturgical Town] Black Knife Hood 1048577810")] - ConsecratedSnowfieldOrdinaLiturgicalTownBlackKnifeHood = 1048577810, + [Annotation(Name = "[Consecrated Snowfield - Ordina, Liturgical Town] Black Knife Hood 1048577810")] + ConsecratedSnowfieldOrdinaLiturgicalTownBlackKnifeHood = 1048577810, - [Annotation(Name = "[Consecrated Snowfield - Ordina, Liturgical Town] Ghost Glovewort [9] 1048577900")] - ConsecratedSnowfieldOrdinaLiturgicalTownGhostGlovewort9 = 1048577900, + [Annotation(Name = "[Consecrated Snowfield - Ordina, Liturgical Town] Ghost Glovewort [9] 1048577900")] + ConsecratedSnowfieldOrdinaLiturgicalTownGhostGlovewort9 = 1048577900, - [Annotation(Name = "[Consecrated Snowfield - Ordina, Liturgical Town] Ghost Glovewort [9] 1048577910")] - ConsecratedSnowfieldOrdinaLiturgicalTownGhostGlovewort9_ = 1048577910, + [Annotation(Name = "[Consecrated Snowfield - Ordina, Liturgical Town] Ghost Glovewort [9] 1048577910")] + ConsecratedSnowfieldOrdinaLiturgicalTownGhostGlovewort9_ = 1048577910, - [Annotation(Name = "[Consecrated Snowfield - Ordina, Liturgical Town] Ghost Glovewort [9] 1048577920")] - ConsecratedSnowfieldOrdinaLiturgicalTownGhostGlovewort9__ = 1048577920, + [Annotation(Name = "[Consecrated Snowfield - Ordina, Liturgical Town] Ghost Glovewort [9] 1048577920")] + ConsecratedSnowfieldOrdinaLiturgicalTownGhostGlovewort9__ = 1048577920, - [Annotation(Name = "[Consecrated Snowfield - Ordina, Liturgical Town] Ghost Glovewort [9] 1048577930")] - ConsecratedSnowfieldOrdinaLiturgicalTownGhostGlovewort9___ = 1048577930, + [Annotation(Name = "[Consecrated Snowfield - Ordina, Liturgical Town] Ghost Glovewort [9] 1048577930")] + ConsecratedSnowfieldOrdinaLiturgicalTownGhostGlovewort9___ = 1048577930, - [Annotation(Name = "[Consecrated Snowfield - East of Apostate Derelict] Golden Rune [13] 1048587300")] - ConsecratedSnowfieldEastOfApostateDerelictGoldenRune13 = 1048587300, + [Annotation(Name = "[Consecrated Snowfield - East of Apostate Derelict] Golden Rune [13] 1048587300")] + ConsecratedSnowfieldEastOfApostateDerelictGoldenRune13 = 1048587300, - [Annotation(Name = "[Consecrated Snowfield - Hidden Path to the Haligtree] Golden Rune [13] 1049547300")] - ConsecratedSnowfieldHiddenPathtoTheHaligtreeGoldenRune13 = 1049547300, + [Annotation(Name = "[Consecrated Snowfield - Hidden Path to the Haligtree] Golden Rune [13] 1049547300")] + ConsecratedSnowfieldHiddenPathtoTheHaligtreeGoldenRune13 = 1049547300, - [Annotation(Name = "[Consecrated Snowfield - Hidden Path to the Haligtree] Golden Rune [11] 1049547310")] - ConsecratedSnowfieldHiddenPathtoTheHaligtreeGoldenRune11 = 1049547310, + [Annotation(Name = "[Consecrated Snowfield - Hidden Path to the Haligtree] Golden Rune [11] 1049547310")] + ConsecratedSnowfieldHiddenPathtoTheHaligtreeGoldenRune11 = 1049547310, - [Annotation(Name = "[Consecrated Snowfield - Hidden Path to the Haligtree] Somber Smithing Stone [8] 1049547700")] - ConsecratedSnowfieldHiddenPathtoTheHaligtreeSomberSmithingStone8 = 1049547700, + [Annotation(Name = "[Consecrated Snowfield - Hidden Path to the Haligtree] Somber Smithing Stone [8] 1049547700")] + ConsecratedSnowfieldHiddenPathtoTheHaligtreeSomberSmithingStone8 = 1049547700, - [Annotation(Name = "[Consecrated Snowfield - Hidden Path to the Haligtree] Nomadic Warrior's Cookbook [23] 67090")] - ConsecratedSnowfieldHiddenPathtoTheHaligtreeNomadicWarriorsCookbook23 = 67090, + [Annotation(Name = "[Consecrated Snowfield - Hidden Path to the Haligtree] Nomadic Warrior's Cookbook [23] 67090")] + ConsecratedSnowfieldHiddenPathtoTheHaligtreeNomadicWarriorsCookbook23 = 67090, - [Annotation(Name = "[Consecrated Snowfield - Hidden Path to the Haligtree] St. Trina's Torch 1049547900")] - ConsecratedSnowfieldHiddenPathtoTheHaligtreeStTrinasTorch = 1049547900, + [Annotation(Name = "[Consecrated Snowfield - Hidden Path to the Haligtree] St. Trina's Torch 1049547900")] + ConsecratedSnowfieldHiddenPathtoTheHaligtreeStTrinasTorch = 1049547900, - [Annotation(Name = "[Consecrated Snowfield - Southwest Foggy Area] Golden Rune [1] 1048547800")] - ConsecratedSnowfieldSouthwestFoggyAreaGoldenRune1 = 1048547800, + [Annotation(Name = "[Consecrated Snowfield - Southwest Foggy Area] Golden Rune [1] 1048547800")] + ConsecratedSnowfieldSouthwestFoggyAreaGoldenRune1 = 1048547800, - [Annotation(Name = "[Consecrated Snowfield - Southwest Foggy Area] Golden Rune [3] 1048547810")] - ConsecratedSnowfieldSouthwestFoggyAreaGoldenRune3 = 1048547810, + [Annotation(Name = "[Consecrated Snowfield - Southwest Foggy Area] Golden Rune [3] 1048547810")] + ConsecratedSnowfieldSouthwestFoggyAreaGoldenRune3 = 1048547810, - [Annotation(Name = "[Consecrated Snowfield - Southwest Foggy Area] Golden Rune [6] 1048547820")] - ConsecratedSnowfieldSouthwestFoggyAreaGoldenRune6 = 1048547820, + [Annotation(Name = "[Consecrated Snowfield - Southwest Foggy Area] Golden Rune [6] 1048547820")] + ConsecratedSnowfieldSouthwestFoggyAreaGoldenRune6 = 1048547820, - [Annotation(Name = "[Consecrated Snowfield - Southwest Foggy Area] Golden Rune [9] 1048547830")] - ConsecratedSnowfieldSouthwestFoggyAreaGoldenRune9 = 1048547830, + [Annotation(Name = "[Consecrated Snowfield - Southwest Foggy Area] Golden Rune [9] 1048547830")] + ConsecratedSnowfieldSouthwestFoggyAreaGoldenRune9 = 1048547830, - [Annotation(Name = "[Consecrated Snowfield - Southwest Foggy Area] Golden Rune [11] 1048547840")] - ConsecratedSnowfieldSouthwestFoggyAreaGoldenRune11 = 1048547840, + [Annotation(Name = "[Consecrated Snowfield - Southwest Foggy Area] Golden Rune [11] 1048547840")] + ConsecratedSnowfieldSouthwestFoggyAreaGoldenRune11 = 1048547840, - [Annotation(Name = "[Consecrated Snowfield - Northwest Foggy Area] Golden Rune [13] 1048557300")] - ConsecratedSnowfieldNorthwestFoggyAreaGoldenRune13 = 1048557300, + [Annotation(Name = "[Consecrated Snowfield - Northwest Foggy Area] Golden Rune [13] 1048557300")] + ConsecratedSnowfieldNorthwestFoggyAreaGoldenRune13 = 1048557300, - [Annotation(Name = "[Consecrated Snowfield - Northwest Foggy Area] Stalwart Horn Charm +1 1048557600")] - ConsecratedSnowfieldNorthwestFoggyAreaStalwartHornCharm1 = 1048557600, + [Annotation(Name = "[Consecrated Snowfield - Northwest Foggy Area] Stalwart Horn Charm +1 1048557600")] + ConsecratedSnowfieldNorthwestFoggyAreaStalwartHornCharm1 = 1048557600, - [Annotation(Name = "[Consecrated Snowfield - Northwest Foggy Area] Ancient Dragon Smithing Stone 1048557700")] - ConsecratedSnowfieldNorthwestFoggyAreaAncientDragonSmithingStone = 1048557700, + [Annotation(Name = "[Consecrated Snowfield - Northwest Foggy Area] Ancient Dragon Smithing Stone 1048557700")] + ConsecratedSnowfieldNorthwestFoggyAreaAncientDragonSmithingStone = 1048557700, - [Annotation(Name = "[Consecrated Snowfield - Northwest Foggy Area] Night's Cavalry Helm 1048557710")] - ConsecratedSnowfieldNorthwestFoggyAreaNightsCavalryHelm = 1048557710, + [Annotation(Name = "[Consecrated Snowfield - Northwest Foggy Area] Night's Cavalry Helm 1048557710")] + ConsecratedSnowfieldNorthwestFoggyAreaNightsCavalryHelm = 1048557710, - [Annotation(Name = "[Consecrated Snowfield - Northwest Foggy Area] Flowing Curved Sword 1048557900")] - ConsecratedSnowfieldNorthwestFoggyAreaFlowingCurvedSword = 1048557900, + [Annotation(Name = "[Consecrated Snowfield - Northwest Foggy Area] Flowing Curved Sword 1048557900")] + ConsecratedSnowfieldNorthwestFoggyAreaFlowingCurvedSword = 1048557900, - [Annotation(Name = "[Consecrated Snowfield - Northeast Foggy Area] Somber Smithing Stone [9] 1049557300")] - ConsecratedSnowfieldNortheastFoggyAreaSomberSmithingStone9 = 1049557300, + [Annotation(Name = "[Consecrated Snowfield - Northeast Foggy Area] Somber Smithing Stone [9] 1049557300")] + ConsecratedSnowfieldNortheastFoggyAreaSomberSmithingStone9 = 1049557300, - [Annotation(Name = "[Consecrated Snowfield - Northeast Foggy Area] Old Fang 1049557310")] - ConsecratedSnowfieldNortheastFoggyAreaOldFang = 1049557310, + [Annotation(Name = "[Consecrated Snowfield - Northeast Foggy Area] Old Fang 1049557310")] + ConsecratedSnowfieldNortheastFoggyAreaOldFang = 1049557310, - [Annotation(Name = "[Consecrated Snowfield - Northeast Foggy Area] Fire Blossom 1049557320")] - ConsecratedSnowfieldNortheastFoggyAreaFireBlossom = 1049557320, + [Annotation(Name = "[Consecrated Snowfield - Northeast Foggy Area] Fire Blossom 1049557320")] + ConsecratedSnowfieldNortheastFoggyAreaFireBlossom = 1049557320, - [Annotation(Name = "[Consecrated Snowfield - Northeast Foggy Area] Miquella's Lily 1049557330")] - ConsecratedSnowfieldNortheastFoggyAreaMiquellasLily = 1049557330, + [Annotation(Name = "[Consecrated Snowfield - Northeast Foggy Area] Miquella's Lily 1049557330")] + ConsecratedSnowfieldNortheastFoggyAreaMiquellasLily = 1049557330, - [Annotation(Name = "[Consecrated Snowfield - Northeast Foggy Area] Larval Tear 1049557700")] - ConsecratedSnowfieldNortheastFoggyAreaLarvalTear = 1049557700, + [Annotation(Name = "[Consecrated Snowfield - Northeast Foggy Area] Larval Tear 1049557700")] + ConsecratedSnowfieldNortheastFoggyAreaLarvalTear = 1049557700, - [Annotation(Name = "[Consecrated Snowfield - Northeast Foggy Area] Golden Seed 1049557800")] - ConsecratedSnowfieldNortheastFoggyAreaGoldenSeed = 1049557800, + [Annotation(Name = "[Consecrated Snowfield - Northeast Foggy Area] Golden Seed 1049557800")] + ConsecratedSnowfieldNortheastFoggyAreaGoldenSeed = 1049557800, - [Annotation(Name = "[Consecrated Snowfield - Northeast Foggy Area] Golden Rune [11] 1049557810")] - ConsecratedSnowfieldNortheastFoggyAreaGoldenRune11 = 1049557810, + [Annotation(Name = "[Consecrated Snowfield - Northeast Foggy Area] Golden Rune [11] 1049557810")] + ConsecratedSnowfieldNortheastFoggyAreaGoldenRune11 = 1049557810, - [Annotation(Name = "[Consecrated Snowfield - Southeast of Ordina] Albinauric Bloodclot 1049567300")] - ConsecratedSnowfieldSoutheastOfOrdinaAlbinauricBloodclot = 1049567300, + [Annotation(Name = "[Consecrated Snowfield - Southeast of Ordina] Albinauric Bloodclot 1049567300")] + ConsecratedSnowfieldSoutheastOfOrdinaAlbinauricBloodclot = 1049567300, - [Annotation(Name = "[Consecrated Snowfield - Southeast of Ordina] Old Fang 1049567310")] - ConsecratedSnowfieldSoutheastOfOrdinaOldFang = 1049567310, + [Annotation(Name = "[Consecrated Snowfield - Southeast of Ordina] Old Fang 1049567310")] + ConsecratedSnowfieldSoutheastOfOrdinaOldFang = 1049567310, - [Annotation(Name = "[Consecrated Snowfield - Southeast of Ordina] Strip of White Flesh 1049567320")] - ConsecratedSnowfieldSoutheastOfOrdinaStripOfWhiteFlesh = 1049567320, + [Annotation(Name = "[Consecrated Snowfield - Southeast of Ordina] Strip of White Flesh 1049567320")] + ConsecratedSnowfieldSoutheastOfOrdinaStripOfWhiteFlesh = 1049567320, - [Annotation(Name = "[Consecrated Snowfield - Southeast of Ordina] Dragonwound Grease 1049567330")] - ConsecratedSnowfieldSoutheastOfOrdinaDragonwoundGrease = 1049567330, + [Annotation(Name = "[Consecrated Snowfield - Southeast of Ordina] Dragonwound Grease 1049567330")] + ConsecratedSnowfieldSoutheastOfOrdinaDragonwoundGrease = 1049567330, - [Annotation(Name = "[Consecrated Snowfield - Southeast of Ordina] Nascent Butterfly 1049567340")] - ConsecratedSnowfieldSoutheastOfOrdinaNascentButterfly = 1049567340, + [Annotation(Name = "[Consecrated Snowfield - Southeast of Ordina] Nascent Butterfly 1049567340")] + ConsecratedSnowfieldSoutheastOfOrdinaNascentButterfly = 1049567340, - [Annotation(Name = "[Consecrated Snowfield - Southeast of Ordina] Smithing Stone [8] 1049567350")] - ConsecratedSnowfieldSoutheastOfOrdinaSmithingStone8 = 1049567350, + [Annotation(Name = "[Consecrated Snowfield - Southeast of Ordina] Smithing Stone [8] 1049567350")] + ConsecratedSnowfieldSoutheastOfOrdinaSmithingStone8 = 1049567350, - [Annotation(Name = "[Consecrated Snowfield - Southeast of Ordina] Glintstone Craftsman's Cookbook [8] 67440")] - ConsecratedSnowfieldSoutheastOfOrdinaGlintstoneCraftsmansCookbook8 = 67440, + [Annotation(Name = "[Consecrated Snowfield - Southeast of Ordina] Glintstone Craftsman's Cookbook [8] 67440")] + ConsecratedSnowfieldSoutheastOfOrdinaGlintstoneCraftsmansCookbook8 = 67440, - [Annotation(Name = "[Consecrated Snowfield - East of Ordina] Somber Smithing Stone [7] 1049577700")] - ConsecratedSnowfieldEastOfOrdinaSomberSmithingStone7 = 1049577700, + [Annotation(Name = "[Consecrated Snowfield - East of Ordina] Somber Smithing Stone [7] 1049577700")] + ConsecratedSnowfieldEastOfOrdinaSomberSmithingStone7 = 1049577700, - [Annotation(Name = "[Consecrated Snowfield - East of Ordina] Somber Smithing Stone [8] 1049577710")] - ConsecratedSnowfieldEastOfOrdinaSomberSmithingStone8 = 1049577710, + [Annotation(Name = "[Consecrated Snowfield - East of Ordina] Somber Smithing Stone [8] 1049577710")] + ConsecratedSnowfieldEastOfOrdinaSomberSmithingStone8 = 1049577710, - [Annotation(Name = "[Consecrated Snowfield - East of Ordina] Somber Smithing Stone [9] 1049577720")] - ConsecratedSnowfieldEastOfOrdinaSomberSmithingStone9 = 1049577720, + [Annotation(Name = "[Consecrated Snowfield - East of Ordina] Somber Smithing Stone [9] 1049577720")] + ConsecratedSnowfieldEastOfOrdinaSomberSmithingStone9 = 1049577720, - [Annotation(Name = "[Mountaintops of the Giants - West of Castle Sol] Warming Stone 1050577300")] - MountaintopsOfTheGiantsWestOfCastleSolWarmingStone = 1050577300, + [Annotation(Name = "[Mountaintops of the Giants - West of Castle Sol] Warming Stone 1050577300")] + MountaintopsOfTheGiantsWestOfCastleSolWarmingStone = 1050577300, - [Annotation(Name = "[Mountaintops of the Giants - West of Castle Sol] Starlight Shards 1050577800")] - MountaintopsOfTheGiantsWestOfCastleSolStarlightShards = 1050577800, + [Annotation(Name = "[Mountaintops of the Giants - West of Castle Sol] Starlight Shards 1050577800")] + MountaintopsOfTheGiantsWestOfCastleSolStarlightShards = 1050577800, - [Annotation(Name = "[Consecrated Snowfield - West of Ordina] Golden Rune [7] 1047577300")] - ConsecratedSnowfieldWestOfOrdinaGoldenRune7 = 1047577300, + [Annotation(Name = "[Consecrated Snowfield - West of Ordina] Golden Rune [7] 1047577300")] + ConsecratedSnowfieldWestOfOrdinaGoldenRune7 = 1047577300, - [Annotation(Name = "[Consecrated Snowfield - West of Ordina] Golden Rune [12] 1047577310")] - ConsecratedSnowfieldWestOfOrdinaGoldenRune12 = 1047577310, + [Annotation(Name = "[Consecrated Snowfield - West of Ordina] Golden Rune [12] 1047577310")] + ConsecratedSnowfieldWestOfOrdinaGoldenRune12 = 1047577310, - [Annotation(Name = "[Consecrated Snowfield - Apostate Derelict] Somber Smithing Stone [9] 1047587000")] - ConsecratedSnowfieldApostateDerelictSomberSmithingStone9 = 1047587000, + [Annotation(Name = "[Consecrated Snowfield - Apostate Derelict] Somber Smithing Stone [9] 1047587000")] + ConsecratedSnowfieldApostateDerelictSomberSmithingStone9 = 1047587000, - [Annotation(Name = "[Consecrated Snowfield - Apostate Derelict] Silver Mirrorshield 1047587800")] - ConsecratedSnowfieldApostateDerelictSilverMirrorshield = 1047587800, + [Annotation(Name = "[Consecrated Snowfield - Apostate Derelict] Silver Mirrorshield 1047587800")] + ConsecratedSnowfieldApostateDerelictSilverMirrorshield = 1047587800, - [Annotation(Name = "[Consecrated Snowfield - Consecrated Snowfield Catacombs Entrance] Hefty Beast Bone 1050557300")] - ConsecratedSnowfieldConsecratedSnowfieldCatacombsEntranceHeftyBeastBone = 1050557300, + [Annotation(Name = "[Consecrated Snowfield - Consecrated Snowfield Catacombs Entrance] Hefty Beast Bone 1050557300")] + ConsecratedSnowfieldConsecratedSnowfieldCatacombsEntranceHeftyBeastBone = 1050557300, - [Annotation(Name = "[Consecrated Snowfield - Consecrated Snowfield Catacombs Entrance] Golden Rune [9] 1050557310")] - ConsecratedSnowfieldConsecratedSnowfieldCatacombsEntranceGoldenRune9 = 1050557310, + [Annotation(Name = "[Consecrated Snowfield - Consecrated Snowfield Catacombs Entrance] Golden Rune [9] 1050557310")] + ConsecratedSnowfieldConsecratedSnowfieldCatacombsEntranceGoldenRune9 = 1050557310, - [Annotation(Name = "[Consecrated Snowfield - Consecrated Snowfield Catacombs Entrance] Lump of Flesh 1050557320")] - ConsecratedSnowfieldConsecratedSnowfieldCatacombsEntranceLumpOfFlesh = 1050557320, + [Annotation(Name = "[Consecrated Snowfield - Consecrated Snowfield Catacombs Entrance] Lump of Flesh 1050557320")] + ConsecratedSnowfieldConsecratedSnowfieldCatacombsEntranceLumpOfFlesh = 1050557320, - [Annotation(Name = "[Consecrated Snowfield - Consecrated Snowfield Catacombs Entrance] Somber Smithing Stone [8] 1050557800")] - ConsecratedSnowfieldConsecratedSnowfieldCatacombsEntranceSomberSmithingStone8 = 1050557800, + [Annotation(Name = "[Consecrated Snowfield - Consecrated Snowfield Catacombs Entrance] Somber Smithing Stone [8] 1050557800")] + ConsecratedSnowfieldConsecratedSnowfieldCatacombsEntranceSomberSmithingStone8 = 1050557800, - [Annotation(Name = "[Consecrated Snowfield - Consecrated Snowfield Catacombs Entrance] Rune Arc 1050557900")] - ConsecratedSnowfieldConsecratedSnowfieldCatacombsEntranceRuneArc = 1050557900, + [Annotation(Name = "[Consecrated Snowfield - Consecrated Snowfield Catacombs Entrance] Rune Arc 1050557900")] + ConsecratedSnowfieldConsecratedSnowfieldCatacombsEntranceRuneArc = 1050557900, - // DLC Items - [Annotation(Name = "[Shadow Keep] Main-gauche 21007020")] - ShadowKeepMaingauche = 21007020, + // DLC Items + [Annotation(Name = "[Shadow Keep] Main-gauche 21007020")] + ShadowKeepMaingauche = 21007020, - [Annotation(Name = "[Stone Coffin Fissure] Velvet Sword of St. Trina 22007150")] - StoneCoffinFissureVelvetSwordofStTrina = 22007150, + [Annotation(Name = "[Stone Coffin Fissure] Velvet Sword of St. Trina 22007150")] + StoneCoffinFissureVelvetSwordofStTrina = 22007150, - [Annotation(Name = "[Gravesite Plain - Demi-Human Queen Marigga] Star-Lined Sword 530845")] - GravesitePlainDemiHumanQueenMariggaStarLinedSword = 530845, + [Annotation(Name = "[Gravesite Plain - Demi-Human Queen Marigga] Star-Lined Sword 530845")] + GravesitePlainDemiHumanQueenMariggaStarLinedSword = 530845, - [Annotation(Name = "[Gravesite Plain - West Castle Ensis] Carian Sorcery Sword 2047447820")] - GravesitePlainWestCastleEnsisCarianSorcerySword = 2047447820, + [Annotation(Name = "[Gravesite Plain - West Castle Ensis] Carian Sorcery Sword 2047447820")] + GravesitePlainWestCastleEnsisCarianSorcerySword = 2047447820, - [Annotation(Name = "[Rauh Base - Ravine North] Stone-Sheathed Sword 2045477900")] - RauhBaseRavineNorthStoneSheathedSword = 2045477900, + [Annotation(Name = "[Rauh Base - Ravine North] Stone-Sheathed Sword 2045477900")] + RauhBaseRavineNorthStoneSheathedSword = 2045477900, - [Annotation(Name = "[Rauh Base - Ravine North] Sword of Light 2045477500")] - RauhBaseRavineNorthSwordofLight = 2045477500, + [Annotation(Name = "[Rauh Base - Ravine North] Sword of Light 2045477500")] + RauhBaseRavineNorthSwordofLight = 2045477500, - [Annotation(Name = "[Rauh Base - Ravine North] Sword of Light +1 2045477510")] - RauhBaseRavineNorthSwordofLight1 = 2045477510, + [Annotation(Name = "[Rauh Base - Ravine North] Sword of Light +1 2045477510")] + RauhBaseRavineNorthSwordofLight1 = 2045477510, - [Annotation(Name = "[Rauh Base - Ravine North] Sword of Light +2 2045477520")] - RauhBaseRavineNorthSwordofLight2 = 2045477520, + [Annotation(Name = "[Rauh Base - Ravine North] Sword of Light +2 2045477520")] + RauhBaseRavineNorthSwordofLight2 = 2045477520, - [Annotation(Name = "[Rauh Base - Ravine North] Sword of Light +3 2045477530")] - RauhBaseRavineNorthSwordofLight3 = 2045477530, + [Annotation(Name = "[Rauh Base - Ravine North] Sword of Light +3 2045477530")] + RauhBaseRavineNorthSwordofLight3 = 2045477530, - [Annotation(Name = "[Rauh Base - Ravine North] Sword of Light +4 2045477540")] - RauhBaseRavineNorthSwordofLight4 = 2045477540, + [Annotation(Name = "[Rauh Base - Ravine North] Sword of Light +4 2045477540")] + RauhBaseRavineNorthSwordofLight4 = 2045477540, - [Annotation(Name = "[Rauh Base - Ravine North] Sword of Light +5 2045477550")] - RauhBaseRavineNorthSwordofLight5 = 2045477550, + [Annotation(Name = "[Rauh Base - Ravine North] Sword of Light +5 2045477550")] + RauhBaseRavineNorthSwordofLight5 = 2045477550, - [Annotation(Name = "[Rauh Base - Ravine North] Sword of Light +6 2045477560")] - RauhBaseRavineNorthSwordofLight6 = 2045477560, + [Annotation(Name = "[Rauh Base - Ravine North] Sword of Light +6 2045477560")] + RauhBaseRavineNorthSwordofLight6 = 2045477560, - [Annotation(Name = "[Rauh Base - Ravine North] Sword of Light +7 2045477570")] - RauhBaseRavineNorthSwordofLight7 = 2045477570, + [Annotation(Name = "[Rauh Base - Ravine North] Sword of Light +7 2045477570")] + RauhBaseRavineNorthSwordofLight7 = 2045477570, - [Annotation(Name = "[Rauh Base - Ravine North] Sword of Light +8 2045477580")] - RauhBaseRavineNorthSwordofLight8 = 2045477580, + [Annotation(Name = "[Rauh Base - Ravine North] Sword of Light +8 2045477580")] + RauhBaseRavineNorthSwordofLight8 = 2045477580, - [Annotation(Name = "[Rauh Base - Ravine North] Sword of Light +9 2045477590")] - RauhBaseRavineNorthSwordofLight9 = 2045477590, + [Annotation(Name = "[Rauh Base - Ravine North] Sword of Light +9 2045477590")] + RauhBaseRavineNorthSwordofLight9 = 2045477590, - [Annotation(Name = "[Rauh Base - Ravine North] Sword of Light +10 2045477600")] - RauhBaseRavineNorthSwordofLight10 = 2045477600, + [Annotation(Name = "[Rauh Base - Ravine North] Sword of Light +10 2045477600")] + RauhBaseRavineNorthSwordofLight10 = 2045477600, - [Annotation(Name = "[Scadu Altus - Castle Watering Hole Southeast] Sword of Darkness 2045477700")] - ScaduAltusCastleWateringHoleSoutheastSwordofDarkness = 2045477700, + [Annotation(Name = "[Scadu Altus - Castle Watering Hole Southeast] Sword of Darkness 2045477700")] + ScaduAltusCastleWateringHoleSoutheastSwordofDarkness = 2045477700, - [Annotation(Name = "[Scadu Altus - Castle Watering Hole Southeast] Sword of Darkness +1 2045477710")] - ScaduAltusCastleWateringHoleSoutheastSwordofDarkness1 = 2045477710, + [Annotation(Name = "[Scadu Altus - Castle Watering Hole Southeast] Sword of Darkness +1 2045477710")] + ScaduAltusCastleWateringHoleSoutheastSwordofDarkness1 = 2045477710, - [Annotation(Name = "[Scadu Altus - Castle Watering Hole Southeast] Sword of Darkness +2 2045477720")] - ScaduAltusCastleWateringHoleSoutheastSwordofDarkness2 = 2045477720, + [Annotation(Name = "[Scadu Altus - Castle Watering Hole Southeast] Sword of Darkness +2 2045477720")] + ScaduAltusCastleWateringHoleSoutheastSwordofDarkness2 = 2045477720, - [Annotation(Name = "[Scadu Altus - Castle Watering Hole Southeast] Sword of Darkness +3 2045477730")] - ScaduAltusCastleWateringHoleSoutheastSwordofDarkness3 = 2045477730, + [Annotation(Name = "[Scadu Altus - Castle Watering Hole Southeast] Sword of Darkness +3 2045477730")] + ScaduAltusCastleWateringHoleSoutheastSwordofDarkness3 = 2045477730, - [Annotation(Name = "[Scadu Altus - Castle Watering Hole Southeast] Sword of Darkness +4 2045477740")] - ScaduAltusCastleWateringHoleSoutheastSwordofDarkness4 = 2045477740, + [Annotation(Name = "[Scadu Altus - Castle Watering Hole Southeast] Sword of Darkness +4 2045477740")] + ScaduAltusCastleWateringHoleSoutheastSwordofDarkness4 = 2045477740, - [Annotation(Name = "[Scadu Altus - Castle Watering Hole Southeast] Sword of Darkness +5 2045477750")] - ScaduAltusCastleWateringHoleSoutheastSwordofDarkness5 = 2045477750, + [Annotation(Name = "[Scadu Altus - Castle Watering Hole Southeast] Sword of Darkness +5 2045477750")] + ScaduAltusCastleWateringHoleSoutheastSwordofDarkness5 = 2045477750, - [Annotation(Name = "[Scadu Altus - Castle Watering Hole Southeast] Sword of Darkness +6 2045477760")] - ScaduAltusCastleWateringHoleSoutheastSwordofDarkness6 = 2045477760, + [Annotation(Name = "[Scadu Altus - Castle Watering Hole Southeast] Sword of Darkness +6 2045477760")] + ScaduAltusCastleWateringHoleSoutheastSwordofDarkness6 = 2045477760, - [Annotation(Name = "[Scadu Altus - Castle Watering Hole Southeast] Sword of Darkness +7 2045477770")] - ScaduAltusCastleWateringHoleSoutheastSwordofDarkness7 = 2045477770, + [Annotation(Name = "[Scadu Altus - Castle Watering Hole Southeast] Sword of Darkness +7 2045477770")] + ScaduAltusCastleWateringHoleSoutheastSwordofDarkness7 = 2045477770, - [Annotation(Name = "[Scadu Altus - Castle Watering Hole Southeast] Sword of Darkness +8 2045477780")] - ScaduAltusCastleWateringHoleSoutheastSwordofDarkness8 = 2045477780, + [Annotation(Name = "[Scadu Altus - Castle Watering Hole Southeast] Sword of Darkness +8 2045477780")] + ScaduAltusCastleWateringHoleSoutheastSwordofDarkness8 = 2045477780, - [Annotation(Name = "[Scadu Altus - Castle Watering Hole Southeast] Sword of Darkness +9 2045477790")] - ScaduAltusCastleWateringHoleSoutheastSwordofDarkness9 = 2045477790, + [Annotation(Name = "[Scadu Altus - Castle Watering Hole Southeast] Sword of Darkness +9 2045477790")] + ScaduAltusCastleWateringHoleSoutheastSwordofDarkness9 = 2045477790, - [Annotation(Name = "[Scadu Altus - Castle Watering Hole Southeast] Sword of Darkness +10 2045477800")] - ScaduAltusCastleWateringHoleSoutheastSwordofDarkness10 = 2045477800, + [Annotation(Name = "[Scadu Altus - Castle Watering Hole Southeast] Sword of Darkness +10 2045477800")] + ScaduAltusCastleWateringHoleSoutheastSwordofDarkness10 = 2045477800, - [Annotation(Name = "[Gravesite Plain - Blackgaol Knight] Greatsword of Solitude, Solitude Set 530820")] - GravesitePlainBlackgaolKnightGreatswordofSolitude = 530820, + [Annotation(Name = "[Gravesite Plain - Blackgaol Knight] Greatsword of Solitude, Solitude Set 530820")] + GravesitePlainBlackgaolKnightGreatswordofSolitude = 530820, - [Annotation(Name = "[Ruined Forge of Starfall Past] Ancient Meteoric Ore Greatsword 42027000")] - RuinedForgeofStarfallPastAncientMeteoricOreGreatsword = 42027000, + [Annotation(Name = "[Ruined Forge of Starfall Past] Ancient Meteoric Ore Greatsword 42027000")] + RuinedForgeofStarfallPastAncientMeteoricOreGreatsword = 42027000, - [Annotation(Name = "[Gravesite Plain - Moonrithyll, Carian Knight] Moonrithyll's Knight Sword 530865")] - GravesitePlainMoonrithyllCarianKnightMoonrithyllsKnightSword = 530865, + [Annotation(Name = "[Gravesite Plain - Moonrithyll, Carian Knight] Moonrithyll's Knight Sword 530865")] + GravesitePlainMoonrithyllCarianKnightMoonrithyllsKnightSword = 530865, - [Annotation(Name = "[Shadow Keep] Queelign's Greatsword 400692")] - ShadowKeepQueelignsGreatsword = 400692, + [Annotation(Name = "[Shadow Keep] Queelign's Greatsword 400692")] + ShadowKeepQueelignsGreatsword = 400692, - [Annotation(Name = "[Cerulean Coast - Ravine South] Spirit Sword 2047397000")] - CeruleanCoastRavineSouthSpiritSword = 2047397000, + [Annotation(Name = "[Cerulean Coast - Ravine South] Spirit Sword 2047397000")] + CeruleanCoastRavineSouthSpiritSword = 2047397000, - [Annotation(Name = "[Enir-Ilim - Hornsent] Falx, Hornsent Set 400614")] - EnirIlimHornsentFalx = 400614, + [Annotation(Name = "[Enir-Ilim - Hornsent] Falx, Hornsent Set 400614")] + EnirIlimHornsentFalx = 400614, - [Annotation(Name = "[Belurat - Horned Warrior] Horned Warrior's Sword 20007993")] - BeluratHornedWarriorHornedWarriorsSword = 20007993, + [Annotation(Name = "[Belurat - Horned Warrior] Horned Warrior's Sword 20007993")] + BeluratHornedWarriorHornedWarriorsSword = 20007993, - [Annotation(Name = "[Enir-Ilim, or earlier places] Freyja's Greatsword, Freyja's Set 400602")] - EnirIlimFreyjasGreatsword = 400602, + [Annotation(Name = "[Enir-Ilim, or earlier places] Freyja's Greatsword, Freyja's Set 400602")] + EnirIlimFreyjasGreatsword = 400602, - [Annotation(Name = "[Enir-Ilim - Horned Warrior] Horned Warrior's Greatsword 20017991")] - EnirIlimHornedWarriorHornedWarriorsGreatsword = 20017991, + [Annotation(Name = "[Enir-Ilim - Horned Warrior] Horned Warrior's Greatsword 20017991")] + EnirIlimHornedWarriorHornedWarriorsGreatsword = 20017991, - [Annotation(Name = "[Scadu Altus - Cathedral of Manus Metyr] Sword of Night 400671")] - ScaduAltusCathedralofManusMetyrSwordofNight = 400671, + [Annotation(Name = "[Scadu Altus - Cathedral of Manus Metyr] Sword of Night 400671")] + ScaduAltusCathedralofManusMetyrSwordofNight = 400671, - [Annotation(Name = "[Belurat] Euporia 20007330")] - BeluratEuporia = 20007330, + [Annotation(Name = "[Belurat] Euporia 20007330")] + BeluratEuporia = 20007330, - [Annotation(Name = "[Scadu Altus - Black Knight] Black Steel Twinblade 2048467710")] - ScaduAltusBlackKnightBlackSteelTwinblade = 2048467710, + [Annotation(Name = "[Scadu Altus - Black Knight] Black Steel Twinblade 2048467710")] + ScaduAltusBlackKnightBlackSteelTwinblade = 2048467710, - [Annotation(Name = "[Finger Ruins of Rhia - Climb to Finger-Weaver's Hovel] Flowerstone Gavel 400704")] - FingerRuinsofRhiaClimbtoFingerWeaversHovelFlowerstoneGavel = 400704, + [Annotation(Name = "[Finger Ruins of Rhia - Climb to Finger-Weaver's Hovel] Flowerstone Gavel 400704")] + FingerRuinsofRhiaClimbtoFingerWeaversHovelFlowerstoneGavel = 400704, - [Annotation(Name = "[Taylew's Ruined Forge] Smithscript Greathammer 42037160")] - TaylewsRuinedForgeSmithscriptGreathammer = 42037160, + [Annotation(Name = "[Taylew's Ruined Forge] Smithscript Greathammer 42037160")] + TaylewsRuinedForgeSmithscriptGreathammer = 42037160, - [Annotation(Name = "[Ruined Forge Lava Intake] Anvil Hammer 42007000")] - RuinedForgeLavaIntakeAnvilHammer = 42007000, + [Annotation(Name = "[Ruined Forge Lava Intake] Anvil Hammer 42007000")] + RuinedForgeLavaIntakeAnvilHammer = 42007000, - [Annotation(Name = "[Gravesite Plain - Black Knight] Black Steel Greathammer 2048417980")] - GravesitePlainBlackKnightBlackSteelGreathammer = 2048417980, + [Annotation(Name = "[Gravesite Plain - Black Knight] Black Steel Greathammer 2048417980")] + GravesitePlainBlackKnightBlackSteelGreathammer = 2048417980, - [Annotation(Name = "[Gravesite Plain - Bloodfiend] Bloodfiend's Arm 2045417950")] - GravesitePlainBloodfiendBloodfiendsArm = 2045417950, + [Annotation(Name = "[Gravesite Plain - Bloodfiend] Bloodfiend's Arm 2045417950")] + GravesitePlainBloodfiendBloodfiendsArm = 2045417950, - [Annotation(Name = "[Gravesite Plain - North Fog Rift Fort] Serpent Flail 2047457900")] - GravesitePlainNorthFogRiftFortSerpentFlail = 2047457900, + [Annotation(Name = "[Gravesite Plain - North Fog Rift Fort] Serpent Flail 2047457900")] + GravesitePlainNorthFogRiftFortSerpentFlail = 2047457900, - [Annotation(Name = "[Taylew's Ruined Forge] Smithscript Axe 42037100")] - TaylewsRuinedForgeSmithscriptAxe = 42037100, + [Annotation(Name = "[Taylew's Ruined Forge] Smithscript Axe 42037100")] + TaylewsRuinedForgeSmithscriptAxe = 42037100, - [Annotation(Name = "[Fog Rift Catacombs - Death Knight] Death Knight's Twin Axes, Crimson Amber Medallion +3 520700")] - FogRiftCatacombsDeathKnightDeathKnightsTwinAxes = 520700, + [Annotation(Name = "[Fog Rift Catacombs - Death Knight] Death Knight's Twin Axes, Crimson Amber Medallion +3 520700")] + FogRiftCatacombsDeathKnightDeathKnightsTwinAxes = 520700, - [Annotation(Name = "[Scorpion River Catacombs - Death Knight] Death Knight's Longhaft Axe 520710")] - ScorpionRiverCatacombsDeathKnightDeathKnightsLonghaftAxe = 520710, + [Annotation(Name = "[Scorpion River Catacombs - Death Knight] Death Knight's Longhaft Axe 520710")] + ScorpionRiverCatacombsDeathKnightDeathKnightsLonghaftAxe = 520710, - [Annotation(Name = "[Scadu Altus - Main Bonny Village] Bonny Butchering Knife 2050447050")] - ScaduAltusMainBonnyVillageBonnyButcheringKnife = 2050447050, + [Annotation(Name = "[Scadu Altus - Main Bonny Village] Bonny Butchering Knife 2050447050")] + ScaduAltusMainBonnyVillageBonnyButcheringKnife = 2050447050, - [Annotation(Name = "[Ruined Forge of Starfall Past] Smithscript Spear 42027050")] - RuinedForgeofStarfallPastSmithscriptSpear = 42027050, + [Annotation(Name = "[Ruined Forge of Starfall Past] Smithscript Spear 42027050")] + RuinedForgeofStarfallPastSmithscriptSpear = 42027050, - [Annotation(Name = "[Gravesite Plain - East of Ensis Castle Front] Swift Spear 2047437030")] - GravesitePlainEastofEnsisCastleFrontSwiftSpear = 2047437030, + [Annotation(Name = "[Gravesite Plain - East of Ensis Castle Front] Swift Spear 2047437030")] + GravesitePlainEastofEnsisCastleFrontSwiftSpear = 2047437030, - [Annotation(Name = "[Ancient Ruins Base - Bloodfiend] Bloodfiend's Sacred Spear 2047477950")] - AncientRuinsBaseBloodfiendBloodfiendsSacredSpear = 2047477950, + [Annotation(Name = "[Ancient Ruins Base - Bloodfiend] Bloodfiend's Sacred Spear 2047477950")] + AncientRuinsBaseBloodfiendBloodfiendsSacredSpear = 2047477950, - [Annotation(Name = "[Abyssal Woods - Jori, Elder Inquisitor] Barbed Staff-Spear 510610")] - AbyssalWoodsJoriElderInquisitorBarbedStaffSpear = 510610, + [Annotation(Name = "[Abyssal Woods - Jori, Elder Inquisitor] Barbed Staff-Spear 510610")] + AbyssalWoodsJoriElderInquisitorBarbedStaffSpear = 510610, - [Annotation(Name = "[Gravesite Plain - South of Church of Consolation] Spirit Glaive 2048407010")] - GravesitePlainSouthofChurchofConsolationSpiritGlaive = 2048407010, + [Annotation(Name = "[Gravesite Plain - South of Church of Consolation] Spirit Glaive 2048407010")] + GravesitePlainSouthofChurchofConsolationSpiritGlaive = 2048407010, - [Annotation(Name = "[Scadu Altus - Bridge Leading to the Village] Tooth Whip 2051447000")] - ScaduAltusBridgeLeadingtotheVillageToothWhip = 2051447000, + [Annotation(Name = "[Scadu Altus - Bridge Leading to the Village] Tooth Whip 2051447000")] + ScaduAltusBridgeLeadingtotheVillageToothWhip = 2051447000, - [Annotation(Name = "[Enir-Ilim] Thiollier's Hidden Needle, Thiollier's Set 400634")] - EnirIlimThiolliersHiddenNeedle = 400634, + [Annotation(Name = "[Enir-Ilim] Thiollier's Hidden Needle, Thiollier's Set 400634")] + EnirIlimThiolliersHiddenNeedle = 400634, - [Annotation(Name = "[Gravesite Plain - Church of Benediction] Pata 2046407000")] - GravesitePlainChurchofBenedictionPata = 2046407000, + [Annotation(Name = "[Gravesite Plain - Church of Benediction] Pata 2046407000")] + GravesitePlainChurchofBenedictionPata = 2046407000, - [Annotation(Name = "[Belurat] Poisoned Hand 20007300")] - BeluratPoisonedHand = 20007300, + [Annotation(Name = "[Belurat] Poisoned Hand 20007300")] + BeluratPoisonedHand = 20007300, - [Annotation(Name = "[Abyssal Woods - Madding Hand] Madding Hand 2052427500")] - AbyssalWoodsMaddingHandMaddingHand = 2052427500, + [Annotation(Name = "[Abyssal Woods - Madding Hand] Madding Hand 2052427500")] + AbyssalWoodsMaddingHandMaddingHand = 2052427500, - [Annotation(Name = "[Bonny Gaol] Shield of Night 41017220")] - BonnyGaolShieldofNight = 41017220, + [Annotation(Name = "[Bonny Gaol] Shield of Night 41017220")] + BonnyGaolShieldofNight = 41017220, - [Annotation(Name = "[Scadu Altus - Swordhand of Night Anna] Claws of Night 400672")] - ScaduAltusSwordhandofNightAnnaClawsofNight = 400672, + [Annotation(Name = "[Scadu Altus - Swordhand of Night Anna] Claws of Night 400672")] + ScaduAltusSwordhandofNightAnnaClawsofNight = 400672, - [Annotation(Name = "[Rauh Base - Crucible Knight Devonia] Devonia's Hammer 2045477400")] - RauhBaseCrucibleKnightDevoniaDevoniasHammer = 2045477400, + [Annotation(Name = "[Rauh Base - Crucible Knight Devonia] Devonia's Hammer 2045477400")] + RauhBaseCrucibleKnightDevoniaDevoniasHammer = 2045477400, - [Annotation(Name = "[Midra's Manse] Nanaya's Torch 28007100")] - MidrasManseNanayasTorch = 28007100, + [Annotation(Name = "[Midra's Manse] Nanaya's Torch 28007100")] + MidrasManseNanayasTorch = 28007100, - [Annotation(Name = "[Lamenter's Gaol] Lamenting Visage 41027130")] - LamentersGaolLamentingVisage = 41027130, + [Annotation(Name = "[Lamenter's Gaol] Lamenting Visage 41027130")] + LamentersGaolLamentingVisage = 41027130, - [Annotation(Name = "[Taylew's Ruined Forge] Smithscript Shield 42037120")] - TaylewsRuinedForgeSmithscriptShield = 42037120, + [Annotation(Name = "[Taylew's Ruined Forge] Smithscript Shield 42037120")] + TaylewsRuinedForgeSmithscriptShield = 42037120, - [Annotation(Name = "[Gravesite Plain - West Castle Ensis] Wolf Crest Shield 2047447830")] - GravesitePlainWestCastleEnsisWolfCrestShield = 2047447830, + [Annotation(Name = "[Gravesite Plain - West Castle Ensis] Wolf Crest Shield 2047447830")] + GravesitePlainWestCastleEnsisWolfCrestShield = 2047447830, - [Annotation(Name = "[Gravesite Plain - South of Dragon Lake] Serpent Crest Shield 580400")] - GravesitePlainSouthofDragonLakeSerpentCrestShield = 580400, + [Annotation(Name = "[Gravesite Plain - South of Dragon Lake] Serpent Crest Shield 580400")] + GravesitePlainSouthofDragonLakeSerpentCrestShield = 580400, - [Annotation(Name = "[Gravesite Plain - Redmane Freyja] Golden Lion Shield 400600")] - GravesitePlainRedmaneFreyjaGoldenLionShield = 400600, + [Annotation(Name = "[Gravesite Plain - Redmane Freyja] Golden Lion Shield 400600")] + GravesitePlainRedmaneFreyjaGoldenLionShield = 400600, - [Annotation(Name = "[Gravesite Plain - Black Knight Garrew] Black Steel Greatshield 530955")] - GravesitePlainBlackKnightGarrewBlackSteelGreatshield = 530955, + [Annotation(Name = "[Gravesite Plain - Black Knight Garrew] Black Steel Greatshield 530955")] + GravesitePlainBlackKnightGarrewBlackSteelGreatshield = 530955, - [Annotation(Name = "[Gravesite Plain - Belurat Main Gate Cross] Verdigris Greatshield, Verdigris Set 400645")] - GravesitePlainBeluratMainGateCrossVerdigrisGreatshield = 400645, + [Annotation(Name = "[Gravesite Plain - Belurat Main Gate Cross] Verdigris Greatshield, Verdigris Set 400645")] + GravesitePlainBeluratMainGateCrossVerdigrisGreatshield = 400645, - [Annotation(Name = "[Scadu Altus - Count Ymir, Mother of Fingers] Maternal Staff, High Priest Set, Ymir's Bell Bearing 400664")] - ScaduAltusCountYmirMotherofFingersMaternalStaff = 400664, + [Annotation(Name = "[Scadu Altus - Count Ymir, Mother of Fingers] Maternal Staff, High Priest Set, Ymir's Bell Bearing 400664")] + ScaduAltusCountYmirMotherofFingersMaternalStaff = 400664, - [Annotation(Name = "[Scadu Altus - Bonny Village North Tree and Overlook] Dryleaf Seal 2050457020")] - ScaduAltusBonnyVillageNorthTreeandOverlookDryleafSeal = 2050457020, + [Annotation(Name = "[Scadu Altus - Bonny Village North Tree and Overlook] Dryleaf Seal 2050457020")] + ScaduAltusBonnyVillageNorthTreeandOverlookDryleafSeal = 2050457020, - [Annotation(Name = "[Shadow Keep] Fire Knight's Seal 21007650")] - ShadowKeepFireKnightsSeal = 21007650, + [Annotation(Name = "[Shadow Keep] Fire Knight's Seal 21007650")] + ShadowKeepFireKnightsSeal = 21007650, - [Annotation(Name = "[Belurat] Bone Bow 20007600")] - BeluratBoneBow = 20007600, + [Annotation(Name = "[Belurat] Bone Bow 20007600")] + BeluratBoneBow = 20007600, - [Annotation(Name = "[Specimen Storehouse - Needle Knight Leda] Ansbach's Longbow 400595")] - SpecimenStorehouseNeedleKnightLedaAnsbachsLongbow = 400595, + [Annotation(Name = "[Specimen Storehouse - Needle Knight Leda] Ansbach's Longbow 400595")] + SpecimenStorehouseNeedleKnightLedaAnsbachsLongbow = 400595, - [Annotation(Name = "[Specimen Storehouse - Sir Ansbach] Ansbach's Longbow 400623")] - SpecimenStorehouseSirAnsbachAnsbachsLongbow = 400623, + [Annotation(Name = "[Specimen Storehouse - Sir Ansbach] Ansbach's Longbow 400623")] + SpecimenStorehouseSirAnsbachAnsbachsLongbow = 400623, - [Annotation(Name = "[Foot of the Jagged Peak - Foot of the Jagged Peak] Igon's Greatbow with Ash of War: Igon's Drake Hunt, Igon's Set, Igon's Bell Bearing 400712")] - FootoftheJaggedPeakFootoftheJaggedPeakIgonsGreatbowwithAshofWarIgonsDrakeHunt = 400712, + [Annotation(Name = "[Foot of the Jagged Peak - Foot of the Jagged Peak] Igon's Greatbow with Ash of War: Igon's Drake Hunt, Igon's Set, Igon's Bell Bearing 400712")] + FootoftheJaggedPeakFootoftheJaggedPeakIgonsGreatbowwithAshofWarIgonsDrakeHunt = 400712, - [Annotation(Name = "[Foot of the Jagged Peak - Foot of the Jagged Peak] Igon's Greatbow, Igon's Set, Igon's Bell Bearing 400714")] - FootoftheJaggedPeakFootoftheJaggedPeakIgonsGreatbow = 400714, + [Annotation(Name = "[Foot of the Jagged Peak - Foot of the Jagged Peak] Igon's Greatbow, Igon's Set, Igon's Bell Bearing 400714")] + FootoftheJaggedPeakFootoftheJaggedPeakIgonsGreatbow = 400714, - [Annotation(Name = "[Gravesite Plain - Igon] Igon's Greatbow, Igon's Set, Igon's Bell Bearing 400711")] - GravesitePlainIgonIgonsGreatbow = 400711, + [Annotation(Name = "[Gravesite Plain - Igon] Igon's Greatbow, Igon's Set, Igon's Bell Bearing 400711")] + GravesitePlainIgonIgonsGreatbow = 400711, - [Annotation(Name = "[Gravesite Plain - Southeast Poison Swamp] Repeating Crossbow 2049437000")] - GravesitePlainSoutheastPoisonSwampRepeatingCrossbow = 2049437000, + [Annotation(Name = "[Gravesite Plain - Southeast Poison Swamp] Repeating Crossbow 2049437000")] + GravesitePlainSoutheastPoisonSwampRepeatingCrossbow = 2049437000, - [Annotation(Name = "[Gravesite Plain - East of Ensis Castle Front] Spread Crossbow 2047437010")] - GravesitePlainEastofEnsisCastleFrontSpreadCrossbow = 2047437010, + [Annotation(Name = "[Gravesite Plain - East of Ensis Castle Front] Spread Crossbow 2047437010")] + GravesitePlainEastofEnsisCastleFrontSpreadCrossbow = 2047437010, - [Annotation(Name = "[Scadu Altus - Road to Manus Metyr] Rabbath's Cannon 2051467900")] - ScaduAltusRoadtoManusMetyrRabbathsCannon = 2051467900, + [Annotation(Name = "[Scadu Altus - Road to Manus Metyr] Rabbath's Cannon 2051467900")] + ScaduAltusRoadtoManusMetyrRabbathsCannon = 2051467900, - [Annotation(Name = "[Scadu Altus - Moorth Ruins] Dryleaf Arts with Ash of War: Palm Blast, Dane's Hat 400730")] - ScaduAltusMoorthRuinsDryleafArtswithAshofWarPalmBlast = 400730, + [Annotation(Name = "[Scadu Altus - Moorth Ruins] Dryleaf Arts with Ash of War: Palm Blast, Dane's Hat 400730")] + ScaduAltusMoorthRuinsDryleafArtswithAshofWarPalmBlast = 400730, - [Annotation(Name = "[Enir-Ilim] Dane's Footwork 400732")] - EnirIlimDanesFootwork = 400732, + [Annotation(Name = "[Enir-Ilim] Dane's Footwork 400732")] + EnirIlimDanesFootwork = 400732, - [Annotation(Name = "[Gravesite Plain - West Castle Ensis] Firespark Perfume Bottle 2047447840")] - GravesitePlainWestCastleEnsisFiresparkPerfumeBottle = 2047447840, + [Annotation(Name = "[Gravesite Plain - West Castle Ensis] Firespark Perfume Bottle 2047447840")] + GravesitePlainWestCastleEnsisFiresparkPerfumeBottle = 2047447840, - [Annotation(Name = "[Lamenter's Gaol] Chilling Perfume Bottle 41027100")] - LamentersGaolChillingPerfumeBottle = 41027100, + [Annotation(Name = "[Lamenter's Gaol] Chilling Perfume Bottle 41027100")] + LamentersGaolChillingPerfumeBottle = 41027100, - [Annotation(Name = "[Abyssal Woods - Abandoned Church] Frenzyflame Perfume Bottle 2053417000")] - AbyssalWoodsAbandonedChurchFrenzyflamePerfumeBottle = 2053417000, + [Annotation(Name = "[Abyssal Woods - Abandoned Church] Frenzyflame Perfume Bottle 2053417000")] + AbyssalWoodsAbandonedChurchFrenzyflamePerfumeBottle = 2053417000, - [Annotation(Name = "[Gravesite Plain - South of Church of Consolation] Lightning Perfume Bottle 2048407000")] - GravesitePlainSouthofChurchofConsolationLightningPerfumeBottle = 2048407000, + [Annotation(Name = "[Gravesite Plain - South of Church of Consolation] Lightning Perfume Bottle 2048407000")] + GravesitePlainSouthofChurchofConsolationLightningPerfumeBottle = 2048407000, - [Annotation(Name = "[Specimen Storehouse] Dueling Shield with Ash of War: Shield Strike 21017150")] - SpecimenStorehouseDuelingShieldwithAshofWarShieldStrike = 21017150, + [Annotation(Name = "[Specimen Storehouse] Dueling Shield with Ash of War: Shield Strike 21017150")] + SpecimenStorehouseDuelingShieldwithAshofWarShieldStrike = 21017150, - [Annotation(Name = "[Specimen Storehouse] Carian Thrusting Shield 21017620")] - SpecimenStorehouseCarianThrustingShield = 21017620, + [Annotation(Name = "[Specimen Storehouse] Carian Thrusting Shield 21017620")] + SpecimenStorehouseCarianThrustingShield = 21017620, - [Annotation(Name = "[Ruined Forge Lava Intake] Smithscript Dagger 42007150")] - RuinedForgeLavaIntakeSmithscriptDagger = 42007150, + [Annotation(Name = "[Ruined Forge Lava Intake] Smithscript Dagger 42007150")] + RuinedForgeLavaIntakeSmithscriptDagger = 42007150, - [Annotation(Name = "[Gravesite Plain - North of Scorched Ruins] Backhand Blade with Ash of War: Blind Spot 2047427700")] - GravesitePlainNorthofScorchedRuinsBackhandBladewithAshofWarBlindSpot = 2047427700, + [Annotation(Name = "[Gravesite Plain - North of Scorched Ruins] Backhand Blade with Ash of War: Blind Spot 2047427700")] + GravesitePlainNorthofScorchedRuinsBackhandBladewithAshofWarBlindSpot = 2047427700, - [Annotation(Name = "[Ruined Forge of Starfall Past] Smithscript Cirque 42027060")] - RuinedForgeofStarfallPastSmithscriptCirque = 42027060, + [Annotation(Name = "[Ruined Forge of Starfall Past] Smithscript Cirque 42027060")] + RuinedForgeofStarfallPastSmithscriptCirque = 42027060, - [Annotation(Name = "[Dragon's Pit - Ancient Dragon-Man] Dragon-Hunter's Great Katana 520810")] - DragonsPitAncientDragonManDragonHuntersGreatKatana = 520810, + [Annotation(Name = "[Dragon's Pit - Ancient Dragon-Man] Dragon-Hunter's Great Katana 520810")] + DragonsPitAncientDragonManDragonHuntersGreatKatana = 520810, - [Annotation(Name = "[Scadu Altus - Rakshasa] Rakshasa's Great Katana, Rakshasa Set 530830")] - ScaduAltusRakshasaRakshasasGreatKatana = 530830, + [Annotation(Name = "[Scadu Altus - Rakshasa] Rakshasa's Great Katana, Rakshasa Set 530830")] + ScaduAltusRakshasaRakshasasGreatKatana = 530830, - [Annotation(Name = "[Gravesite Plain - Dragon Lake] Great Katana with Ash of War: Overhead Stance 2045447010")] - GravesitePlainDragonLakeGreatKatanawithAshofWarOverheadStance = 2045447010, + [Annotation(Name = "[Gravesite Plain - Dragon Lake] Great Katana with Ash of War: Overhead Stance 2045447010")] + GravesitePlainDragonLakeGreatKatanawithAshofWarOverheadStance = 2045447010, - [Annotation(Name = "[Dragon's Pit - Ancient Dragon-Man] Dragon-Hunter's Great Katana 520810")] - DragonsPitAncientDragonManDragonHuntersGreatKatana_ = 520810, + [Annotation(Name = "[Dragon's Pit - Ancient Dragon-Man] Dragon-Hunter's Great Katana 520810")] + DragonsPitAncientDragonManDragonHuntersGreatKatana_ = 520810, - [Annotation(Name = "[Gravesite Plain - West Castle Ensis] Milady 2047447800")] - GravesitePlainWestCastleEnsisMilady = 2047447800, + [Annotation(Name = "[Gravesite Plain - West Castle Ensis] Milady 2047447800")] + GravesitePlainWestCastleEnsisMilady = 2047447800, - [Annotation(Name = "[Enir-Ilim - Needle Knight Leda] Leda's Sword 510420")] - EnirIlimNeedleKnightLedaLedasSword = 510420, + [Annotation(Name = "[Enir-Ilim - Needle Knight Leda] Leda's Sword 510420")] + EnirIlimNeedleKnightLedaLedasSword = 510420, - [Annotation(Name = "[Gravesite Plain - Logur, the Beast Claw] Beast Claw (Weapon 68500000) with Ash of War: Savage Claws 2047407980")] - GravesitePlainLogurtheBeastClawBeastClawWeapon68500000withAshofWarSavageClaws = 2047407980, + [Annotation(Name = "[Gravesite Plain - Logur, the Beast Claw] Beast Claw (Weapon 68500000) with Ash of War: Savage Claws 2047407980")] + GravesitePlainLogurtheBeastClawBeastClawWeapon68500000withAshofWarSavageClaws = 2047407980, - [Annotation(Name = "[Rauh Base - Red Bear] Red Bear's Claw, Iron Rivet Set 530900")] - RauhBaseRedBearRedBearsClaw = 530900, + [Annotation(Name = "[Rauh Base - Red Bear] Red Bear's Claw, Iron Rivet Set 530900")] + RauhBaseRedBearRedBearsClaw = 530900, - [Annotation(Name = "[Scadu Altus - Main Bonny Village] Dryleaf Set 2050447720")] - ScaduAltusMainBonnyVillageDryleafSet = 2050447720, + [Annotation(Name = "[Scadu Altus - Main Bonny Village] Dryleaf Set 2050447720")] + ScaduAltusMainBonnyVillageDryleafSet = 2050447720, - [Annotation(Name = "[Scaduview - Albinauric Archer] Gaius's Greaves 2049490900")] - ScaduviewAlbinauricArcherGaiussGreaves = 2049490900, + [Annotation(Name = "[Scaduview - Albinauric Archer] Gaius's Greaves 2049490900")] + ScaduviewAlbinauricArcherGaiussGreaves = 2049490900, - [Annotation(Name = "[Gravesite Plain - Church of Benediction] Oathseeker Knight Helm 2046407001")] - GravesitePlainChurchofBenedictionOathseekerKnightHelm = 2046407001, + [Annotation(Name = "[Gravesite Plain - Church of Benediction] Oathseeker Knight Helm 2046407001")] + GravesitePlainChurchofBenedictionOathseekerKnightHelm = 2046407001, - [Annotation(Name = "[Enir-Ilim] Leda's Armor 400598")] - EnirIlimLedasArmor = 400598, + [Annotation(Name = "[Enir-Ilim] Leda's Armor 400598")] + EnirIlimLedasArmor = 400598, - [Annotation(Name = "[Gravesite Plain - Church of Benediction] Oathseeker Knight Gauntlets 2046407003")] - GravesitePlainChurchofBenedictionOathseekerKnightGauntlets = 2046407003, + [Annotation(Name = "[Gravesite Plain - Church of Benediction] Oathseeker Knight Gauntlets 2046407003")] + GravesitePlainChurchofBenedictionOathseekerKnightGauntlets = 2046407003, - [Annotation(Name = "[Gravesite Plain - Church of Benediction] Oathseeker Knight Greaves 2046407004")] - GravesitePlainChurchofBenedictionOathseekerKnightGreaves = 2046407004, + [Annotation(Name = "[Gravesite Plain - Church of Benediction] Oathseeker Knight Greaves 2046407004")] + GravesitePlainChurchofBenedictionOathseekerKnightGreaves = 2046407004, - [Annotation(Name = "[Gravesite Plain - Church of Benediction] Oathseeker Knight Armor 2046407002")] - GravesitePlainChurchofBenedictionOathseekerKnightArmor = 2046407002, + [Annotation(Name = "[Gravesite Plain - Church of Benediction] Oathseeker Knight Armor 2046407002")] + GravesitePlainChurchofBenedictionOathseekerKnightArmor = 2046407002, - [Annotation(Name = "[Scadu Altus - Ralva the Great Red Bear] Pelt of Ralva 530930")] - ScaduAltusRalvatheGreatRedBearPeltofRalva = 530930, + [Annotation(Name = "[Scadu Altus - Ralva the Great Red Bear] Pelt of Ralva 530930")] + ScaduAltusRalvatheGreatRedBearPeltofRalva = 530930, - [Annotation(Name = "[Cerulean Coast - Dancer of Ranah] Dancer's Set, Dancing Blade of Ranah 530810")] - CeruleanCoastDancerofRanahDancersSet = 530810, + [Annotation(Name = "[Cerulean Coast - Dancer of Ranah] Dancer's Set, Dancing Blade of Ranah 530810")] + CeruleanCoastDancerofRanahDancersSet = 530810, - [Annotation(Name = "[Bonny Gaol] Night Set 41017300")] - BonnyGaolNightSet = 41017300, + [Annotation(Name = "[Bonny Gaol] Night Set 41017300")] + BonnyGaolNightSet = 41017300, - [Annotation(Name = "[Specimen Storehouse - Sir Ansbach] Ansbach's Set 400622")] - SpecimenStorehouseSirAnsbachAnsbachsSet = 400622, + [Annotation(Name = "[Specimen Storehouse - Sir Ansbach] Ansbach's Set 400622")] + SpecimenStorehouseSirAnsbachAnsbachsSet = 400622, - [Annotation(Name = "[Enir-Ilim] Ansbach's Set, Furious Blade of Ansbach, Obsidian Lamina 400624")] - EnirIlimAnsbachsSet = 400624, + [Annotation(Name = "[Enir-Ilim] Ansbach's Set, Furious Blade of Ansbach, Obsidian Lamina 400624")] + EnirIlimAnsbachsSet = 400624, - [Annotation(Name = "[Specimen Storehouse] Ansbach's Set, Ansbach's Longbow, Letter for Freyja 400625")] - SpecimenStorehouseAnsbachsSet = 400625, + [Annotation(Name = "[Specimen Storehouse] Ansbach's Set, Ansbach's Longbow, Letter for Freyja 400625")] + SpecimenStorehouseAnsbachsSet = 400625, - [Annotation(Name = "[Shadow Keep - Fire Knight] Death Mask Helm 21007995")] - ShadowKeepFireKnightDeathMaskHelm = 21007995, + [Annotation(Name = "[Shadow Keep - Fire Knight] Death Mask Helm 21007995")] + ShadowKeepFireKnightDeathMaskHelm = 21007995, - [Annotation(Name = "[Specimen Storehouse - Fire Knight] Winged Serpent Helm, Ash of War: Flame Spear 21017991")] - SpecimenStorehouseFireKnightWingedSerpentHelm = 21017991, + [Annotation(Name = "[Specimen Storehouse - Fire Knight] Winged Serpent Helm, Ash of War: Flame Spear 21017991")] + SpecimenStorehouseFireKnightWingedSerpentHelm = 21017991, - [Annotation(Name = "[Shadow Keep - Fire Knight] Salza's Hood, Rain of Fire 21027991")] - ShadowKeepFireKnightSalzasHood = 21027991, + [Annotation(Name = "[Shadow Keep - Fire Knight] Salza's Hood, Rain of Fire 21027991")] + ShadowKeepFireKnightSalzasHood = 21027991, - [Annotation(Name = "[Rauh Base - Northwest Great Red Bear Area] Highland Warrior Set 2044477010")] - RauhBaseNorthwestGreatRedBearAreaHighlandWarriorSet = 2044477010, + [Annotation(Name = "[Rauh Base - Northwest Great Red Bear Area] Highland Warrior Set 2044477010")] + RauhBaseNorthwestGreatRedBearAreaHighlandWarriorSet = 2044477010, - [Annotation(Name = "[Scadu Altus - Moorth Highway Camp] Highland Warrior Set 2049457200")] - ScaduAltusMoorthHighwayCampHighlandWarriorSet = 2049457200, + [Annotation(Name = "[Scadu Altus - Moorth Highway Camp] Highland Warrior Set 2049457200")] + ScaduAltusMoorthHighwayCampHighlandWarriorSet = 2049457200, - [Annotation(Name = "[Darklight Catacombs] Death Knight Set 40027130")] - DarklightCatacombsDeathKnightSet = 40027130, + [Annotation(Name = "[Darklight Catacombs] Death Knight Set 40027130")] + DarklightCatacombsDeathKnightSet = 40027130, - [Annotation(Name = "[Enir-Ilim] Gravebird Helm 20017500")] - EnirIlimGravebirdHelm = 20017500, + [Annotation(Name = "[Enir-Ilim] Gravebird Helm 20017500")] + EnirIlimGravebirdHelm = 20017500, - [Annotation(Name = "[Rauh Base - Rot Area] Gravebird's Blackquill Armor 2045467070")] - RauhBaseRotAreaGravebirdsBlackquillArmor = 2045467070, + [Annotation(Name = "[Rauh Base - Rot Area] Gravebird's Blackquill Armor 2045467070")] + RauhBaseRotAreaGravebirdsBlackquillArmor = 2045467070, - [Annotation(Name = "[Gravesite Plain - Pillar Path Waypoint] Gravebird Bracelets 2048427020")] - GravesitePlainPillarPathWaypointGravebirdBracelets = 2048427020, + [Annotation(Name = "[Gravesite Plain - Pillar Path Waypoint] Gravebird Bracelets 2048427020")] + GravesitePlainPillarPathWaypointGravebirdBracelets = 2048427020, - [Annotation(Name = "[Scadu Altus - Poison Swamp] Gravebird Anklets 2049467010")] - ScaduAltusPoisonSwampGravebirdAnklets = 2049467010, + [Annotation(Name = "[Scadu Altus - Poison Swamp] Gravebird Anklets 2049467010")] + ScaduAltusPoisonSwampGravebirdAnklets = 2049467010, - [Annotation(Name = "[Gravesite Plain - Dragon Lake] Gravebird Armor 2045447020")] - GravesitePlainDragonLakeGravebirdArmor = 2045447020, + [Annotation(Name = "[Gravesite Plain - Dragon Lake] Gravebird Armor 2045447020")] + GravesitePlainDragonLakeGravebirdArmor = 2045447020, - [Annotation(Name = "[Enir-Ilim] Circlet of Light 20017981")] - EnirIlimCircletofLight = 20017981, + [Annotation(Name = "[Enir-Ilim] Circlet of Light 20017981")] + EnirIlimCircletofLight = 20017981, - [Annotation(Name = "[Belurat] Divine Beast Head 20007810")] - BeluratDivineBeastHead = 20007810, + [Annotation(Name = "[Belurat] Divine Beast Head 20007810")] + BeluratDivineBeastHead = 20007810, - [Annotation(Name = "[Stone Coffin Fissure] St. Trina's Blossom 400740")] - StoneCoffinFissureStTrinasBlossom = 400740, + [Annotation(Name = "[Stone Coffin Fissure] St. Trina's Blossom 400740")] + StoneCoffinFissureStTrinasBlossom = 400740, - [Annotation(Name = "[Belurat Gaol] Greatjar 41007250")] - BeluratGaolGreatjar = 41007250, + [Annotation(Name = "[Belurat Gaol] Greatjar 41007250")] + BeluratGaolGreatjar = 41007250, - [Annotation(Name = "[Scorpion River Catacombs] Imp Head (Lion) 40017070")] - ScorpionRiverCatacombsImpHeadLion = 40017070, + [Annotation(Name = "[Scorpion River Catacombs] Imp Head (Lion) 40017070")] + ScorpionRiverCatacombsImpHeadLion = 40017070, - [Annotation(Name = "[Scorpion River Catacombs - Death Knight] Cerulean Amber Medallion +3 520711")] - ScorpionRiverCatacombsDeathKnightCeruleanAmberMedallion3 = 520711, + [Annotation(Name = "[Scorpion River Catacombs - Death Knight] Cerulean Amber Medallion +3 520711")] + ScorpionRiverCatacombsDeathKnightCeruleanAmberMedallion3 = 520711, - [Annotation(Name = "[Darklight Catacombs] Viridian Amber Medallion +3 40027020")] - DarklightCatacombsViridianAmberMedallion3 = 40027020, + [Annotation(Name = "[Darklight Catacombs] Viridian Amber Medallion +3 40027020")] + DarklightCatacombsViridianAmberMedallion3 = 40027020, - [Annotation(Name = "[Rauh Base - Temple Town Ruins] Two-Headed Turtle Talisman 2046457000")] - RauhBaseTempleTownRuinsTwoHeadedTurtleTalisman = 2046457000, + [Annotation(Name = "[Rauh Base - Temple Town Ruins] Two-Headed Turtle Talisman 2046457000")] + RauhBaseTempleTownRuinsTwoHeadedTurtleTalisman = 2046457000, - [Annotation(Name = "[Bonny Gaol] Stalwart Horn Charm +2 41017020")] - BonnyGaolStalwartHornCharm2 = 41017020, + [Annotation(Name = "[Bonny Gaol] Stalwart Horn Charm +2 41017020")] + BonnyGaolStalwartHornCharm2 = 41017020, - [Annotation(Name = "[Belurat - Ulcerated Tree Spirit] Immunizing Horn Charm +2 20007991")] - BeluratUlceratedTreeSpiritImmunizingHornCharm2 = 20007991, + [Annotation(Name = "[Belurat - Ulcerated Tree Spirit] Immunizing Horn Charm +2 20007991")] + BeluratUlceratedTreeSpiritImmunizingHornCharm2 = 20007991, - [Annotation(Name = "[Lamenter's Gaol] Clarifying Horn Charm +2 41027210")] - LamentersGaolClarifyingHornCharm2 = 41027210, + [Annotation(Name = "[Lamenter's Gaol] Clarifying Horn Charm +2 41027210")] + LamentersGaolClarifyingHornCharm2 = 41027210, - [Annotation(Name = "[Rauh Base - Rot Area] Mottled Necklace +2 2045467900")] - RauhBaseRotAreaMottledNecklace2 = 2045467900, + [Annotation(Name = "[Rauh Base - Rot Area] Mottled Necklace +2 2045467900")] + RauhBaseRotAreaMottledNecklace2 = 2045467900, - [Annotation(Name = "[Gravesite Plain - West Castle Ensis] Spelldrake Talisman +3 2047447190")] - GravesitePlainWestCastleEnsisSpelldrakeTalisman3 = 2047447190, + [Annotation(Name = "[Gravesite Plain - West Castle Ensis] Spelldrake Talisman +3 2047447190")] + GravesitePlainWestCastleEnsisSpelldrakeTalisman3 = 2047447190, - [Annotation(Name = "[Gravesite Plain - Southeast Poison Swamp] Flamedrake Talisman +3 2049437270")] - GravesitePlainSoutheastPoisonSwampFlamedrakeTalisman3 = 2049437270, + [Annotation(Name = "[Gravesite Plain - Southeast Poison Swamp] Flamedrake Talisman +3 2049437270")] + GravesitePlainSoutheastPoisonSwampFlamedrakeTalisman3 = 2049437270, - [Annotation(Name = "[Specimen Storehouse] Boltdrake Talisman +3 21017100")] - SpecimenStorehouseBoltdrakeTalisman3 = 21017100, + [Annotation(Name = "[Specimen Storehouse] Boltdrake Talisman +3 21017100")] + SpecimenStorehouseBoltdrakeTalisman3 = 21017100, - [Annotation(Name = "[Scadu Altus - Church District Highroad] Golden Braid 2051477510")] - ScaduAltusChurchDistrictHighroadGoldenBraid = 2051477510, + [Annotation(Name = "[Scadu Altus - Church District Highroad] Golden Braid 2051477510")] + ScaduAltusChurchDistrictHighroadGoldenBraid = 2051477510, - [Annotation(Name = "[Specimen Storehouse] Pearldrake Talisman +3 21017120")] - SpecimenStorehousePearldrakeTalisman3 = 21017120, + [Annotation(Name = "[Specimen Storehouse] Pearldrake Talisman +3 21017120")] + SpecimenStorehousePearldrakeTalisman3 = 21017120, - [Annotation(Name = "[Finger Ruins of Rhia - Northwest] Crimson Seed Talisman +1 2050407000")] - FingerRuinsofRhiaNorthwestCrimsonSeedTalisman1 = 2050407000, + [Annotation(Name = "[Finger Ruins of Rhia - Northwest] Crimson Seed Talisman +1 2050407000")] + FingerRuinsofRhiaNorthwestCrimsonSeedTalisman1 = 2050407000, - [Annotation(Name = "[Finger Ruins of Dheo - West] Cerulean Seed Talisman +1 2053467600")] - FingerRuinsofDheoWestCeruleanSeedTalisman1 = 2053467600, + [Annotation(Name = "[Finger Ruins of Dheo - West] Cerulean Seed Talisman +1 2053467600")] + FingerRuinsofDheoWestCeruleanSeedTalisman1 = 2053467600, - [Annotation(Name = "[Gravesite Plain - Church of Benediction] Blessed Blue Dew Talisman 2046407700")] - GravesitePlainChurchofBenedictionBlessedBlueDewTalisman = 2046407700, + [Annotation(Name = "[Gravesite Plain - Church of Benediction] Blessed Blue Dew Talisman 2046407700")] + GravesitePlainChurchofBenedictionBlessedBlueDewTalisman = 2046407700, - [Annotation(Name = "[Rauh Base - Northeast Great Red Bear Area] Fine Crucible Feather Talisman 2045487000")] - RauhBaseNortheastGreatRedBearAreaFineCrucibleFeatherTalisman = 2045487000, + [Annotation(Name = "[Rauh Base - Northeast Great Red Bear Area] Fine Crucible Feather Talisman 2045487000")] + RauhBaseNortheastGreatRedBearAreaFineCrucibleFeatherTalisman = 2045487000, - [Annotation(Name = "[Gravesite Plain - Cliffroad Terminus] Outer God Heirloom 2045417800")] - GravesitePlainCliffroadTerminusOuterGodHeirloom = 2045417800, + [Annotation(Name = "[Gravesite Plain - Cliffroad Terminus] Outer God Heirloom 2045417800")] + GravesitePlainCliffroadTerminusOuterGodHeirloom = 2045417800, - [Annotation(Name = "[Scadu Altus - Moorth Ruins] Shattered Stone Talisman 2049447090")] - ScaduAltusMoorthRuinsShatteredStoneTalisman = 2049447090, + [Annotation(Name = "[Scadu Altus - Moorth Ruins] Shattered Stone Talisman 2049447090")] + ScaduAltusMoorthRuinsShatteredStoneTalisman = 2049447090, - [Annotation(Name = "[Rauh Base - Temple Town Ruins] Two-Handed Sword Talisman 2046457910")] - RauhBaseTempleTownRuinsTwoHandedSwordTalisman = 2046457910, + [Annotation(Name = "[Rauh Base - Temple Town Ruins] Two-Handed Sword Talisman 2046457910")] + RauhBaseTempleTownRuinsTwoHandedSwordTalisman = 2046457910, - [Annotation(Name = "[Belurat - Fire Knight Queelign] Crusade Insignia 400694")] - BeluratFireKnightQueelignCrusadeInsignia = 400694, + [Annotation(Name = "[Belurat - Fire Knight Queelign] Crusade Insignia 400694")] + BeluratFireKnightQueelignCrusadeInsignia = 400694, - [Annotation(Name = "[Finger Ruins of Rhia - Winter-Lantern] Aged One's Exultation 2051417700")] - FingerRuinsofRhiaWinterLanternAgedOnesExultation = 2051417700, + [Annotation(Name = "[Finger Ruins of Rhia - Winter-Lantern] Aged One's Exultation 2051417700")] + FingerRuinsofRhiaWinterLanternAgedOnesExultation = 2051417700, - [Annotation(Name = "[Gravesite Plain - North Fog Rift Fort] Arrow's Soaring Sting Talisman 2047457910")] - GravesitePlainNorthFogRiftFortArrowsSoaringStingTalisman = 2047457910, + [Annotation(Name = "[Gravesite Plain - North Fog Rift Fort] Arrow's Soaring Sting Talisman 2047457910")] + GravesitePlainNorthFogRiftFortArrowsSoaringStingTalisman = 2047457910, - [Annotation(Name = "[Rauh Base - Bloodfiend Cave] Pearl Shield Talisman 2047477900")] - RauhBaseBloodfiendCavePearlShieldTalisman = 2047477900, + [Annotation(Name = "[Rauh Base - Bloodfiend Cave] Pearl Shield Talisman 2047477900")] + RauhBaseBloodfiendCavePearlShieldTalisman = 2047477900, - [Annotation(Name = "[Belurat] Dried Bouquet 20007630")] - BeluratDriedBouquet = 20007630, + [Annotation(Name = "[Belurat] Dried Bouquet 20007630")] + BeluratDriedBouquet = 20007630, - [Annotation(Name = "[Ruined Forge of Starfall Past] Smithing Talisman 42027030")] - RuinedForgeofStarfallPastSmithingTalisman = 42027030, + [Annotation(Name = "[Ruined Forge of Starfall Past] Smithing Talisman 42027030")] + RuinedForgeofStarfallPastSmithingTalisman = 42027030, - [Annotation(Name = "[Gravesite Plain - Greatbridge North] Ailment Talisman 2046447030")] - GravesitePlainGreatbridgeNorthAilmentTalisman = 2046447030, + [Annotation(Name = "[Gravesite Plain - Greatbridge North] Ailment Talisman 2046447030")] + GravesitePlainGreatbridgeNorthAilmentTalisman = 2046447030, - [Annotation(Name = "[Scadu Altus - Needle Knight Leda] Retaliatory Crossed-Tree 400592")] - ScaduAltusNeedleKnightLedaRetaliatoryCrossedTree = 400592, + [Annotation(Name = "[Scadu Altus - Needle Knight Leda] Retaliatory Crossed-Tree 400592")] + ScaduAltusNeedleKnightLedaRetaliatoryCrossedTree = 400592, - [Annotation(Name = "[Scadu Altus - Needle Knight Leda] Lacerating Crossed-Tree 400590")] - ScaduAltusNeedleKnightLedaLaceratingCrossedTree = 400590, + [Annotation(Name = "[Scadu Altus - Needle Knight Leda] Lacerating Crossed-Tree 400590")] + ScaduAltusNeedleKnightLedaLaceratingCrossedTree = 400590, - [Annotation(Name = "[Scaduview - Scadutree Chalice] Sharpshot Talisman 2049497510")] - ScaduviewScadutreeChaliceSharpshotTalisman = 2049497510, + [Annotation(Name = "[Scaduview - Scadutree Chalice] Sharpshot Talisman 2049497510")] + ScaduviewScadutreeChaliceSharpshotTalisman = 2049497510, - [Annotation(Name = "[Stone Coffin Fissure - Thiollier] St. Trina's Smile 400632")] - StoneCoffinFissureThiollierStTrinasSmile = 400632, + [Annotation(Name = "[Stone Coffin Fissure - Thiollier] St. Trina's Smile 400632")] + StoneCoffinFissureThiollierStTrinasSmile = 400632, - [Annotation(Name = "[Gravesite Plain - Elder's Hovel] Talisman of the Dread 2049427000")] - GravesitePlainEldersHovelTalismanoftheDread = 2049427000, + [Annotation(Name = "[Gravesite Plain - Elder's Hovel] Talisman of the Dread 2049427000")] + GravesitePlainEldersHovelTalismanoftheDread = 2049427000, - [Annotation(Name = "[Scadu Altus - Count Ymir, High Priest] Beloved Stardust, Ruins Map (2nd) 400661")] - ScaduAltusCountYmirHighPriestBelovedStardust = 400661, + [Annotation(Name = "[Scadu Altus - Count Ymir, High Priest] Beloved Stardust, Ruins Map (2nd) 400661")] + ScaduAltusCountYmirHighPriestBelovedStardust = 400661, - [Annotation(Name = "[Shadow Keep] Talisman of Lord's Bestowal 21007070")] - ShadowKeepTalismanofLordsBestowal = 21007070, + [Annotation(Name = "[Shadow Keep] Talisman of Lord's Bestowal 21007070")] + ShadowKeepTalismanofLordsBestowal = 21007070, - [Annotation(Name = "[Rauh Base - Fire Spritestone Cave] Verdigris Discus 2046477720")] - RauhBaseFireSpritestoneCaveVerdigrisDiscus = 2046477720, + [Annotation(Name = "[Rauh Base - Fire Spritestone Cave] Verdigris Discus 2046477720")] + RauhBaseFireSpritestoneCaveVerdigrisDiscus = 2046477720, - [Annotation(Name = "[Gravesite Plain - West Castle Ensis] Rellana's Cameo 2047447700")] - GravesitePlainWestCastleEnsisRellanasCameo = 2047447700, + [Annotation(Name = "[Gravesite Plain - West Castle Ensis] Rellana's Cameo 2047447700")] + GravesitePlainWestCastleEnsisRellanasCameo = 2047447700, - [Annotation(Name = "[Gravesite Plain - Scorched Ruins] Blade of Mercy 2047417800")] - GravesitePlainScorchedRuinsBladeofMercy = 2047417800, + [Annotation(Name = "[Gravesite Plain - Scorched Ruins] Blade of Mercy 2047417800")] + GravesitePlainScorchedRuinsBladeofMercy = 2047417800, - [Annotation(Name = "[Ancient Ruins of Rauh - South Church of the Bud] Talisman of All Crucibles 2044457900")] - AncientRuinsofRauhSouthChurchoftheBudTalismanofAllCrucibles = 2044457900, + [Annotation(Name = "[Ancient Ruins of Rauh - South Church of the Bud] Talisman of All Crucibles 2044457900")] + AncientRuinsofRauhSouthChurchoftheBudTalismanofAllCrucibles = 2044457900, - [Annotation(Name = "[Rauh Base - Fire Spritestone Cave] Ash of War: Dryleaf Whirlwind 2046477150")] - RauhBaseFireSpritestoneCaveAshofWarDryleafWhirlwind = 2046477150, + [Annotation(Name = "[Rauh Base - Fire Spritestone Cave] Ash of War: Dryleaf Whirlwind 2046477150")] + RauhBaseFireSpritestoneCaveAshofWarDryleafWhirlwind = 2046477150, - [Annotation(Name = "[Gravesite Plain - Black Knight Edredd] Ash of War: Aspects of the Crucible: Wings 530965")] - GravesitePlainBlackKnightEdreddAshofWarAspectsoftheCrucibleWings = 530965, + [Annotation(Name = "[Gravesite Plain - Black Knight Edredd] Ash of War: Aspects of the Crucible: Wings 530965")] + GravesitePlainBlackKnightEdreddAshofWarAspectsoftheCrucibleWings = 530965, - [Annotation(Name = "[Gravesite Plain - Scarab] Ash of War: Piercing Throw 540902")] - GravesitePlainScarabAshofWarPiercingThrow = 540902, + [Annotation(Name = "[Gravesite Plain - Scarab] Ash of War: Piercing Throw 540902")] + GravesitePlainScarabAshofWarPiercingThrow = 540902, - [Annotation(Name = "[Scadu Altus - Scarab] Ash of War: Scattershot Throw 540910")] - ScaduAltusScarabAshofWarScattershotThrow = 540910, + [Annotation(Name = "[Scadu Altus - Scarab] Ash of War: Scattershot Throw 540910")] + ScaduAltusScarabAshofWarScattershotThrow = 540910, - [Annotation(Name = "[Shadow Keep - West Rampart] Ash of War: Wall of Sparks 21027020")] - ShadowKeepWestRampartAshofWarWallofSparks = 21027020, + [Annotation(Name = "[Shadow Keep - West Rampart] Ash of War: Wall of Sparks 21027020")] + ShadowKeepWestRampartAshofWarWallofSparks = 21027020, - [Annotation(Name = "[Scadu Altus - Scarab] Ash of War: Rolling Sparks 540904")] - ScaduAltusScarabAshofWarRollingSparks = 540904, + [Annotation(Name = "[Scadu Altus - Scarab] Ash of War: Rolling Sparks 540904")] + ScaduAltusScarabAshofWarRollingSparks = 540904, - [Annotation(Name = "[Scadu Altus - Scarab] Ash of War: Raging Beast 540906")] - ScaduAltusScarabAshofWarRagingBeast = 540906, + [Annotation(Name = "[Scadu Altus - Scarab] Ash of War: Raging Beast 540906")] + ScaduAltusScarabAshofWarRagingBeast = 540906, - [Annotation(Name = "[Shadow Keep - Needle Knight Leda] Ash of War: Swift Slash 400594")] - ShadowKeepNeedleKnightLedaAshofWarSwiftSlash = 400594, + [Annotation(Name = "[Shadow Keep - Needle Knight Leda] Ash of War: Swift Slash 400594")] + ShadowKeepNeedleKnightLedaAshofWarSwiftSlash = 400594, - [Annotation(Name = "[Gravesite Plain - East Castle Ensis] Ash of War: Wing Stance 2048447810")] - GravesitePlainEastCastleEnsisAshofWarWingStance = 2048447810, + [Annotation(Name = "[Gravesite Plain - East Castle Ensis] Ash of War: Wing Stance 2048447810")] + GravesitePlainEastCastleEnsisAshofWarWingStance = 2048447810, - [Annotation(Name = "[Fog Rift Catacombs] Ash of War: Blinkbolt 40007900")] - FogRiftCatacombsAshofWarBlinkbolt = 40007900, + [Annotation(Name = "[Fog Rift Catacombs] Ash of War: Blinkbolt 40007900")] + FogRiftCatacombsAshofWarBlinkbolt = 40007900, - [Annotation(Name = "[Belurat - Fire Knight Queelign] Ash of War: Flame Skewer, Prayer Room Key 400696")] - BeluratFireKnightQueelignAshofWarFlameSkewer = 400696, + [Annotation(Name = "[Belurat - Fire Knight Queelign] Ash of War: Flame Skewer, Prayer Room Key 400696")] + BeluratFireKnightQueelignAshofWarFlameSkewer = 400696, - [Annotation(Name = "[Gravesite Plain - South of Dragon Lake] Ash of War: Savage Lion's Claw 2045437700")] - GravesitePlainSouthofDragonLakeAshofWarSavageLionsClaw = 2045437700, + [Annotation(Name = "[Gravesite Plain - South of Dragon Lake] Ash of War: Savage Lion's Claw 2045437700")] + GravesitePlainSouthofDragonLakeAshofWarSavageLionsClaw = 2045437700, - [Annotation(Name = "[Scadu Altus - Scarab] Ash of War: Carian Sovereignty 540900")] - ScaduAltusScarabAshofWarCarianSovereignty = 540900, + [Annotation(Name = "[Scadu Altus - Scarab] Ash of War: Carian Sovereignty 540900")] + ScaduAltusScarabAshofWarCarianSovereignty = 540900, - [Annotation(Name = "[Belurat] Ash of War: Shriek of Sorrow 20007410")] - BeluratAshofWarShriekofSorrow = 20007410, + [Annotation(Name = "[Belurat] Ash of War: Shriek of Sorrow 20007410")] + BeluratAshofWarShriekofSorrow = 20007410, - [Annotation(Name = "[Cerulean Coast - Death Rite Bird] Ash of War: Ghostflame Call 530855")] - CeruleanCoastDeathRiteBirdAshofWarGhostflameCall = 530855, + [Annotation(Name = "[Cerulean Coast - Death Rite Bird] Ash of War: Ghostflame Call 530855")] + CeruleanCoastDeathRiteBirdAshofWarGhostflameCall = 530855, - [Annotation(Name = "[Rauh Base - Scarab] Ash of War: The Poison Flower Blooms Twice 540916")] - RauhBaseScarabAshofWarThePoisonFlowerBloomsTwice = 540916, + [Annotation(Name = "[Rauh Base - Scarab] Ash of War: The Poison Flower Blooms Twice 540916")] + RauhBaseScarabAshofWarThePoisonFlowerBloomsTwice = 540916, - [Annotation(Name = "[Jagged Peak - Between Jagged Peak Mountainside and Summit] Rock Heart 580420")] - JaggedPeakBetweenJaggedPeakMountainsideandSummitRockHeart = 580420, + [Annotation(Name = "[Jagged Peak - Between Jagged Peak Mountainside and Summit] Rock Heart 580420")] + JaggedPeakBetweenJaggedPeakMountainsideandSummitRockHeart = 580420, - [Annotation(Name = "[Lamenter's Gaol - Lamenter] Lamenter's Mask 520770")] - LamentersGaolLamenterLamentersMask = 520770, + [Annotation(Name = "[Lamenter's Gaol - Lamenter] Lamenter's Mask 520770")] + LamentersGaolLamenterLamentersMask = 520770, - [Annotation(Name = "[Shadow Keep] Iris of Grace 21007800")] - ShadowKeepIrisofGrace = 21007800, + [Annotation(Name = "[Shadow Keep] Iris of Grace 21007800")] + ShadowKeepIrisofGrace = 21007800, - [Annotation(Name = "[Shadow Keep - West Rampart] Iris of Grace 21027040")] - ShadowKeepWestRampartIrisofGrace = 21027040, + [Annotation(Name = "[Shadow Keep - West Rampart] Iris of Grace 21027040")] + ShadowKeepWestRampartIrisofGrace = 21027040, - [Annotation(Name = "[Shadow Keep - Ulcerated Tree Spirit] Iris of Occultation 21007993")] - ShadowKeepUlceratedTreeSpiritIrisofOccultation = 21007993, + [Annotation(Name = "[Shadow Keep - Ulcerated Tree Spirit] Iris of Occultation 21007993")] + ShadowKeepUlceratedTreeSpiritIrisofOccultation = 21007993, - [Annotation(Name = "[Gravesite Plain - Omenkiller] Iris of Occultation 2049437940")] - GravesitePlainOmenkillerIrisofOccultation = 2049437940, + [Annotation(Name = "[Gravesite Plain - Omenkiller] Iris of Occultation 2049437940")] + GravesitePlainOmenkillerIrisofOccultation = 2049437940, - [Annotation(Name = "[Gravesite Plain - Thiollier] Thiollier's Concoction 400630")] - GravesitePlainThiollierThiolliersConcoction = 400630, + [Annotation(Name = "[Gravesite Plain - Thiollier] Thiollier's Concoction 400630")] + GravesitePlainThiollierThiolliersConcoction = 400630, - [Annotation(Name = "[Lamenter's Gaol] Prattling Pate \"Lamentation\" 41027010")] - LamentersGaolPrattlingPateLamentation = 41027010, + [Annotation(Name = "[Lamenter's Gaol] Prattling Pate \"Lamentation\" 41027010")] + LamentersGaolPrattlingPateLamentation = 41027010, - [Annotation(Name = "[Scaduview - Commander Gaius] Remembrance of the Wild Boar Rider 510640")] - ScaduviewCommanderGaiusRemembranceoftheWildBoarRider = 510640, + [Annotation(Name = "[Scaduview - Commander Gaius] Remembrance of the Wild Boar Rider 510640")] + ScaduviewCommanderGaiusRemembranceoftheWildBoarRider = 510640, - [Annotation(Name = "[Scaduview - Scadutree Avatar] Remembrance of the Shadow Sunflower, Miquella's Great Rune 510620")] - ScaduviewScadutreeAvatarRemembranceoftheShadowSunflower = 510620, + [Annotation(Name = "[Scaduview - Scadutree Avatar] Remembrance of the Shadow Sunflower, Miquella's Great Rune 510620")] + ScaduviewScadutreeAvatarRemembranceoftheShadowSunflower = 510620, - [Annotation(Name = "[Gravesite Plain - Rellana, Twin Moon Knight] Remembrance of the Twin Moon Knight 510900")] - GravesitePlainRellanaTwinMoonKnightRemembranceoftheTwinMoonKnight = 510900, + [Annotation(Name = "[Gravesite Plain - Rellana, Twin Moon Knight] Remembrance of the Twin Moon Knight 510900")] + GravesitePlainRellanaTwinMoonKnightRemembranceoftheTwinMoonKnight = 510900, - [Annotation(Name = "[Ancient Ruins of Rauh - Romina, Saint of the Bud] Remembrance of the Saint of the Bud 510600")] - AncientRuinsofRauhRominaSaintoftheBudRemembranceoftheSaintoftheBud = 510600, + [Annotation(Name = "[Ancient Ruins of Rauh - Romina, Saint of the Bud] Remembrance of the Saint of the Bud 510600")] + AncientRuinsofRauhRominaSaintoftheBudRemembranceoftheSaintoftheBud = 510600, - [Annotation(Name = "[Belurat - Divine Beast Dancing Lion] Remembrance of the Dancing Lion 510400")] - BeluratDivineBeastDancingLionRemembranceoftheDancingLion = 510400, + [Annotation(Name = "[Belurat - Divine Beast Dancing Lion] Remembrance of the Dancing Lion 510400")] + BeluratDivineBeastDancingLionRemembranceoftheDancingLion = 510400, - [Annotation(Name = "[Enir-Ilim - Radahn, Consort of Miquella] Remembrance of a God and a Lord 510430")] - EnirIlimRadahnConsortofMiquellaRemembranceofaGodandaLord = 510430, + [Annotation(Name = "[Enir-Ilim - Radahn, Consort of Miquella] Remembrance of a God and a Lord 510430")] + EnirIlimRadahnConsortofMiquellaRemembranceofaGodandaLord = 510430, - [Annotation(Name = "[Midra's Manse - Midra, Lord of Frenzied Flame] Remembrance of the Lord of Frenzied Flame 510560")] - MidrasManseMidraLordofFrenziedFlameRemembranceoftheLordofFrenziedFlame = 510560, + [Annotation(Name = "[Midra's Manse - Midra, Lord of Frenzied Flame] Remembrance of the Lord of Frenzied Flame 510560")] + MidrasManseMidraLordofFrenziedFlameRemembranceoftheLordofFrenziedFlame = 510560, - [Annotation(Name = "[Finger Birthing Grounds - Metyr, Mother of Fingers] Remembrance of the Mother of Fingers 510550")] - FingerBirthingGroundsMetyrMotherofFingersRemembranceoftheMotherofFingers = 510550, + [Annotation(Name = "[Finger Birthing Grounds - Metyr, Mother of Fingers] Remembrance of the Mother of Fingers 510550")] + FingerBirthingGroundsMetyrMotherofFingersRemembranceoftheMotherofFingers = 510550, - [Annotation(Name = "[Stone Coffin Fissure - Putrescent Knight] Remembrance of Putrescence 510480")] - StoneCoffinFissurePutrescentKnightRemembranceofPutrescence = 510480, + [Annotation(Name = "[Stone Coffin Fissure - Putrescent Knight] Remembrance of Putrescence 510480")] + StoneCoffinFissurePutrescentKnightRemembranceofPutrescence = 510480, - [Annotation(Name = "[Ancient Ruins of Rauh - East Ruins North Pit and Tunnels] Bondstone 2046487010")] - AncientRuinsofRauhEastRuinsNorthPitandTunnelsBondstone = 2046487010, + [Annotation(Name = "[Ancient Ruins of Rauh - East Ruins North Pit and Tunnels] Bondstone 2046487010")] + AncientRuinsofRauhEastRuinsNorthPitandTunnelsBondstone = 2046487010, - [Annotation(Name = "[Rauh Base - Fire Spritestone Cave] Fire Spritestone 2046477060")] - RauhBaseFireSpritestoneCaveFireSpritestone = 2046477060, + [Annotation(Name = "[Rauh Base - Fire Spritestone Cave] Fire Spritestone 2046477060")] + RauhBaseFireSpritestoneCaveFireSpritestone = 2046477060, - [Annotation(Name = "[Gravesite Plain - Ulcerated Tree Spirit] Horned Bairn 2047437980")] - GravesitePlainUlceratedTreeSpiritHornedBairn = 2047437980, + [Annotation(Name = "[Gravesite Plain - Ulcerated Tree Spirit] Horned Bairn 2047437980")] + GravesitePlainUlceratedTreeSpiritHornedBairn = 2047437980, - [Annotation(Name = "[Cerulean Coast - Southern Nameless Mausoleum] Perfumed Oil of Ranah 2046387070")] - CeruleanCoastSouthernNamelessMausoleumPerfumedOilofRanah = 2046387070, + [Annotation(Name = "[Cerulean Coast - Southern Nameless Mausoleum] Perfumed Oil of Ranah 2046387070")] + CeruleanCoastSouthernNamelessMausoleumPerfumedOilofRanah = 2046387070, - [Annotation(Name = "[Lamenter's Gaol] Call of Tibia 41027110")] - LamentersGaolCallofTibia = 41027110, + [Annotation(Name = "[Lamenter's Gaol] Call of Tibia 41027110")] + LamentersGaolCallofTibia = 41027110, - [Annotation(Name = "[Cerulean Coast - Cerulean Coast] Call of Tibia 2048397030")] - CeruleanCoastCeruleanCoastCallofTibia = 2048397030, + [Annotation(Name = "[Cerulean Coast - Cerulean Coast] Call of Tibia 2048397030")] + CeruleanCoastCeruleanCoastCallofTibia = 2048397030, - [Annotation(Name = "[Midra's Manse] Surging Frenzied Flame 3x 28007050")] - MidrasManseSurgingFrenziedFlame3x = 28007050, + [Annotation(Name = "[Midra's Manse] Surging Frenzied Flame 3x 28007050")] + MidrasManseSurgingFrenziedFlame3x = 28007050, - [Annotation(Name = "[Shadow Keep] Golden Vow (Goods 2003170) 21007040")] - ShadowKeepGoldenVowGoods2003170 = 21007040, + [Annotation(Name = "[Shadow Keep] Golden Vow (Goods 2003170) 21007040")] + ShadowKeepGoldenVowGoods2003170 = 21007040, - [Annotation(Name = "[Shadow Keep] Golden Vow (Goods 2003170) 3x 21007090")] - ShadowKeepGoldenVowGoods20031703x = 21007090, + [Annotation(Name = "[Shadow Keep] Golden Vow (Goods 2003170) 3x 21007090")] + ShadowKeepGoldenVowGoods20031703x = 21007090, - [Annotation(Name = "[Scadu Altus - Furnace Golem Area] Golden Vow (Goods 2003170) 2x 2048467010")] - ScaduAltusFurnaceGolemAreaGoldenVowGoods20031702x = 2048467010, + [Annotation(Name = "[Scadu Altus - Furnace Golem Area] Golden Vow (Goods 2003170) 2x 2048467010")] + ScaduAltusFurnaceGolemAreaGoldenVowGoods20031702x = 2048467010, - [Annotation(Name = "[Specimen Storehouse] Fire Coil 21017040")] - SpecimenStorehouseFireCoil = 21017040, + [Annotation(Name = "[Specimen Storehouse] Fire Coil 21017040")] + SpecimenStorehouseFireCoil = 21017040, - [Annotation(Name = "[Specimen Storehouse] Fire Coil 2x 21017410")] - SpecimenStorehouseFireCoil2x = 21017410, + [Annotation(Name = "[Specimen Storehouse] Fire Coil 2x 21017410")] + SpecimenStorehouseFireCoil2x = 21017410, - [Annotation(Name = "[Specimen Storehouse] Fire Coil 3x 21017630")] - SpecimenStorehouseFireCoil3x = 21017630, + [Annotation(Name = "[Specimen Storehouse] Fire Coil 3x 21017630")] + SpecimenStorehouseFireCoil3x = 21017630, - [Annotation(Name = "[Gravesite Plain - Church of Consolation] Fire Coil 2x 2048417000")] - GravesitePlainChurchofConsolationFireCoil2x = 2048417000, + [Annotation(Name = "[Gravesite Plain - Church of Consolation] Fire Coil 2x 2048417000")] + GravesitePlainChurchofConsolationFireCoil2x = 2048417000, - [Annotation(Name = "[Scadu Altus - Cathedral of Manus Metyr] Glinting Nail 2x 2051457000")] - ScaduAltusCathedralofManusMetyrGlintingNail2x = 2051457000, + [Annotation(Name = "[Scadu Altus - Cathedral of Manus Metyr] Glinting Nail 2x 2051457000")] + ScaduAltusCathedralofManusMetyrGlintingNail2x = 2051457000, - [Annotation(Name = "[Enir-Ilim] Sunwarmth Stone 2x 20017480")] - EnirIlimSunwarmthStone2x = 20017480, + [Annotation(Name = "[Enir-Ilim] Sunwarmth Stone 2x 20017480")] + EnirIlimSunwarmthStone2x = 20017480, - [Annotation(Name = "[Gravesite Plain - West Castle Ensis] Glintblade Trio 2047447090")] - GravesitePlainWestCastleEnsisGlintbladeTrio = 2047447090, + [Annotation(Name = "[Gravesite Plain - West Castle Ensis] Glintblade Trio 2047447090")] + GravesitePlainWestCastleEnsisGlintbladeTrio = 2047447090, - [Annotation(Name = "[Scaduview - Fallingstar Beast] Gravitational Missile 530960")] - ScaduviewFallingstarBeastGravitationalMissile = 530960, + [Annotation(Name = "[Scaduview - Fallingstar Beast] Gravitational Missile 530960")] + ScaduviewFallingstarBeastGravitationalMissile = 530960, - [Annotation(Name = "[Shadow Keep - Ulcerated Tree Spirit] Mantle of Thorns 21007991")] - ShadowKeepUlceratedTreeSpiritMantleofThorns = 21007991, + [Annotation(Name = "[Shadow Keep - Ulcerated Tree Spirit] Mantle of Thorns 21007991")] + ShadowKeepUlceratedTreeSpiritMantleofThorns = 21007991, - [Annotation(Name = "[Specimen Storehouse] Impenetrable Thorns 21017510")] - SpecimenStorehouseImpenetrableThorns = 21017510, + [Annotation(Name = "[Specimen Storehouse] Impenetrable Thorns 21017510")] + SpecimenStorehouseImpenetrableThorns = 21017510, - [Annotation(Name = "[Cerulean Coast - Cerulean Coast] Rings of Spectral Light 2048397050")] - CeruleanCoastCeruleanCoastRingsofSpectralLight = 2048397050, + [Annotation(Name = "[Cerulean Coast - Cerulean Coast] Rings of Spectral Light 2048397050")] + CeruleanCoastCeruleanCoastRingsofSpectralLight = 2048397050, - [Annotation(Name = "[Stone Coffin Fissure] Mass of Putrescence 22007210")] - StoneCoffinFissureMassofPutrescence = 22007210, + [Annotation(Name = "[Stone Coffin Fissure] Mass of Putrescence 22007210")] + StoneCoffinFissureMassofPutrescence = 22007210, - [Annotation(Name = "[Scadu Altus - Moorth Highway Camp] Heal from Afar 2049457500")] - ScaduAltusMoorthHighwayCampHealfromAfar = 2049457500, + [Annotation(Name = "[Scadu Altus - Moorth Highway Camp] Heal from Afar 2049457500")] + ScaduAltusMoorthHighwayCampHealfromAfar = 2049457500, - [Annotation(Name = "[Shadow Keep - Golden Hippopotamus] Aspects of the Crucible: Thorns, Scadutree Fragment 2x 510440")] - ShadowKeepGoldenHippopotamusAspectsoftheCrucibleThorns = 510440, + [Annotation(Name = "[Shadow Keep - Golden Hippopotamus] Aspects of the Crucible: Thorns, Scadutree Fragment 2x 510440")] + ShadowKeepGoldenHippopotamusAspectsoftheCrucibleThorns = 510440, - [Annotation(Name = "[Rauh Base - Ravine North] Aspects of the Crucible: Bloom 2045477040")] - RauhBaseRavineNorthAspectsoftheCrucibleBloom = 2045477040, + [Annotation(Name = "[Rauh Base - Ravine North] Aspects of the Crucible: Bloom 2045477040")] + RauhBaseRavineNorthAspectsoftheCrucibleBloom = 2045477040, - [Annotation(Name = "[Scadu Altus - Church District Highroad] Minor Erdtree 2051477500")] - ScaduAltusChurchDistrictHighroadMinorErdtree = 2051477500, + [Annotation(Name = "[Scadu Altus - Church District Highroad] Minor Erdtree 2051477500")] + ScaduAltusChurchDistrictHighroadMinorErdtree = 2051477500, - [Annotation(Name = "[Specimen Storehouse] Wrath from Afar 21017780")] - SpecimenStorehouseWrathfromAfar = 21017780, + [Annotation(Name = "[Specimen Storehouse] Wrath from Afar 21017780")] + SpecimenStorehouseWrathfromAfar = 21017780, - [Annotation(Name = "[Stone Coffin Fissure - Leonine Misbegotten] Multilayered Ring of Light 22007900")] - StoneCoffinFissureLeonineMisbegottenMultilayeredRingofLight = 22007900, + [Annotation(Name = "[Stone Coffin Fissure - Leonine Misbegotten] Multilayered Ring of Light 22007900")] + StoneCoffinFissureLeonineMisbegottenMultilayeredRingofLight = 22007900, - [Annotation(Name = "[Rauh Base - Rugalea the Great Red Bear] Roar of Rugalea 530905")] - RauhBaseRugaleatheGreatRedBearRoarofRugalea = 530905, + [Annotation(Name = "[Rauh Base - Rugalea the Great Red Bear] Roar of Rugalea 530905")] + RauhBaseRugaleatheGreatRedBearRoarofRugalea = 530905, - [Annotation(Name = "[Scorpion River Catacombs] Knight's Lightning Spear 40017080")] - ScorpionRiverCatacombsKnightsLightningSpear = 40017080, + [Annotation(Name = "[Scorpion River Catacombs] Knight's Lightning Spear 40017080")] + ScorpionRiverCatacombsKnightsLightningSpear = 40017080, - [Annotation(Name = "[Finger Ruins of Rhia - Dragon Communion Priestess] Dragonbolt of Florissax 400702")] - FingerRuinsofRhiaDragonCommunionPriestessDragonboltofFlorissax = 400702, + [Annotation(Name = "[Finger Ruins of Rhia - Dragon Communion Priestess] Dragonbolt of Florissax 400702")] + FingerRuinsofRhiaDragonCommunionPriestessDragonboltofFlorissax = 400702, - [Annotation(Name = "[Fog Rift Catacombs] Electrocharge 40007090")] - FogRiftCatacombsElectrocharge = 40007090, + [Annotation(Name = "[Fog Rift Catacombs] Electrocharge 40007090")] + FogRiftCatacombsElectrocharge = 40007090, - [Annotation(Name = "[Rauh Base - Scorpion River Catacombs Entrance] Pest-Thread Spears 2044467040")] - RauhBaseScorpionRiverCatacombsEntrancePestThreadSpears = 2044467040, + [Annotation(Name = "[Rauh Base - Scorpion River Catacombs Entrance] Pest-Thread Spears 2044467040")] + RauhBaseScorpionRiverCatacombsEntrancePestThreadSpears = 2044467040, - [Annotation(Name = "[Scadu Altus - Bonny Village North Tree and Overlook] Cherishing Fingers 400666")] - ScaduAltusBonnyVillageNorthTreeandOverlookCherishingFingers = 400666, + [Annotation(Name = "[Scadu Altus - Bonny Village North Tree and Overlook] Cherishing Fingers 400666")] + ScaduAltusBonnyVillageNorthTreeandOverlookCherishingFingers = 400666, - [Annotation(Name = "[Belurat - Hornsent Grandam] Watchful Spirit 400721")] - BeluratHornsentGrandamWatchfulSpirit = 400721, + [Annotation(Name = "[Belurat - Hornsent Grandam] Watchful Spirit 400721")] + BeluratHornsentGrandamWatchfulSpirit = 400721, - [Annotation(Name = "[Scadu Altus - Moorth Ruins] Golden Arcs 2049447900")] - ScaduAltusMoorthRuinsGoldenArcs = 2049447900, + [Annotation(Name = "[Scadu Altus - Moorth Ruins] Golden Arcs 2049447900")] + ScaduAltusMoorthRuinsGoldenArcs = 2049447900, - [Annotation(Name = "[Scadu Altus - Castle Watering Hole Southeast] Giant Golden Arc 2050467910")] - ScaduAltusCastleWateringHoleSoutheastGiantGoldenArc = 2050467910, + [Annotation(Name = "[Scadu Altus - Castle Watering Hole Southeast] Giant Golden Arc 2050467910")] + ScaduAltusCastleWateringHoleSoutheastGiantGoldenArc = 2050467910, - [Annotation(Name = "[Rauh Base - Temple Town Ruins] Spiraltree Seal 580410")] - RauhBaseTempleTownRuinsSpiraltreeSeal_ = 580410, + [Annotation(Name = "[Rauh Base - Temple Town Ruins] Spiraltree Seal 580410")] + RauhBaseTempleTownRuinsSpiraltreeSeal_ = 580410, - [Annotation(Name = "[Enir-Ilim] Spira 20017230")] - EnirIlimSpira = 20017230, + [Annotation(Name = "[Enir-Ilim] Spira 20017230")] + EnirIlimSpira = 20017230, - [Annotation(Name = "[Rauh Base - Divine Beast Dancing Lion] Divine Beast Tornado 530940")] - RauhBaseDivineBeastDancingLionDivineBeastTornado = 530940, + [Annotation(Name = "[Rauh Base - Divine Beast Dancing Lion] Divine Beast Tornado 530940")] + RauhBaseDivineBeastDancingLionDivineBeastTornado = 530940, - [Annotation(Name = "[Rauh Base - Scorpion River Catacombs Entrance] Divine Bird Feathers 2044467110")] - RauhBaseScorpionRiverCatacombsEntranceDivineBirdFeathers = 2044467110, + [Annotation(Name = "[Rauh Base - Scorpion River Catacombs Entrance] Divine Bird Feathers 2044467110")] + RauhBaseScorpionRiverCatacombsEntranceDivineBirdFeathers = 2044467110, - [Annotation(Name = "[Specimen Storehouse] Fire Serpent 21017650")] - SpecimenStorehouseFireSerpent = 21017650, + [Annotation(Name = "[Specimen Storehouse] Fire Serpent 21017650")] + SpecimenStorehouseFireSerpent = 21017650, - [Annotation(Name = "[Gravesite Plain - Igon] Igon's Furled Finger 400710")] - GravesitePlainIgonIgonsFurledFinger = 400710, + [Annotation(Name = "[Gravesite Plain - Igon] Igon's Furled Finger 400710")] + GravesitePlainIgonIgonsFurledFinger = 400710, - [Annotation(Name = "[Belurat] Well Depths Key 20007510")] - BeluratWellDepthsKey = 20007510, + [Annotation(Name = "[Belurat] Well Depths Key 20007510")] + BeluratWellDepthsKey = 20007510, - [Annotation(Name = "[Lamenter's Gaol] Gaol Upper Level Key 41027000")] - LamentersGaolGaolUpperLevelKey = 41027000, + [Annotation(Name = "[Lamenter's Gaol] Gaol Upper Level Key 41027000")] + LamentersGaolGaolUpperLevelKey = 41027000, - [Annotation(Name = "[Lamenter's Gaol] Gaol Lower Level Key 41027320")] - LamentersGaolGaolLowerLevelKey = 41027320, + [Annotation(Name = "[Lamenter's Gaol] Gaol Lower Level Key 41027320")] + LamentersGaolGaolLowerLevelKey = 41027320, - [Annotation(Name = "[Gravesite Plain - Hornsent] Cross Map 400610")] - GravesitePlainHornsentCrossMap = 400610, + [Annotation(Name = "[Gravesite Plain - Hornsent] Cross Map 400610")] + GravesitePlainHornsentCrossMap = 400610, - [Annotation(Name = "[Gravesite Plain - Hornsent] New Cross Map 400611")] - GravesitePlainHornsentNewCrossMap = 400611, + [Annotation(Name = "[Gravesite Plain - Hornsent] New Cross Map 400611")] + GravesitePlainHornsentNewCrossMap = 400611, - [Annotation(Name = "[Scadu Altus - Count Ymir, High Priest] Hole-Laden Necklace, Ruins Map 400660")] - ScaduAltusCountYmirHighPriestHoleLadenNecklace = 400660, + [Annotation(Name = "[Scadu Altus - Count Ymir, High Priest] Hole-Laden Necklace, Ruins Map 400660")] + ScaduAltusCountYmirHighPriestHoleLadenNecklace = 400660, - [Annotation(Name = "[Jagged Peak - Bayle the Dread] Heart of Bayle 510630")] - JaggedPeakBayletheDreadHeartofBayle = 510630, + [Annotation(Name = "[Jagged Peak - Bayle the Dread] Heart of Bayle 510630")] + JaggedPeakBayletheDreadHeartofBayle = 510630, - [Annotation(Name = "[Belurat] Storeroom Key 20007480")] - BeluratStoreroomKey = 20007480, + [Annotation(Name = "[Belurat] Storeroom Key 20007480")] + BeluratStoreroomKey = 20007480, - [Annotation(Name = "[Specimen Storehouse] Secret Rite Scroll 21017340")] - SpecimenStorehouseSecretRiteScroll = 21017340, + [Annotation(Name = "[Specimen Storehouse] Secret Rite Scroll 21017340")] + SpecimenStorehouseSecretRiteScroll = 21017340, - [Annotation(Name = "[Specimen Storehouse - Sir Ansbach] Letter for Freyja 400620")] - SpecimenStorehouseSirAnsbachLetterforFreyja = 400620, + [Annotation(Name = "[Specimen Storehouse - Sir Ansbach] Letter for Freyja 400620")] + SpecimenStorehouseSirAnsbachLetterforFreyja = 400620, - [Annotation(Name = "[Scadu Altus - Count Ymir, High Priest] Ruins Map (3rd) 400662")] - ScaduAltusCountYmirHighPriestRuinsMap3rd = 400662, + [Annotation(Name = "[Scadu Altus - Count Ymir, High Priest] Ruins Map (3rd) 400662")] + ScaduAltusCountYmirHighPriestRuinsMap3rd = 400662, - [Annotation(Name = "[Gravesite Plain - Moore] Black Syrup 400642")] - GravesitePlainMooreBlackSyrup = 400642, + [Annotation(Name = "[Gravesite Plain - Moore] Black Syrup 400642")] + GravesitePlainMooreBlackSyrup = 400642, - [Annotation(Name = "[Specimen Storehouse - Base Serpent Messmer] Messmer's Kindling, Remembrance of the Impaler 510460")] - SpecimenStorehouseBaseSerpentMessmerMessmersKindling = 510460, + [Annotation(Name = "[Specimen Storehouse - Base Serpent Messmer] Messmer's Kindling, Remembrance of the Impaler 510460")] + SpecimenStorehouseBaseSerpentMessmerMessmersKindling = 510460, - [Annotation(Name = "[Scadu Altus - Castle Watering Hole Northwest Entrance] Furnace Keeper's Note 2049477000")] - ScaduAltusCastleWateringHoleNorthwestEntranceFurnaceKeepersNote = 2049477000, + [Annotation(Name = "[Scadu Altus - Castle Watering Hole Northwest Entrance] Furnace Keeper's Note 2049477000")] + ScaduAltusCastleWateringHoleNorthwestEntranceFurnaceKeepersNote = 2049477000, - [Annotation(Name = "[Gravesite Plain - West Castle Ensis] Castle Cross Message 2047447710")] - GravesitePlainWestCastleEnsisCastleCrossMessage = 2047447710, + [Annotation(Name = "[Gravesite Plain - West Castle Ensis] Castle Cross Message 2047447710")] + GravesitePlainWestCastleEnsisCastleCrossMessage = 2047447710, - [Annotation(Name = "[Rauh Base - Fire Spritestone Cave] Ancient Ruins Cross Message 2047477000")] - RauhBaseFireSpritestoneCaveAncientRuinsCrossMessage = 2047477000, + [Annotation(Name = "[Rauh Base - Fire Spritestone Cave] Ancient Ruins Cross Message 2047477000")] + RauhBaseFireSpritestoneCaveAncientRuinsCrossMessage = 2047477000, - [Annotation(Name = "[Scadu Altus - Highroad Cross] Monk's Missive 2048457510")] - ScaduAltusHighroadCrossMonksMissive = 2048457510, + [Annotation(Name = "[Scadu Altus - Highroad Cross] Monk's Missive 2048457510")] + ScaduAltusHighroadCrossMonksMissive = 2048457510, - [Annotation(Name = "[Specimen Storehouse] Storehouse Cross Message 21017180")] - SpecimenStorehouseStorehouseCrossMessage = 21017180, + [Annotation(Name = "[Specimen Storehouse] Storehouse Cross Message 21017180")] + SpecimenStorehouseStorehouseCrossMessage = 21017180, - [Annotation(Name = "[Midra's Manse] Torn Diary Page 28007010")] - MidrasManseTornDiaryPage = 28007010, + [Annotation(Name = "[Midra's Manse] Torn Diary Page 28007010")] + MidrasManseTornDiaryPage = 28007010, - [Annotation(Name = "[Scadu Altus - Moorth Ruins] Message from Leda 580600")] - ScaduAltusMoorthRuinsMessagefromLeda = 580600, + [Annotation(Name = "[Scadu Altus - Moorth Ruins] Message from Leda 580600")] + ScaduAltusMoorthRuinsMessagefromLeda = 580600, - [Annotation(Name = "[Belurat] Tower of Shadow Message 20007830")] - BeluratTowerofShadowMessage = 20007830, + [Annotation(Name = "[Belurat] Tower of Shadow Message 20007830")] + BeluratTowerofShadowMessage = 20007830, - [Annotation(Name = "[Gravesite Plain - Church of Benediction] \"Incursion\" Painting 580100")] - GravesitePlainChurchofBenedictionIncursionPainting = 580100, + [Annotation(Name = "[Gravesite Plain - Church of Benediction] \"Incursion\" Painting 580100")] + GravesitePlainChurchofBenedictionIncursionPainting = 580100, - [Annotation(Name = "[Gravesite Plain - North of Scorched Ruins] \"The Sacred Tower\" Painting 580110")] - GravesitePlainNorthofScorchedRuinsTheSacredTowerPainting = 580110, + [Annotation(Name = "[Gravesite Plain - North of Scorched Ruins] \"The Sacred Tower\" Painting 580110")] + GravesitePlainNorthofScorchedRuinsTheSacredTowerPainting = 580110, - [Annotation(Name = "[Shadow Keep] \"Domain of Dragons\" Painting 580120")] - ShadowKeepDomainofDragonsPainting = 580120, + [Annotation(Name = "[Shadow Keep] \"Domain of Dragons\" Painting 580120")] + ShadowKeepDomainofDragonsPainting = 580120, - [Annotation(Name = "[Gravesite Plain - Scorched Ruins] Map: Gravesite Plain 62080")] - GravesitePlainScorchedRuinsMapGravesitePlain = 62080, + [Annotation(Name = "[Gravesite Plain - Scorched Ruins] Map: Gravesite Plain 62080")] + GravesitePlainScorchedRuinsMapGravesitePlain = 62080, - [Annotation(Name = "[Scadu Altus - Highroad Cross] Map: Scadu Altus 62081")] - ScaduAltusHighroadCrossMapScaduAltus = 62081, + [Annotation(Name = "[Scadu Altus - Highroad Cross] Map: Scadu Altus 62081")] + ScaduAltusHighroadCrossMapScaduAltus = 62081, - [Annotation(Name = "[Cerulean Coast - Cerulean Coast Cross] Map: Southern Shore 62082")] - CeruleanCoastCeruleanCoastCrossMapSouthernShore = 62082, + [Annotation(Name = "[Cerulean Coast - Cerulean Coast Cross] Map: Southern Shore 62082")] + CeruleanCoastCeruleanCoastCrossMapSouthernShore = 62082, - [Annotation(Name = "[Rauh Base - Temple Town Ruins] Map: Rauh Ruins 62083")] - RauhBaseTempleTownRuinsMapRauhRuins = 62083, + [Annotation(Name = "[Rauh Base - Temple Town Ruins] Map: Rauh Ruins 62083")] + RauhBaseTempleTownRuinsMapRauhRuins = 62083, - [Annotation(Name = "[Abyssal Woods - Big Tree West of Church] Map: Abyss 62084")] - AbyssalWoodsBigTreeWestofChurchMapAbyss = 62084, + [Annotation(Name = "[Abyssal Woods - Big Tree West of Church] Map: Abyss 62084")] + AbyssalWoodsBigTreeWestofChurchMapAbyss = 62084, - [Annotation(Name = "[Gravesite Plain - Belurat Main Gate Cross] Moore's Bell Bearing 400644")] - GravesitePlainBeluratMainGateCrossMooresBellBearing = 400644, + [Annotation(Name = "[Gravesite Plain - Belurat Main Gate Cross] Moore's Bell Bearing 400644")] + GravesitePlainBeluratMainGateCrossMooresBellBearing = 400644, - [Annotation(Name = "[Gravesite Plain - Scorched Ruins] Herbalist's Bell Bearing 2047407710")] - GravesitePlainScorchedRuinsHerbalistsBellBearing = 2047407710, + [Annotation(Name = "[Gravesite Plain - Scorched Ruins] Herbalist's Bell Bearing 2047407710")] + GravesitePlainScorchedRuinsHerbalistsBellBearing = 2047407710, - [Annotation(Name = "[Gravesite Plain - Greatbridge North] Mushroom-Seller's Bell Bearing [1] 2046447710")] - GravesitePlainGreatbridgeNorthMushroomSellersBellBearing1 = 2046447710, + [Annotation(Name = "[Gravesite Plain - Greatbridge North] Mushroom-Seller's Bell Bearing [1] 2046447710")] + GravesitePlainGreatbridgeNorthMushroomSellersBellBearing1 = 2046447710, - [Annotation(Name = "[Gravesite Plain - Scorched Ruins] Mushroom-Seller's Bell Bearing [2] 2047417110")] - GravesitePlainScorchedRuinsMushroomSellersBellBearing2 = 2047417110, + [Annotation(Name = "[Gravesite Plain - Scorched Ruins] Mushroom-Seller's Bell Bearing [2] 2047417110")] + GravesitePlainScorchedRuinsMushroomSellersBellBearing2 = 2047417110, - [Annotation(Name = "[Scadu Altus - Road to Manus Metyr] Greasemonger's Bell Bearing 2051467500")] - ScaduAltusRoadtoManusMetyrGreasemongersBellBearing = 2051467500, + [Annotation(Name = "[Scadu Altus - Road to Manus Metyr] Greasemonger's Bell Bearing 2051467500")] + ScaduAltusRoadtoManusMetyrGreasemongersBellBearing = 2051467500, - [Annotation(Name = "[Scadu Altus - Main Bonny Village] Moldmonger's Bell Bearing 2050447730")] - ScaduAltusMainBonnyVillageMoldmongersBellBearing = 2050447730, + [Annotation(Name = "[Scadu Altus - Main Bonny Village] Moldmonger's Bell Bearing 2050447730")] + ScaduAltusMainBonnyVillageMoldmongersBellBearing = 2050447730, - [Annotation(Name = "[Scadu Altus - Road to Manus Metyr] Spellmachinist's Bell Bearing 2051467020")] - ScaduAltusRoadtoManusMetyrSpellmachinistsBellBearing = 2051467020, + [Annotation(Name = "[Scadu Altus - Road to Manus Metyr] Spellmachinist's Bell Bearing 2051467020")] + ScaduAltusRoadtoManusMetyrSpellmachinistsBellBearing = 2051467020, - [Annotation(Name = "[Gravesite Plain - Cliffroad Terminus] String-Seller's Bell Bearing 2045417710")] - GravesitePlainCliffroadTerminusStringSellersBellBearing = 2045417710, + [Annotation(Name = "[Gravesite Plain - Cliffroad Terminus] String-Seller's Bell Bearing 2045417710")] + GravesitePlainCliffroadTerminusStringSellersBellBearing = 2045417710, - [Annotation(Name = "[Scadu Altus - Bonny Village North] O Mother 2050457510")] - ScaduAltusBonnyVillageNorthOMother = 2050457510, + [Annotation(Name = "[Scadu Altus - Bonny Village North] O Mother 2050457510")] + ScaduAltusBonnyVillageNorthOMother = 2050457510, - [Annotation(Name = "[Scadu Altus - Kindred of Rot] Forager Brood Cookbook [6] 68510")] - ScaduAltusKindredofRotForagerBroodCookbook6 = 68510, + [Annotation(Name = "[Scadu Altus - Kindred of Rot] Forager Brood Cookbook [6] 68510")] + ScaduAltusKindredofRotForagerBroodCookbook6 = 68510, - [Annotation(Name = "[Gravesite Plain - Kindred of Rot] Forager Brood Cookbook [1] 68520")] - GravesitePlainKindredofRotForagerBroodCookbook1 = 68520, + [Annotation(Name = "[Gravesite Plain - Kindred of Rot] Forager Brood Cookbook [1] 68520")] + GravesitePlainKindredofRotForagerBroodCookbook1 = 68520, - [Annotation(Name = "[Gravesite Plain - Kindred of Rot] Forager Brood Cookbook [2] 68530")] - GravesitePlainKindredofRotForagerBroodCookbook2 = 68530, + [Annotation(Name = "[Gravesite Plain - Kindred of Rot] Forager Brood Cookbook [2] 68530")] + GravesitePlainKindredofRotForagerBroodCookbook2 = 68530, - [Annotation(Name = "[Gravesite Plain - Kindred of Rot] Forager Brood Cookbook [3] 68540")] - GravesitePlainKindredofRotForagerBroodCookbook3 = 68540, + [Annotation(Name = "[Gravesite Plain - Kindred of Rot] Forager Brood Cookbook [3] 68540")] + GravesitePlainKindredofRotForagerBroodCookbook3 = 68540, - [Annotation(Name = "[Scadu Altus - Kindred of Rot] Forager Brood Cookbook [4] 68550")] - ScaduAltusKindredofRotForagerBroodCookbook4 = 68550, + [Annotation(Name = "[Scadu Altus - Kindred of Rot] Forager Brood Cookbook [4] 68550")] + ScaduAltusKindredofRotForagerBroodCookbook4 = 68550, - [Annotation(Name = "[Scadu Altus - Kindred of Rot] Forager Brood Cookbook [5] 68560")] - ScaduAltusKindredofRotForagerBroodCookbook5 = 68560, + [Annotation(Name = "[Scadu Altus - Kindred of Rot] Forager Brood Cookbook [5] 68560")] + ScaduAltusKindredofRotForagerBroodCookbook5 = 68560, - [Annotation(Name = "[Jagged Peak - Jagged Peak Mountainside] Igon's Cookbook [2] 68570")] - JaggedPeakJaggedPeakMountainsideIgonsCookbook2 = 68570, + [Annotation(Name = "[Jagged Peak - Jagged Peak Mountainside] Igon's Cookbook [2] 68570")] + JaggedPeakJaggedPeakMountainsideIgonsCookbook2 = 68570, - [Annotation(Name = "[Scadu Altus - Road to Manus Metyr] Finger-Weaver's Cookbook [2] 68580")] - ScaduAltusRoadtoManusMetyrFingerWeaversCookbook2 = 68580, + [Annotation(Name = "[Scadu Altus - Road to Manus Metyr] Finger-Weaver's Cookbook [2] 68580")] + ScaduAltusRoadtoManusMetyrFingerWeaversCookbook2 = 68580, - [Annotation(Name = "[Gravesite Plain - Scorched Ruins] Greater Potentate's Cookbook [1] 68590")] - GravesitePlainScorchedRuinsGreaterPotentatesCookbook1 = 68590, + [Annotation(Name = "[Gravesite Plain - Scorched Ruins] Greater Potentate's Cookbook [1] 68590")] + GravesitePlainScorchedRuinsGreaterPotentatesCookbook1 = 68590, - [Annotation(Name = "[Scadu Altus - Cathedral of Manus Metyr] Greater Potentate's Cookbook [4] 68600")] - ScaduAltusCathedralofManusMetyrGreaterPotentatesCookbook4 = 68600, + [Annotation(Name = "[Scadu Altus - Cathedral of Manus Metyr] Greater Potentate's Cookbook [4] 68600")] + ScaduAltusCathedralofManusMetyrGreaterPotentatesCookbook4 = 68600, - [Annotation(Name = "[Gravesite Plain - Church of Benediction] Greater Potentate's Cookbook [5] 68610")] - GravesitePlainChurchofBenedictionGreaterPotentatesCookbook5 = 68610, + [Annotation(Name = "[Gravesite Plain - Church of Benediction] Greater Potentate's Cookbook [5] 68610")] + GravesitePlainChurchofBenedictionGreaterPotentatesCookbook5 = 68610, - [Annotation(Name = "[Gravesite Plain - North of Scorched Ruins] Greater Potentate's Cookbook [12] 68620")] - GravesitePlainNorthofScorchedRuinsGreaterPotentatesCookbook12 = 68620, + [Annotation(Name = "[Gravesite Plain - North of Scorched Ruins] Greater Potentate's Cookbook [12] 68620")] + GravesitePlainNorthofScorchedRuinsGreaterPotentatesCookbook12 = 68620, - [Annotation(Name = "[Gravesite Plain - Southeast Poison Swamp] Greater Potentate's Cookbook [7] 68630")] - GravesitePlainSoutheastPoisonSwampGreaterPotentatesCookbook7 = 68630, + [Annotation(Name = "[Gravesite Plain - Southeast Poison Swamp] Greater Potentate's Cookbook [7] 68630")] + GravesitePlainSoutheastPoisonSwampGreaterPotentatesCookbook7 = 68630, - [Annotation(Name = "[Rauh Base - Scorpion River Catacombs Entrance] Greater Potentate's Cookbook [9] 68640")] - RauhBaseScorpionRiverCatacombsEntranceGreaterPotentatesCookbook9 = 68640, + [Annotation(Name = "[Rauh Base - Scorpion River Catacombs Entrance] Greater Potentate's Cookbook [9] 68640")] + RauhBaseScorpionRiverCatacombsEntranceGreaterPotentatesCookbook9 = 68640, - [Annotation(Name = "[Gravesite Plain - Greatbridge North] Greater Potentate's Cookbook [10] 68650")] - GravesitePlainGreatbridgeNorthGreaterPotentatesCookbook10 = 68650, + [Annotation(Name = "[Gravesite Plain - Greatbridge North] Greater Potentate's Cookbook [10] 68650")] + GravesitePlainGreatbridgeNorthGreaterPotentatesCookbook10 = 68650, - [Annotation(Name = "[Belurat Gaol] Greater Potentate's Cookbook [11] 68660")] - BeluratGaolGreaterPotentatesCookbook11 = 68660, + [Annotation(Name = "[Belurat Gaol] Greater Potentate's Cookbook [11] 68660")] + BeluratGaolGreaterPotentatesCookbook11 = 68660, - [Annotation(Name = "[Finger Ruins of Rhia - Far Northwest] Mad Craftsman's Cookbook [2] 68670")] - FingerRuinsofRhiaFarNorthwestMadCraftsmansCookbook2 = 68670, + [Annotation(Name = "[Finger Ruins of Rhia - Far Northwest] Mad Craftsman's Cookbook [2] 68670")] + FingerRuinsofRhiaFarNorthwestMadCraftsmansCookbook2 = 68670, - [Annotation(Name = "[Rauh Base - West Scorpion River] Greater Potentate's Cookbook [8] 68680")] - RauhBaseWestScorpionRiverGreaterPotentatesCookbook8 = 68680, + [Annotation(Name = "[Rauh Base - West Scorpion River] Greater Potentate's Cookbook [8] 68680")] + RauhBaseWestScorpionRiverGreaterPotentatesCookbook8 = 68680, - [Annotation(Name = "[Gravesite Plain - North Fog Rift Fort] Greater Potentate's Cookbook [3] 68690")] - GravesitePlainNorthFogRiftFortGreaterPotentatesCookbook3 = 68690, + [Annotation(Name = "[Gravesite Plain - North Fog Rift Fort] Greater Potentate's Cookbook [3] 68690")] + GravesitePlainNorthFogRiftFortGreaterPotentatesCookbook3 = 68690, - [Annotation(Name = "[Ruined Forge Lava Intake] Greater Potentate's Cookbook [13] 68700")] - RuinedForgeLavaIntakeGreaterPotentatesCookbook13 = 68700, + [Annotation(Name = "[Ruined Forge Lava Intake] Greater Potentate's Cookbook [13] 68700")] + RuinedForgeLavaIntakeGreaterPotentatesCookbook13 = 68700, - [Annotation(Name = "[Cerulean Coast - Ravine South] Greater Potentate's Cookbook [14] 68710")] - CeruleanCoastRavineSouthGreaterPotentatesCookbook14 = 68710, + [Annotation(Name = "[Cerulean Coast - Ravine South] Greater Potentate's Cookbook [14] 68710")] + CeruleanCoastRavineSouthGreaterPotentatesCookbook14 = 68710, - [Annotation(Name = "[Finger Ruins of Rhia - Far Northeast] Greater Potentate's Cookbook [6] 68720")] - FingerRuinsofRhiaFarNortheastGreaterPotentatesCookbook6 = 68720, + [Annotation(Name = "[Finger Ruins of Rhia - Far Northeast] Greater Potentate's Cookbook [6] 68720")] + FingerRuinsofRhiaFarNortheastGreaterPotentatesCookbook6 = 68720, - [Annotation(Name = "[Gravesite Plain - Ellac Greatbridge] Greater Potentate's Cookbook [2] 68730")] - GravesitePlainEllacGreatbridgeGreaterPotentatesCookbook2 = 68730, + [Annotation(Name = "[Gravesite Plain - Ellac Greatbridge] Greater Potentate's Cookbook [2] 68730")] + GravesitePlainEllacGreatbridgeGreaterPotentatesCookbook2 = 68730, - [Annotation(Name = "[Fog Rift Catacombs] Ancient Dragon Knight's Cookbook [1] 68740")] - FogRiftCatacombsAncientDragonKnightsCookbook1 = 68740, + [Annotation(Name = "[Fog Rift Catacombs] Ancient Dragon Knight's Cookbook [1] 68740")] + FogRiftCatacombsAncientDragonKnightsCookbook1 = 68740, - [Annotation(Name = "[Gravesite Plain - Pillar Path Waypoint] Mad Craftsman's Cookbook [1] 68750")] - GravesitePlainPillarPathWaypointMadCraftsmansCookbook1 = 68750, + [Annotation(Name = "[Gravesite Plain - Pillar Path Waypoint] Mad Craftsman's Cookbook [1] 68750")] + GravesitePlainPillarPathWaypointMadCraftsmansCookbook1 = 68750, - [Annotation(Name = "[Cerulean Coast - Cerulean Coast Cross] St. Trina Disciple's Cookbook [1] 68760")] - CeruleanCoastCeruleanCoastCrossStTrinaDisciplesCookbook1 = 68760, + [Annotation(Name = "[Cerulean Coast - Cerulean Coast Cross] St. Trina Disciple's Cookbook [1] 68760")] + CeruleanCoastCeruleanCoastCrossStTrinaDisciplesCookbook1 = 68760, - [Annotation(Name = "[Scadu Altus - Moorth Ruins] Fire Knight's Cookbook [1] 68770")] - ScaduAltusMoorthRuinsFireKnightsCookbook1 = 68770, + [Annotation(Name = "[Scadu Altus - Moorth Ruins] Fire Knight's Cookbook [1] 68770")] + ScaduAltusMoorthRuinsFireKnightsCookbook1 = 68770, - [Annotation(Name = "[Scorpion River Catacombs] Ancient Dragon Knight's Cookbook [2] 68780")] - ScorpionRiverCatacombsAncientDragonKnightsCookbook2 = 68780, + [Annotation(Name = "[Scorpion River Catacombs] Ancient Dragon Knight's Cookbook [2] 68780")] + ScorpionRiverCatacombsAncientDragonKnightsCookbook2 = 68780, - [Annotation(Name = "[Gravesite Plain - West Castle Ensis] Loyal Knight's Cookbook 68790")] - GravesitePlainWestCastleEnsisLoyalKnightsCookbook = 68790, + [Annotation(Name = "[Gravesite Plain - West Castle Ensis] Loyal Knight's Cookbook 68790")] + GravesitePlainWestCastleEnsisLoyalKnightsCookbook = 68790, - [Annotation(Name = "[Shadow Keep] Battlefield Priest's Cookbook [1] 68800")] - ShadowKeepBattlefieldPriestsCookbook1 = 68800, + [Annotation(Name = "[Shadow Keep] Battlefield Priest's Cookbook [1] 68800")] + ShadowKeepBattlefieldPriestsCookbook1 = 68800, - [Annotation(Name = "[Finger Ruins of Rhia - Climb to Finger-Weaver's Hovel] Igon's Cookbook [1] 68810")] - FingerRuinsofRhiaClimbtoFingerWeaversHovelIgonsCookbook1 = 68810, + [Annotation(Name = "[Finger Ruins of Rhia - Climb to Finger-Weaver's Hovel] Igon's Cookbook [1] 68810")] + FingerRuinsofRhiaClimbtoFingerWeaversHovelIgonsCookbook1 = 68810, - [Annotation(Name = "[Gravesite Plain - Southeast Poison Swamp] Battlefield Priest's Cookbook [2] 68820")] - GravesitePlainSoutheastPoisonSwampBattlefieldPriestsCookbook2 = 68820, + [Annotation(Name = "[Gravesite Plain - Southeast Poison Swamp] Battlefield Priest's Cookbook [2] 68820")] + GravesitePlainSoutheastPoisonSwampBattlefieldPriestsCookbook2 = 68820, - [Annotation(Name = "[Gravesite Plain - Moore] Forager Brood Cookbook [7] 68830")] - GravesitePlainMooreForagerBroodCookbook7 = 68830, + [Annotation(Name = "[Gravesite Plain - Moore] Forager Brood Cookbook [7] 68830")] + GravesitePlainMooreForagerBroodCookbook7 = 68830, - [Annotation(Name = "[Stone Coffin Fissure] St. Trina Disciple's Cookbook [3] 68840")] - StoneCoffinFissureStTrinaDisciplesCookbook3 = 68840, + [Annotation(Name = "[Stone Coffin Fissure] St. Trina Disciple's Cookbook [3] 68840")] + StoneCoffinFissureStTrinaDisciplesCookbook3 = 68840, - [Annotation(Name = "[Cerulean Coast - Fingercreeper Beach Center] Grave Keeper's Cookbook [2] 68850")] - CeruleanCoastFingercreeperBeachCenterGraveKeepersCookbook2 = 68850, + [Annotation(Name = "[Cerulean Coast - Fingercreeper Beach Center] Grave Keeper's Cookbook [2] 68850")] + CeruleanCoastFingercreeperBeachCenterGraveKeepersCookbook2 = 68850, - [Annotation(Name = "[Ancient Ruins of Rauh - East Ruins North Pit and Tunnels] Antiquity Scholar's Cookbook [2] 68860")] - AncientRuinsofRauhEastRuinsNorthPitandTunnelsAntiquityScholarsCookbook2 = 68860, + [Annotation(Name = "[Ancient Ruins of Rauh - East Ruins North Pit and Tunnels] Antiquity Scholar's Cookbook [2] 68860")] + AncientRuinsofRauhEastRuinsNorthPitandTunnelsAntiquityScholarsCookbook2 = 68860, - [Annotation(Name = "[Cerulean Coast - Tibia Mariner] Tibia's Cookbook 68870")] - CeruleanCoastTibiaMarinerTibiasCookbook = 68870, + [Annotation(Name = "[Cerulean Coast - Tibia Mariner] Tibia's Cookbook 68870")] + CeruleanCoastTibiaMarinerTibiasCookbook = 68870, - [Annotation(Name = "[Midra's Manse] Mad Craftsman's Cookbook [3] 68880")] - MidrasManseMadCraftsmansCookbook3 = 68880, + [Annotation(Name = "[Midra's Manse] Mad Craftsman's Cookbook [3] 68880")] + MidrasManseMadCraftsmansCookbook3 = 68880, - [Annotation(Name = "[Scadu Altus - Furnace Golem Area] Battlefield Priest's Cookbook [3] 68890")] - ScaduAltusFurnaceGolemAreaBattlefieldPriestsCookbook3 = 68890, + [Annotation(Name = "[Scadu Altus - Furnace Golem Area] Battlefield Priest's Cookbook [3] 68890")] + ScaduAltusFurnaceGolemAreaBattlefieldPriestsCookbook3 = 68890, - [Annotation(Name = "[Gravesite Plain - West Castle Ensis] Fire Knight's Cookbook [2] 68900")] - GravesitePlainWestCastleEnsisFireKnightsCookbook2 = 68900, + [Annotation(Name = "[Gravesite Plain - West Castle Ensis] Fire Knight's Cookbook [2] 68900")] + GravesitePlainWestCastleEnsisFireKnightsCookbook2 = 68900, - [Annotation(Name = "[Rauh Base - Shadow Commoner] Antiquity Scholar's Cookbook [1] 68910")] - RauhBaseShadowCommonerAntiquityScholarsCookbook1 = 68910, + [Annotation(Name = "[Rauh Base - Shadow Commoner] Antiquity Scholar's Cookbook [1] 68910")] + RauhBaseShadowCommonerAntiquityScholarsCookbook1 = 68910, - [Annotation(Name = "[Cerulean Coast - Fingercreeper Beach Center] Finger-Weaver's Cookbook [1] 68920")] - CeruleanCoastFingercreeperBeachCenterFingerWeaversCookbook1 = 68920, + [Annotation(Name = "[Cerulean Coast - Fingercreeper Beach Center] Finger-Weaver's Cookbook [1] 68920")] + CeruleanCoastFingercreeperBeachCenterFingerWeaversCookbook1 = 68920, - [Annotation(Name = "[Shadow Keep - West Rampart] Battlefield Priest's Cookbook [4] 68930")] - ShadowKeepWestRampartBattlefieldPriestsCookbook4 = 68930, + [Annotation(Name = "[Shadow Keep - West Rampart] Battlefield Priest's Cookbook [4] 68930")] + ShadowKeepWestRampartBattlefieldPriestsCookbook4 = 68930, - [Annotation(Name = "[Cerulean Coast - Southern Nameless Mausoleum] Grave Keeper's Cookbook [1] 68940")] - CeruleanCoastSouthernNamelessMausoleumGraveKeepersCookbook1 = 68940, + [Annotation(Name = "[Cerulean Coast - Southern Nameless Mausoleum] Grave Keeper's Cookbook [1] 68940")] + CeruleanCoastSouthernNamelessMausoleumGraveKeepersCookbook1 = 68940, - [Annotation(Name = "[Cerulean Coast - The Fissure South] St. Trina Disciple's Cookbook [2] 68950")] - CeruleanCoastTheFissureSouthStTrinaDisciplesCookbook2 = 68950, + [Annotation(Name = "[Cerulean Coast - The Fissure South] St. Trina Disciple's Cookbook [2] 68950")] + CeruleanCoastTheFissureSouthStTrinaDisciplesCookbook2 = 68950, - [Annotation(Name = "[Shadow Keep - West Rampart] Hefty Cracked Pot 66980")] - ShadowKeepWestRampartHeftyCrackedPot = 66980, + [Annotation(Name = "[Shadow Keep - West Rampart] Hefty Cracked Pot 66980")] + ShadowKeepWestRampartHeftyCrackedPot = 66980, - [Annotation(Name = "[Belurat Gaol] Hefty Cracked Pot 66900")] - BeluratGaolHeftyCrackedPot = 66900, + [Annotation(Name = "[Belurat Gaol] Hefty Cracked Pot 66900")] + BeluratGaolHeftyCrackedPot = 66900, - [Annotation(Name = "[Belurat Gaol] Hefty Cracked Pot 66910")] - BeluratGaolHeftyCrackedPot_ = 66910, + [Annotation(Name = "[Belurat Gaol] Hefty Cracked Pot 66910")] + BeluratGaolHeftyCrackedPot_ = 66910, - [Annotation(Name = "[Belurat Gaol] Hefty Cracked Pot 66920")] - BeluratGaolHeftyCrackedPot__ = 66920, + [Annotation(Name = "[Belurat Gaol] Hefty Cracked Pot 66920")] + BeluratGaolHeftyCrackedPot__ = 66920, - [Annotation(Name = "[Bonny Gaol] Hefty Cracked Pot 66930")] - BonnyGaolHeftyCrackedPot = 66930, + [Annotation(Name = "[Bonny Gaol] Hefty Cracked Pot 66930")] + BonnyGaolHeftyCrackedPot = 66930, - [Annotation(Name = "[Lamenter's Gaol] Hefty Cracked Pot 66940")] - LamentersGaolHeftyCrackedPot = 66940, + [Annotation(Name = "[Lamenter's Gaol] Hefty Cracked Pot 66940")] + LamentersGaolHeftyCrackedPot = 66940, - [Annotation(Name = "[Cerulean Coast - Troll] Hefty Cracked Pot 66990")] - CeruleanCoastTrollHeftyCrackedPot = 66990, + [Annotation(Name = "[Cerulean Coast - Troll] Hefty Cracked Pot 66990")] + CeruleanCoastTrollHeftyCrackedPot = 66990, - [Annotation(Name = "[Gravesite Plain - Scorched Ruins] Hefty Cracked Pot 66950")] - GravesitePlainScorchedRuinsHeftyCrackedPot = 66950, + [Annotation(Name = "[Gravesite Plain - Scorched Ruins] Hefty Cracked Pot 66950")] + GravesitePlainScorchedRuinsHeftyCrackedPot = 66950, - [Annotation(Name = "[Scadu Altus - Main Bonny Village] Hefty Cracked Pot 66970")] - ScaduAltusMainBonnyVillageHeftyCrackedPot = 66970, + [Annotation(Name = "[Scadu Altus - Main Bonny Village] Hefty Cracked Pot 66970")] + ScaduAltusMainBonnyVillageHeftyCrackedPot = 66970, - [Annotation(Name = "[Scadu Altus - Main Bonny Village] Hefty Cracked Pot 66960")] - ScaduAltusMainBonnyVillageHeftyCrackedPot_ = 66960, + [Annotation(Name = "[Scadu Altus - Main Bonny Village] Hefty Cracked Pot 66960")] + ScaduAltusMainBonnyVillageHeftyCrackedPot_ = 66960, - [Annotation(Name = "[Belurat] Scadutree Fragment 20007620")] - BeluratScadutreeFragment = 20007620, + [Annotation(Name = "[Belurat] Scadutree Fragment 20007620")] + BeluratScadutreeFragment = 20007620, - [Annotation(Name = "[Belurat] Scadutree Fragment 20007820")] - BeluratScadutreeFragment_ = 20007820, + [Annotation(Name = "[Belurat] Scadutree Fragment 20007820")] + BeluratScadutreeFragment_ = 20007820, - [Annotation(Name = "[Enir-Ilim] Scadutree Fragment 20017350")] - EnirIlimScadutreeFragment = 20017350, + [Annotation(Name = "[Enir-Ilim] Scadutree Fragment 20017350")] + EnirIlimScadutreeFragment = 20017350, - [Annotation(Name = "[Enir-Ilim] Scadutree Fragment 20017470")] - EnirIlimScadutreeFragment_ = 20017470, + [Annotation(Name = "[Enir-Ilim] Scadutree Fragment 20017470")] + EnirIlimScadutreeFragment_ = 20017470, - [Annotation(Name = "[Enir-Ilim] Scadutree Fragment 20017550")] - EnirIlimScadutreeFragment__ = 20017550, + [Annotation(Name = "[Enir-Ilim] Scadutree Fragment 20017550")] + EnirIlimScadutreeFragment__ = 20017550, - [Annotation(Name = "[Shadow Keep] Scadutree Fragment 21007400")] - ShadowKeepScadutreeFragment = 21007400, + [Annotation(Name = "[Shadow Keep] Scadutree Fragment 21007400")] + ShadowKeepScadutreeFragment = 21007400, - [Annotation(Name = "[Specimen Storehouse] Scadutree Fragment 21017200")] - SpecimenStorehouseScadutreeFragment = 21017200, + [Annotation(Name = "[Specimen Storehouse] Scadutree Fragment 21017200")] + SpecimenStorehouseScadutreeFragment = 21017200, - [Annotation(Name = "[Specimen Storehouse] Scadutree Fragment 21017500")] - SpecimenStorehouseScadutreeFragment_ = 21017500, + [Annotation(Name = "[Specimen Storehouse] Scadutree Fragment 21017500")] + SpecimenStorehouseScadutreeFragment_ = 21017500, - [Annotation(Name = "[Stone Coffin Fissure] Scadutree Fragment 22007000")] - StoneCoffinFissureScadutreeFragment = 22007000, + [Annotation(Name = "[Stone Coffin Fissure] Scadutree Fragment 22007000")] + StoneCoffinFissureScadutreeFragment = 22007000, - [Annotation(Name = "[Ancient Ruins of Rauh - South Church of the Bud] Scadutree Fragment 2044457000")] - AncientRuinsofRauhSouthChurchoftheBudScadutreeFragment = 2044457000, + [Annotation(Name = "[Ancient Ruins of Rauh - South Church of the Bud] Scadutree Fragment 2044457000")] + AncientRuinsofRauhSouthChurchoftheBudScadutreeFragment = 2044457000, - [Annotation(Name = "[Gravesite Plain - Belurat Main Gate Cross] Scadutree Fragment 2045427700")] - GravesitePlainBeluratMainGateCrossScadutreeFragment = 2045427700, + [Annotation(Name = "[Gravesite Plain - Belurat Main Gate Cross] Scadutree Fragment 2045427700")] + GravesitePlainBeluratMainGateCrossScadutreeFragment = 2045427700, - [Annotation(Name = "[Gravesite Plain - Three-Path Cross] Scadutree Fragment 2046427700")] - GravesitePlainThreePathCrossScadutreeFragment = 2046427700, + [Annotation(Name = "[Gravesite Plain - Three-Path Cross] Scadutree Fragment 2046427700")] + GravesitePlainThreePathCrossScadutreeFragment = 2046427700, - [Annotation(Name = "[Rauh Base - Temple Town Ruins] Scadutree Fragment 2046457040")] - RauhBaseTempleTownRuinsScadutreeFragment = 2046457040, + [Annotation(Name = "[Rauh Base - Temple Town Ruins] Scadutree Fragment 2046457040")] + RauhBaseTempleTownRuinsScadutreeFragment = 2046457040, - [Annotation(Name = "[Rauh Base - Hippopotamus] Scadutree Fragment 2046467000")] - RauhBaseHippopotamusScadutreeFragment = 2046467000, + [Annotation(Name = "[Rauh Base - Hippopotamus] Scadutree Fragment 2046467000")] + RauhBaseHippopotamusScadutreeFragment = 2046467000, - [Annotation(Name = "[Rauh Base - Fire Spritestone Cave] Scadutree Fragment 2046477750")] - RauhBaseFireSpritestoneCaveScadutreeFragment = 2046477750, + [Annotation(Name = "[Rauh Base - Fire Spritestone Cave] Scadutree Fragment 2046477750")] + RauhBaseFireSpritestoneCaveScadutreeFragment = 2046477750, - [Annotation(Name = "[Cerulean Coast - Hippopotamus] Scadutree Fragment 2047397070")] - CeruleanCoastHippopotamusScadutreeFragment = 2047397070, + [Annotation(Name = "[Cerulean Coast - Hippopotamus] Scadutree Fragment 2047397070")] + CeruleanCoastHippopotamusScadutreeFragment = 2047397070, - [Annotation(Name = "[Gravesite Plain - South of Scorched Ruins] Scadutree Fragment 2047407100")] - GravesitePlainSouthofScorchedRuinsScadutreeFragment = 2047407100, + [Annotation(Name = "[Gravesite Plain - South of Scorched Ruins] Scadutree Fragment 2047407100")] + GravesitePlainSouthofScorchedRuinsScadutreeFragment = 2047407100, - [Annotation(Name = "[Gravesite Plain - West Castle Ensis] Scadutree Fragment 2047447720")] - GravesitePlainWestCastleEnsisScadutreeFragment = 2047447720, + [Annotation(Name = "[Gravesite Plain - West Castle Ensis] Scadutree Fragment 2047447720")] + GravesitePlainWestCastleEnsisScadutreeFragment = 2047447720, - [Annotation(Name = "[Gravesite Plain - West Castle Ensis] Scadutree Fragment 2047447750")] - GravesitePlainWestCastleEnsisScadutreeFragment_ = 2047447750, + [Annotation(Name = "[Gravesite Plain - West Castle Ensis] Scadutree Fragment 2047447750")] + GravesitePlainWestCastleEnsisScadutreeFragment_ = 2047447750, - [Annotation(Name = "[Scadu Altus - Church of the Crusade] Scadutree Fragment 2x 2047467500")] - ScaduAltusChurchoftheCrusadeScadutreeFragment2x = 2047467500, + [Annotation(Name = "[Scadu Altus - Church of the Crusade] Scadutree Fragment 2x 2047467500")] + ScaduAltusChurchoftheCrusadeScadutreeFragment2x = 2047467500, - [Annotation(Name = "[Cerulean Coast - Cerulean Coast Cross] Scadutree Fragment 2048377050")] - CeruleanCoastCeruleanCoastCrossScadutreeFragment = 2048377050, + [Annotation(Name = "[Cerulean Coast - Cerulean Coast Cross] Scadutree Fragment 2048377050")] + CeruleanCoastCeruleanCoastCrossScadutreeFragment = 2048377050, - [Annotation(Name = "[Gravesite Plain - Church of Consolation] Scadutree Fragment 2x 2048417700")] - GravesitePlainChurchofConsolationScadutreeFragment2x = 2048417700, + [Annotation(Name = "[Gravesite Plain - Church of Consolation] Scadutree Fragment 2x 2048417700")] + GravesitePlainChurchofConsolationScadutreeFragment2x = 2048417700, - [Annotation(Name = "[Gravesite Plain - Pillar Path Cross] Scadutree Fragment 2048437700")] - GravesitePlainPillarPathCrossScadutreeFragment = 2048437700, + [Annotation(Name = "[Gravesite Plain - Pillar Path Cross] Scadutree Fragment 2048437700")] + GravesitePlainPillarPathCrossScadutreeFragment = 2048437700, - [Annotation(Name = "[Gravesite Plain - East Castle Ensis] Scadutree Fragment 2048447500")] - GravesitePlainEastCastleEnsisScadutreeFragment = 2048447500, + [Annotation(Name = "[Gravesite Plain - East Castle Ensis] Scadutree Fragment 2048447500")] + GravesitePlainEastCastleEnsisScadutreeFragment = 2048447500, - [Annotation(Name = "[Scadu Altus - Highroad Cross] Scadutree Fragment 2048457520")] - ScaduAltusHighroadCrossScadutreeFragment = 2048457520, + [Annotation(Name = "[Scadu Altus - Highroad Cross] Scadutree Fragment 2048457520")] + ScaduAltusHighroadCrossScadutreeFragment = 2048457520, - [Annotation(Name = "[Scadu Altus - Furnace Golem Area] Scadutree Fragment 2048467510")] - ScaduAltusFurnaceGolemAreaScadutreeFragment = 2048467510, + [Annotation(Name = "[Scadu Altus - Furnace Golem Area] Scadutree Fragment 2048467510")] + ScaduAltusFurnaceGolemAreaScadutreeFragment = 2048467510, - [Annotation(Name = "[Scadu Altus - Moorth Ruins] Scadutree Fragment 2049447530")] - ScaduAltusMoorthRuinsScadutreeFragment = 2049447530, + [Annotation(Name = "[Scadu Altus - Moorth Ruins] Scadutree Fragment 2049447530")] + ScaduAltusMoorthRuinsScadutreeFragment = 2049447530, - [Annotation(Name = "[Scadu Altus - Moorth Highway Camp] Scadutree Fragment 2049457510")] - ScaduAltusMoorthHighwayCampScadutreeFragment = 2049457510, + [Annotation(Name = "[Scadu Altus - Moorth Highway Camp] Scadutree Fragment 2049457510")] + ScaduAltusMoorthHighwayCampScadutreeFragment = 2049457510, - [Annotation(Name = "[Scaduview - Specimen Storehouse Exit] Scadutree Fragment 2049487000")] - ScaduviewSpecimenStorehouseExitScadutreeFragment = 2049487000, + [Annotation(Name = "[Scaduview - Specimen Storehouse Exit] Scadutree Fragment 2049487000")] + ScaduviewSpecimenStorehouseExitScadutreeFragment = 2049487000, - [Annotation(Name = "[Scaduview - Scadutree Chalice] Scadutree Fragment 2049497500")] - ScaduviewScadutreeChaliceScadutreeFragment = 2049497500, + [Annotation(Name = "[Scaduview - Scadutree Chalice] Scadutree Fragment 2049497500")] + ScaduviewScadutreeChaliceScadutreeFragment = 2049497500, - [Annotation(Name = "[Scaduview - Scadutree Chalice] Scadutree Fragment 2049497520")] - ScaduviewScadutreeChaliceScadutreeFragment_ = 2049497520, + [Annotation(Name = "[Scaduview - Scadutree Chalice] Scadutree Fragment 2049497520")] + ScaduviewScadutreeChaliceScadutreeFragment_ = 2049497520, - [Annotation(Name = "[Scaduview - Scadutree Chalice] Scadutree Fragment 2049497530")] - ScaduviewScadutreeChaliceScadutreeFragment__ = 2049497530, + [Annotation(Name = "[Scaduview - Scadutree Chalice] Scadutree Fragment 2049497530")] + ScaduviewScadutreeChaliceScadutreeFragment__ = 2049497530, - [Annotation(Name = "[Scaduview - Scadutree Chalice] Scadutree Fragment 2049497540")] - ScaduviewScadutreeChaliceScadutreeFragment___ = 2049497540, + [Annotation(Name = "[Scaduview - Scadutree Chalice] Scadutree Fragment 2049497540")] + ScaduviewScadutreeChaliceScadutreeFragment___ = 2049497540, - [Annotation(Name = "[Scaduview - Scadutree Chalice] Scadutree Fragment 2049497550")] - ScaduviewScadutreeChaliceScadutreeFragment____ = 2049497550, + [Annotation(Name = "[Scaduview - Scadutree Chalice] Scadutree Fragment 2049497550")] + ScaduviewScadutreeChaliceScadutreeFragment____ = 2049497550, - [Annotation(Name = "[Scadu Altus - Scaduview Cross] Scadutree Fragment 2050437010")] - ScaduAltusScaduviewCrossScadutreeFragment = 2050437010, + [Annotation(Name = "[Scadu Altus - Scaduview Cross] Scadutree Fragment 2050437010")] + ScaduAltusScaduviewCrossScadutreeFragment = 2050437010, - [Annotation(Name = "[Scadu Altus - Scaduview Cross] Scadutree Fragment 2050437500")] - ScaduAltusScaduviewCrossScadutreeFragment_ = 2050437500, + [Annotation(Name = "[Scadu Altus - Scaduview Cross] Scadutree Fragment 2050437500")] + ScaduAltusScaduviewCrossScadutreeFragment_ = 2050437500, - [Annotation(Name = "[Scadu Altus - Bonny Village North Tree and Overlook] Scadutree Fragment 2050457730")] - ScaduAltusBonnyVillageNorthTreeandOverlookScadutreeFragment = 2050457730, + [Annotation(Name = "[Scadu Altus - Bonny Village North Tree and Overlook] Scadutree Fragment 2050457730")] + ScaduAltusBonnyVillageNorthTreeandOverlookScadutreeFragment = 2050457730, - [Annotation(Name = "[Scadu Altus - Hippopotamus] Scadutree Fragment 2051447500")] - ScaduAltusHippopotamusScadutreeFragment = 2051447500, + [Annotation(Name = "[Scadu Altus - Hippopotamus] Scadutree Fragment 2051447500")] + ScaduAltusHippopotamusScadutreeFragment = 2051447500, - [Annotation(Name = "[Scadu Altus - Hippopotamus] Scadutree Fragment 2051447510")] - ScaduAltusHippopotamusScadutreeFragment_ = 2051447510, + [Annotation(Name = "[Scadu Altus - Hippopotamus] Scadutree Fragment 2051447510")] + ScaduAltusHippopotamusScadutreeFragment_ = 2051447510, - [Annotation(Name = "[Jagged Peak - Between Jagged Peak Mountainside and Summit] Scadutree Fragment 2053397020")] - JaggedPeakBetweenJaggedPeakMountainsideandSummitScadutreeFragment = 2053397020, + [Annotation(Name = "[Jagged Peak - Between Jagged Peak Mountainside and Summit] Scadutree Fragment 2053397020")] + JaggedPeakBetweenJaggedPeakMountainsideandSummitScadutreeFragment = 2053397020, - [Annotation(Name = "[Abyssal Woods - Abandoned Church] Scadutree Fragment 2x 2053417500")] - AbyssalWoodsAbandonedChurchScadutreeFragment2x = 2053417500, + [Annotation(Name = "[Abyssal Woods - Abandoned Church] Scadutree Fragment 2x 2053417500")] + AbyssalWoodsAbandonedChurchScadutreeFragment2x = 2053417500, - [Annotation(Name = "[Gravesite Plain - Shadow Commoner] Scadutree Fragment 2049440990")] - GravesitePlainShadowCommonerScadutreeFragment = 2049440990, + [Annotation(Name = "[Gravesite Plain - Shadow Commoner] Scadutree Fragment 2049440990")] + GravesitePlainShadowCommonerScadutreeFragment = 2049440990, - [Annotation(Name = "[Gravesite Plain - Shadow Commoner] Scadutree Fragment 2044417995")] - GravesitePlainShadowCommonerScadutreeFragment_ = 2044417995, + [Annotation(Name = "[Gravesite Plain - Shadow Commoner] Scadutree Fragment 2044417995")] + GravesitePlainShadowCommonerScadutreeFragment_ = 2044417995, - [Annotation(Name = "[Scadu Altus - Shadow Commoner] Scadutree Fragment 2046477960")] - ScaduAltusShadowCommonerScadutreeFragment = 2046477960, + [Annotation(Name = "[Scadu Altus - Shadow Commoner] Scadutree Fragment 2046477960")] + ScaduAltusShadowCommonerScadutreeFragment = 2046477960, - [Annotation(Name = "[Ancient Ruins of Rauh - Shadow Commoner] Scadutree Fragment 2047417995")] - AncientRuinsofRauhShadowCommonerScadutreeFragment = 2047417995, + [Annotation(Name = "[Ancient Ruins of Rauh - Shadow Commoner] Scadutree Fragment 2047417995")] + AncientRuinsofRauhShadowCommonerScadutreeFragment = 2047417995, - [Annotation(Name = "[Belurat] Revered Spirit Ash 2x 20007170")] - BeluratReveredSpiritAsh2x = 20007170, + [Annotation(Name = "[Belurat] Revered Spirit Ash 2x 20007170")] + BeluratReveredSpiritAsh2x = 20007170, - [Annotation(Name = "[Belurat] Revered Spirit Ash 20007700")] - BeluratReveredSpiritAsh = 20007700, + [Annotation(Name = "[Belurat] Revered Spirit Ash 20007700")] + BeluratReveredSpiritAsh = 20007700, - [Annotation(Name = "[Belurat] Revered Spirit Ash 20007800")] - BeluratReveredSpiritAsh_ = 20007800, + [Annotation(Name = "[Belurat] Revered Spirit Ash 20007800")] + BeluratReveredSpiritAsh_ = 20007800, - [Annotation(Name = "[Enir-Ilim] Revered Spirit Ash 2x 20017200")] - EnirIlimReveredSpiritAsh2x = 20017200, + [Annotation(Name = "[Enir-Ilim] Revered Spirit Ash 2x 20017200")] + EnirIlimReveredSpiritAsh2x = 20017200, - [Annotation(Name = "[Enir-Ilim] Revered Spirit Ash 20017400")] - EnirIlimReveredSpiritAsh = 20017400, + [Annotation(Name = "[Enir-Ilim] Revered Spirit Ash 20017400")] + EnirIlimReveredSpiritAsh = 20017400, - [Annotation(Name = "[Specimen Storehouse] Revered Spirit Ash 21017020")] - SpecimenStorehouseReveredSpiritAsh = 21017020, + [Annotation(Name = "[Specimen Storehouse] Revered Spirit Ash 21017020")] + SpecimenStorehouseReveredSpiritAsh = 21017020, - [Annotation(Name = "[Specimen Storehouse] Revered Spirit Ash 21017460")] - SpecimenStorehouseReveredSpiritAsh_ = 21017460, + [Annotation(Name = "[Specimen Storehouse] Revered Spirit Ash 21017460")] + SpecimenStorehouseReveredSpiritAsh_ = 21017460, - [Annotation(Name = "[Midra's Manse] Revered Spirit Ash 28007110")] - MidrasManseReveredSpiritAsh = 28007110, + [Annotation(Name = "[Midra's Manse] Revered Spirit Ash 28007110")] + MidrasManseReveredSpiritAsh = 28007110, - [Annotation(Name = "[Rauh Base - Scorpion River Catacombs Entrance] Revered Spirit Ash 2044467000")] - RauhBaseScorpionRiverCatacombsEntranceReveredSpiritAsh = 2044467000, + [Annotation(Name = "[Rauh Base - Scorpion River Catacombs Entrance] Revered Spirit Ash 2044467000")] + RauhBaseScorpionRiverCatacombsEntranceReveredSpiritAsh = 2044467000, - [Annotation(Name = "[Gravesite Plain - Cliffroad Terminus] Revered Spirit Ash 2045417700")] - GravesitePlainCliffroadTerminusReveredSpiritAsh = 2045417700, + [Annotation(Name = "[Gravesite Plain - Cliffroad Terminus] Revered Spirit Ash 2045417700")] + GravesitePlainCliffroadTerminusReveredSpiritAsh = 2045417700, - [Annotation(Name = "[Gravesite Plain - Greatbridge North] Revered Spirit Ash 2046447700")] - GravesitePlainGreatbridgeNorthReveredSpiritAsh = 2046447700, + [Annotation(Name = "[Gravesite Plain - Greatbridge North] Revered Spirit Ash 2046447700")] + GravesitePlainGreatbridgeNorthReveredSpiritAsh = 2046447700, - [Annotation(Name = "[Rauh Base - Temple Town Ruins] Revered Spirit Ash 2046457720")] - RauhBaseTempleTownRuinsReveredSpiritAsh = 2046457720, + [Annotation(Name = "[Rauh Base - Temple Town Ruins] Revered Spirit Ash 2046457720")] + RauhBaseTempleTownRuinsReveredSpiritAsh = 2046457720, - [Annotation(Name = "[Gravesite Plain - Scorched Ruins] Revered Spirit Ash 2047417700")] - GravesitePlainScorchedRuinsReveredSpiritAsh = 2047417700, + [Annotation(Name = "[Gravesite Plain - Scorched Ruins] Revered Spirit Ash 2047417700")] + GravesitePlainScorchedRuinsReveredSpiritAsh = 2047417700, - [Annotation(Name = "[Gravesite Plain - East of Ensis Castle Front] Revered Spirit Ash 2047437700")] - GravesitePlainEastofEnsisCastleFrontReveredSpiritAsh = 2047437700, + [Annotation(Name = "[Gravesite Plain - East of Ensis Castle Front] Revered Spirit Ash 2047437700")] + GravesitePlainEastofEnsisCastleFrontReveredSpiritAsh = 2047437700, - [Annotation(Name = "[Scadu Altus - Moorth Ruins] Revered Spirit Ash 2049447500")] - ScaduAltusMoorthRuinsReveredSpiritAsh = 2049447500, + [Annotation(Name = "[Scadu Altus - Moorth Ruins] Revered Spirit Ash 2049447500")] + ScaduAltusMoorthRuinsReveredSpiritAsh = 2049447500, - [Annotation(Name = "[Scadu Altus - Scaduview Cross] Revered Spirit Ash 2050437720")] - ScaduAltusScaduviewCrossReveredSpiritAsh = 2050437720, + [Annotation(Name = "[Scadu Altus - Scaduview Cross] Revered Spirit Ash 2050437720")] + ScaduAltusScaduviewCrossReveredSpiritAsh = 2050437720, - [Annotation(Name = "[Scadu Altus - Main Bonny Village] Revered Spirit Ash 2050447500")] - ScaduAltusMainBonnyVillageReveredSpiritAsh = 2050447500, + [Annotation(Name = "[Scadu Altus - Main Bonny Village] Revered Spirit Ash 2050447500")] + ScaduAltusMainBonnyVillageReveredSpiritAsh = 2050447500, - [Annotation(Name = "[Scadu Altus - Castle Watering Hole Southeast] Revered Spirit Ash 2050467700")] - ScaduAltusCastleWateringHoleSoutheastReveredSpiritAsh = 2050467700, + [Annotation(Name = "[Scadu Altus - Castle Watering Hole Southeast] Revered Spirit Ash 2050467700")] + ScaduAltusCastleWateringHoleSoutheastReveredSpiritAsh = 2050467700, - [Annotation(Name = "[Belurat - Shadow Commoner] Revered Spirit Ash 20007900")] - BeluratShadowCommonerReveredSpiritAsh = 20007900, + [Annotation(Name = "[Belurat - Shadow Commoner] Revered Spirit Ash 20007900")] + BeluratShadowCommonerReveredSpiritAsh = 20007900, - [Annotation(Name = "[Midra's Manse - Fat Inquisitor] Revered Spirit Ash 20017900")] - MidrasManseFatInquisitorReveredSpiritAsh = 20017900, + [Annotation(Name = "[Midra's Manse - Fat Inquisitor] Revered Spirit Ash 20017900")] + MidrasManseFatInquisitorReveredSpiritAsh = 20017900, - [Annotation(Name = "[Enir-Ilim - Fat Inquisitor] Revered Spirit Ash 28007900")] - EnirIlimFatInquisitorReveredSpiritAsh = 28007900, + [Annotation(Name = "[Enir-Ilim - Fat Inquisitor] Revered Spirit Ash 28007900")] + EnirIlimFatInquisitorReveredSpiritAsh = 28007900, - [Annotation(Name = "[Ancient Ruins of Rauh - Shadow Commoner] Revered Spirit Ash 2044467950")] - AncientRuinsofRauhShadowCommonerReveredSpiritAsh = 2044467950, + [Annotation(Name = "[Ancient Ruins of Rauh - Shadow Commoner] Revered Spirit Ash 2044467950")] + AncientRuinsofRauhShadowCommonerReveredSpiritAsh = 2044467950, - [Annotation(Name = "[Ancient Ruins of Rauh - Shadow Commoner] Revered Spirit Ash 2046477950")] - AncientRuinsofRauhShadowCommonerReveredSpiritAsh_ = 2046477950, + [Annotation(Name = "[Ancient Ruins of Rauh - Shadow Commoner] Revered Spirit Ash 2046477950")] + AncientRuinsofRauhShadowCommonerReveredSpiritAsh_ = 2046477950, - [Annotation(Name = "[Gravesite Plain - South of Church of Consolation] Viridian Hidden Tear 65400")] - GravesitePlainSouthofChurchofConsolationViridianHiddenTear = 65400, + [Annotation(Name = "[Gravesite Plain - South of Church of Consolation] Viridian Hidden Tear 65400")] + GravesitePlainSouthofChurchofConsolationViridianHiddenTear = 65400, - [Annotation(Name = "[Scadu Altus - Furnace Golem Area] Crimsonburst Dried Tear 65410")] - ScaduAltusFurnaceGolemAreaCrimsonburstDriedTear = 65410, + [Annotation(Name = "[Scadu Altus - Furnace Golem Area] Crimsonburst Dried Tear 65410")] + ScaduAltusFurnaceGolemAreaCrimsonburstDriedTear = 65410, - [Annotation(Name = "[Rauh Base - Rot Area] Crimson-Sapping Cracked Tear 65420")] - RauhBaseRotAreaCrimsonSappingCrackedTear = 65420, + [Annotation(Name = "[Rauh Base - Rot Area] Crimson-Sapping Cracked Tear 65420")] + RauhBaseRotAreaCrimsonSappingCrackedTear = 65420, - [Annotation(Name = "[Scadu Altus - Cathedral of Manus Metyr] Cerulean-Sapping Cracked Tear 65430")] - ScaduAltusCathedralofManusMetyrCeruleanSappingCrackedTear = 65430, + [Annotation(Name = "[Scadu Altus - Cathedral of Manus Metyr] Cerulean-Sapping Cracked Tear 65430")] + ScaduAltusCathedralofManusMetyrCeruleanSappingCrackedTear = 65430, - [Annotation(Name = "[Scadu Altus - Castle Watering Hole Southeast] Oil-Soaked Tear 65440")] - ScaduAltusCastleWateringHoleSoutheastOilSoakedTear = 65440, + [Annotation(Name = "[Scadu Altus - Castle Watering Hole Southeast] Oil-Soaked Tear 65440")] + ScaduAltusCastleWateringHoleSoutheastOilSoakedTear = 65440, - [Annotation(Name = "[Scadu Altus - Castle Watering Hole Southeast] Bloodsucking Cracked Tear 65450")] - ScaduAltusCastleWateringHoleSoutheastBloodsuckingCrackedTear = 65450, + [Annotation(Name = "[Scadu Altus - Castle Watering Hole Southeast] Bloodsucking Cracked Tear 65450")] + ScaduAltusCastleWateringHoleSoutheastBloodsuckingCrackedTear = 65450, - [Annotation(Name = "[Cerulean Coast - Cerulean Coast West] Glovewort Crystal Tear 65460")] - CeruleanCoastCeruleanCoastWestGlovewortCrystalTear = 65460, + [Annotation(Name = "[Cerulean Coast - Cerulean Coast West] Glovewort Crystal Tear 65460")] + CeruleanCoastCeruleanCoastWestGlovewortCrystalTear = 65460, - [Annotation(Name = "[Gravesite Plain - Three-Path Cross] Deflecting Hardtear 65470")] - GravesitePlainThreePathCrossDeflectingHardtear = 65470, + [Annotation(Name = "[Gravesite Plain - Three-Path Cross] Deflecting Hardtear 65470")] + GravesitePlainThreePathCrossDeflectingHardtear = 65470, - [Annotation(Name = "[Bonny Gaol - Curseblade Labirith] Curseblade Meera 520760")] - BonnyGaolCursebladeLabirithCursebladeMeera = 520760, + [Annotation(Name = "[Bonny Gaol - Curseblade Labirith] Curseblade Meera 520760")] + BonnyGaolCursebladeLabirithCursebladeMeera = 520760, - [Annotation(Name = "[Rivermouth Cave - Chief Bloodfiend] Bloodfiend Hexer's Ashes 520800")] - RivermouthCaveChiefBloodfiendBloodfiendHexersAshes = 520800, + [Annotation(Name = "[Rivermouth Cave - Chief Bloodfiend] Bloodfiend Hexer's Ashes 520800")] + RivermouthCaveChiefBloodfiendBloodfiendHexersAshes = 520800, - [Annotation(Name = "[Cerulean Coast - Cerulean Coast West] Gravebird Ashes 2046397040")] - CeruleanCoastCeruleanCoastWestGravebirdAshes = 2046397040, + [Annotation(Name = "[Cerulean Coast - Cerulean Coast West] Gravebird Ashes 2046397040")] + CeruleanCoastCeruleanCoastWestGravebirdAshes = 2046397040, - [Annotation(Name = "[Specimen Storehouse] Fire Knight Hilde 21017800")] - SpecimenStorehouseFireKnightHilde = 21017800, + [Annotation(Name = "[Specimen Storehouse] Fire Knight Hilde 21017800")] + SpecimenStorehouseFireKnightHilde = 21017800, - [Annotation(Name = "[Rauh Base - Fire Spritestone Cave] Spider Scorpion Ashes 2046477020")] - RauhBaseFireSpritestoneCaveSpiderScorpionAshes = 2046477020, + [Annotation(Name = "[Rauh Base - Fire Spritestone Cave] Spider Scorpion Ashes 2046477020")] + RauhBaseFireSpritestoneCaveSpiderScorpionAshes = 2046477020, - [Annotation(Name = "[Enir-Ilim] Inquisitor Ashes 20017310")] - EnirIlimInquisitorAshes = 20017310, + [Annotation(Name = "[Enir-Ilim] Inquisitor Ashes 20017310")] + EnirIlimInquisitorAshes = 20017310, - [Annotation(Name = "[Belurat Gaol - Demi-Human Swordmaster Onze] Demi-Human Swordsman Yosh 520750")] - BeluratGaolDemiHumanSwordmasterOnzeDemiHumanSwordsmanYosh = 520750, + [Annotation(Name = "[Belurat Gaol - Demi-Human Swordmaster Onze] Demi-Human Swordsman Yosh 520750")] + BeluratGaolDemiHumanSwordmasterOnzeDemiHumanSwordsmanYosh = 520750, - [Annotation(Name = "[Gravesite Plain - Southeast Poison Swamp] Messmer Soldier Ashes 2049437230")] - GravesitePlainSoutheastPoisonSwampMessmerSoldierAshes = 2049437230, + [Annotation(Name = "[Gravesite Plain - Southeast Poison Swamp] Messmer Soldier Ashes 2049437230")] + GravesitePlainSoutheastPoisonSwampMessmerSoldierAshes = 2049437230, - [Annotation(Name = "[Fog Rift Catacombs] Black Knight Commander Andreas 40007810")] - FogRiftCatacombsBlackKnightCommanderAndreas = 40007810, + [Annotation(Name = "[Fog Rift Catacombs] Black Knight Commander Andreas 40007810")] + FogRiftCatacombsBlackKnightCommanderAndreas = 40007810, - [Annotation(Name = "[Scorpion River Catacombs] Black Knight Captain Huw 40017050")] - ScorpionRiverCatacombsBlackKnightCaptainHuw = 40017050, + [Annotation(Name = "[Scorpion River Catacombs] Black Knight Captain Huw 40017050")] + ScorpionRiverCatacombsBlackKnightCaptainHuw = 40017050, - [Annotation(Name = "[Darklight Catacombs] Bigmouth Imp Ashes 40027220")] - DarklightCatacombsBigmouthImpAshes = 40027220, + [Annotation(Name = "[Darklight Catacombs] Bigmouth Imp Ashes 40027220")] + DarklightCatacombsBigmouthImpAshes = 40027220, - [Annotation(Name = "[Scadu Altus - Main Bonny Village] Man-Fly Ashes 2050447710")] - ScaduAltusMainBonnyVillageManFlyAshes = 2050447710, + [Annotation(Name = "[Scadu Altus - Main Bonny Village] Man-Fly Ashes 2050447710")] + ScaduAltusMainBonnyVillageManFlyAshes = 2050447710, - [Annotation(Name = "[Taylew's Ruined Forge] Taylew the Golem Smith 42037000")] - TaylewsRuinedForgeTaylewtheGolemSmith = 42037000, + [Annotation(Name = "[Taylew's Ruined Forge] Taylew the Golem Smith 42037000")] + TaylewsRuinedForgeTaylewtheGolemSmith = 42037000, - [Annotation(Name = "[Rauh Base - Temple Town Ruins] Divine Bird Warrior Ornis 2046457920")] - RauhBaseTempleTownRuinsDivineBirdWarriorOrnis = 2046457920, + [Annotation(Name = "[Rauh Base - Temple Town Ruins] Divine Bird Warrior Ornis 2046457920")] + RauhBaseTempleTownRuinsDivineBirdWarriorOrnis = 2046457920, - [Annotation(Name = "[Enir-Ilim] Horned Warrior Ashes 20017420")] - EnirIlimHornedWarriorAshes = 20017420, + [Annotation(Name = "[Enir-Ilim] Horned Warrior Ashes 20017420")] + EnirIlimHornedWarriorAshes = 20017420, - [Annotation(Name = "[Finger Ruins of Rhia - Dragon Communion Priestess] Ancient Dragon Florissax 400700")] - FingerRuinsofRhiaDragonCommunionPriestessAncientDragonFlorissax = 400700, + [Annotation(Name = "[Finger Ruins of Rhia - Dragon Communion Priestess] Ancient Dragon Florissax 400700")] + FingerRuinsofRhiaDragonCommunionPriestessAncientDragonFlorissax = 400700, - [Annotation(Name = "[Scaduview - East of Fingerstone Hill Crater] Fingercreeper Ashes 2053487000")] - ScaduviewEastofFingerstoneHillCraterFingercreeperAshes = 2053487000, + [Annotation(Name = "[Scaduview - East of Fingerstone Hill Crater] Fingercreeper Ashes 2053487000")] + ScaduviewEastofFingerstoneHillCraterFingercreeperAshes = 2053487000, - [Annotation(Name = "[Shadow Keep - Fire Knight Queelign] Fire Knight Queelign 400690")] - ShadowKeepFireKnightQueelignFireKnightQueelign = 400690, + [Annotation(Name = "[Shadow Keep - Fire Knight Queelign] Fire Knight Queelign 400690")] + ShadowKeepFireKnightQueelignFireKnightQueelign = 400690, - [Annotation(Name = "[Scadu Altus - Swordhand of Night Jolán] Swordhand of Night Jolán 400670")] - ScaduAltusSwordhandofNightJolanSwordhandofNightJolan = 400670, + [Annotation(Name = "[Scadu Altus - Swordhand of Night Jolán] Swordhand of Night Jolán 400670")] + ScaduAltusSwordhandofNightJolanSwordhandofNightJolan = 400670, - } } diff --git a/src/SoulMemory/EldenRing/KnownFlag.cs b/src/SoulMemory/EldenRing/KnownFlag.cs index 3dc610d..50ab12b 100644 --- a/src/SoulMemory/EldenRing/KnownFlag.cs +++ b/src/SoulMemory/EldenRing/KnownFlag.cs @@ -14,191 +14,190 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -namespace SoulMemory.EldenRing +namespace SoulMemory.EldenRing; + +public enum KnownFlag : uint { - public enum KnownFlag : uint - { - [Annotation(Name = "New Game 50")] - NewGame = 50, + [Annotation(Name = "New Game 50")] + NewGame = 50, - [Annotation(Name = "New Game +1 51")] - NewGame1 = 51, + [Annotation(Name = "New Game +1 51")] + NewGame1 = 51, - [Annotation(Name = "New Game +2 52")] - NewGame2 = 52, + [Annotation(Name = "New Game +2 52")] + NewGame2 = 52, - [Annotation(Name = "New Game +3 53")] - NewGame3 = 53, + [Annotation(Name = "New Game +3 53")] + NewGame3 = 53, - [Annotation(Name = "New Game +4 54")] - NewGame4 = 54, + [Annotation(Name = "New Game +4 54")] + NewGame4 = 54, - [Annotation(Name = "New Game +5 55")] - NewGame5 = 55, + [Annotation(Name = "New Game +5 55")] + NewGame5 = 55, - [Annotation(Name = "New Game +6 56")] - NewGame6 = 56, + [Annotation(Name = "New Game +6 56")] + NewGame6 = 56, - [Annotation(Name = "New Game +7 57")] - NewGame7 = 57, + [Annotation(Name = "New Game +7 57")] + NewGame7 = 57, - [Annotation(Name = "New Game +8 58")] - NewGame8 = 58, + [Annotation(Name = "New Game +8 58")] + NewGame8 = 58, - [Annotation(Name = "Game Starts 100")] - GameStarts = 100, + [Annotation(Name = "Game Starts 100")] + GameStarts = 100, - [Annotation(Name = "Reaches Stranded Graveyard 101")] - ReachesStrandedGraveyard = 101, + [Annotation(Name = "Reaches Stranded Graveyard 101")] + ReachesStrandedGraveyard = 101, - [Annotation(Name = "Reaches Limgrave Open Field 102")] - ReachesLimgraveOpenField = 102, + [Annotation(Name = "Reaches Limgrave Open Field 102")] + ReachesLimgraveOpenField = 102, - [Annotation(Name = "Reaches Roundtable 105")] - ReachesRoundtable = 105, + [Annotation(Name = "Reaches Roundtable 105")] + ReachesRoundtable = 105, - [Annotation(Name = "Touches the Frenzied Flame 108")] - TouchestheFrenziedFlame = 108, + [Annotation(Name = "Touches the Frenzied Flame 108")] + TouchestheFrenziedFlame = 108, - [Annotation(Name = "Burns the Erdtree at Forge of the Giants 110")] - BurnstheErdtreeatForgeoftheGiants = 110, + [Annotation(Name = "Burns the Erdtree at Forge of the Giants 110")] + BurnstheErdtreeatForgeoftheGiants = 110, - [Annotation(Name = "Saw Ending Scene 120")] - SawEndingScene = 120, + [Annotation(Name = "Saw Ending Scene 120")] + SawEndingScene = 120, - [Annotation(Name = "Gets 1st Great Rune 181")] - Gets1stGreatRune = 181, + [Annotation(Name = "Gets 1st Great Rune 181")] + Gets1stGreatRune = 181, - [Annotation(Name = "Gets 2nd Great Rune 182")] - Gets2ndGreatRune = 182, + [Annotation(Name = "Gets 2nd Great Rune 182")] + Gets2ndGreatRune = 182, - [Annotation(Name = "Gets 3rd Great Rune 183")] - Gets3rdGreatRune = 183, + [Annotation(Name = "Gets 3rd Great Rune 183")] + Gets3rdGreatRune = 183, - [Annotation(Name = "Gets 4th Great Rune 184")] - Gets4thGreatRune = 184, + [Annotation(Name = "Gets 4th Great Rune 184")] + Gets4thGreatRune = 184, - [Annotation(Name = "Gets 5th Great Rune 185")] - Gets5thGreatRune = 185, + [Annotation(Name = "Gets 5th Great Rune 185")] + Gets5thGreatRune = 185, - [Annotation(Name = "Gets 6th Great Rune 186")] - Gets6thGreatRune = 186, + [Annotation(Name = "Gets 6th Great Rune 186")] + Gets6thGreatRune = 186, - [Annotation(Name = "Gets 7th Great Rune 187")] - Gets7thGreatRune = 187, + [Annotation(Name = "Gets 7th Great Rune 187")] + Gets7thGreatRune = 187, - [Annotation(Name = "Meets Melina 951")] - MeetsMelina = 951, + [Annotation(Name = "Meets Melina 951")] + MeetsMelina = 951, - [Annotation(Name = "Saw Ending Scene 2 6010")] - SawEndingScene2 = 6010, + [Annotation(Name = "Saw Ending Scene 2 6010")] + SawEndingScene2 = 6010, - [Annotation(Name = "Gets Flasks of Crimson/Cerulean Tears 60000")] - GetsFlasksofCrimsonCeruleanTears = 60000, + [Annotation(Name = "Gets Flasks of Crimson/Cerulean Tears 60000")] + GetsFlasksofCrimsonCeruleanTears = 60000, - [Annotation(Name = "Gets Flask of Wondrous Physick 60020")] - GetsFlaskofWondrousPhysick = 60020, + [Annotation(Name = "Gets Flask of Wondrous Physick 60020")] + GetsFlaskofWondrousPhysick = 60020, - [Annotation(Name = "Unlocks Function: Riding Torrent 60100")] - UnlocksFunctionRidingTorrent = 60100, + [Annotation(Name = "Unlocks Function: Riding Torrent 60100")] + UnlocksFunctionRidingTorrent = 60100, - [Annotation(Name = "Unlocks Function: Summoning Spirits 60110")] - UnlocksFunctionSummoningSpirits = 60110, + [Annotation(Name = "Unlocks Function: Summoning Spirits 60110")] + UnlocksFunctionSummoningSpirits = 60110, - [Annotation(Name = "Unlocks Function: Crafting 60120")] - UnlocksFunctionCrafting = 60120, + [Annotation(Name = "Unlocks Function: Crafting 60120")] + UnlocksFunctionCrafting = 60120, - [Annotation(Name = "Unlocks Function: Applying Ashes of War to Armaments 60130")] - UnlocksFunctionApplyingAshesofWartoArmaments = 60130, + [Annotation(Name = "Unlocks Function: Applying Ashes of War to Armaments 60130")] + UnlocksFunctionApplyingAshesofWartoArmaments = 60130, - [Annotation(Name = "Unlocks Function: Armor Alterations 60140")] - UnlocksFunctionArmorAlterations = 60140, + [Annotation(Name = "Unlocks Function: Armor Alterations 60140")] + UnlocksFunctionArmorAlterations = 60140, - [Annotation(Name = "Unlocks Function: Demigods' Armor Alterations 60150")] - UnlocksFunctionDemigodsArmorAlterations = 60150, + [Annotation(Name = "Unlocks Function: Demigods' Armor Alterations 60150")] + UnlocksFunctionDemigodsArmorAlterations = 60150, - [Annotation(Name = "Unlocks Memory Slot 0 60400")] - UnlocksMemorySlot0 = 60400, + [Annotation(Name = "Unlocks Memory Slot 0 60400")] + UnlocksMemorySlot0 = 60400, - [Annotation(Name = "Unlocks Memory Slot 1 60410")] - UnlocksMemorySlot1 = 60410, + [Annotation(Name = "Unlocks Memory Slot 1 60410")] + UnlocksMemorySlot1 = 60410, - [Annotation(Name = "Unlocks Memory Slot 2 60420")] - UnlocksMemorySlot2 = 60420, + [Annotation(Name = "Unlocks Memory Slot 2 60420")] + UnlocksMemorySlot2 = 60420, - [Annotation(Name = "Unlocks Memory Slot 3 60430")] - UnlocksMemorySlot3 = 60430, + [Annotation(Name = "Unlocks Memory Slot 3 60430")] + UnlocksMemorySlot3 = 60430, - [Annotation(Name = "Unlocks Memory Slot 4 60440")] - UnlocksMemorySlot4 = 60440, + [Annotation(Name = "Unlocks Memory Slot 4 60440")] + UnlocksMemorySlot4 = 60440, - [Annotation(Name = "Unlocks Memory Slot 5 60450")] - UnlocksMemorySlot5 = 60450, + [Annotation(Name = "Unlocks Memory Slot 5 60450")] + UnlocksMemorySlot5 = 60450, - [Annotation(Name = "Unlocks Memory Slot 6 60460")] - UnlocksMemorySlot6 = 60460, + [Annotation(Name = "Unlocks Memory Slot 6 60460")] + UnlocksMemorySlot6 = 60460, - [Annotation(Name = "Unlocks Memory Slot 7 60470")] - UnlocksMemorySlot7 = 60470, + [Annotation(Name = "Unlocks Memory Slot 7 60470")] + UnlocksMemorySlot7 = 60470, - [Annotation(Name = "Unlocks Talisman Slot 0 60500")] - UnlocksTalismanSlot0 = 60500, + [Annotation(Name = "Unlocks Talisman Slot 0 60500")] + UnlocksTalismanSlot0 = 60500, - [Annotation(Name = "Unlocks Talisman Slot 1 60510")] - UnlocksTalismanSlot1 = 60510, + [Annotation(Name = "Unlocks Talisman Slot 1 60510")] + UnlocksTalismanSlot1 = 60510, - [Annotation(Name = "Unlocks Talisman Slot 2 60520")] - UnlocksTalismanSlot2 = 60520, + [Annotation(Name = "Unlocks Talisman Slot 2 60520")] + UnlocksTalismanSlot2 = 60520, - [Annotation(Name = "Unlocks Underground Map 62001")] - UnlocksUndergroundMap = 62001, + [Annotation(Name = "Unlocks Underground Map 62001")] + UnlocksUndergroundMap = 62001, - [Annotation(Name = "Normal Ending A 9400")] - NormalEndingA = 9400, + [Annotation(Name = "Normal Ending A 9400")] + NormalEndingA = 9400, - [Annotation(Name = "Normal Ending B 9401")] - NormalEndingB = 9401, + [Annotation(Name = "Normal Ending B 9401")] + NormalEndingB = 9401, - [Annotation(Name = "Normal Ending C 9402")] - NormalEndingC = 9402, + [Annotation(Name = "Normal Ending C 9402")] + NormalEndingC = 9402, - [Annotation(Name = "Normal Ending D 9403")] - NormalEndingD = 9403, + [Annotation(Name = "Normal Ending D 9403")] + NormalEndingD = 9403, - [Annotation(Name = "Ranni Ending A 9404")] - RanniEndingA = 9404, + [Annotation(Name = "Ranni Ending A 9404")] + RanniEndingA = 9404, - [Annotation(Name = "Ranni Ending B 9405")] - RanniEndingB = 9405, + [Annotation(Name = "Ranni Ending B 9405")] + RanniEndingB = 9405, - [Annotation(Name = "Frenzied Flame Ending A 9406")] - FrenziedFlameEndingA = 9406, + [Annotation(Name = "Frenzied Flame Ending A 9406")] + FrenziedFlameEndingA = 9406, - [Annotation(Name = "Frenzied Flame Ending B 9407")] - FrenziedFlameEndingB = 9407, + [Annotation(Name = "Frenzied Flame Ending B 9407")] + FrenziedFlameEndingB = 9407, - [Annotation(Name = "Radahn Festival: Preparation 9410")] - RadahnFestivalPreparation = 9410, + [Annotation(Name = "Radahn Festival: Preparation 9410")] + RadahnFestivalPreparation = 9410, - [Annotation(Name = "Radahn Festival: Begins 9411")] - RadahnFestivalBegins = 9411, + [Annotation(Name = "Radahn Festival: Begins 9411")] + RadahnFestivalBegins = 9411, - [Annotation(Name = "Radahn Festival: Aftermath 9412")] - RadahnFestivalAftermath = 9412, + [Annotation(Name = "Radahn Festival: Aftermath 9412")] + RadahnFestivalAftermath = 9412, - [Annotation(Name = "Radahn Festival: Ends 9413")] - RadahnFestivalEnds = 9413, + [Annotation(Name = "Radahn Festival: Ends 9413")] + RadahnFestivalEnds = 9413, - [Annotation(Name = "Frenzied Flame Eyes 9431")] - FrenziedFlameEyes = 9431, + [Annotation(Name = "Frenzied Flame Eyes 9431")] + FrenziedFlameEyes = 9431, - [Annotation(Name = "Dragon Eyes 9433")] - DragonEyes = 9433, + [Annotation(Name = "Dragon Eyes 9433")] + DragonEyes = 9433, - [Annotation(Name = "Takes Dectus Lift 1038500500")] - TakesDectusLift = 1038500500, + [Annotation(Name = "Takes Dectus Lift 1038500500")] + TakesDectusLift = 1038500500, - [Annotation(Name = "Takes Rold Lift 1050542200")] - TakeGoldLift = 1050542200, - } + [Annotation(Name = "Takes Rold Lift 1050542200")] + TakeGoldLift = 1050542200, } \ No newline at end of file diff --git a/src/SoulMemory/EldenRing/Position.cs b/src/SoulMemory/EldenRing/Position.cs index 251fe36..3191b56 100644 --- a/src/SoulMemory/EldenRing/Position.cs +++ b/src/SoulMemory/EldenRing/Position.cs @@ -14,22 +14,21 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -namespace SoulMemory.EldenRing +namespace SoulMemory.EldenRing; + +public class Position { - public class Position - { - public byte Area; - public byte Block; - public byte Region; - public byte Size; + public byte Area; + public byte Block; + public byte Region; + public byte Size; - public float X; - public float Y; - public float Z; + public float X; + public float Y; + public float Z; - public override string ToString() - { - return $"m{Area:D2}_{Block:D2}_{Region:D2}_{Size:D2} - ({X:F2}, {Y:F2}, {Z:F2})"; - } + public override string ToString() + { + return $"m{Area:D2}_{Block:D2}_{Region:D2}_{Size:D2} - ({X:F2}, {Y:F2}, {Z:F2})"; } } diff --git a/src/SoulMemory/EldenRing/ScreenState.cs b/src/SoulMemory/EldenRing/ScreenState.cs index a2daed7..a01d331 100644 --- a/src/SoulMemory/EldenRing/ScreenState.cs +++ b/src/SoulMemory/EldenRing/ScreenState.cs @@ -14,13 +14,12 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -namespace SoulMemory.EldenRing +namespace SoulMemory.EldenRing; + +public enum ScreenState { - public enum ScreenState - { - InGame = 0, - Loading = 1, - MainMenu = 256, - Unknown - } + InGame = 0, + Loading = 1, + MainMenu = 256, + Unknown } diff --git a/src/SoulMemory/Extensions.cs b/src/SoulMemory/Extensions.cs index 696169e..41378a6 100644 --- a/src/SoulMemory/Extensions.cs +++ b/src/SoulMemory/Extensions.cs @@ -21,82 +21,81 @@ using System.Xml; using SoulMemory.Memory; -namespace SoulMemory +namespace SoulMemory; + +public static class Extensions { - public static class Extensions + public static bool TryParseEnum(this int value, out T result) { - public static bool TryParseEnum(this int value, out T result) + result = default!; + if (Enum.IsDefined(typeof(T), value)) { - result = default!; - if (Enum.IsDefined(typeof(T), value)) - { - result = (T)(object)value; - return true; - } - return false; - } - - public static bool TryParseEnum(this uint value, out T result) - { - result = default!; - if (Enum.IsDefined(typeof(T), value)) - { - result = (T)(object)value; - return true; - } - return false; + result = (T)(object)value; + return true; } + return false; + } - public static XmlNode GetChildNodeByName(this XmlNode node, string childName) + public static bool TryParseEnum(this uint value, out T result) + { + result = default!; + if (Enum.IsDefined(typeof(T), value)) { - var lower = childName.ToLower(); - foreach (XmlNode child in node.ChildNodes) - { - if (child.LocalName.ToLower() == lower) - { - return child; - } - } - throw new ArgumentException($"{childName} not found"); + result = (T)(object)value; + return true; } + return false; + } - public static IEnumerable Enumerate(this XmlNodeList list) + public static XmlNode GetChildNodeByName(this XmlNode node, string childName) + { + var lower = childName.ToLower(); + foreach (XmlNode child in node.ChildNodes) { - foreach (XmlNode node in list) + if (child.LocalName.ToLower() == lower) { - yield return node; + return child; } } + throw new ArgumentException($"{childName} not found"); + } - public static bool IsBitSet(this long l, int index) + public static IEnumerable Enumerate(this XmlNodeList list) + { + foreach (XmlNode node in list) { - return (l & ((long)0x1 << index)) != 0; + yield return node; } + } - public static long SetBit(this long l, int index) - { - return l | ((long)0x1 << index); - } + public static bool IsBitSet(this long l, int index) + { + return (l & ((long)0x1 << index)) != 0; + } - public static long ClearBit(this long l, int index) - { - return l & ~((long)0x1 << index); - } + public static long SetBit(this long l, int index) + { + return l | ((long)0x1 << index); + } - public static T ResolveVersion(this FileVersionInfo fileVersionInfo) where T : Enum - { - var values = Enum.GetValues(typeof(T)) - .Cast() - .Select(i => (i, i.GetEnumAttribute().Version)) - .ToList(); + public static long ClearBit(this long l, int index) + { + return l & ~((long)0x1 << index); + } - var versionStr = $"{fileVersionInfo.FileMajorPart}.{fileVersionInfo.FileMinorPart}.{fileVersionInfo.FileBuildPart}.{fileVersionInfo.FilePrivatePart}"; - if (values.Any(i => i.Version == versionStr)) - { - return values.First(i => i.Version == versionStr).i; - } + public static T ResolveVersion(this FileVersionInfo fileVersionInfo) where T : Enum + { + var values = Enum.GetValues(typeof(T)) + .Cast() + .Select(i => (i, i.GetEnumAttribute().Version)) + .ToList(); - return values.First(i => i.Version == "unknown").i; + var versionStr = $"{fileVersionInfo.FileMajorPart}.{fileVersionInfo.FileMinorPart}.{fileVersionInfo.FileBuildPart}.{fileVersionInfo.FilePrivatePart}"; + if (values.Any(i => i.Version == versionStr)) + { + return values.First(i => i.Version == versionStr).i; } + + return values.First(i => i.Version == "unknown").i; } } diff --git a/src/SoulMemory/FlagWatcher.cs b/src/SoulMemory/FlagWatcher.cs index eab8f71..86b4eed 100644 --- a/src/SoulMemory/FlagWatcher.cs +++ b/src/SoulMemory/FlagWatcher.cs @@ -18,40 +18,39 @@ using System.Diagnostics.CodeAnalysis; using System.Linq; -namespace SoulMemory +namespace SoulMemory; + +/// +/// Util to easily track event flag changes, helps with debugging. +/// +[ExcludeFromCodeCoverage] +public class FlagWatcher { - /// - /// Util to easily track event flag changes, helps with debugging. - /// - [ExcludeFromCodeCoverage] - public class FlagWatcher + public FlagWatcher(IGame game, IEnumerable flags) { - public FlagWatcher(IGame game, IEnumerable flags) + _game = game; + foreach (var flag in flags) { - _game = game; - foreach (var flag in flags) - { - _flags.Add(flag, _game.ReadEventFlag(flag)); - } + _flags.Add(flag, _game.ReadEventFlag(flag)); } + } - private readonly IGame _game; - private readonly Dictionary _flags = new Dictionary(); + private readonly IGame _game; + private readonly Dictionary _flags = new Dictionary(); - public Dictionary Update() + public Dictionary Update() + { + var result = new Dictionary(); + for (int i = 0; i < _flags.Count; i++) { - var result = new Dictionary(); - for (int i = 0; i < _flags.Count; i++) + var flag = _flags.ElementAt(i); + var value = _game.ReadEventFlag(flag.Key); + if (value != flag.Value) { - var flag = _flags.ElementAt(i); - var value = _game.ReadEventFlag(flag.Key); - if (value != flag.Value) - { - result.Add(flag.Key, value); - _flags[flag.Key] = value; - } + result.Add(flag.Key, value); + _flags[flag.Key] = value; } - return result; } + return result; } } diff --git a/src/SoulMemory/IGame.cs b/src/SoulMemory/IGame.cs index 97da8c8..8754395 100644 --- a/src/SoulMemory/IGame.cs +++ b/src/SoulMemory/IGame.cs @@ -17,35 +17,34 @@ using System.Diagnostics; using SoulMemory.Memory; -namespace SoulMemory +namespace SoulMemory; + +public interface IGame { - public interface IGame - { - /// - /// Refresh attachment to a game - /// - ResultErr TryRefresh(); + /// + /// Refresh attachment to a game + /// + ResultErr TryRefresh(); - /// - /// Returns a structure that defines the memory layout of certain game structs and values - /// Can be resolved and used to read memory, or to be scanned against a file to validate correctness of the structure - /// - TreeBuilder GetTreeBuilder(); + /// + /// Returns a structure that defines the memory layout of certain game structs and values + /// Can be resolved and used to read memory, or to be scanned against a file to validate correctness of the structure + /// + TreeBuilder GetTreeBuilder(); - /// - /// Read an event flag from the game and return it's state - /// - bool ReadEventFlag(uint eventFlagId); + /// + /// Read an event flag from the game and return it's state + /// + bool ReadEventFlag(uint eventFlagId); - /// - /// Get a reference to the game process - /// Will only be a valid reference until the next call to TryRefresh - /// - Process? GetProcess(); + /// + /// Get a reference to the game process + /// Will only be a valid reference until the next call to TryRefresh + /// + Process? GetProcess(); - /// - /// Get the current millis - /// - int GetInGameTimeMilliseconds(); - } + /// + /// Get the current millis + /// + int GetInGameTimeMilliseconds(); } diff --git a/src/SoulMemory/Memory/BitBlt.cs b/src/SoulMemory/Memory/BitBlt.cs index e2f0ce5..4571226 100644 --- a/src/SoulMemory/Memory/BitBlt.cs +++ b/src/SoulMemory/Memory/BitBlt.cs @@ -18,29 +18,28 @@ using System.Collections.Generic; using System.IO; -namespace SoulMemory.Memory +namespace SoulMemory.Memory; + +public static class BitBlt { - public static class BitBlt + public static bool GetBitBlt(this IGame game, List files, List bitBlt) { - public static bool GetBitBlt(this IGame game, List files, List bitBlt) + var process = game.GetProcess(); + var path = Path.GetDirectoryName(process?.MainModule?.FileName); + using (var md5 = MD5.Create()) { - var process = game.GetProcess(); - var path = Path.GetDirectoryName(process?.MainModule?.FileName); - using (var md5 = MD5.Create()) + foreach (var d in files) { - foreach (var d in files) + using (var fs = File.OpenRead($"{path}\\{d}")) { - using (var fs = File.OpenRead($"{path}\\{d}")) + var hex = md5.ComputeHash(fs).ToHexString(); + if (!bitBlt.Contains(hex)) { - var hex = md5.ComputeHash(fs).ToHexString(); - if (!bitBlt.Contains(hex)) - { - return true; - } + return true; } } } - return false; } + return false; } } diff --git a/src/SoulMemory/Memory/Extensions.cs b/src/SoulMemory/Memory/Extensions.cs index 105aae6..ca4c4e9 100644 --- a/src/SoulMemory/Memory/Extensions.cs +++ b/src/SoulMemory/Memory/Extensions.cs @@ -18,56 +18,55 @@ using System.Linq; using System.Reflection; -namespace SoulMemory.Memory +namespace SoulMemory.Memory; + +public static class Extensions { - public static class Extensions + public static string ToHexString(this byte[] bytes) + { + return BitConverter.ToString(bytes).Replace("-", " "); + } + + public static string GetDisplayName(this Enum enumValue) { - public static string ToHexString(this byte[] bytes) + var displayName = enumValue + .GetType() + .GetMember(enumValue.ToString()) + .FirstOrDefault() + .GetCustomAttribute()? + .Name; + + if (string.IsNullOrEmpty(displayName)) { - return BitConverter.ToString(bytes).Replace("-", " "); + displayName = enumValue.ToString(); } - - public static string GetDisplayName(this Enum enumValue) - { - var displayName = enumValue - .GetType() - .GetMember(enumValue.ToString()) - .FirstOrDefault() - .GetCustomAttribute()? - .Name; + return displayName!; + } - if (string.IsNullOrEmpty(displayName)) - { - displayName = enumValue.ToString(); - } - return displayName!; - } + public static string GetDisplayDescription(this Enum enumValue) + { + var displayName = enumValue + .GetType() + .GetMember(enumValue.ToString()) + .FirstOrDefault() + .GetCustomAttribute()? + .Description; - public static string GetDisplayDescription(this Enum enumValue) + if (string.IsNullOrEmpty(displayName)) { - var displayName = enumValue - .GetType() - .GetMember(enumValue.ToString()) - .FirstOrDefault() - .GetCustomAttribute()? - .Description; - - if (string.IsNullOrEmpty(displayName)) - { - displayName = enumValue.ToString(); - } - return displayName!; + displayName = enumValue.ToString(); } + return displayName!; + } - public static T GetEnumAttribute(this Enum value) where T : Attribute - { - var attribute = value - .GetType() - .GetMember(value.ToString()) - .FirstOrDefault() - .GetCustomAttribute(); + public static T GetEnumAttribute(this Enum value) where T : Attribute + { + var attribute = value + .GetType() + .GetMember(value.ToString()) + .FirstOrDefault() + .GetCustomAttribute(); - return attribute; - } + return attribute; } } diff --git a/src/SoulMemory/Memory/IMemory.cs b/src/SoulMemory/Memory/IMemory.cs index 7fb2cf0..c78fb1f 100644 --- a/src/SoulMemory/Memory/IMemory.cs +++ b/src/SoulMemory/Memory/IMemory.cs @@ -17,176 +17,175 @@ using System; using System.Text; -namespace SoulMemory.Memory +namespace SoulMemory.Memory; + +public interface IMemory +{ + byte[] ReadBytes(long? offset, int length); + void WriteBytes(long? offset, byte[] bytes); +} + +public class ByteArrayMemory : IMemory { - public interface IMemory + private readonly byte[] _data; + public ByteArrayMemory(byte[] data) { - byte[] ReadBytes(long? offset, int length); - void WriteBytes(long? offset, byte[] bytes); + _data = data; } - public class ByteArrayMemory : IMemory + public byte[] ReadBytes(long? offset, int length) { - private readonly byte[] _data; - public ByteArrayMemory(byte[] data) + if (!offset.HasValue) { - _data = data; + offset = 0; } - public byte[] ReadBytes(long? offset, int length) - { - if (!offset.HasValue) - { - offset = 0; - } + var buffer = new byte[length]; + Array.Copy(_data, offset.Value, buffer, 0, length); + return buffer; + } - var buffer = new byte[length]; - Array.Copy(_data, offset.Value, buffer, 0, length); - return buffer; + public void WriteBytes(long? offset, byte[] bytes) + { + if (!offset.HasValue) + { + offset = 0; } - public void WriteBytes(long? offset, byte[] bytes) + for (int i = 0; i < bytes.Length; i++) { - if (!offset.HasValue) - { - offset = 0; - } - - for (int i = 0; i < bytes.Length; i++) - { - _data[offset.Value + i] = bytes[i]; - } + _data[offset.Value + i] = bytes[i]; } } +} - public static class MemoryExtensions - { - #region Read - public static byte[] ReadBytes(this IMemory memory, int length) => memory.ReadBytes(null, length); +public static class MemoryExtensions +{ + #region Read + public static byte[] ReadBytes(this IMemory memory, int length) => memory.ReadBytes(null, length); - public static int ReadInt32(this IMemory memory, long? offset = null) - { - return BitConverter.ToInt32(memory.ReadBytes(offset, 4), 0); - } - public static uint ReadUInt32(this IMemory memory, long? offset = null) - { - return BitConverter.ToUInt32(memory.ReadBytes(offset, 4), 0); - } + public static int ReadInt32(this IMemory memory, long? offset = null) + { + return BitConverter.ToInt32(memory.ReadBytes(offset, 4), 0); + } + public static uint ReadUInt32(this IMemory memory, long? offset = null) + { + return BitConverter.ToUInt32(memory.ReadBytes(offset, 4), 0); + } - public static long ReadInt64(this IMemory memory, long? offset = null) - { - return BitConverter.ToInt64(memory.ReadBytes(offset, 8), 0); - } + public static long ReadInt64(this IMemory memory, long? offset = null) + { + return BitConverter.ToInt64(memory.ReadBytes(offset, 8), 0); + } - public static bool ReadBool(this IMemory memory, long? offset = null) - { - return BitConverter.ToBoolean(memory.ReadBytes(offset, 1), 0); - } - public static byte ReadByte(this IMemory memory, long? offset = null) - { - return memory.ReadBytes(offset, 1)[0]; - } + public static bool ReadBool(this IMemory memory, long? offset = null) + { + return BitConverter.ToBoolean(memory.ReadBytes(offset, 1), 0); + } + public static byte ReadByte(this IMemory memory, long? offset = null) + { + return memory.ReadBytes(offset, 1)[0]; + } - public static sbyte ReadSByte(this IMemory memory, long? offset = null) - { - var b = memory.ReadBytes(offset, 1)[0]; - return unchecked((sbyte)b); //unchecked -> overflow allowed - } + public static sbyte ReadSByte(this IMemory memory, long? offset = null) + { + var b = memory.ReadBytes(offset, 1)[0]; + return unchecked((sbyte)b); //unchecked -> overflow allowed + } - public static short ReadInt16(this IMemory memory, long? offset = null) - { - return BitConverter.ToInt16(memory.ReadBytes(offset, 2), 0); - } + public static short ReadInt16(this IMemory memory, long? offset = null) + { + return BitConverter.ToInt16(memory.ReadBytes(offset, 2), 0); + } - public static ushort ReadUInt16(this IMemory memory, long? offset = null) - { - return BitConverter.ToUInt16(memory.ReadBytes(offset, 2), 0); - } + public static ushort ReadUInt16(this IMemory memory, long? offset = null) + { + return BitConverter.ToUInt16(memory.ReadBytes(offset, 2), 0); + } - public static float ReadFloat(this IMemory memory, long? offset = null) - { - return BitConverter.ToSingle(memory.ReadBytes(offset, 4), 0); - } + public static float ReadFloat(this IMemory memory, long? offset = null) + { + return BitConverter.ToSingle(memory.ReadBytes(offset, 4), 0); + } - public static string ReadUnicodeString(this IMemory memory, out int length, int maxSize = 1000, long? offset = null) + public static string ReadUnicodeString(this IMemory memory, out int length, int maxSize = 1000, long? offset = null) + { + var data = memory.ReadBytes(offset, maxSize); + length = 0; + for (int i = 1; i < data.Length; i++) { - var data = memory.ReadBytes(offset, maxSize); - length = 0; - for (int i = 1; i < data.Length; i++) + if (data[i - 1] == 0 && data[i] == 0) { - if (data[i - 1] == 0 && data[i] == 0) - { - length = i; - break; - } + length = i; + break; } - - return Encoding.Unicode.GetString(data); } - #endregion - #region Write + return Encoding.Unicode.GetString(data); + } + #endregion - public static void WriteBytes(this IMemory memory, byte[] value) => memory.WriteBytes(null, value); + #region Write - public static void WriteInt16(this IMemory memory, short value) => memory.WriteInt16(null, value); + public static void WriteBytes(this IMemory memory, byte[] value) => memory.WriteBytes(null, value); - public static void WriteInt16(this IMemory memory, long? offset, short value) - { - memory.WriteBytes(offset, BitConverter.GetBytes(value)); - } + public static void WriteInt16(this IMemory memory, short value) => memory.WriteInt16(null, value); - public static void WriteUInt16(this IMemory memory, ushort value) => memory.WriteUInt16(null, value); + public static void WriteInt16(this IMemory memory, long? offset, short value) + { + memory.WriteBytes(offset, BitConverter.GetBytes(value)); + } - public static void WriteUInt16(this IMemory memory, long? offset, ushort value) - { - memory.WriteBytes(offset, BitConverter.GetBytes(value)); - } + public static void WriteUInt16(this IMemory memory, ushort value) => memory.WriteUInt16(null, value); - public static void WriteInt32(this IMemory memory, int value) => memory.WriteInt32(null, value); + public static void WriteUInt16(this IMemory memory, long? offset, ushort value) + { + memory.WriteBytes(offset, BitConverter.GetBytes(value)); + } + public static void WriteInt32(this IMemory memory, int value) => memory.WriteInt32(null, value); - public static void WriteInt32(this IMemory memory, long? offset, int value) - { - memory.WriteBytes(offset, BitConverter.GetBytes(value)); - } - public static void WriteUInt32(this IMemory memory, uint value) => memory.WriteUInt32(null, value); + public static void WriteInt32(this IMemory memory, long? offset, int value) + { + memory.WriteBytes(offset, BitConverter.GetBytes(value)); + } - public static void WriteUInt32(this IMemory memory, long? offset, uint value) - { - memory.WriteBytes(offset, BitConverter.GetBytes(value)); - } + public static void WriteUInt32(this IMemory memory, uint value) => memory.WriteUInt32(null, value); - public static void WriteInt64(this IMemory memory, long? offset, long value) - { - memory.WriteBytes(offset, BitConverter.GetBytes(value)); - } - - public static void WriteBool(this IMemory memory, long? offset, bool value) - { - memory.WriteBytes(offset, BitConverter.GetBytes(value)); - } + public static void WriteUInt32(this IMemory memory, long? offset, uint value) + { + memory.WriteBytes(offset, BitConverter.GetBytes(value)); + } - public static void WriteByte(this IMemory memory, long? offset, byte value) - { - memory.WriteBytes(offset, new byte[] { value }); - } + public static void WriteInt64(this IMemory memory, long? offset, long value) + { + memory.WriteBytes(offset, BitConverter.GetBytes(value)); + } - public static void WriteSByte(this IMemory memory, long? offset, sbyte value) - { - var b = unchecked((byte)value); - memory.WriteBytes(offset, new byte[] { b }); - } + public static void WriteBool(this IMemory memory, long? offset, bool value) + { + memory.WriteBytes(offset, BitConverter.GetBytes(value)); + } - public static void WriteFloat(this IMemory memory, float value) => memory.WriteFloat(null, value); + public static void WriteByte(this IMemory memory, long? offset, byte value) + { + memory.WriteBytes(offset, new byte[] { value }); + } - public static void WriteFloat(this IMemory memory, long? offset, float value) - { - memory.WriteBytes(offset, BitConverter.GetBytes(value)); - } + public static void WriteSByte(this IMemory memory, long? offset, sbyte value) + { + var b = unchecked((byte)value); + memory.WriteBytes(offset, new byte[] { b }); + } - #endregion + public static void WriteFloat(this IMemory memory, float value) => memory.WriteFloat(null, value); + public static void WriteFloat(this IMemory memory, long? offset, float value) + { + memory.WriteBytes(offset, BitConverter.GetBytes(value)); } + + #endregion + } diff --git a/src/SoulMemory/Memory/MemoryScanner.cs b/src/SoulMemory/Memory/MemoryScanner.cs index aabfa40..a794faa 100644 --- a/src/SoulMemory/Memory/MemoryScanner.cs +++ b/src/SoulMemory/Memory/MemoryScanner.cs @@ -22,354 +22,353 @@ using System.Linq; using System.Threading.Tasks; -namespace SoulMemory.Memory +namespace SoulMemory.Memory; + +public static class MemoryScanner { - public static class MemoryScanner + #region Resolving pointers ============================================================================================================================== + + /// + /// Resolve pointers to their correct address by scanning for patterns in a running process + /// + /// + /// + /// + /// + /// + public static ResultErr TryResolvePointers(TreeBuilder treeBuilder, Process? process) { - #region Resolving pointers ============================================================================================================================== - - /// - /// Resolve pointers to their correct address by scanning for patterns in a running process - /// - /// - /// - /// - /// - /// - public static ResultErr TryResolvePointers(TreeBuilder treeBuilder, Process? process) + if (process?.MainModule == null) { - if (process?.MainModule == null) - { - return Result.Err(new RefreshError(RefreshErrorReason.MainModuleNull, "Main module is null. Try running as admin.")); - } + return Result.Err(new RefreshError(RefreshErrorReason.MainModuleNull, "Main module is null. Try running as admin.")); + } - //Gather some information about the process that can be reused throughout the resolving process - var baseAddress = process.MainModule.BaseAddress.ToInt64(); - var bytes = process.ReadProcessMemory(baseAddress, process.MainModule.ModuleMemorySize).Unwrap(); - var is64Bit = process.Is64Bit().Unwrap(); + //Gather some information about the process that can be reused throughout the resolving process + var baseAddress = process.MainModule.BaseAddress.ToInt64(); + var bytes = process.ReadProcessMemory(baseAddress, process.MainModule.ModuleMemorySize).Unwrap(); + var is64Bit = process.Is64Bit().Unwrap(); - //Resolve nodes with the above data - var errors = new List(); - foreach (var node in treeBuilder.Tree) + //Resolve nodes with the above data + var errors = new List(); + foreach (var node in treeBuilder.Tree) + { + long scanResult = 0; + bool success = false; + switch (node.NodeType) { - long scanResult = 0; - bool success = false; - switch (node.NodeType) - { - default: - return Result.Err(new RefreshError(RefreshErrorReason.UnknownException, $"Incorrect node type at base level: {node.NodeType}")); + default: + return Result.Err(new RefreshError(RefreshErrorReason.UnknownException, $"Incorrect node type at base level: {node.NodeType}")); - case NodeType.RelativeScan: - success = bytes.TryScanRelative(baseAddress, node, out scanResult); - break; + case NodeType.RelativeScan: + success = bytes.TryScanRelative(baseAddress, node, out scanResult); + break; - case NodeType.AbsoluteScan: - success = bytes.TryScanAbsolute(baseAddress, node, out scanResult); - break; - } + case NodeType.AbsoluteScan: + success = bytes.TryScanAbsolute(baseAddress, node, out scanResult); + break; + } - if (success) - { - foreach (var p in node.Pointers) - { - p.Pointer.Initialize(process, is64Bit, scanResult, p.Offsets); - } - } - else + if (success) + { + foreach (var p in node.Pointers) { - errors.Add(node.Name); + p.Pointer.Initialize(process, is64Bit, scanResult, p.Offsets); } } - - if (errors.Any()) + else { - return Result.Err(new RefreshError(RefreshErrorReason.ScansFailed, $"Scans failed for {string.Join(",", errors)}")); + errors.Add(node.Name); } - return Result.Ok(); } - #endregion - #region Validate patterns from file ============================================================================================================================== - - /// - /// Validate patterns in a TreeBuilder by counting the patterns in a given file. - /// - public static bool TryValidatePatterns(TreeBuilder treeBuilder, List filepaths, out List<(string fileName, string patternName, long count)> errors) + if (errors.Any()) { - var files = new List<(string name, byte[] bytes)>(); + return Result.Err(new RefreshError(RefreshErrorReason.ScansFailed, $"Scans failed for {string.Join(",", errors)}")); + } + return Result.Ok(); + } + #endregion - foreach (var path in filepaths) - { - files.Add((Path.GetFileName(path), File.ReadAllBytes(path))); - } + #region Validate patterns from file ============================================================================================================================== - object errorLock = new object(); - var errorsList = new List<(string fileName, string patternName, long count)>(); + /// + /// Validate patterns in a TreeBuilder by counting the patterns in a given file. + /// + public static bool TryValidatePatterns(TreeBuilder treeBuilder, List filepaths, out List<(string fileName, string patternName, long count)> errors) + { + var files = new List<(string name, byte[] bytes)>(); - //Count every pattern in every file; any count that returns something other than 1 is either missing or not exclusive, and thus erroneaus - Parallel.For(0, files.Count, i => + foreach (var path in filepaths) + { + files.Add((Path.GetFileName(path), File.ReadAllBytes(path))); + } + + object errorLock = new object(); + var errorsList = new List<(string fileName, string patternName, long count)>(); + + //Count every pattern in every file; any count that returns something other than 1 is either missing or not exclusive, and thus erroneaus + Parallel.For(0, files.Count, i => + { + foreach (var n in treeBuilder.Tree) { - foreach (var n in treeBuilder.Tree) + var pattern = n.Pattern.ToBytePattern(); + var count = files[i].bytes.BoyerMooreCount(pattern); //BoyerMooreCount + if (count != 1) { - var pattern = n.Pattern.ToBytePattern(); - var count = files[i].bytes.BoyerMooreCount(pattern); //BoyerMooreCount - if (count != 1) + lock(errorLock) { - lock(errorLock) - { - errorsList.Add((files[i].name, n.Name, count)); - } + errorsList.Add((files[i].name, n.Name, count)); } } - }); + } + }); - errors = errorsList; - return !errors.Any(); - } + errors = errorsList; + return !errors.Any(); + } - #endregion + #endregion - #region Utility ============================================================================================================================== + #region Utility ============================================================================================================================== - /// - /// Refresh a process instance - /// - /// - public static ResultErr TryRefresh(ref Process? process, string name, Func> initialize, Action reset) + /// + /// Refresh a process instance + /// + /// + public static ResultErr TryRefresh(ref Process? process, string name, Func> initialize, Action reset) + { + try { - try + //Process not attached - find it in the process list + if (process == null) { - //Process not attached - find it in the process list + process = Process.GetProcesses().FirstOrDefault(i => string.Equals(i.ProcessName.ToLowerInvariant(), name.ToLowerInvariant(), StringComparison.InvariantCulture) && !i.HasExited); if (process == null) { - process = Process.GetProcesses().FirstOrDefault(i => string.Equals(i.ProcessName.ToLowerInvariant(), name.ToLowerInvariant(), StringComparison.InvariantCulture) && !i.HasExited); - if (process == null) - { - return Result.Err(new RefreshError(RefreshErrorReason.ProcessNotRunning, $"Process {name} not running or inaccessible. Try running livesplit as admin.")); - } - else - { - //Propogate init result upwards - return initialize(); - } + return Result.Err(new RefreshError(RefreshErrorReason.ProcessNotRunning, $"Process {name} not running or inaccessible. Try running livesplit as admin.")); } - //Process is attached, make sure it is still running else { - if (process.HasExited) - { - process = null; - reset(); - return Result.Err(new RefreshError(RefreshErrorReason.ProcessExited)); - } - - //Nothing going on, process still running - return Result.Ok(); + //Propogate init result upwards + return initialize(); } } - catch (Exception e) + //Process is attached, make sure it is still running + else { - reset(); - process = null; - - if (e.Message == "Access is denied") + if (process.HasExited) { - return Result.Err(new RefreshError(RefreshErrorReason.AccessDenied, "Access is denied. Make sure you disable easy anti cheat and try running livesplit as admin.")); + process = null; + reset(); + return Result.Err(new RefreshError(RefreshErrorReason.ProcessExited)); } - return RefreshError.FromException(e); + //Nothing going on, process still running + return Result.Ok(); } } - - /// - /// Scan a previously created buffer of bytes for a given pattern, then interpret the data as AMD64 assembly, where the target address is a relative address - /// Returns the static address of the given instruction - /// - private static bool TryScanRelative(this byte[] bytes, long baseAddress, PointerNode pointerNode, out long result) + catch (Exception e) { - result = 0; - var pattern = pointerNode.Pattern.ToBytePattern(); - if (bytes.TryBoyerMooreSearch(pattern, out long scanResult)) + reset(); + process = null; + + if (e.Message == "Access is denied") { - var address = BitConverter.ToInt32(bytes, (int)(scanResult + pointerNode.AddressOffset)); - result = baseAddress + scanResult + address + pointerNode.InstructionSize; - return true; + return Result.Err(new RefreshError(RefreshErrorReason.AccessDenied, "Access is denied. Make sure you disable easy anti cheat and try running livesplit as admin.")); } - return false; + + return RefreshError.FromException(e); } + } - /// - /// Scan a previously created buffer of bytes for a given pattern, then interpret the data as assembly, where the target address is an absolute address - /// - private static bool TryScanAbsolute(this byte[] bytes, long baseAddress, PointerNode pointerNode, out long result) + /// + /// Scan a previously created buffer of bytes for a given pattern, then interpret the data as AMD64 assembly, where the target address is a relative address + /// Returns the static address of the given instruction + /// + private static bool TryScanRelative(this byte[] bytes, long baseAddress, PointerNode pointerNode, out long result) + { + result = 0; + var pattern = pointerNode.Pattern.ToBytePattern(); + if (bytes.TryBoyerMooreSearch(pattern, out long scanResult)) { - result = 0; - var pattern = pointerNode.Pattern.ToBytePattern(); - if (bytes.TryBoyerMooreSearch(pattern, out long scanResult)) - { - scanResult += baseAddress; - if (pointerNode.Offset.HasValue) - { - scanResult += pointerNode.Offset.Value; - } - result = scanResult; - return true; - } - return false; + var address = BitConverter.ToInt32(bytes, (int)(scanResult + pointerNode.AddressOffset)); + result = baseAddress + scanResult + address + pointerNode.InstructionSize; + return true; } + return false; + } - /// - /// Convert a string of hexadecimal symbols with wildcards into an array of bytes (with null as wildcard values) - /// - /// Hex string, separated with whitespaces and ?/??/x/xx as wildcards. Example: "48 8b 05 ? ? ? ? c6 40 18 00" - /// byte representation of the input string - public static byte?[] ToBytePattern(this string pattern) + /// + /// Scan a previously created buffer of bytes for a given pattern, then interpret the data as assembly, where the target address is an absolute address + /// + private static bool TryScanAbsolute(this byte[] bytes, long baseAddress, PointerNode pointerNode, out long result) + { + result = 0; + var pattern = pointerNode.Pattern.ToBytePattern(); + if (bytes.TryBoyerMooreSearch(pattern, out long scanResult)) { - var result = new List(); - pattern = pattern.Replace("\r", string.Empty).Replace("\n", string.Empty); - var split = pattern.Split(new[] { " " }, StringSplitOptions.RemoveEmptyEntries); - - foreach (var s in split) + scanResult += baseAddress; + if (pointerNode.Offset.HasValue) { - if (s != "?" && s != "??" && s != "x" && s != "xx") - { - result.Add(Convert.ToByte(s, 16)); - } - else - { - result.Add(null); - } + scanResult += pointerNode.Offset.Value; } - return result.ToArray(); + result = scanResult; + return true; } + return false; + } + /// + /// Convert a string of hexadecimal symbols with wildcards into an array of bytes (with null as wildcard values) + /// + /// Hex string, separated with whitespaces and ?/??/x/xx as wildcards. Example: "48 8b 05 ? ? ? ? c6 40 18 00" + /// byte representation of the input string + public static byte?[] ToBytePattern(this string pattern) + { + var result = new List(); + pattern = pattern.Replace("\r", string.Empty).Replace("\n", string.Empty); + var split = pattern.Split(new[] { " " }, StringSplitOptions.RemoveEmptyEntries); - /// - /// Searches for needle in haystack with wildcards, based on Boyer–Moore–Horspool - /// https://en.wikipedia.org/wiki/Boyer%E2%80%93Moore%E2%80%93Horspool_algorithm - /// Will return the first match it finds. - /// - public static bool TryBoyerMooreSearch(this byte[] haystack, byte?[] needle, out long result) + foreach (var s in split) { - result = 0; - var lastPatternIndex = needle.Length - 1; - - var diff = lastPatternIndex - Math.Max(Array.LastIndexOf(needle, null), 0); - if (diff == 0) + if (s != "?" && s != "??" && s != "x" && s != "xx") { - diff = 1; + result.Add(Convert.ToByte(s, 16)); } - - var badCharacters = new int[256]; - for (var i = 0; i < badCharacters.Length; i++) + else { - badCharacters[i] = diff; + result.Add(null); } + } + return result.ToArray(); + } - for (var i = lastPatternIndex - diff; i < lastPatternIndex; i++) - { - badCharacters[needle[i] ?? 0] = lastPatternIndex - i; - } - for (var i = 0; i <= haystack.Length - needle.Length; i += Math.Max(badCharacters[haystack[i + lastPatternIndex] & 0xFF], 1)) - { - for (var j = lastPatternIndex; !needle[j].HasValue || haystack[i + j] == needle[j]; --j) - { - if (j == 0) - { - result = i; - return true; - } - } - } + /// + /// Searches for needle in haystack with wildcards, based on Boyer–Moore–Horspool + /// https://en.wikipedia.org/wiki/Boyer%E2%80%93Moore%E2%80%93Horspool_algorithm + /// Will return the first match it finds. + /// + public static bool TryBoyerMooreSearch(this byte[] haystack, byte?[] needle, out long result) + { + result = 0; + var lastPatternIndex = needle.Length - 1; - return false; + var diff = lastPatternIndex - Math.Max(Array.LastIndexOf(needle, null), 0); + if (diff == 0) + { + diff = 1; } - /// - /// Searches for needle in haystack with wildcards, based on Boyer–Moore–Horspool - /// https://en.wikipedia.org/wiki/Boyer%E2%80%93Moore%E2%80%93Horspool_algorithm - /// Will return the first match it finds. - /// - public static List BoyerMooreSearch(this byte[] haystack, byte?[] needle) + var badCharacters = new int[256]; + for (var i = 0; i < badCharacters.Length; i++) { - var result = new List(); - var lastPatternIndex = needle.Length - 1; - - var diff = lastPatternIndex - Math.Max(Array.LastIndexOf(needle, null), 0); - if (diff == 0) - { - diff = 1; - } - - var badCharacters = new int[256]; - for (var i = 0; i < badCharacters.Length; i++) - { - badCharacters[i] = diff; - } + badCharacters[i] = diff; + } - for (var i = lastPatternIndex - diff; i < lastPatternIndex; i++) - { - badCharacters[needle[i] ?? 0] = lastPatternIndex - i; - } + for (var i = lastPatternIndex - diff; i < lastPatternIndex; i++) + { + badCharacters[needle[i] ?? 0] = lastPatternIndex - i; + } - for (var i = 0; i <= haystack.Length - needle.Length; i += Math.Max(badCharacters[haystack[i + lastPatternIndex] & 0xFF], 1)) + for (var i = 0; i <= haystack.Length - needle.Length; i += Math.Max(badCharacters[haystack[i + lastPatternIndex] & 0xFF], 1)) + { + for (var j = lastPatternIndex; !needle[j].HasValue || haystack[i + j] == needle[j]; --j) { - for (var j = lastPatternIndex; !needle[j].HasValue || haystack[i + j] == needle[j]; --j) + if (j == 0) { - if (j == 0) - { - result.Add(i); - break; - } + result = i; + return true; } } + } + + return false; + } + + /// + /// Searches for needle in haystack with wildcards, based on Boyer–Moore–Horspool + /// https://en.wikipedia.org/wiki/Boyer%E2%80%93Moore%E2%80%93Horspool_algorithm + /// Will return the first match it finds. + /// + public static List BoyerMooreSearch(this byte[] haystack, byte?[] needle) + { + var result = new List(); + var lastPatternIndex = needle.Length - 1; - return result; + var diff = lastPatternIndex - Math.Max(Array.LastIndexOf(needle, null), 0); + if (diff == 0) + { + diff = 1; } - /// - /// Searches for needle in haystack with wildcards, based on Boyer–Moore–Horspool - /// https://en.wikipedia.org/wiki/Boyer%E2%80%93Moore%E2%80%93Horspool_algorithm - /// Will return how many matches are found - /// - public static int BoyerMooreCount(this byte[] haystack, byte?[] needle) + var badCharacters = new int[256]; + for (var i = 0; i < badCharacters.Length; i++) { - int result = 0; - var lastPatternIndex = needle.Length - 1; + badCharacters[i] = diff; + } - var diff = lastPatternIndex - Math.Max(Array.LastIndexOf(needle, null), 0); - if (diff == 0) - { - diff = 1; - } + for (var i = lastPatternIndex - diff; i < lastPatternIndex; i++) + { + badCharacters[needle[i] ?? 0] = lastPatternIndex - i; + } - var badCharacters = new int[256]; - for (var i = 0; i < badCharacters.Length; i++) + for (var i = 0; i <= haystack.Length - needle.Length; i += Math.Max(badCharacters[haystack[i + lastPatternIndex] & 0xFF], 1)) + { + for (var j = lastPatternIndex; !needle[j].HasValue || haystack[i + j] == needle[j]; --j) { - badCharacters[i] = diff; + if (j == 0) + { + result.Add(i); + break; + } } + } - for (var i = lastPatternIndex - diff; i < lastPatternIndex; i++) - { - badCharacters[needle[i] ?? 0] = lastPatternIndex - i; - } + return result; + } + + /// + /// Searches for needle in haystack with wildcards, based on Boyer–Moore–Horspool + /// https://en.wikipedia.org/wiki/Boyer%E2%80%93Moore%E2%80%93Horspool_algorithm + /// Will return how many matches are found + /// + public static int BoyerMooreCount(this byte[] haystack, byte?[] needle) + { + int result = 0; + var lastPatternIndex = needle.Length - 1; - for (var i = 0; i <= haystack.Length - needle.Length; i += Math.Max(badCharacters[haystack[i + lastPatternIndex] & 0xFF], 1)) + var diff = lastPatternIndex - Math.Max(Array.LastIndexOf(needle, null), 0); + if (diff == 0) + { + diff = 1; + } + + var badCharacters = new int[256]; + for (var i = 0; i < badCharacters.Length; i++) + { + badCharacters[i] = diff; + } + + for (var i = lastPatternIndex - diff; i < lastPatternIndex; i++) + { + badCharacters[needle[i] ?? 0] = lastPatternIndex - i; + } + + for (var i = 0; i <= haystack.Length - needle.Length; i += Math.Max(badCharacters[haystack[i + lastPatternIndex] & 0xFF], 1)) + { + for (var j = lastPatternIndex; !needle[j].HasValue || haystack[i + j] == needle[j]; --j) { - for (var j = lastPatternIndex; !needle[j].HasValue || haystack[i + j] == needle[j]; --j) + if (j == 0) { - if (j == 0) - { - result++; - break; - } + result++; + break; } } - - return result; } - #endregion + return result; } + + #endregion } diff --git a/src/SoulMemory/Memory/NodeType.cs b/src/SoulMemory/Memory/NodeType.cs index 1012e96..5c46628 100644 --- a/src/SoulMemory/Memory/NodeType.cs +++ b/src/SoulMemory/Memory/NodeType.cs @@ -14,12 +14,11 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -namespace SoulMemory.Memory +namespace SoulMemory.Memory; + +public enum NodeType { - public enum NodeType - { - RelativeScan, - AbsoluteScan, - Pointer, - } + RelativeScan, + AbsoluteScan, + Pointer, } diff --git a/src/SoulMemory/Memory/Pointer.cs b/src/SoulMemory/Memory/Pointer.cs index d230c25..c47d49f 100644 --- a/src/SoulMemory/Memory/Pointer.cs +++ b/src/SoulMemory/Memory/Pointer.cs @@ -21,308 +21,307 @@ using System.Linq; using System.Text; -namespace SoulMemory.Memory +namespace SoulMemory.Memory; + +public class Pointer { - public class Pointer - { - public Process? Process; - public long BaseAddress; - public List Offsets = new List(); - public bool Is64Bit; - private bool _initialized = false; + public Process? Process; + public long BaseAddress; + public List Offsets = new List(); + public bool Is64Bit; + private bool _initialized = false; - public void Initialize(Process process, bool is64Bit, long baseAddress, params long[] offsets) - { - Process = process; - Is64Bit = is64Bit; - BaseAddress = baseAddress; - Offsets = offsets.ToList(); - _initialized = true; - } + public void Initialize(Process process, bool is64Bit, long baseAddress, params long[] offsets) + { + Process = process; + Is64Bit = is64Bit; + BaseAddress = baseAddress; + Offsets = offsets.ToList(); + _initialized = true; + } - public void Clear() - { - _initialized = false; - Process = null; - BaseAddress = 0; - Offsets.Clear(); - } + public void Clear() + { + _initialized = false; + Process = null; + BaseAddress = 0; + Offsets.Clear(); + } - public Pointer Copy() - { - var p = new Pointer(); - p.Initialize(Process!, Is64Bit, BaseAddress, Offsets.ToArray()); - return p; - } + public Pointer Copy() + { + var p = new Pointer(); + p.Initialize(Process!, Is64Bit, BaseAddress, Offsets.ToArray()); + return p; + } - /// - /// Creates a new pointer with the address of the old pointer as base address - /// - /// - public Pointer CreatePointerFromAddress(long? offset = null) + /// + /// Creates a new pointer with the address of the old pointer as base address + /// + /// + public Pointer CreatePointerFromAddress(long? offset = null) + { + var copy = Copy(); + var offsets = Offsets.ToList(); + if (offset.HasValue) { - var copy = Copy(); - var offsets = Offsets.ToList(); - if (offset.HasValue) - { - offsets.Add(offset.Value); - } + offsets.Add(offset.Value); + } - offsets.Add(0); + offsets.Add(0); - copy.BaseAddress = ResolveOffsets(offsets); - copy.Offsets.Clear(); - return copy; - } + copy.BaseAddress = ResolveOffsets(offsets); + copy.Offsets.Clear(); + return copy; + } - + - private long ResolveOffsets(List offsets, StringBuilder? debugStringBuilder = null) + private long ResolveOffsets(List offsets, StringBuilder? debugStringBuilder = null) + { + if (Process == null) { - if (Process == null) - { - return 0; - } + return 0; + } - debugStringBuilder?.Append($" 0x{BaseAddress:x}"); + debugStringBuilder?.Append($" 0x{BaseAddress:x}"); - long ptr = BaseAddress; - for (int i = 0; i < offsets.Count; i++) - { - var offset = offsets[i]; + long ptr = BaseAddress; + for (int i = 0; i < offsets.Count; i++) + { + var offset = offsets[i]; - //Create a copy for debug output - var debugCopy = ptr; + //Create a copy for debug output + var debugCopy = ptr; - //Resolve an offset - var address = ptr + offset; + //Resolve an offset + var address = ptr + offset; - //Not the last offset = resolve as pointer - if (i + 1 < offsets.Count) + //Not the last offset = resolve as pointer + if (i + 1 < offsets.Count) + { + if (Is64Bit) { - if (Is64Bit) - { - ptr = Process.ReadMemory(address).Unwrap(); - } - else - { - ptr = Process.ReadMemory(address).Unwrap(); - } - - debugStringBuilder?.Append($"\r\n[0x{debugCopy:x} + 0x{offset:x}]: 0x{ptr:x}"); - - if (ptr == 0) - { - return 0; - } + ptr = Process.ReadMemory(address).Unwrap(); } else { - ptr = address; - debugStringBuilder?.Append($"\r\n 0x{debugCopy:x} + 0x{offset:x}: 0x{ptr:x}"); + ptr = Process.ReadMemory(address).Unwrap(); } - } - return ptr; - } - - - //Debug representation, shows in IDE - public string Path { get; private set; } = null!; + debugStringBuilder?.Append($"\r\n[0x{debugCopy:x} + 0x{offset:x}]: 0x{ptr:x}"); - public override string ToString() - { - var sb = new StringBuilder(); - ResolveOffsets(Offsets, sb); - Path = sb.ToString(); - return Path; + if (ptr == 0) + { + return 0; + } + } + else + { + ptr = address; + debugStringBuilder?.Append($"\r\n 0x{debugCopy:x} + 0x{offset:x}: 0x{ptr:x}"); + } } - #region Append offsets + return ptr; + } - public Pointer Append(params long[] offsets) - { - var copy = Copy(); - copy.Offsets.AddRange(offsets); - return copy; - } - #endregion + //Debug representation, shows in IDE + public string Path { get; private set; } = null!; - #region Read/write memory + public override string ToString() + { + var sb = new StringBuilder(); + ResolveOffsets(Offsets, sb); + Path = sb.ToString(); + return Path; + } - private byte[] ReadMemory(long? offset, int length) - { - if (!_initialized) - { - return new byte[length]; - } + #region Append offsets - var offsetsCopy = Offsets.ToList(); - if (offset.HasValue) - { - offsetsCopy.Add(offset.Value); - } + public Pointer Append(params long[] offsets) + { + var copy = Copy(); + copy.Offsets.AddRange(offsets); + return copy; + } - var address = ResolveOffsets(offsetsCopy); - var result = Process!.ReadProcessMemory(address, length); - if(result.IsErr) - { - return new byte[length]; - } - return result.Unwrap(); - } + #endregion - private void WriteMemory(long? offset, byte[] bytes) - { - var offsetsCopy = Offsets.ToList(); - if (offset.HasValue) - { - offsetsCopy.Add(offset.Value); - } - var address = ResolveOffsets(offsetsCopy); - Process!.WriteProcessMemory(address, bytes).Unwrap(); - } + #region Read/write memory - public bool IsNullPtr() + private byte[] ReadMemory(long? offset, int length) + { + if (!_initialized) { - return GetAddress() == 0; + return new byte[length]; } - public long GetAddress() + var offsetsCopy = Offsets.ToList(); + if (offset.HasValue) { - return ResolveOffsets(Offsets); + offsetsCopy.Add(offset.Value); } - #region Read - public int ReadInt32(long? offset = null) + var address = ResolveOffsets(offsetsCopy); + var result = Process!.ReadProcessMemory(address, length); + if(result.IsErr) { - return BitConverter.ToInt32(ReadMemory(offset, 4), 0); - } - public uint ReadUInt32(long? offset = null) - { - return BitConverter.ToUInt32(ReadMemory(offset, 4), 0); + return new byte[length]; } + return result.Unwrap(); + } - public long ReadInt64(long? offset = null) + private void WriteMemory(long? offset, byte[] bytes) + { + var offsetsCopy = Offsets.ToList(); + if (offset.HasValue) { - return BitConverter.ToInt64(ReadMemory(offset, 8), 0); + offsetsCopy.Add(offset.Value); } + var address = ResolveOffsets(offsetsCopy); + Process!.WriteProcessMemory(address, bytes).Unwrap(); + } - public bool ReadBool(long? offset = null) - { - return BitConverter.ToBoolean(ReadMemory(offset, 1), 0); - } - public byte ReadByte(long? offset = null) - { - return ReadMemory(offset, 1)[0]; - } + public bool IsNullPtr() + { + return GetAddress() == 0; + } - public short ReadInt16(long? offset = null) - { - return BitConverter.ToInt16(ReadMemory(offset, 2), 0); - } + public long GetAddress() + { + return ResolveOffsets(Offsets); + } - public ushort ReadUInt16(long? offset = null) - { - return BitConverter.ToUInt16(ReadMemory(offset, 2), 0); - } + #region Read + public int ReadInt32(long? offset = null) + { + return BitConverter.ToInt32(ReadMemory(offset, 4), 0); + } + public uint ReadUInt32(long? offset = null) + { + return BitConverter.ToUInt32(ReadMemory(offset, 4), 0); + } - public byte[] ReadBytes(int size, long? offset = null) - { - return ReadMemory(offset, size); - } + public long ReadInt64(long? offset = null) + { + return BitConverter.ToInt64(ReadMemory(offset, 8), 0); + } - public float ReadFloat(long? offset = null) - { - return BitConverter.ToSingle(ReadMemory(offset, 4), 0); - } + public bool ReadBool(long? offset = null) + { + return BitConverter.ToBoolean(ReadMemory(offset, 1), 0); + } + public byte ReadByte(long? offset = null) + { + return ReadMemory(offset, 1)[0]; + } + + public short ReadInt16(long? offset = null) + { + return BitConverter.ToInt16(ReadMemory(offset, 2), 0); + } - public string ReadUnicodeString(out int length, int maxSize = 1000, long? offset = null) + public ushort ReadUInt16(long? offset = null) + { + return BitConverter.ToUInt16(ReadMemory(offset, 2), 0); + } + + public byte[] ReadBytes(int size, long? offset = null) + { + return ReadMemory(offset, size); + } + + public float ReadFloat(long? offset = null) + { + return BitConverter.ToSingle(ReadMemory(offset, 4), 0); + } + + public string ReadUnicodeString(out int length, int maxSize = 1000, long? offset = null) + { + var data = ReadMemory(offset, maxSize); + length = 0; + for (int i = 1; i < data.Length; i++) { - var data = ReadMemory(offset, maxSize); - length = 0; - for (int i = 1; i < data.Length; i++) + if (data[i - 1] == 0 && data[i] == 0) { - if (data[i - 1] == 0 && data[i] == 0) - { - length = i; - break; - } + length = i; + break; } - - return Encoding.Unicode.GetString(data); } - #endregion - #region Write + return Encoding.Unicode.GetString(data); + } + #endregion - public void WriteInt16(short value) => WriteInt16(null, value); + #region Write - public void WriteInt16(long? offset, short value) - { - WriteMemory(offset, BitConverter.GetBytes(value)); - } + public void WriteInt16(short value) => WriteInt16(null, value); - public void WriteUInt16(ushort value) => WriteUInt16(null, value); + public void WriteInt16(long? offset, short value) + { + WriteMemory(offset, BitConverter.GetBytes(value)); + } - public void WriteUInt16(long? offset, ushort value) - { - WriteMemory(offset, BitConverter.GetBytes(value)); - } + public void WriteUInt16(ushort value) => WriteUInt16(null, value); - public void WriteInt32(int value) => WriteInt32(null, value); + public void WriteUInt16(long? offset, ushort value) + { + WriteMemory(offset, BitConverter.GetBytes(value)); + } + public void WriteInt32(int value) => WriteInt32(null, value); - public void WriteInt32(long? offset, int value) - { - WriteMemory(offset, BitConverter.GetBytes(value)); - } - public void WriteUint32(uint value) => WriteUint32(null, value); + public void WriteInt32(long? offset, int value) + { + WriteMemory(offset, BitConverter.GetBytes(value)); + } - public void WriteUint32(long? offset, uint value) - { - WriteMemory(offset, BitConverter.GetBytes(value)); - } + public void WriteUint32(uint value) => WriteUint32(null, value); - public void WriteInt64(long? offset, long value) - { - WriteMemory(offset, BitConverter.GetBytes(value)); - } + public void WriteUint32(long? offset, uint value) + { + WriteMemory(offset, BitConverter.GetBytes(value)); + } - public void WriteBool(long? offset, bool value) - { - WriteMemory(offset, BitConverter.GetBytes(value)); - } + public void WriteInt64(long? offset, long value) + { + WriteMemory(offset, BitConverter.GetBytes(value)); + } - public void WriteByte(long? offset, byte value) - { - WriteMemory(offset, new byte[] { value }); - } + public void WriteBool(long? offset, bool value) + { + WriteMemory(offset, BitConverter.GetBytes(value)); + } - public void WriteSByte(long? offset, sbyte value) - { - var b = unchecked((byte)value); - WriteMemory(offset, new byte[] { b }); - } + public void WriteByte(long? offset, byte value) + { + WriteMemory(offset, new byte[] { value }); + } - public void WriteBytes(long? offset, byte[] value) - { - WriteMemory(offset, value); - } + public void WriteSByte(long? offset, sbyte value) + { + var b = unchecked((byte)value); + WriteMemory(offset, new byte[] { b }); + } - public void WriteFloat(float value) => WriteFloat(null, value); + public void WriteBytes(long? offset, byte[] value) + { + WriteMemory(offset, value); + } - public void WriteFloat(long? offset, float value) - { - WriteMemory(offset, BitConverter.GetBytes(value)); - } - - #endregion + public void WriteFloat(float value) => WriteFloat(null, value); - #endregion + public void WriteFloat(long? offset, float value) + { + WriteMemory(offset, BitConverter.GetBytes(value)); } + + #endregion + + #endregion } diff --git a/src/SoulMemory/Memory/PointerAppender.cs b/src/SoulMemory/Memory/PointerAppender.cs index 0308bb1..08ec221 100644 --- a/src/SoulMemory/Memory/PointerAppender.cs +++ b/src/SoulMemory/Memory/PointerAppender.cs @@ -14,28 +14,27 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -namespace SoulMemory.Memory +namespace SoulMemory.Memory; + +public class PointerAppender { - public class PointerAppender + private readonly PointerNode _pointerNode; + internal PointerAppender(PointerNode pointerNode) { - private readonly PointerNode _pointerNode; - internal PointerAppender(PointerNode pointerNode) - { - _pointerNode = pointerNode; - } + _pointerNode = pointerNode; + } - public PointerAppender AddPointer(Pointer pointer, params long[] offsets) + public PointerAppender AddPointer(Pointer pointer, params long[] offsets) + { + var node = new PointerNode { - var node = new PointerNode - { - NodeType = NodeType.Pointer, - Name = _pointerNode.Name, - Pattern = _pointerNode.Pattern, - Offsets = offsets, - Pointer = pointer, - }; - _pointerNode.Pointers.Add(node); - return this; - } + NodeType = NodeType.Pointer, + Name = _pointerNode.Name, + Pattern = _pointerNode.Pattern, + Offsets = offsets, + Pointer = pointer, + }; + _pointerNode.Pointers.Add(node); + return this; } } diff --git a/src/SoulMemory/Memory/PointerNode.cs b/src/SoulMemory/Memory/PointerNode.cs index 4a3306e..b06c533 100644 --- a/src/SoulMemory/Memory/PointerNode.cs +++ b/src/SoulMemory/Memory/PointerNode.cs @@ -16,29 +16,28 @@ using System.Collections.Generic; -namespace SoulMemory.Memory +namespace SoulMemory.Memory; + +public class PointerNode { - public class PointerNode - { - public NodeType NodeType; + public NodeType NodeType; - //Used for scans - public string Name = ""; - public string Pattern = ""; + //Used for scans + public string Name = ""; + public string Pattern = ""; - //Used for relative scans - public long AddressOffset; - public long InstructionSize; + //Used for relative scans + public long AddressOffset; + public long InstructionSize; - //used for absolute scans - public long? Offset; + //used for absolute scans + public long? Offset; - //used for pointers - public long[] Offsets = new long[] { }; - public Pointer Pointer = new Pointer(); + //used for pointers + public long[] Offsets = new long[] { }; + public Pointer Pointer = new Pointer(); - public List Pointers = new List(); + public List Pointers = new List(); - public override string ToString() => Name; - } + public override string ToString() => Name; } diff --git a/src/SoulMemory/Memory/TreeBuilder.cs b/src/SoulMemory/Memory/TreeBuilder.cs index f1dc86c..474f751 100644 --- a/src/SoulMemory/Memory/TreeBuilder.cs +++ b/src/SoulMemory/Memory/TreeBuilder.cs @@ -16,42 +16,41 @@ using System.Collections.Generic; -namespace SoulMemory.Memory +namespace SoulMemory.Memory; + +/// +/// A TreeBuilder lets you define a data tree, from scans and offsets, that end in pointers. +/// The tree doesn't do anything on it's own, but you can pass it to the MemoryScanner to resolve the pointers, +/// or to validate the patterns. +/// +public class TreeBuilder { - /// - /// A TreeBuilder lets you define a data tree, from scans and offsets, that end in pointers. - /// The tree doesn't do anything on it's own, but you can pass it to the MemoryScanner to resolve the pointers, - /// or to validate the patterns. - /// - public class TreeBuilder - { - public List Tree = new List(); + public List Tree = new List(); - public PointerAppender ScanRelative(string name, string pattern, long addressOffset, long instructionSize) + public PointerAppender ScanRelative(string name, string pattern, long addressOffset, long instructionSize) + { + var node = new PointerNode { - var node = new PointerNode - { - NodeType = NodeType.RelativeScan, - Name = name, - Pattern = pattern, - AddressOffset = addressOffset, - InstructionSize = instructionSize, - }; - Tree.Add(node); - return new PointerAppender(node); - } + NodeType = NodeType.RelativeScan, + Name = name, + Pattern = pattern, + AddressOffset = addressOffset, + InstructionSize = instructionSize, + }; + Tree.Add(node); + return new PointerAppender(node); + } - public PointerAppender ScanAbsolute(string name, string pattern, long? offset) + public PointerAppender ScanAbsolute(string name, string pattern, long? offset) + { + var node = new PointerNode { - var node = new PointerNode - { - NodeType = NodeType.AbsoluteScan, - Name = name, - Pattern = pattern, - Offset = offset, - }; - Tree.Add(node); - return new PointerAppender(node); - } + NodeType = NodeType.AbsoluteScan, + Name = name, + Pattern = pattern, + Offset = offset, + }; + Tree.Add(node); + return new PointerAppender(node); } } diff --git a/src/SoulMemory/MemoryV2/ByteArrayMemory.cs b/src/SoulMemory/MemoryV2/ByteArrayMemory.cs index db43173..3b1fa42 100644 --- a/src/SoulMemory/MemoryV2/ByteArrayMemory.cs +++ b/src/SoulMemory/MemoryV2/ByteArrayMemory.cs @@ -17,32 +17,31 @@ using System; using SoulMemory.MemoryV2.Memory; -namespace SoulMemory.MemoryV2 +namespace SoulMemory.MemoryV2; + +/// +/// IMemory access to an array of memory. Allows resolving pointers and reading data/writing data. +/// +public class ByteArrayMemory : IMemory { - /// - /// IMemory access to an array of memory. Allows resolving pointers and reading data/writing data. - /// - public class ByteArrayMemory : IMemory + private readonly byte[] _data; + public ByteArrayMemory(byte[] data) { - private readonly byte[] _data; - public ByteArrayMemory(byte[] data) - { - _data = data; - } + _data = data; + } - public byte[] ReadBytes(long offset, int length) - { - var buffer = new byte[length]; - Array.Copy(_data, offset, buffer, 0, length); - return buffer; - } + public byte[] ReadBytes(long offset, int length) + { + var buffer = new byte[length]; + Array.Copy(_data, offset, buffer, 0, length); + return buffer; + } - public void WriteBytes(long offset, byte[] bytes) + public void WriteBytes(long offset, byte[] bytes) + { + for (int i = 0; i < bytes.Length; i++) { - for (int i = 0; i < bytes.Length; i++) - { - _data[offset + i] = bytes[i]; - } + _data[offset + i] = bytes[i]; } } } diff --git a/src/SoulMemory/MemoryV2/Memory/IMemory.cs b/src/SoulMemory/MemoryV2/Memory/IMemory.cs index face6cd..0ea219c 100644 --- a/src/SoulMemory/MemoryV2/Memory/IMemory.cs +++ b/src/SoulMemory/MemoryV2/Memory/IMemory.cs @@ -14,14 +14,13 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -namespace SoulMemory.MemoryV2.Memory +namespace SoulMemory.MemoryV2.Memory; + +/// +/// Abstracts a resource that can be read from and written to +/// +public interface IMemory { - /// - /// Abstracts a resource that can be read from and written to - /// - public interface IMemory - { - byte[] ReadBytes(long offset, int length); - void WriteBytes(long offset, byte[] bytes); - } + byte[] ReadBytes(long offset, int length); + void WriteBytes(long offset, byte[] bytes); } diff --git a/src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs b/src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs index 444dfe9..89417b0 100644 --- a/src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs +++ b/src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs @@ -18,154 +18,153 @@ using System.Linq; using System.Text; -namespace SoulMemory.MemoryV2.Memory +namespace SoulMemory.MemoryV2.Memory; + +public static class MemoryExtensions { - public static class MemoryExtensions - { - #region Pointers + #region Pointers - public static Pointer Pointer64(this IMemory memory, params long[] offsets) + public static Pointer Pointer64(this IMemory memory, params long[] offsets) + { + var sourceMemory = memory; + + if (memory is Pointer p) { - var sourceMemory = memory; - - if (memory is Pointer p) - { - //Pointers read memory relatively, must get their source to keep reading correctly - sourceMemory = p.Memory; - var temp = p.Path.Select(i => i.Offset).ToList(); - temp.AddRange(offsets); - offsets = temp.ToArray(); - } - - return new Pointer(sourceMemory, offsets); + //Pointers read memory relatively, must get their source to keep reading correctly + sourceMemory = p.Memory; + var temp = p.Path.Select(i => i.Offset).ToList(); + temp.AddRange(offsets); + offsets = temp.ToArray(); } - #endregion + return new Pointer(sourceMemory, offsets); + } - #region Reading - - public static byte ReadByte(this IMemory memory, long offset) - { - return memory.ReadBytes(offset, 1)[0]; - } + #endregion - public static sbyte ReadSByte(this IMemory memory, long offset) - { - var b = memory.ReadBytes(offset, 1)[0]; - return unchecked((sbyte)b); //unchecked -> overflow allowed - } + #region Reading + + public static byte ReadByte(this IMemory memory, long offset) + { + return memory.ReadBytes(offset, 1)[0]; + } - public static short ReadInt16(this IMemory memory, long offset) - { - return BitConverter.ToInt16(memory.ReadBytes(offset, 2), 0); - } + public static sbyte ReadSByte(this IMemory memory, long offset) + { + var b = memory.ReadBytes(offset, 1)[0]; + return unchecked((sbyte)b); //unchecked -> overflow allowed + } - public static ushort ReadUInt16(this IMemory memory, long offset) - { - return BitConverter.ToUInt16(memory.ReadBytes(offset, 2), 0); - } - - public static int ReadInt32(this IMemory memory, long offset) - { - return BitConverter.ToInt32(memory.ReadBytes(offset, 4), 0); - } + public static short ReadInt16(this IMemory memory, long offset) + { + return BitConverter.ToInt16(memory.ReadBytes(offset, 2), 0); + } - public static uint ReadUInt32(this IMemory memory, long offset) - { - return BitConverter.ToUInt32(memory.ReadBytes(offset, 4), 0); - } - - public static long ReadInt64(this IMemory memory, long offset) - { - return BitConverter.ToInt64(memory.ReadBytes(offset, 8), 0); - } + public static ushort ReadUInt16(this IMemory memory, long offset) + { + return BitConverter.ToUInt16(memory.ReadBytes(offset, 2), 0); + } + + public static int ReadInt32(this IMemory memory, long offset) + { + return BitConverter.ToInt32(memory.ReadBytes(offset, 4), 0); + } - public static ulong ReadUInt64(this IMemory memory, long offset) - { - return BitConverter.ToUInt64(memory.ReadBytes(offset, 8), 0); - } + public static uint ReadUInt32(this IMemory memory, long offset) + { + return BitConverter.ToUInt32(memory.ReadBytes(offset, 4), 0); + } + + public static long ReadInt64(this IMemory memory, long offset) + { + return BitConverter.ToInt64(memory.ReadBytes(offset, 8), 0); + } - public static float ReadFloat(this IMemory memory, long offset) - { - return BitConverter.ToSingle(memory.ReadBytes(offset, 4), 0); - } + public static ulong ReadUInt64(this IMemory memory, long offset) + { + return BitConverter.ToUInt64(memory.ReadBytes(offset, 8), 0); + } - public static double ReadDouble(this IMemory memory, long offset) - { - return BitConverter.ToDouble(memory.ReadBytes(offset, 8), 0); - } + public static float ReadFloat(this IMemory memory, long offset) + { + return BitConverter.ToSingle(memory.ReadBytes(offset, 4), 0); + } - public static string ReadUnicodeString(this IMemory memory, long offset, out int length, int maxSize = 1000) + public static double ReadDouble(this IMemory memory, long offset) + { + return BitConverter.ToDouble(memory.ReadBytes(offset, 8), 0); + } + + public static string ReadUnicodeString(this IMemory memory, long offset, out int length, int maxSize = 1000) + { + var data = memory.ReadBytes(offset, maxSize); + length = 0; + for (int i = 1; i < data.Length; i++) { - var data = memory.ReadBytes(offset, maxSize); - length = 0; - for (int i = 1; i < data.Length; i++) + if (data[i - 1] == 0 && data[i] == 0) { - if (data[i - 1] == 0 && data[i] == 0) - { - length = i; - break; - } + length = i; + break; } - - return Encoding.Unicode.GetString(data); } + + return Encoding.Unicode.GetString(data); + } - #endregion + #endregion - #region Writing - - public static void WriteByte(this IMemory memory, long offset, byte value) - { - memory.WriteBytes(offset, new byte[] { value }); - } - - public static void WriteSByte(this IMemory memory, long offset, sbyte value) - { - var b = unchecked((byte)value); - memory.WriteBytes(offset, new byte[] { b }); - } + #region Writing + + public static void WriteByte(this IMemory memory, long offset, byte value) + { + memory.WriteBytes(offset, new byte[] { value }); + } - public static void WriteInt16(this IMemory memory, long offset, short value) - { - memory.WriteBytes(offset, BitConverter.GetBytes(value)); - } - - public static void WriteUInt16(this IMemory memory, long offset, ushort value) - { - memory.WriteBytes(offset, BitConverter.GetBytes(value)); - } + public static void WriteSByte(this IMemory memory, long offset, sbyte value) + { + var b = unchecked((byte)value); + memory.WriteBytes(offset, new byte[] { b }); + } - public static void WriteInt32(this IMemory memory, long offset, int value) - { - memory.WriteBytes(offset, BitConverter.GetBytes(value)); - } - - public static void WriteUInt32(this IMemory memory, long offset, uint value) - { - memory.WriteBytes(offset, BitConverter.GetBytes(value)); - } + public static void WriteInt16(this IMemory memory, long offset, short value) + { + memory.WriteBytes(offset, BitConverter.GetBytes(value)); + } + + public static void WriteUInt16(this IMemory memory, long offset, ushort value) + { + memory.WriteBytes(offset, BitConverter.GetBytes(value)); + } - public static void WriteInt64(this IMemory memory, long offset, long value) - { - memory.WriteBytes(offset, BitConverter.GetBytes(value)); - } + public static void WriteInt32(this IMemory memory, long offset, int value) + { + memory.WriteBytes(offset, BitConverter.GetBytes(value)); + } + + public static void WriteUInt32(this IMemory memory, long offset, uint value) + { + memory.WriteBytes(offset, BitConverter.GetBytes(value)); + } - public static void WriteUInt64(this IMemory memory, long offset, ulong value) - { - memory.WriteBytes(offset, BitConverter.GetBytes(value)); - } + public static void WriteInt64(this IMemory memory, long offset, long value) + { + memory.WriteBytes(offset, BitConverter.GetBytes(value)); + } - public static void WriteFloat(this IMemory memory, long offset, float value) - { - memory.WriteBytes(offset, BitConverter.GetBytes(value)); - } + public static void WriteUInt64(this IMemory memory, long offset, ulong value) + { + memory.WriteBytes(offset, BitConverter.GetBytes(value)); + } - public static void WriteDouble(this IMemory memory, long offset, double value) - { - memory.WriteBytes(offset, BitConverter.GetBytes(value)); - } + public static void WriteFloat(this IMemory memory, long offset, float value) + { + memory.WriteBytes(offset, BitConverter.GetBytes(value)); + } - #endregion + public static void WriteDouble(this IMemory memory, long offset, double value) + { + memory.WriteBytes(offset, BitConverter.GetBytes(value)); } + + #endregion } diff --git a/src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs b/src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs index f160479..22f9692 100644 --- a/src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs +++ b/src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs @@ -21,291 +21,290 @@ using System.Threading.Tasks; using SoulMemory.MemoryV2.PointerTreeBuilder; -namespace SoulMemory.MemoryV2.Memory +namespace SoulMemory.MemoryV2.Memory; + +public static class MemoryScanner { - public static class MemoryScanner + #region Validate patterns from file ============================================================================================================================== + + /// + /// Validate patterns in a TreeBuilder by counting the patterns in a given file. + /// + public static bool TryValidatePatterns(PointerTreeBuilder.PointerTreeBuilder treeBuilder, List filepaths, out List<(string fileName, string patternName, long count)> errors) { - #region Validate patterns from file ============================================================================================================================== + var files = new List<(string name, byte[] bytes)>(); - /// - /// Validate patterns in a TreeBuilder by counting the patterns in a given file. - /// - public static bool TryValidatePatterns(PointerTreeBuilder.PointerTreeBuilder treeBuilder, List filepaths, out List<(string fileName, string patternName, long count)> errors) + foreach (var path in filepaths) { - var files = new List<(string name, byte[] bytes)>(); - - foreach (var path in filepaths) - { - files.Add((Path.GetFileName(path), File.ReadAllBytes(path))); - } + files.Add((Path.GetFileName(path), File.ReadAllBytes(path))); + } - object errorLock = new object(); - var errorsList = new List<(string fileName, string patternName, long count)>(); + object errorLock = new object(); + var errorsList = new List<(string fileName, string patternName, long count)>(); - //Count every pattern in every file; any count that returns something other than 1 is either missing or not exclusive, and thus erroneaus - Parallel.For(0, files.Count, i => + //Count every pattern in every file; any count that returns something other than 1 is either missing or not exclusive, and thus erroneaus + Parallel.For(0, files.Count, i => + { + foreach (var n in treeBuilder.Tree) { - foreach (var n in treeBuilder.Tree) + var pattern = n.Pattern.ToBytePattern(); + var count = files[i].bytes.BoyerMooreCount(pattern); //BoyerMooreCount + if (count != 1) { - var pattern = n.Pattern.ToBytePattern(); - var count = files[i].bytes.BoyerMooreCount(pattern); //BoyerMooreCount - if (count != 1) + lock (errorLock) { - lock (errorLock) - { - errorsList.Add((files[i].name, n.Name, count)); - } + errorsList.Add((files[i].name, n.Name, count)); } } - }); + } + }); - errors = errorsList; - return !errors.Any(); - } + errors = errorsList; + return !errors.Any(); + } - #endregion + #endregion - #region Utility ============================================================================================================================== + #region Utility ============================================================================================================================== - /// - /// Refresh a process instance - /// - /// - public static ResultErr TryRefresh(ref System.Diagnostics.Process? process, string name, Func> initialize, Action reset) + /// + /// Refresh a process instance + /// + /// + public static ResultErr TryRefresh(ref System.Diagnostics.Process? process, string name, Func> initialize, Action reset) + { + try { - try + //Process not attached - find it in the process list + if (process == null) { - //Process not attached - find it in the process list + process = System.Diagnostics.Process.GetProcesses().FirstOrDefault(i => i.ProcessName.ToLower() == name.ToLower() && !i.HasExited); if (process == null) { - process = System.Diagnostics.Process.GetProcesses().FirstOrDefault(i => i.ProcessName.ToLower() == name.ToLower() && !i.HasExited); - if (process == null) - { - return Result.Err(new RefreshError(RefreshErrorReason.ProcessNotRunning, $"Process {name} not running or inaccessible. Try running livesplit as admin.")); - } - else - { - //Propogate init result upwards - return initialize(); - } + return Result.Err(new RefreshError(RefreshErrorReason.ProcessNotRunning, $"Process {name} not running or inaccessible. Try running livesplit as admin.")); } - //Process is attached, make sure it is still running else { - if (process.HasExited) - { - process = null; - reset(); - return Result.Err(new RefreshError(RefreshErrorReason.ProcessExited)); - } - - //Nothing going on, process still running - return Result.Ok(); + //Propogate init result upwards + return initialize(); } } - catch (Exception e) + //Process is attached, make sure it is still running + else { - reset(); - process = null; - - if (e.Message == "Access is denied") + if (process.HasExited) { - return Result.Err(new RefreshError(RefreshErrorReason.AccessDenied, "Access is denied. Make sure you disable easy anti cheat and try running livesplit as admin.")); + process = null; + reset(); + return Result.Err(new RefreshError(RefreshErrorReason.ProcessExited)); } - return RefreshError.FromException(e); + //Nothing going on, process still running + return Result.Ok(); } } - - /// - /// Scan a previously created buffer of bytes for a given pattern, then interpret the data as AMD64 assembly, where the target address is a relative address - /// Returns the static address of the given instruction - /// - public static bool TryScanRelative(this byte[] bytes, long baseAddress, PointerNode pointerNode, out long result) + catch (Exception e) { - result = 0; - var pattern = pointerNode.Pattern.ToBytePattern(); - if (bytes.TryBoyerMooreSearch(pattern, out long scanResult)) + reset(); + process = null; + + if (e.Message == "Access is denied") { - var address = BitConverter.ToInt32(bytes, (int)(scanResult + pointerNode.AddressOffset)); - result = baseAddress + scanResult + address + pointerNode.InstructionSize; - return true; + return Result.Err(new RefreshError(RefreshErrorReason.AccessDenied, "Access is denied. Make sure you disable easy anti cheat and try running livesplit as admin.")); } - return false; + + return RefreshError.FromException(e); } + } - /// - /// Scan a previously created buffer of bytes for a given pattern, then interpret the data as assembly, where the target address is an absolute address - /// - public static bool TryScanAbsolute(this byte[] bytes, long baseAddress, PointerNode pointerNode, out long result) + /// + /// Scan a previously created buffer of bytes for a given pattern, then interpret the data as AMD64 assembly, where the target address is a relative address + /// Returns the static address of the given instruction + /// + public static bool TryScanRelative(this byte[] bytes, long baseAddress, PointerNode pointerNode, out long result) + { + result = 0; + var pattern = pointerNode.Pattern.ToBytePattern(); + if (bytes.TryBoyerMooreSearch(pattern, out long scanResult)) { - result = 0; - var pattern = pointerNode.Pattern.ToBytePattern(); - if (bytes.TryBoyerMooreSearch(pattern, out long scanResult)) - { - scanResult += baseAddress; - if (pointerNode.Offset.HasValue) - { - scanResult += pointerNode.Offset.Value; - } - result = scanResult; - return true; - } - return false; + var address = BitConverter.ToInt32(bytes, (int)(scanResult + pointerNode.AddressOffset)); + result = baseAddress + scanResult + address + pointerNode.InstructionSize; + return true; } + return false; + } - /// - /// Convert a string of hexadecimal symbols with wildcards into an array of bytes (with null as wildcard values) - /// - /// Hex string, separated with whitespaces and ?/??/x/xx as wildcards. Example: "48 8b 05 ? ? ? ? c6 40 18 00" - /// byte representation of the input string - public static byte?[] ToBytePattern(this string pattern) + /// + /// Scan a previously created buffer of bytes for a given pattern, then interpret the data as assembly, where the target address is an absolute address + /// + public static bool TryScanAbsolute(this byte[] bytes, long baseAddress, PointerNode pointerNode, out long result) + { + result = 0; + var pattern = pointerNode.Pattern.ToBytePattern(); + if (bytes.TryBoyerMooreSearch(pattern, out long scanResult)) { - var result = new List(); - pattern = pattern.Replace("\r", string.Empty).Replace("\n", string.Empty); - var split = pattern.Split(new[] { " " }, StringSplitOptions.RemoveEmptyEntries); - - foreach (var s in split) + scanResult += baseAddress; + if (pointerNode.Offset.HasValue) { - if (s != "?" && s != "??" && s != "x" && s != "xx") - { - result.Add(Convert.ToByte(s, 16)); - } - else - { - result.Add(null); - } + scanResult += pointerNode.Offset.Value; } - return result.ToArray(); + result = scanResult; + return true; } + return false; + } + /// + /// Convert a string of hexadecimal symbols with wildcards into an array of bytes (with null as wildcard values) + /// + /// Hex string, separated with whitespaces and ?/??/x/xx as wildcards. Example: "48 8b 05 ? ? ? ? c6 40 18 00" + /// byte representation of the input string + public static byte?[] ToBytePattern(this string pattern) + { + var result = new List(); + pattern = pattern.Replace("\r", string.Empty).Replace("\n", string.Empty); + var split = pattern.Split(new[] { " " }, StringSplitOptions.RemoveEmptyEntries); - /// - /// Searches for needle in haystack with wildcards, based on Boyer–Moore–Horspool - /// https://en.wikipedia.org/wiki/Boyer%E2%80%93Moore%E2%80%93Horspool_algorithm - /// Will return the first match it finds. - /// - public static bool TryBoyerMooreSearch(this byte[] haystack, byte?[] needle, out long result) + foreach (var s in split) { - result = 0; - var lastPatternIndex = needle.Length - 1; - - var diff = lastPatternIndex - Math.Max(Array.LastIndexOf(needle, null), 0); - if (diff == 0) + if (s != "?" && s != "??" && s != "x" && s != "xx") { - diff = 1; + result.Add(Convert.ToByte(s, 16)); } - - var badCharacters = new int[256]; - for (var i = 0; i < badCharacters.Length; i++) + else { - badCharacters[i] = diff; + result.Add(null); } + } + return result.ToArray(); + } - for (var i = lastPatternIndex - diff; i < lastPatternIndex; i++) - { - badCharacters[needle[i] ?? 0] = lastPatternIndex - i; - } - for (var i = 0; i <= haystack.Length - needle.Length; i += Math.Max(badCharacters[haystack[i + lastPatternIndex] & 0xFF], 1)) - { - for (var j = lastPatternIndex; !needle[j].HasValue || haystack[i + j] == needle[j]; --j) - { - if (j == 0) - { - result = i; - return true; - } - } - } + /// + /// Searches for needle in haystack with wildcards, based on Boyer–Moore–Horspool + /// https://en.wikipedia.org/wiki/Boyer%E2%80%93Moore%E2%80%93Horspool_algorithm + /// Will return the first match it finds. + /// + public static bool TryBoyerMooreSearch(this byte[] haystack, byte?[] needle, out long result) + { + result = 0; + var lastPatternIndex = needle.Length - 1; - return false; + var diff = lastPatternIndex - Math.Max(Array.LastIndexOf(needle, null), 0); + if (diff == 0) + { + diff = 1; } - /// - /// Searches for needle in haystack with wildcards, based on Boyer–Moore–Horspool - /// https://en.wikipedia.org/wiki/Boyer%E2%80%93Moore%E2%80%93Horspool_algorithm - /// Will return the first match it finds. - /// - public static List BoyerMooreSearch(this byte[] haystack, byte?[] needle) + var badCharacters = new int[256]; + for (var i = 0; i < badCharacters.Length; i++) { - var result = new List(); - var lastPatternIndex = needle.Length - 1; - - var diff = lastPatternIndex - Math.Max(Array.LastIndexOf(needle, null), 0); - if (diff == 0) - { - diff = 1; - } - - var badCharacters = new int[256]; - for (var i = 0; i < badCharacters.Length; i++) - { - badCharacters[i] = diff; - } + badCharacters[i] = diff; + } - for (var i = lastPatternIndex - diff; i < lastPatternIndex; i++) - { - badCharacters[needle[i] ?? 0] = lastPatternIndex - i; - } + for (var i = lastPatternIndex - diff; i < lastPatternIndex; i++) + { + badCharacters[needle[i] ?? 0] = lastPatternIndex - i; + } - for (var i = 0; i <= haystack.Length - needle.Length; i += Math.Max(badCharacters[haystack[i + lastPatternIndex] & 0xFF], 1)) + for (var i = 0; i <= haystack.Length - needle.Length; i += Math.Max(badCharacters[haystack[i + lastPatternIndex] & 0xFF], 1)) + { + for (var j = lastPatternIndex; !needle[j].HasValue || haystack[i + j] == needle[j]; --j) { - for (var j = lastPatternIndex; !needle[j].HasValue || haystack[i + j] == needle[j]; --j) + if (j == 0) { - if (j == 0) - { - result.Add(i); - break; - } + result = i; + return true; } } + } + + return false; + } - return result; + /// + /// Searches for needle in haystack with wildcards, based on Boyer–Moore–Horspool + /// https://en.wikipedia.org/wiki/Boyer%E2%80%93Moore%E2%80%93Horspool_algorithm + /// Will return the first match it finds. + /// + public static List BoyerMooreSearch(this byte[] haystack, byte?[] needle) + { + var result = new List(); + var lastPatternIndex = needle.Length - 1; + + var diff = lastPatternIndex - Math.Max(Array.LastIndexOf(needle, null), 0); + if (diff == 0) + { + diff = 1; } - /// - /// Searches for needle in haystack with wildcards, based on Boyer–Moore–Horspool - /// https://en.wikipedia.org/wiki/Boyer%E2%80%93Moore%E2%80%93Horspool_algorithm - /// Will return how many matches are found - /// - public static int BoyerMooreCount(this byte[] haystack, byte?[] needle) + var badCharacters = new int[256]; + for (var i = 0; i < badCharacters.Length; i++) { - int result = 0; - var lastPatternIndex = needle.Length - 1; + badCharacters[i] = diff; + } - var diff = lastPatternIndex - Math.Max(Array.LastIndexOf(needle, null), 0); - if (diff == 0) - { - diff = 1; - } + for (var i = lastPatternIndex - diff; i < lastPatternIndex; i++) + { + badCharacters[needle[i] ?? 0] = lastPatternIndex - i; + } - var badCharacters = new int[256]; - for (var i = 0; i < badCharacters.Length; i++) + for (var i = 0; i <= haystack.Length - needle.Length; i += Math.Max(badCharacters[haystack[i + lastPatternIndex] & 0xFF], 1)) + { + for (var j = lastPatternIndex; !needle[j].HasValue || haystack[i + j] == needle[j]; --j) { - badCharacters[i] = diff; + if (j == 0) + { + result.Add(i); + break; + } } + } - for (var i = lastPatternIndex - diff; i < lastPatternIndex; i++) - { - badCharacters[needle[i] ?? 0] = lastPatternIndex - i; - } + return result; + } + + /// + /// Searches for needle in haystack with wildcards, based on Boyer–Moore–Horspool + /// https://en.wikipedia.org/wiki/Boyer%E2%80%93Moore%E2%80%93Horspool_algorithm + /// Will return how many matches are found + /// + public static int BoyerMooreCount(this byte[] haystack, byte?[] needle) + { + int result = 0; + var lastPatternIndex = needle.Length - 1; - for (var i = 0; i <= haystack.Length - needle.Length; i += Math.Max(badCharacters[haystack[i + lastPatternIndex] & 0xFF], 1)) + var diff = lastPatternIndex - Math.Max(Array.LastIndexOf(needle, null), 0); + if (diff == 0) + { + diff = 1; + } + + var badCharacters = new int[256]; + for (var i = 0; i < badCharacters.Length; i++) + { + badCharacters[i] = diff; + } + + for (var i = lastPatternIndex - diff; i < lastPatternIndex; i++) + { + badCharacters[needle[i] ?? 0] = lastPatternIndex - i; + } + + for (var i = 0; i <= haystack.Length - needle.Length; i += Math.Max(badCharacters[haystack[i + lastPatternIndex] & 0xFF], 1)) + { + for (var j = lastPatternIndex; !needle[j].HasValue || haystack[i + j] == needle[j]; --j) { - for (var j = lastPatternIndex; !needle[j].HasValue || haystack[i + j] == needle[j]; --j) + if (j == 0) { - if (j == 0) - { - result++; - break; - } + result++; + break; } } - - return result; } - #endregion + return result; } + + #endregion } diff --git a/src/SoulMemory/MemoryV2/Memory/Pointer.cs b/src/SoulMemory/MemoryV2/Memory/Pointer.cs index 10e8103..eb1d48f 100644 --- a/src/SoulMemory/MemoryV2/Memory/Pointer.cs +++ b/src/SoulMemory/MemoryV2/Memory/Pointer.cs @@ -19,66 +19,65 @@ using System.Linq; using System.Text; -namespace SoulMemory.MemoryV2.Memory +namespace SoulMemory.MemoryV2.Memory; + +public class Pointer : IMemory { - public class Pointer : IMemory - { - public readonly IMemory Memory; - public List Path; - public long AbsoluteOffset = 0; + public readonly IMemory Memory; + public List Path; + public long AbsoluteOffset = 0; - public Pointer(IMemory memory) + public Pointer(IMemory memory) + { + if (memory is Pointer) { - if (memory is Pointer) - { - throw new ArgumentException("Can't initialize pointer object with another pointer.", nameof(memory)); - } - - Memory = memory; - Path = new List(); + throw new ArgumentException("Can't initialize pointer object with another pointer.", nameof(memory)); } - public Pointer(IMemory memory, params long[] offsets) - { - if (memory is Pointer) - { - throw new ArgumentException("Can't initialize pointer object with another pointer.", nameof(memory)); - } + Memory = memory; + Path = new List(); + } - Memory = memory; - Path = offsets.Select(i => new PointerPath { Address = 0, Offset = i }).ToList(); + public Pointer(IMemory memory, params long[] offsets) + { + if (memory is Pointer) + { + throw new ArgumentException("Can't initialize pointer object with another pointer.", nameof(memory)); } - public long ResolveOffsets() - { - long currentAddress = AbsoluteOffset;//0 for standard pointers. Only has a value when coming from an absolute scan + Memory = memory; + Path = offsets.Select(i => new PointerPath { Address = 0, Offset = i }).ToList(); + } - //Resolve offsets - foreach (var step in Path) - { - currentAddress = Memory.ReadInt64(currentAddress + step.Offset); - step.Address = currentAddress; - } + public long ResolveOffsets() + { + long currentAddress = AbsoluteOffset;//0 for standard pointers. Only has a value when coming from an absolute scan - return currentAddress; + //Resolve offsets + foreach (var step in Path) + { + currentAddress = Memory.ReadInt64(currentAddress + step.Offset); + step.Address = currentAddress; } - public override string ToString() - { - //Populate path - ResolveOffsets(); + return currentAddress; + } - //Format - var stringBuilder = new StringBuilder(); - foreach (var p in Path) - { - stringBuilder.AppendLine($"0x{p.Offset:x8} - 0x{p.Address:x8}"); - } + public override string ToString() + { + //Populate path + ResolveOffsets(); - return stringBuilder.ToString(); + //Format + var stringBuilder = new StringBuilder(); + foreach (var p in Path) + { + stringBuilder.AppendLine($"0x{p.Offset:x8} - 0x{p.Address:x8}"); } - public byte[] ReadBytes(long offset, int length) => Memory.ReadBytes(ResolveOffsets() + offset, length); - public void WriteBytes(long offset, byte[] bytes) => Memory.WriteBytes(ResolveOffsets() + offset, bytes); + return stringBuilder.ToString(); } + + public byte[] ReadBytes(long offset, int length) => Memory.ReadBytes(ResolveOffsets() + offset, length); + public void WriteBytes(long offset, byte[] bytes) => Memory.WriteBytes(ResolveOffsets() + offset, bytes); } diff --git a/src/SoulMemory/MemoryV2/Memory/PointerPath.cs b/src/SoulMemory/MemoryV2/Memory/PointerPath.cs index 2752458..d61e2a9 100644 --- a/src/SoulMemory/MemoryV2/Memory/PointerPath.cs +++ b/src/SoulMemory/MemoryV2/Memory/PointerPath.cs @@ -14,16 +14,15 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -namespace SoulMemory.MemoryV2.Memory +namespace SoulMemory.MemoryV2.Memory; + +public class PointerPath { - public class PointerPath - { - public long Offset; - public long Address; + public long Offset; + public long Address; - public override string ToString() - { - return $"0x{Offset:x8} - 0x{Address:x8}"; - } + public override string ToString() + { + return $"0x{Offset:x8} - 0x{Address:x8}"; } } diff --git a/src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerAppender.cs b/src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerAppender.cs index 2ed11bb..1041bef 100644 --- a/src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerAppender.cs +++ b/src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerAppender.cs @@ -16,28 +16,27 @@ using SoulMemory.MemoryV2.Memory; -namespace SoulMemory.MemoryV2.PointerTreeBuilder +namespace SoulMemory.MemoryV2.PointerTreeBuilder; + +public class PointerAppender { - public class PointerAppender + private readonly PointerNode _pointerNode; + internal PointerAppender(PointerNode pointerNode) { - private readonly PointerNode _pointerNode; - internal PointerAppender(PointerNode pointerNode) - { - _pointerNode = pointerNode; - } + _pointerNode = pointerNode; + } - public PointerAppender AddPointer(Pointer pointer, params long[] offsets) + public PointerAppender AddPointer(Pointer pointer, params long[] offsets) + { + var node = new PointerNode { - var node = new PointerNode - { - PointerNodeType = PointerNodeType.Pointer, - Name = _pointerNode.Name, - Pattern = _pointerNode.Pattern, - Offsets = offsets, - Pointer = pointer, - }; - _pointerNode.Pointers.Add(node); - return this; - } + PointerNodeType = PointerNodeType.Pointer, + Name = _pointerNode.Name, + Pattern = _pointerNode.Pattern, + Offsets = offsets, + Pointer = pointer, + }; + _pointerNode.Pointers.Add(node); + return this; } } diff --git a/src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerNode.cs b/src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerNode.cs index 37d58c9..0a9fe14 100644 --- a/src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerNode.cs +++ b/src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerNode.cs @@ -17,29 +17,28 @@ using System.Collections.Generic; using SoulMemory.MemoryV2.Memory; -namespace SoulMemory.MemoryV2.PointerTreeBuilder +namespace SoulMemory.MemoryV2.PointerTreeBuilder; + +public class PointerNode { - public class PointerNode - { - public PointerNodeType PointerNodeType; + public PointerNodeType PointerNodeType; - //Used for scans - public string Name = ""; - public string Pattern = ""; + //Used for scans + public string Name = ""; + public string Pattern = ""; - //Used for relative scans - public long AddressOffset; - public long InstructionSize; + //Used for relative scans + public long AddressOffset; + public long InstructionSize; - //used for absolute scans - public long? Offset; + //used for absolute scans + public long? Offset; - //used for pointers - public long[] Offsets = new long[] { }; - public Pointer Pointer = null!; + //used for pointers + public long[] Offsets = new long[] { }; + public Pointer Pointer = null!; - public List Pointers = new List(); + public List Pointers = new List(); - public override string ToString() => Name; - } + public override string ToString() => Name; } diff --git a/src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerNodeType.cs b/src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerNodeType.cs index 33cc57e..27c3eb7 100644 --- a/src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerNodeType.cs +++ b/src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerNodeType.cs @@ -14,12 +14,11 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -namespace SoulMemory.MemoryV2.PointerTreeBuilder +namespace SoulMemory.MemoryV2.PointerTreeBuilder; + +public enum PointerNodeType { - public enum PointerNodeType - { - RelativeScan, - AbsoluteScan, - Pointer, - } + RelativeScan, + AbsoluteScan, + Pointer, } diff --git a/src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerTreeBuilder.cs b/src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerTreeBuilder.cs index 80acbb6..bb79cdf 100644 --- a/src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerTreeBuilder.cs +++ b/src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerTreeBuilder.cs @@ -18,102 +18,101 @@ using System.Linq; using SoulMemory.MemoryV2.Memory; -namespace SoulMemory.MemoryV2.PointerTreeBuilder +namespace SoulMemory.MemoryV2.PointerTreeBuilder; + +/// +/// Define a structure of relative and absolute scans, resulting in a tree of pointers +/// Resolve the scans against an IMemory instance +/// +public class PointerTreeBuilder { - /// - /// Define a structure of relative and absolute scans, resulting in a tree of pointers - /// Resolve the scans against an IMemory instance - /// - public class PointerTreeBuilder - { - public List Tree = new List(); + public List Tree = new List(); - public PointerAppender ScanRelative(string name, string pattern, long addressOffset, long instructionSize) + public PointerAppender ScanRelative(string name, string pattern, long addressOffset, long instructionSize) + { + var node = new PointerNode { - var node = new PointerNode - { - PointerNodeType = PointerNodeType.RelativeScan, - Name = name, - Pattern = pattern, - AddressOffset = addressOffset, - InstructionSize = instructionSize, - }; - Tree.Add(node); - return new PointerAppender(node); - } + PointerNodeType = PointerNodeType.RelativeScan, + Name = name, + Pattern = pattern, + AddressOffset = addressOffset, + InstructionSize = instructionSize, + }; + Tree.Add(node); + return new PointerAppender(node); + } - public PointerAppender ScanAbsolute(string name, string pattern, long offset) + public PointerAppender ScanAbsolute(string name, string pattern, long offset) + { + var node = new PointerNode { - var node = new PointerNode - { - PointerNodeType = PointerNodeType.AbsoluteScan, - Name = name, - Pattern = pattern, - Offset = offset, - }; - Tree.Add(node); - return new PointerAppender(node); - } + PointerNodeType = PointerNodeType.AbsoluteScan, + Name = name, + Pattern = pattern, + Offset = offset, + }; + Tree.Add(node); + return new PointerAppender(node); + } - #region Resolving pointers ============================================================================================================================== + #region Resolving pointers ============================================================================================================================== - /// - /// Resolve pointers to their correct address by scanning for patterns in a running process - /// - public ResultErr TryResolvePointers(IMemory memory, long baseAddress, int memorySize, bool is64Bit) - { - var bytes = memory.ReadBytes(baseAddress, memorySize); + /// + /// Resolve pointers to their correct address by scanning for patterns in a running process + /// + public ResultErr TryResolvePointers(IMemory memory, long baseAddress, int memorySize, bool is64Bit) + { + var bytes = memory.ReadBytes(baseAddress, memorySize); - //Resolve nodes with the above data - var errors = new List(); - foreach (var node in Tree) + //Resolve nodes with the above data + var errors = new List(); + foreach (var node in Tree) + { + long scanResult = 0; + bool success = false; + switch (node.PointerNodeType) { - long scanResult = 0; - bool success = false; - switch (node.PointerNodeType) - { - default: - return Result.Err(new RefreshError(RefreshErrorReason.ScansFailed, $"Incorrect node type at base level: {node.PointerNodeType}")); + default: + return Result.Err(new RefreshError(RefreshErrorReason.ScansFailed, $"Incorrect node type at base level: {node.PointerNodeType}")); - case PointerNodeType.RelativeScan: - success = bytes.TryScanRelative(baseAddress, node, out scanResult); - if (success) + case PointerNodeType.RelativeScan: + success = bytes.TryScanRelative(baseAddress, node, out scanResult); + if (success) + { + foreach (var p in node.Pointers) { - foreach (var p in node.Pointers) - { - var temp = node.Offsets.ToList(); - temp.Insert(0, scanResult); - var offsets = temp.ToArray(); + var temp = node.Offsets.ToList(); + temp.Insert(0, scanResult); + var offsets = temp.ToArray(); - p.Pointer.Path = offsets.Select(i => new PointerPath { Address = 0, Offset = i }).ToList(); - } + p.Pointer.Path = offsets.Select(i => new PointerPath { Address = 0, Offset = i }).ToList(); } - break; + } + break; - case PointerNodeType.AbsoluteScan: - success = bytes.TryScanAbsolute(baseAddress, node, out scanResult); - if (success) + case PointerNodeType.AbsoluteScan: + success = bytes.TryScanAbsolute(baseAddress, node, out scanResult); + if (success) + { + foreach (var p in node.Pointers) { - foreach (var p in node.Pointers) - { - p.Pointer.AbsoluteOffset = scanResult; - } + p.Pointer.AbsoluteOffset = scanResult; } - break; - } - - if (!success) - { - errors.Add(node.Name); - } + } + break; } - if (errors.Any()) + if (!success) { - return Result.Err(new RefreshError(RefreshErrorReason.ScansFailed, $"Scans failed for {string.Join(", ", errors)}")); + errors.Add(node.Name); } - return Result.Ok(); } - #endregion + + if (errors.Any()) + { + return Result.Err(new RefreshError(RefreshErrorReason.ScansFailed, $"Scans failed for {string.Join(", ", errors)}")); + } + return Result.Ok(); } + #endregion } diff --git a/src/SoulMemory/MemoryV2/Process/IProcessHook.cs b/src/SoulMemory/MemoryV2/Process/IProcessHook.cs index 2adf1a1..d352890 100644 --- a/src/SoulMemory/MemoryV2/Process/IProcessHook.cs +++ b/src/SoulMemory/MemoryV2/Process/IProcessHook.cs @@ -17,36 +17,35 @@ using System; using SoulMemory.MemoryV2.Memory; -namespace SoulMemory.MemoryV2.Process +namespace SoulMemory.MemoryV2.Process; + +/// +/// Abstracts a hooked process and makes it injectable and testable +/// +public interface IProcessHook : IMemory { /// - /// Abstracts a hooked process and makes it injectable and testable + /// Get process wrapper object for more low level access /// - public interface IProcessHook : IMemory - { - /// - /// Get process wrapper object for more low level access - /// - /// - IProcessWrapper ProcessWrapper { get; set; } + /// + IProcessWrapper ProcessWrapper { get; set; } - /// - /// Call this often to refresh memory - /// - ResultErr TryRefresh(); + /// + /// Call this often to refresh memory + /// + ResultErr TryRefresh(); - /// - /// Called during refresh, after a process is found, hooked and pointer scans succeed. - /// Custom one-time initialization after hooking should live here - /// - event Func> Hooked; + /// + /// Called during refresh, after a process is found, hooked and pointer scans succeed. + /// Custom one-time initialization after hooking should live here + /// + event Func> Hooked; - /// - /// Called during refresh after a process exits or if hooking/refreshing fails. - /// Exception might be null. - /// - event Action Exited; + /// + /// Called during refresh after a process exits or if hooking/refreshing fails. + /// Exception might be null. + /// + event Action Exited; - PointerTreeBuilder.PointerTreeBuilder PointerTreeBuilder { get; set; } - } + PointerTreeBuilder.PointerTreeBuilder PointerTreeBuilder { get; set; } } diff --git a/src/SoulMemory/MemoryV2/Process/IProcessWrapper.cs b/src/SoulMemory/MemoryV2/Process/IProcessWrapper.cs index f797b36..27850a7 100644 --- a/src/SoulMemory/MemoryV2/Process/IProcessWrapper.cs +++ b/src/SoulMemory/MemoryV2/Process/IProcessWrapper.cs @@ -18,17 +18,16 @@ using System; using System.Collections.Generic; -namespace SoulMemory.MemoryV2.Process +namespace SoulMemory.MemoryV2.Process; + +/// +/// Abstract away the functionality from System.Diagnostics.Process, to make it injectable and testable +/// +public interface IProcessWrapper : IMemory { - /// - /// Abstract away the functionality from System.Diagnostics.Process, to make it injectable and testable - /// - public interface IProcessWrapper : IMemory - { - ProcessRefreshResult TryRefresh(string name, out Exception? exception); - ProcessWrapperModule? GetMainModule(); - List GetProcessModules(); - System.Diagnostics.Process? GetProcess(); - bool Is64Bit(); - } + ProcessRefreshResult TryRefresh(string name, out Exception? exception); + ProcessWrapperModule? GetMainModule(); + List GetProcessModules(); + System.Diagnostics.Process? GetProcess(); + bool Is64Bit(); } diff --git a/src/SoulMemory/MemoryV2/Process/ProcessHook.cs b/src/SoulMemory/MemoryV2/Process/ProcessHook.cs index b8a4d22..cf91e58 100644 --- a/src/SoulMemory/MemoryV2/Process/ProcessHook.cs +++ b/src/SoulMemory/MemoryV2/Process/ProcessHook.cs @@ -16,93 +16,92 @@ using System; -namespace SoulMemory.MemoryV2.Process +namespace SoulMemory.MemoryV2.Process; + +public class ProcessHook : IProcessHook { - public class ProcessHook : IProcessHook + public ProcessHook(string name, IProcessWrapper? processWrapper = null) { - public ProcessHook(string name, IProcessWrapper? processWrapper = null) - { - _name = name; - ProcessWrapper = processWrapper ?? new ProcessWrapper(); - } + _name = name; + ProcessWrapper = processWrapper ?? new ProcessWrapper(); + } - private readonly string _name; + private readonly string _name; - public IProcessWrapper ProcessWrapper { get; set; } + public IProcessWrapper ProcessWrapper { get; set; } - public System.Diagnostics.Process? GetProcess() => ProcessWrapper.GetProcess(); + public System.Diagnostics.Process? GetProcess() => ProcessWrapper.GetProcess(); - public event Func> Hooked = null!; - public event Action Exited = null!; + public event Func> Hooked = null!; + public event Action Exited = null!; - public PointerTreeBuilder.PointerTreeBuilder PointerTreeBuilder { get; set; } = new PointerTreeBuilder.PointerTreeBuilder(); + public PointerTreeBuilder.PointerTreeBuilder PointerTreeBuilder { get; set; } = new PointerTreeBuilder.PointerTreeBuilder(); - #region Refresh ================================================================================================================================================= + #region Refresh ================================================================================================================================================= - /// - /// Refresh attachment to a process - /// - /// - public ResultErr TryRefresh() + /// + /// Refresh attachment to a process + /// + /// + public ResultErr TryRefresh() + { + var processRefreshResult = ProcessWrapper.TryRefresh(_name, out Exception? e); + switch (processRefreshResult) { - var processRefreshResult = ProcessWrapper.TryRefresh(_name, out Exception? e); - switch (processRefreshResult) - { - case ProcessRefreshResult.ProcessNotRunning: - return Result.Err(new RefreshError(RefreshErrorReason.ProcessNotRunning, $"Process {_name} not running or inaccessible. Try running livesplit as admin.")); - - - //Run scans when process is initialized - case ProcessRefreshResult.Initialized: - var mainModule = ProcessWrapper.GetMainModule(); - if (mainModule == null) - { - return Result.Err(new RefreshError(RefreshErrorReason.ScansFailed, "Main module is null. Try running as admin.")); - } - - var baseAddress = mainModule.BaseAddress.ToInt64(); - var memorySize = mainModule.ModuleMemorySize; - var is64Bit = ProcessWrapper.Is64Bit(); - - var pointerScanResult = PointerTreeBuilder.TryResolvePointers(this, baseAddress, memorySize, is64Bit); - if (pointerScanResult.IsErr) - { - return pointerScanResult; - } - return Hooked?.Invoke() ?? Result.Ok(); - - - //Standard refresh - case ProcessRefreshResult.Refreshed: - return Result.Ok(); - - - case ProcessRefreshResult.Exited: - Exited?.Invoke(null!); - return Result.Err(new RefreshError(RefreshErrorReason.ProcessExited)); - - case ProcessRefreshResult.Error: - Exited?.Invoke(e!); - if (e!.Message == "Access is denied") - { - return Result.Err(new RefreshError(RefreshErrorReason.AccessDenied, "Access is denied. Make sure you disable easy anti cheat and try running livesplit as admin.")); - } - return RefreshError.FromException(e); - - default: - throw new NotImplementedException($"{processRefreshResult}"); - } - } + case ProcessRefreshResult.ProcessNotRunning: + return Result.Err(new RefreshError(RefreshErrorReason.ProcessNotRunning, $"Process {_name} not running or inaccessible. Try running livesplit as admin.")); + + + //Run scans when process is initialized + case ProcessRefreshResult.Initialized: + var mainModule = ProcessWrapper.GetMainModule(); + if (mainModule == null) + { + return Result.Err(new RefreshError(RefreshErrorReason.ScansFailed, "Main module is null. Try running as admin.")); + } + + var baseAddress = mainModule.BaseAddress.ToInt64(); + var memorySize = mainModule.ModuleMemorySize; + var is64Bit = ProcessWrapper.Is64Bit(); - #endregion + var pointerScanResult = PointerTreeBuilder.TryResolvePointers(this, baseAddress, memorySize, is64Bit); + if (pointerScanResult.IsErr) + { + return pointerScanResult; + } + return Hooked?.Invoke() ?? Result.Ok(); - #region IMemory - public byte[] ReadBytes(long offset, int length) => ProcessWrapper.ReadBytes(offset, length); - public void WriteBytes(long offset, byte[] bytes) => ProcessWrapper.WriteBytes(offset, bytes); + //Standard refresh + case ProcessRefreshResult.Refreshed: + return Result.Ok(); - #endregion + case ProcessRefreshResult.Exited: + Exited?.Invoke(null!); + return Result.Err(new RefreshError(RefreshErrorReason.ProcessExited)); + + case ProcessRefreshResult.Error: + Exited?.Invoke(e!); + if (e!.Message == "Access is denied") + { + return Result.Err(new RefreshError(RefreshErrorReason.AccessDenied, "Access is denied. Make sure you disable easy anti cheat and try running livesplit as admin.")); + } + return RefreshError.FromException(e); + + default: + throw new NotImplementedException($"{processRefreshResult}"); + } } + + #endregion + + #region IMemory + + public byte[] ReadBytes(long offset, int length) => ProcessWrapper.ReadBytes(offset, length); + public void WriteBytes(long offset, byte[] bytes) => ProcessWrapper.WriteBytes(offset, bytes); + + #endregion + } diff --git a/src/SoulMemory/MemoryV2/Process/ProcessRefreshResult.cs b/src/SoulMemory/MemoryV2/Process/ProcessRefreshResult.cs index 51e2c47..c28fcea 100644 --- a/src/SoulMemory/MemoryV2/Process/ProcessRefreshResult.cs +++ b/src/SoulMemory/MemoryV2/Process/ProcessRefreshResult.cs @@ -14,14 +14,13 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -namespace SoulMemory.MemoryV2.Process +namespace SoulMemory.MemoryV2.Process; + +public enum ProcessRefreshResult { - public enum ProcessRefreshResult - { - ProcessNotRunning, - Initialized, - Exited, - Error, - Refreshed, - } + ProcessNotRunning, + Initialized, + Exited, + Error, + Refreshed, } diff --git a/src/SoulMemory/MemoryV2/Process/ProcessWrapper.cs b/src/SoulMemory/MemoryV2/Process/ProcessWrapper.cs index 3e62b00..8c22efa 100644 --- a/src/SoulMemory/MemoryV2/Process/ProcessWrapper.cs +++ b/src/SoulMemory/MemoryV2/Process/ProcessWrapper.cs @@ -20,77 +20,76 @@ using System.Linq; using SoulMemory.Native; -namespace SoulMemory.MemoryV2.Process +namespace SoulMemory.MemoryV2.Process; + +public class ProcessWrapper : IProcessWrapper { - public class ProcessWrapper : IProcessWrapper + private System.Diagnostics.Process? _process; + public System.Diagnostics.Process? GetProcess() => _process; + public bool Is64Bit() => _process?.Is64Bit() ?? false; + public ProcessWrapperModule? GetMainModule() => _process?.MainModule == null ? null : ProcessWrapperModule.FromProcessModule(_process.MainModule); + + public List GetProcessModules() { - private System.Diagnostics.Process? _process; - public System.Diagnostics.Process? GetProcess() => _process; - public bool Is64Bit() => _process?.Is64Bit() ?? false; - public ProcessWrapperModule? GetMainModule() => _process?.MainModule == null ? null : ProcessWrapperModule.FromProcessModule(_process.MainModule); + return (from object pm in _process?.Modules select ProcessWrapperModule.FromProcessModule((ProcessModule)pm)).ToList(); + } - public List GetProcessModules() - { - return (from object pm in _process?.Modules select ProcessWrapperModule.FromProcessModule((ProcessModule)pm)).ToList(); - } + /// + /// Refresh attachment to a process + /// + /// + public ProcessRefreshResult TryRefresh(string name, out Exception? exception) + { + exception = null; - /// - /// Refresh attachment to a process - /// - /// - public ProcessRefreshResult TryRefresh(string name, out Exception? exception) + try { - exception = null; - - try + //Process not attached - find it in the process list + if (_process == null) { - //Process not attached - find it in the process list + _process = System.Diagnostics.Process.GetProcesses().FirstOrDefault(i => i.ProcessName.ToLower() == name.ToLower() && !i.HasExited); if (_process == null) { - _process = System.Diagnostics.Process.GetProcesses().FirstOrDefault(i => i.ProcessName.ToLower() == name.ToLower() && !i.HasExited); - if (_process == null) - { - return ProcessRefreshResult.ProcessNotRunning; - } - else - { - return ProcessRefreshResult.Initialized; - } + return ProcessRefreshResult.ProcessNotRunning; } - //Process is attached, make sure it is still running else { - if (_process.HasExited) - { - _process = null; - return ProcessRefreshResult.Exited; - } - - //Nothing going on, process still running - return ProcessRefreshResult.Refreshed; + return ProcessRefreshResult.Initialized; } } - catch (Exception e) + //Process is attached, make sure it is still running + else { - exception = e; - _process = null; - return ProcessRefreshResult.Error; + if (_process.HasExited) + { + _process = null; + return ProcessRefreshResult.Exited; + } + + //Nothing going on, process still running + return ProcessRefreshResult.Refreshed; } } + catch (Exception e) + { + exception = e; + _process = null; + return ProcessRefreshResult.Error; + } + } - #region IMemory + #region IMemory - public byte[] ReadBytes(long offset, int length) + public byte[] ReadBytes(long offset, int length) + { + if (_process == null) { - if (_process == null) - { - return new byte[length]; - } - return _process.ReadProcessMemoryNoError(offset, length); + return new byte[length]; } + return _process.ReadProcessMemoryNoError(offset, length); + } - public void WriteBytes(long offset, byte[] bytes) => _process?.WriteProcessMemoryNoError(offset, bytes); + public void WriteBytes(long offset, byte[] bytes) => _process?.WriteProcessMemoryNoError(offset, bytes); - #endregion - } + #endregion } diff --git a/src/SoulMemory/MemoryV2/Process/ProcessWrapperModule.cs b/src/SoulMemory/MemoryV2/Process/ProcessWrapperModule.cs index ffccfc5..527a025 100644 --- a/src/SoulMemory/MemoryV2/Process/ProcessWrapperModule.cs +++ b/src/SoulMemory/MemoryV2/Process/ProcessWrapperModule.cs @@ -17,24 +17,23 @@ using System; using System.Diagnostics; -namespace SoulMemory.MemoryV2.Process +namespace SoulMemory.MemoryV2.Process; + +public class ProcessWrapperModule { - public class ProcessWrapperModule - { - public string ModuleName { get; set; } = null!; - public string FileName { get; set; } = null!; - public IntPtr BaseAddress { get; set; } - public int ModuleMemorySize { get; set; } + public string ModuleName { get; set; } = null!; + public string FileName { get; set; } = null!; + public IntPtr BaseAddress { get; set; } + public int ModuleMemorySize { get; set; } - public static ProcessWrapperModule FromProcessModule(ProcessModule module) + public static ProcessWrapperModule FromProcessModule(ProcessModule module) + { + return new ProcessWrapperModule { - return new ProcessWrapperModule - { - ModuleName = module.ModuleName, - FileName = module.FileName, - BaseAddress = module.BaseAddress, - ModuleMemorySize = module.ModuleMemorySize, - }; - } + ModuleName = module.ModuleName, + FileName = module.FileName, + BaseAddress = module.BaseAddress, + ModuleMemorySize = module.ModuleMemorySize, + }; } } diff --git a/src/SoulMemory/Native/Enums/DllCharacteristicsType.cs b/src/SoulMemory/Native/Enums/DllCharacteristicsType.cs index 9e15897..58db18a 100644 --- a/src/SoulMemory/Native/Enums/DllCharacteristicsType.cs +++ b/src/SoulMemory/Native/Enums/DllCharacteristicsType.cs @@ -14,22 +14,21 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -namespace SoulMemory.Native.Enums +namespace SoulMemory.Native.Enums; + +public enum DllCharacteristicsType : ushort { - public enum DllCharacteristicsType : ushort - { - RES_0 = 0x0001, - RES_1 = 0x0002, - RES_2 = 0x0004, - RES_3 = 0x0008, - IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE = 0x0040, - IMAGE_DLL_CHARACTERISTICS_FORCE_INTEGRITY = 0x0080, - IMAGE_DLL_CHARACTERISTICS_NX_COMPAT = 0x0100, - IMAGE_DLLCHARACTERISTICS_NO_ISOLATION = 0x0200, - IMAGE_DLLCHARACTERISTICS_NO_SEH = 0x0400, - IMAGE_DLLCHARACTERISTICS_NO_BIND = 0x0800, - RES_4 = 0x1000, - IMAGE_DLLCHARACTERISTICS_WDM_DRIVER = 0x2000, - IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE = 0x8000 - } + RES_0 = 0x0001, + RES_1 = 0x0002, + RES_2 = 0x0004, + RES_3 = 0x0008, + IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE = 0x0040, + IMAGE_DLL_CHARACTERISTICS_FORCE_INTEGRITY = 0x0080, + IMAGE_DLL_CHARACTERISTICS_NX_COMPAT = 0x0100, + IMAGE_DLLCHARACTERISTICS_NO_ISOLATION = 0x0200, + IMAGE_DLLCHARACTERISTICS_NO_SEH = 0x0400, + IMAGE_DLLCHARACTERISTICS_NO_BIND = 0x0800, + RES_4 = 0x1000, + IMAGE_DLLCHARACTERISTICS_WDM_DRIVER = 0x2000, + IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE = 0x8000 } diff --git a/src/SoulMemory/Native/Enums/ListModules.cs b/src/SoulMemory/Native/Enums/ListModules.cs index 4f21291..a735e35 100644 --- a/src/SoulMemory/Native/Enums/ListModules.cs +++ b/src/SoulMemory/Native/Enums/ListModules.cs @@ -14,13 +14,12 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -namespace SoulMemory.Native.Enums +namespace SoulMemory.Native.Enums; + +public enum ListModules : uint { - public enum ListModules : uint - { - LIST_MODULES_DEFAULT = 0x0, - LIST_MODULES_32BIT = 0x01, - LIST_MODULES_64BIT = 0x02, - LIST_MODULES_ALL = 0x03 - } + LIST_MODULES_DEFAULT = 0x0, + LIST_MODULES_32BIT = 0x01, + LIST_MODULES_64BIT = 0x02, + LIST_MODULES_ALL = 0x03 } diff --git a/src/SoulMemory/Native/Enums/MachineType.cs b/src/SoulMemory/Native/Enums/MachineType.cs index 491af1f..40f5840 100644 --- a/src/SoulMemory/Native/Enums/MachineType.cs +++ b/src/SoulMemory/Native/Enums/MachineType.cs @@ -14,131 +14,130 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -namespace SoulMemory.Native.Enums +namespace SoulMemory.Native.Enums; + +public enum MachineType : ushort { - public enum MachineType : ushort - { - /// - /// The content of this field is assumed to be applicable to any machine type - /// - Unknown = 0x0000, - /// - /// Intel 386 or later processors and compatible processors - /// - I386 = 0x014c, - R3000 = 0x0162, - /// - /// MIPS little endian - /// - R4000 = 0x0166, - R10000 = 0x0168, - /// - /// MIPS little-endian WCE v2 - /// - WCEMIPSV2 = 0x0169, - /// - /// Alpha AXP - /// - Alpha = 0x0184, - /// - /// Hitachi SH3 - /// - SH3 = 0x01a2, - /// - /// Hitachi SH3 DSP - /// - SH3DSP = 0x01a3, - /// - /// Hitachi SH4 - /// - SH4 = 0x01a6, - /// - /// Hitachi SH5 - /// - SH5 = 0x01a8, - /// - /// ARM little endian - /// - ARM = 0x01c0, - /// - /// Thumb - /// - Thumb = 0x01c2, - /// - /// ARM Thumb-2 little endian - /// - ARMNT = 0x01c4, - /// - /// Matsushita AM33 - /// - AM33 = 0x01d3, - /// - /// Power PC little endian - /// - PowerPC = 0x01f0, - /// - /// Power PC with floating point support - /// - PowerPCFP = 0x01f1, - /// - /// Intel Itanium processor family - /// - IA64 = 0x0200, - /// - /// MIPS16 - /// - MIPS16 = 0x0266, - /// - /// Motorola 68000 series - /// - M68K = 0x0268, - /// - /// Alpha AXP 64-bit - /// - Alpha64 = 0x0284, - /// - /// MIPS with FPU - /// - MIPSFPU = 0x0366, - /// - /// MIPS16 with FPU - /// - MIPSFPU16 = 0x0466, - /// - /// EFI byte code - /// - EBC = 0x0ebc, - /// - /// RISC-V 32-bit address space - /// - RISCV32 = 0x5032, - /// - /// RISC-V 64-bit address space - /// - RISCV64 = 0x5064, - /// - /// RISC-V 128-bit address space - /// - RISCV128 = 0x5128, - /// - /// x64 - /// - AMD64 = 0x8664, - /// - /// ARM64 little endian - /// - ARM64 = 0xaa64, - /// - /// LoongArch 32-bit processor family - /// - LoongArch32 = 0x6232, - /// - /// LoongArch 64-bit processor family - /// - LoongArch64 = 0x6264, - /// - /// Mitsubishi M32R little endian - /// - M32R = 0x9041 - } + /// + /// The content of this field is assumed to be applicable to any machine type + /// + Unknown = 0x0000, + /// + /// Intel 386 or later processors and compatible processors + /// + I386 = 0x014c, + R3000 = 0x0162, + /// + /// MIPS little endian + /// + R4000 = 0x0166, + R10000 = 0x0168, + /// + /// MIPS little-endian WCE v2 + /// + WCEMIPSV2 = 0x0169, + /// + /// Alpha AXP + /// + Alpha = 0x0184, + /// + /// Hitachi SH3 + /// + SH3 = 0x01a2, + /// + /// Hitachi SH3 DSP + /// + SH3DSP = 0x01a3, + /// + /// Hitachi SH4 + /// + SH4 = 0x01a6, + /// + /// Hitachi SH5 + /// + SH5 = 0x01a8, + /// + /// ARM little endian + /// + ARM = 0x01c0, + /// + /// Thumb + /// + Thumb = 0x01c2, + /// + /// ARM Thumb-2 little endian + /// + ARMNT = 0x01c4, + /// + /// Matsushita AM33 + /// + AM33 = 0x01d3, + /// + /// Power PC little endian + /// + PowerPC = 0x01f0, + /// + /// Power PC with floating point support + /// + PowerPCFP = 0x01f1, + /// + /// Intel Itanium processor family + /// + IA64 = 0x0200, + /// + /// MIPS16 + /// + MIPS16 = 0x0266, + /// + /// Motorola 68000 series + /// + M68K = 0x0268, + /// + /// Alpha AXP 64-bit + /// + Alpha64 = 0x0284, + /// + /// MIPS with FPU + /// + MIPSFPU = 0x0366, + /// + /// MIPS16 with FPU + /// + MIPSFPU16 = 0x0466, + /// + /// EFI byte code + /// + EBC = 0x0ebc, + /// + /// RISC-V 32-bit address space + /// + RISCV32 = 0x5032, + /// + /// RISC-V 64-bit address space + /// + RISCV64 = 0x5064, + /// + /// RISC-V 128-bit address space + /// + RISCV128 = 0x5128, + /// + /// x64 + /// + AMD64 = 0x8664, + /// + /// ARM64 little endian + /// + ARM64 = 0xaa64, + /// + /// LoongArch 32-bit processor family + /// + LoongArch32 = 0x6232, + /// + /// LoongArch 64-bit processor family + /// + LoongArch64 = 0x6264, + /// + /// Mitsubishi M32R little endian + /// + M32R = 0x9041 } diff --git a/src/SoulMemory/Native/Enums/MagicType.cs b/src/SoulMemory/Native/Enums/MagicType.cs index 32a755d..c8d1612 100644 --- a/src/SoulMemory/Native/Enums/MagicType.cs +++ b/src/SoulMemory/Native/Enums/MagicType.cs @@ -14,11 +14,10 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -namespace SoulMemory.Native.Enums +namespace SoulMemory.Native.Enums; + +public enum MagicType : ushort { - public enum MagicType : ushort - { - IMAGE_NT_OPTIONAL_HDR32_MAGIC = 0x10b, - IMAGE_NT_OPTIONAL_HDR64_MAGIC = 0x20b - } + IMAGE_NT_OPTIONAL_HDR32_MAGIC = 0x10b, + IMAGE_NT_OPTIONAL_HDR64_MAGIC = 0x20b } diff --git a/src/SoulMemory/Native/Enums/SnapshotFlags.cs b/src/SoulMemory/Native/Enums/SnapshotFlags.cs index 1532cd2..48c6fd0 100644 --- a/src/SoulMemory/Native/Enums/SnapshotFlags.cs +++ b/src/SoulMemory/Native/Enums/SnapshotFlags.cs @@ -17,18 +17,17 @@ using System; -namespace SoulMemory.Native.Enums +namespace SoulMemory.Native.Enums; + +[Flags] +internal enum SnapshotFlags : uint { - [Flags] - internal enum SnapshotFlags : uint - { - HeapList = 0x00000001, - Process = 0x00000002, - Thread = 0x00000004, - Module = 0x00000008, - Module32 = 0x00000010, - Inherit = 0x80000000, - All = 0x0000001F, - NoHeaps = 0x40000000 - } + HeapList = 0x00000001, + Process = 0x00000002, + Thread = 0x00000004, + Module = 0x00000008, + Module32 = 0x00000010, + Inherit = 0x80000000, + All = 0x0000001F, + NoHeaps = 0x40000000 } diff --git a/src/SoulMemory/Native/Enums/SubSystemType.cs b/src/SoulMemory/Native/Enums/SubSystemType.cs index 96b40f5..2d50d87 100644 --- a/src/SoulMemory/Native/Enums/SubSystemType.cs +++ b/src/SoulMemory/Native/Enums/SubSystemType.cs @@ -14,20 +14,19 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -namespace SoulMemory.Native.Enums +namespace SoulMemory.Native.Enums; + +public enum SubSystemType : ushort { - public enum SubSystemType : ushort - { - IMAGE_SUBSYSTEM_UNKNOWN = 0, - IMAGE_SUBSYSTEM_NATIVE = 1, - IMAGE_SUBSYSTEM_WINDOWS_GUI = 2, - IMAGE_SUBSYSTEM_WINDOWS_CUI = 3, - IMAGE_SUBSYSTEM_POSIX_CUI = 7, - IMAGE_SUBSYSTEM_WINDOWS_CE_GUI = 9, - IMAGE_SUBSYSTEM_EFI_APPLICATION = 10, - IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER = 11, - IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER = 12, - IMAGE_SUBSYSTEM_EFI_ROM = 13, - IMAGE_SUBSYSTEM_XBOX = 14 - } + IMAGE_SUBSYSTEM_UNKNOWN = 0, + IMAGE_SUBSYSTEM_NATIVE = 1, + IMAGE_SUBSYSTEM_WINDOWS_GUI = 2, + IMAGE_SUBSYSTEM_WINDOWS_CUI = 3, + IMAGE_SUBSYSTEM_POSIX_CUI = 7, + IMAGE_SUBSYSTEM_WINDOWS_CE_GUI = 9, + IMAGE_SUBSYSTEM_EFI_APPLICATION = 10, + IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER = 11, + IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER = 12, + IMAGE_SUBSYSTEM_EFI_ROM = 13, + IMAGE_SUBSYSTEM_XBOX = 14 } diff --git a/src/SoulMemory/Native/Kernel32.cs b/src/SoulMemory/Native/Kernel32.cs index d6a7ab4..e7b06ba 100644 --- a/src/SoulMemory/Native/Kernel32.cs +++ b/src/SoulMemory/Native/Kernel32.cs @@ -28,382 +28,381 @@ using SoulMemory.Native.Structs.Image; using SoulMemory.Native.Structs.Module; -namespace SoulMemory.Native +namespace SoulMemory.Native; + +[ExcludeFromCodeCoverage] +public static class Kernel32 { - [ExcludeFromCodeCoverage] - public static class Kernel32 - { - #region Read process memory ================================================================================================================== + #region Read process memory ================================================================================================================== - public static byte[] ReadProcessMemoryNoError(this Process process, long address, int size) - { - var buffer = new byte[size]; - var bytesRead = 0; - NativeMethods.ReadProcessMemory(process.Handle, (IntPtr)address, buffer, buffer.Length, ref bytesRead); - return buffer; - } + public static byte[] ReadProcessMemoryNoError(this Process process, long address, int size) + { + var buffer = new byte[size]; + var bytesRead = 0; + NativeMethods.ReadProcessMemory(process.Handle, (IntPtr)address, buffer, buffer.Length, ref bytesRead); + return buffer; + } - public static ResultOk ReadProcessMemory(this Process process, long address, int size) + public static ResultOk ReadProcessMemory(this Process process, long address, int size) + { + if (process == null) { - if (process == null) - { - return Result.Err(); - } + return Result.Err(); + } - var buffer = new byte[size]; - var bytesRead = 0; - var result = NativeMethods.ReadProcessMemory(process.Handle, (IntPtr)address, buffer, buffer.Length, ref bytesRead); + var buffer = new byte[size]; + var bytesRead = 0; + var result = NativeMethods.ReadProcessMemory(process.Handle, (IntPtr)address, buffer, buffer.Length, ref bytesRead); - if(!result || bytesRead != size) - { - return Result.Err(); - } - return Result.Ok(buffer); + if(!result || bytesRead != size) + { + return Result.Err(); } + return Result.Ok(buffer); + } - public static ResultOk ReadMemory(this Process process, long address, [CallerMemberName] string? callerMemberName = null) + public static ResultOk ReadMemory(this Process process, long address, [CallerMemberName] string? callerMemberName = null) + { + if (process == null) { - if (process == null) - { - return Result.Err(); - } - - var type = typeof(T); - var size = Marshal.SizeOf(type); - var bytes = process.ReadProcessMemory(address, size).Unwrap(callerMemberName); - var handle = GCHandle.Alloc(bytes, GCHandleType.Pinned); - var result = (T)Marshal.PtrToStructure(handle.AddrOfPinnedObject(), type); - - handle.Free(); - return Result.Ok(result); - - //TODO: find a conversion method that doesn't allocate memory - //var test = (T)Convert.ChangeType(bytes, typeof(T)); + return Result.Err(); } + + var type = typeof(T); + var size = Marshal.SizeOf(type); + var bytes = process.ReadProcessMemory(address, size).Unwrap(callerMemberName); + var handle = GCHandle.Alloc(bytes, GCHandleType.Pinned); + var result = (T)Marshal.PtrToStructure(handle.AddrOfPinnedObject(), type); - public static Result WriteMemory(this Process process, long address, T data, [CallerMemberName] string? callerMemberName = null) - { - if (process == null) - { - return Result.Err(); - } + handle.Free(); + return Result.Ok(result); - var type = typeof(T); - var size = Marshal.SizeOf(type); - var bytes = new byte[size]; - IntPtr ptr = IntPtr.Zero; - try - { - ptr = Marshal.AllocHGlobal(size); - Marshal.StructureToPtr(data, ptr, true); - Marshal.Copy(ptr, bytes, 0, size); - } - finally - { - Marshal.FreeHGlobal(ptr); - } + //TODO: find a conversion method that doesn't allocate memory + //var test = (T)Convert.ChangeType(bytes, typeof(T)); + } - process.WriteProcessMemory(address, bytes); - return Result.Ok(); + public static Result WriteMemory(this Process process, long address, T data, [CallerMemberName] string? callerMemberName = null) + { + if (process == null) + { + return Result.Err(); } - public static string ReadAsciiString(this Process process, long address, int initialBufferSize = 20, [CallerMemberName] string? callerMemberName = null) + var type = typeof(T); + var size = Marshal.SizeOf(type); + var bytes = new byte[size]; + IntPtr ptr = IntPtr.Zero; + try { - var endByte = (byte)'\0'; - var bytes = new byte[0]; - while (!bytes.Contains(endByte)) - { - if (initialBufferSize > 100000) - { - throw new ArgumentException($"String at {address} is too big."); - } - - bytes = process.ReadProcessMemory(address, initialBufferSize).Unwrap(callerMemberName); - initialBufferSize *= 2; - } - - var endIndex = Array.IndexOf(bytes, endByte); - var str = Encoding.ASCII.GetString(bytes, 0, endIndex); - return str; + ptr = Marshal.AllocHGlobal(size); + Marshal.StructureToPtr(data, ptr, true); + Marshal.Copy(ptr, bytes, 0, size); } - - - - public static ResultOk> GetMemoryRegions(this Process process) + finally { - if (process?.MainModule == null) - { - return Result.Err(); - } + Marshal.FreeHGlobal(ptr); + } - var result = new List(); - var maxAddress = (process.MainModule.BaseAddress + process.MainModule.ModuleMemorySize).ToInt64(); - long address = process.MainModule.BaseAddress.ToInt64(); + process.WriteProcessMemory(address, bytes); + return Result.Ok(); + } - while (address < maxAddress) + public static string ReadAsciiString(this Process process, long address, int initialBufferSize = 20, [CallerMemberName] string? callerMemberName = null) + { + var endByte = (byte)'\0'; + var bytes = new byte[0]; + while (!bytes.Contains(endByte)) + { + if (initialBufferSize > 100000) { - var queryEx = NativeMethods.VirtualQueryEx(process.Handle, (IntPtr)address, out MemoryBasicInformation64 memoryBasicInformation64, (uint)Marshal.SizeOf(typeof(MemoryBasicInformation64))); - if (queryEx == 0) - { - return Result.Err(); - } - result.Add(memoryBasicInformation64); - address = (long)memoryBasicInformation64.BaseAddress + (long)memoryBasicInformation64.RegionSize; + throw new ArgumentException($"String at {address} is too big."); } - return Result.Ok(result); - } - #endregion - #region Write process memory ================================================================================================================== + bytes = process.ReadProcessMemory(address, initialBufferSize).Unwrap(callerMemberName); + initialBufferSize *= 2; + } - public static void WriteProcessMemoryNoError(this Process process, long address, byte[] buffer) => WriteProcessMemory(process, address, buffer); + var endIndex = Array.IndexOf(bytes, endByte); + var str = Encoding.ASCII.GetString(bytes, 0, endIndex); + return str; + } + + - public static Result WriteProcessMemory(this Process process, long address, byte[] buffer) + public static ResultOk> GetMemoryRegions(this Process process) + { + if (process?.MainModule == null) { - var result = NativeMethods.WriteProcessMemory(process.Handle, (IntPtr)address, buffer, (uint)buffer.Length, out uint bytesWritten); + return Result.Err(); + } + + var result = new List(); + var maxAddress = (process.MainModule.BaseAddress + process.MainModule.ModuleMemorySize).ToInt64(); + long address = process.MainModule.BaseAddress.ToInt64(); - if (!result || bytesWritten != buffer.Length) + while (address < maxAddress) + { + var queryEx = NativeMethods.VirtualQueryEx(process.Handle, (IntPtr)address, out MemoryBasicInformation64 memoryBasicInformation64, (uint)Marshal.SizeOf(typeof(MemoryBasicInformation64))); + if (queryEx == 0) { return Result.Err(); } - return Result.Ok(); + result.Add(memoryBasicInformation64); + address = (long)memoryBasicInformation64.BaseAddress + (long)memoryBasicInformation64.RegionSize; } + return Result.Ok(result); + } + #endregion - #endregion + #region Write process memory ================================================================================================================== - #region misc process ================================================================================================================== + public static void WriteProcessMemoryNoError(this Process process, long address, byte[] buffer) => WriteProcessMemory(process, address, buffer); - + public static Result WriteProcessMemory(this Process process, long address, byte[] buffer) + { + var result = NativeMethods.WriteProcessMemory(process.Handle, (IntPtr)address, buffer, (uint)buffer.Length, out uint bytesWritten); - public static ResultOk Is64Bit(this Process process) + if (!result || bytesWritten != buffer.Length) { - var result = NativeMethods.IsWow64Process(process.Handle, out bool isWow64Result); - if (!result) - { - return Result.Err(); - } - return Result.Ok(!isWow64Result); + return Result.Err(); } + return Result.Ok(); + } - #endregion + #endregion - #region Allocations ================================================================================================================== + #region misc process ================================================================================================================== + - - public static IntPtr Allocate(this Process process, int size) + public static ResultOk Is64Bit(this Process process) + { + var result = NativeMethods.IsWow64Process(process.Handle, out bool isWow64Result); + if (!result) { - return NativeMethods.VirtualAllocEx(process.Handle, IntPtr.Zero, (IntPtr)size, MEM_COMMIT, PAGE_EXECUTE_READWRITE); + return Result.Err(); } + return Result.Ok(!isWow64Result); + } + #endregion - public static void Free(this Process process, IntPtr pointer) => NativeMethods.VirtualFreeEx(process.Handle, pointer, (IntPtr)0, MEM_RELEASE); + #region Allocations ================================================================================================================== - #endregion - #region Execute ================================================================================================================== + + public static IntPtr Allocate(this Process process, int size) + { + return NativeMethods.VirtualAllocEx(process.Handle, IntPtr.Zero, (IntPtr)size, MEM_COMMIT, PAGE_EXECUTE_READWRITE); + } - - public static void Execute(this Process process, byte[] instructions, IntPtr? parameter = null) - { - var address = process.Allocate(instructions.Length); - process.WriteProcessMemory((long)address, instructions); - process.Execute(address, parameter); - process.Free(address); - } + public static void Free(this Process process, IntPtr pointer) => NativeMethods.VirtualFreeEx(process.Handle, pointer, (IntPtr)0, MEM_RELEASE); - public static void Execute(this Process process, IntPtr startAddress, IntPtr? parameter = null) - { - process.NtSuspendProcess(); - IntPtr thread = NativeMethods.CreateRemoteThread(process.Handle, IntPtr.Zero, 0, startAddress, parameter ?? IntPtr.Zero, 0, IntPtr.Zero); - NativeMethods.WaitForSingleObject(thread, 5000); - process.NtResumeProcess(); - NativeMethods.CloseHandle(thread); - } + #endregion - #endregion + #region Execute ================================================================================================================== - #region DLL injection ================================================================================================================== + - + public static void Execute(this Process process, byte[] instructions, IntPtr? parameter = null) + { + var address = process.Allocate(instructions.Length); + process.WriteProcessMemory((long)address, instructions); + process.Execute(address, parameter); + process.Free(address); + } - public static void InjectDll(this Process process, string dllPath) - { - //Make sure path is null terminated - if(!dllPath.EndsWith("\0")) - { - dllPath = dllPath + '\0'; - } + public static void Execute(this Process process, IntPtr startAddress, IntPtr? parameter = null) + { + process.NtSuspendProcess(); + IntPtr thread = NativeMethods.CreateRemoteThread(process.Handle, IntPtr.Zero, 0, startAddress, parameter ?? IntPtr.Zero, 0, IntPtr.Zero); + NativeMethods.WaitForSingleObject(thread, 5000); + process.NtResumeProcess(); + NativeMethods.CloseHandle(thread); + } - //Write the name of the dll to be injected into a buffer - var dllFilepathPointer = process.Allocate(dllPath.Length * Marshal.SizeOf(typeof(UInt16))); - process.WriteProcessMemory((long)dllFilepathPointer, Encoding.Unicode.GetBytes(dllPath)); + #endregion - //Get the address of LoadLibraryW - var loadLibraryW = NativeMethods.GetProcAddress(NativeMethods.GetModuleHandleW("kernel32.dll"), "LoadLibraryW"); + #region DLL injection ================================================================================================================== - //Execute LoadLibraryA inside the target process with the dll path as parameter - process.Execute(loadLibraryW, dllFilepathPointer); + - //Cleanup - process.Free(dllFilepathPointer); + public static void InjectDll(this Process process, string dllPath) + { + //Make sure path is null terminated + if(!dllPath.EndsWith("\0")) + { + dllPath = dllPath + '\0'; } - #endregion + //Write the name of the dll to be injected into a buffer + var dllFilepathPointer = process.Allocate(dllPath.Length * Marshal.SizeOf(typeof(UInt16))); + process.WriteProcessMemory((long)dllFilepathPointer, Encoding.Unicode.GetBytes(dllPath)); - #region Remote modules ================================================================================================================== + //Get the address of LoadLibraryW + var loadLibraryW = NativeMethods.GetProcAddress(NativeMethods.GetModuleHandleW("kernel32.dll"), "LoadLibraryW"); - + //Execute LoadLibraryA inside the target process with the dll path as parameter + process.Execute(loadLibraryW, dllFilepathPointer); - // To avoid cleaning the list, - // the number of modules is returned with a tuple - public static (IntPtr[] List, uint Length) GetProcessModules(this Process process) - { - uint arraySize = 256; - IntPtr[] processMods = new IntPtr[arraySize]; - uint arrayBytesSize = arraySize * (uint)IntPtr.Size; - uint bytesCopied = 0; - - // Loop until all modules are listed - // See: https://docs.microsoft.com/en-us/windows/win32/api/psapi/nf-psapi-enumprocessmodules#:~:text=If%20lpcbNeeded%20is%20greater%20than%20cb%2C%20increase%20the%20size%20of%20the%20array%20and%20call%20EnumProcessModules%20again. - // Stops if: - // - EnumProcessModulesEx return 0 (call failed) - // - All modules are listed - // - The next size of the list is greater than uint.MaxValue - while (NativeMethods.EnumProcessModulesEx(process.Handle, processMods, arrayBytesSize, out bytesCopied, ListModules.LIST_MODULES_ALL) && - arrayBytesSize == bytesCopied && arraySize <= uint.MaxValue - 128) - { - arraySize += 128; - processMods = new IntPtr[arraySize]; - arrayBytesSize = arraySize * (uint)IntPtr.Size; - } + //Cleanup + process.Free(dllFilepathPointer); + } - var len = bytesCopied / IntPtr.Size; - return (List: processMods, Length: bytesCopied >> 2); - } + #endregion + #region Remote modules ================================================================================================================== - // get the parent process given a pid - public static List GetModulesViaSnapshot(this Process process) + + + // To avoid cleaning the list, + // the number of modules is returned with a tuple + public static (IntPtr[] List, uint Length) GetProcessModules(this Process process) + { + uint arraySize = 256; + IntPtr[] processMods = new IntPtr[arraySize]; + uint arrayBytesSize = arraySize * (uint)IntPtr.Size; + uint bytesCopied = 0; + + // Loop until all modules are listed + // See: https://docs.microsoft.com/en-us/windows/win32/api/psapi/nf-psapi-enumprocessmodules#:~:text=If%20lpcbNeeded%20is%20greater%20than%20cb%2C%20increase%20the%20size%20of%20the%20array%20and%20call%20EnumProcessModules%20again. + // Stops if: + // - EnumProcessModulesEx return 0 (call failed) + // - All modules are listed + // - The next size of the list is greater than uint.MaxValue + while (NativeMethods.EnumProcessModulesEx(process.Handle, processMods, arrayBytesSize, out bytesCopied, ListModules.LIST_MODULES_ALL) && + arrayBytesSize == bytesCopied && arraySize <= uint.MaxValue - 128) { - var modules = new List(); - IntPtr handleToSnapshot = IntPtr.Zero; + arraySize += 128; + processMods = new IntPtr[arraySize]; + arrayBytesSize = arraySize * (uint)IntPtr.Size; + } + + var len = bytesCopied / IntPtr.Size; + return (List: processMods, Length: bytesCopied >> 2); + } + - void CleanupSnapshot() + // get the parent process given a pid + public static List GetModulesViaSnapshot(this Process process) + { + var modules = new List(); + IntPtr handleToSnapshot = IntPtr.Zero; + + void CleanupSnapshot() + { + if (handleToSnapshot != IntPtr.Zero) { - if (handleToSnapshot != IntPtr.Zero) - { - NativeMethods.CloseHandle(handleToSnapshot); - handleToSnapshot = IntPtr.Zero; - } + NativeMethods.CloseHandle(handleToSnapshot); + handleToSnapshot = IntPtr.Zero; } - - try + } + + try + { + MODULEENTRY32W procEntry = new MODULEENTRY32W(); + procEntry.dwSize = (UInt32)Marshal.SizeOf(typeof(MODULEENTRY32W)); + handleToSnapshot = NativeMethods.CreateToolhelp32Snapshot((uint)SnapshotFlags.Module | (uint)SnapshotFlags.Module32, (uint)process.Id); + if (NativeMethods.Module32FirstW(handleToSnapshot, ref procEntry)) { - MODULEENTRY32W procEntry = new MODULEENTRY32W(); - procEntry.dwSize = (UInt32)Marshal.SizeOf(typeof(MODULEENTRY32W)); - handleToSnapshot = NativeMethods.CreateToolhelp32Snapshot((uint)SnapshotFlags.Module | (uint)SnapshotFlags.Module32, (uint)process.Id); - if (NativeMethods.Module32FirstW(handleToSnapshot, ref procEntry)) - { - do - { - modules.Add(procEntry); - } while (NativeMethods.Module32NextW(handleToSnapshot, ref procEntry)); - } - else + do { - throw new Win32Exception(Marshal.GetLastWin32Error(), "Module32FirstW failed"); - } + modules.Add(procEntry); + } while (NativeMethods.Module32NextW(handleToSnapshot, ref procEntry)); } - catch - { - CleanupSnapshot(); - throw; - } - finally + else { - CleanupSnapshot(); + throw new Win32Exception(Marshal.GetLastWin32Error(), "Module32FirstW failed"); } - return modules; } + catch + { + CleanupSnapshot(); + throw; + } + finally + { + CleanupSnapshot(); + } + return modules; + } - + - public static List<(string name, long address)> GetModuleExportedFunctions(this Process process, string hModuleName) - { - var modules = process.GetModulesViaSnapshot(); - var module = modules.First(i => i.szModule.ToLowerInvariant() == hModuleName.ToLowerInvariant()); + public static List<(string name, long address)> GetModuleExportedFunctions(this Process process, string hModuleName) + { + var modules = process.GetModulesViaSnapshot(); + var module = modules.First(i => i.szModule.ToLowerInvariant() == hModuleName.ToLowerInvariant()); - var moduleImageDosHeader = process.ReadMemory(module.modBaseAddr.ToInt64()).Unwrap(); - //moduleImageDosHeader.isValid + var moduleImageDosHeader = process.ReadMemory(module.modBaseAddr.ToInt64()).Unwrap(); + //moduleImageDosHeader.isValid - uint exportTableAddress = 0; - if (Is64Bit(process).Unwrap()) - { - var moduleImageNtHeaders = process.ReadMemory(module.modBaseAddr.ToInt64() + moduleImageDosHeader.e_lfanew).Unwrap(); - //moduleImageNtHeaders.isValid - - exportTableAddress = moduleImageNtHeaders.OptionalHeader.ExportTable.VirtualAddress; - } - else - { - var moduleImageNtHeaders = process.ReadMemory(module.modBaseAddr.ToInt64() + moduleImageDosHeader.e_lfanew).Unwrap(); - //moduleImageNtHeaders.isValid + uint exportTableAddress = 0; + if (Is64Bit(process).Unwrap()) + { + var moduleImageNtHeaders = process.ReadMemory(module.modBaseAddr.ToInt64() + moduleImageDosHeader.e_lfanew).Unwrap(); + //moduleImageNtHeaders.isValid - exportTableAddress = moduleImageNtHeaders.OptionalHeader.ExportTable.VirtualAddress; - } + exportTableAddress = moduleImageNtHeaders.OptionalHeader.ExportTable.VirtualAddress; + } + else + { + var moduleImageNtHeaders = process.ReadMemory(module.modBaseAddr.ToInt64() + moduleImageDosHeader.e_lfanew).Unwrap(); + //moduleImageNtHeaders.isValid - var exportTable = process.ReadMemory(module.modBaseAddr.ToInt64() + exportTableAddress).Unwrap(); + exportTableAddress = moduleImageNtHeaders.OptionalHeader.ExportTable.VirtualAddress; + } - var nameOffsetTable = module.modBaseAddr.ToInt64() + exportTable.AddressOfNames; - var ordinalTable = module.modBaseAddr.ToInt64() + exportTable.AddressOfNameOrdinals; - var functionOffsetTable = module.modBaseAddr.ToInt64() + exportTable.AddressOfFunctions; + var exportTable = process.ReadMemory(module.modBaseAddr.ToInt64() + exportTableAddress).Unwrap(); - var functions = new List<(string name, long address)>(); - for (var i = 0; i < exportTable.NumberOfNames; i++) - { - var EAT = module.modBaseAddr.ToInt64() + exportTable.AddressOfFunctions; + var nameOffsetTable = module.modBaseAddr.ToInt64() + exportTable.AddressOfNames; + var ordinalTable = module.modBaseAddr.ToInt64() + exportTable.AddressOfNameOrdinals; + var functionOffsetTable = module.modBaseAddr.ToInt64() + exportTable.AddressOfFunctions; - var EATPtr = (IntPtr)EAT; + var functions = new List<(string name, long address)>(); + for (var i = 0; i < exportTable.NumberOfNames; i++) + { + var EAT = module.modBaseAddr.ToInt64() + exportTable.AddressOfFunctions; - //Function name offset is an array of 4byte numbers - var functionNameOffset = process.ReadMemory(nameOffsetTable + i * sizeof(uint)).Unwrap(); - var functionName = process.ReadAsciiString(module.modBaseAddr.ToInt64() + functionNameOffset); + var EATPtr = (IntPtr)EAT; - //Ordinal seems to be an index - var ordinal = process.ReadMemory(ordinalTable + i * sizeof(ushort)).Unwrap(); + //Function name offset is an array of 4byte numbers + var functionNameOffset = process.ReadMemory(nameOffsetTable + i * sizeof(uint)).Unwrap(); + var functionName = process.ReadAsciiString(module.modBaseAddr.ToInt64() + functionNameOffset); - //Function offset table is an array of 4byte numbers - var functionOffset = process.ReadMemory(functionOffsetTable + i * sizeof(uint)).Unwrap(); - var functionAddress = module.modBaseAddr.ToInt64() + functionOffset; + //Ordinal seems to be an index + var ordinal = process.ReadMemory(ordinalTable + i * sizeof(ushort)).Unwrap(); - functions.Add((functionName, functionAddress)); - } + //Function offset table is an array of 4byte numbers + var functionOffset = process.ReadMemory(functionOffsetTable + i * sizeof(uint)).Unwrap(); + var functionAddress = module.modBaseAddr.ToInt64() + functionOffset; - return functions; + functions.Add((functionName, functionAddress)); } - #endregion + return functions; + } - public const uint PAGE_EXECUTE_READWRITE = 0x40; - public const uint PAGE_READWRITE = 0x04; - public const uint MEM_COMMIT = 0x00001000; - public const uint MEM_RESERVE = 0x00002000; - public const uint MEM_RELEASE = 0x00008000; + #endregion - public const int PROCESS_CREATE_THREAD = 0x0002; - public const int PROCESS_QUERY_INFORMATION = 0x0400; - public const int PROCESS_VM_OPERATION = 0x0008; - public const int PROCESS_VM_WRITE = 0x0020; - public const int PROCESS_VM_READ = 0x0010; + public const uint PAGE_EXECUTE_READWRITE = 0x40; + public const uint PAGE_READWRITE = 0x04; + public const uint MEM_COMMIT = 0x00001000; + public const uint MEM_RESERVE = 0x00002000; + public const uint MEM_RELEASE = 0x00008000; - public const int LIST_MODULES_32BIT = 0x01; - public const int LIST_MODULES_64BIT = 0x02; - public const int LIST_MODULES_ALL = 0x03; + public const int PROCESS_CREATE_THREAD = 0x0002; + public const int PROCESS_QUERY_INFORMATION = 0x0400; + public const int PROCESS_VM_OPERATION = 0x0008; + public const int PROCESS_VM_WRITE = 0x0020; + public const int PROCESS_VM_READ = 0x0010; + + public const int LIST_MODULES_32BIT = 0x01; + public const int LIST_MODULES_64BIT = 0x02; + public const int LIST_MODULES_ALL = 0x03; - } } diff --git a/src/SoulMemory/Native/NativeMethods.cs b/src/SoulMemory/Native/NativeMethods.cs index 44ccd81..0ff2166 100644 --- a/src/SoulMemory/Native/NativeMethods.cs +++ b/src/SoulMemory/Native/NativeMethods.cs @@ -22,66 +22,65 @@ using System.Diagnostics.CodeAnalysis; using System.Runtime.InteropServices; -namespace SoulMemory.Native +namespace SoulMemory.Native; + +[ExcludeFromCodeCoverage] +internal static class NativeMethods { - [ExcludeFromCodeCoverage] - internal static class NativeMethods - { - [DllImport("kernel32.dll", SetLastError = true)] - internal static extern bool ReadProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, byte[] lpBuffer, int dwSize, ref int lpNumberOfBytesRead); + [DllImport("kernel32.dll", SetLastError = true)] + internal static extern bool ReadProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, byte[] lpBuffer, int dwSize, ref int lpNumberOfBytesRead); - [DllImport("kernel32.dll")] - internal static extern bool WriteProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, byte[] lpBuffer, uint nSize, out uint lpNumberOfBytesWritten); + [DllImport("kernel32.dll")] + internal static extern bool WriteProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, byte[] lpBuffer, uint nSize, out uint lpNumberOfBytesWritten); - [DllImport("kernel32.dll")] - internal static extern int VirtualQueryEx(IntPtr hProcess, IntPtr lpAddress, out MemoryBasicInformation64 lpBuffer, uint dwLength); + [DllImport("kernel32.dll")] + internal static extern int VirtualQueryEx(IntPtr hProcess, IntPtr lpAddress, out MemoryBasicInformation64 lpBuffer, uint dwLength); - [DllImport("kernel32.dll", SetLastError = true)] - internal static extern bool IsWow64Process(IntPtr processHandle, out bool wow64Process); + [DllImport("kernel32.dll", SetLastError = true)] + internal static extern bool IsWow64Process(IntPtr processHandle, out bool wow64Process); - [DllImport("kernel32.dll", CharSet = CharSet.Ansi, SetLastError = true)] - internal static extern IntPtr GetProcAddress(IntPtr hModule, string procName); + [DllImport("kernel32.dll", CharSet = CharSet.Ansi, SetLastError = true)] + internal static extern IntPtr GetProcAddress(IntPtr hModule, string procName); - [DllImport("kernel32.dll", CharSet = CharSet.Auto)] - internal static extern IntPtr GetModuleHandleW(string lpModuleName); + [DllImport("kernel32.dll", CharSet = CharSet.Auto)] + internal static extern IntPtr GetModuleHandleW(string lpModuleName); - [DllImport("kernel32", SetLastError = true, CharSet = System.Runtime.InteropServices.CharSet.Auto)] - internal static extern IntPtr CreateToolhelp32Snapshot([In] UInt32 dwFlags, [In] UInt32 th32ProcessID); + [DllImport("kernel32", SetLastError = true, CharSet = System.Runtime.InteropServices.CharSet.Auto)] + internal static extern IntPtr CreateToolhelp32Snapshot([In] UInt32 dwFlags, [In] UInt32 th32ProcessID); - [DllImport("kernel32", SetLastError = true, CharSet = System.Runtime.InteropServices.CharSet.Auto)] - internal static extern bool Process32First([In] IntPtr hSnapshot, ref PROCESSENTRY32 lppe); + [DllImport("kernel32", SetLastError = true, CharSet = System.Runtime.InteropServices.CharSet.Auto)] + internal static extern bool Process32First([In] IntPtr hSnapshot, ref PROCESSENTRY32 lppe); - [DllImport("kernel32", SetLastError = true, CharSet = System.Runtime.InteropServices.CharSet.Auto)] - internal static extern bool Process32Next([In] IntPtr hSnapshot, ref PROCESSENTRY32 lppe); + [DllImport("kernel32", SetLastError = true, CharSet = System.Runtime.InteropServices.CharSet.Auto)] + internal static extern bool Process32Next([In] IntPtr hSnapshot, ref PROCESSENTRY32 lppe); - [DllImport("kernel32.dll")] - internal static extern bool Module32FirstW(IntPtr hSnapshot, ref MODULEENTRY32W lpme); + [DllImport("kernel32.dll")] + internal static extern bool Module32FirstW(IntPtr hSnapshot, ref MODULEENTRY32W lpme); - [DllImport("kernel32.dll")] - internal static extern bool Module32NextW(IntPtr hSnapshot, ref MODULEENTRY32W lpme); + [DllImport("kernel32.dll")] + internal static extern bool Module32NextW(IntPtr hSnapshot, ref MODULEENTRY32W lpme); - [DllImport("psapi.dll", SetLastError = true)] - internal static extern bool EnumProcessModulesEx( - IntPtr hProcess, - [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.U4)][In][Out] IntPtr[] lphModule, - uint cb, - [MarshalAs(UnmanagedType.U4)] out uint lpcbNeeded, - ListModules dwFilterFlag - ); + [DllImport("psapi.dll", SetLastError = true)] + internal static extern bool EnumProcessModulesEx( + IntPtr hProcess, + [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.U4)][In][Out] IntPtr[] lphModule, + uint cb, + [MarshalAs(UnmanagedType.U4)] out uint lpcbNeeded, + ListModules dwFilterFlag + ); - [DllImport("kernel32.dll")] - internal static extern IntPtr CreateRemoteThread(IntPtr hProcess, IntPtr lpThreadAttributes, uint dwStackSize, IntPtr lpStartAddress, IntPtr lpParameter, uint dwCreationFlags, IntPtr lpThreadId); + [DllImport("kernel32.dll")] + internal static extern IntPtr CreateRemoteThread(IntPtr hProcess, IntPtr lpThreadAttributes, uint dwStackSize, IntPtr lpStartAddress, IntPtr lpParameter, uint dwCreationFlags, IntPtr lpThreadId); - [DllImport("kernel32.dll")] - internal static extern uint WaitForSingleObject(IntPtr hHandle, uint dwMilliseconds); + [DllImport("kernel32.dll")] + internal static extern uint WaitForSingleObject(IntPtr hHandle, uint dwMilliseconds); - [DllImport("kernel32.dll")] - internal static extern bool CloseHandle(IntPtr hObject); + [DllImport("kernel32.dll")] + internal static extern bool CloseHandle(IntPtr hObject); - [DllImport("kernel32.dll")] - internal static extern IntPtr VirtualAllocEx(IntPtr hProcess, IntPtr lpAddress, IntPtr dwSize, uint flAllocationType, uint flProtect); + [DllImport("kernel32.dll")] + internal static extern IntPtr VirtualAllocEx(IntPtr hProcess, IntPtr lpAddress, IntPtr dwSize, uint flAllocationType, uint flProtect); - [DllImport("kernel32.dll")] - internal static extern bool VirtualFreeEx(IntPtr hProcess, IntPtr lpAddress, IntPtr dwSize, uint dwFreeType); - } + [DllImport("kernel32.dll")] + internal static extern bool VirtualFreeEx(IntPtr hProcess, IntPtr lpAddress, IntPtr dwSize, uint dwFreeType); } diff --git a/src/SoulMemory/Native/Ntdll.cs b/src/SoulMemory/Native/Ntdll.cs index ff17805..50a0c8c 100644 --- a/src/SoulMemory/Native/Ntdll.cs +++ b/src/SoulMemory/Native/Ntdll.cs @@ -19,24 +19,23 @@ using System.Diagnostics.CodeAnalysis; using System.Runtime.InteropServices; -namespace SoulMemory.Native +namespace SoulMemory.Native; + +[ExcludeFromCodeCoverage] +public static class Ntdll { - [ExcludeFromCodeCoverage] - public static class Ntdll + [DllImport("ntdll.dll", SetLastError = true)] + private static extern IntPtr NtSuspendProcess(IntPtr hProcess); + public static void NtSuspendProcess(this Process process) { - [DllImport("ntdll.dll", SetLastError = true)] - private static extern IntPtr NtSuspendProcess(IntPtr hProcess); - public static void NtSuspendProcess(this Process process) - { - NtSuspendProcess(process.Handle); - } + NtSuspendProcess(process.Handle); + } - [DllImport("ntdll.dll", SetLastError = true)] - private static extern IntPtr NtResumeProcess(IntPtr hProcess); - public static void NtResumeProcess(this Process process) - { - NtResumeProcess(process.Handle); - } + [DllImport("ntdll.dll", SetLastError = true)] + private static extern IntPtr NtResumeProcess(IntPtr hProcess); + public static void NtResumeProcess(this Process process) + { + NtResumeProcess(process.Handle); } } diff --git a/src/SoulMemory/Native/Structs/Image/IMAGE_DATA_DIRECTORY.cs b/src/SoulMemory/Native/Structs/Image/IMAGE_DATA_DIRECTORY.cs index 2c4ee31..e9a595f 100644 --- a/src/SoulMemory/Native/Structs/Image/IMAGE_DATA_DIRECTORY.cs +++ b/src/SoulMemory/Native/Structs/Image/IMAGE_DATA_DIRECTORY.cs @@ -16,12 +16,11 @@ using System.Runtime.InteropServices; -namespace SoulMemory.Native.Structs.Image +namespace SoulMemory.Native.Structs.Image; + +[StructLayout(LayoutKind.Sequential)] +public struct IMAGE_DATA_DIRECTORY { - [StructLayout(LayoutKind.Sequential)] - public struct IMAGE_DATA_DIRECTORY - { - public uint VirtualAddress; - public uint Size; - } + public uint VirtualAddress; + public uint Size; } diff --git a/src/SoulMemory/Native/Structs/Image/IMAGE_DOS_HEADER.cs b/src/SoulMemory/Native/Structs/Image/IMAGE_DOS_HEADER.cs index 5bd236c..440be75 100644 --- a/src/SoulMemory/Native/Structs/Image/IMAGE_DOS_HEADER.cs +++ b/src/SoulMemory/Native/Structs/Image/IMAGE_DOS_HEADER.cs @@ -16,42 +16,41 @@ using System.Runtime.InteropServices; -namespace SoulMemory.Native.Structs.Image +namespace SoulMemory.Native.Structs.Image; + +[StructLayout(LayoutKind.Sequential)] +public struct IMAGE_DOS_HEADER { - [StructLayout(LayoutKind.Sequential)] - public struct IMAGE_DOS_HEADER - { - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)] - public char[] e_magic; // Magic number - public ushort e_cblp; // Bytes on last page of file - public ushort e_cp; // Pages in file - public ushort e_crlc; // Relocations - public ushort e_cparhdr; // Size of header in paragraphs - public ushort e_minalloc; // Minimum extra paragraphs needed - public ushort e_maxalloc; // Maximum extra paragraphs needed - public ushort e_ss; // Initial (relative) SS value - public ushort e_sp; // Initial SP value - public ushort e_csum; // Checksum - public ushort e_ip; // Initial IP value - public ushort e_cs; // Initial (relative) CS value - public ushort e_lfarlc; // File address of relocation table - public ushort e_ovno; // Overlay number - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)] - public ushort[] e_res1; // Reserved words - public ushort e_oemid; // OEM identifier (for e_oeminfo) - public ushort e_oeminfo; // OEM information; e_oemid specific - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 10)] - public ushort[] e_res2; // Reserved words - public int e_lfanew; // File address of new exe header + [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)] + public char[] e_magic; // Magic number + public ushort e_cblp; // Bytes on last page of file + public ushort e_cp; // Pages in file + public ushort e_crlc; // Relocations + public ushort e_cparhdr; // Size of header in paragraphs + public ushort e_minalloc; // Minimum extra paragraphs needed + public ushort e_maxalloc; // Maximum extra paragraphs needed + public ushort e_ss; // Initial (relative) SS value + public ushort e_sp; // Initial SP value + public ushort e_csum; // Checksum + public ushort e_ip; // Initial IP value + public ushort e_cs; // Initial (relative) CS value + public ushort e_lfarlc; // File address of relocation table + public ushort e_ovno; // Overlay number + [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)] + public ushort[] e_res1; // Reserved words + public ushort e_oemid; // OEM identifier (for e_oeminfo) + public ushort e_oeminfo; // OEM information; e_oemid specific + [MarshalAs(UnmanagedType.ByValArray, SizeConst = 10)] + public ushort[] e_res2; // Reserved words + public int e_lfanew; // File address of new exe header - private string _e_magic - { - get { return new string(e_magic); } - } + private string _e_magic + { + get { return new string(e_magic); } + } - public bool isValid - { - get { return _e_magic == "MZ"; } - } + public bool isValid + { + get { return _e_magic == "MZ"; } } } \ No newline at end of file diff --git a/src/SoulMemory/Native/Structs/Image/IMAGE_EXPORT_DIRECTORY.cs b/src/SoulMemory/Native/Structs/Image/IMAGE_EXPORT_DIRECTORY.cs index e996536..0bb9207 100644 --- a/src/SoulMemory/Native/Structs/Image/IMAGE_EXPORT_DIRECTORY.cs +++ b/src/SoulMemory/Native/Structs/Image/IMAGE_EXPORT_DIRECTORY.cs @@ -17,21 +17,20 @@ using System; using System.Runtime.InteropServices; -namespace SoulMemory.Native.Structs.Image +namespace SoulMemory.Native.Structs.Image; + +[StructLayout(LayoutKind.Sequential)] +public struct IMAGE_EXPORT_DIRECTORY { - [StructLayout(LayoutKind.Sequential)] - public struct IMAGE_EXPORT_DIRECTORY - { - public UInt32 Characteristics; - public UInt32 TimeDateStamp; - public UInt16 MajorVersion; - public UInt16 MinorVersion; - public UInt32 Name; - public UInt32 Base; - public UInt32 NumberOfFunctions; - public UInt32 NumberOfNames; - public UInt32 AddressOfFunctions; // RVA from base of image - public UInt32 AddressOfNames; // RVA from base of image - public UInt32 AddressOfNameOrdinals; // RVA from base of image - } + public UInt32 Characteristics; + public UInt32 TimeDateStamp; + public UInt16 MajorVersion; + public UInt16 MinorVersion; + public UInt32 Name; + public UInt32 Base; + public UInt32 NumberOfFunctions; + public UInt32 NumberOfNames; + public UInt32 AddressOfFunctions; // RVA from base of image + public UInt32 AddressOfNames; // RVA from base of image + public UInt32 AddressOfNameOrdinals; // RVA from base of image } diff --git a/src/SoulMemory/Native/Structs/Image/IMAGE_FILE_HEADER.cs b/src/SoulMemory/Native/Structs/Image/IMAGE_FILE_HEADER.cs index d823102..272580d 100644 --- a/src/SoulMemory/Native/Structs/Image/IMAGE_FILE_HEADER.cs +++ b/src/SoulMemory/Native/Structs/Image/IMAGE_FILE_HEADER.cs @@ -16,17 +16,16 @@ using System.Runtime.InteropServices; -namespace SoulMemory.Native.Structs.Image +namespace SoulMemory.Native.Structs.Image; + +[StructLayout(LayoutKind.Sequential, Pack = 1)] +public struct IMAGE_FILE_HEADER { - [StructLayout(LayoutKind.Sequential, Pack = 1)] - public struct IMAGE_FILE_HEADER - { - public ushort Machine; - public ushort NumberOfSections; - public uint TimeDateStamp; - public uint PointerToSymbolTable; - public uint NumberOfSymbols; - public ushort SizeOfOptionalHeader; - public ushort Characteristics; - } + public ushort Machine; + public ushort NumberOfSections; + public uint TimeDateStamp; + public uint PointerToSymbolTable; + public uint NumberOfSymbols; + public ushort SizeOfOptionalHeader; + public ushort Characteristics; } diff --git a/src/SoulMemory/Native/Structs/Image/IMAGE_NT_HEADERS32.cs b/src/SoulMemory/Native/Structs/Image/IMAGE_NT_HEADERS32.cs index 5a8fc77..a755620 100644 --- a/src/SoulMemory/Native/Structs/Image/IMAGE_NT_HEADERS32.cs +++ b/src/SoulMemory/Native/Structs/Image/IMAGE_NT_HEADERS32.cs @@ -19,29 +19,28 @@ using System.Text; using SoulMemory.Native.Enums; -namespace SoulMemory.Native.Structs.Image +namespace SoulMemory.Native.Structs.Image; + +[StructLayout(LayoutKind.Explicit)] +public struct IMAGE_NT_HEADERS32 { - [StructLayout(LayoutKind.Explicit)] - public struct IMAGE_NT_HEADERS32 - { - [FieldOffset(0)] - public uint Signature; + [FieldOffset(0)] + public uint Signature; - [FieldOffset(4)] - public IMAGE_FILE_HEADER FileHeader; + [FieldOffset(4)] + public IMAGE_FILE_HEADER FileHeader; - [FieldOffset(24)] - public IMAGE_OPTIONAL_HEADER32 OptionalHeader; + [FieldOffset(24)] + public IMAGE_OPTIONAL_HEADER32 OptionalHeader; - private string _Signature - { + private string _Signature + { - get { return Encoding.ASCII.GetString(BitConverter.GetBytes(Signature)); } - } + get { return Encoding.ASCII.GetString(BitConverter.GetBytes(Signature)); } + } - public bool isValid - { - get { return _Signature == "PE\0\0" && OptionalHeader.Magic == MagicType.IMAGE_NT_OPTIONAL_HDR32_MAGIC; } - } + public bool isValid + { + get { return _Signature == "PE\0\0" && OptionalHeader.Magic == MagicType.IMAGE_NT_OPTIONAL_HDR32_MAGIC; } } } diff --git a/src/SoulMemory/Native/Structs/Image/IMAGE_NT_HEADERS64.cs b/src/SoulMemory/Native/Structs/Image/IMAGE_NT_HEADERS64.cs index 1a9e7af..cd3bd22 100644 --- a/src/SoulMemory/Native/Structs/Image/IMAGE_NT_HEADERS64.cs +++ b/src/SoulMemory/Native/Structs/Image/IMAGE_NT_HEADERS64.cs @@ -19,28 +19,27 @@ using System.Text; using SoulMemory.Native.Enums; -namespace SoulMemory.Native.Structs.Image +namespace SoulMemory.Native.Structs.Image; + +[StructLayout(LayoutKind.Explicit)] +public struct IMAGE_NT_HEADERS64 { - [StructLayout(LayoutKind.Explicit)] - public struct IMAGE_NT_HEADERS64 - { - [FieldOffset(0)] - public uint Signature; + [FieldOffset(0)] + public uint Signature; - [FieldOffset(4)] - public IMAGE_FILE_HEADER FileHeader; + [FieldOffset(4)] + public IMAGE_FILE_HEADER FileHeader; - [FieldOffset(24)] - public IMAGE_OPTIONAL_HEADER64 OptionalHeader; + [FieldOffset(24)] + public IMAGE_OPTIONAL_HEADER64 OptionalHeader; - private string _Signature - { - get { return Encoding.ASCII.GetString(BitConverter.GetBytes(Signature)); } - } + private string _Signature + { + get { return Encoding.ASCII.GetString(BitConverter.GetBytes(Signature)); } + } - public bool isValid - { - get { return _Signature == "PE\0\0" && OptionalHeader.Magic == MagicType.IMAGE_NT_OPTIONAL_HDR64_MAGIC; } - } + public bool isValid + { + get { return _Signature == "PE\0\0" && OptionalHeader.Magic == MagicType.IMAGE_NT_OPTIONAL_HDR64_MAGIC; } } } diff --git a/src/SoulMemory/Native/Structs/Image/IMAGE_OPTIONAL_HEADER32.cs b/src/SoulMemory/Native/Structs/Image/IMAGE_OPTIONAL_HEADER32.cs index bcab73f..f139a07 100644 --- a/src/SoulMemory/Native/Structs/Image/IMAGE_OPTIONAL_HEADER32.cs +++ b/src/SoulMemory/Native/Structs/Image/IMAGE_OPTIONAL_HEADER32.cs @@ -17,148 +17,147 @@ using System.Runtime.InteropServices; using SoulMemory.Native.Enums; -namespace SoulMemory.Native.Structs.Image +namespace SoulMemory.Native.Structs.Image; + +[StructLayout(LayoutKind.Explicit)] +public struct IMAGE_OPTIONAL_HEADER32 { - [StructLayout(LayoutKind.Explicit)] - public struct IMAGE_OPTIONAL_HEADER32 - { - [FieldOffset(0)] - public MagicType Magic; + [FieldOffset(0)] + public MagicType Magic; - [FieldOffset(2)] - public byte MajorLinkerVersion; + [FieldOffset(2)] + public byte MajorLinkerVersion; - [FieldOffset(3)] - public byte MinorLinkerVersion; + [FieldOffset(3)] + public byte MinorLinkerVersion; - [FieldOffset(4)] - public uint SizeOfCode; + [FieldOffset(4)] + public uint SizeOfCode; - [FieldOffset(8)] - public uint SizeOfInitializedData; + [FieldOffset(8)] + public uint SizeOfInitializedData; - [FieldOffset(12)] - public uint SizeOfUninitializedData; + [FieldOffset(12)] + public uint SizeOfUninitializedData; - [FieldOffset(16)] - public uint AddressOfEntryPoint; + [FieldOffset(16)] + public uint AddressOfEntryPoint; - [FieldOffset(20)] - public uint BaseOfCode; + [FieldOffset(20)] + public uint BaseOfCode; - // PE32 contains this additional field - [FieldOffset(24)] - public uint BaseOfData; + // PE32 contains this additional field + [FieldOffset(24)] + public uint BaseOfData; - [FieldOffset(28)] - public uint ImageBase; + [FieldOffset(28)] + public uint ImageBase; - [FieldOffset(32)] - public uint SectionAlignment; + [FieldOffset(32)] + public uint SectionAlignment; - [FieldOffset(36)] - public uint FileAlignment; + [FieldOffset(36)] + public uint FileAlignment; - [FieldOffset(40)] - public ushort MajorOperatingSystemVersion; + [FieldOffset(40)] + public ushort MajorOperatingSystemVersion; - [FieldOffset(42)] - public ushort MinorOperatingSystemVersion; + [FieldOffset(42)] + public ushort MinorOperatingSystemVersion; - [FieldOffset(44)] - public ushort MajorImageVersion; + [FieldOffset(44)] + public ushort MajorImageVersion; - [FieldOffset(46)] - public ushort MinorImageVersion; + [FieldOffset(46)] + public ushort MinorImageVersion; - [FieldOffset(48)] - public ushort MajorSubsystemVersion; + [FieldOffset(48)] + public ushort MajorSubsystemVersion; - [FieldOffset(50)] - public ushort MinorSubsystemVersion; + [FieldOffset(50)] + public ushort MinorSubsystemVersion; - [FieldOffset(52)] - public uint Win32VersionValue; + [FieldOffset(52)] + public uint Win32VersionValue; - [FieldOffset(56)] - public uint SizeOfImage; + [FieldOffset(56)] + public uint SizeOfImage; - [FieldOffset(60)] - public uint SizeOfHeaders; + [FieldOffset(60)] + public uint SizeOfHeaders; - [FieldOffset(64)] - public uint CheckSum; + [FieldOffset(64)] + public uint CheckSum; - [FieldOffset(68)] - public SubSystemType Subsystem; + [FieldOffset(68)] + public SubSystemType Subsystem; - [FieldOffset(70)] - public DllCharacteristicsType DllCharacteristics; + [FieldOffset(70)] + public DllCharacteristicsType DllCharacteristics; - [FieldOffset(72)] - public uint SizeOfStackReserve; + [FieldOffset(72)] + public uint SizeOfStackReserve; - [FieldOffset(76)] - public uint SizeOfStackCommit; + [FieldOffset(76)] + public uint SizeOfStackCommit; - [FieldOffset(80)] - public uint SizeOfHeapReserve; + [FieldOffset(80)] + public uint SizeOfHeapReserve; - [FieldOffset(84)] - public uint SizeOfHeapCommit; + [FieldOffset(84)] + public uint SizeOfHeapCommit; - [FieldOffset(88)] - public uint LoaderFlags; + [FieldOffset(88)] + public uint LoaderFlags; - [FieldOffset(92)] - public uint NumberOfRvaAndSizes; + [FieldOffset(92)] + public uint NumberOfRvaAndSizes; - [FieldOffset(96)] - public IMAGE_DATA_DIRECTORY ExportTable; + [FieldOffset(96)] + public IMAGE_DATA_DIRECTORY ExportTable; - [FieldOffset(104)] - public IMAGE_DATA_DIRECTORY ImportTable; + [FieldOffset(104)] + public IMAGE_DATA_DIRECTORY ImportTable; - [FieldOffset(112)] - public IMAGE_DATA_DIRECTORY ResourceTable; + [FieldOffset(112)] + public IMAGE_DATA_DIRECTORY ResourceTable; - [FieldOffset(120)] - public IMAGE_DATA_DIRECTORY ExceptionTable; + [FieldOffset(120)] + public IMAGE_DATA_DIRECTORY ExceptionTable; - [FieldOffset(128)] - public IMAGE_DATA_DIRECTORY CertificateTable; + [FieldOffset(128)] + public IMAGE_DATA_DIRECTORY CertificateTable; - [FieldOffset(136)] - public IMAGE_DATA_DIRECTORY BaseRelocationTable; + [FieldOffset(136)] + public IMAGE_DATA_DIRECTORY BaseRelocationTable; - [FieldOffset(144)] - public IMAGE_DATA_DIRECTORY Debug; + [FieldOffset(144)] + public IMAGE_DATA_DIRECTORY Debug; - [FieldOffset(152)] - public IMAGE_DATA_DIRECTORY Architecture; + [FieldOffset(152)] + public IMAGE_DATA_DIRECTORY Architecture; - [FieldOffset(160)] - public IMAGE_DATA_DIRECTORY GlobalPtr; + [FieldOffset(160)] + public IMAGE_DATA_DIRECTORY GlobalPtr; - [FieldOffset(168)] - public IMAGE_DATA_DIRECTORY TLSTable; + [FieldOffset(168)] + public IMAGE_DATA_DIRECTORY TLSTable; - [FieldOffset(176)] - public IMAGE_DATA_DIRECTORY LoadConfigTable; + [FieldOffset(176)] + public IMAGE_DATA_DIRECTORY LoadConfigTable; - [FieldOffset(184)] - public IMAGE_DATA_DIRECTORY BoundImport; + [FieldOffset(184)] + public IMAGE_DATA_DIRECTORY BoundImport; - [FieldOffset(192)] - public IMAGE_DATA_DIRECTORY IAT; + [FieldOffset(192)] + public IMAGE_DATA_DIRECTORY IAT; - [FieldOffset(200)] - public IMAGE_DATA_DIRECTORY DelayImportDescriptor; + [FieldOffset(200)] + public IMAGE_DATA_DIRECTORY DelayImportDescriptor; - [FieldOffset(208)] - public IMAGE_DATA_DIRECTORY CLRRuntimeHeader; + [FieldOffset(208)] + public IMAGE_DATA_DIRECTORY CLRRuntimeHeader; - [FieldOffset(216)] - public IMAGE_DATA_DIRECTORY Reserved; - } + [FieldOffset(216)] + public IMAGE_DATA_DIRECTORY Reserved; } diff --git a/src/SoulMemory/Native/Structs/Image/IMAGE_OPTIONAL_HEADER64.cs b/src/SoulMemory/Native/Structs/Image/IMAGE_OPTIONAL_HEADER64.cs index 6c1d2b0..b7386c4 100644 --- a/src/SoulMemory/Native/Structs/Image/IMAGE_OPTIONAL_HEADER64.cs +++ b/src/SoulMemory/Native/Structs/Image/IMAGE_OPTIONAL_HEADER64.cs @@ -17,144 +17,143 @@ using System.Runtime.InteropServices; using SoulMemory.Native.Enums; -namespace SoulMemory.Native.Structs.Image +namespace SoulMemory.Native.Structs.Image; + +[StructLayout(LayoutKind.Explicit)] +public struct IMAGE_OPTIONAL_HEADER64 { - [StructLayout(LayoutKind.Explicit)] - public struct IMAGE_OPTIONAL_HEADER64 - { - [FieldOffset(0)] - public MagicType Magic; + [FieldOffset(0)] + public MagicType Magic; - [FieldOffset(2)] - public byte MajorLinkerVersion; + [FieldOffset(2)] + public byte MajorLinkerVersion; - [FieldOffset(3)] - public byte MinorLinkerVersion; + [FieldOffset(3)] + public byte MinorLinkerVersion; - [FieldOffset(4)] - public uint SizeOfCode; + [FieldOffset(4)] + public uint SizeOfCode; - [FieldOffset(8)] - public uint SizeOfInitializedData; + [FieldOffset(8)] + public uint SizeOfInitializedData; - [FieldOffset(12)] - public uint SizeOfUninitializedData; + [FieldOffset(12)] + public uint SizeOfUninitializedData; - [FieldOffset(16)] - public uint AddressOfEntryPoint; + [FieldOffset(16)] + public uint AddressOfEntryPoint; - [FieldOffset(20)] - public uint BaseOfCode; + [FieldOffset(20)] + public uint BaseOfCode; - [FieldOffset(24)] - public ulong ImageBase; + [FieldOffset(24)] + public ulong ImageBase; - [FieldOffset(32)] - public uint SectionAlignment; + [FieldOffset(32)] + public uint SectionAlignment; - [FieldOffset(36)] - public uint FileAlignment; + [FieldOffset(36)] + public uint FileAlignment; - [FieldOffset(40)] - public ushort MajorOperatingSystemVersion; + [FieldOffset(40)] + public ushort MajorOperatingSystemVersion; - [FieldOffset(42)] - public ushort MinorOperatingSystemVersion; + [FieldOffset(42)] + public ushort MinorOperatingSystemVersion; - [FieldOffset(44)] - public ushort MajorImageVersion; + [FieldOffset(44)] + public ushort MajorImageVersion; - [FieldOffset(46)] - public ushort MinorImageVersion; + [FieldOffset(46)] + public ushort MinorImageVersion; - [FieldOffset(48)] - public ushort MajorSubsystemVersion; + [FieldOffset(48)] + public ushort MajorSubsystemVersion; - [FieldOffset(50)] - public ushort MinorSubsystemVersion; + [FieldOffset(50)] + public ushort MinorSubsystemVersion; - [FieldOffset(52)] - public uint Win32VersionValue; + [FieldOffset(52)] + public uint Win32VersionValue; - [FieldOffset(56)] - public uint SizeOfImage; + [FieldOffset(56)] + public uint SizeOfImage; - [FieldOffset(60)] - public uint SizeOfHeaders; + [FieldOffset(60)] + public uint SizeOfHeaders; - [FieldOffset(64)] - public uint CheckSum; + [FieldOffset(64)] + public uint CheckSum; - [FieldOffset(68)] - public SubSystemType Subsystem; + [FieldOffset(68)] + public SubSystemType Subsystem; - [FieldOffset(70)] - public DllCharacteristicsType DllCharacteristics; + [FieldOffset(70)] + public DllCharacteristicsType DllCharacteristics; - [FieldOffset(72)] - public ulong SizeOfStackReserve; + [FieldOffset(72)] + public ulong SizeOfStackReserve; - [FieldOffset(80)] - public ulong SizeOfStackCommit; + [FieldOffset(80)] + public ulong SizeOfStackCommit; - [FieldOffset(88)] - public ulong SizeOfHeapReserve; + [FieldOffset(88)] + public ulong SizeOfHeapReserve; - [FieldOffset(96)] - public ulong SizeOfHeapCommit; + [FieldOffset(96)] + public ulong SizeOfHeapCommit; - [FieldOffset(104)] - public uint LoaderFlags; + [FieldOffset(104)] + public uint LoaderFlags; - [FieldOffset(108)] - public uint NumberOfRvaAndSizes; + [FieldOffset(108)] + public uint NumberOfRvaAndSizes; - [FieldOffset(112)] - public IMAGE_DATA_DIRECTORY ExportTable; + [FieldOffset(112)] + public IMAGE_DATA_DIRECTORY ExportTable; - [FieldOffset(120)] - public IMAGE_DATA_DIRECTORY ImportTable; + [FieldOffset(120)] + public IMAGE_DATA_DIRECTORY ImportTable; - [FieldOffset(128)] - public IMAGE_DATA_DIRECTORY ResourceTable; + [FieldOffset(128)] + public IMAGE_DATA_DIRECTORY ResourceTable; - [FieldOffset(136)] - public IMAGE_DATA_DIRECTORY ExceptionTable; + [FieldOffset(136)] + public IMAGE_DATA_DIRECTORY ExceptionTable; - [FieldOffset(144)] - public IMAGE_DATA_DIRECTORY CertificateTable; + [FieldOffset(144)] + public IMAGE_DATA_DIRECTORY CertificateTable; - [FieldOffset(152)] - public IMAGE_DATA_DIRECTORY BaseRelocationTable; + [FieldOffset(152)] + public IMAGE_DATA_DIRECTORY BaseRelocationTable; - [FieldOffset(160)] - public IMAGE_DATA_DIRECTORY Debug; + [FieldOffset(160)] + public IMAGE_DATA_DIRECTORY Debug; - [FieldOffset(168)] - public IMAGE_DATA_DIRECTORY Architecture; + [FieldOffset(168)] + public IMAGE_DATA_DIRECTORY Architecture; - [FieldOffset(176)] - public IMAGE_DATA_DIRECTORY GlobalPtr; + [FieldOffset(176)] + public IMAGE_DATA_DIRECTORY GlobalPtr; - [FieldOffset(184)] - public IMAGE_DATA_DIRECTORY TLSTable; + [FieldOffset(184)] + public IMAGE_DATA_DIRECTORY TLSTable; - [FieldOffset(192)] - public IMAGE_DATA_DIRECTORY LoadConfigTable; + [FieldOffset(192)] + public IMAGE_DATA_DIRECTORY LoadConfigTable; - [FieldOffset(200)] - public IMAGE_DATA_DIRECTORY BoundImport; + [FieldOffset(200)] + public IMAGE_DATA_DIRECTORY BoundImport; - [FieldOffset(208)] - public IMAGE_DATA_DIRECTORY IAT; + [FieldOffset(208)] + public IMAGE_DATA_DIRECTORY IAT; - [FieldOffset(216)] - public IMAGE_DATA_DIRECTORY DelayImportDescriptor; + [FieldOffset(216)] + public IMAGE_DATA_DIRECTORY DelayImportDescriptor; - [FieldOffset(224)] - public IMAGE_DATA_DIRECTORY CLRRuntimeHeader; + [FieldOffset(224)] + public IMAGE_DATA_DIRECTORY CLRRuntimeHeader; - [FieldOffset(232)] - public IMAGE_DATA_DIRECTORY Reserved; - } + [FieldOffset(232)] + public IMAGE_DATA_DIRECTORY Reserved; } diff --git a/src/SoulMemory/Native/Structs/MemoryBasicInformation64.cs b/src/SoulMemory/Native/Structs/MemoryBasicInformation64.cs index 81d4f38..6189b61 100644 --- a/src/SoulMemory/Native/Structs/MemoryBasicInformation64.cs +++ b/src/SoulMemory/Native/Structs/MemoryBasicInformation64.cs @@ -16,19 +16,18 @@ using System.Runtime.InteropServices; -namespace SoulMemory.Native.Structs +namespace SoulMemory.Native.Structs; + +[StructLayout(LayoutKind.Sequential)] +public struct MemoryBasicInformation64 { - [StructLayout(LayoutKind.Sequential)] - public struct MemoryBasicInformation64 - { - public ulong BaseAddress; - public ulong AllocationBase; - public int AllocationProtect; - public int __alignment1; - public ulong RegionSize; - public int State; - public int Protect; - public int Type; - public int __alignment2; - } + public ulong BaseAddress; + public ulong AllocationBase; + public int AllocationProtect; + public int __alignment1; + public ulong RegionSize; + public int State; + public int Protect; + public int Type; + public int __alignment2; } diff --git a/src/SoulMemory/Native/Structs/Module/MODULEENTRY32W.cs b/src/SoulMemory/Native/Structs/Module/MODULEENTRY32W.cs index bcbeab3..34f9d45 100644 --- a/src/SoulMemory/Native/Structs/Module/MODULEENTRY32W.cs +++ b/src/SoulMemory/Native/Structs/Module/MODULEENTRY32W.cs @@ -17,22 +17,21 @@ using System; using System.Runtime.InteropServices; -namespace SoulMemory.Native.Structs.Module +namespace SoulMemory.Native.Structs.Module; + +[StructLayout(LayoutKind.Sequential, CharSet = System.Runtime.InteropServices.CharSet.Auto)] +public struct MODULEENTRY32W { - [StructLayout(LayoutKind.Sequential, CharSet = System.Runtime.InteropServices.CharSet.Auto)] - public struct MODULEENTRY32W - { - internal uint dwSize; - internal uint th32ModuleID; - internal uint th32ProcessID; - internal uint GlblcntUsage; - internal uint ProccntUsage; - internal IntPtr modBaseAddr; - internal uint modBaseSize; - internal IntPtr hModule; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)] - internal string szModule; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)] - internal string szExePath; - } + internal uint dwSize; + internal uint th32ModuleID; + internal uint th32ProcessID; + internal uint GlblcntUsage; + internal uint ProccntUsage; + internal IntPtr modBaseAddr; + internal uint modBaseSize; + internal IntPtr hModule; + [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)] + internal string szModule; + [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)] + internal string szExePath; } diff --git a/src/SoulMemory/Native/Structs/Process/PROCESSENTRY32.cs b/src/SoulMemory/Native/Structs/Process/PROCESSENTRY32.cs index d8bc1d7..b1cfd05 100644 --- a/src/SoulMemory/Native/Structs/Process/PROCESSENTRY32.cs +++ b/src/SoulMemory/Native/Structs/Process/PROCESSENTRY32.cs @@ -17,22 +17,21 @@ using System; using System.Runtime.InteropServices; -namespace SoulMemory.Native.Structs.Process +namespace SoulMemory.Native.Structs.Process; + +[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)] +internal struct PROCESSENTRY32 { - [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)] - internal struct PROCESSENTRY32 - { - const int MAX_PATH = 260; - internal UInt32 dwSize; - internal UInt32 cntUsage; - internal UInt32 th32ProcessID; - internal IntPtr th32DefaultHeapID; - internal UInt32 th32ModuleID; - internal UInt32 cntThreads; - internal UInt32 th32ParentProcessID; - internal Int32 pcPriClassBase; - internal UInt32 dwFlags; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = MAX_PATH)] - internal string szExeFile; - } + const int MAX_PATH = 260; + internal UInt32 dwSize; + internal UInt32 cntUsage; + internal UInt32 th32ProcessID; + internal IntPtr th32DefaultHeapID; + internal UInt32 th32ModuleID; + internal UInt32 cntThreads; + internal UInt32 th32ParentProcessID; + internal Int32 pcPriClassBase; + internal UInt32 dwFlags; + [MarshalAs(UnmanagedType.ByValTStr, SizeConst = MAX_PATH)] + internal string szExeFile; } diff --git a/src/SoulMemory/Native/User32.cs b/src/SoulMemory/Native/User32.cs index eddf2a8..ca10e5f 100644 --- a/src/SoulMemory/Native/User32.cs +++ b/src/SoulMemory/Native/User32.cs @@ -18,22 +18,21 @@ using System.Diagnostics.CodeAnalysis; using System.Runtime.InteropServices; -namespace SoulMemory.Native +namespace SoulMemory.Native; + +[ExcludeFromCodeCoverage] +internal static class User32 { - [ExcludeFromCodeCoverage] - internal static class User32 - { - [DllImport("user32.dll")] - private static extern IntPtr GetWindowThreadProcessId(IntPtr hWnd, out uint processId); + [DllImport("user32.dll")] + private static extern IntPtr GetWindowThreadProcessId(IntPtr hWnd, out uint processId); - [DllImport("user32.dll")] - private static extern IntPtr GetForegroundWindow(); + [DllImport("user32.dll")] + private static extern IntPtr GetForegroundWindow(); - public static uint GetForegroundProcessId() - { - IntPtr hWnd = GetForegroundWindow(); - GetWindowThreadProcessId(hWnd, out uint pid); - return pid; - } + public static uint GetForegroundProcessId() + { + IntPtr hWnd = GetForegroundWindow(); + GetWindowThreadProcessId(hWnd, out uint pid); + return pid; } } diff --git a/src/SoulMemory/Parameters/BaseParam.cs b/src/SoulMemory/Parameters/BaseParam.cs index fd1d0a0..cf907d8 100644 --- a/src/SoulMemory/Parameters/BaseParam.cs +++ b/src/SoulMemory/Parameters/BaseParam.cs @@ -23,201 +23,200 @@ using Pointer = SoulMemory.Memory.Pointer; using SoulMemory.Memory; -namespace SoulMemory.Parameters +namespace SoulMemory.Parameters; + +public abstract class BaseParam { - public abstract class BaseParam - { - private readonly List<(PropertyInfo propertyInfo, ParamFieldAttribute paramFieldAttribute)> _paramFieldPropertyCache; - private readonly List<(PropertyInfo propertyInfo, ParamBitFieldAttribute paramFieldAttribute)> _paramBitfieldPropertyCache; + private readonly List<(PropertyInfo propertyInfo, ParamFieldAttribute paramFieldAttribute)> _paramFieldPropertyCache; + private readonly List<(PropertyInfo propertyInfo, ParamBitFieldAttribute paramFieldAttribute)> _paramBitfieldPropertyCache; - protected BaseParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) + protected BaseParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) + { + BasePointer = basePointer; + Id = paramTableEntry.Id; + + _paramFieldPropertyCache = GetType() + .GetProperties() + .Where(i => i.IsDefined(typeof(ParamFieldAttribute))) + .Select(i => (i, i.GetCustomAttribute())) + .OrderBy(i => i.Item2.Offset) + .ToList(); + + _paramBitfieldPropertyCache = GetType() + .GetProperties() + .Where(i => i.IsDefined(typeof(ParamBitFieldAttribute))) + .Select(i => (i, i.GetCustomAttribute())) + .ToList(); + + foreach (var field in _paramFieldPropertyCache) { - BasePointer = basePointer; - Id = paramTableEntry.Id; - - _paramFieldPropertyCache = GetType() - .GetProperties() - .Where(i => i.IsDefined(typeof(ParamFieldAttribute))) - .Select(i => (i, i.GetCustomAttribute())) - .OrderBy(i => i.Item2.Offset) - .ToList(); - - _paramBitfieldPropertyCache = GetType() - .GetProperties() - .Where(i => i.IsDefined(typeof(ParamBitFieldAttribute))) - .Select(i => (i, i.GetCustomAttribute())) - .ToList(); - - foreach (var field in _paramFieldPropertyCache) + var fieldOffset = offset + field.paramFieldAttribute.Offset; + var paramType = field.paramFieldAttribute.ParamType; + + switch (paramType) { - var fieldOffset = offset + field.paramFieldAttribute.Offset; - var paramType = field.paramFieldAttribute.ParamType; - - switch (paramType) - { - case ParamType.Dummy8: - case ParamType.U8: - field.propertyInfo.SetValue(this, memory.ReadByte(fieldOffset)); - break; - - case ParamType.I8: - field.propertyInfo.SetValue(this, memory.ReadSByte(fieldOffset)); - break; - - case ParamType.U16: - field.propertyInfo.SetValue(this, memory.ReadUInt16(fieldOffset)); - break; - - case ParamType.I16: - field.propertyInfo.SetValue(this, memory.ReadInt16(fieldOffset)); - break; - - case ParamType.U32: - field.propertyInfo.SetValue(this, memory.ReadUInt32(fieldOffset)); - break; - - case ParamType.I32: - field.propertyInfo.SetValue(this, memory.ReadInt32(fieldOffset)); - break; - - case ParamType.F32: - field.propertyInfo.SetValue(this, memory.ReadFloat(fieldOffset)); - break; - - default: - throw new InvalidOperationException($"Unsupported param type {paramType}"); - } - } + case ParamType.Dummy8: + case ParamType.U8: + field.propertyInfo.SetValue(this, memory.ReadByte(fieldOffset)); + break; + + case ParamType.I8: + field.propertyInfo.SetValue(this, memory.ReadSByte(fieldOffset)); + break; + + case ParamType.U16: + field.propertyInfo.SetValue(this, memory.ReadUInt16(fieldOffset)); + break; + + case ParamType.I16: + field.propertyInfo.SetValue(this, memory.ReadInt16(fieldOffset)); + break; + + case ParamType.U32: + field.propertyInfo.SetValue(this, memory.ReadUInt32(fieldOffset)); + break; + + case ParamType.I32: + field.propertyInfo.SetValue(this, memory.ReadInt32(fieldOffset)); + break; - WriteEnabled = true; + case ParamType.F32: + field.propertyInfo.SetValue(this, memory.ReadFloat(fieldOffset)); + break; + + default: + throw new InvalidOperationException($"Unsupported param type {paramType}"); + } } - public int Id { get; set; } + WriteEnabled = true; + } - public readonly Pointer BasePointer; + public int Id { get; set; } - #region Writing fields ====================================================================================================================================================== + public readonly Pointer BasePointer; - public bool WriteEnabled { get; set; } = false; + #region Writing fields ====================================================================================================================================================== - protected void WriteParamField(ref T field, T value, [CallerMemberName] string? propertyName = null) + public bool WriteEnabled { get; set; } = false; + + protected void WriteParamField(ref T field, T value, [CallerMemberName] string? propertyName = null) + { + if (EqualityComparer.Default.Equals(field, value)) { - if (EqualityComparer.Default.Equals(field, value)) - { - return; - } + return; + } - field = value; + field = value; + + if (WriteEnabled) + { + var property = GetType().GetProperties().First(i => i.Name == propertyName); + var offset = property.GetCustomAttribute().Offset; + var paramType = property.GetCustomAttribute().ParamType; - if (WriteEnabled) + switch (paramType) { - var property = GetType().GetProperties().First(i => i.Name == propertyName); - var offset = property.GetCustomAttribute().Offset; - var paramType = property.GetCustomAttribute().ParamType; - - switch (paramType) - { - case ParamType.Dummy8: - case ParamType.U8: - BasePointer.WriteByte(offset, (byte)Convert.ChangeType(value, typeof(byte))); - break; - - case ParamType.I8: - BasePointer.WriteSByte(offset, (sbyte)Convert.ChangeType(value, typeof(sbyte))); - break; - - case ParamType.U16: - BasePointer.WriteUInt16(offset, (ushort)Convert.ChangeType(value, typeof(ushort))); - break; - - case ParamType.I16: - BasePointer.WriteInt16(offset, (short)Convert.ChangeType(value, typeof(short))); - break; - - case ParamType.U32: - BasePointer.WriteUint32(offset, (uint)Convert.ChangeType(value, typeof(uint))); - break; - - case ParamType.I32: - BasePointer.WriteInt32(offset, (int)Convert.ChangeType(value, typeof(int))); - break; - - case ParamType.F32: - BasePointer.WriteFloat(offset, (float)Convert.ChangeType(value, typeof(float))); - break; - } + case ParamType.Dummy8: + case ParamType.U8: + BasePointer.WriteByte(offset, (byte)Convert.ChangeType(value, typeof(byte))); + break; + + case ParamType.I8: + BasePointer.WriteSByte(offset, (sbyte)Convert.ChangeType(value, typeof(sbyte))); + break; + + case ParamType.U16: + BasePointer.WriteUInt16(offset, (ushort)Convert.ChangeType(value, typeof(ushort))); + break; + + case ParamType.I16: + BasePointer.WriteInt16(offset, (short)Convert.ChangeType(value, typeof(short))); + break; + + case ParamType.U32: + BasePointer.WriteUint32(offset, (uint)Convert.ChangeType(value, typeof(uint))); + break; + + case ParamType.I32: + BasePointer.WriteInt32(offset, (int)Convert.ChangeType(value, typeof(int))); + break; + + case ParamType.F32: + BasePointer.WriteFloat(offset, (float)Convert.ChangeType(value, typeof(float))); + break; } } + } - #endregion + #endregion - #region Bitfields ====================================================================================================================================================== + #region Bitfields ====================================================================================================================================================== - protected T GetbitfieldValue(T field, [CallerMemberName] string? propertyName = null) + protected T GetbitfieldValue(T field, [CallerMemberName] string? propertyName = null) + { + var bitfield = _paramBitfieldPropertyCache.First(i => i.propertyInfo.Name == propertyName); + var currentValue = (long)Convert.ChangeType(field, typeof(long)); + + var bitIndex = 0; + long result = 0; + for (int i = bitfield.paramFieldAttribute.BitsOffset; i < bitfield.paramFieldAttribute.BitsOffset + bitfield.paramFieldAttribute.Bits; i++) { - var bitfield = _paramBitfieldPropertyCache.First(i => i.propertyInfo.Name == propertyName); - var currentValue = (long)Convert.ChangeType(field, typeof(long)); - - var bitIndex = 0; - long result = 0; - for (int i = bitfield.paramFieldAttribute.BitsOffset; i < bitfield.paramFieldAttribute.BitsOffset + bitfield.paramFieldAttribute.Bits; i++) + if (currentValue.IsBitSet(i)) { - if (currentValue.IsBitSet(i)) - { - result = result.SetBit(bitIndex); - } - - bitIndex++; + result = result.SetBit(bitIndex); } - return (T)Convert.ChangeType(result, typeof(T)); + bitIndex++; } - protected void SetBitfieldValue(ref T field, T value, [CallerMemberName] string? propertyName = null) - { - var bitfield = _paramBitfieldPropertyCache.First(i => i.propertyInfo.Name == propertyName); - var currentValue = (long)Convert.ChangeType(field, typeof(long)); - var newValue = (long)Convert.ChangeType(value, typeof(long)); + return (T)Convert.ChangeType(result, typeof(T)); + } + + protected void SetBitfieldValue(ref T field, T value, [CallerMemberName] string? propertyName = null) + { + var bitfield = _paramBitfieldPropertyCache.First(i => i.propertyInfo.Name == propertyName); + var currentValue = (long)Convert.ChangeType(field, typeof(long)); + var newValue = (long)Convert.ChangeType(value, typeof(long)); - var bitIndex = 0; - for (int i = bitfield.paramFieldAttribute.BitsOffset; i < bitfield.paramFieldAttribute.BitsOffset + bitfield.paramFieldAttribute.Bits; i++) + var bitIndex = 0; + for (int i = bitfield.paramFieldAttribute.BitsOffset; i < bitfield.paramFieldAttribute.BitsOffset + bitfield.paramFieldAttribute.Bits; i++) + { + if (newValue.IsBitSet(bitIndex)) { - if (newValue.IsBitSet(bitIndex)) - { - currentValue = currentValue.SetBit(i); - } - else - { - currentValue = currentValue.ClearBit(i); - } - - bitIndex++; + currentValue = currentValue.SetBit(i); + } + else + { + currentValue = currentValue.ClearBit(i); } - var calculatedValue = (T)Convert.ChangeType(currentValue, typeof(T)); - WriteParamField(ref field, calculatedValue, bitfield.paramFieldAttribute.ParamFieldName); + bitIndex++; } + var calculatedValue = (T)Convert.ChangeType(currentValue, typeof(T)); + WriteParamField(ref field, calculatedValue, bitfield.paramFieldAttribute.ParamFieldName); + } - #endregion - - public override string ToString() - { - var fields = GetType() - .GetProperties() - .Where(i => i.IsDefined(typeof(ParamFieldAttribute))) - .OrderBy(i => i.GetCustomAttribute().Offset) - .ToList(); - - var sb = new StringBuilder(); - foreach (var f in fields) - { - sb.Append(f.Name.PadRight(15)); - sb.Append(": "); - sb.AppendLine(f.GetValue(f).ToString()); - } - return sb.ToString(); + #endregion + + public override string ToString() + { + var fields = GetType() + .GetProperties() + .Where(i => i.IsDefined(typeof(ParamFieldAttribute))) + .OrderBy(i => i.GetCustomAttribute().Offset) + .ToList(); + + var sb = new StringBuilder(); + foreach (var f in fields) + { + sb.Append(f.Name.PadRight(15)); + sb.Append(": "); + sb.AppendLine(f.GetValue(f).ToString()); } + + return sb.ToString(); } } diff --git a/src/SoulMemory/Parameters/ParamClassGenerator.cs b/src/SoulMemory/Parameters/ParamClassGenerator.cs index 61a2ebb..b1e737b 100644 --- a/src/SoulMemory/Parameters/ParamClassGenerator.cs +++ b/src/SoulMemory/Parameters/ParamClassGenerator.cs @@ -21,287 +21,286 @@ using System.Text; using System.Xml; -namespace SoulMemory.Parameters +namespace SoulMemory.Parameters; + +[ExcludeFromCodeCoverage] +public static class ParamClassGenerator { - [ExcludeFromCodeCoverage] - public static class ParamClassGenerator + public static string GenerateFromXml(string xml, string className, string classHeader) { - public static string GenerateFromXml(string xml, string className, string classHeader) - { - var fields = ParseFromXml(xml); - return GenerateCodeFromParsedFields(fields, className, classHeader); - } + var fields = ParseFromXml(xml); + return GenerateCodeFromParsedFields(fields, className, classHeader); + } - #region Code generating ============================================================================================================================================================================================== + #region Code generating ============================================================================================================================================================================================== - private static string GenerateCodeFromParsedFields(List fields, string className, string classHeader) + private static string GenerateCodeFromParsedFields(List fields, string className, string classHeader) + { + var sb = new StringBuilder(); + sb.AppendLine(classHeader); + sb.AppendLine($" public class {className} : BaseParam"); + sb.AppendLine($" {{"); + sb.AppendLine($" public {className}(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){{}}"); + sb.AppendLine(); + + foreach (var baseField in fields) { - var sb = new StringBuilder(); - sb.AppendLine(classHeader); - sb.AppendLine($" public class {className} : BaseParam"); - sb.AppendLine($" {{"); - sb.AppendLine($" public {className}(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){{}}"); - sb.AppendLine(); - - foreach (var baseField in fields) + if (baseField is Field field) { - if (baseField is Field field) + if (field.ArraySize == null) { - if (field.ArraySize == null) - { - AppendField(field, sb); - } - else - { - AppendArrayField(field, sb); - } - } - else if (baseField is Bitfield bitfield) - { - AppendBitfield(bitfield, sb); + AppendField(field, sb); } else { - throw new InvalidOperationException(); + AppendArrayField(field, sb); } } + else if (baseField is Bitfield bitfield) + { + AppendBitfield(bitfield, sb); + } + else + { + throw new InvalidOperationException(); + } + } - sb.AppendLine($" }}"); - sb.AppendLine($"}}"); + sb.AppendLine($" }}"); + sb.AppendLine($"}}"); - return sb.ToString(); - } + return sb.ToString(); + } - private static void AppendField(Field field, StringBuilder stringBuilder) - { - var privateName = "_" + char.ToUpper(field.Name[0]) + field.Name.Substring(1); + private static void AppendField(Field field, StringBuilder stringBuilder) + { + var privateName = "_" + char.ToUpper(field.Name[0]) + field.Name.Substring(1); + + stringBuilder.AppendLine($" [ParamField(0x{field.Offset:X}, ParamType.{field.ParamType})]"); + stringBuilder.AppendLine($" public {ParamData.ParamToSharpTypeString[field.ParamType]} {field.Name}"); + stringBuilder.AppendLine($" {{"); + stringBuilder.AppendLine($" get => {privateName};"); + stringBuilder.AppendLine($" set => WriteParamField(ref {privateName}, value);"); + stringBuilder.AppendLine($" }}"); + stringBuilder.AppendLine($" private {ParamData.ParamToSharpTypeString[field.ParamType]} {privateName};"); + stringBuilder.AppendLine(); + } - stringBuilder.AppendLine($" [ParamField(0x{field.Offset:X}, ParamType.{field.ParamType})]"); - stringBuilder.AppendLine($" public {ParamData.ParamToSharpTypeString[field.ParamType]} {field.Name}"); - stringBuilder.AppendLine($" {{"); - stringBuilder.AppendLine($" get => {privateName};"); - stringBuilder.AppendLine($" set => WriteParamField(ref {privateName}, value);"); - stringBuilder.AppendLine($" }}"); - stringBuilder.AppendLine($" private {ParamData.ParamToSharpTypeString[field.ParamType]} {privateName};"); - stringBuilder.AppendLine(); - } + private static void AppendArrayField(Field field, StringBuilder stringBuilder) + { + var privateName = "_" + char.ToUpper(field.Name[0]) + field.Name.Substring(1); + + stringBuilder.AppendLine($" [ParamField(0x{field.Offset:X}, ParamType.{field.ParamType}, {field.ArraySize})]"); + stringBuilder.AppendLine($" public {ParamData.ParamToSharpTypeString[field.ParamType]}[] {field.Name}"); + stringBuilder.AppendLine($" {{"); + stringBuilder.AppendLine($" get => {privateName};"); + stringBuilder.AppendLine($" set => WriteParamField(ref {privateName}, value);"); + stringBuilder.AppendLine($" }}"); + stringBuilder.AppendLine($" private {ParamData.ParamToSharpTypeString[field.ParamType]}[] {privateName};"); + stringBuilder.AppendLine(); + } - private static void AppendArrayField(Field field, StringBuilder stringBuilder) - { - var privateName = "_" + char.ToUpper(field.Name[0]) + field.Name.Substring(1); + private static void AppendBitfield(Bitfield bitfield, StringBuilder stringBuilder) + { + var bitfieldName = bitfield.Bitfields.First().name + "Bitfield"; + var bitfieldPrivateName = "_" + char.ToUpper(bitfieldName[0]) + bitfieldName.Substring(1); - stringBuilder.AppendLine($" [ParamField(0x{field.Offset:X}, ParamType.{field.ParamType}, {field.ArraySize})]"); - stringBuilder.AppendLine($" public {ParamData.ParamToSharpTypeString[field.ParamType]}[] {field.Name}"); + stringBuilder.AppendLine($" #region BitField {bitfieldName} =============================================================================="); + stringBuilder.AppendLine(); + + //Append a backing field + AppendField(new Field( bitfield.Offset, bitfieldName, bitfield.ParamType), stringBuilder); + + //Append bitfields + var bitOffset = 0; + foreach(var b in bitfield.Bitfields) + { + stringBuilder.AppendLine($" [ParamBitField(nameof({bitfieldName}), bits: {b.size}, bitsOffset: {bitOffset})]"); + stringBuilder.AppendLine($" public {ParamData.ParamToSharpTypeString[bitfield.ParamType]} {b.name}"); stringBuilder.AppendLine($" {{"); - stringBuilder.AppendLine($" get => {privateName};"); - stringBuilder.AppendLine($" set => WriteParamField(ref {privateName}, value);"); + stringBuilder.AppendLine($" get => GetbitfieldValue({bitfieldPrivateName});"); + stringBuilder.AppendLine($" set => SetBitfieldValue(ref {bitfieldPrivateName}, value);"); stringBuilder.AppendLine($" }}"); - stringBuilder.AppendLine($" private {ParamData.ParamToSharpTypeString[field.ParamType]}[] {privateName};"); stringBuilder.AppendLine(); - } - private static void AppendBitfield(Bitfield bitfield, StringBuilder stringBuilder) - { - var bitfieldName = bitfield.Bitfields.First().name + "Bitfield"; - var bitfieldPrivateName = "_" + char.ToUpper(bitfieldName[0]) + bitfieldName.Substring(1); + bitOffset += b.size; + } - stringBuilder.AppendLine($" #region BitField {bitfieldName} =============================================================================="); - stringBuilder.AppendLine(); + stringBuilder.AppendLine($" #endregion BitField {bitfieldName}"); + stringBuilder.AppendLine(); + } - //Append a backing field - AppendField(new Field( bitfield.Offset, bitfieldName, bitfield.ParamType), stringBuilder); + #endregion - //Append bitfields - var bitOffset = 0; - foreach(var b in bitfield.Bitfields) - { - stringBuilder.AppendLine($" [ParamBitField(nameof({bitfieldName}), bits: {b.size}, bitsOffset: {bitOffset})]"); - stringBuilder.AppendLine($" public {ParamData.ParamToSharpTypeString[bitfield.ParamType]} {b.name}"); - stringBuilder.AppendLine($" {{"); - stringBuilder.AppendLine($" get => GetbitfieldValue({bitfieldPrivateName});"); - stringBuilder.AppendLine($" set => SetBitfieldValue(ref {bitfieldPrivateName}, value);"); - stringBuilder.AppendLine($" }}"); - stringBuilder.AppendLine(); - - bitOffset += b.size; - } + #region Parsing ============================================================================================================================================================================================== - stringBuilder.AppendLine($" #endregion BitField {bitfieldName}"); - stringBuilder.AppendLine(); - } + private static List ParseFromXml(string xml) + { + var xmlDoc = new XmlDocument(); + xmlDoc.LoadXml(xml); + var fieldNodes = xmlDoc.GetChildNodeByName("PARAMDEF").GetChildNodeByName("Fields"); - #endregion + var fieldDefinitions = fieldNodes.ChildNodes.Enumerate().Select(i => i.Attributes?[0].InnerText!).ToList(); + var preParsedFields = fieldDefinitions.Select(PreParseField).ToList(); + return ParseFields(preParsedFields); + } - #region Parsing ============================================================================================================================================================================================== + private static PreParsedField PreParseField(string fieldLine) + { + var split = fieldLine.Split(' '); + var type = ParamData.ParamStrings[split[0]]; + var paramName = split[1]; - private static List ParseFromXml(string xml) + //Make sure that the param name always starts with an uppercase letter + if (char.IsLower(paramName[0])) { - var xmlDoc = new XmlDocument(); - xmlDoc.LoadXml(xml); - var fieldNodes = xmlDoc.GetChildNodeByName("PARAMDEF").GetChildNodeByName("Fields"); + paramName = char.ToUpper(paramName[0]) + paramName.Substring(1); + } - var fieldDefinitions = fieldNodes.ChildNodes.Enumerate().Select(i => i.Attributes?[0].InnerText!).ToList(); - var preParsedFields = fieldDefinitions.Select(PreParseField).ToList(); - return ParseFields(preParsedFields); + //Arrays + if (fieldLine.Contains('[')) + { + var bracketIndex = paramName.IndexOf('['); + var nameStr = paramName.Substring(0, bracketIndex); + var arraySizeStr = paramName.Substring(bracketIndex+1, paramName.Length-bracketIndex-2); + var arraySize = int.Parse(arraySizeStr); + return new PreParsedField(nameStr, type, arraySize: arraySize); } - private static PreParsedField PreParseField(string fieldLine) + //Bitfields + if (paramName.Contains(':')) { - var split = fieldLine.Split(' '); - var type = ParamData.ParamStrings[split[0]]; - var paramName = split[1]; + var colonIndex = paramName.IndexOf(':'); + var nameStr = paramName.Substring(0, colonIndex); + var bitStr = paramName.Substring(colonIndex + 1); + var bits = int.Parse(bitStr); + return new PreParsedField(nameStr, type, bits: bits); + } + + //Everything else + return new PreParsedField(paramName, type); + } - //Make sure that the param name always starts with an uppercase letter - if (char.IsLower(paramName[0])) - { - paramName = char.ToUpper(paramName[0]) + paramName.Substring(1); - } + + private static List ParseFields(List preParsedFields) + { + var result = new List(); + Bitfield? currentBitfield = null; + var offset = 0; - //Arrays - if (fieldLine.Contains('[')) + for(int i = 0; i < preParsedFields.Count; i++) + { + //Grab current and next field if available + var currentField = preParsedFields[i]; + PreParsedField? nextField = null; + if (i + 1 < preParsedFields.Count) { - var bracketIndex = paramName.IndexOf('['); - var nameStr = paramName.Substring(0, bracketIndex); - var arraySizeStr = paramName.Substring(bracketIndex+1, paramName.Length-bracketIndex-2); - var arraySize = int.Parse(arraySizeStr); - return new PreParsedField(nameStr, type, arraySize: arraySize); + nextField = preParsedFields[i + 1]; } - //Bitfields - if (paramName.Contains(':')) + //Detect start of bitfield + if (currentBitfield == null && currentField.Bits != null) { - var colonIndex = paramName.IndexOf(':'); - var nameStr = paramName.Substring(0, colonIndex); - var bitStr = paramName.Substring(colonIndex + 1); - var bits = int.Parse(bitStr); - return new PreParsedField(nameStr, type, bits: bits); + currentBitfield = new Bitfield(offset, currentField.ParamType); + offset += ParamData.ParamByteSize[currentField.ParamType]; + currentBitfield.Bitfields.Add((currentField.Name, currentField.Bits.Value)); + continue; } - - //Everything else - return new PreParsedField(paramName, type); - } - - private static List ParseFields(List preParsedFields) - { - var result = new List(); - Bitfield? currentBitfield = null; - var offset = 0; - - for(int i = 0; i < preParsedFields.Count; i++) + //detect ongoing bitfield + if (currentBitfield != null && currentField.Bits != null) { - //Grab current and next field if available - var currentField = preParsedFields[i]; - PreParsedField? nextField = null; - if (i + 1 < preParsedFields.Count) - { - nextField = preParsedFields[i + 1]; - } + currentBitfield.Bitfields.Add((currentField.Name, currentField.Bits.Value)); - //Detect start of bitfield - if (currentBitfield == null && currentField.Bits != null) + //Check if this is the last bitfield in this sequence + if (nextField?.Bits == null) { - currentBitfield = new Bitfield(offset, currentField.ParamType); - offset += ParamData.ParamByteSize[currentField.ParamType]; - currentBitfield.Bitfields.Add((currentField.Name, currentField.Bits.Value)); + result.Add(currentBitfield); + currentBitfield = null; continue; } - //detect ongoing bitfield - if (currentBitfield != null && currentField.Bits != null) + //Check if bitfield is out of storage, and next bitfield should start + if (currentBitfield.Bitfields.Sum(b => b.size) >= (ParamData.ParamByteSize[currentBitfield.ParamType] * 8)) { - currentBitfield.Bitfields.Add((currentField.Name, currentField.Bits.Value)); - - //Check if this is the last bitfield in this sequence - if (nextField?.Bits == null) - { - result.Add(currentBitfield); - currentBitfield = null; - continue; - } - - //Check if bitfield is out of storage, and next bitfield should start - if (currentBitfield.Bitfields.Sum(b => b.size) >= (ParamData.ParamByteSize[currentBitfield.ParamType] * 8)) - { - result.Add(currentBitfield); - currentBitfield = null; - continue; - } - + result.Add(currentBitfield); + currentBitfield = null; continue; } - //Otherwise it's a regular field, can just pass it along - result.Add(new Field(offset, currentField.Name, currentField.ParamType, currentField.ArraySize)); - if(currentField.ArraySize != null) - { - offset += (ParamData.ParamByteSize[currentField.ParamType] * currentField.ArraySize.Value); - } - else - { - offset += ParamData.ParamByteSize[currentField.ParamType]; - } + continue; + } + //Otherwise it's a regular field, can just pass it along + result.Add(new Field(offset, currentField.Name, currentField.ParamType, currentField.ArraySize)); + if(currentField.ArraySize != null) + { + offset += (ParamData.ParamByteSize[currentField.ParamType] * currentField.ArraySize.Value); + } + else + { + offset += ParamData.ParamByteSize[currentField.ParamType]; } - return result; } + return result; + } - private struct PreParsedField + + private struct PreParsedField + { + public PreParsedField(string name, ParamType paramType, int? bits = null, int? arraySize = null) { - public PreParsedField(string name, ParamType paramType, int? bits = null, int? arraySize = null) - { - Name = name; - ParamType = paramType; - Bits = bits; - ArraySize = arraySize; - } + Name = name; + ParamType = paramType; + Bits = bits; + ArraySize = arraySize; + } - public ParamType ParamType; - public string Name; - public int? Bits; - public int? ArraySize; + public ParamType ParamType; + public string Name; + public int? Bits; + public int? ArraySize; - public override string ToString() - { - return $"{Name} {ParamType}"; - } - } - - private class BaseField + public override string ToString() { - public ParamType ParamType; - public long Offset; + return $"{Name} {ParamType}"; } + } + + private class BaseField + { + public ParamType ParamType; + public long Offset; + } - private sealed class Field : BaseField + private sealed class Field : BaseField + { + public Field(long offset, string name, ParamType paramType, int? arraySize = null) { - public Field(long offset, string name, ParamType paramType, int? arraySize = null) - { - Offset = offset; - Name = name; - ParamType = paramType; - ArraySize = arraySize; - } - - public string Name; - public int? ArraySize; + Offset = offset; + Name = name; + ParamType = paramType; + ArraySize = arraySize; } - private sealed class Bitfield : BaseField - { - public Bitfield(long offset, ParamType paramType) - { - Offset = offset; - ParamType = paramType; - } + public string Name; + public int? ArraySize; + } - public List<(string name, int size)> Bitfields = new List<(string name, int size)>(); + private sealed class Bitfield : BaseField + { + public Bitfield(long offset, ParamType paramType) + { + Offset = offset; + ParamType = paramType; } - - #endregion + + public List<(string name, int size)> Bitfields = new List<(string name, int size)>(); } + + #endregion } diff --git a/src/SoulMemory/Parameters/ParamData.cs b/src/SoulMemory/Parameters/ParamData.cs index 1b2a79e..73c2fa8 100644 --- a/src/SoulMemory/Parameters/ParamData.cs +++ b/src/SoulMemory/Parameters/ParamData.cs @@ -17,44 +17,43 @@ using System.Collections.Generic; using System.Collections.ObjectModel; -namespace SoulMemory.Parameters +namespace SoulMemory.Parameters; + +public static class ParamData { - public static class ParamData + public static readonly ReadOnlyDictionary ParamByteSize = new ReadOnlyDictionary(new Dictionary() { - public static readonly ReadOnlyDictionary ParamByteSize = new ReadOnlyDictionary(new Dictionary() - { - { ParamType.Dummy8, 1 }, - { ParamType.U8, 1 }, - { ParamType.I8, 1 }, - { ParamType.U16, 2 }, - { ParamType.I16, 2 }, - { ParamType.U32, 4 }, - { ParamType.I32, 4 }, - { ParamType.F32, 4 }, - }); + { ParamType.Dummy8, 1 }, + { ParamType.U8, 1 }, + { ParamType.I8, 1 }, + { ParamType.U16, 2 }, + { ParamType.I16, 2 }, + { ParamType.U32, 4 }, + { ParamType.I32, 4 }, + { ParamType.F32, 4 }, + }); - public static readonly ReadOnlyDictionary ParamToSharpTypeString = new ReadOnlyDictionary(new Dictionary() - { - { ParamType.Dummy8, "byte" }, - { ParamType.U8, "byte" }, - { ParamType.I8, "sbyte" }, - { ParamType.U16, "ushort" }, - { ParamType.I16, "short" }, - { ParamType.U32, "uint" }, - { ParamType.I32, "int" }, - { ParamType.F32, "float" }, - }); + public static readonly ReadOnlyDictionary ParamToSharpTypeString = new ReadOnlyDictionary(new Dictionary() + { + { ParamType.Dummy8, "byte" }, + { ParamType.U8, "byte" }, + { ParamType.I8, "sbyte" }, + { ParamType.U16, "ushort" }, + { ParamType.I16, "short" }, + { ParamType.U32, "uint" }, + { ParamType.I32, "int" }, + { ParamType.F32, "float" }, + }); - public static readonly ReadOnlyDictionary ParamStrings = new ReadOnlyDictionary(new Dictionary() - { - { "dummy8", ParamType.Dummy8 }, - { "u8", ParamType.U8 }, - { "s8", ParamType.I8 }, - { "u16", ParamType.U16 }, - { "s16", ParamType.I16 }, - { "u32", ParamType.U32 }, - { "s32", ParamType.I32 }, - { "f32", ParamType.F32 }, - }); - } + public static readonly ReadOnlyDictionary ParamStrings = new ReadOnlyDictionary(new Dictionary() + { + { "dummy8", ParamType.Dummy8 }, + { "u8", ParamType.U8 }, + { "s8", ParamType.I8 }, + { "u16", ParamType.U16 }, + { "s16", ParamType.I16 }, + { "u32", ParamType.U32 }, + { "s32", ParamType.I32 }, + { "f32", ParamType.F32 }, + }); } diff --git a/src/SoulMemory/Parameters/ParamFieldAttribute.cs b/src/SoulMemory/Parameters/ParamFieldAttribute.cs index 2402637..eff0ea6 100644 --- a/src/SoulMemory/Parameters/ParamFieldAttribute.cs +++ b/src/SoulMemory/Parameters/ParamFieldAttribute.cs @@ -14,40 +14,39 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -namespace SoulMemory.Parameters +namespace SoulMemory.Parameters; + +internal class ParamFieldAttribute : System.Attribute { - internal class ParamFieldAttribute : System.Attribute + public int Offset; + public ParamType ParamType; + public int? ArraySize = null; + + public ParamFieldAttribute(int offset, ParamType paramType) { - public int Offset; - public ParamType ParamType; - public int? ArraySize = null; - - public ParamFieldAttribute(int offset, ParamType paramType) - { - Offset = offset; - ParamType = paramType; - } - - public ParamFieldAttribute(int offset, ParamType paramType, int arraySize) - { - Offset = offset; - ParamType = paramType; - ArraySize = arraySize; - } - + Offset = offset; + ParamType = paramType; } - internal class ParamBitFieldAttribute : System.Attribute + public ParamFieldAttribute(int offset, ParamType paramType, int arraySize) { - public string ParamFieldName; - public int BitsOffset; - public int Bits; + Offset = offset; + ParamType = paramType; + ArraySize = arraySize; + } - public ParamBitFieldAttribute(string paramFieldName, int bitsOffset, int bits) - { - ParamFieldName = paramFieldName; - BitsOffset = bitsOffset; - Bits = bits; - } +} + +internal class ParamBitFieldAttribute : System.Attribute +{ + public string ParamFieldName; + public int BitsOffset; + public int Bits; + + public ParamBitFieldAttribute(string paramFieldName, int bitsOffset, int bits) + { + ParamFieldName = paramFieldName; + BitsOffset = bitsOffset; + Bits = bits; } } diff --git a/src/SoulMemory/Parameters/ParamReader.cs b/src/SoulMemory/Parameters/ParamReader.cs index b69204e..e2aaeb9 100644 --- a/src/SoulMemory/Parameters/ParamReader.cs +++ b/src/SoulMemory/Parameters/ParamReader.cs @@ -21,75 +21,74 @@ using System.Reflection; using Pointer = SoulMemory.Memory.Pointer; -namespace SoulMemory.Parameters +namespace SoulMemory.Parameters; + +public static class ParamReader { - public static class ParamReader + public static List GetTextTables(Pointer textBasePointer) { - public static List GetTextTables(Pointer textBasePointer) - { - var rowCount = textBasePointer.ReadUInt16(0xc); + var rowCount = textBasePointer.ReadUInt16(0xc); + + var tableBytes = textBasePointer.ReadBytes(12 * rowCount, 0x18); - var tableBytes = textBasePointer.ReadBytes(12 * rowCount, 0x18); + var data = new List(); + for (int i = 0; i < rowCount; i++) + { + var offset = i * 12; - var data = new List(); - for (int i = 0; i < rowCount; i++) + var textTableEntry = new TextTableEntry { - var offset = i * 12; - - var textTableEntry = new TextTableEntry - { - ItemLowRange = BitConverter.ToUInt32(tableBytes, offset), - DataOffset = BitConverter.ToUInt32(tableBytes, offset + 0x4), - ItemHighRange = BitConverter.ToUInt32(tableBytes, offset + 0x8), - }; - data.Add(textTableEntry); - } - - return data; + ItemLowRange = BitConverter.ToUInt32(tableBytes, offset), + DataOffset = BitConverter.ToUInt32(tableBytes, offset + 0x4), + ItemHighRange = BitConverter.ToUInt32(tableBytes, offset + 0x8), + }; + data.Add(textTableEntry); } - public static List ReadParam(Pointer paramBasePointer) where T : BaseParam - { - var dataOffset = paramBasePointer.ReadUInt16(0x4); - var rowCount = paramBasePointer.ReadUInt16(0xa); + return data; + } - var rowSize = typeof(T) - .GetProperties() - .Where(i => i.IsDefined(typeof(ParamFieldAttribute))) - .Sum(i => ParamData.ParamByteSize[i.GetCustomAttribute().ParamType]); + public static List ReadParam(Pointer paramBasePointer) where T : BaseParam + { + var dataOffset = paramBasePointer.ReadUInt16(0x4); + var rowCount = paramBasePointer.ReadUInt16(0xa); + + var rowSize = typeof(T) + .GetProperties() + .Where(i => i.IsDefined(typeof(ParamFieldAttribute))) + .Sum(i => ParamData.ParamByteSize[i.GetCustomAttribute().ParamType]); + + var paramTableBytes = paramBasePointer.ReadBytes(12 * rowCount, 0x30); + var parameterRawBytes = paramBasePointer.ReadBytes(rowCount * rowSize, dataOffset); - var paramTableBytes = paramBasePointer.ReadBytes(12 * rowCount, 0x30); - var parameterRawBytes = paramBasePointer.ReadBytes(rowCount * rowSize, dataOffset); + var parameterMemory = new ByteArrayMemory(parameterRawBytes); - var parameterMemory = new ByteArrayMemory(parameterRawBytes); + var parameters = new List(); - var parameters = new List(); + for (int i = 0; i < rowCount; i++) + { + var offset = i * 12; - for (int i = 0; i < rowCount; i++) + var paramTableEntry = new ParamTableEntry { - var offset = i * 12; - - var paramTableEntry = new ParamTableEntry - { - Id = BitConverter.ToInt32(paramTableBytes, offset), - DataOffset = BitConverter.ToUInt32(paramTableBytes, offset + 0x4), - NameOffset = BitConverter.ToUInt32(paramTableBytes, offset + 0x8), - }; - - var rowBasePointer = paramBasePointer.Copy(); - rowBasePointer.Offsets.Clear(); - rowBasePointer.BaseAddress = paramBasePointer.BaseAddress + dataOffset + i * rowSize; - - parameters.Add( - (T)Activator.CreateInstance(typeof(T), - rowBasePointer, - parameterMemory, - i * rowSize, - paramTableEntry) - ); - } - - return parameters; + Id = BitConverter.ToInt32(paramTableBytes, offset), + DataOffset = BitConverter.ToUInt32(paramTableBytes, offset + 0x4), + NameOffset = BitConverter.ToUInt32(paramTableBytes, offset + 0x8), + }; + + var rowBasePointer = paramBasePointer.Copy(); + rowBasePointer.Offsets.Clear(); + rowBasePointer.BaseAddress = paramBasePointer.BaseAddress + dataOffset + i * rowSize; + + parameters.Add( + (T)Activator.CreateInstance(typeof(T), + rowBasePointer, + parameterMemory, + i * rowSize, + paramTableEntry) + ); } + + return parameters; } } diff --git a/src/SoulMemory/Parameters/ParamTableEntry.cs b/src/SoulMemory/Parameters/ParamTableEntry.cs index 0bd586b..255b520 100644 --- a/src/SoulMemory/Parameters/ParamTableEntry.cs +++ b/src/SoulMemory/Parameters/ParamTableEntry.cs @@ -14,14 +14,13 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -namespace SoulMemory.Parameters +namespace SoulMemory.Parameters; + +public class ParamTableEntry { - public class ParamTableEntry - { - public int Id { get; set; } - public uint DataOffset { get; set; } - public uint NameOffset { get; set; } + public int Id { get; set; } + public uint DataOffset { get; set; } + public uint NameOffset { get; set; } - public override string ToString() => Id.ToString(); - } + public override string ToString() => Id.ToString(); } diff --git a/src/SoulMemory/Parameters/ParamType.cs b/src/SoulMemory/Parameters/ParamType.cs index bc2e6dc..574d491 100644 --- a/src/SoulMemory/Parameters/ParamType.cs +++ b/src/SoulMemory/Parameters/ParamType.cs @@ -14,17 +14,16 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -namespace SoulMemory.Parameters +namespace SoulMemory.Parameters; + +public enum ParamType { - public enum ParamType - { - U8, - I8, - U16, - I16, - U32, - I32, - F32, - Dummy8, - } + U8, + I8, + U16, + I16, + U32, + I32, + F32, + Dummy8, } diff --git a/src/SoulMemory/Parameters/TextTableEntry.cs b/src/SoulMemory/Parameters/TextTableEntry.cs index ec96763..692f1bf 100644 --- a/src/SoulMemory/Parameters/TextTableEntry.cs +++ b/src/SoulMemory/Parameters/TextTableEntry.cs @@ -14,14 +14,13 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -namespace SoulMemory.Parameters +namespace SoulMemory.Parameters; + +public class TextTableEntry { - public class TextTableEntry - { - public uint ItemLowRange { get; set; } - public uint DataOffset { get; set; } - public uint ItemHighRange { get; set; } + public uint ItemLowRange { get; set; } + public uint DataOffset { get; set; } + public uint ItemHighRange { get; set; } - public override string ToString() => ItemLowRange.ToString(); - } + public override string ToString() => ItemLowRange.ToString(); } diff --git a/src/SoulMemory/RefreshError.cs b/src/SoulMemory/RefreshError.cs index 6627159..72c7c51 100644 --- a/src/SoulMemory/RefreshError.cs +++ b/src/SoulMemory/RefreshError.cs @@ -17,62 +17,61 @@ using System; using System.Text; -namespace SoulMemory +namespace SoulMemory; + +public class RefreshError { - public class RefreshError + public static ResultErr FromException(Exception e) { - public static ResultErr FromException(Exception e) - { - return Result.Err(new RefreshError(RefreshErrorReason.UnknownException, e)); - } + return Result.Err(new RefreshError(RefreshErrorReason.UnknownException, e)); + } - public RefreshError(RefreshErrorReason reason) - { - Reason = reason; - } + public RefreshError(RefreshErrorReason reason) + { + Reason = reason; + } - public RefreshError(RefreshErrorReason reason, string message) - { - Reason = reason; - Message = message; - } + public RefreshError(RefreshErrorReason reason, string message) + { + Reason = reason; + Message = message; + } - public RefreshError(RefreshErrorReason reason, Exception exception) - { - Reason = reason; - Exception = exception; - } + public RefreshError(RefreshErrorReason reason, Exception exception) + { + Reason = reason; + Exception = exception; + } - public RefreshErrorReason Reason { get; } - public string Message { get; } = null!; - public Exception? Exception { get; } = null!; + public RefreshErrorReason Reason { get; } + public string Message { get; } = null!; + public Exception? Exception { get; } = null!; - public override string ToString() + public override string ToString() + { + var sb = new StringBuilder(Reason.ToString()); + if (!string.IsNullOrWhiteSpace(Message)) { - var sb = new StringBuilder(Reason.ToString()); - if (!string.IsNullOrWhiteSpace(Message)) - { - sb.Append(" - "); - sb.Append(Message); - } - if (Exception != null) - { - sb.Append(" - "); - sb.Append(Exception); - } - - return sb.ToString(); + sb.Append(" - "); + sb.Append(Message); + } + if (Exception != null) + { + sb.Append(" - "); + sb.Append(Exception); } - } - public enum RefreshErrorReason - { - UnknownException, - ScansFailed, - ProcessNotRunning, - ProcessExited, - MainModuleNull, - AccessDenied, - ModLoadFailed, + return sb.ToString(); } } + +public enum RefreshErrorReason +{ + UnknownException, + ScansFailed, + ProcessNotRunning, + ProcessExited, + MainModuleNull, + AccessDenied, + ModLoadFailed, +} diff --git a/src/SoulMemory/Result.cs b/src/SoulMemory/Result.cs index 102eb7e..678ec4f 100644 --- a/src/SoulMemory/Result.cs +++ b/src/SoulMemory/Result.cs @@ -17,344 +17,343 @@ using System; using System.Runtime.CompilerServices; -namespace SoulMemory +namespace SoulMemory; + +/// +/// Result. Can be Ok or can be Err. +/// Can be Unwrapped - this will throw when the result is Err +/// +public class Result { - /// - /// Result. Can be Ok or can be Err. - /// Can be Unwrapped - this will throw when the result is Err - /// - public class Result + #region Sugar interface ========================================================================================================================================================== + + public static ContainerErr Err() { - #region Sugar interface ========================================================================================================================================================== + return new ContainerErr(default); + } - public static ContainerErr Err() - { - return new ContainerErr(default); - } + public static ContainerErr Err(T t) + { + return new ContainerErr(t); + } - public static ContainerErr Err(T t) - { - return new ContainerErr(t); - } + public static ContainerOk Ok() + { + return new ContainerOk(default); + } - public static ContainerOk Ok() - { - return new ContainerOk(default); - } + public static ContainerOk Ok(T t) + { + return new ContainerOk(t); + } - public static ContainerOk Ok(T t) - { - return new ContainerOk(t); - } + #endregion - #endregion + public bool IsOk { get; protected set; } + public bool IsErr => !IsOk; - public bool IsOk { get; protected set; } - public bool IsErr => !IsOk; + protected Result(bool ok) + { + IsOk = ok; + } - protected Result(bool ok) - { - IsOk = ok; - } + public static implicit operator Result(ContainerOk ok) + { + return new Result(true); + } - public static implicit operator Result(ContainerOk ok) - { - return new Result(true); - } + public static implicit operator Result(ContainerErr err) + { + return new Result(false); + } - public static implicit operator Result(ContainerErr err) - { - return new Result(false); - } + public static implicit operator bool(Result result) + { + return result.IsOk; + } - public static implicit operator bool(Result result) + public void Unwrap() + { + if (!IsOk) { - return result.IsOk; + throw new UnwrapException("Called unwrap on a failed Result"); } + } - public void Unwrap() - { - if (!IsOk) - { - throw new UnwrapException("Called unwrap on a failed Result"); - } - } + public override string ToString() + { + return IsOk ? "Ok" : "Err"; + } +} - public override string ToString() - { - return IsOk ? "Ok" : "Err"; - } +/// +/// Result with generic error type. +/// +public class ResultErr +{ + private readonly TErr _err; + public bool IsOk { get; protected set; } + public bool IsErr => !IsOk; + + protected ResultErr(bool isOk, TErr err) + { + IsOk = isOk; + _err = err; } - /// - /// Result with generic error type. - /// - public class ResultErr + private ResultErr() { - private readonly TErr _err; - public bool IsOk { get; protected set; } - public bool IsErr => !IsOk; + IsOk = true; + _err = default!; + } - protected ResultErr(bool isOk, TErr err) - { - IsOk = isOk; - _err = err; - } + private ResultErr(TErr err) + { + IsOk = false; + _err = err; + } - private ResultErr() - { - IsOk = true; - _err = default!; - } + public static implicit operator ResultErr(ContainerOk ok) + { + return new ResultErr(); + } - private ResultErr(TErr err) - { - IsOk = false; - _err = err; - } + public static implicit operator ResultErr(ContainerErr err) + { + return new ResultErr(err.Value); + } - public static implicit operator ResultErr(ContainerOk ok) - { - return new ResultErr(); - } + public static implicit operator bool(ResultErr resultErr) + { + return resultErr.IsOk; + } - public static implicit operator ResultErr(ContainerErr err) + public void Unwrap() + { + if (!IsOk) { - return new ResultErr(err.Value); + throw new UnwrapException("Called unwrap on a failed Result"); } + } - public static implicit operator bool(ResultErr resultErr) + public TErr GetErr() + { + if (IsOk) { - return resultErr.IsOk; + return default!; } + return _err; + } - public void Unwrap() - { - if (!IsOk) - { - throw new UnwrapException("Called unwrap on a failed Result"); - } - } + public override string ToString() + { + return IsOk ? $"Ok" : $"Err: {_err}"; + } +} - public TErr GetErr() - { - if (IsOk) - { - return default!; - } - return _err; - } +/// +/// Result with generic ok type. +/// +public class ResultOk +{ + private readonly TOk _ok; + public bool IsOk { get; protected set; } + public bool IsErr => !IsOk; - public override string ToString() - { - return IsOk ? $"Ok" : $"Err: {_err}"; - } + protected ResultOk(bool isOk, TOk ok) + { + IsOk = isOk; + _ok = ok; } - /// - /// Result with generic ok type. - /// - public class ResultOk + private ResultOk() { - private readonly TOk _ok; - public bool IsOk { get; protected set; } - public bool IsErr => !IsOk; + IsOk = false; + _ok = default!; + } - protected ResultOk(bool isOk, TOk ok) - { - IsOk = isOk; - _ok = ok; - } + private ResultOk(TOk ok) + { + IsOk = true; + _ok = ok; + } - private ResultOk() - { - IsOk = false; - _ok = default!; - } + public static implicit operator ResultOk(ContainerOk ok) + { + return new ResultOk(ok.Value); + } - private ResultOk(TOk ok) - { - IsOk = true; - _ok = ok; - } + public static implicit operator ResultOk(ContainerErr err) + { + return new ResultOk(); + } - public static implicit operator ResultOk(ContainerOk ok) - { - return new ResultOk(ok.Value); - } + public static implicit operator bool(ResultOk resultOk) + { + return resultOk.IsOk; + } - public static implicit operator ResultOk(ContainerErr err) + public TOk Unwrap([CallerMemberName] string? callerMemberName = null) + { + if (!IsOk) { - return new ResultOk(); + throw new UnwrapException($"Called unwrap on a failed Result in {callerMemberName}"); } - public static implicit operator bool(ResultOk resultOk) - { - return resultOk.IsOk; - } + return _ok; + } - public TOk Unwrap([CallerMemberName] string? callerMemberName = null) - { - if (!IsOk) - { - throw new UnwrapException($"Called unwrap on a failed Result in {callerMemberName}"); - } + public override string ToString() + { + return IsOk ? $"Ok: {_ok}" : $"Err"; + } +} - return _ok; - } +/// +/// Result type with generic Ok and Error type +/// +public class Result +{ + private readonly TOk _ok; + private readonly TErr _err; + public bool IsOk { get; protected set; } + public bool IsErr => !IsOk; - public override string ToString() - { - return IsOk ? $"Ok: {_ok}" : $"Err"; - } + protected Result(bool isOk, TOk ok, TErr err) + { + IsOk = isOk; + _ok = ok; + _err = err; } - /// - /// Result type with generic Ok and Error type - /// - public class Result + private Result(TOk ok) { - private readonly TOk _ok; - private readonly TErr _err; - public bool IsOk { get; protected set; } - public bool IsErr => !IsOk; + IsOk = true; + _ok = ok; + _err = default!; + } - protected Result(bool isOk, TOk ok, TErr err) - { - IsOk = isOk; - _ok = ok; - _err = err; - } + private Result(TErr err) + { + IsOk = false; + _ok = default!; + _err = err; + } - private Result(TOk ok) - { - IsOk = true; - _ok = ok; - _err = default!; - } + public static implicit operator Result(ContainerOk ok) + { + return new Result(ok.Value); + } - private Result(TErr err) - { - IsOk = false; - _ok = default!; - _err = err; - } + public static implicit operator Result(ContainerErr err) + { + return new Result(err.Value); + } - public static implicit operator Result(ContainerOk ok) + public static implicit operator Result(ResultOk resultOk) + { + if (resultOk.IsOk) { - return new Result(ok.Value); + return new Result(true, resultOk.Unwrap(), default!); } - - public static implicit operator Result(ContainerErr err) + else { - return new Result(err.Value); + return new Result(false, default!, default!); } + } - public static implicit operator Result(ResultOk resultOk) + public static implicit operator Result(ResultErr resultErr) + { + if (resultErr.IsOk) { - if (resultOk.IsOk) - { - return new Result(true, resultOk.Unwrap(), default!); - } - else - { - return new Result(false, default!, default!); - } + return new Result(true, default!, default!); } - - public static implicit operator Result(ResultErr resultErr) + else { - if (resultErr.IsOk) - { - return new Result(true, default!, default!); - } - else - { - return new Result(false, default!, resultErr.GetErr()); - } + return new Result(false, default!, resultErr.GetErr()); } + } - public static implicit operator bool(Result result) - { - return result.IsOk; - } + public static implicit operator bool(Result result) + { + return result.IsOk; + } - public TOk Unwrap() + public TOk Unwrap() + { + if (IsOk) { - if (IsOk) - { - return _ok; - } - throw new UnwrapException("Called unwrap on a failed Result"); + return _ok; } + throw new UnwrapException("Called unwrap on a failed Result"); + } - public TErr GetErr() + public TErr GetErr() + { + if (IsOk) { - if (IsOk) - { - return default!; - } - return _err; + return default!; } + return _err; + } - public void Handle(Action okAction, Action errAction) + public void Handle(Action okAction, Action errAction) + { + if (IsOk) { - if (IsOk) - { - okAction(_ok); - } - else - { - errAction(_err); - } + okAction(_ok); } - - public override string ToString() + else { - return IsOk ? $"Ok: {_ok}" : $"Err: {_err}"; + errAction(_err); } } - - /// - /// Container type, used in implicit conversions with the Result classes, for sugar syntax. - /// - public class Container + public override string ToString() { - public T Value; - - public Container(T t) - { - Value = t; - } - - public override string ToString() - { - return $"{typeof(T)}"; - } + return IsOk ? $"Ok: {_ok}" : $"Err: {_err}"; } +} - /// - /// Container type for Ok, used to distinguish between Ok and Err in implicit conversions between result types. - /// - public class ContainerOk : Container { public ContainerOk(T t) : base(t) { } } - /// - /// Container type for Err, used to distinguish between Ok and Err in implicit conversions between result types. - /// - public class ContainerErr : Container { public ContainerErr(T t) : base(t) { } } +/// +/// Container type, used in implicit conversions with the Result classes, for sugar syntax. +/// +public class Container +{ + public T Value; - /// - /// Helper struct with 0 storage. Only used to trick the type system into allowing some sugar syntax - /// - public struct Empty { } + public Container(T t) + { + Value = t; + } - /// - /// Thrown when unwrapping a failed result - /// - [Serializable] - public class UnwrapException : Exception + public override string ToString() { - public UnwrapException(string message) : base(message) { } + return $"{typeof(T)}"; } +} + +/// +/// Container type for Ok, used to distinguish between Ok and Err in implicit conversions between result types. +/// +public class ContainerOk : Container { public ContainerOk(T t) : base(t) { } } + +/// +/// Container type for Err, used to distinguish between Ok and Err in implicit conversions between result types. +/// +public class ContainerErr : Container { public ContainerErr(T t) : base(t) { } } + +/// +/// Helper struct with 0 storage. Only used to trick the type system into allowing some sugar syntax +/// +public struct Empty { } + +/// +/// Thrown when unwrapping a failed result +/// +[Serializable] +public class UnwrapException : Exception +{ + public UnwrapException(string message) : base(message) { } } \ No newline at end of file diff --git a/src/SoulMemory/Sekiro/Attribute.cs b/src/SoulMemory/Sekiro/Attribute.cs index 83b6254..885c317 100644 --- a/src/SoulMemory/Sekiro/Attribute.cs +++ b/src/SoulMemory/Sekiro/Attribute.cs @@ -16,12 +16,11 @@ using System.Xml.Serialization; -namespace SoulMemory.Sekiro +namespace SoulMemory.Sekiro; + +[XmlType(Namespace = "SoulMemory.Sekiro")] +public enum Attribute { - [XmlType(Namespace = "SoulMemory.Sekiro")] - public enum Attribute - { - Vitality, - AttackPower - } + Vitality, + AttackPower } \ No newline at end of file diff --git a/src/SoulMemory/Sekiro/Boss.cs b/src/SoulMemory/Sekiro/Boss.cs index 8ab01b9..2a2e1ca 100644 --- a/src/SoulMemory/Sekiro/Boss.cs +++ b/src/SoulMemory/Sekiro/Boss.cs @@ -16,54 +16,53 @@ using System.Xml.Serialization; -namespace SoulMemory.Sekiro +namespace SoulMemory.Sekiro; + +[XmlType(Namespace = "Sekiro")] +public enum Boss { - [XmlType(Namespace = "Sekiro")] - public enum Boss - { - [Annotation(Name = "Gyoubu Masataka Oniwa")] - GyoubuMasatakaOniwa = 9301, - - [Annotation(Name = "Lady Butterfly")] - LadyButterfly = 9302, + [Annotation(Name = "Gyoubu Masataka Oniwa")] + GyoubuMasatakaOniwa = 9301, + + [Annotation(Name = "Lady Butterfly")] + LadyButterfly = 9302, - [Annotation(Name = "Genichiro Ashina")] - GenichiroAshina = 9303, - - [Annotation(Name = "Folding Screen Monkeys")] - FoldingScreenMonkeys = 9305, - - [Annotation(Name = "Guardian Ape")] - GuardianApe = 9304, - - [Annotation(Name = "Headless Ape")] - HeadlessApe = 9307, + [Annotation(Name = "Genichiro Ashina")] + GenichiroAshina = 9303, - [Annotation(Name = "Corrupted Monk (ghost)")] - CorruptedMonkGhost = 9306, + [Annotation(Name = "Folding Screen Monkeys")] + FoldingScreenMonkeys = 9305, + + [Annotation(Name = "Guardian Ape")] + GuardianApe = 9304, + + [Annotation(Name = "Headless Ape")] + HeadlessApe = 9307, + + [Annotation(Name = "Corrupted Monk (ghost)")] + CorruptedMonkGhost = 9306, - [Annotation(Name = "Emma, the Gentle Blade")] - EmmaTheGentleBlade = 9315, + [Annotation(Name = "Emma, the Gentle Blade")] + EmmaTheGentleBlade = 9315, - [Annotation(Name = "Isshin Ashina")] - IsshinAshina = 9316, + [Annotation(Name = "Isshin Ashina")] + IsshinAshina = 9316, - [Annotation(Name = "Great Shinobi Owl")] - GreatShinobiOwl = 9308, + [Annotation(Name = "Great Shinobi Owl")] + GreatShinobiOwl = 9308, - [Annotation(Name = "True Corrupted Monk")] - TrueCorruptedMonk = 9309, + [Annotation(Name = "True Corrupted Monk")] + TrueCorruptedMonk = 9309, - [Annotation(Name = "Divine Dragon")] - DivineDragon = 9310, + [Annotation(Name = "Divine Dragon")] + DivineDragon = 9310, - [Annotation(Name = "Owl (Father)")] - OwlFather = 9317, + [Annotation(Name = "Owl (Father)")] + OwlFather = 9317, - [Annotation(Name = "Demon of Hatred")] - DemonOfHatred = 9313, + [Annotation(Name = "Demon of Hatred")] + DemonOfHatred = 9313, - [Annotation(Name = "Isshin, the Sword Saint")] - IsshinTheSwordSaint = 9312, - } + [Annotation(Name = "Isshin, the Sword Saint")] + IsshinTheSwordSaint = 9312, } diff --git a/src/SoulMemory/Sekiro/Idol.cs b/src/SoulMemory/Sekiro/Idol.cs index ab73654..8d436b6 100644 --- a/src/SoulMemory/Sekiro/Idol.cs +++ b/src/SoulMemory/Sekiro/Idol.cs @@ -16,174 +16,173 @@ using System.Xml.Serialization; -namespace SoulMemory.Sekiro +namespace SoulMemory.Sekiro; + +[XmlType(Namespace = "Sekiro")] +public enum Idol { - [XmlType(Namespace = "Sekiro")] - public enum Idol - { - [Annotation(Name = "Dilapidated Temple", Description = "Ashina Outskirts")] - DilapidatedTemple = 11100000, + [Annotation(Name = "Dilapidated Temple", Description = "Ashina Outskirts")] + DilapidatedTemple = 11100000, - [Annotation(Name = "Ashina Outskirts", Description = "Ashina Outskirts")] - AshinaOutskirts = 11100006, + [Annotation(Name = "Ashina Outskirts", Description = "Ashina Outskirts")] + AshinaOutskirts = 11100006, - [Annotation(Name = "Outskirts Wall - Gate Path", Description = "Ashina Outskirts")] - OutskirtsWallGatePath = 11100001, + [Annotation(Name = "Outskirts Wall - Gate Path", Description = "Ashina Outskirts")] + OutskirtsWallGatePath = 11100001, - [Annotation(Name = "Outskirts Wall - Stairway", Description = "Ashina Outskirts")] - OutskirtsWallStairway = 11100002, + [Annotation(Name = "Outskirts Wall - Stairway", Description = "Ashina Outskirts")] + OutskirtsWallStairway = 11100002, - [Annotation(Name = "Underbridge Valley", Description = "Ashina Outskirts")] - UnderbridgeValley = 11100003, + [Annotation(Name = "Underbridge Valley", Description = "Ashina Outskirts")] + UnderbridgeValley = 11100003, - [Annotation(Name = "Ashina Castle Fortress", Description = "Ashina Outskirts")] - AshinaCastleFortress = 11100004, + [Annotation(Name = "Ashina Castle Fortress", Description = "Ashina Outskirts")] + AshinaCastleFortress = 11100004, - [Annotation(Name = "Ashina Castle Gate", Description = "Ashina Outskirts")] - AshinaCastleGate = 11100005, + [Annotation(Name = "Ashina Castle Gate", Description = "Ashina Outskirts")] + AshinaCastleGate = 11100005, - [Annotation(Name = "Flames of Hatred", Description = "Ashina Outskirts")] - FlamesOfHatred = 11100007, + [Annotation(Name = "Flames of Hatred", Description = "Ashina Outskirts")] + FlamesOfHatred = 11100007, - [Annotation(Name = "Dragonspring - Hirata Estate", Description = "Hirata Estate")] - DragonspringHirataEstate = 11000000, + [Annotation(Name = "Dragonspring - Hirata Estate", Description = "Hirata Estate")] + DragonspringHirataEstate = 11000000, - [Annotation(Name = "Estate Path", Description = "Hirata Estate")] - EstatePath = 11000001, + [Annotation(Name = "Estate Path", Description = "Hirata Estate")] + EstatePath = 11000001, - [Annotation(Name = "Bamboo Thicket Slope", Description = "Hirata Estate")] - BambooThicketSlope = 11000002, + [Annotation(Name = "Bamboo Thicket Slope", Description = "Hirata Estate")] + BambooThicketSlope = 11000002, - [Annotation(Name = "Hirata Estate - Main Hall", Description = "Hirata Estate")] - HirataEstateMainHall = 11000003, + [Annotation(Name = "Hirata Estate - Main Hall", Description = "Hirata Estate")] + HirataEstateMainHall = 11000003, - [Annotation(Name = "Hirata Audience Chamber", Description = "Hirata Estate")] - HirataAudienceChamber = 11000005, + [Annotation(Name = "Hirata Audience Chamber", Description = "Hirata Estate")] + HirataAudienceChamber = 11000005, - [Annotation(Name = "Hirata Estate - Hidden Temple", Description = "Hirata Estate")] - HirataEstateHiddenTemple = 11000004, + [Annotation(Name = "Hirata Estate - Hidden Temple", Description = "Hirata Estate")] + HirataEstateHiddenTemple = 11000004, - [Annotation(Name = "Ashina Castle", Description = "Ashina Castle")] - AshinaCastle = 11110000, + [Annotation(Name = "Ashina Castle", Description = "Ashina Castle")] + AshinaCastle = 11110000, - [Annotation(Name = "Upper Tower - Antechamber", Description = "Ashina Castle")] - UpperTowerAntechamber = 11110001, + [Annotation(Name = "Upper Tower - Antechamber", Description = "Ashina Castle")] + UpperTowerAntechamber = 11110001, - [Annotation(Name = "Upper Tower - Ashina Dojo", Description = "Ashina Castle")] - UpperTowerAshinaDojo = 11110007, + [Annotation(Name = "Upper Tower - Ashina Dojo", Description = "Ashina Castle")] + UpperTowerAshinaDojo = 11110007, - [Annotation(Name = "Castle Tower Lookout", Description = "Ashina Castle")] - CastleTowerLookout = 11110002, + [Annotation(Name = "Castle Tower Lookout", Description = "Ashina Castle")] + CastleTowerLookout = 11110002, - [Annotation(Name = "Upper Tower - Kuro's Room", Description = "Ashina Castle")] - UpperTowerKurosRoom = 11110003, + [Annotation(Name = "Upper Tower - Kuro's Room", Description = "Ashina Castle")] + UpperTowerKurosRoom = 11110003, - [Annotation(Name = "Old Grave", Description = "Ashina Castle")] - OldGrave = 11110006, + [Annotation(Name = "Old Grave", Description = "Ashina Castle")] + OldGrave = 11110006, - [Annotation(Name = "Great Serpent Shrine", Description = "Ashina Castle")] - GreatSerpentShrine = 11110004, + [Annotation(Name = "Great Serpent Shrine", Description = "Ashina Castle")] + GreatSerpentShrine = 11110004, - [Annotation(Name = "Abandoned Dungeon Entrance", Description = "Ashina Castle")] - AbandonedDungeonEntrance = 11110005, + [Annotation(Name = "Abandoned Dungeon Entrance", Description = "Ashina Castle")] + AbandonedDungeonEntrance = 11110005, - [Annotation(Name = "Ashina Reservoir", Description = "Ashina Castle")] - AshinaReservoir = 11120001, + [Annotation(Name = "Ashina Reservoir", Description = "Ashina Castle")] + AshinaReservoir = 11120001, - [Annotation(Name = "Near Secret Passage", Description = "Ashina Castle")] - NearSecretPassage = 11120000, + [Annotation(Name = "Near Secret Passage", Description = "Ashina Castle")] + NearSecretPassage = 11120000, - [Annotation(Name = "Underground Waterway", Description = "Abandoned Dungeon")] - UndergroundWaterway = 11300000, + [Annotation(Name = "Underground Waterway", Description = "Abandoned Dungeon")] + UndergroundWaterway = 11300000, - [Annotation(Name = "Bottomless Hole", Description = "Abandoned Dungeon")] - BottomlessHole = 11300001, + [Annotation(Name = "Bottomless Hole", Description = "Abandoned Dungeon")] + BottomlessHole = 11300001, - [Annotation(Name = "Senpou Temple, Mt. Kongo", Description = "Senpou Temple, Mt. Kongo")] - SenpouTempleMtKongo = 12000000, + [Annotation(Name = "Senpou Temple, Mt. Kongo", Description = "Senpou Temple, Mt. Kongo")] + SenpouTempleMtKongo = 12000000, - [Annotation(Name = "Shugendo", Description = "Senpou Temple, Mt. Kongo")] - Shugendo = 12000001, + [Annotation(Name = "Shugendo", Description = "Senpou Temple, Mt. Kongo")] + Shugendo = 12000001, - [Annotation(Name = "Temple Grounds", Description = "Senpou Temple, Mt. Kongo")] - TempleGrounds = 12000002, + [Annotation(Name = "Temple Grounds", Description = "Senpou Temple, Mt. Kongo")] + TempleGrounds = 12000002, - [Annotation(Name = "Main Hall", Description = "Senpou Temple, Mt. Kongo")] - MainHall = 12000003, + [Annotation(Name = "Main Hall", Description = "Senpou Temple, Mt. Kongo")] + MainHall = 12000003, - [Annotation(Name = "Inner Sanctum", Description = "Senpou Temple, Mt. Kongo")] - InnerSanctum = 12000004, + [Annotation(Name = "Inner Sanctum", Description = "Senpou Temple, Mt. Kongo")] + InnerSanctum = 12000004, - [Annotation(Name = "Sunken Valley Cavern", Description = "Senpou Temple, Mt. Kongo")] - SunkenValleyCavern = 12000005, + [Annotation(Name = "Sunken Valley Cavern", Description = "Senpou Temple, Mt. Kongo")] + SunkenValleyCavern = 12000005, - [Annotation(Name = "Bell Demon's Temple", Description = "Senpou Temple, Mt. Kongo")] - BellDemonsTemple = 12000006, + [Annotation(Name = "Bell Demon's Temple", Description = "Senpou Temple, Mt. Kongo")] + BellDemonsTemple = 12000006, - [Annotation(Name = "Under-Shrine Valley", Description = "Sunken Valley")] - UnderShrineValley = 11700007, + [Annotation(Name = "Under-Shrine Valley", Description = "Sunken Valley")] + UnderShrineValley = 11700007, - [Annotation(Name = "Sunken Valley", Description = "Sunken Valley")] - SunkenValley = 11700000, + [Annotation(Name = "Sunken Valley", Description = "Sunken Valley")] + SunkenValley = 11700000, - [Annotation(Name = "Gun Fort", Description = "Sunken Valley")] - GunFort = 11700001, + [Annotation(Name = "Gun Fort", Description = "Sunken Valley")] + GunFort = 11700001, - [Annotation(Name = "Riven Cave", Description = "Sunken Valley")] - RivenCave = 11700002, + [Annotation(Name = "Riven Cave", Description = "Sunken Valley")] + RivenCave = 11700002, - [Annotation(Name = "Bodhisattva Valley", Description = "Sunken Valley")] - BodhisattvaValley = 11700008, + [Annotation(Name = "Bodhisattva Valley", Description = "Sunken Valley")] + BodhisattvaValley = 11700008, - [Annotation(Name = "Guardian Ape's Watering Hole", Description = "Sunken Valley")] - GuardianApesWateringHole = 11700003, + [Annotation(Name = "Guardian Ape's Watering Hole", Description = "Sunken Valley")] + GuardianApesWateringHole = 11700003, - [Annotation(Name = "Ashina Depths", Description = "Ashina Depths")] - AshinaDepths = 11700005, + [Annotation(Name = "Ashina Depths", Description = "Ashina Depths")] + AshinaDepths = 11700005, - [Annotation(Name = "Poison Pool", Description = "Ashina Depths")] - PoisonPool = 11700004, + [Annotation(Name = "Poison Pool", Description = "Ashina Depths")] + PoisonPool = 11700004, - [Annotation(Name = "Guardian Ape's Burrow", Description = "Ashina Depths")] - GuardianApesBurrow = 11700006, + [Annotation(Name = "Guardian Ape's Burrow", Description = "Ashina Depths")] + GuardianApesBurrow = 11700006, - [Annotation(Name = "Hidden Forest", Description = "Ashina Depths")] - HiddenForest = 11500000, + [Annotation(Name = "Hidden Forest", Description = "Ashina Depths")] + HiddenForest = 11500000, - [Annotation(Name = "Mibu Village", Description = "Ashina Depths")] - MibuVillage = 11500001, + [Annotation(Name = "Mibu Village", Description = "Ashina Depths")] + MibuVillage = 11500001, - [Annotation(Name = "Water Mill", Description = "Ashina Depths")] - WaterMill = 11500002, + [Annotation(Name = "Water Mill", Description = "Ashina Depths")] + WaterMill = 11500002, - [Annotation(Name = "Wedding Cave Door", Description = "Ashina Depths")] - WeddingCaveDoor = 11500003, + [Annotation(Name = "Wedding Cave Door", Description = "Ashina Depths")] + WeddingCaveDoor = 11500003, - [Annotation(Name = "Fountainhead Palace", Description = "Fountainhead Palace")] - FountainheadPalace = 12500000, + [Annotation(Name = "Fountainhead Palace", Description = "Fountainhead Palace")] + FountainheadPalace = 12500000, - [Annotation(Name = "Vermilion Bridge", Description = "Fountainhead Palace")] - VermilionBridge = 12500001, + [Annotation(Name = "Vermilion Bridge", Description = "Fountainhead Palace")] + VermilionBridge = 12500001, - [Annotation(Name = "Mibu Manor", Description = "Fountainhead Palace")] - MibuManor = 12500006, + [Annotation(Name = "Mibu Manor", Description = "Fountainhead Palace")] + MibuManor = 12500006, - [Annotation(Name = "Flower Viewing Stage", Description = "Fountainhead Palace")] - FlowerViewingStage = 12500002, + [Annotation(Name = "Flower Viewing Stage", Description = "Fountainhead Palace")] + FlowerViewingStage = 12500002, - [Annotation(Name = "Great Sakura", Description = "Fountainhead Palace")] - GreatSakura = 12500003, + [Annotation(Name = "Great Sakura", Description = "Fountainhead Palace")] + GreatSakura = 12500003, - [Annotation(Name = "Palace Grounds", Description = "Fountainhead Palace")] - PalaceGrounds = 12500004, + [Annotation(Name = "Palace Grounds", Description = "Fountainhead Palace")] + PalaceGrounds = 12500004, - [Annotation(Name = "Feeding Grounds", Description = "Fountainhead Palace")] - FeedingGrounds = 12500007, + [Annotation(Name = "Feeding Grounds", Description = "Fountainhead Palace")] + FeedingGrounds = 12500007, - [Annotation(Name = "Near Pot Noble", Description = "Fountainhead Palace")] - NearPotNoble = 12500008, + [Annotation(Name = "Near Pot Noble", Description = "Fountainhead Palace")] + NearPotNoble = 12500008, - [Annotation(Name = "Sanctuary", Description = "Fountainhead Palace")] - Sanctuary = 12500005, - } + [Annotation(Name = "Sanctuary", Description = "Fountainhead Palace")] + Sanctuary = 12500005, } diff --git a/src/SoulMemory/Sekiro/Sekiro.cs b/src/SoulMemory/Sekiro/Sekiro.cs index f184489..1a6503c 100644 --- a/src/SoulMemory/Sekiro/Sekiro.cs +++ b/src/SoulMemory/Sekiro/Sekiro.cs @@ -21,617 +21,616 @@ using SoulMemory.Memory; using SoulMemory.Native; -namespace SoulMemory.Sekiro +namespace SoulMemory.Sekiro; + +public class Sekiro : IGame { - public class Sekiro : IGame + private Process? _process; + private readonly Pointer _eventFlagMan = new Pointer(); + private readonly Pointer _fieldArea = new Pointer(); + private readonly Pointer _worldChrManImp = new Pointer(); + private readonly Pointer _igt = new Pointer(); + private readonly Pointer _position = new Pointer(); + private readonly Pointer _fadeSystem = new Pointer(); + private readonly Pointer _saveChecksum = new Pointer(); + private readonly Pointer _saveSteamId = new Pointer(); + private readonly Pointer _saveSlot = new Pointer(); + private readonly Pointer _showTutorialText = new Pointer(); + private readonly Pointer _cSMenuTutorialDialogLoadBuffer = new Pointer(); + private readonly Pointer _cSTutorialDialogLoadBuffer = new Pointer(); + private readonly Pointer _noLogo = new Pointer(); + private readonly Pointer _playerGameData = new Pointer(); + + #region Refresh/init/reset ================================================================================================================================ + + public Process? GetProcess() => _process; + + public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, "sekiro", InitPointers, ResetPointers); + + public TreeBuilder GetTreeBuilder() { - private Process? _process; - private readonly Pointer _eventFlagMan = new Pointer(); - private readonly Pointer _fieldArea = new Pointer(); - private readonly Pointer _worldChrManImp = new Pointer(); - private readonly Pointer _igt = new Pointer(); - private readonly Pointer _position = new Pointer(); - private readonly Pointer _fadeSystem = new Pointer(); - private readonly Pointer _saveChecksum = new Pointer(); - private readonly Pointer _saveSteamId = new Pointer(); - private readonly Pointer _saveSlot = new Pointer(); - private readonly Pointer _showTutorialText = new Pointer(); - private readonly Pointer _cSMenuTutorialDialogLoadBuffer = new Pointer(); - private readonly Pointer _cSTutorialDialogLoadBuffer = new Pointer(); - private readonly Pointer _noLogo = new Pointer(); - private readonly Pointer _playerGameData = new Pointer(); - - #region Refresh/init/reset ================================================================================================================================ + //MenuMan AOB is 48 8b 05 ? ? ? ? 0f b6 d1 48 8b 88 08 33 00 00 3, 7 + + var treeBuilder = new TreeBuilder(); + treeBuilder + .ScanRelative("EventFlagMan", "48 8b 0d ? ? ? ? 48 89 5c 24 50 48 89 6c 24 58 48 89 74 24 60", 3, 7) + .AddPointer(_eventFlagMan, 0); + + treeBuilder + .ScanRelative("FieldArea", "48 8b 0d ? ? ? ? 48 85 c9 74 26 44 8b 41 28 48 8d 54 24 40", 3, 7) + .AddPointer(_fieldArea, 0); + + treeBuilder + .ScanRelative("WorldChrManImp", "48 8B 35 ? ? ? ? 44 0F 28 18", 3, 7) + .AddPointer(_worldChrManImp, 0) + .AddPointer(_position, 0, 0x48, 0x28); + + treeBuilder + .ScanRelative("Igt", "48 8b 05 ? ? ? ? 32 d2 48 8b 48 08 48 85 c9 74 13 80 b9 ba", 3, 7) + .AddPointer(_igt, 0x0, 0x9c); + //.CreatePointer(out _igt, 0x0, 0x70) new game cycle + + treeBuilder + .ScanRelative("FadeManImp", "48 89 35 ? ? ? ? 48 8b c7 48 8b 4d 27 48 33 cc", 3, 7) + .AddPointer(_fadeSystem, 0x0, 0x8); + + treeBuilder + .ScanRelative("PlayerGameData", "48 8b 0d ? ? ? ? 48 8b 41 20 c6 04 02 00", 3, 7) + .AddPointer(_playerGameData, 0x0, 0x8); + + //These 3 save file related AOB's where found by Uberhalit, thanks for letting me use them! + //https://github.com/uberhalit/SimpleSekiroSavegameHelper/ + //MIT licensed https://github.com/uberhalit/SimpleSekiroSavegameHelper/blob/master/LICENSE + treeBuilder + .ScanAbsolute("Save checksum", "38 84 0C ? ? ? ? ? ? FF ? 48 ? ? 83 ? 10 72", 7) + .AddPointer(_saveChecksum); + + treeBuilder + .ScanAbsolute("Save SteamID", "45 84 FF ? ? B9 06 00 00 00 EB ? B9 07 00 00 00", 3) + .AddPointer(_saveSteamId); + + treeBuilder + .ScanAbsolute("Save slot", "48 8B 05 ? ? ? ? 40 38 B8 ? ? ? ? ? ? E8 ? ? ? ? E8 ? ? ? ? B8 06 00 00 00", 14) + .AddPointer(_saveSlot); + + //Replacement of b3's mods to hide tutorials + treeBuilder + .ScanAbsolute("ShowTutorialText", "8b ? ? 89 ? ? ? 44 ? ? ? 44 ? ? ? 8b ? 48 ? ? ? ? ? ? ? ? 90 48 ? ? ? ? ? ? ? ? 90", 0) + .AddPointer(_showTutorialText); + + treeBuilder + .ScanAbsolute("CSMenuTutorialDialogLoadBuffer", "b9 50 0c ? ? e8 ? ? ? ? 48 ? ? ? ? ? ? ? 48 ? ? ? ? 4c", 0) + .AddPointer(_cSMenuTutorialDialogLoadBuffer); + + treeBuilder + .ScanAbsolute("CSTutorialDialogLoadBuffer", "b9 ? 0e 00 00 e8 ? ? ? ? 48 8b e8 48 89 84 24 c8 00 00 00 48 85 c0 ? ?", 0) + .AddPointer(_cSTutorialDialogLoadBuffer); - public Process? GetProcess() => _process; - public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, "sekiro", InitPointers, ResetPointers); - - public TreeBuilder GetTreeBuilder() - { - //MenuMan AOB is 48 8b 05 ? ? ? ? 0f b6 d1 48 8b 88 08 33 00 00 3, 7 - - var treeBuilder = new TreeBuilder(); - treeBuilder - .ScanRelative("EventFlagMan", "48 8b 0d ? ? ? ? 48 89 5c 24 50 48 89 6c 24 58 48 89 74 24 60", 3, 7) - .AddPointer(_eventFlagMan, 0); - - treeBuilder - .ScanRelative("FieldArea", "48 8b 0d ? ? ? ? 48 85 c9 74 26 44 8b 41 28 48 8d 54 24 40", 3, 7) - .AddPointer(_fieldArea, 0); - - treeBuilder - .ScanRelative("WorldChrManImp", "48 8B 35 ? ? ? ? 44 0F 28 18", 3, 7) - .AddPointer(_worldChrManImp, 0) - .AddPointer(_position, 0, 0x48, 0x28); - - treeBuilder - .ScanRelative("Igt", "48 8b 05 ? ? ? ? 32 d2 48 8b 48 08 48 85 c9 74 13 80 b9 ba", 3, 7) - .AddPointer(_igt, 0x0, 0x9c); - //.CreatePointer(out _igt, 0x0, 0x70) new game cycle - - treeBuilder - .ScanRelative("FadeManImp", "48 89 35 ? ? ? ? 48 8b c7 48 8b 4d 27 48 33 cc", 3, 7) - .AddPointer(_fadeSystem, 0x0, 0x8); - - treeBuilder - .ScanRelative("PlayerGameData", "48 8b 0d ? ? ? ? 48 8b 41 20 c6 04 02 00", 3, 7) - .AddPointer(_playerGameData, 0x0, 0x8); - - //These 3 save file related AOB's where found by Uberhalit, thanks for letting me use them! - //https://github.com/uberhalit/SimpleSekiroSavegameHelper/ - //MIT licensed https://github.com/uberhalit/SimpleSekiroSavegameHelper/blob/master/LICENSE - treeBuilder - .ScanAbsolute("Save checksum", "38 84 0C ? ? ? ? ? ? FF ? 48 ? ? 83 ? 10 72", 7) - .AddPointer(_saveChecksum); - - treeBuilder - .ScanAbsolute("Save SteamID", "45 84 FF ? ? B9 06 00 00 00 EB ? B9 07 00 00 00", 3) - .AddPointer(_saveSteamId); - - treeBuilder - .ScanAbsolute("Save slot", "48 8B 05 ? ? ? ? 40 38 B8 ? ? ? ? ? ? E8 ? ? ? ? E8 ? ? ? ? B8 06 00 00 00", 14) - .AddPointer(_saveSlot); - - //Replacement of b3's mods to hide tutorials - treeBuilder - .ScanAbsolute("ShowTutorialText", "8b ? ? 89 ? ? ? 44 ? ? ? 44 ? ? ? 8b ? 48 ? ? ? ? ? ? ? ? 90 48 ? ? ? ? ? ? ? ? 90", 0) - .AddPointer(_showTutorialText); - - treeBuilder - .ScanAbsolute("CSMenuTutorialDialogLoadBuffer", "b9 50 0c ? ? e8 ? ? ? ? 48 ? ? ? ? ? ? ? 48 ? ? ? ? 4c", 0) - .AddPointer(_cSMenuTutorialDialogLoadBuffer); - - treeBuilder - .ScanAbsolute("CSTutorialDialogLoadBuffer", "b9 ? 0e 00 00 e8 ? ? ? ? 48 8b e8 48 89 84 24 c8 00 00 00 48 85 c0 ? ?", 0) - .AddPointer(_cSTutorialDialogLoadBuffer); - + treeBuilder + .ScanAbsolute("NoLogo", "b9 c8 0a 00 00 e8 ? ? ? ? 48 ? ? 48 ? ? ? ? ? ? ? 48 ? ? ? 30 48 ? ? ? ? 48", 0) + .AddPointer(_noLogo); - treeBuilder - .ScanAbsolute("NoLogo", "b9 c8 0a 00 00 e8 ? ? ? ? 48 ? ? 48 ? ? ? ? ? ? ? 48 ? ? ? 30 48 ? ? ? ? 48", 0) - .AddPointer(_noLogo); + // - // + return treeBuilder; + } - return treeBuilder; - } + private ResultErr InitPointers() + { + Thread.Sleep(3000); //Give sekiro some time to boot - private ResultErr InitPointers() + try { - Thread.Sleep(3000); //Give sekiro some time to boot - - try + var treeBuilder = GetTreeBuilder(); + var result = MemoryScanner.TryResolvePointers(treeBuilder, _process); + if (result.IsErr) { - var treeBuilder = GetTreeBuilder(); - var result = MemoryScanner.TryResolvePointers(treeBuilder, _process); - if (result.IsErr) - { - return result; - } - - _showTutorialText.WriteBytes(21, new byte[]{0x90, 0x90, 0x90, 0x90, 0x90 }); - _showTutorialText.WriteBytes(31, new byte[]{0x90, 0x90, 0x90, 0x90, 0x90 }); + return result; + } - _cSMenuTutorialDialogLoadBuffer.WriteByte(21, 0x75); - _cSTutorialDialogLoadBuffer.WriteByte(24, 0x75); + _showTutorialText.WriteBytes(21, new byte[]{0x90, 0x90, 0x90, 0x90, 0x90 }); + _showTutorialText.WriteBytes(31, new byte[]{0x90, 0x90, 0x90, 0x90, 0x90 }); - _noLogo.WriteByte(24, 0x75); - - //All credit goes to Uberhalit, for finding the byte patterns https://github.com/uberhalit/SimpleSekiroSavegameHelper - _saveChecksum.WriteBytes(null, new byte[] { 0x90, 0x90 }); - _saveSteamId.WriteByte(null, 0xeb); - _saveSlot.WriteByte(null, 0xeb); - - if (!InitB3Mods()) - { - _igt.Clear(); - return Result.Err(new RefreshError(RefreshErrorReason.UnknownException, "B3Mods init failed")); - } + _cSMenuTutorialDialogLoadBuffer.WriteByte(21, 0x75); + _cSTutorialDialogLoadBuffer.WriteByte(24, 0x75); - - return Result.Ok(); - } - catch (Exception e) + _noLogo.WriteByte(24, 0x75); + + //All credit goes to Uberhalit, for finding the byte patterns https://github.com/uberhalit/SimpleSekiroSavegameHelper + _saveChecksum.WriteBytes(null, new byte[] { 0x90, 0x90 }); + _saveSteamId.WriteByte(null, 0xeb); + _saveSlot.WriteByte(null, 0xeb); + + if (!InitB3Mods()) { - return RefreshError.FromException(e); + _igt.Clear(); + return Result.Err(new RefreshError(RefreshErrorReason.UnknownException, "B3Mods init failed")); } + + + return Result.Ok(); } - - - private void ResetPointers() + catch (Exception e) { - _eventFlagMan.Clear(); - _fieldArea.Clear(); - _worldChrManImp.Clear(); - _igt.Clear(); - _position.Clear(); - _fadeSystem.Clear(); - _saveChecksum.Clear(); - _saveSteamId.Clear(); - _saveSlot.Clear(); - _showTutorialText.Clear(); - _cSMenuTutorialDialogLoadBuffer.Clear(); - _noLogo.Clear(); - _playerGameData.Clear(); - BitBlt = false; + return RefreshError.FromException(e); } + } + + + private void ResetPointers() + { + _eventFlagMan.Clear(); + _fieldArea.Clear(); + _worldChrManImp.Clear(); + _igt.Clear(); + _position.Clear(); + _fadeSystem.Clear(); + _saveChecksum.Clear(); + _saveSteamId.Clear(); + _saveSlot.Clear(); + _showTutorialText.Clear(); + _cSMenuTutorialDialogLoadBuffer.Clear(); + _noLogo.Clear(); + _playerGameData.Clear(); + BitBlt = false; + } - #endregion + #endregion - public int GetInGameTimeMilliseconds() - { - return _igt?.ReadInt32() ?? 0; - } + public int GetInGameTimeMilliseconds() + { + return _igt?.ReadInt32() ?? 0; + } - public void WriteInGameTimeMilliseconds(int value) - { - _igt?.WriteInt32(value); - } + public void WriteInGameTimeMilliseconds(int value) + { + _igt?.WriteInt32(value); + } - public int GetAttribute(Attribute attribute) + public int GetAttribute(Attribute attribute) + { + switch (attribute) { - switch (attribute) - { - default: - throw new ArgumentException($"{attribute} not supported"); + default: + throw new ArgumentException($"{attribute} not supported"); - case Attribute.Vitality: - return _playerGameData.ReadInt32(0x44) + 9; + case Attribute.Vitality: + return _playerGameData.ReadInt32(0x44) + 9; - case Attribute.AttackPower: - return _playerGameData.ReadInt32(0x48); - } + case Attribute.AttackPower: + return _playerGameData.ReadInt32(0x48); } + } - public bool IsPlayerLoaded() - { - return _worldChrManImp.ReadInt64(0x88) != 0; - } + public bool IsPlayerLoaded() + { + return _worldChrManImp.ReadInt64(0x88) != 0; + } - public Vector3f GetPlayerPosition() - { - return new Vector3f(_position?.ReadFloat(0x80) ?? 0f, _position?.ReadFloat(0x84) ?? 0f, _position?.ReadFloat(0x88) ?? 0f); - } + public Vector3f GetPlayerPosition() + { + return new Vector3f(_position?.ReadFloat(0x80) ?? 0f, _position?.ReadFloat(0x84) ?? 0f, _position?.ReadFloat(0x88) ?? 0f); + } - public bool IsBlackscreenActive() - { - //0x2dc best candidate so far. - return _fadeSystem.ReadInt32(0x2dc) != 0; - } - - #region event flags ================================================================================================================ + public bool IsBlackscreenActive() + { + //0x2dc best candidate so far. + return _fadeSystem.ReadInt32(0x2dc) != 0; + } + + #region event flags ================================================================================================================ - public void WriteEventFlag(uint eventFlagId, bool eventFlagValue) + public void WriteEventFlag(uint eventFlagId, bool eventFlagValue) + { + var resultAddress = GetEventFlagAddress(eventFlagId); + if (resultAddress.IsOk) { - var resultAddress = GetEventFlagAddress(eventFlagId); - if (resultAddress.IsOk) - { - var pointer = resultAddress.Unwrap(); + var pointer = resultAddress.Unwrap(); - var valueOffset = (long)((uint)((int)eventFlagId % 1000) >> 5) * 4; - var value = pointer.ReadUInt32(valueOffset); - var mask = 1 << (0x1f - ((byte)((int)eventFlagId % 1000) & 0x1f) & 0x1f); + var valueOffset = (long)((uint)((int)eventFlagId % 1000) >> 5) * 4; + var value = pointer.ReadUInt32(valueOffset); + var mask = 1 << (0x1f - ((byte)((int)eventFlagId % 1000) & 0x1f) & 0x1f); - var newValue = value; - if (eventFlagValue) - { - newValue |= (uint)mask; - } - else - { - newValue &= ~(uint)mask; - } - pointer.WriteUint32(valueOffset, newValue); + var newValue = value; + if (eventFlagValue) + { + newValue |= (uint)mask; } - } - - public bool ReadEventFlag(uint eventFlagId) - { - var resultAddress = GetEventFlagAddress(eventFlagId); - if (resultAddress.IsOk) + else { - var pointer = resultAddress.Unwrap(); - var value = pointer.ReadUInt32((long)((uint)((int)eventFlagId % 1000) >> 5) * 4); - var mask = 1 << (0x1f - ((byte)((int)eventFlagId % 1000) & 0x1f) & 0x1f); - var result = value & mask; - return result != 0; + newValue &= ~(uint)mask; } - return false; + pointer.WriteUint32(valueOffset, newValue); } + } - private ResultOk GetEventFlagAddress(uint eventFlagId) + public bool ReadEventFlag(uint eventFlagId) + { + var resultAddress = GetEventFlagAddress(eventFlagId); + if (resultAddress.IsOk) { - var eventFlagIdDiv10000000 = (int)(eventFlagId / 10000000) % 10; - var eventFlagArea = (int)(eventFlagId / 100000) % 100; - var eventFlagIdDiv10000 = (int)(eventFlagId / 10000) % 10; - var eventFlagIdDiv1000 = (int)(eventFlagId / 1000) % 10; + var pointer = resultAddress.Unwrap(); + var value = pointer.ReadUInt32((long)((uint)((int)eventFlagId % 1000) >> 5) * 4); + var mask = 1 << (0x1f - ((byte)((int)eventFlagId % 1000) & 0x1f) & 0x1f); + var result = value & mask; + return result != 0; + } + return false; + } - var flagWorldBlockInfoCategory = -1; - if (eventFlagArea >= 90 || eventFlagArea + eventFlagIdDiv10000 == 0) - { - flagWorldBlockInfoCategory = 0; - } - else - { - var worldInfoOwner = _fieldArea.Append(0x18).CreatePointerFromAddress(); + private ResultOk GetEventFlagAddress(uint eventFlagId) + { + var eventFlagIdDiv10000000 = (int)(eventFlagId / 10000000) % 10; + var eventFlagArea = (int)(eventFlagId / 100000) % 100; + var eventFlagIdDiv10000 = (int)(eventFlagId / 10000) % 10; + var eventFlagIdDiv1000 = (int)(eventFlagId / 1000) % 10; + + var flagWorldBlockInfoCategory = -1; + if (eventFlagArea >= 90 || eventFlagArea + eventFlagIdDiv10000 == 0) + { + flagWorldBlockInfoCategory = 0; + } + else + { + var worldInfoOwner = _fieldArea.Append(0x18).CreatePointerFromAddress(); - //Flag stored in world related struct? Looks like the game is reading a size, and then looping over a vector of structs (size 0x38) - var size = worldInfoOwner.ReadInt32(0x8); - var vector = worldInfoOwner.Append(0x10); + //Flag stored in world related struct? Looks like the game is reading a size, and then looping over a vector of structs (size 0x38) + var size = worldInfoOwner.ReadInt32(0x8); + var vector = worldInfoOwner.Append(0x10); - //Loop over worldInfo structs - for (int i = 0; i < size; i++) + //Loop over worldInfo structs + for (int i = 0; i < size; i++) + { + var area = vector.ReadByte((i * 0x38) + 0xb); + if (area == eventFlagArea) { - var area = vector.ReadByte((i * 0x38) + 0xb); - if (area == eventFlagArea) - { - var count = vector.ReadByte(i * 0x38 + 0x20); - var index = 0; - var found = false; - Pointer? worldInfoBlockVector = null; + var count = vector.ReadByte(i * 0x38 + 0x20); + var index = 0; + var found = false; + Pointer? worldInfoBlockVector = null; - if (count >= 1) + if (count >= 1) + { + //Loop over worldBlockInfo structs, size 0xe + while (true) { - //Loop over worldBlockInfo structs, size 0xe - while (true) + worldInfoBlockVector = vector.CreatePointerFromAddress(i * 0x38 + 0x28); + var flag = worldInfoBlockVector.ReadInt32((index * 0xb0) + 0x8); + + if ((flag >> 0x10 & 0xff) == eventFlagIdDiv10000 && flag >> 0x18 == eventFlagArea) { - worldInfoBlockVector = vector.CreatePointerFromAddress(i * 0x38 + 0x28); - var flag = worldInfoBlockVector.ReadInt32((index * 0xb0) + 0x8); - - if ((flag >> 0x10 & 0xff) == eventFlagIdDiv10000 && flag >> 0x18 == eventFlagArea) - { - found = true; - break; - } - - index++; - if (count <= index) - { - found = false; - break; - } + found = true; + break; } - } - if (found) - { - flagWorldBlockInfoCategory = worldInfoBlockVector!.ReadInt32((index * 0xb0) + 0x20); - break; + index++; + if (count <= index) + { + found = false; + break; + } } } - } - if (-1 < flagWorldBlockInfoCategory) - { - flagWorldBlockInfoCategory++; + if (found) + { + flagWorldBlockInfoCategory = worldInfoBlockVector!.ReadInt32((index * 0xb0) + 0x20); + break; + } } } - var ptr = _eventFlagMan.Append(0x218, eventFlagIdDiv10000000 * 0x18, 0x0); - - if (ptr.IsNullPtr() || flagWorldBlockInfoCategory < 0) + if (-1 < flagWorldBlockInfoCategory) { - return Result.Err(); + flagWorldBlockInfoCategory++; } - - //Whats with this name... -_- - var resultPointerAddress = new Pointer(); - resultPointerAddress.Initialize(ptr.Process!, ptr.Is64Bit, (eventFlagIdDiv1000 << 4) + ptr.GetAddress() + flagWorldBlockInfoCategory * 0xa8, 0x0); - if (resultPointerAddress.IsNullPtr()) - { - return Result.Err(); - } - return Result.Ok(resultPointerAddress); } - //Ghidra, sekiro 1.06, at 1406c63f0, sekiro.exe + 0x6c63f0 - // - // - //longlong GetEventFlag(longlong param_1, int param_2, byte param_3) - //{ - // longlong lVar1; - // int iVar2; - // ulonglong uVar3; - // uint uVar4; - // ulonglong uVar5; - // uint local_res8[2]; - // - // if ((*(char*)(param_1 + 0x228) == '\0') || (param_2 < 0)) - // { - // return 0; - // } - // uVar5 = (ulonglong)(uint)((param_2 / 10000000) % 10); - // uVar4 = (param_2 / 1000) % 10; - // uVar3 = FUN_1406c6090(param_1, (param_2 / 100000) % 100, (param_2 / 10000) % 10, (ulonglong)param_3); - // iVar2 = (int)uVar3; - // if (param_3 == 0) - // { - // if (Global_FieldArea_Ptr != 0) - // { - // FUN_1406c40c0(*(longlong*)(Global_FieldArea_Ptr + 0x18), local_res8, - // *(int*)(Global_FieldArea_Ptr + 0x28)); - // FUN_140c4fcf0(local_res8[0] >> 0x18); - // } - // lVar1 = *(longlong*)(*(longlong*)(param_1 + 0x218) + uVar5 * 0x18); - // if ((lVar1 != 0) && (-1 < iVar2)) - // { - // return (longlong)iVar2 * 0xa8 + lVar1 + (ulonglong)uVar4 * 0x10; - // } - // } - // else - // { - // lVar1 = *(longlong*)(*(longlong*)(param_1 + 0x218) + uVar5 * 0x18); - // if ((lVar1 != 0) && (-1 < iVar2)) - // { - // return (ulonglong)uVar4 * 0x10 + (longlong)iVar2 * 0xa8 + lVar1; - // } - // } - // return 0; - //} - - #endregion - - #region Savefile mods - - + var ptr = _eventFlagMan.Append(0x218, eventFlagIdDiv10000000 * 0x18, 0x0); - #endregion + if (ptr.IsNullPtr() || flagWorldBlockInfoCategory < 0) + { + return Result.Err(); + } - #region BitBlt + //Whats with this name... -_- + var resultPointerAddress = new Pointer(); + resultPointerAddress.Initialize(ptr.Process!, ptr.Is64Bit, (eventFlagIdDiv1000 << 4) + ptr.GetAddress() + flagWorldBlockInfoCategory * 0xa8, 0x0); + if (resultPointerAddress.IsNullPtr()) + { + return Result.Err(); + } + return Result.Ok(resultPointerAddress); + } - public bool BitBlt + //Ghidra, sekiro 1.06, at 1406c63f0, sekiro.exe + 0x6c63f0 + // + // + //longlong GetEventFlag(longlong param_1, int param_2, byte param_3) + //{ + // longlong lVar1; + // int iVar2; + // ulonglong uVar3; + // uint uVar4; + // ulonglong uVar5; + // uint local_res8[2]; + // + // if ((*(char*)(param_1 + 0x228) == '\0') || (param_2 < 0)) + // { + // return 0; + // } + // uVar5 = (ulonglong)(uint)((param_2 / 10000000) % 10); + // uVar4 = (param_2 / 1000) % 10; + // uVar3 = FUN_1406c6090(param_1, (param_2 / 100000) % 100, (param_2 / 10000) % 10, (ulonglong)param_3); + // iVar2 = (int)uVar3; + // if (param_3 == 0) + // { + // if (Global_FieldArea_Ptr != 0) + // { + // FUN_1406c40c0(*(longlong*)(Global_FieldArea_Ptr + 0x18), local_res8, + // *(int*)(Global_FieldArea_Ptr + 0x28)); + // FUN_140c4fcf0(local_res8[0] >> 0x18); + // } + // lVar1 = *(longlong*)(*(longlong*)(param_1 + 0x218) + uVar5 * 0x18); + // if ((lVar1 != 0) && (-1 < iVar2)) + // { + // return (longlong)iVar2 * 0xa8 + lVar1 + (ulonglong)uVar4 * 0x10; + // } + // } + // else + // { + // lVar1 = *(longlong*)(*(longlong*)(param_1 + 0x218) + uVar5 * 0x18); + // if ((lVar1 != 0) && (-1 < iVar2)) + // { + // return (ulonglong)uVar4 * 0x10 + (longlong)iVar2 * 0xa8 + lVar1; + // } + // } + // return 0; + //} + + #endregion + + #region Savefile mods + + + + #endregion + + #region BitBlt + + public bool BitBlt + { + get { - get + lock (_bitBltLock) { - lock (_bitBltLock) - { - return _bitBlt; - } + return _bitBlt; } - private set + } + private set + { + lock (_bitBltLock) { - lock (_bitBltLock) - { - _bitBlt = value; - } + _bitBlt = value; } } + } - private bool _bitBlt = false; - private readonly object _bitBltLock = new object(); + private bool _bitBlt = false; + private readonly object _bitBltLock = new object(); - private readonly List _files = new List{ "sekiro.exe", "data1.bdt", "data2.bdt", "data3.bdt", "data4.bdt", "data5.bdt" }; + private readonly List _files = new List{ "sekiro.exe", "data1.bdt", "data2.bdt", "data3.bdt", "data4.bdt", "data5.bdt" }; - private readonly List _bitBltValues = new List - { - "0E 0A 84 07 C7 8E 89 6A 73 D8 F2 7D A3 D4 C0 CC", - "BE B9 5E E1 B9 87 29 19 4D A3 05 FD EB 63 1A 70", - "77 59 13 22 FC 7B 93 F8 8C 94 94 95 BC E9 D0 89", - "8D 88 50 B7 69 62 40 F5 26 EA 90 CA A9 39 93 54", - "97 31 E0 AB 34 BC 42 C3 F5 EE CF 64 F8 38 7B A9", - "6C 50 A5 31 44 52 25 9E 12 0C 3D 8B E2 66 3E 0D", - }; - - #endregion - - #region B3LYP's timer & mods - //All credit goes to B3LYP, https://github.com/pawREP - /* - Sekiro Speerunning Plugin by B3 - v1.8 - - Features: - - Fixed timer implementation. - - Auto start - - No logo mod. - - No tutorial mod. + private readonly List _bitBltValues = new List + { + "0E 0A 84 07 C7 8E 89 6A 73 D8 F2 7D A3 D4 C0 CC", + "BE B9 5E E1 B9 87 29 19 4D A3 05 FD EB 63 1A 70", + "77 59 13 22 FC 7B 93 F8 8C 94 94 95 BC E9 D0 89", + "8D 88 50 B7 69 62 40 F5 26 EA 90 CA A9 39 93 54", + "97 31 E0 AB 34 BC 42 C3 F5 EE CF 64 F8 38 7B A9", + "6C 50 A5 31 44 52 25 9E 12 0C 3D 8B E2 66 3E 0D", + }; + + #endregion + + #region B3LYP's timer & mods + //All credit goes to B3LYP, https://github.com/pawREP + /* + Sekiro Speerunning Plugin by B3 + v1.8 + + Features: + - Fixed timer implementation. + - Auto start + - No logo mod. + - No tutorial mod. + + Patches: + 23/04/19 v1.1 + - Compatibility for game version 1.03 + - fixed timer flickering. (thanks CapitaineToinon) + - Patches: - 23/04/19 v1.1 - - Compatibility for game version 1.03 - - fixed timer flickering. (thanks CapitaineToinon) - - - 29/10/20 v1.2 - - Made IGT work for game version 1.06 (contributed by 56#1363) - - - 30/12/20 v1.3 - - Fixed the addresses for no logo, tutorial skip, and igt fix code location (contributed by RefinedHornet#4765) - - - 03/01/21 v1.4 (contributed by RefinedHornet#4765) - - Now by default, timer only automatically starts when a new game is started or when the next new game cycle is started - - Included a Practice/Testing mode that auto starts similarly to old versions - - Introduced a offset value that takes the igt value from timer start and subtracts from current igt value to always start the timer at 0, except for new games - - 15/01/21 v1.5 - - Added auto start for guantlets (contributed by RefinedHornet#4765) - - 19/01/21 v1.6 - - Compatibility for game version 1.05 (contributed by RefinedHornet#4765) - - 27/02/21 v1.7 - - Fixed a bug where the script couldn't detect the version between 1.05 and 1.06 if the script was initiated again after the patches were applied (contributed by RefinedHornet#4765) - - 06/03/21 v1.8 (contributed by RefinedHornet#4765) - - Fixed a bug where files with over 600 hours had countdown style timers + 29/10/20 v1.2 + - Made IGT work for game version 1.06 (contributed by 56#1363) + + + 30/12/20 v1.3 + - Fixed the addresses for no logo, tutorial skip, and igt fix code location (contributed by RefinedHornet#4765) + + + 03/01/21 v1.4 (contributed by RefinedHornet#4765) + - Now by default, timer only automatically starts when a new game is started or when the next new game cycle is started + - Included a Practice/Testing mode that auto starts similarly to old versions + - Introduced a offset value that takes the igt value from timer start and subtracts from current igt value to always start the timer at 0, except for new games + + 15/01/21 v1.5 + - Added auto start for guantlets (contributed by RefinedHornet#4765) + + 19/01/21 v1.6 + - Compatibility for game version 1.05 (contributed by RefinedHornet#4765) + + 27/02/21 v1.7 + - Fixed a bug where the script couldn't detect the version between 1.05 and 1.06 if the script was initiated again after the patches were applied (contributed by RefinedHornet#4765) + + 06/03/21 v1.8 (contributed by RefinedHornet#4765) + - Fixed a bug where files with over 600 hours had countdown style timers - Made the precision of rounding a variable for ease of change, removed casting of Round method return to float to avoid rounding errors - If you have issues or questions message me (B3LYP#2159) - on the Sekiro Speedrunning Discord (https://discord.gg/DVXvRPu) + If you have issues or questions message me (B3LYP#2159) + on the Sekiro Speedrunning Discord (https://discord.gg/DVXvRPu) - Technical: - This plugin modifies the in-game timer of Sekiro to make it run at the correct - speed independent of frame rate. The fix as C++ code for reference: + Technical: + This plugin modifies the in-game timer of Sekiro to make it run at the correct + speed independent of frame rate. The fix as C++ code for reference: - ''' - void updateTimerOriginal(float frame_time){ - igt += static_cast(frame_time); - } + ''' + void updateTimerOriginal(float frame_time){ + igt += static_cast(frame_time); + } - void updateTimerNew(float frame_time){ - static float frac = 0.f; - frac += frame_time - static_cast(frame_time); - if(frac >= 1.f){ - frame_time++; - frac--; - } - igt += static_cast(frame_time); + void updateTimerNew(float frame_time){ + static float frac = 0.f; + frac += frame_time - static_cast(frame_time); + if(frac >= 1.f){ + frame_time++; + frac--; } - ''' - */ - - private bool InitB3Mods() - { - string version; - - uint logoCodeBytesPointFive = 0; - uint logoCodeBytesPointSix = 0; - - - switch (_process?.MainModule?.ModuleMemorySize){ - case 67727360: - version = "1.02"; - break; - case 67731456: - version = "1.03"; - break; - case 70066176: - // if the first 4 bytes at found logo code matches 74 30 48 8D or 75 30 48 8D to account for changes already being applied - - logoCodeBytesPointFive = _process.ReadMemory(_process.MainModule.BaseAddress.ToInt64() + 0xE1B1AB).Unwrap(); - logoCodeBytesPointSix = _process.ReadMemory(_process.MainModule.BaseAddress.ToInt64() + 0xE1B51B).Unwrap(); - - if(logoCodeBytesPointFive == 0x8D483074 || logoCodeBytesPointFive == 0x8D483075){ - version = "1.05"; - } - else if(logoCodeBytesPointSix == 0x8D483074 || logoCodeBytesPointSix == 0x8D483075){ - version = "1.06"; - } - else - { - return false; - } - break; - default: - return false; + igt += static_cast(frame_time); } - + ''' + */ - //timer mod - long igtFixEntryPoint = 0; - //cvttss2si rax, xmm0 <--- - //add [rcx+9Ch], eax ; timer_update - //mov rax, cs:qword_143B47CF0 - //cmp dword ptr [rax+9Ch], 0D693A018h - //jbe short loc_1407A8D41 - long igtFixCodeLoc = 0; //Start of TutorialMsgDialog constructor. This is dead code after applying the no-tut mod so the timer mod can be injected here - - // finding igtFixCodeLoc address - // TutorialMsgDialog should be located first. - // go to the address of TutorialMsgDialog - // right-click on the first call instruction after the TutorialMsgDialog address and select follow - // the instuction that you are taken to is the address you are looking for - - switch(version){ - case "1.02": - igtFixEntryPoint = 0x1407A8D19; - igtFixCodeLoc = 0x140DBE2D0; + private bool InitB3Mods() + { + string version; + + uint logoCodeBytesPointFive = 0; + uint logoCodeBytesPointSix = 0; + + + switch (_process?.MainModule?.ModuleMemorySize){ + case 67727360: + version = "1.02"; break; - case "1.03": - igtFixEntryPoint = 0x1407A8D99; - igtFixCodeLoc = 0x140DBEC00; + case 67731456: + version = "1.03"; break; - case "1.05": - igtFixEntryPoint = 0x1407B1C89; - igtFixCodeLoc = 0x140DE5B60; + case 70066176: + // if the first 4 bytes at found logo code matches 74 30 48 8D or 75 30 48 8D to account for changes already being applied + + logoCodeBytesPointFive = _process.ReadMemory(_process.MainModule.BaseAddress.ToInt64() + 0xE1B1AB).Unwrap(); + logoCodeBytesPointSix = _process.ReadMemory(_process.MainModule.BaseAddress.ToInt64() + 0xE1B51B).Unwrap(); + + if(logoCodeBytesPointFive == 0x8D483074 || logoCodeBytesPointFive == 0x8D483075){ + version = "1.05"; + } + else if(logoCodeBytesPointSix == 0x8D483074 || logoCodeBytesPointSix == 0x8D483075){ + version = "1.06"; + } + else + { + return false; + } break; - case "1.06": - igtFixEntryPoint = 0x1407B1C89; - igtFixCodeLoc = 0x140DE5ED0; - break; default: - throw new NotImplementedException(); - } + return false; + } + - - //fix detour - var igtFixDetourCode = new List(){0xE9}; - int detourTarget = (int) (igtFixCodeLoc-(igtFixEntryPoint+5)); - igtFixDetourCode.AddRange(BitConverter.GetBytes(detourTarget)); - - //fix body - var frac = _process.Allocate(sizeof(double)); - var igtFixCode = new List(){ - 0x53, //push rbx - 0x48, 0xBB //mov rbx, fracAddress - }; - igtFixCode.AddRange(BitConverter.GetBytes((long)frac)); - igtFixCode.AddRange(new byte[]{ - 0x44, 0x0F, 0x10, 0xF0, //movups xmm14, xmm0 - 0xF3, 0x45, 0x0F, 0x5A, 0xF6, //cvtss2sd xmm14, xmm14 - 0xF2, 0x49, 0x0F, 0x2C, 0xC6, //cvttsd2si rax, xmm14 - 0xF2, 0x4C, 0x0F, 0x2A, 0xF8, //cvtsi2sd xmm15, rax - 0xF2, 0x45, 0x0F, 0x5C, 0xF7, //subsd xmm14, xmm15 - 0x66, 0x44, 0x0F, 0x10, 0x3B, //movupd xmm15, [rbx] - 0xF2, 0x45, 0x0F, 0x58, 0xFE, //addsd xmm15, xmm14 - 0x66, 0x44, 0x0F, 0x11, 0x3B, //movupd [rbx], xmm15 - 0xF2, 0x49, 0x0F, 0x2C, 0xC7, //cvttsd2si rax, xmm15 - 0x48, 0x85, 0xC0, //test rax, rax - 0x74, 0x1D, //jz +1D - 0x90, 0x90, 0x90, 0x90, //nop - 0xF2, 0x4C, 0x0F, 0x2A, 0xF0, //cvtsi2sd xmm14, rax - 0xF2, 0x45, 0x0F, 0x5C, 0xFE, //subsd xmm15, xmm14 - 0x66, 0x44, 0x0F, 0x11, 0x3B, //movupd [rbx], xmm15 - 0xF2, 0x45, 0x0F, 0x5A, 0xF6, //cvtsd2ss xmm14, xmm14 - 0xF3, 0x41, 0x0F, 0x58, 0xC6, //addss xmm0, xmm14 - 0x45, 0x0F, 0x57, 0xF6, //xorps xmm14, xmm14 - 0x45, 0x0F, 0x57, 0xFF, //xorps xmm15, xmm15 - 0x5B, //pop rbx - 0xF3, 0x48, 0x0F, 0x2C, 0xC0, //cvttss2si rax,xmm0 - 0xE9 //jmp return igtFixEntryPoint +5 - }); - - int jmpTarget = (int)((igtFixEntryPoint+5)-(igtFixCodeLoc+103+5)); - igtFixCode.AddRange(BitConverter.GetBytes(jmpTarget)); - - - //Write fixes to game memory - _process.NtSuspendProcess(); - - var result = true; - //No broken timer - result &= _process.WriteProcessMemory(igtFixCodeLoc, igtFixCode.ToArray()); - result &= _process.WriteProcessMemory(igtFixEntryPoint, igtFixDetourCode.ToArray()); - - _process.NtResumeProcess(); - return result; + //timer mod + long igtFixEntryPoint = 0; + //cvttss2si rax, xmm0 <--- + //add [rcx+9Ch], eax ; timer_update + //mov rax, cs:qword_143B47CF0 + //cmp dword ptr [rax+9Ch], 0D693A018h + //jbe short loc_1407A8D41 + long igtFixCodeLoc = 0; //Start of TutorialMsgDialog constructor. This is dead code after applying the no-tut mod so the timer mod can be injected here + + // finding igtFixCodeLoc address + // TutorialMsgDialog should be located first. + // go to the address of TutorialMsgDialog + // right-click on the first call instruction after the TutorialMsgDialog address and select follow + // the instuction that you are taken to is the address you are looking for + + switch(version){ + case "1.02": + igtFixEntryPoint = 0x1407A8D19; + igtFixCodeLoc = 0x140DBE2D0; + break; + case "1.03": + igtFixEntryPoint = 0x1407A8D99; + igtFixCodeLoc = 0x140DBEC00; + break; + case "1.05": + igtFixEntryPoint = 0x1407B1C89; + igtFixCodeLoc = 0x140DE5B60; + break; + case "1.06": + igtFixEntryPoint = 0x1407B1C89; + igtFixCodeLoc = 0x140DE5ED0; + break; + default: + throw new NotImplementedException(); } - #endregion + + //fix detour + var igtFixDetourCode = new List(){0xE9}; + int detourTarget = (int) (igtFixCodeLoc-(igtFixEntryPoint+5)); + igtFixDetourCode.AddRange(BitConverter.GetBytes(detourTarget)); + + //fix body + var frac = _process.Allocate(sizeof(double)); + var igtFixCode = new List(){ + 0x53, //push rbx + 0x48, 0xBB //mov rbx, fracAddress + }; + igtFixCode.AddRange(BitConverter.GetBytes((long)frac)); + igtFixCode.AddRange(new byte[]{ + 0x44, 0x0F, 0x10, 0xF0, //movups xmm14, xmm0 + 0xF3, 0x45, 0x0F, 0x5A, 0xF6, //cvtss2sd xmm14, xmm14 + 0xF2, 0x49, 0x0F, 0x2C, 0xC6, //cvttsd2si rax, xmm14 + 0xF2, 0x4C, 0x0F, 0x2A, 0xF8, //cvtsi2sd xmm15, rax + 0xF2, 0x45, 0x0F, 0x5C, 0xF7, //subsd xmm14, xmm15 + 0x66, 0x44, 0x0F, 0x10, 0x3B, //movupd xmm15, [rbx] + 0xF2, 0x45, 0x0F, 0x58, 0xFE, //addsd xmm15, xmm14 + 0x66, 0x44, 0x0F, 0x11, 0x3B, //movupd [rbx], xmm15 + 0xF2, 0x49, 0x0F, 0x2C, 0xC7, //cvttsd2si rax, xmm15 + 0x48, 0x85, 0xC0, //test rax, rax + 0x74, 0x1D, //jz +1D + 0x90, 0x90, 0x90, 0x90, //nop + 0xF2, 0x4C, 0x0F, 0x2A, 0xF0, //cvtsi2sd xmm14, rax + 0xF2, 0x45, 0x0F, 0x5C, 0xFE, //subsd xmm15, xmm14 + 0x66, 0x44, 0x0F, 0x11, 0x3B, //movupd [rbx], xmm15 + 0xF2, 0x45, 0x0F, 0x5A, 0xF6, //cvtsd2ss xmm14, xmm14 + 0xF3, 0x41, 0x0F, 0x58, 0xC6, //addss xmm0, xmm14 + 0x45, 0x0F, 0x57, 0xF6, //xorps xmm14, xmm14 + 0x45, 0x0F, 0x57, 0xFF, //xorps xmm15, xmm15 + 0x5B, //pop rbx + 0xF3, 0x48, 0x0F, 0x2C, 0xC0, //cvttss2si rax,xmm0 + 0xE9 //jmp return igtFixEntryPoint +5 + }); + + int jmpTarget = (int)((igtFixEntryPoint+5)-(igtFixCodeLoc+103+5)); + igtFixCode.AddRange(BitConverter.GetBytes(jmpTarget)); + + + //Write fixes to game memory + _process.NtSuspendProcess(); + + var result = true; + //No broken timer + result &= _process.WriteProcessMemory(igtFixCodeLoc, igtFixCode.ToArray()); + result &= _process.WriteProcessMemory(igtFixEntryPoint, igtFixDetourCode.ToArray()); + + _process.NtResumeProcess(); + return result; } + + #endregion } diff --git a/src/SoulMemory/Vector3f.cs b/src/SoulMemory/Vector3f.cs index 974d9a1..c2d5311 100644 --- a/src/SoulMemory/Vector3f.cs +++ b/src/SoulMemory/Vector3f.cs @@ -16,33 +16,32 @@ using System.Xml.Serialization; -namespace SoulMemory +namespace SoulMemory; + +[XmlType(Namespace = "SoulMemory")] +public class Vector3f { - [XmlType(Namespace = "SoulMemory")] - public class Vector3f + public Vector3f(){ } + public Vector3f(float x, float y, float z) { - public Vector3f(){ } - public Vector3f(float x, float y, float z) - { - X = x; - Y = y; - Z = z; - } - - public float X { get; set; } - - public float Y { get; set; } - - public float Z { get; set; } + X = x; + Y = y; + Z = z; + } + + public float X { get; set; } + + public float Y { get; set; } + + public float Z { get; set; } - public Vector3f Clone() - { - return new Vector3f(X, Y, Z); - } + public Vector3f Clone() + { + return new Vector3f(X, Y, Z); + } - public override string ToString() - { - return $"{X:N2}, {Y:N2}, {Z:N2}"; - } + public override string ToString() + { + return $"{X:N2}, {Y:N2}, {Z:N2}"; } } diff --git a/src/SoulMemory/VersionAttribute.cs b/src/SoulMemory/VersionAttribute.cs index ce1c171..21e8ee8 100644 --- a/src/SoulMemory/VersionAttribute.cs +++ b/src/SoulMemory/VersionAttribute.cs @@ -16,16 +16,15 @@ using System; -namespace SoulMemory +namespace SoulMemory; + +public class VersionAttribute : Attribute { - public class VersionAttribute : Attribute + public VersionAttribute(string version) { - public VersionAttribute(string version) - { - Version = version; - } - - public string Version { get; } - public Version GetVersion() => new Version(Version); + Version = version; } + + public string Version { get; } + public Version GetVersion() => new Version(Version); } diff --git a/src/SoulMemory/soulmods/Soulmods.cs b/src/SoulMemory/soulmods/Soulmods.cs index 965995d..0b4ffc4 100644 --- a/src/SoulMemory/soulmods/Soulmods.cs +++ b/src/SoulMemory/soulmods/Soulmods.cs @@ -22,127 +22,126 @@ using System.Runtime.InteropServices; using SoulMemory.Native; -namespace SoulMemory.soulmods +namespace SoulMemory.soulmods; + +[StructLayout(LayoutKind.Sequential)] +public struct MorphemeMessage { - [StructLayout(LayoutKind.Sequential)] - public struct MorphemeMessage - { - public uint MessageId; - public uint EventActionCategory; - } + public uint MessageId; + public uint EventActionCategory; +} - [StructLayout(LayoutKind.Sequential)] - public struct MorphemeMessageBuffer - { - public uint Length; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 10)] - public MorphemeMessage[] Buffer; - } +[StructLayout(LayoutKind.Sequential)] +public struct MorphemeMessageBuffer +{ + public uint Length; + [MarshalAs(UnmanagedType.ByValArray, SizeConst = 10)] + public MorphemeMessage[] Buffer; +} - [AttributeUsage(AttributeTargets.Method, Inherited = false)] - public class RustCallAttribute : Attribute - { - public string MethodName { get; set; } = null!; - } +[AttributeUsage(AttributeTargets.Method, Inherited = false)] +public class RustCallAttribute : Attribute +{ + public string MethodName { get; set; } = null!; +} - public static class Soulmods +public static class Soulmods +{ + public static bool Inject(Process process) { - public static bool Inject(Process process) - { - var dir = Path.GetDirectoryName(typeof(Soulmods).Assembly.Location); - var x64path = Path.Combine(dir, @"soulmods_x64.dll"); - var x86path = Path.Combine(dir, @"soulmods_x86.dll"); + var dir = Path.GetDirectoryName(typeof(Soulmods).Assembly.Location); + var x64path = Path.Combine(dir, @"soulmods_x64.dll"); + var x86path = Path.Combine(dir, @"soulmods_x86.dll"); - if (process.Is64Bit().Unwrap()) - { - process.InjectDll(x64path); - } - else - { - process.InjectDll(x86path); - } + if (process.Is64Bit().Unwrap()) + { + process.InjectDll(x64path); + } + else + { + process.InjectDll(x86path); + } - foreach (ProcessModule processModule in process.Modules) + foreach (ProcessModule processModule in process.Modules) + { + if (processModule.ModuleName == "soulmods_x64.dll" || processModule.ModuleName == "soulmods_x86.dll") { - if (processModule.ModuleName == "soulmods_x64.dll" || processModule.ModuleName == "soulmods_x86.dll") - { - return true; - } + return true; } - return false; } + return false; + } - public static MorphemeMessageBuffer GetMorphemeMessages2(Process process) => process.RustCall("GetQueuedDarkSouls2MorphemeMessages2"); - + public static MorphemeMessageBuffer GetMorphemeMessages2(Process process) => process.RustCall("GetQueuedDarkSouls2MorphemeMessages2"); + - private static List<(string name, long address)> _soulmodsMethods = null!; - public static TSized RustCall(this Process process, string function, TSized? parameter = null) where TSized : struct + private static List<(string name, long address)> _soulmodsMethods = null!; + public static TSized RustCall(this Process process, string function, TSized? parameter = null) where TSized : struct + { + if (_soulmodsMethods == null) { - if (_soulmodsMethods == null) - { - _soulmodsMethods = process.GetModuleExportedFunctions("soulmods.dll"); - } - var functionPtr = _soulmodsMethods.First(i => i.name == function).address; + _soulmodsMethods = process.GetModuleExportedFunctions("soulmods.dll"); + } + var functionPtr = _soulmodsMethods.First(i => i.name == function).address; - var buffer = process.Allocate(Marshal.SizeOf()); - if (parameter.HasValue) - { - process.WriteMemory(buffer.ToInt64(), parameter.Value); - } - process.Execute((IntPtr)functionPtr, buffer); - var result = process.ReadMemory(buffer.ToInt64()).Unwrap(); - process.Free(buffer); - return result; + var buffer = process.Allocate(Marshal.SizeOf()); + if (parameter.HasValue) + { + process.WriteMemory(buffer.ToInt64(), parameter.Value); } + process.Execute((IntPtr)functionPtr, buffer); + var result = process.ReadMemory(buffer.ToInt64()).Unwrap(); + process.Free(buffer); + return result; + } - public static void GetMorphemeMessages(Process process) + public static void GetMorphemeMessages(Process process) + { + //Get function address + var soulmods = process.GetModuleExportedFunctions("soulmods.dll"); + var func = soulmods.First(i => i.name == "GetQueuedDarkSouls2MorphemeMessages").address; + + //Get buffer size + var buffer = process.Allocate(4); + process.Execute((IntPtr)func, buffer); + var requestedSize = process.ReadMemory(buffer.ToInt64()).Unwrap(); + process.Free(buffer); + + //Get data of requestedSize + if (requestedSize > 0) { - //Get function address - var soulmods = process.GetModuleExportedFunctions("soulmods.dll"); - var func = soulmods.First(i => i.name == "GetQueuedDarkSouls2MorphemeMessages").address; - - //Get buffer size - var buffer = process.Allocate(4); + var totalSize = (int)(4 + (requestedSize * Marshal.SizeOf())); + buffer = process.Allocate(totalSize); + process.WriteProcessMemory(buffer.ToInt64(), BitConverter.GetBytes(requestedSize)); process.Execute((IntPtr)func, buffer); - var requestedSize = process.ReadMemory(buffer.ToInt64()).Unwrap(); - process.Free(buffer); - - //Get data of requestedSize - if (requestedSize > 0) - { - var totalSize = (int)(4 + (requestedSize * Marshal.SizeOf())); - buffer = process.Allocate(totalSize); - process.WriteProcessMemory(buffer.ToInt64(), BitConverter.GetBytes(requestedSize)); - process.Execute((IntPtr)func, buffer); - var data = process.ReadProcessMemory(buffer.ToInt64(), totalSize).Unwrap(); - process.Free(buffer); - } + var data = process.ReadProcessMemory(buffer.ToInt64(), totalSize).Unwrap(); + process.Free(buffer); } + } - private static void OverwriteFile(string manifestResourceName, string path) + private static void OverwriteFile(string manifestResourceName, string path) + { + byte[] buffer; + using (var stream = typeof(Soulmods).Assembly.GetManifestResourceStream(manifestResourceName)) { - byte[] buffer; - using (var stream = typeof(Soulmods).Assembly.GetManifestResourceStream(manifestResourceName)) - { - buffer = new byte[stream.Length]; - stream.Read(buffer, 0, buffer.Length); - } - Directory.CreateDirectory(Path.GetDirectoryName(path)); - - try - { - File.WriteAllBytes(path, buffer); + buffer = new byte[stream.Length]; + stream.Read(buffer, 0, buffer.Length); + } + Directory.CreateDirectory(Path.GetDirectoryName(path)); - } - catch (IOException) - { - // ignore exception when overwriting existing file, may be in use by game process - } + try + { + File.WriteAllBytes(path, buffer); - } + catch (IOException) + { + // ignore exception when overwriting existing file, may be in use by game process + } + + } } diff --git a/src/SoulSplitter/Extensions.cs b/src/SoulSplitter/Extensions.cs index 0c22891..a87133f 100644 --- a/src/SoulSplitter/Extensions.cs +++ b/src/SoulSplitter/Extensions.cs @@ -21,57 +21,56 @@ using System.Xml.Serialization; using SoulSplitter.UI.Generic; -namespace SoulSplitter +namespace SoulSplitter; + +internal static class Extensions { - internal static class Extensions + public static T DeserializeXml(this string xml) where T : class { - public static T DeserializeXml(this string xml) where T : class + if (string.IsNullOrWhiteSpace(xml)) { - if (string.IsNullOrWhiteSpace(xml)) - { - return default(T)!; - } + return default(T)!; + } - var serializer = new XmlSerializer(typeof(T)); - using (var reader = new StringReader(xml)) - { - return (T)serializer.Deserialize(reader); - } + var serializer = new XmlSerializer(typeof(T)); + using (var reader = new StringReader(xml)) + { + return (T)serializer.Deserialize(reader); } - + } + - public static string SerializeXml(this object obj) + public static string SerializeXml(this object obj) + { + if (obj == null) { - if (obj == null) - { - return string.Empty; - } + return string.Empty; + } - var settings = new XmlWriterSettings() - { - OmitXmlDeclaration = true, - Indent = true, - }; + var settings = new XmlWriterSettings() + { + OmitXmlDeclaration = true, + Indent = true, + }; - using (var stream = new StringWriter()) - using (var writer = XmlWriter.Create(stream, settings)) - { - var serializer = new XmlSerializer(obj.GetType()); - serializer.Serialize(writer, obj); - return stream.ToString(); - } + using (var stream = new StringWriter()) + using (var writer = XmlWriter.Create(stream, settings)) + { + var serializer = new XmlSerializer(obj.GetType()); + serializer.Serialize(writer, obj); + return stream.ToString(); } + } - public static bool SetField(this ICustomNotifyPropertyChanged viewModel, ref TField field, TField value, [CallerMemberName] string? propertyName = null) + public static bool SetField(this ICustomNotifyPropertyChanged viewModel, ref TField field, TField value, [CallerMemberName] string? propertyName = null) + { + if (EqualityComparer.Default.Equals(field, value)) { - if (EqualityComparer.Default.Equals(field, value)) - { - return false; - } - - field = value; - viewModel.InvokePropertyChanged(propertyName!); - return true; + return false; } + + field = value; + viewModel.InvokePropertyChanged(propertyName!); + return true; } } diff --git a/src/SoulSplitter/Hotkeys/GlobalHotKey.cs b/src/SoulSplitter/Hotkeys/GlobalHotKey.cs index 37b58a5..0f927b9 100644 --- a/src/SoulSplitter/Hotkeys/GlobalHotKey.cs +++ b/src/SoulSplitter/Hotkeys/GlobalHotKey.cs @@ -22,100 +22,99 @@ using System.Windows.Input; using SoulSplitter.Native; -namespace SoulSplitter.Hotkeys +namespace SoulSplitter.Hotkeys; + +public static class GlobalHotKey { - public static class GlobalHotKey - { - private static readonly List<(int id, ModifierKeys modifier, Key key, Action action)> Hotkeys = new List<(int, ModifierKeys, Key, Action)>(); - private static readonly ManualResetEvent WindowReadyEvent = new ManualResetEvent(false); - public static volatile HotkeyForm? HotkeyForm; - public static volatile IntPtr Handle; - private static int _currentId; + private static readonly List<(int id, ModifierKeys modifier, Key key, Action action)> Hotkeys = new List<(int, ModifierKeys, Key, Action)>(); + private static readonly ManualResetEvent WindowReadyEvent = new ManualResetEvent(false); + public static volatile HotkeyForm? HotkeyForm; + public static volatile IntPtr Handle; + private static int _currentId; - static GlobalHotKey() + static GlobalHotKey() + { + var messageLoopThread = new Thread(delegate () { - var messageLoopThread = new Thread(delegate () - { - Application.Run(new HotkeyForm(WindowReadyEvent)); - }); - messageLoopThread.Name = "MessageLoopThread"; - messageLoopThread.IsBackground = true; - messageLoopThread.Start(); - } + Application.Run(new HotkeyForm(WindowReadyEvent)); + }); + messageLoopThread.Name = "MessageLoopThread"; + messageLoopThread.IsBackground = true; + messageLoopThread.Start(); + } - public static void OnHotkeyPressed(ModifierKeys modifier, Key key) + public static void OnHotkeyPressed(ModifierKeys modifier, Key key) + { + Hotkeys.ForEach(x => { - Hotkeys.ForEach(x => + if (modifier == x.modifier && key == x.key) { - if (modifier == x.modifier && key == x.key) - { - x.action(); - } - }); - } - - public static int RegisterHotKey(ModifierKeys modifier, Key key, Action action) - { - WindowReadyEvent.WaitOne(); //wait for hotkey window to have initialized + x.action(); + } + }); + } - var virtualKeyCode = (Keys)KeyInterop.VirtualKeyFromKey(key); - int id = Interlocked.Increment(ref _currentId); + public static int RegisterHotKey(ModifierKeys modifier, Key key, Action action) + { + WindowReadyEvent.WaitOne(); //wait for hotkey window to have initialized - Delegate register = (Action)(() => - { - User32.RegisterHotkey( - Handle, - id, - (uint)modifier | 0x4000, //no repeat - (uint)virtualKeyCode); - }); - - HotkeyForm?.Invoke(register); - Hotkeys.Add((id, modifier, key, action)); - return id; - } + var virtualKeyCode = (Keys)KeyInterop.VirtualKeyFromKey(key); + int id = Interlocked.Increment(ref _currentId); - public static void UnregisterHotKey(int id) + Delegate register = (Action)(() => { - if (Hotkeys.All(i => i.id != id)) - { - return; - } + User32.RegisterHotkey( + Handle, + id, + (uint)modifier | 0x4000, //no repeat + (uint)virtualKeyCode); + }); - Delegate unregister = (Action)(() => - { - User32.UnregisterHotkey(Handle, id); - }); - - HotkeyForm?.Invoke(unregister); - Hotkeys.Remove(Hotkeys.Find(i => i.id == id)); - } + HotkeyForm?.Invoke(register); + Hotkeys.Add((id, modifier, key, action)); + return id; } - public class HotkeyForm : Form + public static void UnregisterHotKey(int id) { - public HotkeyForm(ManualResetEvent windowReadyEvent) + if (Hotkeys.All(i => i.id != id)) { - GlobalHotKey.Handle = Handle; - GlobalHotKey.HotkeyForm = this; - windowReadyEvent.Set(); + return; } - protected override void WndProc(ref Message windowMessage) + Delegate unregister = (Action)(() => { - base.WndProc(ref windowMessage); + User32.UnregisterHotkey(Handle, id); + }); - if (windowMessage.Msg == 0x0312) //0x0312 is the hotkey message - { - var key = KeyInterop.KeyFromVirtualKey((int)windowMessage.LParam >> 16 & 0xFFFF); - var modifier = (ModifierKeys)((int)windowMessage.LParam & 0xFFFF); - GlobalHotKey.OnHotkeyPressed(modifier, key); - } - } + HotkeyForm?.Invoke(unregister); + Hotkeys.Remove(Hotkeys.Find(i => i.id == id)); + } +} - protected override void SetVisibleCore(bool value) +public class HotkeyForm : Form +{ + public HotkeyForm(ManualResetEvent windowReadyEvent) + { + GlobalHotKey.Handle = Handle; + GlobalHotKey.HotkeyForm = this; + windowReadyEvent.Set(); + } + + protected override void WndProc(ref Message windowMessage) + { + base.WndProc(ref windowMessage); + + if (windowMessage.Msg == 0x0312) //0x0312 is the hotkey message { - base.SetVisibleCore(false); + var key = KeyInterop.KeyFromVirtualKey((int)windowMessage.LParam >> 16 & 0xFFFF); + var modifier = (ModifierKeys)((int)windowMessage.LParam & 0xFFFF); + GlobalHotKey.OnHotkeyPressed(modifier, key); } } + + protected override void SetVisibleCore(bool value) + { + base.SetVisibleCore(false); + } } diff --git a/src/SoulSplitter/Logger.cs b/src/SoulSplitter/Logger.cs index 34ce4d5..22ad6d6 100644 --- a/src/SoulSplitter/Logger.cs +++ b/src/SoulSplitter/Logger.cs @@ -18,63 +18,62 @@ using System.IO; using System.Linq; -namespace SoulSplitter +namespace SoulSplitter; + +internal static class Logger { - internal static class Logger + private static bool LoggingEnabled = true; + private static object _logLock = new object(); + + public static void SetLoggingEnabled(bool enable) { - private static bool LoggingEnabled = true; - private static object _logLock = new object(); + LoggingEnabled = enable; + } - public static void SetLoggingEnabled(bool enable) + public static void Log(string message) + { + if(!LoggingEnabled) { - LoggingEnabled = enable; + return; } - public static void Log(string message) + lock (_logLock) { - if(!LoggingEnabled) + try { - return; - } + var filePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), @"soulsplitter\soulsplitter.log"); + var info = new FileInfo(filePath); - lock (_logLock) - { - try + //Create the file if it does not exist + if (!info.Exists) { - var filePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), @"soulsplitter\soulsplitter.log"); - var info = new FileInfo(filePath); - - //Create the file if it does not exist - if (!info.Exists) - { - Directory.CreateDirectory(Path.GetDirectoryName(filePath)); - File.Create(filePath).Close(); - info = new FileInfo(filePath); - } - - //If the logfile is bigger than 10 megabytes then delete the first half - if (info.Length > 10_485_760) - { - var lines = File.ReadAllLines(filePath); - File.Delete(filePath); - File.WriteAllLines(filePath, lines.Skip(lines.Count() / 2)); - } + Directory.CreateDirectory(Path.GetDirectoryName(filePath)); + File.Create(filePath).Close(); + info = new FileInfo(filePath); + } - //Log the message - using (var writer = File.AppendText(filePath)) - { - writer.WriteLine($"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff")}: {message}"); - writer.Flush(); - } + //If the logfile is bigger than 10 megabytes then delete the first half + if (info.Length > 10_485_760) + { + var lines = File.ReadAllLines(filePath); + File.Delete(filePath); + File.WriteAllLines(filePath, lines.Skip(lines.Count() / 2)); } - catch + + //Log the message + using (var writer = File.AppendText(filePath)) { - //ignored + writer.WriteLine($"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff")}: {message}"); + writer.Flush(); } } + catch + { + //ignored + } } - - public static void Log(string message, Exception e) => Log(message + " " + e.ToString()); - public static void Log(Exception e) => Log(e.ToString()); } + + public static void Log(string message, Exception e) => Log(message + " " + e.ToString()); + public static void Log(Exception e) => Log(e.ToString()); } diff --git a/src/SoulSplitter/Migrations/Migrator.cs b/src/SoulSplitter/Migrations/Migrator.cs index 78612ca..948fa47 100644 --- a/src/SoulSplitter/Migrations/Migrator.cs +++ b/src/SoulSplitter/Migrations/Migrator.cs @@ -22,247 +22,246 @@ using SoulSplitter.UI.Generic; using SoulSplitter.UI.Sekiro; -namespace SoulSplitter.Migrations +namespace SoulSplitter.Migrations; + +internal static class Migrator { - internal static class Migrator + public static void Migrate(XmlNode settings) { - public static void Migrate(XmlNode settings) - { - var version = new Version(settings.GetChildNodeByName("MainViewModel").GetChildNodeByName("Version").InnerText); + var version = new Version(settings.GetChildNodeByName("MainViewModel").GetChildNodeByName("Version").InnerText); - if (version <= Version.Parse("1.1.0")) - { - MigrateSekiro_1_1_0(settings); - } + if (version <= Version.Parse("1.1.0")) + { + MigrateSekiro_1_1_0(settings); + } - if(version <= Version.Parse("1.1.9")) - { - MigrateDs3_1_1_9(settings); - } + if(version <= Version.Parse("1.1.9")) + { + MigrateDs3_1_1_9(settings); } + } - #region MigrateDs3_1_1_9 ============================================================================================================================================================ - private static void MigrateDs3_1_1_9(XmlNode settings) + #region MigrateDs3_1_1_9 ============================================================================================================================================================ + private static void MigrateDs3_1_1_9(XmlNode settings) + { + var mainViewModel = settings.GetChildNodeByName("MainViewModel"); + var darkSouls3ViewModel = mainViewModel.GetChildNodeByName("DarkSouls3ViewModel"); + var newDarkSouls3ViewModel = new DarkSouls3ViewModel(); + + if (bool.TryParse(darkSouls3ViewModel.GetChildNodeByName("StartAutomatically").InnerText, out bool startAutomatically)) { - var mainViewModel = settings.GetChildNodeByName("MainViewModel"); - var darkSouls3ViewModel = mainViewModel.GetChildNodeByName("DarkSouls3ViewModel"); - var newDarkSouls3ViewModel = new DarkSouls3ViewModel(); + newDarkSouls3ViewModel.StartAutomatically = startAutomatically; + } - if (bool.TryParse(darkSouls3ViewModel.GetChildNodeByName("StartAutomatically").InnerText, out bool startAutomatically)) + var splits = darkSouls3ViewModel.GetChildNodeByName("Splits"); + foreach (XmlNode timingNode in splits.ChildNodes) + { + foreach (XmlNode typeNode in timingNode.GetChildNodeByName("Children")) { - newDarkSouls3ViewModel.StartAutomatically = startAutomatically; - } + //Get original timing type + var timingType = UI.Generic.TimingType.Immediate; + var timingTypeText = timingNode.GetChildNodeByName("TimingType").InnerText; + if (timingTypeText != "Immediate") + { + timingType = TimingType.OnLoading; + } - var splits = darkSouls3ViewModel.GetChildNodeByName("Splits"); - foreach (XmlNode timingNode in splits.ChildNodes) - { - foreach (XmlNode typeNode in timingNode.GetChildNodeByName("Children")) + var type = typeNode.GetChildNodeByName("SplitType"); + + switch (type.InnerText) { - //Get original timing type - var timingType = UI.Generic.TimingType.Immediate; - var timingTypeText = timingNode.GetChildNodeByName("TimingType").InnerText; - if (timingTypeText != "Immediate") - { - timingType = TimingType.OnLoading; - } - - var type = typeNode.GetChildNodeByName("SplitType"); - - switch (type.InnerText) - { - case "Boss": - foreach (XmlNode boss in typeNode.GetChildNodeByName("Children")) + case "Boss": + foreach (XmlNode boss in typeNode.GetChildNodeByName("Children")) + { + var split = boss.GetChildNodeByName("Split"); + if (SoulMemory.DarkSouls3.Boss.TryParse(split.InnerText, out SoulMemory.DarkSouls3.Boss b)) { - var split = boss.GetChildNodeByName("Split"); - if (SoulMemory.DarkSouls3.Boss.TryParse(split.InnerText, out SoulMemory.DarkSouls3.Boss b)) - { - newDarkSouls3ViewModel.NewSplitTimingType = timingType; - newDarkSouls3ViewModel.NewSplitType = SplitType.Boss; - newDarkSouls3ViewModel.NewSplitValue = b; - newDarkSouls3ViewModel.AddSplitCommand.Execute(null); - } + newDarkSouls3ViewModel.NewSplitTimingType = timingType; + newDarkSouls3ViewModel.NewSplitType = SplitType.Boss; + newDarkSouls3ViewModel.NewSplitValue = b; + newDarkSouls3ViewModel.AddSplitCommand.Execute(null); } - break; + } + break; - case "Bonfire": - foreach (XmlNode bonfire in typeNode.GetChildNodeByName("Children")) + case "Bonfire": + foreach (XmlNode bonfire in typeNode.GetChildNodeByName("Children")) + { + var split = bonfire.GetChildNodeByName("Split"); + if (SoulMemory.DarkSouls3.Bonfire.TryParse(split.InnerText, out SoulMemory.DarkSouls3.Bonfire b)) { - var split = bonfire.GetChildNodeByName("Split"); - if (SoulMemory.DarkSouls3.Bonfire.TryParse(split.InnerText, out SoulMemory.DarkSouls3.Bonfire b)) - { - newDarkSouls3ViewModel.NewSplitTimingType = timingType; - newDarkSouls3ViewModel.NewSplitType = SplitType.Bonfire; - newDarkSouls3ViewModel.NewSplitValue = b; - newDarkSouls3ViewModel.AddSplitCommand.Execute(null); - } + newDarkSouls3ViewModel.NewSplitTimingType = timingType; + newDarkSouls3ViewModel.NewSplitType = SplitType.Bonfire; + newDarkSouls3ViewModel.NewSplitValue = b; + newDarkSouls3ViewModel.AddSplitCommand.Execute(null); } - break; + } + break; - case "ItemPickup": - foreach (XmlNode itemPickup in typeNode.GetChildNodeByName("Children")) + case "ItemPickup": + foreach (XmlNode itemPickup in typeNode.GetChildNodeByName("Children")) + { + var split = itemPickup.GetChildNodeByName("Split"); + if (SoulMemory.DarkSouls3.ItemPickup.TryParse(split.InnerText, out SoulMemory.DarkSouls3.ItemPickup i)) { - var split = itemPickup.GetChildNodeByName("Split"); - if (SoulMemory.DarkSouls3.ItemPickup.TryParse(split.InnerText, out SoulMemory.DarkSouls3.ItemPickup i)) - { - newDarkSouls3ViewModel.NewSplitTimingType = timingType; - newDarkSouls3ViewModel.NewSplitType = SplitType.ItemPickup; - newDarkSouls3ViewModel.NewSplitValue = i; - newDarkSouls3ViewModel.AddSplitCommand.Execute(null); - } + newDarkSouls3ViewModel.NewSplitTimingType = timingType; + newDarkSouls3ViewModel.NewSplitType = SplitType.ItemPickup; + newDarkSouls3ViewModel.NewSplitValue = i; + newDarkSouls3ViewModel.AddSplitCommand.Execute(null); } - break; + } + break; - case "Attribute": - foreach (XmlNode attribute in typeNode.GetChildNodeByName("Children")) + case "Attribute": + foreach (XmlNode attribute in typeNode.GetChildNodeByName("Children")) + { + var split = attribute.GetChildNodeByName("Split"); + var attributeType = split.GetChildNodeByName("AttributeType"); + var attributeLevel = split.GetChildNodeByName("Level"); + + if ( + SoulMemory.DarkSouls3.Attribute.TryParse(attributeType.InnerText, out SoulMemory.DarkSouls3.Attribute attributeTypeParsed) && + int.TryParse(attributeLevel.InnerText, out int attributeLevelParsed) + ) { - var split = attribute.GetChildNodeByName("Split"); - var attributeType = split.GetChildNodeByName("AttributeType"); - var attributeLevel = split.GetChildNodeByName("Level"); - - if ( - SoulMemory.DarkSouls3.Attribute.TryParse(attributeType.InnerText, out SoulMemory.DarkSouls3.Attribute attributeTypeParsed) && - int.TryParse(attributeLevel.InnerText, out int attributeLevelParsed) - ) - { - newDarkSouls3ViewModel.NewSplitTimingType = timingType; - newDarkSouls3ViewModel.NewSplitType = SplitType.Attribute; - newDarkSouls3ViewModel.NewSplitValue = new Splits.DarkSouls3.Attribute { AttributeType = attributeTypeParsed, Level = attributeLevelParsed }; - newDarkSouls3ViewModel.AddSplitCommand.Execute(null); - } + newDarkSouls3ViewModel.NewSplitTimingType = timingType; + newDarkSouls3ViewModel.NewSplitType = SplitType.Attribute; + newDarkSouls3ViewModel.NewSplitValue = new Splits.DarkSouls3.Attribute { AttributeType = attributeTypeParsed, Level = attributeLevelParsed }; + newDarkSouls3ViewModel.AddSplitCommand.Execute(null); } - break; + } + break; - case "Flag": - foreach (XmlNode flag in typeNode.GetChildNodeByName("Children")) + case "Flag": + foreach (XmlNode flag in typeNode.GetChildNodeByName("Children")) + { + var split = flag.GetChildNodeByName("Split"); + if (uint.TryParse(split.InnerText, out uint u)) { - var split = flag.GetChildNodeByName("Split"); - if (uint.TryParse(split.InnerText, out uint u)) - { - newDarkSouls3ViewModel.NewSplitTimingType = timingType; - newDarkSouls3ViewModel.NewSplitType = SplitType.Flag; - newDarkSouls3ViewModel.FlagDescription = new FlagDescription() { Description = "", Flag = u }; - newDarkSouls3ViewModel.AddSplitCommand.Execute(null); - } + newDarkSouls3ViewModel.NewSplitTimingType = timingType; + newDarkSouls3ViewModel.NewSplitType = SplitType.Flag; + newDarkSouls3ViewModel.FlagDescription = new FlagDescription() { Description = "", Flag = u }; + newDarkSouls3ViewModel.AddSplitCommand.Execute(null); } - break; - } + } + break; } } + } + + var xml = newDarkSouls3ViewModel.SerializeXml(); + var doc = new XmlDocument(); + doc.LoadXml(xml); + var newText = doc.GetChildNodeByName("DarkSouls3ViewModel").InnerXml; + darkSouls3ViewModel.InnerXml = newText; + } + #endregion + + #region MigrateSekiro_1_1_0 ============================================================================================================================================================ + private static void MigrateSekiro_1_1_0(XmlNode settings) + { + var mainViewModel = settings.GetChildNodeByName("MainViewModel"); + var sekiroViewModel = mainViewModel.GetChildNodeByName("SekiroViewModel"); + var newSekiroViewModel = new SekiroViewModel(); - var xml = newDarkSouls3ViewModel.SerializeXml(); - var doc = new XmlDocument(); - doc.LoadXml(xml); - var newText = doc.GetChildNodeByName("DarkSouls3ViewModel").InnerXml; - darkSouls3ViewModel.InnerXml = newText; + if (bool.TryParse(sekiroViewModel.GetChildNodeByName("StartAutomatically").InnerText, out bool startAutomatically)) + { + newSekiroViewModel.StartAutomatically = startAutomatically; } - #endregion - #region MigrateSekiro_1_1_0 ============================================================================================================================================================ - private static void MigrateSekiro_1_1_0(XmlNode settings) + if (bool.TryParse(sekiroViewModel.GetChildNodeByName("OverwriteIgtOnStart").InnerText, out bool overwriteIgtOnStart)) { - var mainViewModel = settings.GetChildNodeByName("MainViewModel"); - var sekiroViewModel = mainViewModel.GetChildNodeByName("SekiroViewModel"); - var newSekiroViewModel = new SekiroViewModel(); + newSekiroViewModel.OverwriteIgtOnStart = overwriteIgtOnStart; + } - if (bool.TryParse(sekiroViewModel.GetChildNodeByName("StartAutomatically").InnerText, out bool startAutomatically)) + var sekiroSplits = sekiroViewModel.GetChildNodeByName("Splits"); + foreach (XmlNode timingNode in sekiroSplits.ChildNodes) + { + foreach (XmlNode typeNode in timingNode.GetChildNodeByName("Children")) { - newSekiroViewModel.StartAutomatically = startAutomatically; - } + //Get original timing type + var timingType = UI.Generic.TimingType.Immediate; + var timingTypeText = timingNode.GetChildNodeByName("TimingType").InnerText; + if (timingTypeText != "Immediate") + { + timingType = TimingType.OnLoading; + } - if (bool.TryParse(sekiroViewModel.GetChildNodeByName("OverwriteIgtOnStart").InnerText, out bool overwriteIgtOnStart)) - { - newSekiroViewModel.OverwriteIgtOnStart = overwriteIgtOnStart; - } + //Get original type + var type = typeNode.GetChildNodeByName("SplitType"); - var sekiroSplits = sekiroViewModel.GetChildNodeByName("Splits"); - foreach (XmlNode timingNode in sekiroSplits.ChildNodes) - { - foreach (XmlNode typeNode in timingNode.GetChildNodeByName("Children")) + switch (type.InnerText) { - //Get original timing type - var timingType = UI.Generic.TimingType.Immediate; - var timingTypeText = timingNode.GetChildNodeByName("TimingType").InnerText; - if (timingTypeText != "Immediate") - { - timingType = TimingType.OnLoading; - } - - //Get original type - var type = typeNode.GetChildNodeByName("SplitType"); - - switch (type.InnerText) - { - case "Position": - - foreach (XmlNode position in typeNode.GetChildNodeByName("Children")) - { - var split = position.GetChildNodeByName("Split"); + case "Position": - var x = float.Parse(split.GetChildNodeByName("X").InnerText, CultureInfo.CurrentCulture); - var y = float.Parse(split.GetChildNodeByName("Y").InnerText, CultureInfo.CurrentCulture); - var z = float.Parse(split.GetChildNodeByName("Z").InnerText, CultureInfo.CurrentCulture); + foreach (XmlNode position in typeNode.GetChildNodeByName("Children")) + { + var split = position.GetChildNodeByName("Split"); - newSekiroViewModel.NewSplitTimingType = timingType; - newSekiroViewModel.NewSplitType = SplitType.Position; - newSekiroViewModel.Position = new VectorSize() { Position = new Vector3f(x, y, z), Size = 5 }; - newSekiroViewModel.AddSplitCommand.Execute(null); - } + var x = float.Parse(split.GetChildNodeByName("X").InnerText, CultureInfo.CurrentCulture); + var y = float.Parse(split.GetChildNodeByName("Y").InnerText, CultureInfo.CurrentCulture); + var z = float.Parse(split.GetChildNodeByName("Z").InnerText, CultureInfo.CurrentCulture); + + newSekiroViewModel.NewSplitTimingType = timingType; + newSekiroViewModel.NewSplitType = SplitType.Position; + newSekiroViewModel.Position = new VectorSize() { Position = new Vector3f(x, y, z), Size = 5 }; + newSekiroViewModel.AddSplitCommand.Execute(null); + } - break; + break; - case "Boss": - foreach (XmlNode boss in typeNode.GetChildNodeByName("Children")) + case "Boss": + foreach (XmlNode boss in typeNode.GetChildNodeByName("Children")) + { + var split = boss.GetChildNodeByName("Split"); + if (SoulMemory.Sekiro.Boss.TryParse(split.InnerText, out SoulMemory.Sekiro.Boss b)) { - var split = boss.GetChildNodeByName("Split"); - if (SoulMemory.Sekiro.Boss.TryParse(split.InnerText, out SoulMemory.Sekiro.Boss b)) - { - newSekiroViewModel.NewSplitTimingType = timingType; - newSekiroViewModel.NewSplitType = SplitType.Boss; - newSekiroViewModel.NewSplitValue = b; - newSekiroViewModel.AddSplitCommand.Execute(null); - } + newSekiroViewModel.NewSplitTimingType = timingType; + newSekiroViewModel.NewSplitType = SplitType.Boss; + newSekiroViewModel.NewSplitValue = b; + newSekiroViewModel.AddSplitCommand.Execute(null); } - break; + } + break; - case "Idol": - foreach (XmlNode idol in typeNode.GetChildNodeByName("Children")) + case "Idol": + foreach (XmlNode idol in typeNode.GetChildNodeByName("Children")) + { + var split = idol.GetChildNodeByName("Split"); + if (SoulMemory.Sekiro.Idol.TryParse(split.InnerText, out SoulMemory.Sekiro.Idol i)) { - var split = idol.GetChildNodeByName("Split"); - if (SoulMemory.Sekiro.Idol.TryParse(split.InnerText, out SoulMemory.Sekiro.Idol i)) - { - newSekiroViewModel.NewSplitTimingType = timingType; - newSekiroViewModel.NewSplitType = SplitType.Bonfire; - newSekiroViewModel.NewSplitValue = i; - newSekiroViewModel.AddSplitCommand.Execute(null); - } + newSekiroViewModel.NewSplitTimingType = timingType; + newSekiroViewModel.NewSplitType = SplitType.Bonfire; + newSekiroViewModel.NewSplitValue = i; + newSekiroViewModel.AddSplitCommand.Execute(null); } - break; + } + break; - case "Flag": - foreach (XmlNode flag in typeNode.GetChildNodeByName("Children")) + case "Flag": + foreach (XmlNode flag in typeNode.GetChildNodeByName("Children")) + { + var split = flag.GetChildNodeByName("Split"); + if (uint.TryParse(split.InnerText, out uint u)) { - var split = flag.GetChildNodeByName("Split"); - if (uint.TryParse(split.InnerText, out uint u)) - { - newSekiroViewModel.NewSplitTimingType = timingType; - newSekiroViewModel.NewSplitType = SplitType.Flag; - newSekiroViewModel.FlagDescription = new FlagDescription() { Description = "", Flag = u }; - newSekiroViewModel.AddSplitCommand.Execute(null); - } - + newSekiroViewModel.NewSplitTimingType = timingType; + newSekiroViewModel.NewSplitType = SplitType.Flag; + newSekiroViewModel.FlagDescription = new FlagDescription() { Description = "", Flag = u }; + newSekiroViewModel.AddSplitCommand.Execute(null); } - break; - } + + } + break; } } - - var xml = newSekiroViewModel.SerializeXml(); - var doc = new XmlDocument(); - doc.LoadXml(xml); - var newText = doc.GetChildNodeByName("SekiroViewModel").InnerXml; - sekiroViewModel.InnerXml = newText; } - #endregion + var xml = newSekiroViewModel.SerializeXml(); + var doc = new XmlDocument(); + doc.LoadXml(xml); + var newText = doc.GetChildNodeByName("SekiroViewModel").InnerXml; + sekiroViewModel.InnerXml = newText; } + + #endregion } diff --git a/src/SoulSplitter/Migrations/XmlExtensions.cs b/src/SoulSplitter/Migrations/XmlExtensions.cs index 356975d..f095686 100644 --- a/src/SoulSplitter/Migrations/XmlExtensions.cs +++ b/src/SoulSplitter/Migrations/XmlExtensions.cs @@ -17,21 +17,20 @@ using System; using System.Xml; -namespace SoulSplitter.Migrations +namespace SoulSplitter.Migrations; + +internal static class XmlExtensions { - internal static class XmlExtensions + public static XmlNode GetChildNodeByName(this XmlNode node, string childName) { - public static XmlNode GetChildNodeByName(this XmlNode node, string childName) + var lower = childName.ToLower(); + foreach (XmlNode child in node.ChildNodes) { - var lower = childName.ToLower(); - foreach (XmlNode child in node.ChildNodes) + if (child.LocalName.ToLower() == lower) { - if (child.LocalName.ToLower() == lower) - { - return child; - } + return child; } - throw new ArgumentException($"{childName} not found"); } + throw new ArgumentException($"{childName} not found"); } } diff --git a/src/SoulSplitter/Native/Gdi32.cs b/src/SoulSplitter/Native/Gdi32.cs index 2001c8f..1c0dc55 100644 --- a/src/SoulSplitter/Native/Gdi32.cs +++ b/src/SoulSplitter/Native/Gdi32.cs @@ -19,24 +19,23 @@ using System; using System.Runtime.InteropServices; -namespace SoulSplitter.Native +namespace SoulSplitter.Native; + +public static class Gdi32 { - public static class Gdi32 - { - [DllImport("gdi32.dll", CharSet = CharSet.Auto, SetLastError = true, ExactSpelling = true)] - private static extern int BitBlt(IntPtr hdc, int x, int y, int cx, int cy, IntPtr hdcSrc, int x1, int y1, int rop); + [DllImport("gdi32.dll", CharSet = CharSet.Auto, SetLastError = true, ExactSpelling = true)] + private static extern int BitBlt(IntPtr hdc, int x, int y, int cx, int cy, IntPtr hdcSrc, int x1, int y1, int rop); - public static Color BitBlt(IntPtr src, int x, int y) + public static Color BitBlt(IntPtr src, int x, int y) + { + var screenPixel = new Bitmap(1, 1); + using (Graphics gdest = Graphics.FromImage(screenPixel)) { - var screenPixel = new Bitmap(1, 1); - using (Graphics gdest = Graphics.FromImage(screenPixel)) - { - var hDC = gdest.GetHdc(); - BitBlt(hDC, 0, 0, 1, 1, src, x, y, (int)CopyPixelOperation.SourceCopy); - gdest.ReleaseHdc(); - - } - return screenPixel.GetPixel(0, 0); + var hDC = gdest.GetHdc(); + BitBlt(hDC, 0, 0, 1, 1, src, x, y, (int)CopyPixelOperation.SourceCopy); + gdest.ReleaseHdc(); + } + return screenPixel.GetPixel(0, 0); } } diff --git a/src/SoulSplitter/Native/User32.cs b/src/SoulSplitter/Native/User32.cs index c781598..97970f6 100644 --- a/src/SoulSplitter/Native/User32.cs +++ b/src/SoulSplitter/Native/User32.cs @@ -17,22 +17,21 @@ using System; using System.Runtime.InteropServices; -namespace SoulSplitter.Native +namespace SoulSplitter.Native; + +public static class User32 { - public static class User32 + private static class NativeMethods { - private static class NativeMethods - { - [DllImport("user32.dll")] - internal static extern bool RegisterHotKey(IntPtr handle, int id, uint modifiers, uint virtualKeyCode); + [DllImport("user32.dll")] + internal static extern bool RegisterHotKey(IntPtr handle, int id, uint modifiers, uint virtualKeyCode); - [DllImport("user32.dll")] - internal static extern bool UnregisterHotKey(IntPtr handle, int id); - } + [DllImport("user32.dll")] + internal static extern bool UnregisterHotKey(IntPtr handle, int id); + } - public static bool RegisterHotkey(IntPtr handle, int id, uint modifiers, uint virtualKeyCode) => NativeMethods.RegisterHotKey(handle, id, modifiers, virtualKeyCode); - public static bool UnregisterHotkey(IntPtr handle, int id) => NativeMethods.UnregisterHotKey(handle, id); + public static bool RegisterHotkey(IntPtr handle, int id, uint modifiers, uint virtualKeyCode) => NativeMethods.RegisterHotKey(handle, id, modifiers, virtualKeyCode); + public static bool UnregisterHotkey(IntPtr handle, int id) => NativeMethods.UnregisterHotKey(handle, id); - } } diff --git a/src/SoulSplitter/SoulComponent.cs b/src/SoulSplitter/SoulComponent.cs index 430414f..5591d09 100644 --- a/src/SoulSplitter/SoulComponent.cs +++ b/src/SoulSplitter/SoulComponent.cs @@ -33,376 +33,376 @@ using System.Windows.Forms; using SoulSplitter.Migrations; -namespace SoulSplitter +namespace SoulSplitter; + +public class SoulComponent : IComponent { - public class SoulComponent : IComponent - { - public const string Name = "SoulSplitter"; + public const string Name = "SoulSplitter"; - private LiveSplitState _liveSplitState; - private ISplitter? _splitter = null!; - private IGame _game = null!; - private DateTime _lastFailedRefresh = DateTime.MinValue; - private bool _previousBitBlt = false; - public readonly MainWindow MainWindow; - public SoulComponent(LiveSplitState state, bool shouldThrowOnInvalidInstallation = true) + private LiveSplitState _liveSplitState; + private ISplitter? _splitter = null!; + private IGame _game = null!; + private DateTime _lastFailedRefresh = DateTime.MinValue; + private bool _previousBitBlt = false; + public readonly MainWindow MainWindow; + public SoulComponent(LiveSplitState state, bool shouldThrowOnInvalidInstallation = true) + { + if (shouldThrowOnInvalidInstallation) { - if (shouldThrowOnInvalidInstallation) - { - ThrowIfInstallationInvalid(); - } - - MainWindow = new MainWindow(); - _liveSplitState = state; - SelectGameFromLiveSplitState(_liveSplitState); + ThrowIfInstallationInvalid(); } + MainWindow = new MainWindow(); + _liveSplitState = state; + SelectGameFromLiveSplitState(_liveSplitState); + } + - /// - /// Called by livesplit every frame - /// - public void Update(IInvalidator invalidator, LiveSplitState state, float width, float height, LayoutMode mode) + /// + /// Called by livesplit every frame + /// + public void Update(IInvalidator invalidator, LiveSplitState state, float width, float height, LayoutMode mode) + { + MainWindow.Dispatcher.Invoke(() => { - MainWindow.Dispatcher.Invoke(() => + try { - try - { - _liveSplitState = state; - - //Timeout for 5 sec after a refresh fails - if (DateTime.Now < _lastFailedRefresh.AddSeconds(5)) - { - return; - } + _liveSplitState = state; - if (MainWindow.MainViewModel.ImportXml != null) - { - ImportXml(); - } - - //Result will internally be added to the error list already. - var result = UpdateSplitter(MainWindow.MainViewModel, state); - if(result.IsErr) - { - var err = result.GetErr(); - if( - //For these error cases it is pointless to try again right away; it will only eat host CPU. - //Hence the timeout. - err.Reason == RefreshErrorReason.ProcessNotRunning || - err.Reason == RefreshErrorReason.ProcessExited || - err.Reason == RefreshErrorReason.ScansFailed || - err.Reason == RefreshErrorReason.AccessDenied) - { - _lastFailedRefresh = DateTime.Now; - } - } - } - catch (Exception e) + //Timeout for 5 sec after a refresh fails + if (DateTime.Now < _lastFailedRefresh.AddSeconds(5)) { - Logger.Log(e); - MainWindow.MainViewModel.AddException(e); + return; } - }); - } - private void SetBitBlt() - { - if (_game is SoulMemory.Sekiro.Sekiro sekiro) - { - if (sekiro.BitBlt) + if (MainWindow.MainViewModel.ImportXml != null) { - MainWindow.BitBlt(); + ImportXml(); } - if (_previousBitBlt && !sekiro.BitBlt) + //Result will internally be added to the error list already. + var result = UpdateSplitter(MainWindow.MainViewModel, state); + if(result.IsErr) { - MainWindow.ResetBitBlt(); + var err = result.GetErr(); + if( + //For these error cases it is pointless to try again right away; it will only eat host CPU. + //Hence the timeout. + err.Reason == RefreshErrorReason.ProcessNotRunning || + err.Reason == RefreshErrorReason.ProcessExited || + err.Reason == RefreshErrorReason.ScansFailed || + err.Reason == RefreshErrorReason.AccessDenied) + { + _lastFailedRefresh = DateTime.Now; + } } - _previousBitBlt = sekiro.BitBlt; } - else + catch (Exception e) { - if (_previousBitBlt) - { - _previousBitBlt = false; - MainWindow.ResetBitBlt(); - } + Logger.Log(e); + MainWindow.MainViewModel.AddException(e); } - } - + }); + } - private Game? _selectedGame = null; - private ResultErr UpdateSplitter(MainViewModel mainViewModel, LiveSplitState state) + private void SetBitBlt() + { + if (_game is SoulMemory.Sekiro.Sekiro sekiro) { - //Detect game change, initialize the correct splitter - if (!_selectedGame.HasValue || _selectedGame != mainViewModel.SelectedGame) + if (sekiro.BitBlt) { - //the splitter listens to livesplit events. Need to dispose to properly clean up and to make sure no elden ring events trigger in dark souls 3 - if (_splitter != null) - { - _splitter.Dispose(); - _splitter = null; - } - - _selectedGame = mainViewModel.SelectedGame; - switch (mainViewModel.SelectedGame) - { - default: - throw new InvalidOperationException("Splitter object is null"); - - case Game.DarkSouls1: - _game = new SoulMemory.DarkSouls1.DarkSouls1(); - _splitter = new DarkSouls1Splitter(new TimerModel { CurrentState = state }, (SoulMemory.DarkSouls1.DarkSouls1)_game, mainViewModel); - break; - - case Game.DarkSouls2: - _game = new SoulMemory.DarkSouls2.DarkSouls2(); - _splitter = new DarkSouls2Splitter(state, (SoulMemory.DarkSouls2.DarkSouls2)_game); - break; - - case Game.DarkSouls3: - _game = new SoulMemory.DarkSouls3.DarkSouls3(); - _splitter = new DarkSouls3Splitter(state, (SoulMemory.DarkSouls3.DarkSouls3)_game); - break; + MainWindow.BitBlt(); + } - case Game.Sekiro: - _game = new SoulMemory.Sekiro.Sekiro(); - _splitter = new SekiroSplitter(state, (SoulMemory.Sekiro.Sekiro)_game); - break; + if (_previousBitBlt && !sekiro.BitBlt) + { + MainWindow.ResetBitBlt(); + } + _previousBitBlt = sekiro.BitBlt; + } + else + { + if (_previousBitBlt) + { + _previousBitBlt = false; + MainWindow.ResetBitBlt(); + } + } + } - case Game.EldenRing: - _game = new SoulMemory.EldenRing.EldenRing(); - _splitter = new EldenRingSplitter(state, (SoulMemory.EldenRing.EldenRing)_game); - break; - case Game.ArmoredCore6: - _game = new SoulMemory.ArmoredCore6.ArmoredCore6(); - _splitter = new ArmoredCore6Splitter(state, (SoulMemory.ArmoredCore6.ArmoredCore6)_game); - break; - } - _splitter.SetViewModel(mainViewModel); + private Game? _selectedGame = null; + private ResultErr UpdateSplitter(MainViewModel mainViewModel, LiveSplitState state) + { + //Detect game change, initialize the correct splitter + if (!_selectedGame.HasValue || _selectedGame != mainViewModel.SelectedGame) + { + //the splitter listens to livesplit events. Need to dispose to properly clean up and to make sure no elden ring events trigger in dark souls 3 + if (_splitter != null) + { + _splitter.Dispose(); + _splitter = null; } - if(_splitter == null) + _selectedGame = mainViewModel.SelectedGame; + switch (mainViewModel.SelectedGame) { - throw new InvalidOperationException("Splitter object is null"); + default: + throw new InvalidOperationException("Splitter object is null"); + + case Game.DarkSouls1: + _game = new SoulMemory.DarkSouls1.DarkSouls1(); + _splitter = new DarkSouls1Splitter(new TimerModel { CurrentState = state }, (SoulMemory.DarkSouls1.DarkSouls1)_game, mainViewModel); + break; + + case Game.DarkSouls2: + _game = new SoulMemory.DarkSouls2.DarkSouls2(); + _splitter = new DarkSouls2Splitter(state, (SoulMemory.DarkSouls2.DarkSouls2)_game); + break; + + case Game.DarkSouls3: + _game = new SoulMemory.DarkSouls3.DarkSouls3(); + _splitter = new DarkSouls3Splitter(state, (SoulMemory.DarkSouls3.DarkSouls3)_game); + break; + + case Game.Sekiro: + _game = new SoulMemory.Sekiro.Sekiro(); + _splitter = new SekiroSplitter(state, (SoulMemory.Sekiro.Sekiro)_game); + break; + + case Game.EldenRing: + _game = new SoulMemory.EldenRing.EldenRing(); + _splitter = new EldenRingSplitter(state, (SoulMemory.EldenRing.EldenRing)_game); + break; + + case Game.ArmoredCore6: + _game = new SoulMemory.ArmoredCore6.ArmoredCore6(); + _splitter = new ArmoredCore6Splitter(state, (SoulMemory.ArmoredCore6.ArmoredCore6)_game); + break; } - - return _splitter.Update(mainViewModel); + _splitter.SetViewModel(mainViewModel); } - #region drawing =================================================================================================================== - public IDictionary ContextMenuControls => new Dictionary(); - public void DrawHorizontal(Graphics g, LiveSplitState state, float height, Region clipRegion) + if(_splitter == null) { - //Soulsplitter doesn't draw to livesplit's window, but must implement the full interface. + throw new InvalidOperationException("Splitter object is null"); } - public void DrawVertical(Graphics g, LiveSplitState state, float width, Region clipRegion) + return _splitter.Update(mainViewModel); + } + + #region drawing =================================================================================================================== + public IDictionary ContextMenuControls => new Dictionary(); + public void DrawHorizontal(Graphics g, LiveSplitState state, float height, Region clipRegion) + { + //Soulsplitter doesn't draw to livesplit's window, but must implement the full interface. + } + + public void DrawVertical(Graphics g, LiveSplitState state, float width, Region clipRegion) + { + //Soulsplitter doesn't draw to livesplit's window, but must implement the full interface. + } + + public string ComponentName => Name; + public float HorizontalWidth { get; private set; } = 0; + public float MinimumHeight { get; private set; } = 0; + public float VerticalHeight { get; private set; } = 0; + public float MinimumWidth { get; private set; } = 0; + public float PaddingTop => 0; + public float PaddingBottom => 0; + public float PaddingLeft => 0; + public float PaddingRight => 0; + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + protected virtual void Dispose(bool disposing) + { + if (_splitter != null) { - //Soulsplitter doesn't draw to livesplit's window, but must implement the full interface. + _splitter.Dispose(); } + } + #endregion + + #region Xml settings ============================================================================================================== - public string ComponentName => Name; - public float HorizontalWidth { get; private set; } = 0; - public float MinimumHeight { get; private set; } = 0; - public float VerticalHeight { get; private set; } = 0; - public float MinimumWidth { get; private set; } = 0; - public float PaddingTop => 0; - public float PaddingBottom => 0; - public float PaddingLeft => 0; - public float PaddingRight => 0; - public void Dispose() + private void ImportXml() + { + try { - Dispose(true); - GC.SuppressFinalize(this); + var xml = MainWindow.MainViewModel.ImportXml; + MainWindow.MainViewModel.ImportXml = null!; //Don't get stuck in an import loop + + var xmlDocument = new XmlDocument(); + xmlDocument.LoadXml(xml); + + SetSettings(xmlDocument); } - protected virtual void Dispose(bool disposing) + catch (Exception e) { - if (_splitter != null) - { - _splitter.Dispose(); - } + Logger.Log(e); + MainWindow.MainViewModel.AddException(e); } - #endregion + } - #region Xml settings ============================================================================================================== + public XmlNode GetSettings(XmlDocument document) + { + XmlElement root = document.CreateElement("Settings"); + MainWindow.Dispatcher.Invoke(() => + { + var xml = MainWindow.MainViewModel.Serialize(); + XmlDocumentFragment fragment = document.CreateDocumentFragment(); + fragment.InnerXml = xml; + root.AppendChild(fragment); + }); + return root; + } - private void ImportXml() + public void SetSettings(XmlNode settings) + { + MainWindow.Dispatcher.Invoke(() => { try { - var xml = MainWindow.MainViewModel.ImportXml; - MainWindow.MainViewModel.ImportXml = null!; //Don't get stuck in an import loop - - var xmlDocument = new XmlDocument(); - xmlDocument.LoadXml(xml); + try + { + Migrator.Migrate(settings); + } + catch (Exception migrationException) + { + Logger.Log(migrationException); + MainWindow.MainViewModel.AddException(migrationException); + } - SetSettings(xmlDocument); + var vm = MainViewModel.Deserialize(settings.InnerXml); + if (vm != null) + { + MainWindow.MainViewModel = vm; + _splitter?.SetViewModel(MainWindow.MainViewModel); + } } catch (Exception e) { + MainWindow.MainViewModel = new MainViewModel(); + SelectGameFromLiveSplitState(_liveSplitState); + Logger.Log(e); MainWindow.MainViewModel.AddException(e); } - } + }); + } - public XmlNode GetSettings(XmlDocument document) + private Button? _customShowSettingsButton; + public System.Windows.Forms.Control GetSettingsControl(LayoutMode mode) + { + var stackTrace = new StackTrace(); + var caller = stackTrace.GetFrame(1).GetMethod().Name; + if (caller == "AddComponent") { - XmlElement root = document.CreateElement("Settings"); - MainWindow.Dispatcher.Invoke(() => - { - var xml = MainWindow.MainViewModel.Serialize(); - XmlDocumentFragment fragment = document.CreateDocumentFragment(); - fragment.InnerXml = xml; - root.AppendChild(fragment); - }); - return root; + MainWindow.ShowDialog(); } - public void SetSettings(XmlNode settings) + if (_customShowSettingsButton == null) { - MainWindow.Dispatcher.Invoke(() => + _customShowSettingsButton = new Button(); + _customShowSettingsButton.Text = "SoulSplitter settings"; + _customShowSettingsButton.Click += (o, a) => MainWindow.Dispatcher.Invoke(() => MainWindow.ShowDialog()); + _customShowSettingsButton.Paint += (o, a) => { try { - try - { - Migrator.Migrate(settings); - } - catch (Exception migrationException) - { - Logger.Log(migrationException); - MainWindow.MainViewModel.AddException(migrationException); - } - - var vm = MainViewModel.Deserialize(settings.InnerXml); - if (vm != null) - { - MainWindow.MainViewModel = vm; - _splitter?.SetViewModel(MainWindow.MainViewModel); - } + var form = (Form)_customShowSettingsButton.Parent.Parent.Parent; + form.DialogResult = DialogResult.OK; //Ok triggers livesplit to save + form.Close(); } catch (Exception e) { - MainWindow.MainViewModel = new MainViewModel(); - SelectGameFromLiveSplitState(_liveSplitState); - Logger.Log(e); - MainWindow.MainViewModel.AddException(e); } - }); + }; } - private Button? _customShowSettingsButton; - public System.Windows.Forms.Control GetSettingsControl(LayoutMode mode) + return _customShowSettingsButton; + } + /// + /// Reads the game name from livesplit and tries to write the appropriate game to the view model + /// + private void SelectGameFromLiveSplitState(LiveSplitState s) + { + MainWindow.Dispatcher.Invoke(() => { - var stackTrace = new StackTrace(); - var caller = stackTrace.GetFrame(1).GetMethod().Name; - if (caller == "AddComponent") + if (!string.IsNullOrWhiteSpace(s?.Run?.GameName)) { - MainWindow.ShowDialog(); - } - - if (_customShowSettingsButton == null) - { - _customShowSettingsButton = new Button(); - _customShowSettingsButton.Text = "SoulSplitter settings"; - _customShowSettingsButton.Click += (o, a) => MainWindow.Dispatcher.Invoke(() => MainWindow.ShowDialog()); - _customShowSettingsButton.Paint += (o, a) => + var name = s!.Run!.GameName.ToLower().Replace(" ", ""); + switch (name) { - try - { - var form = (Form)_customShowSettingsButton.Parent.Parent.Parent; - form.DialogResult = DialogResult.OK; //Ok triggers livesplit to save - form.Close(); - } - catch (Exception e) - { - Logger.Log(e); - } - }; - } + case "darksouls": + case "darksoulsremastered": + MainWindow.MainViewModel.SelectedGame = Game.DarkSouls1; + break; - return _customShowSettingsButton; - } - /// - /// Reads the game name from livesplit and tries to write the appropriate game to the view model - /// - private void SelectGameFromLiveSplitState(LiveSplitState s) - { - MainWindow.Dispatcher.Invoke(() => - { - if (!string.IsNullOrWhiteSpace(s?.Run?.GameName)) - { - var name = s!.Run!.GameName.ToLower().Replace(" ", ""); - switch (name) - { - case "darksouls": - case "darksoulsremastered": - MainWindow.MainViewModel.SelectedGame = Game.DarkSouls1; - break; - - case "darksoulsii": - MainWindow.MainViewModel.SelectedGame = Game.DarkSouls2; - break; - - case "darksoulsiii": - MainWindow.MainViewModel.SelectedGame = Game.DarkSouls3; - break; - - case "sekiro": - case "sekiro:shadowsdietwice": - MainWindow.MainViewModel.SelectedGame = Game.Sekiro; - break; - - case "eldenring": - MainWindow.MainViewModel.SelectedGame = Game.EldenRing; - break; - - case "armoredcore6": - case "armoredcorevi:firesofrubicon": - MainWindow.MainViewModel.SelectedGame = Game.ArmoredCore6; - break; - } + case "darksoulsii": + MainWindow.MainViewModel.SelectedGame = Game.DarkSouls2; + break; + + case "darksoulsiii": + MainWindow.MainViewModel.SelectedGame = Game.DarkSouls3; + break; + + case "sekiro": + case "sekiro:shadowsdietwice": + MainWindow.MainViewModel.SelectedGame = Game.Sekiro; + break; + + case "eldenring": + MainWindow.MainViewModel.SelectedGame = Game.EldenRing; + break; + + case "armoredcore6": + case "armoredcorevi:firesofrubicon": + MainWindow.MainViewModel.SelectedGame = Game.ArmoredCore6; + break; } - }); - } + } + }); + } - #endregion + #endregion - #region validate installation + #region validate installation - private readonly List _installedFiles = new List() - { - "SoulSplitter.dll", - "SoulMemory.dll", - "MaterialDesignColors.dll", - "MaterialDesignThemes.Wpf.dll", - "soulmods_x64.dll", - "soulmods_x86.dll", - "soulmemory_rs_x64.dll", - "soulmemory_rs_x86.dll", - "launcher_x64.exe", - "launcher_x86.exe", - }; - - private void ThrowIfInstallationInvalid() - { - var assemblyPath = Assembly.GetAssembly(typeof(SoulComponent)).Location; - var directory = Path.GetDirectoryName(assemblyPath); + private readonly List _installedFiles = new List() + { + "SoulSplitter.dll", + "SoulMemory.dll", + "MaterialDesignColors.dll", + "MaterialDesignThemes.Wpf.dll", + "soulmods_x64.dll", + "soulmods_x86.dll", + "soulmemory_rs_x64.dll", + "soulmemory_rs_x86.dll", + "launcher_x64.exe", + "launcher_x86.exe", + }; + + private void ThrowIfInstallationInvalid() + { + var assemblyPath = Assembly.GetAssembly(typeof(SoulComponent)).Location; + var directory = Path.GetDirectoryName(assemblyPath); - var files = Directory.EnumerateFiles(directory).Select(i => Path.GetFileName(i)).ToList(); - var missing = _installedFiles.Except(files).ToList(); + var files = Directory.EnumerateFiles(directory).Select(i => Path.GetFileName(i)).ToList(); + var missing = _installedFiles.Except(files).ToList(); - if (missing.Any()) - { - throw new FileNotFoundException($"Incomplete installation. Missing files: {string.Join(",", missing)}"); - } + if (missing.Any()) + { + throw new FileNotFoundException($"Incomplete installation. Missing files: {string.Join(",", missing)}"); } - - #endregion } + + #endregion } + diff --git a/src/SoulSplitter/SoulComponentFactory.cs b/src/SoulSplitter/SoulComponentFactory.cs index 3559f4e..9a43565 100644 --- a/src/SoulSplitter/SoulComponentFactory.cs +++ b/src/SoulSplitter/SoulComponentFactory.cs @@ -22,27 +22,26 @@ [assembly: ComponentFactory(typeof(SoulComponentFactory))] -namespace SoulSplitter +namespace SoulSplitter; + +public class SoulComponentFactory : IComponentFactory { - public class SoulComponentFactory : IComponentFactory - { - public string ComponentName => SoulComponent.Name; + public string ComponentName => SoulComponent.Name; - public string Description => "Souls games plugin for IGT/RTA with load removal"; + public string Description => "Souls games plugin for IGT/RTA with load removal"; - public ComponentCategory Category => ComponentCategory.Control; + public ComponentCategory Category => ComponentCategory.Control; - public string UpdateName => SoulComponent.Name; - - public string XMLURL => $"{UpdateURL}/Components/Updates.xml"; + public string UpdateName => SoulComponent.Name; + + public string XMLURL => $"{UpdateURL}/Components/Updates.xml"; - public string UpdateURL => "https://raw.githubusercontent.com/FrankvdStam/SoulSplitter/main/"; + public string UpdateURL => "https://raw.githubusercontent.com/FrankvdStam/SoulSplitter/main/"; - public Version Version => VersionHelper.Version; + public Version Version => VersionHelper.Version; - public IComponent Create(LiveSplitState state) - { - return new SoulComponent(state); - } + public IComponent Create(LiveSplitState state) + { + return new SoulComponent(state); } } diff --git a/src/SoulSplitter/Splits/ArmoredCore6/Split.cs b/src/SoulSplitter/Splits/ArmoredCore6/Split.cs index 699a908..b1b1f25 100644 --- a/src/SoulSplitter/Splits/ArmoredCore6/Split.cs +++ b/src/SoulSplitter/Splits/ArmoredCore6/Split.cs @@ -17,38 +17,37 @@ using SoulSplitter.UI.Generic; using System; -namespace SoulSplitter.Splits.ArmoredCore6 +namespace SoulSplitter.Splits.ArmoredCore6; + +internal class Split { - internal class Split + public Split(TimingType timingType, SplitType splitType, object split) { - public Split(TimingType timingType, SplitType splitType, object split) + TimingType = timingType; + SplitType = splitType; + + switch (SplitType) { - TimingType = timingType; - SplitType = splitType; - - switch (SplitType) - { - default: - throw new ArgumentException($"unsupported split type {SplitType}"); - - case SplitType.Flag: - Flag = ((FlagDescription)split).Flag; - break; - } + default: + throw new ArgumentException($"unsupported split type {SplitType}"); + + case SplitType.Flag: + Flag = ((FlagDescription)split).Flag; + break; } + } - public readonly TimingType TimingType; - public readonly SplitType SplitType; - public readonly uint Flag; + public readonly TimingType TimingType; + public readonly SplitType SplitType; + public readonly uint Flag; - /// - /// Set to true when split conditions are met. Does not trigger a split until timing conditions are met - /// - public bool SplitConditionMet = false; + /// + /// Set to true when split conditions are met. Does not trigger a split until timing conditions are met + /// + public bool SplitConditionMet = false; - /// - /// True after this split object cause a split. No longer need to check split conditions - /// - public bool SplitTriggered = false; - } + /// + /// True after this split object cause a split. No longer need to check split conditions + /// + public bool SplitTriggered = false; } diff --git a/src/SoulSplitter/Splits/DarkSouls1/Attribute.cs b/src/SoulSplitter/Splits/DarkSouls1/Attribute.cs index 12ee9dc..4a2b861 100644 --- a/src/SoulSplitter/Splits/DarkSouls1/Attribute.cs +++ b/src/SoulSplitter/Splits/DarkSouls1/Attribute.cs @@ -18,40 +18,39 @@ using System.Xml.Serialization; using SoulSplitter.UI.Generic; -namespace SoulSplitter.Splits.DarkSouls1 +namespace SoulSplitter.Splits.DarkSouls1; + +[XmlType(Namespace = "DarkSouls1")] +public class Attribute : ICustomNotifyPropertyChanged { - [XmlType(Namespace = "DarkSouls1")] - public class Attribute : ICustomNotifyPropertyChanged + [XmlElement(Namespace = "DarkSouls1")] + public SoulMemory.DarkSouls1.Attribute AttributeType + { + get => _attributeType; + set => this.SetField(ref _attributeType, value); + } + private SoulMemory.DarkSouls1.Attribute _attributeType; + + public int Level + { + get => _level; + set => this.SetField(ref _level, value); + } + private int _level; + + public override string ToString() { - [XmlElement(Namespace = "DarkSouls1")] - public SoulMemory.DarkSouls1.Attribute AttributeType - { - get => _attributeType; - set => this.SetField(ref _attributeType, value); - } - private SoulMemory.DarkSouls1.Attribute _attributeType; - - public int Level - { - get => _level; - set => this.SetField(ref _level, value); - } - private int _level; - - public override string ToString() - { - return $"{AttributeType} {Level}"; - } - - #region ICustomNotifyPropertyChanged - - public event PropertyChangedEventHandler? PropertyChanged; - - public void InvokePropertyChanged(string propertyName) - { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); - } - - #endregion + return $"{AttributeType} {Level}"; } + + #region ICustomNotifyPropertyChanged + + public event PropertyChangedEventHandler? PropertyChanged; + + public void InvokePropertyChanged(string propertyName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } + + #endregion } diff --git a/src/SoulSplitter/Splits/DarkSouls1/BonfireState.cs b/src/SoulSplitter/Splits/DarkSouls1/BonfireState.cs index a73c5cb..3779bdf 100644 --- a/src/SoulSplitter/Splits/DarkSouls1/BonfireState.cs +++ b/src/SoulSplitter/Splits/DarkSouls1/BonfireState.cs @@ -20,39 +20,38 @@ using SoulMemory.Memory; using SoulSplitter.UI.Generic; -namespace SoulSplitter.Splits.DarkSouls1 +namespace SoulSplitter.Splits.DarkSouls1; + +[XmlType(Namespace = "DarkSouls1")] +public class BonfireState : ICustomNotifyPropertyChanged { - [XmlType(Namespace = "DarkSouls1")] - public class BonfireState : ICustomNotifyPropertyChanged + public Bonfire? Bonfire + { + get => _bonfire; + set => this.SetField(ref _bonfire, value); + } + private Bonfire? _bonfire; + + public SoulMemory.DarkSouls1.BonfireState State + { + get => _state; + set => this.SetField(ref _state, value); + } + private SoulMemory.DarkSouls1.BonfireState _state; + + public override string ToString() { - public Bonfire? Bonfire - { - get => _bonfire; - set => this.SetField(ref _bonfire, value); - } - private Bonfire? _bonfire; - - public SoulMemory.DarkSouls1.BonfireState State - { - get => _state; - set => this.SetField(ref _state, value); - } - private SoulMemory.DarkSouls1.BonfireState _state; - - public override string ToString() - { - return $"{Bonfire?.GetDisplayName()} {State.GetDisplayName()}"; - } - - #region ICustomNotifyPropertyChanged - - public event PropertyChangedEventHandler? PropertyChanged; - - public void InvokePropertyChanged(string propertyName) - { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); - } - - #endregion + return $"{Bonfire?.GetDisplayName()} {State.GetDisplayName()}"; } + + #region ICustomNotifyPropertyChanged + + public event PropertyChangedEventHandler? PropertyChanged; + + public void InvokePropertyChanged(string propertyName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } + + #endregion } diff --git a/src/SoulSplitter/Splits/DarkSouls1/ItemState.cs b/src/SoulSplitter/Splits/DarkSouls1/ItemState.cs index cd19a73..7ff926b 100644 --- a/src/SoulSplitter/Splits/DarkSouls1/ItemState.cs +++ b/src/SoulSplitter/Splits/DarkSouls1/ItemState.cs @@ -20,34 +20,33 @@ using SoulMemory.DarkSouls1; using SoulSplitter.UI.Generic; -namespace SoulSplitter.Splits.DarkSouls1 +namespace SoulSplitter.Splits.DarkSouls1; + +[XmlType(Namespace = "DarkSouls1")] +public class ItemState : ICustomNotifyPropertyChanged { - [XmlType(Namespace = "DarkSouls1")] - public class ItemState : ICustomNotifyPropertyChanged + public ItemType? ItemType { - public ItemType? ItemType - { - get => _itemType; - set => this.SetField(ref _itemType, value); - } - private ItemType? _itemType; - - private string ItemString => Item.AllItems.FirstOrDefault(i => i.ItemType == ItemType)?.Name ?? ""; + get => _itemType; + set => this.SetField(ref _itemType, value); + } + private ItemType? _itemType; - public override string ToString() - { - return $"{ItemString}"; - } + private string ItemString => Item.AllItems.FirstOrDefault(i => i.ItemType == ItemType)?.Name ?? ""; - #region ICustomNotifyPropertyChanged + public override string ToString() + { + return $"{ItemString}"; + } - public event PropertyChangedEventHandler? PropertyChanged; + #region ICustomNotifyPropertyChanged - public void InvokePropertyChanged(string propertyName) - { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); - } + public event PropertyChangedEventHandler? PropertyChanged; - #endregion + public void InvokePropertyChanged(string propertyName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } + + #endregion } diff --git a/src/SoulSplitter/Splits/DarkSouls1/Split.cs b/src/SoulSplitter/Splits/DarkSouls1/Split.cs index f7e756e..c1e0201 100644 --- a/src/SoulSplitter/Splits/DarkSouls1/Split.cs +++ b/src/SoulSplitter/Splits/DarkSouls1/Split.cs @@ -18,76 +18,75 @@ using SoulMemory.DarkSouls1; using SoulSplitter.UI.Generic; -namespace SoulSplitter.Splits.DarkSouls1 +namespace SoulSplitter.Splits.DarkSouls1; + +internal class Split { - internal class Split + public Split(TimingType timingType, SplitType splitType, object split) { - public Split(TimingType timingType, SplitType splitType, object split) + TimingType = timingType; + SplitType = splitType; + + switch (SplitType) { - TimingType = timingType; - SplitType = splitType; - - switch (SplitType) - { - default: - throw new ArgumentException($"unsupported split type {SplitType}"); - - case SplitType.Boss: - Boss = (Boss)split; - Flag = (uint)Boss; - break; - - case SplitType.Attribute: - Attribute = (Attribute)split; - break; - - case SplitType.Position: - Position = (VectorSize)split; - break; - - case SplitType.KnownFlag: - KnownFlag = (KnownFlag)split; - Flag = (uint)KnownFlag; - break; - - case SplitType.Flag: - Flag = ((FlagDescription)split).Flag; - break; - - case SplitType.Item: - ItemState = (ItemState)split; - break; - - case SplitType.Bonfire: - BonfireState = (BonfireState)split; - break; - - case SplitType.Credits: - break; - } - } + default: + throw new ArgumentException($"unsupported split type {SplitType}"); + + case SplitType.Boss: + Boss = (Boss)split; + Flag = (uint)Boss; + break; + + case SplitType.Attribute: + Attribute = (Attribute)split; + break; + + case SplitType.Position: + Position = (VectorSize)split; + break; - public readonly TimingType TimingType; - public readonly SplitType SplitType; + case SplitType.KnownFlag: + KnownFlag = (KnownFlag)split; + Flag = (uint)KnownFlag; + break; - public readonly Boss Boss; - public readonly Attribute Attribute = null!; - public readonly ItemState ItemState = null!; - public readonly BonfireState BonfireState = null!; - public readonly VectorSize Position = null!; - public readonly uint Flag; - public readonly KnownFlag KnownFlag; + case SplitType.Flag: + Flag = ((FlagDescription)split).Flag; + break; - /// - /// Set to true when split conditions are met. Does not trigger a split until timing conditions are met - /// - public bool SplitConditionMet = false; + case SplitType.Item: + ItemState = (ItemState)split; + break; - /// - /// True after this split object cause a split. No longer need to check split conditions - /// - public bool SplitTriggered = false; + case SplitType.Bonfire: + BonfireState = (BonfireState)split; + break; - public bool Quitout = false; + case SplitType.Credits: + break; + } } + + public readonly TimingType TimingType; + public readonly SplitType SplitType; + + public readonly Boss Boss; + public readonly Attribute Attribute = null!; + public readonly ItemState ItemState = null!; + public readonly BonfireState BonfireState = null!; + public readonly VectorSize Position = null!; + public readonly uint Flag; + public readonly KnownFlag KnownFlag; + + /// + /// Set to true when split conditions are met. Does not trigger a split until timing conditions are met + /// + public bool SplitConditionMet = false; + + /// + /// True after this split object cause a split. No longer need to check split conditions + /// + public bool SplitTriggered = false; + + public bool Quitout = false; } \ No newline at end of file diff --git a/src/SoulSplitter/Splits/DarkSouls2/Attribute.cs b/src/SoulSplitter/Splits/DarkSouls2/Attribute.cs index e114b37..ee094c4 100644 --- a/src/SoulSplitter/Splits/DarkSouls2/Attribute.cs +++ b/src/SoulSplitter/Splits/DarkSouls2/Attribute.cs @@ -18,40 +18,39 @@ using System.Xml.Serialization; using SoulSplitter.UI.Generic; -namespace SoulSplitter.Splits.DarkSouls2 +namespace SoulSplitter.Splits.DarkSouls2; + +[XmlType(Namespace = "DarkSouls2")] +public class Attribute : ICustomNotifyPropertyChanged { - [XmlType(Namespace = "DarkSouls2")] - public class Attribute : ICustomNotifyPropertyChanged + [XmlElement(Namespace = "DarkSouls2")] + public SoulMemory.DarkSouls2.Attribute AttributeType + { + get => _attributeType; + set => this.SetField(ref _attributeType, value); + } + private SoulMemory.DarkSouls2.Attribute _attributeType; + + public int Level + { + get => _level; + set => this.SetField(ref _level, value); + } + private int _level; + + public override string ToString() { - [XmlElement(Namespace = "DarkSouls2")] - public SoulMemory.DarkSouls2.Attribute AttributeType - { - get => _attributeType; - set => this.SetField(ref _attributeType, value); - } - private SoulMemory.DarkSouls2.Attribute _attributeType; - - public int Level - { - get => _level; - set => this.SetField(ref _level, value); - } - private int _level; - - public override string ToString() - { - return $"{AttributeType} {Level}"; - } - - #region ICustomNotifyPropertyChanged - - public event PropertyChangedEventHandler? PropertyChanged; - - public void InvokePropertyChanged(string propertyName) - { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); - } - - #endregion + return $"{AttributeType} {Level}"; } + + #region ICustomNotifyPropertyChanged + + public event PropertyChangedEventHandler? PropertyChanged; + + public void InvokePropertyChanged(string propertyName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } + + #endregion } diff --git a/src/SoulSplitter/Splits/DarkSouls2/BossKill.cs b/src/SoulSplitter/Splits/DarkSouls2/BossKill.cs index 9623f6d..17bfecc 100644 --- a/src/SoulSplitter/Splits/DarkSouls2/BossKill.cs +++ b/src/SoulSplitter/Splits/DarkSouls2/BossKill.cs @@ -19,40 +19,39 @@ using SoulMemory.DarkSouls2; using SoulSplitter.UI.Generic; -namespace SoulSplitter.Splits.DarkSouls2 +namespace SoulSplitter.Splits.DarkSouls2; + +[XmlType(Namespace = "DarkSouls2")] +public class BossKill : ICustomNotifyPropertyChanged { - [XmlType(Namespace = "DarkSouls2")] - public class BossKill : ICustomNotifyPropertyChanged + [XmlElement(Namespace = "DarkSouls2")] + public BossType BossType + { + get => _bossType; + set => this.SetField(ref _bossType, value); + } + private BossType _bossType; + + public int Count + { + get => _count; + set => this.SetField(ref _count, value); + } + private int _count = 1; + + public override string ToString() + { + return $"{BossType} {Count}"; + } + + #region ICustomNotifyPropertyChanged + + public event PropertyChangedEventHandler? PropertyChanged; + + public void InvokePropertyChanged(string propertyName) { - [XmlElement(Namespace = "DarkSouls2")] - public BossType BossType - { - get => _bossType; - set => this.SetField(ref _bossType, value); - } - private BossType _bossType; - - public int Count - { - get => _count; - set => this.SetField(ref _count, value); - } - private int _count = 1; - - public override string ToString() - { - return $"{BossType} {Count}"; - } - - #region ICustomNotifyPropertyChanged - - public event PropertyChangedEventHandler? PropertyChanged; - - public void InvokePropertyChanged(string propertyName) - { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); - } - - #endregion + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } + + #endregion } diff --git a/src/SoulSplitter/Splits/DarkSouls2/DarkSouls2SplitType.cs b/src/SoulSplitter/Splits/DarkSouls2/DarkSouls2SplitType.cs index 987d9bf..c0e4367 100644 --- a/src/SoulSplitter/Splits/DarkSouls2/DarkSouls2SplitType.cs +++ b/src/SoulSplitter/Splits/DarkSouls2/DarkSouls2SplitType.cs @@ -14,13 +14,12 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -namespace SoulSplitter.Splits.DarkSouls2 +namespace SoulSplitter.Splits.DarkSouls2; + +public enum DarkSouls2SplitType { - public enum DarkSouls2SplitType - { - Position, - BossKill, - Attribute, - Flag, - } + Position, + BossKill, + Attribute, + Flag, } diff --git a/src/SoulSplitter/Splits/DarkSouls2/Split.cs b/src/SoulSplitter/Splits/DarkSouls2/Split.cs index aa2722f..90536e8 100644 --- a/src/SoulSplitter/Splits/DarkSouls2/Split.cs +++ b/src/SoulSplitter/Splits/DarkSouls2/Split.cs @@ -18,54 +18,53 @@ using SoulMemory; using SoulSplitter.UI.Generic; -namespace SoulSplitter.Splits.DarkSouls2 +namespace SoulSplitter.Splits.DarkSouls2; + +internal class Split { - internal class Split + public Split(TimingType timingType, DarkSouls2SplitType darkSouls2SplitType, object split) { - public Split(TimingType timingType, DarkSouls2SplitType darkSouls2SplitType, object split) - { - TimingType = timingType; - SplitType = darkSouls2SplitType; + TimingType = timingType; + SplitType = darkSouls2SplitType; - switch (SplitType) - { - default: - throw new ArgumentException($"unsupported split type {SplitType}"); + switch (SplitType) + { + default: + throw new ArgumentException($"unsupported split type {SplitType}"); - case DarkSouls2SplitType.Position: - Position = (Vector3f)split; - break; + case DarkSouls2SplitType.Position: + Position = (Vector3f)split; + break; - case DarkSouls2SplitType.BossKill: - BossKill = (BossKill)split; - break; + case DarkSouls2SplitType.BossKill: + BossKill = (BossKill)split; + break; - case DarkSouls2SplitType.Attribute: - Attribute = (Attribute)split; - break; + case DarkSouls2SplitType.Attribute: + Attribute = (Attribute)split; + break; - case DarkSouls2SplitType.Flag: - Flag = (uint)split; - break; - } + case DarkSouls2SplitType.Flag: + Flag = (uint)split; + break; } + } - public readonly TimingType TimingType; - public readonly DarkSouls2SplitType SplitType; - - public readonly uint Flag; - public readonly Vector3f Position = null!; - public readonly BossKill BossKill = null!; - public readonly Attribute Attribute = null!; + public readonly TimingType TimingType; + public readonly DarkSouls2SplitType SplitType; + + public readonly uint Flag; + public readonly Vector3f Position = null!; + public readonly BossKill BossKill = null!; + public readonly Attribute Attribute = null!; - /// - /// Set to true when split conditions are met. Does not trigger a split until timing conditions are met - /// - public bool SplitConditionMet = false; - - /// - /// True after this split object cause a split. No longer need to check split conditions - /// - public bool SplitTriggered = false; - } + /// + /// Set to true when split conditions are met. Does not trigger a split until timing conditions are met + /// + public bool SplitConditionMet = false; + + /// + /// True after this split object cause a split. No longer need to check split conditions + /// + public bool SplitTriggered = false; } diff --git a/src/SoulSplitter/Splits/DarkSouls3/Attribute.cs b/src/SoulSplitter/Splits/DarkSouls3/Attribute.cs index 3efe48f..dfdd40d 100644 --- a/src/SoulSplitter/Splits/DarkSouls3/Attribute.cs +++ b/src/SoulSplitter/Splits/DarkSouls3/Attribute.cs @@ -18,40 +18,39 @@ using System.Xml.Serialization; using SoulSplitter.UI.Generic; -namespace SoulSplitter.Splits.DarkSouls3 +namespace SoulSplitter.Splits.DarkSouls3; + +[XmlType(Namespace = "DarkSouls3")] +public class Attribute : ICustomNotifyPropertyChanged { - [XmlType(Namespace = "DarkSouls3")] - public class Attribute : ICustomNotifyPropertyChanged + [XmlElement(Namespace = "DarkSouls3")] + public SoulMemory.DarkSouls3.Attribute AttributeType + { + get => _attributeType; + set => this.SetField(ref _attributeType, value); + } + private SoulMemory.DarkSouls3.Attribute _attributeType; + + public int Level + { + get => _level; + set => this.SetField(ref _level, value); + } + private int _level; + + public override string ToString() { - [XmlElement(Namespace = "DarkSouls3")] - public SoulMemory.DarkSouls3.Attribute AttributeType - { - get => _attributeType; - set => this.SetField(ref _attributeType, value); - } - private SoulMemory.DarkSouls3.Attribute _attributeType; - - public int Level - { - get => _level; - set => this.SetField(ref _level, value); - } - private int _level; - - public override string ToString() - { - return $"{AttributeType} {Level}"; - } - - #region ICustomNotifyPropertyChanged - - public event PropertyChangedEventHandler? PropertyChanged; - - public void InvokePropertyChanged(string propertyName) - { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); - } - - #endregion + return $"{AttributeType} {Level}"; } + + #region ICustomNotifyPropertyChanged + + public event PropertyChangedEventHandler? PropertyChanged; + + public void InvokePropertyChanged(string propertyName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } + + #endregion } diff --git a/src/SoulSplitter/Splits/DarkSouls3/Split.cs b/src/SoulSplitter/Splits/DarkSouls3/Split.cs index a926467..286fc1c 100644 --- a/src/SoulSplitter/Splits/DarkSouls3/Split.cs +++ b/src/SoulSplitter/Splits/DarkSouls3/Split.cs @@ -18,67 +18,66 @@ using SoulMemory.DarkSouls3; using SoulSplitter.UI.Generic; -namespace SoulSplitter.Splits.DarkSouls3 +namespace SoulSplitter.Splits.DarkSouls3; + +internal class Split { - internal class Split + public Split(TimingType timingType, SplitType darkSouls3SplitType, object split) { - public Split(TimingType timingType, SplitType darkSouls3SplitType, object split) - { - TimingType = timingType; - SplitType = darkSouls3SplitType; + TimingType = timingType; + SplitType = darkSouls3SplitType; - switch (SplitType) - { - default: - throw new ArgumentException($"unsupported split type {SplitType}"); + switch (SplitType) + { + default: + throw new ArgumentException($"unsupported split type {SplitType}"); - case SplitType.Boss: - Boss = (Boss)split; - Flag = (uint)Boss; - break; + case SplitType.Boss: + Boss = (Boss)split; + Flag = (uint)Boss; + break; - case SplitType.Bonfire: - Bonfire = (Bonfire)split; - Flag = (uint)Bonfire; - break; + case SplitType.Bonfire: + Bonfire = (Bonfire)split; + Flag = (uint)Bonfire; + break; - case SplitType.ItemPickup: - ItemPickup = (ItemPickup)split; - Flag = (uint)ItemPickup; - break; + case SplitType.ItemPickup: + ItemPickup = (ItemPickup)split; + Flag = (uint)ItemPickup; + break; - case SplitType.Attribute: - Attribute = (Attribute)split; - break; + case SplitType.Attribute: + Attribute = (Attribute)split; + break; - case SplitType.Position: - Position = (VectorSize)split; - break; + case SplitType.Position: + Position = (VectorSize)split; + break; - case SplitType.Flag: - Flag = ((FlagDescription)split).Flag; - break; - } + case SplitType.Flag: + Flag = ((FlagDescription)split).Flag; + break; } + } - public readonly TimingType TimingType; - public readonly SplitType SplitType; - - public readonly Boss Boss; - public readonly Bonfire Bonfire; - public readonly ItemPickup ItemPickup; - public readonly Attribute Attribute = null!; - public readonly VectorSize Position = null!; - public readonly uint Flag; + public readonly TimingType TimingType; + public readonly SplitType SplitType; + + public readonly Boss Boss; + public readonly Bonfire Bonfire; + public readonly ItemPickup ItemPickup; + public readonly Attribute Attribute = null!; + public readonly VectorSize Position = null!; + public readonly uint Flag; - /// - /// Set to true when split conditions are met. Does not trigger a split until timing conditions are met - /// - public bool SplitConditionMet = false; - - /// - /// True after this split object cause a split. No longer need to check split conditions - /// - public bool SplitTriggered = false; - } + /// + /// Set to true when split conditions are met. Does not trigger a split until timing conditions are met + /// + public bool SplitConditionMet = false; + + /// + /// True after this split object cause a split. No longer need to check split conditions + /// + public bool SplitTriggered = false; } diff --git a/src/SoulSplitter/Splits/EldenRing/EldenRingSplitType.cs b/src/SoulSplitter/Splits/EldenRing/EldenRingSplitType.cs index e4140dd..5e83f9b 100644 --- a/src/SoulSplitter/Splits/EldenRing/EldenRingSplitType.cs +++ b/src/SoulSplitter/Splits/EldenRing/EldenRingSplitType.cs @@ -14,16 +14,15 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -namespace SoulSplitter.Splits.EldenRing +namespace SoulSplitter.Splits.EldenRing; + +public enum EldenRingSplitType { - public enum EldenRingSplitType - { - Boss, - Grace, - Flag, - ItemPickup, - Item, - Position, - KnownFlag, - } + Boss, + Grace, + Flag, + ItemPickup, + Item, + Position, + KnownFlag, } diff --git a/src/SoulSplitter/Splits/EldenRing/Split.cs b/src/SoulSplitter/Splits/EldenRing/Split.cs index b8f771b..8043606 100644 --- a/src/SoulSplitter/Splits/EldenRing/Split.cs +++ b/src/SoulSplitter/Splits/EldenRing/Split.cs @@ -18,73 +18,72 @@ using SoulMemory.EldenRing; using SoulSplitter.UI.Generic; -namespace SoulSplitter.Splits.EldenRing +namespace SoulSplitter.Splits.EldenRing; + +internal class Split { - internal class Split + public Split(TimingType timingType, EldenRingSplitType eldenRingSplitType, object split) { - public Split(TimingType timingType, EldenRingSplitType eldenRingSplitType, object split) - { - TimingType = timingType; - EldenRingSplitType = eldenRingSplitType; + TimingType = timingType; + EldenRingSplitType = eldenRingSplitType; - switch (EldenRingSplitType) - { - default: - throw new ArgumentException($"unsupported split type {EldenRingSplitType}"); + switch (EldenRingSplitType) + { + default: + throw new ArgumentException($"unsupported split type {EldenRingSplitType}"); - case EldenRingSplitType.Boss: - Boss = (Boss)split; - Flag = (uint)Boss; - break; + case EldenRingSplitType.Boss: + Boss = (Boss)split; + Flag = (uint)Boss; + break; - case EldenRingSplitType.Grace: - Grace = (Grace)split; - Flag = (uint)Grace; - break; + case EldenRingSplitType.Grace: + Grace = (Grace)split; + Flag = (uint)Grace; + break; - case EldenRingSplitType.ItemPickup: - ItemPickup = (ItemPickup)split; - Flag = (uint)ItemPickup; - break; + case EldenRingSplitType.ItemPickup: + ItemPickup = (ItemPickup)split; + Flag = (uint)ItemPickup; + break; - case EldenRingSplitType.KnownFlag: - KnownFlag = (KnownFlag)split; - Flag = (uint)KnownFlag; - break; + case EldenRingSplitType.KnownFlag: + KnownFlag = (KnownFlag)split; + Flag = (uint)KnownFlag; + break; - case EldenRingSplitType.Flag: - Flag = (uint)split; - break; + case EldenRingSplitType.Flag: + Flag = (uint)split; + break; - case EldenRingSplitType.Item: - Item = (Item)split; - break; + case EldenRingSplitType.Item: + Item = (Item)split; + break; - case EldenRingSplitType.Position: - Position = (Position)split; - break; - } + case EldenRingSplitType.Position: + Position = (Position)split; + break; } + } - public readonly TimingType TimingType; - public readonly EldenRingSplitType EldenRingSplitType; - - public readonly Boss Boss; - public readonly Grace Grace; - public readonly ItemPickup ItemPickup; - public readonly KnownFlag KnownFlag; - public readonly Item Item = null!; - public readonly Position Position = null!; - public readonly uint Flag; + public readonly TimingType TimingType; + public readonly EldenRingSplitType EldenRingSplitType; + + public readonly Boss Boss; + public readonly Grace Grace; + public readonly ItemPickup ItemPickup; + public readonly KnownFlag KnownFlag; + public readonly Item Item = null!; + public readonly Position Position = null!; + public readonly uint Flag; - /// - /// Set to true when split conditions are met. Does not trigger a split until timing conditions are met - /// - public bool SplitConditionMet = false; - - /// - /// True after this split object cause a split. No longer need to check split conditions - /// - public bool SplitTriggered = false; - } + /// + /// Set to true when split conditions are met. Does not trigger a split until timing conditions are met + /// + public bool SplitConditionMet = false; + + /// + /// True after this split object cause a split. No longer need to check split conditions + /// + public bool SplitTriggered = false; } diff --git a/src/SoulSplitter/Splits/FlatSplit.cs b/src/SoulSplitter/Splits/FlatSplit.cs index 16e33e4..11bf881 100644 --- a/src/SoulSplitter/Splits/FlatSplit.cs +++ b/src/SoulSplitter/Splits/FlatSplit.cs @@ -16,12 +16,11 @@ using SoulSplitter.UI.Generic; -namespace SoulSplitter.Splits +namespace SoulSplitter.Splits; + +public class FlatSplit { - public class FlatSplit - { - public TimingType TimingType; - public SplitType SplitType; - public object Split = null!; - } + public TimingType TimingType; + public SplitType SplitType; + public object Split = null!; } diff --git a/src/SoulSplitter/Splits/Sekiro/Attribute.cs b/src/SoulSplitter/Splits/Sekiro/Attribute.cs index 1562d13..5687baf 100644 --- a/src/SoulSplitter/Splits/Sekiro/Attribute.cs +++ b/src/SoulSplitter/Splits/Sekiro/Attribute.cs @@ -18,40 +18,39 @@ using System.Xml.Serialization; using SoulSplitter.UI.Generic; -namespace SoulSplitter.Splits.Sekiro +namespace SoulSplitter.Splits.Sekiro; + +[XmlType(Namespace = "Sekiro")] +public class Attribute : ICustomNotifyPropertyChanged { - [XmlType(Namespace = "Sekiro")] - public class Attribute : ICustomNotifyPropertyChanged + [XmlElement(Namespace = "Sekiro")] + public SoulMemory.Sekiro.Attribute AttributeType + { + get => _attributeType; + set => this.SetField(ref _attributeType, value); + } + private SoulMemory.Sekiro.Attribute _attributeType; + + public int Level + { + get => _level; + set => this.SetField(ref _level, value); + } + private int _level; + + public override string ToString() { - [XmlElement(Namespace = "Sekiro")] - public SoulMemory.Sekiro.Attribute AttributeType - { - get => _attributeType; - set => this.SetField(ref _attributeType, value); - } - private SoulMemory.Sekiro.Attribute _attributeType; - - public int Level - { - get => _level; - set => this.SetField(ref _level, value); - } - private int _level; - - public override string ToString() - { - return $"{AttributeType} {Level}"; - } - - #region ICustomNotifyPropertyChanged - - public event PropertyChangedEventHandler? PropertyChanged; - - public void InvokePropertyChanged(string propertyName) - { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); - } - - #endregion + return $"{AttributeType} {Level}"; } + + #region ICustomNotifyPropertyChanged + + public event PropertyChangedEventHandler? PropertyChanged; + + public void InvokePropertyChanged(string propertyName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } + + #endregion } diff --git a/src/SoulSplitter/Splits/Sekiro/Split.cs b/src/SoulSplitter/Splits/Sekiro/Split.cs index 97f2f21..2cca142 100644 --- a/src/SoulSplitter/Splits/Sekiro/Split.cs +++ b/src/SoulSplitter/Splits/Sekiro/Split.cs @@ -18,62 +18,61 @@ using SoulMemory.Sekiro; using SoulSplitter.UI.Generic; -namespace SoulSplitter.Splits.Sekiro +namespace SoulSplitter.Splits.Sekiro; + +internal class Split { - internal class Split + public Split(TimingType timingType, SplitType splitType, object split) { - public Split(TimingType timingType, SplitType splitType, object split) - { - TimingType = timingType; - SplitType = splitType; + TimingType = timingType; + SplitType = splitType; - switch (SplitType) - { - default: - throw new ArgumentException($"unsupported split type {SplitType}"); + switch (SplitType) + { + default: + throw new ArgumentException($"unsupported split type {SplitType}"); - case SplitType.Boss: - Boss = (Boss)split; - Flag = (uint)Boss; - break; + case SplitType.Boss: + Boss = (Boss)split; + Flag = (uint)Boss; + break; - case SplitType.Bonfire: - Idol = (Idol)split; - Flag = (uint)Idol; - break; + case SplitType.Bonfire: + Idol = (Idol)split; + Flag = (uint)Idol; + break; - case SplitType.Position: - Position = (VectorSize)split; - break; + case SplitType.Position: + Position = (VectorSize)split; + break; - case SplitType.Attribute: - Attribute = (Attribute)split; - break; + case SplitType.Attribute: + Attribute = (Attribute)split; + break; - case SplitType.Flag: - Flag = ((FlagDescription)split).Flag; - break; - } + case SplitType.Flag: + Flag = ((FlagDescription)split).Flag; + break; } + } - public readonly TimingType TimingType; - public readonly SplitType SplitType; - - public readonly Boss Boss; - public readonly Idol Idol; - public readonly uint Flag; - public readonly VectorSize Position = null!; - public readonly Attribute Attribute = null!; + public readonly TimingType TimingType; + public readonly SplitType SplitType; + + public readonly Boss Boss; + public readonly Idol Idol; + public readonly uint Flag; + public readonly VectorSize Position = null!; + public readonly Attribute Attribute = null!; - /// - /// Set to true when split conditions are met. Does not trigger a split until timing conditions are met - /// - public bool SplitConditionMet = false; - - /// - /// True after this split object cause a split. No longer need to check split conditions - /// - public bool SplitTriggered = false; - } + /// + /// Set to true when split conditions are met. Does not trigger a split until timing conditions are met + /// + public bool SplitConditionMet = false; + + /// + /// True after this split object cause a split. No longer need to check split conditions + /// + public bool SplitTriggered = false; } diff --git a/src/SoulSplitter/Splitters/ArmoredCore6Splitter.cs b/src/SoulSplitter/Splitters/ArmoredCore6Splitter.cs index 1cd0195..83a4c07 100644 --- a/src/SoulSplitter/Splitters/ArmoredCore6Splitter.cs +++ b/src/SoulSplitter/Splitters/ArmoredCore6Splitter.cs @@ -23,111 +23,110 @@ using SoulSplitter.Splits.ArmoredCore6; using SoulSplitter.UI.Generic; -namespace SoulSplitter.Splitters +namespace SoulSplitter.Splitters; + +public class ArmoredCore6Splitter : BaseSplitter { - public class ArmoredCore6Splitter : BaseSplitter + private readonly ArmoredCore6 _armoredCore6; + public ArmoredCore6Splitter(LiveSplitState state, IGame game) : base(state, game) { - private readonly ArmoredCore6 _armoredCore6; - public ArmoredCore6Splitter(LiveSplitState state, IGame game) : base(state, game) - { - _armoredCore6 = (ArmoredCore6)game; - } + _armoredCore6 = (ArmoredCore6)game; + } - public override void OnStart() - { - //Copy splits on start - _splits = ( - from timingType in _mainViewModel.ArmoredCore6ViewModel.SplitsViewModel.Splits - from splitType in timingType.Children - from split in splitType.Children - select new Split(timingType.TimingType, splitType.SplitType, split.Split) - ).ToList(); - } + public override void OnStart() + { + //Copy splits on start + _splits = ( + from timingType in _mainViewModel.ArmoredCore6ViewModel.SplitsViewModel.Splits + from splitType in timingType.Children + from split in splitType.Children + select new Split(timingType.TimingType, splitType.SplitType, split.Split) + ).ToList(); + } - public override ResultErr OnUpdate() + public override ResultErr OnUpdate() + { + switch (_timerState) { - switch (_timerState) - { - case TimerState.Running: - _mainViewModel.TryAndHandleError(UpdateAutoSplitter); + case TimerState.Running: + _mainViewModel.TryAndHandleError(UpdateAutoSplitter); - var currentIgt = _armoredCore6.GetInGameTimeMilliseconds(); - //Detect game crash or quit out - if (currentIgt < 1000 && _inGameTime > 1000) - { - _inGameTime += currentIgt; - _armoredCore6.WriteInGameTimeMilliseconds(_inGameTime); - } + var currentIgt = _armoredCore6.GetInGameTimeMilliseconds(); + //Detect game crash or quit out + if (currentIgt < 1000 && _inGameTime > 1000) + { + _inGameTime += currentIgt; + _armoredCore6.WriteInGameTimeMilliseconds(_inGameTime); + } - if (currentIgt > _inGameTime) - { - _inGameTime = currentIgt; - } - _timerModel.CurrentState.SetGameTime(TimeSpan.FromMilliseconds(_inGameTime)); - break; - } + if (currentIgt > _inGameTime) + { + _inGameTime = currentIgt; + } + _timerModel.CurrentState.SetGameTime(TimeSpan.FromMilliseconds(_inGameTime)); + break; + } - return Result.Ok(); - } + return Result.Ok(); + } - #region Autosplitting + #region Autosplitting - private List _splits = new List(); - - private void UpdateAutoSplitter() + private List _splits = new List(); + + private void UpdateAutoSplitter() + { + if (_timerState != TimerState.Running) { - if (_timerState != TimerState.Running) - { - return; - } + return; + } - foreach (var s in _splits) + foreach (var s in _splits) + { + if (!s.SplitTriggered) { - if (!s.SplitTriggered) + if (!s.SplitConditionMet) { - if (!s.SplitConditionMet) + switch (s.SplitType) { - switch (s.SplitType) - { - default: - throw new ArgumentException($"Unsupported split type {s.SplitType}"); - - case SplitType.Flag: - s.SplitConditionMet = _armoredCore6.ReadEventFlag(s.Flag); - break; - } - } + default: + throw new ArgumentException($"Unsupported split type {s.SplitType}"); - if (s.SplitConditionMet) - { - ResolveSplitTiming(s); + case SplitType.Flag: + s.SplitConditionMet = _armoredCore6.ReadEventFlag(s.Flag); + break; } } + + if (s.SplitConditionMet) + { + ResolveSplitTiming(s); + } } } + } - private void ResolveSplitTiming(Split s) + private void ResolveSplitTiming(Split s) + { + switch (s.TimingType) { - switch (s.TimingType) - { - default: - throw new ArgumentException($"Unsupported timing type {s.TimingType}"); + default: + throw new ArgumentException($"Unsupported timing type {s.TimingType}"); - case TimingType.Immediate: + case TimingType.Immediate: + _timerModel.Split(); + s.SplitTriggered = true; + break; + + case TimingType.OnLoading: + if (_armoredCore6.IsLoadingScreenVisible()) + { _timerModel.Split(); s.SplitTriggered = true; - break; - - case TimingType.OnLoading: - if (_armoredCore6.IsLoadingScreenVisible()) - { - _timerModel.Split(); - s.SplitTriggered = true; - } - break; - } + } + break; } - #endregion } + #endregion } diff --git a/src/SoulSplitter/Splitters/BaseSplitter.cs b/src/SoulSplitter/Splitters/BaseSplitter.cs index 5278478..f32b619 100644 --- a/src/SoulSplitter/Splitters/BaseSplitter.cs +++ b/src/SoulSplitter/Splitters/BaseSplitter.cs @@ -19,86 +19,85 @@ using SoulMemory; using SoulSplitter.UI; -namespace SoulSplitter.Splitters +namespace SoulSplitter.Splitters; + +public abstract class BaseSplitter : ISplitter { - public abstract class BaseSplitter : ISplitter - { - protected readonly IGame _game; - protected readonly LiveSplitState _liveSplitState; - protected readonly TimerModel _timerModel; - protected MainViewModel _mainViewModel = null!; - protected int _inGameTime; - protected TimerState _timerState = TimerState.WaitForStart; + protected readonly IGame _game; + protected readonly LiveSplitState _liveSplitState; + protected readonly TimerModel _timerModel; + protected MainViewModel _mainViewModel = null!; + protected int _inGameTime; + protected TimerState _timerState = TimerState.WaitForStart; - protected BaseSplitter(LiveSplitState state, IGame game) - { - _liveSplitState = state; - _liveSplitState.OnStart += InternalStart; - _liveSplitState.OnReset += InternalReset; - _liveSplitState.IsGameTimePaused = true; - _game = game; + protected BaseSplitter(LiveSplitState state, IGame game) + { + _liveSplitState = state; + _liveSplitState.OnStart += InternalStart; + _liveSplitState.OnReset += InternalReset; + _liveSplitState.IsGameTimePaused = true; + _game = game; - _timerModel = new TimerModel(); - _timerModel.CurrentState = state; - } - public ResultErr Update(MainViewModel mainViewModel) + _timerModel = new TimerModel(); + _timerModel.CurrentState = state; + } + public ResultErr Update(MainViewModel mainViewModel) + { + var refreshResult = _game.TryRefresh(); + if (refreshResult.IsErr) { - var refreshResult = _game.TryRefresh(); - if (refreshResult.IsErr) - { - return refreshResult; - } - - _mainViewModel.TryAndHandleError(() => _mainViewModel.FlagTrackerViewModel.Update(_game)); - return OnUpdate(); + return refreshResult; } - public void SetViewModel(MainViewModel mainViewModel) - { - _mainViewModel = mainViewModel; - } + _mainViewModel.TryAndHandleError(() => _mainViewModel.FlagTrackerViewModel.Update(_game)); + return OnUpdate(); + } - private void InternalStart(object sender, EventArgs e) - { - _liveSplitState.IsGameTimePaused = true; - _timerState = TimerState.Running; - _inGameTime = _game.GetInGameTimeMilliseconds(); - _mainViewModel.FlagTrackerViewModel.Start(); - _timerModel.Start(); - OnStart(); - } + public void SetViewModel(MainViewModel mainViewModel) + { + _mainViewModel = mainViewModel; + } - private void InternalReset(object sender, TimerPhase timerPhase) - { - _timerState = TimerState.WaitForStart; - _inGameTime = 0; - _mainViewModel.FlagTrackerViewModel.Reset(); - _timerModel.Reset(); - OnReset(); - } + private void InternalStart(object sender, EventArgs e) + { + _liveSplitState.IsGameTimePaused = true; + _timerState = TimerState.Running; + _inGameTime = _game.GetInGameTimeMilliseconds(); + _mainViewModel.FlagTrackerViewModel.Start(); + _timerModel.Start(); + OnStart(); + } - #region Disposing + private void InternalReset(object sender, TimerPhase timerPhase) + { + _timerState = TimerState.WaitForStart; + _inGameTime = 0; + _mainViewModel.FlagTrackerViewModel.Reset(); + _timerModel.Reset(); + OnReset(); + } - public void Dispose() - { - Dispose(true); - GC.SuppressFinalize(this); - } + #region Disposing + + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } - protected virtual void Dispose(bool disposing) + protected virtual void Dispose(bool disposing) + { + if (disposing) { - if (disposing) - { - _liveSplitState.OnStart -= InternalStart; - _liveSplitState.OnReset -= InternalReset; - } + _liveSplitState.OnStart -= InternalStart; + _liveSplitState.OnReset -= InternalReset; } + } - public virtual void OnStart() { } - public virtual ResultErr OnUpdate() { return Result.Ok();} - public virtual void OnReset() { } + public virtual void OnStart() { } + public virtual ResultErr OnUpdate() { return Result.Ok();} + public virtual void OnReset() { } - #endregion - } + #endregion } diff --git a/src/SoulSplitter/Splitters/DarkSouls1Splitter.cs b/src/SoulSplitter/Splitters/DarkSouls1Splitter.cs index ba7c464..d4ca696 100644 --- a/src/SoulSplitter/Splitters/DarkSouls1Splitter.cs +++ b/src/SoulSplitter/Splitters/DarkSouls1Splitter.cs @@ -25,399 +25,398 @@ using SoulSplitter.UI; using SoulSplitter.UI.Generic; -namespace SoulSplitter.Splitters +namespace SoulSplitter.Splitters; + +public class DarkSouls1Splitter : ISplitter { - public class DarkSouls1Splitter : ISplitter - { - private readonly IDarkSouls1 _darkSouls1; - private readonly DropMod _dropMod; - private MainViewModel _mainViewModel; + private readonly IDarkSouls1 _darkSouls1; + private readonly DropMod _dropMod; + private MainViewModel _mainViewModel; - public DarkSouls1Splitter(ITimerModel timerModel, IDarkSouls1 darkSouls1, MainViewModel mainViewModel) - { - _mainViewModel = mainViewModel; - _darkSouls1 = darkSouls1; - _dropMod = new DropMod(_darkSouls1); - _timerModel = timerModel; - _timerModel.CurrentState.OnStart += OnStart; - _timerModel.CurrentState.OnReset += OnReset; - _timerModel.CurrentState.IsGameTimePaused = true; - } + public DarkSouls1Splitter(ITimerModel timerModel, IDarkSouls1 darkSouls1, MainViewModel mainViewModel) + { + _mainViewModel = mainViewModel; + _darkSouls1 = darkSouls1; + _dropMod = new DropMod(_darkSouls1); + _timerModel = timerModel; + _timerModel.CurrentState.OnStart += OnStart; + _timerModel.CurrentState.OnReset += OnReset; + _timerModel.CurrentState.IsGameTimePaused = true; + } - public void SetViewModel(MainViewModel mainViewModel) - { - _mainViewModel = mainViewModel; - } + public void SetViewModel(MainViewModel mainViewModel) + { + _mainViewModel = mainViewModel; + } - public ResultErr Update(MainViewModel mainViewModel) + public ResultErr Update(MainViewModel mainViewModel) + { + var result = _darkSouls1.TryRefresh(); + if (result.IsErr) { - var result = _darkSouls1.TryRefresh(); - if (result.IsErr) + mainViewModel.AddRefreshError(result.GetErr()); + if (_mainViewModel.DarkSouls1ViewModel.DropModType != DropModType.None) { - mainViewModel.AddRefreshError(result.GetErr()); - if (_mainViewModel.DarkSouls1ViewModel.DropModType != DropModType.None) - { - _mainViewModel.DarkSouls1ViewModel.DropModRequestInitialisation = true; - } - return result; + _mainViewModel.DarkSouls1ViewModel.DropModRequestInitialisation = true; } - - mainViewModel.TryAndHandleError(() => - { - mainViewModel.DarkSouls1ViewModel.CurrentPosition = _darkSouls1.GetPosition(); - }); - - mainViewModel.TryAndHandleError(UpdateTimer); - mainViewModel.TryAndHandleError(UpdateAutoSplitter); - mainViewModel.TryAndHandleError(UpdateDropMod); - return result; } - public void Dispose() + mainViewModel.TryAndHandleError(() => { - Dispose(true); - GC.SuppressFinalize(this); - } + mainViewModel.DarkSouls1ViewModel.CurrentPosition = _darkSouls1.GetPosition(); + }); - protected virtual void Dispose(bool disposing) - { - if (disposing) - { - _timerModel.CurrentState.OnStart -= OnStart; - _timerModel.CurrentState.OnReset -= OnReset; - } - } + mainViewModel.TryAndHandleError(UpdateTimer); + mainViewModel.TryAndHandleError(UpdateAutoSplitter); + mainViewModel.TryAndHandleError(UpdateDropMod); - private void OnStart(object sender, EventArgs e) + return result; + } + + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + + protected virtual void Dispose(bool disposing) + { + if (disposing) { - StartTimer(); - StartAutoSplitting(); - _mainViewModel.FlagTrackerViewModel.Start(); + _timerModel.CurrentState.OnStart -= OnStart; + _timerModel.CurrentState.OnReset -= OnReset; } + } + + private void OnStart(object sender, EventArgs e) + { + StartTimer(); + StartAutoSplitting(); + _mainViewModel.FlagTrackerViewModel.Start(); + } - private void OnReset(object sender, TimerPhase timerPhase) + private void OnReset(object sender, TimerPhase timerPhase) + { + ResetTimer(); + _mainViewModel.FlagTrackerViewModel.Reset(); + if(_mainViewModel.DarkSouls1ViewModel.DropModType == DropModType.AllAchievements) { - ResetTimer(); - _mainViewModel.FlagTrackerViewModel.Reset(); - if(_mainViewModel.DarkSouls1ViewModel.DropModType == DropModType.AllAchievements) - { - _dropMod.ResetAllAchievements(); - } + _dropMod.ResetAllAchievements(); } + } - #region Timer + #region Timer - private readonly ITimerModel _timerModel; - private int _inGameTime; - private TimerState _timerState = TimerState.WaitForStart; - private string? _savefilePath = null; - private int _saveSlot = -1; - private int _previousIgt = 0; - private bool _previousCredits = false; + private readonly ITimerModel _timerModel; + private int _inGameTime; + private TimerState _timerState = TimerState.WaitForStart; + private string? _savefilePath = null; + private int _saveSlot = -1; + private int _previousIgt = 0; + private bool _previousCredits = false; - private void StartTimer() + private void StartTimer() + { + if (_mainViewModel.DarkSouls1ViewModel.ResetInventoryIndices) { - if (_mainViewModel.DarkSouls1ViewModel.ResetInventoryIndices) - { - _darkSouls1.ResetInventoryIndices(); - } - - _timerModel.CurrentState.IsGameTimePaused = true; - _timerModel.CurrentState.CurrentTimingMethod = LiveSplit.Model.TimingMethod.GameTime; - _timerState = TimerState.Running; - _inGameTime = _darkSouls1.GetInGameTimeMilliseconds(); + _darkSouls1.ResetInventoryIndices(); } - private void ResetTimer() - { - _savefilePath = null; - _saveSlot = -1; - _timerState = TimerState.WaitForStart; - _inGameTime = 0; - _previousIgt = 0; - _previousCredits = false; - _mainViewModel.FlagTrackerViewModel.Reset(); - } + _timerModel.CurrentState.IsGameTimePaused = true; + _timerModel.CurrentState.CurrentTimingMethod = LiveSplit.Model.TimingMethod.GameTime; + _timerState = TimerState.Running; + _inGameTime = _darkSouls1.GetInGameTimeMilliseconds(); + } - private void UpdateTimer() + private void ResetTimer() + { + _savefilePath = null; + _saveSlot = -1; + _timerState = TimerState.WaitForStart; + _inGameTime = 0; + _previousIgt = 0; + _previousCredits = false; + _mainViewModel.FlagTrackerViewModel.Reset(); + } + + private void UpdateTimer() + { + switch (_timerState) { - switch (_timerState) - { - case TimerState.WaitForStart: - if (_mainViewModel.DarkSouls1ViewModel.StartAutomatically) + case TimerState.WaitForStart: + if (_mainViewModel.DarkSouls1ViewModel.StartAutomatically) + { + var igt = _darkSouls1.GetInGameTimeMilliseconds(); + if (igt > 0 && igt < 150) { - var igt = _darkSouls1.GetInGameTimeMilliseconds(); - if (igt > 0 && igt < 150) - { - _timerModel.Start(); - } + _timerModel.Start(); } - break; + } + break; - case TimerState.Running: - var currentIgt = _darkSouls1.GetInGameTimeMilliseconds(); - if (currentIgt != 0) + case TimerState.Running: + var currentIgt = _darkSouls1.GetInGameTimeMilliseconds(); + if (currentIgt != 0) + { + //Only latch in these values if IGT is not 0, which means where actually on a save. + //You can otherwise start the timer on the main menu, which would latch in any kind of saveslot, + //but not the real saveslot used later on + if (_savefilePath == null) { - //Only latch in these values if IGT is not 0, which means where actually on a save. - //You can otherwise start the timer on the main menu, which would latch in any kind of saveslot, - //but not the real saveslot used later on - if (_savefilePath == null) - { - _savefilePath = _darkSouls1.GetSaveFileLocation(); //Maybe this path can be internal, the slot however can not. - _saveSlot = _darkSouls1.GetCurrentSaveSlot(); - } - - _inGameTime = currentIgt; + _savefilePath = _darkSouls1.GetSaveFileLocation(); //Maybe this path can be internal, the slot however can not. + _saveSlot = _darkSouls1.GetCurrentSaveSlot(); } + _inGameTime = currentIgt; + } + - var credits = _darkSouls1.AreCreditsRolling(); + var credits = _darkSouls1.AreCreditsRolling(); - if ( - //Detect going from a savefile to the main menu - //Only do this once to prevent save file reading race conditions - (currentIgt == 0 && _previousIgt != 0) || + if ( + //Detect going from a savefile to the main menu + //Only do this once to prevent save file reading race conditions + (currentIgt == 0 && _previousIgt != 0) || - //When the credits are active, show savefile time as well - (credits && credits != _previousCredits) + //When the credits are active, show savefile time as well + (credits && credits != _previousCredits) - ) + ) + { + Debug.WriteLine("Read savefile time"); + var saveFileTime = _darkSouls1.GetSaveFileGameTimeMilliseconds(_savefilePath!, _saveSlot); + if (saveFileTime != 0) { - Debug.WriteLine("Read savefile time"); - var saveFileTime = _darkSouls1.GetSaveFileGameTimeMilliseconds(_savefilePath!, _saveSlot); - if (saveFileTime != 0) - { - _inGameTime = saveFileTime; - } + _inGameTime = saveFileTime; } + } - _previousCredits = credits; - _previousIgt = currentIgt; - _timerModel.CurrentState.SetGameTime(TimeSpan.FromMilliseconds(_inGameTime)); + _previousCredits = credits; + _previousIgt = currentIgt; + _timerModel.CurrentState.SetGameTime(TimeSpan.FromMilliseconds(_inGameTime)); - //Update flag tracker only when the timer is running - _mainViewModel.TryAndHandleError(() => - { - _mainViewModel.FlagTrackerViewModel.Update(_darkSouls1); - }); - break; - } + //Update flag tracker only when the timer is running + _mainViewModel.TryAndHandleError(() => + { + _mainViewModel.FlagTrackerViewModel.Update(_darkSouls1); + }); + break; } + } - #endregion + #endregion - #region Autosplitting + #region Autosplitting - private List _splits = new List(); - - private void StartAutoSplitting() + private List _splits = new List(); + + private void StartAutoSplitting() + { + _splits = ( + from timingType in _mainViewModel.DarkSouls1ViewModel.SplitsViewModel.Splits + from splitType in timingType.Children + from split in splitType.Children + select new Split(timingType.TimingType, splitType.SplitType, split.Split) + ).ToList(); + } + + public void UpdateAutoSplitter() + { + TrackWarps(); + + if (_timerState != TimerState.Running) { - _splits = ( - from timingType in _mainViewModel.DarkSouls1ViewModel.SplitsViewModel.Splits - from splitType in timingType.Children - from split in splitType.Children - select new Split(timingType.TimingType, splitType.SplitType, split.Split) - ).ToList(); + return; } - public void UpdateAutoSplitter() + List? inventory = null; + foreach (var s in _splits) { - TrackWarps(); - - if (_timerState != TimerState.Running) + if (!s.SplitTriggered) { - return; - } - - List? inventory = null; - foreach (var s in _splits) - { - if (!s.SplitTriggered) + if (!s.SplitConditionMet) { - if (!s.SplitConditionMet) + switch (s.SplitType) { - switch (s.SplitType) - { - default: - throw new ArgumentException($"Unsupported split type {s.SplitType}"); - - case SplitType.Boss: - case SplitType.KnownFlag: - case SplitType.Flag: - s.SplitConditionMet = _darkSouls1.ReadEventFlag(s.Flag); - break; - - case SplitType.Attribute: - s.SplitConditionMet = _darkSouls1.GetAttribute(s.Attribute.AttributeType) >= s.Attribute.Level; - break; - - case SplitType.Position: - if (s.Position.Position.X + s.Position.Size > _mainViewModel.DarkSouls1ViewModel.CurrentPosition.X && - s.Position.Position.X - s.Position.Size < _mainViewModel.DarkSouls1ViewModel.CurrentPosition.X && - - s.Position.Position.Y + s.Position.Size > _mainViewModel.DarkSouls1ViewModel.CurrentPosition.Y && - s.Position.Position.Y - s.Position.Size < _mainViewModel.DarkSouls1ViewModel.CurrentPosition.Y && - - s.Position.Position.Z + s.Position.Size > _mainViewModel.DarkSouls1ViewModel.CurrentPosition.Z && - s.Position.Position.Z - s.Position.Size < _mainViewModel.DarkSouls1ViewModel.CurrentPosition.Z) - { - s.SplitConditionMet = true; - } - break; - - case SplitType.Bonfire: - s.SplitConditionMet = _darkSouls1.GetBonfireState(s.BonfireState.Bonfire!.Value) >= s.BonfireState.State; - break; - - case SplitType.Item: - if (inventory == null) - { - inventory = _darkSouls1.GetInventory(); - } - s.SplitConditionMet = inventory.Any(i => i.ItemType == s.ItemState.ItemType); - break; - - case SplitType.Credits: - s.SplitConditionMet = _darkSouls1.AreCreditsRolling(); - break; - } + default: + throw new ArgumentException($"Unsupported split type {s.SplitType}"); + + case SplitType.Boss: + case SplitType.KnownFlag: + case SplitType.Flag: + s.SplitConditionMet = _darkSouls1.ReadEventFlag(s.Flag); + break; + + case SplitType.Attribute: + s.SplitConditionMet = _darkSouls1.GetAttribute(s.Attribute.AttributeType) >= s.Attribute.Level; + break; + + case SplitType.Position: + if (s.Position.Position.X + s.Position.Size > _mainViewModel.DarkSouls1ViewModel.CurrentPosition.X && + s.Position.Position.X - s.Position.Size < _mainViewModel.DarkSouls1ViewModel.CurrentPosition.X && + + s.Position.Position.Y + s.Position.Size > _mainViewModel.DarkSouls1ViewModel.CurrentPosition.Y && + s.Position.Position.Y - s.Position.Size < _mainViewModel.DarkSouls1ViewModel.CurrentPosition.Y && + + s.Position.Position.Z + s.Position.Size > _mainViewModel.DarkSouls1ViewModel.CurrentPosition.Z && + s.Position.Position.Z - s.Position.Size < _mainViewModel.DarkSouls1ViewModel.CurrentPosition.Z) + { + s.SplitConditionMet = true; + } + break; + + case SplitType.Bonfire: + s.SplitConditionMet = _darkSouls1.GetBonfireState(s.BonfireState.Bonfire!.Value) >= s.BonfireState.State; + break; + + case SplitType.Item: + if (inventory == null) + { + inventory = _darkSouls1.GetInventory(); + } + s.SplitConditionMet = inventory.Any(i => i.ItemType == s.ItemState.ItemType); + break; + + case SplitType.Credits: + s.SplitConditionMet = _darkSouls1.AreCreditsRolling(); + break; } + } - if (s.SplitConditionMet) - { - ResolveSplitTiming(s); - } + if (s.SplitConditionMet) + { + ResolveSplitTiming(s); } } } + } - private void ResolveSplitTiming(Split s) + private void ResolveSplitTiming(Split s) + { + switch (s.TimingType) { - switch (s.TimingType) - { - default: - throw new ArgumentException($"Unsupported timing type {s.TimingType}"); + default: + throw new ArgumentException($"Unsupported timing type {s.TimingType}"); - case TimingType.Immediate: - _timerModel.Split(); - s.SplitTriggered = true; - break; + case TimingType.Immediate: + _timerModel.Split(); + s.SplitTriggered = true; + break; - case TimingType.OnLoading: - if (!s.Quitout && !_darkSouls1.IsPlayerLoaded()) - { - s.Quitout = true; - } + case TimingType.OnLoading: + if (!s.Quitout && !_darkSouls1.IsPlayerLoaded()) + { + s.Quitout = true; + } - if (s.Quitout && _darkSouls1.IsPlayerLoaded()) - { - _timerModel.Split(); - s.SplitTriggered = true; - } - break; + if (s.Quitout && _darkSouls1.IsPlayerLoaded()) + { + _timerModel.Split(); + s.SplitTriggered = true; + } + break; - case TimingType.OnWarp: - if (!_darkSouls1.IsPlayerLoaded() && _isWarping) - { - _timerModel.Split(); - s.SplitTriggered = true; - } - break; - } + case TimingType.OnWarp: + if (!_darkSouls1.IsPlayerLoaded() && _isWarping) + { + _timerModel.Split(); + s.SplitTriggered = true; + } + break; } + } - private bool _isWarpRequested = false; - private bool _isWarping = false; - private bool _warpHasPlayerBeenUnloaded = false; + private bool _isWarpRequested = false; + private bool _isWarping = false; + private bool _warpHasPlayerBeenUnloaded = false; - private void TrackWarps() - { - //Track warps - the game handles warps before the loading screen starts. - //That's why they have to be tracked while playing, and then resolved on the next loading screen + private void TrackWarps() + { + //Track warps - the game handles warps before the loading screen starts. + //That's why they have to be tracked while playing, and then resolved on the next loading screen - if (!_isWarpRequested) - { - _isWarpRequested = _darkSouls1.IsWarpRequested(); - return; - } + if (!_isWarpRequested) + { + _isWarpRequested = _darkSouls1.IsWarpRequested(); + return; + } - var isPlayerLoaded = _darkSouls1.IsPlayerLoaded(); + var isPlayerLoaded = _darkSouls1.IsPlayerLoaded(); - //Warp is requested - wait for loading screen - if (_isWarpRequested) + //Warp is requested - wait for loading screen + if (_isWarpRequested) + { + if (!_warpHasPlayerBeenUnloaded) { - if (!_warpHasPlayerBeenUnloaded) + if (!isPlayerLoaded) { - if (!isPlayerLoaded) - { - _warpHasPlayerBeenUnloaded = true; - } - } - else - { - _isWarping = true; - } - - if (_isWarping && isPlayerLoaded) - { - _isWarping = false; - _warpHasPlayerBeenUnloaded = false; - _isWarpRequested = false; + _warpHasPlayerBeenUnloaded = true; } } - } - #endregion - - #region Dropmod - private void UpdateDropMod() - { - var process = _darkSouls1.GetProcess(); - - - //Check exit request - if (_mainViewModel.DarkSouls1ViewModel.DropModRequestGameExit) + else { - _mainViewModel.DarkSouls1ViewModel.DropModRequestGameExit = false; - _darkSouls1.GetProcess()!.Kill(); - return; + _isWarping = true; } - //check init request - if(_mainViewModel.DarkSouls1ViewModel.DropModRequestInitialisation) + if (_isWarping && isPlayerLoaded) { - _mainViewModel.DarkSouls1ViewModel.DropModRequestInitialisation = false; - switch (_mainViewModel.DarkSouls1ViewModel.DropModType) - { - default: - throw new InvalidOperationException($"Invalid DropModType {_mainViewModel.DarkSouls1ViewModel.DropModType}"); + _isWarping = false; + _warpHasPlayerBeenUnloaded = false; + _isWarpRequested = false; + } + } + } + #endregion - case DropModType.AnyPercent: - _dropMod.InitBkh(); - break; + #region Dropmod + private void UpdateDropMod() + { + var process = _darkSouls1.GetProcess(); + - case DropModType.AllAchievements: - _dropMod.InitAllAchievements(); - break; - } - } + //Check exit request + if (_mainViewModel.DarkSouls1ViewModel.DropModRequestGameExit) + { + _mainViewModel.DarkSouls1ViewModel.DropModRequestGameExit = false; + _darkSouls1.GetProcess()!.Kill(); + return; + } - //update + //check init request + if(_mainViewModel.DarkSouls1ViewModel.DropModRequestInitialisation) + { + _mainViewModel.DarkSouls1ViewModel.DropModRequestInitialisation = false; switch (_mainViewModel.DarkSouls1ViewModel.DropModType) { default: - case DropModType.None: - case DropModType.AnyPercent: + throw new InvalidOperationException($"Invalid DropModType {_mainViewModel.DarkSouls1ViewModel.DropModType}"); + + case DropModType.AnyPercent: + _dropMod.InitBkh(); break; case DropModType.AllAchievements: - _dropMod.UpdateAllAchievements(); + _dropMod.InitAllAchievements(); break; } } - #endregion + + //update + switch (_mainViewModel.DarkSouls1ViewModel.DropModType) + { + default: + case DropModType.None: + case DropModType.AnyPercent: + break; + + case DropModType.AllAchievements: + _dropMod.UpdateAllAchievements(); + break; + } } + #endregion } diff --git a/src/SoulSplitter/Splitters/DarkSouls2Splitter.cs b/src/SoulSplitter/Splitters/DarkSouls2Splitter.cs index 2297054..a5ea544 100644 --- a/src/SoulSplitter/Splitters/DarkSouls2Splitter.cs +++ b/src/SoulSplitter/Splitters/DarkSouls2Splitter.cs @@ -25,243 +25,242 @@ using SoulSplitter.UI.DarkSouls2; using SoulSplitter.UI.Generic; -namespace SoulSplitter.Splitters +namespace SoulSplitter.Splitters; + +public class DarkSouls2Splitter : ISplitter { - public class DarkSouls2Splitter : ISplitter + private readonly DarkSouls2 _darkSouls2; + private DarkSouls2ViewModel _darkSouls2ViewModel = null!; + private MainViewModel _mainViewModel = null!; + private readonly LiveSplitState _liveSplitState; + + public DarkSouls2Splitter(LiveSplitState state, DarkSouls2 darkSouls2) { - private readonly DarkSouls2 _darkSouls2; - private DarkSouls2ViewModel _darkSouls2ViewModel = null!; - private MainViewModel _mainViewModel = null!; - private readonly LiveSplitState _liveSplitState; - - public DarkSouls2Splitter(LiveSplitState state, DarkSouls2 darkSouls2) - { - _darkSouls2 = darkSouls2; - _liveSplitState = state; - _liveSplitState.OnStart += OnStart; - _liveSplitState.OnReset += OnReset; - _liveSplitState.IsGameTimePaused = true; - - _timerModel = new TimerModel(); - _timerModel.CurrentState = state; - } + _darkSouls2 = darkSouls2; + _liveSplitState = state; + _liveSplitState.OnStart += OnStart; + _liveSplitState.OnReset += OnReset; + _liveSplitState.IsGameTimePaused = true; + + _timerModel = new TimerModel(); + _timerModel.CurrentState = state; + } - public void SetViewModel(MainViewModel mainViewModel) - { - _mainViewModel = mainViewModel; - } + public void SetViewModel(MainViewModel mainViewModel) + { + _mainViewModel = mainViewModel; + } - #region + #region - private void OnStart(object sender, EventArgs e) - { - StartTimer(); - StartAutoSplitting(); - } + private void OnStart(object sender, EventArgs e) + { + StartTimer(); + StartAutoSplitting(); + } - private void OnReset(object sender, TimerPhase timerPhase) - { - ResetTimer(); - ResetAutoSplitting(); - } + private void OnReset(object sender, TimerPhase timerPhase) + { + ResetTimer(); + ResetAutoSplitting(); + } - public void Dispose() - { - Dispose(true); - GC.SuppressFinalize(this); - } + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } - protected virtual void Dispose(bool disposing) + protected virtual void Dispose(bool disposing) + { + if (disposing) { - if (disposing) - { - _liveSplitState.OnStart -= OnStart; - _liveSplitState.OnReset -= OnReset; - } + _liveSplitState.OnStart -= OnStart; + _liveSplitState.OnReset -= OnReset; } + } - public ResultErr Update(MainViewModel mainViewModel) - { - _darkSouls2ViewModel = mainViewModel.DarkSouls2ViewModel; + public ResultErr Update(MainViewModel mainViewModel) + { + _darkSouls2ViewModel = mainViewModel.DarkSouls2ViewModel; - _darkSouls2.TryRefresh(); - - _darkSouls2ViewModel.CurrentPosition = _darkSouls2.GetPosition(); - - UpdateTimer(); + _darkSouls2.TryRefresh(); + + _darkSouls2ViewModel.CurrentPosition = _darkSouls2.GetPosition(); + + UpdateTimer(); - UpdateAutoSplitter(); + UpdateAutoSplitter(); - mainViewModel.TryAndHandleError(() => - { - mainViewModel.FlagTrackerViewModel.Update(_darkSouls2); - }); + mainViewModel.TryAndHandleError(() => + { + mainViewModel.FlagTrackerViewModel.Update(_darkSouls2); + }); - return Result.Ok(); - } - - #endregion + return Result.Ok(); + } + + #endregion - #region Timer + #region Timer - private bool _previousIsLoading; - private readonly TimerModel _timerModel; - private TimerState _timerState = TimerState.WaitForStart; - - private void StartTimer() - { - _timerState = TimerState.Running; - _liveSplitState.IsGameTimePaused = false; - _previousIsLoading = _darkSouls2.IsLoading(); - _timerModel.Start(); - } + private bool _previousIsLoading; + private readonly TimerModel _timerModel; + private TimerState _timerState = TimerState.WaitForStart; + + private void StartTimer() + { + _timerState = TimerState.Running; + _liveSplitState.IsGameTimePaused = false; + _previousIsLoading = _darkSouls2.IsLoading(); + _timerModel.Start(); + } - private void ResetTimer() - { - _timerState = TimerState.WaitForStart; - _liveSplitState.IsGameTimePaused = true; - _timerModel.Reset(); - } + private void ResetTimer() + { + _timerState = TimerState.WaitForStart; + _liveSplitState.IsGameTimePaused = true; + _timerModel.Reset(); + } - private void UpdateTimer() + private void UpdateTimer() + { + switch (_timerState) { - switch (_timerState) - { - case TimerState.WaitForStart: - if (_darkSouls2ViewModel.StartAutomatically) + case TimerState.WaitForStart: + if (_darkSouls2ViewModel.StartAutomatically) + { + var loading = _darkSouls2.IsLoading(); + if (!loading) { - var loading = _darkSouls2.IsLoading(); - if (!loading) + var position = _darkSouls2.GetPosition(); + if( + position.Y < -322.0f && position.Y > -323.0f && + position.X < -213.0f && position.X > -214.0f) { - var position = _darkSouls2.GetPosition(); - if( - position.Y < -322.0f && position.Y > -323.0f && - position.X < -213.0f && position.X > -214.0f) - { - _timerModel.Start(); - } + _timerModel.Start(); } } - break; + } + break; - case TimerState.Running: - //Pause on loads - if (_previousIsLoading != _darkSouls2.IsLoading()) + case TimerState.Running: + //Pause on loads + if (_previousIsLoading != _darkSouls2.IsLoading()) + { + if (_darkSouls2.IsLoading()) { - if (_darkSouls2.IsLoading()) - { - _liveSplitState.IsGameTimePaused = true; - } - else - { - _liveSplitState.IsGameTimePaused = false; - } + _liveSplitState.IsGameTimePaused = true; } - _previousIsLoading = _darkSouls2.IsLoading(); - break; - } + else + { + _liveSplitState.IsGameTimePaused = false; + } + } + _previousIsLoading = _darkSouls2.IsLoading(); + break; } - - #endregion + } + + #endregion - #region Autosplitting + #region Autosplitting - private List _splits = new List(); + private List _splits = new List(); - public void ResetAutoSplitting() - { - _splits.Clear(); - } + public void ResetAutoSplitting() + { + _splits.Clear(); + } - public void StartAutoSplitting() - { - _splits = ( - from timingType in _darkSouls2ViewModel.Splits - from splitType in timingType.Children - from split in splitType.Children - select new Split(timingType.TimingType, splitType.SplitType, split.Split) - ).ToList(); - } + public void StartAutoSplitting() + { + _splits = ( + from timingType in _darkSouls2ViewModel.Splits + from splitType in timingType.Children + from split in splitType.Children + select new Split(timingType.TimingType, splitType.SplitType, split.Split) + ).ToList(); + } - private const float _boxSize = 5.0f; - public void UpdateAutoSplitter() + private const float _boxSize = 5.0f; + public void UpdateAutoSplitter() + { + if (_timerState != TimerState.Running) { - if (_timerState != TimerState.Running) - { - return; - } - - foreach (var s in _splits) + return; + } + + foreach (var s in _splits) + { + if (!s.SplitTriggered) { - if (!s.SplitTriggered) + if (!s.SplitConditionMet) { - if (!s.SplitConditionMet) + switch (s.SplitType) { - switch (s.SplitType) - { - default: - throw new ArgumentException($"Unsupported split type {s.SplitType}"); - - case DarkSouls2SplitType.Flag: - s.SplitConditionMet = _darkSouls2.ReadEventFlag(s.Flag); - break; - - case DarkSouls2SplitType.BossKill: - s.SplitConditionMet = _darkSouls2.GetBossKillCount(s.BossKill.BossType) == s.BossKill.Count; - break; - - case DarkSouls2SplitType.Attribute: - s.SplitConditionMet = _darkSouls2.GetAttribute(s.Attribute.AttributeType) >= s.Attribute.Level; - break; - - case DarkSouls2SplitType.Position: - if (s.Position.X + _boxSize > _darkSouls2ViewModel.CurrentPosition.X && - s.Position.X - _boxSize < _darkSouls2ViewModel.CurrentPosition.X && - - s.Position.Y + _boxSize > _darkSouls2ViewModel.CurrentPosition.Y && - s.Position.Y - _boxSize < _darkSouls2ViewModel.CurrentPosition.Y && - - s.Position.Z + _boxSize > _darkSouls2ViewModel.CurrentPosition.Z && - s.Position.Z - _boxSize < _darkSouls2ViewModel.CurrentPosition.Z) - { - s.SplitConditionMet = true; - } - break; - } - } + default: + throw new ArgumentException($"Unsupported split type {s.SplitType}"); - if (s.SplitConditionMet) - { - ResolveSplitTiming(s); + case DarkSouls2SplitType.Flag: + s.SplitConditionMet = _darkSouls2.ReadEventFlag(s.Flag); + break; + + case DarkSouls2SplitType.BossKill: + s.SplitConditionMet = _darkSouls2.GetBossKillCount(s.BossKill.BossType) == s.BossKill.Count; + break; + + case DarkSouls2SplitType.Attribute: + s.SplitConditionMet = _darkSouls2.GetAttribute(s.Attribute.AttributeType) >= s.Attribute.Level; + break; + + case DarkSouls2SplitType.Position: + if (s.Position.X + _boxSize > _darkSouls2ViewModel.CurrentPosition.X && + s.Position.X - _boxSize < _darkSouls2ViewModel.CurrentPosition.X && + + s.Position.Y + _boxSize > _darkSouls2ViewModel.CurrentPosition.Y && + s.Position.Y - _boxSize < _darkSouls2ViewModel.CurrentPosition.Y && + + s.Position.Z + _boxSize > _darkSouls2ViewModel.CurrentPosition.Z && + s.Position.Z - _boxSize < _darkSouls2ViewModel.CurrentPosition.Z) + { + s.SplitConditionMet = true; + } + break; } } + + if (s.SplitConditionMet) + { + ResolveSplitTiming(s); + } } } + } - private void ResolveSplitTiming(Split s) + private void ResolveSplitTiming(Split s) + { + switch (s.TimingType) { - switch (s.TimingType) - { - default: - throw new ArgumentException($"Unsupported timing type {s.TimingType}"); + default: + throw new ArgumentException($"Unsupported timing type {s.TimingType}"); - case TimingType.Immediate: + case TimingType.Immediate: + _timerModel.Split(); + s.SplitTriggered = true; + break; + + case TimingType.OnLoading: + if (_darkSouls2.IsLoading()) + { _timerModel.Split(); s.SplitTriggered = true; - break; - - case TimingType.OnLoading: - if (_darkSouls2.IsLoading()) - { - _timerModel.Split(); - s.SplitTriggered = true; - } - break; - } + } + break; } - #endregion - } + #endregion + } diff --git a/src/SoulSplitter/Splitters/DarkSouls3Splitter.cs b/src/SoulSplitter/Splitters/DarkSouls3Splitter.cs index 5e74d18..4abe124 100644 --- a/src/SoulSplitter/Splitters/DarkSouls3Splitter.cs +++ b/src/SoulSplitter/Splitters/DarkSouls3Splitter.cs @@ -25,260 +25,259 @@ using SoulSplitter.UI.DarkSouls3; using SoulSplitter.UI.Generic; -namespace SoulSplitter.Splitters +namespace SoulSplitter.Splitters; + +public class DarkSouls3Splitter : ISplitter { - public class DarkSouls3Splitter : ISplitter + private readonly LiveSplitState _liveSplitState = null!; + private readonly DarkSouls3 _darkSouls3 = null!; + private DarkSouls3ViewModel _darkSouls3ViewModel = null!; + private MainViewModel _mainViewModel = null!; + + public DarkSouls3Splitter(LiveSplitState state, DarkSouls3 darkSouls) { - private readonly LiveSplitState _liveSplitState = null!; - private readonly DarkSouls3 _darkSouls3 = null!; - private DarkSouls3ViewModel _darkSouls3ViewModel = null!; - private MainViewModel _mainViewModel = null!; + _darkSouls3 = darkSouls; + _liveSplitState = state; + _liveSplitState.OnStart += OnStart; + _liveSplitState.OnReset += OnReset; + _liveSplitState.IsGameTimePaused = true; + + _timerModel = new TimerModel(); + _timerModel.CurrentState = state; + } - public DarkSouls3Splitter(LiveSplitState state, DarkSouls3 darkSouls) - { - _darkSouls3 = darkSouls; - _liveSplitState = state; - _liveSplitState.OnStart += OnStart; - _liveSplitState.OnReset += OnReset; - _liveSplitState.IsGameTimePaused = true; - - _timerModel = new TimerModel(); - _timerModel.CurrentState = state; - } + public void SetViewModel(MainViewModel mainViewModel) + { + _mainViewModel = mainViewModel; + } - public void SetViewModel(MainViewModel mainViewModel) - { - _mainViewModel = mainViewModel; - } + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } - public void Dispose() + protected virtual void Dispose(bool disposing) + { + if (disposing) { - Dispose(true); - GC.SuppressFinalize(this); + _liveSplitState.OnStart -= OnStart; + _liveSplitState.OnReset -= OnReset; } + } + + private void OnStart(object sender, EventArgs e) + { + StartTimer(); + StartAutoSplitting(); + _mainViewModel.FlagTrackerViewModel.Start(); + } - protected virtual void Dispose(bool disposing) + private void OnReset(object sender, TimerPhase timerPhase) + { + ResetTimer(); + _mainViewModel.FlagTrackerViewModel.Reset(); + } + + + public ResultErr Update(MainViewModel mainViewModel) + { + mainViewModel.TryAndHandleError(() => { - if (disposing) - { - _liveSplitState.OnStart -= OnStart; - _liveSplitState.OnReset -= OnReset; - } - } + _darkSouls3ViewModel = mainViewModel.DarkSouls3ViewModel; + }); - private void OnStart(object sender, EventArgs e) + var result = _darkSouls3.TryRefresh(); + if (result.IsErr) { - StartTimer(); - StartAutoSplitting(); - _mainViewModel.FlagTrackerViewModel.Start(); + mainViewModel.AddRefreshError(result.GetErr()); } - private void OnReset(object sender, TimerPhase timerPhase) + if (_darkSouls3ViewModel.LockIgtToZero) { - ResetTimer(); - _mainViewModel.FlagTrackerViewModel.Reset(); + mainViewModel.TryAndHandleError(() => _darkSouls3.WriteInGameTimeMilliseconds(0)); + return Result.Ok(); //Don't allow the timer to run when IGT is locked } - - public ResultErr Update(MainViewModel mainViewModel) + mainViewModel.TryAndHandleError(() => { - mainViewModel.TryAndHandleError(() => - { - _darkSouls3ViewModel = mainViewModel.DarkSouls3ViewModel; - }); - - var result = _darkSouls3.TryRefresh(); - if (result.IsErr) - { - mainViewModel.AddRefreshError(result.GetErr()); - } - - if (_darkSouls3ViewModel.LockIgtToZero) - { - mainViewModel.TryAndHandleError(() => _darkSouls3.WriteInGameTimeMilliseconds(0)); - return Result.Ok(); //Don't allow the timer to run when IGT is locked - } - - mainViewModel.TryAndHandleError(() => - { - _darkSouls3ViewModel.CurrentPosition = _darkSouls3.GetPosition(); - }); + _darkSouls3ViewModel.CurrentPosition = _darkSouls3.GetPosition(); + }); - mainViewModel.TryAndHandleError(() => - { - UpdateTimer(); - }); + mainViewModel.TryAndHandleError(() => + { + UpdateTimer(); + }); - mainViewModel.TryAndHandleError(() => - { - UpdateAutoSplitter(); - }); + mainViewModel.TryAndHandleError(() => + { + UpdateAutoSplitter(); + }); - mainViewModel.TryAndHandleError(() => - { - mainViewModel.FlagTrackerViewModel.Update(_darkSouls3); - }); + mainViewModel.TryAndHandleError(() => + { + mainViewModel.FlagTrackerViewModel.Update(_darkSouls3); + }); - return result; - } + return result; + } - #region Timer - private void UpdateTimer() - { - switch (_timerState) - { - case TimerState.WaitForStart: - if (_darkSouls3ViewModel.StartAutomatically) + #region Timer + private void UpdateTimer() + { + switch (_timerState) + { + case TimerState.WaitForStart: + if (_darkSouls3ViewModel.StartAutomatically) + { + var igt = _darkSouls3.GetInGameTimeMilliseconds(); + if (igt > 0 && igt < 150) { - var igt = _darkSouls3.GetInGameTimeMilliseconds(); - if (igt > 0 && igt < 150) - { - StartTimer(); - StartAutoSplitting(); - } + StartTimer(); + StartAutoSplitting(); } - break; + } + break; - case TimerState.Running: - var currentIgt = _darkSouls3.GetInGameTimeMilliseconds(); - var isLoading = _darkSouls3.IsLoading(); - var blackscreenActive = _darkSouls3.BlackscreenActive(); + case TimerState.Running: + var currentIgt = _darkSouls3.GetInGameTimeMilliseconds(); + var isLoading = _darkSouls3.IsLoading(); + var blackscreenActive = _darkSouls3.BlackscreenActive(); - //Blackscreens/meme loading screens - timer is running, but game is actually loading - if (currentIgt != 0 && currentIgt > _inGameTime && currentIgt < _inGameTime + 1000 && (isLoading || blackscreenActive)) - { - _darkSouls3.WriteInGameTimeMilliseconds(_inGameTime); - } - else + //Blackscreens/meme loading screens - timer is running, but game is actually loading + if (currentIgt != 0 && currentIgt > _inGameTime && currentIgt < _inGameTime + 1000 && (isLoading || blackscreenActive)) + { + _darkSouls3.WriteInGameTimeMilliseconds(_inGameTime); + } + else + { + if (currentIgt != 0) { - if (currentIgt != 0) - { - _inGameTime = currentIgt; - } + _inGameTime = currentIgt; } - _timerModel.CurrentState.SetGameTime(TimeSpan.FromMilliseconds(_inGameTime)); - break; - } + } + _timerModel.CurrentState.SetGameTime(TimeSpan.FromMilliseconds(_inGameTime)); + break; } + } - private void StartTimer() - { - _timerState = TimerState.Running; - _inGameTime = _darkSouls3.GetInGameTimeMilliseconds(); - _liveSplitState.IsGameTimePaused = true; - _timerModel.Start(); - } + private void StartTimer() + { + _timerState = TimerState.Running; + _inGameTime = _darkSouls3.GetInGameTimeMilliseconds(); + _liveSplitState.IsGameTimePaused = true; + _timerModel.Start(); + } - private void ResetTimer() - { - _timerState = TimerState.WaitForStart; - _inGameTime = 0; - _timerModel.Reset(); - } + private void ResetTimer() + { + _timerState = TimerState.WaitForStart; + _inGameTime = 0; + _timerModel.Reset(); + } - private readonly TimerModel _timerModel; - private int _inGameTime; - private TimerState _timerState = TimerState.WaitForStart; + private readonly TimerModel _timerModel; + private int _inGameTime; + private TimerState _timerState = TimerState.WaitForStart; - #endregion + #endregion - #region Autosplitting + #region Autosplitting - private List _splits = new List(); + private List _splits = new List(); - public void ResetAutoSplitting() - { - _splits.Clear(); - } + public void ResetAutoSplitting() + { + _splits.Clear(); + } + + public void StartAutoSplitting() + { + _splits = ( + from timingType in _darkSouls3ViewModel.SplitsViewModel.Splits + from splitType in timingType.Children + from split in splitType.Children + select new Split(timingType.TimingType, splitType.SplitType, split.Split) + ).ToList(); + } - public void StartAutoSplitting() + public void UpdateAutoSplitter() + { + if (_timerState != TimerState.Running) { - _splits = ( - from timingType in _darkSouls3ViewModel.SplitsViewModel.Splits - from splitType in timingType.Children - from split in splitType.Children - select new Split(timingType.TimingType, splitType.SplitType, split.Split) - ).ToList(); + return; } - - public void UpdateAutoSplitter() + + foreach (var s in _splits) { - if (_timerState != TimerState.Running) - { - return; - } - - foreach (var s in _splits) + if (!s.SplitTriggered) { - if (!s.SplitTriggered) + if (!s.SplitConditionMet) { - if (!s.SplitConditionMet) + switch (s.SplitType) { - switch (s.SplitType) - { - default: - throw new ArgumentException($"Unsupported split type {s.SplitType}"); - - case SplitType.Boss: - case SplitType.Bonfire: - case SplitType.ItemPickup: - case SplitType.Flag: - s.SplitConditionMet = _darkSouls3.ReadEventFlag(s.Flag); - break; - - case SplitType.Attribute: - var currentLevel = _darkSouls3.ReadAttribute(s.Attribute.AttributeType); - s.SplitConditionMet = currentLevel >= s.Attribute.Level; - break; - - case SplitType.Position: - if (s.Position.Position.X + s.Position.Size > _darkSouls3ViewModel.CurrentPosition.X && - s.Position.Position.X - s.Position.Size < _darkSouls3ViewModel.CurrentPosition.X && - - s.Position.Position.Y + s.Position.Size > _darkSouls3ViewModel.CurrentPosition.Y && - s.Position.Position.Y - s.Position.Size < _darkSouls3ViewModel.CurrentPosition.Y && - - s.Position.Position.Z + s.Position.Size > _darkSouls3ViewModel.CurrentPosition.Z && - s.Position.Position.Z - s.Position.Size < _darkSouls3ViewModel.CurrentPosition.Z) - { - s.SplitConditionMet = true; - } - break; - } + default: + throw new ArgumentException($"Unsupported split type {s.SplitType}"); + + case SplitType.Boss: + case SplitType.Bonfire: + case SplitType.ItemPickup: + case SplitType.Flag: + s.SplitConditionMet = _darkSouls3.ReadEventFlag(s.Flag); + break; + + case SplitType.Attribute: + var currentLevel = _darkSouls3.ReadAttribute(s.Attribute.AttributeType); + s.SplitConditionMet = currentLevel >= s.Attribute.Level; + break; + + case SplitType.Position: + if (s.Position.Position.X + s.Position.Size > _darkSouls3ViewModel.CurrentPosition.X && + s.Position.Position.X - s.Position.Size < _darkSouls3ViewModel.CurrentPosition.X && + + s.Position.Position.Y + s.Position.Size > _darkSouls3ViewModel.CurrentPosition.Y && + s.Position.Position.Y - s.Position.Size < _darkSouls3ViewModel.CurrentPosition.Y && + + s.Position.Position.Z + s.Position.Size > _darkSouls3ViewModel.CurrentPosition.Z && + s.Position.Position.Z - s.Position.Size < _darkSouls3ViewModel.CurrentPosition.Z) + { + s.SplitConditionMet = true; + } + break; } + } - if (s.SplitConditionMet) - { - ResolveSplitTiming(s); - } + if (s.SplitConditionMet) + { + ResolveSplitTiming(s); } } } + } - private void ResolveSplitTiming(Split s) + private void ResolveSplitTiming(Split s) + { + switch (s.TimingType) { - switch (s.TimingType) - { - default: - throw new ArgumentException($"Unsupported timing type {s.TimingType}"); + default: + throw new ArgumentException($"Unsupported timing type {s.TimingType}"); + + case TimingType.Immediate: + _timerModel.Split(); + s.SplitTriggered = true; + break; - case TimingType.Immediate: + case TimingType.OnLoading: + if (_darkSouls3.IsLoading()) + { _timerModel.Split(); s.SplitTriggered = true; - break; - - case TimingType.OnLoading: - if (_darkSouls3.IsLoading()) - { - _timerModel.Split(); - s.SplitTriggered = true; - } - break; - } + } + break; } + } - #endregion + #endregion - } } diff --git a/src/SoulSplitter/Splitters/EldenRingSplitter.cs b/src/SoulSplitter/Splitters/EldenRingSplitter.cs index 6498b3e..a7126ea 100644 --- a/src/SoulSplitter/Splitters/EldenRingSplitter.cs +++ b/src/SoulSplitter/Splitters/EldenRingSplitter.cs @@ -25,317 +25,316 @@ using SoulSplitter.UI.EldenRing; using SoulSplitter.UI.Generic; -namespace SoulSplitter.Splitters +namespace SoulSplitter.Splitters; + +internal class EldenRingSplitter : ISplitter { - internal class EldenRingSplitter : ISplitter + private readonly EldenRing _eldenRing; + private EldenRingViewModel _eldenRingViewModel = null!; + private readonly LiveSplitState _liveSplitState; + private MainViewModel _mainViewModel= null!; + + public EldenRingSplitter(LiveSplitState state, EldenRing eldenRing) { - private readonly EldenRing _eldenRing; - private EldenRingViewModel _eldenRingViewModel = null!; - private readonly LiveSplitState _liveSplitState; - private MainViewModel _mainViewModel= null!; + _liveSplitState = state; + _eldenRing = eldenRing; - public EldenRingSplitter(LiveSplitState state, EldenRing eldenRing) - { - _liveSplitState = state; - _eldenRing = eldenRing; + _liveSplitState.OnStart += OnStart; + _liveSplitState.OnReset += OnReset; + _liveSplitState.IsGameTimePaused = true; - _liveSplitState.OnStart += OnStart; - _liveSplitState.OnReset += OnReset; - _liveSplitState.IsGameTimePaused = true; + _timerModel = new TimerModel(); + _timerModel.CurrentState = state; + } - _timerModel = new TimerModel(); - _timerModel.CurrentState = state; - } + public void SetViewModel(MainViewModel mainViewModel) + { + _mainViewModel = mainViewModel; + } - public void SetViewModel(MainViewModel mainViewModel) + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + + protected virtual void Dispose(bool disposing) + { + if (disposing) { - _mainViewModel = mainViewModel; + _liveSplitState.OnStart -= OnStart; + _liveSplitState.OnReset -= OnReset; } + } - public void Dispose() + public ResultErr Update(MainViewModel mainViewModel) + { + //Settings from the UI + mainViewModel.TryAndHandleError(() => { - Dispose(true); - GC.SuppressFinalize(this); - } + _eldenRingViewModel = mainViewModel.EldenRingViewModel; + }); + - protected virtual void Dispose(bool disposing) + ResultErr? result = null; + + //Refresh attachment to ER process + mainViewModel.TryAndHandleError(() => { - if (disposing) + result = _eldenRing.TryRefresh(); + if (result.IsErr) { - _liveSplitState.OnStart -= OnStart; - _liveSplitState.OnReset -= OnReset; + mainViewModel.AddRefreshError(result.GetErr()); } - } + }); - public ResultErr Update(MainViewModel mainViewModel) + //Lock IGT to 0 if requested + if (_eldenRingViewModel.LockIgtToZero) { - //Settings from the UI - mainViewModel.TryAndHandleError(() => - { - _eldenRingViewModel = mainViewModel.EldenRingViewModel; - }); - + mainViewModel.TryAndHandleError(() => _eldenRing.WriteInGameTimeMilliseconds(0)); + return Result.Ok();//Don't allow other features to be used while locking the timer + } - ResultErr? result = null; - - //Refresh attachment to ER process - mainViewModel.TryAndHandleError(() => - { - result = _eldenRing.TryRefresh(); - if (result.IsErr) - { - mainViewModel.AddRefreshError(result.GetErr()); - } - }); + mainViewModel.TryAndHandleError(() => + { + UpdatePosition(); + }); - //Lock IGT to 0 if requested - if (_eldenRingViewModel.LockIgtToZero) - { - mainViewModel.TryAndHandleError(() => _eldenRing.WriteInGameTimeMilliseconds(0)); - return Result.Ok();//Don't allow other features to be used while locking the timer - } + mainViewModel.TryAndHandleError(() => + { + UpdateTimer(_eldenRingViewModel.StartAutomatically); + }); - mainViewModel.TryAndHandleError(() => - { - UpdatePosition(); - }); + mainViewModel.TryAndHandleError(() => + { + UpdateAutoSplitter(); + }); - mainViewModel.TryAndHandleError(() => - { - UpdateTimer(_eldenRingViewModel.StartAutomatically); - }); + mainViewModel.TryAndHandleError(() => + { + mainViewModel.FlagTrackerViewModel.Update(_eldenRing); + }); - mainViewModel.TryAndHandleError(() => - { - UpdateAutoSplitter(); - }); + return result!; + } - mainViewModel.TryAndHandleError(() => - { - mainViewModel.FlagTrackerViewModel.Update(_eldenRing); - }); - return result!; - } + private void UpdatePosition() + { + var position = _eldenRing.GetPosition(); + _eldenRingViewModel.CurrentPosition.Area = position.Area ; + _eldenRingViewModel.CurrentPosition.Block = position.Block ; + _eldenRingViewModel.CurrentPosition.Region = position.Region; + _eldenRingViewModel.CurrentPosition.Size = position.Size ; + _eldenRingViewModel.CurrentPosition.X = position.X ; + _eldenRingViewModel.CurrentPosition.Y = position.Y ; + _eldenRingViewModel.CurrentPosition.Z = position.Z ; + } + //Starting the timer by calling Start(); on a TimerModel object will trigger more than just SoulSplitter's start event. + //It occurred at least twice that another plugin would throw exceptions during the start event, causing SoulSplitter's start event to never be called at all. + //That in turn never changed the timer state to running. We can not rely on this event. + //Thats why autostarting will take care of this and doesn't need the event. + //However, we still need this event when players start the timer manually. + private void OnStart(object sender, EventArgs e) + { + StartTimer(); + StartAutoSplitting(_eldenRingViewModel); + _mainViewModel.FlagTrackerViewModel.Start(); + } - private void UpdatePosition() - { - var position = _eldenRing.GetPosition(); - _eldenRingViewModel.CurrentPosition.Area = position.Area ; - _eldenRingViewModel.CurrentPosition.Block = position.Block ; - _eldenRingViewModel.CurrentPosition.Region = position.Region; - _eldenRingViewModel.CurrentPosition.Size = position.Size ; - _eldenRingViewModel.CurrentPosition.X = position.X ; - _eldenRingViewModel.CurrentPosition.Y = position.Y ; - _eldenRingViewModel.CurrentPosition.Z = position.Z ; - } + private void OnReset(object sender, TimerPhase timerPhase) + { + ResetTimer(); + ResetAutoSplitting(); + _mainViewModel.FlagTrackerViewModel.Reset(); + } - //Starting the timer by calling Start(); on a TimerModel object will trigger more than just SoulSplitter's start event. - //It occurred at least twice that another plugin would throw exceptions during the start event, causing SoulSplitter's start event to never be called at all. - //That in turn never changed the timer state to running. We can not rely on this event. - //Thats why autostarting will take care of this and doesn't need the event. - //However, we still need this event when players start the timer manually. - private void OnStart(object sender, EventArgs e) - { - StartTimer(); - StartAutoSplitting(_eldenRingViewModel); - _mainViewModel.FlagTrackerViewModel.Start(); - } + #region Timer + private readonly TimerModel _timerModel; + private int _inGameTime; + private TimerState _timerState = TimerState.WaitForStart; + private bool _startAutomatically; - private void OnReset(object sender, TimerPhase timerPhase) - { - ResetTimer(); - ResetAutoSplitting(); - _mainViewModel.FlagTrackerViewModel.Reset(); - } + private void StartTimer() + { + _liveSplitState.IsGameTimePaused = true; + _timerState = TimerState.Running; + _eldenRing.EnableHud(); + } - #region Timer - private readonly TimerModel _timerModel; - private int _inGameTime; - private TimerState _timerState = TimerState.WaitForStart; - private bool _startAutomatically; + private void ResetTimer() + { + _timerState = TimerState.WaitForStart; + _inGameTime = 0; + } - private void StartTimer() - { - _liveSplitState.IsGameTimePaused = true; - _timerState = TimerState.Running; - _eldenRing.EnableHud(); - } - private void ResetTimer() + public void UpdateTimer(bool startAutomatically) + { + //Allow updates from the UI only when a run isn't in progress + if (_timerState == TimerState.WaitForStart) { - _timerState = TimerState.WaitForStart; - _inGameTime = 0; + _startAutomatically = startAutomatically; } - - public void UpdateTimer(bool startAutomatically) + switch (_timerState) { - //Allow updates from the UI only when a run isn't in progress - if (_timerState == TimerState.WaitForStart) - { - _startAutomatically = startAutomatically; - } - - switch (_timerState) - { - case TimerState.WaitForStart: - if (_startAutomatically) + case TimerState.WaitForStart: + if (_startAutomatically) + { + var igt = _eldenRing.GetInGameTimeMilliseconds(); + if (igt > 0 && igt < 150) { - var igt = _eldenRing.GetInGameTimeMilliseconds(); - if (igt > 0 && igt < 150) - { - _eldenRing.WriteInGameTimeMilliseconds(0); - StartTimer(); - _timerModel.Start(); - StartAutoSplitting(_eldenRingViewModel); - } + _eldenRing.WriteInGameTimeMilliseconds(0); + StartTimer(); + _timerModel.Start(); + StartAutoSplitting(_eldenRingViewModel); } - break; + } + break; - case TimerState.Running: + case TimerState.Running: - var currentIgt = _eldenRing.GetInGameTimeMilliseconds(); - var blackscreenActive = _eldenRing.IsBlackscreenActive(); + var currentIgt = _eldenRing.GetInGameTimeMilliseconds(); + var blackscreenActive = _eldenRing.IsBlackscreenActive(); - //Blackscreens/meme loading screens - timer is running, but game is actually loading - if (currentIgt != 0 && currentIgt > _inGameTime && currentIgt < _inGameTime + 1000 && blackscreenActive) - { - _eldenRing.WriteInGameTimeMilliseconds(_inGameTime); - } - else + //Blackscreens/meme loading screens - timer is running, but game is actually loading + if (currentIgt != 0 && currentIgt > _inGameTime && currentIgt < _inGameTime + 1000 && blackscreenActive) + { + _eldenRing.WriteInGameTimeMilliseconds(_inGameTime); + } + else + { + if (currentIgt != 0) { - if (currentIgt != 0) - { - _inGameTime = currentIgt; - } + _inGameTime = currentIgt; } - _timerModel.CurrentState.SetGameTime(TimeSpan.FromMilliseconds(_inGameTime)); - break; - } + } + _timerModel.CurrentState.SetGameTime(TimeSpan.FromMilliseconds(_inGameTime)); + break; } + } - #endregion + #endregion - #region Autosplitting + #region Autosplitting - private List _splits = new List(); + private List _splits = new List(); - public void ResetAutoSplitting() - { - _splits.Clear(); - } + public void ResetAutoSplitting() + { + _splits.Clear(); + } - public void StartAutoSplitting(EldenRingViewModel eldenRingViewModel) - { - _splits = ( - from timingType in eldenRingViewModel.Splits - from splitType in timingType.Children - from split in splitType.Children - select new Split(timingType.TimingType, splitType.EldenRingSplitType, split.Split) - ).ToList(); - } + public void StartAutoSplitting(EldenRingViewModel eldenRingViewModel) + { + _splits = ( + from timingType in eldenRingViewModel.Splits + from splitType in timingType.Children + from split in splitType.Children + select new Split(timingType.TimingType, splitType.EldenRingSplitType, split.Split) + ).ToList(); + } - public void UpdateAutoSplitter() + public void UpdateAutoSplitter() + { + if (_timerState != TimerState.Running) { - if (_timerState != TimerState.Running) - { - return; - } + return; + } - List? inventoryItems = null; + List? inventoryItems = null; - foreach (var s in _splits) + foreach (var s in _splits) + { + if (!s.SplitTriggered) { - if (!s.SplitTriggered) + if (!s.SplitConditionMet) { - if (!s.SplitConditionMet) + switch (s.EldenRingSplitType) { - switch (s.EldenRingSplitType) - { - default: - throw new ArgumentException($"Unsupported split type {s.EldenRingSplitType}"); - - case EldenRingSplitType.Boss: - case EldenRingSplitType.Grace: - case EldenRingSplitType.ItemPickup: - case EldenRingSplitType.KnownFlag: - case EldenRingSplitType.Flag: - s.SplitConditionMet = _eldenRing.ReadEventFlag(s.Flag); - break; - - case EldenRingSplitType.Item: - //Only get the inventory items once per livesplit tick - if (inventoryItems == null) - { - inventoryItems = _eldenRing.ReadInventory(); - } - s.SplitConditionMet = inventoryItems.Any(i => i.Category == s.Item.Category && i.Id == s.Item.Id); - break; - - case EldenRingSplitType.Position: - if ( - _eldenRingViewModel.CurrentPosition.Area == s.Position.Area && - _eldenRingViewModel.CurrentPosition.Block == s.Position.Block && - _eldenRingViewModel.CurrentPosition.Region == s.Position.Region && - _eldenRingViewModel.CurrentPosition.Size == s.Position.Size && - - s.Position.X + 5.0f > _eldenRingViewModel.CurrentPosition.X && - s.Position.X - 5.0f < _eldenRingViewModel.CurrentPosition.X && - - s.Position.Y + 5.0f > _eldenRingViewModel.CurrentPosition.Y && - s.Position.Y - 5.0f < _eldenRingViewModel.CurrentPosition.Y && - - s.Position.Z + 5.0f > _eldenRingViewModel.CurrentPosition.Z && - s.Position.Z - 5.0f < _eldenRingViewModel.CurrentPosition.Z) - { - s.SplitConditionMet = true; - } - break; - } + default: + throw new ArgumentException($"Unsupported split type {s.EldenRingSplitType}"); + + case EldenRingSplitType.Boss: + case EldenRingSplitType.Grace: + case EldenRingSplitType.ItemPickup: + case EldenRingSplitType.KnownFlag: + case EldenRingSplitType.Flag: + s.SplitConditionMet = _eldenRing.ReadEventFlag(s.Flag); + break; + + case EldenRingSplitType.Item: + //Only get the inventory items once per livesplit tick + if (inventoryItems == null) + { + inventoryItems = _eldenRing.ReadInventory(); + } + s.SplitConditionMet = inventoryItems.Any(i => i.Category == s.Item.Category && i.Id == s.Item.Id); + break; + + case EldenRingSplitType.Position: + if ( + _eldenRingViewModel.CurrentPosition.Area == s.Position.Area && + _eldenRingViewModel.CurrentPosition.Block == s.Position.Block && + _eldenRingViewModel.CurrentPosition.Region == s.Position.Region && + _eldenRingViewModel.CurrentPosition.Size == s.Position.Size && + + s.Position.X + 5.0f > _eldenRingViewModel.CurrentPosition.X && + s.Position.X - 5.0f < _eldenRingViewModel.CurrentPosition.X && + + s.Position.Y + 5.0f > _eldenRingViewModel.CurrentPosition.Y && + s.Position.Y - 5.0f < _eldenRingViewModel.CurrentPosition.Y && + + s.Position.Z + 5.0f > _eldenRingViewModel.CurrentPosition.Z && + s.Position.Z - 5.0f < _eldenRingViewModel.CurrentPosition.Z) + { + s.SplitConditionMet = true; + } + break; } + } - if (s.SplitConditionMet) - { - ResolveSplitTiming(s); - } + if (s.SplitConditionMet) + { + ResolveSplitTiming(s); } } } + } - private void ResolveSplitTiming(Split s) + private void ResolveSplitTiming(Split s) + { + switch (s.TimingType) { - switch (s.TimingType) - { - default: - throw new ArgumentException($"Unsupported timing type {s.TimingType}"); + default: + throw new ArgumentException($"Unsupported timing type {s.TimingType}"); - case TimingType.Immediate: + case TimingType.Immediate: + _timerModel.Split(); + s.SplitTriggered = true; + break; + + case TimingType.OnLoading: + if (_eldenRing.GetScreenState() == ScreenState.Loading) + { _timerModel.Split(); s.SplitTriggered = true; - break; - - case TimingType.OnLoading: - if (_eldenRing.GetScreenState() == ScreenState.Loading) - { - _timerModel.Split(); - s.SplitTriggered = true; - } - break; + } + break; - case TimingType.OnBlackscreen: - if (_eldenRing.IsBlackscreenActive()) - { - _timerModel.Split(); - s.SplitTriggered = true; - } - break; - } + case TimingType.OnBlackscreen: + if (_eldenRing.IsBlackscreenActive()) + { + _timerModel.Split(); + s.SplitTriggered = true; + } + break; } - - - #endregion } + + + #endregion } diff --git a/src/SoulSplitter/Splitters/ISplitter.cs b/src/SoulSplitter/Splitters/ISplitter.cs index ff8ec6f..e0e3bc9 100644 --- a/src/SoulSplitter/Splitters/ISplitter.cs +++ b/src/SoulSplitter/Splitters/ISplitter.cs @@ -18,11 +18,10 @@ using SoulSplitter.UI; using System; -namespace SoulSplitter.Splitters +namespace SoulSplitter.Splitters; + +internal interface ISplitter : IDisposable { - internal interface ISplitter : IDisposable - { - ResultErr Update(MainViewModel mainViewModel); - void SetViewModel(MainViewModel mainViewModel); - } + ResultErr Update(MainViewModel mainViewModel); + void SetViewModel(MainViewModel mainViewModel); } diff --git a/src/SoulSplitter/Splitters/SekiroSplitter.cs b/src/SoulSplitter/Splitters/SekiroSplitter.cs index 01d978f..3c79c25 100644 --- a/src/SoulSplitter/Splitters/SekiroSplitter.cs +++ b/src/SoulSplitter/Splitters/SekiroSplitter.cs @@ -25,263 +25,262 @@ using SoulSplitter.UI.Generic; using SoulSplitter.UI.Sekiro; -namespace SoulSplitter.Splitters +namespace SoulSplitter.Splitters; + +public class SekiroSplitter : ISplitter { - public class SekiroSplitter : ISplitter + private readonly Sekiro _sekiro; + private SekiroViewModel _sekiroViewModel = null!; + private readonly LiveSplitState _liveSplitState; + private MainViewModel _mainViewModel = null!; + + public SekiroSplitter(LiveSplitState state, Sekiro sekiro) { - private readonly Sekiro _sekiro; - private SekiroViewModel _sekiroViewModel = null!; - private readonly LiveSplitState _liveSplitState; - private MainViewModel _mainViewModel = null!; + _sekiro = sekiro; + _liveSplitState = state; + _liveSplitState.OnStart += OnStart; + _liveSplitState.OnReset += OnReset; + _liveSplitState.IsGameTimePaused = true; + + _timerModel = new TimerModel(); + _timerModel.CurrentState = state; + } - public SekiroSplitter(LiveSplitState state, Sekiro sekiro) - { - _sekiro = sekiro; - _liveSplitState = state; - _liveSplitState.OnStart += OnStart; - _liveSplitState.OnReset += OnReset; - _liveSplitState.IsGameTimePaused = true; - - _timerModel = new TimerModel(); - _timerModel.CurrentState = state; - } + public void SetViewModel(MainViewModel mainViewModel) + { + _mainViewModel = mainViewModel; + } - public void SetViewModel(MainViewModel mainViewModel) - { - _mainViewModel = mainViewModel; - } + #region - #region + private void OnStart(object sender, EventArgs e) + { + StartTimer(); + StartAutoSplitting(); + _mainViewModel.FlagTrackerViewModel.Start(); + } - private void OnStart(object sender, EventArgs e) - { - StartTimer(); - StartAutoSplitting(); - _mainViewModel.FlagTrackerViewModel.Start(); - } + private void OnReset(object sender, TimerPhase timerPhase) + { + ResetTimer(); + ResetAutoSplitting(); + _mainViewModel.FlagTrackerViewModel.Reset(); + } + + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } - private void OnReset(object sender, TimerPhase timerPhase) + protected virtual void Dispose(bool disposing) + { + if (disposing) { - ResetTimer(); - ResetAutoSplitting(); - _mainViewModel.FlagTrackerViewModel.Reset(); + _liveSplitState.OnStart -= OnStart; + _liveSplitState.OnReset -= OnReset; } + } - public void Dispose() + public ResultErr Update(MainViewModel mainViewModel) + { + + mainViewModel.TryAndHandleError(() => { - Dispose(true); - GC.SuppressFinalize(this); - } + _sekiroViewModel = mainViewModel.SekiroViewModel; + }); - protected virtual void Dispose(bool disposing) + var result = _sekiro.TryRefresh(); + if (result.IsErr) { - if (disposing) - { - _liveSplitState.OnStart -= OnStart; - _liveSplitState.OnReset -= OnReset; - } + mainViewModel.AddRefreshError(result.GetErr()); } - public ResultErr Update(MainViewModel mainViewModel) + mainViewModel.TryAndHandleError(() => { + _sekiroViewModel.CurrentPosition = _sekiro.GetPlayerPosition(); + }); - mainViewModel.TryAndHandleError(() => - { - _sekiroViewModel = mainViewModel.SekiroViewModel; - }); - - var result = _sekiro.TryRefresh(); - if (result.IsErr) - { - mainViewModel.AddRefreshError(result.GetErr()); - } - - mainViewModel.TryAndHandleError(() => - { - _sekiroViewModel.CurrentPosition = _sekiro.GetPlayerPosition(); - }); - - mainViewModel.TryAndHandleError(() => - { - UpdateTimer(); - }); - - mainViewModel.TryAndHandleError(() => - { - UpdateAutoSplitter(); - }); - - mainViewModel.TryAndHandleError(() => - { - mainViewModel.FlagTrackerViewModel.Update(_sekiro); - }); - - return result; - } - - #endregion + mainViewModel.TryAndHandleError(() => + { + UpdateTimer(); + }); - #region Timer - private readonly TimerModel _timerModel; - private int _inGameTime; - private TimerState _timerState = TimerState.WaitForStart; - - private void StartTimer() + mainViewModel.TryAndHandleError(() => { - if (_sekiroViewModel.OverwriteIgtOnStart) - { - _sekiro.WriteInGameTimeMilliseconds(0); - } + UpdateAutoSplitter(); + }); - _liveSplitState.IsGameTimePaused = true; - _timerState = TimerState.Running; - _inGameTime = _sekiro.GetInGameTimeMilliseconds(); - _timerModel.Start(); - } + mainViewModel.TryAndHandleError(() => + { + mainViewModel.FlagTrackerViewModel.Update(_sekiro); + }); - private void ResetTimer() + return result; + } + + #endregion + + #region Timer + private readonly TimerModel _timerModel; + private int _inGameTime; + private TimerState _timerState = TimerState.WaitForStart; + + private void StartTimer() + { + if (_sekiroViewModel.OverwriteIgtOnStart) { - _timerState = TimerState.WaitForStart; - _inGameTime = 0; - _timerModel.Reset(); + _sekiro.WriteInGameTimeMilliseconds(0); } - private void UpdateTimer() + _liveSplitState.IsGameTimePaused = true; + _timerState = TimerState.Running; + _inGameTime = _sekiro.GetInGameTimeMilliseconds(); + _timerModel.Start(); + } + + private void ResetTimer() + { + _timerState = TimerState.WaitForStart; + _inGameTime = 0; + _timerModel.Reset(); + } + + private void UpdateTimer() + { + switch (_timerState) { - switch (_timerState) - { - case TimerState.WaitForStart: - if (_sekiroViewModel.StartAutomatically) + case TimerState.WaitForStart: + if (_sekiroViewModel.StartAutomatically) + { + var igt = _sekiro.GetInGameTimeMilliseconds(); + if (igt > 0 && igt < 150) { - var igt = _sekiro.GetInGameTimeMilliseconds(); - if (igt > 0 && igt < 150) - { - StartTimer(); - _timerModel.Start(); - StartAutoSplitting(); - } + StartTimer(); + _timerModel.Start(); + StartAutoSplitting(); } - break; + } + break; - case TimerState.Running: - var currentIgt = _sekiro.GetInGameTimeMilliseconds(); - var blackscreenActive = _sekiro.IsBlackscreenActive(); + case TimerState.Running: + var currentIgt = _sekiro.GetInGameTimeMilliseconds(); + var blackscreenActive = _sekiro.IsBlackscreenActive(); - //Blackscreens/meme loading screens - timer is running, but game is actually loading - if (currentIgt != 0 && currentIgt > _inGameTime && currentIgt < _inGameTime + 1000 && blackscreenActive) - { - _sekiro.WriteInGameTimeMilliseconds(_inGameTime); - } - else + //Blackscreens/meme loading screens - timer is running, but game is actually loading + if (currentIgt != 0 && currentIgt > _inGameTime && currentIgt < _inGameTime + 1000 && blackscreenActive) + { + _sekiro.WriteInGameTimeMilliseconds(_inGameTime); + } + else + { + if (currentIgt != 0) { - if (currentIgt != 0) - { - _inGameTime = currentIgt; - } + _inGameTime = currentIgt; } + } - _timerModel.CurrentState.SetGameTime(TimeSpan.FromMilliseconds(_inGameTime)); - break; - } + _timerModel.CurrentState.SetGameTime(TimeSpan.FromMilliseconds(_inGameTime)); + break; } - - #endregion + } + + #endregion - #region Autosplitting + #region Autosplitting - private List _splits = new List(); + private List _splits = new List(); - public void ResetAutoSplitting() - { - _splits.Clear(); - } + public void ResetAutoSplitting() + { + _splits.Clear(); + } - public void StartAutoSplitting() + public void StartAutoSplitting() + { + _splits = ( + from timingType in _sekiroViewModel.SplitsViewModel.Splits + from splitType in timingType.Children + from split in splitType.Children + select new Split(timingType.TimingType, splitType.SplitType, split.Split) + ).ToList(); + } + + public void UpdateAutoSplitter() + { + if (_timerState != TimerState.Running) { - _splits = ( - from timingType in _sekiroViewModel.SplitsViewModel.Splits - from splitType in timingType.Children - from split in splitType.Children - select new Split(timingType.TimingType, splitType.SplitType, split.Split) - ).ToList(); + return; } - public void UpdateAutoSplitter() + foreach (var s in _splits) { - if (_timerState != TimerState.Running) + if (!s.SplitTriggered) { - return; - } - - foreach (var s in _splits) - { - if (!s.SplitTriggered) + if (!s.SplitConditionMet) { - if (!s.SplitConditionMet) + switch (s.SplitType) { - switch (s.SplitType) - { - default: - throw new ArgumentException($"Unsupported split type {s.SplitType}"); - - case SplitType.Boss: - case SplitType.Bonfire: - case SplitType.Flag: - s.SplitConditionMet = _sekiro.ReadEventFlag(s.Flag); - break; - - case SplitType.Position: - if (s.Position.Position.X + s.Position.Size > _sekiroViewModel.CurrentPosition.X && - s.Position.Position.X - s.Position.Size < _sekiroViewModel.CurrentPosition.X && - - s.Position.Position.Y + s.Position.Size > _sekiroViewModel.CurrentPosition.Y && - s.Position.Position.Y - s.Position.Size < _sekiroViewModel.CurrentPosition.Y && - - s.Position.Position.Z + s.Position.Size > _sekiroViewModel.CurrentPosition.Z && - s.Position.Position.Z - s.Position.Size < _sekiroViewModel.CurrentPosition.Z) - { - s.SplitConditionMet = true; - } - break; - - case SplitType.Attribute: - var level = _sekiro.GetAttribute(s.Attribute.AttributeType); - s.SplitConditionMet = level >= s.Attribute.Level; - break; - } + default: + throw new ArgumentException($"Unsupported split type {s.SplitType}"); + + case SplitType.Boss: + case SplitType.Bonfire: + case SplitType.Flag: + s.SplitConditionMet = _sekiro.ReadEventFlag(s.Flag); + break; + + case SplitType.Position: + if (s.Position.Position.X + s.Position.Size > _sekiroViewModel.CurrentPosition.X && + s.Position.Position.X - s.Position.Size < _sekiroViewModel.CurrentPosition.X && + + s.Position.Position.Y + s.Position.Size > _sekiroViewModel.CurrentPosition.Y && + s.Position.Position.Y - s.Position.Size < _sekiroViewModel.CurrentPosition.Y && + + s.Position.Position.Z + s.Position.Size > _sekiroViewModel.CurrentPosition.Z && + s.Position.Position.Z - s.Position.Size < _sekiroViewModel.CurrentPosition.Z) + { + s.SplitConditionMet = true; + } + break; + + case SplitType.Attribute: + var level = _sekiro.GetAttribute(s.Attribute.AttributeType); + s.SplitConditionMet = level >= s.Attribute.Level; + break; } + } - if (s.SplitConditionMet) - { - ResolveSplitTiming(s); - } + if (s.SplitConditionMet) + { + ResolveSplitTiming(s); } } } + } - private void ResolveSplitTiming(Split s) + private void ResolveSplitTiming(Split s) + { + switch (s.TimingType) { - switch (s.TimingType) - { - default: - throw new ArgumentException($"Unsupported timing type {s.TimingType}"); + default: + throw new ArgumentException($"Unsupported timing type {s.TimingType}"); + + case TimingType.Immediate: + _timerModel.Split(); + s.SplitTriggered = true; + break; - case TimingType.Immediate: + case TimingType.OnLoading: + if (!_sekiro.IsPlayerLoaded()) + { _timerModel.Split(); s.SplitTriggered = true; - break; - - case TimingType.OnLoading: - if (!_sekiro.IsPlayerLoaded()) - { - _timerModel.Split(); - s.SplitTriggered = true; - } - break; - } + } + break; } - #endregion } + #endregion } diff --git a/src/SoulSplitter/Splitters/TimerState.cs b/src/SoulSplitter/Splitters/TimerState.cs index e16084d..b0dec60 100644 --- a/src/SoulSplitter/Splitters/TimerState.cs +++ b/src/SoulSplitter/Splitters/TimerState.cs @@ -14,11 +14,10 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -namespace SoulSplitter.Splitters +namespace SoulSplitter.Splitters; + +public enum TimerState { - public enum TimerState - { - WaitForStart, - Running, - } + WaitForStart, + Running, } diff --git a/src/SoulSplitter/UI/Converters/BoolToVisibilityConverter.cs b/src/SoulSplitter/UI/Converters/BoolToVisibilityConverter.cs index ead9945..45b3804 100644 --- a/src/SoulSplitter/UI/Converters/BoolToVisibilityConverter.cs +++ b/src/SoulSplitter/UI/Converters/BoolToVisibilityConverter.cs @@ -18,22 +18,21 @@ using System.Windows; using System.Windows.Data; -namespace SoulSplitter.UI.Converters -{ +namespace SoulSplitter.UI.Converters; + public class BoolToVisibilityConverter : IValueConverter +{ + public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { - public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) + if (value is bool b) { - if (value is bool b) - { - return b ? Visibility.Visible : Visibility.Collapsed; - } - throw new NotSupportedException(); + return b ? Visibility.Visible : Visibility.Collapsed; } + throw new NotSupportedException(); + } - public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) - { - throw new NotSupportedException(); - } + public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) + { + throw new NotSupportedException(); } } diff --git a/src/SoulSplitter/UI/Converters/ColorToBrushConverter.cs b/src/SoulSplitter/UI/Converters/ColorToBrushConverter.cs index 48179ee..000489d 100644 --- a/src/SoulSplitter/UI/Converters/ColorToBrushConverter.cs +++ b/src/SoulSplitter/UI/Converters/ColorToBrushConverter.cs @@ -19,23 +19,22 @@ using System.Windows.Data; using System.Windows.Media; -namespace SoulSplitter.UI.Converters +namespace SoulSplitter.UI.Converters; + +public class ColorToBrushConverter : IValueConverter { - public class ColorToBrushConverter : IValueConverter + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + if (value is Color color) { - if (value is Color color) - { - return new SolidColorBrush(color); - } - - throw new NotSupportedException($"Type not supported {targetType}"); + return new SolidColorBrush(color); } - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - throw new NotImplementedException(); - } + throw new NotSupportedException($"Type not supported {targetType}"); + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); } } diff --git a/src/SoulSplitter/UI/Converters/ColorToHexTextConverter.cs b/src/SoulSplitter/UI/Converters/ColorToHexTextConverter.cs index c781df2..ffb20cb 100644 --- a/src/SoulSplitter/UI/Converters/ColorToHexTextConverter.cs +++ b/src/SoulSplitter/UI/Converters/ColorToHexTextConverter.cs @@ -19,39 +19,38 @@ using System.Windows.Data; using System.Windows.Media; -namespace SoulSplitter.UI.Converters +namespace SoulSplitter.UI.Converters; + +public class ColorToHexTextConverter : IValueConverter { - public class ColorToHexTextConverter : IValueConverter + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + if (value is Color color) { - if (value is Color color) - { - return "#" + color.R.ToString("X2") + color.G.ToString("X2") + color.B.ToString("X2"); - } - - throw new NotSupportedException($"Type not supported {targetType}"); + return "#" + color.R.ToString("X2") + color.G.ToString("X2") + color.B.ToString("X2"); } - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + throw new NotSupportedException($"Type not supported {targetType}"); + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + if (value is string hex) { - if (value is string hex) + try { - try - { - int rgb = System.Convert.ToInt32(hex.Remove(0, 1), 16); - var r = (byte)((rgb & 0xff0000) >> 16); - var g = (byte)((rgb & 0xff00) >> 8); - var b = (byte)(rgb & 0xff); - return Color.FromRgb(r, g, b); - } - catch - { - throw new ArgumentException($"{hex} is not a valid RGB hex"); - } + int rgb = System.Convert.ToInt32(hex.Remove(0, 1), 16); + var r = (byte)((rgb & 0xff0000) >> 16); + var g = (byte)((rgb & 0xff00) >> 8); + var b = (byte)(rgb & 0xff); + return Color.FromRgb(r, g, b); + } + catch + { + throw new ArgumentException($"{hex} is not a valid RGB hex"); } - - throw new NotSupportedException($"Type not supported {targetType}"); } + + throw new NotSupportedException($"Type not supported {targetType}"); } } diff --git a/src/SoulSplitter/UI/Converters/DoubleToGridLengthConverter.cs b/src/SoulSplitter/UI/Converters/DoubleToGridLengthConverter.cs index 92676f5..6dbb61c 100644 --- a/src/SoulSplitter/UI/Converters/DoubleToGridLengthConverter.cs +++ b/src/SoulSplitter/UI/Converters/DoubleToGridLengthConverter.cs @@ -18,28 +18,27 @@ using System.Globalization; using System.Windows.Data; -namespace SoulSplitter.UI.Converters +namespace SoulSplitter.UI.Converters; + +public class DoubleToGridLengthConverter : IValueConverter { - public class DoubleToGridLengthConverter : IValueConverter + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + if(value is double d) { - if(value is double d) - { - return new System.Windows.GridLength(d); - } - - throw new NotSupportedException($"Type not supported {targetType}"); + return new System.Windows.GridLength(d); } - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - if (value is System.Windows.GridLength g) - { - return g.Value; - } + throw new NotSupportedException($"Type not supported {targetType}"); + } - throw new NotSupportedException($"Type not supported {targetType}"); + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + if (value is System.Windows.GridLength g) + { + return g.Value; } + + throw new NotSupportedException($"Type not supported {targetType}"); } } diff --git a/src/SoulSplitter/UI/Converters/DropModTypeConverter.cs b/src/SoulSplitter/UI/Converters/DropModTypeConverter.cs index 1f339b7..13b6f3d 100644 --- a/src/SoulSplitter/UI/Converters/DropModTypeConverter.cs +++ b/src/SoulSplitter/UI/Converters/DropModTypeConverter.cs @@ -19,22 +19,21 @@ using System.Globalization; using System.Windows.Data; -namespace SoulSplitter.UI.Converters +namespace SoulSplitter.UI.Converters; + +public class DropModTypeConverter : IValueConverter { - public class DropModTypeConverter : IValueConverter + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + if(value is DropModType valueDropModType && parameter is DropModType parameterDropModType) { - if(value is DropModType valueDropModType && parameter is DropModType parameterDropModType) - { - return valueDropModType == parameterDropModType; - } - return false; + return valueDropModType == parameterDropModType; } + return false; + } - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - return (DropModType)parameter; - } + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + return (DropModType)parameter; } } diff --git a/src/SoulSplitter/UI/Converters/EnumDisplayNameConverter.cs b/src/SoulSplitter/UI/Converters/EnumDisplayNameConverter.cs index fe642a1..ac26c0e 100644 --- a/src/SoulSplitter/UI/Converters/EnumDisplayNameConverter.cs +++ b/src/SoulSplitter/UI/Converters/EnumDisplayNameConverter.cs @@ -18,23 +18,22 @@ using System.Windows.Data; using SoulMemory.Memory; -namespace SoulSplitter.UI.Converters +namespace SoulSplitter.UI.Converters; + +public class EnumDisplayNameConverter : IValueConverter { - public class EnumDisplayNameConverter : IValueConverter + public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { - public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) + if(value is Enum _enum) { - if(value is Enum _enum) - { - return _enum.GetDisplayName(); - } - - return ""; + return _enum.GetDisplayName(); } - public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) - { - throw new NotSupportedException(); - } + return ""; + } + + public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) + { + throw new NotSupportedException(); } } diff --git a/src/SoulSplitter/UI/Converters/EnumToVisibilityConverter.cs b/src/SoulSplitter/UI/Converters/EnumToVisibilityConverter.cs index 4b604e5..e04807a 100644 --- a/src/SoulSplitter/UI/Converters/EnumToVisibilityConverter.cs +++ b/src/SoulSplitter/UI/Converters/EnumToVisibilityConverter.cs @@ -19,52 +19,51 @@ using System.Windows; using System.Windows.Data; -namespace SoulSplitter.UI.Converters +namespace SoulSplitter.UI.Converters; + +public class EnumToVisibilityConverter : IMultiValueConverter, IValueConverter { - public class EnumToVisibilityConverter : IMultiValueConverter, IValueConverter + public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { - public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) + var valueEnum = (Enum)value; + var paramEnum = (Enum)parameter; + if (valueEnum != null && paramEnum != null && valueEnum.Equals(paramEnum)) { - var valueEnum = (Enum)value; - var paramEnum = (Enum)parameter; - if (valueEnum != null && paramEnum != null && valueEnum.Equals(paramEnum)) - { - return Visibility.Visible; - } - return Visibility.Collapsed; + return Visibility.Visible; } + return Visibility.Collapsed; + } - public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture) + public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture) + { + if (values == null || parameter == null) { - if (values == null || parameter == null) - { - throw new ArgumentException($"{nameof(values)} and {nameof(parameter)} can't be null"); - } - - var valueEnums = values.Cast().ToList(); - var paramEnums = ((object[])parameter).Cast().ToList(); - - if (valueEnums.Count != paramEnums.Count) - { - throw new ArgumentException("value count should match parameter count"); - } - - if (valueEnums.Where((t, i) => !t.Equals(paramEnums[i])).Any()) - { - return Visibility.Collapsed; - } - - return Visibility.Visible; + throw new ArgumentException($"{nameof(values)} and {nameof(parameter)} can't be null"); } - public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture) + var valueEnums = values.Cast().ToList(); + var paramEnums = ((object[])parameter).Cast().ToList(); + + if (valueEnums.Count != paramEnums.Count) { - throw new NotSupportedException(); + throw new ArgumentException("value count should match parameter count"); } - public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) + if (valueEnums.Where((t, i) => !t.Equals(paramEnums[i])).Any()) { - throw new NotSupportedException(); + return Visibility.Collapsed; } + + return Visibility.Visible; + } + + public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture) + { + throw new NotSupportedException(); + } + + public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) + { + throw new NotSupportedException(); } } diff --git a/src/SoulSplitter/UI/Converters/EnumValueEnumParameterConverter.cs b/src/SoulSplitter/UI/Converters/EnumValueEnumParameterConverter.cs index 9332f7e..cd12f01 100644 --- a/src/SoulSplitter/UI/Converters/EnumValueEnumParameterConverter.cs +++ b/src/SoulSplitter/UI/Converters/EnumValueEnumParameterConverter.cs @@ -18,23 +18,22 @@ using System.Globalization; using System.Windows.Data; -namespace SoulSplitter.UI.Converters +namespace SoulSplitter.UI.Converters; + +public class EnumValueEnumParameterConverter : IValueConverter { - public class EnumValueEnumParameterConverter : IValueConverter + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + if (value is Enum valueEnum && parameter is Enum valueParameter && valueEnum.GetType() == valueParameter.GetType()) { - if (value is Enum valueEnum && parameter is Enum valueParameter && valueEnum.GetType() == valueParameter.GetType()) - { - return valueEnum.Equals(valueParameter); - } - - return false; + return valueEnum.Equals(valueParameter); } - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - return parameter; - } + return false; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + return parameter; } } diff --git a/src/SoulSplitter/UI/Converters/GameToSelectedIndexConverter.cs b/src/SoulSplitter/UI/Converters/GameToSelectedIndexConverter.cs index 135fac1..c3b005d 100644 --- a/src/SoulSplitter/UI/Converters/GameToSelectedIndexConverter.cs +++ b/src/SoulSplitter/UI/Converters/GameToSelectedIndexConverter.cs @@ -19,26 +19,25 @@ using SoulMemory; using SoulSplitter.UI.Generic; -namespace SoulSplitter.UI.Converters +namespace SoulSplitter.UI.Converters; + +public class GameToSelectedIndexConverter : IValueConverter { - public class GameToSelectedIndexConverter : IValueConverter + public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { - public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) + if (value is Game g) { - if (value is Game g) - { - return (int)g; - } - throw new NotSupportedException(); + return (int)g; } + throw new NotSupportedException(); + } - public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) + public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) + { + if (value is int num && num.TryParseEnum(out Game g)) { - if (value is int num && num.TryParseEnum(out Game g)) - { - return g; - } - throw new NotSupportedException(); + return g; } + throw new NotSupportedException(); } } diff --git a/src/SoulSplitter/UI/Converters/SplitObjectToDescriptionConverter.cs b/src/SoulSplitter/UI/Converters/SplitObjectToDescriptionConverter.cs index 85e6fe3..92ec878 100644 --- a/src/SoulSplitter/UI/Converters/SplitObjectToDescriptionConverter.cs +++ b/src/SoulSplitter/UI/Converters/SplitObjectToDescriptionConverter.cs @@ -18,33 +18,32 @@ using System.Windows.Data; using SoulMemory.Memory; -namespace SoulSplitter.UI.Converters +namespace SoulSplitter.UI.Converters; + +public class SplitObjectToDescriptionConverter : IValueConverter { - public class SplitObjectToDescriptionConverter : IValueConverter + public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { - public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) + if (value is Enum e) { - if (value is Enum e) - { - return e.GetDisplayName(); - } - - if (value is uint u) - { - return u; - } + return e.GetDisplayName(); + } - if (value?.GetType().IsClass ?? false) - { - return value.ToString(); - } - - return ""; + if (value is uint u) + { + return u; } - public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) + if (value?.GetType().IsClass ?? false) { - throw new NotSupportedException(); + return value.ToString(); } + + return ""; + } + + public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) + { + throw new NotSupportedException(); } } diff --git a/src/SoulSplitter/UI/Converters/SplitTypeVisibilityConverter.cs b/src/SoulSplitter/UI/Converters/SplitTypeVisibilityConverter.cs index 627f1a8..89998f0 100644 --- a/src/SoulSplitter/UI/Converters/SplitTypeVisibilityConverter.cs +++ b/src/SoulSplitter/UI/Converters/SplitTypeVisibilityConverter.cs @@ -19,28 +19,27 @@ using System.Windows.Data; using SoulSplitter.UI.Generic; -namespace SoulSplitter.UI.Converters +namespace SoulSplitter.UI.Converters; + +public class SplitTypeVisibilityConverter : IValueConverter { - public class SplitTypeVisibilityConverter : IValueConverter + public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { - public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) - { - var result = - value is SplitType splitType && - parameter is string s && - Enum.TryParse(s, out SplitType target) && - splitType == target; - - if (result) - { - return Visibility.Visible; - } - return Visibility.Collapsed; - } + var result = + value is SplitType splitType && + parameter is string s && + Enum.TryParse(s, out SplitType target) && + splitType == target; - public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) + if (result) { - throw new NotSupportedException(); + return Visibility.Visible; } + return Visibility.Collapsed; + } + + public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) + { + throw new NotSupportedException(); } } \ No newline at end of file diff --git a/src/SoulSplitter/UI/DarkSouls1/DarkSouls1Control.xaml.cs b/src/SoulSplitter/UI/DarkSouls1/DarkSouls1Control.xaml.cs index 70cda10..9f34997 100644 --- a/src/SoulSplitter/UI/DarkSouls1/DarkSouls1Control.xaml.cs +++ b/src/SoulSplitter/UI/DarkSouls1/DarkSouls1Control.xaml.cs @@ -16,16 +16,15 @@ using System.Windows.Controls; -namespace SoulSplitter.UI.DarkSouls1 +namespace SoulSplitter.UI.DarkSouls1; + +/// +/// Interaction logic for DarkSouls1Control.xaml +/// +public partial class DarkSouls1Control : UserControl { - /// - /// Interaction logic for DarkSouls1Control.xaml - /// - public partial class DarkSouls1Control : UserControl + public DarkSouls1Control() { - public DarkSouls1Control() - { - InitializeComponent(); - } + InitializeComponent(); } } diff --git a/src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModel.cs b/src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModel.cs index 375846d..f65db7f 100644 --- a/src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModel.cs +++ b/src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModel.cs @@ -23,204 +23,203 @@ using SoulSplitter.UI.Generic; using BonfireState = SoulMemory.DarkSouls1.BonfireState; -namespace SoulSplitter.UI.DarkSouls1 +namespace SoulSplitter.UI.DarkSouls1; + +public class DarkSouls1ViewModel : BaseViewModel { - public class DarkSouls1ViewModel : BaseViewModel + public DarkSouls1ViewModel() { - public DarkSouls1ViewModel() - { - AddSplitCommand = new RelayCommand(AddSplit, CanAddSplit); - } + AddSplitCommand = new RelayCommand(AddSplit, CanAddSplit); + } - public bool ResetInventoryIndices - { - get => _resetInventoryIndices; - set => this.SetField(ref _resetInventoryIndices, value); - } - private bool _resetInventoryIndices = true; + public bool ResetInventoryIndices + { + get => _resetInventoryIndices; + set => this.SetField(ref _resetInventoryIndices, value); + } + private bool _resetInventoryIndices = true; - public DropModType DropModType + public DropModType DropModType + { + get => _dropModType; + set { - get => _dropModType; - set - { - var oldValue = _dropModType; - this.SetField(ref _dropModType, value); - OnDropModSettingsChanged(oldValue, value); - } + var oldValue = _dropModType; + this.SetField(ref _dropModType, value); + OnDropModSettingsChanged(oldValue, value); } - private DropModType _dropModType = DropModType.None; + } + private DropModType _dropModType = DropModType.None; - #region - [XmlIgnore] - public bool DropModRequestGameExit = false; + #region + [XmlIgnore] + public bool DropModRequestGameExit = false; - [XmlIgnore] - public bool DropModRequestInitialisation = false; - private void OnDropModSettingsChanged(DropModType oldValue, DropModType newValue) + [XmlIgnore] + public bool DropModRequestInitialisation = false; + private void OnDropModSettingsChanged(DropModType oldValue, DropModType newValue) + { + //When dropmod is turned off, the game should be closed to ensure no modifications are left behind in memory + if ((oldValue == DropModType.AnyPercent || oldValue == DropModType.AllAchievements) && newValue == DropModType.None) { - //When dropmod is turned off, the game should be closed to ensure no modifications are left behind in memory - if ((oldValue == DropModType.AnyPercent || oldValue == DropModType.AllAchievements) && newValue == DropModType.None) - { - DropModRequestGameExit = true; - } + DropModRequestGameExit = true; + } - if(newValue != DropModType.None) - { - DropModRequestInitialisation = true; - } + if(newValue != DropModType.None) + { + DropModRequestInitialisation = true; } + } - #endregion + #endregion - #region add/remove splits ============================================================================================================================================ + #region add/remove splits ============================================================================================================================================ - private bool CanAddSplit(object? param) + private bool CanAddSplit(object? param) + { + if (!NewSplitTimingType.HasValue || !NewSplitType.HasValue) { - if (!NewSplitTimingType.HasValue || !NewSplitType.HasValue) - { - return false; - } + return false; + } - switch (NewSplitType) - { - default: - throw new ArgumentException($"{NewSplitType} not supported"); + switch (NewSplitType) + { + default: + throw new ArgumentException($"{NewSplitType} not supported"); - case SplitType.Boss: - case SplitType.KnownFlag: - case SplitType.Attribute: - return NewSplitValue != null; + case SplitType.Boss: + case SplitType.KnownFlag: + case SplitType.Attribute: + return NewSplitValue != null; - case SplitType.Position: - return Position != null; + case SplitType.Position: + return Position != null; - case SplitType.Flag: - return FlagDescription != null; + case SplitType.Flag: + return FlagDescription != null; - case SplitType.Bonfire: - return NewSplitBonfireState != null && NewSplitBonfireState.Bonfire != null; + case SplitType.Bonfire: + return NewSplitBonfireState != null && NewSplitBonfireState.Bonfire != null; - case SplitType.Item: - return NewSplitItemState != null && NewSplitItemState.ItemType != null; + case SplitType.Item: + return NewSplitItemState != null && NewSplitItemState.ItemType != null; - case SplitType.Credits: - return NewSplitTimingType != null; - } + case SplitType.Credits: + return NewSplitTimingType != null; } + } - private void AddSplit(object? param) + private void AddSplit(object? param) + { + object? split = null; + switch (NewSplitType) { - object? split = null; + default: + throw new ArgumentException($"{NewSplitType} not supported"); + + case SplitType.Boss: + case SplitType.KnownFlag: + case SplitType.Attribute: + split = NewSplitValue; + break; + + case SplitType.Position: + split = Position; + break; + + case SplitType.Flag: + split = FlagDescription; + break; + + case SplitType.Bonfire: + split = NewSplitBonfireState; + break; + + case SplitType.Item: + split = NewSplitItemState; + break; + + case SplitType.Credits: + split = "Credits"; + break; + } + SplitsViewModel.AddSplit(NewSplitTimingType!.Value, NewSplitType.Value, split!); + + NewSplitTimingType = null; + NewSplitEnabledSplitType = false; + NewSplitType = null; + } + + + #endregion + + #region Properties for new splits ============================================================================================================================================ + + [XmlIgnore] + public new SplitType? NewSplitType + { + get => _newSplitType; + set + { + this.SetField(ref _newSplitType, value); + switch (NewSplitType) { - default: - throw new ArgumentException($"{NewSplitType} not supported"); - - case SplitType.Boss: - case SplitType.KnownFlag: case SplitType.Attribute: - split = NewSplitValue; + NewSplitValue = new Splits.DarkSouls1.Attribute() { AttributeType = SoulMemory.DarkSouls1.Attribute.Vitality, Level = 10 }; break; case SplitType.Position: - split = Position; + Position = new VectorSize() { Position = CurrentPosition.Clone() }; break; case SplitType.Flag: - split = FlagDescription; + FlagDescription = new FlagDescription(); break; case SplitType.Bonfire: - split = NewSplitBonfireState; + NewSplitBonfireState = new Splits.DarkSouls1.BonfireState() { State = BonfireState.Unlocked }; break; case SplitType.Item: - split = NewSplitItemState; - break; - - case SplitType.Credits: - split = "Credits"; + NewSplitItemState = new ItemState(); break; } - SplitsViewModel.AddSplit(NewSplitTimingType!.Value, NewSplitType.Value, split!); - - NewSplitTimingType = null; - NewSplitEnabledSplitType = false; - NewSplitType = null; } + } + private SplitType? _newSplitType = null; + [XmlIgnore] + public Splits.DarkSouls1.BonfireState NewSplitBonfireState + { + get => _newSplitBonfireState; + set => this.SetField(ref _newSplitBonfireState, value); + } + private Splits.DarkSouls1.BonfireState _newSplitBonfireState = null!; - #endregion - - #region Properties for new splits ============================================================================================================================================ - - [XmlIgnore] - public new SplitType? NewSplitType - { - get => _newSplitType; - set - { - this.SetField(ref _newSplitType, value); - - switch (NewSplitType) - { - case SplitType.Attribute: - NewSplitValue = new Splits.DarkSouls1.Attribute() { AttributeType = SoulMemory.DarkSouls1.Attribute.Vitality, Level = 10 }; - break; - - case SplitType.Position: - Position = new VectorSize() { Position = CurrentPosition.Clone() }; - break; - - case SplitType.Flag: - FlagDescription = new FlagDescription(); - break; - - case SplitType.Bonfire: - NewSplitBonfireState = new Splits.DarkSouls1.BonfireState() { State = BonfireState.Unlocked }; - break; - - case SplitType.Item: - NewSplitItemState = new ItemState(); - break; - } - } - } - private SplitType? _newSplitType = null; - - [XmlIgnore] - public Splits.DarkSouls1.BonfireState NewSplitBonfireState - { - get => _newSplitBonfireState; - set => this.SetField(ref _newSplitBonfireState, value); - } - private Splits.DarkSouls1.BonfireState _newSplitBonfireState = null!; - - [XmlIgnore] - public ItemState NewSplitItemState - { - get => _newSplitItemState; - set => this.SetField(ref _newSplitItemState, value); - } - private ItemState _newSplitItemState = null!; + [XmlIgnore] + public ItemState NewSplitItemState + { + get => _newSplitItemState; + set => this.SetField(ref _newSplitItemState, value); + } + private ItemState _newSplitItemState = null!; - #endregion + #endregion - #region Static UI source data ============================================================================================================================================ + #region Static UI source data ============================================================================================================================================ - public static ObservableCollection> Bosses { get; set; } = new ObservableCollection>(Enum.GetValues(typeof(Boss)).Cast().Select(i => new EnumFlagViewModel(i))); - public static ObservableCollection> KnownFlags { get; set; } = - new ObservableCollection>( - Enum - .GetValues(typeof(KnownFlag)) - .Cast() - .Select(i => new EnumFlagViewModel(i)) - ); - public static ObservableCollection> Bonfires { get; set; } = new ObservableCollection>(Enum.GetValues(typeof(Bonfire)).Cast().Select(i => new EnumFlagViewModel(i))); - public static ObservableCollection Items { get; set; } = new ObservableCollection(Item.AllItems); + public static ObservableCollection> Bosses { get; set; } = new ObservableCollection>(Enum.GetValues(typeof(Boss)).Cast().Select(i => new EnumFlagViewModel(i))); + public static ObservableCollection> KnownFlags { get; set; } = + new ObservableCollection>( + Enum + .GetValues(typeof(KnownFlag)) + .Cast() + .Select(i => new EnumFlagViewModel(i)) + ); + public static ObservableCollection> Bonfires { get; set; } = new ObservableCollection>(Enum.GetValues(typeof(Bonfire)).Cast().Select(i => new EnumFlagViewModel(i))); + public static ObservableCollection Items { get; set; } = new ObservableCollection(Item.AllItems); - #endregion - } + #endregion } diff --git a/src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs b/src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs index f092298..ae764d9 100644 --- a/src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs +++ b/src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs @@ -24,150 +24,149 @@ using Attribute = SoulMemory.DarkSouls1.Attribute; using BonfireState = SoulMemory.DarkSouls1.BonfireState; -namespace SoulSplitter.UI.DarkSouls1 +namespace SoulSplitter.UI.DarkSouls1; + +public class DarkSouls1ViewModelRefactor : BaseViewModel { - public class DarkSouls1ViewModelRefactor : BaseViewModel + public DarkSouls1ViewModelRefactor() { - public DarkSouls1ViewModelRefactor() + AddSplitCommand = new RelayCommand(AddSplit, CanAddSplit); + } + + public new bool StartAutomatically => BooleanFlags[0].Value; + public bool ResetInventoryIndices => BooleanFlags[1].Value; + + #region add/remove splits ============================================================================================================================================ + + private bool CanAddSplit(object? param) + { + if (!NewSplitTimingType.HasValue || !NewSplitType.HasValue) { - AddSplitCommand = new RelayCommand(AddSplit, CanAddSplit); + return false; } - public new bool StartAutomatically => BooleanFlags[0].Value; - public bool ResetInventoryIndices => BooleanFlags[1].Value; - - #region add/remove splits ============================================================================================================================================ - - private bool CanAddSplit(object? param) + switch (NewSplitType) { - if (!NewSplitTimingType.HasValue || !NewSplitType.HasValue) - { - return false; - } + default: + throw new ArgumentException($"{NewSplitType} not supported"); - switch (NewSplitType) - { - default: - throw new ArgumentException($"{NewSplitType} not supported"); + case SplitType.Boss: + case SplitType.Attribute: + return NewSplitValue != null; - case SplitType.Boss: - case SplitType.Attribute: - return NewSplitValue != null; + case SplitType.Position: + return Position != null; - case SplitType.Position: - return Position != null; + case SplitType.Flag: + return FlagDescription != null; - case SplitType.Flag: - return FlagDescription != null; + case SplitType.Bonfire: + return NewSplitBonfireState != null && NewSplitBonfireState.Bonfire != null; - case SplitType.Bonfire: - return NewSplitBonfireState != null && NewSplitBonfireState.Bonfire != null; - - case SplitType.Item: - return NewSplitItemState != null && NewSplitItemState.ItemType != null; + case SplitType.Item: + return NewSplitItemState != null && NewSplitItemState.ItemType != null; - case SplitType.Credits: - return NewSplitTimingType != null; - } + case SplitType.Credits: + return NewSplitTimingType != null; } + } - private void AddSplit(object? param) + private void AddSplit(object? param) + { + if (param is FlatSplit f) { - if (param is FlatSplit f) - { - SplitsViewModel.AddSplit(f.TimingType, f.SplitType, f.Split); - } + SplitsViewModel.AddSplit(f.TimingType, f.SplitType, f.Split); } + } - #endregion + #endregion - #region Properties for new splits ============================================================================================================================================ + #region Properties for new splits ============================================================================================================================================ - [XmlIgnore] - public new SplitType? NewSplitType + [XmlIgnore] + public new SplitType? NewSplitType + { + get => _newSplitType; + set { - get => _newSplitType; - set + this.SetField(ref _newSplitType, value); + + switch (NewSplitType) { - this.SetField(ref _newSplitType, value); - - switch (NewSplitType) - { - case SplitType.Attribute: - NewSplitValue = new Splits.DarkSouls1.Attribute() { AttributeType = SoulMemory.DarkSouls1.Attribute.Vitality, Level = 10 }; - break; - - case SplitType.Position: - Position = new VectorSize() { Position = CurrentPosition.Clone() }; - break; - - case SplitType.Flag: - FlagDescription = new FlagDescription(); - break; - - case SplitType.Bonfire: - NewSplitBonfireState = new Splits.DarkSouls1.BonfireState() { State = BonfireState.Unlocked }; - break; - - case SplitType.Item: - NewSplitItemState = new ItemState(); - break; - } + case SplitType.Attribute: + NewSplitValue = new Splits.DarkSouls1.Attribute() { AttributeType = SoulMemory.DarkSouls1.Attribute.Vitality, Level = 10 }; + break; + + case SplitType.Position: + Position = new VectorSize() { Position = CurrentPosition.Clone() }; + break; + + case SplitType.Flag: + FlagDescription = new FlagDescription(); + break; + + case SplitType.Bonfire: + NewSplitBonfireState = new Splits.DarkSouls1.BonfireState() { State = BonfireState.Unlocked }; + break; + + case SplitType.Item: + NewSplitItemState = new ItemState(); + break; } } + } - private SplitType? _newSplitType = null; + private SplitType? _newSplitType = null; - [XmlIgnore] - public Splits.DarkSouls1.BonfireState NewSplitBonfireState - { - get => _newSplitBonfireState; - set => this.SetField(ref _newSplitBonfireState, value); - } + [XmlIgnore] + public Splits.DarkSouls1.BonfireState NewSplitBonfireState + { + get => _newSplitBonfireState; + set => this.SetField(ref _newSplitBonfireState, value); + } - private Splits.DarkSouls1.BonfireState _newSplitBonfireState = null!; + private Splits.DarkSouls1.BonfireState _newSplitBonfireState = null!; - [XmlIgnore] - public ItemState NewSplitItemState - { - get => _newSplitItemState; - set => this.SetField(ref _newSplitItemState, value); - } + [XmlIgnore] + public ItemState NewSplitItemState + { + get => _newSplitItemState; + set => this.SetField(ref _newSplitItemState, value); + } - private ItemState _newSplitItemState = null!; + private ItemState _newSplitItemState = null!; - #endregion + #endregion - #region Static UI source data ============================================================================================================================================ - public ObservableCollection BooleanFlags { get; set; } = new ObservableCollection() - { - new BoolDescriptionViewModel(){ Description = "Start automatically", Value = true }, - new BoolDescriptionViewModel(){ Description = "Reset inventory indices", Value = true } - }; + #region Static UI source data ============================================================================================================================================ + public ObservableCollection BooleanFlags { get; set; } = new ObservableCollection() + { + new BoolDescriptionViewModel(){ Description = "Start automatically", Value = true }, + new BoolDescriptionViewModel(){ Description = "Reset inventory indices", Value = true } + }; - public static ObservableCollection> TimingTypes { get; set; } = new ObservableCollection>() - { - new EnumFlagViewModel(TimingType.Immediate), - new EnumFlagViewModel(TimingType.OnLoading), - new EnumFlagViewModel(TimingType.OnWarp), - }; + public static ObservableCollection> TimingTypes { get; set; } = new ObservableCollection>() + { + new EnumFlagViewModel(TimingType.Immediate), + new EnumFlagViewModel(TimingType.OnLoading), + new EnumFlagViewModel(TimingType.OnWarp), + }; - public static ObservableCollection> SplitTypes { get; set; } = new ObservableCollection>() - { - new EnumFlagViewModel(SplitType.Boss), - new EnumFlagViewModel(SplitType.Attribute), - new EnumFlagViewModel(SplitType.Bonfire), - new EnumFlagViewModel(SplitType.Item), - new EnumFlagViewModel(SplitType.Position), - new EnumFlagViewModel(SplitType.Flag), - }; - - public static ObservableCollection> Bosses { get; set; } = EnumFlagViewModel.GetEnumViewModels(); - public static ObservableCollection> Attributes { get; set; } = EnumFlagViewModel.GetEnumViewModels(); - public static ObservableCollection> Bonfires { get; set; } = EnumFlagViewModel.GetEnumViewModels(); - public static ObservableCollection> Items { get; set; } = EnumFlagViewModel.GetEnumViewModels(); - - #endregion - } + public static ObservableCollection> SplitTypes { get; set; } = new ObservableCollection>() + { + new EnumFlagViewModel(SplitType.Boss), + new EnumFlagViewModel(SplitType.Attribute), + new EnumFlagViewModel(SplitType.Bonfire), + new EnumFlagViewModel(SplitType.Item), + new EnumFlagViewModel(SplitType.Position), + new EnumFlagViewModel(SplitType.Flag), + }; + + public static ObservableCollection> Bosses { get; set; } = EnumFlagViewModel.GetEnumViewModels(); + public static ObservableCollection> Attributes { get; set; } = EnumFlagViewModel.GetEnumViewModels(); + public static ObservableCollection> Bonfires { get; set; } = EnumFlagViewModel.GetEnumViewModels(); + public static ObservableCollection> Items { get; set; } = EnumFlagViewModel.GetEnumViewModels(); + + #endregion } diff --git a/src/SoulSplitter/UI/DarkSouls2/DarkSouls2Control.xaml.cs b/src/SoulSplitter/UI/DarkSouls2/DarkSouls2Control.xaml.cs index cb98189..1d4703e 100644 --- a/src/SoulSplitter/UI/DarkSouls2/DarkSouls2Control.xaml.cs +++ b/src/SoulSplitter/UI/DarkSouls2/DarkSouls2Control.xaml.cs @@ -19,76 +19,75 @@ using System.Windows.Input; using SoulSplitter.Splits.DarkSouls2; -namespace SoulSplitter.UI.DarkSouls2 +namespace SoulSplitter.UI.DarkSouls2; + +/// +/// Interaction logic for DarkSouls3Control.xaml +/// +public partial class DarkSouls2Control : UserControl { - /// - /// Interaction logic for DarkSouls3Control.xaml - /// - public partial class DarkSouls2Control : UserControl + public DarkSouls2Control() { - public DarkSouls2Control() - { - InitializeComponent(); - DataContextChanged += OnDataContextChanged; - } + InitializeComponent(); + DataContextChanged += OnDataContextChanged; + } - void OnDataContextChanged(object sender, DependencyPropertyChangedEventArgs e) + void OnDataContextChanged(object sender, DependencyPropertyChangedEventArgs e) + { + if (DataContext is DarkSouls2ViewModel vm) { - if (DataContext is DarkSouls2ViewModel vm) - { - _darkSouls2ViewModel = vm; - } + _darkSouls2ViewModel = vm; } - private DarkSouls2ViewModel _darkSouls2ViewModel = null!; + } + private DarkSouls2ViewModel _darkSouls2ViewModel = null!; - private void AddSplit_OnClick(object sender, RoutedEventArgs e) - { - _darkSouls2ViewModel.AddSplit(); - } + private void AddSplit_OnClick(object sender, RoutedEventArgs e) + { + _darkSouls2ViewModel.AddSplit(); + } - private void RemoveSplit_OnClick(object sender, RoutedEventArgs e) - { - _darkSouls2ViewModel.RemoveSplit(); - } + private void RemoveSplit_OnClick(object sender, RoutedEventArgs e) + { + _darkSouls2ViewModel.RemoveSplit(); + } - private void TextBoxRawFlag_OnTextChanged(object sender, TextChangedEventArgs e) + private void TextBoxRawFlag_OnTextChanged(object sender, TextChangedEventArgs e) + { + if (_darkSouls2ViewModel.NewSplitType != null && _darkSouls2ViewModel.NewSplitType == DarkSouls2SplitType.Flag && sender is TextBox textBox) { - if (_darkSouls2ViewModel.NewSplitType != null && _darkSouls2ViewModel.NewSplitType == DarkSouls2SplitType.Flag && sender is TextBox textBox) + if (uint.TryParse(textBox.Text, out uint result)) { - if (uint.TryParse(textBox.Text, out uint result)) - { - _darkSouls2ViewModel.NewSplitValue = result; - return; - } - _darkSouls2ViewModel.NewSplitValue = null; - textBox.Text = string.Empty; + _darkSouls2ViewModel.NewSplitValue = result; + return; } + _darkSouls2ViewModel.NewSplitValue = null; + textBox.Text = string.Empty; } - private void SplitsTreeView_OnSelectedItemChanged(object sender, RoutedPropertyChangedEventArgs e) + } + private void SplitsTreeView_OnSelectedItemChanged(object sender, RoutedPropertyChangedEventArgs e) + { + _darkSouls2ViewModel.SelectedSplit = null; + if (e.NewValue is HierarchicalSplitViewModel b) { - _darkSouls2ViewModel.SelectedSplit = null; - if (e.NewValue is HierarchicalSplitViewModel b) - { - _darkSouls2ViewModel.SelectedSplit = b; - } + _darkSouls2ViewModel.SelectedSplit = b; } + } - private void OnPreviewTextInput_Float(object sender, TextCompositionEventArgs e) + private void OnPreviewTextInput_Float(object sender, TextCompositionEventArgs e) + { + if (sender is TextBox t) { - if (sender is TextBox t) + var newText = t.Text + e.Text; + if (string.IsNullOrWhiteSpace(newText) || newText == "-" || float.TryParse(newText, out _)) { - var newText = t.Text + e.Text; - if (string.IsNullOrWhiteSpace(newText) || newText == "-" || float.TryParse(newText, out _)) - { - return; - } - e.Handled = true; + return; } + e.Handled = true; } + } - private void CopyPosition_OnClick(object sender, RoutedEventArgs e) - { - _darkSouls2ViewModel.NewSplitValue = _darkSouls2ViewModel.CurrentPosition.Clone(); - } + private void CopyPosition_OnClick(object sender, RoutedEventArgs e) + { + _darkSouls2ViewModel.NewSplitValue = _darkSouls2ViewModel.CurrentPosition.Clone(); } } diff --git a/src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs b/src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs index 596ae47..509ed7e 100644 --- a/src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs +++ b/src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs @@ -25,293 +25,292 @@ using SoulSplitter.UI.Generic; using Attribute = SoulSplitter.Splits.DarkSouls2.Attribute; -namespace SoulSplitter.UI.DarkSouls2 +namespace SoulSplitter.UI.DarkSouls2; + +public class DarkSouls2ViewModel : ICustomNotifyPropertyChanged { - public class DarkSouls2ViewModel : ICustomNotifyPropertyChanged + public bool StartAutomatically + { + get => _startAutomatically; + set => this.SetField(ref _startAutomatically, value); + } + private bool _startAutomatically = true; + + [XmlIgnore] + public Vector3f CurrentPosition + { + get => _currentPosition; + set => this.SetField(ref _currentPosition, value); + } + private Vector3f _currentPosition = new Vector3f(0f,0f,0f); + + + #region add/remove splits ============================================================================================================================================ + public void AddSplit() { - public bool StartAutomatically + if (NewSplitTimingType == null || + NewSplitType == null || + NewSplitValue == null) { - get => _startAutomatically; - set => this.SetField(ref _startAutomatically, value); + return; } - private bool _startAutomatically = true; - [XmlIgnore] - public Vector3f CurrentPosition + var hierarchicalTimingType = Splits.FirstOrDefault(i => i.TimingType == NewSplitTimingType); + if (hierarchicalTimingType == null) { - get => _currentPosition; - set => this.SetField(ref _currentPosition, value); + hierarchicalTimingType = new HierarchicalTimingTypeViewModel() { TimingType = NewSplitTimingType.Value }; + Splits.Add(hierarchicalTimingType); } - private Vector3f _currentPosition = new Vector3f(0f,0f,0f); - - #region add/remove splits ============================================================================================================================================ - public void AddSplit() + var hierarchicalSplitType = hierarchicalTimingType.Children.FirstOrDefault(i => i.SplitType == NewSplitType); + if (hierarchicalSplitType == null) { - if (NewSplitTimingType == null || - NewSplitType == null || - NewSplitValue == null) - { - return; - } - - var hierarchicalTimingType = Splits.FirstOrDefault(i => i.TimingType == NewSplitTimingType); - if (hierarchicalTimingType == null) - { - hierarchicalTimingType = new HierarchicalTimingTypeViewModel() { TimingType = NewSplitTimingType.Value }; - Splits.Add(hierarchicalTimingType); - } - - var hierarchicalSplitType = hierarchicalTimingType.Children.FirstOrDefault(i => i.SplitType == NewSplitType); - if (hierarchicalSplitType == null) - { - hierarchicalSplitType = new HierarchicalSplitTypeViewModel() { SplitType = NewSplitType.Value, Parent = hierarchicalTimingType }; - hierarchicalTimingType.Children.Add(hierarchicalSplitType); - } - - switch (NewSplitType) - { - default: - throw new ArgumentException($"split type not supported: {NewSplitType}"); + hierarchicalSplitType = new HierarchicalSplitTypeViewModel() { SplitType = NewSplitType.Value, Parent = hierarchicalTimingType }; + hierarchicalTimingType.Children.Add(hierarchicalSplitType); + } - case DarkSouls2SplitType.Position: - var position = (Vector3f)NewSplitValue; - if (hierarchicalSplitType.Children.All(i => ((Vector3f)i.Split).ToString() != position.ToString())) - { - hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = position, Parent = hierarchicalSplitType }); - } - break; + switch (NewSplitType) + { + default: + throw new ArgumentException($"split type not supported: {NewSplitType}"); - case DarkSouls2SplitType.BossKill: - var bossKill = (BossKill)NewSplitValue; - if (hierarchicalSplitType.Children.All(i => ((BossKill)i.Split).ToString() != bossKill.ToString())) - { - hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = bossKill, Parent = hierarchicalSplitType }); - } - break; + case DarkSouls2SplitType.Position: + var position = (Vector3f)NewSplitValue; + if (hierarchicalSplitType.Children.All(i => ((Vector3f)i.Split).ToString() != position.ToString())) + { + hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = position, Parent = hierarchicalSplitType }); + } + break; - case DarkSouls2SplitType.Attribute: - var attribute = (Attribute)NewSplitValue; - if (hierarchicalSplitType.Children.All(i => ((Attribute)i.Split).ToString() != attribute.ToString())) - { - hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = attribute, Parent = hierarchicalSplitType }); - } - break; + case DarkSouls2SplitType.BossKill: + var bossKill = (BossKill)NewSplitValue; + if (hierarchicalSplitType.Children.All(i => ((BossKill)i.Split).ToString() != bossKill.ToString())) + { + hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = bossKill, Parent = hierarchicalSplitType }); + } + break; - case DarkSouls2SplitType.Flag: - var flag = (uint)NewSplitValue; - if (hierarchicalSplitType.Children.All(i => (uint)i.Split != flag)) - { - hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = flag, Parent = hierarchicalSplitType }); - } - break; - } + case DarkSouls2SplitType.Attribute: + var attribute = (Attribute)NewSplitValue; + if (hierarchicalSplitType.Children.All(i => ((Attribute)i.Split).ToString() != attribute.ToString())) + { + hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = attribute, Parent = hierarchicalSplitType }); + } + break; - NewSplitTimingType = null; - NewSplitType = null; - NewSplitValue = null; + case DarkSouls2SplitType.Flag: + var flag = (uint)NewSplitValue; + if (hierarchicalSplitType.Children.All(i => (uint)i.Split != flag)) + { + hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = flag, Parent = hierarchicalSplitType }); + } + break; } - public void RemoveSplit() + NewSplitTimingType = null; + NewSplitType = null; + NewSplitValue = null; + } + + public void RemoveSplit() + { + if (SelectedSplit != null) { - if (SelectedSplit != null) + var parent = SelectedSplit.Parent; + parent!.Children.Remove(SelectedSplit); + if (parent.Children.Count <= 0) { - var parent = SelectedSplit.Parent; - parent!.Children.Remove(SelectedSplit); - if (parent.Children.Count <= 0) + var nextParent = parent.Parent; + nextParent!.Children.Remove(parent); + if (nextParent.Children.Count <= 0) { - var nextParent = parent.Parent; - nextParent!.Children.Remove(parent); - if (nextParent.Children.Count <= 0) - { - Splits.Remove(nextParent); - } + Splits.Remove(nextParent); } - - SelectedSplit = null; } + + SelectedSplit = null; } + } - - public ObservableCollection Splits { get; set; } = new ObservableCollection(); - #endregion + + public ObservableCollection Splits { get; set; } = new ObservableCollection(); + #endregion - #region Properties for new splits ============================================================================================================================================ + #region Properties for new splits ============================================================================================================================================ - [XmlIgnore] - public TimingType? NewSplitTimingType + [XmlIgnore] + public TimingType? NewSplitTimingType + { + get => _newSplitTimingType; + set { - get => _newSplitTimingType; - set - { - this.SetField(ref _newSplitTimingType, value); - NewSplitTypeEnabled = true; - } + this.SetField(ref _newSplitTimingType, value); + NewSplitTypeEnabled = true; } - private TimingType? _newSplitTimingType = null; + } + private TimingType? _newSplitTimingType = null; - [XmlIgnore] - public DarkSouls2SplitType? NewSplitType + [XmlIgnore] + public DarkSouls2SplitType? NewSplitType + { + get => _newSplitType; + set { - get => _newSplitType; - set + NewSplitPositionEnabled = false; + NewSplitBossKillEnabled = false; + NewSplitAttributeEnabled = false; + NewSplitFlagEnabled = false; + + this.SetField(ref _newSplitType, value); + switch (NewSplitType) { - NewSplitPositionEnabled = false; - NewSplitBossKillEnabled = false; - NewSplitAttributeEnabled = false; - NewSplitFlagEnabled = false; + case null: + break; - this.SetField(ref _newSplitType, value); - switch (NewSplitType) - { - case null: - break; - - case DarkSouls2SplitType.Position: - NewSplitPositionEnabled = true; - NewSplitValue = new Vector3f(CurrentPosition.X, CurrentPosition.Y, CurrentPosition.Z); - break; - - case DarkSouls2SplitType.BossKill: - NewSplitBossKillEnabled = true; - NewSplitValue = new BossKill(); - break; - - case DarkSouls2SplitType.Attribute: - NewSplitAttributeEnabled = true; - NewSplitValue = new Splits.DarkSouls2.Attribute(); - break; - - case DarkSouls2SplitType.Flag: - NewSplitFlagEnabled = true; - break; - - default: - throw new ArgumentException($"Unsupported split type: {NewSplitType}"); - } - } - } - private DarkSouls2SplitType? _newSplitType = null; + case DarkSouls2SplitType.Position: + NewSplitPositionEnabled = true; + NewSplitValue = new Vector3f(CurrentPosition.X, CurrentPosition.Y, CurrentPosition.Z); + break; - [XmlIgnore] - public object? NewSplitValue - { - get => _newSplitValue; - set - { - this.SetField(ref _newSplitValue, value); - NewSplitAddEnabled = NewSplitValue != null; + case DarkSouls2SplitType.BossKill: + NewSplitBossKillEnabled = true; + NewSplitValue = new BossKill(); + break; + + case DarkSouls2SplitType.Attribute: + NewSplitAttributeEnabled = true; + NewSplitValue = new Splits.DarkSouls2.Attribute(); + break; + + case DarkSouls2SplitType.Flag: + NewSplitFlagEnabled = true; + break; + + default: + throw new ArgumentException($"Unsupported split type: {NewSplitType}"); } } - private object? _newSplitValue = null; - - [XmlIgnore] - public bool NewSplitTypeEnabled - { - get => _newSplitTypeEnabled; - set => this.SetField(ref _newSplitTypeEnabled, value); - } - private bool _newSplitTypeEnabled = false; + } + private DarkSouls2SplitType? _newSplitType = null; - [XmlIgnore] - public bool NewSplitPositionEnabled + [XmlIgnore] + public object? NewSplitValue + { + get => _newSplitValue; + set { - get => _newSplitPositionEnabled; - set => this.SetField(ref _newSplitPositionEnabled, value); + this.SetField(ref _newSplitValue, value); + NewSplitAddEnabled = NewSplitValue != null; } - private bool _newSplitPositionEnabled = false; + } + private object? _newSplitValue = null; + + [XmlIgnore] + public bool NewSplitTypeEnabled + { + get => _newSplitTypeEnabled; + set => this.SetField(ref _newSplitTypeEnabled, value); + } + private bool _newSplitTypeEnabled = false; - [XmlIgnore] - public bool NewSplitBossKillEnabled - { - get => _newSplitBossKillEnabled; - set => this.SetField(ref _newSplitBossKillEnabled, value); - } - private bool _newSplitBossKillEnabled = false; + [XmlIgnore] + public bool NewSplitPositionEnabled + { + get => _newSplitPositionEnabled; + set => this.SetField(ref _newSplitPositionEnabled, value); + } + private bool _newSplitPositionEnabled = false; - [XmlIgnore] - public bool NewSplitAttributeEnabled - { - get => _newSplitAttributeEnabled; - set => this.SetField(ref _newSplitAttributeEnabled, value); - } - private bool _newSplitAttributeEnabled = false; + [XmlIgnore] + public bool NewSplitBossKillEnabled + { + get => _newSplitBossKillEnabled; + set => this.SetField(ref _newSplitBossKillEnabled, value); + } + private bool _newSplitBossKillEnabled = false; - [XmlIgnore] - public bool NewSplitFlagEnabled - { - get => _newSplitFlagEnabled; - set => this.SetField(ref _newSplitFlagEnabled, value); - } - private bool _newSplitFlagEnabled = false; + [XmlIgnore] + public bool NewSplitAttributeEnabled + { + get => _newSplitAttributeEnabled; + set => this.SetField(ref _newSplitAttributeEnabled, value); + } + private bool _newSplitAttributeEnabled = false; - [XmlIgnore] - public bool NewSplitAddEnabled - { - get => _newSplitAddEnabled; - set => this.SetField(ref _newSplitAddEnabled, value); - } - private bool _newSplitAddEnabled = false; + [XmlIgnore] + public bool NewSplitFlagEnabled + { + get => _newSplitFlagEnabled; + set => this.SetField(ref _newSplitFlagEnabled, value); + } + private bool _newSplitFlagEnabled = false; - [XmlIgnore] - public bool RemoveSplitEnabled - { - get => _removeSplitEnabled; - set => this.SetField(ref _removeSplitEnabled, value); - } - private bool _removeSplitEnabled = false; + [XmlIgnore] + public bool NewSplitAddEnabled + { + get => _newSplitAddEnabled; + set => this.SetField(ref _newSplitAddEnabled, value); + } + private bool _newSplitAddEnabled = false; + + [XmlIgnore] + public bool RemoveSplitEnabled + { + get => _removeSplitEnabled; + set => this.SetField(ref _removeSplitEnabled, value); + } + private bool _removeSplitEnabled = false; - [XmlIgnore] - public HierarchicalSplitViewModel? SelectedSplit + [XmlIgnore] + public HierarchicalSplitViewModel? SelectedSplit + { + get => _selectedSplit; + set { - get => _selectedSplit; - set - { - this.SetField(ref _selectedSplit, value); - RemoveSplitEnabled = SelectedSplit != null; - } + this.SetField(ref _selectedSplit, value); + RemoveSplitEnabled = SelectedSplit != null; } - private HierarchicalSplitViewModel? _selectedSplit = null; + } + private HierarchicalSplitViewModel? _selectedSplit = null; - #endregion + #endregion - #region Splits hierarchy - public void RestoreHierarchy() - { - //When serializing the model, we can't serialize the parent relation, because that would be a circular reference. Instead, parent's are not serialized. - //After deserializing, the parent relations must be restored. + #region Splits hierarchy + public void RestoreHierarchy() + { + //When serializing the model, we can't serialize the parent relation, because that would be a circular reference. Instead, parent's are not serialized. + //After deserializing, the parent relations must be restored. - foreach (var timingType in Splits) + foreach (var timingType in Splits) + { + foreach (var splitType in timingType.Children) { - foreach (var splitType in timingType.Children) + splitType.Parent = timingType; + foreach (var split in splitType.Children) { - splitType.Parent = timingType; - foreach (var split in splitType.Children) - { - split.Parent = splitType; - } + split.Parent = splitType; } } } + } - #endregion + #endregion - #region Static UI source data ============================================================================================================================================ + #region Static UI source data ============================================================================================================================================ - public static ObservableCollection> Bosses { get; set; } = new ObservableCollection>(Enum.GetValues(typeof(BossType)).Cast().Select(i => new EnumFlagViewModel(i))); + public static ObservableCollection> Bosses { get; set; } = new ObservableCollection>(Enum.GetValues(typeof(BossType)).Cast().Select(i => new EnumFlagViewModel(i))); - #endregion + #endregion - #region ICustomNotifyPropertyChanged + #region ICustomNotifyPropertyChanged - public event PropertyChangedEventHandler? PropertyChanged; + public event PropertyChangedEventHandler? PropertyChanged; - public void InvokePropertyChanged(string propertyName) - { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); - } - - #endregion + public void InvokePropertyChanged(string propertyName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } + + #endregion } diff --git a/src/SoulSplitter/UI/DarkSouls2/HierarchicalViewModel.cs b/src/SoulSplitter/UI/DarkSouls2/HierarchicalViewModel.cs index 6f26691..5cb2b8b 100644 --- a/src/SoulSplitter/UI/DarkSouls2/HierarchicalViewModel.cs +++ b/src/SoulSplitter/UI/DarkSouls2/HierarchicalViewModel.cs @@ -23,90 +23,89 @@ using SoulSplitter.UI.Generic; using Attribute = SoulSplitter.Splits.DarkSouls2.Attribute; -namespace SoulSplitter.UI.DarkSouls2 +namespace SoulSplitter.UI.DarkSouls2; + +[XmlType(Namespace = "DarkSouls2")] +public class HierarchicalTimingTypeViewModel : ICustomNotifyPropertyChanged { - [XmlType(Namespace = "DarkSouls2")] - public class HierarchicalTimingTypeViewModel : ICustomNotifyPropertyChanged + public TimingType TimingType { - public TimingType TimingType - { - get => _timingType; - set => this.SetField(ref _timingType, value); - } - private TimingType _timingType; - - public ObservableCollection Children { get; set; } = new ObservableCollection(); - - #region ICustomNotifyPropertyChanged + get => _timingType; + set => this.SetField(ref _timingType, value); + } + private TimingType _timingType; + + public ObservableCollection Children { get; set; } = new ObservableCollection(); - public event PropertyChangedEventHandler? PropertyChanged; + #region ICustomNotifyPropertyChanged - public void InvokePropertyChanged(string propertyName) - { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); - } + public event PropertyChangedEventHandler? PropertyChanged; - #endregion + public void InvokePropertyChanged(string propertyName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } - [XmlType(Namespace = "DarkSouls2")] - public class HierarchicalSplitTypeViewModel : ICustomNotifyPropertyChanged - { - [XmlIgnore] - [NonSerialized] - public HierarchicalTimingTypeViewModel? Parent; + #endregion +} - public DarkSouls2SplitType SplitType - { - get => _splitType; - set => this.SetField(ref _splitType, value); - } - private DarkSouls2SplitType _splitType; +[XmlType(Namespace = "DarkSouls2")] +public class HierarchicalSplitTypeViewModel : ICustomNotifyPropertyChanged +{ + [XmlIgnore] + [NonSerialized] + public HierarchicalTimingTypeViewModel? Parent; + public DarkSouls2SplitType SplitType + { + get => _splitType; + set => this.SetField(ref _splitType, value); + } + private DarkSouls2SplitType _splitType; - public ObservableCollection Children { get; set; } = new ObservableCollection(); - #region ICustomNotifyPropertyChanged + public ObservableCollection Children { get; set; } = new ObservableCollection(); - public event PropertyChangedEventHandler? PropertyChanged; + #region ICustomNotifyPropertyChanged - public void InvokePropertyChanged(string propertyName) - { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); - } + public event PropertyChangedEventHandler? PropertyChanged; - #endregion + public void InvokePropertyChanged(string propertyName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } + #endregion +} - [XmlType(Namespace = "DarkSouls2")] - [XmlInclude(typeof(Vector3f)), - XmlInclude(typeof(BossKill)), - XmlInclude(typeof(Attribute)), - XmlInclude(typeof(uint))] - public class HierarchicalSplitViewModel : ICustomNotifyPropertyChanged - { - [XmlIgnore] - [NonSerialized] - public HierarchicalSplitTypeViewModel? Parent; - [XmlElement(Namespace = "DarkSouls2")] - public object Split - { - get => _split; - set => this.SetField(ref _split, value); - } - private object _split = null!; +[XmlType(Namespace = "DarkSouls2")] +[XmlInclude(typeof(Vector3f)), + XmlInclude(typeof(BossKill)), + XmlInclude(typeof(Attribute)), + XmlInclude(typeof(uint))] +public class HierarchicalSplitViewModel : ICustomNotifyPropertyChanged +{ + [XmlIgnore] + [NonSerialized] + public HierarchicalSplitTypeViewModel? Parent; - #region ICustomNotifyPropertyChanged + [XmlElement(Namespace = "DarkSouls2")] + public object Split + { + get => _split; + set => this.SetField(ref _split, value); + } + private object _split = null!; - public event PropertyChangedEventHandler? PropertyChanged; + #region ICustomNotifyPropertyChanged - public void InvokePropertyChanged(string propertyName) - { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); - } + public event PropertyChangedEventHandler? PropertyChanged; - #endregion + public void InvokePropertyChanged(string propertyName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } + + #endregion } diff --git a/src/SoulSplitter/UI/DarkSouls3/DarkSouls3Control.xaml.cs b/src/SoulSplitter/UI/DarkSouls3/DarkSouls3Control.xaml.cs index bfddf4b..31b1acd 100644 --- a/src/SoulSplitter/UI/DarkSouls3/DarkSouls3Control.xaml.cs +++ b/src/SoulSplitter/UI/DarkSouls3/DarkSouls3Control.xaml.cs @@ -16,16 +16,15 @@ using System.Windows.Controls; -namespace SoulSplitter.UI.DarkSouls3 +namespace SoulSplitter.UI.DarkSouls3; + +/// +/// Interaction logic for DarkSouls3Control.xaml +/// +public partial class DarkSouls3Control : UserControl { - /// - /// Interaction logic for DarkSouls3Control.xaml - /// - public partial class DarkSouls3Control : UserControl + public DarkSouls3Control() { - public DarkSouls3Control() - { - InitializeComponent(); - } + InitializeComponent(); } } diff --git a/src/SoulSplitter/UI/DarkSouls3/DarkSouls3ViewModel.cs b/src/SoulSplitter/UI/DarkSouls3/DarkSouls3ViewModel.cs index 6155b2e..b896359 100644 --- a/src/SoulSplitter/UI/DarkSouls3/DarkSouls3ViewModel.cs +++ b/src/SoulSplitter/UI/DarkSouls3/DarkSouls3ViewModel.cs @@ -22,112 +22,111 @@ using SoulSplitter.UI.Generic; using Attribute = SoulSplitter.Splits.DarkSouls3.Attribute; -namespace SoulSplitter.UI.DarkSouls3 +namespace SoulSplitter.UI.DarkSouls3; + +public class DarkSouls3ViewModel : BaseViewModel { - public class DarkSouls3ViewModel : BaseViewModel + public DarkSouls3ViewModel() + { + AddSplitCommand = new RelayCommand(AddSplit, CanAddSplit); + } + + #region add/remove splits ============================================================================================================================================ + + private bool CanAddSplit() { - public DarkSouls3ViewModel() + if(NewSplitTimingType == null || NewSplitType == null) { - AddSplitCommand = new RelayCommand(AddSplit, CanAddSplit); + return false; + } + + if(NewSplitType == SplitType.Flag) + { + return FlagDescription != null; } - #region add/remove splits ============================================================================================================================================ - - private bool CanAddSplit() + if(NewSplitType == SplitType.Position) { - if(NewSplitTimingType == null || NewSplitType == null) - { - return false; - } - - if(NewSplitType == SplitType.Flag) - { - return FlagDescription != null; - } + return Position != null; + } - if(NewSplitType == SplitType.Position) - { - return Position != null; - } + return NewSplitValue != null; + } - return NewSplitValue != null; + private void AddSplit() + { + object? split = null; + switch (NewSplitType) + { + default: + throw new ArgumentException($"{NewSplitType} not supported"); + + case SplitType.Boss: + case SplitType.Bonfire: + case SplitType.ItemPickup: + case SplitType.Attribute: + split = NewSplitValue!; + break; + + case SplitType.Position: + split = Position; + break; + + case SplitType.Flag: + split = FlagDescription; + break; } + SplitsViewModel.AddSplit(NewSplitTimingType!.Value, NewSplitType.Value, split); - private void AddSplit() - { - object? split = null; - switch (NewSplitType) - { - default: - throw new ArgumentException($"{NewSplitType} not supported"); - - case SplitType.Boss: - case SplitType.Bonfire: - case SplitType.ItemPickup: - case SplitType.Attribute: - split = NewSplitValue!; - break; - - case SplitType.Position: - split = Position; - break; - - case SplitType.Flag: - split = FlagDescription; - break; - } - SplitsViewModel.AddSplit(NewSplitTimingType!.Value, NewSplitType.Value, split); + NewSplitTimingType = null; + NewSplitEnabledSplitType = false; + NewSplitType = null; + } - NewSplitTimingType = null; - NewSplitEnabledSplitType = false; - NewSplitType = null; - } + #endregion - #endregion + #region Properties for new splits ============================================================================================================================================ - #region Properties for new splits ============================================================================================================================================ + public bool LockIgtToZero + { + get => _lockIgtToZero; + set => this.SetField(ref _lockIgtToZero, value); + } + private bool _lockIgtToZero = false; - public bool LockIgtToZero + [XmlIgnore] + public new SplitType? NewSplitType + { + get => _newSplitType; + set { - get => _lockIgtToZero; - set => this.SetField(ref _lockIgtToZero, value); - } - private bool _lockIgtToZero = false; + this.SetField(ref _newSplitType, value); - [XmlIgnore] - public new SplitType? NewSplitType - { - get => _newSplitType; - set + if(NewSplitType == SplitType.Attribute) { - this.SetField(ref _newSplitType, value); - - if(NewSplitType == SplitType.Attribute) - { - NewSplitValue = new Attribute() { AttributeType = SoulMemory.DarkSouls3.Attribute.Vigor, Level = 10 }; - } - - if(NewSplitType == SplitType.Position) - { - Position = new VectorSize() { Position = CurrentPosition.Clone() }; - } - - if(NewSplitType == SplitType.Flag) - { - FlagDescription = new FlagDescription(); - } + NewSplitValue = new Attribute() { AttributeType = SoulMemory.DarkSouls3.Attribute.Vigor, Level = 10 }; + } + + if(NewSplitType == SplitType.Position) + { + Position = new VectorSize() { Position = CurrentPosition.Clone() }; + } + + if(NewSplitType == SplitType.Flag) + { + FlagDescription = new FlagDescription(); } } - private SplitType? _newSplitType = null; + } + private SplitType? _newSplitType = null; - #endregion + #endregion - #region Static UI source data ============================================================================================================================================ + #region Static UI source data ============================================================================================================================================ - public static ObservableCollection> Bosses { get; set; } = new ObservableCollection>(Enum.GetValues(typeof(Boss)).Cast().Select(i => new EnumFlagViewModel(i))); - public static ObservableCollection> Bonfires { get; set; } = new ObservableCollection>(Enum.GetValues(typeof(Bonfire)).Cast().Select(i => new EnumFlagViewModel(i))); - public static ObservableCollection> ItemPickups { get; set; } = new ObservableCollection>(Enum.GetValues(typeof(ItemPickup)).Cast().Select(i => new EnumFlagViewModel(i))); + public static ObservableCollection> Bosses { get; set; } = new ObservableCollection>(Enum.GetValues(typeof(Boss)).Cast().Select(i => new EnumFlagViewModel(i))); + public static ObservableCollection> Bonfires { get; set; } = new ObservableCollection>(Enum.GetValues(typeof(Bonfire)).Cast().Select(i => new EnumFlagViewModel(i))); + public static ObservableCollection> ItemPickups { get; set; } = new ObservableCollection>(Enum.GetValues(typeof(ItemPickup)).Cast().Select(i => new EnumFlagViewModel(i))); - #endregion - } + #endregion } diff --git a/src/SoulSplitter/UI/EldenRing/BossViewModel.cs b/src/SoulSplitter/UI/EldenRing/BossViewModel.cs index 220b235..3a5a517 100644 --- a/src/SoulSplitter/UI/EldenRing/BossViewModel.cs +++ b/src/SoulSplitter/UI/EldenRing/BossViewModel.cs @@ -19,60 +19,59 @@ using SoulMemory.Memory; using SoulSplitter.UI.Generic; -namespace SoulSplitter.UI.EldenRing +namespace SoulSplitter.UI.EldenRing; + +public class BossViewModel : ICustomNotifyPropertyChanged { - public class BossViewModel : ICustomNotifyPropertyChanged + public BossViewModel(Boss b) { - public BossViewModel(Boss b) - { - Area = b.GetDisplayDescription(); - Name = b.GetDisplayName(); - Flag = (uint)b; - Boss = b; - } - - public override string ToString() - { - return Name; - } + Area = b.GetDisplayDescription(); + Name = b.GetDisplayName(); + Flag = (uint)b; + Boss = b; + } - public Boss Boss - { - get => _boss; - set => this.SetField(ref _boss, value); - } - private Boss _boss; + public override string ToString() + { + return Name; + } - public string Area - { - get => _area; - set => this.SetField(ref _area, value); - } - private string _area = null!; + public Boss Boss + { + get => _boss; + set => this.SetField(ref _boss, value); + } + private Boss _boss; - public string Name - { - get => _name; - set => this.SetField(ref _name, value); - } - private string _name = null!; + public string Area + { + get => _area; + set => this.SetField(ref _area, value); + } + private string _area = null!; - public uint Flag - { - get => _flag; - set => this.SetField(ref _flag, value); - } - private uint _flag; + public string Name + { + get => _name; + set => this.SetField(ref _name, value); + } + private string _name = null!; - #region ICustomNotifyPropertyChanged + public uint Flag + { + get => _flag; + set => this.SetField(ref _flag, value); + } + private uint _flag; - public event PropertyChangedEventHandler? PropertyChanged; + #region ICustomNotifyPropertyChanged - public void InvokePropertyChanged(string propertyName) - { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); - } + public event PropertyChangedEventHandler? PropertyChanged; - #endregion + public void InvokePropertyChanged(string propertyName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } + + #endregion } diff --git a/src/SoulSplitter/UI/EldenRing/EldenRingControl.xaml.cs b/src/SoulSplitter/UI/EldenRing/EldenRingControl.xaml.cs index 7b6c1bc..7ae54ae 100644 --- a/src/SoulSplitter/UI/EldenRing/EldenRingControl.xaml.cs +++ b/src/SoulSplitter/UI/EldenRing/EldenRingControl.xaml.cs @@ -18,88 +18,87 @@ using System.Windows.Controls; using System.Windows.Input; -namespace SoulSplitter.UI.EldenRing +namespace SoulSplitter.UI.EldenRing; + +/// +/// Interaction logic for UserControl1.xaml +/// +public partial class EldenRingControl : UserControl { - /// - /// Interaction logic for UserControl1.xaml - /// - public partial class EldenRingControl : UserControl + public EldenRingControl() { - public EldenRingControl() - { - InitializeComponent(); - } - - private EldenRingViewModel GetEldenRingViewModel() - { - return (DataContext as EldenRingViewModel)!; - } + InitializeComponent(); + } + + private EldenRingViewModel GetEldenRingViewModel() + { + return (DataContext as EldenRingViewModel)!; + } - private void AddSplit_OnClick(object sender, RoutedEventArgs e) - { - GetEldenRingViewModel().AddSplit(); - } + private void AddSplit_OnClick(object sender, RoutedEventArgs e) + { + GetEldenRingViewModel().AddSplit(); + } - private void RemoveSplit_OnClick(object sender, RoutedEventArgs e) - { - GetEldenRingViewModel().RemoveSplit(); - } + private void RemoveSplit_OnClick(object sender, RoutedEventArgs e) + { + GetEldenRingViewModel().RemoveSplit(); + } - private void SplitsTreeView_OnSelectedItemChanged(object sender, RoutedPropertyChangedEventArgs e) + private void SplitsTreeView_OnSelectedItemChanged(object sender, RoutedPropertyChangedEventArgs e) + { + GetEldenRingViewModel().SelectedSplit = null; + if (e.NewValue is HierarchicalSplitViewModel b) { - GetEldenRingViewModel().SelectedSplit = null; - if (e.NewValue is HierarchicalSplitViewModel b) - { - GetEldenRingViewModel().SelectedSplit = b; - } + GetEldenRingViewModel().SelectedSplit = b; } + } - private void TextBoxBase_OnTextChanged(object sender, TextChangedEventArgs e) + private void TextBoxBase_OnTextChanged(object sender, TextChangedEventArgs e) + { + if (sender is TextBox textBox && uint.TryParse(textBox.Text, out uint result)) { - if (sender is TextBox textBox && uint.TryParse(textBox.Text, out uint result)) - { - GetEldenRingViewModel().NewSplitFlag = result; - return; - } - GetEldenRingViewModel().NewSplitFlag = null; + GetEldenRingViewModel().NewSplitFlag = result; + return; } + GetEldenRingViewModel().NewSplitFlag = null; + } - private void OnPreviewTextInput_Byte(object sender, TextCompositionEventArgs e) + private void OnPreviewTextInput_Byte(object sender, TextCompositionEventArgs e) + { + if (sender is TextBox t) { - if (sender is TextBox t) + var newText = t.Text + e.Text; + if (string.IsNullOrWhiteSpace(newText) || byte.TryParse(newText, out _)) { - var newText = t.Text + e.Text; - if (string.IsNullOrWhiteSpace(newText) || byte.TryParse(newText, out _)) - { - return; - } - e.Handled = true; + return; } + e.Handled = true; } + } - private void OnPreviewTextInput_Float(object sender, TextCompositionEventArgs e) + private void OnPreviewTextInput_Float(object sender, TextCompositionEventArgs e) + { + if (sender is TextBox t) { - if (sender is TextBox t) + var newText = t.Text + e.Text; + if (string.IsNullOrWhiteSpace(newText) || float.TryParse(newText, out _)) { - var newText = t.Text + e.Text; - if (string.IsNullOrWhiteSpace(newText) || float.TryParse(newText, out _)) - { - return; - } - e.Handled = true; + return; } + e.Handled = true; } + } - private void CopyPosition_OnClick(object sender, RoutedEventArgs e) - { - var vm = GetEldenRingViewModel(); - vm.NewSplitPosition.Area = vm.CurrentPosition.Area ; - vm.NewSplitPosition.Block = vm.CurrentPosition.Block ; - vm.NewSplitPosition.Region = vm.CurrentPosition.Region; - vm.NewSplitPosition.Size = vm.CurrentPosition.Size ; - vm.NewSplitPosition.X = vm.CurrentPosition.X ; - vm.NewSplitPosition.Y = vm.CurrentPosition.Y ; - vm.NewSplitPosition.Z = vm.CurrentPosition.Z ; - } + private void CopyPosition_OnClick(object sender, RoutedEventArgs e) + { + var vm = GetEldenRingViewModel(); + vm.NewSplitPosition.Area = vm.CurrentPosition.Area ; + vm.NewSplitPosition.Block = vm.CurrentPosition.Block ; + vm.NewSplitPosition.Region = vm.CurrentPosition.Region; + vm.NewSplitPosition.Size = vm.CurrentPosition.Size ; + vm.NewSplitPosition.X = vm.CurrentPosition.X ; + vm.NewSplitPosition.Y = vm.CurrentPosition.Y ; + vm.NewSplitPosition.Z = vm.CurrentPosition.Z ; } } diff --git a/src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs b/src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs index b3328d0..fa6b05a 100644 --- a/src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs +++ b/src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs @@ -23,507 +23,506 @@ using SoulSplitter.Splits.EldenRing; using SoulSplitter.UI.Generic; -namespace SoulSplitter.UI.EldenRing +namespace SoulSplitter.UI.EldenRing; + +public class EldenRingViewModel : ICustomNotifyPropertyChanged { - public class EldenRingViewModel : ICustomNotifyPropertyChanged + public EldenRingViewModel() { - public EldenRingViewModel() - { - } + } - public bool StartAutomatically - { - get => _startAutomatically; - set => this.SetField(ref _startAutomatically, value); - } - private bool _startAutomatically = true; + public bool StartAutomatically + { + get => _startAutomatically; + set => this.SetField(ref _startAutomatically, value); + } + private bool _startAutomatically = true; - public bool LockIgtToZero - { - get => _lockIgtToZero; - set => this.SetField(ref _lockIgtToZero, value); - } - private bool _lockIgtToZero; + public bool LockIgtToZero + { + get => _lockIgtToZero; + set => this.SetField(ref _lockIgtToZero, value); + } + private bool _lockIgtToZero; - [XmlIgnore] - public PositionViewModel CurrentPosition - { - get => _currentPosition; - set => this.SetField(ref _currentPosition, value); - } - private PositionViewModel _currentPosition = new PositionViewModel(); + [XmlIgnore] + public PositionViewModel CurrentPosition + { + get => _currentPosition; + set => this.SetField(ref _currentPosition, value); + } + private PositionViewModel _currentPosition = new PositionViewModel(); - #region Adding new splits ================================================================================================================ + #region Adding new splits ================================================================================================================ - [XmlIgnore] - public TimingType? NewSplitTimingType + [XmlIgnore] + public TimingType? NewSplitTimingType + { + get => _newSplitTimingType; + set { - get => _newSplitTimingType; - set - { - this.SetField(ref _newSplitTimingType, value); - EnabledSplitType = NewSplitTimingType.HasValue; - } + this.SetField(ref _newSplitTimingType, value); + EnabledSplitType = NewSplitTimingType.HasValue; } - private TimingType? _newSplitTimingType; + } + private TimingType? _newSplitTimingType; - [XmlIgnore] - public bool EnabledSplitType - { - get => _enabledSplitType; - set => this.SetField(ref _enabledSplitType, value); - } - private bool _enabledSplitType = false; + [XmlIgnore] + public bool EnabledSplitType + { + get => _enabledSplitType; + set => this.SetField(ref _enabledSplitType, value); + } + private bool _enabledSplitType = false; - [XmlIgnore] - public EldenRingSplitType? NewSplitType + [XmlIgnore] + public EldenRingSplitType? NewSplitType + { + get => _newSplitType; + set { - get => _newSplitType; - set - { - this.SetField(ref _newSplitType, value); + this.SetField(ref _newSplitType, value); - EnabledAddSplit = false; - VisibleBossSplit = false; - VisibleGraceSplit = false; - VisibleItemPickupSplit = false; - VisibleFlagSplit = false; - VisibleItemSplit = false; - VisiblePositionSplit = false; + EnabledAddSplit = false; + VisibleBossSplit = false; + VisibleGraceSplit = false; + VisibleItemPickupSplit = false; + VisibleFlagSplit = false; + VisibleItemSplit = false; + VisiblePositionSplit = false; - switch (NewSplitType) - { - default: - throw new ArgumentException($"split type not supported: {NewSplitType}"); + switch (NewSplitType) + { + default: + throw new ArgumentException($"split type not supported: {NewSplitType}"); - case null: - break; + case null: + break; - case EldenRingSplitType.Boss: - VisibleBossSplit = true; - break; + case EldenRingSplitType.Boss: + VisibleBossSplit = true; + break; - case EldenRingSplitType.Grace: - VisibleGraceSplit = true; - break; + case EldenRingSplitType.Grace: + VisibleGraceSplit = true; + break; - case EldenRingSplitType.ItemPickup: - VisibleItemPickupSplit = true; - break; + case EldenRingSplitType.ItemPickup: + VisibleItemPickupSplit = true; + break; - case EldenRingSplitType.KnownFlag: - VisibleKnownFlagSplit = true; - break; + case EldenRingSplitType.KnownFlag: + VisibleKnownFlagSplit = true; + break; - case EldenRingSplitType.Flag: - VisibleFlagSplit = true; - break; + case EldenRingSplitType.Flag: + VisibleFlagSplit = true; + break; - case EldenRingSplitType.Item: - VisibleItemSplit = true; - break; + case EldenRingSplitType.Item: + VisibleItemSplit = true; + break; - case EldenRingSplitType.Position: - VisiblePositionSplit = true; - EnabledAddSplit = true; - break; - } + case EldenRingSplitType.Position: + VisiblePositionSplit = true; + EnabledAddSplit = true; + break; } } - private EldenRingSplitType? _newSplitType; + } + private EldenRingSplitType? _newSplitType; - [XmlIgnore] - public Boss? NewSplitBoss + [XmlIgnore] + public Boss? NewSplitBoss + { + get => _newSplitBoss; + set { - get => _newSplitBoss; - set - { - this.SetField(ref _newSplitBoss, value); - EnabledAddSplit = NewSplitBoss.HasValue; - } + this.SetField(ref _newSplitBoss, value); + EnabledAddSplit = NewSplitBoss.HasValue; } - private Boss? _newSplitBoss; + } + private Boss? _newSplitBoss; - [XmlIgnore] - public bool VisibleBossSplit - { - get => _visibleBossSplit; - set => this.SetField(ref _visibleBossSplit, value); - } - private bool _visibleBossSplit; + [XmlIgnore] + public bool VisibleBossSplit + { + get => _visibleBossSplit; + set => this.SetField(ref _visibleBossSplit, value); + } + private bool _visibleBossSplit; - [XmlIgnore] - public Grace? NewSplitGrace + [XmlIgnore] + public Grace? NewSplitGrace + { + get => _newSplitGrace; + set { - get => _newSplitGrace; - set - { - this.SetField(ref _newSplitGrace, value); - EnabledAddSplit = NewSplitGrace.HasValue; - } + this.SetField(ref _newSplitGrace, value); + EnabledAddSplit = NewSplitGrace.HasValue; } - private Grace? _newSplitGrace; + } + private Grace? _newSplitGrace; - [XmlIgnore] - public bool VisibleGraceSplit - { - get => _visibleGraceSplit; - set => this.SetField(ref _visibleGraceSplit, value); - } - private bool _visibleGraceSplit; + [XmlIgnore] + public bool VisibleGraceSplit + { + get => _visibleGraceSplit; + set => this.SetField(ref _visibleGraceSplit, value); + } + private bool _visibleGraceSplit; - [XmlIgnore] - public uint? NewSplitFlag + [XmlIgnore] + public uint? NewSplitFlag + { + get => _newSplitFlag; + set { - get => _newSplitFlag; - set - { - this.SetField(ref _newSplitFlag, value); - EnabledAddSplit = NewSplitFlag.HasValue; - } + this.SetField(ref _newSplitFlag, value); + EnabledAddSplit = NewSplitFlag.HasValue; } - private uint? _newSplitFlag; + } + private uint? _newSplitFlag; - [XmlIgnore] - public bool VisibleFlagSplit - { - get => _visibleFlagSplit; - set => this.SetField(ref _visibleFlagSplit, value); - } - private bool _visibleFlagSplit; + [XmlIgnore] + public bool VisibleFlagSplit + { + get => _visibleFlagSplit; + set => this.SetField(ref _visibleFlagSplit, value); + } + private bool _visibleFlagSplit; - [XmlIgnore] - public Item? NewSplitItem + [XmlIgnore] + public Item? NewSplitItem + { + get => _newSplitItem; + set { - get => _newSplitItem; - set - { - this.SetField(ref _newSplitItem, value); - EnabledAddSplit = NewSplitItem != null; - } + this.SetField(ref _newSplitItem, value); + EnabledAddSplit = NewSplitItem != null; } - private Item? _newSplitItem; + } + private Item? _newSplitItem; - [XmlIgnore] - public bool VisibleItemSplit - { - get => _visibleItemSplit; - set => this.SetField(ref _visibleItemSplit, value); - } - private bool _visibleItemSplit; + [XmlIgnore] + public bool VisibleItemSplit + { + get => _visibleItemSplit; + set => this.SetField(ref _visibleItemSplit, value); + } + private bool _visibleItemSplit; - [XmlIgnore] - public PositionViewModel NewSplitPosition + [XmlIgnore] + public PositionViewModel NewSplitPosition + { + get => _newSplitPosition; + set { - get => _newSplitPosition; - set - { - this.SetField(ref _newSplitPosition, value); - EnabledAddSplit = _newSplitPosition != null; - } + this.SetField(ref _newSplitPosition, value); + EnabledAddSplit = _newSplitPosition != null; } - private PositionViewModel _newSplitPosition = new PositionViewModel(); + } + private PositionViewModel _newSplitPosition = new PositionViewModel(); - [XmlIgnore] - public bool VisiblePositionSplit - { - get => _visiblePositionSplit; - set => this.SetField(ref _visiblePositionSplit, value); - } - private bool _visiblePositionSplit; + [XmlIgnore] + public bool VisiblePositionSplit + { + get => _visiblePositionSplit; + set => this.SetField(ref _visiblePositionSplit, value); + } + private bool _visiblePositionSplit; - [XmlIgnore] - public bool VisibleItemPickupSplit - { - get => _visibleItemPickupSplit; - set => this.SetField(ref _visibleItemPickupSplit, value); - } - private bool _visibleItemPickupSplit; + [XmlIgnore] + public bool VisibleItemPickupSplit + { + get => _visibleItemPickupSplit; + set => this.SetField(ref _visibleItemPickupSplit, value); + } + private bool _visibleItemPickupSplit; - [XmlIgnore] - public ItemPickup? NewSplitItemPickup + [XmlIgnore] + public ItemPickup? NewSplitItemPickup + { + get => _newSplitItemPickup; + set { - get => _newSplitItemPickup; - set - { - this.SetField(ref _newSplitItemPickup, value); - EnabledAddSplit = NewSplitItemPickup.HasValue; - } + this.SetField(ref _newSplitItemPickup, value); + EnabledAddSplit = NewSplitItemPickup.HasValue; } - private ItemPickup? _newSplitItemPickup; + } + private ItemPickup? _newSplitItemPickup; - [XmlIgnore] - public bool VisibleKnownFlagSplit - { - get => _visibleKnownFlagSplit; - set => this.SetField(ref _visibleKnownFlagSplit, value); - } - private bool _visibleKnownFlagSplit; + [XmlIgnore] + public bool VisibleKnownFlagSplit + { + get => _visibleKnownFlagSplit; + set => this.SetField(ref _visibleKnownFlagSplit, value); + } + private bool _visibleKnownFlagSplit; - [XmlIgnore] - public KnownFlag? NewSplitKnownFlag + [XmlIgnore] + public KnownFlag? NewSplitKnownFlag + { + get => _newSplitKnownFlag; + set { - get => _newSplitKnownFlag; - set - { - this.SetField(ref _newSplitKnownFlag, value); - EnabledAddSplit = NewSplitKnownFlag.HasValue; - } + this.SetField(ref _newSplitKnownFlag, value); + EnabledAddSplit = NewSplitKnownFlag.HasValue; } - private KnownFlag? _newSplitKnownFlag; + } + private KnownFlag? _newSplitKnownFlag; - [XmlIgnore] - public bool EnabledAddSplit - { - get => _enabledAddSplit; - set => this.SetField(ref _enabledAddSplit, value); - } - private bool _enabledAddSplit; + [XmlIgnore] + public bool EnabledAddSplit + { + get => _enabledAddSplit; + set => this.SetField(ref _enabledAddSplit, value); + } + private bool _enabledAddSplit; - public void AddSplit() + public void AddSplit() + { + if (!NewSplitTimingType.HasValue || !NewSplitType.HasValue) { - if (!NewSplitTimingType.HasValue || !NewSplitType.HasValue) - { - return; - } + return; + } - var hierarchicalTimingType = Splits.FirstOrDefault(i => i.TimingType == NewSplitTimingType); - if (hierarchicalTimingType == null) - { - hierarchicalTimingType = new HierarchicalTimingTypeViewModel() { TimingType = NewSplitTimingType.Value }; - Splits.Add(hierarchicalTimingType); - } + var hierarchicalTimingType = Splits.FirstOrDefault(i => i.TimingType == NewSplitTimingType); + if (hierarchicalTimingType == null) + { + hierarchicalTimingType = new HierarchicalTimingTypeViewModel() { TimingType = NewSplitTimingType.Value }; + Splits.Add(hierarchicalTimingType); + } - var hierarchicalSplitType = hierarchicalTimingType.Children.FirstOrDefault(i => i.EldenRingSplitType == NewSplitType); - if (hierarchicalSplitType == null) - { - hierarchicalSplitType = new HierarchicalSplitTypeViewModel() { EldenRingSplitType = NewSplitType.Value, Parent = hierarchicalTimingType }; - hierarchicalTimingType.Children.Add(hierarchicalSplitType); - } + var hierarchicalSplitType = hierarchicalTimingType.Children.FirstOrDefault(i => i.EldenRingSplitType == NewSplitType); + if (hierarchicalSplitType == null) + { + hierarchicalSplitType = new HierarchicalSplitTypeViewModel() { EldenRingSplitType = NewSplitType.Value, Parent = hierarchicalTimingType }; + hierarchicalTimingType.Children.Add(hierarchicalSplitType); + } - switch (NewSplitType) - { - default: - throw new ArgumentException($"split type not supported: {NewSplitType}"); + switch (NewSplitType) + { + default: + throw new ArgumentException($"split type not supported: {NewSplitType}"); - case EldenRingSplitType.Boss: - if (hierarchicalSplitType.Children.All(i => (Boss)i.Split != NewSplitBoss)) - { - hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = NewSplitBoss!.Value, Parent = hierarchicalSplitType }); - } - break; + case EldenRingSplitType.Boss: + if (hierarchicalSplitType.Children.All(i => (Boss)i.Split != NewSplitBoss)) + { + hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = NewSplitBoss!.Value, Parent = hierarchicalSplitType }); + } + break; - case EldenRingSplitType.Grace: - if (hierarchicalSplitType.Children.All(i => (Grace)i.Split != NewSplitGrace)) - { - hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = NewSplitGrace!.Value, Parent = hierarchicalSplitType }); - } - break; + case EldenRingSplitType.Grace: + if (hierarchicalSplitType.Children.All(i => (Grace)i.Split != NewSplitGrace)) + { + hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = NewSplitGrace!.Value, Parent = hierarchicalSplitType }); + } + break; - case EldenRingSplitType.ItemPickup: - if (hierarchicalSplitType.Children.All(i => (ItemPickup)i.Split != NewSplitItemPickup)) - { - hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = NewSplitItemPickup!.Value, Parent = hierarchicalSplitType }); - } - break; + case EldenRingSplitType.ItemPickup: + if (hierarchicalSplitType.Children.All(i => (ItemPickup)i.Split != NewSplitItemPickup)) + { + hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = NewSplitItemPickup!.Value, Parent = hierarchicalSplitType }); + } + break; - case EldenRingSplitType.KnownFlag: - if (hierarchicalSplitType.Children.All(i => (KnownFlag)i.Split != NewSplitKnownFlag)) - { - hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = NewSplitKnownFlag!.Value, Parent = hierarchicalSplitType }); - } - break; + case EldenRingSplitType.KnownFlag: + if (hierarchicalSplitType.Children.All(i => (KnownFlag)i.Split != NewSplitKnownFlag)) + { + hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = NewSplitKnownFlag!.Value, Parent = hierarchicalSplitType }); + } + break; - case EldenRingSplitType.Flag: - if (hierarchicalSplitType.Children.All(i => (uint)i.Split != NewSplitFlag)) - { - hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = NewSplitFlag!.Value, Parent = hierarchicalSplitType }); - } - break; + case EldenRingSplitType.Flag: + if (hierarchicalSplitType.Children.All(i => (uint)i.Split != NewSplitFlag)) + { + hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = NewSplitFlag!.Value, Parent = hierarchicalSplitType }); + } + break; - case EldenRingSplitType.Item: - if (hierarchicalSplitType.Children.All(i => (Item)i.Split != NewSplitItem)) - { - hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = NewSplitItem!, Parent = hierarchicalSplitType }); - } - break; + case EldenRingSplitType.Item: + if (hierarchicalSplitType.Children.All(i => (Item)i.Split != NewSplitItem)) + { + hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = NewSplitItem!, Parent = hierarchicalSplitType }); + } + break; - case EldenRingSplitType.Position: - if (hierarchicalSplitType.Children.All(i => i.Split.ToString() != NewSplitPosition.Position.ToString())) - { - hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = NewSplitPosition.Position, Parent = hierarchicalSplitType }); - } - break; - } + case EldenRingSplitType.Position: + if (hierarchicalSplitType.Children.All(i => i.Split.ToString() != NewSplitPosition.Position.ToString())) + { + hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = NewSplitPosition.Position, Parent = hierarchicalSplitType }); + } + break; + } - NewSplitBoss = null; - NewSplitGrace = null; - NewSplitFlag = null; - NewSplitItem = null; - NewSplitItemPickup = null; - NewSplitPosition = new PositionViewModel(); + NewSplitBoss = null; + NewSplitGrace = null; + NewSplitFlag = null; + NewSplitItem = null; + NewSplitItemPickup = null; + NewSplitPosition = new PositionViewModel(); - NewSplitTimingType = null; - NewSplitType = null; - } + NewSplitTimingType = null; + NewSplitType = null; + } - #endregion + #endregion - #region Removing splits - public bool EnabledRemoveSplit - { - get => _enabledRemoveSplit; - set => this.SetField(ref _enabledRemoveSplit, value); - } - private bool _enabledRemoveSplit; + #region Removing splits + public bool EnabledRemoveSplit + { + get => _enabledRemoveSplit; + set => this.SetField(ref _enabledRemoveSplit, value); + } + private bool _enabledRemoveSplit; - public HierarchicalSplitViewModel? SelectedSplit + public HierarchicalSplitViewModel? SelectedSplit + { + get => _selectedSplit; + set { - get => _selectedSplit; - set - { - this.SetField(ref _selectedSplit, value); - EnabledRemoveSplit = SelectedSplit != null; - } + this.SetField(ref _selectedSplit, value); + EnabledRemoveSplit = SelectedSplit != null; } - private HierarchicalSplitViewModel? _selectedSplit = null; - - public void RemoveSplit() + } + private HierarchicalSplitViewModel? _selectedSplit = null; + + public void RemoveSplit() + { + if (SelectedSplit != null) { - if (SelectedSplit != null) + var parent = SelectedSplit.Parent; + parent!.Children.Remove(SelectedSplit); + if (parent.Children.Count <= 0) { - var parent = SelectedSplit.Parent; - parent!.Children.Remove(SelectedSplit); - if (parent.Children.Count <= 0) + var nextParent = parent.Parent; + nextParent!.Children.Remove(parent); + if (nextParent.Children.Count <= 0) { - var nextParent = parent.Parent; - nextParent!.Children.Remove(parent); - if (nextParent.Children.Count <= 0) - { - Splits.Remove(nextParent); - } + Splits.Remove(nextParent); } - - SelectedSplit = null; } + + SelectedSplit = null; } - #endregion + } + #endregion - #region Splits hierarchy + #region Splits hierarchy - public void RestoreHierarchy() - { - //When serializing the model, we can't serialize the parent relation, because that would be a circular reference. Instead, parent's are not serialized. - //After deserializing, the parent relations must be restored. + public void RestoreHierarchy() + { + //When serializing the model, we can't serialize the parent relation, because that would be a circular reference. Instead, parent's are not serialized. + //After deserializing, the parent relations must be restored. - foreach (var timingType in Splits) + foreach (var timingType in Splits) + { + foreach (var splitType in timingType.Children) { - foreach (var splitType in timingType.Children) + splitType.Parent = timingType; + foreach (var split in splitType.Children) { - splitType.Parent = timingType; - foreach (var split in splitType.Children) - { - split.Parent = splitType; - } + split.Parent = splitType; } } } + } - #endregion - + #endregion - public ObservableCollection Splits { get; set; }= new ObservableCollection(); - - //source lists - public static ObservableCollection Bosses { get; set; } = new ObservableCollection(Enum.GetValues(typeof(Boss)).Cast().Select(i => new BossViewModel(i))); - public static ObservableCollection Graces { get; set; } = new ObservableCollection(Enum.GetValues(typeof(Grace)).Cast().Select(i => new GraceViewModel(i))); - public static ObservableCollection ItemPickups { get; set; } = new ObservableCollection(Enum.GetValues(typeof(ItemPickup)).Cast().Select(i => new ItemPickupViewModel(i))); - public static ObservableCollection KnownFlags { get; set; } = new ObservableCollection(Enum.GetValues(typeof(KnownFlag)).Cast().Select(i => new KnownFlagViewModel(i))); + public ObservableCollection Splits { get; set; }= new ObservableCollection(); + + //source lists + public static ObservableCollection Bosses { get; set; } = new ObservableCollection(Enum.GetValues(typeof(Boss)).Cast().Select(i => new BossViewModel(i))); + public static ObservableCollection Graces { get; set; } = new ObservableCollection(Enum.GetValues(typeof(Grace)).Cast().Select(i => new GraceViewModel(i))); + public static ObservableCollection ItemPickups { get; set; } = new ObservableCollection(Enum.GetValues(typeof(ItemPickup)).Cast().Select(i => new ItemPickupViewModel(i))); + public static ObservableCollection KnownFlags { get; set; } = new ObservableCollection(Enum.GetValues(typeof(KnownFlag)).Cast().Select(i => new KnownFlagViewModel(i))); - #region ICustomNotifyPropertyChanged - public event PropertyChangedEventHandler? PropertyChanged; + #region ICustomNotifyPropertyChanged - public void InvokePropertyChanged(string propertyName) - { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); - } + public event PropertyChangedEventHandler? PropertyChanged; - #endregion + public void InvokePropertyChanged(string propertyName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } - public class ItemViewModel : ICustomNotifyPropertyChanged - { - public override string ToString() - { - return Name; - } + #endregion +} - public ItemViewModel(Item i) - { - Item = i; - Category = i.Category; - GroupName = i.GroupName; - Name = i.Name; - Id = i.Id; - } +public class ItemViewModel : ICustomNotifyPropertyChanged +{ + public override string ToString() + { + return Name; + } - public Item Item - { - get => _item; - set => this.SetField(ref _item, value); - } - private Item _item = null!; + public ItemViewModel(Item i) + { + Item = i; + Category = i.Category; + GroupName = i.GroupName; + Name = i.Name; + Id = i.Id; + } - public Category Category - { - get => _category; - set => this.SetField(ref _category, value); - } - private Category _category; + public Item Item + { + get => _item; + set => this.SetField(ref _item, value); + } + private Item _item = null!; - public string GroupName - { - get => _groupName; - set => this.SetField(ref _groupName, value); - } - private string _groupName = null!; + public Category Category + { + get => _category; + set => this.SetField(ref _category, value); + } + private Category _category; + public string GroupName + { + get => _groupName; + set => this.SetField(ref _groupName, value); + } + private string _groupName = null!; - public string Name - { - get => _name; - set => this.SetField(ref _name, value); - } - private string _name = null!; - public uint Id - { - get => _id; - set => this.SetField(ref _id, value); - } - private uint _id; + public string Name + { + get => _name; + set => this.SetField(ref _name, value); + } + private string _name = null!; + public uint Id + { + get => _id; + set => this.SetField(ref _id, value); + } + private uint _id; - #region ICustomNotifyPropertyChanged - public event PropertyChangedEventHandler? PropertyChanged; + #region ICustomNotifyPropertyChanged - public void InvokePropertyChanged(string propertyName) - { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); - } + public event PropertyChangedEventHandler? PropertyChanged; - #endregion + public void InvokePropertyChanged(string propertyName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } + + #endregion } diff --git a/src/SoulSplitter/UI/EldenRing/GraceViewModel.cs b/src/SoulSplitter/UI/EldenRing/GraceViewModel.cs index 7a7ff17..ec36e9b 100644 --- a/src/SoulSplitter/UI/EldenRing/GraceViewModel.cs +++ b/src/SoulSplitter/UI/EldenRing/GraceViewModel.cs @@ -19,63 +19,62 @@ using SoulMemory.Memory; using SoulSplitter.UI.Generic; -namespace SoulSplitter.UI.EldenRing +namespace SoulSplitter.UI.EldenRing; + +public class GraceViewModel : ICustomNotifyPropertyChanged { - public class GraceViewModel : ICustomNotifyPropertyChanged + public GraceViewModel(Grace g) { - public GraceViewModel(Grace g) - { - Area = g.GetDisplayDescription(); - Name = g.GetDisplayName(); - Flag = (uint)g; - Grace = g; - } - - public override string ToString() - { - return Name; - } + Area = g.GetDisplayDescription(); + Name = g.GetDisplayName(); + Flag = (uint)g; + Grace = g; + } - public Grace Grace - { - get => _grace; - set => this.SetField(ref _grace, value); - } - private Grace _grace; + public override string ToString() + { + return Name; + } - public string Area - { - get => _area; - set => this.SetField(ref _area, value); - } - private string _area = null!; + public Grace Grace + { + get => _grace; + set => this.SetField(ref _grace, value); + } + private Grace _grace; - public string Name - { - get => _name; - set => this.SetField(ref _name, value); - } - private string _name = null!; + public string Area + { + get => _area; + set => this.SetField(ref _area, value); + } + private string _area = null!; - public uint Flag - { - get => _flag; - set => this.SetField(ref _flag, value); - } - private uint _flag; + public string Name + { + get => _name; + set => this.SetField(ref _name, value); + } + private string _name = null!; + public uint Flag + { + get => _flag; + set => this.SetField(ref _flag, value); + } + private uint _flag; - #region ICustomNotifyPropertyChanged - public event PropertyChangedEventHandler? PropertyChanged; + #region ICustomNotifyPropertyChanged - public void InvokePropertyChanged(string propertyName) - { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); - } + public event PropertyChangedEventHandler? PropertyChanged; - #endregion + public void InvokePropertyChanged(string propertyName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } + + #endregion } diff --git a/src/SoulSplitter/UI/EldenRing/ItemPickupViewModel.cs b/src/SoulSplitter/UI/EldenRing/ItemPickupViewModel.cs index ad11f2f..5bb4aa3 100644 --- a/src/SoulSplitter/UI/EldenRing/ItemPickupViewModel.cs +++ b/src/SoulSplitter/UI/EldenRing/ItemPickupViewModel.cs @@ -19,53 +19,52 @@ using SoulMemory.Memory; using SoulSplitter.UI.Generic; -namespace SoulSplitter.UI.EldenRing +namespace SoulSplitter.UI.EldenRing; + +public class ItemPickupViewModel : ICustomNotifyPropertyChanged { - public class ItemPickupViewModel : ICustomNotifyPropertyChanged + public ItemPickupViewModel(ItemPickup i) { - public ItemPickupViewModel(ItemPickup i) - { - Name = i.GetDisplayName(); - Flag = (uint)i; - ItemPickup = i; - } - - public override string ToString() - { - return Name; - } + Name = i.GetDisplayName(); + Flag = (uint)i; + ItemPickup = i; + } - public ItemPickup ItemPickup - { - get => _itemPickup; - set => this.SetField(ref _itemPickup, value); - } - private ItemPickup _itemPickup; + public override string ToString() + { + return Name; + } - public string Name - { - get => _name; - set => this.SetField(ref _name, value); - } - private string _name = null!; + public ItemPickup ItemPickup + { + get => _itemPickup; + set => this.SetField(ref _itemPickup, value); + } + private ItemPickup _itemPickup; - public uint Flag - { - get => _flag; - set => this.SetField(ref _flag, value); - } - private uint _flag; + public string Name + { + get => _name; + set => this.SetField(ref _name, value); + } + private string _name = null!; + public uint Flag + { + get => _flag; + set => this.SetField(ref _flag, value); + } + private uint _flag; - #region ICustomNotifyPropertyChanged - public event PropertyChangedEventHandler? PropertyChanged; + #region ICustomNotifyPropertyChanged - public void InvokePropertyChanged(string propertyName) - { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); - } + public event PropertyChangedEventHandler? PropertyChanged; - #endregion + public void InvokePropertyChanged(string propertyName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } + + #endregion } diff --git a/src/SoulSplitter/UI/EldenRing/KnownFlagViewModel.cs b/src/SoulSplitter/UI/EldenRing/KnownFlagViewModel.cs index 87bdcf3..60c364a 100644 --- a/src/SoulSplitter/UI/EldenRing/KnownFlagViewModel.cs +++ b/src/SoulSplitter/UI/EldenRing/KnownFlagViewModel.cs @@ -19,55 +19,54 @@ using SoulMemory.Memory; using SoulSplitter.UI.Generic; -namespace SoulSplitter.UI.EldenRing +namespace SoulSplitter.UI.EldenRing; + +public class KnownFlagViewModel : ICustomNotifyPropertyChanged { - public class KnownFlagViewModel : ICustomNotifyPropertyChanged + public KnownFlagViewModel(KnownFlag i) { - public KnownFlagViewModel(KnownFlag i) - { - Name = i.GetDisplayName(); - Flag = (uint)i; - KnownFlag = i; - } - - public override string ToString() - { - return Name; - } + Name = i.GetDisplayName(); + Flag = (uint)i; + KnownFlag = i; + } - public KnownFlag KnownFlag - { - get => _knownFlag; - set => this.SetField(ref _knownFlag, value); - } - private KnownFlag _knownFlag; + public override string ToString() + { + return Name; + } - public string Name - { - get => _name; - set => this.SetField(ref _name, value); - } - private string _name = null!; + public KnownFlag KnownFlag + { + get => _knownFlag; + set => this.SetField(ref _knownFlag, value); + } + private KnownFlag _knownFlag; - public uint Flag - { - get => _flag; - set => this.SetField(ref _flag, value); - } - private uint _flag; + public string Name + { + get => _name; + set => this.SetField(ref _name, value); + } + private string _name = null!; + public uint Flag + { + get => _flag; + set => this.SetField(ref _flag, value); + } + private uint _flag; - #region ICustomNotifyPropertyChanged - public event PropertyChangedEventHandler? PropertyChanged; + #region ICustomNotifyPropertyChanged - public void InvokePropertyChanged(string propertyName) - { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); - } + public event PropertyChangedEventHandler? PropertyChanged; - #endregion + public void InvokePropertyChanged(string propertyName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } + + #endregion } diff --git a/src/SoulSplitter/UI/EldenRing/PositionViewModel.cs b/src/SoulSplitter/UI/EldenRing/PositionViewModel.cs index 3ebcda3..f7ffe6f 100644 --- a/src/SoulSplitter/UI/EldenRing/PositionViewModel.cs +++ b/src/SoulSplitter/UI/EldenRing/PositionViewModel.cs @@ -18,73 +18,72 @@ using SoulMemory.EldenRing; using SoulSplitter.UI.Generic; -namespace SoulSplitter.UI.EldenRing +namespace SoulSplitter.UI.EldenRing; + +public class PositionViewModel : ICustomNotifyPropertyChanged { - public class PositionViewModel : ICustomNotifyPropertyChanged + + public readonly Position Position = new Position(); + + + public byte Area + { + get => Position.Area; + set => this.SetField(ref Position.Area, value); + } + + public byte Block + { + get => Position.Block; + set => this.SetField(ref Position.Block, value); + } + + public byte Region + { + get => Position.Region; + set => this.SetField(ref Position.Region, value); + } + + public byte Size + { + get => Position.Size; + set => this.SetField(ref Position.Size, value); + } + + + public float X { - - public readonly Position Position = new Position(); - - - public byte Area - { - get => Position.Area; - set => this.SetField(ref Position.Area, value); - } - - public byte Block - { - get => Position.Block; - set => this.SetField(ref Position.Block, value); - } - - public byte Region - { - get => Position.Region; - set => this.SetField(ref Position.Region, value); - } - - public byte Size - { - get => Position.Size; - set => this.SetField(ref Position.Size, value); - } - - - public float X - { - get => Position.X; - set => this.SetField(ref Position.X, value); - } - - public float Y - { - get => Position.Y; - set => this.SetField(ref Position.Y, value); - } - - public float Z - { - get => Position.Z; - set => this.SetField(ref Position.Z, value); - } - - - public override string ToString() - { - return Position.ToString(); - } - - - #region ICustomNotifyPropertyChanged - - public event PropertyChangedEventHandler? PropertyChanged; - - public void InvokePropertyChanged(string propertyName) - { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); - } - - #endregion + get => Position.X; + set => this.SetField(ref Position.X, value); } + + public float Y + { + get => Position.Y; + set => this.SetField(ref Position.Y, value); + } + + public float Z + { + get => Position.Z; + set => this.SetField(ref Position.Z, value); + } + + + public override string ToString() + { + return Position.ToString(); + } + + + #region ICustomNotifyPropertyChanged + + public event PropertyChangedEventHandler? PropertyChanged; + + public void InvokePropertyChanged(string propertyName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } + + #endregion } diff --git a/src/SoulSplitter/UI/EldenRing/SplitViewModel.cs b/src/SoulSplitter/UI/EldenRing/SplitViewModel.cs index c308ecb..3f1b7b7 100644 --- a/src/SoulSplitter/UI/EldenRing/SplitViewModel.cs +++ b/src/SoulSplitter/UI/EldenRing/SplitViewModel.cs @@ -22,86 +22,85 @@ using SoulSplitter.Splits.EldenRing; using SoulSplitter.UI.Generic; -namespace SoulSplitter.UI.EldenRing +namespace SoulSplitter.UI.EldenRing; + +public class HierarchicalTimingTypeViewModel : ICustomNotifyPropertyChanged { - public class HierarchicalTimingTypeViewModel : ICustomNotifyPropertyChanged + public TimingType TimingType { - public TimingType TimingType - { - get => _timingType; - set => this.SetField(ref _timingType, value); - } - private TimingType _timingType; - - public ObservableCollection Children { get; set; } = new ObservableCollection(); + get => _timingType; + set => this.SetField(ref _timingType, value); + } + private TimingType _timingType; - #region ICustomNotifyPropertyChanged + public ObservableCollection Children { get; set; } = new ObservableCollection(); - public event PropertyChangedEventHandler? PropertyChanged; + #region ICustomNotifyPropertyChanged - public void InvokePropertyChanged(string propertyName) - { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); - } + public event PropertyChangedEventHandler? PropertyChanged; - #endregion + public void InvokePropertyChanged(string propertyName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } - public class HierarchicalSplitTypeViewModel : ICustomNotifyPropertyChanged - { - [XmlIgnore] - [NonSerialized] - public HierarchicalTimingTypeViewModel? Parent; + #endregion +} - public EldenRingSplitType EldenRingSplitType - { - get => _eldenRingSplitType; - set => this.SetField(ref _eldenRingSplitType, value); - } - private EldenRingSplitType _eldenRingSplitType; +public class HierarchicalSplitTypeViewModel : ICustomNotifyPropertyChanged +{ + [XmlIgnore] + [NonSerialized] + public HierarchicalTimingTypeViewModel? Parent; - public ObservableCollection Children { get; set; } = new ObservableCollection(); + public EldenRingSplitType EldenRingSplitType + { + get => _eldenRingSplitType; + set => this.SetField(ref _eldenRingSplitType, value); + } + private EldenRingSplitType _eldenRingSplitType; - #region ICustomNotifyPropertyChanged + public ObservableCollection Children { get; set; } = new ObservableCollection(); - public event PropertyChangedEventHandler? PropertyChanged; + #region ICustomNotifyPropertyChanged - public void InvokePropertyChanged(string propertyName) - { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); - } + public event PropertyChangedEventHandler? PropertyChanged; - #endregion + public void InvokePropertyChanged(string propertyName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } - [XmlInclude(typeof(Boss))] - [XmlInclude(typeof(Grace))] - [XmlInclude(typeof(ItemPickup))] - [XmlInclude(typeof(uint))] - [XmlInclude(typeof(Item))] - [XmlInclude(typeof(Position))] - public class HierarchicalSplitViewModel : ICustomNotifyPropertyChanged - { - [XmlIgnore] - [NonSerialized] - public HierarchicalSplitTypeViewModel? Parent; + #endregion +} - public object Split - { - get => _split; - set => this.SetField(ref _split, value); - } - private object _split = null!; +[XmlInclude(typeof(Boss))] +[XmlInclude(typeof(Grace))] +[XmlInclude(typeof(ItemPickup))] +[XmlInclude(typeof(uint))] +[XmlInclude(typeof(Item))] +[XmlInclude(typeof(Position))] +public class HierarchicalSplitViewModel : ICustomNotifyPropertyChanged +{ + [XmlIgnore] + [NonSerialized] + public HierarchicalSplitTypeViewModel? Parent; - #region ICustomNotifyPropertyChanged + public object Split + { + get => _split; + set => this.SetField(ref _split, value); + } + private object _split = null!; - public event PropertyChangedEventHandler? PropertyChanged; + #region ICustomNotifyPropertyChanged - public void InvokePropertyChanged(string propertyName) - { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); - } + public event PropertyChangedEventHandler? PropertyChanged; - #endregion + public void InvokePropertyChanged(string propertyName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } + + #endregion } diff --git a/src/SoulSplitter/UI/ErrorViewModel.cs b/src/SoulSplitter/UI/ErrorViewModel.cs index 7230966..debb0f9 100644 --- a/src/SoulSplitter/UI/ErrorViewModel.cs +++ b/src/SoulSplitter/UI/ErrorViewModel.cs @@ -17,33 +17,32 @@ using System; using System.ComponentModel; -namespace SoulSplitter.UI.Generic +namespace SoulSplitter.UI.Generic; + +public class ErrorViewModel : ICustomNotifyPropertyChanged { - public class ErrorViewModel : ICustomNotifyPropertyChanged + public DateTime DateTime + { + get => _dateTime; + set => this.SetField(ref _dateTime, value); + } + private DateTime _dateTime; + + public string Error + { + get => _error; + set => this.SetField(ref _error, value); + } + private string _error = null!; + + #region ICustomNotifyPropertyChanged + + public event PropertyChangedEventHandler? PropertyChanged; + + public void InvokePropertyChanged(string propertyName) { - public DateTime DateTime - { - get => _dateTime; - set => this.SetField(ref _dateTime, value); - } - private DateTime _dateTime; - - public string Error - { - get => _error; - set => this.SetField(ref _error, value); - } - private string _error = null!; - - #region ICustomNotifyPropertyChanged - - public event PropertyChangedEventHandler? PropertyChanged; - - public void InvokePropertyChanged(string propertyName) - { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); - } - - #endregion + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } + + #endregion } diff --git a/src/SoulSplitter/UI/ErrorWindow.xaml.cs b/src/SoulSplitter/UI/ErrorWindow.xaml.cs index 30f479d..6f83673 100644 --- a/src/SoulSplitter/UI/ErrorWindow.xaml.cs +++ b/src/SoulSplitter/UI/ErrorWindow.xaml.cs @@ -16,16 +16,15 @@ using System.Windows; -namespace SoulSplitter.UI +namespace SoulSplitter.UI; + +/// +/// Interaction logic for UserControl1.xaml +/// +public partial class ErrorWindow : Window { - /// - /// Interaction logic for UserControl1.xaml - /// - public partial class ErrorWindow : Window + public ErrorWindow() { - public ErrorWindow() - { - InitializeComponent(); - } + InitializeComponent(); } } diff --git a/src/SoulSplitter/UI/FlagTrackerWindow.xaml.cs b/src/SoulSplitter/UI/FlagTrackerWindow.xaml.cs index 6d0c9db..3a4b0ad 100644 --- a/src/SoulSplitter/UI/FlagTrackerWindow.xaml.cs +++ b/src/SoulSplitter/UI/FlagTrackerWindow.xaml.cs @@ -17,27 +17,26 @@ using SoulSplitter.UI.Generic; using System.Windows; -namespace SoulSplitter.UI +namespace SoulSplitter.UI; + +public partial class FlagTrackerWindow : Window { - public partial class FlagTrackerWindow : Window + public FlagTrackerWindow() { - public FlagTrackerWindow() - { - InitializeComponent(); - } + InitializeComponent(); + } - private void TreeView_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs e) + private void TreeView_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs e) + { + if (DataContext is FlagTrackerViewModel flagTrackerViewModel) { - if (DataContext is FlagTrackerViewModel flagTrackerViewModel) + if (e.NewValue is FlagDescription flagDescription) + { + flagTrackerViewModel.SelectedFlagDescription = flagDescription; + } + else { - if (e.NewValue is FlagDescription flagDescription) - { - flagTrackerViewModel.SelectedFlagDescription = flagDescription; - } - else - { - flagTrackerViewModel.SelectedFlagDescription = null; - } + flagTrackerViewModel.SelectedFlagDescription = null; } } } diff --git a/src/SoulSplitter/UI/Generic/AddRemoveSplits.xaml.cs b/src/SoulSplitter/UI/Generic/AddRemoveSplits.xaml.cs index 281ae14..e7b8008 100644 --- a/src/SoulSplitter/UI/Generic/AddRemoveSplits.xaml.cs +++ b/src/SoulSplitter/UI/Generic/AddRemoveSplits.xaml.cs @@ -16,16 +16,15 @@ using System.Windows.Controls; -namespace SoulSplitter.UI.Generic +namespace SoulSplitter.UI.Generic; + +/// +/// Interaction logic for AddRemoveSplits.xaml +/// +public partial class AddRemoveSplits : UserControl { - /// - /// Interaction logic for AddRemoveSplits.xaml - /// - public partial class AddRemoveSplits : UserControl + public AddRemoveSplits() { - public AddRemoveSplits() - { - InitializeComponent(); - } + InitializeComponent(); } } diff --git a/src/SoulSplitter/UI/Generic/BaseViewModel.cs b/src/SoulSplitter/UI/Generic/BaseViewModel.cs index cb4e484..b3eea5f 100644 --- a/src/SoulSplitter/UI/Generic/BaseViewModel.cs +++ b/src/SoulSplitter/UI/Generic/BaseViewModel.cs @@ -19,174 +19,173 @@ using SoulMemory; using SoulMemory.Sekiro; -namespace SoulSplitter.UI.Generic +namespace SoulSplitter.UI.Generic; + +/// +/// This object attempts to provide most of the general stuff that all souls games have +/// Where needed, custom game implementations can be made +/// +public class BaseViewModel : ICustomNotifyPropertyChanged { - /// - /// This object attempts to provide most of the general stuff that all souls games have - /// Where needed, custom game implementations can be made - /// - public class BaseViewModel : ICustomNotifyPropertyChanged + public BaseViewModel() { - public BaseViewModel() - { - CopyGamePositionCommand = new RelayCommand(CopyGamePosition, (o) => true); - RemoveSplitCommand = new RelayCommand(RemoveSplit, (o) => SplitsViewModel.SelectedSplit != null); - } - - #region Field visibility + CopyGamePositionCommand = new RelayCommand(CopyGamePosition, (o) => true); + RemoveSplitCommand = new RelayCommand(RemoveSplit, (o) => SplitsViewModel.SelectedSplit != null); + } + + #region Field visibility - #region new splits ============================================================================================================================================ + #region new splits ============================================================================================================================================ - [XmlIgnore] - public SplitType? NewSplitType + [XmlIgnore] + public SplitType? NewSplitType + { + get => _newSplitType; + set { - get => _newSplitType; - set - { - this.SetField(ref _newSplitType, value); - - switch (NewSplitType) - { - case SplitType.Position: - Position = new VectorSize() { Position = CurrentPosition.Clone() }; - break; - - case SplitType.Flag: - FlagDescription = new FlagDescription(); - break; - - case SplitType.Attribute: - NewSplitValue = new Splits.Sekiro.Attribute() { AttributeType = Attribute.Vitality, Level = 10 }; - break; - } - } - } - private SplitType? _newSplitType = null; + this.SetField(ref _newSplitType, value); - [XmlIgnore] - public TimingType? NewSplitTimingType - { - get => _newSplitTimingType; - set + switch (NewSplitType) { - this.SetField(ref _newSplitTimingType, value); - NewSplitEnabledSplitType = true; - NewSplitValue = null; + case SplitType.Position: + Position = new VectorSize() { Position = CurrentPosition.Clone() }; + break; + + case SplitType.Flag: + FlagDescription = new FlagDescription(); + break; + + case SplitType.Attribute: + NewSplitValue = new Splits.Sekiro.Attribute() { AttributeType = Attribute.Vitality, Level = 10 }; + break; } } - private TimingType? _newSplitTimingType; + } + private SplitType? _newSplitType = null; - [XmlIgnore] - public object? NewSplitValue + [XmlIgnore] + public TimingType? NewSplitTimingType + { + get => _newSplitTimingType; + set { - get => _newSplitValue; - set => this.SetField(ref _newSplitValue, value); + this.SetField(ref _newSplitTimingType, value); + NewSplitEnabledSplitType = true; + NewSplitValue = null; } - private object? _newSplitValue; - #endregion + } + private TimingType? _newSplitTimingType; - [XmlIgnore] - public bool NewSplitEnabledSplitType - { - get => _newSplitEnabledSplitType; - set => this.SetField(ref _newSplitEnabledSplitType, value); - } - private bool _newSplitEnabledSplitType = false; + [XmlIgnore] + public object? NewSplitValue + { + get => _newSplitValue; + set => this.SetField(ref _newSplitValue, value); + } + private object? _newSplitValue; + #endregion - #endregion + [XmlIgnore] + public bool NewSplitEnabledSplitType + { + get => _newSplitEnabledSplitType; + set => this.SetField(ref _newSplitEnabledSplitType, value); + } + private bool _newSplitEnabledSplitType = false; - #region Relay commands - [XmlIgnore] - public RelayCommand AddSplitCommand - { - get => _addSplitCommand; - set => this.SetField(ref _addSplitCommand, value); - } - private RelayCommand _addSplitCommand = null!; + #endregion - [XmlIgnore] - public RelayCommand RemoveSplitCommand - { - get => _removeSplitCommand; - set => this.SetField(ref _removeSplitCommand, value); - } - private RelayCommand _removeSplitCommand = null!; + #region Relay commands + [XmlIgnore] + public RelayCommand AddSplitCommand + { + get => _addSplitCommand; + set => this.SetField(ref _addSplitCommand, value); + } + private RelayCommand _addSplitCommand = null!; - [XmlIgnore] - public RelayCommand CopyGamePositionCommand - { - get => _copyGamePositionCommand; - set => this.SetField(ref _copyGamePositionCommand, value); - } - private RelayCommand _copyGamePositionCommand = null!; + [XmlIgnore] + public RelayCommand RemoveSplitCommand + { + get => _removeSplitCommand; + set => this.SetField(ref _removeSplitCommand, value); + } + private RelayCommand _removeSplitCommand = null!; - #endregion + [XmlIgnore] + public RelayCommand CopyGamePositionCommand + { + get => _copyGamePositionCommand; + set => this.SetField(ref _copyGamePositionCommand, value); + } + private RelayCommand _copyGamePositionCommand = null!; - #region Functions + #endregion - private void CopyGamePosition() - { - Position.Position = CurrentPosition.Clone(); - } + #region Functions - private void RemoveSplit() - { - SplitsViewModel.RemoveSplit(); - } + private void CopyGamePosition() + { + Position.Position = CurrentPosition.Clone(); + } - #endregion + private void RemoveSplit() + { + SplitsViewModel.RemoveSplit(); + } - #region generic properties + #endregion - public bool StartAutomatically - { - get => _startAutomatically; - set => this.SetField(ref _startAutomatically, value); - } - private bool _startAutomatically = true; + #region generic properties - public SplitsViewModel SplitsViewModel - { - get => _splitsViewModel; - set => this.SetField(ref _splitsViewModel, value); - } - private SplitsViewModel _splitsViewModel = new SplitsViewModel(); - - [XmlIgnore] - public VectorSize Position - { - get => _position; - set => this.SetField(ref _position, value); - } - private VectorSize _position = null!; + public bool StartAutomatically + { + get => _startAutomatically; + set => this.SetField(ref _startAutomatically, value); + } + private bool _startAutomatically = true; - [XmlIgnore] - public Vector3f CurrentPosition - { - get => _currentPosition; - set => this.SetField(ref _currentPosition, value); - } - private Vector3f _currentPosition = new Vector3f(0f, 0f, 0f); + public SplitsViewModel SplitsViewModel + { + get => _splitsViewModel; + set => this.SetField(ref _splitsViewModel, value); + } + private SplitsViewModel _splitsViewModel = new SplitsViewModel(); + + [XmlIgnore] + public VectorSize Position + { + get => _position; + set => this.SetField(ref _position, value); + } + private VectorSize _position = null!; - [XmlIgnore] - public FlagDescription FlagDescription - { - get => _flagDescription; - set => this.SetField(ref _flagDescription, value); - } - private FlagDescription _flagDescription = null!; + [XmlIgnore] + public Vector3f CurrentPosition + { + get => _currentPosition; + set => this.SetField(ref _currentPosition, value); + } + private Vector3f _currentPosition = new Vector3f(0f, 0f, 0f); - #endregion + [XmlIgnore] + public FlagDescription FlagDescription + { + get => _flagDescription; + set => this.SetField(ref _flagDescription, value); + } + private FlagDescription _flagDescription = null!; - #region ICustomNotifyPropertyChanged + #endregion - public event PropertyChangedEventHandler? PropertyChanged; + #region ICustomNotifyPropertyChanged - public void InvokePropertyChanged(string propertyName) - { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); - } + public event PropertyChangedEventHandler? PropertyChanged; - #endregion + public void InvokePropertyChanged(string propertyName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } + + #endregion } diff --git a/src/SoulSplitter/UI/Generic/BoolDescriptionViewModel.cs b/src/SoulSplitter/UI/Generic/BoolDescriptionViewModel.cs index 9ad26b1..805d3c5 100644 --- a/src/SoulSplitter/UI/Generic/BoolDescriptionViewModel.cs +++ b/src/SoulSplitter/UI/Generic/BoolDescriptionViewModel.cs @@ -16,38 +16,37 @@ using System.ComponentModel; -namespace SoulSplitter.UI.Generic +namespace SoulSplitter.UI.Generic; + +public class BoolDescriptionViewModel : ICustomNotifyPropertyChanged { - public class BoolDescriptionViewModel : ICustomNotifyPropertyChanged + public string Description + { + get => _description; + set => this.SetField(ref _description, value); + } + private string _description = ""; + + public bool Value + { + get => _value; + set => this.SetField(ref _value, value); + } + private bool _value; + + public override string ToString() { - public string Description - { - get => _description; - set => this.SetField(ref _description, value); - } - private string _description = ""; - - public bool Value - { - get => _value; - set => this.SetField(ref _value, value); - } - private bool _value; - - public override string ToString() - { - return $"{Value} {Description}"; - } - - #region ICustomNotifyPropertyChanged - - public event PropertyChangedEventHandler? PropertyChanged; - - public void InvokePropertyChanged(string propertyName) - { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); - } - - #endregion + return $"{Value} {Description}"; } + + #region ICustomNotifyPropertyChanged + + public event PropertyChangedEventHandler? PropertyChanged; + + public void InvokePropertyChanged(string propertyName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } + + #endregion } diff --git a/src/SoulSplitter/UI/Generic/EnumFlagViewModel.cs b/src/SoulSplitter/UI/Generic/EnumFlagViewModel.cs index de101de..e064213 100644 --- a/src/SoulSplitter/UI/Generic/EnumFlagViewModel.cs +++ b/src/SoulSplitter/UI/Generic/EnumFlagViewModel.cs @@ -20,68 +20,67 @@ using System.Linq; using SoulMemory.Memory; -namespace SoulSplitter.UI.Generic +namespace SoulSplitter.UI.Generic; + +public class EnumFlagViewModel : ICustomNotifyPropertyChanged where T : Enum { - public class EnumFlagViewModel : ICustomNotifyPropertyChanged where T : Enum + public EnumFlagViewModel(T tEnum) + { + Value = tEnum; + Name = Value.GetDisplayName(); + Area = Value.GetDisplayDescription(); + Flag = Convert.ToUInt32(Value); + } + + public T Value { - public EnumFlagViewModel(T tEnum) - { - Value = tEnum; - Name = Value.GetDisplayName(); - Area = Value.GetDisplayDescription(); - Flag = Convert.ToUInt32(Value); - } - - public T Value - { - get => _value; - set => this.SetField(ref _value, value); - } - private T _value = default(T)!; + get => _value; + set => this.SetField(ref _value, value); + } + private T _value = default(T)!; - public string Area - { - get => _area; - set => this.SetField(ref _area, value); - } - private string _area = null!; + public string Area + { + get => _area; + set => this.SetField(ref _area, value); + } + private string _area = null!; - public string Name - { - get => _name; - set => this.SetField(ref _name, value); - } - private string _name = null!; + public string Name + { + get => _name; + set => this.SetField(ref _name, value); + } + private string _name = null!; - public uint Flag - { - get => _flag; - set => this.SetField(ref _flag, value); - } - private uint _flag; + public uint Flag + { + get => _flag; + set => this.SetField(ref _flag, value); + } + private uint _flag; - /// - /// Used to compare items in the filtered combobox - /// - public override string ToString() - { - return Name; - } + /// + /// Used to compare items in the filtered combobox + /// + public override string ToString() + { + return Name; + } - #region ICustomNotifyPropertyChanged + #region ICustomNotifyPropertyChanged - public event PropertyChangedEventHandler? PropertyChanged; + public event PropertyChangedEventHandler? PropertyChanged; - public void InvokePropertyChanged(string propertyName) - { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); - } + public void InvokePropertyChanged(string propertyName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } - #endregion + #endregion - public static ObservableCollection> GetEnumViewModels() - { - return new ObservableCollection>(Enum.GetValues(typeof(T)).Cast().Select(i => new EnumFlagViewModel(i))); - } + public static ObservableCollection> GetEnumViewModels() + { + return new ObservableCollection>(Enum.GetValues(typeof(T)).Cast().Select(i => new EnumFlagViewModel(i))); } } diff --git a/src/SoulSplitter/UI/Generic/EventFlagTrackerDisplayMode.cs b/src/SoulSplitter/UI/Generic/EventFlagTrackerDisplayMode.cs index 44b9a86..a644f09 100644 --- a/src/SoulSplitter/UI/Generic/EventFlagTrackerDisplayMode.cs +++ b/src/SoulSplitter/UI/Generic/EventFlagTrackerDisplayMode.cs @@ -14,11 +14,10 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -namespace SoulSplitter.UI.Generic +namespace SoulSplitter.UI.Generic; + +public enum EventFlagTrackerDisplayMode { - public enum EventFlagTrackerDisplayMode - { - Percentage, - Count, - } + Percentage, + Count, } diff --git a/src/SoulSplitter/UI/Generic/FilteredComboBox.cs b/src/SoulSplitter/UI/Generic/FilteredComboBox.cs index 8acbe4d..77ed627 100644 --- a/src/SoulSplitter/UI/Generic/FilteredComboBox.cs +++ b/src/SoulSplitter/UI/Generic/FilteredComboBox.cs @@ -20,136 +20,135 @@ using System.Windows.Data; using System.Windows.Input; -namespace SoulSplitter.UI.Generic +namespace SoulSplitter.UI.Generic; + +//https://stackoverflow.com/questions/2001842/dynamic-filter-of-wpf-combobox-based-on-text-input/41986141#41986141 +public class FilteredComboBox : ComboBox { - //https://stackoverflow.com/questions/2001842/dynamic-filter-of-wpf-combobox-based-on-text-input/41986141#41986141 - public class FilteredComboBox : ComboBox - { - private string oldFilter = string.Empty; + private string oldFilter = string.Empty; - private string currentFilter = string.Empty; + private string currentFilter = string.Empty; - protected TextBox EditableTextBox => (GetTemplateChild("PART_EditableTextBox") as TextBox)!; - - protected override void OnItemsSourceChanged(IEnumerable oldValue, IEnumerable newValue) + protected TextBox EditableTextBox => (GetTemplateChild("PART_EditableTextBox") as TextBox)!; + + protected override void OnItemsSourceChanged(IEnumerable oldValue, IEnumerable newValue) + { + if (newValue != null) { - if (newValue != null) - { - var view = CollectionViewSource.GetDefaultView(newValue); - view.Filter += FilterItem; - } - - if (oldValue != null) - { - var view = CollectionViewSource.GetDefaultView(oldValue); - if (view != null) view.Filter -= FilterItem; - } - - base.OnItemsSourceChanged(oldValue, newValue); + var view = CollectionViewSource.GetDefaultView(newValue); + view.Filter += FilterItem; } - protected override void OnSelectionChanged(SelectionChangedEventArgs e) + if (oldValue != null) { - if (SelectedIndex != -1) - { - Text = string.Empty; - ClearFilter(); - } - base.OnSelectionChanged(e); + var view = CollectionViewSource.GetDefaultView(oldValue); + if (view != null) view.Filter -= FilterItem; } - protected override void OnPreviewKeyDown(KeyEventArgs e) - { - switch (e.Key) - { - case Key.Tab: - case Key.Enter: - IsDropDownOpen = false; - break; - case Key.Escape: - IsDropDownOpen = false; - SelectedIndex = -1; - Text = currentFilter; - break; - default: - if (e.Key == Key.Down) IsDropDownOpen = true; + base.OnItemsSourceChanged(oldValue, newValue); + } - base.OnPreviewKeyDown(e); - break; - } + protected override void OnSelectionChanged(SelectionChangedEventArgs e) + { + if (SelectedIndex != -1) + { + Text = string.Empty; + ClearFilter(); + } + base.OnSelectionChanged(e); + } - // Cache text - oldFilter = Text; + protected override void OnPreviewKeyDown(KeyEventArgs e) + { + switch (e.Key) + { + case Key.Tab: + case Key.Enter: + IsDropDownOpen = false; + break; + case Key.Escape: + IsDropDownOpen = false; + SelectedIndex = -1; + Text = currentFilter; + break; + default: + if (e.Key == Key.Down) IsDropDownOpen = true; + + base.OnPreviewKeyDown(e); + break; } - protected override void OnKeyUp(KeyEventArgs e) + // Cache text + oldFilter = Text; + } + + protected override void OnKeyUp(KeyEventArgs e) + { + switch (e.Key) { - switch (e.Key) - { - case Key.Up: - case Key.Down: - break; - case Key.Tab: - case Key.Enter: - - ClearFilter(); - break; - default: - var typedText = Text; - if (Text != oldFilter) - { - RefreshFilter(); - IsDropDownOpen = true; - - EditableTextBox.SelectionStart = int.MaxValue; - } - - base.OnKeyUp(e); - currentFilter = typedText; - Text = typedText; + case Key.Up: + case Key.Down: + break; + case Key.Tab: + case Key.Enter: + + ClearFilter(); + break; + default: + var typedText = Text; + if (Text != oldFilter) + { + RefreshFilter(); + IsDropDownOpen = true; + EditableTextBox.SelectionStart = int.MaxValue; + } - if (typedText == string.Empty) - { - SelectedValue = null; - SelectedIndex = -1; - } - break; - } - } + base.OnKeyUp(e); + currentFilter = typedText; + Text = typedText; + EditableTextBox.SelectionStart = int.MaxValue; - protected override void OnPreviewLostKeyboardFocus(KeyboardFocusChangedEventArgs e) - { - ClearFilter(); - var temp = SelectedIndex; - SelectedIndex = -1; - Text = string.Empty; - SelectedIndex = temp; - base.OnPreviewLostKeyboardFocus(e); + if (typedText == string.Empty) + { + SelectedValue = null; + SelectedIndex = -1; + } + break; } + } - private void RefreshFilter() - { - if (ItemsSource == null) return; + protected override void OnPreviewLostKeyboardFocus(KeyboardFocusChangedEventArgs e) + { + ClearFilter(); + var temp = SelectedIndex; + SelectedIndex = -1; + Text = string.Empty; + SelectedIndex = temp; + base.OnPreviewLostKeyboardFocus(e); + } - var view = CollectionViewSource.GetDefaultView(ItemsSource); - view.Refresh(); - } + private void RefreshFilter() + { + if (ItemsSource == null) return; - private void ClearFilter() - { - currentFilter = string.Empty; - RefreshFilter(); - } + var view = CollectionViewSource.GetDefaultView(ItemsSource); + view.Refresh(); + } - private bool FilterItem(object value) - { - if (value == null) return false; - if (Text.Length == 0) return true; + private void ClearFilter() + { + currentFilter = string.Empty; + RefreshFilter(); + } - var words = Text.ToLower().Split(' '); - var lower = value.ToString().ToLower(); - return words.All(lower.Contains); - } + private bool FilterItem(object value) + { + if (value == null) return false; + if (Text.Length == 0) return true; + + var words = Text.ToLower().Split(' '); + var lower = value.ToString().ToLower(); + return words.All(lower.Contains); } } \ No newline at end of file diff --git a/src/SoulSplitter/UI/Generic/FlagControl.xaml.cs b/src/SoulSplitter/UI/Generic/FlagControl.xaml.cs index 2d634e7..79f32f5 100644 --- a/src/SoulSplitter/UI/Generic/FlagControl.xaml.cs +++ b/src/SoulSplitter/UI/Generic/FlagControl.xaml.cs @@ -16,16 +16,15 @@ using System.Windows.Controls; -namespace SoulSplitter.UI.Generic +namespace SoulSplitter.UI.Generic; + +/// +/// Interaction logic for FlagControl.xaml +/// +public partial class FlagControl : UserControl { - /// - /// Interaction logic for FlagControl.xaml - /// - public partial class FlagControl : UserControl + public FlagControl() { - public FlagControl() - { - InitializeComponent(); - } + InitializeComponent(); } } diff --git a/src/SoulSplitter/UI/Generic/FlagDescription.cs b/src/SoulSplitter/UI/Generic/FlagDescription.cs index 93b4522..db2efa0 100644 --- a/src/SoulSplitter/UI/Generic/FlagDescription.cs +++ b/src/SoulSplitter/UI/Generic/FlagDescription.cs @@ -16,46 +16,45 @@ using System.ComponentModel; -namespace SoulSplitter.UI.Generic +namespace SoulSplitter.UI.Generic; + +public class FlagDescription : ICustomNotifyPropertyChanged { - public class FlagDescription : ICustomNotifyPropertyChanged + public uint Flag { - public uint Flag - { - get => _flag; - set => this.SetField(ref _flag, value); - } - private uint _flag; - - public string Description - { - get => _description; - set => this.SetField(ref _description, value); - } - private string _description = ""; - - public bool State - { - get => _state; - set => this.SetField(ref _state, value); - } - private bool _state; - - public override string ToString() - { - return $"{Flag} {Description}"; - } - - - #region ICustomNotifyPropertyChanged - - public event PropertyChangedEventHandler? PropertyChanged; - - public void InvokePropertyChanged(string propertyName) - { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); - } - - #endregion + get => _flag; + set => this.SetField(ref _flag, value); } + private uint _flag; + + public string Description + { + get => _description; + set => this.SetField(ref _description, value); + } + private string _description = ""; + + public bool State + { + get => _state; + set => this.SetField(ref _state, value); + } + private bool _state; + + public override string ToString() + { + return $"{Flag} {Description}"; + } + + + #region ICustomNotifyPropertyChanged + + public event PropertyChangedEventHandler? PropertyChanged; + + public void InvokePropertyChanged(string propertyName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } + + #endregion } diff --git a/src/SoulSplitter/UI/Generic/FlagTrackerViewModel.cs b/src/SoulSplitter/UI/Generic/FlagTrackerViewModel.cs index 209dc55..853c380 100644 --- a/src/SoulSplitter/UI/Generic/FlagTrackerViewModel.cs +++ b/src/SoulSplitter/UI/Generic/FlagTrackerViewModel.cs @@ -22,362 +22,361 @@ using System.Windows.Media; using System.Xml.Serialization; -namespace SoulSplitter.UI.Generic +namespace SoulSplitter.UI.Generic; + +public class FlagTrackerCategoryViewModel : ICustomNotifyPropertyChanged { - public class FlagTrackerCategoryViewModel : ICustomNotifyPropertyChanged + public string CategoryName { - public string CategoryName - { - get => _categoryName; - set => this.SetField(ref _categoryName, value); - } - private string _categoryName = null!; - - [XmlIgnore] - public string Progress - { - get => _progress; - set => this.SetField(ref _progress, value); - } - private string _progress = null!; + get => _categoryName; + set => this.SetField(ref _categoryName, value); + } + private string _categoryName = null!; + + [XmlIgnore] + public string Progress + { + get => _progress; + set => this.SetField(ref _progress, value); + } + private string _progress = null!; - public ObservableCollection EventFlags { get; set; } = new ObservableCollection(); + public ObservableCollection EventFlags { get; set; } = new ObservableCollection(); - #region ICustomNotifyPropertyChanged + #region ICustomNotifyPropertyChanged - public event PropertyChangedEventHandler? PropertyChanged; + public event PropertyChangedEventHandler? PropertyChanged; - public void InvokePropertyChanged(string propertyName) - { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); - } + public void InvokePropertyChanged(string propertyName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } - #endregion + #endregion +} + +public class FlagTrackerViewModel : ICustomNotifyPropertyChanged +{ + public FlagTrackerViewModel() + { + CommandAddEventFlag = new RelayCommand(AddEventFlag, (o) => { return !string.IsNullOrWhiteSpace(CategoryName) && FlagDescription.Flag != 0; }); + CommandRemoveEventFlag = new RelayCommand(RemoveEventFlag, (o) => { return SelectedFlagDescription != null; }); } - public class FlagTrackerViewModel : ICustomNotifyPropertyChanged + + #region Add/remove + private void AddEventFlag() { - public FlagTrackerViewModel() + //Resolve category + var category = EventFlagCategories.FirstOrDefault(i => i.CategoryName == CategoryName); + if(category == null) { - CommandAddEventFlag = new RelayCommand(AddEventFlag, (o) => { return !string.IsNullOrWhiteSpace(CategoryName) && FlagDescription.Flag != 0; }); - CommandRemoveEventFlag = new RelayCommand(RemoveEventFlag, (o) => { return SelectedFlagDescription != null; }); + category = new FlagTrackerCategoryViewModel(); + category.CategoryName = CategoryName; + EventFlagCategories.Add(category); } + //Resolve flag + var flag = category.EventFlags.FirstOrDefault(i => i.Flag == FlagDescription.Flag); - #region Add/remove - private void AddEventFlag() + //Update flag description but don't duplicate + if (flag != null) { - //Resolve category - var category = EventFlagCategories.FirstOrDefault(i => i.CategoryName == CategoryName); - if(category == null) - { - category = new FlagTrackerCategoryViewModel(); - category.CategoryName = CategoryName; - EventFlagCategories.Add(category); - } + flag.Description = FlagDescription.Description; + } + else + { + //deep clone + var clone = new FlagDescription { Flag = FlagDescription.Flag, Description = FlagDescription.Description }; + category.EventFlags.Add(clone); + } - //Resolve flag - var flag = category.EventFlags.FirstOrDefault(i => i.Flag == FlagDescription.Flag); - - //Update flag description but don't duplicate - if (flag != null) - { - flag.Description = FlagDescription.Description; - } - else - { - //deep clone - var clone = new FlagDescription { Flag = FlagDescription.Flag, Description = FlagDescription.Description }; - category.EventFlags.Add(clone); - } + //Reset + FlagDescription.Flag = 0; + FlagDescription.Description = ""; + } - //Reset - FlagDescription.Flag = 0; - FlagDescription.Description = ""; + private void RemoveEventFlag() + { + if(SelectedFlagDescription == null) + { + return; } - private void RemoveEventFlag() + for(var i = 0; i < EventFlagCategories.Count; i++) { - if(SelectedFlagDescription == null) + var category = EventFlagCategories[i]; + if(category.EventFlags.Contains(SelectedFlagDescription)) { - return; - } - - for(var i = 0; i < EventFlagCategories.Count; i++) - { - var category = EventFlagCategories[i]; - if(category.EventFlags.Contains(SelectedFlagDescription)) + category.EventFlags.Remove(SelectedFlagDescription); + if(!category.EventFlags.Any()) { - category.EventFlags.Remove(SelectedFlagDescription); - if(!category.EventFlags.Any()) - { - EventFlagCategories.Remove(category); - return; - } + EventFlagCategories.Remove(category); + return; } } } - #endregion + } + #endregion - #region update/reset - private List<(FlagTrackerCategoryViewModel category, FlagDescription eventFlag)>? _lookup; - private int _currentIndex = 0; + #region update/reset + private List<(FlagTrackerCategoryViewModel category, FlagDescription eventFlag)>? _lookup; + private int _currentIndex = 0; - public void Start() + public void Start() + { + _lookup = EventFlagCategories.SelectMany(i => i.EventFlags, (category, eventFlag) => (category, eventFlag)).ToList(); + _currentIndex = 0; + + switch (DisplayMode) { - _lookup = EventFlagCategories.SelectMany(i => i.EventFlags, (category, eventFlag) => (category, eventFlag)).ToList(); - _currentIndex = 0; + case EventFlagTrackerDisplayMode.Percentage: + foreach (var category in EventFlagCategories) + { + category.Progress = $"{0.0f:0.00}%"; + } - switch (DisplayMode) - { - case EventFlagTrackerDisplayMode.Percentage: - foreach (var category in EventFlagCategories) - { - category.Progress = $"{0.0f:0.00}%"; - } - - Progress = $"{0.0f:0.00}%"; - break; - - case EventFlagTrackerDisplayMode.Count: - foreach (var category in EventFlagCategories) - { - category.Progress = $"0/{category.EventFlags.Count}"; - } - - Progress = $"0/{EventFlagCategories.SelectMany(i => i.EventFlags).Count()}"; - break; - } + Progress = $"{0.0f:0.00}%"; + break; + + case EventFlagTrackerDisplayMode.Count: + foreach (var category in EventFlagCategories) + { + category.Progress = $"0/{category.EventFlags.Count}"; + } + + Progress = $"0/{EventFlagCategories.SelectMany(i => i.EventFlags).Count()}"; + break; } + } - public void Update(IGame game) + public void Update(IGame game) + { + if(!EventFlagCategories.Any() || _lookup == null) { - if(!EventFlagCategories.Any() || _lookup == null) - { - return; - } + return; + } - //Keep track of changed categories, their total percentage will need to be updated - var changedCategories = new List(); + //Keep track of changed categories, their total percentage will need to be updated + var changedCategories = new List(); - //Check the next x flags - for(int i = 0; i < FlagsPerFrame; i++) + //Check the next x flags + for(int i = 0; i < FlagsPerFrame; i++) + { + var (category, flag) = _lookup[_currentIndex]; + if (!flag.State) { - var (category, flag) = _lookup[_currentIndex]; - if (!flag.State) - { - flag.State = game.ReadEventFlag(flag.Flag); - - //If flag state has changed, recalculate category percentage later - if(flag.State) - { - changedCategories.Add(category); - } - } - - //Calc next index - _currentIndex++; - if(_currentIndex >= _lookup.Count) + flag.State = game.ReadEventFlag(flag.Flag); + + //If flag state has changed, recalculate category percentage later + if(flag.State) { - _currentIndex = 0; + changedCategories.Add(category); } } - switch(DisplayMode) + //Calc next index + _currentIndex++; + if(_currentIndex >= _lookup.Count) { - case EventFlagTrackerDisplayMode.Percentage: - //Recalculate total percentage of categories that changed - foreach (var category in changedCategories) - { - var done = category.EventFlags.Count(i => i.State); - var percentage = (done / (float)category.EventFlags.Count) * 100.0f; - category.Progress = $"{percentage:0.00}%"; - } - - //Recalculate total percentage of all flags (only if there is a change) - if (changedCategories.Any()) - { - var done = _lookup.Count(i => i.eventFlag.State); - var percentageDone = (done / (float)_lookup.Count) * 100.0f; - Progress = $"{percentageDone:0.00}%"; - } - break; - - case EventFlagTrackerDisplayMode.Count: - foreach (var category in changedCategories) - { - var done = category.EventFlags.Count(i => i.State); - category.Progress = $"{done}/{category.EventFlags.Count}"; - } - - if (changedCategories.Any()) - { - var done = _lookup.Count(i => i.eventFlag.State); - Progress = $"{done}/{_lookup.Count}"; - } - break; + _currentIndex = 0; } - } - - public void Reset() + switch(DisplayMode) { - _lookup = null; - _currentIndex = 0; - foreach (var category in EventFlagCategories) - { - category.Progress = ""; - foreach(var eventFlag in category.EventFlags) + case EventFlagTrackerDisplayMode.Percentage: + //Recalculate total percentage of categories that changed + foreach (var category in changedCategories) { - eventFlag.State = false; + var done = category.EventFlags.Count(i => i.State); + var percentage = (done / (float)category.EventFlags.Count) * 100.0f; + category.Progress = $"{percentage:0.00}%"; } - } - } - #endregion + //Recalculate total percentage of all flags (only if there is a change) + if (changedCategories.Any()) + { + var done = _lookup.Count(i => i.eventFlag.State); + var percentageDone = (done / (float)_lookup.Count) * 100.0f; + Progress = $"{percentageDone:0.00}%"; + } + break; - #region UI bindable properties - public ObservableCollection EventFlagCategories { get; set; } = new ObservableCollection(); + case EventFlagTrackerDisplayMode.Count: + foreach (var category in changedCategories) + { + var done = category.EventFlags.Count(i => i.State); + category.Progress = $"{done}/{category.EventFlags.Count}"; + } - public EventFlagTrackerDisplayMode DisplayMode - { - get => _displayMode; - set => this.SetField(ref _displayMode, value); + if (changedCategories.Any()) + { + var done = _lookup.Count(i => i.eventFlag.State); + Progress = $"{done}/{_lookup.Count}"; + } + break; } - private EventFlagTrackerDisplayMode _displayMode = EventFlagTrackerDisplayMode.Percentage; - #region UI customization + } - [XmlIgnore] - public string Progress - { - get => _progress; - set => this.SetField(ref _progress, value); - } - private string _progress = null!; - - public double WindowWidth - { - get => _windowWidth; - set => this.SetField(ref _windowWidth, value); - } - private double _windowWidth = 800; - public double WindowHeight + public void Reset() + { + _lookup = null; + _currentIndex = 0; + foreach (var category in EventFlagCategories) { - get => _windowHeight; - set => this.SetField(ref _windowHeight, value); + category.Progress = ""; + foreach(var eventFlag in category.EventFlags) + { + eventFlag.State = false; + } } - private double _windowHeight = 600; + } - public double InputColumnWidth - { - get => _inputColumnWidth; - set => this.SetField(ref _inputColumnWidth, value); - } - private double _inputColumnWidth = 400; + #endregion - public double CategoryPercentagesRowHeight - { - get => _categoryPercentagesRowHeight; - set => this.SetField(ref _categoryPercentagesRowHeight, value); - } - private double _categoryPercentagesRowHeight = 300; + #region UI bindable properties + public ObservableCollection EventFlagCategories { get; set; } = new ObservableCollection(); - public double CategoryPercentageFontSize - { - get => _categoryPercentageFontSize; - set => this.SetField(ref _categoryPercentageFontSize, value); - } - private double _categoryPercentageFontSize = 30.0; + public EventFlagTrackerDisplayMode DisplayMode + { + get => _displayMode; + set => this.SetField(ref _displayMode, value); + } + private EventFlagTrackerDisplayMode _displayMode = EventFlagTrackerDisplayMode.Percentage; - public int TotalPercentageFontSize - { - get => _totalPercentageFontSize; - set => this.SetField(ref _totalPercentageFontSize, value); - } - private int _totalPercentageFontSize = 60; + #region UI customization - public Color BackgroundColor - { - get => _backgroundColor; - set => this.SetField(ref _backgroundColor, value); - } - private Color _backgroundColor = Colors.White; + [XmlIgnore] + public string Progress + { + get => _progress; + set => this.SetField(ref _progress, value); + } + private string _progress = null!; + + public double WindowWidth + { + get => _windowWidth; + set => this.SetField(ref _windowWidth, value); + } + private double _windowWidth = 800; - public Color TextColor - { - get => _textColor; - set => this.SetField(ref _textColor, value); - } - private Color _textColor = Colors.Black; + public double WindowHeight + { + get => _windowHeight; + set => this.SetField(ref _windowHeight, value); + } + private double _windowHeight = 600; - public int FlagsPerFrame - { - get => _flagsPerFrame; - set => this.SetField(ref _flagsPerFrame, value); - } - private int _flagsPerFrame = 10; + public double InputColumnWidth + { + get => _inputColumnWidth; + set => this.SetField(ref _inputColumnWidth, value); + } + private double _inputColumnWidth = 400; - #endregion + public double CategoryPercentagesRowHeight + { + get => _categoryPercentagesRowHeight; + set => this.SetField(ref _categoryPercentagesRowHeight, value); + } + private double _categoryPercentagesRowHeight = 300; - #region Inputs + public double CategoryPercentageFontSize + { + get => _categoryPercentageFontSize; + set => this.SetField(ref _categoryPercentageFontSize, value); + } + private double _categoryPercentageFontSize = 30.0; - [XmlIgnore] - public string CategoryName - { - get => _categoryName; - set => this.SetField(ref _categoryName, value); - } - private string _categoryName = null!; + public int TotalPercentageFontSize + { + get => _totalPercentageFontSize; + set => this.SetField(ref _totalPercentageFontSize, value); + } + private int _totalPercentageFontSize = 60; - [XmlIgnore] - public FlagDescription FlagDescription - { - get => _flagDescription; - set => this.SetField(ref _flagDescription, value); - } - private FlagDescription _flagDescription = new FlagDescription(); + public Color BackgroundColor + { + get => _backgroundColor; + set => this.SetField(ref _backgroundColor, value); + } + private Color _backgroundColor = Colors.White; - [XmlIgnore] - public FlagDescription? SelectedFlagDescription - { - get => _selectedFlagDescription; - set => this.SetField(ref _selectedFlagDescription, value); - } - private FlagDescription? _selectedFlagDescription; + public Color TextColor + { + get => _textColor; + set => this.SetField(ref _textColor, value); + } + private Color _textColor = Colors.Black; - [XmlIgnore] - public RelayCommand CommandAddEventFlag - { - get => _commandAddEventFlag; - set => this.SetField(ref _commandAddEventFlag, value); - } - private RelayCommand _commandAddEventFlag = null!; + public int FlagsPerFrame + { + get => _flagsPerFrame; + set => this.SetField(ref _flagsPerFrame, value); + } + private int _flagsPerFrame = 10; - [XmlIgnore] - public RelayCommand CommandRemoveEventFlag - { - get => _commandRemoveEventFlag; - set => this.SetField(ref _commandRemoveEventFlag, value); - } - private RelayCommand _commandRemoveEventFlag = null!; + #endregion + + #region Inputs + + [XmlIgnore] + public string CategoryName + { + get => _categoryName; + set => this.SetField(ref _categoryName, value); + } + private string _categoryName = null!; - #endregion + [XmlIgnore] + public FlagDescription FlagDescription + { + get => _flagDescription; + set => this.SetField(ref _flagDescription, value); + } + private FlagDescription _flagDescription = new FlagDescription(); - #endregion + [XmlIgnore] + public FlagDescription? SelectedFlagDescription + { + get => _selectedFlagDescription; + set => this.SetField(ref _selectedFlagDescription, value); + } + private FlagDescription? _selectedFlagDescription; + [XmlIgnore] + public RelayCommand CommandAddEventFlag + { + get => _commandAddEventFlag; + set => this.SetField(ref _commandAddEventFlag, value); + } + private RelayCommand _commandAddEventFlag = null!; - #region ICustomNotifyPropertyChanged + [XmlIgnore] + public RelayCommand CommandRemoveEventFlag + { + get => _commandRemoveEventFlag; + set => this.SetField(ref _commandRemoveEventFlag, value); + } + private RelayCommand _commandRemoveEventFlag = null!; - public event PropertyChangedEventHandler? PropertyChanged; + #endregion + + #endregion - public void InvokePropertyChanged(string propertyName) - { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); - } - #endregion + #region ICustomNotifyPropertyChanged + + public event PropertyChangedEventHandler? PropertyChanged; + + public void InvokePropertyChanged(string propertyName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } + + #endregion } diff --git a/src/SoulSplitter/UI/Generic/Game.cs b/src/SoulSplitter/UI/Generic/Game.cs index 6405050..2061b59 100644 --- a/src/SoulSplitter/UI/Generic/Game.cs +++ b/src/SoulSplitter/UI/Generic/Game.cs @@ -14,15 +14,14 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -namespace SoulSplitter.UI.Generic +namespace SoulSplitter.UI.Generic; + +public enum Game { - public enum Game - { - DarkSouls1 = 0, - DarkSouls2 = 1, - DarkSouls3 = 2, - Sekiro = 3, - EldenRing = 4, - ArmoredCore6 = 5, - } + DarkSouls1 = 0, + DarkSouls2 = 1, + DarkSouls3 = 2, + Sekiro = 3, + EldenRing = 4, + ArmoredCore6 = 5, } diff --git a/src/SoulSplitter/UI/Generic/HierarchicalViewModel.cs b/src/SoulSplitter/UI/Generic/HierarchicalViewModel.cs index bb81614..b142f9f 100644 --- a/src/SoulSplitter/UI/Generic/HierarchicalViewModel.cs +++ b/src/SoulSplitter/UI/Generic/HierarchicalViewModel.cs @@ -20,189 +20,188 @@ using System.Linq; using System.Xml.Serialization; -namespace SoulSplitter.UI.Generic +namespace SoulSplitter.UI.Generic; + +public class SplitsViewModel : ICustomNotifyPropertyChanged { - public class SplitsViewModel : ICustomNotifyPropertyChanged + public int TotalSplitsCount => Splits.Sum(timing => timing.Children.Sum(type => type.Children.Count)); + + public void AddSplit(TimingType timingType, SplitType splitType, object split) { - public int TotalSplitsCount => Splits.Sum(timing => timing.Children.Sum(type => type.Children.Count)); - - public void AddSplit(TimingType timingType, SplitType splitType, object split) + var splitTimingViewModel = Splits.FirstOrDefault(i => i.TimingType == timingType); + if (splitTimingViewModel == null) { - var splitTimingViewModel = Splits.FirstOrDefault(i => i.TimingType == timingType); - if (splitTimingViewModel == null) - { - splitTimingViewModel = new SplitTimingViewModel() { TimingType = timingType }; - Splits.Add(splitTimingViewModel); - } + splitTimingViewModel = new SplitTimingViewModel() { TimingType = timingType }; + Splits.Add(splitTimingViewModel); + } - var splitTypeViewModel = splitTimingViewModel.Children.FirstOrDefault(i => i.SplitType == splitType); - if (splitTypeViewModel == null) - { - splitTypeViewModel = new SplitTypeViewModel() { SplitType = splitType, Parent = splitTimingViewModel }; - splitTimingViewModel.Children.Add(splitTypeViewModel); - } + var splitTypeViewModel = splitTimingViewModel.Children.FirstOrDefault(i => i.SplitType == splitType); + if (splitTypeViewModel == null) + { + splitTypeViewModel = new SplitTypeViewModel() { SplitType = splitType, Parent = splitTimingViewModel }; + splitTimingViewModel.Children.Add(splitTypeViewModel); + } - if (splitTypeViewModel.Children.All(i => i.Split.ToString() != split.ToString())) - { - splitTypeViewModel.Children.Add(new SplitViewModel() { Split = split, Parent = splitTypeViewModel }); - } + if (splitTypeViewModel.Children.All(i => i.Split.ToString() != split.ToString())) + { + splitTypeViewModel.Children.Add(new SplitViewModel() { Split = split, Parent = splitTypeViewModel }); } + } - public void RemoveSplit() + public void RemoveSplit() + { + if (SelectedSplit != null) { - if (SelectedSplit != null) + var parent = SelectedSplit.Parent; + parent!.Children.Remove(SelectedSplit); + if (parent.Children.Count <= 0) { - var parent = SelectedSplit.Parent; - parent!.Children.Remove(SelectedSplit); - if (parent.Children.Count <= 0) + var nextParent = parent.Parent; + nextParent!.Children.Remove(parent); + if (nextParent.Children.Count <= 0) { - var nextParent = parent.Parent; - nextParent!.Children.Remove(parent); - if (nextParent.Children.Count <= 0) - { - Splits.Remove(nextParent); - } + Splits.Remove(nextParent); } - - SelectedSplit = null; } + + SelectedSplit = null; } + } - public void RestoreHierarchy() - { - //When serializing the model, we can't serialize the parent relation, because that would be a circular reference. Instead, parents are not serialized. - //After deserializing, the parent relations must be restored. + public void RestoreHierarchy() + { + //When serializing the model, we can't serialize the parent relation, because that would be a circular reference. Instead, parents are not serialized. + //After deserializing, the parent relations must be restored. - foreach (var timingType in Splits) + foreach (var timingType in Splits) + { + foreach (var splitType in timingType.Children) { - foreach (var splitType in timingType.Children) + splitType.Parent = timingType; + foreach (var split in splitType.Children) { - splitType.Parent = timingType; - foreach (var split in splitType.Children) - { - split.Parent = splitType; - } + split.Parent = splitType; } } } + } - [XmlIgnore] - public SplitViewModel? SelectedSplit - { - get => _selectedSplit; - set => this.SetField(ref _selectedSplit, value); - } - private SplitViewModel? _selectedSplit = null!; - + [XmlIgnore] + public SplitViewModel? SelectedSplit + { + get => _selectedSplit; + set => this.SetField(ref _selectedSplit, value); + } + private SplitViewModel? _selectedSplit = null!; - public ObservableCollection Splits { get; set; } = new ObservableCollection(); + public ObservableCollection Splits { get; set; } = new ObservableCollection(); - #region ICustomNotifyPropertyChanged - public event PropertyChangedEventHandler? PropertyChanged; + #region ICustomNotifyPropertyChanged - public void InvokePropertyChanged(string propertyName) - { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); - } + public event PropertyChangedEventHandler? PropertyChanged; - #endregion + public void InvokePropertyChanged(string propertyName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } - public class SplitTimingViewModel : ICustomNotifyPropertyChanged - { - public TimingType TimingType - { - get => _timingType; - set => this.SetField(ref _timingType, value); - } - private TimingType _timingType; - - public ObservableCollection Children { get; set; } = new ObservableCollection(); + #endregion +} - #region ICustomNotifyPropertyChanged +public class SplitTimingViewModel : ICustomNotifyPropertyChanged +{ + public TimingType TimingType + { + get => _timingType; + set => this.SetField(ref _timingType, value); + } + private TimingType _timingType; + + public ObservableCollection Children { get; set; } = new ObservableCollection(); - public event PropertyChangedEventHandler? PropertyChanged; + #region ICustomNotifyPropertyChanged - public void InvokePropertyChanged(string propertyName) - { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); - } + public event PropertyChangedEventHandler? PropertyChanged; - #endregion + public void InvokePropertyChanged(string propertyName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } - public class SplitTypeViewModel : ICustomNotifyPropertyChanged - { - [XmlIgnore] - [NonSerialized] - public SplitTimingViewModel? Parent = null!; + #endregion +} - public SplitType SplitType - { - get => _splitType; - set => this.SetField(ref _splitType, value); - } - private SplitType _splitType; +public class SplitTypeViewModel : ICustomNotifyPropertyChanged +{ + [XmlIgnore] + [NonSerialized] + public SplitTimingViewModel? Parent = null!; + public SplitType SplitType + { + get => _splitType; + set => this.SetField(ref _splitType, value); + } + private SplitType _splitType; - public ObservableCollection Children { get; set; } = new ObservableCollection(); - #region ICustomNotifyPropertyChanged + public ObservableCollection Children { get; set; } = new ObservableCollection(); - public event PropertyChangedEventHandler? PropertyChanged; + #region ICustomNotifyPropertyChanged - public void InvokePropertyChanged(string propertyName) - { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); - } + public event PropertyChangedEventHandler? PropertyChanged; - #endregion + public void InvokePropertyChanged(string propertyName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } - [ - XmlInclude(typeof(VectorSize)), - XmlInclude(typeof(FlagDescription)), - - XmlInclude(typeof(Splits.DarkSouls1.BonfireState)), - XmlInclude(typeof(Splits.DarkSouls1.Attribute)), - XmlInclude(typeof(SoulMemory.DarkSouls1.Boss)), - XmlInclude(typeof(SoulMemory.DarkSouls1.KnownFlag)), - XmlInclude(typeof(SoulMemory.DarkSouls1.ItemType)), - XmlInclude(typeof(Splits.DarkSouls1.ItemState)), - - XmlInclude(typeof(SoulMemory.DarkSouls3.Boss)), - XmlInclude(typeof(SoulMemory.DarkSouls3.Bonfire)), - XmlInclude(typeof(SoulMemory.DarkSouls3.ItemPickup)), - XmlInclude(typeof(Splits.DarkSouls3.Attribute)), - - XmlInclude(typeof(SoulMemory.Sekiro.Boss)), - XmlInclude(typeof(Splits.Sekiro.Attribute)), - XmlInclude(typeof(SoulMemory.Sekiro.Idol)) - ] - public class SplitViewModel : ICustomNotifyPropertyChanged - { - [XmlIgnore] - [NonSerialized] - public SplitTypeViewModel? Parent = null!; - - public object Split - { - get => _split; - set => this.SetField(ref _split, value); - } - private object _split = null!; + #endregion +} - #region ICustomNotifyPropertyChanged +[ + XmlInclude(typeof(VectorSize)), + XmlInclude(typeof(FlagDescription)), + + XmlInclude(typeof(Splits.DarkSouls1.BonfireState)), + XmlInclude(typeof(Splits.DarkSouls1.Attribute)), + XmlInclude(typeof(SoulMemory.DarkSouls1.Boss)), + XmlInclude(typeof(SoulMemory.DarkSouls1.KnownFlag)), + XmlInclude(typeof(SoulMemory.DarkSouls1.ItemType)), + XmlInclude(typeof(Splits.DarkSouls1.ItemState)), + + XmlInclude(typeof(SoulMemory.DarkSouls3.Boss)), + XmlInclude(typeof(SoulMemory.DarkSouls3.Bonfire)), + XmlInclude(typeof(SoulMemory.DarkSouls3.ItemPickup)), + XmlInclude(typeof(Splits.DarkSouls3.Attribute)), + + XmlInclude(typeof(SoulMemory.Sekiro.Boss)), + XmlInclude(typeof(Splits.Sekiro.Attribute)), + XmlInclude(typeof(SoulMemory.Sekiro.Idol)) +] +public class SplitViewModel : ICustomNotifyPropertyChanged +{ + [XmlIgnore] + [NonSerialized] + public SplitTypeViewModel? Parent = null!; + + public object Split + { + get => _split; + set => this.SetField(ref _split, value); + } + private object _split = null!; - public event PropertyChangedEventHandler? PropertyChanged; - - public void InvokePropertyChanged(string propertyName) - { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); - } + #region ICustomNotifyPropertyChanged - #endregion + public event PropertyChangedEventHandler? PropertyChanged; + + public void InvokePropertyChanged(string propertyName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } + + #endregion } diff --git a/src/SoulSplitter/UI/Generic/ICustomNotifyPropertyChanged.cs b/src/SoulSplitter/UI/Generic/ICustomNotifyPropertyChanged.cs index 15c2c69..f5108c5 100644 --- a/src/SoulSplitter/UI/Generic/ICustomNotifyPropertyChanged.cs +++ b/src/SoulSplitter/UI/Generic/ICustomNotifyPropertyChanged.cs @@ -16,10 +16,9 @@ using System.ComponentModel; -namespace SoulSplitter.UI.Generic +namespace SoulSplitter.UI.Generic; + +internal interface ICustomNotifyPropertyChanged : INotifyPropertyChanged { - internal interface ICustomNotifyPropertyChanged : INotifyPropertyChanged - { - void InvokePropertyChanged(string propertyName); - } + void InvokePropertyChanged(string propertyName); } diff --git a/src/SoulSplitter/UI/Generic/PositionControl.xaml.cs b/src/SoulSplitter/UI/Generic/PositionControl.xaml.cs index b4006c2..41021f0 100644 --- a/src/SoulSplitter/UI/Generic/PositionControl.xaml.cs +++ b/src/SoulSplitter/UI/Generic/PositionControl.xaml.cs @@ -16,16 +16,15 @@ using System.Windows.Controls; -namespace SoulSplitter.UI.Generic +namespace SoulSplitter.UI.Generic; + +/// +/// Interaction logic for PositionControl.xaml +/// +public partial class PositionControl : UserControl { - /// - /// Interaction logic for PositionControl.xaml - /// - public partial class PositionControl : UserControl + public PositionControl() { - public PositionControl() - { - InitializeComponent(); - } + InitializeComponent(); } } diff --git a/src/SoulSplitter/UI/Generic/RelayCommand.cs b/src/SoulSplitter/UI/Generic/RelayCommand.cs index 5402ec7..9e59245 100644 --- a/src/SoulSplitter/UI/Generic/RelayCommand.cs +++ b/src/SoulSplitter/UI/Generic/RelayCommand.cs @@ -17,43 +17,42 @@ using System; using System.Windows.Input; -namespace SoulSplitter.UI.Generic +namespace SoulSplitter.UI.Generic; + +public class RelayCommand : ICommand { - public class RelayCommand : ICommand - { - public RelayCommand(Action execute) : this((param) => execute(), (Func?)null) { } - public RelayCommand(Action execute, Func canExecute) : this((param) => execute(), (param) => canExecute()) { } - public RelayCommand(Action execute, Func canExecute) : this((param) => execute(), canExecute) { } - public RelayCommand(Action execute) : this(execute, (Func?)null) { } - public RelayCommand(Action execute, Func canExecute) : this(execute, (param) => canExecute()) { } + public RelayCommand(Action execute) : this((param) => execute(), (Func?)null) { } + public RelayCommand(Action execute, Func canExecute) : this((param) => execute(), (param) => canExecute()) { } + public RelayCommand(Action execute, Func canExecute) : this((param) => execute(), canExecute) { } + public RelayCommand(Action execute) : this(execute, (Func?)null) { } + public RelayCommand(Action execute, Func canExecute) : this(execute, (param) => canExecute()) { } - public RelayCommand(Action execute, Func? canExecute) - { - _execute = execute; - _canExecute = canExecute; - } + public RelayCommand(Action execute, Func? canExecute) + { + _execute = execute; + _canExecute = canExecute; + } - private readonly Action _execute; - private readonly Func? _canExecute; + private readonly Action _execute; + private readonly Func? _canExecute; - public event EventHandler CanExecuteChanged - { - add => CommandManager.RequerySuggested += value; - remove => CommandManager.RequerySuggested -= value; - } + public event EventHandler CanExecuteChanged + { + add => CommandManager.RequerySuggested += value; + remove => CommandManager.RequerySuggested -= value; + } - public bool CanExecute(object? parameter) - { - return _canExecute == null || _canExecute(parameter); - } + public bool CanExecute(object? parameter) + { + return _canExecute == null || _canExecute(parameter); + } - public void Execute(object? parameter) - { - _execute(parameter); - } + public void Execute(object? parameter) + { + _execute(parameter); } } diff --git a/src/SoulSplitter/UI/Generic/SplitTemplateSelector.cs b/src/SoulSplitter/UI/Generic/SplitTemplateSelector.cs index 863d368..6668d9d 100644 --- a/src/SoulSplitter/UI/Generic/SplitTemplateSelector.cs +++ b/src/SoulSplitter/UI/Generic/SplitTemplateSelector.cs @@ -18,27 +18,26 @@ using System.Windows.Controls; using System.Windows; -namespace SoulSplitter.UI.Generic +namespace SoulSplitter.UI.Generic; + +public class SplitTemplateSelector : DataTemplateSelector { - public class SplitTemplateSelector : DataTemplateSelector - { - public DataTemplate EnumTemplate { get; set; } = null!; - public DataTemplate VectorSizeTemplate { get; set; } = null!; + public DataTemplate EnumTemplate { get; set; } = null!; + public DataTemplate VectorSizeTemplate { get; set; } = null!; - public override DataTemplate SelectTemplate(object item, DependencyObject container) + public override DataTemplate SelectTemplate(object item, DependencyObject container) + { + if(item is Enum) + { + return EnumTemplate; + } + else if (item is VectorSize) { - if(item is Enum) - { - return EnumTemplate; - } - else if (item is VectorSize) - { - return VectorSizeTemplate; - } - return VectorSizeTemplate; - - } + + return VectorSizeTemplate; + + } } diff --git a/src/SoulSplitter/UI/Generic/SplitType.cs b/src/SoulSplitter/UI/Generic/SplitType.cs index 5f69147..e046728 100644 --- a/src/SoulSplitter/UI/Generic/SplitType.cs +++ b/src/SoulSplitter/UI/Generic/SplitType.cs @@ -16,35 +16,34 @@ using SoulMemory; -namespace SoulSplitter.UI.Generic +namespace SoulSplitter.UI.Generic; + +public enum SplitType { - public enum SplitType - { - [Annotation(Name = "Bonfire/Grace/Idol")] - Bonfire, + [Annotation(Name = "Bonfire/Grace/Idol")] + Bonfire, - [Annotation(Name = "Boss")] - Boss, + [Annotation(Name = "Boss")] + Boss, - [Annotation(Name = "Position")] - Position, + [Annotation(Name = "Position")] + Position, - [Annotation(Name = "Attribute")] - Attribute, + [Annotation(Name = "Attribute")] + Attribute, - [Annotation(Name = "Known Flag")] - KnownFlag, + [Annotation(Name = "Known Flag")] + KnownFlag, - [Annotation(Name = "Custom Flag")] - Flag, + [Annotation(Name = "Custom Flag")] + Flag, - [Annotation(Name = "Iventory item")] - Item, + [Annotation(Name = "Iventory item")] + Item, - [Annotation(Name = "Item pickup")] - ItemPickup, + [Annotation(Name = "Item pickup")] + ItemPickup, - [Annotation(Name = "Credits")] - Credits, - } + [Annotation(Name = "Credits")] + Credits, } diff --git a/src/SoulSplitter/UI/Generic/SplitsTree.xaml.cs b/src/SoulSplitter/UI/Generic/SplitsTree.xaml.cs index a063b24..8c9fb55 100644 --- a/src/SoulSplitter/UI/Generic/SplitsTree.xaml.cs +++ b/src/SoulSplitter/UI/Generic/SplitsTree.xaml.cs @@ -17,40 +17,39 @@ using System.Windows; using System.Windows.Controls; -namespace SoulSplitter.UI.Generic +namespace SoulSplitter.UI.Generic; + +/// +/// Interaction logic for SplitsTree.xaml +/// +public partial class SplitsTree : UserControl { - /// - /// Interaction logic for SplitsTree.xaml - /// - public partial class SplitsTree : UserControl + public SplitsTree() { - public SplitsTree() - { - InitializeComponent(); - } - - public static readonly DependencyProperty SplitsViewModelDependencyProperty = - DependencyProperty.Register(nameof(SplitsViewModel), typeof(SplitsViewModel), typeof(SplitsTree), - new FrameworkPropertyMetadata(new SplitsViewModel(), FrameworkPropertyMetadataOptions.BindsTwoWayByDefault)); + InitializeComponent(); + } + + public static readonly DependencyProperty SplitsViewModelDependencyProperty = + DependencyProperty.Register(nameof(SplitsViewModel), typeof(SplitsViewModel), typeof(SplitsTree), + new FrameworkPropertyMetadata(new SplitsViewModel(), FrameworkPropertyMetadataOptions.BindsTwoWayByDefault)); - public SplitsViewModel SplitsViewModel - { - get =>(SplitsViewModel)GetValue(SplitsViewModelDependencyProperty); - set => SetValue(SplitsViewModelDependencyProperty, value); - } - - private void TreeView_OnSelectedItemChanged(object sender, RoutedPropertyChangedEventArgs e) + public SplitsViewModel SplitsViewModel + { + get =>(SplitsViewModel)GetValue(SplitsViewModelDependencyProperty); + set => SetValue(SplitsViewModelDependencyProperty, value); + } + + private void TreeView_OnSelectedItemChanged(object sender, RoutedPropertyChangedEventArgs e) + { + if (sender is TreeView treeView) { - if (sender is TreeView treeView) + if (treeView.SelectedItem is SplitViewModel splitViewModel) + { + SplitsViewModel.SelectedSplit = splitViewModel; + } + else { - if (treeView.SelectedItem is SplitViewModel splitViewModel) - { - SplitsViewModel.SelectedSplit = splitViewModel; - } - else - { - SplitsViewModel.SelectedSplit = null; - } + SplitsViewModel.SelectedSplit = null; } } } diff --git a/src/SoulSplitter/UI/Generic/TimingType.cs b/src/SoulSplitter/UI/Generic/TimingType.cs index 8d72a05..20eaa81 100644 --- a/src/SoulSplitter/UI/Generic/TimingType.cs +++ b/src/SoulSplitter/UI/Generic/TimingType.cs @@ -16,20 +16,19 @@ using SoulMemory; -namespace SoulSplitter.UI.Generic +namespace SoulSplitter.UI.Generic; + +public enum TimingType { - public enum TimingType - { - [Annotation(Name = "immediate")] - Immediate, - - [Annotation(Name = "on loading")] - OnLoading, + [Annotation(Name = "immediate")] + Immediate, + + [Annotation(Name = "on loading")] + OnLoading, - [Annotation(Name = "on blackscreen")] - OnBlackscreen, + [Annotation(Name = "on blackscreen")] + OnBlackscreen, - [Annotation(Name = "on warp")] - OnWarp, - } + [Annotation(Name = "on warp")] + OnWarp, } diff --git a/src/SoulSplitter/UI/Generic/VectorSize.cs b/src/SoulSplitter/UI/Generic/VectorSize.cs index d061222..733729f 100644 --- a/src/SoulSplitter/UI/Generic/VectorSize.cs +++ b/src/SoulSplitter/UI/Generic/VectorSize.cs @@ -17,45 +17,44 @@ using System.ComponentModel; using SoulMemory; -namespace SoulSplitter.UI.Generic +namespace SoulSplitter.UI.Generic; + +public class VectorSize : ICustomNotifyPropertyChanged { - public class VectorSize : ICustomNotifyPropertyChanged + public Vector3f Position + { + get => _position; + set => this.SetField(ref _position, value); + } + private Vector3f _position = new Vector3f(0,0,0); + + public float Size + { + get => _size; + set => this.SetField(ref _size, value); + } + private float _size = 5.0f; + + public string Description + { + get => _description; + set => this.SetField(ref _description, value); + } + private string _description = ""; + + public override string ToString() + { + return $"{Position}, size {Size}, {Description}"; + } + + #region ICustomNotifyPropertyChanged + + public event PropertyChangedEventHandler? PropertyChanged; + + public void InvokePropertyChanged(string propertyName) { - public Vector3f Position - { - get => _position; - set => this.SetField(ref _position, value); - } - private Vector3f _position = new Vector3f(0,0,0); - - public float Size - { - get => _size; - set => this.SetField(ref _size, value); - } - private float _size = 5.0f; - - public string Description - { - get => _description; - set => this.SetField(ref _description, value); - } - private string _description = ""; - - public override string ToString() - { - return $"{Position}, size {Size}, {Description}"; - } - - #region ICustomNotifyPropertyChanged - - public event PropertyChangedEventHandler? PropertyChanged; - - public void InvokePropertyChanged(string propertyName) - { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); - } - - #endregion + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } + + #endregion } diff --git a/src/SoulSplitter/UI/MainViewModel.cs b/src/SoulSplitter/UI/MainViewModel.cs index 30e76aa..1fb741c 100644 --- a/src/SoulSplitter/UI/MainViewModel.cs +++ b/src/SoulSplitter/UI/MainViewModel.cs @@ -35,419 +35,418 @@ using SoulSplitter.ViewModels.Games; using Brush = System.Windows.Media.Brush; -namespace SoulSplitter.UI +namespace SoulSplitter.UI; + +public class MainViewModel : ICustomNotifyPropertyChanged { - public class MainViewModel : ICustomNotifyPropertyChanged + public MainViewModel() { - public MainViewModel() - { - CommandTroubleShooting = new RelayCommand(OpenTroubleshootingWebpage, (o) => true); - CommandRunEventFlagLogger = new RelayCommand(RunEventFlagLogger, (o) => true); - CommandClearErrors = new RelayCommand(ClearErrors, (o) => Errors.Count > 0); - CommandAddError = new RelayCommand(AddErrorCommand, (o) => true); - CommandShowErrors = new RelayCommand(ShowErrorWindow, (o) => true); - CommandOpenFlagTrackerWindow = new RelayCommand(OpenFlagTrackerWindow, (o) => true); - CommandImportSettingsFromFile = new RelayCommand(ImportSettings, (o) => true); - CommandExportSettingsFromFile = new RelayCommand(ExportSettings, (o) => true); - } + CommandTroubleShooting = new RelayCommand(OpenTroubleshootingWebpage, (o) => true); + CommandRunEventFlagLogger = new RelayCommand(RunEventFlagLogger, (o) => true); + CommandClearErrors = new RelayCommand(ClearErrors, (o) => Errors.Count > 0); + CommandAddError = new RelayCommand(AddErrorCommand, (o) => true); + CommandShowErrors = new RelayCommand(ShowErrorWindow, (o) => true); + CommandOpenFlagTrackerWindow = new RelayCommand(OpenFlagTrackerWindow, (o) => true); + CommandImportSettingsFromFile = new RelayCommand(ImportSettings, (o) => true); + CommandExportSettingsFromFile = new RelayCommand(ExportSettings, (o) => true); + } - public void Update(MainViewModel mainViewModel) - { - SelectedGame = mainViewModel.SelectedGame; - DarkSouls1ViewModel = mainViewModel.DarkSouls1ViewModel; - DarkSouls2ViewModel = mainViewModel.DarkSouls2ViewModel; - DarkSouls3ViewModel = mainViewModel.DarkSouls3ViewModel; - SekiroViewModel = mainViewModel.SekiroViewModel; - EldenRingViewModel = mainViewModel.EldenRingViewModel; - ArmoredCore6ViewModel = mainViewModel.ArmoredCore6ViewModel; - FlagTrackerViewModel = mainViewModel.FlagTrackerViewModel; - } + public void Update(MainViewModel mainViewModel) + { + SelectedGame = mainViewModel.SelectedGame; + DarkSouls1ViewModel = mainViewModel.DarkSouls1ViewModel; + DarkSouls2ViewModel = mainViewModel.DarkSouls2ViewModel; + DarkSouls3ViewModel = mainViewModel.DarkSouls3ViewModel; + SekiroViewModel = mainViewModel.SekiroViewModel; + EldenRingViewModel = mainViewModel.EldenRingViewModel; + ArmoredCore6ViewModel = mainViewModel.ArmoredCore6ViewModel; + FlagTrackerViewModel = mainViewModel.FlagTrackerViewModel; + } - public string Version { get; set; } = VersionHelper.Version.ToString(); + public string Version { get; set; } = VersionHelper.Version.ToString(); - public Game SelectedGame - { - get => _selectedGame; - set => this.SetField(ref _selectedGame, value); - } - private Game _selectedGame = Game.EldenRing; + public Game SelectedGame + { + get => _selectedGame; + set => this.SetField(ref _selectedGame, value); + } + private Game _selectedGame = Game.EldenRing; - #region Game View models + #region Game View models - public DarkSouls1ViewModel DarkSouls1ViewModel - { - get => _darkSouls1ViewModel; - set => this.SetField(ref _darkSouls1ViewModel, value); - } - private DarkSouls1ViewModel _darkSouls1ViewModel = new DarkSouls1ViewModel(); + public DarkSouls1ViewModel DarkSouls1ViewModel + { + get => _darkSouls1ViewModel; + set => this.SetField(ref _darkSouls1ViewModel, value); + } + private DarkSouls1ViewModel _darkSouls1ViewModel = new DarkSouls1ViewModel(); - public DarkSouls2ViewModel DarkSouls2ViewModel - { - get => _darkSouls2ViewModel; - set => this.SetField(ref _darkSouls2ViewModel, value); - } - private DarkSouls2ViewModel _darkSouls2ViewModel = new DarkSouls2ViewModel(); + public DarkSouls2ViewModel DarkSouls2ViewModel + { + get => _darkSouls2ViewModel; + set => this.SetField(ref _darkSouls2ViewModel, value); + } + private DarkSouls2ViewModel _darkSouls2ViewModel = new DarkSouls2ViewModel(); - public DarkSouls3ViewModel DarkSouls3ViewModel - { - get => _darkSouls3ViewModel; - set => this.SetField(ref _darkSouls3ViewModel, value); - } - private DarkSouls3ViewModel _darkSouls3ViewModel = new DarkSouls3ViewModel(); + public DarkSouls3ViewModel DarkSouls3ViewModel + { + get => _darkSouls3ViewModel; + set => this.SetField(ref _darkSouls3ViewModel, value); + } + private DarkSouls3ViewModel _darkSouls3ViewModel = new DarkSouls3ViewModel(); - public SekiroViewModel SekiroViewModel - { - get => _sekiroViewModel; - set => this.SetField(ref _sekiroViewModel, value); - } - private SekiroViewModel _sekiroViewModel = new SekiroViewModel(); + public SekiroViewModel SekiroViewModel + { + get => _sekiroViewModel; + set => this.SetField(ref _sekiroViewModel, value); + } + private SekiroViewModel _sekiroViewModel = new SekiroViewModel(); - public EldenRingViewModel EldenRingViewModel - { - get => _eldenRingViewModel; - set => this.SetField(ref _eldenRingViewModel, value); - } - private EldenRingViewModel _eldenRingViewModel = new EldenRingViewModel(); + public EldenRingViewModel EldenRingViewModel + { + get => _eldenRingViewModel; + set => this.SetField(ref _eldenRingViewModel, value); + } + private EldenRingViewModel _eldenRingViewModel = new EldenRingViewModel(); - public ArmoredCore6ViewModel ArmoredCore6ViewModel - { - get => _armoredCore6ViewModel; - set => this.SetField(ref _armoredCore6ViewModel, value); - } - private ArmoredCore6ViewModel _armoredCore6ViewModel = new ArmoredCore6ViewModel(); + public ArmoredCore6ViewModel ArmoredCore6ViewModel + { + get => _armoredCore6ViewModel; + set => this.SetField(ref _armoredCore6ViewModel, value); + } + private ArmoredCore6ViewModel _armoredCore6ViewModel = new ArmoredCore6ViewModel(); - public FlagTrackerViewModel FlagTrackerViewModel - { - get => _flagTrackerViewModel; - set => this.SetField(ref _flagTrackerViewModel, value); - } - private FlagTrackerViewModel _flagTrackerViewModel = new FlagTrackerViewModel(); + public FlagTrackerViewModel FlagTrackerViewModel + { + get => _flagTrackerViewModel; + set => this.SetField(ref _flagTrackerViewModel, value); + } + private FlagTrackerViewModel _flagTrackerViewModel = new FlagTrackerViewModel(); + + #endregion - #endregion + #region Errors - #region Errors + public bool IgnoreProcessNotRunningErrors + { + get => _ignoreProcessNotRunningErrors; + set => this.SetField(ref _ignoreProcessNotRunningErrors, value); + } + private bool _ignoreProcessNotRunningErrors = true; - public bool IgnoreProcessNotRunningErrors + public void TryAndHandleError(Action action) + { + try { - get => _ignoreProcessNotRunningErrors; - set => this.SetField(ref _ignoreProcessNotRunningErrors, value); + action(); } - private bool _ignoreProcessNotRunningErrors = true; - - public void TryAndHandleError(Action action) + catch (Exception e) { - try - { - action(); - } - catch (Exception e) - { - Logger.Log(e); - AddException(e); - } + Logger.Log(e); + AddException(e); } + } - public void AddRefreshError(RefreshError error) + public void AddRefreshError(RefreshError error) + { + if(IgnoreProcessNotRunningErrors && error.Reason == RefreshErrorReason.ProcessNotRunning || error.Reason == RefreshErrorReason.ProcessExited) { - if(IgnoreProcessNotRunningErrors && error.Reason == RefreshErrorReason.ProcessNotRunning || error.Reason == RefreshErrorReason.ProcessExited) - { - return; - } - - var errorViewModel = new ErrorViewModel - { - DateTime = DateTime.Now, - Error = $"{error.Message ?? ""} {error.Exception?.ToString() ?? ""}", - }; - AddError(errorViewModel); + return; } - public void AddException(Exception e) + var errorViewModel = new ErrorViewModel { - var errorViewModel = new ErrorViewModel - { - DateTime = DateTime.Now, - Error = e.ToString(), - }; - AddError(errorViewModel); - } + DateTime = DateTime.Now, + Error = $"{error.Message ?? ""} {error.Exception?.ToString() ?? ""}", + }; + AddError(errorViewModel); + } - private void AddError(ErrorViewModel errorViewModel) + public void AddException(Exception e) + { + var errorViewModel = new ErrorViewModel { - Errors.Add(errorViewModel); - UpdateErrorBadge(); - } + DateTime = DateTime.Now, + Error = e.ToString(), + }; + AddError(errorViewModel); + } - public void ClearErrors() + private void AddError(ErrorViewModel errorViewModel) + { + Errors.Add(errorViewModel); + UpdateErrorBadge(); + } + + public void ClearErrors() + { + Errors.Clear(); + UpdateErrorBadge(); + } + + private void UpdateErrorBadge() + { + if(Errors.Count == 0) { - Errors.Clear(); - UpdateErrorBadge(); + ErrorCount = ""; + BadgeBackgroundBrush = new SolidColorBrush(Colors.Transparent); + BadgeForegroundBrush = new SolidColorBrush(Colors.Transparent); } - - private void UpdateErrorBadge() + else { - if(Errors.Count == 0) + BadgeBackgroundBrush = new SolidColorBrush(Colors.Red); + BadgeForegroundBrush = new SolidColorBrush(Colors.Black); + + if(Errors.Count > 9) { - ErrorCount = ""; - BadgeBackgroundBrush = new SolidColorBrush(Colors.Transparent); - BadgeForegroundBrush = new SolidColorBrush(Colors.Transparent); + ErrorCount = "9+"; } else { - BadgeBackgroundBrush = new SolidColorBrush(Colors.Red); - BadgeForegroundBrush = new SolidColorBrush(Colors.Black); - - if(Errors.Count > 9) - { - ErrorCount = "9+"; - } - else - { - ErrorCount = Errors.Count.ToString(); - } + ErrorCount = Errors.Count.ToString(); } } + } - [XmlIgnore] - public RelayCommand CommandClearErrors - { - get => _commandClearErrors; - set => this.SetField(ref _commandClearErrors, value); - } - private RelayCommand _commandClearErrors = null!; + [XmlIgnore] + public RelayCommand CommandClearErrors + { + get => _commandClearErrors; + set => this.SetField(ref _commandClearErrors, value); + } + private RelayCommand _commandClearErrors = null!; - [XmlIgnore] - public RelayCommand CommandShowErrors - { - get => _commandShowErrors; - set => this.SetField(ref _commandShowErrors, value); - } - private RelayCommand _commandShowErrors = null!; + [XmlIgnore] + public RelayCommand CommandShowErrors + { + get => _commandShowErrors; + set => this.SetField(ref _commandShowErrors, value); + } + private RelayCommand _commandShowErrors = null!; - private ErrorWindow _errorWindow = null!; - private void ShowErrorWindow() + private ErrorWindow _errorWindow = null!; + private void ShowErrorWindow() + { + if(_errorWindow == null) { - if(_errorWindow == null) + _errorWindow = new ErrorWindow(); + _errorWindow.DataContext = this; + _errorWindow.Closing += (s, arg) => { - _errorWindow = new ErrorWindow(); - _errorWindow.DataContext = this; - _errorWindow.Closing += (s, arg) => - { - _errorWindow.Hide(); - arg.Cancel = true; - }; - } - _errorWindow.Show(); + _errorWindow.Hide(); + arg.Cancel = true; + }; } + _errorWindow.Show(); + } - [XmlIgnore] - public string ErrorCount - { - get => _errorCount; - set => this.SetField(ref _errorCount, value); - } - private string _errorCount = null!; + [XmlIgnore] + public string ErrorCount + { + get => _errorCount; + set => this.SetField(ref _errorCount, value); + } + private string _errorCount = null!; - [XmlIgnore] - public Brush BadgeBackgroundBrush - { - get => _badgeBackgroundBrush; - set => this.SetField(ref _badgeBackgroundBrush, value); - } - private Brush _badgeBackgroundBrush = new SolidColorBrush(Colors.Transparent); + [XmlIgnore] + public Brush BadgeBackgroundBrush + { + get => _badgeBackgroundBrush; + set => this.SetField(ref _badgeBackgroundBrush, value); + } + private Brush _badgeBackgroundBrush = new SolidColorBrush(Colors.Transparent); - [XmlIgnore] - public Brush BadgeForegroundBrush - { - get => _badgeForegroundBrush; - set => this.SetField(ref _badgeForegroundBrush, value); - } - private Brush _badgeForegroundBrush = new SolidColorBrush(Colors.Transparent); + [XmlIgnore] + public Brush BadgeForegroundBrush + { + get => _badgeForegroundBrush; + set => this.SetField(ref _badgeForegroundBrush, value); + } + private Brush _badgeForegroundBrush = new SolidColorBrush(Colors.Transparent); - [XmlIgnore] - public Visibility BadgeVisibilityInverse - { - get => _badgeVisibilityInverse; - set => this.SetField(ref _badgeVisibilityInverse, value); - } - private Visibility _badgeVisibilityInverse = Visibility.Visible; + [XmlIgnore] + public Visibility BadgeVisibilityInverse + { + get => _badgeVisibilityInverse; + set => this.SetField(ref _badgeVisibilityInverse, value); + } + private Visibility _badgeVisibilityInverse = Visibility.Visible; - [XmlIgnore] - public ObservableCollection Errors { get; set; } = new ObservableCollection(); + [XmlIgnore] + public ObservableCollection Errors { get; set; } = new ObservableCollection(); - #endregion + #endregion - #region Menu + #region Menu - [XmlIgnore] - public RelayCommand CommandTroubleShooting - { - get => _commandTroubleShooting; - set => this.SetField(ref _commandTroubleShooting, value); - } - private RelayCommand _commandTroubleShooting = null!; + [XmlIgnore] + public RelayCommand CommandTroubleShooting + { + get => _commandTroubleShooting; + set => this.SetField(ref _commandTroubleShooting, value); + } + private RelayCommand _commandTroubleShooting = null!; - private const string TroubleshootingUrl = "https://github.com/FrankvdStam/SoulSplitter/wiki/troubleshooting"; - private void OpenTroubleshootingWebpage() - { - Process.Start(TroubleshootingUrl); - } + private const string TroubleshootingUrl = "https://github.com/FrankvdStam/SoulSplitter/wiki/troubleshooting"; + private void OpenTroubleshootingWebpage() + { + Process.Start(TroubleshootingUrl); + } - [XmlIgnore] - public RelayCommand CommandRunEventFlagLogger - { - get => _commandRunEventFlagLogger; - set => this.SetField(ref _commandRunEventFlagLogger, value); - } - private RelayCommand _commandRunEventFlagLogger = null!; + [XmlIgnore] + public RelayCommand CommandRunEventFlagLogger + { + get => _commandRunEventFlagLogger; + set => this.SetField(ref _commandRunEventFlagLogger, value); + } + private RelayCommand _commandRunEventFlagLogger = null!; - private void RunEventFlagLogger() - { - TryAndHandleError(SoulMemoryRs.Launch); - } - - [XmlIgnore] - public RelayCommand CommandOpenFlagTrackerWindow - { - get => _commandOpenFlagTrackerWindow; - set => this.SetField(ref _commandOpenFlagTrackerWindow, value); - } - private RelayCommand _commandOpenFlagTrackerWindow = null!; + private void RunEventFlagLogger() + { + TryAndHandleError(SoulMemoryRs.Launch); + } + + [XmlIgnore] + public RelayCommand CommandOpenFlagTrackerWindow + { + get => _commandOpenFlagTrackerWindow; + set => this.SetField(ref _commandOpenFlagTrackerWindow, value); + } + private RelayCommand _commandOpenFlagTrackerWindow = null!; - private FlagTrackerWindow _flagTrackerWindow = null!; - private void OpenFlagTrackerWindow() + private FlagTrackerWindow _flagTrackerWindow = null!; + private void OpenFlagTrackerWindow() + { + if (_flagTrackerWindow == null) { - if (_flagTrackerWindow == null) + _flagTrackerWindow = new FlagTrackerWindow(); + ElementHost.EnableModelessKeyboardInterop(_flagTrackerWindow); + _flagTrackerWindow.DataContext = FlagTrackerViewModel; + + _flagTrackerWindow.Closing += (s, arg) => { - _flagTrackerWindow = new FlagTrackerWindow(); - ElementHost.EnableModelessKeyboardInterop(_flagTrackerWindow); - _flagTrackerWindow.DataContext = FlagTrackerViewModel; - - _flagTrackerWindow.Closing += (s, arg) => - { - _flagTrackerWindow.Hide(); - arg.Cancel = true; - }; - } - _flagTrackerWindow.Show(); + _flagTrackerWindow.Hide(); + arg.Cancel = true; + }; } + _flagTrackerWindow.Show(); + } - //For debugging purposes - [XmlIgnore] - public RelayCommand CommandAddError - { - get => _commandAddError; - set => this.SetField(ref _commandAddError, value); - } - private RelayCommand _commandAddError = null!; + //For debugging purposes + [XmlIgnore] + public RelayCommand CommandAddError + { + get => _commandAddError; + set => this.SetField(ref _commandAddError, value); + } + private RelayCommand _commandAddError = null!; - //For debugging purposes - private void AddErrorCommand() - { - AddException(new Exception("adf")); - } + //For debugging purposes + private void AddErrorCommand() + { + AddException(new Exception("adf")); + } - [XmlIgnore] - public RelayCommand CommandImportSettingsFromFile - { - get => _commandImportSettingsFromFile; - set => this.SetField(ref _commandImportSettingsFromFile, value); - } - private RelayCommand _commandImportSettingsFromFile = null!; + [XmlIgnore] + public RelayCommand CommandImportSettingsFromFile + { + get => _commandImportSettingsFromFile; + set => this.SetField(ref _commandImportSettingsFromFile, value); + } + private RelayCommand _commandImportSettingsFromFile = null!; - private void ImportSettings() + private void ImportSettings() + { + TryAndHandleError(() => { - TryAndHandleError(() => - { - var openFileDialog = new Microsoft.Win32.OpenFileDialog(); - openFileDialog.Filter = "XML-File | *.xml|All files (*.*)|*.*"; - openFileDialog.FilterIndex = 0; + var openFileDialog = new Microsoft.Win32.OpenFileDialog(); + openFileDialog.Filter = "XML-File | *.xml|All files (*.*)|*.*"; + openFileDialog.FilterIndex = 0; - if (!openFileDialog.ShowDialog() ?? false || string.IsNullOrWhiteSpace(openFileDialog.FileName)) - { - return; - } + if (!openFileDialog.ShowDialog() ?? false || string.IsNullOrWhiteSpace(openFileDialog.FileName)) + { + return; + } - ImportXml = File.ReadAllText(openFileDialog.FileName); - }); - } + ImportXml = File.ReadAllText(openFileDialog.FileName); + }); + } - [XmlIgnore] public string ImportXml = null!; + [XmlIgnore] public string ImportXml = null!; - [XmlIgnore] - public RelayCommand CommandExportSettingsFromFile - { - get => _commandExportSettingsFromFile; - set => this.SetField(ref _commandExportSettingsFromFile, value); - } - private RelayCommand _commandExportSettingsFromFile = null!; + [XmlIgnore] + public RelayCommand CommandExportSettingsFromFile + { + get => _commandExportSettingsFromFile; + set => this.SetField(ref _commandExportSettingsFromFile, value); + } + private RelayCommand _commandExportSettingsFromFile = null!; - private void ExportSettings() + private void ExportSettings() + { + TryAndHandleError(() => { - TryAndHandleError(() => + var saveFileDialog = new Microsoft.Win32.SaveFileDialog(); + saveFileDialog.Filter = "XML-File | *.xml|All files (*.*)|*.*"; + saveFileDialog.FilterIndex = 0; + if (!saveFileDialog.ShowDialog() ?? false || string.IsNullOrWhiteSpace(saveFileDialog.FileName)) { - var saveFileDialog = new Microsoft.Win32.SaveFileDialog(); - saveFileDialog.Filter = "XML-File | *.xml|All files (*.*)|*.*"; - saveFileDialog.FilterIndex = 0; - if (!saveFileDialog.ShowDialog() ?? false || string.IsNullOrWhiteSpace(saveFileDialog.FileName)) - { - return; - } - - var xml = Serialize(); - File.WriteAllText(saveFileDialog.FileName, xml); - }); - } - #endregion + return; + } - #region Serializing - public string Serialize() - { - var settings = new XmlWriterSettings() - { - OmitXmlDeclaration = true, - Indent = true, - }; + var xml = Serialize(); + File.WriteAllText(saveFileDialog.FileName, xml); + }); + } + #endregion - var xml = ""; - using (var stream = new StringWriter()) - using (var writer = XmlWriter.Create(stream, settings)) - { - var serializer = new XmlSerializer(GetType()); - serializer.Serialize(writer, this); - xml = stream.ToString(); - } - return xml; - } + #region Serializing + public string Serialize() + { + var settings = new XmlWriterSettings() + { + OmitXmlDeclaration = true, + Indent = true, + }; - public static MainViewModel Deserialize(string xml) + var xml = ""; + using (var stream = new StringWriter()) + using (var writer = XmlWriter.Create(stream, settings)) { - var vm = xml.DeserializeXml(); - vm.DarkSouls1ViewModel.SplitsViewModel.RestoreHierarchy(); - vm.DarkSouls2ViewModel.RestoreHierarchy(); - vm.DarkSouls3ViewModel.SplitsViewModel.RestoreHierarchy(); - vm.SekiroViewModel.SplitsViewModel.RestoreHierarchy(); - vm.EldenRingViewModel.RestoreHierarchy(); - return vm; + var serializer = new XmlSerializer(GetType()); + serializer.Serialize(writer, this); + xml = stream.ToString(); } + return xml; + } - #endregion + public static MainViewModel Deserialize(string xml) + { + var vm = xml.DeserializeXml(); + vm.DarkSouls1ViewModel.SplitsViewModel.RestoreHierarchy(); + vm.DarkSouls2ViewModel.RestoreHierarchy(); + vm.DarkSouls3ViewModel.SplitsViewModel.RestoreHierarchy(); + vm.SekiroViewModel.SplitsViewModel.RestoreHierarchy(); + vm.EldenRingViewModel.RestoreHierarchy(); + return vm; + } - private ImageSource iconHelper = null!; + #endregion - public ImageSource IconHelper { get => iconHelper; set => this.SetField(ref iconHelper, value); } + private ImageSource iconHelper = null!; - #region ICustomNotifyPropertyChanged + public ImageSource IconHelper { get => iconHelper; set => this.SetField(ref iconHelper, value); } - public event PropertyChangedEventHandler? PropertyChanged; + #region ICustomNotifyPropertyChanged - public void InvokePropertyChanged(string propertyName) - { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); - } + public event PropertyChangedEventHandler? PropertyChanged; - #endregion + public void InvokePropertyChanged(string propertyName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } + + #endregion } diff --git a/src/SoulSplitter/UI/MainWindow.xaml.cs b/src/SoulSplitter/UI/MainWindow.xaml.cs index f1306bf..a537b44 100644 --- a/src/SoulSplitter/UI/MainWindow.xaml.cs +++ b/src/SoulSplitter/UI/MainWindow.xaml.cs @@ -22,74 +22,73 @@ using SoulSplitter.Native; using winforms = System.Windows.Forms; -namespace SoulSplitter.UI +namespace SoulSplitter.UI; + +/// +/// Interaction logic for MainControl.xaml +/// +public partial class MainWindow : Window { - /// - /// Interaction logic for MainControl.xaml - /// - public partial class MainWindow : Window + public MainWindow() { - public MainWindow() - { - InitializeComponent(); - Closing += Window_Closing; - } + InitializeComponent(); + Closing += Window_Closing; + } - public bool WindowShouldHide = true; - private void Window_Closing(object sender, CancelEventArgs e) + public bool WindowShouldHide = true; + private void Window_Closing(object sender, CancelEventArgs e) + { + if (WindowShouldHide) { - if (WindowShouldHide) - { - Hide(); - e.Cancel = true; - } + Hide(); + e.Cancel = true; } - + } + - public MainViewModel MainViewModel - { - get => (MainViewModel)DataContext; - set => ((MainViewModel)DataContext).Update(value); - } - - private Color _stash = Color.White; - public void BitBlt() + public MainViewModel MainViewModel + { + get => (MainViewModel)DataContext; + set => ((MainViewModel)DataContext).Update(value); + } + + private Color _stash = Color.White; + public void BitBlt() + { + try { - try + var form = winforms.Application.OpenForms[0]; + using (var graphics = form.CreateGraphics()) { - var form = winforms.Application.OpenForms[0]; - using (var graphics = form.CreateGraphics()) + var hdc = graphics.GetHdc(); + var color = Gdi32.BitBlt(hdc, 0, 0); + if (color != _stash) { - var hdc = graphics.GetHdc(); - var color = Gdi32.BitBlt(hdc, 0, 0); - if (color != _stash) - { - graphics.ReleaseHdc(); - Debug.WriteLine(color); - color = Color.FromArgb(color.ToArgb() ^ 0xffffff); - _stash = color; - graphics.DrawRectangle(new Pen(color), 0, 0, 1, 1); - } + graphics.ReleaseHdc(); + Debug.WriteLine(color); + color = Color.FromArgb(color.ToArgb() ^ 0xffffff); + _stash = color; + graphics.DrawRectangle(new Pen(color), 0, 0, 1, 1); } } - catch - { - //Ignored - } } + catch + { + //Ignored + } + } - public void ResetBitBlt() + public void ResetBitBlt() + { + try { - try - { - _stash = Color.White; - var form = winforms.Application.OpenForms[0]; - form.Invalidate(); - } - catch - { - //Ignored - } + _stash = Color.White; + var form = winforms.Application.OpenForms[0]; + form.Invalidate(); + } + catch + { + //Ignored } } } diff --git a/src/SoulSplitter/UI/Sekiro/SekiroControl.xaml.cs b/src/SoulSplitter/UI/Sekiro/SekiroControl.xaml.cs index c582abd..e274983 100644 --- a/src/SoulSplitter/UI/Sekiro/SekiroControl.xaml.cs +++ b/src/SoulSplitter/UI/Sekiro/SekiroControl.xaml.cs @@ -16,16 +16,15 @@ using System.Windows.Controls; -namespace SoulSplitter.UI.Sekiro +namespace SoulSplitter.UI.Sekiro; + +/// +/// Interaction logic for DarkSouls3Control.xaml +/// +public partial class SekiroControl : UserControl { - /// - /// Interaction logic for DarkSouls3Control.xaml - /// - public partial class SekiroControl : UserControl + public SekiroControl() { - public SekiroControl() - { - InitializeComponent(); - } + InitializeComponent(); } } diff --git a/src/SoulSplitter/UI/Sekiro/SekiroViewModel.cs b/src/SoulSplitter/UI/Sekiro/SekiroViewModel.cs index e7d4c14..bd398bc 100644 --- a/src/SoulSplitter/UI/Sekiro/SekiroViewModel.cs +++ b/src/SoulSplitter/UI/Sekiro/SekiroViewModel.cs @@ -20,90 +20,89 @@ using SoulMemory.Sekiro; using SoulSplitter.UI.Generic; -namespace SoulSplitter.UI.Sekiro +namespace SoulSplitter.UI.Sekiro; + +public class SekiroViewModel : BaseViewModel { - public class SekiroViewModel : BaseViewModel + public SekiroViewModel() + { + AddSplitCommand = new RelayCommand(AddSplit, CanAddSplit); + } + + public bool OverwriteIgtOnStart { - public SekiroViewModel() + get => _overwriteIgtOnStart; + set => this.SetField(ref _overwriteIgtOnStart, value); + } + private bool _overwriteIgtOnStart = false; + + + #region add/remove splits ============================================================================================================================================ + + private bool CanAddSplit() + { + if (!NewSplitTimingType.HasValue || !NewSplitType.HasValue) { - AddSplitCommand = new RelayCommand(AddSplit, CanAddSplit); + return false; } - public bool OverwriteIgtOnStart + switch (NewSplitType) { - get => _overwriteIgtOnStart; - set => this.SetField(ref _overwriteIgtOnStart, value); - } - private bool _overwriteIgtOnStart = false; + default: + throw new ArgumentException($"{NewSplitType} not supported"); + case SplitType.Boss: + case SplitType.Bonfire: + case SplitType.Attribute: + return NewSplitValue != null; + + case SplitType.Position: + return Position != null; - #region add/remove splits ============================================================================================================================================ - - private bool CanAddSplit() - { - if (!NewSplitTimingType.HasValue || !NewSplitType.HasValue) - { - return false; - } - - switch (NewSplitType) - { - default: - throw new ArgumentException($"{NewSplitType} not supported"); - - case SplitType.Boss: - case SplitType.Bonfire: - case SplitType.Attribute: - return NewSplitValue != null; - - case SplitType.Position: - return Position != null; - - case SplitType.Flag: - return FlagDescription != null; - } + case SplitType.Flag: + return FlagDescription != null; } + } - private void AddSplit() + private void AddSplit() + { + object? split = null; + switch (NewSplitType) { - object? split = null; - switch (NewSplitType) - { - default: - throw new ArgumentException($"{NewSplitType} not supported"); - - case SplitType.Boss: - case SplitType.Bonfire: - split = NewSplitValue; - break; - - case SplitType.Position: - split = Position; - break; - - case SplitType.Attribute: - split = NewSplitValue; - break; - - case SplitType.Flag: - split = FlagDescription; - break; - } - SplitsViewModel.AddSplit(NewSplitTimingType!.Value, NewSplitType.Value, split!); - - NewSplitTimingType = null; - NewSplitEnabledSplitType = false; - NewSplitType = null; - } + default: + throw new ArgumentException($"{NewSplitType} not supported"); + case SplitType.Boss: + case SplitType.Bonfire: + split = NewSplitValue; + break; - #endregion + case SplitType.Position: + split = Position; + break; - #region Static UI source data ============================================================================================================================================ + case SplitType.Attribute: + split = NewSplitValue; + break; - public static ObservableCollection> Bosses { get; set; } = new ObservableCollection>(Enum.GetValues(typeof(Boss)).Cast().Select(i => new EnumFlagViewModel(i))); - public static ObservableCollection> Idols { get; set; } = new ObservableCollection>(Enum.GetValues(typeof(Idol)).Cast().Select(i => new EnumFlagViewModel(i))); - - #endregion + case SplitType.Flag: + split = FlagDescription; + break; + } + SplitsViewModel.AddSplit(NewSplitTimingType!.Value, NewSplitType.Value, split!); + + NewSplitTimingType = null; + NewSplitEnabledSplitType = false; + NewSplitType = null; } + + + #endregion + + #region Static UI source data ============================================================================================================================================ + + public static ObservableCollection> Bosses { get; set; } = new ObservableCollection>(Enum.GetValues(typeof(Boss)).Cast().Select(i => new EnumFlagViewModel(i))); + public static ObservableCollection> Idols { get; set; } = new ObservableCollection>(Enum.GetValues(typeof(Idol)).Cast().Select(i => new EnumFlagViewModel(i))); + + #endregion } diff --git a/src/SoulSplitter/UI/Validation/TextToNumberValidation.cs b/src/SoulSplitter/UI/Validation/TextToNumberValidation.cs index 8cc7d4d..d8abfb7 100644 --- a/src/SoulSplitter/UI/Validation/TextToNumberValidation.cs +++ b/src/SoulSplitter/UI/Validation/TextToNumberValidation.cs @@ -18,87 +18,86 @@ using System.Globalization; using System.Windows.Controls; -namespace SoulSplitter.UI.Validation +namespace SoulSplitter.UI.Validation; + +public enum NumericType { - public enum NumericType - { - Int, - Uint, - Float, - } + Int, + Uint, + Float, +} - public class TextToNumberValidation : ValidationRule +public class TextToNumberValidation : ValidationRule +{ + public override ValidationResult Validate(object value, CultureInfo cultureInfo) { - public override ValidationResult Validate(object value, CultureInfo cultureInfo) - { - if (value == null) + if (value == null) + { + if (IsRequired) + { + return new ValidationResult(false, "Value is required"); + } + else { - if (IsRequired) + return new ValidationResult(true, null); + } + } + + if (!(value is string text)) + { + return new ValidationResult(false, "Input is not a valid text"); + } + + if (string.IsNullOrWhiteSpace(text) && IsRequired) + { + return new ValidationResult(false, "Value is required"); + } + + switch (NumericType) + { + default: + throw new ArgumentException($"Unsupported type {NumericType}"); + + case NumericType.Int: + if (!int.TryParse(text, out int i)) { - return new ValidationResult(false, "Value is required"); + return new ValidationResult(false, "Input is not a valid number"); } - else + + if (!AllowNegative && i < 0) { - return new ValidationResult(true, null); + return new ValidationResult(false, "Input can not be negative"); } - } + + return new ValidationResult(true, null); - if (!(value is string text)) - { - return new ValidationResult(false, "Input is not a valid text"); - } + case NumericType.Uint: + if (!uint.TryParse(text, out uint u)) + { + return new ValidationResult(false, "Input is not a valid positive number"); + } - if (string.IsNullOrWhiteSpace(text) && IsRequired) - { - return new ValidationResult(false, "Value is required"); - } + return new ValidationResult(true, null); - switch (NumericType) - { - default: - throw new ArgumentException($"Unsupported type {NumericType}"); - - case NumericType.Int: - if (!int.TryParse(text, out int i)) - { - return new ValidationResult(false, "Input is not a valid number"); - } - - if (!AllowNegative && i < 0) - { - return new ValidationResult(false, "Input can not be negative"); - } - - return new ValidationResult(true, null); - - case NumericType.Uint: - if (!uint.TryParse(text, out uint u)) - { - return new ValidationResult(false, "Input is not a valid positive number"); - } - - return new ValidationResult(true, null); - - case NumericType.Float: - if (!float.TryParse(text, NumberStyles.Float | NumberStyles.AllowThousands, CultureInfo.InvariantCulture, out float f)) - { - return new ValidationResult(false, "Input is not a valid decimal number"); - } - - if (!AllowNegative && f < 0) - { - return new ValidationResult(false, "Input can not be negative"); - } - - return new ValidationResult(true, null); - } - } + case NumericType.Float: + if (!float.TryParse(text, NumberStyles.Float | NumberStyles.AllowThousands, CultureInfo.InvariantCulture, out float f)) + { + return new ValidationResult(false, "Input is not a valid decimal number"); + } - public bool IsRequired { get; set; } = false; - public bool AllowNegative { get; set; } = true; - public NumericType NumericType { get; set; } = NumericType.Int; + if (!AllowNegative && f < 0) + { + return new ValidationResult(false, "Input can not be negative"); + } + return new ValidationResult(true, null); + } } + + public bool IsRequired { get; set; } = false; + public bool AllowNegative { get; set; } = true; + public NumericType NumericType { get; set; } = NumericType.Int; + } diff --git a/src/SoulSplitter/UI/Validation/TextToRgbHexValidator.cs b/src/SoulSplitter/UI/Validation/TextToRgbHexValidator.cs index 1d1c2c8..bbffddb 100644 --- a/src/SoulSplitter/UI/Validation/TextToRgbHexValidator.cs +++ b/src/SoulSplitter/UI/Validation/TextToRgbHexValidator.cs @@ -18,19 +18,18 @@ using System.Text.RegularExpressions; using System.Windows.Controls; -namespace SoulSplitter.UI.Validation +namespace SoulSplitter.UI.Validation; + +public class TextToRgbHexValidator : ValidationRule { - public class TextToRgbHexValidator : ValidationRule - { - private static readonly Regex RgbValidator = new Regex("^#(?:[0-9a-fA-F]{3}){1,2}$"); + private static readonly Regex RgbValidator = new Regex("^#(?:[0-9a-fA-F]{3}){1,2}$"); - public override ValidationResult Validate(object value, CultureInfo cultureInfo) + public override ValidationResult Validate(object value, CultureInfo cultureInfo) + { + if (value is string hex && RgbValidator.Match(hex).Success) { - if (value is string hex && RgbValidator.Match(hex).Success) - { - return new ValidationResult(true, null); - } - return new ValidationResult(false, $"{value} is not a valid RGB hex"); + return new ValidationResult(true, null); } + return new ValidationResult(false, $"{value} is not a valid RGB hex"); } } diff --git a/src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs b/src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs index fcb607f..c8c697b 100644 --- a/src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs +++ b/src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs @@ -24,384 +24,383 @@ using SoulMemory; using SoulSplitter.Splits; -namespace SoulSplitter.UIv2 +namespace SoulSplitter.UIv2; + +/// +/// Interaction logic for SplitSettingsControl.xaml +/// +public partial class SplitSettingsControl : UserControl, ICustomNotifyPropertyChanged { - /// - /// Interaction logic for SplitSettingsControl.xaml - /// - public partial class SplitSettingsControl : UserControl, ICustomNotifyPropertyChanged + public SplitSettingsControl() { - public SplitSettingsControl() - { - CopyGamePositionCommand = new RelayCommand(CopyGamePosition, (o) => true); - AddSplitCommand = new RelayCommand(AddSplitFunc, CanAddSplit); - RemoveSplitCommand = new RelayCommand(RemoveSplitFunc, CanRemoveSplit); - InitializeComponent(); - } + CopyGamePositionCommand = new RelayCommand(CopyGamePosition, (o) => true); + AddSplitCommand = new RelayCommand(AddSplitFunc, CanAddSplit); + RemoveSplitCommand = new RelayCommand(RemoveSplitFunc, CanRemoveSplit); + InitializeComponent(); + } - #region Add split logic + #region Add split logic - private bool CanAddSplit(object? param) + private bool CanAddSplit(object? param) + { + switch (SelectedSplitType) { - switch (SelectedSplitType) - { - case SplitType.Boss: - return SelectedBoss != null; - - case SplitType.Attribute: - if (Game == Game.DarkSouls1) - { - return SelectedAttribute != null && AttributeLevel > 0 && AttributeLevel <= 99; - } - break; + case SplitType.Boss: + return SelectedBoss != null; - case SplitType.Bonfire: - if (Game == Game.DarkSouls1) - { - return SelectedBonfire != null && SelectedBonfireState != null; - } - break; + case SplitType.Attribute: + if (Game == Game.DarkSouls1) + { + return SelectedAttribute != null && AttributeLevel > 0 && AttributeLevel <= 99; + } + break; - case SplitType.Item: - return SelectedItem != null; + case SplitType.Bonfire: + if (Game == Game.DarkSouls1) + { + return SelectedBonfire != null && SelectedBonfireState != null; + } + break; - case SplitType.Position: - return Position != null; + case SplitType.Item: + return SelectedItem != null; - case SplitType.KnownFlag: - return SelectedKnownFlag != null; + case SplitType.Position: + return Position != null; - case SplitType.Flag: - return FlagDescription != null; + case SplitType.KnownFlag: + return SelectedKnownFlag != null; - default: - throw new InvalidOperationException($"unsupported split type {SelectedSplitType}"); - } - throw new InvalidOperationException($"Unhandled case {SelectedSplitType}"); + case SplitType.Flag: + return FlagDescription != null; + + default: + throw new InvalidOperationException($"unsupported split type {SelectedSplitType}"); } + throw new InvalidOperationException($"Unhandled case {SelectedSplitType}"); + } - private void AddSplitFunc(object? parameter) + private void AddSplitFunc(object? parameter) + { + var flatSplit = new FlatSplit { - var flatSplit = new FlatSplit - { - TimingType = SelectedTimingType, - SplitType = SelectedSplitType - }; - - switch (SelectedSplitType) - { - case SplitType.Boss: - flatSplit.Split = SelectedBoss; - break; + TimingType = SelectedTimingType, + SplitType = SelectedSplitType + }; + + switch (SelectedSplitType) + { + case SplitType.Boss: + flatSplit.Split = SelectedBoss; + break; - case SplitType.Attribute: - if (Game == Game.DarkSouls1) - { - flatSplit.Split = new Splits.DarkSouls1.Attribute(){ AttributeType = (SoulMemory.DarkSouls1.Attribute)SelectedAttribute, Level = AttributeLevel}; - break; - } + case SplitType.Attribute: + if (Game == Game.DarkSouls1) + { + flatSplit.Split = new Splits.DarkSouls1.Attribute(){ AttributeType = (SoulMemory.DarkSouls1.Attribute)SelectedAttribute, Level = AttributeLevel}; break; + } + break; - case SplitType.Bonfire: - if (Game == Game.DarkSouls1) - { - flatSplit.Split = new Splits.DarkSouls1.BonfireState(){ Bonfire = (SoulMemory.DarkSouls1.Bonfire)SelectedBonfire, State = (SoulMemory.DarkSouls1.BonfireState)SelectedBonfireState }; - break; - } + case SplitType.Bonfire: + if (Game == Game.DarkSouls1) + { + flatSplit.Split = new Splits.DarkSouls1.BonfireState(){ Bonfire = (SoulMemory.DarkSouls1.Bonfire)SelectedBonfire, State = (SoulMemory.DarkSouls1.BonfireState)SelectedBonfireState }; break; + } + break; - case SplitType.Item: - flatSplit.Split = SelectedItem; - break; + case SplitType.Item: + flatSplit.Split = SelectedItem; + break; - case SplitType.Position: - flatSplit.Split = new VectorSize{Description = Position.Description, Position = new Vector3f(Position.Position.X, Position.Position.Y, Position.Position.Z), Size = Position.Size}; - break; + case SplitType.Position: + flatSplit.Split = new VectorSize{Description = Position.Description, Position = new Vector3f(Position.Position.X, Position.Position.Y, Position.Position.Z), Size = Position.Size}; + break; - case SplitType.KnownFlag: - flatSplit.Split = SelectedKnownFlag; - break; + case SplitType.KnownFlag: + flatSplit.Split = SelectedKnownFlag; + break; - case SplitType.Flag: - flatSplit.Split = new FlagDescription{Description = FlagDescription.Description, Flag = FlagDescription.Flag}; - break; + case SplitType.Flag: + flatSplit.Split = new FlagDescription{Description = FlagDescription.Description, Flag = FlagDescription.Flag}; + break; - default: - throw new InvalidOperationException($"unsupported split type {SelectedSplitType}"); - } - AddSplit.Execute(flatSplit); + default: + throw new InvalidOperationException($"unsupported split type {SelectedSplitType}"); } + AddSplit.Execute(flatSplit); + } - private bool CanRemoveSplit(object? param) => SplitsViewModel.SelectedSplit != null; - private void RemoveSplitFunc(object? parameter) => RemoveSplit?.Execute(parameter); + private bool CanRemoveSplit(object? param) => SplitsViewModel.SelectedSplit != null; + private void RemoveSplitFunc(object? parameter) => RemoveSplit?.Execute(parameter); - #endregion + #endregion - #region Configuration properties + #region Configuration properties - public Game Game { get; set; } + public Game Game { get; set; } - public static readonly DependencyProperty BooleanFlagsDependencyProperty = - DependencyProperty.Register(nameof(BooleanFlags), typeof(ObservableCollection), typeof(SplitSettingsControl), - new FrameworkPropertyMetadata(new ObservableCollection(), FrameworkPropertyMetadataOptions.None)); + public static readonly DependencyProperty BooleanFlagsDependencyProperty = + DependencyProperty.Register(nameof(BooleanFlags), typeof(ObservableCollection), typeof(SplitSettingsControl), + new FrameworkPropertyMetadata(new ObservableCollection(), FrameworkPropertyMetadataOptions.None)); - public ObservableCollection BooleanFlags - { - get => (ObservableCollection)GetValue(BooleanFlagsDependencyProperty); - set => SetValue(BooleanFlagsDependencyProperty, value); - } + public ObservableCollection BooleanFlags + { + get => (ObservableCollection)GetValue(BooleanFlagsDependencyProperty); + set => SetValue(BooleanFlagsDependencyProperty, value); + } - public static readonly DependencyProperty TimingTypeDependencyProperty = - DependencyProperty.Register(nameof(TimingTypes), typeof(ObservableCollection>), typeof(SplitSettingsControl), - new FrameworkPropertyMetadata(new ObservableCollection>(), FrameworkPropertyMetadataOptions.None)); + public static readonly DependencyProperty TimingTypeDependencyProperty = + DependencyProperty.Register(nameof(TimingTypes), typeof(ObservableCollection>), typeof(SplitSettingsControl), + new FrameworkPropertyMetadata(new ObservableCollection>(), FrameworkPropertyMetadataOptions.None)); - public ObservableCollection> TimingTypes - { - get => (ObservableCollection>)GetValue(TimingTypeDependencyProperty); - set => SetValue(TimingTypeDependencyProperty, value); - } + public ObservableCollection> TimingTypes + { + get => (ObservableCollection>)GetValue(TimingTypeDependencyProperty); + set => SetValue(TimingTypeDependencyProperty, value); + } - public static readonly DependencyProperty SplitTypeDependencyProperty = - DependencyProperty.Register(nameof(SplitTypes), typeof(ObservableCollection>), typeof(SplitSettingsControl), - new FrameworkPropertyMetadata(new ObservableCollection>(), FrameworkPropertyMetadataOptions.None)); + public static readonly DependencyProperty SplitTypeDependencyProperty = + DependencyProperty.Register(nameof(SplitTypes), typeof(ObservableCollection>), typeof(SplitSettingsControl), + new FrameworkPropertyMetadata(new ObservableCollection>(), FrameworkPropertyMetadataOptions.None)); - public ObservableCollection> SplitTypes - { - get => (ObservableCollection>)GetValue(SplitTypeDependencyProperty); - set => SetValue(SplitTypeDependencyProperty, value); - } + public ObservableCollection> SplitTypes + { + get => (ObservableCollection>)GetValue(SplitTypeDependencyProperty); + set => SetValue(SplitTypeDependencyProperty, value); + } - public static readonly DependencyProperty BossesDependencyProperty = - DependencyProperty.Register(nameof(Bosses), typeof(IList), typeof(SplitSettingsControl), - new FrameworkPropertyMetadata(new ObservableCollection>(), FrameworkPropertyMetadataOptions.None)); + public static readonly DependencyProperty BossesDependencyProperty = + DependencyProperty.Register(nameof(Bosses), typeof(IList), typeof(SplitSettingsControl), + new FrameworkPropertyMetadata(new ObservableCollection>(), FrameworkPropertyMetadataOptions.None)); - public ObservableCollection> Bosses - { - get => (ObservableCollection>)GetValue(BossesDependencyProperty); - set => SetValue(BossesDependencyProperty, value); - } + public ObservableCollection> Bosses + { + get => (ObservableCollection>)GetValue(BossesDependencyProperty); + set => SetValue(BossesDependencyProperty, value); + } - public static readonly DependencyProperty KnownFlagsDependencyProperty = - DependencyProperty.Register(nameof(KnownFlags), typeof(IList), typeof(SplitSettingsControl), - new FrameworkPropertyMetadata(new ObservableCollection>(), FrameworkPropertyMetadataOptions.None)); + public static readonly DependencyProperty KnownFlagsDependencyProperty = + DependencyProperty.Register(nameof(KnownFlags), typeof(IList), typeof(SplitSettingsControl), + new FrameworkPropertyMetadata(new ObservableCollection>(), FrameworkPropertyMetadataOptions.None)); - public ObservableCollection> KnownFlags - { - get => (ObservableCollection>)GetValue(KnownFlagsDependencyProperty); - set => SetValue(KnownFlagsDependencyProperty, value); - } + public ObservableCollection> KnownFlags + { + get => (ObservableCollection>)GetValue(KnownFlagsDependencyProperty); + set => SetValue(KnownFlagsDependencyProperty, value); + } - public static readonly DependencyProperty AttributesDependencyProperty = - DependencyProperty.Register(nameof(Attributes), typeof(IList), typeof(SplitSettingsControl), - new FrameworkPropertyMetadata(new ObservableCollection>(), FrameworkPropertyMetadataOptions.None)); + public static readonly DependencyProperty AttributesDependencyProperty = + DependencyProperty.Register(nameof(Attributes), typeof(IList), typeof(SplitSettingsControl), + new FrameworkPropertyMetadata(new ObservableCollection>(), FrameworkPropertyMetadataOptions.None)); - public ObservableCollection> Attributes - { - get => (ObservableCollection>)GetValue(AttributesDependencyProperty); - set => SetValue(AttributesDependencyProperty, value); - } + public ObservableCollection> Attributes + { + get => (ObservableCollection>)GetValue(AttributesDependencyProperty); + set => SetValue(AttributesDependencyProperty, value); + } - public static readonly DependencyProperty BonfiresDependencyProperty = - DependencyProperty.Register(nameof(Bonfires), typeof(IList), typeof(SplitSettingsControl), - new FrameworkPropertyMetadata(new ObservableCollection>(), FrameworkPropertyMetadataOptions.None)); + public static readonly DependencyProperty BonfiresDependencyProperty = + DependencyProperty.Register(nameof(Bonfires), typeof(IList), typeof(SplitSettingsControl), + new FrameworkPropertyMetadata(new ObservableCollection>(), FrameworkPropertyMetadataOptions.None)); - public ObservableCollection> Bonfires - { - get => (ObservableCollection>)GetValue(BonfiresDependencyProperty); - set => SetValue(BonfiresDependencyProperty, value); - } + public ObservableCollection> Bonfires + { + get => (ObservableCollection>)GetValue(BonfiresDependencyProperty); + set => SetValue(BonfiresDependencyProperty, value); + } - public static readonly DependencyProperty SplitsViewModelDependencyProperty = - DependencyProperty.Register(nameof(SplitsViewModel), typeof(SplitsViewModel), typeof(SplitSettingsControl), - new FrameworkPropertyMetadata(new SplitsViewModel(), FrameworkPropertyMetadataOptions.None)); + public static readonly DependencyProperty SplitsViewModelDependencyProperty = + DependencyProperty.Register(nameof(SplitsViewModel), typeof(SplitsViewModel), typeof(SplitSettingsControl), + new FrameworkPropertyMetadata(new SplitsViewModel(), FrameworkPropertyMetadataOptions.None)); - public SplitsViewModel SplitsViewModel - { - get => (SplitsViewModel)GetValue(SplitsViewModelDependencyProperty); - set => SetValue(SplitsViewModelDependencyProperty, value); - } + public SplitsViewModel SplitsViewModel + { + get => (SplitsViewModel)GetValue(SplitsViewModelDependencyProperty); + set => SetValue(SplitsViewModelDependencyProperty, value); + } - public static readonly DependencyProperty ItemsDependencyProperty = - DependencyProperty.Register(nameof(Items), typeof(IList), typeof(SplitSettingsControl), - new FrameworkPropertyMetadata(new ObservableCollection>(), FrameworkPropertyMetadataOptions.None)); - - public ObservableCollection> Items - { - get => (ObservableCollection>)GetValue(ItemsDependencyProperty); - set => SetValue(ItemsDependencyProperty, value); - } + public static readonly DependencyProperty ItemsDependencyProperty = + DependencyProperty.Register(nameof(Items), typeof(IList), typeof(SplitSettingsControl), + new FrameworkPropertyMetadata(new ObservableCollection>(), FrameworkPropertyMetadataOptions.None)); + + public ObservableCollection> Items + { + get => (ObservableCollection>)GetValue(ItemsDependencyProperty); + set => SetValue(ItemsDependencyProperty, value); + } - public static readonly DependencyProperty GamePositionDependencyProperty = - DependencyProperty.Register(nameof(GamePosition), typeof(Vector3f), typeof(SplitSettingsControl), - new FrameworkPropertyMetadata(new Vector3f(), FrameworkPropertyMetadataOptions.None)); + public static readonly DependencyProperty GamePositionDependencyProperty = + DependencyProperty.Register(nameof(GamePosition), typeof(Vector3f), typeof(SplitSettingsControl), + new FrameworkPropertyMetadata(new Vector3f(), FrameworkPropertyMetadataOptions.None)); - public Vector3f GamePosition - { - get => (Vector3f)GetValue(GamePositionDependencyProperty); - set => SetValue(GamePositionDependencyProperty, value); - } + public Vector3f GamePosition + { + get => (Vector3f)GetValue(GamePositionDependencyProperty); + set => SetValue(GamePositionDependencyProperty, value); + } - public static readonly DependencyProperty AddSplitDependencyProperty = - DependencyProperty.Register(nameof(AddSplit), typeof(RelayCommand), typeof(SplitSettingsControl), - new FrameworkPropertyMetadata(null, FrameworkPropertyMetadataOptions.None)); + public static readonly DependencyProperty AddSplitDependencyProperty = + DependencyProperty.Register(nameof(AddSplit), typeof(RelayCommand), typeof(SplitSettingsControl), + new FrameworkPropertyMetadata(null, FrameworkPropertyMetadataOptions.None)); - public RelayCommand AddSplit - { - get => (RelayCommand)GetValue(AddSplitDependencyProperty); - set => SetValue(AddSplitDependencyProperty, value); - } + public RelayCommand AddSplit + { + get => (RelayCommand)GetValue(AddSplitDependencyProperty); + set => SetValue(AddSplitDependencyProperty, value); + } - public static readonly DependencyProperty RemoveSplitDependencyProperty = - DependencyProperty.Register(nameof(RemoveSplit), typeof(RelayCommand), typeof(SplitSettingsControl), - new FrameworkPropertyMetadata(null, FrameworkPropertyMetadataOptions.None)); + public static readonly DependencyProperty RemoveSplitDependencyProperty = + DependencyProperty.Register(nameof(RemoveSplit), typeof(RelayCommand), typeof(SplitSettingsControl), + new FrameworkPropertyMetadata(null, FrameworkPropertyMetadataOptions.None)); - public RelayCommand RemoveSplit - { - get => (RelayCommand)GetValue(RemoveSplitDependencyProperty); - set => SetValue(RemoveSplitDependencyProperty, value); - } + public RelayCommand RemoveSplit + { + get => (RelayCommand)GetValue(RemoveSplitDependencyProperty); + set => SetValue(RemoveSplitDependencyProperty, value); + } - #endregion + #endregion - #region Commands + #region Commands - public RelayCommand AddSplitCommand - { - get => _addSplitCommand; - set => this.SetField(ref _addSplitCommand, value); - } - private RelayCommand _addSplitCommand = null!; + public RelayCommand AddSplitCommand + { + get => _addSplitCommand; + set => this.SetField(ref _addSplitCommand, value); + } + private RelayCommand _addSplitCommand = null!; - public RelayCommand RemoveSplitCommand - { - get => _removeSplitCommand; - set => this.SetField(ref _removeSplitCommand, value); - } - private RelayCommand _removeSplitCommand = null!; + public RelayCommand RemoveSplitCommand + { + get => _removeSplitCommand; + set => this.SetField(ref _removeSplitCommand, value); + } + private RelayCommand _removeSplitCommand = null!; - public RelayCommand CopyGamePositionCommand - { - get => _copyGamePositionCommand; - set => this.SetField(ref _copyGamePositionCommand, value); - } - private RelayCommand _copyGamePositionCommand = null!; + public RelayCommand CopyGamePositionCommand + { + get => _copyGamePositionCommand; + set => this.SetField(ref _copyGamePositionCommand, value); + } + private RelayCommand _copyGamePositionCommand = null!; - private void CopyGamePosition(object? param) - { - Position.Position = GamePosition.Clone(); - } - #endregion + private void CopyGamePosition(object? param) + { + Position.Position = GamePosition.Clone(); + } + #endregion - #region Selected properties + #region Selected properties - public TimingType SelectedTimingType - { - get => _selectedTimingType; - set => this.SetField(ref _selectedTimingType, value); - } - private TimingType _selectedTimingType = TimingType.Immediate; + public TimingType SelectedTimingType + { + get => _selectedTimingType; + set => this.SetField(ref _selectedTimingType, value); + } + private TimingType _selectedTimingType = TimingType.Immediate; - public SplitType SelectedSplitType - { - get => _selectedSplitType; - set => this.SetField(ref _selectedSplitType, value); - } - private SplitType _selectedSplitType = SplitType.Boss; + public SplitType SelectedSplitType + { + get => _selectedSplitType; + set => this.SetField(ref _selectedSplitType, value); + } + private SplitType _selectedSplitType = SplitType.Boss; - public Enum SelectedBoss - { - get => _selectedBoss; - set => this.SetField(ref _selectedBoss, value); - } - private Enum _selectedBoss = null!; + public Enum SelectedBoss + { + get => _selectedBoss; + set => this.SetField(ref _selectedBoss, value); + } + private Enum _selectedBoss = null!; - public Enum SelectedKnownFlag - { - get => _selectedKnownFlag; - set => this.SetField(ref _selectedKnownFlag, value); - } - private Enum _selectedKnownFlag = null!; + public Enum SelectedKnownFlag + { + get => _selectedKnownFlag; + set => this.SetField(ref _selectedKnownFlag, value); + } + private Enum _selectedKnownFlag = null!; - public Enum SelectedBonfire - { - get => _selectedBonfire; - set => this.SetField(ref _selectedBonfire, value); - } - private Enum _selectedBonfire = null!; + public Enum SelectedBonfire + { + get => _selectedBonfire; + set => this.SetField(ref _selectedBonfire, value); + } + private Enum _selectedBonfire = null!; - //For dark souls 1 specifically - public Enum SelectedBonfireState - { - get => _selectedBonfireState; - set => this.SetField(ref _selectedBonfireState, value); - } - private Enum _selectedBonfireState = null!; + //For dark souls 1 specifically + public Enum SelectedBonfireState + { + get => _selectedBonfireState; + set => this.SetField(ref _selectedBonfireState, value); + } + private Enum _selectedBonfireState = null!; - public Enum SelectedAttribute - { - get => _selectedAttribute; - set => this.SetField(ref _selectedAttribute, value); - } - private Enum _selectedAttribute = null!; + public Enum SelectedAttribute + { + get => _selectedAttribute; + set => this.SetField(ref _selectedAttribute, value); + } + private Enum _selectedAttribute = null!; - public int AttributeLevel - { - get => _attributeLevel; - set => this.SetField(ref _attributeLevel, value); - } - private int _attributeLevel = 10; + public int AttributeLevel + { + get => _attributeLevel; + set => this.SetField(ref _attributeLevel, value); + } + private int _attributeLevel = 10; - public Enum SelectedItem - { - get => _selectedItem; - set => this.SetField(ref _selectedItem, value); - } - private Enum _selectedItem = null!; + public Enum SelectedItem + { + get => _selectedItem; + set => this.SetField(ref _selectedItem, value); + } + private Enum _selectedItem = null!; - public VectorSize Position - { - get => _position; - set => this.SetField(ref _position, value); - } - private VectorSize _position = new VectorSize(); + public VectorSize Position + { + get => _position; + set => this.SetField(ref _position, value); + } + private VectorSize _position = new VectorSize(); - public FlagDescription FlagDescription - { - get => _flagDescription; - set => this.SetField(ref _flagDescription, value); - } - private FlagDescription _flagDescription = new FlagDescription(); - #endregion + public FlagDescription FlagDescription + { + get => _flagDescription; + set => this.SetField(ref _flagDescription, value); + } + private FlagDescription _flagDescription = new FlagDescription(); + #endregion - private void TreeView_OnSelectedItemChanged(object sender, RoutedPropertyChangedEventArgs e) + private void TreeView_OnSelectedItemChanged(object sender, RoutedPropertyChangedEventArgs e) + { + if (sender is TreeView treeView) { - if (sender is TreeView treeView) + if (treeView.SelectedItem is SplitViewModel splitViewModel) { - if (treeView.SelectedItem is SplitViewModel splitViewModel) - { - SplitsViewModel.SelectedSplit = splitViewModel; - } - else - { - SplitsViewModel.SelectedSplit = null; - } + SplitsViewModel.SelectedSplit = splitViewModel; + } + else + { + SplitsViewModel.SelectedSplit = null; } } + } - #region ICustomNotifyPropertyChanged + #region ICustomNotifyPropertyChanged - public event PropertyChangedEventHandler? PropertyChanged; + public event PropertyChangedEventHandler? PropertyChanged; - public void InvokePropertyChanged(string propertyName) - { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); - } + public void InvokePropertyChanged(string propertyName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } - #endregion + #endregion - } } diff --git a/src/SoulSplitter/VersionHelper.cs b/src/SoulSplitter/VersionHelper.cs index 7a3b5ea..c0d1d58 100644 --- a/src/SoulSplitter/VersionHelper.cs +++ b/src/SoulSplitter/VersionHelper.cs @@ -16,17 +16,16 @@ using System; -namespace SoulSplitter +namespace SoulSplitter; + +internal static class VersionHelper { - internal static class VersionHelper - { - public static Version Version - { - get - { - var version = System.Diagnostics.FileVersionInfo.GetVersionInfo(System.Reflection.Assembly.GetExecutingAssembly().Location); - return new Version(version.FileMajorPart, version.FileMinorPart, version.FileBuildPart); - } - } + public static Version Version + { + get + { + var version = System.Diagnostics.FileVersionInfo.GetVersionInfo(System.Reflection.Assembly.GetExecutingAssembly().Location); + return new Version(version.FileMajorPart, version.FileMinorPart, version.FileBuildPart); + } } } diff --git a/src/SoulSplitter/ViewModels/Games/ArmoredCore6ViewModel.cs b/src/SoulSplitter/ViewModels/Games/ArmoredCore6ViewModel.cs index 65b6b7d..5388ae6 100644 --- a/src/SoulSplitter/ViewModels/Games/ArmoredCore6ViewModel.cs +++ b/src/SoulSplitter/ViewModels/Games/ArmoredCore6ViewModel.cs @@ -18,53 +18,52 @@ using SoulSplitter.Splits; using SoulSplitter.UI.Generic; -namespace SoulSplitter.ViewModels.Games +namespace SoulSplitter.ViewModels.Games; + +public class ArmoredCore6ViewModel : BaseViewModel { - public class ArmoredCore6ViewModel : BaseViewModel + public ArmoredCore6ViewModel() { - public ArmoredCore6ViewModel() - { - AddSplitCommand = new RelayCommand(AddSplit, CanAddSplit); - RemoveSplitCommand = new RelayCommand(RemoveSplit); - } + AddSplitCommand = new RelayCommand(AddSplit, CanAddSplit); + RemoveSplitCommand = new RelayCommand(RemoveSplit); + } - private bool CanAddSplit(object? param) + private bool CanAddSplit(object? param) + { + if (param is FlatSplit) { - if (param is FlatSplit) - { - return true; - } - - return false; + return true; } - private void AddSplit(object? param) - { - if (param is FlatSplit flatSplit) - { - SplitsViewModel.AddSplit(flatSplit.TimingType, flatSplit.SplitType, flatSplit.Split); - } - } + return false; + } - private void RemoveSplit(object? o) + private void AddSplit(object? param) + { + if (param is FlatSplit flatSplit) { - SplitsViewModel.RemoveSplit(); + SplitsViewModel.AddSplit(flatSplit.TimingType, flatSplit.SplitType, flatSplit.Split); } + } + private void RemoveSplit(object? o) + { + SplitsViewModel.RemoveSplit(); + } - #region Static UI source data ============================================================================================================================================ - public static ObservableCollection> TimingTypes { get; set; } = new ObservableCollection>() - { - new EnumFlagViewModel(TimingType.Immediate), - new EnumFlagViewModel(TimingType.OnLoading), - }; + #region Static UI source data ============================================================================================================================================ - public static ObservableCollection> SplitTypes { get; set; } = new ObservableCollection>() - { - new EnumFlagViewModel(SplitType.Flag), - }; + public static ObservableCollection> TimingTypes { get; set; } = new ObservableCollection>() + { + new EnumFlagViewModel(TimingType.Immediate), + new EnumFlagViewModel(TimingType.OnLoading), + }; - #endregion - } + public static ObservableCollection> SplitTypes { get; set; } = new ObservableCollection>() + { + new EnumFlagViewModel(SplitType.Flag), + }; + + #endregion } diff --git a/src/SoulSplitter/soulmemory-rs/SoulMemoryRs.cs b/src/SoulSplitter/soulmemory-rs/SoulMemoryRs.cs index c71a712..7ee6bd4 100644 --- a/src/SoulSplitter/soulmemory-rs/SoulMemoryRs.cs +++ b/src/SoulSplitter/soulmemory-rs/SoulMemoryRs.cs @@ -21,36 +21,35 @@ using SoulMemory.soulmods; using SoulMemory.Native; -namespace SoulSplitter.soulmemory_rs +namespace SoulSplitter.soulmemory_rs; + +public static class SoulMemoryRs { - public static class SoulMemoryRs + public static void Launch() { - public static void Launch() + var games = new List() { - var games = new List() - { - "darksouls", - "darksoulsremastered", - "darksoulsii", - "darksoulsiii", - "sekiro", - "eldenring", - "armoredcore6", - }; + "darksouls", + "darksoulsremastered", + "darksoulsii", + "darksoulsiii", + "sekiro", + "eldenring", + "armoredcore6", + }; - var process = Process.GetProcesses().FirstOrDefault(p => games.Contains(p.ProcessName.ToLower())); - if (process == null) - { - return; - } + var process = Process.GetProcesses().FirstOrDefault(p => games.Contains(p.ProcessName.ToLower())); + if (process == null) + { + return; + } - var x64 = process.Is64Bit().Unwrap(); + var x64 = process.Is64Bit().Unwrap(); - var launcherPath = Path.Combine(Path.GetDirectoryName(typeof(Soulmods).Assembly.Location), $"{(x64 ? "launcher_x64.exe" : "launcher_x86.exe")}"); - var dllPath = Path.Combine(Path.GetDirectoryName(typeof(Soulmods).Assembly.Location), $"{(x64 ? "soulmemory_rs_x64.dll" : "soulmemory_rs_x86.dll")}"); - var args = $"--processname={process.ProcessName} --dllpath=\"{dllPath}\""; + var launcherPath = Path.Combine(Path.GetDirectoryName(typeof(Soulmods).Assembly.Location), $"{(x64 ? "launcher_x64.exe" : "launcher_x86.exe")}"); + var dllPath = Path.Combine(Path.GetDirectoryName(typeof(Soulmods).Assembly.Location), $"{(x64 ? "soulmemory_rs_x64.dll" : "soulmemory_rs_x86.dll")}"); + var args = $"--processname={process.ProcessName} --dllpath=\"{dllPath}\""; - Process.Start(launcherPath, args); - } + Process.Start(launcherPath, args); } } diff --git a/tests/SoulMemory.Tests/ArmoredCore6Tests.cs b/tests/SoulMemory.Tests/ArmoredCore6Tests.cs index af1a6f0..8d1f251 100644 --- a/tests/SoulMemory.Tests/ArmoredCore6Tests.cs +++ b/tests/SoulMemory.Tests/ArmoredCore6Tests.cs @@ -21,290 +21,289 @@ using SoulMemory.MemoryV2.Process; using SoulMemory.Tests.Mocks; -namespace SoulMemory.Tests +namespace SoulMemory.Tests; + +[TestClass] +public class ArmoredCore6Tests { - [TestClass] - public class ArmoredCore6Tests + [TestMethod] + [DataRow(RefreshErrorReason.ProcessNotRunning)] + [DataRow(RefreshErrorReason.ScansFailed)] + [DataRow(RefreshErrorReason.AccessDenied)] + [DataRow(RefreshErrorReason.ModLoadFailed)] + [DataRow(RefreshErrorReason.MainModuleNull)] + [DataRow(RefreshErrorReason.ProcessExited)] + public void Refresh_Error(RefreshErrorReason refreshError) + { + var processHookMock = new Mock(); + processHookMock.Setup(i => i.PointerTreeBuilder).Returns(new PointerTreeBuilder()); + processHookMock.Setup(i => i.TryRefresh()).Returns(Result.Err(new RefreshError(refreshError))); + + var ac6 = new ArmoredCore6.ArmoredCore6(processHookMock.Object); + Assert.AreEqual(refreshError, ac6.TryRefresh().GetErr().Reason); + + processHookMock.Setup(i => i.TryRefresh()).Returns(Result.Ok()); + Assert.IsTrue(ac6.TryRefresh().IsOk); + } + + [TestMethod] + public void Refresh_Success() + { + var processHookMock = new Mock(); + processHookMock.Setup(i => i.PointerTreeBuilder).Returns(new PointerTreeBuilder()); + processHookMock.Setup(i => i.TryRefresh()).Returns(Result.Ok()); + + var ac6 = new ArmoredCore6.ArmoredCore6(processHookMock.Object); + Assert.IsTrue(ac6.TryRefresh().IsOk); + } + + [TestMethod] + public void ReadIgt() { - [TestMethod] - [DataRow(RefreshErrorReason.ProcessNotRunning)] - [DataRow(RefreshErrorReason.ScansFailed)] - [DataRow(RefreshErrorReason.AccessDenied)] - [DataRow(RefreshErrorReason.ModLoadFailed)] - [DataRow(RefreshErrorReason.MainModuleNull)] - [DataRow(RefreshErrorReason.ProcessExited)] - public void Refresh_Error(RefreshErrorReason refreshError) - { - var processHookMock = new Mock(); - processHookMock.Setup(i => i.PointerTreeBuilder).Returns(new PointerTreeBuilder()); - processHookMock.Setup(i => i.TryRefresh()).Returns(Result.Err(new RefreshError(refreshError))); - - var ac6 = new ArmoredCore6.ArmoredCore6(processHookMock.Object); - Assert.AreEqual(refreshError, ac6.TryRefresh().GetErr().Reason); - - processHookMock.Setup(i => i.TryRefresh()).Returns(Result.Ok()); - Assert.IsTrue(ac6.TryRefresh().IsOk); - } - - [TestMethod] - public void Refresh_Success() - { - var processHookMock = new Mock(); - processHookMock.Setup(i => i.PointerTreeBuilder).Returns(new PointerTreeBuilder()); - processHookMock.Setup(i => i.TryRefresh()).Returns(Result.Ok()); - - var ac6 = new ArmoredCore6.ArmoredCore6(processHookMock.Object); - Assert.IsTrue(ac6.TryRefresh().IsOk); - } + var mock = new ProcessHookMock(); + mock.SetPointer("FD4Time", 0, 0x7FF46F5C04B0); - [TestMethod] - public void ReadIgt() - { - var mock = new ProcessHookMock(); - mock.SetPointer("FD4Time", 0, 0x7FF46F5C04B0); - - var ac6 = new ArmoredCore6.ArmoredCore6(mock); - Assert.IsTrue(ac6.TryRefresh().IsOk); - - mock.WriteInt32(0x7FF46F5C04B0 + 0x114, 504123); - Assert.AreEqual(504123, ac6.GetInGameTimeMilliseconds()); - - mock.WriteInt32(0x7FF46F5C04B0 + 0x114, 31535); - Assert.AreEqual(31535, ac6.GetInGameTimeMilliseconds()); - } - - [TestMethod] - public void WriteIgt() - { - var mock = new ProcessHookMock(); - mock.SetPointer("FD4Time", 0, 0x7FF46F5C04B0); - - var ac6 = new ArmoredCore6.ArmoredCore6(mock); - Assert.IsTrue(ac6.TryRefresh().IsOk); - - ac6.WriteInGameTimeMilliseconds(40); - Assert.AreEqual(40, ac6.GetInGameTimeMilliseconds()); - - ac6.WriteInGameTimeMilliseconds(70); - Assert.AreEqual(70, ac6.GetInGameTimeMilliseconds()); - } - - [TestMethod] - public void ReadIsLoading() - { - var mock = new ProcessHookMock(); - mock.SetPointer("CSMenuMan", 0, 0x7FF46F5C04B0); - - var ac6 = new ArmoredCore6.ArmoredCore6(mock); - Assert.IsTrue(ac6.TryRefresh().IsOk); - - mock.WriteInt32(0x7FF46F5C04B0 + 0x8e4, 1); - Assert.IsTrue(ac6.IsLoadingScreenVisible()); - - mock.WriteInt32(0x7FF46F5C04B0 + 0x8e4, 0); - Assert.IsFalse(ac6.IsLoadingScreenVisible()); - } - - #region ReadEventFlag ========================================================================================== - - [TestMethod] - public void ReadEventFlag_Loop_Exit_With_Error() - { - var eventFlagManPtr = 0x7FF46F5C04B0; - var currentElementPtr = 0x7FF46F600000; - var currentSubElementPtr = 0x7FF46F900000; - var currentSubElementPtr2 = 0x7FF46FA00000; - var currentSubElementPtr3 = 0x7FF46FC00000; - - - var mock = new ProcessHookMock(); - mock.SetPointer("CSEventFlagMan", 0, eventFlagManPtr); - - mock.WriteInt32(eventFlagManPtr + 0x1c, 1000); - mock.WriteInt64(eventFlagManPtr + 0x38, currentElementPtr);//current element - mock.WriteInt64(currentElementPtr + 0x8 , currentSubElementPtr);//current sub element - - //while loop first branch - mock.WriteByte(currentSubElementPtr + 0x19, 0); - mock.WriteInt32(currentSubElementPtr + 0x20, 2103506); - mock.WriteInt64(currentSubElementPtr + 0x0, currentSubElementPtr2); - - //while loop 2nd branch - mock.WriteByte(currentSubElementPtr2 + 0x19, 0); - mock.WriteInt32(currentSubElementPtr2 + 0x20, 100); - mock.WriteInt64(currentSubElementPtr2 + 0x10, currentSubElementPtr3); - - mock.WriteByte(currentSubElementPtr3 + 0x19, 1); //end loop - - //Category read will return with error, resulting in false evaluation of the flag - - var ac6 = new ArmoredCore6.ArmoredCore6(mock); - Assert.IsTrue(ac6.TryRefresh().IsOk); - - Assert.IsFalse(ac6.ReadEventFlag(2103505405)); - } - - [TestMethod] - public void ReadEventFlag_Pointers_Resolve_To_Same_Address() - { - var eventFlagManPtr = 0x7FF46F5C04B0; - var currentElementPtr = 0x7FF46F600000; - - var mock = new ProcessHookMock(); - mock.SetPointer("CSEventFlagMan", 0, eventFlagManPtr); - - mock.WriteInt32(eventFlagManPtr + 0x1c, 1000); - mock.WriteInt64(eventFlagManPtr + 0x38, currentElementPtr);//current element - mock.WriteInt64(currentElementPtr + 0x8, currentElementPtr);//current sub element - - //Skip loop - mock.WriteByte(currentElementPtr + 0x19, 1); - - //skip category exit - mock.WriteInt32(currentElementPtr + 0x20, 50); - - //Pointers resolve to the same address, read will return with error, resulting in false evaluation of the flag - - var ac6 = new ArmoredCore6.ArmoredCore6(mock); - Assert.IsTrue(ac6.TryRefresh().IsOk); - - Assert.IsFalse(ac6.ReadEventFlag(2103505405)); - } - - - [TestMethod] - public void ReadEventFlag_MysteryValue_Early_Exit() - { - var eventFlagManPtr = 0x7FF46F5C04B0; - var currentElementPtr = 0x7FF46F600000; - var currentSubElementPtr = 0x7FF46F900000; - - var mock = new ProcessHookMock(); - mock.SetPointer("CSEventFlagMan", 0, eventFlagManPtr); - - mock.WriteInt32(eventFlagManPtr + 0x1c, 1000); - mock.WriteInt64(eventFlagManPtr + 0x38, currentElementPtr);//current element - mock.WriteInt64(currentElementPtr + 0x8, currentSubElementPtr);//current sub element - - //Skip loop - mock.WriteByte(currentSubElementPtr + 0x19, 1); - - //skip category exit - mock.WriteInt32(currentElementPtr + 0x20, 50); - - //early exit - mock.WriteInt32(currentElementPtr + 0x28, 2); - - var ac6 = new ArmoredCore6.ArmoredCore6(mock); - Assert.IsTrue(ac6.TryRefresh().IsOk); - - Assert.IsFalse(ac6.ReadEventFlag(2103505405)); - } - - [TestMethod] - public void ReadEventFlag_MysteryValue_Offset_0x30_0() - { - var eventFlagManPtr = 0x7FF46F5C04B0; - var currentElementPtr = 0x7FF46F600000; - var currentSubElementPtr = 0x7FF46F900000; - var calculatedPtr = 0x7FF46FA00000; - - var mock = new ProcessHookMock(); - mock.SetPointer("CSEventFlagMan", 0, eventFlagManPtr); - - mock.WriteInt32(eventFlagManPtr + 0x1c, 1000); - mock.WriteInt64(eventFlagManPtr + 0x38, currentElementPtr);//current element - mock.WriteInt64(currentElementPtr + 0x8, currentSubElementPtr);//current sub element + var ac6 = new ArmoredCore6.ArmoredCore6(mock); + Assert.IsTrue(ac6.TryRefresh().IsOk); + + mock.WriteInt32(0x7FF46F5C04B0 + 0x114, 504123); + Assert.AreEqual(504123, ac6.GetInGameTimeMilliseconds()); + + mock.WriteInt32(0x7FF46F5C04B0 + 0x114, 31535); + Assert.AreEqual(31535, ac6.GetInGameTimeMilliseconds()); + } + + [TestMethod] + public void WriteIgt() + { + var mock = new ProcessHookMock(); + mock.SetPointer("FD4Time", 0, 0x7FF46F5C04B0); + + var ac6 = new ArmoredCore6.ArmoredCore6(mock); + Assert.IsTrue(ac6.TryRefresh().IsOk); + + ac6.WriteInGameTimeMilliseconds(40); + Assert.AreEqual(40, ac6.GetInGameTimeMilliseconds()); + + ac6.WriteInGameTimeMilliseconds(70); + Assert.AreEqual(70, ac6.GetInGameTimeMilliseconds()); + } + + [TestMethod] + public void ReadIsLoading() + { + var mock = new ProcessHookMock(); + mock.SetPointer("CSMenuMan", 0, 0x7FF46F5C04B0); + + var ac6 = new ArmoredCore6.ArmoredCore6(mock); + Assert.IsTrue(ac6.TryRefresh().IsOk); + + mock.WriteInt32(0x7FF46F5C04B0 + 0x8e4, 1); + Assert.IsTrue(ac6.IsLoadingScreenVisible()); + + mock.WriteInt32(0x7FF46F5C04B0 + 0x8e4, 0); + Assert.IsFalse(ac6.IsLoadingScreenVisible()); + } + + #region ReadEventFlag ========================================================================================== + + [TestMethod] + public void ReadEventFlag_Loop_Exit_With_Error() + { + var eventFlagManPtr = 0x7FF46F5C04B0; + var currentElementPtr = 0x7FF46F600000; + var currentSubElementPtr = 0x7FF46F900000; + var currentSubElementPtr2 = 0x7FF46FA00000; + var currentSubElementPtr3 = 0x7FF46FC00000; - //Skip loop - mock.WriteByte(currentSubElementPtr + 0x19, 1); - - //skip category exit - mock.WriteInt32(currentElementPtr + 0x20, 50); - - mock.WriteInt32(currentElementPtr + 0x28, 6); - mock.WriteInt64(currentElementPtr + 0x30, calculatedPtr); - - mock.WriteInt32(calculatedPtr + 50, 0); - var ac6 = new ArmoredCore6.ArmoredCore6(mock); - Assert.IsTrue(ac6.TryRefresh().IsOk); + var mock = new ProcessHookMock(); + mock.SetPointer("CSEventFlagMan", 0, eventFlagManPtr); - Assert.IsFalse(ac6.ReadEventFlag(2103505405)); - } + mock.WriteInt32(eventFlagManPtr + 0x1c, 1000); + mock.WriteInt64(eventFlagManPtr + 0x38, currentElementPtr);//current element + mock.WriteInt64(currentElementPtr + 0x8 , currentSubElementPtr);//current sub element + + //while loop first branch + mock.WriteByte(currentSubElementPtr + 0x19, 0); + mock.WriteInt32(currentSubElementPtr + 0x20, 2103506); + mock.WriteInt64(currentSubElementPtr + 0x0, currentSubElementPtr2); - [TestMethod] - public void ReadEventFlag_MysteryValue_Offset_0x30_4() - { - var eventFlagManPtr = 0x7FF46F5C04B0; - var currentElementPtr = 0x7FF46F600000; - var currentSubElementPtr = 0x7FF46F900000; - var calculatedPtr = 0x7FF46FA00000; + //while loop 2nd branch + mock.WriteByte(currentSubElementPtr2 + 0x19, 0); + mock.WriteInt32(currentSubElementPtr2 + 0x20, 100); + mock.WriteInt64(currentSubElementPtr2 + 0x10, currentSubElementPtr3); - var mock = new ProcessHookMock(); - mock.SetPointer("CSEventFlagMan", 0, eventFlagManPtr); + mock.WriteByte(currentSubElementPtr3 + 0x19, 1); //end loop + + //Category read will return with error, resulting in false evaluation of the flag - mock.WriteInt32(eventFlagManPtr + 0x1c, 1000); - mock.WriteInt64(eventFlagManPtr + 0x38, currentElementPtr);//current element - mock.WriteInt64(currentElementPtr + 0x8, currentSubElementPtr);//current sub element + var ac6 = new ArmoredCore6.ArmoredCore6(mock); + Assert.IsTrue(ac6.TryRefresh().IsOk); - //Skip loop - mock.WriteByte(currentSubElementPtr + 0x19, 1); + Assert.IsFalse(ac6.ReadEventFlag(2103505405)); + } - //skip category exit - mock.WriteInt32(currentElementPtr + 0x20, 50); + [TestMethod] + public void ReadEventFlag_Pointers_Resolve_To_Same_Address() + { + var eventFlagManPtr = 0x7FF46F5C04B0; + var currentElementPtr = 0x7FF46F600000; - //mystery value - mock.WriteInt32(currentElementPtr + 0x28, 6); - mock.WriteInt64(currentElementPtr + 0x30, calculatedPtr); - - mock.WriteInt32(calculatedPtr + 50, 4); + var mock = new ProcessHookMock(); + mock.SetPointer("CSEventFlagMan", 0, eventFlagManPtr); - var ac6 = new ArmoredCore6.ArmoredCore6(mock); - Assert.IsTrue(ac6.TryRefresh().IsOk); + mock.WriteInt32(eventFlagManPtr + 0x1c, 1000); + mock.WriteInt64(eventFlagManPtr + 0x38, currentElementPtr);//current element + mock.WriteInt64(currentElementPtr + 0x8, currentElementPtr);//current sub element - Assert.IsTrue(ac6.ReadEventFlag(2103505405)); - } + //Skip loop + mock.WriteByte(currentElementPtr + 0x19, 1); - [TestMethod] - public void ReadEventFlag_MysteryValue_Calculate_Ptr() - { - var eventFlagManPtr = 0x7FF46F5C04B0; - var currentElementPtr = 0x7FF46F600000; - var currentSubElementPtr = 0x7FF46F900000; - - var mock = new ProcessHookMock(); - mock.SetPointer("CSEventFlagMan", 0, eventFlagManPtr); - - mock.WriteInt32(eventFlagManPtr + 0x1c, 1000); - mock.WriteInt64(eventFlagManPtr + 0x38, currentElementPtr);//current element - mock.WriteInt64(currentElementPtr + 0x8, currentSubElementPtr);//current sub element + //skip category exit + mock.WriteInt32(currentElementPtr + 0x20, 50); + + //Pointers resolve to the same address, read will return with error, resulting in false evaluation of the flag - //Skip loop - mock.WriteByte(currentSubElementPtr + 0x19, 1); + var ac6 = new ArmoredCore6.ArmoredCore6(mock); + Assert.IsTrue(ac6.TryRefresh().IsOk); + + Assert.IsFalse(ac6.ReadEventFlag(2103505405)); + } - //skip category exit - mock.WriteInt32(currentElementPtr + 0x20, 50); - //mystery value - mock.WriteInt32(currentElementPtr + 0x28, 1); - mock.WriteInt64(currentElementPtr + 0x30, 20); + [TestMethod] + public void ReadEventFlag_MysteryValue_Early_Exit() + { + var eventFlagManPtr = 0x7FF46F5C04B0; + var currentElementPtr = 0x7FF46F600000; + var currentSubElementPtr = 0x7FF46F900000; + + var mock = new ProcessHookMock(); + mock.SetPointer("CSEventFlagMan", 0, eventFlagManPtr); - //calculate ptr (probably a bit crazy calculated, the biggest offset probably is the 64bit read at offset 0x28) - mock.WriteInt32(eventFlagManPtr + 0x20, 10); - mock.WriteInt32(currentElementPtr + 0x30, 10); - mock.WriteInt64(eventFlagManPtr + 0x28, 0x7FF46FA00000); + mock.WriteInt32(eventFlagManPtr + 0x1c, 1000); + mock.WriteInt64(eventFlagManPtr + 0x38, currentElementPtr);//current element + mock.WriteInt64(currentElementPtr + 0x8, currentSubElementPtr);//current sub element - //flag value - var calculatePtr = (10 * 10) + 0x7FF46FA00000; - mock.WriteInt32(calculatePtr + 50, 4); + //Skip loop + mock.WriteByte(currentSubElementPtr + 0x19, 1); - var ac6 = new ArmoredCore6.ArmoredCore6(mock); - Assert.IsTrue(ac6.TryRefresh().IsOk); + //skip category exit + mock.WriteInt32(currentElementPtr + 0x20, 50); - Assert.IsTrue(ac6.ReadEventFlag(2103505405)); - } + //early exit + mock.WriteInt32(currentElementPtr + 0x28, 2); - #endregion + var ac6 = new ArmoredCore6.ArmoredCore6(mock); + Assert.IsTrue(ac6.TryRefresh().IsOk); + + Assert.IsFalse(ac6.ReadEventFlag(2103505405)); + } + + [TestMethod] + public void ReadEventFlag_MysteryValue_Offset_0x30_0() + { + var eventFlagManPtr = 0x7FF46F5C04B0; + var currentElementPtr = 0x7FF46F600000; + var currentSubElementPtr = 0x7FF46F900000; + var calculatedPtr = 0x7FF46FA00000; + + var mock = new ProcessHookMock(); + mock.SetPointer("CSEventFlagMan", 0, eventFlagManPtr); + + mock.WriteInt32(eventFlagManPtr + 0x1c, 1000); + mock.WriteInt64(eventFlagManPtr + 0x38, currentElementPtr);//current element + mock.WriteInt64(currentElementPtr + 0x8, currentSubElementPtr);//current sub element + + //Skip loop + mock.WriteByte(currentSubElementPtr + 0x19, 1); + + //skip category exit + mock.WriteInt32(currentElementPtr + 0x20, 50); + + mock.WriteInt32(currentElementPtr + 0x28, 6); + mock.WriteInt64(currentElementPtr + 0x30, calculatedPtr); + + mock.WriteInt32(calculatedPtr + 50, 0); + + var ac6 = new ArmoredCore6.ArmoredCore6(mock); + Assert.IsTrue(ac6.TryRefresh().IsOk); + + Assert.IsFalse(ac6.ReadEventFlag(2103505405)); + } + + [TestMethod] + public void ReadEventFlag_MysteryValue_Offset_0x30_4() + { + var eventFlagManPtr = 0x7FF46F5C04B0; + var currentElementPtr = 0x7FF46F600000; + var currentSubElementPtr = 0x7FF46F900000; + var calculatedPtr = 0x7FF46FA00000; + + var mock = new ProcessHookMock(); + mock.SetPointer("CSEventFlagMan", 0, eventFlagManPtr); + + mock.WriteInt32(eventFlagManPtr + 0x1c, 1000); + mock.WriteInt64(eventFlagManPtr + 0x38, currentElementPtr);//current element + mock.WriteInt64(currentElementPtr + 0x8, currentSubElementPtr);//current sub element + + //Skip loop + mock.WriteByte(currentSubElementPtr + 0x19, 1); + + //skip category exit + mock.WriteInt32(currentElementPtr + 0x20, 50); + + //mystery value + mock.WriteInt32(currentElementPtr + 0x28, 6); + mock.WriteInt64(currentElementPtr + 0x30, calculatedPtr); + + mock.WriteInt32(calculatedPtr + 50, 4); + + var ac6 = new ArmoredCore6.ArmoredCore6(mock); + Assert.IsTrue(ac6.TryRefresh().IsOk); + + Assert.IsTrue(ac6.ReadEventFlag(2103505405)); + } + + [TestMethod] + public void ReadEventFlag_MysteryValue_Calculate_Ptr() + { + var eventFlagManPtr = 0x7FF46F5C04B0; + var currentElementPtr = 0x7FF46F600000; + var currentSubElementPtr = 0x7FF46F900000; + + var mock = new ProcessHookMock(); + mock.SetPointer("CSEventFlagMan", 0, eventFlagManPtr); + + mock.WriteInt32(eventFlagManPtr + 0x1c, 1000); + mock.WriteInt64(eventFlagManPtr + 0x38, currentElementPtr);//current element + mock.WriteInt64(currentElementPtr + 0x8, currentSubElementPtr);//current sub element + + //Skip loop + mock.WriteByte(currentSubElementPtr + 0x19, 1); + + //skip category exit + mock.WriteInt32(currentElementPtr + 0x20, 50); + + //mystery value + mock.WriteInt32(currentElementPtr + 0x28, 1); + mock.WriteInt64(currentElementPtr + 0x30, 20); + + //calculate ptr (probably a bit crazy calculated, the biggest offset probably is the 64bit read at offset 0x28) + mock.WriteInt32(eventFlagManPtr + 0x20, 10); + mock.WriteInt32(currentElementPtr + 0x30, 10); + mock.WriteInt64(eventFlagManPtr + 0x28, 0x7FF46FA00000); + + //flag value + var calculatePtr = (10 * 10) + 0x7FF46FA00000; + mock.WriteInt32(calculatePtr + 50, 4); + + var ac6 = new ArmoredCore6.ArmoredCore6(mock); + Assert.IsTrue(ac6.TryRefresh().IsOk); + + Assert.IsTrue(ac6.ReadEventFlag(2103505405)); } + + #endregion } diff --git a/tests/SoulMemory.Tests/Extensions.cs b/tests/SoulMemory.Tests/Extensions.cs index f903dbe..b460d3f 100644 --- a/tests/SoulMemory.Tests/Extensions.cs +++ b/tests/SoulMemory.Tests/Extensions.cs @@ -16,20 +16,19 @@ using Microsoft.VisualStudio.TestTools.UnitTesting; -namespace SoulMemory.Tests +namespace SoulMemory.Tests; + +public static class Extensions { - public static class Extensions + public static void DoesNotThrow(this Assert assert, Action a) { - public static void DoesNotThrow(this Assert assert, Action a) + try + { + a(); + } + catch (Exception e) { - try - { - a(); - } - catch (Exception e) - { - throw new AssertFailedException(e.ToString()); - } + throw new AssertFailedException(e.ToString()); } } } diff --git a/tests/SoulMemory.Tests/ExtensionsTests.cs b/tests/SoulMemory.Tests/ExtensionsTests.cs index 19a9daa..3c7a5c4 100644 --- a/tests/SoulMemory.Tests/ExtensionsTests.cs +++ b/tests/SoulMemory.Tests/ExtensionsTests.cs @@ -18,94 +18,93 @@ using Microsoft.VisualStudio.TestTools.UnitTesting; using System.Xml; -namespace SoulMemory.Tests +namespace SoulMemory.Tests; + +[TestClass] +public class ExtensionsTests { - [TestClass] - public class ExtensionsTests + [TestMethod] + public void Xml_GetChildByName_Single() { - [TestMethod] - public void Xml_GetChildByName_Single() - { - var doc = new XmlDocument(); - doc.LoadXml(@" + var doc = new XmlDocument(); + doc.LoadXml(@" test "); - var inner = doc.GetChildNodeByName("outer").GetChildNodeByName("inner"); - Assert.IsNotNull(inner); - Assert.AreEqual("test", inner.InnerText); - } + var inner = doc.GetChildNodeByName("outer").GetChildNodeByName("inner"); + Assert.IsNotNull(inner); + Assert.AreEqual("test", inner.InnerText); + } - [TestMethod] - public void Xml_GetChildByName_Multiple() - { - var doc = new XmlDocument(); - doc.LoadXml(@" + [TestMethod] + public void Xml_GetChildByName_Multiple() + { + var doc = new XmlDocument(); + doc.LoadXml(@" test1 test2 test3 test4 test5 "); - var inner = doc.GetChildNodeByName("outer").GetChildNodeByName("inner4"); - Assert.IsNotNull(inner); - Assert.AreEqual("test4", inner.InnerText); - } + var inner = doc.GetChildNodeByName("outer").GetChildNodeByName("inner4"); + Assert.IsNotNull(inner); + Assert.AreEqual("test4", inner.InnerText); + } - [TestMethod] - public void Xml_Enumerate() - { - var doc = new XmlDocument(); - doc.LoadXml(@" + [TestMethod] + public void Xml_Enumerate() + { + var doc = new XmlDocument(); + doc.LoadXml(@" test1 test2 test3 test4 test5 "); - var list = doc.GetChildNodeByName("outer").ChildNodes.Enumerate().ToList(); - Assert.AreEqual(5, list.Count); - Assert.AreEqual("test1", list[0].InnerText); - Assert.AreEqual("test2", list[1].InnerText); - Assert.AreEqual("test3", list[2].InnerText); - Assert.AreEqual("test4", list[3].InnerText); - Assert.AreEqual("test5", list[4].InnerText); - } + var list = doc.GetChildNodeByName("outer").ChildNodes.Enumerate().ToList(); + Assert.AreEqual(5, list.Count); + Assert.AreEqual("test1", list[0].InnerText); + Assert.AreEqual("test2", list[1].InnerText); + Assert.AreEqual("test3", list[2].InnerText); + Assert.AreEqual("test4", list[3].InnerText); + Assert.AreEqual("test5", list[4].InnerText); + } - [DataTestMethod] - [DataRow(1, 0, true)] - [DataRow(429983647, 21, true)] - [DataRow(8200589659459, 23, false)] - public void IsBitSet_Tests(long data, int index, bool expected) - { - Assert.AreEqual(expected, data.IsBitSet(index)); - } + [DataTestMethod] + [DataRow(1, 0, true)] + [DataRow(429983647, 21, true)] + [DataRow(8200589659459, 23, false)] + public void IsBitSet_Tests(long data, int index, bool expected) + { + Assert.AreEqual(expected, data.IsBitSet(index)); + } - [DataTestMethod] - [DataRow(15, 0, 1, 2, 3)] - [DataRow(4163, 0, 1, 6, 12)] - [DataRow(8200589659459, 0, 1, 6, 8, 10, 11, 14, 15, 16, 17, 19, 20, 21, 24, 27, 28, 30, 32, 34, 36, 37, 38, 40, 41, 42)] - public void SetBit_Tests(long expected, params int[] bits) + [DataTestMethod] + [DataRow(15, 0, 1, 2, 3)] + [DataRow(4163, 0, 1, 6, 12)] + [DataRow(8200589659459, 0, 1, 6, 8, 10, 11, 14, 15, 16, 17, 19, 20, 21, 24, 27, 28, 30, 32, 34, 36, 37, 38, 40, 41, 42)] + public void SetBit_Tests(long expected, params int[] bits) + { + long data = 0; + foreach (var bit in bits) { - long data = 0; - foreach (var bit in bits) - { - data = data.SetBit(bit); - } - Assert.AreEqual(expected, data); + data = data.SetBit(bit); } + Assert.AreEqual(expected, data); + } - [DataTestMethod] - [DataRow(0, 15, 0, 1, 2, 3)] - [DataRow(0, 4163, 0, 1, 6, 12)] - [DataRow(0, 8200589659459, 0, 1, 6, 8, 10, 11, 14, 15, 16, 17, 19, 20, 21, 24, 27, 28, 30, 32, 34, 36, 37, 38, 40, 41, 42)] - public void ClearBit_Tests(long expected, long input, params int[] bits) + [DataTestMethod] + [DataRow(0, 15, 0, 1, 2, 3)] + [DataRow(0, 4163, 0, 1, 6, 12)] + [DataRow(0, 8200589659459, 0, 1, 6, 8, 10, 11, 14, 15, 16, 17, 19, 20, 21, 24, 27, 28, 30, 32, 34, 36, 37, 38, 40, 41, 42)] + public void ClearBit_Tests(long expected, long input, params int[] bits) + { + foreach (var bit in bits) { - foreach (var bit in bits) - { - input = input.ClearBit(bit); - } - Assert.AreEqual(expected, input); + input = input.ClearBit(bit); } + Assert.AreEqual(expected, input); } } diff --git a/tests/SoulMemory.Tests/MemoryScannerTests.cs b/tests/SoulMemory.Tests/MemoryScannerTests.cs index 8216e7d..9b039ea 100644 --- a/tests/SoulMemory.Tests/MemoryScannerTests.cs +++ b/tests/SoulMemory.Tests/MemoryScannerTests.cs @@ -17,37 +17,36 @@ using SoulMemory.Memory; using Microsoft.VisualStudio.TestTools.UnitTesting; -namespace SoulMemory.Tests +namespace SoulMemory.Tests; + +[TestClass] +public class MemoryScannerTests { - [TestClass] - public class MemoryScannerTests + private static IEnumerable ScanTestCases { - private static IEnumerable ScanTestCases + get { - get + return new[] { - return new[] - { - //haystack, needle, count, firstindex - new object[] { "48 8b 05 b1 c6 8B D6 48 8b 50 10 48 89 54 24 60", "8B D6 ?", 1, 5 }, - new object[] { "48 8D 15 C1 E1 10 49 8B C6 41 0B 8F 14 02 00 00 44 8B C6 42 89 0C B2 41 8B D6 49 8B CF", "C6 41 ?", 1, 8 }, - new object[] { "48 8B 0D 99 33 C2 45 33 C0 2B C2 8D 50 F6 8B 1D 32 33", "8B ? ? 33", 2, 1 }, - }; - } + //haystack, needle, count, firstindex + new object[] { "48 8b 05 b1 c6 8B D6 48 8b 50 10 48 89 54 24 60", "8B D6 ?", 1, 5 }, + new object[] { "48 8D 15 C1 E1 10 49 8B C6 41 0B 8F 14 02 00 00 44 8B C6 42 89 0C B2 41 8B D6 49 8B CF", "C6 41 ?", 1, 8 }, + new object[] { "48 8B 0D 99 33 C2 45 33 C0 2B C2 8D 50 F6 8B 1D 32 33", "8B ? ? 33", 2, 1 }, + }; } + } - [TestMethod] - [DynamicData(nameof(ScanTestCases))] - public void ScanAndCountTests(string haystackString, string needleString, long count, long index) - { - var haystack = haystackString.ToBytePattern().Select(i => (byte)i!).ToArray(); - var needle = needleString.ToBytePattern(); + [TestMethod] + [DynamicData(nameof(ScanTestCases))] + public void ScanAndCountTests(string haystackString, string needleString, long count, long index) + { + var haystack = haystackString.ToBytePattern().Select(i => (byte)i!).ToArray(); + var needle = needleString.ToBytePattern(); - var actualCount = haystack.BoyerMooreCount(needle); - haystack.TryBoyerMooreSearch(needle, out long actualIndex); + var actualCount = haystack.BoyerMooreCount(needle); + haystack.TryBoyerMooreSearch(needle, out long actualIndex); - Assert.AreEqual(actualCount, count); - Assert.AreEqual(actualIndex, index); - } + Assert.AreEqual(actualCount, count); + Assert.AreEqual(actualIndex, index); } } diff --git a/tests/SoulMemory.Tests/MemoryV2/MemoryTests.cs b/tests/SoulMemory.Tests/MemoryV2/MemoryTests.cs index 34b8917..a8ea3e4 100644 --- a/tests/SoulMemory.Tests/MemoryV2/MemoryTests.cs +++ b/tests/SoulMemory.Tests/MemoryV2/MemoryTests.cs @@ -18,187 +18,186 @@ using SoulMemory.MemoryV2; using SoulMemory.MemoryV2.Memory; -namespace SoulMemory.Tests.MemoryV2 +namespace SoulMemory.Tests.MemoryV2; + +[TestClass] +public class MemoryTests { - [TestClass] - public class MemoryTests + private static readonly byte[] PointerJumpsTestData = new byte[] + { + //Ptr to address 8 + 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + //Ptr to address 16 + 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + //Ptr to address 24 + 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + //Ptr to address 32 + 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + //End + 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + }; + + [TestMethod] + public void Pointer64_PointerBaseAddressTests() { - private static readonly byte[] PointerJumpsTestData = new byte[] - { - //Ptr to address 8 - 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - //Ptr to address 16 - 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - //Ptr to address 24 - 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - //Ptr to address 32 - 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - //End - 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - }; - - [TestMethod] - public void Pointer64_PointerBaseAddressTests() - { - var memory = new ByteArrayMemory(PointerJumpsTestData); - - Assert.AreEqual(8, memory.Pointer64(0x0).ResolveOffsets()); - Assert.AreEqual(16, memory.Pointer64(0x0, 0x0).ResolveOffsets()); - Assert.AreEqual(24, memory.Pointer64(0x0, 0x0, 0x0).ResolveOffsets()); - Assert.AreEqual(32, memory.Pointer64(0x0, 0x0, 0x0, 0x0).ResolveOffsets()); - - Assert.AreEqual(8, memory.Pointer64(0x0).ResolveOffsets()); - Assert.AreEqual(16, memory.Pointer64(0x0).Pointer64(0x0).ResolveOffsets()); - Assert.AreEqual(24, memory.Pointer64(0x0).Pointer64(0x0).Pointer64(0x0).ResolveOffsets()); - Assert.AreEqual(32, memory.Pointer64(0x0).Pointer64(0x0).Pointer64(0x0).Pointer64(0x0).ResolveOffsets()); - } - - [TestMethod] - public void Pointer64_PointerRelativeReadsTests() - { - var memory = new ByteArrayMemory(PointerJumpsTestData); - - var ptr1 = memory.Pointer64(0x0); - Assert.AreEqual(16, ptr1.ReadInt64(0)); - Assert.AreEqual(24, ptr1.ReadInt64(8)); - Assert.AreEqual(32, ptr1.ReadInt64(16)); - - var ptr2 = memory.Pointer64(0x0, 0x0); - Assert.AreEqual(24, ptr2.ReadInt64(0)); - Assert.AreEqual(32, ptr2.ReadInt64(8)); - - ptr2 = memory.Pointer64(0x0).Pointer64(0x0); - Assert.AreEqual(24, ptr2.ReadInt64(0)); - Assert.AreEqual(32, ptr2.ReadInt64(8)); - - var ptr3 = memory.Pointer64(0x0, 0x0, 0x0); - Assert.AreEqual(32, ptr3.ReadInt64(0)); - - ptr3 = memory.Pointer64(0x0).Pointer64(0x0).Pointer64(0x0); - Assert.AreEqual(32, ptr3.ReadInt64(0)); - - var testy = ptr3.ToString(); - } - - - private static readonly byte[] DataTypesTestData = new byte[] - { - //Ptr to address 8 - 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - - //Byte/sbyte - 0xa3, - - //short/ushort - 0x23, 0xff, - - //int/uint - //0x4a, 0xff, 0x23, 0xff, - 0x32, 0xF5, 0x53, 0xff, - - //long/ulong - 0x32, 0xF5, 0x53, 0xff, 0x32, 0xF5, 0x53, 0xff, - - //float - 0xff, 0x7a, 0xfa, 0x42, - - //double - 0x66, 0x66, 0x66, 0x66, 0x66, 0xf6, 0x55, 0x40, - }; - - - [TestMethod] - public void MemoryExtensions_DataTypes() - { - var memory = new ByteArrayMemory(DataTypesTestData); - var ptr = memory.Pointer64(0x0); - - var f = BitConverter.GetBytes(125.24f); - var da = BitConverter.GetBytes(87.85d); - - var a = memory.ReadFloat(23); - var d = memory.ReadDouble(27); - var v = memory.ReadUInt64(15); - - Assert.AreEqual(-93, memory.ReadSByte(8)); - Assert.AreEqual(163, memory.ReadByte(8)); - Assert.AreEqual(-93, ptr.ReadSByte(0)); - Assert.AreEqual(163, ptr.ReadByte(0)); - - Assert.AreEqual(-221, memory.ReadInt16(9)); - Assert.AreEqual(65315, memory.ReadUInt16(9)); - Assert.AreEqual(-221, ptr.ReadInt16(1)); - Assert.AreEqual(65315, ptr.ReadUInt16(1)); - - Assert.AreEqual(-11274958, memory.ReadInt32(11)); - Assert.AreEqual(4283692338, memory.ReadUInt32(11)); - Assert.AreEqual(-11274958, ptr.ReadInt32(3)); - Assert.AreEqual(4283692338, ptr.ReadUInt32(3)); - - Assert.AreEqual(-48425571590081230, memory.ReadInt64(15)); - Assert.AreEqual(18398318502119470386, memory.ReadUInt64(15)); - Assert.AreEqual(-48425571590081230, ptr.ReadInt64(7)); - Assert.AreEqual(18398318502119470386, ptr.ReadUInt64(7)); - - Assert.AreEqual(125.24022674560547, memory.ReadFloat(23)); - Assert.AreEqual(125.24022674560547, ptr.ReadFloat(15)); - Assert.AreEqual(87.85, memory.ReadDouble(27)); - Assert.AreEqual(87.85, ptr.ReadDouble(19)); - } + var memory = new ByteArrayMemory(PointerJumpsTestData); + Assert.AreEqual(8, memory.Pointer64(0x0).ResolveOffsets()); + Assert.AreEqual(16, memory.Pointer64(0x0, 0x0).ResolveOffsets()); + Assert.AreEqual(24, memory.Pointer64(0x0, 0x0, 0x0).ResolveOffsets()); + Assert.AreEqual(32, memory.Pointer64(0x0, 0x0, 0x0, 0x0).ResolveOffsets()); - [TestMethod] - public void Memory_Simple_Write() - { - var memory = new ByteArrayMemory(new byte[40]); + Assert.AreEqual(8, memory.Pointer64(0x0).ResolveOffsets()); + Assert.AreEqual(16, memory.Pointer64(0x0).Pointer64(0x0).ResolveOffsets()); + Assert.AreEqual(24, memory.Pointer64(0x0).Pointer64(0x0).Pointer64(0x0).ResolveOffsets()); + Assert.AreEqual(32, memory.Pointer64(0x0).Pointer64(0x0).Pointer64(0x0).Pointer64(0x0).ResolveOffsets()); + } + + [TestMethod] + public void Pointer64_PointerRelativeReadsTests() + { + var memory = new ByteArrayMemory(PointerJumpsTestData); - memory.WriteInt32(0x0, 123456); - Assert.AreEqual(123456, memory.ReadInt32(0x0)); + var ptr1 = memory.Pointer64(0x0); + Assert.AreEqual(16, ptr1.ReadInt64(0)); + Assert.AreEqual(24, ptr1.ReadInt64(8)); + Assert.AreEqual(32, ptr1.ReadInt64(16)); - memory.WriteInt32(0x20, 654321); - Assert.AreEqual(654321, memory.ReadInt32(0x20)); - } + var ptr2 = memory.Pointer64(0x0, 0x0); + Assert.AreEqual(24, ptr2.ReadInt64(0)); + Assert.AreEqual(32, ptr2.ReadInt64(8)); + ptr2 = memory.Pointer64(0x0).Pointer64(0x0); + Assert.AreEqual(24, ptr2.ReadInt64(0)); + Assert.AreEqual(32, ptr2.ReadInt64(8)); - [TestMethod] - public void Pointer64_Write() - { - var memory = new ByteArrayMemory(new byte[40]); - //Ptr to 0x20 - memory.WriteInt32(0x0, 0x20); + var ptr3 = memory.Pointer64(0x0, 0x0, 0x0); + Assert.AreEqual(32, ptr3.ReadInt64(0)); - memory.Pointer64(0x0).WriteInt32(0x0, 1); - memory.Pointer64(0x0).WriteInt32(0x4, 2); + ptr3 = memory.Pointer64(0x0).Pointer64(0x0).Pointer64(0x0); + Assert.AreEqual(32, ptr3.ReadInt64(0)); - Assert.AreEqual(1, memory.ReadInt32(0x20)); - Assert.AreEqual(2, memory.ReadInt32(0x24)); - } + var testy = ptr3.ToString(); + } + + + private static readonly byte[] DataTypesTestData = new byte[] + { + //Ptr to address 8 + 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + + //Byte/sbyte + 0xa3, + + //short/ushort + 0x23, 0xff, - [TestMethod] - public void Pointer64_Jump_Write_Test() - { - var memory = new ByteArrayMemory(PointerJumpsTestData); + //int/uint + //0x4a, 0xff, 0x23, 0xff, + 0x32, 0xF5, 0x53, 0xff, - memory.Pointer64(0x0, 0x0, 0x0, 0x0).WriteInt32(0x0, 1); - Assert.AreEqual(1, memory.Pointer64(0x0, 0x0, 0x0, 0x0).ReadInt32(0x0)); - - memory.Pointer64(0x0).Pointer64(0x0).Pointer64(0x0).Pointer64(0x0).WriteInt32(0x0, 2); - Assert.AreEqual(2, memory.Pointer64(0x0, 0x0, 0x0, 0x0).ReadInt32(0x0)); - } + //long/ulong + 0x32, 0xF5, 0x53, 0xff, 0x32, 0xF5, 0x53, 0xff, - [TestMethod] - public void Pointer64_RelativeScan_BaseAddress() - { - var memory = new ByteArrayMemory(new byte[0x20]); + //float + 0xff, 0x7a, 0xfa, 0x42, + + //double + 0x66, 0x66, 0x66, 0x66, 0x66, 0xf6, 0x55, 0x40, + }; + + + [TestMethod] + public void MemoryExtensions_DataTypes() + { + var memory = new ByteArrayMemory(DataTypesTestData); + var ptr = memory.Pointer64(0x0); + + var f = BitConverter.GetBytes(125.24f); + var da = BitConverter.GetBytes(87.85d); + + var a = memory.ReadFloat(23); + var d = memory.ReadDouble(27); + var v = memory.ReadUInt64(15); + + Assert.AreEqual(-93, memory.ReadSByte(8)); + Assert.AreEqual(163, memory.ReadByte(8)); + Assert.AreEqual(-93, ptr.ReadSByte(0)); + Assert.AreEqual(163, ptr.ReadByte(0)); + + Assert.AreEqual(-221, memory.ReadInt16(9)); + Assert.AreEqual(65315, memory.ReadUInt16(9)); + Assert.AreEqual(-221, ptr.ReadInt16(1)); + Assert.AreEqual(65315, ptr.ReadUInt16(1)); + + Assert.AreEqual(-11274958, memory.ReadInt32(11)); + Assert.AreEqual(4283692338, memory.ReadUInt32(11)); + Assert.AreEqual(-11274958, ptr.ReadInt32(3)); + Assert.AreEqual(4283692338, ptr.ReadUInt32(3)); + + Assert.AreEqual(-48425571590081230, memory.ReadInt64(15)); + Assert.AreEqual(18398318502119470386, memory.ReadUInt64(15)); + Assert.AreEqual(-48425571590081230, ptr.ReadInt64(7)); + Assert.AreEqual(18398318502119470386, ptr.ReadUInt64(7)); + + Assert.AreEqual(125.24022674560547, memory.ReadFloat(23)); + Assert.AreEqual(125.24022674560547, ptr.ReadFloat(15)); + Assert.AreEqual(87.85, memory.ReadDouble(27)); + Assert.AreEqual(87.85, ptr.ReadDouble(19)); + } + + + [TestMethod] + public void Memory_Simple_Write() + { + var memory = new ByteArrayMemory(new byte[40]); + + memory.WriteInt32(0x0, 123456); + Assert.AreEqual(123456, memory.ReadInt32(0x0)); + + memory.WriteInt32(0x20, 654321); + Assert.AreEqual(654321, memory.ReadInt32(0x20)); + } + + + [TestMethod] + public void Pointer64_Write() + { + var memory = new ByteArrayMemory(new byte[40]); + //Ptr to 0x20 + memory.WriteInt32(0x0, 0x20); + + memory.Pointer64(0x0).WriteInt32(0x0, 1); + memory.Pointer64(0x0).WriteInt32(0x4, 2); + + Assert.AreEqual(1, memory.ReadInt32(0x20)); + Assert.AreEqual(2, memory.ReadInt32(0x24)); + } + + [TestMethod] + public void Pointer64_Jump_Write_Test() + { + var memory = new ByteArrayMemory(PointerJumpsTestData); + + memory.Pointer64(0x0, 0x0, 0x0, 0x0).WriteInt32(0x0, 1); + Assert.AreEqual(1, memory.Pointer64(0x0, 0x0, 0x0, 0x0).ReadInt32(0x0)); + + memory.Pointer64(0x0).Pointer64(0x0).Pointer64(0x0).Pointer64(0x0).WriteInt32(0x0, 2); + Assert.AreEqual(2, memory.Pointer64(0x0, 0x0, 0x0, 0x0).ReadInt32(0x0)); + } + + [TestMethod] + public void Pointer64_RelativeScan_BaseAddress() + { + var memory = new ByteArrayMemory(new byte[0x20]); - //pointers with a base address are special, they are the result of an absolute pointer scan. - //Resolving offsets start from a base, rather than from 0 + //pointers with a base address are special, they are the result of an absolute pointer scan. + //Resolving offsets start from a base, rather than from 0 - var pointer = new Pointer(memory); - pointer.AbsoluteOffset = 0x10; - pointer.WriteInt32(0x0, 1); + var pointer = new Pointer(memory); + pointer.AbsoluteOffset = 0x10; + pointer.WriteInt32(0x0, 1); - Assert.AreEqual(1, memory.ReadInt32(0x10)); - } + Assert.AreEqual(1, memory.ReadInt32(0x10)); } } diff --git a/tests/SoulMemory.Tests/MemoryV2/ProcessHookTests.cs b/tests/SoulMemory.Tests/MemoryV2/ProcessHookTests.cs index 5de0ccb..a32d3bf 100644 --- a/tests/SoulMemory.Tests/MemoryV2/ProcessHookTests.cs +++ b/tests/SoulMemory.Tests/MemoryV2/ProcessHookTests.cs @@ -18,198 +18,197 @@ using Moq; using SoulMemory.MemoryV2.Process; -namespace SoulMemory.Tests.MemoryV2 +namespace SoulMemory.Tests.MemoryV2; + +[TestClass] +public class ProcessHookTests { - [TestClass] - public class ProcessHookTests + [TestInitialize] + public void Init() { - [TestInitialize] - public void Init() - { - _mockProcessWrapper = new Mock(); - _sut = new ProcessHook("TestProcess", _mockProcessWrapper.Object); + _mockProcessWrapper = new Mock(); + _sut = new ProcessHook("TestProcess", _mockProcessWrapper.Object); - _sut.Hooked += () => - { - _hookedInvokedCount++; - return Result.Ok(); - }; - _sut.Exited += exception => - { - _exitedInvokedCount++; - if (exception != null) - { - ExitedExceptions.Add(exception); - } - }; - } - - private ProcessHook _sut = null!; - private Mock _mockProcessWrapper = null!; - private int _hookedInvokedCount = 0; - private int _exitedInvokedCount = 0; - public List ExitedExceptions = new List(); - - - [TestMethod] - public void TryRefresh_ProcessNotRunning() - { - Exception ex; - _mockProcessWrapper - .Setup(i => i.TryRefresh(It.IsAny(), out ex)) - .Returns(ProcessRefreshResult.ProcessNotRunning); - - var refreshResult = _sut.TryRefresh(); - - Assert.AreEqual(RefreshErrorReason.ProcessNotRunning, refreshResult.GetErr().Reason); - Assert.AreEqual("Process TestProcess not running or inaccessible. Try running livesplit as admin.", refreshResult.GetErr().Message); - Assert.AreEqual(0, ExitedExceptions.Count); - Assert.AreEqual(0, _exitedInvokedCount); - Assert.AreEqual(0, _hookedInvokedCount); - } - - [TestMethod] - public void TryRefresh_Initialized_MainModuleNull() + _sut.Hooked += () => { - Exception? ex; - _mockProcessWrapper - .Setup(i => i.TryRefresh(It.IsAny(), out ex)) - .Returns(ProcessRefreshResult.Initialized); - - _mockProcessWrapper - .Setup(i => i.GetMainModule()) - .Returns((ProcessWrapperModule)null!); - - var refreshResult = _sut.TryRefresh(); - - Assert.AreEqual(RefreshErrorReason.ScansFailed, refreshResult.GetErr().Reason); - Assert.AreEqual("Main module is null. Try running as admin.", refreshResult.GetErr().Message); - Assert.AreEqual(0, ExitedExceptions.Count); - Assert.AreEqual(0, _exitedInvokedCount); - Assert.AreEqual(0, _hookedInvokedCount); - } - - [TestMethod] - public void TryRefresh_Initialized_ScansFailed() + _hookedInvokedCount++; + return Result.Ok(); + }; + _sut.Exited += exception => { - Exception? ex; - _mockProcessWrapper - .Setup(i => i.TryRefresh(It.IsAny(), out ex)) - .Returns(ProcessRefreshResult.Initialized); - _mockProcessWrapper.Setup(i => i.GetMainModule()).Returns(new ProcessWrapperModule + _exitedInvokedCount++; + if (exception != null) { - BaseAddress = (IntPtr)100, - ModuleMemorySize = 100, - }); - _mockProcessWrapper.Setup(i => i.Is64Bit()).Returns(true); - _mockProcessWrapper.Setup(i => i.ReadBytes(100, 100)).Returns(new byte[100]); - - _sut.PointerTreeBuilder.ScanAbsolute("TestScan1", "01 01", 0); - _sut.PointerTreeBuilder.ScanAbsolute("TestScan2", "01 01", 0); - - var refreshResult = _sut.TryRefresh(); - - Assert.AreEqual(RefreshErrorReason.ScansFailed, refreshResult.GetErr().Reason); - Assert.AreEqual("Scans failed for TestScan1, TestScan2", refreshResult.GetErr().Message); - Assert.AreEqual(0, ExitedExceptions.Count); - Assert.AreEqual(0, _exitedInvokedCount); - Assert.AreEqual(0, _hookedInvokedCount); - } - - [TestMethod] - public void TryRefresh_Initialized_Success() - { - Exception? ex; - _mockProcessWrapper - .Setup(i => i.TryRefresh(It.IsAny(), out ex)) - .Returns(ProcessRefreshResult.Initialized); - _mockProcessWrapper.Setup(i => i.GetMainModule()).Returns(new ProcessWrapperModule - { - BaseAddress = (IntPtr)100, - ModuleMemorySize = 2, - }); - _mockProcessWrapper.Setup(i => i.Is64Bit()).Returns(true); - _mockProcessWrapper.Setup(i => i.ReadBytes(100, 2)).Returns(new byte[] { 0x01, 0x01 }); + ExitedExceptions.Add(exception); + } + }; + } - _sut.PointerTreeBuilder.ScanAbsolute("TestScan1", "01 01", 0); + private ProcessHook _sut = null!; + private Mock _mockProcessWrapper = null!; + private int _hookedInvokedCount = 0; + private int _exitedInvokedCount = 0; + public List ExitedExceptions = new List(); - var refreshResult = _sut.TryRefresh(); - Assert.IsTrue(refreshResult.IsOk); - Assert.AreEqual(0, ExitedExceptions.Count); - Assert.AreEqual(0, _exitedInvokedCount); - Assert.AreEqual(1, _hookedInvokedCount); - } + [TestMethod] + public void TryRefresh_ProcessNotRunning() + { + Exception ex; + _mockProcessWrapper + .Setup(i => i.TryRefresh(It.IsAny(), out ex)) + .Returns(ProcessRefreshResult.ProcessNotRunning); + + var refreshResult = _sut.TryRefresh(); + + Assert.AreEqual(RefreshErrorReason.ProcessNotRunning, refreshResult.GetErr().Reason); + Assert.AreEqual("Process TestProcess not running or inaccessible. Try running livesplit as admin.", refreshResult.GetErr().Message); + Assert.AreEqual(0, ExitedExceptions.Count); + Assert.AreEqual(0, _exitedInvokedCount); + Assert.AreEqual(0, _hookedInvokedCount); + } - [TestMethod] - public void TryRefresh_Refreshed() - { - Exception? ex; - _mockProcessWrapper - .Setup(i => i.TryRefresh(It.IsAny(), out ex)) - .Returns(ProcessRefreshResult.Refreshed); - - var refreshResult = _sut.TryRefresh(); - - Assert.IsTrue(refreshResult.IsOk); - Assert.AreEqual(0, ExitedExceptions.Count); - Assert.AreEqual(0, _exitedInvokedCount); - Assert.AreEqual(0, _hookedInvokedCount); - } - - [TestMethod] - public void TryRefresh_Exited_No_Exception() - { - Exception? ex; - _mockProcessWrapper - .Setup(i => i.TryRefresh(It.IsAny(), out ex)) - .Returns(ProcessRefreshResult.Exited); - - var refreshResult = _sut.TryRefresh(); - - Assert.AreEqual(RefreshErrorReason.ProcessExited, refreshResult.GetErr().Reason); - Assert.IsNull(refreshResult.GetErr().Message); - Assert.IsNull(refreshResult.GetErr().Exception); - Assert.AreEqual(0, ExitedExceptions.Count); - Assert.AreEqual(1, _exitedInvokedCount); - Assert.AreEqual(0, _hookedInvokedCount); - } - - [TestMethod] - public void TryRefresh_Error_Access_Denied() + [TestMethod] + public void TryRefresh_Initialized_MainModuleNull() + { + Exception? ex; + _mockProcessWrapper + .Setup(i => i.TryRefresh(It.IsAny(), out ex)) + .Returns(ProcessRefreshResult.Initialized); + + _mockProcessWrapper + .Setup(i => i.GetMainModule()) + .Returns((ProcessWrapperModule)null!); + + var refreshResult = _sut.TryRefresh(); + + Assert.AreEqual(RefreshErrorReason.ScansFailed, refreshResult.GetErr().Reason); + Assert.AreEqual("Main module is null. Try running as admin.", refreshResult.GetErr().Message); + Assert.AreEqual(0, ExitedExceptions.Count); + Assert.AreEqual(0, _exitedInvokedCount); + Assert.AreEqual(0, _hookedInvokedCount); + } + + [TestMethod] + public void TryRefresh_Initialized_ScansFailed() + { + Exception? ex; + _mockProcessWrapper + .Setup(i => i.TryRefresh(It.IsAny(), out ex)) + .Returns(ProcessRefreshResult.Initialized); + _mockProcessWrapper.Setup(i => i.GetMainModule()).Returns(new ProcessWrapperModule { - Exception? ex = new Exception("Access is denied"); - _mockProcessWrapper - .Setup(i => i.TryRefresh(It.IsAny(), out ex)) - .Returns(ProcessRefreshResult.Error); - - var refreshResult = _sut.TryRefresh(); - - Assert.AreEqual(RefreshErrorReason.AccessDenied, refreshResult.GetErr().Reason); - Assert.AreEqual("Access is denied. Make sure you disable easy anti cheat and try running livesplit as admin.", refreshResult.GetErr().Message); - Assert.AreEqual(1, ExitedExceptions.Count); - Assert.AreEqual("Access is denied", ExitedExceptions.First().Message); - Assert.AreEqual(1, _exitedInvokedCount); - Assert.AreEqual(0, _hookedInvokedCount); - } - - [TestMethod] - public void TryRefresh_Error_Unknown() + BaseAddress = (IntPtr)100, + ModuleMemorySize = 100, + }); + _mockProcessWrapper.Setup(i => i.Is64Bit()).Returns(true); + _mockProcessWrapper.Setup(i => i.ReadBytes(100, 100)).Returns(new byte[100]); + + _sut.PointerTreeBuilder.ScanAbsolute("TestScan1", "01 01", 0); + _sut.PointerTreeBuilder.ScanAbsolute("TestScan2", "01 01", 0); + + var refreshResult = _sut.TryRefresh(); + + Assert.AreEqual(RefreshErrorReason.ScansFailed, refreshResult.GetErr().Reason); + Assert.AreEqual("Scans failed for TestScan1, TestScan2", refreshResult.GetErr().Message); + Assert.AreEqual(0, ExitedExceptions.Count); + Assert.AreEqual(0, _exitedInvokedCount); + Assert.AreEqual(0, _hookedInvokedCount); + } + + [TestMethod] + public void TryRefresh_Initialized_Success() + { + Exception? ex; + _mockProcessWrapper + .Setup(i => i.TryRefresh(It.IsAny(), out ex)) + .Returns(ProcessRefreshResult.Initialized); + _mockProcessWrapper.Setup(i => i.GetMainModule()).Returns(new ProcessWrapperModule { - Exception? ex = new Exception("Your computer is on fire"); - _mockProcessWrapper - .Setup(i => i.TryRefresh(It.IsAny(), out ex)) - .Returns(ProcessRefreshResult.Error); - - var refreshResult = _sut.TryRefresh(); - - Assert.AreEqual(RefreshErrorReason.UnknownException, refreshResult.GetErr().Reason); - Assert.IsNull(refreshResult.GetErr().Message); - Assert.AreEqual("Your computer is on fire", refreshResult.GetErr().Exception.Message); - Assert.AreEqual(1, ExitedExceptions.Count); - Assert.AreEqual("Your computer is on fire", ExitedExceptions.First().Message); - Assert.AreEqual(1, _exitedInvokedCount); - Assert.AreEqual(0, _hookedInvokedCount); - } + BaseAddress = (IntPtr)100, + ModuleMemorySize = 2, + }); + _mockProcessWrapper.Setup(i => i.Is64Bit()).Returns(true); + _mockProcessWrapper.Setup(i => i.ReadBytes(100, 2)).Returns(new byte[] { 0x01, 0x01 }); + + _sut.PointerTreeBuilder.ScanAbsolute("TestScan1", "01 01", 0); + + var refreshResult = _sut.TryRefresh(); + + Assert.IsTrue(refreshResult.IsOk); + Assert.AreEqual(0, ExitedExceptions.Count); + Assert.AreEqual(0, _exitedInvokedCount); + Assert.AreEqual(1, _hookedInvokedCount); + } + + [TestMethod] + public void TryRefresh_Refreshed() + { + Exception? ex; + _mockProcessWrapper + .Setup(i => i.TryRefresh(It.IsAny(), out ex)) + .Returns(ProcessRefreshResult.Refreshed); + + var refreshResult = _sut.TryRefresh(); + + Assert.IsTrue(refreshResult.IsOk); + Assert.AreEqual(0, ExitedExceptions.Count); + Assert.AreEqual(0, _exitedInvokedCount); + Assert.AreEqual(0, _hookedInvokedCount); + } + + [TestMethod] + public void TryRefresh_Exited_No_Exception() + { + Exception? ex; + _mockProcessWrapper + .Setup(i => i.TryRefresh(It.IsAny(), out ex)) + .Returns(ProcessRefreshResult.Exited); + + var refreshResult = _sut.TryRefresh(); + + Assert.AreEqual(RefreshErrorReason.ProcessExited, refreshResult.GetErr().Reason); + Assert.IsNull(refreshResult.GetErr().Message); + Assert.IsNull(refreshResult.GetErr().Exception); + Assert.AreEqual(0, ExitedExceptions.Count); + Assert.AreEqual(1, _exitedInvokedCount); + Assert.AreEqual(0, _hookedInvokedCount); + } + + [TestMethod] + public void TryRefresh_Error_Access_Denied() + { + Exception? ex = new Exception("Access is denied"); + _mockProcessWrapper + .Setup(i => i.TryRefresh(It.IsAny(), out ex)) + .Returns(ProcessRefreshResult.Error); + + var refreshResult = _sut.TryRefresh(); + + Assert.AreEqual(RefreshErrorReason.AccessDenied, refreshResult.GetErr().Reason); + Assert.AreEqual("Access is denied. Make sure you disable easy anti cheat and try running livesplit as admin.", refreshResult.GetErr().Message); + Assert.AreEqual(1, ExitedExceptions.Count); + Assert.AreEqual("Access is denied", ExitedExceptions.First().Message); + Assert.AreEqual(1, _exitedInvokedCount); + Assert.AreEqual(0, _hookedInvokedCount); + } + + [TestMethod] + public void TryRefresh_Error_Unknown() + { + Exception? ex = new Exception("Your computer is on fire"); + _mockProcessWrapper + .Setup(i => i.TryRefresh(It.IsAny(), out ex)) + .Returns(ProcessRefreshResult.Error); + + var refreshResult = _sut.TryRefresh(); + + Assert.AreEqual(RefreshErrorReason.UnknownException, refreshResult.GetErr().Reason); + Assert.IsNull(refreshResult.GetErr().Message); + Assert.AreEqual("Your computer is on fire", refreshResult.GetErr().Exception.Message); + Assert.AreEqual(1, ExitedExceptions.Count); + Assert.AreEqual("Your computer is on fire", ExitedExceptions.First().Message); + Assert.AreEqual(1, _exitedInvokedCount); + Assert.AreEqual(0, _hookedInvokedCount); } } diff --git a/tests/SoulMemory.Tests/Mocks/ProcessHookMock.cs b/tests/SoulMemory.Tests/Mocks/ProcessHookMock.cs index 2ff0f91..24bb8fd 100644 --- a/tests/SoulMemory.Tests/Mocks/ProcessHookMock.cs +++ b/tests/SoulMemory.Tests/Mocks/ProcessHookMock.cs @@ -19,100 +19,99 @@ using SoulMemory.MemoryV2.PointerTreeBuilder; using SoulMemory.MemoryV2.Process; -namespace SoulMemory.Tests.Mocks +namespace SoulMemory.Tests.Mocks; + +public class ProcessHookMock : IProcessHook { - public class ProcessHookMock : IProcessHook + public ProcessHookMock() { - public ProcessHookMock() + Hooked += () => { - Hooked += () => - { - HookedInvokedCount++; - return HookedResult; - }; + HookedInvokedCount++; + return HookedResult; + }; - Exited += (e) => - { - if (e != null) - { - ExitedExceptions.Add(e); - } - ExitedInvokedCount++; - }; - } - - public Dictionary Data = new Dictionary(); - - public byte[] ReadBytes(long offset, int length) + Exited += (e) => { - var data = Data[offset]; - if (data.Length != length) + if (e != null) { - throw new ArgumentException("Data size mismatch"); + ExitedExceptions.Add(e); } + ExitedInvokedCount++; + }; + } - return data; + public Dictionary Data = new Dictionary(); + + public byte[] ReadBytes(long offset, int length) + { + var data = Data[offset]; + if (data.Length != length) + { + throw new ArgumentException("Data size mismatch"); } - public void WriteBytes(long offset, byte[] bytes) + return data; + } + + public void WriteBytes(long offset, byte[] bytes) + { + //Allow overwriting existing key + if (!Data.ContainsKey(offset)) { - //Allow overwriting existing key - if (!Data.ContainsKey(offset)) + //check for overlap + var end = offset + bytes.Length; + foreach (var item in Data) { - //check for overlap - var end = offset + bytes.Length; - foreach (var item in Data) + if (offset <= item.Key && item.Key < end) { - if (offset <= item.Key && item.Key < end) - { - throw new ArgumentException("Found overlap"); - } + throw new ArgumentException("Found overlap"); } } - - Data[offset] = bytes; } - public Process? GetProcess() - { - return null; - } + Data[offset] = bytes; + } - public List<(string name, int index, long address)> PointerValues = new List<(string name, int index, long address)>(); + public Process? GetProcess() + { + return null; + } - public void SetPointer(string name, int index, long address) - { - //"Self jump" - Data[address] = BitConverter.GetBytes(address); - PointerValues.Add((name, index, address)); - } + public List<(string name, int index, long address)> PointerValues = new List<(string name, int index, long address)>(); - - public ResultErr TryRefresh() - { - foreach (var ptrValue in PointerValues) - { - var node = PointerTreeBuilder.Tree.First(i => i.Name == ptrValue.name); - node = node.Pointers[ptrValue.index]; - node.Pointer.Path.Add(new PointerPath { Offset = ptrValue.address }); - } + public void SetPointer(string name, int index, long address) + { + //"Self jump" + Data[address] = BitConverter.GetBytes(address); + PointerValues.Add((name, index, address)); + } - return Result.Ok(); + + public ResultErr TryRefresh() + { + foreach (var ptrValue in PointerValues) + { + var node = PointerTreeBuilder.Tree.First(i => i.Name == ptrValue.name); + node = node.Pointers[ptrValue.index]; + node.Pointer.Path.Add(new PointerPath { Offset = ptrValue.address }); } - public int HookedInvokedCount = 0; - public int ExitedInvokedCount = 0; + return Result.Ok(); + } + + public int HookedInvokedCount = 0; + public int ExitedInvokedCount = 0; - public ResultErr HookedResult = Result.Ok(); - public List ExitedExceptions = new List(); + public ResultErr HookedResult = Result.Ok(); + public List ExitedExceptions = new List(); #pragma warning disable CS0067 - public event Func>? Hooked; - public event Action? Exited; + public event Func>? Hooked; + public event Action? Exited; #pragma warning restore CS0067 - public PointerTreeBuilder PointerTreeBuilder { get; set; } = new PointerTreeBuilder(); - public IProcessWrapper? ProcessWrapper { get; set; } - } + public PointerTreeBuilder PointerTreeBuilder { get; set; } = new PointerTreeBuilder(); + public IProcessWrapper? ProcessWrapper { get; set; } } diff --git a/tests/SoulMemory.Tests/RefreshErrorTests.cs b/tests/SoulMemory.Tests/RefreshErrorTests.cs index ca4ca2a..853d170 100644 --- a/tests/SoulMemory.Tests/RefreshErrorTests.cs +++ b/tests/SoulMemory.Tests/RefreshErrorTests.cs @@ -16,65 +16,64 @@ using Microsoft.VisualStudio.TestTools.UnitTesting; -namespace SoulMemory.Tests +namespace SoulMemory.Tests; + +[TestClass] +public class RefreshErrorTests { - [TestClass] - public class RefreshErrorTests + [DataTestMethod] + [DataRow(RefreshErrorReason.ProcessExited)] + [DataRow(RefreshErrorReason.MainModuleNull)] + [DataRow(RefreshErrorReason.ScansFailed)] + public void RefreshError_RefreshReason(RefreshErrorReason reason) { - [DataTestMethod] - [DataRow(RefreshErrorReason.ProcessExited)] - [DataRow(RefreshErrorReason.MainModuleNull)] - [DataRow(RefreshErrorReason.ScansFailed)] - public void RefreshError_RefreshReason(RefreshErrorReason reason) - { - var result = new RefreshError(reason); + var result = new RefreshError(reason); - Assert.AreEqual(reason, result.Reason); - Assert.IsNull(result.Exception); - Assert.IsNull(result.Message); - Assert.AreEqual(reason.ToString(), result.ToString()); - } + Assert.AreEqual(reason, result.Reason); + Assert.IsNull(result.Exception); + Assert.IsNull(result.Message); + Assert.AreEqual(reason.ToString(), result.ToString()); + } - [TestMethod] - public void RefreshError_RefreshReason_Message() - { - var result = new RefreshError(RefreshErrorReason.ScansFailed, "FD4Time scan failed"); + [TestMethod] + public void RefreshError_RefreshReason_Message() + { + var result = new RefreshError(RefreshErrorReason.ScansFailed, "FD4Time scan failed"); - Assert.AreEqual(RefreshErrorReason.ScansFailed, result.Reason); - Assert.IsNull(result.Exception); - Assert.AreEqual("FD4Time scan failed", result.Message); - Assert.AreEqual("ScansFailed - FD4Time scan failed", result.ToString()); - } + Assert.AreEqual(RefreshErrorReason.ScansFailed, result.Reason); + Assert.IsNull(result.Exception); + Assert.AreEqual("FD4Time scan failed", result.Message); + Assert.AreEqual("ScansFailed - FD4Time scan failed", result.ToString()); + } - [TestMethod] - public void RefreshError_RefreshReason_Exception() - { - var result = new RefreshError(RefreshErrorReason.ScansFailed, new InvalidOperationException("test")); + [TestMethod] + public void RefreshError_RefreshReason_Exception() + { + var result = new RefreshError(RefreshErrorReason.ScansFailed, new InvalidOperationException("test")); - Assert.AreEqual(RefreshErrorReason.ScansFailed, result.Reason); - Assert.IsInstanceOfType(result.Exception); - Assert.AreEqual("test", result.Exception.Message); - Assert.IsNull(result.Message); - Assert.AreEqual("ScansFailed - System.InvalidOperationException: test", result.ToString()); - } + Assert.AreEqual(RefreshErrorReason.ScansFailed, result.Reason); + Assert.IsInstanceOfType(result.Exception); + Assert.AreEqual("test", result.Exception.Message); + Assert.IsNull(result.Message); + Assert.AreEqual("ScansFailed - System.InvalidOperationException: test", result.ToString()); + } - [TestMethod] - public void RefreshError_FromException() - { - var exception = new InvalidOperationException("test"); - var resultErr = RefreshError.FromException(exception); ; + [TestMethod] + public void RefreshError_FromException() + { + var exception = new InvalidOperationException("test"); + var resultErr = RefreshError.FromException(exception); ; - Assert.IsFalse(resultErr.IsOk); - Assert.IsTrue(resultErr.IsErr); - Assert.ThrowsException(resultErr.Unwrap); + Assert.IsFalse(resultErr.IsOk); + Assert.IsTrue(resultErr.IsErr); + Assert.ThrowsException(resultErr.Unwrap); - var result = resultErr.GetErr(); + var result = resultErr.GetErr(); - Assert.AreEqual(RefreshErrorReason.UnknownException, result.Reason); - Assert.IsInstanceOfType(result.Exception); - Assert.AreEqual("test", result.Exception.Message); - Assert.IsNull(result.Message); - Assert.AreEqual("UnknownException - System.InvalidOperationException: test", result.ToString()); - } + Assert.AreEqual(RefreshErrorReason.UnknownException, result.Reason); + Assert.IsInstanceOfType(result.Exception); + Assert.AreEqual("test", result.Exception.Message); + Assert.IsNull(result.Message); + Assert.AreEqual("UnknownException - System.InvalidOperationException: test", result.ToString()); } } diff --git a/tests/SoulMemory.Tests/ResultTests.cs b/tests/SoulMemory.Tests/ResultTests.cs index 43cb453..a270949 100644 --- a/tests/SoulMemory.Tests/ResultTests.cs +++ b/tests/SoulMemory.Tests/ResultTests.cs @@ -16,115 +16,114 @@ using Microsoft.VisualStudio.TestTools.UnitTesting; -namespace SoulMemory.Tests +namespace SoulMemory.Tests; + +[TestClass] +public class ResultTests { - [TestClass] - public class ResultTests + [TestMethod] + public void Result_Ok() + { + Result result = Result.Ok(); + + Assert.IsNotNull(result); + Assert.IsTrue(result.IsOk); + Assert.IsFalse(result.IsErr); + Assert.That.DoesNotThrow(result.Unwrap); + Assert.AreEqual("Ok", result.ToString()); + } + + [TestMethod] + public void Result_Err() + { + Result result = Result.Err(); + + Assert.IsNotNull(result); + Assert.IsFalse(result.IsOk); + Assert.IsFalse(result); + Assert.IsTrue(result.IsErr); + Assert.ThrowsException(result.Unwrap); + Assert.AreEqual("Err", result.ToString()); + } + + [TestMethod] + public void ResultOk_Ok() + { + ResultOk result = Result.Ok("test"); + + Assert.IsNotNull(result); + Assert.IsTrue(result.IsOk); + Assert.IsTrue(result); + Assert.IsFalse(result.IsErr); + Assert.That.DoesNotThrow(() => result.Unwrap()); + Assert.AreEqual("test", result.Unwrap()); + Assert.AreEqual("Ok: test", result.ToString()); + } + + [TestMethod] + public void ResultOk_Err() + { + ResultOk result = Result.Err(); + + Assert.IsNotNull(result); + Assert.IsFalse(result.IsOk); + Assert.IsFalse(result); + Assert.IsTrue(result.IsErr); + Assert.ThrowsException(() => result.Unwrap()); + Assert.AreEqual("Err", result.ToString()); + } + + [TestMethod] + public void ResultErr_Ok() + { + ResultErr result = Result.Ok(); + + Assert.IsNotNull(result); + Assert.IsTrue(result.IsOk); + Assert.IsTrue(result); + Assert.IsFalse(result.IsErr); + Assert.AreEqual(default, result.GetErr()); + Assert.That.DoesNotThrow(() => result.Unwrap()); + Assert.AreEqual("Ok", result.ToString()); + } + + [TestMethod] + public void ResultErr_Err() + { + ResultErr result = Result.Err("test"); + + Assert.IsNotNull(result); + Assert.IsFalse(result.IsOk); + Assert.IsFalse(result); + Assert.IsTrue(result.IsErr); + Assert.ThrowsException(() => result.Unwrap()); + Assert.AreEqual("test", result.GetErr()); + Assert.AreEqual("Err: test", result.ToString()); + } + + [TestMethod] + public void ResultOkErr_Ok() + { + Result result = Result.Ok(true); + Assert.IsNotNull(result); + Assert.IsTrue(result.IsOk); + Assert.IsTrue(result); + Assert.IsFalse(result.IsErr); + Assert.IsTrue(result.Unwrap()); + Assert.AreEqual(default, result.GetErr()); + Assert.AreEqual("Ok: True", result.ToString()); + } + + [TestMethod] + public void ResultOkErr_Err() { - [TestMethod] - public void Result_Ok() - { - Result result = Result.Ok(); - - Assert.IsNotNull(result); - Assert.IsTrue(result.IsOk); - Assert.IsFalse(result.IsErr); - Assert.That.DoesNotThrow(result.Unwrap); - Assert.AreEqual("Ok", result.ToString()); - } - - [TestMethod] - public void Result_Err() - { - Result result = Result.Err(); - - Assert.IsNotNull(result); - Assert.IsFalse(result.IsOk); - Assert.IsFalse(result); - Assert.IsTrue(result.IsErr); - Assert.ThrowsException(result.Unwrap); - Assert.AreEqual("Err", result.ToString()); - } - - [TestMethod] - public void ResultOk_Ok() - { - ResultOk result = Result.Ok("test"); - - Assert.IsNotNull(result); - Assert.IsTrue(result.IsOk); - Assert.IsTrue(result); - Assert.IsFalse(result.IsErr); - Assert.That.DoesNotThrow(() => result.Unwrap()); - Assert.AreEqual("test", result.Unwrap()); - Assert.AreEqual("Ok: test", result.ToString()); - } - - [TestMethod] - public void ResultOk_Err() - { - ResultOk result = Result.Err(); - - Assert.IsNotNull(result); - Assert.IsFalse(result.IsOk); - Assert.IsFalse(result); - Assert.IsTrue(result.IsErr); - Assert.ThrowsException(() => result.Unwrap()); - Assert.AreEqual("Err", result.ToString()); - } - - [TestMethod] - public void ResultErr_Ok() - { - ResultErr result = Result.Ok(); - - Assert.IsNotNull(result); - Assert.IsTrue(result.IsOk); - Assert.IsTrue(result); - Assert.IsFalse(result.IsErr); - Assert.AreEqual(default, result.GetErr()); - Assert.That.DoesNotThrow(() => result.Unwrap()); - Assert.AreEqual("Ok", result.ToString()); - } - - [TestMethod] - public void ResultErr_Err() - { - ResultErr result = Result.Err("test"); - - Assert.IsNotNull(result); - Assert.IsFalse(result.IsOk); - Assert.IsFalse(result); - Assert.IsTrue(result.IsErr); - Assert.ThrowsException(() => result.Unwrap()); - Assert.AreEqual("test", result.GetErr()); - Assert.AreEqual("Err: test", result.ToString()); - } - - [TestMethod] - public void ResultOkErr_Ok() - { - Result result = Result.Ok(true); - Assert.IsNotNull(result); - Assert.IsTrue(result.IsOk); - Assert.IsTrue(result); - Assert.IsFalse(result.IsErr); - Assert.IsTrue(result.Unwrap()); - Assert.AreEqual(default, result.GetErr()); - Assert.AreEqual("Ok: True", result.ToString()); - } - - [TestMethod] - public void ResultOkErr_Err() - { - Result result = Result.Err("test"); - Assert.IsNotNull(result); - Assert.IsFalse(result.IsOk); - Assert.IsFalse(result); - Assert.IsTrue(result.IsErr); - Assert.ThrowsException(() => result.Unwrap()); - Assert.AreEqual("test", result.GetErr()); - Assert.AreEqual("Err: test", result.ToString()); - } + Result result = Result.Err("test"); + Assert.IsNotNull(result); + Assert.IsFalse(result.IsOk); + Assert.IsFalse(result); + Assert.IsTrue(result.IsErr); + Assert.ThrowsException(() => result.Unwrap()); + Assert.AreEqual("test", result.GetErr()); + Assert.AreEqual("Err: test", result.ToString()); } } diff --git a/tests/SoulMemory.Tests/Vector3fTests.cs b/tests/SoulMemory.Tests/Vector3fTests.cs index 14e4d43..5686d3c 100644 --- a/tests/SoulMemory.Tests/Vector3fTests.cs +++ b/tests/SoulMemory.Tests/Vector3fTests.cs @@ -16,40 +16,39 @@ using Microsoft.VisualStudio.TestTools.UnitTesting; -namespace SoulMemory.Tests +namespace SoulMemory.Tests; + +[TestClass] +public class Vector3fTests { - [TestClass] - public class Vector3fTests + [TestMethod] + public void Default_Constructor() { - [TestMethod] - public void Default_Constructor() - { - var vec = new Vector3f(); - Assert.AreEqual(0.0f, vec.X); - Assert.AreEqual(0.0f, vec.Y); - Assert.AreEqual(0.0f, vec.Z); - Assert.AreEqual($"{0.0f:N2}, {0.0:N2}, {0.0:N2}", vec.ToString()); - } + var vec = new Vector3f(); + Assert.AreEqual(0.0f, vec.X); + Assert.AreEqual(0.0f, vec.Y); + Assert.AreEqual(0.0f, vec.Z); + Assert.AreEqual($"{0.0f:N2}, {0.0:N2}, {0.0:N2}", vec.ToString()); + } - [TestMethod] - public void Constructor() - { - var vec = new Vector3f(1.1f, 2.2f, 3.3f); - Assert.AreEqual(1.1f, vec.X); - Assert.AreEqual(2.2f, vec.Y); - Assert.AreEqual(3.3f, vec.Z); - Assert.AreEqual($"{1.1f:N2}, {2.20:N2}, {3.30:N2}", vec.ToString()); - } + [TestMethod] + public void Constructor() + { + var vec = new Vector3f(1.1f, 2.2f, 3.3f); + Assert.AreEqual(1.1f, vec.X); + Assert.AreEqual(2.2f, vec.Y); + Assert.AreEqual(3.3f, vec.Z); + Assert.AreEqual($"{1.1f:N2}, {2.20:N2}, {3.30:N2}", vec.ToString()); + } - [TestMethod] - public void Clone() - { - var original = new Vector3f(1.1f, 2.2f, 3.3f); - var vec = original.Clone(); - Assert.AreEqual(1.1f, vec.X); - Assert.AreEqual(2.2f, vec.Y); - Assert.AreEqual(3.3f, vec.Z); - Assert.AreEqual($"{1.1f:N2}, {2.20:N2}, {3.30:N2}", vec.ToString()); - } + [TestMethod] + public void Clone() + { + var original = new Vector3f(1.1f, 2.2f, 3.3f); + var vec = original.Clone(); + Assert.AreEqual(1.1f, vec.X); + Assert.AreEqual(2.2f, vec.Y); + Assert.AreEqual(3.3f, vec.Z); + Assert.AreEqual($"{1.1f:N2}, {2.20:N2}, {3.30:N2}", vec.ToString()); } } From 19c6c6e0e58037446cac9547d50a481675bf561f Mon Sep 17 00:00:00 2001 From: Frank van der Stam Date: Fri, 24 Jan 2025 11:01:49 +0100 Subject: [PATCH 06/28] Addressing code quality: redudant types with new(), collection expressions and primary constructors (solution wide), couple class specific nullability fixes --- src/SoulMemory/ArmoredCore6/ArmoredCore6.cs | 2 +- src/SoulMemory/DarkSouls1/DarkSouls1.cs | 2 +- src/SoulMemory/DarkSouls1/DropMod.cs | 67 +- src/SoulMemory/DarkSouls1/Item.cs | 1396 +++-- .../DarkSouls1/Parameters/AiStandardInfo.cs | 4 +- .../DarkSouls1/Parameters/AtkParam.cs | 4 +- .../DarkSouls1/Parameters/BehaviorParam.cs | 4 +- .../DarkSouls1/Parameters/BulletParam.cs | 4 +- .../DarkSouls1/Parameters/CalcCorrectGraph.cs | 4 +- .../DarkSouls1/Parameters/CharaInitParam.cs | 4 +- .../DarkSouls1/Parameters/CoolTimeParam.cs | 4 +- .../DarkSouls1/Parameters/DofBank.cs | 4 +- .../Parameters/EnemyStandardInfo.cs | 4 +- .../DarkSouls1/Parameters/EnvLightTexBank.cs | 4 +- .../Parameters/EquipMtrlSetParam.cs | 4 +- .../Parameters/EquipParamAccessory.cs | 4 +- .../DarkSouls1/Parameters/EquipParamGoods.cs | 4 +- .../Parameters/EquipParamProtector.cs | 4 +- .../DarkSouls1/Parameters/EquipParamWeapon.cs | 4 +- .../DarkSouls1/Parameters/FaceGenParam.cs | 4 +- .../DarkSouls1/Parameters/FogBank.cs | 4 +- .../DarkSouls1/Parameters/GameAreaParam.cs | 4 +- .../DarkSouls1/Parameters/HitMtrlParam.cs | 4 +- .../DarkSouls1/Parameters/ItemLotParam.cs | 4 +- .../DarkSouls1/Parameters/KnockBackParam.cs | 4 +- .../DarkSouls1/Parameters/LensFlareBank.cs | 4 +- .../DarkSouls1/Parameters/LensFlareExBank.cs | 4 +- .../DarkSouls1/Parameters/LevelSyncParam.cs | 4 +- .../DarkSouls1/Parameters/LightBank.cs | 4 +- .../Parameters/LightScatteringBank.cs | 4 +- .../DarkSouls1/Parameters/LockCamParam.cs | 4 +- .../DarkSouls1/Parameters/LodBank.cs | 4 +- .../DarkSouls1/Parameters/MagicParam.cs | 4 +- .../Parameters/MenuParamColorTable.cs | 4 +- .../DarkSouls1/Parameters/MoveParam.cs | 4 +- .../DarkSouls1/Parameters/NpcParam.cs | 4 +- .../DarkSouls1/Parameters/NpcThinkParam.cs | 4 +- .../DarkSouls1/Parameters/ObjActParam.cs | 4 +- .../DarkSouls1/Parameters/ObjectParam.cs | 4 +- .../DarkSouls1/Parameters/PointLightBank.cs | 4 +- .../DarkSouls1/Parameters/QwcChangeParam.cs | 4 +- .../DarkSouls1/Parameters/QwcJudgeParam.cs | 4 +- .../DarkSouls1/Parameters/RagdollParam.cs | 4 +- .../Parameters/ReinforceParamProtector.cs | 4 +- .../Parameters/ReinforceParamWeapon.cs | 4 +- .../DarkSouls1/Parameters/ShadowBank.cs | 4 +- .../DarkSouls1/Parameters/ShopLineupParam.cs | 4 +- .../DarkSouls1/Parameters/SkeletonParam.cs | 4 +- .../DarkSouls1/Parameters/SpEffect.cs | 4 +- .../DarkSouls1/Parameters/SpEffectVfx.cs | 4 +- .../DarkSouls1/Parameters/TalkParam.cs | 4 +- .../DarkSouls1/Parameters/ThrowParam.cs | 4 +- .../DarkSouls1/Parameters/ToneCorrectBank.cs | 4 +- .../DarkSouls1/Parameters/ToneMapBank.cs | 4 +- .../Parameters/WhiteCoolTimeParam.cs | 4 +- src/SoulMemory/DarkSouls1/Ptde.cs | 78 +- src/SoulMemory/DarkSouls1/Remastered.cs | 40 +- src/SoulMemory/DarkSouls1/Sl2Reader.cs | 3 +- src/SoulMemory/DarkSouls2/Data.cs | 174 +- src/SoulMemory/DarkSouls2/scholar.cs | 12 +- src/SoulMemory/DarkSouls2/vanilla.cs | 12 +- src/SoulMemory/DarkSouls3/DarkSouls3.cs | 18 +- src/SoulMemory/EldenRing/EldenRing.cs | 82 +- src/SoulMemory/EldenRing/Item.cs | 5306 ++++++++--------- src/SoulMemory/FlagWatcher.cs | 2 +- src/SoulMemory/Memory/IMemory.cs | 12 +- src/SoulMemory/Memory/MemoryScanner.cs | 2 +- src/SoulMemory/Memory/Pointer.cs | 6 +- src/SoulMemory/Memory/PointerNode.cs | 6 +- src/SoulMemory/Memory/TreeBuilder.cs | 2 +- src/SoulMemory/MemoryV2/ByteArrayMemory.cs | 8 +- .../MemoryV2/Memory/MemoryExtensions.cs | 4 +- .../MemoryV2/Memory/MemoryScanner.cs | 2 +- src/SoulMemory/MemoryV2/Memory/Pointer.cs | 2 +- .../PointerTreeBuilder/PointerNode.cs | 4 +- .../PointerTreeBuilder/PointerTreeBuilder.cs | 2 +- .../MemoryV2/Process/ProcessHook.cs | 14 +- .../Parameters/ParamClassGenerator.cs | 20 +- src/SoulMemory/Parameters/ParamData.cs | 6 +- .../Parameters/ParamFieldAttribute.cs | 15 +- src/SoulMemory/Result.cs | 18 +- src/SoulMemory/Sekiro/Sekiro.cs | 51 +- src/SoulMemory/VersionAttribute.cs | 11 +- src/SoulSplitter/Hotkeys/GlobalHotKey.cs | 4 +- src/SoulSplitter/Logger.cs | 2 +- src/SoulSplitter/SoulComponent.cs | 8 +- .../Splitters/ArmoredCore6Splitter.cs | 10 +- .../Splitters/DarkSouls1Splitter.cs | 7 +- .../Splitters/DarkSouls2Splitter.cs | 2 +- .../Splitters/DarkSouls3Splitter.cs | 2 +- .../Splitters/EldenRingSplitter.cs | 2 +- src/SoulSplitter/Splitters/SekiroSplitter.cs | 2 +- .../UI/DarkSouls1/DarkSouls1ViewModel.cs | 8 +- .../DarkSouls1/DarkSouls1ViewModelRefactor.cs | 28 +- .../UI/DarkSouls2/DarkSouls2ViewModel.cs | 6 +- .../UI/DarkSouls2/HierarchicalViewModel.cs | 4 +- .../UI/DarkSouls3/DarkSouls3ViewModel.cs | 6 +- .../UI/EldenRing/EldenRingViewModel.cs | 14 +- .../UI/EldenRing/PositionViewModel.cs | 2 +- .../UI/EldenRing/SplitViewModel.cs | 4 +- src/SoulSplitter/UI/Generic/BaseViewModel.cs | 4 +- .../UI/Generic/FlagTrackerViewModel.cs | 6 +- .../UI/Generic/HierarchicalViewModel.cs | 6 +- src/SoulSplitter/UI/Generic/RelayCommand.cs | 16 +- src/SoulSplitter/UI/Generic/VectorSize.cs | 2 +- src/SoulSplitter/UI/MainViewModel.cs | 50 +- src/SoulSplitter/UI/Sekiro/SekiroViewModel.cs | 4 +- .../UI/Validation/TextToRgbHexValidator.cs | 2 +- .../UIv2/SplitSettingsControl.xaml.cs | 51 +- .../ViewModels/Games/ArmoredCore6ViewModel.cs | 16 +- .../MemoryV2/ProcessHookTests.cs | 2 +- .../SoulMemory.Tests/Mocks/ProcessHookMock.cs | 8 +- 112 files changed, 3822 insertions(+), 4039 deletions(-) diff --git a/src/SoulMemory/ArmoredCore6/ArmoredCore6.cs b/src/SoulMemory/ArmoredCore6/ArmoredCore6.cs index 88c552b..4562b69 100644 --- a/src/SoulMemory/ArmoredCore6/ArmoredCore6.cs +++ b/src/SoulMemory/ArmoredCore6/ArmoredCore6.cs @@ -53,7 +53,7 @@ public ArmoredCore6(IProcessHook? processHook = null) _armoredCore6.Hooked += () => { - _noLogo.WriteBytes(0x0, new byte[] { 0x90, 0x90 }); + _noLogo.WriteBytes(0x0, [0x90, 0x90]); return InjectMods(); }; } diff --git a/src/SoulMemory/DarkSouls1/DarkSouls1.cs b/src/SoulMemory/DarkSouls1/DarkSouls1.cs index ea20fb3..dc6ff21 100644 --- a/src/SoulMemory/DarkSouls1/DarkSouls1.cs +++ b/src/SoulMemory/DarkSouls1/DarkSouls1.cs @@ -37,7 +37,7 @@ public class DarkSouls1 : IDarkSouls1 public int NgCount() => _darkSouls1?.NgCount() ?? 0; public int GetCurrentSaveSlot() => _darkSouls1?.GetCurrentSaveSlot() ?? -1; public void ResetInventoryIndices() => _darkSouls1?.ResetInventoryIndices(); - public List GetInventory() => _darkSouls1?.GetInventory() ?? new List(); + public List GetInventory() => _darkSouls1?.GetInventory() ?? []; public bool AreCreditsRolling() => _darkSouls1?.AreCreditsRolling() ?? false; public BonfireState GetBonfireState(Bonfire bonfire) => _darkSouls1?.GetBonfireState(bonfire) ?? BonfireState.Unknown; public string? GetSaveFileLocation() => _darkSouls1?.GetSaveFileLocation(); diff --git a/src/SoulMemory/DarkSouls1/DropMod.cs b/src/SoulMemory/DarkSouls1/DropMod.cs index b383c72..15877a8 100644 --- a/src/SoulMemory/DarkSouls1/DropMod.cs +++ b/src/SoulMemory/DarkSouls1/DropMod.cs @@ -19,14 +19,9 @@ namespace SoulMemory.DarkSouls1; -public class DropMod +public class DropMod(IDarkSouls1 darkSouls) { - private readonly IDarkSouls1 _darkSouls; - - public DropMod(IDarkSouls1 darkSouls) - { - _darkSouls = darkSouls; - } + private readonly IDarkSouls1 _darkSouls = darkSouls; public void InitBkh() { @@ -105,50 +100,40 @@ private void GuaranteeDrop(int rowId, int itemId) } - private readonly List _switchableWeapons = new List() - { - //Darkroot - new SwitchableDrop(ItemType.StoneGreatsword , 23800000, 306000 , 1503000), + private readonly List _switchableWeapons = + [ + new SwitchableDrop(ItemType.StoneGreatsword, 23800000, 306000, 1503000), //Anor londo - new SwitchableDrop(ItemType.SilverKnightStraightSword, 24100000, 208000 , 1473000), - new SwitchableDrop(ItemType.SilverKnightSpear , 24100300, 1006000, 1473000), - + new SwitchableDrop(ItemType.SilverKnightStraightSword, 24100000, 208000, 1473000), + new SwitchableDrop(ItemType.SilverKnightSpear, 24100300, 1006000, 1473000), + //kiln - new SwitchableDrop(ItemType.BlackKnightHalberd , 27905300, 1105000, 1474000), - new SwitchableDrop(ItemType.BlackKnightGreataxe , 27905200, 753000 , 1474000), - new SwitchableDrop(ItemType.BlackKnightSword , 27905000, 310000 , 1474000), - new SwitchableDrop(ItemType.BlackKnightGreatsword , 27905100, 355000 , 1474000), - + new SwitchableDrop(ItemType.BlackKnightHalberd, 27905300, 1105000, 1474000), + new SwitchableDrop(ItemType.BlackKnightGreataxe, 27905200, 753000, 1474000), + new SwitchableDrop(ItemType.BlackKnightSword, 27905000, 310000, 1474000), + new SwitchableDrop(ItemType.BlackKnightGreatsword, 27905100, 355000, 1474000), + //Darkroot Garden - new SwitchableDrop(ItemType.BlackKnightHalberd , 27901000, 1105000, 1474000), - + new SwitchableDrop(ItemType.BlackKnightHalberd, 27901000, 1105000, 1474000), + //undead burg - new SwitchableDrop(ItemType.BlackKnightSword , 27900000, 1105000, 1474000), + new SwitchableDrop(ItemType.BlackKnightSword, 27900000, 1105000, 1474000), //Asylum - new SwitchableDrop(ItemType.BlackKnightSword , 27907000, 310000 , 1474000), + new SwitchableDrop(ItemType.BlackKnightSword, 27907000, 310000, 1474000), //Catacombs - new SwitchableDrop(ItemType.BlackKnightGreataxe , 27902000, 753000 , 1474000), - new SwitchableDrop(ItemType.BlackKnightHalberd , 27903000, 1105000, 1474000), - }; + new SwitchableDrop(ItemType.BlackKnightGreataxe, 27902000, 753000, 1474000), + new SwitchableDrop(ItemType.BlackKnightHalberd, 27903000, 1105000, 1474000) + ]; - private struct SwitchableDrop + private struct SwitchableDrop(ItemType switchItem, int rowId, int itemId1, int itemId2) { - public SwitchableDrop(ItemType switchItem, int rowId, int itemId1, int itemId2) - { - ShouldSwitch = true; - SwitchItem = switchItem ; - RowId = rowId ; - ItemId1 = itemId1 ; - ItemId2 = itemId2 ; - } - - public bool ShouldSwitch; - public ItemType SwitchItem; - public int RowId; - public int ItemId1; - public int ItemId2; + public bool ShouldSwitch = true; + public ItemType SwitchItem = switchItem; + public int RowId = rowId; + public int ItemId1 = itemId1; + public int ItemId2 = itemId2; } } diff --git a/src/SoulMemory/DarkSouls1/Item.cs b/src/SoulMemory/DarkSouls1/Item.cs index d206aef..ef7bd99 100644 --- a/src/SoulMemory/DarkSouls1/Item.cs +++ b/src/SoulMemory/DarkSouls1/Item.cs @@ -23,25 +23,15 @@ namespace SoulMemory.DarkSouls1; [ExcludeFromCodeCoverage] -public class Item +public class Item(string name, int id, ItemType itemType, ItemCategory category, int stackLimit, ItemUpgrade upgrade) { - public Item(string name, int id, ItemType itemType, ItemCategory category, int stackLimit, ItemUpgrade upgrade) - { - Name = name; - Id = id; - ItemType = itemType; - Category = category; - StackLimit = stackLimit; - Upgrade = upgrade; - } - - public string Name { get; set; } - public int Id { get; set; } - public ItemType ItemType { get; set; } - public ItemCategory Category { get; set; } - public int StackLimit { get; set; } + public string Name { get; set; } = name; + public int Id { get; set; } = id; + public ItemType ItemType { get; set; } = itemType; + public ItemCategory Category { get; set; } = category; + public int StackLimit { get; set; } = stackLimit; public int Quantity { get; set; } - public ItemUpgrade Upgrade { get; set; } + public ItemUpgrade Upgrade { get; set; } = upgrade; public ItemInfusion Infusion { get; set; } public int UpgradeLevel { get; set; } @@ -114,704 +104,704 @@ public bool RestrictUpgrade } } - public static readonly ReadOnlyCollection AllItems = new ReadOnlyCollection(new List() + public static readonly ReadOnlyCollection AllItems = new(new List() { - new Item("Catarina Helm" , 10000, ItemType.CatarinaHelm , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Catarina Armor" , 11000, ItemType.CatarinaArmor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Catarina Gauntlets" , 12000, ItemType.CatarinaGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Catarina Leggings" , 13000, ItemType.CatarinaLeggings , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Paladin Helm" , 20000, ItemType.PaladinHelm , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Paladin Armor" , 21000, ItemType.PaladinArmor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Paladin Gauntlets" , 22000, ItemType.PaladinGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Paladin Leggings" , 23000, ItemType.PaladinLeggings , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Dark Mask" , 40000, ItemType.DarkMask , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Dark Armor" , 41000, ItemType.DarkArmor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Dark Gauntlets" , 42000, ItemType.DarkGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Dark Leggings" , 43000, ItemType.DarkLeggings , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Brigand Hood" , 50000, ItemType.BrigandHood , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Brigand Armor" , 51000, ItemType.BrigandArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Brigand Gauntlets" , 52000, ItemType.BrigandGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Brigand Trousers" , 53000, ItemType.BrigandTrousers , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Shadow Mask" , 60000, ItemType.ShadowMask , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Shadow Garb" , 61000, ItemType.ShadowGarb , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Shadow Gauntlets" , 62000, ItemType.ShadowGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Shadow Leggings" , 63000, ItemType.ShadowLeggings , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Black Iron Helm" , 70000, ItemType.BlackIronHelm , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Black Iron Armor" , 71000, ItemType.BlackIronArmor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Black Iron Gauntlets" , 72000, ItemType.BlackIronGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Black Iron Leggings" , 73000, ItemType.BlackIronLeggings , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Smough's Helm" , 80000, ItemType.SmoughsHelm , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Smough's Armor" , 81000, ItemType.SmoughsArmor , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Smough's Gauntlets" , 82000, ItemType.SmoughsGauntlets , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Smough's Leggings" , 83000, ItemType.SmoughsLeggings , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Six-Eyed Helm of the Channelers" , 90000, ItemType.SixEyedHelmoftheChannelers , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Robe of the Channelers" , 91000, ItemType.RobeoftheChannelers , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Gauntlets of the Channelers" , 92000, ItemType.GauntletsoftheChannelers , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Waistcloth of the Channelers" , 93000, ItemType.WaistclothoftheChannelers , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Helm of Favor" , 100000, ItemType.HelmofFavor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Embraced Armor of Favor" , 101000, ItemType.EmbracedArmorofFavor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Gauntlets of Favor" , 102000, ItemType.GauntletsofFavor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Leggings of Favor" , 103000, ItemType.LeggingsofFavor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Helm of the Wise" , 110000, ItemType.HelmoftheWise , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Armor of the Glorious" , 111000, ItemType.ArmoroftheGlorious , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Gauntlets of the Vanquisher" , 112000, ItemType.GauntletsoftheVanquisher , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Boots of the Explorer" , 113000, ItemType.BootsoftheExplorer , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Stone Helm" , 120000, ItemType.StoneHelm , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Stone Armor" , 121000, ItemType.StoneArmor , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Stone Gauntlets" , 122000, ItemType.StoneGauntlets , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Stone Leggings" , 123000, ItemType.StoneLeggings , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Crystalline Helm" , 130000, ItemType.CrystallineHelm , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Crystalline Armor" , 131000, ItemType.CrystallineArmor , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Crystalline Gauntlets" , 132000, ItemType.CrystallineGauntlets , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Crystalline Leggings" , 133000, ItemType.CrystallineLeggings , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Mask of the Sealer" , 140000, ItemType.MaskoftheSealer , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Crimson Robe" , 141000, ItemType.CrimsonRobe , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Crimson Gloves" , 142000, ItemType.CrimsonGloves , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Crimson Waistcloth" , 143000, ItemType.CrimsonWaistcloth , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Mask of Velka" , 150000, ItemType.MaskofVelka , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Black Cleric Robe" , 151000, ItemType.BlackClericRobe , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Black Manchette" , 152000, ItemType.BlackManchette , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Black Tights" , 153000, ItemType.BlackTights , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Iron Helm" , 160000, ItemType.IronHelm , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Armor of the Sun" , 161000, ItemType.ArmoroftheSun , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Iron Bracelet" , 162000, ItemType.IronBracelet , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Iron Leggings" , 163000, ItemType.IronLeggings , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Chain Helm" , 170000, ItemType.ChainHelm , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Chain Armor" , 171000, ItemType.ChainArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Leather Gauntlets" , 172000, ItemType.LeatherGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Chain Leggings" , 173000, ItemType.ChainLeggings , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Cleric Helm" , 180000, ItemType.ClericHelm , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Cleric Armor" , 181000, ItemType.ClericArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Cleric Gauntlets" , 182000, ItemType.ClericGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Cleric Leggings" , 183000, ItemType.ClericLeggings , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Sunlight Maggot" , 190000, ItemType.SunlightMaggot , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Helm of Thorns" , 200000, ItemType.HelmofThorns , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Armor of Thorns" , 201000, ItemType.ArmorofThorns , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Gauntlets of Thorns" , 202000, ItemType.GauntletsofThorns , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Leggings of Thorns" , 203000, ItemType.LeggingsofThorns , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Standard Helm" , 210000, ItemType.StandardHelm , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Hard Leather Armor" , 211000, ItemType.HardLeatherArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Hard Leather Gauntlets" , 212000, ItemType.HardLeatherGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Hard Leather Boots" , 213000, ItemType.HardLeatherBoots , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Sorcerer Hat" , 220000, ItemType.SorcererHat , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Sorcerer Cloak" , 221000, ItemType.SorcererCloak , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Sorcerer Gauntlets" , 222000, ItemType.SorcererGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Sorcerer Boots" , 223000, ItemType.SorcererBoots , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Tattered Cloth Hood" , 230000, ItemType.TatteredClothHood , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Tattered Cloth Robe" , 231000, ItemType.TatteredClothRobe , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Tattered Cloth Manchette" , 232000, ItemType.TatteredClothManchette , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Heavy Boots" , 233000, ItemType.HeavyBoots , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Pharis's Hat" , 240000, ItemType.PharissHat , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Leather Armor" , 241000, ItemType.LeatherArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Leather Gloves" , 242000, ItemType.LeatherGloves , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Leather Boots" , 243000, ItemType.LeatherBoots , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Painting Guardian Hood" , 250000, ItemType.PaintingGuardianHood , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Painting Guardian Robe" , 251000, ItemType.PaintingGuardianRobe , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Painting Guardian Gloves" , 252000, ItemType.PaintingGuardianGloves , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Painting Guardian Waistcloth" , 253000, ItemType.PaintingGuardianWaistcloth , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Ornstein's Helm" , 270000, ItemType.OrnsteinsHelm , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Ornstein's Armor" , 271000, ItemType.OrnsteinsArmor , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Ornstein's Gauntlets" , 272000, ItemType.OrnsteinsGauntlets , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Ornstein's Leggings" , 273000, ItemType.OrnsteinsLeggings , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Eastern Helm" , 280000, ItemType.EasternHelm , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Eastern Armor" , 281000, ItemType.EasternArmor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Eastern Gauntlets" , 282000, ItemType.EasternGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Eastern Leggings" , 283000, ItemType.EasternLeggings , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Xanthous Crown" , 290000, ItemType.XanthousCrown , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Xanthous Overcoat" , 291000, ItemType.XanthousOvercoat , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Xanthous Gloves" , 292000, ItemType.XanthousGloves , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Xanthous Waistcloth" , 293000, ItemType.XanthousWaistcloth , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Thief Mask" , 300000, ItemType.ThiefMask , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Black Leather Armor" , 301000, ItemType.BlackLeatherArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Black Leather Gloves" , 302000, ItemType.BlackLeatherGloves , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Black Leather Boots" , 303000, ItemType.BlackLeatherBoots , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Priest's Hat" , 310000, ItemType.PriestsHat , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Holy Robe" , 311000, ItemType.HolyRobe , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Traveling Gloves (Holy)" , 312000, ItemType.TravelingGlovesHoly , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Holy Trousers" , 313000, ItemType.HolyTrousers , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Black Knight Helm" , 320000, ItemType.BlackKnightHelm , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Black Knight Armor" , 321000, ItemType.BlackKnightArmor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Black Knight Gauntlets" , 322000, ItemType.BlackKnightGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Black Knight Leggings" , 323000, ItemType.BlackKnightLeggings , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Crown of Dusk" , 330000, ItemType.CrownofDusk , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Antiquated Dress" , 331000, ItemType.AntiquatedDress , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Antiquated Gloves" , 332000, ItemType.AntiquatedGloves , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Antiquated Skirt" , 333000, ItemType.AntiquatedSkirt , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Witch Hat" , 340000, ItemType.WitchHat , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Witch Cloak" , 341000, ItemType.WitchCloak , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Witch Gloves" , 342000, ItemType.WitchGloves , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Witch Skirt" , 343000, ItemType.WitchSkirt , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Elite Knight Helm" , 350000, ItemType.EliteKnightHelm , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Elite Knight Armor" , 351000, ItemType.EliteKnightArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Elite Knight Gauntlets" , 352000, ItemType.EliteKnightGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Elite Knight Leggings" , 353000, ItemType.EliteKnightLeggings , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Wanderer Hood" , 360000, ItemType.WandererHood , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Wanderer Coat" , 361000, ItemType.WandererCoat , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Wanderer Manchette" , 362000, ItemType.WandererManchette , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Wanderer Boots" , 363000, ItemType.WandererBoots , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Big Hat" , 380000, ItemType.BigHat , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Sage Robe" , 381000, ItemType.SageRobe , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Traveling Gloves (Sage)" , 382000, ItemType.TravelingGlovesSage , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Traveling Boots" , 383000, ItemType.TravelingBoots , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Knight Helm" , 390000, ItemType.KnightHelm , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Knight Armor" , 391000, ItemType.KnightArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Knight Gauntlets" , 392000, ItemType.KnightGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Knight Leggings" , 393000, ItemType.KnightLeggings , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Dingy Hood" , 400000, ItemType.DingyHood , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Dingy Robe" , 401000, ItemType.DingyRobe , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Dingy Gloves" , 402000, ItemType.DingyGloves , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Blood-Stained Skirt" , 403000, ItemType.BloodStainedSkirt , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Maiden Hood" , 410000, ItemType.MaidenHood , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Maiden Robe" , 411000, ItemType.MaidenRobe , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Maiden Gloves" , 412000, ItemType.MaidenGloves , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Maiden Skirt" , 413000, ItemType.MaidenSkirt , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Silver Knight Helm" , 420000, ItemType.SilverKnightHelm , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Silver Knight Armor" , 421000, ItemType.SilverKnightArmor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Silver Knight Gauntlets" , 422000, ItemType.SilverKnightGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Silver Knight Leggings" , 423000, ItemType.SilverKnightLeggings , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Havel's Helm" , 440000, ItemType.HavelsHelm , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Havel's Armor" , 441000, ItemType.HavelsArmor , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Havel's Gauntlets" , 442000, ItemType.HavelsGauntlets , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Havel's Leggings" , 443000, ItemType.HavelsLeggings , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Brass Helm" , 450000, ItemType.BrassHelm , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Brass Armor" , 451000, ItemType.BrassArmor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Brass Gauntlets" , 452000, ItemType.BrassGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Brass Leggings" , 453000, ItemType.BrassLeggings , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Gold-Hemmed Black Hood" , 460000, ItemType.GoldHemmedBlackHood , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Gold-Hemmed Black Cloak" , 461000, ItemType.GoldHemmedBlackCloak , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Gold-Hemmed Black Gloves" , 462000, ItemType.GoldHemmedBlackGloves , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Gold-Hemmed Black Skirt" , 463000, ItemType.GoldHemmedBlackSkirt , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Golem Helm" , 470000, ItemType.GolemHelm , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Golem Armor" , 471000, ItemType.GolemArmor , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Golem Gauntlets" , 472000, ItemType.GolemGauntlets , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Golem Leggings" , 473000, ItemType.GolemLeggings , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Hollow Soldier Helm" , 480000, ItemType.HollowSoldierHelm , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Hollow Soldier Armor" , 481000, ItemType.HollowSoldierArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Hollow Soldier Waistcloth" , 483000, ItemType.HollowSoldierWaistcloth , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Steel Helm" , 490000, ItemType.SteelHelm , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Steel Armor" , 491000, ItemType.SteelArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Steel Gauntlets" , 492000, ItemType.SteelGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Steel Leggings" , 493000, ItemType.SteelLeggings , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Hollow Thief's Hood" , 500000, ItemType.HollowThiefsHood , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Hollow Thief's Leather Armor" , 501000, ItemType.HollowThiefsLeatherArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Hollow Thief's Tights" , 503000, ItemType.HollowThiefsTights , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Balder Helm" , 510000, ItemType.BalderHelm , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Balder Armor" , 511000, ItemType.BalderArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Balder Gauntlets" , 512000, ItemType.BalderGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Balder Leggings" , 513000, ItemType.BalderLeggings , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Hollow Warrior Helm" , 520000, ItemType.HollowWarriorHelm , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Hollow Warrior Armor" , 521000, ItemType.HollowWarriorArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Hollow Warrior Waistcloth" , 523000, ItemType.HollowWarriorWaistcloth , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Giant Helm" , 530000, ItemType.GiantHelm , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Giant Armor" , 531000, ItemType.GiantArmor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Giant Gauntlets" , 532000, ItemType.GiantGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Giant Leggings" , 533000, ItemType.GiantLeggings , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Crown of the Dark Sun" , 540000, ItemType.CrownoftheDarkSun , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Moonlight Robe" , 541000, ItemType.MoonlightRobe , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Moonlight Gloves" , 542000, ItemType.MoonlightGloves , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Moonlight Waistcloth" , 543000, ItemType.MoonlightWaistcloth , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Crown of the Great Lord" , 550000, ItemType.CrownoftheGreatLord , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Robe of the Great Lord" , 551000, ItemType.RobeoftheGreatLord , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Bracelet of the Great Lord" , 552000, ItemType.BraceletoftheGreatLord , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Anklet of the Great Lord" , 553000, ItemType.AnkletoftheGreatLord , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Sack" , 560000, ItemType.Sack , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Symbol of Avarice" , 570000, ItemType.SymbolofAvarice , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Royal Helm" , 580000, ItemType.RoyalHelm , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Mask of the Father" , 590000, ItemType.MaskoftheFather , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Mask of the Mother" , 600000, ItemType.MaskoftheMother , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Mask of the Child" , 610000, ItemType.MaskoftheChild , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Fang Boar Helm" , 620000, ItemType.FangBoarHelm , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Gargoyle Helm" , 630000, ItemType.GargoyleHelm , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Black Sorcerer Hat" , 640000, ItemType.BlackSorcererHat , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Black Sorcerer Cloak" , 641000, ItemType.BlackSorcererCloak , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Black Sorcerer Gauntlets" , 642000, ItemType.BlackSorcererGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Black Sorcerer Boots" , 643000, ItemType.BlackSorcererBoots , ItemCategory.Armor , 1, ItemUpgrade.Armor ), - new Item("Helm of Artorias" , 660000, ItemType.HelmofArtorias , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Armor of Artorias" , 661000, ItemType.ArmorofArtorias , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Gauntlets of Artorias" , 662000, ItemType.GauntletsofArtorias , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Leggings of Artorias" , 663000, ItemType.LeggingsofArtorias , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Porcelain Mask" , 670000, ItemType.PorcelainMask , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Lord's Blade Robe" , 671000, ItemType.LordsBladeRobe , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Lord's Blade Gloves" , 672000, ItemType.LordsBladeGloves , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Lord's Blade Waistcloth" , 673000, ItemType.LordsBladeWaistcloth , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Gough's Helm" , 680000, ItemType.GoughsHelm , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Gough's Armor" , 681000, ItemType.GoughsArmor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Gough's Gauntlets" , 682000, ItemType.GoughsGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Gough's Leggings" , 683000, ItemType.GoughsLeggings , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Guardian Helm" , 690000, ItemType.GuardianHelm , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Guardian Armor" , 691000, ItemType.GuardianArmor , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Guardian Gauntlets" , 692000, ItemType.GuardianGauntlets , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Guardian Leggings" , 693000, ItemType.GuardianLeggings , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Snickering Top Hat" , 700000, ItemType.SnickeringTopHat , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Chester's Long Coat" , 701000, ItemType.ChestersLongCoat , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Chester's Gloves" , 702000, ItemType.ChestersGloves , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Chester's Trousers" , 703000, ItemType.ChestersTrousers , ItemCategory.Armor , 1, ItemUpgrade.Unique ), - new Item("Bloated Head" , 710000, ItemType.BloatedHead , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Bloated Sorcerer Head" , 720000, ItemType.BloatedSorcererHead , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Catarina Helm" , 10000, ItemType.CatarinaHelm , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Catarina Armor" , 11000, ItemType.CatarinaArmor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Catarina Gauntlets" , 12000, ItemType.CatarinaGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Catarina Leggings" , 13000, ItemType.CatarinaLeggings , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Paladin Helm" , 20000, ItemType.PaladinHelm , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Paladin Armor" , 21000, ItemType.PaladinArmor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Paladin Gauntlets" , 22000, ItemType.PaladinGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Paladin Leggings" , 23000, ItemType.PaladinLeggings , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Dark Mask" , 40000, ItemType.DarkMask , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Dark Armor" , 41000, ItemType.DarkArmor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Dark Gauntlets" , 42000, ItemType.DarkGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Dark Leggings" , 43000, ItemType.DarkLeggings , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Brigand Hood" , 50000, ItemType.BrigandHood , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Brigand Armor" , 51000, ItemType.BrigandArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Brigand Gauntlets" , 52000, ItemType.BrigandGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Brigand Trousers" , 53000, ItemType.BrigandTrousers , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Shadow Mask" , 60000, ItemType.ShadowMask , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Shadow Garb" , 61000, ItemType.ShadowGarb , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Shadow Gauntlets" , 62000, ItemType.ShadowGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Shadow Leggings" , 63000, ItemType.ShadowLeggings , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Black Iron Helm" , 70000, ItemType.BlackIronHelm , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Black Iron Armor" , 71000, ItemType.BlackIronArmor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Black Iron Gauntlets" , 72000, ItemType.BlackIronGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Black Iron Leggings" , 73000, ItemType.BlackIronLeggings , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Smough's Helm" , 80000, ItemType.SmoughsHelm , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Smough's Armor" , 81000, ItemType.SmoughsArmor , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Smough's Gauntlets" , 82000, ItemType.SmoughsGauntlets , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Smough's Leggings" , 83000, ItemType.SmoughsLeggings , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Six-Eyed Helm of the Channelers" , 90000, ItemType.SixEyedHelmoftheChannelers , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Robe of the Channelers" , 91000, ItemType.RobeoftheChannelers , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Gauntlets of the Channelers" , 92000, ItemType.GauntletsoftheChannelers , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Waistcloth of the Channelers" , 93000, ItemType.WaistclothoftheChannelers , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Helm of Favor" , 100000, ItemType.HelmofFavor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Embraced Armor of Favor" , 101000, ItemType.EmbracedArmorofFavor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Gauntlets of Favor" , 102000, ItemType.GauntletsofFavor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Leggings of Favor" , 103000, ItemType.LeggingsofFavor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Helm of the Wise" , 110000, ItemType.HelmoftheWise , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Armor of the Glorious" , 111000, ItemType.ArmoroftheGlorious , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Gauntlets of the Vanquisher" , 112000, ItemType.GauntletsoftheVanquisher , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Boots of the Explorer" , 113000, ItemType.BootsoftheExplorer , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Stone Helm" , 120000, ItemType.StoneHelm , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Stone Armor" , 121000, ItemType.StoneArmor , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Stone Gauntlets" , 122000, ItemType.StoneGauntlets , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Stone Leggings" , 123000, ItemType.StoneLeggings , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Crystalline Helm" , 130000, ItemType.CrystallineHelm , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Crystalline Armor" , 131000, ItemType.CrystallineArmor , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Crystalline Gauntlets" , 132000, ItemType.CrystallineGauntlets , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Crystalline Leggings" , 133000, ItemType.CrystallineLeggings , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Mask of the Sealer" , 140000, ItemType.MaskoftheSealer , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Crimson Robe" , 141000, ItemType.CrimsonRobe , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Crimson Gloves" , 142000, ItemType.CrimsonGloves , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Crimson Waistcloth" , 143000, ItemType.CrimsonWaistcloth , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Mask of Velka" , 150000, ItemType.MaskofVelka , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Black Cleric Robe" , 151000, ItemType.BlackClericRobe , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Black Manchette" , 152000, ItemType.BlackManchette , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Black Tights" , 153000, ItemType.BlackTights , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Iron Helm" , 160000, ItemType.IronHelm , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Armor of the Sun" , 161000, ItemType.ArmoroftheSun , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Iron Bracelet" , 162000, ItemType.IronBracelet , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Iron Leggings" , 163000, ItemType.IronLeggings , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Chain Helm" , 170000, ItemType.ChainHelm , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Chain Armor" , 171000, ItemType.ChainArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Leather Gauntlets" , 172000, ItemType.LeatherGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Chain Leggings" , 173000, ItemType.ChainLeggings , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Cleric Helm" , 180000, ItemType.ClericHelm , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Cleric Armor" , 181000, ItemType.ClericArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Cleric Gauntlets" , 182000, ItemType.ClericGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Cleric Leggings" , 183000, ItemType.ClericLeggings , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Sunlight Maggot" , 190000, ItemType.SunlightMaggot , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Helm of Thorns" , 200000, ItemType.HelmofThorns , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Armor of Thorns" , 201000, ItemType.ArmorofThorns , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Gauntlets of Thorns" , 202000, ItemType.GauntletsofThorns , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Leggings of Thorns" , 203000, ItemType.LeggingsofThorns , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Standard Helm" , 210000, ItemType.StandardHelm , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Hard Leather Armor" , 211000, ItemType.HardLeatherArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Hard Leather Gauntlets" , 212000, ItemType.HardLeatherGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Hard Leather Boots" , 213000, ItemType.HardLeatherBoots , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Sorcerer Hat" , 220000, ItemType.SorcererHat , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Sorcerer Cloak" , 221000, ItemType.SorcererCloak , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Sorcerer Gauntlets" , 222000, ItemType.SorcererGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Sorcerer Boots" , 223000, ItemType.SorcererBoots , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Tattered Cloth Hood" , 230000, ItemType.TatteredClothHood , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Tattered Cloth Robe" , 231000, ItemType.TatteredClothRobe , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Tattered Cloth Manchette" , 232000, ItemType.TatteredClothManchette , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Heavy Boots" , 233000, ItemType.HeavyBoots , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Pharis's Hat" , 240000, ItemType.PharissHat , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Leather Armor" , 241000, ItemType.LeatherArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Leather Gloves" , 242000, ItemType.LeatherGloves , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Leather Boots" , 243000, ItemType.LeatherBoots , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Painting Guardian Hood" , 250000, ItemType.PaintingGuardianHood , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Painting Guardian Robe" , 251000, ItemType.PaintingGuardianRobe , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Painting Guardian Gloves" , 252000, ItemType.PaintingGuardianGloves , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Painting Guardian Waistcloth" , 253000, ItemType.PaintingGuardianWaistcloth , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Ornstein's Helm" , 270000, ItemType.OrnsteinsHelm , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Ornstein's Armor" , 271000, ItemType.OrnsteinsArmor , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Ornstein's Gauntlets" , 272000, ItemType.OrnsteinsGauntlets , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Ornstein's Leggings" , 273000, ItemType.OrnsteinsLeggings , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Eastern Helm" , 280000, ItemType.EasternHelm , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Eastern Armor" , 281000, ItemType.EasternArmor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Eastern Gauntlets" , 282000, ItemType.EasternGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Eastern Leggings" , 283000, ItemType.EasternLeggings , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Xanthous Crown" , 290000, ItemType.XanthousCrown , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Xanthous Overcoat" , 291000, ItemType.XanthousOvercoat , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Xanthous Gloves" , 292000, ItemType.XanthousGloves , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Xanthous Waistcloth" , 293000, ItemType.XanthousWaistcloth , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Thief Mask" , 300000, ItemType.ThiefMask , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Black Leather Armor" , 301000, ItemType.BlackLeatherArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Black Leather Gloves" , 302000, ItemType.BlackLeatherGloves , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Black Leather Boots" , 303000, ItemType.BlackLeatherBoots , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Priest's Hat" , 310000, ItemType.PriestsHat , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Holy Robe" , 311000, ItemType.HolyRobe , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Traveling Gloves (Holy)" , 312000, ItemType.TravelingGlovesHoly , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Holy Trousers" , 313000, ItemType.HolyTrousers , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Black Knight Helm" , 320000, ItemType.BlackKnightHelm , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Black Knight Armor" , 321000, ItemType.BlackKnightArmor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Black Knight Gauntlets" , 322000, ItemType.BlackKnightGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Black Knight Leggings" , 323000, ItemType.BlackKnightLeggings , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Crown of Dusk" , 330000, ItemType.CrownofDusk , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Antiquated Dress" , 331000, ItemType.AntiquatedDress , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Antiquated Gloves" , 332000, ItemType.AntiquatedGloves , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Antiquated Skirt" , 333000, ItemType.AntiquatedSkirt , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Witch Hat" , 340000, ItemType.WitchHat , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Witch Cloak" , 341000, ItemType.WitchCloak , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Witch Gloves" , 342000, ItemType.WitchGloves , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Witch Skirt" , 343000, ItemType.WitchSkirt , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Elite Knight Helm" , 350000, ItemType.EliteKnightHelm , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Elite Knight Armor" , 351000, ItemType.EliteKnightArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Elite Knight Gauntlets" , 352000, ItemType.EliteKnightGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Elite Knight Leggings" , 353000, ItemType.EliteKnightLeggings , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Wanderer Hood" , 360000, ItemType.WandererHood , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Wanderer Coat" , 361000, ItemType.WandererCoat , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Wanderer Manchette" , 362000, ItemType.WandererManchette , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Wanderer Boots" , 363000, ItemType.WandererBoots , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Big Hat" , 380000, ItemType.BigHat , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Sage Robe" , 381000, ItemType.SageRobe , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Traveling Gloves (Sage)" , 382000, ItemType.TravelingGlovesSage , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Traveling Boots" , 383000, ItemType.TravelingBoots , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Knight Helm" , 390000, ItemType.KnightHelm , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Knight Armor" , 391000, ItemType.KnightArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Knight Gauntlets" , 392000, ItemType.KnightGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Knight Leggings" , 393000, ItemType.KnightLeggings , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Dingy Hood" , 400000, ItemType.DingyHood , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Dingy Robe" , 401000, ItemType.DingyRobe , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Dingy Gloves" , 402000, ItemType.DingyGloves , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Blood-Stained Skirt" , 403000, ItemType.BloodStainedSkirt , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Maiden Hood" , 410000, ItemType.MaidenHood , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Maiden Robe" , 411000, ItemType.MaidenRobe , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Maiden Gloves" , 412000, ItemType.MaidenGloves , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Maiden Skirt" , 413000, ItemType.MaidenSkirt , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Silver Knight Helm" , 420000, ItemType.SilverKnightHelm , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Silver Knight Armor" , 421000, ItemType.SilverKnightArmor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Silver Knight Gauntlets" , 422000, ItemType.SilverKnightGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Silver Knight Leggings" , 423000, ItemType.SilverKnightLeggings , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Havel's Helm" , 440000, ItemType.HavelsHelm , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Havel's Armor" , 441000, ItemType.HavelsArmor , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Havel's Gauntlets" , 442000, ItemType.HavelsGauntlets , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Havel's Leggings" , 443000, ItemType.HavelsLeggings , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Brass Helm" , 450000, ItemType.BrassHelm , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Brass Armor" , 451000, ItemType.BrassArmor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Brass Gauntlets" , 452000, ItemType.BrassGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Brass Leggings" , 453000, ItemType.BrassLeggings , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Gold-Hemmed Black Hood" , 460000, ItemType.GoldHemmedBlackHood , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Gold-Hemmed Black Cloak" , 461000, ItemType.GoldHemmedBlackCloak , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Gold-Hemmed Black Gloves" , 462000, ItemType.GoldHemmedBlackGloves , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Gold-Hemmed Black Skirt" , 463000, ItemType.GoldHemmedBlackSkirt , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Golem Helm" , 470000, ItemType.GolemHelm , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Golem Armor" , 471000, ItemType.GolemArmor , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Golem Gauntlets" , 472000, ItemType.GolemGauntlets , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Golem Leggings" , 473000, ItemType.GolemLeggings , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Hollow Soldier Helm" , 480000, ItemType.HollowSoldierHelm , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Hollow Soldier Armor" , 481000, ItemType.HollowSoldierArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Hollow Soldier Waistcloth" , 483000, ItemType.HollowSoldierWaistcloth , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Steel Helm" , 490000, ItemType.SteelHelm , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Steel Armor" , 491000, ItemType.SteelArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Steel Gauntlets" , 492000, ItemType.SteelGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Steel Leggings" , 493000, ItemType.SteelLeggings , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Hollow Thief's Hood" , 500000, ItemType.HollowThiefsHood , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Hollow Thief's Leather Armor" , 501000, ItemType.HollowThiefsLeatherArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Hollow Thief's Tights" , 503000, ItemType.HollowThiefsTights , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Balder Helm" , 510000, ItemType.BalderHelm , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Balder Armor" , 511000, ItemType.BalderArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Balder Gauntlets" , 512000, ItemType.BalderGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Balder Leggings" , 513000, ItemType.BalderLeggings , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Hollow Warrior Helm" , 520000, ItemType.HollowWarriorHelm , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Hollow Warrior Armor" , 521000, ItemType.HollowWarriorArmor , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Hollow Warrior Waistcloth" , 523000, ItemType.HollowWarriorWaistcloth , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Giant Helm" , 530000, ItemType.GiantHelm , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Giant Armor" , 531000, ItemType.GiantArmor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Giant Gauntlets" , 532000, ItemType.GiantGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Giant Leggings" , 533000, ItemType.GiantLeggings , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Crown of the Dark Sun" , 540000, ItemType.CrownoftheDarkSun , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Moonlight Robe" , 541000, ItemType.MoonlightRobe , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Moonlight Gloves" , 542000, ItemType.MoonlightGloves , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Moonlight Waistcloth" , 543000, ItemType.MoonlightWaistcloth , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Crown of the Great Lord" , 550000, ItemType.CrownoftheGreatLord , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Robe of the Great Lord" , 551000, ItemType.RobeoftheGreatLord , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Bracelet of the Great Lord" , 552000, ItemType.BraceletoftheGreatLord , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Anklet of the Great Lord" , 553000, ItemType.AnkletoftheGreatLord , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Sack" , 560000, ItemType.Sack , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Symbol of Avarice" , 570000, ItemType.SymbolofAvarice , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Royal Helm" , 580000, ItemType.RoyalHelm , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Mask of the Father" , 590000, ItemType.MaskoftheFather , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Mask of the Mother" , 600000, ItemType.MaskoftheMother , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Mask of the Child" , 610000, ItemType.MaskoftheChild , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Fang Boar Helm" , 620000, ItemType.FangBoarHelm , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Gargoyle Helm" , 630000, ItemType.GargoyleHelm , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Black Sorcerer Hat" , 640000, ItemType.BlackSorcererHat , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Black Sorcerer Cloak" , 641000, ItemType.BlackSorcererCloak , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Black Sorcerer Gauntlets" , 642000, ItemType.BlackSorcererGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Black Sorcerer Boots" , 643000, ItemType.BlackSorcererBoots , ItemCategory.Armor , 1, ItemUpgrade.Armor ), + new("Helm of Artorias" , 660000, ItemType.HelmofArtorias , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Armor of Artorias" , 661000, ItemType.ArmorofArtorias , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Gauntlets of Artorias" , 662000, ItemType.GauntletsofArtorias , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Leggings of Artorias" , 663000, ItemType.LeggingsofArtorias , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Porcelain Mask" , 670000, ItemType.PorcelainMask , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Lord's Blade Robe" , 671000, ItemType.LordsBladeRobe , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Lord's Blade Gloves" , 672000, ItemType.LordsBladeGloves , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Lord's Blade Waistcloth" , 673000, ItemType.LordsBladeWaistcloth , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Gough's Helm" , 680000, ItemType.GoughsHelm , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Gough's Armor" , 681000, ItemType.GoughsArmor , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Gough's Gauntlets" , 682000, ItemType.GoughsGauntlets , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Gough's Leggings" , 683000, ItemType.GoughsLeggings , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Guardian Helm" , 690000, ItemType.GuardianHelm , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Guardian Armor" , 691000, ItemType.GuardianArmor , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Guardian Gauntlets" , 692000, ItemType.GuardianGauntlets , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Guardian Leggings" , 693000, ItemType.GuardianLeggings , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Snickering Top Hat" , 700000, ItemType.SnickeringTopHat , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Chester's Long Coat" , 701000, ItemType.ChestersLongCoat , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Chester's Gloves" , 702000, ItemType.ChestersGloves , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Chester's Trousers" , 703000, ItemType.ChestersTrousers , ItemCategory.Armor , 1, ItemUpgrade.Unique ), + new("Bloated Head" , 710000, ItemType.BloatedHead , ItemCategory.Armor , 1, ItemUpgrade.None ), + new("Bloated Sorcerer Head" , 720000, ItemType.BloatedSorcererHead , ItemCategory.Armor , 1, ItemUpgrade.None ), - new Item("Eye of Death" , 109, ItemType.EyeofDeath , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Cracked Red Eye Orb" , 111, ItemType.CrackedRedEyeOrb , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Estus Flask" , 200, ItemType.EstusFlask , ItemCategory.Consumables , 1, ItemUpgrade.None ), - new Item("Elizabeth's Mushroom" , 230, ItemType.ElizabethsMushroom , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Divine Blessing" , 240, ItemType.DivineBlessing , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Green Blossom" , 260, ItemType.GreenBlossom , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Bloodred Moss Clump" , 270, ItemType.BloodredMossClump , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Purple Moss Clump" , 271, ItemType.PurpleMossClump , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Blooming Purple Moss Clump" , 272, ItemType.BloomingPurpleMossClump , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Purging Stone" , 274, ItemType.PurgingStone , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Egg Vermifuge" , 275, ItemType.EggVermifuge , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Repair Powder" , 280, ItemType.RepairPowder , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Throwing Knife" , 290, ItemType.ThrowingKnife , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Poison Throwing Knife" , 291, ItemType.PoisonThrowingKnife , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Firebomb" , 292, ItemType.Firebomb , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Dung Pie" , 293, ItemType.DungPie , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Alluring Skull" , 294, ItemType.AlluringSkull , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Lloyd's Talisman" , 296, ItemType.LloydsTalisman , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Black Firebomb" , 297, ItemType.BlackFirebomb , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Charcoal Pine Resin" , 310, ItemType.CharcoalPineResin , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Gold Pine Resin" , 311, ItemType.GoldPineResin , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Transient Curse" , 312, ItemType.TransientCurse , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Rotten Pine Resin" , 313, ItemType.RottenPineResin , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Homeward Bone" , 330, ItemType.HomewardBone , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Prism Stone" , 370, ItemType.PrismStone , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Indictment" , 373, ItemType.Indictment , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Souvenir of Reprisal" , 374, ItemType.SouvenirofReprisal , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Sunlight Medal" , 375, ItemType.SunlightMedal , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Pendant" , 376, ItemType.Pendant , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Rubbish" , 380, ItemType.Rubbish , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Copper Coin" , 381, ItemType.CopperCoin , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Silver Coin" , 382, ItemType.SilverCoin , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Gold Coin" , 383, ItemType.GoldCoin , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Fire Keeper Soul (Anastacia of Astora)" , 390, ItemType.FireKeeperSoulAnastaciaofAstora , ItemCategory.Consumables , 1, ItemUpgrade.None ), - new Item("Fire Keeper Soul (Darkmoon Knightess)" , 391, ItemType.FireKeeperSoulDarkmoonKnightess , ItemCategory.Consumables , 1, ItemUpgrade.None ), - new Item("Fire Keeper Soul (Daughter of Chaos)" , 392, ItemType.FireKeeperSoulDaughterofChaos , ItemCategory.Consumables , 1, ItemUpgrade.None ), - new Item("Fire Keeper Soul (New Londo)" , 393, ItemType.FireKeeperSoulNewLondo , ItemCategory.Consumables , 1, ItemUpgrade.None ), - new Item("Fire Keeper Soul (Blighttown)" , 394, ItemType.FireKeeperSoulBlighttown , ItemCategory.Consumables , 1, ItemUpgrade.None ), - new Item("Fire Keeper Soul (Duke's Archives)" , 395, ItemType.FireKeeperSoulDukesArchives , ItemCategory.Consumables , 1, ItemUpgrade.None ), - new Item("Fire Keeper Soul (Undead Parish)" , 396, ItemType.FireKeeperSoulUndeadParish , ItemCategory.Consumables , 1, ItemUpgrade.None ), - new Item("Soul of a Lost Undead" , 400, ItemType.SoulofaLostUndead , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Large Soul of a Lost Undead" , 401, ItemType.LargeSoulofaLostUndead , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Soul of a Nameless Soldier" , 402, ItemType.SoulofaNamelessSoldier , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Large Soul of a Nameless Soldier" , 403, ItemType.LargeSoulofaNamelessSoldier , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Soul of a Proud Knight" , 404, ItemType.SoulofaProudKnight , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Large Soul of a Proud Knight" , 405, ItemType.LargeSoulofaProudKnight , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Soul of a Brave Warrior" , 406, ItemType.SoulofaBraveWarrior , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Large Soul of a Brave Warrior" , 407, ItemType.LargeSoulofaBraveWarrior , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Soul of a Hero" , 408, ItemType.SoulofaHero , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Soul of a Great Hero" , 409, ItemType.SoulofaGreatHero , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Humanity" , 500, ItemType.Humanity , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Twin Humanities" , 501, ItemType.TwinHumanities , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Soul of Quelaag" , 700, ItemType.SoulofQuelaag , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Soul of Sif" , 701, ItemType.SoulofSif , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Soul of Gwyn, Lord of Cinder" , 702, ItemType.SoulofGwynLordofCinder , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Core of an Iron Golem" , 703, ItemType.CoreofanIronGolem , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Soul of Ornstein" , 704, ItemType.SoulofOrnstein , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Soul of the Moonlight Butterfly" , 705, ItemType.SouloftheMoonlightButterfly , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Soul of Smough" , 706, ItemType.SoulofSmough , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Soul of Priscilla" , 707, ItemType.SoulofPriscilla , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Soul of Gwyndolin" , 708, ItemType.SoulofGwyndolin , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Guardian Soul" , 709, ItemType.GuardianSoul , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Soul of Artorias" , 710, ItemType.SoulofArtorias , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Soul of Manus" , 711, ItemType.SoulofManus , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Eye of Death" , 109, ItemType.EyeofDeath , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Cracked Red Eye Orb" , 111, ItemType.CrackedRedEyeOrb , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Estus Flask" , 200, ItemType.EstusFlask , ItemCategory.Consumables , 1, ItemUpgrade.None ), + new("Elizabeth's Mushroom" , 230, ItemType.ElizabethsMushroom , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Divine Blessing" , 240, ItemType.DivineBlessing , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Green Blossom" , 260, ItemType.GreenBlossom , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Bloodred Moss Clump" , 270, ItemType.BloodredMossClump , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Purple Moss Clump" , 271, ItemType.PurpleMossClump , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Blooming Purple Moss Clump" , 272, ItemType.BloomingPurpleMossClump , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Purging Stone" , 274, ItemType.PurgingStone , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Egg Vermifuge" , 275, ItemType.EggVermifuge , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Repair Powder" , 280, ItemType.RepairPowder , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Throwing Knife" , 290, ItemType.ThrowingKnife , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Poison Throwing Knife" , 291, ItemType.PoisonThrowingKnife , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Firebomb" , 292, ItemType.Firebomb , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Dung Pie" , 293, ItemType.DungPie , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Alluring Skull" , 294, ItemType.AlluringSkull , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Lloyd's Talisman" , 296, ItemType.LloydsTalisman , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Black Firebomb" , 297, ItemType.BlackFirebomb , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Charcoal Pine Resin" , 310, ItemType.CharcoalPineResin , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Gold Pine Resin" , 311, ItemType.GoldPineResin , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Transient Curse" , 312, ItemType.TransientCurse , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Rotten Pine Resin" , 313, ItemType.RottenPineResin , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Homeward Bone" , 330, ItemType.HomewardBone , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Prism Stone" , 370, ItemType.PrismStone , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Indictment" , 373, ItemType.Indictment , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Souvenir of Reprisal" , 374, ItemType.SouvenirofReprisal , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Sunlight Medal" , 375, ItemType.SunlightMedal , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Pendant" , 376, ItemType.Pendant , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Rubbish" , 380, ItemType.Rubbish , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Copper Coin" , 381, ItemType.CopperCoin , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Silver Coin" , 382, ItemType.SilverCoin , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Gold Coin" , 383, ItemType.GoldCoin , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Fire Keeper Soul (Anastacia of Astora)" , 390, ItemType.FireKeeperSoulAnastaciaofAstora , ItemCategory.Consumables , 1, ItemUpgrade.None ), + new("Fire Keeper Soul (Darkmoon Knightess)" , 391, ItemType.FireKeeperSoulDarkmoonKnightess , ItemCategory.Consumables , 1, ItemUpgrade.None ), + new("Fire Keeper Soul (Daughter of Chaos)" , 392, ItemType.FireKeeperSoulDaughterofChaos , ItemCategory.Consumables , 1, ItemUpgrade.None ), + new("Fire Keeper Soul (New Londo)" , 393, ItemType.FireKeeperSoulNewLondo , ItemCategory.Consumables , 1, ItemUpgrade.None ), + new("Fire Keeper Soul (Blighttown)" , 394, ItemType.FireKeeperSoulBlighttown , ItemCategory.Consumables , 1, ItemUpgrade.None ), + new("Fire Keeper Soul (Duke's Archives)" , 395, ItemType.FireKeeperSoulDukesArchives , ItemCategory.Consumables , 1, ItemUpgrade.None ), + new("Fire Keeper Soul (Undead Parish)" , 396, ItemType.FireKeeperSoulUndeadParish , ItemCategory.Consumables , 1, ItemUpgrade.None ), + new("Soul of a Lost Undead" , 400, ItemType.SoulofaLostUndead , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Large Soul of a Lost Undead" , 401, ItemType.LargeSoulofaLostUndead , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Soul of a Nameless Soldier" , 402, ItemType.SoulofaNamelessSoldier , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Large Soul of a Nameless Soldier" , 403, ItemType.LargeSoulofaNamelessSoldier , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Soul of a Proud Knight" , 404, ItemType.SoulofaProudKnight , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Large Soul of a Proud Knight" , 405, ItemType.LargeSoulofaProudKnight , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Soul of a Brave Warrior" , 406, ItemType.SoulofaBraveWarrior , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Large Soul of a Brave Warrior" , 407, ItemType.LargeSoulofaBraveWarrior , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Soul of a Hero" , 408, ItemType.SoulofaHero , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Soul of a Great Hero" , 409, ItemType.SoulofaGreatHero , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Humanity" , 500, ItemType.Humanity , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Twin Humanities" , 501, ItemType.TwinHumanities , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Soul of Quelaag" , 700, ItemType.SoulofQuelaag , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Soul of Sif" , 701, ItemType.SoulofSif , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Soul of Gwyn, Lord of Cinder" , 702, ItemType.SoulofGwynLordofCinder , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Core of an Iron Golem" , 703, ItemType.CoreofanIronGolem , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Soul of Ornstein" , 704, ItemType.SoulofOrnstein , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Soul of the Moonlight Butterfly" , 705, ItemType.SouloftheMoonlightButterfly , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Soul of Smough" , 706, ItemType.SoulofSmough , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Soul of Priscilla" , 707, ItemType.SoulofPriscilla , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Soul of Gwyndolin" , 708, ItemType.SoulofGwyndolin , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Guardian Soul" , 709, ItemType.GuardianSoul , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Soul of Artorias" , 710, ItemType.SoulofArtorias , ItemCategory.Consumables , 99, ItemUpgrade.None ), + new("Soul of Manus" , 711, ItemType.SoulofManus , ItemCategory.Consumables , 99, ItemUpgrade.None ), - new Item("Peculiar Doll" , 384, ItemType.PeculiarDoll , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Basement Key" , 2001, ItemType.BasementKey , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Crest of Artorias" , 2002, ItemType.CrestofArtorias , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Cage Key" , 2003, ItemType.CageKey , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Archive Tower Cell Key" , 2004, ItemType.ArchiveTowerCellKey , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Archive Tower Giant Door Key" , 2005, ItemType.ArchiveTowerGiantDoorKey , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Archive Tower Giant Cell Key" , 2006, ItemType.ArchiveTowerGiantCellKey , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Blighttown Key" , 2007, ItemType.BlighttownKey , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Key to New Londo Ruins" , 2008, ItemType.KeytoNewLondoRuins , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Annex Key" , 2009, ItemType.AnnexKey , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Dungeon Cell Key" , 2010, ItemType.DungeonCellKey , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Big Pilgrim's Key" , 2011, ItemType.BigPilgrimsKey , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Undead Asylum F2 East Key" , 2012, ItemType.UndeadAsylumF2EastKey , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Key to the Seal" , 2013, ItemType.KeytotheSeal , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Key to Depths" , 2014, ItemType.KeytoDepths , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Undead Asylum F2 West Key" , 2016, ItemType.UndeadAsylumF2WestKey , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Mystery Key" , 2017, ItemType.MysteryKey , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Sewer Chamber Key" , 2018, ItemType.SewerChamberKey , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Watchtower Basement Key" , 2019, ItemType.WatchtowerBasementKey , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Archive Prison Extra Key" , 2020, ItemType.ArchivePrisonExtraKey , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Residence Key" , 2021, ItemType.ResidenceKey , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Crest Key" , 2022, ItemType.CrestKey , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Master Key" , 2100, ItemType.MasterKey , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Lord Soul (Nito)" , 2500, ItemType.LordSoulNito , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Lord Soul (Bed of Chaos)" , 2501, ItemType.LordSoulBedofChaos , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Bequeathed Lord Soul Shard (Four Kings)" , 2502, ItemType.BequeathedLordSoulShardFourKings , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Bequeathed Lord Soul Shard (Seath)" , 2503, ItemType.BequeathedLordSoulShardSeath , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Lordvessel" , 2510, ItemType.Lordvessel , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Broken Pendant" , 2520, ItemType.BrokenPendant , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Weapon Smithbox" , 2600, ItemType.WeaponSmithbox , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Armor Smithbox" , 2601, ItemType.ArmorSmithbox , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Repairbox" , 2602, ItemType.Repairbox , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Rite of Kindling" , 2607, ItemType.RiteofKindling , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Bottomless Box" , 2608, ItemType.BottomlessBox , ItemCategory.Key , 1, ItemUpgrade.None ), + new("Peculiar Doll" , 384, ItemType.PeculiarDoll , ItemCategory.Key , 1, ItemUpgrade.None ), + new("Basement Key" , 2001, ItemType.BasementKey , ItemCategory.Key , 1, ItemUpgrade.None ), + new("Crest of Artorias" , 2002, ItemType.CrestofArtorias , ItemCategory.Key , 1, ItemUpgrade.None ), + new("Cage Key" , 2003, ItemType.CageKey , ItemCategory.Key , 1, ItemUpgrade.None ), + new("Archive Tower Cell Key" , 2004, ItemType.ArchiveTowerCellKey , ItemCategory.Key , 1, ItemUpgrade.None ), + new("Archive Tower Giant Door Key" , 2005, ItemType.ArchiveTowerGiantDoorKey , ItemCategory.Key , 1, ItemUpgrade.None ), + new("Archive Tower Giant Cell Key" , 2006, ItemType.ArchiveTowerGiantCellKey , ItemCategory.Key , 1, ItemUpgrade.None ), + new("Blighttown Key" , 2007, ItemType.BlighttownKey , ItemCategory.Key , 1, ItemUpgrade.None ), + new("Key to New Londo Ruins" , 2008, ItemType.KeytoNewLondoRuins , ItemCategory.Key , 1, ItemUpgrade.None ), + new("Annex Key" , 2009, ItemType.AnnexKey , ItemCategory.Key , 1, ItemUpgrade.None ), + new("Dungeon Cell Key" , 2010, ItemType.DungeonCellKey , ItemCategory.Key , 1, ItemUpgrade.None ), + new("Big Pilgrim's Key" , 2011, ItemType.BigPilgrimsKey , ItemCategory.Key , 1, ItemUpgrade.None ), + new("Undead Asylum F2 East Key" , 2012, ItemType.UndeadAsylumF2EastKey , ItemCategory.Key , 1, ItemUpgrade.None ), + new("Key to the Seal" , 2013, ItemType.KeytotheSeal , ItemCategory.Key , 1, ItemUpgrade.None ), + new("Key to Depths" , 2014, ItemType.KeytoDepths , ItemCategory.Key , 1, ItemUpgrade.None ), + new("Undead Asylum F2 West Key" , 2016, ItemType.UndeadAsylumF2WestKey , ItemCategory.Key , 1, ItemUpgrade.None ), + new("Mystery Key" , 2017, ItemType.MysteryKey , ItemCategory.Key , 1, ItemUpgrade.None ), + new("Sewer Chamber Key" , 2018, ItemType.SewerChamberKey , ItemCategory.Key , 1, ItemUpgrade.None ), + new("Watchtower Basement Key" , 2019, ItemType.WatchtowerBasementKey , ItemCategory.Key , 1, ItemUpgrade.None ), + new("Archive Prison Extra Key" , 2020, ItemType.ArchivePrisonExtraKey , ItemCategory.Key , 1, ItemUpgrade.None ), + new("Residence Key" , 2021, ItemType.ResidenceKey , ItemCategory.Key , 1, ItemUpgrade.None ), + new("Crest Key" , 2022, ItemType.CrestKey , ItemCategory.Key , 1, ItemUpgrade.None ), + new("Master Key" , 2100, ItemType.MasterKey , ItemCategory.Key , 1, ItemUpgrade.None ), + new("Lord Soul (Nito)" , 2500, ItemType.LordSoulNito , ItemCategory.Key , 1, ItemUpgrade.None ), + new("Lord Soul (Bed of Chaos)" , 2501, ItemType.LordSoulBedofChaos , ItemCategory.Key , 1, ItemUpgrade.None ), + new("Bequeathed Lord Soul Shard (Four Kings)" , 2502, ItemType.BequeathedLordSoulShardFourKings , ItemCategory.Key , 1, ItemUpgrade.None ), + new("Bequeathed Lord Soul Shard (Seath)" , 2503, ItemType.BequeathedLordSoulShardSeath , ItemCategory.Key , 1, ItemUpgrade.None ), + new("Lordvessel" , 2510, ItemType.Lordvessel , ItemCategory.Key , 1, ItemUpgrade.None ), + new("Broken Pendant" , 2520, ItemType.BrokenPendant , ItemCategory.Key , 1, ItemUpgrade.None ), + new("Weapon Smithbox" , 2600, ItemType.WeaponSmithbox , ItemCategory.Key , 1, ItemUpgrade.None ), + new("Armor Smithbox" , 2601, ItemType.ArmorSmithbox , ItemCategory.Key , 1, ItemUpgrade.None ), + new("Repairbox" , 2602, ItemType.Repairbox , ItemCategory.Key , 1, ItemUpgrade.None ), + new("Rite of Kindling" , 2607, ItemType.RiteofKindling , ItemCategory.Key , 1, ItemUpgrade.None ), + new("Bottomless Box" , 2608, ItemType.BottomlessBox , ItemCategory.Key , 1, ItemUpgrade.None ), - new Item("Dagger" , 100000, ItemType.Dagger , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Parrying Dagger" , 101000, ItemType.ParryingDagger , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Ghost Blade" , 102000, ItemType.GhostBlade , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Bandit's Knife" , 103000, ItemType.BanditsKnife , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Priscilla's Dagger" , 104000, ItemType.PriscillasDagger , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Shortsword" , 200000, ItemType.Shortsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Longsword" , 201000, ItemType.Longsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Broadsword" , 202000, ItemType.Broadsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Broken Straight Sword" , 203000, ItemType.BrokenStraightSword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Balder Side Sword" , 204000, ItemType.BalderSideSword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Crystal Straight Sword" , 205000, ItemType.CrystalStraightSword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.None ), - new Item("Sunlight Straight Sword" , 206000, ItemType.SunlightStraightSword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Barbed Straight Sword" , 207000, ItemType.BarbedStraightSword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Silver Knight Straight Sword" , 208000, ItemType.SilverKnightStraightSword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Astora's Straight Sword" , 209000, ItemType.AstorasStraightSword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Darksword" , 210000, ItemType.Darksword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Drake Sword" , 211000, ItemType.DrakeSword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Straight Sword Hilt" , 212000, ItemType.StraightSwordHilt , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Bastard Sword" , 300000, ItemType.BastardSword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Claymore" , 301000, ItemType.Claymore , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Man-serpent Greatsword" , 302000, ItemType.ManserpentGreatsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Flamberge" , 303000, ItemType.Flamberge , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Crystal Greatsword" , 304000, ItemType.CrystalGreatsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.None ), - new Item("Stone Greatsword" , 306000, ItemType.StoneGreatsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Greatsword of Artorias" , 307000, ItemType.GreatswordofArtorias , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Moonlight Greatsword" , 309000, ItemType.MoonlightGreatsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Black Knight Sword" , 310000, ItemType.BlackKnightSword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Greatsword of Artorias (Cursed)" , 311000, ItemType.GreatswordofArtoriasCursed , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Great Lord Greatsword" , 314000, ItemType.GreatLordGreatsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Zweihander" , 350000, ItemType.Zweihander , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Greatsword" , 351000, ItemType.Greatsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Demon Great Machete" , 352000, ItemType.DemonGreatMachete , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Dragon Greatsword" , 354000, ItemType.DragonGreatsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Black Knight Greatsword" , 355000, ItemType.BlackKnightGreatsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Scimitar" , 400000, ItemType.Scimitar , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Falchion" , 401000, ItemType.Falchion , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Shotel" , 402000, ItemType.Shotel , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Jagged Ghost Blade" , 403000, ItemType.JaggedGhostBlade , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Painting Guardian Sword" , 405000, ItemType.PaintingGuardianSword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Quelaag's Furysword" , 406000, ItemType.QuelaagsFurysword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Server" , 450000, ItemType.Server , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Murakumo" , 451000, ItemType.Murakumo , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Gravelord Sword" , 453000, ItemType.GravelordSword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Uchigatana" , 500000, ItemType.Uchigatana , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Washing Pole" , 501000, ItemType.WashingPole , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Iaito" , 502000, ItemType.Iaito , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Chaos Blade" , 503000, ItemType.ChaosBlade , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Mail Breaker" , 600000, ItemType.MailBreaker , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Rapier" , 601000, ItemType.Rapier , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Estoc" , 602000, ItemType.Estoc , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Velka's Rapier" , 603000, ItemType.VelkasRapier , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Ricard's Rapier" , 604000, ItemType.RicardsRapier , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Hand Axe" , 700000, ItemType.HandAxe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Battle Axe" , 701000, ItemType.BattleAxe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Crescent Axe" , 702000, ItemType.CrescentAxe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Butcher Knife" , 703000, ItemType.ButcherKnife , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Golem Axe" , 704000, ItemType.GolemAxe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Gargoyle Tail Axe" , 705000, ItemType.GargoyleTailAxe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Greataxe" , 750000, ItemType.Greataxe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Demon's Greataxe" , 751000, ItemType.DemonsGreataxe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Dragon King Greataxe" , 752000, ItemType.DragonKingGreataxe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Black Knight Greataxe" , 753000, ItemType.BlackKnightGreataxe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Club" , 800000, ItemType.Club , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Mace" , 801000, ItemType.Mace , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Morning Star" , 802000, ItemType.MorningStar , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Warpick" , 803000, ItemType.Warpick , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Pickaxe" , 804000, ItemType.Pickaxe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Reinforced Club" , 809000, ItemType.ReinforcedClub , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Blacksmith Hammer" , 810000, ItemType.BlacksmithHammer , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Blacksmith Giant Hammer" , 811000, ItemType.BlacksmithGiantHammer , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Hammer of Vamos" , 812000, ItemType.HammerofVamos , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Great Club" , 850000, ItemType.GreatClub , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Grant" , 851000, ItemType.Grant , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Demon's Great Hammer" , 852000, ItemType.DemonsGreatHammer , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Dragon Tooth" , 854000, ItemType.DragonTooth , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Large Club" , 855000, ItemType.LargeClub , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Smough's Hammer" , 856000, ItemType.SmoughsHammer , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Caestus" , 901000, ItemType.Caestus , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Claw" , 902000, ItemType.Claw , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Dragon Bone Fist" , 903000, ItemType.DragonBoneFist , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Dark Hand" , 904000, ItemType.DarkHand , ItemCategory.MeleeWeapons , 1, ItemUpgrade.None ), - new Item("Spear" , 1000000, ItemType.Spear , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Winged Spear" , 1001000, ItemType.WingedSpear , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Partizan" , 1002000, ItemType.Partizan , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Demon's Spear" , 1003000, ItemType.DemonsSpear , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Channeler's Trident" , 1004000, ItemType.ChannelersTrident , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Silver Knight Spear" , 1006000, ItemType.SilverKnightSpear , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Pike" , 1050000, ItemType.Pike , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Dragonslayer Spear" , 1051000, ItemType.DragonslayerSpear , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Moonlight Butterfly Horn" , 1052000, ItemType.MoonlightButterflyHorn , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Halberd" , 1100000, ItemType.Halberd , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Giant's Halberd" , 1101000, ItemType.GiantsHalberd , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Titanite Catch Pole" , 1102000, ItemType.TitaniteCatchPole , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Gargoyle's Halberd" , 1103000, ItemType.GargoylesHalberd , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Black Knight Halberd" , 1105000, ItemType.BlackKnightHalberd , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Lucerne" , 1106000, ItemType.Lucerne , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Scythe" , 1107000, ItemType.Scythe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Great Scythe" , 1150000, ItemType.GreatScythe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Lifehunt Scythe" , 1151000, ItemType.LifehuntScythe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Whip" , 1600000, ItemType.Whip , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Notched Whip" , 1601000, ItemType.NotchedWhip , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Gold Tracer" , 9010000, ItemType.GoldTracer , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Dark Silver Tracer" , 9011000, ItemType.DarkSilverTracer , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Abyss Greatsword" , 9012000, ItemType.AbyssGreatsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Stone Greataxe" , 9015000, ItemType.StoneGreataxe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Four-pronged Plow" , 9016000, ItemType.FourprongedPlow , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Guardian Tail" , 9019000, ItemType.GuardianTail , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), - new Item("Obsidian Greatsword" , 9020000, ItemType.ObsidianGreatsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new("Dagger" , 100000, ItemType.Dagger , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Parrying Dagger" , 101000, ItemType.ParryingDagger , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Ghost Blade" , 102000, ItemType.GhostBlade , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new("Bandit's Knife" , 103000, ItemType.BanditsKnife , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Priscilla's Dagger" , 104000, ItemType.PriscillasDagger , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new("Shortsword" , 200000, ItemType.Shortsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Longsword" , 201000, ItemType.Longsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Broadsword" , 202000, ItemType.Broadsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Broken Straight Sword" , 203000, ItemType.BrokenStraightSword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Balder Side Sword" , 204000, ItemType.BalderSideSword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Crystal Straight Sword" , 205000, ItemType.CrystalStraightSword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.None ), + new("Sunlight Straight Sword" , 206000, ItemType.SunlightStraightSword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Barbed Straight Sword" , 207000, ItemType.BarbedStraightSword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Silver Knight Straight Sword" , 208000, ItemType.SilverKnightStraightSword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new("Astora's Straight Sword" , 209000, ItemType.AstorasStraightSword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new("Darksword" , 210000, ItemType.Darksword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Drake Sword" , 211000, ItemType.DrakeSword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new("Straight Sword Hilt" , 212000, ItemType.StraightSwordHilt , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Bastard Sword" , 300000, ItemType.BastardSword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Claymore" , 301000, ItemType.Claymore , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Man-serpent Greatsword" , 302000, ItemType.ManserpentGreatsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Flamberge" , 303000, ItemType.Flamberge , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Crystal Greatsword" , 304000, ItemType.CrystalGreatsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.None ), + new("Stone Greatsword" , 306000, ItemType.StoneGreatsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new("Greatsword of Artorias" , 307000, ItemType.GreatswordofArtorias , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new("Moonlight Greatsword" , 309000, ItemType.MoonlightGreatsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new("Black Knight Sword" , 310000, ItemType.BlackKnightSword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new("Greatsword of Artorias (Cursed)" , 311000, ItemType.GreatswordofArtoriasCursed , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new("Great Lord Greatsword" , 314000, ItemType.GreatLordGreatsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new("Zweihander" , 350000, ItemType.Zweihander , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Greatsword" , 351000, ItemType.Greatsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Demon Great Machete" , 352000, ItemType.DemonGreatMachete , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Dragon Greatsword" , 354000, ItemType.DragonGreatsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new("Black Knight Greatsword" , 355000, ItemType.BlackKnightGreatsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new("Scimitar" , 400000, ItemType.Scimitar , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Falchion" , 401000, ItemType.Falchion , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Shotel" , 402000, ItemType.Shotel , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Jagged Ghost Blade" , 403000, ItemType.JaggedGhostBlade , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new("Painting Guardian Sword" , 405000, ItemType.PaintingGuardianSword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Quelaag's Furysword" , 406000, ItemType.QuelaagsFurysword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new("Server" , 450000, ItemType.Server , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Murakumo" , 451000, ItemType.Murakumo , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Gravelord Sword" , 453000, ItemType.GravelordSword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new("Uchigatana" , 500000, ItemType.Uchigatana , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Washing Pole" , 501000, ItemType.WashingPole , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Iaito" , 502000, ItemType.Iaito , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Chaos Blade" , 503000, ItemType.ChaosBlade , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new("Mail Breaker" , 600000, ItemType.MailBreaker , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Rapier" , 601000, ItemType.Rapier , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Estoc" , 602000, ItemType.Estoc , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Velka's Rapier" , 603000, ItemType.VelkasRapier , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new("Ricard's Rapier" , 604000, ItemType.RicardsRapier , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Hand Axe" , 700000, ItemType.HandAxe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Battle Axe" , 701000, ItemType.BattleAxe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Crescent Axe" , 702000, ItemType.CrescentAxe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new("Butcher Knife" , 703000, ItemType.ButcherKnife , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Golem Axe" , 704000, ItemType.GolemAxe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new("Gargoyle Tail Axe" , 705000, ItemType.GargoyleTailAxe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Greataxe" , 750000, ItemType.Greataxe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Demon's Greataxe" , 751000, ItemType.DemonsGreataxe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Dragon King Greataxe" , 752000, ItemType.DragonKingGreataxe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new("Black Knight Greataxe" , 753000, ItemType.BlackKnightGreataxe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new("Club" , 800000, ItemType.Club , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Mace" , 801000, ItemType.Mace , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Morning Star" , 802000, ItemType.MorningStar , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Warpick" , 803000, ItemType.Warpick , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Pickaxe" , 804000, ItemType.Pickaxe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Reinforced Club" , 809000, ItemType.ReinforcedClub , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Blacksmith Hammer" , 810000, ItemType.BlacksmithHammer , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Blacksmith Giant Hammer" , 811000, ItemType.BlacksmithGiantHammer , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new("Hammer of Vamos" , 812000, ItemType.HammerofVamos , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new("Great Club" , 850000, ItemType.GreatClub , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Grant" , 851000, ItemType.Grant , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new("Demon's Great Hammer" , 852000, ItemType.DemonsGreatHammer , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Dragon Tooth" , 854000, ItemType.DragonTooth , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new("Large Club" , 855000, ItemType.LargeClub , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Smough's Hammer" , 856000, ItemType.SmoughsHammer , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new("Caestus" , 901000, ItemType.Caestus , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Claw" , 902000, ItemType.Claw , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Dragon Bone Fist" , 903000, ItemType.DragonBoneFist , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new("Dark Hand" , 904000, ItemType.DarkHand , ItemCategory.MeleeWeapons , 1, ItemUpgrade.None ), + new("Spear" , 1000000, ItemType.Spear , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Winged Spear" , 1001000, ItemType.WingedSpear , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Partizan" , 1002000, ItemType.Partizan , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Demon's Spear" , 1003000, ItemType.DemonsSpear , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new("Channeler's Trident" , 1004000, ItemType.ChannelersTrident , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new("Silver Knight Spear" , 1006000, ItemType.SilverKnightSpear , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new("Pike" , 1050000, ItemType.Pike , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Dragonslayer Spear" , 1051000, ItemType.DragonslayerSpear , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new("Moonlight Butterfly Horn" , 1052000, ItemType.MoonlightButterflyHorn , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new("Halberd" , 1100000, ItemType.Halberd , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Giant's Halberd" , 1101000, ItemType.GiantsHalberd , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new("Titanite Catch Pole" , 1102000, ItemType.TitaniteCatchPole , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new("Gargoyle's Halberd" , 1103000, ItemType.GargoylesHalberd , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Black Knight Halberd" , 1105000, ItemType.BlackKnightHalberd , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new("Lucerne" , 1106000, ItemType.Lucerne , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Scythe" , 1107000, ItemType.Scythe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Great Scythe" , 1150000, ItemType.GreatScythe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Lifehunt Scythe" , 1151000, ItemType.LifehuntScythe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new("Whip" , 1600000, ItemType.Whip , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Notched Whip" , 1601000, ItemType.NotchedWhip , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Gold Tracer" , 9010000, ItemType.GoldTracer , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new("Dark Silver Tracer" , 9011000, ItemType.DarkSilverTracer , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new("Abyss Greatsword" , 9012000, ItemType.AbyssGreatsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new("Stone Greataxe" , 9015000, ItemType.StoneGreataxe , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), + new("Four-pronged Plow" , 9016000, ItemType.FourprongedPlow , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Guardian Tail" , 9019000, ItemType.GuardianTail , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Infusable ), + new("Obsidian Greatsword" , 9020000, ItemType.ObsidianGreatsword , ItemCategory.MeleeWeapons , 1, ItemUpgrade.Unique ), - new Item("Short Bow" , 1200000, ItemType.ShortBow , ItemCategory.RangedWeapons , 1, ItemUpgrade.Infusable ), - new Item("Longbow" , 1201000, ItemType.Longbow , ItemCategory.RangedWeapons , 1, ItemUpgrade.Infusable ), - new Item("Black Bow of Pharis" , 1202000, ItemType.BlackBowofPharis , ItemCategory.RangedWeapons , 1, ItemUpgrade.Infusable ), - new Item("Dragonslayer Greatbow" , 1203000, ItemType.DragonslayerGreatbow , ItemCategory.RangedWeapons , 1, ItemUpgrade.Unique ), - new Item("Composite Bow" , 1204000, ItemType.CompositeBow , ItemCategory.RangedWeapons , 1, ItemUpgrade.Infusable ), - new Item("Darkmoon Bow" , 1205000, ItemType.DarkmoonBow , ItemCategory.RangedWeapons , 1, ItemUpgrade.Unique ), - new Item("Light Crossbow" , 1250000, ItemType.LightCrossbow , ItemCategory.RangedWeapons , 1, ItemUpgrade.InfusableRestricted), - new Item("Heavy Crossbow" , 1251000, ItemType.HeavyCrossbow , ItemCategory.RangedWeapons , 1, ItemUpgrade.InfusableRestricted), - new Item("Avelyn" , 1252000, ItemType.Avelyn , ItemCategory.RangedWeapons , 1, ItemUpgrade.InfusableRestricted), - new Item("Sniper Crossbow" , 1253000, ItemType.SniperCrossbow , ItemCategory.RangedWeapons , 1, ItemUpgrade.InfusableRestricted), - new Item("Gough's Greatbow" , 9021000, ItemType.GoughsGreatbow , ItemCategory.RangedWeapons , 1, ItemUpgrade.Unique ), + new("Short Bow" , 1200000, ItemType.ShortBow , ItemCategory.RangedWeapons , 1, ItemUpgrade.Infusable ), + new("Longbow" , 1201000, ItemType.Longbow , ItemCategory.RangedWeapons , 1, ItemUpgrade.Infusable ), + new("Black Bow of Pharis" , 1202000, ItemType.BlackBowofPharis , ItemCategory.RangedWeapons , 1, ItemUpgrade.Infusable ), + new("Dragonslayer Greatbow" , 1203000, ItemType.DragonslayerGreatbow , ItemCategory.RangedWeapons , 1, ItemUpgrade.Unique ), + new("Composite Bow" , 1204000, ItemType.CompositeBow , ItemCategory.RangedWeapons , 1, ItemUpgrade.Infusable ), + new("Darkmoon Bow" , 1205000, ItemType.DarkmoonBow , ItemCategory.RangedWeapons , 1, ItemUpgrade.Unique ), + new("Light Crossbow" , 1250000, ItemType.LightCrossbow , ItemCategory.RangedWeapons , 1, ItemUpgrade.InfusableRestricted), + new("Heavy Crossbow" , 1251000, ItemType.HeavyCrossbow , ItemCategory.RangedWeapons , 1, ItemUpgrade.InfusableRestricted), + new("Avelyn" , 1252000, ItemType.Avelyn , ItemCategory.RangedWeapons , 1, ItemUpgrade.InfusableRestricted), + new("Sniper Crossbow" , 1253000, ItemType.SniperCrossbow , ItemCategory.RangedWeapons , 1, ItemUpgrade.InfusableRestricted), + new("Gough's Greatbow" , 9021000, ItemType.GoughsGreatbow , ItemCategory.RangedWeapons , 1, ItemUpgrade.Unique ), - new Item("Standard Arrow" , 2000000, ItemType.StandardArrow , ItemCategory.Ammo , 999, ItemUpgrade.None ), - new Item("Large Arrow" , 2001000, ItemType.LargeArrow , ItemCategory.Ammo , 999, ItemUpgrade.None ), - new Item("Feather Arrow" , 2002000, ItemType.FeatherArrow , ItemCategory.Ammo , 999, ItemUpgrade.None ), - new Item("Fire Arrow" , 2003000, ItemType.FireArrow , ItemCategory.Ammo , 999, ItemUpgrade.None ), - new Item("Poison Arrow" , 2004000, ItemType.PoisonArrow , ItemCategory.Ammo , 999, ItemUpgrade.None ), - new Item("Moonlight Arrow" , 2005000, ItemType.MoonlightArrow , ItemCategory.Ammo , 999, ItemUpgrade.None ), - new Item("Wooden Arrow" , 2006000, ItemType.WoodenArrow , ItemCategory.Ammo , 999, ItemUpgrade.None ), - new Item("Dragonslayer Arrow" , 2007000, ItemType.DragonslayerArrow , ItemCategory.Ammo , 999, ItemUpgrade.None ), - new Item("Gough's Great Arrow" , 2008000, ItemType.GoughsGreatArrow , ItemCategory.Ammo , 999, ItemUpgrade.None ), - new Item("Standard Bolt" , 2100000, ItemType.StandardBolt , ItemCategory.Ammo , 999, ItemUpgrade.None ), - new Item("Heavy Bolt" , 2101000, ItemType.HeavyBolt , ItemCategory.Ammo , 999, ItemUpgrade.None ), - new Item("Sniper Bolt" , 2102000, ItemType.SniperBolt , ItemCategory.Ammo , 999, ItemUpgrade.None ), - new Item("Wood Bolt" , 2103000, ItemType.WoodBolt , ItemCategory.Ammo , 999, ItemUpgrade.None ), - new Item("Lightning Bolt" , 2104000, ItemType.LightningBolt , ItemCategory.Ammo , 999, ItemUpgrade.None ), + new("Standard Arrow" , 2000000, ItemType.StandardArrow , ItemCategory.Ammo , 999, ItemUpgrade.None ), + new("Large Arrow" , 2001000, ItemType.LargeArrow , ItemCategory.Ammo , 999, ItemUpgrade.None ), + new("Feather Arrow" , 2002000, ItemType.FeatherArrow , ItemCategory.Ammo , 999, ItemUpgrade.None ), + new("Fire Arrow" , 2003000, ItemType.FireArrow , ItemCategory.Ammo , 999, ItemUpgrade.None ), + new("Poison Arrow" , 2004000, ItemType.PoisonArrow , ItemCategory.Ammo , 999, ItemUpgrade.None ), + new("Moonlight Arrow" , 2005000, ItemType.MoonlightArrow , ItemCategory.Ammo , 999, ItemUpgrade.None ), + new("Wooden Arrow" , 2006000, ItemType.WoodenArrow , ItemCategory.Ammo , 999, ItemUpgrade.None ), + new("Dragonslayer Arrow" , 2007000, ItemType.DragonslayerArrow , ItemCategory.Ammo , 999, ItemUpgrade.None ), + new("Gough's Great Arrow" , 2008000, ItemType.GoughsGreatArrow , ItemCategory.Ammo , 999, ItemUpgrade.None ), + new("Standard Bolt" , 2100000, ItemType.StandardBolt , ItemCategory.Ammo , 999, ItemUpgrade.None ), + new("Heavy Bolt" , 2101000, ItemType.HeavyBolt , ItemCategory.Ammo , 999, ItemUpgrade.None ), + new("Sniper Bolt" , 2102000, ItemType.SniperBolt , ItemCategory.Ammo , 999, ItemUpgrade.None ), + new("Wood Bolt" , 2103000, ItemType.WoodBolt , ItemCategory.Ammo , 999, ItemUpgrade.None ), + new("Lightning Bolt" , 2104000, ItemType.LightningBolt , ItemCategory.Ammo , 999, ItemUpgrade.None ), - new Item("Havel's Ring" , 100, ItemType.HavelsRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Red Tearstone Ring" , 101, ItemType.RedTearstoneRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Darkmoon Blade Covenant Ring" , 102, ItemType.DarkmoonBladeCovenantRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Cat Covenant Ring" , 103, ItemType.CatCovenantRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Cloranthy Ring" , 104, ItemType.CloranthyRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Flame Stoneplate Ring" , 105, ItemType.FlameStoneplateRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Thunder Stoneplate Ring" , 106, ItemType.ThunderStoneplateRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Spell Stoneplate Ring" , 107, ItemType.SpellStoneplateRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Speckled Stoneplate Ring" , 108, ItemType.SpeckledStoneplateRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Bloodbite Ring" , 109, ItemType.BloodbiteRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Poisonbite Ring" , 110, ItemType.PoisonbiteRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Tiny Being's Ring" , 111, ItemType.TinyBeingsRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Cursebite Ring" , 113, ItemType.CursebiteRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("White Seance Ring" , 114, ItemType.WhiteSeanceRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Bellowing Dragoncrest Ring" , 115, ItemType.BellowingDragoncrestRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Dusk Crown Ring" , 116, ItemType.DuskCrownRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Hornet Ring" , 117, ItemType.HornetRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Hawk Ring" , 119, ItemType.HawkRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Ring of Steel Protection" , 120, ItemType.RingofSteelProtection , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Covetous Gold Serpent Ring" , 121, ItemType.CovetousGoldSerpentRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Covetous Silver Serpent Ring" , 122, ItemType.CovetousSilverSerpentRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Slumbering Dragoncrest Ring" , 123, ItemType.SlumberingDragoncrestRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Ring of Fog" , 124, ItemType.RingofFog , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Rusted Iron Ring" , 125, ItemType.RustedIronRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Ring of Sacrifice" , 126, ItemType.RingofSacrifice , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Rare Ring of Sacrifice" , 127, ItemType.RareRingofSacrifice , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Dark Wood Grain Ring" , 128, ItemType.DarkWoodGrainRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Ring of the Sun Princess" , 130, ItemType.RingoftheSunPrincess , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Old Witch's Ring" , 137, ItemType.OldWitchsRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Covenant of Artorias" , 138, ItemType.CovenantofArtorias , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Orange Charred Ring" , 139, ItemType.OrangeCharredRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Lingering Dragoncrest Ring" , 141, ItemType.LingeringDragoncrestRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Ring of the Evil Eye" , 142, ItemType.RingoftheEvilEye , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Ring of Favor and Protection" , 143, ItemType.RingofFavorandProtection , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Leo Ring" , 144, ItemType.LeoRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("East Wood Grain Ring" , 145, ItemType.EastWoodGrainRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Wolf Ring" , 146, ItemType.WolfRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Blue Tearstone Ring" , 147, ItemType.BlueTearstoneRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Ring of the Sun's Firstborn" , 148, ItemType.RingoftheSunsFirstborn , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Darkmoon Seance Ring" , 149, ItemType.DarkmoonSeanceRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Calamity Ring" , 150, ItemType.CalamityRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new("Havel's Ring" , 100, ItemType.HavelsRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new("Red Tearstone Ring" , 101, ItemType.RedTearstoneRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new("Darkmoon Blade Covenant Ring" , 102, ItemType.DarkmoonBladeCovenantRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new("Cat Covenant Ring" , 103, ItemType.CatCovenantRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new("Cloranthy Ring" , 104, ItemType.CloranthyRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new("Flame Stoneplate Ring" , 105, ItemType.FlameStoneplateRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new("Thunder Stoneplate Ring" , 106, ItemType.ThunderStoneplateRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new("Spell Stoneplate Ring" , 107, ItemType.SpellStoneplateRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new("Speckled Stoneplate Ring" , 108, ItemType.SpeckledStoneplateRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new("Bloodbite Ring" , 109, ItemType.BloodbiteRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new("Poisonbite Ring" , 110, ItemType.PoisonbiteRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new("Tiny Being's Ring" , 111, ItemType.TinyBeingsRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new("Cursebite Ring" , 113, ItemType.CursebiteRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new("White Seance Ring" , 114, ItemType.WhiteSeanceRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new("Bellowing Dragoncrest Ring" , 115, ItemType.BellowingDragoncrestRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new("Dusk Crown Ring" , 116, ItemType.DuskCrownRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new("Hornet Ring" , 117, ItemType.HornetRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new("Hawk Ring" , 119, ItemType.HawkRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new("Ring of Steel Protection" , 120, ItemType.RingofSteelProtection , ItemCategory.Rings , 1, ItemUpgrade.None ), + new("Covetous Gold Serpent Ring" , 121, ItemType.CovetousGoldSerpentRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new("Covetous Silver Serpent Ring" , 122, ItemType.CovetousSilverSerpentRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new("Slumbering Dragoncrest Ring" , 123, ItemType.SlumberingDragoncrestRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new("Ring of Fog" , 124, ItemType.RingofFog , ItemCategory.Rings , 1, ItemUpgrade.None ), + new("Rusted Iron Ring" , 125, ItemType.RustedIronRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new("Ring of Sacrifice" , 126, ItemType.RingofSacrifice , ItemCategory.Rings , 1, ItemUpgrade.None ), + new("Rare Ring of Sacrifice" , 127, ItemType.RareRingofSacrifice , ItemCategory.Rings , 1, ItemUpgrade.None ), + new("Dark Wood Grain Ring" , 128, ItemType.DarkWoodGrainRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new("Ring of the Sun Princess" , 130, ItemType.RingoftheSunPrincess , ItemCategory.Rings , 1, ItemUpgrade.None ), + new("Old Witch's Ring" , 137, ItemType.OldWitchsRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new("Covenant of Artorias" , 138, ItemType.CovenantofArtorias , ItemCategory.Rings , 1, ItemUpgrade.None ), + new("Orange Charred Ring" , 139, ItemType.OrangeCharredRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new("Lingering Dragoncrest Ring" , 141, ItemType.LingeringDragoncrestRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new("Ring of the Evil Eye" , 142, ItemType.RingoftheEvilEye , ItemCategory.Rings , 1, ItemUpgrade.None ), + new("Ring of Favor and Protection" , 143, ItemType.RingofFavorandProtection , ItemCategory.Rings , 1, ItemUpgrade.None ), + new("Leo Ring" , 144, ItemType.LeoRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new("East Wood Grain Ring" , 145, ItemType.EastWoodGrainRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new("Wolf Ring" , 146, ItemType.WolfRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new("Blue Tearstone Ring" , 147, ItemType.BlueTearstoneRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new("Ring of the Sun's Firstborn" , 148, ItemType.RingoftheSunsFirstborn , ItemCategory.Rings , 1, ItemUpgrade.None ), + new("Darkmoon Seance Ring" , 149, ItemType.DarkmoonSeanceRing , ItemCategory.Rings , 1, ItemUpgrade.None ), + new("Calamity Ring" , 150, ItemType.CalamityRing , ItemCategory.Rings , 1, ItemUpgrade.None ), - new Item("Skull Lantern" , 1396000, ItemType.SkullLantern , ItemCategory.Shields , 1, ItemUpgrade.None ), - new Item("East-West Shield" , 1400000, ItemType.EastWestShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Wooden Shield" , 1401000, ItemType.WoodenShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Large Leather Shield" , 1402000, ItemType.LargeLeatherShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Small Leather Shield" , 1403000, ItemType.SmallLeatherShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Target Shield" , 1404000, ItemType.TargetShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Buckler" , 1405000, ItemType.Buckler , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Cracked Round Shield" , 1406000, ItemType.CrackedRoundShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Leather Shield" , 1408000, ItemType.LeatherShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Plank Shield" , 1409000, ItemType.PlankShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Caduceus Round Shield" , 1410000, ItemType.CaduceusRoundShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Crystal Ring Shield" , 1411000, ItemType.CrystalRingShield , ItemCategory.Shields , 1, ItemUpgrade.Unique ), - new Item("Heater Shield" , 1450000, ItemType.HeaterShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Knight Shield" , 1451000, ItemType.KnightShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Tower Kite Shield" , 1452000, ItemType.TowerKiteShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Grass Crest Shield" , 1453000, ItemType.GrassCrestShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Hollow Soldier Shield" , 1454000, ItemType.HollowSoldierShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Balder Shield" , 1455000, ItemType.BalderShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Crest Shield" , 1456000, ItemType.CrestShield , ItemCategory.Shields , 1, ItemUpgrade.Unique ), - new Item("Dragon Crest Shield" , 1457000, ItemType.DragonCrestShield , ItemCategory.Shields , 1, ItemUpgrade.Unique ), - new Item("Warrior's Round Shield" , 1460000, ItemType.WarriorsRoundShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Iron Round Shield" , 1461000, ItemType.IronRoundShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Spider Shield" , 1462000, ItemType.SpiderShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Spiked Shield" , 1470000, ItemType.SpikedShield , ItemCategory.Shields , 1, ItemUpgrade.Infusable ), - new Item("Crystal Shield" , 1471000, ItemType.CrystalShield , ItemCategory.Shields , 1, ItemUpgrade.None ), - new Item("Sunlight Shield" , 1472000, ItemType.SunlightShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Silver Knight Shield" , 1473000, ItemType.SilverKnightShield , ItemCategory.Shields , 1, ItemUpgrade.Unique ), - new Item("Black Knight Shield" , 1474000, ItemType.BlackKnightShield , ItemCategory.Shields , 1, ItemUpgrade.Unique ), - new Item("Pierce Shield" , 1475000, ItemType.PierceShield , ItemCategory.Shields , 1, ItemUpgrade.Infusable ), - new Item("Red and White Round Shield" , 1476000, ItemType.RedandWhiteRoundShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Caduceus Kite Shield" , 1477000, ItemType.CaduceusKiteShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Gargoyle's Shield" , 1478000, ItemType.GargoylesShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Eagle Shield" , 1500000, ItemType.EagleShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Tower Shield" , 1501000, ItemType.TowerShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Giant Shield" , 1502000, ItemType.GiantShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Stone Greatshield" , 1503000, ItemType.StoneGreatshield , ItemCategory.Shields , 1, ItemUpgrade.Unique ), - new Item("Havel's Greatshield" , 1505000, ItemType.HavelsGreatshield , ItemCategory.Shields , 1, ItemUpgrade.Unique ), - new Item("Bonewheel Shield" , 1506000, ItemType.BonewheelShield , ItemCategory.Shields , 1, ItemUpgrade.Infusable ), - new Item("Greatshield of Artorias" , 1507000, ItemType.GreatshieldofArtorias , ItemCategory.Shields , 1, ItemUpgrade.Unique ), - new Item("Effigy Shield" , 9000000, ItemType.EffigyShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Sanctus" , 9001000, ItemType.Sanctus , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Bloodshield" , 9002000, ItemType.Bloodshield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Black Iron Greatshield" , 9003000, ItemType.BlackIronGreatshield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), - new Item("Cleansing Greatshield" , 9014000, ItemType.CleansingGreatshield , ItemCategory.Shields , 1, ItemUpgrade.Unique ), + new("Skull Lantern" , 1396000, ItemType.SkullLantern , ItemCategory.Shields , 1, ItemUpgrade.None ), + new("East-West Shield" , 1400000, ItemType.EastWestShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new("Wooden Shield" , 1401000, ItemType.WoodenShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new("Large Leather Shield" , 1402000, ItemType.LargeLeatherShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new("Small Leather Shield" , 1403000, ItemType.SmallLeatherShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new("Target Shield" , 1404000, ItemType.TargetShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new("Buckler" , 1405000, ItemType.Buckler , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new("Cracked Round Shield" , 1406000, ItemType.CrackedRoundShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new("Leather Shield" , 1408000, ItemType.LeatherShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new("Plank Shield" , 1409000, ItemType.PlankShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new("Caduceus Round Shield" , 1410000, ItemType.CaduceusRoundShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new("Crystal Ring Shield" , 1411000, ItemType.CrystalRingShield , ItemCategory.Shields , 1, ItemUpgrade.Unique ), + new("Heater Shield" , 1450000, ItemType.HeaterShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new("Knight Shield" , 1451000, ItemType.KnightShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new("Tower Kite Shield" , 1452000, ItemType.TowerKiteShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new("Grass Crest Shield" , 1453000, ItemType.GrassCrestShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new("Hollow Soldier Shield" , 1454000, ItemType.HollowSoldierShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new("Balder Shield" , 1455000, ItemType.BalderShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new("Crest Shield" , 1456000, ItemType.CrestShield , ItemCategory.Shields , 1, ItemUpgrade.Unique ), + new("Dragon Crest Shield" , 1457000, ItemType.DragonCrestShield , ItemCategory.Shields , 1, ItemUpgrade.Unique ), + new("Warrior's Round Shield" , 1460000, ItemType.WarriorsRoundShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new("Iron Round Shield" , 1461000, ItemType.IronRoundShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new("Spider Shield" , 1462000, ItemType.SpiderShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new("Spiked Shield" , 1470000, ItemType.SpikedShield , ItemCategory.Shields , 1, ItemUpgrade.Infusable ), + new("Crystal Shield" , 1471000, ItemType.CrystalShield , ItemCategory.Shields , 1, ItemUpgrade.None ), + new("Sunlight Shield" , 1472000, ItemType.SunlightShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new("Silver Knight Shield" , 1473000, ItemType.SilverKnightShield , ItemCategory.Shields , 1, ItemUpgrade.Unique ), + new("Black Knight Shield" , 1474000, ItemType.BlackKnightShield , ItemCategory.Shields , 1, ItemUpgrade.Unique ), + new("Pierce Shield" , 1475000, ItemType.PierceShield , ItemCategory.Shields , 1, ItemUpgrade.Infusable ), + new("Red and White Round Shield" , 1476000, ItemType.RedandWhiteRoundShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new("Caduceus Kite Shield" , 1477000, ItemType.CaduceusKiteShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new("Gargoyle's Shield" , 1478000, ItemType.GargoylesShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new("Eagle Shield" , 1500000, ItemType.EagleShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new("Tower Shield" , 1501000, ItemType.TowerShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new("Giant Shield" , 1502000, ItemType.GiantShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new("Stone Greatshield" , 1503000, ItemType.StoneGreatshield , ItemCategory.Shields , 1, ItemUpgrade.Unique ), + new("Havel's Greatshield" , 1505000, ItemType.HavelsGreatshield , ItemCategory.Shields , 1, ItemUpgrade.Unique ), + new("Bonewheel Shield" , 1506000, ItemType.BonewheelShield , ItemCategory.Shields , 1, ItemUpgrade.Infusable ), + new("Greatshield of Artorias" , 1507000, ItemType.GreatshieldofArtorias , ItemCategory.Shields , 1, ItemUpgrade.Unique ), + new("Effigy Shield" , 9000000, ItemType.EffigyShield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new("Sanctus" , 9001000, ItemType.Sanctus , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new("Bloodshield" , 9002000, ItemType.Bloodshield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new("Black Iron Greatshield" , 9003000, ItemType.BlackIronGreatshield , ItemCategory.Shields , 1, ItemUpgrade.InfusableRestricted), + new("Cleansing Greatshield" , 9014000, ItemType.CleansingGreatshield , ItemCategory.Shields , 1, ItemUpgrade.Unique ), - new Item("Sorcery: Soul Arrow" , 3000, ItemType.SorcerySoulArrow , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Great Soul Arrow" , 3010, ItemType.SorceryGreatSoulArrow , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Heavy Soul Arrow" , 3020, ItemType.SorceryHeavySoulArrow , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Great Heavy Soul Arrow" , 3030, ItemType.SorceryGreatHeavySoulArrow , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Homing Soulmass" , 3040, ItemType.SorceryHomingSoulmass , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Homing Crystal Soulmass" , 3050, ItemType.SorceryHomingCrystalSoulmass , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Soul Spear" , 3060, ItemType.SorcerySoulSpear , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Crystal Soul Spear" , 3070, ItemType.SorceryCrystalSoulSpear , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Magic Weapon" , 3100, ItemType.SorceryMagicWeapon , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Great Magic Weapon" , 3110, ItemType.SorceryGreatMagicWeapon , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Crystal Magic Weapon" , 3120, ItemType.SorceryCrystalMagicWeapon , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Magic Shield" , 3300, ItemType.SorceryMagicShield , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Strong Magic Shield" , 3310, ItemType.SorceryStrongMagicShield , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Hidden Weapon" , 3400, ItemType.SorceryHiddenWeapon , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Hidden Body" , 3410, ItemType.SorceryHiddenBody , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Cast Light" , 3500, ItemType.SorceryCastLight , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Hush" , 3510, ItemType.SorceryHush , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Aural Decoy" , 3520, ItemType.SorceryAuralDecoy , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Repair" , 3530, ItemType.SorceryRepair , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Fall Control" , 3540, ItemType.SorceryFallControl , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Chameleon" , 3550, ItemType.SorceryChameleon , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Resist Curse" , 3600, ItemType.SorceryResistCurse , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Remedy" , 3610, ItemType.SorceryRemedy , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: White Dragon Breath" , 3700, ItemType.SorceryWhiteDragonBreath , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Dark Orb" , 3710, ItemType.SorceryDarkOrb , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Dark Bead" , 3720, ItemType.SorceryDarkBead , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Dark Fog" , 3730, ItemType.SorceryDarkFog , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcery: Pursuers" , 3740, ItemType.SorceryPursuers , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Pyromancy: Fireball" , 4000, ItemType.PyromancyFireball , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Pyromancy: Fire Orb" , 4010, ItemType.PyromancyFireOrb , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Pyromancy: Great Fireball" , 4020, ItemType.PyromancyGreatFireball , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Pyromancy: Firestorm" , 4030, ItemType.PyromancyFirestorm , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Pyromancy: Fire Tempest" , 4040, ItemType.PyromancyFireTempest , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Pyromancy: Fire Surge" , 4050, ItemType.PyromancyFireSurge , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Pyromancy: Fire Whip" , 4060, ItemType.PyromancyFireWhip , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Pyromancy: Combustion" , 4100, ItemType.PyromancyCombustion , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Pyromancy: Great Combustion" , 4110, ItemType.PyromancyGreatCombustion , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Pyromancy: Poison Mist" , 4200, ItemType.PyromancyPoisonMist , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Pyromancy: Toxic Mist" , 4210, ItemType.PyromancyToxicMist , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Pyromancy: Acid Surge" , 4220, ItemType.PyromancyAcidSurge , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Pyromancy: Iron Flesh" , 4300, ItemType.PyromancyIronFlesh , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Pyromancy: Flash Sweat" , 4310, ItemType.PyromancyFlashSweat , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Pyromancy: Undead Rapport" , 4360, ItemType.PyromancyUndeadRapport , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Pyromancy: Power Within" , 4400, ItemType.PyromancyPowerWithin , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Pyromancy: Great Chaos Fireball" , 4500, ItemType.PyromancyGreatChaosFireball , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Pyromancy: Chaos Storm" , 4510, ItemType.PyromancyChaosStorm , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Pyromancy: Chaos Fire Whip" , 4520, ItemType.PyromancyChaosFireWhip , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Pyromancy: Black Flame" , 4530, ItemType.PyromancyBlackFlame , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Miracle: Heal" , 5000, ItemType.MiracleHeal , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Miracle: Great Heal" , 5010, ItemType.MiracleGreatHeal , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Miracle: Great Heal Excerpt" , 5020, ItemType.MiracleGreatHealExcerpt , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Miracle: Soothing Sunlight" , 5030, ItemType.MiracleSoothingSunlight , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Miracle: Replenishment" , 5040, ItemType.MiracleReplenishment , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Miracle: Bountiful Sunlight" , 5050, ItemType.MiracleBountifulSunlight , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Miracle: Gravelord Sword Dance" , 5100, ItemType.MiracleGravelordSwordDance , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Miracle: Gravelord Greatsword Dance" , 5110, ItemType.MiracleGravelordGreatswordDance , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Miracle: Homeward" , 5210, ItemType.MiracleHomeward , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Miracle: Force" , 5300, ItemType.MiracleForce , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Miracle: Wrath of the Gods" , 5310, ItemType.MiracleWrathoftheGods , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Miracle: Emit Force" , 5320, ItemType.MiracleEmitForce , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Miracle: Seek Guidance" , 5400, ItemType.MiracleSeekGuidance , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Miracle: Lightning Spear" , 5500, ItemType.MiracleLightningSpear , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Miracle: Great Lightning Spear" , 5510, ItemType.MiracleGreatLightningSpear , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Miracle: Sunlight Spear" , 5520, ItemType.MiracleSunlightSpear , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Miracle: Magic Barrier" , 5600, ItemType.MiracleMagicBarrier , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Miracle: Great Magic Barrier" , 5610, ItemType.MiracleGreatMagicBarrier , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Miracle: Karmic Justice" , 5700, ItemType.MiracleKarmicJustice , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Miracle: Tranquil Walk of Peace" , 5800, ItemType.MiracleTranquilWalkofPeace , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Miracle: Vow of Silence" , 5810, ItemType.MiracleVowofSilence , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Miracle: Sunlight Blade" , 5900, ItemType.MiracleSunlightBlade , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Miracle: Darkmoon Blade" , 5910, ItemType.MiracleDarkmoonBlade , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Sorcery: Soul Arrow" , 3000, ItemType.SorcerySoulArrow , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Sorcery: Great Soul Arrow" , 3010, ItemType.SorceryGreatSoulArrow , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Sorcery: Heavy Soul Arrow" , 3020, ItemType.SorceryHeavySoulArrow , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Sorcery: Great Heavy Soul Arrow" , 3030, ItemType.SorceryGreatHeavySoulArrow , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Sorcery: Homing Soulmass" , 3040, ItemType.SorceryHomingSoulmass , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Sorcery: Homing Crystal Soulmass" , 3050, ItemType.SorceryHomingCrystalSoulmass , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Sorcery: Soul Spear" , 3060, ItemType.SorcerySoulSpear , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Sorcery: Crystal Soul Spear" , 3070, ItemType.SorceryCrystalSoulSpear , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Sorcery: Magic Weapon" , 3100, ItemType.SorceryMagicWeapon , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Sorcery: Great Magic Weapon" , 3110, ItemType.SorceryGreatMagicWeapon , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Sorcery: Crystal Magic Weapon" , 3120, ItemType.SorceryCrystalMagicWeapon , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Sorcery: Magic Shield" , 3300, ItemType.SorceryMagicShield , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Sorcery: Strong Magic Shield" , 3310, ItemType.SorceryStrongMagicShield , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Sorcery: Hidden Weapon" , 3400, ItemType.SorceryHiddenWeapon , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Sorcery: Hidden Body" , 3410, ItemType.SorceryHiddenBody , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Sorcery: Cast Light" , 3500, ItemType.SorceryCastLight , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Sorcery: Hush" , 3510, ItemType.SorceryHush , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Sorcery: Aural Decoy" , 3520, ItemType.SorceryAuralDecoy , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Sorcery: Repair" , 3530, ItemType.SorceryRepair , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Sorcery: Fall Control" , 3540, ItemType.SorceryFallControl , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Sorcery: Chameleon" , 3550, ItemType.SorceryChameleon , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Sorcery: Resist Curse" , 3600, ItemType.SorceryResistCurse , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Sorcery: Remedy" , 3610, ItemType.SorceryRemedy , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Sorcery: White Dragon Breath" , 3700, ItemType.SorceryWhiteDragonBreath , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Sorcery: Dark Orb" , 3710, ItemType.SorceryDarkOrb , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Sorcery: Dark Bead" , 3720, ItemType.SorceryDarkBead , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Sorcery: Dark Fog" , 3730, ItemType.SorceryDarkFog , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Sorcery: Pursuers" , 3740, ItemType.SorceryPursuers , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Pyromancy: Fireball" , 4000, ItemType.PyromancyFireball , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Pyromancy: Fire Orb" , 4010, ItemType.PyromancyFireOrb , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Pyromancy: Great Fireball" , 4020, ItemType.PyromancyGreatFireball , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Pyromancy: Firestorm" , 4030, ItemType.PyromancyFirestorm , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Pyromancy: Fire Tempest" , 4040, ItemType.PyromancyFireTempest , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Pyromancy: Fire Surge" , 4050, ItemType.PyromancyFireSurge , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Pyromancy: Fire Whip" , 4060, ItemType.PyromancyFireWhip , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Pyromancy: Combustion" , 4100, ItemType.PyromancyCombustion , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Pyromancy: Great Combustion" , 4110, ItemType.PyromancyGreatCombustion , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Pyromancy: Poison Mist" , 4200, ItemType.PyromancyPoisonMist , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Pyromancy: Toxic Mist" , 4210, ItemType.PyromancyToxicMist , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Pyromancy: Acid Surge" , 4220, ItemType.PyromancyAcidSurge , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Pyromancy: Iron Flesh" , 4300, ItemType.PyromancyIronFlesh , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Pyromancy: Flash Sweat" , 4310, ItemType.PyromancyFlashSweat , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Pyromancy: Undead Rapport" , 4360, ItemType.PyromancyUndeadRapport , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Pyromancy: Power Within" , 4400, ItemType.PyromancyPowerWithin , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Pyromancy: Great Chaos Fireball" , 4500, ItemType.PyromancyGreatChaosFireball , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Pyromancy: Chaos Storm" , 4510, ItemType.PyromancyChaosStorm , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Pyromancy: Chaos Fire Whip" , 4520, ItemType.PyromancyChaosFireWhip , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Pyromancy: Black Flame" , 4530, ItemType.PyromancyBlackFlame , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Miracle: Heal" , 5000, ItemType.MiracleHeal , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Miracle: Great Heal" , 5010, ItemType.MiracleGreatHeal , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Miracle: Great Heal Excerpt" , 5020, ItemType.MiracleGreatHealExcerpt , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Miracle: Soothing Sunlight" , 5030, ItemType.MiracleSoothingSunlight , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Miracle: Replenishment" , 5040, ItemType.MiracleReplenishment , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Miracle: Bountiful Sunlight" , 5050, ItemType.MiracleBountifulSunlight , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Miracle: Gravelord Sword Dance" , 5100, ItemType.MiracleGravelordSwordDance , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Miracle: Gravelord Greatsword Dance" , 5110, ItemType.MiracleGravelordGreatswordDance , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Miracle: Homeward" , 5210, ItemType.MiracleHomeward , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Miracle: Force" , 5300, ItemType.MiracleForce , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Miracle: Wrath of the Gods" , 5310, ItemType.MiracleWrathoftheGods , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Miracle: Emit Force" , 5320, ItemType.MiracleEmitForce , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Miracle: Seek Guidance" , 5400, ItemType.MiracleSeekGuidance , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Miracle: Lightning Spear" , 5500, ItemType.MiracleLightningSpear , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Miracle: Great Lightning Spear" , 5510, ItemType.MiracleGreatLightningSpear , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Miracle: Sunlight Spear" , 5520, ItemType.MiracleSunlightSpear , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Miracle: Magic Barrier" , 5600, ItemType.MiracleMagicBarrier , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Miracle: Great Magic Barrier" , 5610, ItemType.MiracleGreatMagicBarrier , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Miracle: Karmic Justice" , 5700, ItemType.MiracleKarmicJustice , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Miracle: Tranquil Walk of Peace" , 5800, ItemType.MiracleTranquilWalkofPeace , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Miracle: Vow of Silence" , 5810, ItemType.MiracleVowofSilence , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Miracle: Sunlight Blade" , 5900, ItemType.MiracleSunlightBlade , ItemCategory.Spells , 99, ItemUpgrade.None ), + new("Miracle: Darkmoon Blade" , 5910, ItemType.MiracleDarkmoonBlade , ItemCategory.Spells , 99, ItemUpgrade.None ), - new Item("Sorcerer's Catalyst" , 1300000, ItemType.SorcerersCatalyst , ItemCategory.SpellTools , 1, ItemUpgrade.None ), - new Item("Beatrice's Catalyst" , 1301000, ItemType.BeatricesCatalyst , ItemCategory.SpellTools , 1, ItemUpgrade.None ), - new Item("Tin Banishment Catalyst" , 1302000, ItemType.TinBanishmentCatalyst , ItemCategory.SpellTools , 1, ItemUpgrade.None ), - new Item("Logan's Catalyst" , 1303000, ItemType.LogansCatalyst , ItemCategory.SpellTools , 1, ItemUpgrade.None ), - new Item("Tin Darkmoon Catalyst" , 1304000, ItemType.TinDarkmoonCatalyst , ItemCategory.SpellTools , 1, ItemUpgrade.None ), - new Item("Oolacile Ivory Catalyst" , 1305000, ItemType.OolacileIvoryCatalyst , ItemCategory.SpellTools , 1, ItemUpgrade.None ), - new Item("Tin Crystallization Catalyst" , 1306000, ItemType.TinCrystallizationCatalyst , ItemCategory.SpellTools , 1, ItemUpgrade.None ), - new Item("Demon's Catalyst" , 1307000, ItemType.DemonsCatalyst , ItemCategory.SpellTools , 1, ItemUpgrade.None ), - new Item("Izalith Catalyst" , 1308000, ItemType.IzalithCatalyst , ItemCategory.SpellTools , 1, ItemUpgrade.None ), - new Item("Pyromancy Flame" , 1330000, ItemType.PyromancyFlame , ItemCategory.SpellTools , 1, ItemUpgrade.None ), - new Item("Pyromancy Flame (Ascended)" , 1332000, ItemType.PyromancyFlameAscended , ItemCategory.SpellTools , 1, ItemUpgrade.None ), - new Item("Talisman" , 1360000, ItemType.Talisman , ItemCategory.SpellTools , 1, ItemUpgrade.None ), - new Item("Canvas Talisman" , 1361000, ItemType.CanvasTalisman , ItemCategory.SpellTools , 1, ItemUpgrade.None ), - new Item("Thorolund Talisman" , 1362000, ItemType.ThorolundTalisman , ItemCategory.SpellTools , 1, ItemUpgrade.None ), - new Item("Ivory Talisman" , 1363000, ItemType.IvoryTalisman , ItemCategory.SpellTools , 1, ItemUpgrade.None ), - new Item("Sunlight Talisman" , 1365000, ItemType.SunlightTalisman , ItemCategory.SpellTools , 1, ItemUpgrade.None ), - new Item("Darkmoon Talisman" , 1366000, ItemType.DarkmoonTalisman , ItemCategory.SpellTools , 1, ItemUpgrade.None ), - new Item("Velka's Talisman" , 1367000, ItemType.VelkasTalisman , ItemCategory.SpellTools , 1, ItemUpgrade.None ), - new Item("Manus Catalyst" , 9017000, ItemType.ManusCatalyst , ItemCategory.SpellTools , 1, ItemUpgrade.None ), - new Item("Oolacile Catalyst" , 9018000, ItemType.OolacileCatalyst , ItemCategory.SpellTools , 1, ItemUpgrade.None ), + new("Sorcerer's Catalyst" , 1300000, ItemType.SorcerersCatalyst , ItemCategory.SpellTools , 1, ItemUpgrade.None ), + new("Beatrice's Catalyst" , 1301000, ItemType.BeatricesCatalyst , ItemCategory.SpellTools , 1, ItemUpgrade.None ), + new("Tin Banishment Catalyst" , 1302000, ItemType.TinBanishmentCatalyst , ItemCategory.SpellTools , 1, ItemUpgrade.None ), + new("Logan's Catalyst" , 1303000, ItemType.LogansCatalyst , ItemCategory.SpellTools , 1, ItemUpgrade.None ), + new("Tin Darkmoon Catalyst" , 1304000, ItemType.TinDarkmoonCatalyst , ItemCategory.SpellTools , 1, ItemUpgrade.None ), + new("Oolacile Ivory Catalyst" , 1305000, ItemType.OolacileIvoryCatalyst , ItemCategory.SpellTools , 1, ItemUpgrade.None ), + new("Tin Crystallization Catalyst" , 1306000, ItemType.TinCrystallizationCatalyst , ItemCategory.SpellTools , 1, ItemUpgrade.None ), + new("Demon's Catalyst" , 1307000, ItemType.DemonsCatalyst , ItemCategory.SpellTools , 1, ItemUpgrade.None ), + new("Izalith Catalyst" , 1308000, ItemType.IzalithCatalyst , ItemCategory.SpellTools , 1, ItemUpgrade.None ), + new("Pyromancy Flame" , 1330000, ItemType.PyromancyFlame , ItemCategory.SpellTools , 1, ItemUpgrade.None ), + new("Pyromancy Flame (Ascended)" , 1332000, ItemType.PyromancyFlameAscended , ItemCategory.SpellTools , 1, ItemUpgrade.None ), + new("Talisman" , 1360000, ItemType.Talisman , ItemCategory.SpellTools , 1, ItemUpgrade.None ), + new("Canvas Talisman" , 1361000, ItemType.CanvasTalisman , ItemCategory.SpellTools , 1, ItemUpgrade.None ), + new("Thorolund Talisman" , 1362000, ItemType.ThorolundTalisman , ItemCategory.SpellTools , 1, ItemUpgrade.None ), + new("Ivory Talisman" , 1363000, ItemType.IvoryTalisman , ItemCategory.SpellTools , 1, ItemUpgrade.None ), + new("Sunlight Talisman" , 1365000, ItemType.SunlightTalisman , ItemCategory.SpellTools , 1, ItemUpgrade.None ), + new("Darkmoon Talisman" , 1366000, ItemType.DarkmoonTalisman , ItemCategory.SpellTools , 1, ItemUpgrade.None ), + new("Velka's Talisman" , 1367000, ItemType.VelkasTalisman , ItemCategory.SpellTools , 1, ItemUpgrade.None ), + new("Manus Catalyst" , 9017000, ItemType.ManusCatalyst , ItemCategory.SpellTools , 1, ItemUpgrade.None ), + new("Oolacile Catalyst" , 9018000, ItemType.OolacileCatalyst , ItemCategory.SpellTools , 1, ItemUpgrade.None ), - new Item("Large Ember" , 800 , ItemType.LargeEmber , ItemCategory.UpgradeMaterials, 1, ItemUpgrade.None ), - new Item("Very Large Ember" , 801 , ItemType.VeryLargeEmber , ItemCategory.UpgradeMaterials, 1, ItemUpgrade.None ), - new Item("Crystal Ember" , 802 , ItemType.CrystalEmber , ItemCategory.UpgradeMaterials, 1, ItemUpgrade.None ), - new Item("Large Magic Ember" , 806 , ItemType.LargeMagicEmber , ItemCategory.UpgradeMaterials, 1, ItemUpgrade.None ), - new Item("Enchanted Ember" , 807 , ItemType.EnchantedEmber , ItemCategory.UpgradeMaterials, 1, ItemUpgrade.None ), - new Item("Divine Ember" , 808 , ItemType.DivineEmber , ItemCategory.UpgradeMaterials, 1, ItemUpgrade.None ), - new Item("Large Divine Ember" , 809 , ItemType.LargeDivineEmber , ItemCategory.UpgradeMaterials, 1, ItemUpgrade.None ), - new Item("Dark Ember" , 810 , ItemType.DarkEmber , ItemCategory.UpgradeMaterials, 1, ItemUpgrade.None ), - new Item("Large Flame Ember" , 812 , ItemType.LargeFlameEmber , ItemCategory.UpgradeMaterials, 1, ItemUpgrade.None ), - new Item("Chaos Flame Ember" , 813 , ItemType.ChaosFlameEmber , ItemCategory.UpgradeMaterials, 1, ItemUpgrade.None ), - new Item("Titanite Shard" , 1000, ItemType.TitaniteShard , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), - new Item("Large Titanite Shard" , 1010, ItemType.LargeTitaniteShard , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), - new Item("Green Titanite Shard" , 1020, ItemType.GreenTitaniteShard , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), - new Item("Titanite Chunk" , 1030, ItemType.TitaniteChunk , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), - new Item("Blue Titanite Chunk" , 1040, ItemType.BlueTitaniteChunk , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), - new Item("White Titanite Chunk" , 1050, ItemType.WhiteTitaniteChunk , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), - new Item("Red Titanite Chunk" , 1060, ItemType.RedTitaniteChunk , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), - new Item("Titanite Slab" , 1070, ItemType.TitaniteSlab , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), - new Item("Blue Titanite Slab" , 1080, ItemType.BlueTitaniteSlab , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), - new Item("White Titanite Slab" , 1090, ItemType.WhiteTitaniteSlab , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), - new Item("Red Titanite Slab" , 1100, ItemType.RedTitaniteSlab , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), - new Item("Dragon Scale" , 1110, ItemType.DragonScale , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), - new Item("Demon Titanite" , 1120, ItemType.DemonTitanite , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), - new Item("Twinkling Titanite" , 1130, ItemType.TwinklingTitanite , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), + new("Large Ember" , 800 , ItemType.LargeEmber , ItemCategory.UpgradeMaterials, 1, ItemUpgrade.None ), + new("Very Large Ember" , 801 , ItemType.VeryLargeEmber , ItemCategory.UpgradeMaterials, 1, ItemUpgrade.None ), + new("Crystal Ember" , 802 , ItemType.CrystalEmber , ItemCategory.UpgradeMaterials, 1, ItemUpgrade.None ), + new("Large Magic Ember" , 806 , ItemType.LargeMagicEmber , ItemCategory.UpgradeMaterials, 1, ItemUpgrade.None ), + new("Enchanted Ember" , 807 , ItemType.EnchantedEmber , ItemCategory.UpgradeMaterials, 1, ItemUpgrade.None ), + new("Divine Ember" , 808 , ItemType.DivineEmber , ItemCategory.UpgradeMaterials, 1, ItemUpgrade.None ), + new("Large Divine Ember" , 809 , ItemType.LargeDivineEmber , ItemCategory.UpgradeMaterials, 1, ItemUpgrade.None ), + new("Dark Ember" , 810 , ItemType.DarkEmber , ItemCategory.UpgradeMaterials, 1, ItemUpgrade.None ), + new("Large Flame Ember" , 812 , ItemType.LargeFlameEmber , ItemCategory.UpgradeMaterials, 1, ItemUpgrade.None ), + new("Chaos Flame Ember" , 813 , ItemType.ChaosFlameEmber , ItemCategory.UpgradeMaterials, 1, ItemUpgrade.None ), + new("Titanite Shard" , 1000, ItemType.TitaniteShard , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), + new("Large Titanite Shard" , 1010, ItemType.LargeTitaniteShard , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), + new("Green Titanite Shard" , 1020, ItemType.GreenTitaniteShard , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), + new("Titanite Chunk" , 1030, ItemType.TitaniteChunk , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), + new("Blue Titanite Chunk" , 1040, ItemType.BlueTitaniteChunk , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), + new("White Titanite Chunk" , 1050, ItemType.WhiteTitaniteChunk , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), + new("Red Titanite Chunk" , 1060, ItemType.RedTitaniteChunk , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), + new("Titanite Slab" , 1070, ItemType.TitaniteSlab , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), + new("Blue Titanite Slab" , 1080, ItemType.BlueTitaniteSlab , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), + new("White Titanite Slab" , 1090, ItemType.WhiteTitaniteSlab , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), + new("Red Titanite Slab" , 1100, ItemType.RedTitaniteSlab , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), + new("Dragon Scale" , 1110, ItemType.DragonScale , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), + new("Demon Titanite" , 1120, ItemType.DemonTitanite , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), + new("Twinkling Titanite" , 1130, ItemType.TwinklingTitanite , ItemCategory.UpgradeMaterials, 99, ItemUpgrade.None ), - new Item("White Sign Soapstone" , 100, ItemType.WhiteSignSoapstone , ItemCategory.UsableItems , 1, ItemUpgrade.None ), - new Item("Red Sign Soapstone" , 101, ItemType.RedSignSoapstone , ItemCategory.UsableItems , 1, ItemUpgrade.None ), - new Item("Red Eye Orb" , 102, ItemType.RedEyeOrb , ItemCategory.UsableItems , 1, ItemUpgrade.None ), - new Item("Black Separation Crystal" , 103, ItemType.BlackSeparationCrystal , ItemCategory.UsableItems , 1, ItemUpgrade.None ), - new Item("Orange Guidance Soapstone" , 106, ItemType.OrangeGuidanceSoapstone , ItemCategory.UsableItems , 1, ItemUpgrade.None ), - new Item("Book of the Guilty" , 108, ItemType.BookoftheGuilty , ItemCategory.UsableItems , 1, ItemUpgrade.None ), - new Item("Servant Roster" , 112, ItemType.ServantRoster , ItemCategory.UsableItems , 1, ItemUpgrade.None ), - new Item("Blue Eye Orb" , 113, ItemType.BlueEyeOrb , ItemCategory.UsableItems , 1, ItemUpgrade.None ), - new Item("Dragon Eye" , 114, ItemType.DragonEye , ItemCategory.UsableItems , 1, ItemUpgrade.None ), - new Item("Black Eye Orb" , 115, ItemType.BlackEyeOrb , ItemCategory.UsableItems , 1, ItemUpgrade.None ), - new Item("Darksign" , 117, ItemType.Darksign , ItemCategory.UsableItems , 1, ItemUpgrade.None ), - new Item("Purple Coward's Crystal" , 118, ItemType.PurpleCowardsCrystal , ItemCategory.UsableItems , 1, ItemUpgrade.None ), - new Item("Silver Pendant" , 220, ItemType.SilverPendant , ItemCategory.UsableItems , 99, ItemUpgrade.None ), - new Item("Binoculars" , 371, ItemType.Binoculars , ItemCategory.UsableItems , 1, ItemUpgrade.None ), - new Item("Dragon Head Stone" , 377, ItemType.DragonHeadStone , ItemCategory.UsableItems , 99, ItemUpgrade.None ), - new Item("Dragon Torso Stone" , 378, ItemType.DragonTorsoStone , ItemCategory.UsableItems , 99, ItemUpgrade.None ), - new Item("Dried Finger" , 385, ItemType.DriedFinger , ItemCategory.UsableItems , 1, ItemUpgrade.None ), - new Item("Hello Carving" , 510, ItemType.HelloCarving , ItemCategory.UsableItems , 1, ItemUpgrade.None ), - new Item("Thank you Carving" , 511, ItemType.ThankyouCarving , ItemCategory.UsableItems , 1, ItemUpgrade.None ), - new Item("Very good! Carving" , 512, ItemType.VerygoodCarving , ItemCategory.UsableItems , 1, ItemUpgrade.None ), - new Item("I'm sorry Carving" , 513, ItemType.ImsorryCarving , ItemCategory.UsableItems , 1, ItemUpgrade.None ), - new Item("Help me! Carving" , 514, ItemType.HelpmeCarving , ItemCategory.UsableItems , 1, ItemUpgrade.None ), + new("White Sign Soapstone" , 100, ItemType.WhiteSignSoapstone , ItemCategory.UsableItems , 1, ItemUpgrade.None ), + new("Red Sign Soapstone" , 101, ItemType.RedSignSoapstone , ItemCategory.UsableItems , 1, ItemUpgrade.None ), + new("Red Eye Orb" , 102, ItemType.RedEyeOrb , ItemCategory.UsableItems , 1, ItemUpgrade.None ), + new("Black Separation Crystal" , 103, ItemType.BlackSeparationCrystal , ItemCategory.UsableItems , 1, ItemUpgrade.None ), + new("Orange Guidance Soapstone" , 106, ItemType.OrangeGuidanceSoapstone , ItemCategory.UsableItems , 1, ItemUpgrade.None ), + new("Book of the Guilty" , 108, ItemType.BookoftheGuilty , ItemCategory.UsableItems , 1, ItemUpgrade.None ), + new("Servant Roster" , 112, ItemType.ServantRoster , ItemCategory.UsableItems , 1, ItemUpgrade.None ), + new("Blue Eye Orb" , 113, ItemType.BlueEyeOrb , ItemCategory.UsableItems , 1, ItemUpgrade.None ), + new("Dragon Eye" , 114, ItemType.DragonEye , ItemCategory.UsableItems , 1, ItemUpgrade.None ), + new("Black Eye Orb" , 115, ItemType.BlackEyeOrb , ItemCategory.UsableItems , 1, ItemUpgrade.None ), + new("Darksign" , 117, ItemType.Darksign , ItemCategory.UsableItems , 1, ItemUpgrade.None ), + new("Purple Coward's Crystal" , 118, ItemType.PurpleCowardsCrystal , ItemCategory.UsableItems , 1, ItemUpgrade.None ), + new("Silver Pendant" , 220, ItemType.SilverPendant , ItemCategory.UsableItems , 99, ItemUpgrade.None ), + new("Binoculars" , 371, ItemType.Binoculars , ItemCategory.UsableItems , 1, ItemUpgrade.None ), + new("Dragon Head Stone" , 377, ItemType.DragonHeadStone , ItemCategory.UsableItems , 99, ItemUpgrade.None ), + new("Dragon Torso Stone" , 378, ItemType.DragonTorsoStone , ItemCategory.UsableItems , 99, ItemUpgrade.None ), + new("Dried Finger" , 385, ItemType.DriedFinger , ItemCategory.UsableItems , 1, ItemUpgrade.None ), + new("Hello Carving" , 510, ItemType.HelloCarving , ItemCategory.UsableItems , 1, ItemUpgrade.None ), + new("Thank you Carving" , 511, ItemType.ThankyouCarving , ItemCategory.UsableItems , 1, ItemUpgrade.None ), + new("Very good! Carving" , 512, ItemType.VerygoodCarving , ItemCategory.UsableItems , 1, ItemUpgrade.None ), + new("I'm sorry Carving" , 513, ItemType.ImsorryCarving , ItemCategory.UsableItems , 1, ItemUpgrade.None ), + new("Help me! Carving" , 514, ItemType.HelpmeCarving , ItemCategory.UsableItems , 1, ItemUpgrade.None ), }); } diff --git a/src/SoulMemory/DarkSouls1/Parameters/AiStandardInfo.cs b/src/SoulMemory/DarkSouls1/Parameters/AiStandardInfo.cs index 4ec1761..279c84e 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/AiStandardInfo.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/AiStandardInfo.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class AiStandardInfo : BaseParam +public class AiStandardInfo(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public AiStandardInfo(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.U16)] public ushort RadarRange { diff --git a/src/SoulMemory/DarkSouls1/Parameters/AtkParam.cs b/src/SoulMemory/DarkSouls1/Parameters/AtkParam.cs index 8304f95..3aad9ae 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/AtkParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/AtkParam.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class AtkParam : BaseParam +public class AtkParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public AtkParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.F32)] public float Hit0_Radius { diff --git a/src/SoulMemory/DarkSouls1/Parameters/BehaviorParam.cs b/src/SoulMemory/DarkSouls1/Parameters/BehaviorParam.cs index 35d203b..7715fb3 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/BehaviorParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/BehaviorParam.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class BehaviorParam : BaseParam +public class BehaviorParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public BehaviorParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.I32)] public int VariationId { diff --git a/src/SoulMemory/DarkSouls1/Parameters/BulletParam.cs b/src/SoulMemory/DarkSouls1/Parameters/BulletParam.cs index 963fe9a..f458589 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/BulletParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/BulletParam.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class BulletParam : BaseParam +public class BulletParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public BulletParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.I32)] public int AtkId_Bullet { diff --git a/src/SoulMemory/DarkSouls1/Parameters/CalcCorrectGraph.cs b/src/SoulMemory/DarkSouls1/Parameters/CalcCorrectGraph.cs index 97cd89f..8df1b03 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/CalcCorrectGraph.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/CalcCorrectGraph.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class CalcCorrectGraph : BaseParam +public class CalcCorrectGraph(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public CalcCorrectGraph(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.F32)] public float StageMaxVal0 { diff --git a/src/SoulMemory/DarkSouls1/Parameters/CharaInitParam.cs b/src/SoulMemory/DarkSouls1/Parameters/CharaInitParam.cs index 7bd61de..2ffb55b 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/CharaInitParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/CharaInitParam.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class CharaInitParam : BaseParam +public class CharaInitParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public CharaInitParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.F32)] public float BaseRec_mp { diff --git a/src/SoulMemory/DarkSouls1/Parameters/CoolTimeParam.cs b/src/SoulMemory/DarkSouls1/Parameters/CoolTimeParam.cs index 463d3f7..8a5c1ff 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/CoolTimeParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/CoolTimeParam.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class CoolTimeParam : BaseParam +public class CoolTimeParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public CoolTimeParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.F32)] public float LimitationTime_0 { diff --git a/src/SoulMemory/DarkSouls1/Parameters/DofBank.cs b/src/SoulMemory/DarkSouls1/Parameters/DofBank.cs index 6c4c9a0..375eb48 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/DofBank.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/DofBank.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class DofBank : BaseParam +public class DofBank(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public DofBank(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.F32)] public float FarDofBegin { diff --git a/src/SoulMemory/DarkSouls1/Parameters/EnemyStandardInfo.cs b/src/SoulMemory/DarkSouls1/Parameters/EnemyStandardInfo.cs index 6075bc9..2499a41 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/EnemyStandardInfo.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/EnemyStandardInfo.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class EnemyStandardInfo : BaseParam +public class EnemyStandardInfo(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public EnemyStandardInfo(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.I32)] public int EnemyBehaviorID { diff --git a/src/SoulMemory/DarkSouls1/Parameters/EnvLightTexBank.cs b/src/SoulMemory/DarkSouls1/Parameters/EnvLightTexBank.cs index 2ba267a..ba31c4a 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/EnvLightTexBank.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/EnvLightTexBank.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class EnvLightTexBank : BaseParam +public class EnvLightTexBank(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public EnvLightTexBank(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.I8)] public sbyte IsUse { diff --git a/src/SoulMemory/DarkSouls1/Parameters/EquipMtrlSetParam.cs b/src/SoulMemory/DarkSouls1/Parameters/EquipMtrlSetParam.cs index 8440b2f..c6ebf1e 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/EquipMtrlSetParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/EquipMtrlSetParam.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class EquipMtrlSetParam : BaseParam +public class EquipMtrlSetParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public EquipMtrlSetParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.I32)] public int MaterialId01 { diff --git a/src/SoulMemory/DarkSouls1/Parameters/EquipParamAccessory.cs b/src/SoulMemory/DarkSouls1/Parameters/EquipParamAccessory.cs index d7ddd0a..9d6de52 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/EquipParamAccessory.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/EquipParamAccessory.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class EquipParamAccessory : BaseParam +public class EquipParamAccessory(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public EquipParamAccessory(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.I32)] public int RefId { diff --git a/src/SoulMemory/DarkSouls1/Parameters/EquipParamGoods.cs b/src/SoulMemory/DarkSouls1/Parameters/EquipParamGoods.cs index af336f7..aed7716 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/EquipParamGoods.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/EquipParamGoods.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class EquipParamGoods : BaseParam +public class EquipParamGoods(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public EquipParamGoods(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.I32)] public int RefId { diff --git a/src/SoulMemory/DarkSouls1/Parameters/EquipParamProtector.cs b/src/SoulMemory/DarkSouls1/Parameters/EquipParamProtector.cs index a353e99..3d22457 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/EquipParamProtector.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/EquipParamProtector.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class EquipParamProtector : BaseParam +public class EquipParamProtector(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public EquipParamProtector(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.I32)] public int SortId { diff --git a/src/SoulMemory/DarkSouls1/Parameters/EquipParamWeapon.cs b/src/SoulMemory/DarkSouls1/Parameters/EquipParamWeapon.cs index a8ff869..adf0201 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/EquipParamWeapon.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/EquipParamWeapon.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class EquipParamWeapon : BaseParam +public class EquipParamWeapon(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public EquipParamWeapon(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.I32)] public int BehaviorVariationId { diff --git a/src/SoulMemory/DarkSouls1/Parameters/FaceGenParam.cs b/src/SoulMemory/DarkSouls1/Parameters/FaceGenParam.cs index ad28cf5..77a5c0f 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/FaceGenParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/FaceGenParam.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class FaceGenParam : BaseParam +public class FaceGenParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public FaceGenParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.U8)] public byte FaceGeoData00 { diff --git a/src/SoulMemory/DarkSouls1/Parameters/FogBank.cs b/src/SoulMemory/DarkSouls1/Parameters/FogBank.cs index 9979b5e..938c90c 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/FogBank.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/FogBank.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class FogBank : BaseParam +public class FogBank(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public FogBank(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.I16)] public short FogBeginZ { diff --git a/src/SoulMemory/DarkSouls1/Parameters/GameAreaParam.cs b/src/SoulMemory/DarkSouls1/Parameters/GameAreaParam.cs index 407983a..f959f2a 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/GameAreaParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/GameAreaParam.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class GameAreaParam : BaseParam +public class GameAreaParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public GameAreaParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.U32)] public uint BonusSoul_single { diff --git a/src/SoulMemory/DarkSouls1/Parameters/HitMtrlParam.cs b/src/SoulMemory/DarkSouls1/Parameters/HitMtrlParam.cs index 383cc3f..5473942 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/HitMtrlParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/HitMtrlParam.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class HitMtrlParam : BaseParam +public class HitMtrlParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public HitMtrlParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.F32)] public float AiVolumeRate { diff --git a/src/SoulMemory/DarkSouls1/Parameters/ItemLotParam.cs b/src/SoulMemory/DarkSouls1/Parameters/ItemLotParam.cs index 884fb76..c61d86b 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/ItemLotParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/ItemLotParam.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class ItemLotParam : BaseParam +public class ItemLotParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public ItemLotParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.I32)] public int LotItemId01 { diff --git a/src/SoulMemory/DarkSouls1/Parameters/KnockBackParam.cs b/src/SoulMemory/DarkSouls1/Parameters/KnockBackParam.cs index 32133b3..b6287cc 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/KnockBackParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/KnockBackParam.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class KnockBackParam : BaseParam +public class KnockBackParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public KnockBackParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.F32)] public float Damage_Min_ContTime { diff --git a/src/SoulMemory/DarkSouls1/Parameters/LensFlareBank.cs b/src/SoulMemory/DarkSouls1/Parameters/LensFlareBank.cs index 2b2fa21..db67255 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/LensFlareBank.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/LensFlareBank.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class LensFlareBank : BaseParam +public class LensFlareBank(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public LensFlareBank(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.I8)] public sbyte TexId { diff --git a/src/SoulMemory/DarkSouls1/Parameters/LensFlareExBank.cs b/src/SoulMemory/DarkSouls1/Parameters/LensFlareExBank.cs index 1052d94..7e41631 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/LensFlareExBank.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/LensFlareExBank.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class LensFlareExBank : BaseParam +public class LensFlareExBank(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public LensFlareExBank(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.I16)] public short LightDegRotX { diff --git a/src/SoulMemory/DarkSouls1/Parameters/LevelSyncParam.cs b/src/SoulMemory/DarkSouls1/Parameters/LevelSyncParam.cs index cfb9e3c..bd07eb8 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/LevelSyncParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/LevelSyncParam.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class LevelSyncParam : BaseParam +public class LevelSyncParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public LevelSyncParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.I16)] public short SCLUA { diff --git a/src/SoulMemory/DarkSouls1/Parameters/LightBank.cs b/src/SoulMemory/DarkSouls1/Parameters/LightBank.cs index 07309af..7f2ebf7 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/LightBank.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/LightBank.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class LightBank : BaseParam +public class LightBank(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public LightBank(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.I16)] public short DegRotX_0 { diff --git a/src/SoulMemory/DarkSouls1/Parameters/LightScatteringBank.cs b/src/SoulMemory/DarkSouls1/Parameters/LightScatteringBank.cs index 27d0fdd..a21dd5a 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/LightScatteringBank.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/LightScatteringBank.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class LightScatteringBank : BaseParam +public class LightScatteringBank(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public LightScatteringBank(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.I16)] public short SunRotX { diff --git a/src/SoulMemory/DarkSouls1/Parameters/LockCamParam.cs b/src/SoulMemory/DarkSouls1/Parameters/LockCamParam.cs index b5655f0..3ecc17e 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/LockCamParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/LockCamParam.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class LockCamParam : BaseParam +public class LockCamParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public LockCamParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.F32)] public float CamDistTarget { diff --git a/src/SoulMemory/DarkSouls1/Parameters/LodBank.cs b/src/SoulMemory/DarkSouls1/Parameters/LodBank.cs index 1e32030..6dc1e71 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/LodBank.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/LodBank.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class LodBank : BaseParam +public class LodBank(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public LodBank(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.F32)] public float Lv01_BorderDist { diff --git a/src/SoulMemory/DarkSouls1/Parameters/MagicParam.cs b/src/SoulMemory/DarkSouls1/Parameters/MagicParam.cs index 48766dc..456e2ab 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/MagicParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/MagicParam.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class MagicParam : BaseParam +public class MagicParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public MagicParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.I32)] public int YesNoDialogMessageId { diff --git a/src/SoulMemory/DarkSouls1/Parameters/MenuParamColorTable.cs b/src/SoulMemory/DarkSouls1/Parameters/MenuParamColorTable.cs index fd0edeb..3df339e 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/MenuParamColorTable.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/MenuParamColorTable.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class MenuParamColorTable : BaseParam +public class MenuParamColorTable(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public MenuParamColorTable(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.U8)] public byte R { diff --git a/src/SoulMemory/DarkSouls1/Parameters/MoveParam.cs b/src/SoulMemory/DarkSouls1/Parameters/MoveParam.cs index 3ce6808..b10781d 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/MoveParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/MoveParam.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class MoveParam : BaseParam +public class MoveParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public MoveParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.I32)] public int StayId { diff --git a/src/SoulMemory/DarkSouls1/Parameters/NpcParam.cs b/src/SoulMemory/DarkSouls1/Parameters/NpcParam.cs index 1cac166..771656e 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/NpcParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/NpcParam.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class NpcParam : BaseParam +public class NpcParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public NpcParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.I32)] public int BehaviorVariationId { diff --git a/src/SoulMemory/DarkSouls1/Parameters/NpcThinkParam.cs b/src/SoulMemory/DarkSouls1/Parameters/NpcThinkParam.cs index dfea899..289b32a 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/NpcThinkParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/NpcThinkParam.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class NpcThinkParam : BaseParam +public class NpcThinkParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public NpcThinkParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.I32)] public int LogicId { diff --git a/src/SoulMemory/DarkSouls1/Parameters/ObjActParam.cs b/src/SoulMemory/DarkSouls1/Parameters/ObjActParam.cs index 684271a..20d0703 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/ObjActParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/ObjActParam.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class ObjActParam : BaseParam +public class ObjActParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public ObjActParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.I32)] public int ActionEnableMsgId { diff --git a/src/SoulMemory/DarkSouls1/Parameters/ObjectParam.cs b/src/SoulMemory/DarkSouls1/Parameters/ObjectParam.cs index a5dae63..a8bf2d0 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/ObjectParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/ObjectParam.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class ObjectParam : BaseParam +public class ObjectParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public ObjectParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.I16)] public short Hp { diff --git a/src/SoulMemory/DarkSouls1/Parameters/PointLightBank.cs b/src/SoulMemory/DarkSouls1/Parameters/PointLightBank.cs index ffab7c6..db051cd 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/PointLightBank.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/PointLightBank.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class PointLightBank : BaseParam +public class PointLightBank(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public PointLightBank(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.F32)] public float DwindleBegin { diff --git a/src/SoulMemory/DarkSouls1/Parameters/QwcChangeParam.cs b/src/SoulMemory/DarkSouls1/Parameters/QwcChangeParam.cs index 73e9efb..99a1769 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/QwcChangeParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/QwcChangeParam.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class QwcChangeParam : BaseParam +public class QwcChangeParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public QwcChangeParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.I16)] public short PcAttrB { diff --git a/src/SoulMemory/DarkSouls1/Parameters/QwcJudgeParam.cs b/src/SoulMemory/DarkSouls1/Parameters/QwcJudgeParam.cs index dcb7bd3..c0ccaa8 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/QwcJudgeParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/QwcJudgeParam.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class QwcJudgeParam : BaseParam +public class QwcJudgeParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public QwcJudgeParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.I16)] public short PcJudgeUnderWB { diff --git a/src/SoulMemory/DarkSouls1/Parameters/RagdollParam.cs b/src/SoulMemory/DarkSouls1/Parameters/RagdollParam.cs index ab0876e..89719f7 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/RagdollParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/RagdollParam.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class RagdollParam : BaseParam +public class RagdollParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public RagdollParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.F32)] public float HierarchyGain { diff --git a/src/SoulMemory/DarkSouls1/Parameters/ReinforceParamProtector.cs b/src/SoulMemory/DarkSouls1/Parameters/ReinforceParamProtector.cs index f8a4ff1..e300376 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/ReinforceParamProtector.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/ReinforceParamProtector.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class ReinforceParamProtector : BaseParam +public class ReinforceParamProtector(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public ReinforceParamProtector(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.F32)] public float PhysicsDefRate { diff --git a/src/SoulMemory/DarkSouls1/Parameters/ReinforceParamWeapon.cs b/src/SoulMemory/DarkSouls1/Parameters/ReinforceParamWeapon.cs index 0cf266c..5e1d703 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/ReinforceParamWeapon.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/ReinforceParamWeapon.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class ReinforceParamWeapon : BaseParam +public class ReinforceParamWeapon(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public ReinforceParamWeapon(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.F32)] public float PhysicsAtkRate { diff --git a/src/SoulMemory/DarkSouls1/Parameters/ShadowBank.cs b/src/SoulMemory/DarkSouls1/Parameters/ShadowBank.cs index 98d49f5..525d1e7 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/ShadowBank.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/ShadowBank.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class ShadowBank : BaseParam +public class ShadowBank(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public ShadowBank(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.I16)] public short LightDegRotX { diff --git a/src/SoulMemory/DarkSouls1/Parameters/ShopLineupParam.cs b/src/SoulMemory/DarkSouls1/Parameters/ShopLineupParam.cs index 2fc2f1d..6d40eef 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/ShopLineupParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/ShopLineupParam.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class ShopLineupParam : BaseParam +public class ShopLineupParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public ShopLineupParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.I32)] public int EquipId { diff --git a/src/SoulMemory/DarkSouls1/Parameters/SkeletonParam.cs b/src/SoulMemory/DarkSouls1/Parameters/SkeletonParam.cs index a4f7fd5..f6cec65 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/SkeletonParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/SkeletonParam.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class SkeletonParam : BaseParam +public class SkeletonParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public SkeletonParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.F32)] public float NeckTurnGain { diff --git a/src/SoulMemory/DarkSouls1/Parameters/SpEffect.cs b/src/SoulMemory/DarkSouls1/Parameters/SpEffect.cs index 0bd7ca8..087963c 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/SpEffect.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/SpEffect.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class SpEffect : BaseParam +public class SpEffect(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public SpEffect(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.I32)] public int IconId { diff --git a/src/SoulMemory/DarkSouls1/Parameters/SpEffectVfx.cs b/src/SoulMemory/DarkSouls1/Parameters/SpEffectVfx.cs index a780469..d436c73 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/SpEffectVfx.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/SpEffectVfx.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class SpEffectVfx : BaseParam +public class SpEffectVfx(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public SpEffectVfx(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.I32)] public int MidstSfxId { diff --git a/src/SoulMemory/DarkSouls1/Parameters/TalkParam.cs b/src/SoulMemory/DarkSouls1/Parameters/TalkParam.cs index 2fca64d..b8fb4c7 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/TalkParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/TalkParam.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class TalkParam : BaseParam +public class TalkParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public TalkParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.I32)] public int MsgId { diff --git a/src/SoulMemory/DarkSouls1/Parameters/ThrowParam.cs b/src/SoulMemory/DarkSouls1/Parameters/ThrowParam.cs index 3d24d29..40ec729 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/ThrowParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/ThrowParam.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class ThrowParam : BaseParam +public class ThrowParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public ThrowParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.I32)] public int AtkChrId { diff --git a/src/SoulMemory/DarkSouls1/Parameters/ToneCorrectBank.cs b/src/SoulMemory/DarkSouls1/Parameters/ToneCorrectBank.cs index de14425..24d269a 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/ToneCorrectBank.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/ToneCorrectBank.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class ToneCorrectBank : BaseParam +public class ToneCorrectBank(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public ToneCorrectBank(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.F32)] public float BrightnessR { diff --git a/src/SoulMemory/DarkSouls1/Parameters/ToneMapBank.cs b/src/SoulMemory/DarkSouls1/Parameters/ToneMapBank.cs index 676fc75..cd9c63e 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/ToneMapBank.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/ToneMapBank.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class ToneMapBank : BaseParam +public class ToneMapBank(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public ToneMapBank(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.I16)] public short BloomBegin { diff --git a/src/SoulMemory/DarkSouls1/Parameters/WhiteCoolTimeParam.cs b/src/SoulMemory/DarkSouls1/Parameters/WhiteCoolTimeParam.cs index 7451f13..74a375d 100644 --- a/src/SoulMemory/DarkSouls1/Parameters/WhiteCoolTimeParam.cs +++ b/src/SoulMemory/DarkSouls1/Parameters/WhiteCoolTimeParam.cs @@ -21,10 +21,8 @@ namespace SoulMemory.DarkSouls1.Parameters; [ExcludeFromCodeCoverage] -public class WhiteCoolTimeParam : BaseParam +public class WhiteCoolTimeParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : BaseParam(basePointer, memory, offset, paramTableEntry) { - public WhiteCoolTimeParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){} - [ParamField(0x0, ParamType.F32)] public float TimeLimit0 { diff --git a/src/SoulMemory/DarkSouls1/Ptde.cs b/src/SoulMemory/DarkSouls1/Ptde.cs index 202c965..bfb2fa0 100644 --- a/src/SoulMemory/DarkSouls1/Ptde.cs +++ b/src/SoulMemory/DarkSouls1/Ptde.cs @@ -50,20 +50,20 @@ public class Ptde : IDarkSouls1 private Process? _process; - private readonly Pointer _gameMan = new Pointer(); - private readonly Pointer _gameDataMan = new Pointer(); - private readonly Pointer _playerIns = new Pointer(); - private readonly Pointer _playerGameData = new Pointer(); - private readonly Pointer _eventFlags = new Pointer(); - private readonly Pointer _inventoryIndices = new Pointer(); - private readonly Pointer _netBonfireDb = new Pointer(); - private readonly Pointer _saveInfo = new Pointer(); - private readonly Pointer _menuMan = new Pointer(); - private readonly Pointer _soloParamMan = new Pointer(); - private readonly Pointer _msgMan = new Pointer(); - private readonly Pointer _loadingScreenItems = new Pointer(); - private List _itemLotParams = new List(); - private List _weaponDescriptionsTable = new List(); + private readonly Pointer _gameMan = new(); + private readonly Pointer _gameDataMan = new(); + private readonly Pointer _playerIns = new(); + private readonly Pointer _playerGameData = new(); + private readonly Pointer _eventFlags = new(); + private readonly Pointer _inventoryIndices = new(); + private readonly Pointer _netBonfireDb = new(); + private readonly Pointer _saveInfo = new(); + private readonly Pointer _menuMan = new(); + private readonly Pointer _soloParamMan = new(); + private readonly Pointer _msgMan = new(); + private readonly Pointer _loadingScreenItems = new(); + private List _itemLotParams = []; + private List _weaponDescriptionsTable = []; public Process? GetProcess() => _process; @@ -159,27 +159,22 @@ private ResultErr InitPointers() #endregion - public int GetAttribute(Attribute attribute) => _playerGameData?.ReadInt32((long)attribute) ?? 0; + public int GetAttribute(Attribute attribute) => _playerGameData.ReadInt32((long)attribute); - public int GetInGameTimeMilliseconds() => _gameDataMan?.ReadInt32(0x68) ?? 0; + public int GetInGameTimeMilliseconds() => _gameDataMan.ReadInt32(0x68); - public int NgCount() => _gameDataMan?.ReadInt32(0x3C) ?? 0; + public int NgCount() => _gameDataMan.ReadInt32(0x3C); - public int GetCurrentSaveSlot() => _gameMan?.ReadInt32(0xA70) ?? 0; + public int GetCurrentSaveSlot() => _gameMan.ReadInt32(0xA70); - public Vector3f GetPosition() => _playerIns == null ? new Vector3f(0, 0, 0) : new Vector3f(_playerIns.ReadFloat(0xc50), _playerIns.ReadFloat(0xC58), _playerIns.ReadFloat(0xC54)); + public Vector3f GetPosition() => new(_playerIns.ReadFloat(0xc50), _playerIns.ReadFloat(0xC58), _playerIns.ReadFloat(0xC54)); - public int GetPlayerHealth() => _playerIns?.ReadInt32(0x2d4) ?? 0; + public int GetPlayerHealth() => _playerIns.ReadInt32(0x2d4) ; - public bool IsPlayerLoaded() => !_playerIns?.IsNullPtr() ?? false; + public bool IsPlayerLoaded() => !_playerIns.IsNullPtr(); public bool IsWarpRequested() { - if (_gameMan == null) - { - return false; - } - if (GetPlayerHealth() == 0) { return false; @@ -192,11 +187,6 @@ public bool IsWarpRequested() public List GetInventory() { - if (_playerGameData == null) - { - return new List(); - } - var itemCount = _playerGameData.ReadInt32(0x2e0); var keyCount = _playerGameData.ReadInt32(0x2e4); @@ -210,11 +200,6 @@ public List GetInventory() public BonfireState GetBonfireState(Bonfire bonfire) { - if (_netBonfireDb == null) - { - return BonfireState.Unknown; - } - var element = _netBonfireDb.CreatePointerFromAddress(0x24); element = element.CreatePointerFromAddress(0x0); var netBonfireDbItem = element.CreatePointerFromAddress(0x8); @@ -242,11 +227,6 @@ public BonfireState GetBonfireState(Bonfire bonfire) public bool AreCreditsRolling() { - if(_menuMan == null) - { - return false; - } - var first = _menuMan.ReadInt32(0xb4); var second = _menuMan.ReadInt32(0xc0); var third = _menuMan.ReadInt32(0x6c); //This address seems like it turns into a 1 only when you are on the main menu @@ -274,7 +254,7 @@ public int GetSaveFileGameTimeMilliseconds(string path, int slot) //Credit to JKAnderson for the event flag reading code, https://github.com/JKAnderson/DS-Gadget - private static readonly Dictionary EventFlagGroups = new Dictionary() + private static readonly Dictionary EventFlagGroups = new() { {"0", 0x00000}, {"1", 0x00500}, @@ -283,7 +263,7 @@ public int GetSaveFileGameTimeMilliseconds(string path, int slot) {"7", 0x11300}, }; - private static readonly Dictionary EventFlagAreas = new Dictionary() + private static readonly Dictionary EventFlagAreas = new() { {"000", 00}, {"100", 01}, @@ -347,12 +327,9 @@ public bool ReadEventFlag(uint eventFlagId) public void ResetInventoryIndices() { - if(_inventoryIndices != null) + for (int i = 0; i < 20; i++) { - for (int i = 0; i < 20; i++) - { - _inventoryIndices.WriteUint32(0x4 * i, uint.MaxValue); - } + _inventoryIndices.WriteUint32(0x4 * i, uint.MaxValue); } } @@ -363,11 +340,6 @@ public void ResetInventoryIndices() /// public string GetSaveFileLocation() { - if (_saveInfo == null) - { - return string.Empty; - } - var myDocuments = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); var path = Path.Combine(myDocuments, "NBGI\\DarkSouls"); var variable = _saveInfo.ReadInt32(0x10); diff --git a/src/SoulMemory/DarkSouls1/Remastered.cs b/src/SoulMemory/DarkSouls1/Remastered.cs index 4ca3592..e840250 100644 --- a/src/SoulMemory/DarkSouls1/Remastered.cs +++ b/src/SoulMemory/DarkSouls1/Remastered.cs @@ -52,24 +52,24 @@ public class Remastered : IDarkSouls1 private Process? _process; - private readonly Pointer _gameMan = new Pointer(); - private readonly Pointer _gameDataMan = new Pointer(); - private readonly Pointer _playerIns = new Pointer(); - private readonly Pointer _playerPos = new Pointer(); - private readonly Pointer _playerGameData = new Pointer(); - private readonly Pointer _eventFlags = new Pointer(); - private readonly Pointer _inventoryIndices = new Pointer(); - private readonly Pointer _netBonfireDb = new Pointer(); - private readonly Pointer _menuMan = new Pointer(); - private readonly Pointer _getRegion = new Pointer(); - private readonly Pointer _soloParamMan = new Pointer(); - private readonly Pointer _loadingScreenItems = new Pointer(); - private readonly Pointer _msgMan = new Pointer(); + private readonly Pointer _gameMan = new(); + private readonly Pointer _gameDataMan = new(); + private readonly Pointer _playerIns = new(); + private readonly Pointer _playerPos = new(); + private readonly Pointer _playerGameData = new(); + private readonly Pointer _eventFlags = new(); + private readonly Pointer _inventoryIndices = new(); + private readonly Pointer _netBonfireDb = new(); + private readonly Pointer _menuMan = new(); + private readonly Pointer _getRegion = new(); + private readonly Pointer _soloParamMan = new(); + private readonly Pointer _loadingScreenItems = new(); + private readonly Pointer _msgMan = new(); private DsrVersion _version; private int? _steamId3; private bool? _isJapanese; - private List _itemLotParams = new List(); - private List _weaponDescriptionsTable = new List(); + private List _itemLotParams = []; + private List _weaponDescriptionsTable = []; private long _playerCtrlOffset = 0x68; private long _currentSaveSlotOffset = 0xaa0; @@ -272,7 +272,7 @@ public List GetInventory() { if (_playerGameData == null) { - return new List(); + return []; } //Path: GameDataMan->hostPlayerGameData->equipGameData.equipInventoryData.equipInventoryDataSub @@ -333,7 +333,7 @@ public int GetSaveFileGameTimeMilliseconds(string path, int slot) //Credit to JKAnderson for the event flag reading code, https://github.com/JKAnderson/DSR-Gadget - private static readonly Dictionary EventFlagGroups = new Dictionary() + private static readonly Dictionary EventFlagGroups = new() { {"0", 0x00000}, {"1", 0x00500}, @@ -342,7 +342,7 @@ public int GetSaveFileGameTimeMilliseconds(string path, int slot) {"7", 0x11300}, }; - private static readonly Dictionary EventFlagAreas = new Dictionary() + private static readonly Dictionary EventFlagAreas = new() { {"000", 00}, {"100", 01}, @@ -487,7 +487,7 @@ private int GetSteamId3() 22: c3 ret"; - private readonly Regex _assemblyRegex = new Regex(@"^[\w\d]+:\s+((?:[\w\d][\w\d] ?)+)"); + private readonly Regex _assemblyRegex = new(@"^[\w\d]+:\s+((?:[\w\d][\w\d] ?)+)"); /// /// Convert string returned by https://defuse.ca/online-x86-assembler.htm to byte array @@ -497,7 +497,7 @@ private int GetSteamId3() /// byte code private byte[] LoadDefuseOutput(string lines) { - List bytes = new List(); + List bytes = []; foreach (string line in Regex.Split(lines, "[\r\n]+")) { Match match = _assemblyRegex.Match(line); diff --git a/src/SoulMemory/DarkSouls1/Sl2Reader.cs b/src/SoulMemory/DarkSouls1/Sl2Reader.cs index cca6329..20b9d7d 100644 --- a/src/SoulMemory/DarkSouls1/Sl2Reader.cs +++ b/src/SoulMemory/DarkSouls1/Sl2Reader.cs @@ -36,7 +36,8 @@ Each USERDATA file is individually AES-128-CBC encrypted. */ internal static class Sl2Reader { - private static readonly byte[] AesKey = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF, 0xFE, 0xDC, 0xBA, 0x98, 0x76, 0x54, 0x32, 0x10 }; + private static readonly byte[] AesKey = [0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF, 0xFE, 0xDC, 0xBA, 0x98, 0x76, 0x54, 0x32, 0x10 + ]; /// /// Read the IGT from an SL2 file diff --git a/src/SoulMemory/DarkSouls2/Data.cs b/src/SoulMemory/DarkSouls2/Data.cs index bebec51..1b96c59 100644 --- a/src/SoulMemory/DarkSouls2/Data.cs +++ b/src/SoulMemory/DarkSouls2/Data.cs @@ -21,100 +21,92 @@ namespace SoulMemory.DarkSouls2; public static class Data { - public struct Bonfire + public struct Bonfire(WarpType warpType, int areaId, ushort bonfireId, string name) { - public Bonfire(WarpType warpType, int areaId, ushort bonfireId, string name) - { - WarpType = warpType; - AreaId = areaId; - BonfireId = bonfireId; - Name = name; - } - - public WarpType WarpType; - public int AreaId; - public ushort BonfireId; - public string Name; + public WarpType WarpType = warpType; + public int AreaId = areaId; + public ushort BonfireId = bonfireId; + public string Name = name; } - public static readonly ReadOnlyCollection Bonfires = new ReadOnlyCollection(new List() + public static readonly ReadOnlyCollection Bonfires = new(new List() { - new Bonfire(WarpType.FireKeepersDwelling , 167903232, 2650 , "Fire Keepers' Dwelling"), - new Bonfire(WarpType.TheFarFire , 168034304, 4650 , "The Far Fire"), - new Bonfire(WarpType.TheCrestfallensRetreat , 168427520, 10670, "The Crestfallen's Retreat"), - new Bonfire(WarpType.CardinalTower , 168427520, 10655, "Cardinal Tower"), - new Bonfire(WarpType.SoldiersRest , 168427520, 10660, "Soldiers' Rest"), - new Bonfire(WarpType.ThePlaceUnbeknownst , 168427520, 10675, "The Place Unbeknownst"), - new Bonfire(WarpType.HeidesRuin , 169803776, 31655, "Heide's Ruin"), - new Bonfire(WarpType.TowerOfFlame , 169803776, 31650, "Tower of Flame"), - new Bonfire(WarpType.TheBlueCathedral , 169803776, 31660, "The Blue Cathedral"), - new Bonfire(WarpType.UnseenPathToHeide , 168951808, 18650, "Unseen Path to Heide"), - new Bonfire(WarpType.ExileHoldingCells , 168820736, 16655, "Exile Holding Cells"), - new Bonfire(WarpType.McDuffsWorkshop , 168820736, 16670, "McDuff's Workshop"), - new Bonfire(WarpType.ServantsQuarters , 168820736, 16675, "Servants' Quarters"), - new Bonfire(WarpType.StraidsCell , 168820736, 16650, "Straid's Cell"), - new Bonfire(WarpType.TheTowerApart , 168820736, 16660, "The Tower Apart"), - new Bonfire(WarpType.TheSaltfort , 168820736, 16685, "The Saltfort"), - new Bonfire(WarpType.UpperRamparts , 168820736, 16665, "Upper Ramparts"), - new Bonfire(WarpType.UndeadRefuge , 169279488, 23650, "Undead Refuge"), - new Bonfire(WarpType.BridgeApproach , 169279488, 23655, "Bridge Approach"), - new Bonfire(WarpType.UndeadLockaway , 169279488, 23660, "Undead Lockaway"), - new Bonfire(WarpType.UndeadPurgatory , 169279488, 23665, "Undead Purgatory"), - new Bonfire(WarpType.PoisonPool , 168886272, 17665, "Poison Pool"), - new Bonfire(WarpType.TheMines , 168886272, 17650, "The Mines"), - new Bonfire(WarpType.LowerEarthenPeak , 168886272, 17655, "Lower Earthen Peak"), - new Bonfire(WarpType.CentralEarthenPeak , 168886272, 17670, "Central Earthen Peak"), - new Bonfire(WarpType.UpperEarthenPeak , 168886272, 17675, "Upper Earthen Peak"), - new Bonfire(WarpType.ThresholdBridge , 169017344, 19655, "Threshold Bridge"), - new Bonfire(WarpType.IronHearthHall , 169017344, 19650, "Ironhearth Hall"), - new Bonfire(WarpType.EygilsIdol , 169017344, 19660, "Eygil's Idol"), - new Bonfire(WarpType.BelfrySolApproach , 169017344, 19665, "Belfry Sol Approach"), - new Bonfire(WarpType.OldAkelarre , 169672704, 29650, "Old Akelarre"), - new Bonfire(WarpType.RuinedForkRoad , 169869312, 32655, "Ruined Fork Road"), - new Bonfire(WarpType.ShadedRuins , 169869312, 32660, "Shaded Ruins"), - new Bonfire(WarpType.GyrmsRespite , 169934848, 33655, "Gyrm's Respite"), - new Bonfire(WarpType.OrdealsEnd , 169934848, 33660, "Ordeal's End"), - new Bonfire(WarpType.RoyalArmyCampsite , 168689664, 14655, "Royal Army Campsite"), - new Bonfire(WarpType.ChapelThreshold , 168689664, 14660, "Chapel Threshold"), - new Bonfire(WarpType.LowerBrightstoneCove , 168689664, 14650, "Lower Brightstone Cove"), - new Bonfire(WarpType.HarvalsRestingPlace , 170000384, 34655, "Harval's Resting Place"), - new Bonfire(WarpType.GraveEntrance , 170000384, 34650, "Grave Entrance"), - new Bonfire(WarpType.UpperGutter , 169410560, 25665, "Upper Gutter"), - new Bonfire(WarpType.CentralGutter , 169410560, 25655, "Central Gutter"), - new Bonfire(WarpType.BlackGulchMouth , 169410560, 25650, "Black Gulch Mouth"), - new Bonfire(WarpType.HiddenChamber , 169410560, 25660, "Hidden Chamber"), - new Bonfire(WarpType.KingsGate , 336920576, 21650, "King's Gate"), - new Bonfire(WarpType.UnderCastleDrangleic , 336920576, 21665, "Under Castle Drangleic"), - new Bonfire(WarpType.CentralCastleDrangleic , 336920576, 21655, "Central Castle Drangleic"), - new Bonfire(WarpType.ForgottenChamber , 336920576, 21660, "Forgotten Chamber"), - new Bonfire(WarpType.TowerofPrayerAmana , 336265216, 11650, "Tower of Prayer (Amana)"), - new Bonfire(WarpType.CrumbledRuins , 336265216, 11655, "Crumbled Ruins"), - new Bonfire(WarpType.RhoysRestingPlace , 336265216, 11660, "Rhoy's Resting Place"), - new Bonfire(WarpType.RiseoftheDead , 336265216, 11670, "Rise of the Dead"), - new Bonfire(WarpType.UndeadCryptEntrance , 337117184, 24655, "Undead Crypt Entrance"), - new Bonfire(WarpType.UndeadDitch , 337117184, 24650, "Undead Ditch"), - new Bonfire(WarpType.Foregarden , 168755200, 15650, "Foregarden"), - new Bonfire(WarpType.RitualSite , 168755200, 15655, "Ritual Site"), - new Bonfire(WarpType.DragonAerie , 169541632, 27650, "Dragon Aerie"), - new Bonfire(WarpType.ShrineEntrance , 169541632, 27655, "Shrine Entrance"), - new Bonfire(WarpType.SanctumWalk , 841154560, 35650, "Sanctum Walk"), - new Bonfire(WarpType.TowerOfPrayerShulva , 841154560, 35685, "Tower of Prayer (Shulva)"), - new Bonfire(WarpType.PriestessChamber , 841154560, 35655, "Priestess' Chamber"), - new Bonfire(WarpType.HiddenSanctumChamber , 841154560, 35670, "Hidden Sanctum Chamber"), - new Bonfire(WarpType.LairOfTheImperfect , 841154560, 35675, "Lair of the Imperfect"), - new Bonfire(WarpType.SanctumInterior , 841154560, 35680, "Sanctum Interior"), - new Bonfire(WarpType.SanctumNadir , 841154560, 35665, "Sanctum Nadir"), - new Bonfire(WarpType.ThroneFloor , 841220096, 36650, "Throne Floor"), - new Bonfire(WarpType.UpperFloor , 841220096, 36660, "Upper Floor"), - new Bonfire(WarpType.Foyer , 841220096, 36655, "Foyer"), - new Bonfire(WarpType.LowermostFloor , 841220096, 36670, "Lowermost Floor"), - new Bonfire(WarpType.SmelterThrone , 841220096, 36675, "The Smelter Throne"), - new Bonfire(WarpType.IronHallwayEntrance , 841220096, 36665, "Iron Hallway Entrance"), - new Bonfire(WarpType.OuterWall , 841285632, 37650, "Outer Wall"), - new Bonfire(WarpType.AbandonedDwelling , 841285632, 37660, "Abandoned Dwelling"), - new Bonfire(WarpType.ExpulsionChamber , 841285632, 37675, "Expulsion Chamber"), - new Bonfire(WarpType.InnerWall , 841285632, 37685, "Inner Wall"), - new Bonfire(WarpType.LowerGarrison , 841285632, 37665, "Lower Garrison"), - new Bonfire(WarpType.GrandCathedral , 841285632, 37670, "Grand Cathedral"), + new(WarpType.FireKeepersDwelling , 167903232, 2650 , "Fire Keepers' Dwelling"), + new(WarpType.TheFarFire , 168034304, 4650 , "The Far Fire"), + new(WarpType.TheCrestfallensRetreat , 168427520, 10670, "The Crestfallen's Retreat"), + new(WarpType.CardinalTower , 168427520, 10655, "Cardinal Tower"), + new(WarpType.SoldiersRest , 168427520, 10660, "Soldiers' Rest"), + new(WarpType.ThePlaceUnbeknownst , 168427520, 10675, "The Place Unbeknownst"), + new(WarpType.HeidesRuin , 169803776, 31655, "Heide's Ruin"), + new(WarpType.TowerOfFlame , 169803776, 31650, "Tower of Flame"), + new(WarpType.TheBlueCathedral , 169803776, 31660, "The Blue Cathedral"), + new(WarpType.UnseenPathToHeide , 168951808, 18650, "Unseen Path to Heide"), + new(WarpType.ExileHoldingCells , 168820736, 16655, "Exile Holding Cells"), + new(WarpType.McDuffsWorkshop , 168820736, 16670, "McDuff's Workshop"), + new(WarpType.ServantsQuarters , 168820736, 16675, "Servants' Quarters"), + new(WarpType.StraidsCell , 168820736, 16650, "Straid's Cell"), + new(WarpType.TheTowerApart , 168820736, 16660, "The Tower Apart"), + new(WarpType.TheSaltfort , 168820736, 16685, "The Saltfort"), + new(WarpType.UpperRamparts , 168820736, 16665, "Upper Ramparts"), + new(WarpType.UndeadRefuge , 169279488, 23650, "Undead Refuge"), + new(WarpType.BridgeApproach , 169279488, 23655, "Bridge Approach"), + new(WarpType.UndeadLockaway , 169279488, 23660, "Undead Lockaway"), + new(WarpType.UndeadPurgatory , 169279488, 23665, "Undead Purgatory"), + new(WarpType.PoisonPool , 168886272, 17665, "Poison Pool"), + new(WarpType.TheMines , 168886272, 17650, "The Mines"), + new(WarpType.LowerEarthenPeak , 168886272, 17655, "Lower Earthen Peak"), + new(WarpType.CentralEarthenPeak , 168886272, 17670, "Central Earthen Peak"), + new(WarpType.UpperEarthenPeak , 168886272, 17675, "Upper Earthen Peak"), + new(WarpType.ThresholdBridge , 169017344, 19655, "Threshold Bridge"), + new(WarpType.IronHearthHall , 169017344, 19650, "Ironhearth Hall"), + new(WarpType.EygilsIdol , 169017344, 19660, "Eygil's Idol"), + new(WarpType.BelfrySolApproach , 169017344, 19665, "Belfry Sol Approach"), + new(WarpType.OldAkelarre , 169672704, 29650, "Old Akelarre"), + new(WarpType.RuinedForkRoad , 169869312, 32655, "Ruined Fork Road"), + new(WarpType.ShadedRuins , 169869312, 32660, "Shaded Ruins"), + new(WarpType.GyrmsRespite , 169934848, 33655, "Gyrm's Respite"), + new(WarpType.OrdealsEnd , 169934848, 33660, "Ordeal's End"), + new(WarpType.RoyalArmyCampsite , 168689664, 14655, "Royal Army Campsite"), + new(WarpType.ChapelThreshold , 168689664, 14660, "Chapel Threshold"), + new(WarpType.LowerBrightstoneCove , 168689664, 14650, "Lower Brightstone Cove"), + new(WarpType.HarvalsRestingPlace , 170000384, 34655, "Harval's Resting Place"), + new(WarpType.GraveEntrance , 170000384, 34650, "Grave Entrance"), + new(WarpType.UpperGutter , 169410560, 25665, "Upper Gutter"), + new(WarpType.CentralGutter , 169410560, 25655, "Central Gutter"), + new(WarpType.BlackGulchMouth , 169410560, 25650, "Black Gulch Mouth"), + new(WarpType.HiddenChamber , 169410560, 25660, "Hidden Chamber"), + new(WarpType.KingsGate , 336920576, 21650, "King's Gate"), + new(WarpType.UnderCastleDrangleic , 336920576, 21665, "Under Castle Drangleic"), + new(WarpType.CentralCastleDrangleic , 336920576, 21655, "Central Castle Drangleic"), + new(WarpType.ForgottenChamber , 336920576, 21660, "Forgotten Chamber"), + new(WarpType.TowerofPrayerAmana , 336265216, 11650, "Tower of Prayer (Amana)"), + new(WarpType.CrumbledRuins , 336265216, 11655, "Crumbled Ruins"), + new(WarpType.RhoysRestingPlace , 336265216, 11660, "Rhoy's Resting Place"), + new(WarpType.RiseoftheDead , 336265216, 11670, "Rise of the Dead"), + new(WarpType.UndeadCryptEntrance , 337117184, 24655, "Undead Crypt Entrance"), + new(WarpType.UndeadDitch , 337117184, 24650, "Undead Ditch"), + new(WarpType.Foregarden , 168755200, 15650, "Foregarden"), + new(WarpType.RitualSite , 168755200, 15655, "Ritual Site"), + new(WarpType.DragonAerie , 169541632, 27650, "Dragon Aerie"), + new(WarpType.ShrineEntrance , 169541632, 27655, "Shrine Entrance"), + new(WarpType.SanctumWalk , 841154560, 35650, "Sanctum Walk"), + new(WarpType.TowerOfPrayerShulva , 841154560, 35685, "Tower of Prayer (Shulva)"), + new(WarpType.PriestessChamber , 841154560, 35655, "Priestess' Chamber"), + new(WarpType.HiddenSanctumChamber , 841154560, 35670, "Hidden Sanctum Chamber"), + new(WarpType.LairOfTheImperfect , 841154560, 35675, "Lair of the Imperfect"), + new(WarpType.SanctumInterior , 841154560, 35680, "Sanctum Interior"), + new(WarpType.SanctumNadir , 841154560, 35665, "Sanctum Nadir"), + new(WarpType.ThroneFloor , 841220096, 36650, "Throne Floor"), + new(WarpType.UpperFloor , 841220096, 36660, "Upper Floor"), + new(WarpType.Foyer , 841220096, 36655, "Foyer"), + new(WarpType.LowermostFloor , 841220096, 36670, "Lowermost Floor"), + new(WarpType.SmelterThrone , 841220096, 36675, "The Smelter Throne"), + new(WarpType.IronHallwayEntrance , 841220096, 36665, "Iron Hallway Entrance"), + new(WarpType.OuterWall , 841285632, 37650, "Outer Wall"), + new(WarpType.AbandonedDwelling , 841285632, 37660, "Abandoned Dwelling"), + new(WarpType.ExpulsionChamber , 841285632, 37675, "Expulsion Chamber"), + new(WarpType.InnerWall , 841285632, 37685, "Inner Wall"), + new(WarpType.LowerGarrison , 841285632, 37665, "Lower Garrison"), + new(WarpType.GrandCathedral , 841285632, 37670, "Grand Cathedral"), }); } diff --git a/src/SoulMemory/DarkSouls2/scholar.cs b/src/SoulMemory/DarkSouls2/scholar.cs index 56ca629..e388238 100644 --- a/src/SoulMemory/DarkSouls2/scholar.cs +++ b/src/SoulMemory/DarkSouls2/scholar.cs @@ -24,11 +24,11 @@ namespace SoulMemory.DarkSouls2; internal class Scholar : IDarkSouls2 { private Process? _process; - private readonly Pointer _eventFlagManager = new Pointer(); - private readonly Pointer _position = new Pointer(); - private readonly Pointer _loadState = new Pointer(); - private readonly Pointer _bossCounters = new Pointer(); - private readonly Pointer _attributes = new Pointer(); + private readonly Pointer _eventFlagManager = new(); + private readonly Pointer _position = new(); + private readonly Pointer _loadState = new(); + private readonly Pointer _bossCounters = new(); + private readonly Pointer _attributes = new(); #region Refresh/init/reset ================================================================================================================================ public Process? GetProcess() => _process; @@ -214,7 +214,7 @@ public bool ReadEventFlag(uint eventFlagId) #region Lookup tables - private readonly Dictionary _attributeOffsets = new Dictionary() + private readonly Dictionary _attributeOffsets = new() { { Attribute.SoulLevel , 0xd0}, { Attribute.Vigor , 0x8}, diff --git a/src/SoulMemory/DarkSouls2/vanilla.cs b/src/SoulMemory/DarkSouls2/vanilla.cs index 60ca01d..07db8ba 100644 --- a/src/SoulMemory/DarkSouls2/vanilla.cs +++ b/src/SoulMemory/DarkSouls2/vanilla.cs @@ -24,11 +24,11 @@ namespace SoulMemory.DarkSouls2; internal class Vanilla : IDarkSouls2 { private Process? _process; - private readonly Pointer _eventFlagManager = new Pointer(); - private readonly Pointer _position = new Pointer(); - private readonly Pointer _loadState = new Pointer(); - private readonly Pointer _bossCounters = new Pointer(); - private readonly Pointer _attributes = new Pointer(); + private readonly Pointer _eventFlagManager = new(); + private readonly Pointer _position = new(); + private readonly Pointer _loadState = new(); + private readonly Pointer _bossCounters = new(); + private readonly Pointer _attributes = new(); #region Refresh/init/reset ================================================================================================================================ public Process? GetProcess() => _process; @@ -183,7 +183,7 @@ public bool ReadEventFlag(uint eventFlagId) #region Lookup tables - private readonly Dictionary _attributeOffsets = new Dictionary() + private readonly Dictionary _attributeOffsets = new() { { Attribute.SoulLevel , 0xcc}, { Attribute.Vigor , 0x4}, diff --git a/src/SoulMemory/DarkSouls3/DarkSouls3.cs b/src/SoulMemory/DarkSouls3/DarkSouls3.cs index 8f2cf88..cea3296 100644 --- a/src/SoulMemory/DarkSouls3/DarkSouls3.cs +++ b/src/SoulMemory/DarkSouls3/DarkSouls3.cs @@ -24,15 +24,15 @@ namespace SoulMemory.DarkSouls3; public class DarkSouls3 : IGame { private Process? _process; - private readonly Pointer _gameDataMan = new Pointer(); - private readonly Pointer _playerGameData = new Pointer(); - private readonly Pointer _playerIns = new Pointer(); - private readonly Pointer _newMenuSystem = new Pointer(); - private readonly Pointer _loading = new Pointer(); - private readonly Pointer _blackscreen = new Pointer(); - private readonly Pointer _sprjEventFlagMan = new Pointer(); - private readonly Pointer _fieldArea = new Pointer(); - private readonly Pointer _sprjChrPhysicsModule = new Pointer(); + private readonly Pointer _gameDataMan = new(); + private readonly Pointer _playerGameData = new(); + private readonly Pointer _playerIns = new(); + private readonly Pointer _newMenuSystem = new(); + private readonly Pointer _loading = new(); + private readonly Pointer _blackscreen = new(); + private readonly Pointer _sprjEventFlagMan = new(); + private readonly Pointer _fieldArea = new(); + private readonly Pointer _sprjChrPhysicsModule = new(); private long _igtOffset; public Process? GetProcess() => _process; diff --git a/src/SoulMemory/EldenRing/EldenRing.cs b/src/SoulMemory/EldenRing/EldenRing.cs index 64093cf..3bbd37f 100644 --- a/src/SoulMemory/EldenRing/EldenRing.cs +++ b/src/SoulMemory/EldenRing/EldenRing.cs @@ -28,14 +28,14 @@ public class EldenRing : IGame { private Process? _process = null; - private readonly Pointer _igt = new Pointer(); - private readonly Pointer _hud = new Pointer(); - private readonly Pointer _playerIns = new Pointer(); - private readonly Pointer _playerGameData = new Pointer(); - private readonly Pointer _inventory = new Pointer(); - private readonly Pointer _menuManImp = new Pointer(); - private readonly Pointer _virtualMemoryFlag = new Pointer(); - private readonly Pointer _noLogo = new Pointer(); + private readonly Pointer _igt = new(); + private readonly Pointer _hud = new(); + private readonly Pointer _playerIns = new(); + private readonly Pointer _playerGameData = new(); + private readonly Pointer _inventory = new(); + private readonly Pointer _menuManImp = new(); + private readonly Pointer _virtualMemoryFlag = new(); + private readonly Pointer _noLogo = new(); private long _screenStateOffset; private long _positionOffset; @@ -204,36 +204,35 @@ private void ResetPointers() #region version ================================================================================================ - private readonly List<(EldenRingVersion eldenRingVersion, Version version)> _versions = new List<(EldenRingVersion, Version)>() - { - - (EldenRingVersion.V1_02_0, new Version(1,2,0,0)), - (EldenRingVersion.V1_02_1, new Version(1,2,1,0)), - (EldenRingVersion.V1_02_2, new Version(1,2,2,0)), - (EldenRingVersion.V1_02_3, new Version(1,2,3,0)), - (EldenRingVersion.V1_03_0, new Version(1,3,0,0)), - (EldenRingVersion.V1_03_1, new Version(1,3,1,0)), - (EldenRingVersion.V1_03_2, new Version(1,3,2,0)), - (EldenRingVersion.V1_04_0, new Version(1,4,0,0)), - (EldenRingVersion.V1_04_1, new Version(1,4,1,0)), - (EldenRingVersion.V1_05_0, new Version(1,5,0,0)), - (EldenRingVersion.V1_06_0, new Version(1,6,0,0)), - (EldenRingVersion.V1_07_0, new Version(1,7,0,0)), - (EldenRingVersion.V1_08_0, new Version(1,8,0,0)), - (EldenRingVersion.V1_08_1, new Version(1,8,1,0)), - (EldenRingVersion.V1_09_0, new Version(1,9,0,0)), - (EldenRingVersion.V1_09_1, new Version(1,9,1,0)), + private readonly List<(EldenRingVersion eldenRingVersion, Version version)> _versions = + [ + (EldenRingVersion.V1_02_0, new Version(1, 2, 0, 0)), + (EldenRingVersion.V1_02_1, new Version(1, 2, 1, 0)), + (EldenRingVersion.V1_02_2, new Version(1, 2, 2, 0)), + (EldenRingVersion.V1_02_3, new Version(1, 2, 3, 0)), + (EldenRingVersion.V1_03_0, new Version(1, 3, 0, 0)), + (EldenRingVersion.V1_03_1, new Version(1, 3, 1, 0)), + (EldenRingVersion.V1_03_2, new Version(1, 3, 2, 0)), + (EldenRingVersion.V1_04_0, new Version(1, 4, 0, 0)), + (EldenRingVersion.V1_04_1, new Version(1, 4, 1, 0)), + (EldenRingVersion.V1_05_0, new Version(1, 5, 0, 0)), + (EldenRingVersion.V1_06_0, new Version(1, 6, 0, 0)), + (EldenRingVersion.V1_07_0, new Version(1, 7, 0, 0)), + (EldenRingVersion.V1_08_0, new Version(1, 8, 0, 0)), + (EldenRingVersion.V1_08_1, new Version(1, 8, 1, 0)), + (EldenRingVersion.V1_09_0, new Version(1, 9, 0, 0)), + (EldenRingVersion.V1_09_1, new Version(1, 9, 1, 0)), //1.10 turned into 2.0.0.0 for some reason - (EldenRingVersion.V1_10_0, new Version(2,0,0,0)), - (EldenRingVersion.V1_10_0, new Version(2,0,0,1)), //JP-only version for 1.10 - (EldenRingVersion.V1_10_1, new Version(2,0,1,0)), - (EldenRingVersion.V1_12_0, new Version(2,2,0,0)), - (EldenRingVersion.V1_12_3, new Version(2,2,3,0)), - (EldenRingVersion.V1_13_0, new Version(2,3,0,0)), - (EldenRingVersion.V1_14_0, new Version(2,4,0,0)), - (EldenRingVersion.V1_15_0, new Version(2,5,0,0)), - (EldenRingVersion.V1_16_0, new Version(2,6,0,0)), - }; + (EldenRingVersion.V1_10_0, new Version(2, 0, 0, 0)), + (EldenRingVersion.V1_10_0, new Version(2, 0, 0, 1)), //JP-only version for 1.10 + (EldenRingVersion.V1_10_1, new Version(2, 0, 1, 0)), + (EldenRingVersion.V1_12_0, new Version(2, 2, 0, 0)), + (EldenRingVersion.V1_12_3, new Version(2, 2, 3, 0)), + (EldenRingVersion.V1_13_0, new Version(2, 3, 0, 0)), + (EldenRingVersion.V1_14_0, new Version(2, 4, 0, 0)), + (EldenRingVersion.V1_15_0, new Version(2, 5, 0, 0)), + (EldenRingVersion.V1_16_0, new Version(2, 6, 0, 0)) + ]; public enum EldenRingVersion { @@ -356,7 +355,7 @@ public bool IsBlackscreenActive() private void ApplyNoLogo() { _process!.NtSuspendProcess(); - _noLogo.WriteBytes(null, new byte[] { 0x90, 0x90 }); + _noLogo.WriteBytes(null, [0x90, 0x90]); _process!.NtResumeProcess(); } @@ -393,13 +392,12 @@ public List ReadInventory() - var itemId = BitConverter.ToInt32(new byte[] - { + var itemId = BitConverter.ToInt32([ inventory[itemIndex + 0x4], inventory[itemIndex + 0x5], inventory[itemIndex + 0x6], - 0x0, - }, 0); + 0x0 + ], 0); byte cat = inventory[itemIndex + 0X7]; byte mask = 0xF0; diff --git a/src/SoulMemory/EldenRing/Item.cs b/src/SoulMemory/EldenRing/Item.cs index 4fb7ccc..d262278 100644 --- a/src/SoulMemory/EldenRing/Item.cs +++ b/src/SoulMemory/EldenRing/Item.cs @@ -47,2666 +47,2666 @@ public static Item FromLookupTable(Category category, uint id) return LookupTable.SingleOrDefault(i => i.Category == category && i.Id == id); } - private readonly static ReadOnlyCollection LookupTable = new ReadOnlyCollection(new List() + private readonly static ReadOnlyCollection LookupTable = new(new List() { - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Iron Helmet", Id = 40000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Scale Armor", Id = 40100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Iron Gauntlets", Id = 40200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Leather Trousers", Id = 40300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Kaiden Helm", Id = 50000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Kaiden Armor", Id = 50100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Kaiden Gauntlets", Id = 50200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Kaiden Trousers", Id = 50300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Drake Knight Helm", Id = 60000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Drake Knight Armor", Id = 60100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Drake Knight Gauntlets", Id = 60200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Drake Knight Greaves", Id = 60300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Drake Knight Helm (Altered)", Id = 61000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Drake Knight Armor (Altered)", Id = 61100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Scaled Helm", Id = 80000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Scaled Armor", Id = 80100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Scaled Gauntlets", Id = 80200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Scaled Greaves", Id = 80300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Scaled Armor (Altered)", Id = 81100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Perfumer Hood", Id = 90000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Perfumer Robe", Id = 90100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Perfumer Gloves", Id = 90200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Perfumer Sarong", Id = 90300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Perfumer Robe (Altered)", Id = 91100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Traveler's Hat", Id = 100000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Perfumer's Traveling Garb", Id = 100100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Traveler's Gloves", Id = 100200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Traveler's Slops", Id = 100300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Perfumer's Traveling Garb (Altered)", Id = 101100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Alberich's Pointed Hat", Id = 120000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Alberich's Robe", Id = 120100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Alberich's Bracers", Id = 120200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Alberich's Trousers", Id = 120300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Alberich's Pointed Hat (Altered)", Id = 121000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Alberich's Robe (Altered)", Id = 121100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Spellblade's Pointed Hat", Id = 130000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Spellblade's Traveling Attire", Id = 130100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Spellblade's Gloves", Id = 130200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Spellblade's Trousers", Id = 130300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Spellblade's Traveling Attire (Altered)", Id = 131100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Bull-Goat Helm", Id = 140000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Bull-Goat Armor", Id = 140100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Bull-Goat Gauntlets", Id = 140200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Bull-Goat Greaves", Id = 140300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Iron Kasa", Id = 150000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Ronin's Armor", Id = 150100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Ronin's Gauntlets", Id = 150200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Ronin's Greaves", Id = 150300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Ronin's Armor (Altered)", Id = 151100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Guilty Hood", Id = 160000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Cloth Garb", Id = 160100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Cloth Trousers", Id = 160300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Black Wolf Mask", Id = 170000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blaidd's Armor", Id = 170100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blaidd's Gauntlets", Id = 170200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blaidd's Greaves", Id = 170300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blaidd's Armor (Altered)", Id = 171100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Black Knife Hood", Id = 180000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Black Knife Armor", Id = 180100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Black Knife Gauntlets", Id = 180200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Black Knife Greaves", Id = 180300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Black Knife Armor (Altered)", Id = 181100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Exile Hood", Id = 190000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Exile Armor", Id = 190100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Exile Gauntlets", Id = 190200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Exile Greaves", Id = 190300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Banished Knight Helm", Id = 200000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Banished Knight Armor", Id = 200100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Banished Knight Gauntlets", Id = 200200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Banished Knight Greaves", Id = 200300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Banished Knight Helm (Altered)", Id = 201000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Banished Knight Armor (Altered)", Id = 201100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Briar Helm", Id = 210000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Briar Armor", Id = 210100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Briar Gauntlets", Id = 210200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Briar Greaves", Id = 210300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Briar Armor (Altered)", Id = 211100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Page Hood", Id = 220000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Page Garb", Id = 220100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Page Trousers", Id = 220300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Page Garb (Altered)", Id = 221100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Night's Cavalry Helm", Id = 230000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Night's Cavalry Armor", Id = 230100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Night's Cavalry Gauntlets", Id = 230200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Night's Cavalry Greaves", Id = 230300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Night's Cavalry Helm (Altered)", Id = 231000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Night's Cavalry Armor (Altered)", Id = 231100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blue Silver Mail Hood", Id = 240000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blue Silver Mail Armor", Id = 240100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blue Silver Bracelets", Id = 240200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blue Silver Mail Skirt", Id = 240300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blue Silver Mail Armor (Altered)", Id = 241100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Nomadic Merchant's Chapeau", Id = 250000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Nomadic Merchant's Finery", Id = 250100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Nomadic Merchant's Trousers", Id = 250300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Nomadic Merchant's Finery (Altered)", Id = 251100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Malformed Dragon Helm", Id = 260000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Malformed Dragon Armor", Id = 260100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Malformed Dragon Gauntlets", Id = 260200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Malformed Dragon Greaves", Id = 260300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Tree Sentinel Helm", Id = 270000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Tree Sentinel Armor", Id = 270100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Tree Sentinel Gauntlets", Id = 270200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Tree Sentinel Greaves", Id = 270300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Tree Sentinel Armor (Altered)", Id = 271100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Royal Knight Helm", Id = 280000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Royal Knight Armor", Id = 280100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Royal Knight Gauntlets", Id = 280200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Royal Knight Greaves", Id = 280300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Royal Knight Armor (Altered)", Id = 281100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Nox Monk Hood", Id = 290000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Nox Monk Armor", Id = 290100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Nox Monk Bracelets", Id = 290200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Nox Monk Greaves", Id = 290300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Nox Monk Hood (Altered)", Id = 291000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Nox Monk Armor (Altered)", Id = 291100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Nox Swordstress Crown", Id = 292000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Nox Swordstress Armor", Id = 292100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Night Maiden Twin Crown", Id = 293000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Night Maiden Armor", Id = 293100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Nox Swordstress Crown (Altered)", Id = 294000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Nox Swordstress Armor (Altered)", Id = 294100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Great Horned Headband", Id = 300000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fur Raiment", Id = 300100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fur Leggings", Id = 300300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Shining Horned Headband", Id = 301000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Shaman Furs", Id = 301100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Shaman Leggings", Id = 301300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Duelist Helm", Id = 310000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Gravekeeper Cloak", Id = 310100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Duelist Greaves", Id = 310300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Gravekeeper Cloak (Altered)", Id = 311100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Sanguine Noble Hood", Id = 320000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Sanguine Noble Robe", Id = 320100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Sanguine Noble Waistcloth", Id = 320300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Guardian Mask", Id = 330000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Guardian Garb (Full Bloom)", Id = 330100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Guardian Bracers", Id = 330200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Guardian Greaves", Id = 330300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Guardian Garb", Id = 331100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Cleanrot Helm", Id = 340000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Cleanrot Armor", Id = 340100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Cleanrot Gauntlets", Id = 340200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Cleanrot Greaves", Id = 340300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Cleanrot Helm (Altered)", Id = 341000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Cleanrot Armor (Altered)", Id = 341100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fire Monk Hood", Id = 350000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fire Monk Armor", Id = 350100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fire Monk Gauntlets", Id = 350200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fire Monk Greaves", Id = 350300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blackflame Monk Hood", Id = 351000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blackflame Monk Armor", Id = 351100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blackflame Monk Gauntlets", Id = 351200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blackflame Monk Greaves", Id = 351300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fire Prelate Helm", Id = 360000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fire Prelate Armor", Id = 360100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fire Prelate Gauntlets", Id = 360200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fire Prelate Greaves", Id = 360300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fire Prelate Armor (Altered)", Id = 361100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Aristocrat Headband", Id = 370000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Aristocrat Garb", Id = 370100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Aristocrat Boots", Id = 370300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Aristocrat Garb (Altered)", Id = 371100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Aristocrat Hat", Id = 380000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Aristocrat Coat", Id = 380100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Old Aristocrat Cowl", Id = 390000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Old Aristocrat Gown", Id = 390100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Old Aristocrat Shoes", Id = 390300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Vulgar Militia Helm", Id = 420000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Vulgar Militia Armor", Id = 420100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Vulgar Militia Gauntlets", Id = 420200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Vulgar Militia Greaves", Id = 420300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Sage Hood", Id = 430000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Sage Robe", Id = 430100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Sage Trousers", Id = 430300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Pumpkin Helm", Id = 440000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Elden Lord Crown", Id = 460000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Elden Lord Armor", Id = 460100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Elden Lord Bracers", Id = 460200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Elden Lord Greaves", Id = 460300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Elden Lord Armor (Altered)", Id = 461100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Radahn's Redmane Helm", Id = 470000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Radahn's Lion Armor", Id = 470100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Radahn's Gauntlets", Id = 470200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Radahn's Greaves", Id = 470300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Radahn's Lion Armor (Altered)", Id = 471100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Lord of Blood's Robe", Id = 480100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Lord of Blood's Robe (Altered)", Id = 481100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Queen's Crescent Crown", Id = 510000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Queen's Robe", Id = 510100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Queen's Bracelets", Id = 510200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Queen's Leggings", Id = 510300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Godskin Apostle Hood", Id = 520000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Godskin Apostle Robe", Id = 520100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Godskin Apostle Bracelets", Id = 520200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Godskin Apostle Trousers", Id = 520300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Godskin Noble Hood", Id = 530000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Godskin Noble Robe", Id = 530100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Godskin Noble Bracelets", Id = 530200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Godskin Noble Trousers", Id = 530300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Depraved Perfumer Headscarf", Id = 540000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Depraved Perfumer Robe", Id = 540100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Depraved Perfumer Gloves", Id = 540200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Depraved Perfumer Trousers", Id = 540300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Depraved Perfumer Robe (Altered)", Id = 541100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Crucible Axe Helm", Id = 570000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Crucible Axe Armor", Id = 570100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Crucible Gauntlets", Id = 570200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Crucible Greaves", Id = 570300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Crucible Tree Helm", Id = 571000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Crucible Tree Armor", Id = 571100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Crucible Axe Armor (Altered)", Id = 572100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Crucible Tree Armor (Altered)", Id = 573100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Lusat's Glintstone Crown", Id = 580000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Lusat's Robe", Id = 580100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Lusat's Manchettes", Id = 580200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Old Sorcerer's Legwraps", Id = 580300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Azur's Glintstone Crown", Id = 581000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Azur's Glintstone Robe", Id = 581100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Azur's Manchettes", Id = 581200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "All-Knowing Helm", Id = 590000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "All-Knowing Armor", Id = 590100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "All-Knowing Gauntlets", Id = 590200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "All-Knowing Greaves", Id = 590300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "All-Knowing Armor (Altered)", Id = 591100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Twinned Helm", Id = 600000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Twinned Armor", Id = 600100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Twinned Gauntlets", Id = 600200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Twinned Greaves", Id = 600300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Twinned Armor (Altered)", Id = 601100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Ragged Hat", Id = 610000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Ragged Armor", Id = 610100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Ragged Gloves", Id = 610200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Ragged Loincloth", Id = 610300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Ragged Hat (Altered)", Id = 611000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Ragged Armor (Altered)", Id = 611100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Prophet Blindfold", Id = 620000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Corhyn's Robe", Id = 620100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Prophet Trousers", Id = 620300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Prophet Robe (Altered)", Id = 621100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Prophet Robe", Id = 622100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Astrologer Hood", Id = 630000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Astrologer Robe", Id = 630100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Astrologer Gloves", Id = 630200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Astrologer Trousers", Id = 630300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Astrologer Robe (Altered)", Id = 631100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Lionel's Helm", Id = 640000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Lionel's Armor", Id = 640100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Lionel's Gauntlets", Id = 640200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Lionel's Greaves", Id = 640300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Lionel's Armor (Altered)", Id = 641100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Hoslow's Helm", Id = 650000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Hoslow's Armor", Id = 650100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Hoslow's Gauntlets", Id = 650200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Hoslow's Greaves", Id = 650300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Diallos's Mask", Id = 651000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Hoslow's Armor (Altered)", Id = 652100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Vagabond Knight Helm", Id = 660000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Vagabond Knight Armor", Id = 660100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Vagabond Knight Gauntlets", Id = 660200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Vagabond Knight Greaves", Id = 660300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Vagabond Knight Armor (Altered)", Id = 661100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blue Cloth Cowl", Id = 670000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blue Cloth Vest", Id = 670100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Warrior Gauntlets", Id = 670200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Warrior Greaves", Id = 670300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "White Mask", Id = 680000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "War Surgeon Gown", Id = 680100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "War Surgeon Gloves", Id = 680200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "War Surgeon Trousers", Id = 680300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "War Surgeon Gown (Altered)", Id = 681100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Royal Remains Helm", Id = 690000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Royal Remains Armor", Id = 690100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Royal Remains Gauntlets", Id = 690200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Royal Remains Greaves", Id = 690300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Brave's Cord Circlet", Id = 700000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Brave's Battlewear", Id = 700100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Brave's Bracer", Id = 700200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Brave's Legwraps", Id = 700300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Brave's Leather Helm", Id = 701000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Brave's Battlewear (Altered)", Id = 702000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Beast Champion Helm", Id = 720000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Beast Champion Armor", Id = 720100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Beast Champion Gauntlets", Id = 720200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Beast Champion Greaves", Id = 720300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Beast Champion Armor (Altered)", Id = 721100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Champion Headband", Id = 730000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Champion Pauldron", Id = 730100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Champion Bracers", Id = 730200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Champion Gaiters", Id = 730300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Crimson Hood", Id = 740000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Noble's Traveling Garb", Id = 740100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Noble's Gloves", Id = 740200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Noble's Trousers", Id = 740300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Navy Hood", Id = 741000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Maliketh's Helm", Id = 760000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Maliketh's Armor", Id = 760100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Maliketh's Gauntlets", Id = 760200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Maliketh's Greaves", Id = 760300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Maliketh's Armor (Altered)", Id = 761100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Malenia's Winged Helm", Id = 770000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Malenia's Armor", Id = 770100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Malenia's Gauntlet", Id = 770200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Malenia's Greaves", Id = 770300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Malenia's Armor (Altered)", Id = 771100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Veteran's Helm", Id = 780000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Veteran's Armor", Id = 780100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Veteran's Gauntlets", Id = 780200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Veteran's Greaves", Id = 780300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Veteran's Armor (Altered)", Id = 781100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Bloodhound Knight Helm", Id = 790000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Bloodhound Knight Armor", Id = 790100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Bloodhound Knight Gauntlets", Id = 790200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Bloodhound Knight Greaves", Id = 790300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Bloodhound Knight Armor (Altered)", Id = 791100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Festive Hood", Id = 800000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Festive Garb", Id = 800100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Festive Hood (Altered)", Id = 801000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Festive Garb (Altered)", Id = 801100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blue Festive Hood", Id = 802000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blue Festive Garb", Id = 802100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Commoner's Headband", Id = 810000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Commoner's Garb", Id = 810100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Commoner's Shoes", Id = 810300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Commoner's Headband (Altered)", Id = 811000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Commoner's Garb (Altered)", Id = 811100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Commoner's Simple Garb", Id = 812000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Commoner's Simple Garb (Altered)", Id = 812100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Envoy Crown", Id = 820000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Twinsage Glintstone Crown", Id = 830000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Raya Lucarian Robe", Id = 830100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Sorcerer Manchettes", Id = 830200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Sorcerer Leggings", Id = 830300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Olivinus Glintstone Crown", Id = 831000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Lazuli Glintstone Crown", Id = 832000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Karolos Glintstone Crown", Id = 833000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Witch's Glintstone Crown", Id = 834000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Marionette Soldier Helm", Id = 840000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Marionette Soldier Armor", Id = 840100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Marionette Soldier Birdhelm", Id = 850000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Raging Wolf Helm", Id = 860000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Raging Wolf Armor", Id = 860100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Raging Wolf Gauntlets", Id = 860200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Raging Wolf Greaves", Id = 860300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Raging Wolf Armor (Altered)", Id = 861100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Land of Reeds Helm", Id = 870000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Land of Reeds Armor", Id = 870100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Land of Reeds Gauntlets", Id = 870200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Land of Reeds Greaves", Id = 870300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Land of Reeds Armor (Altered)", Id = 871100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Okina Mask", Id = 872000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "White Reed Armor", Id = 872100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "White Reed Gauntlets", Id = 872200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "White Reed Greaves", Id = 872300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Confessor Hood", Id = 880000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Confessor Armor", Id = 880100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Confessor Gloves", Id = 880200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Confessor Boots", Id = 880300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Confessor Hood (Altered)", Id = 881000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Confessor Armor (Altered)", Id = 881100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Prisoner Iron Mask", Id = 890000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Prisoner Clothing", Id = 890100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Prisoner Trousers", Id = 890300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Blackguard's Iron Mask", Id = 891000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Traveling Maiden Hood", Id = 900000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Traveling Maiden Robe", Id = 900100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Traveling Maiden Gloves", Id = 900200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Traveling Maiden Boots", Id = 900300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Traveling Maiden Robe (Altered)", Id = 901100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Finger Maiden Fillet", Id = 902000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Finger Maiden Robe", Id = 902100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Finger Maiden Shoes", Id = 902300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Finger Maiden Robe (Altered)", Id = 903100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Preceptor's Big Hat", Id = 910000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Preceptor's Long Gown", Id = 910100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Preceptor's Gloves", Id = 910200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Preceptor's Trousers", Id = 910300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Mask of Confidence", Id = 911000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Preceptor's Long Gown (Altered)", Id = 911100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Grass Hair Ornament", Id = 920000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Skeletal Mask", Id = 930000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Raptor's Black Feathers", Id = 930100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Bandit Manchettes", Id = 930200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Bandit Boots", Id = 930300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Bandit Garb", Id = 931100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Eccentric's Hood", Id = 940000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Eccentric's Armor", Id = 940100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Eccentric's Manchettes", Id = 940200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Eccentric's Breeches", Id = 940300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Eccentric's Hood (Altered)", Id = 941000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fingerprint Helm", Id = 950000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fingerprint Armor", Id = 950100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fingerprint Gauntlets", Id = 950200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fingerprint Greaves", Id = 950300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fingerprint Armor (Altered)", Id = 951100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Consort's Mask", Id = 960000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Consort's Robe", Id = 960100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Consort's Trousers", Id = 960300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Ruler's Mask", Id = 961000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Ruler's Robe", Id = 961100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Upper-Class Robe", Id = 962100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Marais Mask", Id = 963000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Marais Robe", Id = 963100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Bloodsoaked Manchettes", Id = 963200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Bloodsoaked Mask", Id = 964000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Official's Attire", Id = 964100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Omen Helm", Id = 970000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Omen Armor", Id = 970100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Omen Gauntlets", Id = 970200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Omen Greaves", Id = 970300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Carian Knight Helm", Id = 980000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Carian Knight Armor", Id = 980100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Carian Knight Gauntlets", Id = 980200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Carian Knight Greaves", Id = 980300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Carian Knight Armor (Altered)", Id = 981100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Hierodas Glintstone Crown", Id = 990000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Errant Sorcerer Robe", Id = 990100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Errant Sorcerer Manchettes", Id = 990200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Errant Sorcerer Boots", Id = 990300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Errant Sorcerer Robe (Altered)", Id = 991100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Haima Glintstone Crown", Id = 1000000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Battlemage Robe", Id = 1000100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Battlemage Manchettes", Id = 1000200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Battlemage Legwraps", Id = 1000300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Snow Witch Hat", Id = 1010000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Snow Witch Robe", Id = 1010100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Snow Witch Skirt", Id = 1010300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Snow Witch Robe (Altered)", Id = 1011100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Traveler's Clothes", Id = 1020100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Traveler's Manchettes", Id = 1020200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Traveler's Boots", Id = 1020300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Juvenile Scholar Cap", Id = 1030000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Juvenile Scholar Robe", Id = 1030100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Radiant Gold Mask", Id = 1040000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Goldmask's Rags", Id = 1040100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Gold Bracelets", Id = 1040200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Gold Waistwrap", Id = 1040300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fell Omen Cloak", Id = 1050100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Albinauric Mask", Id = 1060000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Dirty Chainmail", Id = 1060100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Zamor Mask", Id = 1070000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Zamor Armor", Id = 1070100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Zamor Bracelets", Id = 1070200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Zamor Legwraps", Id = 1070300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Imp Head (Cat)", Id = 1080000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Imp Head (Fanged)", Id = 1081000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Imp Head (Long-Tongued)", Id = 1082000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Imp Head (Corpse)", Id = 1083000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Imp Head (Wolf)", Id = 1084000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Imp Head (Elder)", Id = 1085000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Silver Tear Mask", Id = 1090000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Chain Coif", Id = 1100000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Chain Armor", Id = 1100100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Gauntlets", Id = 1100200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Chain Leggings", Id = 1100300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Greathelm", Id = 1101000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Eye Surcoat", Id = 1101100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Tree Surcoat", Id = 1102100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Octopus Head", Id = 1110000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Jar", Id = 1120000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Mushroom Head", Id = 1130000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Mushroom Body", Id = 1130100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Mushroom Arms", Id = 1130200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Mushroom Legs", Id = 1130300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Nox Mirrorhelm", Id = 1300000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Iji's Mirrorhelm", Id = 1301000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Black Hood", Id = 1400000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Leather Armor", Id = 1400100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Leather Gloves", Id = 1400200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Leather Boots", Id = 1400300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Bandit Mask", Id = 1401000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Knight Helm", Id = 1500000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Knight Armor", Id = 1500100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Knight Gauntlets", Id = 1500200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Knight Greaves", Id = 1500300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Greathood", Id = 1600000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Godrick Soldier Helm", Id = 1700000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Tree-and-Beast Surcoat", Id = 1700100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Godrick Soldier Gauntlets", Id = 1700200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Godrick Soldier Greaves", Id = 1700300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Raya Lucarian Helm", Id = 1710000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Cuckoo Surcoat", Id = 1710100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Raya Lucarian Gauntlets", Id = 1710200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Raya Lucarian Greaves", Id = 1710300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Leyndell Soldier Helm", Id = 1720000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Erdtree Surcoat", Id = 1720100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Leyndell Soldier Gauntlets", Id = 1720200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Leyndell Soldier Greaves", Id = 1720300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Radahn Soldier Helm", Id = 1730000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Redmane Surcoat", Id = 1730100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Radahn Soldier Gauntlets", Id = 1730200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Radahn Soldier Greaves", Id = 1730300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Mausoleum Surcoat", Id = 1740100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Mausoleum Gauntlets", Id = 1740200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Mausoleum Greaves", Id = 1740300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Haligtree Helm", Id = 1750000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Haligtree Crest Surcoat", Id = 1750100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Haligtree Gauntlets", Id = 1750200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Haligtree Greaves", Id = 1750300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Gelmir Knight Helm", Id = 1760000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Gelmir Knight Armor", Id = 1760100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Gelmir Knight Gauntlets", Id = 1760200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Gelmir Knight Greaves", Id = 1760300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Gelmir Knight Armor (Altered)", Id = 1761100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Godrick Knight Helm", Id = 1770000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Godrick Knight Armor", Id = 1770100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Godrick Knight Gauntlets", Id = 1770200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Godrick Knight Greaves", Id = 1770300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Godrick Knight Armor (Altered)", Id = 1771100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Cuckoo Knight Helm", Id = 1780000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Cuckoo Knight Armor", Id = 1780100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Cuckoo Knight Gauntlets", Id = 1780200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Cuckoo Knight Greaves", Id = 1780300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Cuckoo Knight Armor (Altered)", Id = 1781100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Leyndell Knight Helm", Id = 1790000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Leyndell Knight Armor", Id = 1790100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Leyndell Knight Gauntlets", Id = 1790200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Leyndell Knight Greaves", Id = 1790300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Leyndell Knight Armor (Altered)", Id = 1791100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Redmane Knight Helm", Id = 1800000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Redmane Knight Armor", Id = 1800100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Redmane Knight Gauntlets", Id = 1800200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Redmane Knight Greaves", Id = 1800300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Redmane Knight Armor (Altered)", Id = 1801100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Mausoleum Knight Armor", Id = 1810100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Mausoleum Knight Gauntlets", Id = 1810200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Mausoleum Knight Greaves", Id = 1810300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Mausoleum Knight Armor (Altered)", Id = 1811100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Haligtree Knight Helm", Id = 1820000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Haligtree Knight Armor", Id = 1820100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Haligtree Knight Gauntlets", Id = 1820200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Haligtree Knight Greaves", Id = 1820300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Haligtree Knight Armor (Altered)", Id = 1821100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Foot Soldier Cap", Id = 1830000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Chain-Draped Tabard", Id = 1830100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Foot Soldier Gauntlets", Id = 1830200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Foot Soldier Greaves", Id = 1830300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Foot Soldier Helmet", Id = 1840000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Foot Soldier Tabard", Id = 1840100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Gilded Foot Soldier Cap", Id = 1850000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Leather-Draped Tabard", Id = 1850100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Foot Soldier Helm", Id = 1860000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Scarlet Tabard", Id = 1860100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Bloodsoaked Tabard", Id = 1870100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Sacred Crown Helm", Id = 1880000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Ivory-Draped Tabard", Id = 1880100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Omensmirk Mask", Id = 1890000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Omenkiller Robe", Id = 1890100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Omenkiller Long Gloves", Id = 1890200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Omenkiller Boots", Id = 1890300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Ash-of-War Scarab", Id = 1900000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Incantation Scarab", Id = 1901000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Glintstone Scarab", Id = 1902000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Crimson Tear Scarab", Id = 1910000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Cerulean Tear Scarab", Id = 1920000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Deathbed Dress", Id = 1930100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fia's Hood", Id = 1940000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fia's Robe", Id = 1940100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Fia's Robe (Altered)", Id = 1941100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Highwayman Hood", Id = 1980000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Highwayman Cloth Armor", Id = 1980100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Highwayman Gauntlets", Id = 1980200 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "High Page Hood", Id = 1990000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "High Page Clothes", Id = 1990100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "High Page Clothes (Altered)", Id = 1991100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Rotten Duelist Helm", Id = 2000000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Rotten Gravekeeper Cloak", Id = 2000100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Rotten Duelist Greaves", Id = 2000300 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Rotten Gravekeeper Cloak (Altered)", Id = 2001100 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Mushroom Crown", Id = 2010000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Black Dumpling", Id = 2020000 }, - new Item() { Category = Category.Protector,GroupName = "Armor", Name = "Lazuli Robe", Id = 2030000 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Lion's Claw", Id = 10000 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Impaling Thrust", Id = 10100 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Piercing Fang", Id = 10200 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Spinning Slash", Id = 10300 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Charge Forth", Id = 10500 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Stamp (Upward Cut)", Id = 10600 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Stamp (Sweep)", Id = 10700 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Blood Tax", Id = 10800 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Repeating Thrust", Id = 10900 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Wild Strikes", Id = 11000 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Spinning Strikes", Id = 11100 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Double Slash", Id = 11200 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Prelate's Charge", Id = 11300 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Unsheathe", Id = 11400 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Square Off", Id = 11500 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Giant Hunt", Id = 11600 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Loretta's Slash", Id = 11800 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Poison Moth Flight", Id = 11900 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Spinning Weapon", Id = 12000 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Storm Assault", Id = 12200 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Stormcaller", Id = 12300 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Sword Dance", Id = 12400 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Glintblade Phalanx", Id = 20000 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Sacred Blade", Id = 20100 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Ice Spear", Id = 20200 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Glintstone Pebble", Id = 20300 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Bloody Slash", Id = 20400 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Lifesteal Fist", Id = 20500 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Eruption", Id = 20700 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Prayerful Strike", Id = 20800 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Gravitas", Id = 20900 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Storm Blade", Id = 21000 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Earthshaker", Id = 21200 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Golden Land", Id = 21300 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Flaming Strike", Id = 21400 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Thunderbolt", Id = 21600 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Lightning Slash", Id = 21700 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Carian Grandeur", Id = 21800 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Carian Greatsword", Id = 21900 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Vacuum Slice", Id = 22000 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Black Flame Tornado", Id = 22100 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Sacred Ring of Light", Id = 22200 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Blood Blade", Id = 22400 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Phantom Slash", Id = 22500 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Spectral Lance", Id = 22600 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Chilling Mist", Id = 22700 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Poisonous Mist", Id = 22800 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Shield Bash", Id = 30000 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Barricade Shield", Id = 30100 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Parry", Id = 30200 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Carian Retaliation", Id = 30500 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Storm Wall", Id = 30600 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Golden Parry", Id = 30700 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Shield Crash", Id = 30800 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: No Skill", Id = 30900 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Thops's Barrier", Id = 31000 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Through and Through", Id = 40000 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Barrage", Id = 40100 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Mighty Shot", Id = 40200 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Enchanted Shot", Id = 40400 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Sky Shot", Id = 40500 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Rain of Arrows", Id = 40600 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Hoarfrost Stomp", Id = 50100 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Storm Stomp", Id = 50200 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Kick", Id = 50300 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Lightning Ram", Id = 50400 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Flame of the Redmanes", Id = 50500 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Ground Slam", Id = 50600 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Golden Slam", Id = 50700 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Waves of Darkness", Id = 50800 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Hoarah Loux's Earthshaker", Id = 50900 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Determination", Id = 60000 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Royal Knight's Resolve", Id = 60100 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Assassin's Gambit", Id = 60200 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Golden Vow", Id = 60300 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Sacred Order", Id = 60400 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Shared Order", Id = 60500 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Seppuku", Id = 60600 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Cragblade", Id = 60700 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Barbaric Roar", Id = 65000 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: War Cry", Id = 65100 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Beast's Roar", Id = 65200 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Troll's Roar", Id = 65300 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Braggart's Roar", Id = 65400 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Endure", Id = 70000 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Vow of the Indomitable", Id = 70100 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Holy Ground", Id = 70200 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Quickstep", Id = 80000 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Bloodhound's Step", Id = 80100 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Raptor of the Mists", Id = 80200 }, - new Item() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: White Shadow's Lure", Id = 85000 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Glintstone Pebble", Id = 4000 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Great Glintstone Shard", Id = 4001 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Swift Glintstone Shard", Id = 4010 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Glintstone Cometshard", Id = 4020 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Comet", Id = 4021 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Shard Spiral", Id = 4030 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Glintstone Stars", Id = 4040 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Star Shower", Id = 4050 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Crystal Barrage", Id = 4060 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Glintstone Arc", Id = 4070 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Cannon of Haima", Id = 4080 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Crystal Burst", Id = 4090 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Shatter Earth", Id = 4100 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Rock Blaster", Id = 4110 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Gavel of Haima", Id = 4120 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Terra Magica", Id = 4130 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Starlight", Id = 4140 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Comet Azur", Id = 4200 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Founding Rain of Stars", Id = 4210 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Stars of Ruin", Id = 4220 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Glintblade Phalanx", Id = 4300 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Carian Phalanx", Id = 4301 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Greatblade Phalanx", Id = 4302 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Rennala's Full Moon", Id = 4360 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Ranni's Dark Moon", Id = 4361 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Magic Downpour", Id = 4370 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Loretta's Greatbow", Id = 4380 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Loretta's Mastery", Id = 4381 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Magic Glintblade", Id = 4390 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Glintstone Icecrag", Id = 4400 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Zamor Ice Storm", Id = 4410 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Freezing Mist", Id = 4420 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Carian Greatsword", Id = 4430 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Adula's Moonblade", Id = 4431 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Carian Slicer", Id = 4440 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Carian Piercer", Id = 4450 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Scholar's Armament", Id = 4460 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Scholar's Shield", Id = 4470 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Lucidity", Id = 4480 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Frozen Armament", Id = 4490 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Shattering Crystal", Id = 4500 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Crystal Release", Id = 4510 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Crystal Torrent", Id = 4520 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Ambush Shard", Id = 4600 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Night Shard", Id = 4610 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Night Comet", Id = 4620 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Thops's Barrier", Id = 4630 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Carian Retaliation", Id = 4640 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Eternal Darkness", Id = 4650 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Unseen Blade", Id = 4660 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Unseen Form", Id = 4670 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Meteorite", Id = 4700 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Meteorite of Astel", Id = 4701 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Rock Sling", Id = 4710 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Gravity Well", Id = 4720 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Collapsing Stars", Id = 4721 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Magma Shot", Id = 4800 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Gelmir's Fury", Id = 4810 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Roiling Magma", Id = 4820 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Rykard's Rancor", Id = 4830 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Briars of Sin", Id = 4900 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Briars of Punishment", Id = 4910 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Rancorcall", Id = 5000 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Ancient Death Rancor", Id = 5001 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Explosive Ghostflame", Id = 5010 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Fia's Mist", Id = 5020 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Tibia's Summons", Id = 5030 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Death Lightning", Id = 5040 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Oracle Bubbles", Id = 5100 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Great Oracular Bubble", Id = 5110 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Catch Flame", Id = 6000 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] O, Flame!", Id = 6001 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Flame Sling", Id = 6010 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Flame, Fall Upon Them", Id = 6020 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Whirl, O Flame!", Id = 6030 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Flame, Cleanse Me", Id = 6040 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Flame, Grant Me Strength", Id = 6050 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Flame, Protect Me", Id = 6060 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Giantsflame Take Thee", Id = 6100 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Flame of the Fell God", Id = 6110 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Burn, O Flame!", Id = 6120 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Black Flame", Id = 6210 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Surge, O Flame!", Id = 6220 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Scouring Black Flame", Id = 6230 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Black Flame Ritual", Id = 6240 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Black Flame Blade", Id = 6250 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Black Flame's Protection", Id = 6260 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Noble Presence", Id = 6270 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Bloodflame Talons", Id = 6300 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Bloodboon", Id = 6310 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Bloodflame Blade", Id = 6320 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Barrier of Gold", Id = 6330 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Protection of the Erdtree", Id = 6340 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Rejection", Id = 6400 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Wrath of Gold", Id = 6410 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Urgent Heal", Id = 6420 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Heal", Id = 6421 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Great Heal", Id = 6422 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Lord's Heal", Id = 6423 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Erdtree Heal", Id = 6424 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Blessing's Boon", Id = 6430 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Blessing of the Erdtree", Id = 6431 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Cure Poison", Id = 6440 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Lord's Aid", Id = 6441 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Flame Fortification", Id = 6450 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Magic Fortification", Id = 6460 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Lightning Fortification", Id = 6470 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Divine Fortification", Id = 6480 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Lord's Divine Fortification", Id = 6490 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Night Maiden's Mist", Id = 6500 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Assassin's Approach", Id = 6510 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Shadow Bait", Id = 6520 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Darkness", Id = 6530 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Golden Vow", Id = 6600 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Discus of Light", Id = 6700 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Triple Rings of Light", Id = 6701 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Radagon's Rings of Light", Id = 6710 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Elden Stars", Id = 6720 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Law of Regression", Id = 6730 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Immutable Shield", Id = 6740 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Litany of Proper Death", Id = 6750 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Law of Causality", Id = 6760 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Order's Blade", Id = 6770 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Order Healing", Id = 6780 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Bestial Sling", Id = 6800 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Stone of Gurranq", Id = 6810 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Beast Claw", Id = 6820 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Gurranq's Beast Claw", Id = 6830 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Bestial Vitality", Id = 6840 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Bestial Constitution", Id = 6850 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Lightning Spear", Id = 6900 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Ancient Dragons' Lightning Strike", Id = 6910 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Lightning Strike", Id = 6920 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Frozen Lightning Spear", Id = 6921 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Honed Bolt", Id = 6930 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Ancient Dragons' Lightning Spear", Id = 6940 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Fortissax's Lightning Spear", Id = 6941 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Lansseax's Glaive", Id = 6950 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Electrify Armament", Id = 6960 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Vyke's Dragonbolt", Id = 6970 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Dragonbolt Blessing", Id = 6971 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Dragonfire", Id = 7000 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Agheel's Flame", Id = 7001 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Magma Breath", Id = 7010 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Theodorix's Magma", Id = 7011 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Dragonice", Id = 7020 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Borealis's Mist", Id = 7021 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Rotten Breath", Id = 7030 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Ekzykes's Decay", Id = 7031 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Glintstone Breath", Id = 7040 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Smarag's Glintstone Breath", Id = 7041 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Placidusax's Ruin", Id = 7050 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Dragonclaw", Id = 7060 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Dragonmaw", Id = 7080 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Greyoll's Roar", Id = 7090 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Pest Threads", Id = 7200 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Swarm of Flies", Id = 7210 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Poison Mist", Id = 7220 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Poison Armament", Id = 7230 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Scarlet Aeonia", Id = 7240 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Inescapable Frenzy", Id = 7300 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] The Flame of Frenzy", Id = 7310 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Unendurable Frenzy", Id = 7311 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Frenzied Burst", Id = 7320 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Howl of Shabriri", Id = 7330 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Aspects of the Crucible: Tail", Id = 7500 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Aspects of the Crucible: Horns", Id = 7510 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Aspects of the Crucible: Breath", Id = 7520 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Black Blade", Id = 7530 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Fire's Deadly Sin", Id = 7900 }, - new Item() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Golden Lightning Fortification", Id = 7903 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Crimson Amber Medallion", Id = 1000 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Crimson Amber Medallion +1", Id = 1001 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Crimson Amber Medallion +2", Id = 1002 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Cerulean Amber Medallion", Id = 1010 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Cerulean Amber Medallion +1", Id = 1011 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Cerulean Amber Medallion +2", Id = 1012 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Viridian Amber Medallion", Id = 1020 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Viridian Amber Medallion +1", Id = 1021 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Viridian Amber Medallion +2", Id = 1022 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Arsenal Charm", Id = 1030 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Arsenal Charm +1", Id = 1031 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Great-Jar's Arsenal", Id = 1032 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Erdtree's Favor", Id = 1040 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Erdtree's Favor +1", Id = 1041 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Erdtree's Favor +2", Id = 1042 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Radagon's Scarseal", Id = 1050 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Radagon's Soreseal", Id = 1051 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Starscourge Heirloom", Id = 1060 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Prosthesis-Wearer Heirloom", Id = 1070 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Stargazer Heirloom", Id = 1080 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Two Fingers Heirloom", Id = 1090 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Silver Scarab", Id = 1100 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Gold Scarab", Id = 1110 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Moon of Nokstella", Id = 1140 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Green Turtle Talisman", Id = 1150 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Stalwart Horn Charm", Id = 1160 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Stalwart Horn Charm +1", Id = 1161 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Immunizing Horn Charm", Id = 1170 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Immunizing Horn Charm +1", Id = 1171 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Clarifying Horn Charm", Id = 1180 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Clarifying Horn Charm +1", Id = 1181 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Prince of Death's Pustule", Id = 1190 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Prince of Death's Cyst", Id = 1191 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Mottled Necklace", Id = 1200 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Mottled Necklace +1", Id = 1201 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Bull-Goat's Talisman", Id = 1210 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Marika's Scarseal", Id = 1220 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Marika's Soreseal", Id = 1221 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Warrior Jar Shard", Id = 1230 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Shard of Alexander", Id = 1231 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Millicent's Prosthesis", Id = 1250 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Magic Scorpion Charm", Id = 2000 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Lightning Scorpion Charm", Id = 2010 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Fire Scorpion Charm", Id = 2020 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Sacred Scorpion Charm", Id = 2030 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Red-Feathered Branchsword", Id = 2040 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Ritual Sword Talisman", Id = 2050 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Spear Talisman", Id = 2060 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Hammer Talisman", Id = 2070 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Winged Sword Insignia", Id = 2080 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Rotten Winged Sword Insignia", Id = 2081 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Dagger Talisman", Id = 2090 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Arrow's Reach Talisman", Id = 2100 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Blue Dancer Charm", Id = 2110 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Twinblade Talisman", Id = 2120 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Axe Talisman", Id = 2130 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Lance Talisman", Id = 2140 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Arrow's Sting Talisman", Id = 2150 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Lord of Blood's Exultation", Id = 2160 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Kindred of Rot's Exultation", Id = 2170 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Claw Talisman", Id = 2180 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Roar Medallion", Id = 2190 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Curved Sword Talisman", Id = 2200 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Companion Jar", Id = 2210 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Perfumer's Talisman", Id = 2220 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Graven-School Talisman", Id = 3000 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Graven-Mass Talisman", Id = 3001 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Faithful's Canvas Talisman", Id = 3040 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Flock's Canvas Talisman", Id = 3050 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Old Lord's Talisman", Id = 3060 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Radagon Icon", Id = 3070 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Primal Glintstone Blade", Id = 3080 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Godfrey Icon", Id = 3090 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Dragoncrest Shield Talisman", Id = 4000 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Dragoncrest Shield Talisman +1", Id = 4001 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Dragoncrest Shield Talisman +2", Id = 4002 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Dragoncrest Greatshield Talisman", Id = 4003 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Spelldrake Talisman", Id = 4010 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Spelldrake Talisman +1", Id = 4011 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Spelldrake Talisman +2", Id = 4012 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Flamedrake Talisman", Id = 4020 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Flamedrake Talisman +1", Id = 4021 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Flamedrake Talisman +2", Id = 4022 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Boltdrake Talisman", Id = 4030 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Boltdrake Talisman +1", Id = 4031 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Boltdrake Talisman +2", Id = 4032 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Haligdrake Talisman", Id = 4040 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Haligdrake Talisman +1", Id = 4041 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Haligdrake Talisman +2", Id = 4042 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Pearldrake Talisman", Id = 4050 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Pearldrake Talisman +1", Id = 4051 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Pearldrake Talisman +2", Id = 4052 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Crucible Scale Talisman", Id = 4060 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Crucible Feather Talisman", Id = 4070 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Blue-Feathered Branchsword", Id = 4080 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Ritual Shield Talisman", Id = 4090 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Greatshield Talisman", Id = 4100 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Crucible Knot Talisman", Id = 4110 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Crimson Seed Talisman", Id = 5000 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Cerulean Seed Talisman", Id = 5010 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Blessed Dew Talisman", Id = 5020 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Taker's Cameo", Id = 5030 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Godskin Swaddling Cloth", Id = 5040 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Assassin's Crimson Dagger", Id = 5050 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Assassin's Cerulean Dagger", Id = 5060 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Crepus's Vial", Id = 6000 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Concealing Veil", Id = 6010 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Carian Filigreed Crest", Id = 6020 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Longtail Cat Talisman", Id = 6040 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Shabriri's Woe", Id = 6050 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Daedicar's Woe", Id = 6060 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Sacrificial Twig", Id = 6070 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Furled Finger's Trick-Mirror", Id = 6080 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Host's Trick-Mirror", Id = 6090 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Entwining Umbilical Cord", Id = 6100 }, - new Item() { Category = Category.Accessory,GroupName = "Talismans", Name = "Ancestral Spirit's Horn", Id = 6110 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Black Knife Tiche", Id = 200000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Black Knife Tiche +1", Id = 200001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Black Knife Tiche +2", Id = 200002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Black Knife Tiche +3", Id = 200003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Black Knife Tiche +4", Id = 200004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Black Knife Tiche +5", Id = 200005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Black Knife Tiche +6", Id = 200006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Black Knife Tiche +7", Id = 200007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Black Knife Tiche +8", Id = 200008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Black Knife Tiche +9", Id = 200009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Black Knife Tiche +10", Id = 200010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Oleg", Id = 201000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Oleg +1", Id = 201001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Oleg +2", Id = 201002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Oleg +3", Id = 201003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Oleg +4", Id = 201004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Oleg +5", Id = 201005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Oleg +6", Id = 201006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Oleg +7", Id = 201007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Oleg +8", Id = 201008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Oleg +9", Id = 201009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Oleg +10", Id = 201010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Engvall", Id = 202000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Engvall +1", Id = 202001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Engvall +2", Id = 202002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Engvall +3", Id = 202003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Engvall +4", Id = 202004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Engvall +5", Id = 202005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Engvall +6", Id = 202006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Engvall +7", Id = 202007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Engvall +8", Id = 202008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Engvall +9", Id = 202009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Engvall +10", Id = 202010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fanged Imp Ashes", Id = 203000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fanged Imp Ashes +1", Id = 203001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fanged Imp Ashes +2", Id = 203002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fanged Imp Ashes +3", Id = 203003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fanged Imp Ashes +4", Id = 203004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fanged Imp Ashes +5", Id = 203005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fanged Imp Ashes +6", Id = 203006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fanged Imp Ashes +7", Id = 203007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fanged Imp Ashes +8", Id = 203008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fanged Imp Ashes +9", Id = 203009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fanged Imp Ashes +10", Id = 203010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Latenna the Albinauric", Id = 204000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Latenna the Albinauric +1", Id = 204001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Latenna the Albinauric +2", Id = 204002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Latenna the Albinauric +3", Id = 204003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Latenna the Albinauric +4", Id = 204004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Latenna the Albinauric +5", Id = 204005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Latenna the Albinauric +6", Id = 204006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Latenna the Albinauric +7", Id = 204007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Latenna the Albinauric +8", Id = 204008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Latenna the Albinauric +9", Id = 204009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Latenna the Albinauric +10", Id = 204010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nomad Ashes", Id = 205000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nomad Ashes +1", Id = 205001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nomad Ashes +2", Id = 205002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nomad Ashes +3", Id = 205003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nomad Ashes +4", Id = 205004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nomad Ashes +5", Id = 205005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nomad Ashes +6", Id = 205006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nomad Ashes +7", Id = 205007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nomad Ashes +8", Id = 205008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nomad Ashes +9", Id = 205009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nomad Ashes +10", Id = 205010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nightmaiden & Swordstress Puppets", Id = 206000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nightmaiden & Swordstress Puppets +1", Id = 206001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nightmaiden & Swordstress Puppets +2", Id = 206002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nightmaiden & Swordstress Puppets +3", Id = 206003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nightmaiden & Swordstress Puppets +4", Id = 206004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nightmaiden & Swordstress Puppets +5", Id = 206005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nightmaiden & Swordstress Puppets +6", Id = 206006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nightmaiden & Swordstress Puppets +7", Id = 206007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nightmaiden & Swordstress Puppets +8", Id = 206008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nightmaiden & Swordstress Puppets +9", Id = 206009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nightmaiden & Swordstress Puppets +10", Id = 206010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mimic Tear Ashes", Id = 207000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mimic Tear Ashes +1", Id = 207001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mimic Tear Ashes +2", Id = 207002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mimic Tear Ashes +3", Id = 207003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mimic Tear Ashes +4", Id = 207004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mimic Tear Ashes +5", Id = 207005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mimic Tear Ashes +6", Id = 207006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mimic Tear Ashes +7", Id = 207007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mimic Tear Ashes +8", Id = 207008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mimic Tear Ashes +9", Id = 207009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mimic Tear Ashes +10", Id = 207010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Crystalian Ashes", Id = 208000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Crystalian Ashes +1", Id = 208001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Crystalian Ashes +2", Id = 208002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Crystalian Ashes +3", Id = 208003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Crystalian Ashes +4", Id = 208004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Crystalian Ashes +5", Id = 208005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Crystalian Ashes +6", Id = 208006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Crystalian Ashes +7", Id = 208007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Crystalian Ashes +8", Id = 208008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Crystalian Ashes +9", Id = 208009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Crystalian Ashes +10", Id = 208010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancestral Follower Ashes", Id = 209000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancestral Follower Ashes +1", Id = 209001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancestral Follower Ashes +2", Id = 209002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancestral Follower Ashes +3", Id = 209003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancestral Follower Ashes +4", Id = 209004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancestral Follower Ashes +5", Id = 209005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancestral Follower Ashes +6", Id = 209006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancestral Follower Ashes +7", Id = 209007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancestral Follower Ashes +8", Id = 209008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancestral Follower Ashes +9", Id = 209009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancestral Follower Ashes +10", Id = 209010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Winged Misbegotten Ashes", Id = 210000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Winged Misbegotten Ashes + 1", Id = 210001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Winged Misbegotten Ashes + 2", Id = 210002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Winged Misbegotten Ashes + 3", Id = 210003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Winged Misbegotten Ashes + 4", Id = 210004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Winged Misbegotten Ashes + 5", Id = 210005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Winged Misbegotten Ashes + 6", Id = 210006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Winged Misbegotten Ashes + 7", Id = 210007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Winged Misbegotten Ashes + 8", Id = 210008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Winged Misbegotten Ashes + 9", Id = 210009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Winged Misbegotten Ashes + 10", Id = 210010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Albinauric Ashes", Id = 211000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Albinauric Ashes +1", Id = 211001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Albinauric Ashes +2", Id = 211002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Albinauric Ashes +3", Id = 211003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Albinauric Ashes +4", Id = 211004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Albinauric Ashes +5", Id = 211005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Albinauric Ashes +6", Id = 211006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Albinauric Ashes +7", Id = 211007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Albinauric Ashes +8", Id = 211008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Albinauric Ashes +9", Id = 211009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Albinauric Ashes +10", Id = 211010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Militiaman Ashes", Id = 212000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Militiaman Ashes +1", Id = 212001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Militiaman Ashes +2", Id = 212002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Militiaman Ashes +3", Id = 212003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Militiaman Ashes +4", Id = 212004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Militiaman Ashes +5", Id = 212005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Militiaman Ashes +6", Id = 212006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Militiaman Ashes +7", Id = 212007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Militiaman Ashes +8", Id = 212008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Militiaman Ashes +9", Id = 212009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Militiaman Ashes +10", Id = 212010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Bandit Ashes", Id = 213000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Bandit Ashes +1", Id = 213001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Bandit Ashes +2", Id = 213002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Bandit Ashes +3", Id = 213003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Bandit Ashes +4", Id = 213004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Bandit Ashes +5", Id = 213005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Bandit Ashes +6", Id = 213006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Bandit Ashes +7", Id = 213007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Bandit Ashes +8", Id = 213008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Bandit Ashes +9", Id = 213009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Bandit Ashes +10", Id = 213010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Oracle Envoy Ashes", Id = 214000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Oracle Envoy Ashes +1", Id = 214001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Oracle Envoy Ashes +2", Id = 214002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Oracle Envoy Ashes +3", Id = 214003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Oracle Envoy Ashes +4", Id = 214004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Oracle Envoy Ashes +5", Id = 214005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Oracle Envoy Ashes +6", Id = 214006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Oracle Envoy Ashes +7", Id = 214007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Oracle Envoy Ashes +8", Id = 214008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Oracle Envoy Ashes +9", Id = 214009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Oracle Envoy Ashes +10", Id = 214010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Putrid Corpse Ashes", Id = 215000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Putrid Corpse Ashes +1", Id = 215001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Putrid Corpse Ashes +2", Id = 215002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Putrid Corpse Ashes +3", Id = 215003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Putrid Corpse Ashes +4", Id = 215004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Putrid Corpse Ashes +5", Id = 215005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Putrid Corpse Ashes +6", Id = 215006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Putrid Corpse Ashes +7", Id = 215007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Putrid Corpse Ashes +8", Id = 215008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Putrid Corpse Ashes +9", Id = 215009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Putrid Corpse Ashes +10", Id = 215010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Depraved Perfumer Carmaan", Id = 216000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Depraved Perfumer Carmaan +1", Id = 216001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Depraved Perfumer Carmaan +2", Id = 216002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Depraved Perfumer Carmaan +3", Id = 216003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Depraved Perfumer Carmaan +4", Id = 216004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Depraved Perfumer Carmaan +5", Id = 216005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Depraved Perfumer Carmaan +6", Id = 216006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Depraved Perfumer Carmaan +7", Id = 216007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Depraved Perfumer Carmaan +8", Id = 216008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Depraved Perfumer Carmaan +9", Id = 216009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Depraved Perfumer Carmaan +10", Id = 216010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Perfumer Tricia", Id = 217000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Perfumer Tricia +1", Id = 217001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Perfumer Tricia +2", Id = 217002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Perfumer Tricia +3", Id = 217003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Perfumer Tricia +4", Id = 217004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Perfumer Tricia +5", Id = 217005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Perfumer Tricia +6", Id = 217006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Perfumer Tricia +7", Id = 217007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Perfumer Tricia +8", Id = 217008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Perfumer Tricia +9", Id = 217009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Perfumer Tricia +10", Id = 217010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Glintstone Sorcerer Ashes", Id = 218000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Glintstone Sorcerer Ashes +1", Id = 218001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Glintstone Sorcerer Ashes +2", Id = 218002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Glintstone Sorcerer Ashes +3", Id = 218003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Glintstone Sorcerer Ashes +4", Id = 218004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Glintstone Sorcerer Ashes +5", Id = 218005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Glintstone Sorcerer Ashes +6", Id = 218006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Glintstone Sorcerer Ashes +7", Id = 218007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Glintstone Sorcerer Ashes +8", Id = 218008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Glintstone Sorcerer Ashes +9", Id = 218009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Glintstone Sorcerer Ashes +10", Id = 218010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Twinsage Sorcerer Ashes", Id = 219000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Twinsage Sorcerer Ashes +1", Id = 219001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Twinsage Sorcerer Ashes +2", Id = 219002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Twinsage Sorcerer Ashes +3", Id = 219003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Twinsage Sorcerer Ashes +4", Id = 219004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Twinsage Sorcerer Ashes +5", Id = 219005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Twinsage Sorcerer Ashes +6", Id = 219006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Twinsage Sorcerer Ashes +7", Id = 219007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Twinsage Sorcerer Ashes +8", Id = 219008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Twinsage Sorcerer Ashes +9", Id = 219009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Twinsage Sorcerer Ashes +10", Id = 219010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Page Ashes", Id = 220000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Page Ashes +1", Id = 220001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Page Ashes +2", Id = 220002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Page Ashes +3", Id = 220003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Page Ashes +4", Id = 220004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Page Ashes +5", Id = 220005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Page Ashes +6", Id = 220006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Page Ashes +7", Id = 220007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Page Ashes +8", Id = 220008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Page Ashes +9", Id = 220009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Page Ashes +10", Id = 220010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Battlemage Hugues", Id = 221000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Battlemage Hugues +1", Id = 221001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Battlemage Hugues +2", Id = 221002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Battlemage Hugues +3", Id = 221003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Battlemage Hugues +4", Id = 221004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Battlemage Hugues +5", Id = 221005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Battlemage Hugues +6", Id = 221006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Battlemage Hugues +7", Id = 221007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Battlemage Hugues +8", Id = 221008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Battlemage Hugues +9", Id = 221009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Battlemage Hugues +10", Id = 221010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Clayman Ashes", Id = 222000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Clayman Ashes +1", Id = 222001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Clayman Ashes +2", Id = 222002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Clayman Ashes +3", Id = 222003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Clayman Ashes +4", Id = 222004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Clayman Ashes +5", Id = 222005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Clayman Ashes +6", Id = 222006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Clayman Ashes +7", Id = 222007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Clayman Ashes +8", Id = 222008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Clayman Ashes +9", Id = 222009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Clayman Ashes +10", Id = 222010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Cleanrot Knight Finlay", Id = 223000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Cleanrot Knight Finlay +1", Id = 223001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Cleanrot Knight Finlay +2", Id = 223002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Cleanrot Knight Finlay +3", Id = 223003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Cleanrot Knight Finlay +4", Id = 223004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Cleanrot Knight Finlay +5", Id = 223005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Cleanrot Knight Finlay +6", Id = 223006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Cleanrot Knight Finlay +7", Id = 223007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Cleanrot Knight Finlay +8", Id = 223008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Cleanrot Knight Finlay +9", Id = 223009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Cleanrot Knight Finlay +10", Id = 223010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kindred of Rot Ashes", Id = 224000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kindred of Rot Ashes +1", Id = 224001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kindred of Rot Ashes +2", Id = 224002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kindred of Rot Ashes +3", Id = 224003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kindred of Rot Ashes +4", Id = 224004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kindred of Rot Ashes +5", Id = 224005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kindred of Rot Ashes +6", Id = 224006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kindred of Rot Ashes +7", Id = 224007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kindred of Rot Ashes +8", Id = 224008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kindred of Rot Ashes +9", Id = 224009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kindred of Rot Ashes +10", Id = 224010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Marionette Soldier Ashes", Id = 225000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Marionette Soldier Ashes +1", Id = 225001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Marionette Soldier Ashes +2", Id = 225002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Marionette Soldier Ashes +3", Id = 225003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Marionette Soldier Ashes +4", Id = 225004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Marionette Soldier Ashes +5", Id = 225005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Marionette Soldier Ashes +6", Id = 225006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Marionette Soldier Ashes +7", Id = 225007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Marionette Soldier Ashes +8", Id = 225008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Marionette Soldier Ashes +9", Id = 225009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Marionette Soldier Ashes +10", Id = 225010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Avionette Soldier Ashes", Id = 226000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Avionette Soldier Ashes +1", Id = 226001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Avionette Soldier Ashes +2", Id = 226002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Avionette Soldier Ashes +3", Id = 226003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Avionette Soldier Ashes +4", Id = 226004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Avionette Soldier Ashes +5", Id = 226005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Avionette Soldier Ashes +6", Id = 226006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Avionette Soldier Ashes +7", Id = 226007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Avionette Soldier Ashes +8", Id = 226008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Avionette Soldier Ashes +9", Id = 226009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Avionette Soldier Ashes +10", Id = 226010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fire Monk Ashes", Id = 227000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fire Monk Ashes +1", Id = 227001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fire Monk Ashes +2", Id = 227002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fire Monk Ashes +3", Id = 227003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fire Monk Ashes +4", Id = 227004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fire Monk Ashes +5", Id = 227005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fire Monk Ashes +6", Id = 227006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fire Monk Ashes +7", Id = 227007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fire Monk Ashes +8", Id = 227008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fire Monk Ashes +9", Id = 227009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Fire Monk Ashes +10", Id = 227010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Blackflame Monk Amon", Id = 228000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Blackflame Monk Amon +1", Id = 228001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Blackflame Monk Amon +2", Id = 228002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Blackflame Monk Amon +3", Id = 228003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Blackflame Monk Amon +4", Id = 228004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Blackflame Monk Amon +5", Id = 228005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Blackflame Monk Amon +6", Id = 228006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Blackflame Monk Amon +7", Id = 228007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Blackflame Monk Amon +8", Id = 228008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Blackflame Monk Amon +9", Id = 228009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Blackflame Monk Amon +10", Id = 228010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Man-Serpent Ashes", Id = 229000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Man-Serpent Ashes +1", Id = 229001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Man-Serpent Ashes +2", Id = 229002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Man-Serpent Ashes +3", Id = 229003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Man-Serpent Ashes +4", Id = 229004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Man-Serpent Ashes +5", Id = 229005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Man-Serpent Ashes +6", Id = 229006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Man-Serpent Ashes +7", Id = 229007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Man-Serpent Ashes +8", Id = 229008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Man-Serpent Ashes +9", Id = 229009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Man-Serpent Ashes +10", Id = 229010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Azula Beastman Ashes", Id = 230000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Azula Beastman Ashes +1", Id = 230001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Azula Beastman Ashes +2", Id = 230002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Azula Beastman Ashes +3", Id = 230003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Azula Beastman Ashes +4", Id = 230004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Azula Beastman Ashes +5", Id = 230005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Azula Beastman Ashes +6", Id = 230006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Azula Beastman Ashes +7", Id = 230007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Azula Beastman Ashes +8", Id = 230008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Azula Beastman Ashes +9", Id = 230009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Azula Beastman Ashes +10", Id = 230010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kaiden Sellsword Ashes", Id = 231000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kaiden Sellsword Ashes +1", Id = 231001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kaiden Sellsword Ashes +2", Id = 231002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kaiden Sellsword Ashes +3", Id = 231003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kaiden Sellsword Ashes +4", Id = 231004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kaiden Sellsword Ashes +5", Id = 231005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kaiden Sellsword Ashes +6", Id = 231006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kaiden Sellsword Ashes +7", Id = 231007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kaiden Sellsword Ashes +8", Id = 231008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kaiden Sellsword Ashes +9", Id = 231009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Kaiden Sellsword Ashes +10", Id = 231010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lone Wolf Ashes", Id = 232000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lone Wolf Ashes +1", Id = 232001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lone Wolf Ashes +2", Id = 232002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lone Wolf Ashes +3", Id = 232003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lone Wolf Ashes +4", Id = 232004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lone Wolf Ashes +5", Id = 232005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lone Wolf Ashes +6", Id = 232006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lone Wolf Ashes +7", Id = 232007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lone Wolf Ashes +8", Id = 232008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lone Wolf Ashes +9", Id = 232009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lone Wolf Ashes +10", Id = 232010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Giant Rat Ashes", Id = 233000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Giant Rat Ashes +1", Id = 233001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Giant Rat Ashes +2", Id = 233002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Giant Rat Ashes +3", Id = 233003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Giant Rat Ashes +4", Id = 233004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Giant Rat Ashes +5", Id = 233005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Giant Rat Ashes +6", Id = 233006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Giant Rat Ashes +7", Id = 233007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Giant Rat Ashes +8", Id = 233008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Giant Rat Ashes +9", Id = 233009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Giant Rat Ashes +10", Id = 233010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Demi-Human Ashes", Id = 234000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Demi-Human Ashes +1", Id = 234001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Demi-Human Ashes +2", Id = 234002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Demi-Human Ashes +3", Id = 234003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Demi-Human Ashes +4", Id = 234004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Demi-Human Ashes +5", Id = 234005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Demi-Human Ashes +6", Id = 234006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Demi-Human Ashes +7", Id = 234007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Demi-Human Ashes +8", Id = 234008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Demi-Human Ashes +9", Id = 234009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Demi-Human Ashes +10", Id = 234010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Rotten Stray Ashes", Id = 235000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Rotten Stray Ashes +1", Id = 235001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Rotten Stray Ashes +2", Id = 235002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Rotten Stray Ashes +3", Id = 235003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Rotten Stray Ashes +4", Id = 235004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Rotten Stray Ashes +5", Id = 235005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Rotten Stray Ashes +6", Id = 235006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Rotten Stray Ashes +7", Id = 235007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Rotten Stray Ashes +8", Id = 235008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Rotten Stray Ashes +9", Id = 235009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Rotten Stray Ashes +10", Id = 235010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Spirit Jellyfish Ashes", Id = 236000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Spirit Jellyfish Ashes +1", Id = 236001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Spirit Jellyfish Ashes +2", Id = 236002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Spirit Jellyfish Ashes +3", Id = 236003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Spirit Jellyfish Ashes +4", Id = 236004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Spirit Jellyfish Ashes +5", Id = 236005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Spirit Jellyfish Ashes +6", Id = 236006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Spirit Jellyfish Ashes +7", Id = 236007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Spirit Jellyfish Ashes +8", Id = 236008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Spirit Jellyfish Ashes +9", Id = 236009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Spirit Jellyfish Ashes +10", Id = 236010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Warhawk Ashes", Id = 237000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Warhawk Ashes +1", Id = 237001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Warhawk Ashes +2", Id = 237002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Warhawk Ashes +3", Id = 237003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Warhawk Ashes +4", Id = 237004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Warhawk Ashes +5", Id = 237005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Warhawk Ashes +6", Id = 237006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Warhawk Ashes +7", Id = 237007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Warhawk Ashes +8", Id = 237008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Warhawk Ashes +9", Id = 237009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Warhawk Ashes +10", Id = 237010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Stormhawk Deenh", Id = 238000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Stormhawk Deenh +1", Id = 238001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Stormhawk Deenh +2", Id = 238002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Stormhawk Deenh +3", Id = 238003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Stormhawk Deenh +4", Id = 238004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Stormhawk Deenh +5", Id = 238005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Stormhawk Deenh +6", Id = 238006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Stormhawk Deenh +7", Id = 238007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Stormhawk Deenh +8", Id = 238008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Stormhawk Deenh +9", Id = 238009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Stormhawk Deenh +10", Id = 238010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Bloodhound Knight Floh", Id = 239000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Bloodhound Knight Floh +1", Id = 239001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Bloodhound Knight Floh +2", Id = 239002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Bloodhound Knight Floh +3", Id = 239003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Bloodhound Knight Floh +4", Id = 239004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Bloodhound Knight Floh +5", Id = 239005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Bloodhound Knight Floh +6", Id = 239006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Bloodhound Knight Floh +7", Id = 239007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Bloodhound Knight Floh +8", Id = 239008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Bloodhound Knight Floh +9", Id = 239009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Bloodhound Knight Floh +10", Id = 239010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Wandering Noble Ashes", Id = 240000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Wandering Noble Ashes +1", Id = 240001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Wandering Noble Ashes +2", Id = 240002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Wandering Noble Ashes +3", Id = 240003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Wandering Noble Ashes +4", Id = 240004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Wandering Noble Ashes +5", Id = 240005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Wandering Noble Ashes +6", Id = 240006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Wandering Noble Ashes +7", Id = 240007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Wandering Noble Ashes +8", Id = 240008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Wandering Noble Ashes +9", Id = 240009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Wandering Noble Ashes +10", Id = 240010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Noble Sorcerer Ashes", Id = 241000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Noble Sorcerer Ashes +1", Id = 241001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Noble Sorcerer Ashes +2", Id = 241002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Noble Sorcerer Ashes +3", Id = 241003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Noble Sorcerer Ashes +4", Id = 241004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Noble Sorcerer Ashes +5", Id = 241005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Noble Sorcerer Ashes +6", Id = 241006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Noble Sorcerer Ashes +7", Id = 241007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Noble Sorcerer Ashes +8", Id = 241008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Noble Sorcerer Ashes +9", Id = 241009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Noble Sorcerer Ashes +10", Id = 241010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Vulgar Militia Ashes", Id = 242000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Vulgar Militia Ashes +1", Id = 242001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Vulgar Militia Ashes +2", Id = 242002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Vulgar Militia Ashes +3", Id = 242003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Vulgar Militia Ashes +4", Id = 242004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Vulgar Militia Ashes +5", Id = 242005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Vulgar Militia Ashes +6", Id = 242006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Vulgar Militia Ashes +7", Id = 242007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Vulgar Militia Ashes +8", Id = 242008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Vulgar Militia Ashes +9", Id = 242009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Vulgar Militia Ashes +10", Id = 242010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mad Pumpkin Head Ashes", Id = 243000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mad Pumpkin Head Ashes +1", Id = 243001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mad Pumpkin Head Ashes +2", Id = 243002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mad Pumpkin Head Ashes +3", Id = 243003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mad Pumpkin Head Ashes +4", Id = 243004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mad Pumpkin Head Ashes +5", Id = 243005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mad Pumpkin Head Ashes +6", Id = 243006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mad Pumpkin Head Ashes +7", Id = 243007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mad Pumpkin Head Ashes +8", Id = 243008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mad Pumpkin Head Ashes +9", Id = 243009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mad Pumpkin Head Ashes +10", Id = 243010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Land Squirt Ashes", Id = 244000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Land Squirt Ashes +1", Id = 244001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Land Squirt Ashes +2", Id = 244002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Land Squirt Ashes +3", Id = 244003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Land Squirt Ashes +4", Id = 244004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Land Squirt Ashes +5", Id = 244005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Land Squirt Ashes +6", Id = 244006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Land Squirt Ashes +7", Id = 244007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Land Squirt Ashes +8", Id = 244008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Land Squirt Ashes +9", Id = 244009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Land Squirt Ashes +10", Id = 244010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Miranda Sprout Ashes", Id = 245000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Miranda Sprout Ashes +1 ", Id = 245001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Miranda Sprout Ashes +2", Id = 245002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Miranda Sprout Ashes +3", Id = 245003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Miranda Sprout Ashes +4", Id = 245004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Miranda Sprout Ashes +5", Id = 245005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Miranda Sprout Ashes +6", Id = 245006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Miranda Sprout Ashes +7", Id = 245007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Miranda Sprout Ashes +8", Id = 245008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Miranda Sprout Ashes +9", Id = 245009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Miranda Sprout Ashes +10", Id = 245010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Soldjars of Fortune Ashes", Id = 246000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Soldjars of Fortune Ashes +1", Id = 246001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Soldjars of Fortune Ashes +2", Id = 246002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Soldjars of Fortune Ashes +3", Id = 246003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Soldjars of Fortune Ashes +4", Id = 246004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Soldjars of Fortune Ashes +5", Id = 246005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Soldjars of Fortune Ashes +6", Id = 246006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Soldjars of Fortune Ashes +7", Id = 246007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Soldjars of Fortune Ashes +8", Id = 246008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Soldjars of Fortune Ashes +9", Id = 246009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Soldjars of Fortune Ashes +10", Id = 246010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Omenkiller Rollo", Id = 247000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Omenkiller Rollo +1", Id = 247001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Omenkiller Rollo +2", Id = 247002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Omenkiller Rollo +3", Id = 247003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Omenkiller Rollo +4", Id = 247004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Omenkiller Rollo +5", Id = 247005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Omenkiller Rollo +6", Id = 247006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Omenkiller Rollo +7", Id = 247007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Omenkiller Rollo +8", Id = 247008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Omenkiller Rollo +9", Id = 247009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Omenkiller Rollo +10", Id = 247010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Greatshield Soldier Ashes", Id = 248000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Greatshield Soldier Ashes +1", Id = 248001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Greatshield Soldier Ashes +2", Id = 248002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Greatshield Soldier Ashes +3", Id = 248003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Greatshield Soldier Ashes +4", Id = 248004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Greatshield Soldier Ashes +5", Id = 248005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Greatshield Soldier Ashes +6", Id = 248006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Greatshield Soldier Ashes +7", Id = 248007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Greatshield Soldier Ashes +8", Id = 248008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Greatshield Soldier Ashes +9", Id = 248009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Greatshield Soldier Ashes +10", Id = 248010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Archer Ashes", Id = 249000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Archer Ashes +1", Id = 249001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Archer Ashes +2", Id = 249002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Archer Ashes +3", Id = 249003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Archer Ashes +4", Id = 249004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Archer Ashes +5", Id = 249005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Archer Ashes +6", Id = 249006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Archer Ashes +7", Id = 249007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Archer Ashes +8", Id = 249008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Archer Ashes +9", Id = 249009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Archer Ashes +10", Id = 249010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Godrick Soldier Ashes", Id = 250000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Godrick Soldier Ashes +1", Id = 250001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Godrick Soldier Ashes +2", Id = 250002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Godrick Soldier Ashes +3", Id = 250003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Godrick Soldier Ashes +4", Id = 250004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Godrick Soldier Ashes +5", Id = 250005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Godrick Soldier Ashes +6", Id = 250006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Godrick Soldier Ashes +7", Id = 250007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Godrick Soldier Ashes +8", Id = 250008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Godrick Soldier Ashes +9", Id = 250009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Godrick Soldier Ashes +10", Id = 250010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Raya Lucaria Soldier Ashes", Id = 251000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Raya Lucaria Soldier Ashes +1", Id = 251001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Raya Lucaria Soldier Ashes +2", Id = 251002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Raya Lucaria Soldier Ashes +3", Id = 251003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Raya Lucaria Soldier Ashes +4", Id = 251004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Raya Lucaria Soldier Ashes +5", Id = 251005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Raya Lucaria Soldier Ashes +6", Id = 251006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Raya Lucaria Soldier Ashes +7", Id = 251007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Raya Lucaria Soldier Ashes +8", Id = 251008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Raya Lucaria Soldier Ashes +9", Id = 251009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Raya Lucaria Soldier Ashes +10", Id = 251010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Leyndell Soldier Ashes", Id = 252000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Leyndell Soldier Ashes +1", Id = 252001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Leyndell Soldier Ashes +2", Id = 252002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Leyndell Soldier Ashes +3", Id = 252003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Leyndell Soldier Ashes +4", Id = 252004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Leyndell Soldier Ashes +5", Id = 252005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Leyndell Soldier Ashes +6", Id = 252006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Leyndell Soldier Ashes +7", Id = 252007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Leyndell Soldier Ashes +8", Id = 252008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Leyndell Soldier Ashes +9", Id = 252009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Leyndell Soldier Ashes +10", Id = 252010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Radahn Soldier Ashes", Id = 253000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Radahn Soldier Ashes +1", Id = 253001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Radahn Soldier Ashes +2", Id = 253002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Radahn Soldier Ashes +3", Id = 253003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Radahn Soldier Ashes +4", Id = 253004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Radahn Soldier Ashes +5", Id = 253005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Radahn Soldier Ashes +6", Id = 253006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Radahn Soldier Ashes +7", Id = 253007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Radahn Soldier Ashes +8", Id = 253008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Radahn Soldier Ashes +9", Id = 253009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Radahn Soldier Ashes +10", Id = 253010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mausoleum Soldier Ashes", Id = 254000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mausoleum Soldier Ashes +1", Id = 254001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mausoleum Soldier Ashes +2", Id = 254002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mausoleum Soldier Ashes +3", Id = 254003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mausoleum Soldier Ashes +4", Id = 254004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mausoleum Soldier Ashes +5", Id = 254005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mausoleum Soldier Ashes +6", Id = 254006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mausoleum Soldier Ashes +7", Id = 254007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mausoleum Soldier Ashes +8", Id = 254008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mausoleum Soldier Ashes +9", Id = 254009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Mausoleum Soldier Ashes +10", Id = 254010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Haligtree Soldier Ashes", Id = 255000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Haligtree Soldier Ashes +1", Id = 255001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Haligtree Soldier Ashes +2", Id = 255002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Haligtree Soldier Ashes +3", Id = 255003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Haligtree Soldier Ashes +4", Id = 255004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Haligtree Soldier Ashes +5", Id = 255005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Haligtree Soldier Ashes +6", Id = 255006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Haligtree Soldier Ashes +7", Id = 255007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Haligtree Soldier Ashes +8", Id = 255008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Haligtree Soldier Ashes +9", Id = 255009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Haligtree Soldier Ashes +10", Id = 255010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancient Dragon Knight Kristoff", Id = 256000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancient Dragon Knight Kristoff +1", Id = 256001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancient Dragon Knight Kristoff +2", Id = 256002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancient Dragon Knight Kristoff +3", Id = 256003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancient Dragon Knight Kristoff +4", Id = 256004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancient Dragon Knight Kristoff +5", Id = 256005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancient Dragon Knight Kristoff +6", Id = 256006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancient Dragon Knight Kristoff +7", Id = 256007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancient Dragon Knight Kristoff +8", Id = 256008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancient Dragon Knight Kristoff +9", Id = 256009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancient Dragon Knight Kristoff +10", Id = 256010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Redmane Knight Ogha", Id = 257000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Redmane Knight Ogha +1", Id = 257001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Redmane Knight Ogha +2", Id = 257002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Redmane Knight Ogha +3", Id = 257003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Redmane Knight Ogha +4", Id = 257004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Redmane Knight Ogha +5", Id = 257005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Redmane Knight Ogha +6", Id = 257006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Redmane Knight Ogha +7", Id = 257007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Redmane Knight Ogha +8", Id = 257008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Redmane Knight Ogha +9", Id = 257009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Redmane Knight Ogha +10", Id = 257010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lhutel the Headless", Id = 258000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lhutel the Headless +1", Id = 258001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lhutel the Headless +2", Id = 258002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lhutel the Headless +3", Id = 258003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lhutel the Headless +4", Id = 258004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lhutel the Headless +5", Id = 258005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lhutel the Headless +6", Id = 258006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lhutel the Headless +7", Id = 258007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lhutel the Headless +8", Id = 258008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lhutel the Headless +9", Id = 258009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Lhutel the Headless +10", Id = 258010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nepheli Loux Puppet", Id = 259000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nepheli Loux Puppet +1", Id = 259001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nepheli Loux Puppet +2", Id = 259002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nepheli Loux Puppet +3", Id = 259003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nepheli Loux Puppet +4", Id = 259004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nepheli Loux Puppet +5", Id = 259005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nepheli Loux Puppet +6", Id = 259006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nepheli Loux Puppet +7", Id = 259007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nepheli Loux Puppet +8", Id = 259008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nepheli Loux Puppet +9", Id = 259009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Nepheli Loux Puppet +10", Id = 259010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dung Eater Puppet", Id = 260000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dung Eater Puppet +1", Id = 260001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dung Eater Puppet +2", Id = 260002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dung Eater Puppet +3", Id = 260003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dung Eater Puppet +4", Id = 260004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dung Eater Puppet +5", Id = 260005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dung Eater Puppet +6", Id = 260006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dung Eater Puppet +7", Id = 260007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dung Eater Puppet +8", Id = 260008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dung Eater Puppet +9", Id = 260009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dung Eater Puppet +10", Id = 260010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Finger Maiden Therolina Puppet", Id = 261000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Finger Maiden Therolina Puppet +1", Id = 261001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Finger Maiden Therolina Puppet +2", Id = 261002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Finger Maiden Therolina Puppet +3", Id = 261003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Finger Maiden Therolina Puppet +4", Id = 261004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Finger Maiden Therolina Puppet +5", Id = 261005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Finger Maiden Therolina Puppet +6", Id = 261006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Finger Maiden Therolina Puppet +7", Id = 261007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Finger Maiden Therolina Puppet +8", Id = 261008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Finger Maiden Therolina Puppet +9", Id = 261009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Finger Maiden Therolina Puppet +10", Id = 261010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dolores the Sleeping Arrow Puppet", Id = 262000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dolores the Sleeping Arrow Puppet +1", Id = 262001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dolores the Sleeping Arrow Puppet +2", Id = 262002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dolores the Sleeping Arrow Puppet +3", Id = 262003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dolores the Sleeping Arrow Puppet +4", Id = 262004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dolores the Sleeping Arrow Puppet +5", Id = 262005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dolores the Sleeping Arrow Puppet +6", Id = 262006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dolores the Sleeping Arrow Puppet +7", Id = 262007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dolores the Sleeping Arrow Puppet +8", Id = 262008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dolores the Sleeping Arrow Puppet +9", Id = 262009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Dolores the Sleeping Arrow Puppet +10", Id = 262010 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Jarwight Puppet", Id = 263000 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Jarwight Puppet +1", Id = 263001 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Jarwight Puppet +2", Id = 263002 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Jarwight Puppet +3", Id = 263003 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Jarwight Puppet +4", Id = 263004 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Jarwight Puppet +5", Id = 263005 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Jarwight Puppet +6", Id = 263006 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Jarwight Puppet +7", Id = 263007 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Jarwight Puppet +8", Id = 263008 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Jarwight Puppet +9", Id = 263009 }, - new Item() { Category = Category.Goods,GroupName = "Ashes", Name = "Jarwight Puppet +10", Id = 263010 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Furlcalling Finger Remedy", Id = 182 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Rune Arc", Id = 190 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Fire Pot", Id = 300 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Redmane Fire Pot", Id = 301 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Giantsflame Fire Pot", Id = 302 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Lightning Pot", Id = 320 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Ancient Dragonbolt Pot", Id = 321 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Fetid Pot", Id = 330 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Swarm Pot", Id = 340 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Holy Water Pot", Id = 350 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Sacred Order Pot", Id = 351 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Freezing Pot", Id = 360 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Poison Pot", Id = 370 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Oil Pot", Id = 380 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Alluring Pot", Id = 390 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Beastlure Pot", Id = 391 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Roped Fire Pot", Id = 400 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Roped Lightning Pot", Id = 420 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Roped Fetid Pot", Id = 430 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Roped Poison Pot", Id = 440 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Roped Oil Pot", Id = 450 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Roped Magic Pot", Id = 460 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Roped Fly Pot", Id = 470 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Roped Freezing Pot", Id = 480 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Roped Volcano Pot", Id = 490 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Roped Holy Water Pot", Id = 510 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Volcano Pot", Id = 600 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Albinauric Pot", Id = 610 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Cursed-Blood Pot", Id = 630 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Sleep Pot", Id = 640 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Rancor Pot", Id = 650 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Magic Pot", Id = 660 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Academy Magic Pot", Id = 661 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Rot Pot", Id = 670 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Boiled Crab", Id = 820 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Boiled Prawn", Id = 830 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Neutralizing Boluses", Id = 900 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Stanching Boluses", Id = 910 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Thawfrost Boluses", Id = 920 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Stimulating Boluses", Id = 930 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Preserving Boluses", Id = 940 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Rejuvenating Boluses", Id = 950 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Clarifying Boluses", Id = 960 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Pickled Turtle Neck", Id = 1100 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Immunizing Cured Meat", Id = 1110 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Invigorating Cured Meat", Id = 1120 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Clarifying Cured Meat", Id = 1130 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Dappled Cured Meat", Id = 1140 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Spellproof Dried Liver", Id = 1150 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Fireproof Dried Liver", Id = 1160 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Lightningproof Dried Liver", Id = 1170 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Holyproof Dried Liver", Id = 1180 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Silver-Pickled Fowl Foot", Id = 1190 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Gold-Pickled Fowl Foot", Id = 1200 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Exalted Flesh", Id = 1210 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Deathsbane Jerky", Id = 1220 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Raw Meat Dumpling", Id = 1235 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Shabriri Grape", Id = 1240 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Starlight Shards", Id = 1290 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Immunizing White Cured Meat", Id = 1310 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Invigorating White Cured Meat", Id = 1320 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Clarifying White Cured Meat", Id = 1330 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Dappled White Cured Meat", Id = 1340 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Deathsbane White Jerky", Id = 1350 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Fire Grease", Id = 1400 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Lightning Grease", Id = 1410 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Magic Grease", Id = 1420 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Holy Grease", Id = 1430 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Blood Grease", Id = 1440 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Soporific Grease", Id = 1450 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Poison Grease", Id = 1460 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Freezing Grease", Id = 1470 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Dragonwound Grease", Id = 1480 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Rot Grease", Id = 1490 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Drawstring Fire Grease", Id = 1500 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Drawstring Lightning Grease", Id = 1510 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Drawstring Magic Grease", Id = 1520 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Drawstring Holy Grease", Id = 1530 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Drawstring Blood Grease", Id = 1540 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Drawstring Soporific Grease", Id = 1550 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Drawstring Poison Grease", Id = 1560 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Drawstring Freezing Grease", Id = 1570 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Drawstring Rot Grease", Id = 1590 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Shield Grease", Id = 1690 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Throwing Dagger", Id = 1700 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Bone Dart", Id = 1710 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Poisonbone Dart", Id = 1720 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Kukri", Id = 1730 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Crystal Dart", Id = 1740 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Fan Daggers", Id = 1750 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Ruin Fragment", Id = 1760 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Explosive Stone", Id = 1830 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Explosive Stone Clump", Id = 1831 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Poisoned Stone", Id = 1840 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Poisoned Stone Clump", Id = 1841 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Rainbow Stone", Id = 2020 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Glowstone", Id = 2030 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Grace Mimic", Id = 2050 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Soft Cotton", Id = 2100 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Soap", Id = 2120 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Celestial Dew", Id = 2130 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Miquella's Needle", Id = 2190 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [1]", Id = 2900 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [2]", Id = 2901 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [3]", Id = 2902 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [4]", Id = 2903 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [5]", Id = 2904 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [6]", Id = 2905 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [7]", Id = 2906 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [8]", Id = 2907 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [9]", Id = 2908 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [10]", Id = 2909 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [11]", Id = 2910 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [12]", Id = 2911 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [13]", Id = 2912 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Numen's Rune", Id = 2913 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Hero's Rune [1]", Id = 2914 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Hero's Rune [2]", Id = 2915 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Hero's Rune [3]", Id = 2916 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Hero's Rune [4]", Id = 2917 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Hero's Rune [5]", Id = 2918 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Lord's Rune", Id = 2919 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Grafted", Id = 2950 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Starscourge", Id = 2951 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Omen King", Id = 2952 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Blasphemous", Id = 2953 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Rot Goddess", Id = 2954 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Blood Lord", Id = 2955 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Black Blade", Id = 2956 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of Hoarah Loux", Id = 2957 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Dragonlord", Id = 2958 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Full Moon Queen", Id = 2959 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Lichdragon", Id = 2960 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Fire Giant", Id = 2961 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Regal Ancestor", Id = 2962 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Elden Remembrance", Id = 2963 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Naturalborn", Id = 2964 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Lands Between Rune", Id = 2990 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Cuckoo Glintstone", Id = 3030 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Glintstone Scrap", Id = 3050 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Large Glintstone Scrap", Id = 3051 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Gravity Stone Fan", Id = 3060 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Gravity Stone Chunk", Id = 3070 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Wraith Calling Bell", Id = 3080 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Holy Water Grease", Id = 3300 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Warming Stone", Id = 3310 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Frenzyflame Stone", Id = 3311 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Scriptstone", Id = 3320 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Bewitching Branch", Id = 3350 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Baldachin's Blessing", Id = 3360 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Radiant Baldachin's Blessing", Id = 3361 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Uplifting Aromatic", Id = 3500 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Spark Aromatic", Id = 3510 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Ironjar Aromatic", Id = 3520 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Bloodboil Aromatic", Id = 3550 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Poison Spraymist", Id = 3580 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Acid Spraymist", Id = 3610 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Cracked Pot", Id = 9500 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Ritual Pot", Id = 9501 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Perfume Bottle", Id = 9510 }, - new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Glass Shard", Id = 10000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Iron Helmet", Id = 40000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Scale Armor", Id = 40100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Iron Gauntlets", Id = 40200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Leather Trousers", Id = 40300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Kaiden Helm", Id = 50000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Kaiden Armor", Id = 50100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Kaiden Gauntlets", Id = 50200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Kaiden Trousers", Id = 50300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Drake Knight Helm", Id = 60000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Drake Knight Armor", Id = 60100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Drake Knight Gauntlets", Id = 60200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Drake Knight Greaves", Id = 60300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Drake Knight Helm (Altered)", Id = 61000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Drake Knight Armor (Altered)", Id = 61100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Scaled Helm", Id = 80000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Scaled Armor", Id = 80100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Scaled Gauntlets", Id = 80200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Scaled Greaves", Id = 80300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Scaled Armor (Altered)", Id = 81100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Perfumer Hood", Id = 90000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Perfumer Robe", Id = 90100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Perfumer Gloves", Id = 90200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Perfumer Sarong", Id = 90300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Perfumer Robe (Altered)", Id = 91100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Traveler's Hat", Id = 100000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Perfumer's Traveling Garb", Id = 100100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Traveler's Gloves", Id = 100200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Traveler's Slops", Id = 100300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Perfumer's Traveling Garb (Altered)", Id = 101100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Alberich's Pointed Hat", Id = 120000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Alberich's Robe", Id = 120100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Alberich's Bracers", Id = 120200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Alberich's Trousers", Id = 120300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Alberich's Pointed Hat (Altered)", Id = 121000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Alberich's Robe (Altered)", Id = 121100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Spellblade's Pointed Hat", Id = 130000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Spellblade's Traveling Attire", Id = 130100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Spellblade's Gloves", Id = 130200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Spellblade's Trousers", Id = 130300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Spellblade's Traveling Attire (Altered)", Id = 131100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Bull-Goat Helm", Id = 140000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Bull-Goat Armor", Id = 140100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Bull-Goat Gauntlets", Id = 140200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Bull-Goat Greaves", Id = 140300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Iron Kasa", Id = 150000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Ronin's Armor", Id = 150100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Ronin's Gauntlets", Id = 150200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Ronin's Greaves", Id = 150300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Ronin's Armor (Altered)", Id = 151100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Guilty Hood", Id = 160000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Cloth Garb", Id = 160100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Cloth Trousers", Id = 160300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Black Wolf Mask", Id = 170000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Blaidd's Armor", Id = 170100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Blaidd's Gauntlets", Id = 170200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Blaidd's Greaves", Id = 170300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Blaidd's Armor (Altered)", Id = 171100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Black Knife Hood", Id = 180000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Black Knife Armor", Id = 180100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Black Knife Gauntlets", Id = 180200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Black Knife Greaves", Id = 180300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Black Knife Armor (Altered)", Id = 181100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Exile Hood", Id = 190000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Exile Armor", Id = 190100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Exile Gauntlets", Id = 190200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Exile Greaves", Id = 190300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Banished Knight Helm", Id = 200000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Banished Knight Armor", Id = 200100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Banished Knight Gauntlets", Id = 200200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Banished Knight Greaves", Id = 200300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Banished Knight Helm (Altered)", Id = 201000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Banished Knight Armor (Altered)", Id = 201100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Briar Helm", Id = 210000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Briar Armor", Id = 210100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Briar Gauntlets", Id = 210200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Briar Greaves", Id = 210300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Briar Armor (Altered)", Id = 211100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Page Hood", Id = 220000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Page Garb", Id = 220100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Page Trousers", Id = 220300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Page Garb (Altered)", Id = 221100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Night's Cavalry Helm", Id = 230000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Night's Cavalry Armor", Id = 230100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Night's Cavalry Gauntlets", Id = 230200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Night's Cavalry Greaves", Id = 230300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Night's Cavalry Helm (Altered)", Id = 231000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Night's Cavalry Armor (Altered)", Id = 231100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Blue Silver Mail Hood", Id = 240000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Blue Silver Mail Armor", Id = 240100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Blue Silver Bracelets", Id = 240200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Blue Silver Mail Skirt", Id = 240300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Blue Silver Mail Armor (Altered)", Id = 241100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Nomadic Merchant's Chapeau", Id = 250000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Nomadic Merchant's Finery", Id = 250100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Nomadic Merchant's Trousers", Id = 250300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Nomadic Merchant's Finery (Altered)", Id = 251100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Malformed Dragon Helm", Id = 260000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Malformed Dragon Armor", Id = 260100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Malformed Dragon Gauntlets", Id = 260200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Malformed Dragon Greaves", Id = 260300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Tree Sentinel Helm", Id = 270000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Tree Sentinel Armor", Id = 270100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Tree Sentinel Gauntlets", Id = 270200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Tree Sentinel Greaves", Id = 270300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Tree Sentinel Armor (Altered)", Id = 271100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Royal Knight Helm", Id = 280000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Royal Knight Armor", Id = 280100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Royal Knight Gauntlets", Id = 280200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Royal Knight Greaves", Id = 280300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Royal Knight Armor (Altered)", Id = 281100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Nox Monk Hood", Id = 290000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Nox Monk Armor", Id = 290100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Nox Monk Bracelets", Id = 290200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Nox Monk Greaves", Id = 290300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Nox Monk Hood (Altered)", Id = 291000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Nox Monk Armor (Altered)", Id = 291100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Nox Swordstress Crown", Id = 292000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Nox Swordstress Armor", Id = 292100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Night Maiden Twin Crown", Id = 293000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Night Maiden Armor", Id = 293100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Nox Swordstress Crown (Altered)", Id = 294000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Nox Swordstress Armor (Altered)", Id = 294100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Great Horned Headband", Id = 300000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Fur Raiment", Id = 300100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Fur Leggings", Id = 300300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Shining Horned Headband", Id = 301000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Shaman Furs", Id = 301100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Shaman Leggings", Id = 301300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Duelist Helm", Id = 310000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Gravekeeper Cloak", Id = 310100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Duelist Greaves", Id = 310300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Gravekeeper Cloak (Altered)", Id = 311100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Sanguine Noble Hood", Id = 320000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Sanguine Noble Robe", Id = 320100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Sanguine Noble Waistcloth", Id = 320300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Guardian Mask", Id = 330000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Guardian Garb (Full Bloom)", Id = 330100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Guardian Bracers", Id = 330200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Guardian Greaves", Id = 330300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Guardian Garb", Id = 331100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Cleanrot Helm", Id = 340000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Cleanrot Armor", Id = 340100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Cleanrot Gauntlets", Id = 340200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Cleanrot Greaves", Id = 340300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Cleanrot Helm (Altered)", Id = 341000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Cleanrot Armor (Altered)", Id = 341100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Fire Monk Hood", Id = 350000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Fire Monk Armor", Id = 350100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Fire Monk Gauntlets", Id = 350200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Fire Monk Greaves", Id = 350300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Blackflame Monk Hood", Id = 351000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Blackflame Monk Armor", Id = 351100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Blackflame Monk Gauntlets", Id = 351200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Blackflame Monk Greaves", Id = 351300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Fire Prelate Helm", Id = 360000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Fire Prelate Armor", Id = 360100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Fire Prelate Gauntlets", Id = 360200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Fire Prelate Greaves", Id = 360300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Fire Prelate Armor (Altered)", Id = 361100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Aristocrat Headband", Id = 370000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Aristocrat Garb", Id = 370100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Aristocrat Boots", Id = 370300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Aristocrat Garb (Altered)", Id = 371100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Aristocrat Hat", Id = 380000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Aristocrat Coat", Id = 380100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Old Aristocrat Cowl", Id = 390000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Old Aristocrat Gown", Id = 390100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Old Aristocrat Shoes", Id = 390300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Vulgar Militia Helm", Id = 420000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Vulgar Militia Armor", Id = 420100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Vulgar Militia Gauntlets", Id = 420200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Vulgar Militia Greaves", Id = 420300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Sage Hood", Id = 430000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Sage Robe", Id = 430100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Sage Trousers", Id = 430300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Pumpkin Helm", Id = 440000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Elden Lord Crown", Id = 460000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Elden Lord Armor", Id = 460100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Elden Lord Bracers", Id = 460200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Elden Lord Greaves", Id = 460300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Elden Lord Armor (Altered)", Id = 461100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Radahn's Redmane Helm", Id = 470000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Radahn's Lion Armor", Id = 470100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Radahn's Gauntlets", Id = 470200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Radahn's Greaves", Id = 470300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Radahn's Lion Armor (Altered)", Id = 471100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Lord of Blood's Robe", Id = 480100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Lord of Blood's Robe (Altered)", Id = 481100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Queen's Crescent Crown", Id = 510000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Queen's Robe", Id = 510100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Queen's Bracelets", Id = 510200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Queen's Leggings", Id = 510300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Godskin Apostle Hood", Id = 520000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Godskin Apostle Robe", Id = 520100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Godskin Apostle Bracelets", Id = 520200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Godskin Apostle Trousers", Id = 520300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Godskin Noble Hood", Id = 530000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Godskin Noble Robe", Id = 530100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Godskin Noble Bracelets", Id = 530200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Godskin Noble Trousers", Id = 530300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Depraved Perfumer Headscarf", Id = 540000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Depraved Perfumer Robe", Id = 540100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Depraved Perfumer Gloves", Id = 540200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Depraved Perfumer Trousers", Id = 540300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Depraved Perfumer Robe (Altered)", Id = 541100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Crucible Axe Helm", Id = 570000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Crucible Axe Armor", Id = 570100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Crucible Gauntlets", Id = 570200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Crucible Greaves", Id = 570300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Crucible Tree Helm", Id = 571000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Crucible Tree Armor", Id = 571100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Crucible Axe Armor (Altered)", Id = 572100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Crucible Tree Armor (Altered)", Id = 573100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Lusat's Glintstone Crown", Id = 580000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Lusat's Robe", Id = 580100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Lusat's Manchettes", Id = 580200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Old Sorcerer's Legwraps", Id = 580300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Azur's Glintstone Crown", Id = 581000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Azur's Glintstone Robe", Id = 581100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Azur's Manchettes", Id = 581200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "All-Knowing Helm", Id = 590000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "All-Knowing Armor", Id = 590100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "All-Knowing Gauntlets", Id = 590200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "All-Knowing Greaves", Id = 590300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "All-Knowing Armor (Altered)", Id = 591100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Twinned Helm", Id = 600000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Twinned Armor", Id = 600100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Twinned Gauntlets", Id = 600200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Twinned Greaves", Id = 600300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Twinned Armor (Altered)", Id = 601100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Ragged Hat", Id = 610000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Ragged Armor", Id = 610100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Ragged Gloves", Id = 610200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Ragged Loincloth", Id = 610300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Ragged Hat (Altered)", Id = 611000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Ragged Armor (Altered)", Id = 611100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Prophet Blindfold", Id = 620000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Corhyn's Robe", Id = 620100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Prophet Trousers", Id = 620300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Prophet Robe (Altered)", Id = 621100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Prophet Robe", Id = 622100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Astrologer Hood", Id = 630000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Astrologer Robe", Id = 630100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Astrologer Gloves", Id = 630200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Astrologer Trousers", Id = 630300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Astrologer Robe (Altered)", Id = 631100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Lionel's Helm", Id = 640000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Lionel's Armor", Id = 640100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Lionel's Gauntlets", Id = 640200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Lionel's Greaves", Id = 640300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Lionel's Armor (Altered)", Id = 641100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Hoslow's Helm", Id = 650000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Hoslow's Armor", Id = 650100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Hoslow's Gauntlets", Id = 650200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Hoslow's Greaves", Id = 650300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Diallos's Mask", Id = 651000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Hoslow's Armor (Altered)", Id = 652100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Vagabond Knight Helm", Id = 660000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Vagabond Knight Armor", Id = 660100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Vagabond Knight Gauntlets", Id = 660200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Vagabond Knight Greaves", Id = 660300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Vagabond Knight Armor (Altered)", Id = 661100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Blue Cloth Cowl", Id = 670000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Blue Cloth Vest", Id = 670100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Warrior Gauntlets", Id = 670200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Warrior Greaves", Id = 670300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "White Mask", Id = 680000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "War Surgeon Gown", Id = 680100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "War Surgeon Gloves", Id = 680200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "War Surgeon Trousers", Id = 680300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "War Surgeon Gown (Altered)", Id = 681100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Royal Remains Helm", Id = 690000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Royal Remains Armor", Id = 690100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Royal Remains Gauntlets", Id = 690200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Royal Remains Greaves", Id = 690300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Brave's Cord Circlet", Id = 700000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Brave's Battlewear", Id = 700100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Brave's Bracer", Id = 700200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Brave's Legwraps", Id = 700300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Brave's Leather Helm", Id = 701000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Brave's Battlewear (Altered)", Id = 702000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Beast Champion Helm", Id = 720000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Beast Champion Armor", Id = 720100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Beast Champion Gauntlets", Id = 720200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Beast Champion Greaves", Id = 720300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Beast Champion Armor (Altered)", Id = 721100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Champion Headband", Id = 730000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Champion Pauldron", Id = 730100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Champion Bracers", Id = 730200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Champion Gaiters", Id = 730300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Crimson Hood", Id = 740000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Noble's Traveling Garb", Id = 740100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Noble's Gloves", Id = 740200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Noble's Trousers", Id = 740300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Navy Hood", Id = 741000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Maliketh's Helm", Id = 760000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Maliketh's Armor", Id = 760100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Maliketh's Gauntlets", Id = 760200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Maliketh's Greaves", Id = 760300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Maliketh's Armor (Altered)", Id = 761100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Malenia's Winged Helm", Id = 770000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Malenia's Armor", Id = 770100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Malenia's Gauntlet", Id = 770200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Malenia's Greaves", Id = 770300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Malenia's Armor (Altered)", Id = 771100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Veteran's Helm", Id = 780000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Veteran's Armor", Id = 780100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Veteran's Gauntlets", Id = 780200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Veteran's Greaves", Id = 780300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Veteran's Armor (Altered)", Id = 781100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Bloodhound Knight Helm", Id = 790000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Bloodhound Knight Armor", Id = 790100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Bloodhound Knight Gauntlets", Id = 790200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Bloodhound Knight Greaves", Id = 790300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Bloodhound Knight Armor (Altered)", Id = 791100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Festive Hood", Id = 800000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Festive Garb", Id = 800100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Festive Hood (Altered)", Id = 801000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Festive Garb (Altered)", Id = 801100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Blue Festive Hood", Id = 802000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Blue Festive Garb", Id = 802100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Commoner's Headband", Id = 810000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Commoner's Garb", Id = 810100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Commoner's Shoes", Id = 810300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Commoner's Headband (Altered)", Id = 811000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Commoner's Garb (Altered)", Id = 811100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Commoner's Simple Garb", Id = 812000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Commoner's Simple Garb (Altered)", Id = 812100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Envoy Crown", Id = 820000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Twinsage Glintstone Crown", Id = 830000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Raya Lucarian Robe", Id = 830100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Sorcerer Manchettes", Id = 830200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Sorcerer Leggings", Id = 830300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Olivinus Glintstone Crown", Id = 831000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Lazuli Glintstone Crown", Id = 832000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Karolos Glintstone Crown", Id = 833000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Witch's Glintstone Crown", Id = 834000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Marionette Soldier Helm", Id = 840000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Marionette Soldier Armor", Id = 840100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Marionette Soldier Birdhelm", Id = 850000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Raging Wolf Helm", Id = 860000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Raging Wolf Armor", Id = 860100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Raging Wolf Gauntlets", Id = 860200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Raging Wolf Greaves", Id = 860300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Raging Wolf Armor (Altered)", Id = 861100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Land of Reeds Helm", Id = 870000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Land of Reeds Armor", Id = 870100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Land of Reeds Gauntlets", Id = 870200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Land of Reeds Greaves", Id = 870300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Land of Reeds Armor (Altered)", Id = 871100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Okina Mask", Id = 872000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "White Reed Armor", Id = 872100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "White Reed Gauntlets", Id = 872200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "White Reed Greaves", Id = 872300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Confessor Hood", Id = 880000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Confessor Armor", Id = 880100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Confessor Gloves", Id = 880200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Confessor Boots", Id = 880300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Confessor Hood (Altered)", Id = 881000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Confessor Armor (Altered)", Id = 881100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Prisoner Iron Mask", Id = 890000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Prisoner Clothing", Id = 890100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Prisoner Trousers", Id = 890300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Blackguard's Iron Mask", Id = 891000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Traveling Maiden Hood", Id = 900000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Traveling Maiden Robe", Id = 900100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Traveling Maiden Gloves", Id = 900200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Traveling Maiden Boots", Id = 900300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Traveling Maiden Robe (Altered)", Id = 901100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Finger Maiden Fillet", Id = 902000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Finger Maiden Robe", Id = 902100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Finger Maiden Shoes", Id = 902300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Finger Maiden Robe (Altered)", Id = 903100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Preceptor's Big Hat", Id = 910000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Preceptor's Long Gown", Id = 910100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Preceptor's Gloves", Id = 910200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Preceptor's Trousers", Id = 910300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Mask of Confidence", Id = 911000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Preceptor's Long Gown (Altered)", Id = 911100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Grass Hair Ornament", Id = 920000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Skeletal Mask", Id = 930000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Raptor's Black Feathers", Id = 930100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Bandit Manchettes", Id = 930200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Bandit Boots", Id = 930300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Bandit Garb", Id = 931100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Eccentric's Hood", Id = 940000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Eccentric's Armor", Id = 940100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Eccentric's Manchettes", Id = 940200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Eccentric's Breeches", Id = 940300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Eccentric's Hood (Altered)", Id = 941000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Fingerprint Helm", Id = 950000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Fingerprint Armor", Id = 950100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Fingerprint Gauntlets", Id = 950200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Fingerprint Greaves", Id = 950300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Fingerprint Armor (Altered)", Id = 951100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Consort's Mask", Id = 960000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Consort's Robe", Id = 960100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Consort's Trousers", Id = 960300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Ruler's Mask", Id = 961000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Ruler's Robe", Id = 961100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Upper-Class Robe", Id = 962100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Marais Mask", Id = 963000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Marais Robe", Id = 963100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Bloodsoaked Manchettes", Id = 963200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Bloodsoaked Mask", Id = 964000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Official's Attire", Id = 964100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Omen Helm", Id = 970000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Omen Armor", Id = 970100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Omen Gauntlets", Id = 970200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Omen Greaves", Id = 970300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Carian Knight Helm", Id = 980000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Carian Knight Armor", Id = 980100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Carian Knight Gauntlets", Id = 980200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Carian Knight Greaves", Id = 980300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Carian Knight Armor (Altered)", Id = 981100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Hierodas Glintstone Crown", Id = 990000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Errant Sorcerer Robe", Id = 990100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Errant Sorcerer Manchettes", Id = 990200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Errant Sorcerer Boots", Id = 990300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Errant Sorcerer Robe (Altered)", Id = 991100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Haima Glintstone Crown", Id = 1000000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Battlemage Robe", Id = 1000100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Battlemage Manchettes", Id = 1000200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Battlemage Legwraps", Id = 1000300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Snow Witch Hat", Id = 1010000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Snow Witch Robe", Id = 1010100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Snow Witch Skirt", Id = 1010300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Snow Witch Robe (Altered)", Id = 1011100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Traveler's Clothes", Id = 1020100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Traveler's Manchettes", Id = 1020200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Traveler's Boots", Id = 1020300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Juvenile Scholar Cap", Id = 1030000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Juvenile Scholar Robe", Id = 1030100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Radiant Gold Mask", Id = 1040000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Goldmask's Rags", Id = 1040100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Gold Bracelets", Id = 1040200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Gold Waistwrap", Id = 1040300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Fell Omen Cloak", Id = 1050100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Albinauric Mask", Id = 1060000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Dirty Chainmail", Id = 1060100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Zamor Mask", Id = 1070000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Zamor Armor", Id = 1070100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Zamor Bracelets", Id = 1070200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Zamor Legwraps", Id = 1070300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Imp Head (Cat)", Id = 1080000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Imp Head (Fanged)", Id = 1081000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Imp Head (Long-Tongued)", Id = 1082000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Imp Head (Corpse)", Id = 1083000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Imp Head (Wolf)", Id = 1084000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Imp Head (Elder)", Id = 1085000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Silver Tear Mask", Id = 1090000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Chain Coif", Id = 1100000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Chain Armor", Id = 1100100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Gauntlets", Id = 1100200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Chain Leggings", Id = 1100300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Greathelm", Id = 1101000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Eye Surcoat", Id = 1101100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Tree Surcoat", Id = 1102100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Octopus Head", Id = 1110000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Jar", Id = 1120000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Mushroom Head", Id = 1130000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Mushroom Body", Id = 1130100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Mushroom Arms", Id = 1130200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Mushroom Legs", Id = 1130300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Nox Mirrorhelm", Id = 1300000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Iji's Mirrorhelm", Id = 1301000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Black Hood", Id = 1400000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Leather Armor", Id = 1400100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Leather Gloves", Id = 1400200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Leather Boots", Id = 1400300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Bandit Mask", Id = 1401000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Knight Helm", Id = 1500000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Knight Armor", Id = 1500100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Knight Gauntlets", Id = 1500200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Knight Greaves", Id = 1500300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Greathood", Id = 1600000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Godrick Soldier Helm", Id = 1700000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Tree-and-Beast Surcoat", Id = 1700100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Godrick Soldier Gauntlets", Id = 1700200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Godrick Soldier Greaves", Id = 1700300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Raya Lucarian Helm", Id = 1710000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Cuckoo Surcoat", Id = 1710100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Raya Lucarian Gauntlets", Id = 1710200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Raya Lucarian Greaves", Id = 1710300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Leyndell Soldier Helm", Id = 1720000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Erdtree Surcoat", Id = 1720100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Leyndell Soldier Gauntlets", Id = 1720200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Leyndell Soldier Greaves", Id = 1720300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Radahn Soldier Helm", Id = 1730000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Redmane Surcoat", Id = 1730100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Radahn Soldier Gauntlets", Id = 1730200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Radahn Soldier Greaves", Id = 1730300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Mausoleum Surcoat", Id = 1740100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Mausoleum Gauntlets", Id = 1740200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Mausoleum Greaves", Id = 1740300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Haligtree Helm", Id = 1750000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Haligtree Crest Surcoat", Id = 1750100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Haligtree Gauntlets", Id = 1750200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Haligtree Greaves", Id = 1750300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Gelmir Knight Helm", Id = 1760000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Gelmir Knight Armor", Id = 1760100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Gelmir Knight Gauntlets", Id = 1760200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Gelmir Knight Greaves", Id = 1760300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Gelmir Knight Armor (Altered)", Id = 1761100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Godrick Knight Helm", Id = 1770000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Godrick Knight Armor", Id = 1770100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Godrick Knight Gauntlets", Id = 1770200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Godrick Knight Greaves", Id = 1770300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Godrick Knight Armor (Altered)", Id = 1771100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Cuckoo Knight Helm", Id = 1780000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Cuckoo Knight Armor", Id = 1780100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Cuckoo Knight Gauntlets", Id = 1780200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Cuckoo Knight Greaves", Id = 1780300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Cuckoo Knight Armor (Altered)", Id = 1781100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Leyndell Knight Helm", Id = 1790000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Leyndell Knight Armor", Id = 1790100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Leyndell Knight Gauntlets", Id = 1790200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Leyndell Knight Greaves", Id = 1790300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Leyndell Knight Armor (Altered)", Id = 1791100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Redmane Knight Helm", Id = 1800000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Redmane Knight Armor", Id = 1800100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Redmane Knight Gauntlets", Id = 1800200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Redmane Knight Greaves", Id = 1800300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Redmane Knight Armor (Altered)", Id = 1801100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Mausoleum Knight Armor", Id = 1810100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Mausoleum Knight Gauntlets", Id = 1810200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Mausoleum Knight Greaves", Id = 1810300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Mausoleum Knight Armor (Altered)", Id = 1811100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Haligtree Knight Helm", Id = 1820000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Haligtree Knight Armor", Id = 1820100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Haligtree Knight Gauntlets", Id = 1820200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Haligtree Knight Greaves", Id = 1820300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Haligtree Knight Armor (Altered)", Id = 1821100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Foot Soldier Cap", Id = 1830000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Chain-Draped Tabard", Id = 1830100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Foot Soldier Gauntlets", Id = 1830200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Foot Soldier Greaves", Id = 1830300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Foot Soldier Helmet", Id = 1840000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Foot Soldier Tabard", Id = 1840100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Gilded Foot Soldier Cap", Id = 1850000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Leather-Draped Tabard", Id = 1850100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Foot Soldier Helm", Id = 1860000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Scarlet Tabard", Id = 1860100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Bloodsoaked Tabard", Id = 1870100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Sacred Crown Helm", Id = 1880000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Ivory-Draped Tabard", Id = 1880100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Omensmirk Mask", Id = 1890000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Omenkiller Robe", Id = 1890100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Omenkiller Long Gloves", Id = 1890200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Omenkiller Boots", Id = 1890300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Ash-of-War Scarab", Id = 1900000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Incantation Scarab", Id = 1901000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Glintstone Scarab", Id = 1902000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Crimson Tear Scarab", Id = 1910000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Cerulean Tear Scarab", Id = 1920000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Deathbed Dress", Id = 1930100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Fia's Hood", Id = 1940000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Fia's Robe", Id = 1940100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Fia's Robe (Altered)", Id = 1941100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Highwayman Hood", Id = 1980000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Highwayman Cloth Armor", Id = 1980100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Highwayman Gauntlets", Id = 1980200 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "High Page Hood", Id = 1990000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "High Page Clothes", Id = 1990100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "High Page Clothes (Altered)", Id = 1991100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Rotten Duelist Helm", Id = 2000000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Rotten Gravekeeper Cloak", Id = 2000100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Rotten Duelist Greaves", Id = 2000300 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Rotten Gravekeeper Cloak (Altered)", Id = 2001100 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Mushroom Crown", Id = 2010000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Black Dumpling", Id = 2020000 }, + new() { Category = Category.Protector,GroupName = "Armor", Name = "Lazuli Robe", Id = 2030000 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Lion's Claw", Id = 10000 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Impaling Thrust", Id = 10100 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Piercing Fang", Id = 10200 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Spinning Slash", Id = 10300 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Charge Forth", Id = 10500 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Stamp (Upward Cut)", Id = 10600 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Stamp (Sweep)", Id = 10700 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Blood Tax", Id = 10800 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Repeating Thrust", Id = 10900 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Wild Strikes", Id = 11000 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Spinning Strikes", Id = 11100 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Double Slash", Id = 11200 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Prelate's Charge", Id = 11300 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Unsheathe", Id = 11400 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Square Off", Id = 11500 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Giant Hunt", Id = 11600 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Loretta's Slash", Id = 11800 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Poison Moth Flight", Id = 11900 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Spinning Weapon", Id = 12000 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Storm Assault", Id = 12200 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Stormcaller", Id = 12300 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Sword Dance", Id = 12400 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Glintblade Phalanx", Id = 20000 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Sacred Blade", Id = 20100 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Ice Spear", Id = 20200 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Glintstone Pebble", Id = 20300 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Bloody Slash", Id = 20400 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Lifesteal Fist", Id = 20500 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Eruption", Id = 20700 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Prayerful Strike", Id = 20800 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Gravitas", Id = 20900 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Storm Blade", Id = 21000 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Earthshaker", Id = 21200 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Golden Land", Id = 21300 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Flaming Strike", Id = 21400 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Thunderbolt", Id = 21600 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Lightning Slash", Id = 21700 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Carian Grandeur", Id = 21800 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Carian Greatsword", Id = 21900 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Vacuum Slice", Id = 22000 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Black Flame Tornado", Id = 22100 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Sacred Ring of Light", Id = 22200 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Blood Blade", Id = 22400 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Phantom Slash", Id = 22500 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Spectral Lance", Id = 22600 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Chilling Mist", Id = 22700 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Poisonous Mist", Id = 22800 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Shield Bash", Id = 30000 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Barricade Shield", Id = 30100 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Parry", Id = 30200 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Carian Retaliation", Id = 30500 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Storm Wall", Id = 30600 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Golden Parry", Id = 30700 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Shield Crash", Id = 30800 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: No Skill", Id = 30900 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Thops's Barrier", Id = 31000 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Through and Through", Id = 40000 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Barrage", Id = 40100 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Mighty Shot", Id = 40200 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Enchanted Shot", Id = 40400 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Sky Shot", Id = 40500 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Rain of Arrows", Id = 40600 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Hoarfrost Stomp", Id = 50100 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Storm Stomp", Id = 50200 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Kick", Id = 50300 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Lightning Ram", Id = 50400 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Flame of the Redmanes", Id = 50500 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Ground Slam", Id = 50600 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Golden Slam", Id = 50700 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Waves of Darkness", Id = 50800 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Hoarah Loux's Earthshaker", Id = 50900 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Determination", Id = 60000 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Royal Knight's Resolve", Id = 60100 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Assassin's Gambit", Id = 60200 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Golden Vow", Id = 60300 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Sacred Order", Id = 60400 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Shared Order", Id = 60500 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Seppuku", Id = 60600 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Cragblade", Id = 60700 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Barbaric Roar", Id = 65000 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: War Cry", Id = 65100 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Beast's Roar", Id = 65200 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Troll's Roar", Id = 65300 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Braggart's Roar", Id = 65400 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Endure", Id = 70000 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Vow of the Indomitable", Id = 70100 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Holy Ground", Id = 70200 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Quickstep", Id = 80000 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Bloodhound's Step", Id = 80100 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: Raptor of the Mists", Id = 80200 }, + new() { Category = Category.Gem,GroupName = "Gems", Name = "Ash of War: White Shadow's Lure", Id = 85000 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Glintstone Pebble", Id = 4000 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Great Glintstone Shard", Id = 4001 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Swift Glintstone Shard", Id = 4010 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Glintstone Cometshard", Id = 4020 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Comet", Id = 4021 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Shard Spiral", Id = 4030 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Glintstone Stars", Id = 4040 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Star Shower", Id = 4050 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Crystal Barrage", Id = 4060 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Glintstone Arc", Id = 4070 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Cannon of Haima", Id = 4080 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Crystal Burst", Id = 4090 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Shatter Earth", Id = 4100 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Rock Blaster", Id = 4110 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Gavel of Haima", Id = 4120 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Terra Magica", Id = 4130 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Starlight", Id = 4140 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Comet Azur", Id = 4200 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Founding Rain of Stars", Id = 4210 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Stars of Ruin", Id = 4220 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Glintblade Phalanx", Id = 4300 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Carian Phalanx", Id = 4301 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Greatblade Phalanx", Id = 4302 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Rennala's Full Moon", Id = 4360 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Ranni's Dark Moon", Id = 4361 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Magic Downpour", Id = 4370 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Loretta's Greatbow", Id = 4380 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Loretta's Mastery", Id = 4381 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Magic Glintblade", Id = 4390 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Glintstone Icecrag", Id = 4400 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Zamor Ice Storm", Id = 4410 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Freezing Mist", Id = 4420 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Carian Greatsword", Id = 4430 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Adula's Moonblade", Id = 4431 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Carian Slicer", Id = 4440 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Carian Piercer", Id = 4450 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Scholar's Armament", Id = 4460 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Scholar's Shield", Id = 4470 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Lucidity", Id = 4480 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Frozen Armament", Id = 4490 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Shattering Crystal", Id = 4500 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Crystal Release", Id = 4510 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Crystal Torrent", Id = 4520 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Ambush Shard", Id = 4600 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Night Shard", Id = 4610 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Night Comet", Id = 4620 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Thops's Barrier", Id = 4630 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Carian Retaliation", Id = 4640 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Eternal Darkness", Id = 4650 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Unseen Blade", Id = 4660 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Unseen Form", Id = 4670 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Meteorite", Id = 4700 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Meteorite of Astel", Id = 4701 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Rock Sling", Id = 4710 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Gravity Well", Id = 4720 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Collapsing Stars", Id = 4721 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Magma Shot", Id = 4800 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Gelmir's Fury", Id = 4810 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Roiling Magma", Id = 4820 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Rykard's Rancor", Id = 4830 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Briars of Sin", Id = 4900 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Briars of Punishment", Id = 4910 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Rancorcall", Id = 5000 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Ancient Death Rancor", Id = 5001 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Explosive Ghostflame", Id = 5010 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Fia's Mist", Id = 5020 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Tibia's Summons", Id = 5030 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Death Lightning", Id = 5040 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Oracle Bubbles", Id = 5100 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Sorcery] Great Oracular Bubble", Id = 5110 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Catch Flame", Id = 6000 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] O, Flame!", Id = 6001 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Flame Sling", Id = 6010 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Flame, Fall Upon Them", Id = 6020 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Whirl, O Flame!", Id = 6030 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Flame, Cleanse Me", Id = 6040 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Flame, Grant Me Strength", Id = 6050 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Flame, Protect Me", Id = 6060 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Giantsflame Take Thee", Id = 6100 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Flame of the Fell God", Id = 6110 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Burn, O Flame!", Id = 6120 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Black Flame", Id = 6210 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Surge, O Flame!", Id = 6220 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Scouring Black Flame", Id = 6230 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Black Flame Ritual", Id = 6240 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Black Flame Blade", Id = 6250 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Black Flame's Protection", Id = 6260 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Noble Presence", Id = 6270 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Bloodflame Talons", Id = 6300 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Bloodboon", Id = 6310 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Bloodflame Blade", Id = 6320 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Barrier of Gold", Id = 6330 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Protection of the Erdtree", Id = 6340 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Rejection", Id = 6400 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Wrath of Gold", Id = 6410 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Urgent Heal", Id = 6420 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Heal", Id = 6421 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Great Heal", Id = 6422 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Lord's Heal", Id = 6423 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Erdtree Heal", Id = 6424 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Blessing's Boon", Id = 6430 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Blessing of the Erdtree", Id = 6431 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Cure Poison", Id = 6440 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Lord's Aid", Id = 6441 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Flame Fortification", Id = 6450 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Magic Fortification", Id = 6460 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Lightning Fortification", Id = 6470 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Divine Fortification", Id = 6480 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Lord's Divine Fortification", Id = 6490 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Night Maiden's Mist", Id = 6500 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Assassin's Approach", Id = 6510 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Shadow Bait", Id = 6520 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Darkness", Id = 6530 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Golden Vow", Id = 6600 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Discus of Light", Id = 6700 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Triple Rings of Light", Id = 6701 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Radagon's Rings of Light", Id = 6710 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Elden Stars", Id = 6720 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Law of Regression", Id = 6730 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Immutable Shield", Id = 6740 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Litany of Proper Death", Id = 6750 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Law of Causality", Id = 6760 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Order's Blade", Id = 6770 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Order Healing", Id = 6780 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Bestial Sling", Id = 6800 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Stone of Gurranq", Id = 6810 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Beast Claw", Id = 6820 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Gurranq's Beast Claw", Id = 6830 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Bestial Vitality", Id = 6840 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Bestial Constitution", Id = 6850 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Lightning Spear", Id = 6900 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Ancient Dragons' Lightning Strike", Id = 6910 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Lightning Strike", Id = 6920 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Frozen Lightning Spear", Id = 6921 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Honed Bolt", Id = 6930 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Ancient Dragons' Lightning Spear", Id = 6940 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Fortissax's Lightning Spear", Id = 6941 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Lansseax's Glaive", Id = 6950 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Electrify Armament", Id = 6960 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Vyke's Dragonbolt", Id = 6970 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Dragonbolt Blessing", Id = 6971 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Dragonfire", Id = 7000 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Agheel's Flame", Id = 7001 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Magma Breath", Id = 7010 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Theodorix's Magma", Id = 7011 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Dragonice", Id = 7020 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Borealis's Mist", Id = 7021 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Rotten Breath", Id = 7030 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Ekzykes's Decay", Id = 7031 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Glintstone Breath", Id = 7040 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Smarag's Glintstone Breath", Id = 7041 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Placidusax's Ruin", Id = 7050 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Dragonclaw", Id = 7060 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Dragonmaw", Id = 7080 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Greyoll's Roar", Id = 7090 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Pest Threads", Id = 7200 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Swarm of Flies", Id = 7210 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Poison Mist", Id = 7220 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Poison Armament", Id = 7230 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Scarlet Aeonia", Id = 7240 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Inescapable Frenzy", Id = 7300 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] The Flame of Frenzy", Id = 7310 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Unendurable Frenzy", Id = 7311 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Frenzied Burst", Id = 7320 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Howl of Shabriri", Id = 7330 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Aspects of the Crucible: Tail", Id = 7500 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Aspects of the Crucible: Horns", Id = 7510 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Aspects of the Crucible: Breath", Id = 7520 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Black Blade", Id = 7530 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Fire's Deadly Sin", Id = 7900 }, + new() { Category = Category.Goods,GroupName = "Magic", Name = "[Incantation] Golden Lightning Fortification", Id = 7903 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Crimson Amber Medallion", Id = 1000 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Crimson Amber Medallion +1", Id = 1001 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Crimson Amber Medallion +2", Id = 1002 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Cerulean Amber Medallion", Id = 1010 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Cerulean Amber Medallion +1", Id = 1011 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Cerulean Amber Medallion +2", Id = 1012 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Viridian Amber Medallion", Id = 1020 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Viridian Amber Medallion +1", Id = 1021 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Viridian Amber Medallion +2", Id = 1022 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Arsenal Charm", Id = 1030 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Arsenal Charm +1", Id = 1031 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Great-Jar's Arsenal", Id = 1032 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Erdtree's Favor", Id = 1040 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Erdtree's Favor +1", Id = 1041 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Erdtree's Favor +2", Id = 1042 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Radagon's Scarseal", Id = 1050 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Radagon's Soreseal", Id = 1051 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Starscourge Heirloom", Id = 1060 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Prosthesis-Wearer Heirloom", Id = 1070 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Stargazer Heirloom", Id = 1080 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Two Fingers Heirloom", Id = 1090 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Silver Scarab", Id = 1100 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Gold Scarab", Id = 1110 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Moon of Nokstella", Id = 1140 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Green Turtle Talisman", Id = 1150 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Stalwart Horn Charm", Id = 1160 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Stalwart Horn Charm +1", Id = 1161 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Immunizing Horn Charm", Id = 1170 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Immunizing Horn Charm +1", Id = 1171 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Clarifying Horn Charm", Id = 1180 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Clarifying Horn Charm +1", Id = 1181 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Prince of Death's Pustule", Id = 1190 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Prince of Death's Cyst", Id = 1191 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Mottled Necklace", Id = 1200 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Mottled Necklace +1", Id = 1201 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Bull-Goat's Talisman", Id = 1210 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Marika's Scarseal", Id = 1220 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Marika's Soreseal", Id = 1221 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Warrior Jar Shard", Id = 1230 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Shard of Alexander", Id = 1231 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Millicent's Prosthesis", Id = 1250 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Magic Scorpion Charm", Id = 2000 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Lightning Scorpion Charm", Id = 2010 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Fire Scorpion Charm", Id = 2020 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Sacred Scorpion Charm", Id = 2030 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Red-Feathered Branchsword", Id = 2040 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Ritual Sword Talisman", Id = 2050 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Spear Talisman", Id = 2060 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Hammer Talisman", Id = 2070 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Winged Sword Insignia", Id = 2080 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Rotten Winged Sword Insignia", Id = 2081 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Dagger Talisman", Id = 2090 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Arrow's Reach Talisman", Id = 2100 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Blue Dancer Charm", Id = 2110 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Twinblade Talisman", Id = 2120 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Axe Talisman", Id = 2130 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Lance Talisman", Id = 2140 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Arrow's Sting Talisman", Id = 2150 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Lord of Blood's Exultation", Id = 2160 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Kindred of Rot's Exultation", Id = 2170 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Claw Talisman", Id = 2180 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Roar Medallion", Id = 2190 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Curved Sword Talisman", Id = 2200 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Companion Jar", Id = 2210 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Perfumer's Talisman", Id = 2220 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Graven-School Talisman", Id = 3000 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Graven-Mass Talisman", Id = 3001 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Faithful's Canvas Talisman", Id = 3040 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Flock's Canvas Talisman", Id = 3050 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Old Lord's Talisman", Id = 3060 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Radagon Icon", Id = 3070 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Primal Glintstone Blade", Id = 3080 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Godfrey Icon", Id = 3090 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Dragoncrest Shield Talisman", Id = 4000 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Dragoncrest Shield Talisman +1", Id = 4001 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Dragoncrest Shield Talisman +2", Id = 4002 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Dragoncrest Greatshield Talisman", Id = 4003 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Spelldrake Talisman", Id = 4010 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Spelldrake Talisman +1", Id = 4011 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Spelldrake Talisman +2", Id = 4012 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Flamedrake Talisman", Id = 4020 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Flamedrake Talisman +1", Id = 4021 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Flamedrake Talisman +2", Id = 4022 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Boltdrake Talisman", Id = 4030 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Boltdrake Talisman +1", Id = 4031 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Boltdrake Talisman +2", Id = 4032 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Haligdrake Talisman", Id = 4040 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Haligdrake Talisman +1", Id = 4041 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Haligdrake Talisman +2", Id = 4042 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Pearldrake Talisman", Id = 4050 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Pearldrake Talisman +1", Id = 4051 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Pearldrake Talisman +2", Id = 4052 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Crucible Scale Talisman", Id = 4060 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Crucible Feather Talisman", Id = 4070 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Blue-Feathered Branchsword", Id = 4080 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Ritual Shield Talisman", Id = 4090 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Greatshield Talisman", Id = 4100 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Crucible Knot Talisman", Id = 4110 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Crimson Seed Talisman", Id = 5000 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Cerulean Seed Talisman", Id = 5010 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Blessed Dew Talisman", Id = 5020 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Taker's Cameo", Id = 5030 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Godskin Swaddling Cloth", Id = 5040 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Assassin's Crimson Dagger", Id = 5050 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Assassin's Cerulean Dagger", Id = 5060 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Crepus's Vial", Id = 6000 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Concealing Veil", Id = 6010 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Carian Filigreed Crest", Id = 6020 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Longtail Cat Talisman", Id = 6040 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Shabriri's Woe", Id = 6050 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Daedicar's Woe", Id = 6060 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Sacrificial Twig", Id = 6070 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Furled Finger's Trick-Mirror", Id = 6080 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Host's Trick-Mirror", Id = 6090 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Entwining Umbilical Cord", Id = 6100 }, + new() { Category = Category.Accessory,GroupName = "Talismans", Name = "Ancestral Spirit's Horn", Id = 6110 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Black Knife Tiche", Id = 200000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Black Knife Tiche +1", Id = 200001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Black Knife Tiche +2", Id = 200002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Black Knife Tiche +3", Id = 200003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Black Knife Tiche +4", Id = 200004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Black Knife Tiche +5", Id = 200005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Black Knife Tiche +6", Id = 200006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Black Knife Tiche +7", Id = 200007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Black Knife Tiche +8", Id = 200008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Black Knife Tiche +9", Id = 200009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Black Knife Tiche +10", Id = 200010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Oleg", Id = 201000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Oleg +1", Id = 201001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Oleg +2", Id = 201002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Oleg +3", Id = 201003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Oleg +4", Id = 201004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Oleg +5", Id = 201005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Oleg +6", Id = 201006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Oleg +7", Id = 201007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Oleg +8", Id = 201008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Oleg +9", Id = 201009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Oleg +10", Id = 201010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Engvall", Id = 202000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Engvall +1", Id = 202001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Engvall +2", Id = 202002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Engvall +3", Id = 202003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Engvall +4", Id = 202004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Engvall +5", Id = 202005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Engvall +6", Id = 202006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Engvall +7", Id = 202007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Engvall +8", Id = 202008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Engvall +9", Id = 202009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Banished Knight Engvall +10", Id = 202010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Fanged Imp Ashes", Id = 203000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Fanged Imp Ashes +1", Id = 203001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Fanged Imp Ashes +2", Id = 203002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Fanged Imp Ashes +3", Id = 203003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Fanged Imp Ashes +4", Id = 203004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Fanged Imp Ashes +5", Id = 203005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Fanged Imp Ashes +6", Id = 203006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Fanged Imp Ashes +7", Id = 203007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Fanged Imp Ashes +8", Id = 203008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Fanged Imp Ashes +9", Id = 203009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Fanged Imp Ashes +10", Id = 203010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Latenna the Albinauric", Id = 204000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Latenna the Albinauric +1", Id = 204001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Latenna the Albinauric +2", Id = 204002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Latenna the Albinauric +3", Id = 204003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Latenna the Albinauric +4", Id = 204004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Latenna the Albinauric +5", Id = 204005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Latenna the Albinauric +6", Id = 204006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Latenna the Albinauric +7", Id = 204007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Latenna the Albinauric +8", Id = 204008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Latenna the Albinauric +9", Id = 204009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Latenna the Albinauric +10", Id = 204010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Nomad Ashes", Id = 205000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Nomad Ashes +1", Id = 205001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Nomad Ashes +2", Id = 205002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Nomad Ashes +3", Id = 205003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Nomad Ashes +4", Id = 205004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Nomad Ashes +5", Id = 205005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Nomad Ashes +6", Id = 205006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Nomad Ashes +7", Id = 205007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Nomad Ashes +8", Id = 205008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Nomad Ashes +9", Id = 205009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Nomad Ashes +10", Id = 205010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Nightmaiden & Swordstress Puppets", Id = 206000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Nightmaiden & Swordstress Puppets +1", Id = 206001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Nightmaiden & Swordstress Puppets +2", Id = 206002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Nightmaiden & Swordstress Puppets +3", Id = 206003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Nightmaiden & Swordstress Puppets +4", Id = 206004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Nightmaiden & Swordstress Puppets +5", Id = 206005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Nightmaiden & Swordstress Puppets +6", Id = 206006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Nightmaiden & Swordstress Puppets +7", Id = 206007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Nightmaiden & Swordstress Puppets +8", Id = 206008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Nightmaiden & Swordstress Puppets +9", Id = 206009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Nightmaiden & Swordstress Puppets +10", Id = 206010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Mimic Tear Ashes", Id = 207000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Mimic Tear Ashes +1", Id = 207001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Mimic Tear Ashes +2", Id = 207002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Mimic Tear Ashes +3", Id = 207003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Mimic Tear Ashes +4", Id = 207004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Mimic Tear Ashes +5", Id = 207005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Mimic Tear Ashes +6", Id = 207006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Mimic Tear Ashes +7", Id = 207007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Mimic Tear Ashes +8", Id = 207008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Mimic Tear Ashes +9", Id = 207009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Mimic Tear Ashes +10", Id = 207010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Crystalian Ashes", Id = 208000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Crystalian Ashes +1", Id = 208001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Crystalian Ashes +2", Id = 208002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Crystalian Ashes +3", Id = 208003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Crystalian Ashes +4", Id = 208004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Crystalian Ashes +5", Id = 208005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Crystalian Ashes +6", Id = 208006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Crystalian Ashes +7", Id = 208007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Crystalian Ashes +8", Id = 208008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Crystalian Ashes +9", Id = 208009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Crystalian Ashes +10", Id = 208010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancestral Follower Ashes", Id = 209000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancestral Follower Ashes +1", Id = 209001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancestral Follower Ashes +2", Id = 209002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancestral Follower Ashes +3", Id = 209003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancestral Follower Ashes +4", Id = 209004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancestral Follower Ashes +5", Id = 209005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancestral Follower Ashes +6", Id = 209006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancestral Follower Ashes +7", Id = 209007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancestral Follower Ashes +8", Id = 209008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancestral Follower Ashes +9", Id = 209009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancestral Follower Ashes +10", Id = 209010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Winged Misbegotten Ashes", Id = 210000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Winged Misbegotten Ashes + 1", Id = 210001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Winged Misbegotten Ashes + 2", Id = 210002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Winged Misbegotten Ashes + 3", Id = 210003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Winged Misbegotten Ashes + 4", Id = 210004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Winged Misbegotten Ashes + 5", Id = 210005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Winged Misbegotten Ashes + 6", Id = 210006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Winged Misbegotten Ashes + 7", Id = 210007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Winged Misbegotten Ashes + 8", Id = 210008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Winged Misbegotten Ashes + 9", Id = 210009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Winged Misbegotten Ashes + 10", Id = 210010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Albinauric Ashes", Id = 211000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Albinauric Ashes +1", Id = 211001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Albinauric Ashes +2", Id = 211002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Albinauric Ashes +3", Id = 211003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Albinauric Ashes +4", Id = 211004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Albinauric Ashes +5", Id = 211005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Albinauric Ashes +6", Id = 211006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Albinauric Ashes +7", Id = 211007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Albinauric Ashes +8", Id = 211008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Albinauric Ashes +9", Id = 211009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Albinauric Ashes +10", Id = 211010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Militiaman Ashes", Id = 212000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Militiaman Ashes +1", Id = 212001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Militiaman Ashes +2", Id = 212002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Militiaman Ashes +3", Id = 212003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Militiaman Ashes +4", Id = 212004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Militiaman Ashes +5", Id = 212005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Militiaman Ashes +6", Id = 212006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Militiaman Ashes +7", Id = 212007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Militiaman Ashes +8", Id = 212008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Militiaman Ashes +9", Id = 212009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Militiaman Ashes +10", Id = 212010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Bandit Ashes", Id = 213000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Bandit Ashes +1", Id = 213001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Bandit Ashes +2", Id = 213002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Bandit Ashes +3", Id = 213003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Bandit Ashes +4", Id = 213004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Bandit Ashes +5", Id = 213005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Bandit Ashes +6", Id = 213006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Bandit Ashes +7", Id = 213007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Bandit Ashes +8", Id = 213008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Bandit Ashes +9", Id = 213009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Skeletal Bandit Ashes +10", Id = 213010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Oracle Envoy Ashes", Id = 214000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Oracle Envoy Ashes +1", Id = 214001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Oracle Envoy Ashes +2", Id = 214002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Oracle Envoy Ashes +3", Id = 214003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Oracle Envoy Ashes +4", Id = 214004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Oracle Envoy Ashes +5", Id = 214005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Oracle Envoy Ashes +6", Id = 214006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Oracle Envoy Ashes +7", Id = 214007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Oracle Envoy Ashes +8", Id = 214008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Oracle Envoy Ashes +9", Id = 214009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Oracle Envoy Ashes +10", Id = 214010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Putrid Corpse Ashes", Id = 215000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Putrid Corpse Ashes +1", Id = 215001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Putrid Corpse Ashes +2", Id = 215002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Putrid Corpse Ashes +3", Id = 215003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Putrid Corpse Ashes +4", Id = 215004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Putrid Corpse Ashes +5", Id = 215005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Putrid Corpse Ashes +6", Id = 215006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Putrid Corpse Ashes +7", Id = 215007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Putrid Corpse Ashes +8", Id = 215008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Putrid Corpse Ashes +9", Id = 215009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Putrid Corpse Ashes +10", Id = 215010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Depraved Perfumer Carmaan", Id = 216000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Depraved Perfumer Carmaan +1", Id = 216001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Depraved Perfumer Carmaan +2", Id = 216002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Depraved Perfumer Carmaan +3", Id = 216003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Depraved Perfumer Carmaan +4", Id = 216004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Depraved Perfumer Carmaan +5", Id = 216005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Depraved Perfumer Carmaan +6", Id = 216006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Depraved Perfumer Carmaan +7", Id = 216007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Depraved Perfumer Carmaan +8", Id = 216008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Depraved Perfumer Carmaan +9", Id = 216009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Depraved Perfumer Carmaan +10", Id = 216010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Perfumer Tricia", Id = 217000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Perfumer Tricia +1", Id = 217001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Perfumer Tricia +2", Id = 217002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Perfumer Tricia +3", Id = 217003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Perfumer Tricia +4", Id = 217004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Perfumer Tricia +5", Id = 217005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Perfumer Tricia +6", Id = 217006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Perfumer Tricia +7", Id = 217007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Perfumer Tricia +8", Id = 217008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Perfumer Tricia +9", Id = 217009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Perfumer Tricia +10", Id = 217010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Glintstone Sorcerer Ashes", Id = 218000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Glintstone Sorcerer Ashes +1", Id = 218001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Glintstone Sorcerer Ashes +2", Id = 218002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Glintstone Sorcerer Ashes +3", Id = 218003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Glintstone Sorcerer Ashes +4", Id = 218004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Glintstone Sorcerer Ashes +5", Id = 218005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Glintstone Sorcerer Ashes +6", Id = 218006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Glintstone Sorcerer Ashes +7", Id = 218007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Glintstone Sorcerer Ashes +8", Id = 218008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Glintstone Sorcerer Ashes +9", Id = 218009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Glintstone Sorcerer Ashes +10", Id = 218010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Twinsage Sorcerer Ashes", Id = 219000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Twinsage Sorcerer Ashes +1", Id = 219001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Twinsage Sorcerer Ashes +2", Id = 219002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Twinsage Sorcerer Ashes +3", Id = 219003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Twinsage Sorcerer Ashes +4", Id = 219004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Twinsage Sorcerer Ashes +5", Id = 219005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Twinsage Sorcerer Ashes +6", Id = 219006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Twinsage Sorcerer Ashes +7", Id = 219007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Twinsage Sorcerer Ashes +8", Id = 219008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Twinsage Sorcerer Ashes +9", Id = 219009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Twinsage Sorcerer Ashes +10", Id = 219010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Page Ashes", Id = 220000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Page Ashes +1", Id = 220001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Page Ashes +2", Id = 220002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Page Ashes +3", Id = 220003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Page Ashes +4", Id = 220004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Page Ashes +5", Id = 220005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Page Ashes +6", Id = 220006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Page Ashes +7", Id = 220007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Page Ashes +8", Id = 220008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Page Ashes +9", Id = 220009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Page Ashes +10", Id = 220010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Battlemage Hugues", Id = 221000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Battlemage Hugues +1", Id = 221001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Battlemage Hugues +2", Id = 221002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Battlemage Hugues +3", Id = 221003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Battlemage Hugues +4", Id = 221004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Battlemage Hugues +5", Id = 221005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Battlemage Hugues +6", Id = 221006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Battlemage Hugues +7", Id = 221007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Battlemage Hugues +8", Id = 221008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Battlemage Hugues +9", Id = 221009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Battlemage Hugues +10", Id = 221010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Clayman Ashes", Id = 222000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Clayman Ashes +1", Id = 222001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Clayman Ashes +2", Id = 222002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Clayman Ashes +3", Id = 222003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Clayman Ashes +4", Id = 222004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Clayman Ashes +5", Id = 222005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Clayman Ashes +6", Id = 222006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Clayman Ashes +7", Id = 222007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Clayman Ashes +8", Id = 222008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Clayman Ashes +9", Id = 222009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Clayman Ashes +10", Id = 222010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Cleanrot Knight Finlay", Id = 223000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Cleanrot Knight Finlay +1", Id = 223001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Cleanrot Knight Finlay +2", Id = 223002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Cleanrot Knight Finlay +3", Id = 223003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Cleanrot Knight Finlay +4", Id = 223004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Cleanrot Knight Finlay +5", Id = 223005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Cleanrot Knight Finlay +6", Id = 223006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Cleanrot Knight Finlay +7", Id = 223007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Cleanrot Knight Finlay +8", Id = 223008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Cleanrot Knight Finlay +9", Id = 223009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Cleanrot Knight Finlay +10", Id = 223010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Kindred of Rot Ashes", Id = 224000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Kindred of Rot Ashes +1", Id = 224001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Kindred of Rot Ashes +2", Id = 224002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Kindred of Rot Ashes +3", Id = 224003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Kindred of Rot Ashes +4", Id = 224004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Kindred of Rot Ashes +5", Id = 224005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Kindred of Rot Ashes +6", Id = 224006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Kindred of Rot Ashes +7", Id = 224007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Kindred of Rot Ashes +8", Id = 224008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Kindred of Rot Ashes +9", Id = 224009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Kindred of Rot Ashes +10", Id = 224010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Marionette Soldier Ashes", Id = 225000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Marionette Soldier Ashes +1", Id = 225001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Marionette Soldier Ashes +2", Id = 225002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Marionette Soldier Ashes +3", Id = 225003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Marionette Soldier Ashes +4", Id = 225004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Marionette Soldier Ashes +5", Id = 225005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Marionette Soldier Ashes +6", Id = 225006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Marionette Soldier Ashes +7", Id = 225007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Marionette Soldier Ashes +8", Id = 225008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Marionette Soldier Ashes +9", Id = 225009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Marionette Soldier Ashes +10", Id = 225010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Avionette Soldier Ashes", Id = 226000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Avionette Soldier Ashes +1", Id = 226001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Avionette Soldier Ashes +2", Id = 226002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Avionette Soldier Ashes +3", Id = 226003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Avionette Soldier Ashes +4", Id = 226004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Avionette Soldier Ashes +5", Id = 226005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Avionette Soldier Ashes +6", Id = 226006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Avionette Soldier Ashes +7", Id = 226007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Avionette Soldier Ashes +8", Id = 226008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Avionette Soldier Ashes +9", Id = 226009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Avionette Soldier Ashes +10", Id = 226010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Fire Monk Ashes", Id = 227000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Fire Monk Ashes +1", Id = 227001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Fire Monk Ashes +2", Id = 227002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Fire Monk Ashes +3", Id = 227003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Fire Monk Ashes +4", Id = 227004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Fire Monk Ashes +5", Id = 227005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Fire Monk Ashes +6", Id = 227006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Fire Monk Ashes +7", Id = 227007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Fire Monk Ashes +8", Id = 227008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Fire Monk Ashes +9", Id = 227009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Fire Monk Ashes +10", Id = 227010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Blackflame Monk Amon", Id = 228000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Blackflame Monk Amon +1", Id = 228001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Blackflame Monk Amon +2", Id = 228002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Blackflame Monk Amon +3", Id = 228003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Blackflame Monk Amon +4", Id = 228004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Blackflame Monk Amon +5", Id = 228005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Blackflame Monk Amon +6", Id = 228006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Blackflame Monk Amon +7", Id = 228007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Blackflame Monk Amon +8", Id = 228008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Blackflame Monk Amon +9", Id = 228009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Blackflame Monk Amon +10", Id = 228010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Man-Serpent Ashes", Id = 229000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Man-Serpent Ashes +1", Id = 229001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Man-Serpent Ashes +2", Id = 229002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Man-Serpent Ashes +3", Id = 229003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Man-Serpent Ashes +4", Id = 229004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Man-Serpent Ashes +5", Id = 229005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Man-Serpent Ashes +6", Id = 229006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Man-Serpent Ashes +7", Id = 229007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Man-Serpent Ashes +8", Id = 229008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Man-Serpent Ashes +9", Id = 229009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Man-Serpent Ashes +10", Id = 229010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Azula Beastman Ashes", Id = 230000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Azula Beastman Ashes +1", Id = 230001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Azula Beastman Ashes +2", Id = 230002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Azula Beastman Ashes +3", Id = 230003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Azula Beastman Ashes +4", Id = 230004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Azula Beastman Ashes +5", Id = 230005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Azula Beastman Ashes +6", Id = 230006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Azula Beastman Ashes +7", Id = 230007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Azula Beastman Ashes +8", Id = 230008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Azula Beastman Ashes +9", Id = 230009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Azula Beastman Ashes +10", Id = 230010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Kaiden Sellsword Ashes", Id = 231000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Kaiden Sellsword Ashes +1", Id = 231001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Kaiden Sellsword Ashes +2", Id = 231002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Kaiden Sellsword Ashes +3", Id = 231003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Kaiden Sellsword Ashes +4", Id = 231004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Kaiden Sellsword Ashes +5", Id = 231005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Kaiden Sellsword Ashes +6", Id = 231006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Kaiden Sellsword Ashes +7", Id = 231007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Kaiden Sellsword Ashes +8", Id = 231008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Kaiden Sellsword Ashes +9", Id = 231009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Kaiden Sellsword Ashes +10", Id = 231010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Lone Wolf Ashes", Id = 232000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Lone Wolf Ashes +1", Id = 232001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Lone Wolf Ashes +2", Id = 232002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Lone Wolf Ashes +3", Id = 232003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Lone Wolf Ashes +4", Id = 232004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Lone Wolf Ashes +5", Id = 232005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Lone Wolf Ashes +6", Id = 232006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Lone Wolf Ashes +7", Id = 232007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Lone Wolf Ashes +8", Id = 232008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Lone Wolf Ashes +9", Id = 232009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Lone Wolf Ashes +10", Id = 232010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Giant Rat Ashes", Id = 233000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Giant Rat Ashes +1", Id = 233001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Giant Rat Ashes +2", Id = 233002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Giant Rat Ashes +3", Id = 233003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Giant Rat Ashes +4", Id = 233004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Giant Rat Ashes +5", Id = 233005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Giant Rat Ashes +6", Id = 233006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Giant Rat Ashes +7", Id = 233007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Giant Rat Ashes +8", Id = 233008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Giant Rat Ashes +9", Id = 233009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Giant Rat Ashes +10", Id = 233010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Demi-Human Ashes", Id = 234000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Demi-Human Ashes +1", Id = 234001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Demi-Human Ashes +2", Id = 234002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Demi-Human Ashes +3", Id = 234003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Demi-Human Ashes +4", Id = 234004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Demi-Human Ashes +5", Id = 234005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Demi-Human Ashes +6", Id = 234006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Demi-Human Ashes +7", Id = 234007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Demi-Human Ashes +8", Id = 234008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Demi-Human Ashes +9", Id = 234009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Demi-Human Ashes +10", Id = 234010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Rotten Stray Ashes", Id = 235000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Rotten Stray Ashes +1", Id = 235001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Rotten Stray Ashes +2", Id = 235002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Rotten Stray Ashes +3", Id = 235003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Rotten Stray Ashes +4", Id = 235004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Rotten Stray Ashes +5", Id = 235005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Rotten Stray Ashes +6", Id = 235006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Rotten Stray Ashes +7", Id = 235007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Rotten Stray Ashes +8", Id = 235008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Rotten Stray Ashes +9", Id = 235009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Rotten Stray Ashes +10", Id = 235010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Spirit Jellyfish Ashes", Id = 236000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Spirit Jellyfish Ashes +1", Id = 236001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Spirit Jellyfish Ashes +2", Id = 236002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Spirit Jellyfish Ashes +3", Id = 236003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Spirit Jellyfish Ashes +4", Id = 236004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Spirit Jellyfish Ashes +5", Id = 236005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Spirit Jellyfish Ashes +6", Id = 236006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Spirit Jellyfish Ashes +7", Id = 236007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Spirit Jellyfish Ashes +8", Id = 236008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Spirit Jellyfish Ashes +9", Id = 236009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Spirit Jellyfish Ashes +10", Id = 236010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Warhawk Ashes", Id = 237000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Warhawk Ashes +1", Id = 237001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Warhawk Ashes +2", Id = 237002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Warhawk Ashes +3", Id = 237003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Warhawk Ashes +4", Id = 237004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Warhawk Ashes +5", Id = 237005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Warhawk Ashes +6", Id = 237006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Warhawk Ashes +7", Id = 237007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Warhawk Ashes +8", Id = 237008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Warhawk Ashes +9", Id = 237009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Warhawk Ashes +10", Id = 237010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Stormhawk Deenh", Id = 238000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Stormhawk Deenh +1", Id = 238001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Stormhawk Deenh +2", Id = 238002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Stormhawk Deenh +3", Id = 238003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Stormhawk Deenh +4", Id = 238004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Stormhawk Deenh +5", Id = 238005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Stormhawk Deenh +6", Id = 238006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Stormhawk Deenh +7", Id = 238007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Stormhawk Deenh +8", Id = 238008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Stormhawk Deenh +9", Id = 238009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Stormhawk Deenh +10", Id = 238010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Bloodhound Knight Floh", Id = 239000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Bloodhound Knight Floh +1", Id = 239001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Bloodhound Knight Floh +2", Id = 239002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Bloodhound Knight Floh +3", Id = 239003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Bloodhound Knight Floh +4", Id = 239004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Bloodhound Knight Floh +5", Id = 239005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Bloodhound Knight Floh +6", Id = 239006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Bloodhound Knight Floh +7", Id = 239007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Bloodhound Knight Floh +8", Id = 239008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Bloodhound Knight Floh +9", Id = 239009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Bloodhound Knight Floh +10", Id = 239010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Wandering Noble Ashes", Id = 240000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Wandering Noble Ashes +1", Id = 240001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Wandering Noble Ashes +2", Id = 240002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Wandering Noble Ashes +3", Id = 240003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Wandering Noble Ashes +4", Id = 240004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Wandering Noble Ashes +5", Id = 240005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Wandering Noble Ashes +6", Id = 240006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Wandering Noble Ashes +7", Id = 240007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Wandering Noble Ashes +8", Id = 240008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Wandering Noble Ashes +9", Id = 240009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Wandering Noble Ashes +10", Id = 240010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Noble Sorcerer Ashes", Id = 241000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Noble Sorcerer Ashes +1", Id = 241001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Noble Sorcerer Ashes +2", Id = 241002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Noble Sorcerer Ashes +3", Id = 241003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Noble Sorcerer Ashes +4", Id = 241004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Noble Sorcerer Ashes +5", Id = 241005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Noble Sorcerer Ashes +6", Id = 241006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Noble Sorcerer Ashes +7", Id = 241007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Noble Sorcerer Ashes +8", Id = 241008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Noble Sorcerer Ashes +9", Id = 241009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Noble Sorcerer Ashes +10", Id = 241010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Vulgar Militia Ashes", Id = 242000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Vulgar Militia Ashes +1", Id = 242001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Vulgar Militia Ashes +2", Id = 242002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Vulgar Militia Ashes +3", Id = 242003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Vulgar Militia Ashes +4", Id = 242004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Vulgar Militia Ashes +5", Id = 242005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Vulgar Militia Ashes +6", Id = 242006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Vulgar Militia Ashes +7", Id = 242007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Vulgar Militia Ashes +8", Id = 242008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Vulgar Militia Ashes +9", Id = 242009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Vulgar Militia Ashes +10", Id = 242010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Mad Pumpkin Head Ashes", Id = 243000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Mad Pumpkin Head Ashes +1", Id = 243001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Mad Pumpkin Head Ashes +2", Id = 243002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Mad Pumpkin Head Ashes +3", Id = 243003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Mad Pumpkin Head Ashes +4", Id = 243004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Mad Pumpkin Head Ashes +5", Id = 243005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Mad Pumpkin Head Ashes +6", Id = 243006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Mad Pumpkin Head Ashes +7", Id = 243007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Mad Pumpkin Head Ashes +8", Id = 243008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Mad Pumpkin Head Ashes +9", Id = 243009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Mad Pumpkin Head Ashes +10", Id = 243010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Land Squirt Ashes", Id = 244000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Land Squirt Ashes +1", Id = 244001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Land Squirt Ashes +2", Id = 244002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Land Squirt Ashes +3", Id = 244003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Land Squirt Ashes +4", Id = 244004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Land Squirt Ashes +5", Id = 244005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Land Squirt Ashes +6", Id = 244006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Land Squirt Ashes +7", Id = 244007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Land Squirt Ashes +8", Id = 244008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Land Squirt Ashes +9", Id = 244009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Land Squirt Ashes +10", Id = 244010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Miranda Sprout Ashes", Id = 245000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Miranda Sprout Ashes +1 ", Id = 245001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Miranda Sprout Ashes +2", Id = 245002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Miranda Sprout Ashes +3", Id = 245003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Miranda Sprout Ashes +4", Id = 245004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Miranda Sprout Ashes +5", Id = 245005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Miranda Sprout Ashes +6", Id = 245006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Miranda Sprout Ashes +7", Id = 245007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Miranda Sprout Ashes +8", Id = 245008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Miranda Sprout Ashes +9", Id = 245009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Miranda Sprout Ashes +10", Id = 245010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Soldjars of Fortune Ashes", Id = 246000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Soldjars of Fortune Ashes +1", Id = 246001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Soldjars of Fortune Ashes +2", Id = 246002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Soldjars of Fortune Ashes +3", Id = 246003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Soldjars of Fortune Ashes +4", Id = 246004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Soldjars of Fortune Ashes +5", Id = 246005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Soldjars of Fortune Ashes +6", Id = 246006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Soldjars of Fortune Ashes +7", Id = 246007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Soldjars of Fortune Ashes +8", Id = 246008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Soldjars of Fortune Ashes +9", Id = 246009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Soldjars of Fortune Ashes +10", Id = 246010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Omenkiller Rollo", Id = 247000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Omenkiller Rollo +1", Id = 247001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Omenkiller Rollo +2", Id = 247002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Omenkiller Rollo +3", Id = 247003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Omenkiller Rollo +4", Id = 247004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Omenkiller Rollo +5", Id = 247005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Omenkiller Rollo +6", Id = 247006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Omenkiller Rollo +7", Id = 247007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Omenkiller Rollo +8", Id = 247008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Omenkiller Rollo +9", Id = 247009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Omenkiller Rollo +10", Id = 247010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Greatshield Soldier Ashes", Id = 248000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Greatshield Soldier Ashes +1", Id = 248001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Greatshield Soldier Ashes +2", Id = 248002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Greatshield Soldier Ashes +3", Id = 248003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Greatshield Soldier Ashes +4", Id = 248004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Greatshield Soldier Ashes +5", Id = 248005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Greatshield Soldier Ashes +6", Id = 248006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Greatshield Soldier Ashes +7", Id = 248007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Greatshield Soldier Ashes +8", Id = 248008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Greatshield Soldier Ashes +9", Id = 248009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Greatshield Soldier Ashes +10", Id = 248010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Archer Ashes", Id = 249000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Archer Ashes +1", Id = 249001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Archer Ashes +2", Id = 249002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Archer Ashes +3", Id = 249003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Archer Ashes +4", Id = 249004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Archer Ashes +5", Id = 249005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Archer Ashes +6", Id = 249006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Archer Ashes +7", Id = 249007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Archer Ashes +8", Id = 249008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Archer Ashes +9", Id = 249009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Archer Ashes +10", Id = 249010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Godrick Soldier Ashes", Id = 250000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Godrick Soldier Ashes +1", Id = 250001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Godrick Soldier Ashes +2", Id = 250002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Godrick Soldier Ashes +3", Id = 250003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Godrick Soldier Ashes +4", Id = 250004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Godrick Soldier Ashes +5", Id = 250005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Godrick Soldier Ashes +6", Id = 250006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Godrick Soldier Ashes +7", Id = 250007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Godrick Soldier Ashes +8", Id = 250008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Godrick Soldier Ashes +9", Id = 250009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Godrick Soldier Ashes +10", Id = 250010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Raya Lucaria Soldier Ashes", Id = 251000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Raya Lucaria Soldier Ashes +1", Id = 251001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Raya Lucaria Soldier Ashes +2", Id = 251002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Raya Lucaria Soldier Ashes +3", Id = 251003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Raya Lucaria Soldier Ashes +4", Id = 251004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Raya Lucaria Soldier Ashes +5", Id = 251005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Raya Lucaria Soldier Ashes +6", Id = 251006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Raya Lucaria Soldier Ashes +7", Id = 251007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Raya Lucaria Soldier Ashes +8", Id = 251008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Raya Lucaria Soldier Ashes +9", Id = 251009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Raya Lucaria Soldier Ashes +10", Id = 251010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Leyndell Soldier Ashes", Id = 252000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Leyndell Soldier Ashes +1", Id = 252001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Leyndell Soldier Ashes +2", Id = 252002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Leyndell Soldier Ashes +3", Id = 252003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Leyndell Soldier Ashes +4", Id = 252004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Leyndell Soldier Ashes +5", Id = 252005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Leyndell Soldier Ashes +6", Id = 252006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Leyndell Soldier Ashes +7", Id = 252007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Leyndell Soldier Ashes +8", Id = 252008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Leyndell Soldier Ashes +9", Id = 252009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Leyndell Soldier Ashes +10", Id = 252010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Radahn Soldier Ashes", Id = 253000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Radahn Soldier Ashes +1", Id = 253001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Radahn Soldier Ashes +2", Id = 253002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Radahn Soldier Ashes +3", Id = 253003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Radahn Soldier Ashes +4", Id = 253004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Radahn Soldier Ashes +5", Id = 253005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Radahn Soldier Ashes +6", Id = 253006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Radahn Soldier Ashes +7", Id = 253007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Radahn Soldier Ashes +8", Id = 253008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Radahn Soldier Ashes +9", Id = 253009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Radahn Soldier Ashes +10", Id = 253010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Mausoleum Soldier Ashes", Id = 254000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Mausoleum Soldier Ashes +1", Id = 254001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Mausoleum Soldier Ashes +2", Id = 254002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Mausoleum Soldier Ashes +3", Id = 254003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Mausoleum Soldier Ashes +4", Id = 254004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Mausoleum Soldier Ashes +5", Id = 254005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Mausoleum Soldier Ashes +6", Id = 254006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Mausoleum Soldier Ashes +7", Id = 254007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Mausoleum Soldier Ashes +8", Id = 254008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Mausoleum Soldier Ashes +9", Id = 254009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Mausoleum Soldier Ashes +10", Id = 254010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Haligtree Soldier Ashes", Id = 255000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Haligtree Soldier Ashes +1", Id = 255001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Haligtree Soldier Ashes +2", Id = 255002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Haligtree Soldier Ashes +3", Id = 255003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Haligtree Soldier Ashes +4", Id = 255004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Haligtree Soldier Ashes +5", Id = 255005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Haligtree Soldier Ashes +6", Id = 255006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Haligtree Soldier Ashes +7", Id = 255007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Haligtree Soldier Ashes +8", Id = 255008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Haligtree Soldier Ashes +9", Id = 255009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Haligtree Soldier Ashes +10", Id = 255010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancient Dragon Knight Kristoff", Id = 256000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancient Dragon Knight Kristoff +1", Id = 256001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancient Dragon Knight Kristoff +2", Id = 256002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancient Dragon Knight Kristoff +3", Id = 256003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancient Dragon Knight Kristoff +4", Id = 256004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancient Dragon Knight Kristoff +5", Id = 256005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancient Dragon Knight Kristoff +6", Id = 256006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancient Dragon Knight Kristoff +7", Id = 256007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancient Dragon Knight Kristoff +8", Id = 256008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancient Dragon Knight Kristoff +9", Id = 256009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Ancient Dragon Knight Kristoff +10", Id = 256010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Redmane Knight Ogha", Id = 257000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Redmane Knight Ogha +1", Id = 257001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Redmane Knight Ogha +2", Id = 257002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Redmane Knight Ogha +3", Id = 257003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Redmane Knight Ogha +4", Id = 257004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Redmane Knight Ogha +5", Id = 257005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Redmane Knight Ogha +6", Id = 257006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Redmane Knight Ogha +7", Id = 257007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Redmane Knight Ogha +8", Id = 257008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Redmane Knight Ogha +9", Id = 257009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Redmane Knight Ogha +10", Id = 257010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Lhutel the Headless", Id = 258000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Lhutel the Headless +1", Id = 258001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Lhutel the Headless +2", Id = 258002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Lhutel the Headless +3", Id = 258003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Lhutel the Headless +4", Id = 258004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Lhutel the Headless +5", Id = 258005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Lhutel the Headless +6", Id = 258006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Lhutel the Headless +7", Id = 258007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Lhutel the Headless +8", Id = 258008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Lhutel the Headless +9", Id = 258009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Lhutel the Headless +10", Id = 258010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Nepheli Loux Puppet", Id = 259000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Nepheli Loux Puppet +1", Id = 259001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Nepheli Loux Puppet +2", Id = 259002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Nepheli Loux Puppet +3", Id = 259003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Nepheli Loux Puppet +4", Id = 259004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Nepheli Loux Puppet +5", Id = 259005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Nepheli Loux Puppet +6", Id = 259006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Nepheli Loux Puppet +7", Id = 259007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Nepheli Loux Puppet +8", Id = 259008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Nepheli Loux Puppet +9", Id = 259009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Nepheli Loux Puppet +10", Id = 259010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Dung Eater Puppet", Id = 260000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Dung Eater Puppet +1", Id = 260001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Dung Eater Puppet +2", Id = 260002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Dung Eater Puppet +3", Id = 260003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Dung Eater Puppet +4", Id = 260004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Dung Eater Puppet +5", Id = 260005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Dung Eater Puppet +6", Id = 260006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Dung Eater Puppet +7", Id = 260007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Dung Eater Puppet +8", Id = 260008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Dung Eater Puppet +9", Id = 260009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Dung Eater Puppet +10", Id = 260010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Finger Maiden Therolina Puppet", Id = 261000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Finger Maiden Therolina Puppet +1", Id = 261001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Finger Maiden Therolina Puppet +2", Id = 261002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Finger Maiden Therolina Puppet +3", Id = 261003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Finger Maiden Therolina Puppet +4", Id = 261004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Finger Maiden Therolina Puppet +5", Id = 261005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Finger Maiden Therolina Puppet +6", Id = 261006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Finger Maiden Therolina Puppet +7", Id = 261007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Finger Maiden Therolina Puppet +8", Id = 261008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Finger Maiden Therolina Puppet +9", Id = 261009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Finger Maiden Therolina Puppet +10", Id = 261010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Dolores the Sleeping Arrow Puppet", Id = 262000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Dolores the Sleeping Arrow Puppet +1", Id = 262001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Dolores the Sleeping Arrow Puppet +2", Id = 262002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Dolores the Sleeping Arrow Puppet +3", Id = 262003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Dolores the Sleeping Arrow Puppet +4", Id = 262004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Dolores the Sleeping Arrow Puppet +5", Id = 262005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Dolores the Sleeping Arrow Puppet +6", Id = 262006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Dolores the Sleeping Arrow Puppet +7", Id = 262007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Dolores the Sleeping Arrow Puppet +8", Id = 262008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Dolores the Sleeping Arrow Puppet +9", Id = 262009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Dolores the Sleeping Arrow Puppet +10", Id = 262010 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Jarwight Puppet", Id = 263000 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Jarwight Puppet +1", Id = 263001 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Jarwight Puppet +2", Id = 263002 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Jarwight Puppet +3", Id = 263003 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Jarwight Puppet +4", Id = 263004 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Jarwight Puppet +5", Id = 263005 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Jarwight Puppet +6", Id = 263006 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Jarwight Puppet +7", Id = 263007 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Jarwight Puppet +8", Id = 263008 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Jarwight Puppet +9", Id = 263009 }, + new() { Category = Category.Goods,GroupName = "Ashes", Name = "Jarwight Puppet +10", Id = 263010 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Furlcalling Finger Remedy", Id = 182 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Rune Arc", Id = 190 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Fire Pot", Id = 300 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Redmane Fire Pot", Id = 301 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Giantsflame Fire Pot", Id = 302 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Lightning Pot", Id = 320 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Ancient Dragonbolt Pot", Id = 321 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Fetid Pot", Id = 330 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Swarm Pot", Id = 340 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Holy Water Pot", Id = 350 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Sacred Order Pot", Id = 351 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Freezing Pot", Id = 360 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Poison Pot", Id = 370 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Oil Pot", Id = 380 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Alluring Pot", Id = 390 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Beastlure Pot", Id = 391 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Roped Fire Pot", Id = 400 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Roped Lightning Pot", Id = 420 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Roped Fetid Pot", Id = 430 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Roped Poison Pot", Id = 440 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Roped Oil Pot", Id = 450 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Roped Magic Pot", Id = 460 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Roped Fly Pot", Id = 470 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Roped Freezing Pot", Id = 480 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Roped Volcano Pot", Id = 490 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Roped Holy Water Pot", Id = 510 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Volcano Pot", Id = 600 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Albinauric Pot", Id = 610 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Cursed-Blood Pot", Id = 630 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Sleep Pot", Id = 640 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Rancor Pot", Id = 650 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Magic Pot", Id = 660 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Academy Magic Pot", Id = 661 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Rot Pot", Id = 670 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Boiled Crab", Id = 820 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Boiled Prawn", Id = 830 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Neutralizing Boluses", Id = 900 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Stanching Boluses", Id = 910 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Thawfrost Boluses", Id = 920 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Stimulating Boluses", Id = 930 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Preserving Boluses", Id = 940 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Rejuvenating Boluses", Id = 950 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Clarifying Boluses", Id = 960 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Pickled Turtle Neck", Id = 1100 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Immunizing Cured Meat", Id = 1110 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Invigorating Cured Meat", Id = 1120 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Clarifying Cured Meat", Id = 1130 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Dappled Cured Meat", Id = 1140 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Spellproof Dried Liver", Id = 1150 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Fireproof Dried Liver", Id = 1160 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Lightningproof Dried Liver", Id = 1170 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Holyproof Dried Liver", Id = 1180 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Silver-Pickled Fowl Foot", Id = 1190 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Gold-Pickled Fowl Foot", Id = 1200 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Exalted Flesh", Id = 1210 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Deathsbane Jerky", Id = 1220 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Raw Meat Dumpling", Id = 1235 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Shabriri Grape", Id = 1240 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Starlight Shards", Id = 1290 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Immunizing White Cured Meat", Id = 1310 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Invigorating White Cured Meat", Id = 1320 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Clarifying White Cured Meat", Id = 1330 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Dappled White Cured Meat", Id = 1340 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Deathsbane White Jerky", Id = 1350 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Fire Grease", Id = 1400 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Lightning Grease", Id = 1410 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Magic Grease", Id = 1420 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Holy Grease", Id = 1430 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Blood Grease", Id = 1440 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Soporific Grease", Id = 1450 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Poison Grease", Id = 1460 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Freezing Grease", Id = 1470 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Dragonwound Grease", Id = 1480 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Rot Grease", Id = 1490 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Drawstring Fire Grease", Id = 1500 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Drawstring Lightning Grease", Id = 1510 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Drawstring Magic Grease", Id = 1520 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Drawstring Holy Grease", Id = 1530 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Drawstring Blood Grease", Id = 1540 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Drawstring Soporific Grease", Id = 1550 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Drawstring Poison Grease", Id = 1560 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Drawstring Freezing Grease", Id = 1570 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Drawstring Rot Grease", Id = 1590 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Shield Grease", Id = 1690 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Throwing Dagger", Id = 1700 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Bone Dart", Id = 1710 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Poisonbone Dart", Id = 1720 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Kukri", Id = 1730 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Crystal Dart", Id = 1740 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Fan Daggers", Id = 1750 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Ruin Fragment", Id = 1760 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Explosive Stone", Id = 1830 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Explosive Stone Clump", Id = 1831 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Poisoned Stone", Id = 1840 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Poisoned Stone Clump", Id = 1841 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Rainbow Stone", Id = 2020 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Glowstone", Id = 2030 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Grace Mimic", Id = 2050 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Soft Cotton", Id = 2100 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Soap", Id = 2120 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Celestial Dew", Id = 2130 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Miquella's Needle", Id = 2190 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [1]", Id = 2900 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [2]", Id = 2901 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [3]", Id = 2902 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [4]", Id = 2903 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [5]", Id = 2904 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [6]", Id = 2905 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [7]", Id = 2906 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [8]", Id = 2907 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [9]", Id = 2908 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [10]", Id = 2909 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [11]", Id = 2910 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [12]", Id = 2911 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Golden Rune [13]", Id = 2912 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Numen's Rune", Id = 2913 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Hero's Rune [1]", Id = 2914 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Hero's Rune [2]", Id = 2915 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Hero's Rune [3]", Id = 2916 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Hero's Rune [4]", Id = 2917 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Hero's Rune [5]", Id = 2918 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Lord's Rune", Id = 2919 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Grafted", Id = 2950 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Starscourge", Id = 2951 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Omen King", Id = 2952 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Blasphemous", Id = 2953 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Rot Goddess", Id = 2954 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Blood Lord", Id = 2955 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Black Blade", Id = 2956 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of Hoarah Loux", Id = 2957 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Dragonlord", Id = 2958 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Full Moon Queen", Id = 2959 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Lichdragon", Id = 2960 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Fire Giant", Id = 2961 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Regal Ancestor", Id = 2962 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Elden Remembrance", Id = 2963 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Remembrance of the Naturalborn", Id = 2964 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Lands Between Rune", Id = 2990 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Cuckoo Glintstone", Id = 3030 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Glintstone Scrap", Id = 3050 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Large Glintstone Scrap", Id = 3051 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Gravity Stone Fan", Id = 3060 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Gravity Stone Chunk", Id = 3070 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Wraith Calling Bell", Id = 3080 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Holy Water Grease", Id = 3300 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Warming Stone", Id = 3310 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Frenzyflame Stone", Id = 3311 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Scriptstone", Id = 3320 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Bewitching Branch", Id = 3350 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Baldachin's Blessing", Id = 3360 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Radiant Baldachin's Blessing", Id = 3361 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Uplifting Aromatic", Id = 3500 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Spark Aromatic", Id = 3510 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Ironjar Aromatic", Id = 3520 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Bloodboil Aromatic", Id = 3550 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Poison Spraymist", Id = 3580 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Acid Spraymist", Id = 3610 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Cracked Pot", Id = 9500 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Ritual Pot", Id = 9501 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Perfume Bottle", Id = 9510 }, + new() { Category = Category.Goods,GroupName = "Consumables", Name = "Glass Shard", Id = 10000 }, //new Item() { Category = Category.Goods,GroupName = "Consumables", Name = "Great Rune of the Unborn", Id = 10080 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Rowa Raisin", Id = 810 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Sweet Raisin", Id = 811 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Frozen Raisin", Id = 812 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Rowa Raisin", Id = 810 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Sweet Raisin", Id = 811 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Frozen Raisin", Id = 812 }, //new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Raw Meat Dumpling", Id = 1235 }, //new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Ruin Fragment", Id = 1760 }, //new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Soft Cotton", Id = 2100 }, //new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Celestial Dew", Id = 2130 }, //new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Cracked Pot", Id = 9500 }, //new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Ritual Pot", Id = 9501 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Sliver of Meat", Id = 15000 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Beast Liver", Id = 15010 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Lump of Flesh", Id = 15020 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Beast Blood", Id = 15030 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Old Fang", Id = 15040 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Budding Horn", Id = 15050 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Flight Pinion", Id = 15060 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Four-Toed Fowl Foot", Id = 15080 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Turtle Neck Meat", Id = 15090 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Human Bone Shard", Id = 15100 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Great Dragonfly Head", Id = 15110 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Slumbering Egg", Id = 15120 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Crab Eggs", Id = 15130 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Land Octopus Ovary", Id = 15140 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Miranda Powder", Id = 15150 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Strip of White Flesh", Id = 15160 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Thin Beast Bones", Id = 15340 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Hefty Beast Bone", Id = 15341 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "String", Id = 15400 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Living Jar Shard", Id = 15410 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Albinauric Bloodclot", Id = 15420 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Stormhawk Feather", Id = 15430 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Poisonbloom", Id = 20650 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Trina's Lily", Id = 20651 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Fulgurbloom", Id = 20652 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Miquella's Lily", Id = 20653 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Grave Violet", Id = 20654 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Faded Erdleaf Flower", Id = 20660 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Erdleaf Flower", Id = 20680 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Altus Bloom", Id = 20681 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Fire Blossom", Id = 20682 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Golden Sunflower", Id = 20683 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Tarnished Golden Sunflower", Id = 20685 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Herba", Id = 20690 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Arteria Leaf", Id = 20691 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Dewkissed Herba", Id = 20710 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Rowa Fruit", Id = 20720 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Golden Rowa", Id = 20721 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Rimed Rowa", Id = 20722 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Bloodrose", Id = 20723 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Eye of Yelough", Id = 20740 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Crystal Bud", Id = 20750 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Rimed Crystal Bud", Id = 20751 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Sacramental Bud", Id = 20753 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Mushroom", Id = 20760 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Melted Mushroom", Id = 20761 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Toxic Mushroom", Id = 20770 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Root Resin", Id = 20775 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Cracked Crystal", Id = 20780 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Sanctuary Stone", Id = 20795 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Nascent Butterfly", Id = 20800 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Aeonian Butterfly", Id = 20801 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Smoldering Butterfly", Id = 20802 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Silver Firefly", Id = 20810 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Gold Firefly", Id = 20811 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Glintstone Firefly", Id = 20812 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Golden Centipede", Id = 20820 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Silver Tear Husk", Id = 20825 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Gold-Tinged Excrement", Id = 20830 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Blood-Tainted Excrement", Id = 20831 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Cave Moss", Id = 20840 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Budding Cave Moss", Id = 20841 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Crystal Cave Moss", Id = 20842 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Yellow Ember", Id = 20845 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Volcanic Stone", Id = 20850 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Formic Rock", Id = 20852 }, - new Item() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Gravel Stone", Id = 20855 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Wondrous Physick (Empty)", Id = 250 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Wondrous Physick", Id = 251 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears (Empty)", Id = 1000 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears", Id = 1001 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +1 (Empty)", Id = 1002 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +1", Id = 1003 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +2 (Empty)", Id = 1004 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +2", Id = 1005 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +3 (Empty)", Id = 1006 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +3", Id = 1007 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +4 (Empty)", Id = 1008 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +4", Id = 1009 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +5 (Empty)", Id = 1010 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +5", Id = 1011 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +6 (Empty)", Id = 1012 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +6", Id = 1013 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +7 (Empty)", Id = 1014 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +7", Id = 1015 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +8 (Empty)", Id = 1016 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +8", Id = 1017 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +9 (Empty)", Id = 1018 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +9", Id = 1019 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +10 (Empty)", Id = 1020 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +10", Id = 1021 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +11 (Empty)", Id = 1022 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +11", Id = 1023 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +12 (Empty)", Id = 1024 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +12", Id = 1025 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears (Empty)", Id = 1050 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears", Id = 1051 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +1 (Empty)", Id = 1052 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +1", Id = 1053 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +2 (Empty)", Id = 1054 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +2", Id = 1055 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +3 (Empty)", Id = 1056 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +3", Id = 1057 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +4 (Empty)", Id = 1058 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +4", Id = 1059 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +5 (Empty)", Id = 1060 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +5", Id = 1061 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +6 (Empty)", Id = 1062 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +6", Id = 1063 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +7 (Empty)", Id = 1064 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +7", Id = 1065 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +8 (Empty)", Id = 1066 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +8", Id = 1067 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +9 (Empty)", Id = 1068 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +9", Id = 1069 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +10 (Empty)", Id = 1070 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +10", Id = 1071 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +11 (Empty)", Id = 1072 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +11", Id = 1073 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +12 (Empty)", Id = 1074 }, - new Item() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +12", Id = 1075 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Tarnished's Furled Finger", Id = 100 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Duelist's Furled Finger", Id = 101 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Bloody Finger", Id = 102 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Finger Severer", Id = 103 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "White Cipher Ring", Id = 104 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Blue Cipher Ring", Id = 105 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Tarnished's Wizened Finger", Id = 106 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Phantom Bloody Finger", Id = 107 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Taunter's Tongue", Id = 108 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Small Golden Effigy", Id = 109 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Small Red Effigy", Id = 110 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Festering Bloody Finger", Id = 111 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Recusant Finger", Id = 112 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Phantom Bloody Finger", Id = 113 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Phantom Recusant Finger", Id = 114 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Memory of Grace", Id = 115 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Spectral Steed Whistle", Id = 130 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Phantom Great Rune", Id = 135 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Godrick's Great Rune", Id = 191 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Radahn's Great Rune", Id = 192 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Morgott's Great Rune", Id = 193 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Rykard's Great Rune", Id = 194 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Mohg's Great Rune", Id = 195 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Malenia's Great Rune", Id = 196 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Stonesword Key", Id = 8000 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Rusty Key", Id = 8010 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Lucent Baldachin's Blessing", Id = 8102 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Dectus Medallion (Left)", Id = 8105 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Dectus Medallion (Right)", Id = 8106 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Rold Medallion", Id = 8107 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Academy Glintstone Key", Id = 8109 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Carian Inverted Statue", Id = 8111 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Dark Moon Ring", Id = 8121 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Fingerprint Grape", Id = 8126 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Letter from Volcano Manor", Id = 8127 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Tonic of Forgetfulness", Id = 8128 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Serpent's Amnion", Id = 8129 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Rya's Necklace", Id = 8130 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Irina's Letter", Id = 8131 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Letter from Volcano Manor", Id = 8132 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Red Letter", Id = 8133 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Drawing-Room Key", Id = 8134 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Rya's Necklace", Id = 8136 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Volcano Manor Invitation", Id = 8137 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Amber Starlight", Id = 8142 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Seluvis's Introduction", Id = 8143 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Sellen's Primal Glintstone", Id = 8144 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Miniature Ranni", Id = 8146 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Asimi, Silver Tear", Id = 8147 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Godrick's Great Rune (Unpowered)", Id = 8148 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Radahn's Great Rune (Unpowered)", Id = 8149 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Morgott's Great Rune (Unpowered)", Id = 8150 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Rykard's Great Rune (Unpowered)", Id = 8151 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Mohg's Great Rune (Unpowered)", Id = 8152 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Malenia's Great Rune (Unpowered)", Id = 8153 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Lord of Blood's Favor", Id = 8154 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Lord of Blood's Favor", Id = 8155 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Burial Crow's Letter", Id = 8156 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Spirit Calling Bell", Id = 8158 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Fingerslayer Blade", Id = 8159 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Sewing Needle", Id = 8161 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Gold Sewing Needle", Id = 8162 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Tailoring Tools", Id = 8163 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Seluvis's Potion", Id = 8164 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Amber Draught", Id = 8166 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Letter to Patches", Id = 8167 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Dancer's Castanets", Id = 8168 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Sellian Sealbreaker", Id = 8169 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Chrysalids' Memento", Id = 8171 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Black Knifeprint", Id = 8172 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Letter to Bernahl", Id = 8173 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Academy Glintstone Key", Id = 8174 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Haligtree Secret Medallion (Left)", Id = 8175 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Haligtree Secret Medallion (Right)", Id = 8176 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Burial Crow's Letter", Id = 8181 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Mending Rune of Perfect Order", Id = 8182 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Mending Rune of the Death-Prince", Id = 8183 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Mending Rune of the Fell Curse", Id = 8184 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Larval Tear", Id = 8185 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Imbued Sword Key", Id = 8186 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Miniature Ranni", Id = 8187 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Golden Tailoring Tools", Id = 8188 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Iji's Confession", Id = 8189 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Knifeprint Clue", Id = 8190 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Cursemark of Death", Id = 8191 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Asimi's Husk", Id = 8192 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Seedbed Curse", Id = 8193 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "The Stormhawk King", Id = 8194 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Asimi, Silver Chrysalid", Id = 8195 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Unalloyed Gold Needle", Id = 8196 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Sewer-Gaol Key", Id = 8197 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Meeting Place Map", Id = 8198 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Discarded Palace Key", Id = 8199 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Iron Whetblade", Id = 8970 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Red-Hot Whetblade", Id = 8971 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Sanctified Whetblade", Id = 8972 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Glintstone Whetblade", Id = 8973 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Black Whetblade", Id = 8974 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Unalloyed Gold Needle", Id = 8975 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Unalloyed Gold Needle", Id = 8976 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Valkyrie's Prosthesis", Id = 8977 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Sellia's Secret", Id = 8978 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Beast Eye", Id = 8979 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Weathered Dagger", Id = 8980 }, - new Item() { Category = Category.Goods,GroupName = "Key Items", Name = "Great Rune of the Unborn", Id = 10080 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Homing Instinct Painting", Id = 8200 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Resurrection Painting", Id = 8201 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Champion's Song Painting", Id = 8202 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Sorcerer Painting", Id = 8203 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Prophecy Painting", Id = 8204 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Flightless Bird Painting", Id = 8205 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Redmane Painting", Id = 8206 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Zorayas's Letter", Id = 8221 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Rogier's Letter", Id = 8223 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: The Preceptor's Secret", Id = 8224 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Weathered Map", Id = 8225 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: The Preceptor's Secret", Id = 8226 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Weathered Map", Id = 8227 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Limgrave, West", Id = 8600 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Weeping Peninsula", Id = 8601 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Limgrave, East", Id = 8602 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Liurnia, East", Id = 8603 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Liurnia, North", Id = 8604 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Liurnia, West", Id = 8605 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Altus Plateau", Id = 8606 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Leyndell, Royal Capital", Id = 8607 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Mt. Gelmir", Id = 8608 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Caelid", Id = 8609 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Dragonbarrow", Id = 8610 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Mountaintops of the Giants, West", Id = 8611 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Mountaintops of the Giants, East", Id = 8612 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Ainsel River", Id = 8613 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Lake of Rot", Id = 8614 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Siofra River", Id = 8615 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Mohgwyn Palace", Id = 8616 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Deeproot Depths", Id = 8617 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Consecrated Snowfield", Id = 8618 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Mirage Riddle", Id = 8660 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Hidden Cave", Id = 8700 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Imp Shades", Id = 8701 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Flask of Wondrous Physick", Id = 8702 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Stonedigger Trolls", Id = 8703 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Walking Mausoleum", Id = 8704 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Unseen Assassins", Id = 8705 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Great Coffins", Id = 8706 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Flame Chariots", Id = 8707 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Demi-human Mobs", Id = 8708 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Land Squirts", Id = 8709 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Gravity's Advantage", Id = 8710 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Revenants", Id = 8711 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Waypoint Ruins", Id = 8712 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Gateway", Id = 8713 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Miquella's Needle", Id = 8714 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Frenzied Flame Village", Id = 8715 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: The Lord of Frenzied Flame", Id = 8716 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Below the Capital", Id = 8717 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Hidden Cave", Id = 8750 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Imp Shades", Id = 8751 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Flask of Wondrous Physick", Id = 8752 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Stonedigger Trolls", Id = 8753 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Walking Mausoleum", Id = 8754 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Unseen Assassins", Id = 8755 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Great Coffins", Id = 8756 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Flame Chariots", Id = 8757 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Demi-human Mobs", Id = 8758 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Land Squirts", Id = 8759 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Gravity's Advantage", Id = 8760 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Revenants", Id = 8761 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Waypoint Ruins", Id = 8762 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Gateway", Id = 8763 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Frenzied Flame Village", Id = 8765 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Below the Capital", Id = 8767 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Sites of Grace", Id = 9100 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Sorceries and Incantations", Id = 9101 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Bows", Id = 9102 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Crouching", Id = 9103 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Stance-Breaking", Id = 9104 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Stakes of Marika", Id = 9105 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Guard Counters", Id = 9106 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About the Map", Id = 9107 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Guidance of Grace", Id = 9108 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Horseback Riding", Id = 9109 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Death", Id = 9110 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Summoning Spirits", Id = 9111 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Guarding", Id = 9112 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Item Crafting", Id = 9113 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Flask of Wondrous Physick", Id = 9115 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Adding Skills", Id = 9116 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Birdseye Telescopes", Id = 9117 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Spiritspring Jumping", Id = 9118 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Vanquishing Enemy Groups", Id = 9119 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Teardrop Scarabs", Id = 9120 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Summoning Other Players", Id = 9121 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Cooperative Multiplayer", Id = 9122 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Competitive Multiplayer", Id = 9123 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Invasion Multiplayer", Id = 9124 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Hunter Multiplayer", Id = 9125 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Summoning Pools", Id = 9126 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Monument Icon", Id = 9127 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Requesting Help from Hunters", Id = 9128 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Skills", Id = 9129 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Fast Travel to Sites of Grace", Id = 9130 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Strengthening Armaments", Id = 9131 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Roundtable Hold", Id = 9132 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Materials", Id = 9134 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Containers", Id = 9135 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Adding Affinities", Id = 9136 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Pouches", Id = 9137 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Dodging", Id = 9138 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Wielding Armaments", Id = 9140 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Great Runes", Id = 9141 }, - new Item() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Multiplayer", Id = 9195 }, - new Item() { Category = Category.Goods,GroupName = "Tools", Name = "Margit's Shackle", Id = 2140 }, - new Item() { Category = Category.Goods,GroupName = "Tools", Name = "Mohg's Shackle", Id = 2150 }, - new Item() { Category = Category.Goods,GroupName = "Tools", Name = "Pureblood Knight's Medal", Id = 2160 }, - new Item() { Category = Category.Goods,GroupName = "Tools", Name = "Prattling Pate Hello", Id = 2200 }, - new Item() { Category = Category.Goods,GroupName = "Tools", Name = "Prattling Pate Thank you", Id = 2201 }, - new Item() { Category = Category.Goods,GroupName = "Tools", Name = "Prattling Pate Apologies", Id = 2202 }, - new Item() { Category = Category.Goods,GroupName = "Tools", Name = "Prattling Pate Wonderful", Id = 2203 }, - new Item() { Category = Category.Goods,GroupName = "Tools", Name = "Prattling Pate Please help", Id = 2204 }, - new Item() { Category = Category.Goods,GroupName = "Tools", Name = "Prattling Pate My beloved", Id = 2205 }, - new Item() { Category = Category.Goods,GroupName = "Tools", Name = "Prattling Pate Let's get to it", Id = 2206 }, - new Item() { Category = Category.Goods,GroupName = "Tools", Name = "Prattling Pate You're beautiful", Id = 2207 }, - new Item() { Category = Category.Goods,GroupName = "Tools", Name = "Ancestral Infant's Head", Id = 3000 }, - new Item() { Category = Category.Goods,GroupName = "Tools", Name = "Omen Bairn", Id = 3010 }, - new Item() { Category = Category.Goods,GroupName = "Tools", Name = "Regal Omen Bairn", Id = 3011 }, - new Item() { Category = Category.Goods,GroupName = "Tools", Name = "Miranda's Prayer", Id = 3020 }, - new Item() { Category = Category.Goods,GroupName = "Tools", Name = "Mimic's Veil", Id = 3040 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Golden Seed", Id = 10010 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Sacred Tear", Id = 10020 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Memory Stone", Id = 10030 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Talisman Pouch", Id = 10040 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Dragon Heart", Id = 10060 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Lost Ashes of War", Id = 10070 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Smithing Stone [1]", Id = 10100 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Smithing Stone [2]", Id = 10101 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Smithing Stone [3]", Id = 10102 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Smithing Stone [4]", Id = 10103 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Smithing Stone [5]", Id = 10104 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Smithing Stone [6]", Id = 10105 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Smithing Stone [7]", Id = 10106 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Smithing Stone [8]", Id = 10107 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Ancient Dragon Smithing Stone", Id = 10140 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Somber Smithing Stone [1]", Id = 10160 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Somber Smithing Stone [2]", Id = 10161 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Somber Smithing Stone [3]", Id = 10162 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Somber Smithing Stone [4]", Id = 10163 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Somber Smithing Stone [5]", Id = 10164 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Somber Smithing Stone [6]", Id = 10165 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Somber Smithing Stone [7]", Id = 10166 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Somber Smithing Stone [8]", Id = 10167 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Somber Ancient Dragon Smithing Stone", Id = 10168 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Somber Smithing Stone [9]", Id = 10200 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Grave Glovewort [1]", Id = 10900 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Grave Glovewort [2]", Id = 10901 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Grave Glovewort [3]", Id = 10902 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Grave Glovewort [4]", Id = 10903 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Grave Glovewort [5]", Id = 10904 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Grave Glovewort [6]", Id = 10905 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Grave Glovewort [7]", Id = 10906 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Grave Glovewort [8]", Id = 10907 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Grave Glovewort [9]", Id = 10908 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Great Grave Glovewort", Id = 10909 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Ghost Glovewort [1]", Id = 10910 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Ghost Glovewort [2]", Id = 10911 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Ghost Glovewort [3]", Id = 10912 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Ghost Glovewort [4]", Id = 10913 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Ghost Glovewort [5]", Id = 10914 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Ghost Glovewort [6]", Id = 10915 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Ghost Glovewort [7]", Id = 10916 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Ghost Glovewort [8]", Id = 10917 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Ghost Glovewort [9]", Id = 10918 }, - new Item() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Great Ghost Glovewort", Id = 10919 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Arrow", Id = 50000000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Fire", Id = 50010000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Serpent", Id = 50020000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Bone (Fletched)", Id = 50030000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - St. Trina's", Id = 50040000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Shattershard (Fletched)", Id = 50060000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Rainbow Stone (Fletched)", Id = 50080000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Golden", Id = 50090000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Dwelling", Id = 50100000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Bone", Id = 50110000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Firebone (Fletched)", Id = 50130000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Firebone", Id = 50140000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Poisonbone (Fletched)", Id = 50150000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Poisonbone", Id = 50160000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Sleepbone (Fletched)", Id = 50170000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Sleepbone", Id = 50180000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Stormwing Bone", Id = 50190000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Lightningbone (Fletched)", Id = 50200000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Lightningbone", Id = 50210000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Rainbow Stone", Id = 50220000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Shattershard", Id = 50230000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Spiritflame", Id = 50240000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Magicbone (Fletched)", Id = 50260000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Magicbone", Id = 50270000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Haligbone (Fletched)", Id = 50280000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Haligbone", Id = 50290000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Bloodbone (Fletched)", Id = 50300000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Bloodbone", Id = 50310000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Coldbone (Fletched)", Id = 50320000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Coldbone", Id = 50330000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Rotbone (Fletched)", Id = 50340000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Rotbone", Id = 50350000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Golem's Magic", Id = 51030000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Bone (Fletched)", Id = 51050000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Bone", Id = 51060000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Bolt", Id = 52000000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Lightning ", Id = 52010000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Perfumer's ", Id = 52020000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Black-Key ", Id = 52030000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Burred ", Id = 52040000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Meteor ", Id = 52050000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Explosive ", Id = 52060000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Golden ", Id = 52070000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Lordsworn's ", Id = 52080000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Bone ", Id = 52090000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Firebone ", Id = 52100000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Lightningbone ", Id = 52110000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Magicbone ", Id = 52120000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Haligbone ", Id = 52130000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Poisonbone ", Id = 52140000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Bloodbone ", Id = 52150000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Coldbone ", Id = 52160000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Rotbone ", Id = 52170000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Sleepbone ", Id = 52180000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Flaming ", Id = 52190000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Great Arrow - Great Arrow", Id = 51000000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Great Arrow - Golem's", Id = 51010000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Great Arrow - Golden", Id = 51020000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Great Arrow - Radahn's Spear", Id = 51040000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Greatbolt - Ballista Bolt", Id = 53000000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Greatbolt - Lightning", Id = 53010000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Greatbolt - Explosive", Id = 53020000 }, - new Item() { Category = Category.Weapons,GroupName = "Ammo", Name = "Greatbolt - Bone Ballista Bolt", Id = 53030000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Dagger", Id = 1000000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Black Knife", Id = 1010000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Parrying Dagger", Id = 1020000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Miséricorde", Id = 1030000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Reduvia", Id = 1040000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Crystal Knife", Id = 1050000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Celebrant's Sickle", Id = 1060000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Glintstone Kris", Id = 1070000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Scorpion's Stinger", Id = 1080000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Great Knife", Id = 1090000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Wakizashi", Id = 1100000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Cinquedea", Id = 1110000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Ivory Sickle", Id = 1130000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Bloodstained Dagger", Id = 1140000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Erdsteel Dagger", Id = 1150000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Blade of Calling", Id = 1160000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Longsword", Id = 2000000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Short Sword", Id = 2010000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Broadsword", Id = 2020000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Lordsworn's Straight Sword", Id = 2040000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Weathered Straight Sword", Id = 2050000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Ornamental Straight Sword", Id = 2060000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Golden Epitaph", Id = 2070000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Nox Flowing Sword", Id = 2080000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Inseparable Sword", Id = 2090000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Coded Sword", Id = 2110000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Sword of Night and Flame", Id = 2140000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Crystal Sword", Id = 2150000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Carian Knight's Sword", Id = 2180000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Sword of St. Trina", Id = 2190000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Miquellan Knight's Sword", Id = 2200000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Cane Sword", Id = 2210000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Regalia of Eochaid", Id = 2220000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Noble's Slender Sword", Id = 2230000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Warhawk's Talon", Id = 2240000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Lazuli Glintstone Sword", Id = 2250000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Rotten Crystal Sword", Id = 2260000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Bastard Sword", Id = 3000000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Forked Greatsword", Id = 3010000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Iron Greatsword", Id = 3020000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Lordsworn's Greatsword", Id = 3030000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Knight's Greatsword", Id = 3040000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Flamberge", Id = 3050000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Ordovis's Greatsword", Id = 3060000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Alabaster Lord's Sword", Id = 3070000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Banished Knight's Greatsword", Id = 3080000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Dark Moon Greatsword", Id = 3090000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Sacred Relic Sword", Id = 3100000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Helphen's Steeple", Id = 3130000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Blasphemous Blade", Id = 3140000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Marais Executioner's Sword", Id = 3150000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Sword of Milos", Id = 3160000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Golden Order Greatsword", Id = 3170000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Claymore", Id = 3180000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Gargoyle's Greatsword", Id = 3190000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Death's Poker", Id = 3200000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Gargoyle's Blackblade", Id = 3210000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Greatsword", Id = 4000000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Watchdog's Greatsword", Id = 4010000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Maliketh's Black Blade", Id = 4020000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Troll's Golden Sword", Id = 4030000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Zweihander", Id = 4040000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Starscourge Greatsword", Id = 4050000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Royal Greatsword", Id = 4060000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Godslayer's Greatsword", Id = 4070000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Ruins Greatsword", Id = 4080000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Grafted Blade Greatsword", Id = 4100000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Troll Knight's Sword", Id = 4110000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Estoc", Id = 5000000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Cleanrot Knight's Sword", Id = 5010000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Rapier", Id = 5020000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Rogier's Rapier", Id = 5030000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Antspur Rapier", Id = 5040000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Frozen Needle", Id = 5050000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Noble's Estoc", Id = 5060000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Bloody Helice", Id = 6000000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Godskin Stitcher", Id = 6010000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Great Épée", Id = 6020000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Dragon King's Cragblade", Id = 6040000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Falchion", Id = 7000000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Beastman's Curved Sword", Id = 7010000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Shotel", Id = 7020000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Shamshir", Id = 7030000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Bandit's Curved Sword", Id = 7040000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Magma Blade", Id = 7050000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Flowing Curved Sword", Id = 7060000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Wing of Astel", Id = 7070000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Scavenger's Curved Sword", Id = 7080000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Eclipse Shotel", Id = 7100000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Serpent-God's Curved Sword", Id = 7110000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Mantis Blade", Id = 7120000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Scimitar", Id = 7140000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Grossmesser", Id = 7150000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Onyx Lord's Greatsword", Id = 8010000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Dismounter", Id = 8020000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Bloodhound's Fang", Id = 8030000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Magma Wyrm's Scalesword", Id = 8040000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Zamor Curved Sword", Id = 8050000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Omen Cleaver", Id = 8060000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Monk's Flameblade", Id = 8070000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Beastman's Cleaver", Id = 8080000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Morgott's Cursed Sword", Id = 8100000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Uchigatana", Id = 9000000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Nagakiba", Id = 9010000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Hand of Malenia", Id = 9020000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Meteoric Ore Blade", Id = 9030000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Rivers of Blood", Id = 9040000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Moonveil", Id = 9060000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Dragonscale Blade", Id = 9070000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Serpentbone Blade", Id = 9080000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Twinblade", Id = 10000000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Godskin Peeler", Id = 10010000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Twinned Knight Swords", Id = 10030000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Eleonora's Poleblade", Id = 10050000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Gargoyle's Twinblade", Id = 10080000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Gargoyle's Black Blades", Id = 10090000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Mace", Id = 11000000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Club", Id = 11010000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Curved Club", Id = 11030000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Warpick", Id = 11040000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Morning Star", Id = 11050000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Varré's Bouquet", Id = 11060000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Spiked Club", Id = 11070000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Hammer", Id = 11080000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Monk's Flamemace", Id = 11090000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Envoy's Horn", Id = 11100000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Scepter of the All-Knowing", Id = 11110000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Nox Flowing Hammer", Id = 11120000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Ringed Finger", Id = 11130000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Stone Club", Id = 11140000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Marika's Hammer", Id = 11150000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Large Club", Id = 12000000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Greathorn Hammer", Id = 12010000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Battle Hammer", Id = 12020000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Great Mace", Id = 12060000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Curved Great Club", Id = 12080000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Celebrant's Skull", Id = 12130000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Pickaxe", Id = 12140000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Beastclaw Greathammer", Id = 12150000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Envoy's Long Horn", Id = 12160000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Cranial Vessel Candlestand", Id = 12170000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Great Stars", Id = 12180000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Brick Hammer", Id = 12190000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Devourer's Scepter", Id = 12200000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Rotten Battle Hammer", Id = 12210000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Nightrider Flail", Id = 13000000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Flail", Id = 13010000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Family Heads", Id = 13020000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Bastard's Stars", Id = 13030000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Chainlink Flail", Id = 13040000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Battle Axe", Id = 14000000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Forked Hatchet", Id = 14010000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Hand Axe", Id = 14020000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Jawbone Axe", Id = 14030000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Iron Cleaver", Id = 14040000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Ripple Blade", Id = 14050000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Celebrant's Cleaver", Id = 14060000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Icerind Hatchet", Id = 14080000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Highland Axe", Id = 14100000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Sacrificial Axe", Id = 14110000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Rosus' Axe", Id = 14120000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Stormhawk Axe", Id = 14140000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Greataxe", Id = 15000000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Warped Axe", Id = 15010000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Great Omenkiller Cleaver", Id = 15020000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Crescent Moon Axe", Id = 15030000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Axe of Godrick", Id = 15040000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Longhaft Axe", Id = 15050000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Rusted Anchor", Id = 15060000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Executioner's Greataxe", Id = 15080000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Winged Greathorn", Id = 15110000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Butchering Knife", Id = 15120000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Gargoyle's Great Axe", Id = 15130000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Gargoyle's Black Axe", Id = 15140000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Short Spear", Id = 16000000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Spear", Id = 16010000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Crystal Spear", Id = 16020000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Clayman's Harpoon", Id = 16030000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Cleanrot Spear", Id = 16040000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Partisan", Id = 16050000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Celebrant's Rib-Rake", Id = 16060000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Pike", Id = 16070000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Torchpole", Id = 16080000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Bolt of Gransax", Id = 16090000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Cross-Naginata", Id = 16110000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Death Ritual Spear", Id = 16120000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Inquisitor's Girandole", Id = 16130000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Spiked Spear", Id = 16140000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Iron Spear", Id = 16150000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Rotten Crystal Spear", Id = 16160000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Mohgwyn's Sacred Spear", Id = 17010000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Siluria's Tree", Id = 17020000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Serpent-Hunter", Id = 17030000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Vyke's War Spear", Id = 17050000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Lance", Id = 17060000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Treespear", Id = 17070000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Halberd", Id = 18000000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Pest's Glaive", Id = 18010000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Lucerne", Id = 18020000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Banished Knight's Halberd", Id = 18030000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Commander's Standard", Id = 18040000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Nightrider Glaive", Id = 18050000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Ripple Crescent Halberd", Id = 18060000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Vulgar Militia Saw", Id = 18070000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Golden Halberd", Id = 18080000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Glaive", Id = 18090000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Loretta's War Sickle", Id = 18100000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Guardian's Swordspear", Id = 18110000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Vulgar Militia Shotel", Id = 18130000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Dragon Halberd", Id = 18140000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Gargoyle's Halberd", Id = 18150000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Gargoyle's Black Halberd", Id = 18160000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Scythe", Id = 19000000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Grave Scythe", Id = 19010000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Halo Scythe", Id = 19020000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Winged Scythe", Id = 19060000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Whip", Id = 20000000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Thorned Whip", Id = 20020000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Magma Whip Candlestick", Id = 20030000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Hoslow's Petal Whip", Id = 20050000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Giant's Red Braid", Id = 20060000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Urumi", Id = 20070000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Caestus", Id = 21000000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Spiked Caestus", Id = 21010000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Grafted Dragon", Id = 21060000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Iron Ball", Id = 21070000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Star Fist", Id = 21080000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Katar", Id = 21100000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Clinging Bone", Id = 21110000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Veteran's Prosthesis", Id = 21120000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Cipher Pata", Id = 21130000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Hookclaws", Id = 22000000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Venomous Fang", Id = 22010000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Bloodhound Claws", Id = 22020000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Raptor Talons", Id = 22030000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Prelate's Inferno Crozier", Id = 23000000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Watchdog's Staff", Id = 23010000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Great Club", Id = 23020000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Envoy's Greathorn", Id = 23030000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Duelist Greataxe", Id = 23040000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Axe of Godfrey", Id = 23050000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Dragon Greatclaw", Id = 23060000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Staff of the Avatar", Id = 23070000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Fallingstar Beast Jaw", Id = 23080000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Ghiza's Wheel", Id = 23100000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Giant-Crusher", Id = 23110000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Golem's Halberd", Id = 23120000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Troll's Hammer", Id = 23130000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Rotten Staff", Id = 23140000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Rotten Greataxe", Id = 23150000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Torch", Id = 24000000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Steel-Wire Torch", Id = 24020000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "St. Trina's Torch", Id = 24040000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Ghostflame Torch", Id = 24050000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Beast-Repellent Torch", Id = 24060000 }, - new Item() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Sentry's Torch", Id = 24070000 }, - new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Shortbow", Id = 40000000 }, - new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Misbegotten Shortbow", Id = 40010000 }, - new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Red Branch Shortbow", Id = 40020000 }, - new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Harp Bow", Id = 40030000 }, - new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Composite Bow", Id = 40050000 }, - new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Longbow", Id = 41000000 }, - new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Albinauric Bow", Id = 41010000 }, - new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Horn Bow", Id = 41020000 }, - new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Erdtree Bow", Id = 41030000 }, - new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Serpent Bow", Id = 41040000 }, - new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Pulley Bow", Id = 41060000 }, - new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Black Bow", Id = 41070000 }, - new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Lion Greatbow", Id = 42000000 }, - new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Golem Greatbow", Id = 42010000 }, - new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Erdtree Greatbow", Id = 42030000 }, - new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Greatbow", Id = 42040000 }, - new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Soldier's Crossbow", Id = 43000000 }, - new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Light Crossbow", Id = 43020000 }, - new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Heavy Crossbow", Id = 43030000 }, - new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Pulley Crossbow", Id = 43050000 }, - new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Full Moon Crossbow", Id = 43060000 }, - new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Arbalest", Id = 43080000 }, - new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Crepus's Black-Key Crossbow", Id = 43110000 }, - new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Hand Ballista", Id = 44000000 }, - new Item() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Jar Cannon", Id = 44010000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Buckler", Id = 30000000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Perfumer's Shield", Id = 30010000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Man-Serpent's Shield", Id = 30020000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Rickety Shield", Id = 30030000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Pillory Shield", Id = 30040000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Beastman's Jar-Shield", Id = 30060000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Red Thorn Roundshield", Id = 30070000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Scripture Wooden Shield", Id = 30080000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Riveted Wooden Shield", Id = 30090000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Blue-White Wooden Shield", Id = 30100000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Rift Shield", Id = 30110000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Iron Roundshield", Id = 30120000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Gilded Iron Shield", Id = 30130000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Ice Crest Shield", Id = 30140000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Smoldering Shield", Id = 30150000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Spiralhorn Shield", Id = 30190000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Coil Shield", Id = 30200000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Kite Shield", Id = 31000000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Marred Leather Shield", Id = 31010000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Marred Wooden Shield", Id = 31020000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Banished Knight's Shield", Id = 31030000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Albinauric Shield", Id = 31040000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Sun Realm Shield", Id = 31050000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Silver Mirrorshield", Id = 31060000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Round Shield", Id = 31070000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Scorpion Kite Shield", Id = 31080000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Twinbird Kite Shield", Id = 31090000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Blue-Gold Kite Shield", Id = 31100000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Brass Shield", Id = 31130000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Great Turtle Shell", Id = 31140000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Shield of the Guilty", Id = 31170000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Carian Knight's Shield", Id = 31190000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Large Leather Shield", Id = 31230000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Horse Crest Wooden Shield", Id = 31240000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Candletree Wooden Shield", Id = 31250000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Flame Crest Wooden Shield", Id = 31260000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Hawk Crest Wooden Shield", Id = 31270000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Beast Crest Heater Shield", Id = 31280000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Red Crest Heater Shield", Id = 31290000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Blue Crest Heater Shield", Id = 31300000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Eclipse Crest Heater Shield", Id = 31310000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Inverted Hawk Heater Shield", Id = 31320000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Heater Shield", Id = 31330000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Black Leather Shield", Id = 31340000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Dragon Towershield", Id = 32000000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Distinguished Greatshield", Id = 32020000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Crucible Hornshield", Id = 32030000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Dragonclaw Shield", Id = 32040000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Briar Greatshield", Id = 32050000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Erdtree Greatshield", Id = 32080000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Golden Beast Crest Shield", Id = 32090000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Jellyfish Shield", Id = 32120000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Fingerprint Stone Shield", Id = 32130000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Icon Shield", Id = 32140000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "One-Eyed Shield", Id = 32150000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Visage Shield", Id = 32160000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Spiked Palisade Shield", Id = 32170000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Manor Towershield", Id = 32190000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Crossed-Tree Towershield", Id = 32200000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Inverted Hawk Towershield", Id = 32210000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Ant's Skull Plate", Id = 32220000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Redmane Greatshield", Id = 32230000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Eclipse Crest Greatshield", Id = 32240000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Cuckoo Greatshield", Id = 32250000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Golden Greatshield", Id = 32260000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Gilded Greatshield", Id = 32270000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Haligtree Crest Greatshield", Id = 32280000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Wooden Greatshield", Id = 32290000 }, - new Item() { Category = Category.Weapons,GroupName = "Shields", Name = "Lordsworn's Shield", Id = 32300000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Glintstone Staff", Id = 33000000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Crystal Staff", Id = 33040000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Gelmir Glintstone Staff", Id = 33050000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Demi-Human Queen's Staff", Id = 33060000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Carian Regal Scepter", Id = 33090000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Digger's Staff", Id = 33120000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Astrologer's Staff", Id = 33130000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Carian Glintblade Staff", Id = 33170000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Prince of Death's Staff", Id = 33180000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Albinauric Staff", Id = 33190000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Academy Glintstone Staff", Id = 33200000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Carian Glintstone Staff", Id = 33210000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Azur's Glintstone Staff", Id = 33230000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Lusat's Glintstone Staff", Id = 33240000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Meteorite Staff", Id = 33250000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Staff of the Guilty", Id = 33260000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Rotten Crystal Staff", Id = 33270000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Staff of Loss", Id = 33280000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Finger Seal", Id = 34000000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Godslayer's Seal", Id = 34010000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Giant's Seal", Id = 34020000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Gravel Stone Seal", Id = 34030000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Clawmark Seal", Id = 34040000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Golden Order Seal", Id = 34060000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Erdtree Seal", Id = 34070000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Dragon Communion Seal", Id = 34080000 }, - new Item() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Frenzied Flame Seal", Id = 34090000 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Sliver of Meat", Id = 15000 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Beast Liver", Id = 15010 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Lump of Flesh", Id = 15020 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Beast Blood", Id = 15030 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Old Fang", Id = 15040 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Budding Horn", Id = 15050 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Flight Pinion", Id = 15060 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Four-Toed Fowl Foot", Id = 15080 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Turtle Neck Meat", Id = 15090 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Human Bone Shard", Id = 15100 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Great Dragonfly Head", Id = 15110 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Slumbering Egg", Id = 15120 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Crab Eggs", Id = 15130 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Land Octopus Ovary", Id = 15140 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Miranda Powder", Id = 15150 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Strip of White Flesh", Id = 15160 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Thin Beast Bones", Id = 15340 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Hefty Beast Bone", Id = 15341 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "String", Id = 15400 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Living Jar Shard", Id = 15410 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Albinauric Bloodclot", Id = 15420 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Stormhawk Feather", Id = 15430 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Poisonbloom", Id = 20650 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Trina's Lily", Id = 20651 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Fulgurbloom", Id = 20652 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Miquella's Lily", Id = 20653 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Grave Violet", Id = 20654 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Faded Erdleaf Flower", Id = 20660 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Erdleaf Flower", Id = 20680 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Altus Bloom", Id = 20681 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Fire Blossom", Id = 20682 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Golden Sunflower", Id = 20683 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Tarnished Golden Sunflower", Id = 20685 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Herba", Id = 20690 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Arteria Leaf", Id = 20691 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Dewkissed Herba", Id = 20710 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Rowa Fruit", Id = 20720 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Golden Rowa", Id = 20721 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Rimed Rowa", Id = 20722 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Bloodrose", Id = 20723 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Eye of Yelough", Id = 20740 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Crystal Bud", Id = 20750 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Rimed Crystal Bud", Id = 20751 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Sacramental Bud", Id = 20753 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Mushroom", Id = 20760 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Melted Mushroom", Id = 20761 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Toxic Mushroom", Id = 20770 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Root Resin", Id = 20775 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Cracked Crystal", Id = 20780 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Sanctuary Stone", Id = 20795 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Nascent Butterfly", Id = 20800 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Aeonian Butterfly", Id = 20801 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Smoldering Butterfly", Id = 20802 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Silver Firefly", Id = 20810 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Gold Firefly", Id = 20811 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Glintstone Firefly", Id = 20812 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Golden Centipede", Id = 20820 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Silver Tear Husk", Id = 20825 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Gold-Tinged Excrement", Id = 20830 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Blood-Tainted Excrement", Id = 20831 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Cave Moss", Id = 20840 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Budding Cave Moss", Id = 20841 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Crystal Cave Moss", Id = 20842 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Yellow Ember", Id = 20845 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Volcanic Stone", Id = 20850 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Formic Rock", Id = 20852 }, + new() { Category = Category.Goods,GroupName = "Crafting Materials", Name = "Gravel Stone", Id = 20855 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Wondrous Physick (Empty)", Id = 250 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Wondrous Physick", Id = 251 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears (Empty)", Id = 1000 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears", Id = 1001 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +1 (Empty)", Id = 1002 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +1", Id = 1003 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +2 (Empty)", Id = 1004 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +2", Id = 1005 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +3 (Empty)", Id = 1006 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +3", Id = 1007 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +4 (Empty)", Id = 1008 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +4", Id = 1009 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +5 (Empty)", Id = 1010 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +5", Id = 1011 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +6 (Empty)", Id = 1012 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +6", Id = 1013 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +7 (Empty)", Id = 1014 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +7", Id = 1015 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +8 (Empty)", Id = 1016 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +8", Id = 1017 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +9 (Empty)", Id = 1018 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +9", Id = 1019 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +10 (Empty)", Id = 1020 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +10", Id = 1021 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +11 (Empty)", Id = 1022 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +11", Id = 1023 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +12 (Empty)", Id = 1024 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Crimson Tears +12", Id = 1025 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears (Empty)", Id = 1050 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears", Id = 1051 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +1 (Empty)", Id = 1052 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +1", Id = 1053 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +2 (Empty)", Id = 1054 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +2", Id = 1055 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +3 (Empty)", Id = 1056 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +3", Id = 1057 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +4 (Empty)", Id = 1058 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +4", Id = 1059 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +5 (Empty)", Id = 1060 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +5", Id = 1061 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +6 (Empty)", Id = 1062 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +6", Id = 1063 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +7 (Empty)", Id = 1064 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +7", Id = 1065 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +8 (Empty)", Id = 1066 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +8", Id = 1067 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +9 (Empty)", Id = 1068 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +9", Id = 1069 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +10 (Empty)", Id = 1070 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +10", Id = 1071 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +11 (Empty)", Id = 1072 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +11", Id = 1073 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +12 (Empty)", Id = 1074 }, + new() { Category = Category.Goods,GroupName = "Flasks", Name = "Flask of Cerulean Tears +12", Id = 1075 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Tarnished's Furled Finger", Id = 100 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Duelist's Furled Finger", Id = 101 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Bloody Finger", Id = 102 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Finger Severer", Id = 103 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "White Cipher Ring", Id = 104 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Blue Cipher Ring", Id = 105 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Tarnished's Wizened Finger", Id = 106 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Phantom Bloody Finger", Id = 107 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Taunter's Tongue", Id = 108 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Small Golden Effigy", Id = 109 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Small Red Effigy", Id = 110 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Festering Bloody Finger", Id = 111 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Recusant Finger", Id = 112 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Phantom Bloody Finger", Id = 113 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Phantom Recusant Finger", Id = 114 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Memory of Grace", Id = 115 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Spectral Steed Whistle", Id = 130 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Phantom Great Rune", Id = 135 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Godrick's Great Rune", Id = 191 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Radahn's Great Rune", Id = 192 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Morgott's Great Rune", Id = 193 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Rykard's Great Rune", Id = 194 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Mohg's Great Rune", Id = 195 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Malenia's Great Rune", Id = 196 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Stonesword Key", Id = 8000 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Rusty Key", Id = 8010 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Lucent Baldachin's Blessing", Id = 8102 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Dectus Medallion (Left)", Id = 8105 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Dectus Medallion (Right)", Id = 8106 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Rold Medallion", Id = 8107 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Academy Glintstone Key", Id = 8109 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Carian Inverted Statue", Id = 8111 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Dark Moon Ring", Id = 8121 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Fingerprint Grape", Id = 8126 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Letter from Volcano Manor", Id = 8127 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Tonic of Forgetfulness", Id = 8128 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Serpent's Amnion", Id = 8129 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Rya's Necklace", Id = 8130 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Irina's Letter", Id = 8131 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Letter from Volcano Manor", Id = 8132 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Red Letter", Id = 8133 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Drawing-Room Key", Id = 8134 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Rya's Necklace", Id = 8136 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Volcano Manor Invitation", Id = 8137 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Amber Starlight", Id = 8142 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Seluvis's Introduction", Id = 8143 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Sellen's Primal Glintstone", Id = 8144 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Miniature Ranni", Id = 8146 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Asimi, Silver Tear", Id = 8147 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Godrick's Great Rune (Unpowered)", Id = 8148 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Radahn's Great Rune (Unpowered)", Id = 8149 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Morgott's Great Rune (Unpowered)", Id = 8150 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Rykard's Great Rune (Unpowered)", Id = 8151 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Mohg's Great Rune (Unpowered)", Id = 8152 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Malenia's Great Rune (Unpowered)", Id = 8153 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Lord of Blood's Favor", Id = 8154 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Lord of Blood's Favor", Id = 8155 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Burial Crow's Letter", Id = 8156 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Spirit Calling Bell", Id = 8158 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Fingerslayer Blade", Id = 8159 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Sewing Needle", Id = 8161 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Gold Sewing Needle", Id = 8162 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Tailoring Tools", Id = 8163 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Seluvis's Potion", Id = 8164 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Amber Draught", Id = 8166 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Letter to Patches", Id = 8167 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Dancer's Castanets", Id = 8168 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Sellian Sealbreaker", Id = 8169 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Chrysalids' Memento", Id = 8171 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Black Knifeprint", Id = 8172 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Letter to Bernahl", Id = 8173 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Academy Glintstone Key", Id = 8174 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Haligtree Secret Medallion (Left)", Id = 8175 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Haligtree Secret Medallion (Right)", Id = 8176 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Burial Crow's Letter", Id = 8181 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Mending Rune of Perfect Order", Id = 8182 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Mending Rune of the Death-Prince", Id = 8183 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Mending Rune of the Fell Curse", Id = 8184 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Larval Tear", Id = 8185 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Imbued Sword Key", Id = 8186 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Miniature Ranni", Id = 8187 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Golden Tailoring Tools", Id = 8188 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Iji's Confession", Id = 8189 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Knifeprint Clue", Id = 8190 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Cursemark of Death", Id = 8191 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Asimi's Husk", Id = 8192 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Seedbed Curse", Id = 8193 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "The Stormhawk King", Id = 8194 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Asimi, Silver Chrysalid", Id = 8195 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Unalloyed Gold Needle", Id = 8196 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Sewer-Gaol Key", Id = 8197 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Meeting Place Map", Id = 8198 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Discarded Palace Key", Id = 8199 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Iron Whetblade", Id = 8970 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Red-Hot Whetblade", Id = 8971 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Sanctified Whetblade", Id = 8972 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Glintstone Whetblade", Id = 8973 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Black Whetblade", Id = 8974 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Unalloyed Gold Needle", Id = 8975 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Unalloyed Gold Needle", Id = 8976 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Valkyrie's Prosthesis", Id = 8977 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Sellia's Secret", Id = 8978 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Beast Eye", Id = 8979 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Weathered Dagger", Id = 8980 }, + new() { Category = Category.Goods,GroupName = "Key Items", Name = "Great Rune of the Unborn", Id = 10080 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Homing Instinct Painting", Id = 8200 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Resurrection Painting", Id = 8201 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Champion's Song Painting", Id = 8202 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Sorcerer Painting", Id = 8203 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Prophecy Painting", Id = 8204 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Flightless Bird Painting", Id = 8205 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Redmane Painting", Id = 8206 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Zorayas's Letter", Id = 8221 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Rogier's Letter", Id = 8223 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: The Preceptor's Secret", Id = 8224 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Weathered Map", Id = 8225 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: The Preceptor's Secret", Id = 8226 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Weathered Map", Id = 8227 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Limgrave, West", Id = 8600 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Weeping Peninsula", Id = 8601 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Limgrave, East", Id = 8602 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Liurnia, East", Id = 8603 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Liurnia, North", Id = 8604 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Liurnia, West", Id = 8605 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Altus Plateau", Id = 8606 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Leyndell, Royal Capital", Id = 8607 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Mt. Gelmir", Id = 8608 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Caelid", Id = 8609 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Dragonbarrow", Id = 8610 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Mountaintops of the Giants, West", Id = 8611 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Mountaintops of the Giants, East", Id = 8612 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Ainsel River", Id = 8613 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Lake of Rot", Id = 8614 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Siofra River", Id = 8615 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Mohgwyn Palace", Id = 8616 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Deeproot Depths", Id = 8617 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Map: Consecrated Snowfield", Id = 8618 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Mirage Riddle", Id = 8660 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Hidden Cave", Id = 8700 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Imp Shades", Id = 8701 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Flask of Wondrous Physick", Id = 8702 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Stonedigger Trolls", Id = 8703 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Walking Mausoleum", Id = 8704 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Unseen Assassins", Id = 8705 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Great Coffins", Id = 8706 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Flame Chariots", Id = 8707 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Demi-human Mobs", Id = 8708 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Land Squirts", Id = 8709 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Gravity's Advantage", Id = 8710 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Revenants", Id = 8711 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Waypoint Ruins", Id = 8712 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Gateway", Id = 8713 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Miquella's Needle", Id = 8714 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Frenzied Flame Village", Id = 8715 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: The Lord of Frenzied Flame", Id = 8716 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Below the Capital", Id = 8717 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Hidden Cave", Id = 8750 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Imp Shades", Id = 8751 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Flask of Wondrous Physick", Id = 8752 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Stonedigger Trolls", Id = 8753 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Walking Mausoleum", Id = 8754 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Unseen Assassins", Id = 8755 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Great Coffins", Id = 8756 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Flame Chariots", Id = 8757 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Demi-human Mobs", Id = 8758 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Land Squirts", Id = 8759 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Gravity's Advantage", Id = 8760 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Revenants", Id = 8761 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Waypoint Ruins", Id = 8762 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Gateway", Id = 8763 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Frenzied Flame Village", Id = 8765 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "Note: Below the Capital", Id = 8767 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Sites of Grace", Id = 9100 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Sorceries and Incantations", Id = 9101 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Bows", Id = 9102 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Crouching", Id = 9103 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Stance-Breaking", Id = 9104 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Stakes of Marika", Id = 9105 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Guard Counters", Id = 9106 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About the Map", Id = 9107 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Guidance of Grace", Id = 9108 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Horseback Riding", Id = 9109 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Death", Id = 9110 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Summoning Spirits", Id = 9111 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Guarding", Id = 9112 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Item Crafting", Id = 9113 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Flask of Wondrous Physick", Id = 9115 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Adding Skills", Id = 9116 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Birdseye Telescopes", Id = 9117 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Spiritspring Jumping", Id = 9118 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Vanquishing Enemy Groups", Id = 9119 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Teardrop Scarabs", Id = 9120 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Summoning Other Players", Id = 9121 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Cooperative Multiplayer", Id = 9122 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Competitive Multiplayer", Id = 9123 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Invasion Multiplayer", Id = 9124 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Hunter Multiplayer", Id = 9125 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Summoning Pools", Id = 9126 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Monument Icon", Id = 9127 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Requesting Help from Hunters", Id = 9128 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Skills", Id = 9129 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Fast Travel to Sites of Grace", Id = 9130 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Strengthening Armaments", Id = 9131 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Roundtable Hold", Id = 9132 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Materials", Id = 9134 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Containers", Id = 9135 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Adding Affinities", Id = 9136 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Pouches", Id = 9137 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Dodging", Id = 9138 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Wielding Armaments", Id = 9140 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Great Runes", Id = 9141 }, + new() { Category = Category.Goods,GroupName = "Notes & Paintings", Name = "About Multiplayer", Id = 9195 }, + new() { Category = Category.Goods,GroupName = "Tools", Name = "Margit's Shackle", Id = 2140 }, + new() { Category = Category.Goods,GroupName = "Tools", Name = "Mohg's Shackle", Id = 2150 }, + new() { Category = Category.Goods,GroupName = "Tools", Name = "Pureblood Knight's Medal", Id = 2160 }, + new() { Category = Category.Goods,GroupName = "Tools", Name = "Prattling Pate Hello", Id = 2200 }, + new() { Category = Category.Goods,GroupName = "Tools", Name = "Prattling Pate Thank you", Id = 2201 }, + new() { Category = Category.Goods,GroupName = "Tools", Name = "Prattling Pate Apologies", Id = 2202 }, + new() { Category = Category.Goods,GroupName = "Tools", Name = "Prattling Pate Wonderful", Id = 2203 }, + new() { Category = Category.Goods,GroupName = "Tools", Name = "Prattling Pate Please help", Id = 2204 }, + new() { Category = Category.Goods,GroupName = "Tools", Name = "Prattling Pate My beloved", Id = 2205 }, + new() { Category = Category.Goods,GroupName = "Tools", Name = "Prattling Pate Let's get to it", Id = 2206 }, + new() { Category = Category.Goods,GroupName = "Tools", Name = "Prattling Pate You're beautiful", Id = 2207 }, + new() { Category = Category.Goods,GroupName = "Tools", Name = "Ancestral Infant's Head", Id = 3000 }, + new() { Category = Category.Goods,GroupName = "Tools", Name = "Omen Bairn", Id = 3010 }, + new() { Category = Category.Goods,GroupName = "Tools", Name = "Regal Omen Bairn", Id = 3011 }, + new() { Category = Category.Goods,GroupName = "Tools", Name = "Miranda's Prayer", Id = 3020 }, + new() { Category = Category.Goods,GroupName = "Tools", Name = "Mimic's Veil", Id = 3040 }, + new() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Golden Seed", Id = 10010 }, + new() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Sacred Tear", Id = 10020 }, + new() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Memory Stone", Id = 10030 }, + new() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Talisman Pouch", Id = 10040 }, + new() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Dragon Heart", Id = 10060 }, + new() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Lost Ashes of War", Id = 10070 }, + new() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Smithing Stone [1]", Id = 10100 }, + new() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Smithing Stone [2]", Id = 10101 }, + new() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Smithing Stone [3]", Id = 10102 }, + new() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Smithing Stone [4]", Id = 10103 }, + new() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Smithing Stone [5]", Id = 10104 }, + new() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Smithing Stone [6]", Id = 10105 }, + new() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Smithing Stone [7]", Id = 10106 }, + new() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Smithing Stone [8]", Id = 10107 }, + new() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Ancient Dragon Smithing Stone", Id = 10140 }, + new() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Somber Smithing Stone [1]", Id = 10160 }, + new() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Somber Smithing Stone [2]", Id = 10161 }, + new() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Somber Smithing Stone [3]", Id = 10162 }, + new() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Somber Smithing Stone [4]", Id = 10163 }, + new() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Somber Smithing Stone [5]", Id = 10164 }, + new() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Somber Smithing Stone [6]", Id = 10165 }, + new() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Somber Smithing Stone [7]", Id = 10166 }, + new() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Somber Smithing Stone [8]", Id = 10167 }, + new() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Somber Ancient Dragon Smithing Stone", Id = 10168 }, + new() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Somber Smithing Stone [9]", Id = 10200 }, + new() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Grave Glovewort [1]", Id = 10900 }, + new() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Grave Glovewort [2]", Id = 10901 }, + new() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Grave Glovewort [3]", Id = 10902 }, + new() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Grave Glovewort [4]", Id = 10903 }, + new() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Grave Glovewort [5]", Id = 10904 }, + new() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Grave Glovewort [6]", Id = 10905 }, + new() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Grave Glovewort [7]", Id = 10906 }, + new() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Grave Glovewort [8]", Id = 10907 }, + new() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Grave Glovewort [9]", Id = 10908 }, + new() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Great Grave Glovewort", Id = 10909 }, + new() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Ghost Glovewort [1]", Id = 10910 }, + new() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Ghost Glovewort [2]", Id = 10911 }, + new() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Ghost Glovewort [3]", Id = 10912 }, + new() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Ghost Glovewort [4]", Id = 10913 }, + new() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Ghost Glovewort [5]", Id = 10914 }, + new() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Ghost Glovewort [6]", Id = 10915 }, + new() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Ghost Glovewort [7]", Id = 10916 }, + new() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Ghost Glovewort [8]", Id = 10917 }, + new() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Ghost Glovewort [9]", Id = 10918 }, + new() { Category = Category.Goods,GroupName = "Upgrade Materials", Name = "Great Ghost Glovewort", Id = 10919 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Arrow", Id = 50000000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Fire", Id = 50010000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Serpent", Id = 50020000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Bone (Fletched)", Id = 50030000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - St. Trina's", Id = 50040000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Shattershard (Fletched)", Id = 50060000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Rainbow Stone (Fletched)", Id = 50080000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Golden", Id = 50090000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Dwelling", Id = 50100000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Bone", Id = 50110000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Firebone (Fletched)", Id = 50130000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Firebone", Id = 50140000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Poisonbone (Fletched)", Id = 50150000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Poisonbone", Id = 50160000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Sleepbone (Fletched)", Id = 50170000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Sleepbone", Id = 50180000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Stormwing Bone", Id = 50190000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Lightningbone (Fletched)", Id = 50200000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Lightningbone", Id = 50210000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Rainbow Stone", Id = 50220000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Shattershard", Id = 50230000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Spiritflame", Id = 50240000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Magicbone (Fletched)", Id = 50260000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Magicbone", Id = 50270000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Haligbone (Fletched)", Id = 50280000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Haligbone", Id = 50290000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Bloodbone (Fletched)", Id = 50300000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Bloodbone", Id = 50310000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Coldbone (Fletched)", Id = 50320000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Coldbone", Id = 50330000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Rotbone (Fletched)", Id = 50340000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Rotbone", Id = 50350000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Golem's Magic", Id = 51030000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Bone (Fletched)", Id = 51050000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Arrow - Bone", Id = 51060000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Bolt", Id = 52000000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Lightning ", Id = 52010000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Perfumer's ", Id = 52020000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Black-Key ", Id = 52030000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Burred ", Id = 52040000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Meteor ", Id = 52050000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Explosive ", Id = 52060000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Golden ", Id = 52070000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Lordsworn's ", Id = 52080000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Bone ", Id = 52090000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Firebone ", Id = 52100000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Lightningbone ", Id = 52110000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Magicbone ", Id = 52120000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Haligbone ", Id = 52130000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Poisonbone ", Id = 52140000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Bloodbone ", Id = 52150000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Coldbone ", Id = 52160000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Rotbone ", Id = 52170000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Sleepbone ", Id = 52180000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Bolt - Flaming ", Id = 52190000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Great Arrow - Great Arrow", Id = 51000000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Great Arrow - Golem's", Id = 51010000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Great Arrow - Golden", Id = 51020000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Great Arrow - Radahn's Spear", Id = 51040000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Greatbolt - Ballista Bolt", Id = 53000000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Greatbolt - Lightning", Id = 53010000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Greatbolt - Explosive", Id = 53020000 }, + new() { Category = Category.Weapons,GroupName = "Ammo", Name = "Greatbolt - Bone Ballista Bolt", Id = 53030000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Dagger", Id = 1000000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Black Knife", Id = 1010000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Parrying Dagger", Id = 1020000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Miséricorde", Id = 1030000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Reduvia", Id = 1040000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Crystal Knife", Id = 1050000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Celebrant's Sickle", Id = 1060000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Glintstone Kris", Id = 1070000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Scorpion's Stinger", Id = 1080000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Great Knife", Id = 1090000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Wakizashi", Id = 1100000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Cinquedea", Id = 1110000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Ivory Sickle", Id = 1130000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Bloodstained Dagger", Id = 1140000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Erdsteel Dagger", Id = 1150000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Blade of Calling", Id = 1160000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Longsword", Id = 2000000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Short Sword", Id = 2010000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Broadsword", Id = 2020000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Lordsworn's Straight Sword", Id = 2040000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Weathered Straight Sword", Id = 2050000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Ornamental Straight Sword", Id = 2060000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Golden Epitaph", Id = 2070000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Nox Flowing Sword", Id = 2080000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Inseparable Sword", Id = 2090000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Coded Sword", Id = 2110000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Sword of Night and Flame", Id = 2140000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Crystal Sword", Id = 2150000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Carian Knight's Sword", Id = 2180000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Sword of St. Trina", Id = 2190000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Miquellan Knight's Sword", Id = 2200000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Cane Sword", Id = 2210000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Regalia of Eochaid", Id = 2220000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Noble's Slender Sword", Id = 2230000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Warhawk's Talon", Id = 2240000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Lazuli Glintstone Sword", Id = 2250000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Rotten Crystal Sword", Id = 2260000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Bastard Sword", Id = 3000000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Forked Greatsword", Id = 3010000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Iron Greatsword", Id = 3020000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Lordsworn's Greatsword", Id = 3030000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Knight's Greatsword", Id = 3040000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Flamberge", Id = 3050000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Ordovis's Greatsword", Id = 3060000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Alabaster Lord's Sword", Id = 3070000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Banished Knight's Greatsword", Id = 3080000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Dark Moon Greatsword", Id = 3090000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Sacred Relic Sword", Id = 3100000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Helphen's Steeple", Id = 3130000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Blasphemous Blade", Id = 3140000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Marais Executioner's Sword", Id = 3150000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Sword of Milos", Id = 3160000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Golden Order Greatsword", Id = 3170000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Claymore", Id = 3180000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Gargoyle's Greatsword", Id = 3190000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Death's Poker", Id = 3200000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Gargoyle's Blackblade", Id = 3210000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Greatsword", Id = 4000000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Watchdog's Greatsword", Id = 4010000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Maliketh's Black Blade", Id = 4020000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Troll's Golden Sword", Id = 4030000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Zweihander", Id = 4040000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Starscourge Greatsword", Id = 4050000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Royal Greatsword", Id = 4060000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Godslayer's Greatsword", Id = 4070000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Ruins Greatsword", Id = 4080000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Grafted Blade Greatsword", Id = 4100000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Troll Knight's Sword", Id = 4110000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Estoc", Id = 5000000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Cleanrot Knight's Sword", Id = 5010000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Rapier", Id = 5020000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Rogier's Rapier", Id = 5030000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Antspur Rapier", Id = 5040000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Frozen Needle", Id = 5050000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Noble's Estoc", Id = 5060000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Bloody Helice", Id = 6000000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Godskin Stitcher", Id = 6010000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Great Épée", Id = 6020000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Dragon King's Cragblade", Id = 6040000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Falchion", Id = 7000000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Beastman's Curved Sword", Id = 7010000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Shotel", Id = 7020000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Shamshir", Id = 7030000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Bandit's Curved Sword", Id = 7040000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Magma Blade", Id = 7050000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Flowing Curved Sword", Id = 7060000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Wing of Astel", Id = 7070000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Scavenger's Curved Sword", Id = 7080000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Eclipse Shotel", Id = 7100000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Serpent-God's Curved Sword", Id = 7110000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Mantis Blade", Id = 7120000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Scimitar", Id = 7140000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Grossmesser", Id = 7150000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Onyx Lord's Greatsword", Id = 8010000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Dismounter", Id = 8020000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Bloodhound's Fang", Id = 8030000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Magma Wyrm's Scalesword", Id = 8040000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Zamor Curved Sword", Id = 8050000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Omen Cleaver", Id = 8060000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Monk's Flameblade", Id = 8070000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Beastman's Cleaver", Id = 8080000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Morgott's Cursed Sword", Id = 8100000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Uchigatana", Id = 9000000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Nagakiba", Id = 9010000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Hand of Malenia", Id = 9020000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Meteoric Ore Blade", Id = 9030000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Rivers of Blood", Id = 9040000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Moonveil", Id = 9060000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Dragonscale Blade", Id = 9070000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Serpentbone Blade", Id = 9080000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Twinblade", Id = 10000000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Godskin Peeler", Id = 10010000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Twinned Knight Swords", Id = 10030000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Eleonora's Poleblade", Id = 10050000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Gargoyle's Twinblade", Id = 10080000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Gargoyle's Black Blades", Id = 10090000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Mace", Id = 11000000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Club", Id = 11010000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Curved Club", Id = 11030000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Warpick", Id = 11040000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Morning Star", Id = 11050000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Varré's Bouquet", Id = 11060000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Spiked Club", Id = 11070000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Hammer", Id = 11080000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Monk's Flamemace", Id = 11090000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Envoy's Horn", Id = 11100000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Scepter of the All-Knowing", Id = 11110000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Nox Flowing Hammer", Id = 11120000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Ringed Finger", Id = 11130000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Stone Club", Id = 11140000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Marika's Hammer", Id = 11150000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Large Club", Id = 12000000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Greathorn Hammer", Id = 12010000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Battle Hammer", Id = 12020000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Great Mace", Id = 12060000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Curved Great Club", Id = 12080000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Celebrant's Skull", Id = 12130000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Pickaxe", Id = 12140000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Beastclaw Greathammer", Id = 12150000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Envoy's Long Horn", Id = 12160000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Cranial Vessel Candlestand", Id = 12170000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Great Stars", Id = 12180000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Brick Hammer", Id = 12190000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Devourer's Scepter", Id = 12200000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Rotten Battle Hammer", Id = 12210000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Nightrider Flail", Id = 13000000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Flail", Id = 13010000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Family Heads", Id = 13020000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Bastard's Stars", Id = 13030000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Chainlink Flail", Id = 13040000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Battle Axe", Id = 14000000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Forked Hatchet", Id = 14010000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Hand Axe", Id = 14020000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Jawbone Axe", Id = 14030000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Iron Cleaver", Id = 14040000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Ripple Blade", Id = 14050000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Celebrant's Cleaver", Id = 14060000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Icerind Hatchet", Id = 14080000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Highland Axe", Id = 14100000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Sacrificial Axe", Id = 14110000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Rosus' Axe", Id = 14120000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Stormhawk Axe", Id = 14140000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Greataxe", Id = 15000000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Warped Axe", Id = 15010000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Great Omenkiller Cleaver", Id = 15020000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Crescent Moon Axe", Id = 15030000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Axe of Godrick", Id = 15040000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Longhaft Axe", Id = 15050000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Rusted Anchor", Id = 15060000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Executioner's Greataxe", Id = 15080000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Winged Greathorn", Id = 15110000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Butchering Knife", Id = 15120000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Gargoyle's Great Axe", Id = 15130000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Gargoyle's Black Axe", Id = 15140000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Short Spear", Id = 16000000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Spear", Id = 16010000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Crystal Spear", Id = 16020000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Clayman's Harpoon", Id = 16030000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Cleanrot Spear", Id = 16040000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Partisan", Id = 16050000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Celebrant's Rib-Rake", Id = 16060000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Pike", Id = 16070000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Torchpole", Id = 16080000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Bolt of Gransax", Id = 16090000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Cross-Naginata", Id = 16110000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Death Ritual Spear", Id = 16120000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Inquisitor's Girandole", Id = 16130000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Spiked Spear", Id = 16140000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Iron Spear", Id = 16150000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Rotten Crystal Spear", Id = 16160000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Mohgwyn's Sacred Spear", Id = 17010000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Siluria's Tree", Id = 17020000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Serpent-Hunter", Id = 17030000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Vyke's War Spear", Id = 17050000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Lance", Id = 17060000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Treespear", Id = 17070000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Halberd", Id = 18000000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Pest's Glaive", Id = 18010000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Lucerne", Id = 18020000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Banished Knight's Halberd", Id = 18030000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Commander's Standard", Id = 18040000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Nightrider Glaive", Id = 18050000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Ripple Crescent Halberd", Id = 18060000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Vulgar Militia Saw", Id = 18070000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Golden Halberd", Id = 18080000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Glaive", Id = 18090000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Loretta's War Sickle", Id = 18100000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Guardian's Swordspear", Id = 18110000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Vulgar Militia Shotel", Id = 18130000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Dragon Halberd", Id = 18140000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Gargoyle's Halberd", Id = 18150000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Gargoyle's Black Halberd", Id = 18160000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Scythe", Id = 19000000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Grave Scythe", Id = 19010000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Halo Scythe", Id = 19020000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Winged Scythe", Id = 19060000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Whip", Id = 20000000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Thorned Whip", Id = 20020000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Magma Whip Candlestick", Id = 20030000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Hoslow's Petal Whip", Id = 20050000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Giant's Red Braid", Id = 20060000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Urumi", Id = 20070000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Caestus", Id = 21000000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Spiked Caestus", Id = 21010000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Grafted Dragon", Id = 21060000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Iron Ball", Id = 21070000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Star Fist", Id = 21080000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Katar", Id = 21100000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Clinging Bone", Id = 21110000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Veteran's Prosthesis", Id = 21120000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Cipher Pata", Id = 21130000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Hookclaws", Id = 22000000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Venomous Fang", Id = 22010000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Bloodhound Claws", Id = 22020000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Raptor Talons", Id = 22030000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Prelate's Inferno Crozier", Id = 23000000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Watchdog's Staff", Id = 23010000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Great Club", Id = 23020000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Envoy's Greathorn", Id = 23030000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Duelist Greataxe", Id = 23040000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Axe of Godfrey", Id = 23050000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Dragon Greatclaw", Id = 23060000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Staff of the Avatar", Id = 23070000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Fallingstar Beast Jaw", Id = 23080000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Ghiza's Wheel", Id = 23100000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Giant-Crusher", Id = 23110000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Golem's Halberd", Id = 23120000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Troll's Hammer", Id = 23130000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Rotten Staff", Id = 23140000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Rotten Greataxe", Id = 23150000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Torch", Id = 24000000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Steel-Wire Torch", Id = 24020000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "St. Trina's Torch", Id = 24040000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Ghostflame Torch", Id = 24050000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Beast-Repellent Torch", Id = 24060000 }, + new() { Category = Category.Weapons,GroupName = "Melee Weapons", Name = "Sentry's Torch", Id = 24070000 }, + new() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Shortbow", Id = 40000000 }, + new() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Misbegotten Shortbow", Id = 40010000 }, + new() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Red Branch Shortbow", Id = 40020000 }, + new() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Harp Bow", Id = 40030000 }, + new() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Composite Bow", Id = 40050000 }, + new() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Longbow", Id = 41000000 }, + new() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Albinauric Bow", Id = 41010000 }, + new() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Horn Bow", Id = 41020000 }, + new() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Erdtree Bow", Id = 41030000 }, + new() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Serpent Bow", Id = 41040000 }, + new() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Pulley Bow", Id = 41060000 }, + new() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Black Bow", Id = 41070000 }, + new() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Lion Greatbow", Id = 42000000 }, + new() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Golem Greatbow", Id = 42010000 }, + new() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Erdtree Greatbow", Id = 42030000 }, + new() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Greatbow", Id = 42040000 }, + new() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Soldier's Crossbow", Id = 43000000 }, + new() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Light Crossbow", Id = 43020000 }, + new() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Heavy Crossbow", Id = 43030000 }, + new() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Pulley Crossbow", Id = 43050000 }, + new() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Full Moon Crossbow", Id = 43060000 }, + new() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Arbalest", Id = 43080000 }, + new() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Crepus's Black-Key Crossbow", Id = 43110000 }, + new() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Hand Ballista", Id = 44000000 }, + new() { Category = Category.Weapons,GroupName = "Ranged Weapons", Name = "Jar Cannon", Id = 44010000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Buckler", Id = 30000000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Perfumer's Shield", Id = 30010000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Man-Serpent's Shield", Id = 30020000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Rickety Shield", Id = 30030000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Pillory Shield", Id = 30040000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Beastman's Jar-Shield", Id = 30060000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Red Thorn Roundshield", Id = 30070000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Scripture Wooden Shield", Id = 30080000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Riveted Wooden Shield", Id = 30090000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Blue-White Wooden Shield", Id = 30100000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Rift Shield", Id = 30110000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Iron Roundshield", Id = 30120000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Gilded Iron Shield", Id = 30130000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Ice Crest Shield", Id = 30140000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Smoldering Shield", Id = 30150000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Spiralhorn Shield", Id = 30190000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Coil Shield", Id = 30200000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Kite Shield", Id = 31000000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Marred Leather Shield", Id = 31010000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Marred Wooden Shield", Id = 31020000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Banished Knight's Shield", Id = 31030000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Albinauric Shield", Id = 31040000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Sun Realm Shield", Id = 31050000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Silver Mirrorshield", Id = 31060000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Round Shield", Id = 31070000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Scorpion Kite Shield", Id = 31080000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Twinbird Kite Shield", Id = 31090000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Blue-Gold Kite Shield", Id = 31100000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Brass Shield", Id = 31130000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Great Turtle Shell", Id = 31140000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Shield of the Guilty", Id = 31170000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Carian Knight's Shield", Id = 31190000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Large Leather Shield", Id = 31230000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Horse Crest Wooden Shield", Id = 31240000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Candletree Wooden Shield", Id = 31250000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Flame Crest Wooden Shield", Id = 31260000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Hawk Crest Wooden Shield", Id = 31270000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Beast Crest Heater Shield", Id = 31280000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Red Crest Heater Shield", Id = 31290000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Blue Crest Heater Shield", Id = 31300000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Eclipse Crest Heater Shield", Id = 31310000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Inverted Hawk Heater Shield", Id = 31320000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Heater Shield", Id = 31330000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Black Leather Shield", Id = 31340000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Dragon Towershield", Id = 32000000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Distinguished Greatshield", Id = 32020000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Crucible Hornshield", Id = 32030000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Dragonclaw Shield", Id = 32040000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Briar Greatshield", Id = 32050000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Erdtree Greatshield", Id = 32080000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Golden Beast Crest Shield", Id = 32090000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Jellyfish Shield", Id = 32120000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Fingerprint Stone Shield", Id = 32130000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Icon Shield", Id = 32140000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "One-Eyed Shield", Id = 32150000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Visage Shield", Id = 32160000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Spiked Palisade Shield", Id = 32170000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Manor Towershield", Id = 32190000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Crossed-Tree Towershield", Id = 32200000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Inverted Hawk Towershield", Id = 32210000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Ant's Skull Plate", Id = 32220000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Redmane Greatshield", Id = 32230000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Eclipse Crest Greatshield", Id = 32240000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Cuckoo Greatshield", Id = 32250000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Golden Greatshield", Id = 32260000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Gilded Greatshield", Id = 32270000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Haligtree Crest Greatshield", Id = 32280000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Wooden Greatshield", Id = 32290000 }, + new() { Category = Category.Weapons,GroupName = "Shields", Name = "Lordsworn's Shield", Id = 32300000 }, + new() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Glintstone Staff", Id = 33000000 }, + new() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Crystal Staff", Id = 33040000 }, + new() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Gelmir Glintstone Staff", Id = 33050000 }, + new() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Demi-Human Queen's Staff", Id = 33060000 }, + new() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Carian Regal Scepter", Id = 33090000 }, + new() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Digger's Staff", Id = 33120000 }, + new() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Astrologer's Staff", Id = 33130000 }, + new() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Carian Glintblade Staff", Id = 33170000 }, + new() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Prince of Death's Staff", Id = 33180000 }, + new() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Albinauric Staff", Id = 33190000 }, + new() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Academy Glintstone Staff", Id = 33200000 }, + new() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Carian Glintstone Staff", Id = 33210000 }, + new() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Azur's Glintstone Staff", Id = 33230000 }, + new() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Lusat's Glintstone Staff", Id = 33240000 }, + new() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Meteorite Staff", Id = 33250000 }, + new() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Staff of the Guilty", Id = 33260000 }, + new() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Rotten Crystal Staff", Id = 33270000 }, + new() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Staff of Loss", Id = 33280000 }, + new() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Finger Seal", Id = 34000000 }, + new() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Godslayer's Seal", Id = 34010000 }, + new() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Giant's Seal", Id = 34020000 }, + new() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Gravel Stone Seal", Id = 34030000 }, + new() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Clawmark Seal", Id = 34040000 }, + new() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Golden Order Seal", Id = 34060000 }, + new() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Erdtree Seal", Id = 34070000 }, + new() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Dragon Communion Seal", Id = 34080000 }, + new() { Category = Category.Weapons,GroupName = "Spell Tools", Name = "Frenzied Flame Seal", Id = 34090000 }, }); } diff --git a/src/SoulMemory/FlagWatcher.cs b/src/SoulMemory/FlagWatcher.cs index 86b4eed..49ea071 100644 --- a/src/SoulMemory/FlagWatcher.cs +++ b/src/SoulMemory/FlagWatcher.cs @@ -36,7 +36,7 @@ public FlagWatcher(IGame game, IEnumerable flags) } private readonly IGame _game; - private readonly Dictionary _flags = new Dictionary(); + private readonly Dictionary _flags = new(); public Dictionary Update() { diff --git a/src/SoulMemory/Memory/IMemory.cs b/src/SoulMemory/Memory/IMemory.cs index c78fb1f..1a4ccad 100644 --- a/src/SoulMemory/Memory/IMemory.cs +++ b/src/SoulMemory/Memory/IMemory.cs @@ -25,13 +25,9 @@ public interface IMemory void WriteBytes(long? offset, byte[] bytes); } -public class ByteArrayMemory : IMemory +public class ByteArrayMemory(byte[] data) : IMemory { - private readonly byte[] _data; - public ByteArrayMemory(byte[] data) - { - _data = data; - } + private readonly byte[] _data = data; public byte[] ReadBytes(long? offset, int length) { @@ -170,13 +166,13 @@ public static void WriteBool(this IMemory memory, long? offset, bool value) public static void WriteByte(this IMemory memory, long? offset, byte value) { - memory.WriteBytes(offset, new byte[] { value }); + memory.WriteBytes(offset, [value]); } public static void WriteSByte(this IMemory memory, long? offset, sbyte value) { var b = unchecked((byte)value); - memory.WriteBytes(offset, new byte[] { b }); + memory.WriteBytes(offset, [b]); } public static void WriteFloat(this IMemory memory, float value) => memory.WriteFloat(null, value); diff --git a/src/SoulMemory/Memory/MemoryScanner.cs b/src/SoulMemory/Memory/MemoryScanner.cs index a794faa..658768f 100644 --- a/src/SoulMemory/Memory/MemoryScanner.cs +++ b/src/SoulMemory/Memory/MemoryScanner.cs @@ -227,7 +227,7 @@ private static bool TryScanAbsolute(this byte[] bytes, long baseAddress, Pointer { var result = new List(); pattern = pattern.Replace("\r", string.Empty).Replace("\n", string.Empty); - var split = pattern.Split(new[] { " " }, StringSplitOptions.RemoveEmptyEntries); + var split = pattern.Split([" "], StringSplitOptions.RemoveEmptyEntries); foreach (var s in split) { diff --git a/src/SoulMemory/Memory/Pointer.cs b/src/SoulMemory/Memory/Pointer.cs index c47d49f..c1803c9 100644 --- a/src/SoulMemory/Memory/Pointer.cs +++ b/src/SoulMemory/Memory/Pointer.cs @@ -27,7 +27,7 @@ public class Pointer { public Process? Process; public long BaseAddress; - public List Offsets = new List(); + public List Offsets = []; public bool Is64Bit; private bool _initialized = false; @@ -300,13 +300,13 @@ public void WriteBool(long? offset, bool value) public void WriteByte(long? offset, byte value) { - WriteMemory(offset, new byte[] { value }); + WriteMemory(offset, [value]); } public void WriteSByte(long? offset, sbyte value) { var b = unchecked((byte)value); - WriteMemory(offset, new byte[] { b }); + WriteMemory(offset, [b]); } public void WriteBytes(long? offset, byte[] value) diff --git a/src/SoulMemory/Memory/PointerNode.cs b/src/SoulMemory/Memory/PointerNode.cs index b06c533..4ea772c 100644 --- a/src/SoulMemory/Memory/PointerNode.cs +++ b/src/SoulMemory/Memory/PointerNode.cs @@ -34,10 +34,10 @@ public class PointerNode public long? Offset; //used for pointers - public long[] Offsets = new long[] { }; - public Pointer Pointer = new Pointer(); + public long[] Offsets = []; + public Pointer Pointer = new(); - public List Pointers = new List(); + public List Pointers = []; public override string ToString() => Name; } diff --git a/src/SoulMemory/Memory/TreeBuilder.cs b/src/SoulMemory/Memory/TreeBuilder.cs index 474f751..0020f3a 100644 --- a/src/SoulMemory/Memory/TreeBuilder.cs +++ b/src/SoulMemory/Memory/TreeBuilder.cs @@ -25,7 +25,7 @@ namespace SoulMemory.Memory; /// public class TreeBuilder { - public List Tree = new List(); + public List Tree = []; public PointerAppender ScanRelative(string name, string pattern, long addressOffset, long instructionSize) { diff --git a/src/SoulMemory/MemoryV2/ByteArrayMemory.cs b/src/SoulMemory/MemoryV2/ByteArrayMemory.cs index 3b1fa42..fe79620 100644 --- a/src/SoulMemory/MemoryV2/ByteArrayMemory.cs +++ b/src/SoulMemory/MemoryV2/ByteArrayMemory.cs @@ -22,13 +22,9 @@ namespace SoulMemory.MemoryV2; /// /// IMemory access to an array of memory. Allows resolving pointers and reading data/writing data. /// -public class ByteArrayMemory : IMemory +public class ByteArrayMemory(byte[] data) : IMemory { - private readonly byte[] _data; - public ByteArrayMemory(byte[] data) - { - _data = data; - } + private readonly byte[] _data = data; public byte[] ReadBytes(long offset, int length) { diff --git a/src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs b/src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs index 89417b0..30a8167 100644 --- a/src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs +++ b/src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs @@ -117,13 +117,13 @@ public static string ReadUnicodeString(this IMemory memory, long offset, out int public static void WriteByte(this IMemory memory, long offset, byte value) { - memory.WriteBytes(offset, new byte[] { value }); + memory.WriteBytes(offset, [value]); } public static void WriteSByte(this IMemory memory, long offset, sbyte value) { var b = unchecked((byte)value); - memory.WriteBytes(offset, new byte[] { b }); + memory.WriteBytes(offset, [b]); } public static void WriteInt16(this IMemory memory, long offset, short value) diff --git a/src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs b/src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs index 22f9692..06c05df 100644 --- a/src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs +++ b/src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs @@ -163,7 +163,7 @@ public static bool TryScanAbsolute(this byte[] bytes, long baseAddress, PointerN { var result = new List(); pattern = pattern.Replace("\r", string.Empty).Replace("\n", string.Empty); - var split = pattern.Split(new[] { " " }, StringSplitOptions.RemoveEmptyEntries); + var split = pattern.Split([" "], StringSplitOptions.RemoveEmptyEntries); foreach (var s in split) { diff --git a/src/SoulMemory/MemoryV2/Memory/Pointer.cs b/src/SoulMemory/MemoryV2/Memory/Pointer.cs index eb1d48f..3f1c2bf 100644 --- a/src/SoulMemory/MemoryV2/Memory/Pointer.cs +++ b/src/SoulMemory/MemoryV2/Memory/Pointer.cs @@ -35,7 +35,7 @@ public Pointer(IMemory memory) } Memory = memory; - Path = new List(); + Path = []; } public Pointer(IMemory memory, params long[] offsets) diff --git a/src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerNode.cs b/src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerNode.cs index 0a9fe14..e439b40 100644 --- a/src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerNode.cs +++ b/src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerNode.cs @@ -35,10 +35,10 @@ public class PointerNode public long? Offset; //used for pointers - public long[] Offsets = new long[] { }; + public long[] Offsets = []; public Pointer Pointer = null!; - public List Pointers = new List(); + public List Pointers = []; public override string ToString() => Name; } diff --git a/src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerTreeBuilder.cs b/src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerTreeBuilder.cs index bb79cdf..f5c2081 100644 --- a/src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerTreeBuilder.cs +++ b/src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerTreeBuilder.cs @@ -26,7 +26,7 @@ namespace SoulMemory.MemoryV2.PointerTreeBuilder; /// public class PointerTreeBuilder { - public List Tree = new List(); + public List Tree = []; public PointerAppender ScanRelative(string name, string pattern, long addressOffset, long instructionSize) { diff --git a/src/SoulMemory/MemoryV2/Process/ProcessHook.cs b/src/SoulMemory/MemoryV2/Process/ProcessHook.cs index cf91e58..a2279ee 100644 --- a/src/SoulMemory/MemoryV2/Process/ProcessHook.cs +++ b/src/SoulMemory/MemoryV2/Process/ProcessHook.cs @@ -18,25 +18,19 @@ namespace SoulMemory.MemoryV2.Process; -public class ProcessHook : IProcessHook +public class ProcessHook(string name, IProcessWrapper? processWrapper = null) : IProcessHook { - public ProcessHook(string name, IProcessWrapper? processWrapper = null) - { - _name = name; - ProcessWrapper = processWrapper ?? new ProcessWrapper(); - } - - private readonly string _name; + private readonly string _name = name; - public IProcessWrapper ProcessWrapper { get; set; } + public IProcessWrapper ProcessWrapper { get; set; } = processWrapper ?? new ProcessWrapper(); public System.Diagnostics.Process? GetProcess() => ProcessWrapper.GetProcess(); public event Func> Hooked = null!; public event Action Exited = null!; - public PointerTreeBuilder.PointerTreeBuilder PointerTreeBuilder { get; set; } = new PointerTreeBuilder.PointerTreeBuilder(); + public PointerTreeBuilder.PointerTreeBuilder PointerTreeBuilder { get; set; } = new(); #region Refresh ================================================================================================================================================= diff --git a/src/SoulMemory/Parameters/ParamClassGenerator.cs b/src/SoulMemory/Parameters/ParamClassGenerator.cs index b1e737b..60bc729 100644 --- a/src/SoulMemory/Parameters/ParamClassGenerator.cs +++ b/src/SoulMemory/Parameters/ParamClassGenerator.cs @@ -250,20 +250,12 @@ private static List ParseFields(List preParsedFields) } - private struct PreParsedField + private struct PreParsedField(string name, ParamType paramType, int? bits = null, int? arraySize = null) { - public PreParsedField(string name, ParamType paramType, int? bits = null, int? arraySize = null) - { - Name = name; - ParamType = paramType; - Bits = bits; - ArraySize = arraySize; - } - - public ParamType ParamType; - public string Name; - public int? Bits; - public int? ArraySize; + public ParamType ParamType = paramType; + public string Name = name; + public int? Bits = bits; + public int? ArraySize = arraySize; public override string ToString() { @@ -299,7 +291,7 @@ public Bitfield(long offset, ParamType paramType) ParamType = paramType; } - public List<(string name, int size)> Bitfields = new List<(string name, int size)>(); + public List<(string name, int size)> Bitfields = []; } #endregion diff --git a/src/SoulMemory/Parameters/ParamData.cs b/src/SoulMemory/Parameters/ParamData.cs index 73c2fa8..d7bc3ac 100644 --- a/src/SoulMemory/Parameters/ParamData.cs +++ b/src/SoulMemory/Parameters/ParamData.cs @@ -21,7 +21,7 @@ namespace SoulMemory.Parameters; public static class ParamData { - public static readonly ReadOnlyDictionary ParamByteSize = new ReadOnlyDictionary(new Dictionary() + public static readonly ReadOnlyDictionary ParamByteSize = new(new Dictionary() { { ParamType.Dummy8, 1 }, { ParamType.U8, 1 }, @@ -33,7 +33,7 @@ public static class ParamData { ParamType.F32, 4 }, }); - public static readonly ReadOnlyDictionary ParamToSharpTypeString = new ReadOnlyDictionary(new Dictionary() + public static readonly ReadOnlyDictionary ParamToSharpTypeString = new(new Dictionary() { { ParamType.Dummy8, "byte" }, { ParamType.U8, "byte" }, @@ -45,7 +45,7 @@ public static class ParamData { ParamType.F32, "float" }, }); - public static readonly ReadOnlyDictionary ParamStrings = new ReadOnlyDictionary(new Dictionary() + public static readonly ReadOnlyDictionary ParamStrings = new(new Dictionary() { { "dummy8", ParamType.Dummy8 }, { "u8", ParamType.U8 }, diff --git a/src/SoulMemory/Parameters/ParamFieldAttribute.cs b/src/SoulMemory/Parameters/ParamFieldAttribute.cs index eff0ea6..ab0d416 100644 --- a/src/SoulMemory/Parameters/ParamFieldAttribute.cs +++ b/src/SoulMemory/Parameters/ParamFieldAttribute.cs @@ -37,16 +37,9 @@ public ParamFieldAttribute(int offset, ParamType paramType, int arraySize) } -internal class ParamBitFieldAttribute : System.Attribute +internal class ParamBitFieldAttribute(string paramFieldName, int bitsOffset, int bits) : System.Attribute { - public string ParamFieldName; - public int BitsOffset; - public int Bits; - - public ParamBitFieldAttribute(string paramFieldName, int bitsOffset, int bits) - { - ParamFieldName = paramFieldName; - BitsOffset = bitsOffset; - Bits = bits; - } + public string ParamFieldName = paramFieldName; + public int BitsOffset = bitsOffset; + public int Bits = bits; } diff --git a/src/SoulMemory/Result.cs b/src/SoulMemory/Result.cs index 678ec4f..e7187e2 100644 --- a/src/SoulMemory/Result.cs +++ b/src/SoulMemory/Result.cs @@ -319,14 +319,9 @@ public override string ToString() /// /// Container type, used in implicit conversions with the Result classes, for sugar syntax. /// -public class Container +public class Container(T t) { - public T Value; - - public Container(T t) - { - Value = t; - } + public T Value = t; public override string ToString() { @@ -337,12 +332,14 @@ public override string ToString() /// /// Container type for Ok, used to distinguish between Ok and Err in implicit conversions between result types. /// -public class ContainerOk : Container { public ContainerOk(T t) : base(t) { } } +public class ContainerOk(T t) : Container(t) { +} /// /// Container type for Err, used to distinguish between Ok and Err in implicit conversions between result types. /// -public class ContainerErr : Container { public ContainerErr(T t) : base(t) { } } +public class ContainerErr(T t) : Container(t) { +} /// /// Helper struct with 0 storage. Only used to trick the type system into allowing some sugar syntax @@ -353,7 +350,6 @@ public struct Empty { } /// Thrown when unwrapping a failed result /// [Serializable] -public class UnwrapException : Exception +public class UnwrapException(string message) : Exception(message) { - public UnwrapException(string message) : base(message) { } } \ No newline at end of file diff --git a/src/SoulMemory/Sekiro/Sekiro.cs b/src/SoulMemory/Sekiro/Sekiro.cs index 1a6503c..ca23ee6 100644 --- a/src/SoulMemory/Sekiro/Sekiro.cs +++ b/src/SoulMemory/Sekiro/Sekiro.cs @@ -26,20 +26,20 @@ namespace SoulMemory.Sekiro; public class Sekiro : IGame { private Process? _process; - private readonly Pointer _eventFlagMan = new Pointer(); - private readonly Pointer _fieldArea = new Pointer(); - private readonly Pointer _worldChrManImp = new Pointer(); - private readonly Pointer _igt = new Pointer(); - private readonly Pointer _position = new Pointer(); - private readonly Pointer _fadeSystem = new Pointer(); - private readonly Pointer _saveChecksum = new Pointer(); - private readonly Pointer _saveSteamId = new Pointer(); - private readonly Pointer _saveSlot = new Pointer(); - private readonly Pointer _showTutorialText = new Pointer(); - private readonly Pointer _cSMenuTutorialDialogLoadBuffer = new Pointer(); - private readonly Pointer _cSTutorialDialogLoadBuffer = new Pointer(); - private readonly Pointer _noLogo = new Pointer(); - private readonly Pointer _playerGameData = new Pointer(); + private readonly Pointer _eventFlagMan = new(); + private readonly Pointer _fieldArea = new(); + private readonly Pointer _worldChrManImp = new(); + private readonly Pointer _igt = new(); + private readonly Pointer _position = new(); + private readonly Pointer _fadeSystem = new(); + private readonly Pointer _saveChecksum = new(); + private readonly Pointer _saveSteamId = new(); + private readonly Pointer _saveSlot = new(); + private readonly Pointer _showTutorialText = new(); + private readonly Pointer _cSMenuTutorialDialogLoadBuffer = new(); + private readonly Pointer _cSTutorialDialogLoadBuffer = new(); + private readonly Pointer _noLogo = new(); + private readonly Pointer _playerGameData = new(); #region Refresh/init/reset ================================================================================================================================ @@ -132,8 +132,8 @@ private ResultErr InitPointers() return result; } - _showTutorialText.WriteBytes(21, new byte[]{0x90, 0x90, 0x90, 0x90, 0x90 }); - _showTutorialText.WriteBytes(31, new byte[]{0x90, 0x90, 0x90, 0x90, 0x90 }); + _showTutorialText.WriteBytes(21, [0x90, 0x90, 0x90, 0x90, 0x90]); + _showTutorialText.WriteBytes(31, [0x90, 0x90, 0x90, 0x90, 0x90]); _cSMenuTutorialDialogLoadBuffer.WriteByte(21, 0x75); _cSTutorialDialogLoadBuffer.WriteByte(24, 0x75); @@ -141,7 +141,7 @@ private ResultErr InitPointers() _noLogo.WriteByte(24, 0x75); //All credit goes to Uberhalit, for finding the byte patterns https://github.com/uberhalit/SimpleSekiroSavegameHelper - _saveChecksum.WriteBytes(null, new byte[] { 0x90, 0x90 }); + _saveChecksum.WriteBytes(null, [0x90, 0x90]); _saveSteamId.WriteByte(null, 0xeb); _saveSlot.WriteByte(null, 0xeb); @@ -421,19 +421,20 @@ private set } private bool _bitBlt = false; - private readonly object _bitBltLock = new object(); + private readonly object _bitBltLock = new(); - private readonly List _files = new List{ "sekiro.exe", "data1.bdt", "data2.bdt", "data3.bdt", "data4.bdt", "data5.bdt" }; + private readonly List _files = + ["sekiro.exe", "data1.bdt", "data2.bdt", "data3.bdt", "data4.bdt", "data5.bdt"]; - private readonly List _bitBltValues = new List - { + private readonly List _bitBltValues = + [ "0E 0A 84 07 C7 8E 89 6A 73 D8 F2 7D A3 D4 C0 CC", "BE B9 5E E1 B9 87 29 19 4D A3 05 FD EB 63 1A 70", "77 59 13 22 FC 7B 93 F8 8C 94 94 95 BC E9 D0 89", "8D 88 50 B7 69 62 40 F5 26 EA 90 CA A9 39 93 54", "97 31 E0 AB 34 BC 42 C3 F5 EE CF 64 F8 38 7B A9", - "6C 50 A5 31 44 52 25 9E 12 0C 3D 8B E2 66 3E 0D", - }; + "6C 50 A5 31 44 52 25 9E 12 0C 3D 8B E2 66 3E 0D" + ]; #endregion @@ -591,7 +592,7 @@ private bool InitB3Mods() 0x48, 0xBB //mov rbx, fracAddress }; igtFixCode.AddRange(BitConverter.GetBytes((long)frac)); - igtFixCode.AddRange(new byte[]{ + igtFixCode.AddRange([ 0x44, 0x0F, 0x10, 0xF0, //movups xmm14, xmm0 0xF3, 0x45, 0x0F, 0x5A, 0xF6, //cvtss2sd xmm14, xmm14 0xF2, 0x49, 0x0F, 0x2C, 0xC6, //cvttsd2si rax, xmm14 @@ -614,7 +615,7 @@ private bool InitB3Mods() 0x5B, //pop rbx 0xF3, 0x48, 0x0F, 0x2C, 0xC0, //cvttss2si rax,xmm0 0xE9 //jmp return igtFixEntryPoint +5 - }); + ]); int jmpTarget = (int)((igtFixEntryPoint+5)-(igtFixCodeLoc+103+5)); igtFixCode.AddRange(BitConverter.GetBytes(jmpTarget)); diff --git a/src/SoulMemory/VersionAttribute.cs b/src/SoulMemory/VersionAttribute.cs index 21e8ee8..46de7f6 100644 --- a/src/SoulMemory/VersionAttribute.cs +++ b/src/SoulMemory/VersionAttribute.cs @@ -18,13 +18,8 @@ namespace SoulMemory; -public class VersionAttribute : Attribute +public class VersionAttribute(string version) : Attribute { - public VersionAttribute(string version) - { - Version = version; - } - - public string Version { get; } - public Version GetVersion() => new Version(Version); + public string Version { get; } = version; + public Version GetVersion() => new(Version); } diff --git a/src/SoulSplitter/Hotkeys/GlobalHotKey.cs b/src/SoulSplitter/Hotkeys/GlobalHotKey.cs index 0f927b9..567c327 100644 --- a/src/SoulSplitter/Hotkeys/GlobalHotKey.cs +++ b/src/SoulSplitter/Hotkeys/GlobalHotKey.cs @@ -26,8 +26,8 @@ namespace SoulSplitter.Hotkeys; public static class GlobalHotKey { - private static readonly List<(int id, ModifierKeys modifier, Key key, Action action)> Hotkeys = new List<(int, ModifierKeys, Key, Action)>(); - private static readonly ManualResetEvent WindowReadyEvent = new ManualResetEvent(false); + private static readonly List<(int id, ModifierKeys modifier, Key key, Action action)> Hotkeys = []; + private static readonly ManualResetEvent WindowReadyEvent = new(false); public static volatile HotkeyForm? HotkeyForm; public static volatile IntPtr Handle; private static int _currentId; diff --git a/src/SoulSplitter/Logger.cs b/src/SoulSplitter/Logger.cs index 22ad6d6..ddbdf6b 100644 --- a/src/SoulSplitter/Logger.cs +++ b/src/SoulSplitter/Logger.cs @@ -23,7 +23,7 @@ namespace SoulSplitter; internal static class Logger { private static bool LoggingEnabled = true; - private static object _logLock = new object(); + private static object _logLock = new(); public static void SetLoggingEnabled(bool enable) { diff --git a/src/SoulSplitter/SoulComponent.cs b/src/SoulSplitter/SoulComponent.cs index 5591d09..e023f63 100644 --- a/src/SoulSplitter/SoulComponent.cs +++ b/src/SoulSplitter/SoulComponent.cs @@ -375,8 +375,8 @@ private void SelectGameFromLiveSplitState(LiveSplitState s) #region validate installation - private readonly List _installedFiles = new List() - { + private readonly List _installedFiles = + [ "SoulSplitter.dll", "SoulMemory.dll", "MaterialDesignColors.dll", @@ -386,8 +386,8 @@ private void SelectGameFromLiveSplitState(LiveSplitState s) "soulmemory_rs_x64.dll", "soulmemory_rs_x86.dll", "launcher_x64.exe", - "launcher_x86.exe", - }; + "launcher_x86.exe" + ]; private void ThrowIfInstallationInvalid() { diff --git a/src/SoulSplitter/Splitters/ArmoredCore6Splitter.cs b/src/SoulSplitter/Splitters/ArmoredCore6Splitter.cs index 83a4c07..4cb91a6 100644 --- a/src/SoulSplitter/Splitters/ArmoredCore6Splitter.cs +++ b/src/SoulSplitter/Splitters/ArmoredCore6Splitter.cs @@ -25,13 +25,9 @@ namespace SoulSplitter.Splitters; -public class ArmoredCore6Splitter : BaseSplitter +public class ArmoredCore6Splitter(LiveSplitState state, IGame game) : BaseSplitter(state, game) { - private readonly ArmoredCore6 _armoredCore6; - public ArmoredCore6Splitter(LiveSplitState state, IGame game) : base(state, game) - { - _armoredCore6 = (ArmoredCore6)game; - } + private readonly ArmoredCore6 _armoredCore6 = (ArmoredCore6)game; public override void OnStart() { @@ -73,7 +69,7 @@ public override ResultErr OnUpdate() #region Autosplitting - private List _splits = new List(); + private List _splits = []; private void UpdateAutoSplitter() { diff --git a/src/SoulSplitter/Splitters/DarkSouls1Splitter.cs b/src/SoulSplitter/Splitters/DarkSouls1Splitter.cs index d4ca696..f3e83e1 100644 --- a/src/SoulSplitter/Splitters/DarkSouls1Splitter.cs +++ b/src/SoulSplitter/Splitters/DarkSouls1Splitter.cs @@ -209,7 +209,7 @@ private void UpdateTimer() #region Autosplitting - private List _splits = new List(); + private List _splits = []; private void StartAutoSplitting() { @@ -271,10 +271,7 @@ public void UpdateAutoSplitter() break; case SplitType.Item: - if (inventory == null) - { - inventory = _darkSouls1.GetInventory(); - } + inventory ??= _darkSouls1.GetInventory(); s.SplitConditionMet = inventory.Any(i => i.ItemType == s.ItemState.ItemType); break; diff --git a/src/SoulSplitter/Splitters/DarkSouls2Splitter.cs b/src/SoulSplitter/Splitters/DarkSouls2Splitter.cs index a5ea544..4d19a54 100644 --- a/src/SoulSplitter/Splitters/DarkSouls2Splitter.cs +++ b/src/SoulSplitter/Splitters/DarkSouls2Splitter.cs @@ -167,7 +167,7 @@ private void UpdateTimer() #region Autosplitting - private List _splits = new List(); + private List _splits = []; public void ResetAutoSplitting() { diff --git a/src/SoulSplitter/Splitters/DarkSouls3Splitter.cs b/src/SoulSplitter/Splitters/DarkSouls3Splitter.cs index 4abe124..5e92ab7 100644 --- a/src/SoulSplitter/Splitters/DarkSouls3Splitter.cs +++ b/src/SoulSplitter/Splitters/DarkSouls3Splitter.cs @@ -185,7 +185,7 @@ private void ResetTimer() #region Autosplitting - private List _splits = new List(); + private List _splits = []; public void ResetAutoSplitting() { diff --git a/src/SoulSplitter/Splitters/EldenRingSplitter.cs b/src/SoulSplitter/Splitters/EldenRingSplitter.cs index a7126ea..1df3935 100644 --- a/src/SoulSplitter/Splitters/EldenRingSplitter.cs +++ b/src/SoulSplitter/Splitters/EldenRingSplitter.cs @@ -221,7 +221,7 @@ public void UpdateTimer(bool startAutomatically) #region Autosplitting - private List _splits = new List(); + private List _splits = []; public void ResetAutoSplitting() { diff --git a/src/SoulSplitter/Splitters/SekiroSplitter.cs b/src/SoulSplitter/Splitters/SekiroSplitter.cs index 3c79c25..3dc2f30 100644 --- a/src/SoulSplitter/Splitters/SekiroSplitter.cs +++ b/src/SoulSplitter/Splitters/SekiroSplitter.cs @@ -191,7 +191,7 @@ private void UpdateTimer() #region Autosplitting - private List _splits = new List(); + private List _splits = []; public void ResetAutoSplitting() { diff --git a/src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModel.cs b/src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModel.cs index f65db7f..5660e9f 100644 --- a/src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModel.cs +++ b/src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModel.cs @@ -210,16 +210,16 @@ public ItemState NewSplitItemState #region Static UI source data ============================================================================================================================================ - public static ObservableCollection> Bosses { get; set; } = new ObservableCollection>(Enum.GetValues(typeof(Boss)).Cast().Select(i => new EnumFlagViewModel(i))); + public static ObservableCollection> Bosses { get; set; } = new(Enum.GetValues(typeof(Boss)).Cast().Select(i => new EnumFlagViewModel(i))); public static ObservableCollection> KnownFlags { get; set; } = - new ObservableCollection>( + new( Enum .GetValues(typeof(KnownFlag)) .Cast() .Select(i => new EnumFlagViewModel(i)) ); - public static ObservableCollection> Bonfires { get; set; } = new ObservableCollection>(Enum.GetValues(typeof(Bonfire)).Cast().Select(i => new EnumFlagViewModel(i))); - public static ObservableCollection Items { get; set; } = new ObservableCollection(Item.AllItems); + public static ObservableCollection> Bonfires { get; set; } = new(Enum.GetValues(typeof(Bonfire)).Cast().Select(i => new EnumFlagViewModel(i))); + public static ObservableCollection Items { get; set; } = new(Item.AllItems); #endregion } diff --git a/src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs b/src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs index ae764d9..a1f01c7 100644 --- a/src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs +++ b/src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs @@ -140,28 +140,28 @@ public ItemState NewSplitItemState #endregion #region Static UI source data ============================================================================================================================================ - public ObservableCollection BooleanFlags { get; set; } = new ObservableCollection() - { - new BoolDescriptionViewModel(){ Description = "Start automatically", Value = true }, - new BoolDescriptionViewModel(){ Description = "Reset inventory indices", Value = true } - }; - - public static ObservableCollection> TimingTypes { get; set; } = new ObservableCollection>() - { + public ObservableCollection BooleanFlags { get; set; } = + [ + new BoolDescriptionViewModel() { Description = "Start automatically", Value = true }, + new BoolDescriptionViewModel() { Description = "Reset inventory indices", Value = true } + ]; + + public static ObservableCollection> TimingTypes { get; set; } = + [ new EnumFlagViewModel(TimingType.Immediate), new EnumFlagViewModel(TimingType.OnLoading), - new EnumFlagViewModel(TimingType.OnWarp), - }; + new EnumFlagViewModel(TimingType.OnWarp) + ]; - public static ObservableCollection> SplitTypes { get; set; } = new ObservableCollection>() - { + public static ObservableCollection> SplitTypes { get; set; } = + [ new EnumFlagViewModel(SplitType.Boss), new EnumFlagViewModel(SplitType.Attribute), new EnumFlagViewModel(SplitType.Bonfire), new EnumFlagViewModel(SplitType.Item), new EnumFlagViewModel(SplitType.Position), - new EnumFlagViewModel(SplitType.Flag), - }; + new EnumFlagViewModel(SplitType.Flag) + ]; public static ObservableCollection> Bosses { get; set; } = EnumFlagViewModel.GetEnumViewModels(); public static ObservableCollection> Attributes { get; set; } = EnumFlagViewModel.GetEnumViewModels(); diff --git a/src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs b/src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs index 509ed7e..7771160 100644 --- a/src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs +++ b/src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs @@ -42,7 +42,7 @@ public Vector3f CurrentPosition get => _currentPosition; set => this.SetField(ref _currentPosition, value); } - private Vector3f _currentPosition = new Vector3f(0f,0f,0f); + private Vector3f _currentPosition = new(0f,0f,0f); #region add/remove splits ============================================================================================================================================ @@ -133,7 +133,7 @@ public void RemoveSplit() } - public ObservableCollection Splits { get; set; } = new ObservableCollection(); + public ObservableCollection Splits { get; set; } = []; #endregion #region Properties for new splits ============================================================================================================================================ @@ -298,7 +298,7 @@ public void RestoreHierarchy() #region Static UI source data ============================================================================================================================================ - public static ObservableCollection> Bosses { get; set; } = new ObservableCollection>(Enum.GetValues(typeof(BossType)).Cast().Select(i => new EnumFlagViewModel(i))); + public static ObservableCollection> Bosses { get; set; } = new(Enum.GetValues(typeof(BossType)).Cast().Select(i => new EnumFlagViewModel(i))); #endregion diff --git a/src/SoulSplitter/UI/DarkSouls2/HierarchicalViewModel.cs b/src/SoulSplitter/UI/DarkSouls2/HierarchicalViewModel.cs index 5cb2b8b..dc7c88d 100644 --- a/src/SoulSplitter/UI/DarkSouls2/HierarchicalViewModel.cs +++ b/src/SoulSplitter/UI/DarkSouls2/HierarchicalViewModel.cs @@ -35,7 +35,7 @@ public TimingType TimingType } private TimingType _timingType; - public ObservableCollection Children { get; set; } = new ObservableCollection(); + public ObservableCollection Children { get; set; } = []; #region ICustomNotifyPropertyChanged @@ -64,7 +64,7 @@ public DarkSouls2SplitType SplitType private DarkSouls2SplitType _splitType; - public ObservableCollection Children { get; set; } = new ObservableCollection(); + public ObservableCollection Children { get; set; } = []; #region ICustomNotifyPropertyChanged diff --git a/src/SoulSplitter/UI/DarkSouls3/DarkSouls3ViewModel.cs b/src/SoulSplitter/UI/DarkSouls3/DarkSouls3ViewModel.cs index b896359..2323902 100644 --- a/src/SoulSplitter/UI/DarkSouls3/DarkSouls3ViewModel.cs +++ b/src/SoulSplitter/UI/DarkSouls3/DarkSouls3ViewModel.cs @@ -124,9 +124,9 @@ public bool LockIgtToZero #region Static UI source data ============================================================================================================================================ - public static ObservableCollection> Bosses { get; set; } = new ObservableCollection>(Enum.GetValues(typeof(Boss)).Cast().Select(i => new EnumFlagViewModel(i))); - public static ObservableCollection> Bonfires { get; set; } = new ObservableCollection>(Enum.GetValues(typeof(Bonfire)).Cast().Select(i => new EnumFlagViewModel(i))); - public static ObservableCollection> ItemPickups { get; set; } = new ObservableCollection>(Enum.GetValues(typeof(ItemPickup)).Cast().Select(i => new EnumFlagViewModel(i))); + public static ObservableCollection> Bosses { get; set; } = new(Enum.GetValues(typeof(Boss)).Cast().Select(i => new EnumFlagViewModel(i))); + public static ObservableCollection> Bonfires { get; set; } = new(Enum.GetValues(typeof(Bonfire)).Cast().Select(i => new EnumFlagViewModel(i))); + public static ObservableCollection> ItemPickups { get; set; } = new(Enum.GetValues(typeof(ItemPickup)).Cast().Select(i => new EnumFlagViewModel(i))); #endregion } diff --git a/src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs b/src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs index fa6b05a..47c9a51 100644 --- a/src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs +++ b/src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs @@ -51,7 +51,7 @@ public PositionViewModel CurrentPosition get => _currentPosition; set => this.SetField(ref _currentPosition, value); } - private PositionViewModel _currentPosition = new PositionViewModel(); + private PositionViewModel _currentPosition = new(); #region Adding new splits ================================================================================================================ @@ -223,7 +223,7 @@ public PositionViewModel NewSplitPosition EnabledAddSplit = _newSplitPosition != null; } } - private PositionViewModel _newSplitPosition = new PositionViewModel(); + private PositionViewModel _newSplitPosition = new(); [XmlIgnore] public bool VisiblePositionSplit @@ -439,13 +439,13 @@ public void RestoreHierarchy() #endregion - public ObservableCollection Splits { get; set; }= new ObservableCollection(); + public ObservableCollection Splits { get; set; }= []; //source lists - public static ObservableCollection Bosses { get; set; } = new ObservableCollection(Enum.GetValues(typeof(Boss)).Cast().Select(i => new BossViewModel(i))); - public static ObservableCollection Graces { get; set; } = new ObservableCollection(Enum.GetValues(typeof(Grace)).Cast().Select(i => new GraceViewModel(i))); - public static ObservableCollection ItemPickups { get; set; } = new ObservableCollection(Enum.GetValues(typeof(ItemPickup)).Cast().Select(i => new ItemPickupViewModel(i))); - public static ObservableCollection KnownFlags { get; set; } = new ObservableCollection(Enum.GetValues(typeof(KnownFlag)).Cast().Select(i => new KnownFlagViewModel(i))); + public static ObservableCollection Bosses { get; set; } = new(Enum.GetValues(typeof(Boss)).Cast().Select(i => new BossViewModel(i))); + public static ObservableCollection Graces { get; set; } = new(Enum.GetValues(typeof(Grace)).Cast().Select(i => new GraceViewModel(i))); + public static ObservableCollection ItemPickups { get; set; } = new(Enum.GetValues(typeof(ItemPickup)).Cast().Select(i => new ItemPickupViewModel(i))); + public static ObservableCollection KnownFlags { get; set; } = new(Enum.GetValues(typeof(KnownFlag)).Cast().Select(i => new KnownFlagViewModel(i))); #region ICustomNotifyPropertyChanged diff --git a/src/SoulSplitter/UI/EldenRing/PositionViewModel.cs b/src/SoulSplitter/UI/EldenRing/PositionViewModel.cs index f7ffe6f..9babbb6 100644 --- a/src/SoulSplitter/UI/EldenRing/PositionViewModel.cs +++ b/src/SoulSplitter/UI/EldenRing/PositionViewModel.cs @@ -23,7 +23,7 @@ namespace SoulSplitter.UI.EldenRing; public class PositionViewModel : ICustomNotifyPropertyChanged { - public readonly Position Position = new Position(); + public readonly Position Position = new(); public byte Area diff --git a/src/SoulSplitter/UI/EldenRing/SplitViewModel.cs b/src/SoulSplitter/UI/EldenRing/SplitViewModel.cs index 3f1b7b7..690854d 100644 --- a/src/SoulSplitter/UI/EldenRing/SplitViewModel.cs +++ b/src/SoulSplitter/UI/EldenRing/SplitViewModel.cs @@ -33,7 +33,7 @@ public TimingType TimingType } private TimingType _timingType; - public ObservableCollection Children { get; set; } = new ObservableCollection(); + public ObservableCollection Children { get; set; } = []; #region ICustomNotifyPropertyChanged @@ -60,7 +60,7 @@ public EldenRingSplitType EldenRingSplitType } private EldenRingSplitType _eldenRingSplitType; - public ObservableCollection Children { get; set; } = new ObservableCollection(); + public ObservableCollection Children { get; set; } = []; #region ICustomNotifyPropertyChanged diff --git a/src/SoulSplitter/UI/Generic/BaseViewModel.cs b/src/SoulSplitter/UI/Generic/BaseViewModel.cs index b3eea5f..63dade9 100644 --- a/src/SoulSplitter/UI/Generic/BaseViewModel.cs +++ b/src/SoulSplitter/UI/Generic/BaseViewModel.cs @@ -150,7 +150,7 @@ public SplitsViewModel SplitsViewModel get => _splitsViewModel; set => this.SetField(ref _splitsViewModel, value); } - private SplitsViewModel _splitsViewModel = new SplitsViewModel(); + private SplitsViewModel _splitsViewModel = new(); [XmlIgnore] public VectorSize Position @@ -166,7 +166,7 @@ public Vector3f CurrentPosition get => _currentPosition; set => this.SetField(ref _currentPosition, value); } - private Vector3f _currentPosition = new Vector3f(0f, 0f, 0f); + private Vector3f _currentPosition = new(0f, 0f, 0f); [XmlIgnore] public FlagDescription FlagDescription diff --git a/src/SoulSplitter/UI/Generic/FlagTrackerViewModel.cs b/src/SoulSplitter/UI/Generic/FlagTrackerViewModel.cs index 853c380..6ddc97a 100644 --- a/src/SoulSplitter/UI/Generic/FlagTrackerViewModel.cs +++ b/src/SoulSplitter/UI/Generic/FlagTrackerViewModel.cs @@ -41,7 +41,7 @@ public string Progress } private string _progress = null!; - public ObservableCollection EventFlags { get; set; } = new ObservableCollection(); + public ObservableCollection EventFlags { get; set; } = []; #region ICustomNotifyPropertyChanged @@ -238,7 +238,7 @@ public void Reset() #endregion #region UI bindable properties - public ObservableCollection EventFlagCategories { get; set; } = new ObservableCollection(); + public ObservableCollection EventFlagCategories { get; set; } = []; public EventFlagTrackerDisplayMode DisplayMode { @@ -338,7 +338,7 @@ public FlagDescription FlagDescription get => _flagDescription; set => this.SetField(ref _flagDescription, value); } - private FlagDescription _flagDescription = new FlagDescription(); + private FlagDescription _flagDescription = new(); [XmlIgnore] public FlagDescription? SelectedFlagDescription diff --git a/src/SoulSplitter/UI/Generic/HierarchicalViewModel.cs b/src/SoulSplitter/UI/Generic/HierarchicalViewModel.cs index b142f9f..c238d18 100644 --- a/src/SoulSplitter/UI/Generic/HierarchicalViewModel.cs +++ b/src/SoulSplitter/UI/Generic/HierarchicalViewModel.cs @@ -95,7 +95,7 @@ public SplitViewModel? SelectedSplit private SplitViewModel? _selectedSplit = null!; - public ObservableCollection Splits { get; set; } = new ObservableCollection(); + public ObservableCollection Splits { get; set; } = []; #region ICustomNotifyPropertyChanged @@ -119,7 +119,7 @@ public TimingType TimingType } private TimingType _timingType; - public ObservableCollection Children { get; set; } = new ObservableCollection(); + public ObservableCollection Children { get; set; } = []; #region ICustomNotifyPropertyChanged @@ -147,7 +147,7 @@ public SplitType SplitType private SplitType _splitType; - public ObservableCollection Children { get; set; } = new ObservableCollection(); + public ObservableCollection Children { get; set; } = []; #region ICustomNotifyPropertyChanged diff --git a/src/SoulSplitter/UI/Generic/RelayCommand.cs b/src/SoulSplitter/UI/Generic/RelayCommand.cs index 9e59245..742c0fe 100644 --- a/src/SoulSplitter/UI/Generic/RelayCommand.cs +++ b/src/SoulSplitter/UI/Generic/RelayCommand.cs @@ -19,7 +19,7 @@ namespace SoulSplitter.UI.Generic; -public class RelayCommand : ICommand +public class RelayCommand(Action execute, Func? canExecute) : ICommand { public RelayCommand(Action execute) : this((param) => execute(), (Func?)null) { } public RelayCommand(Action execute, Func canExecute) : this((param) => execute(), (param) => canExecute()) { } @@ -27,18 +27,8 @@ public RelayCommand(Action execute, Func canExecute) : this((para public RelayCommand(Action execute) : this(execute, (Func?)null) { } public RelayCommand(Action execute, Func canExecute) : this(execute, (param) => canExecute()) { } - - - - - public RelayCommand(Action execute, Func? canExecute) - { - _execute = execute; - _canExecute = canExecute; - } - - private readonly Action _execute; - private readonly Func? _canExecute; + private readonly Action _execute = execute; + private readonly Func? _canExecute = canExecute; public event EventHandler CanExecuteChanged { diff --git a/src/SoulSplitter/UI/Generic/VectorSize.cs b/src/SoulSplitter/UI/Generic/VectorSize.cs index 733729f..d0f28e3 100644 --- a/src/SoulSplitter/UI/Generic/VectorSize.cs +++ b/src/SoulSplitter/UI/Generic/VectorSize.cs @@ -26,7 +26,7 @@ public Vector3f Position get => _position; set => this.SetField(ref _position, value); } - private Vector3f _position = new Vector3f(0,0,0); + private Vector3f _position = new(0,0,0); public float Size { diff --git a/src/SoulSplitter/UI/MainViewModel.cs b/src/SoulSplitter/UI/MainViewModel.cs index 1fb741c..93efdec 100644 --- a/src/SoulSplitter/UI/MainViewModel.cs +++ b/src/SoulSplitter/UI/MainViewModel.cs @@ -41,14 +41,14 @@ public class MainViewModel : ICustomNotifyPropertyChanged { public MainViewModel() { - CommandTroubleShooting = new RelayCommand(OpenTroubleshootingWebpage, (o) => true); - CommandRunEventFlagLogger = new RelayCommand(RunEventFlagLogger, (o) => true); - CommandClearErrors = new RelayCommand(ClearErrors, (o) => Errors.Count > 0); - CommandAddError = new RelayCommand(AddErrorCommand, (o) => true); - CommandShowErrors = new RelayCommand(ShowErrorWindow, (o) => true); - CommandOpenFlagTrackerWindow = new RelayCommand(OpenFlagTrackerWindow, (o) => true); - CommandImportSettingsFromFile = new RelayCommand(ImportSettings, (o) => true); - CommandExportSettingsFromFile = new RelayCommand(ExportSettings, (o) => true); + CommandTroubleShooting = new RelayCommand(OpenTroubleshootingWebpage, (_) => true); + CommandRunEventFlagLogger = new RelayCommand(RunEventFlagLogger, (_) => true); + CommandClearErrors = new RelayCommand(ClearErrors, (_) => Errors.Count > 0); + CommandAddError = new RelayCommand(AddErrorCommand, (_) => true); + CommandShowErrors = new RelayCommand(ShowErrorWindow, (_) => true); + CommandOpenFlagTrackerWindow = new RelayCommand(OpenFlagTrackerWindow, (_) => true); + CommandImportSettingsFromFile = new RelayCommand(ImportSettings, (_) => true); + CommandExportSettingsFromFile = new RelayCommand(ExportSettings, (_) => true); } public void Update(MainViewModel mainViewModel) @@ -80,49 +80,49 @@ public DarkSouls1ViewModel DarkSouls1ViewModel get => _darkSouls1ViewModel; set => this.SetField(ref _darkSouls1ViewModel, value); } - private DarkSouls1ViewModel _darkSouls1ViewModel = new DarkSouls1ViewModel(); + private DarkSouls1ViewModel _darkSouls1ViewModel = new(); public DarkSouls2ViewModel DarkSouls2ViewModel { get => _darkSouls2ViewModel; set => this.SetField(ref _darkSouls2ViewModel, value); } - private DarkSouls2ViewModel _darkSouls2ViewModel = new DarkSouls2ViewModel(); + private DarkSouls2ViewModel _darkSouls2ViewModel = new(); public DarkSouls3ViewModel DarkSouls3ViewModel { get => _darkSouls3ViewModel; set => this.SetField(ref _darkSouls3ViewModel, value); } - private DarkSouls3ViewModel _darkSouls3ViewModel = new DarkSouls3ViewModel(); + private DarkSouls3ViewModel _darkSouls3ViewModel = new(); public SekiroViewModel SekiroViewModel { get => _sekiroViewModel; set => this.SetField(ref _sekiroViewModel, value); } - private SekiroViewModel _sekiroViewModel = new SekiroViewModel(); + private SekiroViewModel _sekiroViewModel = new(); public EldenRingViewModel EldenRingViewModel { get => _eldenRingViewModel; set => this.SetField(ref _eldenRingViewModel, value); } - private EldenRingViewModel _eldenRingViewModel = new EldenRingViewModel(); + private EldenRingViewModel _eldenRingViewModel = new(); public ArmoredCore6ViewModel ArmoredCore6ViewModel { get => _armoredCore6ViewModel; set => this.SetField(ref _armoredCore6ViewModel, value); } - private ArmoredCore6ViewModel _armoredCore6ViewModel = new ArmoredCore6ViewModel(); + private ArmoredCore6ViewModel _armoredCore6ViewModel = new(); public FlagTrackerViewModel FlagTrackerViewModel { get => _flagTrackerViewModel; set => this.SetField(ref _flagTrackerViewModel, value); } - private FlagTrackerViewModel _flagTrackerViewModel = new FlagTrackerViewModel(); + private FlagTrackerViewModel _flagTrackerViewModel = new(); #endregion @@ -158,7 +158,7 @@ public void AddRefreshError(RefreshError error) var errorViewModel = new ErrorViewModel { DateTime = DateTime.Now, - Error = $"{error.Message ?? ""} {error.Exception?.ToString() ?? ""}", + Error = error.ToString(), }; AddError(errorViewModel); } @@ -225,7 +225,7 @@ public RelayCommand CommandShowErrors } private RelayCommand _commandShowErrors = null!; - private ErrorWindow _errorWindow = null!; + private ErrorWindow? _errorWindow; private void ShowErrorWindow() { if(_errorWindow == null) @@ -274,7 +274,7 @@ public Visibility BadgeVisibilityInverse private Visibility _badgeVisibilityInverse = Visibility.Visible; [XmlIgnore] - public ObservableCollection Errors { get; set; } = new ObservableCollection(); + public ObservableCollection Errors { get; set; } = []; #endregion @@ -315,7 +315,7 @@ public RelayCommand CommandOpenFlagTrackerWindow } private RelayCommand _commandOpenFlagTrackerWindow = null!; - private FlagTrackerWindow _flagTrackerWindow = null!; + private FlagTrackerWindow? _flagTrackerWindow; private void OpenFlagTrackerWindow() { if (_flagTrackerWindow == null) @@ -412,13 +412,11 @@ public string Serialize() }; var xml = ""; - using (var stream = new StringWriter()) - using (var writer = XmlWriter.Create(stream, settings)) - { - var serializer = new XmlSerializer(GetType()); - serializer.Serialize(writer, this); - xml = stream.ToString(); - } + using var stream = new StringWriter(); + using var writer = XmlWriter.Create(stream, settings); + var serializer = new XmlSerializer(GetType()); + serializer.Serialize(writer, this); + xml = stream.ToString(); return xml; } diff --git a/src/SoulSplitter/UI/Sekiro/SekiroViewModel.cs b/src/SoulSplitter/UI/Sekiro/SekiroViewModel.cs index bd398bc..d498488 100644 --- a/src/SoulSplitter/UI/Sekiro/SekiroViewModel.cs +++ b/src/SoulSplitter/UI/Sekiro/SekiroViewModel.cs @@ -101,8 +101,8 @@ private void AddSplit() #region Static UI source data ============================================================================================================================================ - public static ObservableCollection> Bosses { get; set; } = new ObservableCollection>(Enum.GetValues(typeof(Boss)).Cast().Select(i => new EnumFlagViewModel(i))); - public static ObservableCollection> Idols { get; set; } = new ObservableCollection>(Enum.GetValues(typeof(Idol)).Cast().Select(i => new EnumFlagViewModel(i))); + public static ObservableCollection> Bosses { get; set; } = new(Enum.GetValues(typeof(Boss)).Cast().Select(i => new EnumFlagViewModel(i))); + public static ObservableCollection> Idols { get; set; } = new(Enum.GetValues(typeof(Idol)).Cast().Select(i => new EnumFlagViewModel(i))); #endregion } diff --git a/src/SoulSplitter/UI/Validation/TextToRgbHexValidator.cs b/src/SoulSplitter/UI/Validation/TextToRgbHexValidator.cs index bbffddb..87726a3 100644 --- a/src/SoulSplitter/UI/Validation/TextToRgbHexValidator.cs +++ b/src/SoulSplitter/UI/Validation/TextToRgbHexValidator.cs @@ -22,7 +22,7 @@ namespace SoulSplitter.UI.Validation; public class TextToRgbHexValidator : ValidationRule { - private static readonly Regex RgbValidator = new Regex("^#(?:[0-9a-fA-F]{3}){1,2}$"); + private static readonly Regex RgbValidator = new("^#(?:[0-9a-fA-F]{3}){1,2}$"); public override ValidationResult Validate(object value, CultureInfo cultureInfo) { diff --git a/src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs b/src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs index c8c697b..077f010 100644 --- a/src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs +++ b/src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs @@ -92,13 +92,13 @@ private void AddSplitFunc(object? parameter) switch (SelectedSplitType) { case SplitType.Boss: - flatSplit.Split = SelectedBoss; + flatSplit.Split = SelectedBoss!; break; case SplitType.Attribute: if (Game == Game.DarkSouls1) { - flatSplit.Split = new Splits.DarkSouls1.Attribute(){ AttributeType = (SoulMemory.DarkSouls1.Attribute)SelectedAttribute, Level = AttributeLevel}; + flatSplit.Split = new Splits.DarkSouls1.Attribute(){ AttributeType = (SoulMemory.DarkSouls1.Attribute)SelectedAttribute!, Level = AttributeLevel}; break; } break; @@ -106,25 +106,25 @@ private void AddSplitFunc(object? parameter) case SplitType.Bonfire: if (Game == Game.DarkSouls1) { - flatSplit.Split = new Splits.DarkSouls1.BonfireState(){ Bonfire = (SoulMemory.DarkSouls1.Bonfire)SelectedBonfire, State = (SoulMemory.DarkSouls1.BonfireState)SelectedBonfireState }; + flatSplit.Split = new Splits.DarkSouls1.BonfireState(){ Bonfire = (SoulMemory.DarkSouls1.Bonfire)SelectedBonfire!, State = (SoulMemory.DarkSouls1.BonfireState)SelectedBonfireState! }; break; } break; case SplitType.Item: - flatSplit.Split = SelectedItem; + flatSplit.Split = SelectedItem!; break; case SplitType.Position: - flatSplit.Split = new VectorSize{Description = Position.Description, Position = new Vector3f(Position.Position.X, Position.Position.Y, Position.Position.Z), Size = Position.Size}; + flatSplit.Split = new VectorSize{Description = Position!.Description, Position = new Vector3f(Position.Position.X, Position.Position.Y, Position.Position.Z), Size = Position.Size}; break; case SplitType.KnownFlag: - flatSplit.Split = SelectedKnownFlag; + flatSplit.Split = SelectedKnownFlag!; break; case SplitType.Flag: - flatSplit.Split = new FlagDescription{Description = FlagDescription.Description, Flag = FlagDescription.Flag}; + flatSplit.Split = new FlagDescription{Description = FlagDescription!.Description, Flag = FlagDescription.Flag}; break; default: @@ -291,7 +291,10 @@ public RelayCommand CopyGamePositionCommand private void CopyGamePosition(object? param) { - Position.Position = GamePosition.Clone(); + if (Position != null) + { + Position.Position = GamePosition.Clone(); + } } #endregion @@ -311,41 +314,41 @@ public SplitType SelectedSplitType } private SplitType _selectedSplitType = SplitType.Boss; - public Enum SelectedBoss + public Enum? SelectedBoss { get => _selectedBoss; set => this.SetField(ref _selectedBoss, value); } - private Enum _selectedBoss = null!; + private Enum? _selectedBoss = null!; - public Enum SelectedKnownFlag + public Enum? SelectedKnownFlag { get => _selectedKnownFlag; set => this.SetField(ref _selectedKnownFlag, value); } - private Enum _selectedKnownFlag = null!; + private Enum? _selectedKnownFlag = null!; - public Enum SelectedBonfire + public Enum? SelectedBonfire { get => _selectedBonfire; set => this.SetField(ref _selectedBonfire, value); } - private Enum _selectedBonfire = null!; + private Enum? _selectedBonfire = null!; //For dark souls 1 specifically - public Enum SelectedBonfireState + public Enum? SelectedBonfireState { get => _selectedBonfireState; set => this.SetField(ref _selectedBonfireState, value); } - private Enum _selectedBonfireState = null!; + private Enum? _selectedBonfireState = null!; - public Enum SelectedAttribute + public Enum? SelectedAttribute { get => _selectedAttribute; set => this.SetField(ref _selectedAttribute, value); } - private Enum _selectedAttribute = null!; + private Enum? _selectedAttribute = null!; public int AttributeLevel { @@ -354,26 +357,26 @@ public int AttributeLevel } private int _attributeLevel = 10; - public Enum SelectedItem + public Enum? SelectedItem { get => _selectedItem; set => this.SetField(ref _selectedItem, value); } - private Enum _selectedItem = null!; + private Enum? _selectedItem = null!; - public VectorSize Position + public VectorSize? Position { get => _position; set => this.SetField(ref _position, value); } - private VectorSize _position = new VectorSize(); + private VectorSize? _position; - public FlagDescription FlagDescription + public FlagDescription? FlagDescription { get => _flagDescription; set => this.SetField(ref _flagDescription, value); } - private FlagDescription _flagDescription = new FlagDescription(); + private FlagDescription? _flagDescription; #endregion diff --git a/src/SoulSplitter/ViewModels/Games/ArmoredCore6ViewModel.cs b/src/SoulSplitter/ViewModels/Games/ArmoredCore6ViewModel.cs index 5388ae6..52a93a7 100644 --- a/src/SoulSplitter/ViewModels/Games/ArmoredCore6ViewModel.cs +++ b/src/SoulSplitter/ViewModels/Games/ArmoredCore6ViewModel.cs @@ -54,16 +54,16 @@ private void RemoveSplit(object? o) #region Static UI source data ============================================================================================================================================ - public static ObservableCollection> TimingTypes { get; set; } = new ObservableCollection>() - { + public static ObservableCollection> TimingTypes { get; set; } = + [ new EnumFlagViewModel(TimingType.Immediate), - new EnumFlagViewModel(TimingType.OnLoading), - }; + new EnumFlagViewModel(TimingType.OnLoading) + ]; - public static ObservableCollection> SplitTypes { get; set; } = new ObservableCollection>() - { - new EnumFlagViewModel(SplitType.Flag), - }; + public static ObservableCollection> SplitTypes { get; set; } = + [ + new EnumFlagViewModel(SplitType.Flag) + ]; #endregion } diff --git a/tests/SoulMemory.Tests/MemoryV2/ProcessHookTests.cs b/tests/SoulMemory.Tests/MemoryV2/ProcessHookTests.cs index a32d3bf..774d764 100644 --- a/tests/SoulMemory.Tests/MemoryV2/ProcessHookTests.cs +++ b/tests/SoulMemory.Tests/MemoryV2/ProcessHookTests.cs @@ -48,7 +48,7 @@ public void Init() private Mock _mockProcessWrapper = null!; private int _hookedInvokedCount = 0; private int _exitedInvokedCount = 0; - public List ExitedExceptions = new List(); + public List ExitedExceptions = new(); [TestMethod] diff --git a/tests/SoulMemory.Tests/Mocks/ProcessHookMock.cs b/tests/SoulMemory.Tests/Mocks/ProcessHookMock.cs index 24bb8fd..ca12af0 100644 --- a/tests/SoulMemory.Tests/Mocks/ProcessHookMock.cs +++ b/tests/SoulMemory.Tests/Mocks/ProcessHookMock.cs @@ -41,7 +41,7 @@ public ProcessHookMock() }; } - public Dictionary Data = new Dictionary(); + public Dictionary Data = new(); public byte[] ReadBytes(long offset, int length) { @@ -78,7 +78,7 @@ public void WriteBytes(long offset, byte[] bytes) return null; } - public List<(string name, int index, long address)> PointerValues = new List<(string name, int index, long address)>(); + public List<(string name, int index, long address)> PointerValues = new(); public void SetPointer(string name, int index, long address) { @@ -104,7 +104,7 @@ public ResultErr TryRefresh() public int ExitedInvokedCount = 0; public ResultErr HookedResult = Result.Ok(); - public List ExitedExceptions = new List(); + public List ExitedExceptions = new(); #pragma warning disable CS0067 @@ -112,6 +112,6 @@ public ResultErr TryRefresh() public event Action? Exited; #pragma warning restore CS0067 - public PointerTreeBuilder PointerTreeBuilder { get; set; } = new PointerTreeBuilder(); + public PointerTreeBuilder PointerTreeBuilder { get; set; } = new(); public IProcessWrapper? ProcessWrapper { get; set; } } From f3e1ff736c9a687e1290cd4ebae850c5002b3f17 Mon Sep 17 00:00:00 2001 From: Frank van der Stam Date: Fri, 24 Jan 2025 12:11:15 +0100 Subject: [PATCH 07/28] Usings, converters & more nullability --- src/SoulMemory/DarkSouls1/ItemReader.cs | 2 +- src/SoulMemory/DarkSouls2/DarkSouls2.cs | 2 +- src/SoulMemory/EldenRing/Item.cs | 2 +- src/SoulMemory/Memory/BitBlt.cs | 17 +++++------ src/SoulMemory/Memory/Extensions.cs | 6 ++-- src/SoulMemory/Memory/IMemory.cs | 16 +++-------- .../MemoryV2/Process/IProcessHook.cs | 2 +- .../MemoryV2/Process/ProcessHook.cs | 2 +- src/SoulMemory/soulmods/Soulmods.cs | 28 ++++++------------- src/SoulSplitter/Extensions.cs | 20 ++++++------- src/SoulSplitter/Logger.cs | 8 ++---- .../Splitters/DarkSouls1Splitter.cs | 2 +- .../Splitters/DarkSouls2Splitter.cs | 4 +-- .../Splitters/DarkSouls3Splitter.cs | 2 +- .../Splitters/EldenRingSplitter.cs | 7 ++--- src/SoulSplitter/Splitters/SekiroSplitter.cs | 2 +- .../Converters/BoolToVisibilityConverter.cs | 4 +-- .../UI/Converters/ColorToBrushConverter.cs | 4 +-- .../UI/Converters/ColorToHexTextConverter.cs | 4 +-- .../Converters/DoubleToGridLengthConverter.cs | 4 +-- .../UI/Converters/DropModTypeConverter.cs | 6 ++-- .../UI/Converters/EnumDisplayNameConverter.cs | 8 +++--- .../Converters/EnumToVisibilityConverter.cs | 8 ++---- .../EnumValueEnumParameterConverter.cs | 6 ++-- .../GameToSelectedIndexConverter.cs | 4 +-- .../SplitObjectToDescriptionConverter.cs | 4 +-- .../SplitTypeVisibilityConverter.cs | 4 +-- .../UI/DarkSouls1/DarkSouls1ViewModel.cs | 4 +-- .../DarkSouls1/DarkSouls1ViewModelRefactor.cs | 4 +-- .../UI/DarkSouls2/DarkSouls2Control.xaml.cs | 2 +- .../UI/Generic/SplitTemplateSelector.cs | 2 +- src/SoulSplitter/UI/MainWindow.xaml.cs | 20 ++++++------- .../UI/Validation/TextToNumberValidation.cs | 2 +- .../UI/Validation/TextToRgbHexValidator.cs | 2 +- .../UIv2/SplitSettingsControl.xaml.cs | 2 +- src/cli/Program.cs | 2 +- .../MemoryV2/ProcessHookTests.cs | 4 +-- .../SoulMemory.Tests/Mocks/ProcessHookMock.cs | 3 +- 38 files changed, 96 insertions(+), 129 deletions(-) diff --git a/src/SoulMemory/DarkSouls1/ItemReader.cs b/src/SoulMemory/DarkSouls1/ItemReader.cs index 765f72e..97c527c 100644 --- a/src/SoulMemory/DarkSouls1/ItemReader.cs +++ b/src/SoulMemory/DarkSouls1/ItemReader.cs @@ -73,7 +73,7 @@ internal static List GetCurrentInventoryItems(byte[] data, int listCount, int level = 0; //if 4 or less digits -> non-upgradable item. - if (categories.Contains(ItemCategory.Consumables) && item >= 200 && item <= 215 && !items.Any(j => j.ItemType == ItemType.EstusFlask)) + if (categories.Contains(ItemCategory.Consumables) && item is >= 200 and <= 215 && !items.Any(j => j.ItemType == ItemType.EstusFlask)) { var estus = Item.AllItems.First(j => j.ItemType == ItemType.EstusFlask); var instance = new Item(estus.Name, estus.Id, estus.ItemType, estus.Category, estus.StackLimit, estus.Upgrade); diff --git a/src/SoulMemory/DarkSouls2/DarkSouls2.cs b/src/SoulMemory/DarkSouls2/DarkSouls2.cs index 7bcc978..9bd9b55 100644 --- a/src/SoulMemory/DarkSouls2/DarkSouls2.cs +++ b/src/SoulMemory/DarkSouls2/DarkSouls2.cs @@ -40,7 +40,7 @@ public ResultErr TryRefresh() { if (_darkSouls2 == null) { - var process = Process.GetProcesses().FirstOrDefault(i => i.ProcessName.ToLower() == "darksoulsii" && !i.HasExited && i.MainModule != null); + var process = Process.GetProcesses().FirstOrDefault(i => i.ProcessName.ToLower() == "darksoulsii" && i is { HasExited: false, MainModule: not null }); if (process == null) { return Result.Err(new RefreshError(RefreshErrorReason.ProcessNotRunning, "Dark Souls 2 vanilla/scholar not running.")); diff --git a/src/SoulMemory/EldenRing/Item.cs b/src/SoulMemory/EldenRing/Item.cs index d262278..75fe15b 100644 --- a/src/SoulMemory/EldenRing/Item.cs +++ b/src/SoulMemory/EldenRing/Item.cs @@ -44,7 +44,7 @@ public class Item public static Item FromLookupTable(Category category, uint id) { - return LookupTable.SingleOrDefault(i => i.Category == category && i.Id == id); + return LookupTable.First(i => i.Category == category && i.Id == id); } private readonly static ReadOnlyCollection LookupTable = new(new List() diff --git a/src/SoulMemory/Memory/BitBlt.cs b/src/SoulMemory/Memory/BitBlt.cs index 4571226..dcf1a9c 100644 --- a/src/SoulMemory/Memory/BitBlt.cs +++ b/src/SoulMemory/Memory/BitBlt.cs @@ -26,20 +26,17 @@ public static bool GetBitBlt(this IGame game, List files, List b { var process = game.GetProcess(); var path = Path.GetDirectoryName(process?.MainModule?.FileName); - using (var md5 = MD5.Create()) + using var md5 = MD5.Create(); + foreach (var d in files) { - foreach (var d in files) + using var fs = File.OpenRead($"{path}\\{d}"); + var hex = md5.ComputeHash(fs).ToHexString(); + if (!bitBlt.Contains(hex)) { - using (var fs = File.OpenRead($"{path}\\{d}")) - { - var hex = md5.ComputeHash(fs).ToHexString(); - if (!bitBlt.Contains(hex)) - { - return true; - } - } + return true; } } + return false; } } diff --git a/src/SoulMemory/Memory/Extensions.cs b/src/SoulMemory/Memory/Extensions.cs index ca4c4e9..4ec3168 100644 --- a/src/SoulMemory/Memory/Extensions.cs +++ b/src/SoulMemory/Memory/Extensions.cs @@ -32,7 +32,7 @@ public static string GetDisplayName(this Enum enumValue) var displayName = enumValue .GetType() .GetMember(enumValue.ToString()) - .FirstOrDefault() + .First() .GetCustomAttribute()? .Name; @@ -48,7 +48,7 @@ public static string GetDisplayDescription(this Enum enumValue) var displayName = enumValue .GetType() .GetMember(enumValue.ToString()) - .FirstOrDefault() + .First() .GetCustomAttribute()? .Description; @@ -64,7 +64,7 @@ public static T GetEnumAttribute(this Enum value) where T : Attribute var attribute = value .GetType() .GetMember(value.ToString()) - .FirstOrDefault() + .First() .GetCustomAttribute(); return attribute; diff --git a/src/SoulMemory/Memory/IMemory.cs b/src/SoulMemory/Memory/IMemory.cs index 1a4ccad..70b3afd 100644 --- a/src/SoulMemory/Memory/IMemory.cs +++ b/src/SoulMemory/Memory/IMemory.cs @@ -27,30 +27,22 @@ public interface IMemory public class ByteArrayMemory(byte[] data) : IMemory { - private readonly byte[] _data = data; - public byte[] ReadBytes(long? offset, int length) { - if (!offset.HasValue) - { - offset = 0; - } + offset ??= 0; var buffer = new byte[length]; - Array.Copy(_data, offset.Value, buffer, 0, length); + Array.Copy(data, offset.Value, buffer, 0, length); return buffer; } public void WriteBytes(long? offset, byte[] bytes) { - if (!offset.HasValue) - { - offset = 0; - } + offset ??= 0; for (int i = 0; i < bytes.Length; i++) { - _data[offset.Value + i] = bytes[i]; + data[offset.Value + i] = bytes[i]; } } } diff --git a/src/SoulMemory/MemoryV2/Process/IProcessHook.cs b/src/SoulMemory/MemoryV2/Process/IProcessHook.cs index d352890..4826cac 100644 --- a/src/SoulMemory/MemoryV2/Process/IProcessHook.cs +++ b/src/SoulMemory/MemoryV2/Process/IProcessHook.cs @@ -45,7 +45,7 @@ public interface IProcessHook : IMemory /// Called during refresh after a process exits or if hooking/refreshing fails. /// Exception might be null. /// - event Action Exited; + event Action Exited; PointerTreeBuilder.PointerTreeBuilder PointerTreeBuilder { get; set; } } diff --git a/src/SoulMemory/MemoryV2/Process/ProcessHook.cs b/src/SoulMemory/MemoryV2/Process/ProcessHook.cs index a2279ee..baca3d2 100644 --- a/src/SoulMemory/MemoryV2/Process/ProcessHook.cs +++ b/src/SoulMemory/MemoryV2/Process/ProcessHook.cs @@ -28,7 +28,7 @@ public class ProcessHook(string name, IProcessWrapper? processWrapper = null) : public System.Diagnostics.Process? GetProcess() => ProcessWrapper.GetProcess(); public event Func> Hooked = null!; - public event Action Exited = null!; + public event Action Exited = null!; public PointerTreeBuilder.PointerTreeBuilder PointerTreeBuilder { get; set; } = new(); diff --git a/src/SoulMemory/soulmods/Soulmods.cs b/src/SoulMemory/soulmods/Soulmods.cs index 0b4ffc4..9914748 100644 --- a/src/SoulMemory/soulmods/Soulmods.cs +++ b/src/SoulMemory/soulmods/Soulmods.cs @@ -49,18 +49,10 @@ public static class Soulmods { public static bool Inject(Process process) { - var dir = Path.GetDirectoryName(typeof(Soulmods).Assembly.Location); - var x64path = Path.Combine(dir, @"soulmods_x64.dll"); - var x86path = Path.Combine(dir, @"soulmods_x86.dll"); + var dir = Path.GetDirectoryName(typeof(Soulmods).Assembly.Location)!; + var path = process.Is64Bit().Unwrap() ? Path.Combine(dir, @"soulmods_x64.dll") : Path.Combine(dir, @"soulmods_x86.dll"); - if (process.Is64Bit().Unwrap()) - { - process.InjectDll(x64path); - } - else - { - process.InjectDll(x86path); - } + process.InjectDll(path); foreach (ProcessModule processModule in process.Modules) { @@ -76,7 +68,7 @@ public static bool Inject(Process process) - private static List<(string name, long address)> _soulmodsMethods = null!; + private static List<(string name, long address)>? _soulmodsMethods = null!; public static TSized RustCall(this Process process, string function, TSized? parameter = null) where TSized : struct { if (_soulmodsMethods == null) @@ -124,13 +116,11 @@ public static void GetMorphemeMessages(Process process) private static void OverwriteFile(string manifestResourceName, string path) { - byte[] buffer; - using (var stream = typeof(Soulmods).Assembly.GetManifestResourceStream(manifestResourceName)) - { - buffer = new byte[stream.Length]; - stream.Read(buffer, 0, buffer.Length); - } - Directory.CreateDirectory(Path.GetDirectoryName(path)); + using var stream = typeof(Soulmods).Assembly.GetManifestResourceStream(manifestResourceName)!; + var buffer = new byte[stream.Length]; + var _ = stream.Read(buffer, 0, buffer.Length); + + Directory.CreateDirectory(Path.GetDirectoryName(path)!); try { diff --git a/src/SoulSplitter/Extensions.cs b/src/SoulSplitter/Extensions.cs index a87133f..0f1c509 100644 --- a/src/SoulSplitter/Extensions.cs +++ b/src/SoulSplitter/Extensions.cs @@ -33,14 +33,12 @@ public static T DeserializeXml(this string xml) where T : class } var serializer = new XmlSerializer(typeof(T)); - using (var reader = new StringReader(xml)) - { - return (T)serializer.Deserialize(reader); - } + using var reader = new StringReader(xml); + return (T)serializer.Deserialize(reader); } - public static string SerializeXml(this object obj) + public static string SerializeXml(this object? obj) { if (obj == null) { @@ -53,13 +51,11 @@ public static string SerializeXml(this object obj) Indent = true, }; - using (var stream = new StringWriter()) - using (var writer = XmlWriter.Create(stream, settings)) - { - var serializer = new XmlSerializer(obj.GetType()); - serializer.Serialize(writer, obj); - return stream.ToString(); - } + using var stream = new StringWriter(); + using var writer = XmlWriter.Create(stream, settings); + var serializer = new XmlSerializer(obj.GetType()); + serializer.Serialize(writer, obj); + return stream.ToString(); } public static bool SetField(this ICustomNotifyPropertyChanged viewModel, ref TField field, TField value, [CallerMemberName] string? propertyName = null) diff --git a/src/SoulSplitter/Logger.cs b/src/SoulSplitter/Logger.cs index ddbdf6b..d1337e0 100644 --- a/src/SoulSplitter/Logger.cs +++ b/src/SoulSplitter/Logger.cs @@ -61,11 +61,9 @@ public static void Log(string message) } //Log the message - using (var writer = File.AppendText(filePath)) - { - writer.WriteLine($"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff")}: {message}"); - writer.Flush(); - } + using var writer = File.AppendText(filePath); + writer.WriteLine($"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff")}: {message}"); + writer.Flush(); } catch { diff --git a/src/SoulSplitter/Splitters/DarkSouls1Splitter.cs b/src/SoulSplitter/Splitters/DarkSouls1Splitter.cs index f3e83e1..94fe814 100644 --- a/src/SoulSplitter/Splitters/DarkSouls1Splitter.cs +++ b/src/SoulSplitter/Splitters/DarkSouls1Splitter.cs @@ -148,7 +148,7 @@ private void UpdateTimer() if (_mainViewModel.DarkSouls1ViewModel.StartAutomatically) { var igt = _darkSouls1.GetInGameTimeMilliseconds(); - if (igt > 0 && igt < 150) + if (igt is > 0 and < 150) { _timerModel.Start(); } diff --git a/src/SoulSplitter/Splitters/DarkSouls2Splitter.cs b/src/SoulSplitter/Splitters/DarkSouls2Splitter.cs index 4d19a54..869035a 100644 --- a/src/SoulSplitter/Splitters/DarkSouls2Splitter.cs +++ b/src/SoulSplitter/Splitters/DarkSouls2Splitter.cs @@ -136,8 +136,8 @@ private void UpdateTimer() { var position = _darkSouls2.GetPosition(); if( - position.Y < -322.0f && position.Y > -323.0f && - position.X < -213.0f && position.X > -214.0f) + position.Y is < -322.0f and > -323.0f && + position.X is < -213.0f and > -214.0f) { _timerModel.Start(); } diff --git a/src/SoulSplitter/Splitters/DarkSouls3Splitter.cs b/src/SoulSplitter/Splitters/DarkSouls3Splitter.cs index 5e92ab7..065d431 100644 --- a/src/SoulSplitter/Splitters/DarkSouls3Splitter.cs +++ b/src/SoulSplitter/Splitters/DarkSouls3Splitter.cs @@ -132,7 +132,7 @@ private void UpdateTimer() if (_darkSouls3ViewModel.StartAutomatically) { var igt = _darkSouls3.GetInGameTimeMilliseconds(); - if (igt > 0 && igt < 150) + if (igt is > 0 and < 150) { StartTimer(); StartAutoSplitting(); diff --git a/src/SoulSplitter/Splitters/EldenRingSplitter.cs b/src/SoulSplitter/Splitters/EldenRingSplitter.cs index 1df3935..9c892f3 100644 --- a/src/SoulSplitter/Splitters/EldenRingSplitter.cs +++ b/src/SoulSplitter/Splitters/EldenRingSplitter.cs @@ -184,7 +184,7 @@ public void UpdateTimer(bool startAutomatically) if (_startAutomatically) { var igt = _eldenRing.GetInGameTimeMilliseconds(); - if (igt > 0 && igt < 150) + if (igt is > 0 and < 150) { _eldenRing.WriteInGameTimeMilliseconds(0); StartTimer(); @@ -268,10 +268,7 @@ public void UpdateAutoSplitter() case EldenRingSplitType.Item: //Only get the inventory items once per livesplit tick - if (inventoryItems == null) - { - inventoryItems = _eldenRing.ReadInventory(); - } + inventoryItems ??= _eldenRing.ReadInventory(); s.SplitConditionMet = inventoryItems.Any(i => i.Category == s.Item.Category && i.Id == s.Item.Id); break; diff --git a/src/SoulSplitter/Splitters/SekiroSplitter.cs b/src/SoulSplitter/Splitters/SekiroSplitter.cs index 3dc2f30..5813fa3 100644 --- a/src/SoulSplitter/Splitters/SekiroSplitter.cs +++ b/src/SoulSplitter/Splitters/SekiroSplitter.cs @@ -154,7 +154,7 @@ private void UpdateTimer() if (_sekiroViewModel.StartAutomatically) { var igt = _sekiro.GetInGameTimeMilliseconds(); - if (igt > 0 && igt < 150) + if (igt is > 0 and < 150) { StartTimer(); _timerModel.Start(); diff --git a/src/SoulSplitter/UI/Converters/BoolToVisibilityConverter.cs b/src/SoulSplitter/UI/Converters/BoolToVisibilityConverter.cs index 45b3804..c068658 100644 --- a/src/SoulSplitter/UI/Converters/BoolToVisibilityConverter.cs +++ b/src/SoulSplitter/UI/Converters/BoolToVisibilityConverter.cs @@ -22,7 +22,7 @@ namespace SoulSplitter.UI.Converters; public class BoolToVisibilityConverter : IValueConverter { - public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) + public object Convert(object? value, Type targetType, object? parameter, System.Globalization.CultureInfo culture) { if (value is bool b) { @@ -31,7 +31,7 @@ public object Convert(object value, Type targetType, object parameter, System.Gl throw new NotSupportedException(); } - public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) + public object ConvertBack(object? value, Type targetType, object? parameter, System.Globalization.CultureInfo culture) { throw new NotSupportedException(); } diff --git a/src/SoulSplitter/UI/Converters/ColorToBrushConverter.cs b/src/SoulSplitter/UI/Converters/ColorToBrushConverter.cs index 000489d..f12f15c 100644 --- a/src/SoulSplitter/UI/Converters/ColorToBrushConverter.cs +++ b/src/SoulSplitter/UI/Converters/ColorToBrushConverter.cs @@ -23,7 +23,7 @@ namespace SoulSplitter.UI.Converters; public class ColorToBrushConverter : IValueConverter { - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture) { if (value is Color color) { @@ -33,7 +33,7 @@ public object Convert(object value, Type targetType, object parameter, CultureIn throw new NotSupportedException($"Type not supported {targetType}"); } - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture) { throw new NotImplementedException(); } diff --git a/src/SoulSplitter/UI/Converters/ColorToHexTextConverter.cs b/src/SoulSplitter/UI/Converters/ColorToHexTextConverter.cs index ffb20cb..f9ad527 100644 --- a/src/SoulSplitter/UI/Converters/ColorToHexTextConverter.cs +++ b/src/SoulSplitter/UI/Converters/ColorToHexTextConverter.cs @@ -23,7 +23,7 @@ namespace SoulSplitter.UI.Converters; public class ColorToHexTextConverter : IValueConverter { - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture) { if (value is Color color) { @@ -33,7 +33,7 @@ public object Convert(object value, Type targetType, object parameter, CultureIn throw new NotSupportedException($"Type not supported {targetType}"); } - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture) { if (value is string hex) { diff --git a/src/SoulSplitter/UI/Converters/DoubleToGridLengthConverter.cs b/src/SoulSplitter/UI/Converters/DoubleToGridLengthConverter.cs index 6dbb61c..1229734 100644 --- a/src/SoulSplitter/UI/Converters/DoubleToGridLengthConverter.cs +++ b/src/SoulSplitter/UI/Converters/DoubleToGridLengthConverter.cs @@ -22,7 +22,7 @@ namespace SoulSplitter.UI.Converters; public class DoubleToGridLengthConverter : IValueConverter { - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture) { if(value is double d) { @@ -32,7 +32,7 @@ public object Convert(object value, Type targetType, object parameter, CultureIn throw new NotSupportedException($"Type not supported {targetType}"); } - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture) { if (value is System.Windows.GridLength g) { diff --git a/src/SoulSplitter/UI/Converters/DropModTypeConverter.cs b/src/SoulSplitter/UI/Converters/DropModTypeConverter.cs index 13b6f3d..e1e8e51 100644 --- a/src/SoulSplitter/UI/Converters/DropModTypeConverter.cs +++ b/src/SoulSplitter/UI/Converters/DropModTypeConverter.cs @@ -23,7 +23,7 @@ namespace SoulSplitter.UI.Converters; public class DropModTypeConverter : IValueConverter { - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture) { if(value is DropModType valueDropModType && parameter is DropModType parameterDropModType) { @@ -32,8 +32,8 @@ public object Convert(object value, Type targetType, object parameter, CultureIn return false; } - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture) { - return (DropModType)parameter; + return (DropModType)parameter!; } } diff --git a/src/SoulSplitter/UI/Converters/EnumDisplayNameConverter.cs b/src/SoulSplitter/UI/Converters/EnumDisplayNameConverter.cs index ac26c0e..d2e367e 100644 --- a/src/SoulSplitter/UI/Converters/EnumDisplayNameConverter.cs +++ b/src/SoulSplitter/UI/Converters/EnumDisplayNameConverter.cs @@ -22,17 +22,17 @@ namespace SoulSplitter.UI.Converters; public class EnumDisplayNameConverter : IValueConverter { - public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) + public object Convert(object? value, Type targetType, object? parameter, System.Globalization.CultureInfo culture) { - if(value is Enum _enum) + if(value is Enum enumValue) { - return _enum.GetDisplayName(); + return enumValue.GetDisplayName(); } return ""; } - public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) + public object ConvertBack(object? value, Type targetType, object? parameter, System.Globalization.CultureInfo culture) { throw new NotSupportedException(); } diff --git a/src/SoulSplitter/UI/Converters/EnumToVisibilityConverter.cs b/src/SoulSplitter/UI/Converters/EnumToVisibilityConverter.cs index e04807a..c8488c0 100644 --- a/src/SoulSplitter/UI/Converters/EnumToVisibilityConverter.cs +++ b/src/SoulSplitter/UI/Converters/EnumToVisibilityConverter.cs @@ -23,18 +23,16 @@ namespace SoulSplitter.UI.Converters; public class EnumToVisibilityConverter : IMultiValueConverter, IValueConverter { - public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) + public object Convert(object? value, Type targetType, object? parameter, System.Globalization.CultureInfo culture) { - var valueEnum = (Enum)value; - var paramEnum = (Enum)parameter; - if (valueEnum != null && paramEnum != null && valueEnum.Equals(paramEnum)) + if (value is Enum valueEnum && parameter is Enum paramEnum && valueEnum.Equals(paramEnum)) { return Visibility.Visible; } return Visibility.Collapsed; } - public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture) + public object Convert(object[] values, Type targetType, object? parameter, System.Globalization.CultureInfo culture) { if (values == null || parameter == null) { diff --git a/src/SoulSplitter/UI/Converters/EnumValueEnumParameterConverter.cs b/src/SoulSplitter/UI/Converters/EnumValueEnumParameterConverter.cs index cd12f01..1206d15 100644 --- a/src/SoulSplitter/UI/Converters/EnumValueEnumParameterConverter.cs +++ b/src/SoulSplitter/UI/Converters/EnumValueEnumParameterConverter.cs @@ -22,7 +22,7 @@ namespace SoulSplitter.UI.Converters; public class EnumValueEnumParameterConverter : IValueConverter { - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture) { if (value is Enum valueEnum && parameter is Enum valueParameter && valueEnum.GetType() == valueParameter.GetType()) { @@ -32,8 +32,8 @@ public object Convert(object value, Type targetType, object parameter, CultureIn return false; } - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture) { - return parameter; + return parameter!; } } diff --git a/src/SoulSplitter/UI/Converters/GameToSelectedIndexConverter.cs b/src/SoulSplitter/UI/Converters/GameToSelectedIndexConverter.cs index c3b005d..ca6c73c 100644 --- a/src/SoulSplitter/UI/Converters/GameToSelectedIndexConverter.cs +++ b/src/SoulSplitter/UI/Converters/GameToSelectedIndexConverter.cs @@ -23,7 +23,7 @@ namespace SoulSplitter.UI.Converters; public class GameToSelectedIndexConverter : IValueConverter { - public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) + public object Convert(object? value, Type targetType, object? parameter, System.Globalization.CultureInfo culture) { if (value is Game g) { @@ -32,7 +32,7 @@ public object Convert(object value, Type targetType, object parameter, System.Gl throw new NotSupportedException(); } - public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) + public object ConvertBack(object? value, Type targetType, object? parameter, System.Globalization.CultureInfo culture) { if (value is int num && num.TryParseEnum(out Game g)) { diff --git a/src/SoulSplitter/UI/Converters/SplitObjectToDescriptionConverter.cs b/src/SoulSplitter/UI/Converters/SplitObjectToDescriptionConverter.cs index 92ec878..a62ede6 100644 --- a/src/SoulSplitter/UI/Converters/SplitObjectToDescriptionConverter.cs +++ b/src/SoulSplitter/UI/Converters/SplitObjectToDescriptionConverter.cs @@ -22,7 +22,7 @@ namespace SoulSplitter.UI.Converters; public class SplitObjectToDescriptionConverter : IValueConverter { - public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) + public object Convert(object? value, Type targetType, object? parameter, System.Globalization.CultureInfo culture) { if (value is Enum e) { @@ -42,7 +42,7 @@ public object Convert(object value, Type targetType, object parameter, System.Gl return ""; } - public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) + public object ConvertBack(object? value, Type targetType, object? parameter, System.Globalization.CultureInfo culture) { throw new NotSupportedException(); } diff --git a/src/SoulSplitter/UI/Converters/SplitTypeVisibilityConverter.cs b/src/SoulSplitter/UI/Converters/SplitTypeVisibilityConverter.cs index 89998f0..20a20de 100644 --- a/src/SoulSplitter/UI/Converters/SplitTypeVisibilityConverter.cs +++ b/src/SoulSplitter/UI/Converters/SplitTypeVisibilityConverter.cs @@ -23,7 +23,7 @@ namespace SoulSplitter.UI.Converters; public class SplitTypeVisibilityConverter : IValueConverter { - public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) + public object Convert(object? value, Type targetType, object? parameter, System.Globalization.CultureInfo culture) { var result = value is SplitType splitType && @@ -38,7 +38,7 @@ parameter is string s && return Visibility.Collapsed; } - public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) + public object ConvertBack(object? value, Type targetType, object? parameter, System.Globalization.CultureInfo culture) { throw new NotSupportedException(); } diff --git a/src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModel.cs b/src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModel.cs index 5660e9f..0536883 100644 --- a/src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModel.cs +++ b/src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModel.cs @@ -100,10 +100,10 @@ private bool CanAddSplit(object? param) return FlagDescription != null; case SplitType.Bonfire: - return NewSplitBonfireState != null && NewSplitBonfireState.Bonfire != null; + return NewSplitBonfireState is { Bonfire: not null }; case SplitType.Item: - return NewSplitItemState != null && NewSplitItemState.ItemType != null; + return NewSplitItemState is { ItemType: not null }; case SplitType.Credits: return NewSplitTimingType != null; diff --git a/src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs b/src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs index a1f01c7..87ccfd0 100644 --- a/src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs +++ b/src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs @@ -61,10 +61,10 @@ private bool CanAddSplit(object? param) return FlagDescription != null; case SplitType.Bonfire: - return NewSplitBonfireState != null && NewSplitBonfireState.Bonfire != null; + return NewSplitBonfireState is { Bonfire: not null }; case SplitType.Item: - return NewSplitItemState != null && NewSplitItemState.ItemType != null; + return NewSplitItemState is { ItemType: not null }; case SplitType.Credits: return NewSplitTimingType != null; diff --git a/src/SoulSplitter/UI/DarkSouls2/DarkSouls2Control.xaml.cs b/src/SoulSplitter/UI/DarkSouls2/DarkSouls2Control.xaml.cs index 1d4703e..06ef1e8 100644 --- a/src/SoulSplitter/UI/DarkSouls2/DarkSouls2Control.xaml.cs +++ b/src/SoulSplitter/UI/DarkSouls2/DarkSouls2Control.xaml.cs @@ -53,7 +53,7 @@ private void RemoveSplit_OnClick(object sender, RoutedEventArgs e) private void TextBoxRawFlag_OnTextChanged(object sender, TextChangedEventArgs e) { - if (_darkSouls2ViewModel.NewSplitType != null && _darkSouls2ViewModel.NewSplitType == DarkSouls2SplitType.Flag && sender is TextBox textBox) + if (_darkSouls2ViewModel.NewSplitType is DarkSouls2SplitType.Flag && sender is TextBox textBox) { if (uint.TryParse(textBox.Text, out uint result)) { diff --git a/src/SoulSplitter/UI/Generic/SplitTemplateSelector.cs b/src/SoulSplitter/UI/Generic/SplitTemplateSelector.cs index 6668d9d..5e4b29a 100644 --- a/src/SoulSplitter/UI/Generic/SplitTemplateSelector.cs +++ b/src/SoulSplitter/UI/Generic/SplitTemplateSelector.cs @@ -25,7 +25,7 @@ public class SplitTemplateSelector : DataTemplateSelector public DataTemplate EnumTemplate { get; set; } = null!; public DataTemplate VectorSizeTemplate { get; set; } = null!; - public override DataTemplate SelectTemplate(object item, DependencyObject container) + public override DataTemplate SelectTemplate(object? item, DependencyObject container) { if(item is Enum) { diff --git a/src/SoulSplitter/UI/MainWindow.xaml.cs b/src/SoulSplitter/UI/MainWindow.xaml.cs index a537b44..e99b24b 100644 --- a/src/SoulSplitter/UI/MainWindow.xaml.cs +++ b/src/SoulSplitter/UI/MainWindow.xaml.cs @@ -58,18 +58,16 @@ public void BitBlt() try { var form = winforms.Application.OpenForms[0]; - using (var graphics = form.CreateGraphics()) + using var graphics = form.CreateGraphics(); + var hdc = graphics.GetHdc(); + var color = Gdi32.BitBlt(hdc, 0, 0); + if (color != _stash) { - var hdc = graphics.GetHdc(); - var color = Gdi32.BitBlt(hdc, 0, 0); - if (color != _stash) - { - graphics.ReleaseHdc(); - Debug.WriteLine(color); - color = Color.FromArgb(color.ToArgb() ^ 0xffffff); - _stash = color; - graphics.DrawRectangle(new Pen(color), 0, 0, 1, 1); - } + graphics.ReleaseHdc(); + Debug.WriteLine(color); + color = Color.FromArgb(color.ToArgb() ^ 0xffffff); + _stash = color; + graphics.DrawRectangle(new Pen(color), 0, 0, 1, 1); } } catch diff --git a/src/SoulSplitter/UI/Validation/TextToNumberValidation.cs b/src/SoulSplitter/UI/Validation/TextToNumberValidation.cs index d8abfb7..5298c87 100644 --- a/src/SoulSplitter/UI/Validation/TextToNumberValidation.cs +++ b/src/SoulSplitter/UI/Validation/TextToNumberValidation.cs @@ -30,7 +30,7 @@ public enum NumericType public class TextToNumberValidation : ValidationRule { - public override ValidationResult Validate(object value, CultureInfo cultureInfo) + public override ValidationResult Validate(object? value, CultureInfo cultureInfo) { if (value == null) diff --git a/src/SoulSplitter/UI/Validation/TextToRgbHexValidator.cs b/src/SoulSplitter/UI/Validation/TextToRgbHexValidator.cs index 87726a3..0b21221 100644 --- a/src/SoulSplitter/UI/Validation/TextToRgbHexValidator.cs +++ b/src/SoulSplitter/UI/Validation/TextToRgbHexValidator.cs @@ -24,7 +24,7 @@ public class TextToRgbHexValidator : ValidationRule { private static readonly Regex RgbValidator = new("^#(?:[0-9a-fA-F]{3}){1,2}$"); - public override ValidationResult Validate(object value, CultureInfo cultureInfo) + public override ValidationResult Validate(object? value, CultureInfo cultureInfo) { if (value is string hex && RgbValidator.Match(hex).Success) { diff --git a/src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs b/src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs index 077f010..430c70b 100644 --- a/src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs +++ b/src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs @@ -52,7 +52,7 @@ private bool CanAddSplit(object? param) case SplitType.Attribute: if (Game == Game.DarkSouls1) { - return SelectedAttribute != null && AttributeLevel > 0 && AttributeLevel <= 99; + return SelectedAttribute != null && AttributeLevel is > 0 and <= 99; } break; diff --git a/src/cli/Program.cs b/src/cli/Program.cs index dd83796..3eccfbe 100644 --- a/src/cli/Program.cs +++ b/src/cli/Program.cs @@ -318,7 +318,7 @@ void Test(string name, Action f) Test("AreCreditsRolling", () => { ds1.AreCreditsRolling(); }); Test("GetBonfireState", () => { ds1.GetBonfireState(SoulMemory.DarkSouls1.Bonfire.UndeadAsylumCourtyard); }); Test("GetSaveFileLocation", () => { ds1.GetSaveFileLocation(); }); - Test("GetSaveFileGameTimeMilliseconds", () => { ds1.GetSaveFileGameTimeMilliseconds(ds1.GetSaveFileLocation(), ds1.GetCurrentSaveSlot()); }); + Test("GetSaveFileGameTimeMilliseconds", () => { ds1.GetSaveFileGameTimeMilliseconds(ds1.GetSaveFileLocation() ?? "", ds1.GetCurrentSaveSlot()); }); Console.WriteLine("Done, press any key to exit."); diff --git a/tests/SoulMemory.Tests/MemoryV2/ProcessHookTests.cs b/tests/SoulMemory.Tests/MemoryV2/ProcessHookTests.cs index 774d764..7ff9ced 100644 --- a/tests/SoulMemory.Tests/MemoryV2/ProcessHookTests.cs +++ b/tests/SoulMemory.Tests/MemoryV2/ProcessHookTests.cs @@ -54,7 +54,7 @@ public void Init() [TestMethod] public void TryRefresh_ProcessNotRunning() { - Exception ex; + Exception? ex; _mockProcessWrapper .Setup(i => i.TryRefresh(It.IsAny(), out ex)) .Returns(ProcessRefreshResult.ProcessNotRunning); @@ -205,7 +205,7 @@ public void TryRefresh_Error_Unknown() Assert.AreEqual(RefreshErrorReason.UnknownException, refreshResult.GetErr().Reason); Assert.IsNull(refreshResult.GetErr().Message); - Assert.AreEqual("Your computer is on fire", refreshResult.GetErr().Exception.Message); + Assert.AreEqual("Your computer is on fire", refreshResult.GetErr().Exception?.Message); Assert.AreEqual(1, ExitedExceptions.Count); Assert.AreEqual("Your computer is on fire", ExitedExceptions.First().Message); Assert.AreEqual(1, _exitedInvokedCount); diff --git a/tests/SoulMemory.Tests/Mocks/ProcessHookMock.cs b/tests/SoulMemory.Tests/Mocks/ProcessHookMock.cs index ca12af0..cd22f9f 100644 --- a/tests/SoulMemory.Tests/Mocks/ProcessHookMock.cs +++ b/tests/SoulMemory.Tests/Mocks/ProcessHookMock.cs @@ -39,6 +39,7 @@ public ProcessHookMock() } ExitedInvokedCount++; }; + ProcessWrapper = null!; } public Dictionary Data = new(); @@ -113,5 +114,5 @@ public ResultErr TryRefresh() #pragma warning restore CS0067 public PointerTreeBuilder PointerTreeBuilder { get; set; } = new(); - public IProcessWrapper? ProcessWrapper { get; set; } + public IProcessWrapper ProcessWrapper { get; set; } } From f3bfdbc21c9231e69926477ec5b99bd19ac15d96 Mon Sep 17 00:00:00 2001 From: Frank van der Stam Date: Fri, 24 Jan 2025 15:08:20 +0100 Subject: [PATCH 08/28] Switch expressions, more nullability & other improvements --- src/SoulMemory/DarkSouls1/Item.cs | 52 +++--- src/SoulMemory/DarkSouls1/Remastered.cs | 42 +---- src/SoulMemory/DarkSouls2/scholar.cs | 24 --- src/SoulMemory/DarkSouls2/vanilla.cs | 24 --- src/SoulMemory/DarkSouls3/DarkSouls3.cs | 42 ++--- src/SoulMemory/EldenRing/EldenRing.cs | 18 +- .../MemoryV2/Process/ProcessHook.cs | 8 +- src/SoulMemory/Native/Kernel32.cs | 19 +- src/SoulMemory/Sekiro/Sekiro.cs | 31 +--- src/SoulSplitter/SoulComponent.cs | 52 ++---- src/SoulSplitter/Splits/ArmoredCore6/Split.cs | 12 +- .../Splitters/ArmoredCore6Splitter.cs | 12 +- .../UI/DarkSouls1/DarkSouls1ViewModel.cs | 73 ++------ .../DarkSouls1/DarkSouls1ViewModelRefactor.cs | 172 ------------------ .../UI/DarkSouls3/DarkSouls3ViewModel.cs | 43 ++--- src/SoulSplitter/UI/Generic/BaseViewModel.cs | 13 +- .../UI/Generic/FilteredComboBox.cs | 32 ++-- .../UI/Generic/HierarchicalViewModel.cs | 6 +- src/SoulSplitter/UI/Generic/RelayCommand.cs | 13 +- src/SoulSplitter/UI/MainViewModel.cs | 2 +- src/SoulSplitter/UI/Sekiro/SekiroViewModel.cs | 50 ++--- .../UIv2/SplitSettingsControl.xaml.cs | 37 ++-- 22 files changed, 176 insertions(+), 601 deletions(-) delete mode 100644 src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs diff --git a/src/SoulMemory/DarkSouls1/Item.cs b/src/SoulMemory/DarkSouls1/Item.cs index ef7bd99..2698edd 100644 --- a/src/SoulMemory/DarkSouls1/Item.cs +++ b/src/SoulMemory/DarkSouls1/Item.cs @@ -66,20 +66,20 @@ public int MaxUpgrade { get { - switch (Infusion) + return Infusion switch { - default: throw new NotSupportedException($"Unknown infusion type: {Infusion}"); - case ItemInfusion.Normal: return 15; - case ItemInfusion.Chaos: return 5; - case ItemInfusion.Crystal: return 5; - case ItemInfusion.Divine: return 10; - case ItemInfusion.Enchanted: return 5; - case ItemInfusion.Fire: return 10; - case ItemInfusion.Lightning: return 5; - case ItemInfusion.Magic: return 10; - case ItemInfusion.Occult: return 5; - case ItemInfusion.Raw: return 5; - } + ItemInfusion.Normal => 15, + ItemInfusion.Chaos => 5, + ItemInfusion.Crystal => 5, + ItemInfusion.Divine => 10, + ItemInfusion.Enchanted => 5, + ItemInfusion.Fire => 10, + ItemInfusion.Lightning => 5, + ItemInfusion.Magic => 10, + ItemInfusion.Occult => 5, + ItemInfusion.Raw => 5, + _ => throw new NotSupportedException($"Unknown infusion type: {Infusion}") + }; } } @@ -87,20 +87,20 @@ public bool RestrictUpgrade { get { - switch (Infusion) + return Infusion switch { - default: throw new NotSupportedException($"Unknown infusion type: {Infusion}"); - case ItemInfusion.Normal: return false; - case ItemInfusion.Chaos: return true; - case ItemInfusion.Crystal: return false; - case ItemInfusion.Divine: return false; - case ItemInfusion.Enchanted: return true; - case ItemInfusion.Fire: return false; - case ItemInfusion.Lightning: return false; - case ItemInfusion.Magic: return false; - case ItemInfusion.Occult: return true; - case ItemInfusion.Raw: return true; - } + ItemInfusion.Normal => false, + ItemInfusion.Chaos => true, + ItemInfusion.Crystal => false, + ItemInfusion.Divine => false, + ItemInfusion.Enchanted => true, + ItemInfusion.Fire => false, + ItemInfusion.Lightning => false, + ItemInfusion.Magic => false, + ItemInfusion.Occult => true, + ItemInfusion.Raw => true, + _ => throw new NotSupportedException($"Unknown infusion type: {Infusion}") + }; } } diff --git a/src/SoulMemory/DarkSouls1/Remastered.cs b/src/SoulMemory/DarkSouls1/Remastered.cs index e840250..9df2bea 100644 --- a/src/SoulMemory/DarkSouls1/Remastered.cs +++ b/src/SoulMemory/DarkSouls1/Remastered.cs @@ -223,27 +223,22 @@ public TreeBuilder GetTreeBuilder() } #endregion - public int GetAttribute(Attribute attribute) => _playerGameData?.ReadInt32(0x8 + (long)attribute) ?? 0; + public int GetAttribute(Attribute attribute) => _playerGameData.ReadInt32(0x8 + (long)attribute); - public int GetInGameTimeMilliseconds() => _gameDataMan?.ReadInt32(0xa4) ?? 0; + public int GetInGameTimeMilliseconds() => _gameDataMan.ReadInt32(0xa4); - public int NgCount() => _gameDataMan?.ReadInt32(0x78) ?? 0; + public int NgCount() => _gameDataMan.ReadInt32(0x78); - public int GetCurrentSaveSlot() => _gameMan?.ReadInt32(_currentSaveSlotOffset) ?? 0; + public int GetCurrentSaveSlot() => _gameMan.ReadInt32(_currentSaveSlotOffset); - public Vector3f GetPosition() => _playerPos == null ? new Vector3f(0, 0, 0) : new Vector3f(_playerPos.ReadFloat(0x10), _playerPos.ReadFloat(0x14), _playerPos.ReadFloat(0x18)); + public Vector3f GetPosition() => new(_playerPos.ReadFloat(0x10), _playerPos.ReadFloat(0x14), _playerPos.ReadFloat(0x18)); - public int GetPlayerHealth() => _playerIns?.ReadInt32(0x3e8) ?? 0; + public int GetPlayerHealth() => _playerIns.ReadInt32(0x3e8); - public bool IsPlayerLoaded() => !_playerIns?.IsNullPtr() ?? false; + public bool IsPlayerLoaded() => !_playerIns.IsNullPtr(); public bool IsWarpRequested() { - if (_gameMan == null) - { - return false; - } - if (GetPlayerHealth() == 0) { return false; @@ -255,11 +250,6 @@ public bool IsWarpRequested() public bool AreCreditsRolling() { - if(_menuMan == null) - { - return false; - } - var first = _menuMan.ReadInt32(0xc8); var second = _menuMan.ReadInt32(0xd4); var third = _menuMan.ReadInt32(0x80); //This address seems like it turns into a 1 only when you are on the main menu @@ -270,11 +260,6 @@ public bool AreCreditsRolling() public List GetInventory() { - if (_playerGameData == null) - { - return []; - } - //Path: GameDataMan->hostPlayerGameData->equipGameData.equipInventoryData.equipInventoryDataSub const long equipInventoryDataSubOffset = 0x3b0; @@ -294,11 +279,6 @@ public List GetInventory() public BonfireState GetBonfireState(Bonfire bonfire) { - if (_netBonfireDb == null) - { - return BonfireState.Unknown; - } - var element = _netBonfireDb.CreatePointerFromAddress(0x28); element = element.CreatePointerFromAddress(0x0); var netBonfireDbItem = element.CreatePointerFromAddress(0x10); @@ -402,15 +382,11 @@ public bool ReadEventFlag(uint eventFlagId) #endregion //Imported from CapitaineToinon. Thanks! - public void ResetInventoryIndices() { - if (_inventoryIndices != null) + for (int i = 0; i < 20; i++) { - for (int i = 0; i < 20; i++) - { - _inventoryIndices.WriteUint32(0x4 * i, uint.MaxValue); - } + _inventoryIndices.WriteUint32(0x4 * i, uint.MaxValue); } } diff --git a/src/SoulMemory/DarkSouls2/scholar.cs b/src/SoulMemory/DarkSouls2/scholar.cs index e388238..51d8f22 100644 --- a/src/SoulMemory/DarkSouls2/scholar.cs +++ b/src/SoulMemory/DarkSouls2/scholar.cs @@ -81,11 +81,6 @@ private void ResetPointers() public Vector3f GetPosition() { - if (_position == null) - { - return new Vector3f(0, 0, 0); - } - return new Vector3f( _position.ReadFloat(0x88), _position.ReadFloat(0x80), @@ -95,30 +90,16 @@ public Vector3f GetPosition() public int GetBossKillCount(BossType bossType) { - if (_bossCounters == null) - { - return 0; - } return _bossCounters.ReadInt32((long)bossType); } public bool IsLoading() { - if (_loadState == null) - { - return false; - } - return _loadState.ReadInt32(0x11c) == 1; } public int GetAttribute(Attribute attribute) { - if (_attributes == null) - { - return 0; - } - var offset = _attributeOffsets[attribute]; if (attribute == Attribute.SoulLevel) { @@ -136,11 +117,6 @@ public int GetAttribute(Attribute attribute) public bool ReadEventFlag(uint eventFlagId) { - if (_eventFlagManager == null) - { - return false; - } - var eventCategory = eventFlagId / 10000 * 0x89; var uVar1 = ((eventCategory - eventCategory / 0x1f >> 1) + eventCategory / 0x1f >> 4) * 31; var r8d = eventCategory - uVar1; diff --git a/src/SoulMemory/DarkSouls2/vanilla.cs b/src/SoulMemory/DarkSouls2/vanilla.cs index 07db8ba..3b15252 100644 --- a/src/SoulMemory/DarkSouls2/vanilla.cs +++ b/src/SoulMemory/DarkSouls2/vanilla.cs @@ -77,11 +77,6 @@ private ResultErr InitPointers() public Vector3f GetPosition() { - if (_position == null) - { - return new Vector3f(); - } - return new Vector3f( _position.ReadFloat(0x88), _position.ReadFloat(0x80), @@ -91,30 +86,16 @@ public Vector3f GetPosition() public int GetBossKillCount(BossType bossType) { - if (_bossCounters == null) - { - return 0; - } return _bossCounters.ReadInt32((long)bossType); } public bool IsLoading() { - if (_loadState == null) - { - return false; - } - return _loadState.ReadUInt32(0x1D4) == 1; } public int GetAttribute(Attribute attribute) { - if (_attributes == null) - { - return 0; - } - var offset = _attributeOffsets[attribute]; if (attribute == Attribute.SoulLevel) { @@ -129,11 +110,6 @@ public int GetAttribute(Attribute attribute) public bool ReadEventFlag(uint eventFlagId) { - if (_eventFlagManager == null) - { - return false; - } - var eventCategory = eventFlagId / 10000 * 0x89; var offset = eventCategory % 0x1f * 4 + 0x10; diff --git a/src/SoulMemory/DarkSouls3/DarkSouls3.cs b/src/SoulMemory/DarkSouls3/DarkSouls3.cs index cea3296..37e9622 100644 --- a/src/SoulMemory/DarkSouls3/DarkSouls3.cs +++ b/src/SoulMemory/DarkSouls3/DarkSouls3.cs @@ -87,22 +87,12 @@ private ResultErr InitPointers() } //Clear count: 0x78 -> likely subject to the same shift that happens to IGT offset - switch (GetVersion(v)) + _igtOffset = GetVersion(v) switch { - default: - _igtOffset = 0xa4; - break; - - case DarkSouls3Version.Earlier: - case DarkSouls3Version.V104: - case DarkSouls3Version.V105: - _igtOffset = 0x9c; - break; - - case DarkSouls3Version.Later: - _igtOffset = 0xa4; - break; - } + DarkSouls3Version.Earlier or DarkSouls3Version.V104 or DarkSouls3Version.V105 => 0x9c, + DarkSouls3Version.Later => 0xa4, + _ => 0xa4 + }; var treeBuilder = GetTreeBuilder(); return MemoryScanner.TryResolvePointers(treeBuilder, _process); @@ -137,23 +127,13 @@ public enum DarkSouls3Version public static DarkSouls3Version GetVersion(Version v) { - switch (v.Minor) + return v.Minor switch { - case 0: - case 1: - case 2: - case 3: - return DarkSouls3Version.Earlier; - - case 4: - return DarkSouls3Version.V104; - - case 5: - return DarkSouls3Version.V105; - - default: - return DarkSouls3Version.Later; - } + 0 or 1 or 2 or 3 => DarkSouls3Version.Earlier, + 4 => DarkSouls3Version.V104, + 5 => DarkSouls3Version.V105, + _ => DarkSouls3Version.Later + }; } public bool IsLoading() diff --git a/src/SoulMemory/EldenRing/EldenRing.cs b/src/SoulMemory/EldenRing/EldenRing.cs index 3bbd37f..9c5eab2 100644 --- a/src/SoulMemory/EldenRing/EldenRing.cs +++ b/src/SoulMemory/EldenRing/EldenRing.cs @@ -288,12 +288,9 @@ public EldenRingVersion GetVersion(Version v) public void EnableHud() { - if (_hud != null) - { - var b = _hud.ReadByte(); - b |= 0x1; //Not sure if this whole byte is reserved for the HUD setting. Just going to write a 1 to the first bit and preserve the other bits. - _hud.WriteByte(null, b); - } + var b = _hud.ReadByte(); + b |= 0x1; //Not sure if this whole byte is reserved for the HUD setting. Just going to write a 1 to the first bit and preserve the other bits. + _hud.WriteByte(null, b); } public Position GetPosition() @@ -320,7 +317,7 @@ public bool IsPlayerLoaded() public ScreenState GetScreenState() { - var screenState = _menuManImp?.ReadInt32(_screenStateOffset) ?? (int)ScreenState.Unknown; + var screenState = _menuManImp.ReadInt32(_screenStateOffset); if (screenState.TryParseEnum(out ScreenState s)) { return s; @@ -410,11 +407,8 @@ public List ReadInventory() } var item = Item.FromLookupTable(category, (uint)itemId); - if (item != null) - { - Console.WriteLine($"{item.GroupName} {item.Name}"); - items.Add(item); - } + //Console.WriteLine($"{item.GroupName} {item.Name}"); + items.Add(item); } return items; diff --git a/src/SoulMemory/MemoryV2/Process/ProcessHook.cs b/src/SoulMemory/MemoryV2/Process/ProcessHook.cs index baca3d2..8b653de 100644 --- a/src/SoulMemory/MemoryV2/Process/ProcessHook.cs +++ b/src/SoulMemory/MemoryV2/Process/ProcessHook.cs @@ -40,7 +40,7 @@ public class ProcessHook(string name, IProcessWrapper? processWrapper = null) : /// public ResultErr TryRefresh() { - var processRefreshResult = ProcessWrapper.TryRefresh(_name, out Exception? e); + var processRefreshResult = ProcessWrapper.TryRefresh(_name, out var e); switch (processRefreshResult) { case ProcessRefreshResult.ProcessNotRunning: @@ -64,7 +64,7 @@ public ResultErr TryRefresh() { return pointerScanResult; } - return Hooked?.Invoke() ?? Result.Ok(); + return Hooked.Invoke() ?? Result.Ok(); //Standard refresh @@ -73,11 +73,11 @@ public ResultErr TryRefresh() case ProcessRefreshResult.Exited: - Exited?.Invoke(null!); + Exited.Invoke(null!); return Result.Err(new RefreshError(RefreshErrorReason.ProcessExited)); case ProcessRefreshResult.Error: - Exited?.Invoke(e!); + Exited.Invoke(e!); if (e!.Message == "Access is denied") { return Result.Err(new RefreshError(RefreshErrorReason.AccessDenied, "Access is denied. Make sure you disable easy anti cheat and try running livesplit as admin.")); diff --git a/src/SoulMemory/Native/Kernel32.cs b/src/SoulMemory/Native/Kernel32.cs index e7b06ba..7790018 100644 --- a/src/SoulMemory/Native/Kernel32.cs +++ b/src/SoulMemory/Native/Kernel32.cs @@ -46,11 +46,6 @@ public static byte[] ReadProcessMemoryNoError(this Process process, long address public static ResultOk ReadProcessMemory(this Process process, long address, int size) { - if (process == null) - { - return Result.Err(); - } - var buffer = new byte[size]; var bytesRead = 0; var result = NativeMethods.ReadProcessMemory(process.Handle, (IntPtr)address, buffer, buffer.Length, ref bytesRead); @@ -64,11 +59,6 @@ public static ResultOk ReadProcessMemory(this Process process, long addr public static ResultOk ReadMemory(this Process process, long address, [CallerMemberName] string? callerMemberName = null) { - if (process == null) - { - return Result.Err(); - } - var type = typeof(T); var size = Marshal.SizeOf(type); var bytes = process.ReadProcessMemory(address, size).Unwrap(callerMemberName); @@ -84,11 +74,6 @@ public static ResultOk ReadMemory(this Process process, long address, [Cal public static Result WriteMemory(this Process process, long address, T data, [CallerMemberName] string? callerMemberName = null) { - if (process == null) - { - return Result.Err(); - } - var type = typeof(T); var size = Marshal.SizeOf(type); var bytes = new byte[size]; @@ -111,7 +96,7 @@ public static Result WriteMemory(this Process process, long address, T data, public static string ReadAsciiString(this Process process, long address, int initialBufferSize = 20, [CallerMemberName] string? callerMemberName = null) { var endByte = (byte)'\0'; - var bytes = new byte[0]; + var bytes = Array.Empty(); while (!bytes.Contains(endByte)) { if (initialBufferSize > 100000) @@ -132,7 +117,7 @@ public static string ReadAsciiString(this Process process, long address, int ini public static ResultOk> GetMemoryRegions(this Process process) { - if (process?.MainModule == null) + if (process.MainModule == null) { return Result.Err(); } diff --git a/src/SoulMemory/Sekiro/Sekiro.cs b/src/SoulMemory/Sekiro/Sekiro.cs index ca23ee6..d3ef7aa 100644 --- a/src/SoulMemory/Sekiro/Sekiro.cs +++ b/src/SoulMemory/Sekiro/Sekiro.cs @@ -183,27 +183,22 @@ private void ResetPointers() public int GetInGameTimeMilliseconds() { - return _igt?.ReadInt32() ?? 0; + return _igt.ReadInt32(); } public void WriteInGameTimeMilliseconds(int value) { - _igt?.WriteInt32(value); + _igt.WriteInt32(value); } public int GetAttribute(Attribute attribute) { - switch (attribute) + return attribute switch { - default: - throw new ArgumentException($"{attribute} not supported"); - - case Attribute.Vitality: - return _playerGameData.ReadInt32(0x44) + 9; - - case Attribute.AttackPower: - return _playerGameData.ReadInt32(0x48); - } + Attribute.Vitality => _playerGameData.ReadInt32(0x44) + 9, + Attribute.AttackPower => _playerGameData.ReadInt32(0x48), + _ => throw new ArgumentException($"{attribute} not supported") + }; } public bool IsPlayerLoaded() @@ -213,7 +208,7 @@ public bool IsPlayerLoaded() public Vector3f GetPlayerPosition() { - return new Vector3f(_position?.ReadFloat(0x80) ?? 0f, _position?.ReadFloat(0x84) ?? 0f, _position?.ReadFloat(0x88) ?? 0f); + return new(_position.ReadFloat(0x80), _position.ReadFloat(0x84), _position.ReadFloat(0x88)); } public bool IsBlackscreenActive() @@ -394,12 +389,6 @@ private ResultOk GetEventFlagAddress(uint eventFlagId) #endregion - #region Savefile mods - - - - #endregion - #region BitBlt public bool BitBlt @@ -527,10 +516,10 @@ private bool InitB3Mods() logoCodeBytesPointFive = _process.ReadMemory(_process.MainModule.BaseAddress.ToInt64() + 0xE1B1AB).Unwrap(); logoCodeBytesPointSix = _process.ReadMemory(_process.MainModule.BaseAddress.ToInt64() + 0xE1B51B).Unwrap(); - if(logoCodeBytesPointFive == 0x8D483074 || logoCodeBytesPointFive == 0x8D483075){ + if(logoCodeBytesPointFive is 0x8D483074 or 0x8D483075){ version = "1.05"; } - else if(logoCodeBytesPointSix == 0x8D483074 || logoCodeBytesPointSix == 0x8D483075){ + else if(logoCodeBytesPointSix is 0x8D483074 or 0x8D483075){ version = "1.06"; } else diff --git a/src/SoulSplitter/SoulComponent.cs b/src/SoulSplitter/SoulComponent.cs index e023f63..3cdf773 100644 --- a/src/SoulSplitter/SoulComponent.cs +++ b/src/SoulSplitter/SoulComponent.cs @@ -41,7 +41,7 @@ public class SoulComponent : IComponent private LiveSplitState _liveSplitState; - private ISplitter? _splitter = null!; + private ISplitter? _splitter; private IGame _game = null!; private DateTime _lastFailedRefresh = DateTime.MinValue; private bool _previousBitBlt = false; @@ -279,11 +279,8 @@ public void SetSettings(XmlNode settings) } var vm = MainViewModel.Deserialize(settings.InnerXml); - if (vm != null) - { - MainWindow.MainViewModel = vm; - _splitter?.SetViewModel(MainWindow.MainViewModel); - } + MainWindow.MainViewModel = vm; + _splitter?.SetViewModel(MainWindow.MainViewModel); } catch (Exception e) { @@ -310,8 +307,8 @@ public System.Windows.Forms.Control GetSettingsControl(LayoutMode mode) { _customShowSettingsButton = new Button(); _customShowSettingsButton.Text = "SoulSplitter settings"; - _customShowSettingsButton.Click += (o, a) => MainWindow.Dispatcher.Invoke(() => MainWindow.ShowDialog()); - _customShowSettingsButton.Paint += (o, a) => + _customShowSettingsButton.Click += (_, _) => MainWindow.Dispatcher.Invoke(() => MainWindow.ShowDialog()); + _customShowSettingsButton.Paint += (_, _) => { try { @@ -331,42 +328,23 @@ public System.Windows.Forms.Control GetSettingsControl(LayoutMode mode) /// /// Reads the game name from livesplit and tries to write the appropriate game to the view model /// - private void SelectGameFromLiveSplitState(LiveSplitState s) + private void SelectGameFromLiveSplitState(LiveSplitState? s) { MainWindow.Dispatcher.Invoke(() => { if (!string.IsNullOrWhiteSpace(s?.Run?.GameName)) { var name = s!.Run!.GameName.ToLower().Replace(" ", ""); - switch (name) + MainWindow.MainViewModel.SelectedGame = name switch { - case "darksouls": - case "darksoulsremastered": - MainWindow.MainViewModel.SelectedGame = Game.DarkSouls1; - break; - - case "darksoulsii": - MainWindow.MainViewModel.SelectedGame = Game.DarkSouls2; - break; - - case "darksoulsiii": - MainWindow.MainViewModel.SelectedGame = Game.DarkSouls3; - break; - - case "sekiro": - case "sekiro:shadowsdietwice": - MainWindow.MainViewModel.SelectedGame = Game.Sekiro; - break; - - case "eldenring": - MainWindow.MainViewModel.SelectedGame = Game.EldenRing; - break; - - case "armoredcore6": - case "armoredcorevi:firesofrubicon": - MainWindow.MainViewModel.SelectedGame = Game.ArmoredCore6; - break; - } + "darksouls" or "darksoulsremastered" => Game.DarkSouls1, + "darksoulsii" => Game.DarkSouls2, + "darksoulsiii" => Game.DarkSouls3, + "sekiro" or "sekiro:shadowsdietwice" => Game.Sekiro, + "eldenring" => Game.EldenRing, + "armoredcore6" or "armoredcorevi:firesofrubicon" => Game.ArmoredCore6, + _ => MainWindow.MainViewModel.SelectedGame + }; } }); } diff --git a/src/SoulSplitter/Splits/ArmoredCore6/Split.cs b/src/SoulSplitter/Splits/ArmoredCore6/Split.cs index b1b1f25..7475b7f 100644 --- a/src/SoulSplitter/Splits/ArmoredCore6/Split.cs +++ b/src/SoulSplitter/Splits/ArmoredCore6/Split.cs @@ -26,15 +26,11 @@ public Split(TimingType timingType, SplitType splitType, object split) TimingType = timingType; SplitType = splitType; - switch (SplitType) + Flag = SplitType switch { - default: - throw new ArgumentException($"unsupported split type {SplitType}"); - - case SplitType.Flag: - Flag = ((FlagDescription)split).Flag; - break; - } + SplitType.Flag => ((FlagDescription)split).Flag, + _ => throw new ArgumentException($"unsupported split type {SplitType}") + }; } public readonly TimingType TimingType; diff --git a/src/SoulSplitter/Splitters/ArmoredCore6Splitter.cs b/src/SoulSplitter/Splitters/ArmoredCore6Splitter.cs index 4cb91a6..2e4a462 100644 --- a/src/SoulSplitter/Splitters/ArmoredCore6Splitter.cs +++ b/src/SoulSplitter/Splitters/ArmoredCore6Splitter.cs @@ -84,15 +84,11 @@ private void UpdateAutoSplitter() { if (!s.SplitConditionMet) { - switch (s.SplitType) + s.SplitConditionMet = s.SplitType switch { - default: - throw new ArgumentException($"Unsupported split type {s.SplitType}"); - - case SplitType.Flag: - s.SplitConditionMet = _armoredCore6.ReadEventFlag(s.Flag); - break; - } + SplitType.Flag => _armoredCore6.ReadEventFlag(s.Flag), + _ => throw new ArgumentException($"Unsupported split type {s.SplitType}") + }; } if (s.SplitConditionMet) diff --git a/src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModel.cs b/src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModel.cs index 0536883..ceb50dc 100644 --- a/src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModel.cs +++ b/src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModel.cs @@ -83,67 +83,30 @@ private bool CanAddSplit(object? param) return false; } - switch (NewSplitType) + return NewSplitType switch { - default: - throw new ArgumentException($"{NewSplitType} not supported"); - - case SplitType.Boss: - case SplitType.KnownFlag: - case SplitType.Attribute: - return NewSplitValue != null; - - case SplitType.Position: - return Position != null; - - case SplitType.Flag: - return FlagDescription != null; - - case SplitType.Bonfire: - return NewSplitBonfireState is { Bonfire: not null }; - - case SplitType.Item: - return NewSplitItemState is { ItemType: not null }; - - case SplitType.Credits: - return NewSplitTimingType != null; - } + SplitType.Boss or SplitType.KnownFlag or SplitType.Attribute => NewSplitValue != null, + SplitType.Position => Position != null, + SplitType.Flag => FlagDescription != null, + SplitType.Bonfire => NewSplitBonfireState is { Bonfire: not null }, + SplitType.Item => NewSplitItemState is { ItemType: not null }, + SplitType.Credits => NewSplitTimingType != null, + _ => throw new ArgumentException($"{NewSplitType} not supported") + }; } private void AddSplit(object? param) { - object? split = null; - switch (NewSplitType) + object? split = NewSplitType switch { - default: - throw new ArgumentException($"{NewSplitType} not supported"); - - case SplitType.Boss: - case SplitType.KnownFlag: - case SplitType.Attribute: - split = NewSplitValue; - break; - - case SplitType.Position: - split = Position; - break; - - case SplitType.Flag: - split = FlagDescription; - break; - - case SplitType.Bonfire: - split = NewSplitBonfireState; - break; - - case SplitType.Item: - split = NewSplitItemState; - break; - - case SplitType.Credits: - split = "Credits"; - break; - } + SplitType.Boss or SplitType.KnownFlag or SplitType.Attribute => NewSplitValue, + SplitType.Position => Position, + SplitType.Flag => FlagDescription, + SplitType.Bonfire => NewSplitBonfireState, + SplitType.Item => NewSplitItemState, + SplitType.Credits => "Credits", + _ => throw new ArgumentException($"{NewSplitType} not supported") + }; SplitsViewModel.AddSplit(NewSplitTimingType!.Value, NewSplitType.Value, split!); NewSplitTimingType = null; diff --git a/src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs b/src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs deleted file mode 100644 index 87ccfd0..0000000 --- a/src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs +++ /dev/null @@ -1,172 +0,0 @@ -// This file is part of the SoulSplitter distribution (https://github.com/FrankvdStam/SoulSplitter). -// Copyright (c) 2022 Frank van der Stam. -// https://github.com/FrankvdStam/SoulSplitter/blob/main/LICENSE -// -// 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, version 3. -// -// 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 . - -using System; -using System.Collections.ObjectModel; -using System.Xml.Serialization; -using SoulMemory.DarkSouls1; -using SoulSplitter.Splits; -using SoulSplitter.Splits.DarkSouls1; -using SoulSplitter.UI.Generic; -using Attribute = SoulMemory.DarkSouls1.Attribute; -using BonfireState = SoulMemory.DarkSouls1.BonfireState; - -namespace SoulSplitter.UI.DarkSouls1; - -public class DarkSouls1ViewModelRefactor : BaseViewModel -{ - public DarkSouls1ViewModelRefactor() - { - AddSplitCommand = new RelayCommand(AddSplit, CanAddSplit); - } - - public new bool StartAutomatically => BooleanFlags[0].Value; - public bool ResetInventoryIndices => BooleanFlags[1].Value; - - #region add/remove splits ============================================================================================================================================ - - private bool CanAddSplit(object? param) - { - if (!NewSplitTimingType.HasValue || !NewSplitType.HasValue) - { - return false; - } - - switch (NewSplitType) - { - default: - throw new ArgumentException($"{NewSplitType} not supported"); - - case SplitType.Boss: - case SplitType.Attribute: - return NewSplitValue != null; - - case SplitType.Position: - return Position != null; - - case SplitType.Flag: - return FlagDescription != null; - - case SplitType.Bonfire: - return NewSplitBonfireState is { Bonfire: not null }; - - case SplitType.Item: - return NewSplitItemState is { ItemType: not null }; - - case SplitType.Credits: - return NewSplitTimingType != null; - } - } - - private void AddSplit(object? param) - { - if (param is FlatSplit f) - { - SplitsViewModel.AddSplit(f.TimingType, f.SplitType, f.Split); - } - } - - - #endregion - - #region Properties for new splits ============================================================================================================================================ - - [XmlIgnore] - public new SplitType? NewSplitType - { - get => _newSplitType; - set - { - this.SetField(ref _newSplitType, value); - - switch (NewSplitType) - { - case SplitType.Attribute: - NewSplitValue = new Splits.DarkSouls1.Attribute() { AttributeType = SoulMemory.DarkSouls1.Attribute.Vitality, Level = 10 }; - break; - - case SplitType.Position: - Position = new VectorSize() { Position = CurrentPosition.Clone() }; - break; - - case SplitType.Flag: - FlagDescription = new FlagDescription(); - break; - - case SplitType.Bonfire: - NewSplitBonfireState = new Splits.DarkSouls1.BonfireState() { State = BonfireState.Unlocked }; - break; - - case SplitType.Item: - NewSplitItemState = new ItemState(); - break; - } - } - } - - private SplitType? _newSplitType = null; - - [XmlIgnore] - public Splits.DarkSouls1.BonfireState NewSplitBonfireState - { - get => _newSplitBonfireState; - set => this.SetField(ref _newSplitBonfireState, value); - } - - private Splits.DarkSouls1.BonfireState _newSplitBonfireState = null!; - - [XmlIgnore] - public ItemState NewSplitItemState - { - get => _newSplitItemState; - set => this.SetField(ref _newSplitItemState, value); - } - - private ItemState _newSplitItemState = null!; - - #endregion - - #region Static UI source data ============================================================================================================================================ - public ObservableCollection BooleanFlags { get; set; } = - [ - new BoolDescriptionViewModel() { Description = "Start automatically", Value = true }, - new BoolDescriptionViewModel() { Description = "Reset inventory indices", Value = true } - ]; - - public static ObservableCollection> TimingTypes { get; set; } = - [ - new EnumFlagViewModel(TimingType.Immediate), - new EnumFlagViewModel(TimingType.OnLoading), - new EnumFlagViewModel(TimingType.OnWarp) - ]; - - public static ObservableCollection> SplitTypes { get; set; } = - [ - new EnumFlagViewModel(SplitType.Boss), - new EnumFlagViewModel(SplitType.Attribute), - new EnumFlagViewModel(SplitType.Bonfire), - new EnumFlagViewModel(SplitType.Item), - new EnumFlagViewModel(SplitType.Position), - new EnumFlagViewModel(SplitType.Flag) - ]; - - public static ObservableCollection> Bosses { get; set; } = EnumFlagViewModel.GetEnumViewModels(); - public static ObservableCollection> Attributes { get; set; } = EnumFlagViewModel.GetEnumViewModels(); - public static ObservableCollection> Bonfires { get; set; } = EnumFlagViewModel.GetEnumViewModels(); - public static ObservableCollection> Items { get; set; } = EnumFlagViewModel.GetEnumViewModels(); - - #endregion -} diff --git a/src/SoulSplitter/UI/DarkSouls3/DarkSouls3ViewModel.cs b/src/SoulSplitter/UI/DarkSouls3/DarkSouls3ViewModel.cs index 2323902..5fc792b 100644 --- a/src/SoulSplitter/UI/DarkSouls3/DarkSouls3ViewModel.cs +++ b/src/SoulSplitter/UI/DarkSouls3/DarkSouls3ViewModel.cs @@ -39,44 +39,25 @@ private bool CanAddSplit() { return false; } - - if(NewSplitType == SplitType.Flag) - { - return FlagDescription != null; - } - if(NewSplitType == SplitType.Position) + return NewSplitType switch { - return Position != null; - } - - return NewSplitValue != null; + SplitType.Flag => FlagDescription != null, + SplitType.Position => Position != null, + _ => NewSplitValue != null + }; } private void AddSplit() { - object? split = null; - switch (NewSplitType) + object? split = NewSplitType switch { - default: - throw new ArgumentException($"{NewSplitType} not supported"); - - case SplitType.Boss: - case SplitType.Bonfire: - case SplitType.ItemPickup: - case SplitType.Attribute: - split = NewSplitValue!; - break; - - case SplitType.Position: - split = Position; - break; - - case SplitType.Flag: - split = FlagDescription; - break; - } - SplitsViewModel.AddSplit(NewSplitTimingType!.Value, NewSplitType.Value, split); + SplitType.Boss or SplitType.Bonfire or SplitType.ItemPickup or SplitType.Attribute => NewSplitValue!, + SplitType.Position => Position, + SplitType.Flag => FlagDescription, + _ => throw new ArgumentException($"{NewSplitType} not supported") + }; + SplitsViewModel.AddSplit(NewSplitTimingType!.Value, NewSplitType.Value, split!); NewSplitTimingType = null; NewSplitEnabledSplitType = false; diff --git a/src/SoulSplitter/UI/Generic/BaseViewModel.cs b/src/SoulSplitter/UI/Generic/BaseViewModel.cs index 63dade9..5d02adc 100644 --- a/src/SoulSplitter/UI/Generic/BaseViewModel.cs +++ b/src/SoulSplitter/UI/Generic/BaseViewModel.cs @@ -126,7 +126,10 @@ public RelayCommand CopyGamePositionCommand private void CopyGamePosition() { - Position.Position = CurrentPosition.Clone(); + if (Position != null) + { + Position.Position = CurrentPosition.Clone(); + } } private void RemoveSplit() @@ -153,12 +156,12 @@ public SplitsViewModel SplitsViewModel private SplitsViewModel _splitsViewModel = new(); [XmlIgnore] - public VectorSize Position + public VectorSize? Position { get => _position; set => this.SetField(ref _position, value); } - private VectorSize _position = null!; + private VectorSize? _position = null!; [XmlIgnore] public Vector3f CurrentPosition @@ -169,12 +172,12 @@ public Vector3f CurrentPosition private Vector3f _currentPosition = new(0f, 0f, 0f); [XmlIgnore] - public FlagDescription FlagDescription + public FlagDescription? FlagDescription { get => _flagDescription; set => this.SetField(ref _flagDescription, value); } - private FlagDescription _flagDescription = null!; + private FlagDescription? _flagDescription; #endregion diff --git a/src/SoulSplitter/UI/Generic/FilteredComboBox.cs b/src/SoulSplitter/UI/Generic/FilteredComboBox.cs index 77ed627..2e25df3 100644 --- a/src/SoulSplitter/UI/Generic/FilteredComboBox.cs +++ b/src/SoulSplitter/UI/Generic/FilteredComboBox.cs @@ -25,25 +25,20 @@ namespace SoulSplitter.UI.Generic; //https://stackoverflow.com/questions/2001842/dynamic-filter-of-wpf-combobox-based-on-text-input/41986141#41986141 public class FilteredComboBox : ComboBox { - private string oldFilter = string.Empty; + private string _oldFilter = string.Empty; - private string currentFilter = string.Empty; + private string _currentFilter = string.Empty; protected TextBox EditableTextBox => (GetTemplateChild("PART_EditableTextBox") as TextBox)!; protected override void OnItemsSourceChanged(IEnumerable oldValue, IEnumerable newValue) { - if (newValue != null) - { - var view = CollectionViewSource.GetDefaultView(newValue); - view.Filter += FilterItem; - } - - if (oldValue != null) - { - var view = CollectionViewSource.GetDefaultView(oldValue); - if (view != null) view.Filter -= FilterItem; - } + var newView = CollectionViewSource.GetDefaultView(newValue); + newView.Filter += FilterItem; + + var oldView = CollectionViewSource.GetDefaultView(oldValue); + oldView.Filter -= FilterItem; + base.OnItemsSourceChanged(oldValue, newValue); } @@ -69,7 +64,7 @@ protected override void OnPreviewKeyDown(KeyEventArgs e) case Key.Escape: IsDropDownOpen = false; SelectedIndex = -1; - Text = currentFilter; + Text = _currentFilter; break; default: if (e.Key == Key.Down) IsDropDownOpen = true; @@ -79,7 +74,7 @@ protected override void OnPreviewKeyDown(KeyEventArgs e) } // Cache text - oldFilter = Text; + _oldFilter = Text; } protected override void OnKeyUp(KeyEventArgs e) @@ -96,7 +91,7 @@ protected override void OnKeyUp(KeyEventArgs e) break; default: var typedText = Text; - if (Text != oldFilter) + if (Text != _oldFilter) { RefreshFilter(); IsDropDownOpen = true; @@ -105,7 +100,7 @@ protected override void OnKeyUp(KeyEventArgs e) } base.OnKeyUp(e); - currentFilter = typedText; + _currentFilter = typedText; Text = typedText; EditableTextBox.SelectionStart = int.MaxValue; @@ -138,13 +133,12 @@ private void RefreshFilter() private void ClearFilter() { - currentFilter = string.Empty; + _currentFilter = string.Empty; RefreshFilter(); } private bool FilterItem(object value) { - if (value == null) return false; if (Text.Length == 0) return true; var words = Text.ToLower().Split(' '); diff --git a/src/SoulSplitter/UI/Generic/HierarchicalViewModel.cs b/src/SoulSplitter/UI/Generic/HierarchicalViewModel.cs index c238d18..f62c51e 100644 --- a/src/SoulSplitter/UI/Generic/HierarchicalViewModel.cs +++ b/src/SoulSplitter/UI/Generic/HierarchicalViewModel.cs @@ -92,7 +92,7 @@ public SplitViewModel? SelectedSplit get => _selectedSplit; set => this.SetField(ref _selectedSplit, value); } - private SplitViewModel? _selectedSplit = null!; + private SplitViewModel? _selectedSplit; public ObservableCollection Splits { get; set; } = []; @@ -137,7 +137,7 @@ public class SplitTypeViewModel : ICustomNotifyPropertyChanged { [XmlIgnore] [NonSerialized] - public SplitTimingViewModel? Parent = null!; + public SplitTimingViewModel? Parent; public SplitType SplitType { @@ -185,7 +185,7 @@ public class SplitViewModel : ICustomNotifyPropertyChanged { [XmlIgnore] [NonSerialized] - public SplitTypeViewModel? Parent = null!; + public SplitTypeViewModel? Parent; public object Split { diff --git a/src/SoulSplitter/UI/Generic/RelayCommand.cs b/src/SoulSplitter/UI/Generic/RelayCommand.cs index 742c0fe..2d0eac7 100644 --- a/src/SoulSplitter/UI/Generic/RelayCommand.cs +++ b/src/SoulSplitter/UI/Generic/RelayCommand.cs @@ -22,13 +22,10 @@ namespace SoulSplitter.UI.Generic; public class RelayCommand(Action execute, Func? canExecute) : ICommand { public RelayCommand(Action execute) : this((param) => execute(), (Func?)null) { } - public RelayCommand(Action execute, Func canExecute) : this((param) => execute(), (param) => canExecute()) { } - public RelayCommand(Action execute, Func canExecute) : this((param) => execute(), canExecute) { } + public RelayCommand(Action execute, Func canExecute) : this((param) => execute(), (_) => canExecute()) { } + public RelayCommand(Action execute, Func canExecute) : this((_) => execute(), canExecute) { } public RelayCommand(Action execute) : this(execute, (Func?)null) { } - public RelayCommand(Action execute, Func canExecute) : this(execute, (param) => canExecute()) { } - - private readonly Action _execute = execute; - private readonly Func? _canExecute = canExecute; + public RelayCommand(Action execute, Func canExecute) : this(execute, (_) => canExecute()) { } public event EventHandler CanExecuteChanged { @@ -38,11 +35,11 @@ public event EventHandler CanExecuteChanged public bool CanExecute(object? parameter) { - return _canExecute == null || _canExecute(parameter); + return canExecute == null || canExecute(parameter); } public void Execute(object? parameter) { - _execute(parameter); + execute(parameter); } } diff --git a/src/SoulSplitter/UI/MainViewModel.cs b/src/SoulSplitter/UI/MainViewModel.cs index 93efdec..66d0e46 100644 --- a/src/SoulSplitter/UI/MainViewModel.cs +++ b/src/SoulSplitter/UI/MainViewModel.cs @@ -374,7 +374,7 @@ private void ImportSettings() }); } - [XmlIgnore] public string ImportXml = null!; + [XmlIgnore] public string? ImportXml = null!; [XmlIgnore] public RelayCommand CommandExportSettingsFromFile diff --git a/src/SoulSplitter/UI/Sekiro/SekiroViewModel.cs b/src/SoulSplitter/UI/Sekiro/SekiroViewModel.cs index d498488..62698a0 100644 --- a/src/SoulSplitter/UI/Sekiro/SekiroViewModel.cs +++ b/src/SoulSplitter/UI/Sekiro/SekiroViewModel.cs @@ -46,49 +46,25 @@ private bool CanAddSplit() return false; } - switch (NewSplitType) + return NewSplitType switch { - default: - throw new ArgumentException($"{NewSplitType} not supported"); - - case SplitType.Boss: - case SplitType.Bonfire: - case SplitType.Attribute: - return NewSplitValue != null; - - case SplitType.Position: - return Position != null; - - case SplitType.Flag: - return FlagDescription != null; - } + SplitType.Boss or SplitType.Bonfire or SplitType.Attribute => NewSplitValue != null, + SplitType.Position => Position != null, + SplitType.Flag => FlagDescription != null, + _ => throw new ArgumentException($"{NewSplitType} not supported") + }; } private void AddSplit() { - object? split = null; - switch (NewSplitType) + object? split = NewSplitType switch { - default: - throw new ArgumentException($"{NewSplitType} not supported"); - - case SplitType.Boss: - case SplitType.Bonfire: - split = NewSplitValue; - break; - - case SplitType.Position: - split = Position; - break; - - case SplitType.Attribute: - split = NewSplitValue; - break; - - case SplitType.Flag: - split = FlagDescription; - break; - } + SplitType.Boss or SplitType.Bonfire => NewSplitValue, + SplitType.Position => Position, + SplitType.Attribute => NewSplitValue, + SplitType.Flag => FlagDescription, + _ => throw new ArgumentException($"{NewSplitType} not supported") + }; SplitsViewModel.AddSplit(NewSplitTimingType!.Value, NewSplitType.Value, split!); NewSplitTimingType = null; diff --git a/src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs b/src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs index 430c70b..7a3b26d 100644 --- a/src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs +++ b/src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs @@ -33,7 +33,7 @@ public partial class SplitSettingsControl : UserControl, ICustomNotifyPropertyCh { public SplitSettingsControl() { - CopyGamePositionCommand = new RelayCommand(CopyGamePosition, (o) => true); + CopyGamePositionCommand = new RelayCommand(CopyGamePosition, (_) => true); AddSplitCommand = new RelayCommand(AddSplitFunc, CanAddSplit); RemoveSplitCommand = new RelayCommand(RemoveSplitFunc, CanRemoveSplit); InitializeComponent(); @@ -75,6 +75,8 @@ private bool CanAddSplit(object? param) case SplitType.Flag: return FlagDescription != null; + case SplitType.Credits: + case SplitType.ItemPickup: default: throw new InvalidOperationException($"unsupported split type {SelectedSplitType}"); } @@ -134,7 +136,7 @@ private void AddSplitFunc(object? parameter) } private bool CanRemoveSplit(object? param) => SplitsViewModel.SelectedSplit != null; - private void RemoveSplitFunc(object? parameter) => RemoveSplit?.Execute(parameter); + private void RemoveSplitFunc(object? parameter) => RemoveSplit.Execute(parameter); #endregion @@ -268,26 +270,11 @@ public RelayCommand RemoveSplit #region Commands - public RelayCommand AddSplitCommand - { - get => _addSplitCommand; - set => this.SetField(ref _addSplitCommand, value); - } - private RelayCommand _addSplitCommand = null!; + public RelayCommand AddSplitCommand { get; set; } - public RelayCommand RemoveSplitCommand - { - get => _removeSplitCommand; - set => this.SetField(ref _removeSplitCommand, value); - } - private RelayCommand _removeSplitCommand = null!; + public RelayCommand RemoveSplitCommand { get; set; } - public RelayCommand CopyGamePositionCommand - { - get => _copyGamePositionCommand; - set => this.SetField(ref _copyGamePositionCommand, value); - } - private RelayCommand _copyGamePositionCommand = null!; + public RelayCommand CopyGamePositionCommand { get; set; } private void CopyGamePosition(object? param) { @@ -319,21 +306,21 @@ public Enum? SelectedBoss get => _selectedBoss; set => this.SetField(ref _selectedBoss, value); } - private Enum? _selectedBoss = null!; + private Enum? _selectedBoss; public Enum? SelectedKnownFlag { get => _selectedKnownFlag; set => this.SetField(ref _selectedKnownFlag, value); } - private Enum? _selectedKnownFlag = null!; + private Enum? _selectedKnownFlag; public Enum? SelectedBonfire { get => _selectedBonfire; set => this.SetField(ref _selectedBonfire, value); } - private Enum? _selectedBonfire = null!; + private Enum? _selectedBonfire; //For dark souls 1 specifically public Enum? SelectedBonfireState @@ -341,14 +328,14 @@ public Enum? SelectedBonfireState get => _selectedBonfireState; set => this.SetField(ref _selectedBonfireState, value); } - private Enum? _selectedBonfireState = null!; + private Enum? _selectedBonfireState; public Enum? SelectedAttribute { get => _selectedAttribute; set => this.SetField(ref _selectedAttribute, value); } - private Enum? _selectedAttribute = null!; + private Enum? _selectedAttribute; public int AttributeLevel { From ad7c510b01f58dea1225bad71ac88fbe3eaa98a2 Mon Sep 17 00:00:00 2001 From: Frank van der Stam Date: Fri, 24 Jan 2025 16:08:00 +0100 Subject: [PATCH 09/28] More improvements --- src/SoulMemory/DarkSouls1/Item.cs | 4 +- src/SoulMemory/DarkSouls1/Ptde.cs | 7 +- src/SoulMemory/DarkSouls1/Remastered.cs | 25 ++++---- src/SoulMemory/DarkSouls1/Sl2Reader.cs | 2 +- src/SoulMemory/DarkSouls2/DarkSouls2.cs | 2 +- src/SoulMemory/EldenRing/EldenRing.cs | 2 +- src/SoulMemory/Memory/Pointer.cs | 2 +- src/SoulMemory/Parameters/BaseParam.cs | 2 +- .../Parameters/ParamFieldAttribute.cs | 2 +- src/SoulMemory/RefreshError.cs | 2 +- src/SoulMemory/Sekiro/Sekiro.cs | 4 +- src/SoulMemory/soulmods/Soulmods.cs | 7 +- src/SoulSplitter/SoulComponent.cs | 13 ++-- .../Splitters/DarkSouls1Splitter.cs | 12 ++-- .../Splitters/DarkSouls3Splitter.cs | 10 +-- .../Converters/EnumToVisibilityConverter.cs | 2 +- .../UI/DarkSouls1/DarkSouls1ViewModel.cs | 10 +-- .../UI/DarkSouls2/DarkSouls2ViewModel.cs | 22 +++---- .../UI/DarkSouls3/DarkSouls3ViewModel.cs | 6 +- .../UI/EldenRing/EldenRingViewModel.cs | 12 ++-- src/SoulSplitter/UI/Generic/BaseViewModel.cs | 10 +-- .../UI/Generic/FlagTrackerViewModel.cs | 6 +- src/SoulSplitter/UI/Generic/RelayCommand.cs | 8 +-- .../UI/Generic/SplitTemplateSelector.cs | 18 ++---- src/SoulSplitter/UI/MainViewModel.cs | 6 +- src/SoulSplitter/UI/Sekiro/SekiroViewModel.cs | 2 +- .../UI/Validation/TextToNumberValidation.cs | 6 +- .../UIv2/SplitSettingsControl.xaml.cs | 2 +- src/cli/cli.csproj | 64 ++++++++++--------- src/clitimer/clitimer.csproj | 20 +++--- .../MemoryV2/ProcessHookTests.cs | 4 +- .../SoulMemory.Tests/Mocks/ProcessHookMock.cs | 4 +- .../SoulMemory.Tests/SoulMemory.Tests.csproj | 3 +- .../Integration/ArmoredCore6.cs | 2 +- .../SoulSplitter.Tests.csproj | 2 + 35 files changed, 147 insertions(+), 158 deletions(-) diff --git a/src/SoulMemory/DarkSouls1/Item.cs b/src/SoulMemory/DarkSouls1/Item.cs index 2698edd..573b8e2 100644 --- a/src/SoulMemory/DarkSouls1/Item.cs +++ b/src/SoulMemory/DarkSouls1/Item.cs @@ -46,7 +46,7 @@ public override string ToString() public int GetGameValue() { int id = (int)ItemType; - if (Upgrade == ItemUpgrade.PyroFlame || Upgrade == ItemUpgrade.PyroFlameAscended) + if (Upgrade is ItemUpgrade.PyroFlame or ItemUpgrade.PyroFlameAscended) { id += UpgradeLevel * 100; } @@ -55,7 +55,7 @@ public int GetGameValue() id += UpgradeLevel; } - if (Upgrade == ItemUpgrade.Infusable || Upgrade == ItemUpgrade.InfusableRestricted) + if (Upgrade is ItemUpgrade.Infusable or ItemUpgrade.InfusableRestricted) { id += (int)Upgrade; } diff --git a/src/SoulMemory/DarkSouls1/Ptde.cs b/src/SoulMemory/DarkSouls1/Ptde.cs index bfb2fa0..cec3ce2 100644 --- a/src/SoulMemory/DarkSouls1/Ptde.cs +++ b/src/SoulMemory/DarkSouls1/Ptde.cs @@ -308,14 +308,9 @@ private int GetEventFlagOffset(uint eventFlagId, out uint mask) } throw new ArgumentException("Unknown event flag ID: " + eventFlagId); } - + public bool ReadEventFlag(uint eventFlagId) { - if (_eventFlags == null) - { - return false; - } - int offset = GetEventFlagOffset(eventFlagId, out uint mask); uint value = _eventFlags.ReadUInt32(offset); return (value & mask) != 0; diff --git a/src/SoulMemory/DarkSouls1/Remastered.cs b/src/SoulMemory/DarkSouls1/Remastered.cs index 9df2bea..dbcd635 100644 --- a/src/SoulMemory/DarkSouls1/Remastered.cs +++ b/src/SoulMemory/DarkSouls1/Remastered.cs @@ -370,11 +370,6 @@ private int GetEventFlagOffset(uint eventFlagId, out uint mask) public bool ReadEventFlag(uint eventFlagId) { - if (_eventFlags == null) - { - return false; - } - int offset = GetEventFlagOffset(eventFlagId, out uint mask); uint value = _eventFlags.ReadUInt32(offset); return (value & mask) != 0; @@ -452,15 +447,17 @@ private int GetSteamId3() } - private const string IsJapaneseAsm = @"0: 48 83 ec 38 sub rsp,0x38 -4: 49 be fa fa fa fa fa movabs r14,0xfafafafafafafafa -b: fa fa fa -e: 41 ff d6 call r14 -11: 49 be fa fa fa fa fa movabs r14,0xfafafafafafafafa -18: fa fa fa -1b: 41 89 06 mov DWORD PTR [r14],eax -1e: 48 83 c4 38 add rsp,0x38 -22: c3 ret"; + private const string IsJapaneseAsm = """ + 0: 48 83 ec 38 sub rsp,0x38 + 4: 49 be fa fa fa fa fa movabs r14,0xfafafafafafafafa + b: fa fa fa + e: 41 ff d6 call r14 + 11: 49 be fa fa fa fa fa movabs r14,0xfafafafafafafafa + 18: fa fa fa + 1b: 41 89 06 mov DWORD PTR [r14],eax + 1e: 48 83 c4 38 add rsp,0x38 + 22: c3 ret + """; private readonly Regex _assemblyRegex = new(@"^[\w\d]+:\s+((?:[\w\d][\w\d] ?)+)"); diff --git a/src/SoulMemory/DarkSouls1/Sl2Reader.cs b/src/SoulMemory/DarkSouls1/Sl2Reader.cs index 20b9d7d..036e2f9 100644 --- a/src/SoulMemory/DarkSouls1/Sl2Reader.cs +++ b/src/SoulMemory/DarkSouls1/Sl2Reader.cs @@ -46,7 +46,7 @@ internal static class Sl2Reader /// the slot to read the IGT from /// The game version /// IGT or -1 if sometimes failed - public static int? GetSaveFileIgt(string path, int slot, bool ptde) + public static int? GetSaveFileIgt(string? path, int slot, bool ptde) { int? igt = null; diff --git a/src/SoulMemory/DarkSouls2/DarkSouls2.cs b/src/SoulMemory/DarkSouls2/DarkSouls2.cs index 9bd9b55..d922e32 100644 --- a/src/SoulMemory/DarkSouls2/DarkSouls2.cs +++ b/src/SoulMemory/DarkSouls2/DarkSouls2.cs @@ -25,7 +25,7 @@ namespace SoulMemory.DarkSouls2; public class DarkSouls2 : IDarkSouls2 { public int GetInGameTimeMilliseconds() => 0; - private IDarkSouls2? _darkSouls2 = null!; + private IDarkSouls2? _darkSouls2; public Process? GetProcess() => _darkSouls2?.GetProcess(); public Vector3f GetPosition() => _darkSouls2?.GetPosition() ?? new Vector3f(); public bool IsLoading() => _darkSouls2?.IsLoading() ?? false; diff --git a/src/SoulMemory/EldenRing/EldenRing.cs b/src/SoulMemory/EldenRing/EldenRing.cs index 9c5eab2..69dfbeb 100644 --- a/src/SoulMemory/EldenRing/EldenRing.cs +++ b/src/SoulMemory/EldenRing/EldenRing.cs @@ -26,7 +26,7 @@ namespace SoulMemory.EldenRing; public class EldenRing : IGame { - private Process? _process = null; + private Process? _process; private readonly Pointer _igt = new(); private readonly Pointer _hud = new(); diff --git a/src/SoulMemory/Memory/Pointer.cs b/src/SoulMemory/Memory/Pointer.cs index c1803c9..2dc3a8f 100644 --- a/src/SoulMemory/Memory/Pointer.cs +++ b/src/SoulMemory/Memory/Pointer.cs @@ -29,7 +29,7 @@ public class Pointer public long BaseAddress; public List Offsets = []; public bool Is64Bit; - private bool _initialized = false; + private bool _initialized; public void Initialize(Process process, bool is64Bit, long baseAddress, params long[] offsets) diff --git a/src/SoulMemory/Parameters/BaseParam.cs b/src/SoulMemory/Parameters/BaseParam.cs index cf907d8..bbf524b 100644 --- a/src/SoulMemory/Parameters/BaseParam.cs +++ b/src/SoulMemory/Parameters/BaseParam.cs @@ -98,7 +98,7 @@ protected BaseParam(Pointer basePointer, ByteArrayMemory memory, long offset, Pa #region Writing fields ====================================================================================================================================================== - public bool WriteEnabled { get; set; } = false; + public bool WriteEnabled { get; set; } protected void WriteParamField(ref T field, T value, [CallerMemberName] string? propertyName = null) { diff --git a/src/SoulMemory/Parameters/ParamFieldAttribute.cs b/src/SoulMemory/Parameters/ParamFieldAttribute.cs index ab0d416..5b567a0 100644 --- a/src/SoulMemory/Parameters/ParamFieldAttribute.cs +++ b/src/SoulMemory/Parameters/ParamFieldAttribute.cs @@ -20,7 +20,7 @@ internal class ParamFieldAttribute : System.Attribute { public int Offset; public ParamType ParamType; - public int? ArraySize = null; + public int? ArraySize; public ParamFieldAttribute(int offset, ParamType paramType) { diff --git a/src/SoulMemory/RefreshError.cs b/src/SoulMemory/RefreshError.cs index 72c7c51..49a9483 100644 --- a/src/SoulMemory/RefreshError.cs +++ b/src/SoulMemory/RefreshError.cs @@ -45,7 +45,7 @@ public RefreshError(RefreshErrorReason reason, Exception exception) public RefreshErrorReason Reason { get; } public string Message { get; } = null!; - public Exception? Exception { get; } = null!; + public Exception? Exception { get; } public override string ToString() { diff --git a/src/SoulMemory/Sekiro/Sekiro.cs b/src/SoulMemory/Sekiro/Sekiro.cs index d3ef7aa..777f951 100644 --- a/src/SoulMemory/Sekiro/Sekiro.cs +++ b/src/SoulMemory/Sekiro/Sekiro.cs @@ -208,7 +208,7 @@ public bool IsPlayerLoaded() public Vector3f GetPlayerPosition() { - return new(_position.ReadFloat(0x80), _position.ReadFloat(0x84), _position.ReadFloat(0x88)); + return new Vector3f(_position.ReadFloat(0x80), _position.ReadFloat(0x84), _position.ReadFloat(0x88)); } public bool IsBlackscreenActive() @@ -409,7 +409,7 @@ private set } } - private bool _bitBlt = false; + private bool _bitBlt; private readonly object _bitBltLock = new(); private readonly List _files = diff --git a/src/SoulMemory/soulmods/Soulmods.cs b/src/SoulMemory/soulmods/Soulmods.cs index 9914748..00f65b5 100644 --- a/src/SoulMemory/soulmods/Soulmods.cs +++ b/src/SoulMemory/soulmods/Soulmods.cs @@ -68,13 +68,10 @@ public static bool Inject(Process process) - private static List<(string name, long address)>? _soulmodsMethods = null!; + private static List<(string name, long address)>? _soulmodsMethods; public static TSized RustCall(this Process process, string function, TSized? parameter = null) where TSized : struct { - if (_soulmodsMethods == null) - { - _soulmodsMethods = process.GetModuleExportedFunctions("soulmods.dll"); - } + _soulmodsMethods ??= process.GetModuleExportedFunctions("soulmods.dll"); var functionPtr = _soulmodsMethods.First(i => i.name == function).address; var buffer = process.Allocate(Marshal.SizeOf()); diff --git a/src/SoulSplitter/SoulComponent.cs b/src/SoulSplitter/SoulComponent.cs index 3cdf773..c311acf 100644 --- a/src/SoulSplitter/SoulComponent.cs +++ b/src/SoulSplitter/SoulComponent.cs @@ -44,7 +44,7 @@ public class SoulComponent : IComponent private ISplitter? _splitter; private IGame _game = null!; private DateTime _lastFailedRefresh = DateTime.MinValue; - private bool _previousBitBlt = false; + private bool _previousBitBlt; public readonly MainWindow MainWindow; public SoulComponent(LiveSplitState state, bool shouldThrowOnInvalidInstallation = true) { @@ -90,10 +90,7 @@ public void Update(IInvalidator invalidator, LiveSplitState state, float width, if( //For these error cases it is pointless to try again right away; it will only eat host CPU. //Hence the timeout. - err.Reason == RefreshErrorReason.ProcessNotRunning || - err.Reason == RefreshErrorReason.ProcessExited || - err.Reason == RefreshErrorReason.ScansFailed || - err.Reason == RefreshErrorReason.AccessDenied) + err.Reason is RefreshErrorReason.ProcessNotRunning or RefreshErrorReason.ProcessExited or RefreshErrorReason.ScansFailed or RefreshErrorReason.AccessDenied) { _lastFailedRefresh = DateTime.Now; } @@ -133,7 +130,7 @@ private void SetBitBlt() } - private Game? _selectedGame = null; + private Game? _selectedGame; private ResultErr UpdateSplitter(MainViewModel mainViewModel, LiveSplitState state) { //Detect game change, initialize the correct splitter @@ -235,10 +232,10 @@ private void ImportXml() try { var xml = MainWindow.MainViewModel.ImportXml; - MainWindow.MainViewModel.ImportXml = null!; //Don't get stuck in an import loop + MainWindow.MainViewModel.ImportXml = null; //Don't get stuck in an import loop var xmlDocument = new XmlDocument(); - xmlDocument.LoadXml(xml); + xmlDocument.LoadXml(xml!); SetSettings(xmlDocument); } diff --git a/src/SoulSplitter/Splitters/DarkSouls1Splitter.cs b/src/SoulSplitter/Splitters/DarkSouls1Splitter.cs index 94fe814..430d9dc 100644 --- a/src/SoulSplitter/Splitters/DarkSouls1Splitter.cs +++ b/src/SoulSplitter/Splitters/DarkSouls1Splitter.cs @@ -111,10 +111,10 @@ private void OnReset(object sender, TimerPhase timerPhase) private readonly ITimerModel _timerModel; private int _inGameTime; private TimerState _timerState = TimerState.WaitForStart; - private string? _savefilePath = null; + private string? _savefilePath; private int _saveSlot = -1; - private int _previousIgt = 0; - private bool _previousCredits = false; + private int _previousIgt; + private bool _previousCredits; private void StartTimer() { @@ -326,9 +326,9 @@ private void ResolveSplitTiming(Split s) - private bool _isWarpRequested = false; - private bool _isWarping = false; - private bool _warpHasPlayerBeenUnloaded = false; + private bool _isWarpRequested; + private bool _isWarping; + private bool _warpHasPlayerBeenUnloaded; private void TrackWarps() { diff --git a/src/SoulSplitter/Splitters/DarkSouls3Splitter.cs b/src/SoulSplitter/Splitters/DarkSouls3Splitter.cs index 065d431..c14b8d2 100644 --- a/src/SoulSplitter/Splitters/DarkSouls3Splitter.cs +++ b/src/SoulSplitter/Splitters/DarkSouls3Splitter.cs @@ -29,8 +29,8 @@ namespace SoulSplitter.Splitters; public class DarkSouls3Splitter : ISplitter { - private readonly LiveSplitState _liveSplitState = null!; - private readonly DarkSouls3 _darkSouls3 = null!; + private readonly LiveSplitState _liveSplitState; + private readonly DarkSouls3 _darkSouls3; private DarkSouls3ViewModel _darkSouls3ViewModel = null!; private MainViewModel _mainViewModel = null!; @@ -42,8 +42,10 @@ public DarkSouls3Splitter(LiveSplitState state, DarkSouls3 darkSouls) _liveSplitState.OnReset += OnReset; _liveSplitState.IsGameTimePaused = true; - _timerModel = new TimerModel(); - _timerModel.CurrentState = state; + _timerModel = new TimerModel + { + CurrentState = state + }; } diff --git a/src/SoulSplitter/UI/Converters/EnumToVisibilityConverter.cs b/src/SoulSplitter/UI/Converters/EnumToVisibilityConverter.cs index c8488c0..cefb388 100644 --- a/src/SoulSplitter/UI/Converters/EnumToVisibilityConverter.cs +++ b/src/SoulSplitter/UI/Converters/EnumToVisibilityConverter.cs @@ -60,7 +60,7 @@ public object[] ConvertBack(object value, Type[] targetTypes, object parameter, throw new NotSupportedException(); } - public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) + public object ConvertBack(object? value, Type targetType, object? parameter, System.Globalization.CultureInfo culture) { throw new NotSupportedException(); } diff --git a/src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModel.cs b/src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModel.cs index ceb50dc..4833da1 100644 --- a/src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModel.cs +++ b/src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModel.cs @@ -54,14 +54,14 @@ public DropModType DropModType #region [XmlIgnore] - public bool DropModRequestGameExit = false; + public bool DropModRequestGameExit; [XmlIgnore] - public bool DropModRequestInitialisation = false; + public bool DropModRequestInitialisation; private void OnDropModSettingsChanged(DropModType oldValue, DropModType newValue) { //When dropmod is turned off, the game should be closed to ensure no modifications are left behind in memory - if ((oldValue == DropModType.AnyPercent || oldValue == DropModType.AllAchievements) && newValue == DropModType.None) + if (oldValue is DropModType.AnyPercent or DropModType.AllAchievements && newValue == DropModType.None) { DropModRequestGameExit = true; } @@ -97,7 +97,7 @@ private bool CanAddSplit(object? param) private void AddSplit(object? param) { - object? split = NewSplitType switch + var split = NewSplitType switch { SplitType.Boss or SplitType.KnownFlag or SplitType.Attribute => NewSplitValue, SplitType.Position => Position, @@ -151,7 +151,7 @@ private void AddSplit(object? param) } } } - private SplitType? _newSplitType = null; + private SplitType? _newSplitType; [XmlIgnore] public Splits.DarkSouls1.BonfireState NewSplitBonfireState diff --git a/src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs b/src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs index 7771160..9cc076d 100644 --- a/src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs +++ b/src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs @@ -148,7 +148,7 @@ public TimingType? NewSplitTimingType NewSplitTypeEnabled = true; } } - private TimingType? _newSplitTimingType = null; + private TimingType? _newSplitTimingType; [XmlIgnore] public DarkSouls2SplitType? NewSplitType @@ -191,7 +191,7 @@ public DarkSouls2SplitType? NewSplitType } } } - private DarkSouls2SplitType? _newSplitType = null; + private DarkSouls2SplitType? _newSplitType; [XmlIgnore] public object? NewSplitValue @@ -203,7 +203,7 @@ public object? NewSplitValue NewSplitAddEnabled = NewSplitValue != null; } } - private object? _newSplitValue = null; + private object? _newSplitValue; [XmlIgnore] public bool NewSplitTypeEnabled @@ -211,7 +211,7 @@ public bool NewSplitTypeEnabled get => _newSplitTypeEnabled; set => this.SetField(ref _newSplitTypeEnabled, value); } - private bool _newSplitTypeEnabled = false; + private bool _newSplitTypeEnabled; [XmlIgnore] public bool NewSplitPositionEnabled @@ -219,7 +219,7 @@ public bool NewSplitPositionEnabled get => _newSplitPositionEnabled; set => this.SetField(ref _newSplitPositionEnabled, value); } - private bool _newSplitPositionEnabled = false; + private bool _newSplitPositionEnabled; [XmlIgnore] public bool NewSplitBossKillEnabled @@ -227,7 +227,7 @@ public bool NewSplitBossKillEnabled get => _newSplitBossKillEnabled; set => this.SetField(ref _newSplitBossKillEnabled, value); } - private bool _newSplitBossKillEnabled = false; + private bool _newSplitBossKillEnabled; [XmlIgnore] public bool NewSplitAttributeEnabled @@ -235,7 +235,7 @@ public bool NewSplitAttributeEnabled get => _newSplitAttributeEnabled; set => this.SetField(ref _newSplitAttributeEnabled, value); } - private bool _newSplitAttributeEnabled = false; + private bool _newSplitAttributeEnabled; [XmlIgnore] public bool NewSplitFlagEnabled @@ -243,7 +243,7 @@ public bool NewSplitFlagEnabled get => _newSplitFlagEnabled; set => this.SetField(ref _newSplitFlagEnabled, value); } - private bool _newSplitFlagEnabled = false; + private bool _newSplitFlagEnabled; [XmlIgnore] public bool NewSplitAddEnabled @@ -251,7 +251,7 @@ public bool NewSplitAddEnabled get => _newSplitAddEnabled; set => this.SetField(ref _newSplitAddEnabled, value); } - private bool _newSplitAddEnabled = false; + private bool _newSplitAddEnabled; [XmlIgnore] public bool RemoveSplitEnabled @@ -259,7 +259,7 @@ public bool RemoveSplitEnabled get => _removeSplitEnabled; set => this.SetField(ref _removeSplitEnabled, value); } - private bool _removeSplitEnabled = false; + private bool _removeSplitEnabled; [XmlIgnore] public HierarchicalSplitViewModel? SelectedSplit @@ -271,7 +271,7 @@ public HierarchicalSplitViewModel? SelectedSplit RemoveSplitEnabled = SelectedSplit != null; } } - private HierarchicalSplitViewModel? _selectedSplit = null; + private HierarchicalSplitViewModel? _selectedSplit; #endregion diff --git a/src/SoulSplitter/UI/DarkSouls3/DarkSouls3ViewModel.cs b/src/SoulSplitter/UI/DarkSouls3/DarkSouls3ViewModel.cs index 5fc792b..50d0fba 100644 --- a/src/SoulSplitter/UI/DarkSouls3/DarkSouls3ViewModel.cs +++ b/src/SoulSplitter/UI/DarkSouls3/DarkSouls3ViewModel.cs @@ -50,7 +50,7 @@ private bool CanAddSplit() private void AddSplit() { - object? split = NewSplitType switch + var split = NewSplitType switch { SplitType.Boss or SplitType.Bonfire or SplitType.ItemPickup or SplitType.Attribute => NewSplitValue!, SplitType.Position => Position, @@ -73,7 +73,7 @@ public bool LockIgtToZero get => _lockIgtToZero; set => this.SetField(ref _lockIgtToZero, value); } - private bool _lockIgtToZero = false; + private bool _lockIgtToZero; [XmlIgnore] public new SplitType? NewSplitType @@ -99,7 +99,7 @@ public bool LockIgtToZero } } } - private SplitType? _newSplitType = null; + private SplitType? _newSplitType; #endregion diff --git a/src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs b/src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs index 47c9a51..d5b5de1 100644 --- a/src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs +++ b/src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs @@ -74,7 +74,7 @@ public bool EnabledSplitType get => _enabledSplitType; set => this.SetField(ref _enabledSplitType, value); } - private bool _enabledSplitType = false; + private bool _enabledSplitType; [XmlIgnore] public EldenRingSplitType? NewSplitType @@ -214,7 +214,7 @@ public bool VisibleItemSplit private bool _visibleItemSplit; [XmlIgnore] - public PositionViewModel NewSplitPosition + public PositionViewModel? NewSplitPosition { get => _newSplitPosition; set @@ -223,7 +223,7 @@ public PositionViewModel NewSplitPosition EnabledAddSplit = _newSplitPosition != null; } } - private PositionViewModel _newSplitPosition = new(); + private PositionViewModel? _newSplitPosition; [XmlIgnore] public bool VisiblePositionSplit @@ -354,9 +354,9 @@ public void AddSplit() break; case EldenRingSplitType.Position: - if (hierarchicalSplitType.Children.All(i => i.Split.ToString() != NewSplitPosition.Position.ToString())) + if (hierarchicalSplitType.Children.All(i => i.Split.ToString() != NewSplitPosition!.Position.ToString())) { - hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = NewSplitPosition.Position, Parent = hierarchicalSplitType }); + hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = NewSplitPosition!.Position, Parent = hierarchicalSplitType }); } break; } @@ -393,7 +393,7 @@ public HierarchicalSplitViewModel? SelectedSplit EnabledRemoveSplit = SelectedSplit != null; } } - private HierarchicalSplitViewModel? _selectedSplit = null; + private HierarchicalSplitViewModel? _selectedSplit; public void RemoveSplit() { diff --git a/src/SoulSplitter/UI/Generic/BaseViewModel.cs b/src/SoulSplitter/UI/Generic/BaseViewModel.cs index 5d02adc..b03d971 100644 --- a/src/SoulSplitter/UI/Generic/BaseViewModel.cs +++ b/src/SoulSplitter/UI/Generic/BaseViewModel.cs @@ -29,8 +29,8 @@ public class BaseViewModel : ICustomNotifyPropertyChanged { public BaseViewModel() { - CopyGamePositionCommand = new RelayCommand(CopyGamePosition, (o) => true); - RemoveSplitCommand = new RelayCommand(RemoveSplit, (o) => SplitsViewModel.SelectedSplit != null); + CopyGamePositionCommand = new RelayCommand(CopyGamePosition, (_) => true); + RemoveSplitCommand = new RelayCommand(RemoveSplit, (_) => SplitsViewModel.SelectedSplit != null); } #region Field visibility @@ -61,7 +61,7 @@ public SplitType? NewSplitType } } } - private SplitType? _newSplitType = null; + private SplitType? _newSplitType; [XmlIgnore] public TimingType? NewSplitTimingType @@ -91,7 +91,7 @@ public bool NewSplitEnabledSplitType get => _newSplitEnabledSplitType; set => this.SetField(ref _newSplitEnabledSplitType, value); } - private bool _newSplitEnabledSplitType = false; + private bool _newSplitEnabledSplitType; #endregion @@ -161,7 +161,7 @@ public VectorSize? Position get => _position; set => this.SetField(ref _position, value); } - private VectorSize? _position = null!; + private VectorSize? _position; [XmlIgnore] public Vector3f CurrentPosition diff --git a/src/SoulSplitter/UI/Generic/FlagTrackerViewModel.cs b/src/SoulSplitter/UI/Generic/FlagTrackerViewModel.cs index 6ddc97a..cf756d9 100644 --- a/src/SoulSplitter/UI/Generic/FlagTrackerViewModel.cs +++ b/src/SoulSplitter/UI/Generic/FlagTrackerViewModel.cs @@ -59,8 +59,8 @@ public class FlagTrackerViewModel : ICustomNotifyPropertyChanged { public FlagTrackerViewModel() { - CommandAddEventFlag = new RelayCommand(AddEventFlag, (o) => { return !string.IsNullOrWhiteSpace(CategoryName) && FlagDescription.Flag != 0; }); - CommandRemoveEventFlag = new RelayCommand(RemoveEventFlag, (o) => { return SelectedFlagDescription != null; }); + CommandAddEventFlag = new RelayCommand(AddEventFlag, _ => !string.IsNullOrWhiteSpace(CategoryName) && FlagDescription.Flag != 0); + CommandRemoveEventFlag = new RelayCommand(RemoveEventFlag, _ => SelectedFlagDescription != null); } @@ -121,7 +121,7 @@ private void RemoveEventFlag() #region update/reset private List<(FlagTrackerCategoryViewModel category, FlagDescription eventFlag)>? _lookup; - private int _currentIndex = 0; + private int _currentIndex; public void Start() { diff --git a/src/SoulSplitter/UI/Generic/RelayCommand.cs b/src/SoulSplitter/UI/Generic/RelayCommand.cs index 2d0eac7..ed296ce 100644 --- a/src/SoulSplitter/UI/Generic/RelayCommand.cs +++ b/src/SoulSplitter/UI/Generic/RelayCommand.cs @@ -21,11 +21,11 @@ namespace SoulSplitter.UI.Generic; public class RelayCommand(Action execute, Func? canExecute) : ICommand { - public RelayCommand(Action execute) : this((param) => execute(), (Func?)null) { } - public RelayCommand(Action execute, Func canExecute) : this((param) => execute(), (_) => canExecute()) { } - public RelayCommand(Action execute, Func canExecute) : this((_) => execute(), canExecute) { } + public RelayCommand(Action execute) : this(_ => execute(), (Func?)null) { } + public RelayCommand(Action execute, Func canExecute) : this(_ => execute(), _ => canExecute()) { } + public RelayCommand(Action execute, Func canExecute) : this(_ => execute(), canExecute) { } public RelayCommand(Action execute) : this(execute, (Func?)null) { } - public RelayCommand(Action execute, Func canExecute) : this(execute, (_) => canExecute()) { } + public RelayCommand(Action execute, Func canExecute) : this(execute, _ => canExecute()) { } public event EventHandler CanExecuteChanged { diff --git a/src/SoulSplitter/UI/Generic/SplitTemplateSelector.cs b/src/SoulSplitter/UI/Generic/SplitTemplateSelector.cs index 5e4b29a..5f9261c 100644 --- a/src/SoulSplitter/UI/Generic/SplitTemplateSelector.cs +++ b/src/SoulSplitter/UI/Generic/SplitTemplateSelector.cs @@ -25,19 +25,13 @@ public class SplitTemplateSelector : DataTemplateSelector public DataTemplate EnumTemplate { get; set; } = null!; public DataTemplate VectorSizeTemplate { get; set; } = null!; - public override DataTemplate SelectTemplate(object? item, DependencyObject container) + public override DataTemplate SelectTemplate(object? item, DependencyObject container) { - if(item is Enum) + return item switch { - return EnumTemplate; - } - else if (item is VectorSize) - { - return VectorSizeTemplate; - } - - return VectorSizeTemplate; - - + Enum => EnumTemplate, + VectorSize => VectorSizeTemplate, + _ => VectorSizeTemplate + }; } } diff --git a/src/SoulSplitter/UI/MainViewModel.cs b/src/SoulSplitter/UI/MainViewModel.cs index 66d0e46..14b0a8a 100644 --- a/src/SoulSplitter/UI/MainViewModel.cs +++ b/src/SoulSplitter/UI/MainViewModel.cs @@ -232,7 +232,7 @@ private void ShowErrorWindow() { _errorWindow = new ErrorWindow(); _errorWindow.DataContext = this; - _errorWindow.Closing += (s, arg) => + _errorWindow.Closing += (_, arg) => { _errorWindow.Hide(); arg.Cancel = true; @@ -324,7 +324,7 @@ private void OpenFlagTrackerWindow() ElementHost.EnableModelessKeyboardInterop(_flagTrackerWindow); _flagTrackerWindow.DataContext = FlagTrackerViewModel; - _flagTrackerWindow.Closing += (s, arg) => + _flagTrackerWindow.Closing += (_, arg) => { _flagTrackerWindow.Hide(); arg.Cancel = true; @@ -374,7 +374,7 @@ private void ImportSettings() }); } - [XmlIgnore] public string? ImportXml = null!; + [XmlIgnore] public string? ImportXml; [XmlIgnore] public RelayCommand CommandExportSettingsFromFile diff --git a/src/SoulSplitter/UI/Sekiro/SekiroViewModel.cs b/src/SoulSplitter/UI/Sekiro/SekiroViewModel.cs index 62698a0..6476baa 100644 --- a/src/SoulSplitter/UI/Sekiro/SekiroViewModel.cs +++ b/src/SoulSplitter/UI/Sekiro/SekiroViewModel.cs @@ -34,7 +34,7 @@ public bool OverwriteIgtOnStart get => _overwriteIgtOnStart; set => this.SetField(ref _overwriteIgtOnStart, value); } - private bool _overwriteIgtOnStart = false; + private bool _overwriteIgtOnStart; #region add/remove splits ============================================================================================================================================ diff --git a/src/SoulSplitter/UI/Validation/TextToNumberValidation.cs b/src/SoulSplitter/UI/Validation/TextToNumberValidation.cs index 5298c87..d1a9729 100644 --- a/src/SoulSplitter/UI/Validation/TextToNumberValidation.cs +++ b/src/SoulSplitter/UI/Validation/TextToNumberValidation.cs @@ -45,7 +45,7 @@ public override ValidationResult Validate(object? value, CultureInfo cultureInfo } } - if (!(value is string text)) + if (value is not string text) { return new ValidationResult(false, "Input is not a valid text"); } @@ -61,7 +61,7 @@ public override ValidationResult Validate(object? value, CultureInfo cultureInfo throw new ArgumentException($"Unsupported type {NumericType}"); case NumericType.Int: - if (!int.TryParse(text, out int i)) + if (!int.TryParse(text, out var i)) { return new ValidationResult(false, "Input is not a valid number"); } @@ -74,7 +74,7 @@ public override ValidationResult Validate(object? value, CultureInfo cultureInfo return new ValidationResult(true, null); case NumericType.Uint: - if (!uint.TryParse(text, out uint u)) + if (!uint.TryParse(text, out var u)) { return new ValidationResult(false, "Input is not a valid positive number"); } diff --git a/src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs b/src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs index 7a3b26d..d4e3dc4 100644 --- a/src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs +++ b/src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs @@ -349,7 +349,7 @@ public Enum? SelectedItem get => _selectedItem; set => this.SetField(ref _selectedItem, value); } - private Enum? _selectedItem = null!; + private Enum? _selectedItem; public VectorSize? Position { diff --git a/src/cli/cli.csproj b/src/cli/cli.csproj index 7ef3731..e72e1b7 100644 --- a/src/cli/cli.csproj +++ b/src/cli/cli.csproj @@ -1,12 +1,14 @@  - Exe + Exe net481 x64 - x64 + x64 + 13 + enable true - Cli - https://github.com/FrankvdStam/SoulSplitter + Cli + https://github.com/FrankvdStam/SoulSplitter https://github.com/FrankvdStam/SoulSplitter git Dark Souls; Dark Souls 2; Dark Souls 3; Sekiro; Sekiro: Shadows Die Twice; Elden Ring; Armored Core 6; @@ -14,31 +16,31 @@ ../../LICENSE (c) 2022 by Frank van der Stam, GPL-v3 licensed true - - - - - - - - - - - - - - ..\..\packages\LiveSplit.Core.dll - - - - - ..\..\packages\UpdateManager.dll - - - - SystemDrawing - - - - + + + + + + + + + + + + + + ..\..\packages\LiveSplit.Core.dll + + + + + ..\..\packages\UpdateManager.dll + + + + SystemDrawing + + + + \ No newline at end of file diff --git a/src/clitimer/clitimer.csproj b/src/clitimer/clitimer.csproj index 98be1b1..5cb286b 100755 --- a/src/clitimer/clitimer.csproj +++ b/src/clitimer/clitimer.csproj @@ -1,12 +1,14 @@  - Exe + Exe net481 x64 - x64 + x64 + 13 + enable true - CliTimer - https://github.com/FrankvdStam/SoulSplitter + CliTimer + https://github.com/FrankvdStam/SoulSplitter https://github.com/FrankvdStam/SoulSplitter git Dark Souls; Dark Souls 2; Dark Souls 3; Sekiro; Sekiro: Shadows Die Twice; Elden Ring; Armored Core 6; @@ -14,9 +16,9 @@ ../../LICENSE (c) 2022 by Frank van der Stam, GPL-v3 licensed true - - - - - + + + + + \ No newline at end of file diff --git a/tests/SoulMemory.Tests/MemoryV2/ProcessHookTests.cs b/tests/SoulMemory.Tests/MemoryV2/ProcessHookTests.cs index 7ff9ced..baad787 100644 --- a/tests/SoulMemory.Tests/MemoryV2/ProcessHookTests.cs +++ b/tests/SoulMemory.Tests/MemoryV2/ProcessHookTests.cs @@ -46,8 +46,8 @@ public void Init() private ProcessHook _sut = null!; private Mock _mockProcessWrapper = null!; - private int _hookedInvokedCount = 0; - private int _exitedInvokedCount = 0; + private int _hookedInvokedCount; + private int _exitedInvokedCount; public List ExitedExceptions = new(); diff --git a/tests/SoulMemory.Tests/Mocks/ProcessHookMock.cs b/tests/SoulMemory.Tests/Mocks/ProcessHookMock.cs index cd22f9f..84ef13e 100644 --- a/tests/SoulMemory.Tests/Mocks/ProcessHookMock.cs +++ b/tests/SoulMemory.Tests/Mocks/ProcessHookMock.cs @@ -101,8 +101,8 @@ public ResultErr TryRefresh() return Result.Ok(); } - public int HookedInvokedCount = 0; - public int ExitedInvokedCount = 0; + public int HookedInvokedCount; + public int ExitedInvokedCount; public ResultErr HookedResult = Result.Ok(); public List ExitedExceptions = new(); diff --git a/tests/SoulMemory.Tests/SoulMemory.Tests.csproj b/tests/SoulMemory.Tests/SoulMemory.Tests.csproj index 121a20c..9561bd8 100644 --- a/tests/SoulMemory.Tests/SoulMemory.Tests.csproj +++ b/tests/SoulMemory.Tests/SoulMemory.Tests.csproj @@ -3,7 +3,8 @@ net6.0 enable - enable + 13 + disable x64 x64 true diff --git a/tests/SoulSplitter.Tests/Integration/ArmoredCore6.cs b/tests/SoulSplitter.Tests/Integration/ArmoredCore6.cs index 6a88d72..f16018e 100644 --- a/tests/SoulSplitter.Tests/Integration/ArmoredCore6.cs +++ b/tests/SoulSplitter.Tests/Integration/ArmoredCore6.cs @@ -28,7 +28,7 @@ public void Init() _soulsComponentTestWrapper = new SoulsComponentTestWrapper(XmlData.ExampleSplits, "Armored Core VI: Fires of Rubicon"); } - private SoulsComponentTestWrapper _soulsComponentTestWrapper; + private SoulsComponentTestWrapper _soulsComponentTestWrapper = null!; //[TestMethod] public void Testy() diff --git a/tests/SoulSplitter.Tests/SoulSplitter.Tests.csproj b/tests/SoulSplitter.Tests/SoulSplitter.Tests.csproj index abc07e8..4e1868b 100644 --- a/tests/SoulSplitter.Tests/SoulSplitter.Tests.csproj +++ b/tests/SoulSplitter.Tests/SoulSplitter.Tests.csproj @@ -4,6 +4,8 @@ net481 enable x64 + 13 + disable true true x64 From 5876e3916b57e9120819c49518f9126c5e810e6e Mon Sep 17 00:00:00 2001 From: Frank van der Stam Date: Fri, 24 Jan 2025 16:24:03 +0100 Subject: [PATCH 10/28] Fix nullable position asingment --- src/SoulSplitter/UI/EldenRing/EldenRingControl.xaml.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SoulSplitter/UI/EldenRing/EldenRingControl.xaml.cs b/src/SoulSplitter/UI/EldenRing/EldenRingControl.xaml.cs index 7ae54ae..bf7d5f3 100644 --- a/src/SoulSplitter/UI/EldenRing/EldenRingControl.xaml.cs +++ b/src/SoulSplitter/UI/EldenRing/EldenRingControl.xaml.cs @@ -93,7 +93,7 @@ private void OnPreviewTextInput_Float(object sender, TextCompositionEventArgs e) private void CopyPosition_OnClick(object sender, RoutedEventArgs e) { var vm = GetEldenRingViewModel(); - vm.NewSplitPosition.Area = vm.CurrentPosition.Area ; + vm.NewSplitPosition!.Area = vm.CurrentPosition.Area ; vm.NewSplitPosition.Block = vm.CurrentPosition.Block ; vm.NewSplitPosition.Region = vm.CurrentPosition.Region; vm.NewSplitPosition.Size = vm.CurrentPosition.Size ; From a7056fa3eebddd8751c90cdbe70e23b11128f972 Mon Sep 17 00:00:00 2001 From: Frank van der Stam Date: Fri, 24 Jan 2025 17:13:19 +0100 Subject: [PATCH 11/28] More improvements, editing qodana settings --- qodana.yaml | 7 ++++++- src/SoulMemory/DarkSouls1/DropMod.cs | 14 ++++++-------- src/SoulMemory/MemoryV2/ByteArrayMemory.cs | 6 ++---- src/SoulMemory/MemoryV2/Process/ProcessHook.cs | 7 ++----- src/SoulMemory/Result.cs | 12 ++++-------- src/SoulMemory/soulmods/Soulmods.cs | 4 ++-- 6 files changed, 22 insertions(+), 28 deletions(-) diff --git a/qodana.yaml b/qodana.yaml index 9a71859..c33467a 100644 --- a/qodana.yaml +++ b/qodana.yaml @@ -12,4 +12,9 @@ exclude: - name: exclude paths: - src/cli - - tests \ No newline at end of file + - tests + - name: SwitchExpressionHandlesSomeKnownEnumValuesWithExceptionInDefault + - name: All + paths: + - tests + - src/Cli diff --git a/src/SoulMemory/DarkSouls1/DropMod.cs b/src/SoulMemory/DarkSouls1/DropMod.cs index 15877a8..15cb68b 100644 --- a/src/SoulMemory/DarkSouls1/DropMod.cs +++ b/src/SoulMemory/DarkSouls1/DropMod.cs @@ -21,25 +21,23 @@ namespace SoulMemory.DarkSouls1; public class DropMod(IDarkSouls1 darkSouls) { - private readonly IDarkSouls1 _darkSouls = darkSouls; - public void InitBkh() { - _darkSouls.WriteWeaponDescription(1105000, "Dropmod!\n\nAffected:\nBlack Knight Halberd\n\n\n\n\n\n\n\n\n\n"); + darkSouls.WriteWeaponDescription(1105000, "Dropmod!\n\nAffected:\nBlack Knight Halberd\n\n\n\n\n\n\n\n\n\n"); for (int i = 0; i < 62; i++) { - _darkSouls.SetLoadingScreenItem(i, 1105000); + darkSouls.SetLoadingScreenItem(i, 1105000); } GuaranteeDrop(27901000, 1105000); } public void InitAllAchievements() { - _darkSouls.WriteWeaponDescription(1004000, "Dropmod!\n\nAffected:\nBlack Knight Halberd/Sword/Greatsword/Greataxe/Shield\nSilver Knight Straight Sword/Spear/Shield\nStone Greatsword/Greatshield\nChanneler's Trident\nSouvenir of Reprisal\nEye of Death\n\n\n\n\n"); + darkSouls.WriteWeaponDescription(1004000, "Dropmod!\n\nAffected:\nBlack Knight Halberd/Sword/Greatsword/Greataxe/Shield\nSilver Knight Straight Sword/Spear/Shield\nStone Greatsword/Greatshield\nChanneler's Trident\nSouvenir of Reprisal\nEye of Death\n\n\n\n\n"); for (int i = 0; i < 62; i++) { - _darkSouls.SetLoadingScreenItem(i, 1004000); + darkSouls.SetLoadingScreenItem(i, 1004000); } //trident @@ -62,7 +60,7 @@ public void InitAllAchievements() public void UpdateAllAchievements() { - var items = _darkSouls.GetInventory(); + var items = darkSouls.GetInventory(); foreach (SwitchableDrop temp in _switchableWeapons) { @@ -86,7 +84,7 @@ public void ResetAllAchievements() private void GuaranteeDrop(int rowId, int itemId) { - _darkSouls.WriteItemLotParam(rowId, (itemLot) => + darkSouls.WriteItemLotParam(rowId, (itemLot) => { itemLot.LotItemBasePoint01 = (ushort)(itemLot.LotItemId01 == itemId ? 100 : 0); itemLot.LotItemBasePoint02 = (ushort)(itemLot.LotItemId02 == itemId ? 100 : 0); diff --git a/src/SoulMemory/MemoryV2/ByteArrayMemory.cs b/src/SoulMemory/MemoryV2/ByteArrayMemory.cs index fe79620..f3737b8 100644 --- a/src/SoulMemory/MemoryV2/ByteArrayMemory.cs +++ b/src/SoulMemory/MemoryV2/ByteArrayMemory.cs @@ -24,12 +24,10 @@ namespace SoulMemory.MemoryV2; /// public class ByteArrayMemory(byte[] data) : IMemory { - private readonly byte[] _data = data; - public byte[] ReadBytes(long offset, int length) { var buffer = new byte[length]; - Array.Copy(_data, offset, buffer, 0, length); + Array.Copy(data, offset, buffer, 0, length); return buffer; } @@ -37,7 +35,7 @@ public void WriteBytes(long offset, byte[] bytes) { for (int i = 0; i < bytes.Length; i++) { - _data[offset + i] = bytes[i]; + data[offset + i] = bytes[i]; } } } diff --git a/src/SoulMemory/MemoryV2/Process/ProcessHook.cs b/src/SoulMemory/MemoryV2/Process/ProcessHook.cs index 8b653de..00cfe69 100644 --- a/src/SoulMemory/MemoryV2/Process/ProcessHook.cs +++ b/src/SoulMemory/MemoryV2/Process/ProcessHook.cs @@ -20,9 +20,6 @@ namespace SoulMemory.MemoryV2.Process; public class ProcessHook(string name, IProcessWrapper? processWrapper = null) : IProcessHook { - private readonly string _name = name; - - public IProcessWrapper ProcessWrapper { get; set; } = processWrapper ?? new ProcessWrapper(); public System.Diagnostics.Process? GetProcess() => ProcessWrapper.GetProcess(); @@ -40,11 +37,11 @@ public class ProcessHook(string name, IProcessWrapper? processWrapper = null) : /// public ResultErr TryRefresh() { - var processRefreshResult = ProcessWrapper.TryRefresh(_name, out var e); + var processRefreshResult = ProcessWrapper.TryRefresh(name, out var e); switch (processRefreshResult) { case ProcessRefreshResult.ProcessNotRunning: - return Result.Err(new RefreshError(RefreshErrorReason.ProcessNotRunning, $"Process {_name} not running or inaccessible. Try running livesplit as admin.")); + return Result.Err(new RefreshError(RefreshErrorReason.ProcessNotRunning, $"Process {name} not running or inaccessible. Try running livesplit as admin.")); //Run scans when process is initialized diff --git a/src/SoulMemory/Result.cs b/src/SoulMemory/Result.cs index e7187e2..101bd0b 100644 --- a/src/SoulMemory/Result.cs +++ b/src/SoulMemory/Result.cs @@ -332,24 +332,20 @@ public override string ToString() /// /// Container type for Ok, used to distinguish between Ok and Err in implicit conversions between result types. /// -public class ContainerOk(T t) : Container(t) { -} +public class ContainerOk(T t) : Container(t); /// /// Container type for Err, used to distinguish between Ok and Err in implicit conversions between result types. /// -public class ContainerErr(T t) : Container(t) { -} +public class ContainerErr(T t) : Container(t); /// /// Helper struct with 0 storage. Only used to trick the type system into allowing some sugar syntax /// -public struct Empty { } +public struct Empty; /// /// Thrown when unwrapping a failed result /// [Serializable] -public class UnwrapException(string message) : Exception(message) -{ -} \ No newline at end of file +public class UnwrapException(string message) : Exception(message); diff --git a/src/SoulMemory/soulmods/Soulmods.cs b/src/SoulMemory/soulmods/Soulmods.cs index 00f65b5..fa2b1d2 100644 --- a/src/SoulMemory/soulmods/Soulmods.cs +++ b/src/SoulMemory/soulmods/Soulmods.cs @@ -56,7 +56,7 @@ public static bool Inject(Process process) foreach (ProcessModule processModule in process.Modules) { - if (processModule.ModuleName == "soulmods_x64.dll" || processModule.ModuleName == "soulmods_x86.dll") + if (processModule.ModuleName is "soulmods_x64.dll" or "soulmods_x86.dll") { return true; } @@ -115,7 +115,7 @@ private static void OverwriteFile(string manifestResourceName, string path) { using var stream = typeof(Soulmods).Assembly.GetManifestResourceStream(manifestResourceName)!; var buffer = new byte[stream.Length]; - var _ = stream.Read(buffer, 0, buffer.Length); + _ = stream.Read(buffer, 0, buffer.Length); Directory.CreateDirectory(Path.GetDirectoryName(path)!); From 9c2d21622565aa22683a2b21870a083a4d89fea4 Mon Sep 17 00:00:00 2001 From: Frank van der Stam Date: Fri, 24 Jan 2025 17:17:16 +0100 Subject: [PATCH 12/28] Add qodana dependencyOverrides license info for NETStandard.Library --- qodana.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/qodana.yaml b/qodana.yaml index c33467a..b04238d 100644 --- a/qodana.yaml +++ b/qodana.yaml @@ -18,3 +18,11 @@ exclude: paths: - tests - src/Cli + +dependencyOverrides: + #this unfortunately does not get detected automatically by qodana + - name: "NETStandard.Library" + version: "2.0.3" + licenses: + - key: "MIT" + url: "https://nuget.info/packages/NETStandard.Library/2.0.3" From c4c9ba5a6210b8c25b25ee25ab51951ca7442e5a Mon Sep 17 00:00:00 2001 From: Frank van der Stam Date: Fri, 24 Jan 2025 17:47:00 +0100 Subject: [PATCH 13/28] Fixed last qodana issues (apart from coverage). Set test projects to nullable enable --- .../UI/Generic/EnumFlagViewModel.cs | 2 +- src/SoulSplitter/UI/Sekiro/SekiroViewModel.cs | 2 +- .../SoulMemory.Tests/SoulMemory.Tests.csproj | 2 +- .../Integration/SoulsComponentTestWrapper.cs | 4 +- .../SoulSplitter.Tests/SoulComponentTests.cs | 14 +++--- .../SoulSplitter.Tests.csproj | 2 +- .../Splitters/SplitterTests.cs | 6 +-- .../TestMethodSTAAttribute.cs | 6 +-- .../BoolToVisibilityConverterTests.cs | 8 ++-- .../Converters/ColorToBrushConverterTests.cs | 6 +-- .../ColorToHexTextConverterTests.cs | 28 +++++------ .../DoubleToGridLengthConverterTests.cs | 24 +++++----- .../EnumDisplayNameConverterTests.cs | 16 +++---- .../EnumToVisibilityConverterTests.cs | 42 ++++++++--------- .../GameToSelectedIndexConverterTests.cs | 36 +++++++-------- .../SplitObjectToDescriptionConverterTests.cs | 32 ++++++------- .../SplitTypeVisibilityConverterTests.cs | 22 ++++----- .../Validation/TextToNumberValidationTests.cs | 4 +- .../Validation/TextToRgbHexValidatorTests.cs | 12 ++--- tests/SoulSplitter.Tests/UI/ViewModelTests.cs | 46 +++++-------------- 20 files changed, 146 insertions(+), 168 deletions(-) diff --git a/src/SoulSplitter/UI/Generic/EnumFlagViewModel.cs b/src/SoulSplitter/UI/Generic/EnumFlagViewModel.cs index e064213..c489039 100644 --- a/src/SoulSplitter/UI/Generic/EnumFlagViewModel.cs +++ b/src/SoulSplitter/UI/Generic/EnumFlagViewModel.cs @@ -37,7 +37,7 @@ public T Value get => _value; set => this.SetField(ref _value, value); } - private T _value = default(T)!; + private T _value = default!; public string Area { diff --git a/src/SoulSplitter/UI/Sekiro/SekiroViewModel.cs b/src/SoulSplitter/UI/Sekiro/SekiroViewModel.cs index 6476baa..c30886f 100644 --- a/src/SoulSplitter/UI/Sekiro/SekiroViewModel.cs +++ b/src/SoulSplitter/UI/Sekiro/SekiroViewModel.cs @@ -57,7 +57,7 @@ private bool CanAddSplit() private void AddSplit() { - object? split = NewSplitType switch + var split = NewSplitType switch { SplitType.Boss or SplitType.Bonfire => NewSplitValue, SplitType.Position => Position, diff --git a/tests/SoulMemory.Tests/SoulMemory.Tests.csproj b/tests/SoulMemory.Tests/SoulMemory.Tests.csproj index 9561bd8..f37acd9 100644 --- a/tests/SoulMemory.Tests/SoulMemory.Tests.csproj +++ b/tests/SoulMemory.Tests/SoulMemory.Tests.csproj @@ -4,7 +4,7 @@ net6.0 enable 13 - disable + enable x64 x64 true diff --git a/tests/SoulSplitter.Tests/Integration/SoulsComponentTestWrapper.cs b/tests/SoulSplitter.Tests/Integration/SoulsComponentTestWrapper.cs index 9995295..b4ff3ce 100644 --- a/tests/SoulSplitter.Tests/Integration/SoulsComponentTestWrapper.cs +++ b/tests/SoulSplitter.Tests/Integration/SoulsComponentTestWrapper.cs @@ -34,7 +34,7 @@ public SoulsComponentTestWrapper(string xml, string gameName) .Setup(i => i.GameName) .Returns(gameName); - MockLiveSplitState = new Mock(MockIRun.Object, null, null, null, null); + MockLiveSplitState = new Mock(MockIRun.Object, null!, null!, null!, null!); _soulComponent = new SoulComponent(MockLiveSplitState.Object, shouldThrowOnInvalidInstallation: false); var doc = new XmlDocument(); @@ -44,7 +44,7 @@ public SoulsComponentTestWrapper(string xml, string gameName) public void Update() { - _soulComponent.Update(null, MockLiveSplitState.Object, 0.0f, 0.0f, LayoutMode.Horizontal); + _soulComponent.Update(null!, MockLiveSplitState.Object, 0.0f, 0.0f, LayoutMode.Horizontal); } } } diff --git a/tests/SoulSplitter.Tests/SoulComponentTests.cs b/tests/SoulSplitter.Tests/SoulComponentTests.cs index e0e0e2d..08257db 100644 --- a/tests/SoulSplitter.Tests/SoulComponentTests.cs +++ b/tests/SoulSplitter.Tests/SoulComponentTests.cs @@ -30,10 +30,10 @@ namespace SoulSplitter.Tests //[Apartment(ApartmentState.STA)] public class SoulComponentTests { - [TestMethodSTA] + [TestMethodSta] public void GetSettingsTest() { - var liveSplitStateMock = new Mock(args: new object[]{null, null, null, null, null}); + var liveSplitStateMock = new Mock(args: [null!, null!, null!, null!, null!]); var component = new SoulComponent(liveSplitStateMock.Object, shouldThrowOnInvalidInstallation: false); var doc = new XmlDocument(); var settings = component.GetSettings(doc); @@ -56,7 +56,7 @@ public void SetSettingsTest() Assert.AreEqual(viewModel.EldenRingViewModel.StartAutomatically, deserializedViewModel.EldenRingViewModel.StartAutomatically); - var vectorSize = deserializedViewModel.SekiroViewModel.SplitsViewModel.Splits.FirstOrDefault().Children.FirstOrDefault().Children.FirstOrDefault().Split; + var vectorSize = deserializedViewModel.SekiroViewModel.SplitsViewModel.Splits.First().Children.First().Children.First().Split; Assert.AreEqual(typeof(VectorSize), vectorSize.GetType()); Assert.AreEqual(1.0f, ((VectorSize)vectorSize).Position.X); @@ -65,13 +65,13 @@ public void SetSettingsTest() Assert.AreEqual(4.0f, ((VectorSize)vectorSize).Size); } - [TestMethodSTA] + [TestMethodSta] public void SekiroMigration1_1_0Test() { var doc = new XmlDocument(); doc.LoadXml(XmlData.SekiroMigration1_1_0); - var liveSplitStateMock = new Mock(args: new object[] { null, null, null, null, null }); + var liveSplitStateMock = new Mock(args: [null!, null!, null!, null!, null!]); var component = new SoulComponent(liveSplitStateMock.Object, shouldThrowOnInvalidInstallation: false); component.SetSettings(doc); @@ -80,13 +80,13 @@ public void SekiroMigration1_1_0Test() Assert.AreEqual(3, componentViewModel.SekiroViewModel.SplitsViewModel.Splits.First().Children.Count); } - [TestMethodSTA] + [TestMethodSta] public void Ds3Migration_1_9_0_Test() { var doc = new XmlDocument(); doc.LoadXml(XmlData.DarkSouls3Migration_1_9_0); - var liveSplitStateMock = new Mock(args: new object[] { null, null, null, null, null }); + var liveSplitStateMock = new Mock(args: [null!, null!, null!, null!, null!]); var component = new SoulComponent(liveSplitStateMock.Object, shouldThrowOnInvalidInstallation: false); component.SetSettings(doc); diff --git a/tests/SoulSplitter.Tests/SoulSplitter.Tests.csproj b/tests/SoulSplitter.Tests/SoulSplitter.Tests.csproj index 4e1868b..c471627 100644 --- a/tests/SoulSplitter.Tests/SoulSplitter.Tests.csproj +++ b/tests/SoulSplitter.Tests/SoulSplitter.Tests.csproj @@ -5,7 +5,7 @@ enable x64 13 - disable + enable true true x64 diff --git a/tests/SoulSplitter.Tests/Splitters/SplitterTests.cs b/tests/SoulSplitter.Tests/Splitters/SplitterTests.cs index 2d001e3..3ec5652 100644 --- a/tests/SoulSplitter.Tests/Splitters/SplitterTests.cs +++ b/tests/SoulSplitter.Tests/Splitters/SplitterTests.cs @@ -40,7 +40,7 @@ public class SplitterTests timerModel.Setup(t => t.Reset()) .Raises(t => t.OnReset += null, this, TimerPhase.NotRunning); - var liveSplitStateMock = new Mock(args: new object[] { null, null, null, null, null }); + var liveSplitStateMock = new Mock(args: [null!, null!, null!, null!, null!]); timerModel.Setup(i => i.CurrentState).Returns(liveSplitStateMock.Object); liveSplitStateMock.Object.RegisterTimerModel(timerModel.Object); @@ -192,7 +192,7 @@ public void AutoSplitTests() break; case SplitType.Bonfire: - darkSouls1.Setup(d => d.GetBonfireState(((Splits.DarkSouls1.BonfireState)split.Split).Bonfire.Value)).Returns(((Splits.DarkSouls1.BonfireState)split.Split).State); + darkSouls1.Setup(d => d.GetBonfireState(((Splits.DarkSouls1.BonfireState)split.Split).Bonfire!.Value)).Returns(((Splits.DarkSouls1.BonfireState)split.Split).State); break; case SplitType.Position: @@ -239,7 +239,7 @@ public void AutoSplitTests() //It seems like GameTime might be updated from somewhere else. The logic inside livesplit is complicated. //I noticed that its value (in millis) can be 51.6 after setting it to 50.0 //If this asserts starts being funny, just get rid of it. - Assert.AreEqual(igt, timerModel.Object.CurrentState.CurrentTime.GameTime.Value.TotalMilliseconds); + Assert.AreEqual(igt, timerModel.Object.CurrentState.CurrentTime.GameTime!.Value.TotalMilliseconds); darkSouls1.Setup(d => d.GetPosition()).Returns(new SoulMemory.Vector3f());//reset position } diff --git a/tests/SoulSplitter.Tests/TestMethodSTAAttribute.cs b/tests/SoulSplitter.Tests/TestMethodSTAAttribute.cs index 35980c2..5ebf6dd 100644 --- a/tests/SoulSplitter.Tests/TestMethodSTAAttribute.cs +++ b/tests/SoulSplitter.Tests/TestMethodSTAAttribute.cs @@ -19,11 +19,11 @@ namespace SoulSplitter.Net6.Tests { - public class TestMethodSTAAttribute : TestMethodAttribute + public class TestMethodStaAttribute : TestMethodAttribute { public override TestResult[] Execute(ITestMethod testMethod) { - TestResult result = null; + TestResult result = null!; var thread = new Thread(() => { result = testMethod.Invoke(null); @@ -31,7 +31,7 @@ public override TestResult[] Execute(ITestMethod testMethod) thread.SetApartmentState(ApartmentState.STA); thread.Start(); thread.Join(); - return new []{ result }; + return [result]; } } } diff --git a/tests/SoulSplitter.Tests/UI/Converters/BoolToVisibilityConverterTests.cs b/tests/SoulSplitter.Tests/UI/Converters/BoolToVisibilityConverterTests.cs index 055fe63..2a96134 100644 --- a/tests/SoulSplitter.Tests/UI/Converters/BoolToVisibilityConverterTests.cs +++ b/tests/SoulSplitter.Tests/UI/Converters/BoolToVisibilityConverterTests.cs @@ -28,22 +28,22 @@ public class BoolToVisibilityConverterTests public void Convert_Happy_Flow() { var converter = new BoolToVisibilityConverter(); - Assert.AreEqual(Visibility.Visible, converter.Convert(true, null, null, null)); - Assert.AreEqual(Visibility.Collapsed, converter.Convert(false, null, null, null)); + Assert.AreEqual(Visibility.Visible, converter.Convert(true, null!, null, null!)); + Assert.AreEqual(Visibility.Collapsed, converter.Convert(false, null!, null, null!)); } [TestMethod] public void Convert_Exception() { var converter = new BoolToVisibilityConverter(); - Assert.ThrowsException(() => converter.Convert("test", null, null, null)); + Assert.ThrowsException(() => converter.Convert("test", null!, null, null!)); } [TestMethod] public void ConvertBack_Exception() { var converter = new BoolToVisibilityConverter(); - Assert.ThrowsException(() => converter.ConvertBack(Visibility.Visible, null, null, null)); + Assert.ThrowsException(() => converter.ConvertBack(Visibility.Visible, null!, null, null!)); } } } diff --git a/tests/SoulSplitter.Tests/UI/Converters/ColorToBrushConverterTests.cs b/tests/SoulSplitter.Tests/UI/Converters/ColorToBrushConverterTests.cs index 59cdefb..0d02533 100644 --- a/tests/SoulSplitter.Tests/UI/Converters/ColorToBrushConverterTests.cs +++ b/tests/SoulSplitter.Tests/UI/Converters/ColorToBrushConverterTests.cs @@ -36,7 +36,7 @@ public void Convert_Happy_Flow() B = 4, }; - var brush = converter.Convert(color, null, null, null); + var brush = converter.Convert(color, null!, null, null!); Assert.IsInstanceOfType(brush); Assert.AreEqual("#01020304", ((SolidColorBrush)brush).Color.ToString()); } @@ -45,14 +45,14 @@ public void Convert_Happy_Flow() public void Convert_Exception() { var converter = new ColorToBrushConverter(); - Assert.ThrowsException(() => converter.Convert("test", null, null, null)); + Assert.ThrowsException(() => converter.Convert("test", null!, null, null!)); } [TestMethod] public void ConvertBack_Exception() { var converter = new BoolToVisibilityConverter(); - Assert.ThrowsException(() => converter.ConvertBack(new SolidColorBrush(), null, null, null)); + Assert.ThrowsException(() => converter.ConvertBack(new SolidColorBrush(), null!, null, null!)); } } } diff --git a/tests/SoulSplitter.Tests/UI/Converters/ColorToHexTextConverterTests.cs b/tests/SoulSplitter.Tests/UI/Converters/ColorToHexTextConverterTests.cs index 0dd9311..ba1b071 100644 --- a/tests/SoulSplitter.Tests/UI/Converters/ColorToHexTextConverterTests.cs +++ b/tests/SoulSplitter.Tests/UI/Converters/ColorToHexTextConverterTests.cs @@ -28,38 +28,38 @@ public class ColorToHexTextConverterTests public void Convert() { var converter = new ColorToHexTextConverter(); - Assert.AreEqual("#000000", converter.Convert(Colors.Black, null, null, null)); - Assert.AreEqual("#8A2BE2", converter.Convert(Colors.BlueViolet, null, null, null)); - Assert.AreEqual("#8B0000", converter.Convert(Colors.DarkRed, null, null, null)); + Assert.AreEqual("#000000", converter.Convert(Colors.Black, null!, null, null!)); + Assert.AreEqual("#8A2BE2", converter.Convert(Colors.BlueViolet, null!, null, null!)); + Assert.AreEqual("#8B0000", converter.Convert(Colors.DarkRed, null!, null, null!)); } [TestMethod] public void Convert_Throws() { var converter = new ColorToHexTextConverter(); - Assert.ThrowsException(() => converter.Convert((long)1234, null, null, null)); - Assert.ThrowsException(() => converter.Convert((float)1.4, null, null, null)); - Assert.ThrowsException(() => converter.Convert("Test", null, null, null)); - Assert.ThrowsException(() => converter.Convert(new object(), null, null, null)); + Assert.ThrowsException(() => converter.Convert((long)1234, null!, null, null!)); + Assert.ThrowsException(() => converter.Convert((float)1.4, null!, null, null!)); + Assert.ThrowsException(() => converter.Convert("Test", null!, null, null!)); + Assert.ThrowsException(() => converter.Convert(new object(), null!, null, null!)); } [TestMethod] public void ConvertBack() { var converter = new ColorToHexTextConverter(); - Assert.AreEqual(Colors.Black , converter.ConvertBack("#000000", null, null, null)); - Assert.AreEqual(Colors.BlueViolet, converter.ConvertBack("#8A2BE2", null, null, null)); - Assert.AreEqual(Colors.DarkRed , converter.ConvertBack("#8B0000", null, null, null)); + Assert.AreEqual(Colors.Black , converter.ConvertBack("#000000", null!, null, null!)); + Assert.AreEqual(Colors.BlueViolet, converter.ConvertBack("#8A2BE2", null!, null, null!)); + Assert.AreEqual(Colors.DarkRed , converter.ConvertBack("#8B0000", null!, null, null!)); } [TestMethod] public void Convert_Back_Throws() { var converter = new ColorToHexTextConverter(); - Assert.ThrowsException(() => converter.ConvertBack((long)1234, null, null, null)); - Assert.ThrowsException(() => converter.ConvertBack((float)1.4, null, null, null)); - Assert.ThrowsException(() => converter.ConvertBack(new object(), null, null, null)); - Assert.ThrowsException(() => converter.ConvertBack("Test", null, null, null)); + Assert.ThrowsException(() => converter.ConvertBack((long)1234, null!, null, null!)); + Assert.ThrowsException(() => converter.ConvertBack((float)1.4, null!, null, null!)); + Assert.ThrowsException(() => converter.ConvertBack(new object(), null!, null, null!)); + Assert.ThrowsException(() => converter.ConvertBack("Test", null!, null, null!)); } } } diff --git a/tests/SoulSplitter.Tests/UI/Converters/DoubleToGridLengthConverterTests.cs b/tests/SoulSplitter.Tests/UI/Converters/DoubleToGridLengthConverterTests.cs index 1d8f56d..e10ff47 100644 --- a/tests/SoulSplitter.Tests/UI/Converters/DoubleToGridLengthConverterTests.cs +++ b/tests/SoulSplitter.Tests/UI/Converters/DoubleToGridLengthConverterTests.cs @@ -28,36 +28,36 @@ public class DoubleToGridLengthConverterTests public void Convert() { var converter = new DoubleToGridLengthConverter(); - Assert.AreEqual(new GridLength(10.0), converter.Convert((double)10.0, null, null, null)); - Assert.AreEqual(new GridLength(1234.5678), converter.Convert((double)1234.5678, null, null, null)); + Assert.AreEqual(new GridLength(10.0), converter.Convert((double)10.0, null!, null, null!)); + Assert.AreEqual(new GridLength(1234.5678), converter.Convert((double)1234.5678, null!, null, null!)); } [TestMethod] public void Convert_Throws() { var converter = new DoubleToGridLengthConverter(); - Assert.ThrowsException(() => converter.Convert((long)1234, null, null, null)); - Assert.ThrowsException(() => converter.Convert((float)1.4, null, null, null)); - Assert.ThrowsException(() => converter.Convert("test", null, null, null)); - Assert.ThrowsException(() => converter.Convert(new object(), null, null, null)); + Assert.ThrowsException(() => converter.Convert((long)1234, null!, null, null!)); + Assert.ThrowsException(() => converter.Convert((float)1.4, null!, null, null!)); + Assert.ThrowsException(() => converter.Convert("test", null!, null, null!)); + Assert.ThrowsException(() => converter.Convert(new object(), null!, null, null!)); } [TestMethod] public void ConvertBack() { var converter = new DoubleToGridLengthConverter(); - Assert.AreEqual((double)10.0 , converter.ConvertBack(new GridLength(10.0), null, null, null)); - Assert.AreEqual((double)1234.5678, converter.ConvertBack(new GridLength(1234.5678), null, null, null)); + Assert.AreEqual((double)10.0 , converter.ConvertBack(new GridLength(10.0), null!, null, null!)); + Assert.AreEqual((double)1234.5678, converter.ConvertBack(new GridLength(1234.5678), null!, null, null!)); } [TestMethod] public void ConvertBack_Throws() { var converter = new DoubleToGridLengthConverter(); - Assert.ThrowsException(() => converter.ConvertBack((long)1234, null, null, null)); - Assert.ThrowsException(() => converter.ConvertBack((float)1.4, null, null, null)); - Assert.ThrowsException(() => converter.ConvertBack("test", null, null, null)); - Assert.ThrowsException(() => converter.ConvertBack(new object(), null, null, null)); + Assert.ThrowsException(() => converter.ConvertBack((long)1234, null!, null, null!)); + Assert.ThrowsException(() => converter.ConvertBack((float)1.4, null!, null, null!)); + Assert.ThrowsException(() => converter.ConvertBack("test", null!, null, null!)); + Assert.ThrowsException(() => converter.ConvertBack(new object(), null!, null, null!)); } } } diff --git a/tests/SoulSplitter.Tests/UI/Converters/EnumDisplayNameConverterTests.cs b/tests/SoulSplitter.Tests/UI/Converters/EnumDisplayNameConverterTests.cs index 12dcfe7..ffc48e3 100644 --- a/tests/SoulSplitter.Tests/UI/Converters/EnumDisplayNameConverterTests.cs +++ b/tests/SoulSplitter.Tests/UI/Converters/EnumDisplayNameConverterTests.cs @@ -27,26 +27,26 @@ public class EnumDisplayNameConverterTests public void Convert_Enums() { var converter = new EnumDisplayNameConverter(); - Assert.AreEqual("Capra Demon", converter.Convert(SoulMemory.DarkSouls1.Boss.CapraDemon, null, null, null)); - Assert.AreEqual("Abandoned Cave", converter.Convert(SoulMemory.EldenRing.Grace.AbandonedCave, null, null, null)); + Assert.AreEqual("Capra Demon", converter.Convert(SoulMemory.DarkSouls1.Boss.CapraDemon, null!, null, null!)); + Assert.AreEqual("Abandoned Cave", converter.Convert(SoulMemory.EldenRing.Grace.AbandonedCave, null!, null, null!)); } [TestMethod] public void Convert_Unsupported_Type() { var converter = new EnumDisplayNameConverter(); - Assert.AreEqual("", converter.Convert(20, null, null, null)); - Assert.AreEqual("", converter.Convert(new object(), null, null, null)); - Assert.AreEqual("", converter.Convert("test", null, null, null)); + Assert.AreEqual("", converter.Convert(20, null!, null, null!)); + Assert.AreEqual("", converter.Convert(new object(), null!, null, null!)); + Assert.AreEqual("", converter.Convert("test", null!, null, null!)); } [TestMethod] public void ConvertBack_Exception() { var converter = new EnumDisplayNameConverter(); - Assert.ThrowsException(() => converter.ConvertBack(20, null, null, null)); - Assert.ThrowsException(() => converter.ConvertBack(new object(), null, null, null)); - Assert.ThrowsException(() => converter.ConvertBack("test", null, null, null)); + Assert.ThrowsException(() => converter.ConvertBack(20, null!, null, null!)); + Assert.ThrowsException(() => converter.ConvertBack(new object(), null!, null, null!)); + Assert.ThrowsException(() => converter.ConvertBack("test", null!, null, null!)); } } } diff --git a/tests/SoulSplitter.Tests/UI/Converters/EnumToVisibilityConverterTests.cs b/tests/SoulSplitter.Tests/UI/Converters/EnumToVisibilityConverterTests.cs index e1baec5..05d1112 100644 --- a/tests/SoulSplitter.Tests/UI/Converters/EnumToVisibilityConverterTests.cs +++ b/tests/SoulSplitter.Tests/UI/Converters/EnumToVisibilityConverterTests.cs @@ -31,19 +31,19 @@ public void Convert_Single_Enum() { var converter = new EnumToVisibilityConverter(); - Assert.AreEqual(Visibility.Visible, converter.Convert(SplitType.Attribute, null, SplitType.Attribute, null)); - Assert.AreEqual(Visibility.Visible, converter.Convert(SplitType.Boss, null, SplitType.Boss, null)); - Assert.AreEqual(Visibility.Visible, converter.Convert(SplitType.Bonfire, null, SplitType.Bonfire, null)); + Assert.AreEqual(Visibility.Visible, converter.Convert(SplitType.Attribute, null!, SplitType.Attribute, null!)); + Assert.AreEqual(Visibility.Visible, converter.Convert(SplitType.Boss, null!, SplitType.Boss, null!)); + Assert.AreEqual(Visibility.Visible, converter.Convert(SplitType.Bonfire, null!, SplitType.Bonfire, null!)); - Assert.AreEqual(Visibility.Collapsed, converter.Convert(SplitType.Attribute, null, SplitType.Boss, null)); - Assert.AreEqual(Visibility.Collapsed, converter.Convert(SplitType.Boss, null, SplitType.Bonfire, null)); - Assert.AreEqual(Visibility.Collapsed, converter.Convert(SplitType.Bonfire, null, SplitType.Attribute, null)); + Assert.AreEqual(Visibility.Collapsed, converter.Convert(SplitType.Attribute, null!, SplitType.Boss, null!)); + Assert.AreEqual(Visibility.Collapsed, converter.Convert(SplitType.Boss, null!, SplitType.Bonfire, null!)); + Assert.AreEqual(Visibility.Collapsed, converter.Convert(SplitType.Bonfire, null!, SplitType.Attribute, null!)); - Assert.AreEqual(Visibility.Collapsed, converter.Convert((object)null, null, null, null)); - Assert.AreEqual(Visibility.Collapsed, converter.Convert(SplitType.Attribute, null, null, null)); - Assert.AreEqual(Visibility.Collapsed, converter.Convert((object)null, null, null, null)); + Assert.AreEqual(Visibility.Collapsed, converter.Convert((object)null!, null!, null, null!)); + Assert.AreEqual(Visibility.Collapsed, converter.Convert(SplitType.Attribute, null!, null, null!)); + Assert.AreEqual(Visibility.Collapsed, converter.Convert((object)null!, null!, null, null!)); - Assert.ThrowsException(() => converter.ConvertBack(SplitType.Attribute, (Type)null, SplitType.Attribute, null)); + Assert.ThrowsException(() => converter.ConvertBack(SplitType.Attribute, (Type)null!, SplitType.Attribute, null!)); } [TestMethod] @@ -52,17 +52,17 @@ public void Convert_Multiple_Enums() var converter = new EnumToVisibilityConverter(); Assert.AreEqual(Visibility.Visible, converter.Convert( - new[] { (object)SplitType.Attribute, (object)GameType.DarkSouls1 }, null, - new[] { (object)SplitType.Attribute, (object)GameType.DarkSouls1 }, null)); + new[] { (object)SplitType.Attribute, (object)GameType.DarkSouls1 }, null!, + new[] { (object)SplitType.Attribute, (object)GameType.DarkSouls1 }, null!)); //Index based logic. Maybe have to fix that. Assert.AreEqual(Visibility.Collapsed, converter.Convert( - new[] { (object)SplitType.Bonfire, (object)GameType.EldenRing }, null, - new[] { (object)GameType.EldenRing, (object)SplitType.Bonfire }, null)); + new[] { (object)SplitType.Bonfire, (object)GameType.EldenRing }, null!, + new[] { (object)GameType.EldenRing, (object)SplitType.Bonfire }, null!)); Assert.AreEqual(Visibility.Collapsed, converter.Convert( - new[] { (object)SplitType.Attribute, (object)GameType.EldenRing }, null, - new[] { (object)GameType.EldenRing, (object)SplitType.Bonfire }, null)); + new[] { (object)SplitType.Attribute, (object)GameType.EldenRing }, null!, + new[] { (object)GameType.EldenRing, (object)SplitType.Bonfire }, null!)); } @@ -71,14 +71,14 @@ public void Convert_Multi_Enum_Exceptions() { var converter = new EnumToVisibilityConverter(); - Assert.ThrowsException(() => converter.Convert(null, null, new[]{ SplitType.Attribute }, null)); - Assert.ThrowsException(() => converter.Convert(new[] { SplitType.Attribute }.Cast().ToArray(), null, null, null)); + Assert.ThrowsException(() => converter.Convert(null!, null!, new[]{ SplitType.Attribute }, null!)); + Assert.ThrowsException(() => converter.Convert(new[] { SplitType.Attribute }.Cast().ToArray(), null!, null, null!)); Assert.ThrowsException(() => converter.Convert( - new[] { (object)SplitType.Attribute, (object)GameType.DarkSouls1 }, null, - new[] { (object)SplitType.Attribute }, null)); + new[] { (object)SplitType.Attribute, (object)GameType.DarkSouls1 }, null!, + new[] { (object)SplitType.Attribute }, null!)); - Assert.ThrowsException(() => converter.ConvertBack(SplitType.Attribute, (Type[])null, SplitType.Attribute, null)); + Assert.ThrowsException(() => converter.ConvertBack(SplitType.Attribute, (Type[])null!, SplitType.Attribute, null!)); } } } diff --git a/tests/SoulSplitter.Tests/UI/Converters/GameToSelectedIndexConverterTests.cs b/tests/SoulSplitter.Tests/UI/Converters/GameToSelectedIndexConverterTests.cs index 9fc2ee8..822ac6b 100644 --- a/tests/SoulSplitter.Tests/UI/Converters/GameToSelectedIndexConverterTests.cs +++ b/tests/SoulSplitter.Tests/UI/Converters/GameToSelectedIndexConverterTests.cs @@ -29,27 +29,27 @@ public void Convert_Valid_Cases() { var converter = new GameToSelectedIndexConverter(); - Assert.AreEqual(0, converter.Convert(Game.DarkSouls1, null, null, null)); - Assert.AreEqual(1, converter.Convert(Game.DarkSouls2, null, null, null)); - Assert.AreEqual(2, converter.Convert(Game.DarkSouls3, null, null, null)); - Assert.AreEqual(3, converter.Convert(Game.Sekiro, null, null, null)); - Assert.AreEqual(4, converter.Convert(Game.EldenRing, null, null, null)); - Assert.AreEqual(5, converter.Convert(Game.ArmoredCore6, null, null, null)); + Assert.AreEqual(0, converter.Convert(Game.DarkSouls1, null!, null, null!)); + Assert.AreEqual(1, converter.Convert(Game.DarkSouls2, null!, null, null!)); + Assert.AreEqual(2, converter.Convert(Game.DarkSouls3, null!, null, null!)); + Assert.AreEqual(3, converter.Convert(Game.Sekiro, null!, null, null!)); + Assert.AreEqual(4, converter.Convert(Game.EldenRing, null!, null, null!)); + Assert.AreEqual(5, converter.Convert(Game.ArmoredCore6, null!, null, null!)); - Assert.AreEqual(Game.DarkSouls1 , converter.ConvertBack(0, null, null, null)); - Assert.AreEqual(Game.DarkSouls2 , converter.ConvertBack(1, null, null, null)); - Assert.AreEqual(Game.DarkSouls3 , converter.ConvertBack(2, null, null, null)); - Assert.AreEqual(Game.Sekiro , converter.ConvertBack(3, null, null, null)); - Assert.AreEqual(Game.EldenRing , converter.ConvertBack(4, null, null, null)); - Assert.AreEqual(Game.ArmoredCore6, converter.ConvertBack(5, null, null, null)); + Assert.AreEqual(Game.DarkSouls1 , converter.ConvertBack(0, null!, null, null!)); + Assert.AreEqual(Game.DarkSouls2 , converter.ConvertBack(1, null!, null, null!)); + Assert.AreEqual(Game.DarkSouls3 , converter.ConvertBack(2, null!, null, null!)); + Assert.AreEqual(Game.Sekiro , converter.ConvertBack(3, null!, null, null!)); + Assert.AreEqual(Game.EldenRing , converter.ConvertBack(4, null!, null, null!)); + Assert.AreEqual(Game.ArmoredCore6, converter.ConvertBack(5, null!, null, null!)); - Assert.ThrowsException(() => converter.Convert("", null, null, null)); - Assert.ThrowsException(() => converter.Convert(1, null, null, null)); - Assert.ThrowsException(() => converter.Convert(new object(), null, null, null)); + Assert.ThrowsException(() => converter.Convert("", null!, null, null!)); + Assert.ThrowsException(() => converter.Convert(1, null!, null, null!)); + Assert.ThrowsException(() => converter.Convert(new object(), null!, null, null!)); - Assert.ThrowsException(() => converter.ConvertBack("", null, null, null)); - Assert.ThrowsException(() => converter.ConvertBack(Game.ArmoredCore6, null, null, null)); - Assert.ThrowsException(() => converter.ConvertBack(new object(), null, null, null)); + Assert.ThrowsException(() => converter.ConvertBack("", null!, null, null!)); + Assert.ThrowsException(() => converter.ConvertBack(Game.ArmoredCore6, null!, null, null!)); + Assert.ThrowsException(() => converter.ConvertBack(new object(), null!, null, null!)); } } } diff --git a/tests/SoulSplitter.Tests/UI/Converters/SplitObjectToDescriptionConverterTests.cs b/tests/SoulSplitter.Tests/UI/Converters/SplitObjectToDescriptionConverterTests.cs index eca568d..fa4a1d0 100644 --- a/tests/SoulSplitter.Tests/UI/Converters/SplitObjectToDescriptionConverterTests.cs +++ b/tests/SoulSplitter.Tests/UI/Converters/SplitObjectToDescriptionConverterTests.cs @@ -29,46 +29,46 @@ public class SplitObjectToDescriptionConverterTests public void Convert_Enum() { var converter = new SplitObjectToDescriptionConverter(); - Assert.AreEqual("The Bed of Chaos", converter.Convert(SoulMemory.DarkSouls1.Boss.BedOfChaos, null, null, null)); - Assert.AreEqual("Beside the Rampart Gaol", converter.Convert(SoulMemory.EldenRing.Grace.BesideTheRampartGaol, null, null, null)); + Assert.AreEqual("The Bed of Chaos", converter.Convert(SoulMemory.DarkSouls1.Boss.BedOfChaos, null!, null, null!)); + Assert.AreEqual("Beside the Rampart Gaol", converter.Convert(SoulMemory.EldenRing.Grace.BesideTheRampartGaol, null!, null, null!)); } [TestMethod] public void Convert_Object_ToString() { var converter = new SplitObjectToDescriptionConverter(); - Assert.AreEqual("12345 Test flag", converter.Convert(new FlagDescription(){ Description = "Test flag", Flag = 12345}, null, null, null)); - Assert.AreEqual("Dexterity 10", converter.Convert(new SoulSplitter.Splits.DarkSouls1.Attribute{AttributeType = SoulMemory.DarkSouls1.Attribute.Dexterity, Level = 10}, null, null, null)); + Assert.AreEqual("12345 Test flag", converter.Convert(new FlagDescription(){ Description = "Test flag", Flag = 12345}, null!, null, null!)); + Assert.AreEqual("Dexterity 10", converter.Convert(new SoulSplitter.Splits.DarkSouls1.Attribute{AttributeType = SoulMemory.DarkSouls1.Attribute.Dexterity, Level = 10}, null!, null, null!)); } [TestMethod] public void Convert_Uint() { var converter = new SplitObjectToDescriptionConverter(); - Assert.AreEqual((uint)12345, converter.Convert((uint)12345, null, null, null)); - Assert.AreEqual((uint)999999, converter.Convert((uint)999999, null, null, null)); + Assert.AreEqual((uint)12345, converter.Convert((uint)12345, null!, null, null!)); + Assert.AreEqual((uint)999999, converter.Convert((uint)999999, null!, null, null!)); } [TestMethod] public void Convert_Other_Types() { var converter = new SplitObjectToDescriptionConverter(); - Assert.AreEqual("", converter.Convert((long)12345, null, null, null)); - Assert.AreEqual("", converter.Convert((float)999999, null, null, null)); - Assert.AreEqual("", converter.Convert((double)1.2, null, null, null)); - Assert.AreEqual("", converter.Convert(new Color(), null, null, null)); + Assert.AreEqual("", converter.Convert((long)12345, null!, null, null!)); + Assert.AreEqual("", converter.Convert((float)999999, null!, null, null!)); + Assert.AreEqual("", converter.Convert((double)1.2, null!, null, null!)); + Assert.AreEqual("", converter.Convert(new Color(), null!, null, null!)); } [TestMethod] public void ConvertBack() { var converter = new SplitObjectToDescriptionConverter(); - Assert.ThrowsException(() => converter.ConvertBack(new FlagDescription() { Description = "Test flag", Flag = 12345 }, null, null, null)); - Assert.ThrowsException(() => converter.ConvertBack((uint)12345, null, null, null)); - Assert.ThrowsException(() => converter.ConvertBack((long)12345, null, null, null)); - Assert.ThrowsException(() => converter.ConvertBack((float)999999, null, null, null)); - Assert.ThrowsException(() => converter.ConvertBack((double)1.2, null, null, null)); - Assert.ThrowsException(() => converter.ConvertBack(new Color(), null, null, null)); + Assert.ThrowsException(() => converter.ConvertBack(new FlagDescription() { Description = "Test flag", Flag = 12345 }, null!, null, null!)); + Assert.ThrowsException(() => converter.ConvertBack((uint)12345, null!, null, null!)); + Assert.ThrowsException(() => converter.ConvertBack((long)12345, null!, null, null!)); + Assert.ThrowsException(() => converter.ConvertBack((float)999999, null!, null, null!)); + Assert.ThrowsException(() => converter.ConvertBack((double)1.2, null!, null, null!)); + Assert.ThrowsException(() => converter.ConvertBack(new Color(), null!, null, null!)); } } } diff --git a/tests/SoulSplitter.Tests/UI/Converters/SplitTypeVisibilityConverterTests.cs b/tests/SoulSplitter.Tests/UI/Converters/SplitTypeVisibilityConverterTests.cs index 72724bb..044b265 100644 --- a/tests/SoulSplitter.Tests/UI/Converters/SplitTypeVisibilityConverterTests.cs +++ b/tests/SoulSplitter.Tests/UI/Converters/SplitTypeVisibilityConverterTests.cs @@ -29,25 +29,25 @@ public class SplitTypeVisibilityConverterTests public void Convert() { var converter = new SplitTypeVisibilityConverter(); - Assert.AreEqual(Visibility.Visible, converter.Convert(SplitType.Attribute, null, "Attribute", null)); - Assert.AreEqual(Visibility.Visible, converter.Convert(SplitType.Boss, null, "Boss", null)); - Assert.AreEqual(Visibility.Visible, converter.Convert(SplitType.Bonfire, null, "Bonfire", null)); + Assert.AreEqual(Visibility.Visible, converter.Convert(SplitType.Attribute, null!, "Attribute", null!)); + Assert.AreEqual(Visibility.Visible, converter.Convert(SplitType.Boss, null!, "Boss", null!)); + Assert.AreEqual(Visibility.Visible, converter.Convert(SplitType.Bonfire, null!, "Bonfire", null!)); - Assert.AreEqual(Visibility.Collapsed, converter.Convert(SplitType.Attribute, null, "Boss", null)); - Assert.AreEqual(Visibility.Collapsed, converter.Convert(SplitType.Boss, null, "Bonfire", null)); - Assert.AreEqual(Visibility.Collapsed, converter.Convert(SplitType.Bonfire, null, "Attribute", null)); + Assert.AreEqual(Visibility.Collapsed, converter.Convert(SplitType.Attribute, null!, "Boss", null!)); + Assert.AreEqual(Visibility.Collapsed, converter.Convert(SplitType.Boss, null!, "Bonfire", null!)); + Assert.AreEqual(Visibility.Collapsed, converter.Convert(SplitType.Bonfire, null!, "Attribute", null!)); - Assert.AreEqual(Visibility.Collapsed, converter.Convert("test", null, "Attribute", null)); - Assert.AreEqual(Visibility.Collapsed, converter.Convert(SplitType.Bonfire, null, new object(), null)); + Assert.AreEqual(Visibility.Collapsed, converter.Convert("test", null!, "Attribute", null!)); + Assert.AreEqual(Visibility.Collapsed, converter.Convert(SplitType.Bonfire, null!, new object(), null!)); } [TestMethod] public void ConvertBack() { var converter = new SplitTypeVisibilityConverter(); - Assert.ThrowsException(() => converter.ConvertBack(SplitType.Attribute, null, "Attribute", null)); - Assert.ThrowsException(() => converter.ConvertBack(SplitType.Boss, null, "Bonfire", null)); - Assert.ThrowsException(() => converter.ConvertBack(SplitType.Bonfire, null, new object(), null)); + Assert.ThrowsException(() => converter.ConvertBack(SplitType.Attribute, null!, "Attribute", null!)); + Assert.ThrowsException(() => converter.ConvertBack(SplitType.Boss, null!, "Bonfire", null!)); + Assert.ThrowsException(() => converter.ConvertBack(SplitType.Bonfire, null!, new object(), null!)); } } } diff --git a/tests/SoulSplitter.Tests/UI/Validation/TextToNumberValidationTests.cs b/tests/SoulSplitter.Tests/UI/Validation/TextToNumberValidationTests.cs index 152d4b9..f6fbecc 100644 --- a/tests/SoulSplitter.Tests/UI/Validation/TextToNumberValidationTests.cs +++ b/tests/SoulSplitter.Tests/UI/Validation/TextToNumberValidationTests.cs @@ -28,7 +28,7 @@ private static IEnumerable TestCases { get { - return new [] + return new[] { new object[] { "123" , false, false, NumericType.Uint , true }, new object[] { "-123" , false, false, NumericType.Uint , false}, @@ -37,7 +37,7 @@ private static IEnumerable TestCases new object[] { "123.3", false, true , NumericType.Float, true }, new object[] { "" , true , true , NumericType.Float, false}, new object[] { "asd" , true , true , NumericType.Float, false}, - new object[] { null , true , true , NumericType.Float, false}, + new object[] { null! , true , true , NumericType.Float, false}, }; } } diff --git a/tests/SoulSplitter.Tests/UI/Validation/TextToRgbHexValidatorTests.cs b/tests/SoulSplitter.Tests/UI/Validation/TextToRgbHexValidatorTests.cs index 5c41d4e..cad141a 100644 --- a/tests/SoulSplitter.Tests/UI/Validation/TextToRgbHexValidatorTests.cs +++ b/tests/SoulSplitter.Tests/UI/Validation/TextToRgbHexValidatorTests.cs @@ -26,8 +26,8 @@ public class TextToRgbHexValidatorTests public void Validate() { var validator = new TextToRgbHexValidator(); - Assert.IsTrue(validator.Validate("#123456", null).IsValid); - Assert.IsTrue(validator.Validate("#A2C4DD", null).IsValid); + Assert.IsTrue(validator.Validate("#123456", null!).IsValid); + Assert.IsTrue(validator.Validate("#A2C4DD", null!).IsValid); } @@ -35,10 +35,10 @@ public void Validate() public void Validate_Invalid_Hex() { var validator = new TextToRgbHexValidator(); - Assert.IsFalse(validator.Validate("123456", null).IsValid); - Assert.IsFalse(validator.Validate("#12345G", null).IsValid); - Assert.IsFalse(validator.Validate("test", null).IsValid); - Assert.AreEqual("test is not a valid RGB hex", validator.Validate("test", null).ErrorContent); + Assert.IsFalse(validator.Validate("123456", null!).IsValid); + Assert.IsFalse(validator.Validate("#12345G", null!).IsValid); + Assert.IsFalse(validator.Validate("test", null!).IsValid); + Assert.AreEqual("test is not a valid RGB hex", validator.Validate("test", null!).ErrorContent); } } } diff --git a/tests/SoulSplitter.Tests/UI/ViewModelTests.cs b/tests/SoulSplitter.Tests/UI/ViewModelTests.cs index a5d3f6a..d7cb722 100644 --- a/tests/SoulSplitter.Tests/UI/ViewModelTests.cs +++ b/tests/SoulSplitter.Tests/UI/ViewModelTests.cs @@ -42,24 +42,13 @@ public class ViewModelTests [DynamicData(nameof(TestCases))] public void AddSplitTest(GameType gameType, AddSplit addSplit, TimingType timingType, SplitType splitType, object split) { - BaseViewModel viewModel = null; - switch(gameType) + BaseViewModel viewModel = gameType switch { - case GameType.DarkSouls1: - viewModel = new DarkSouls1ViewModel(); - break; - - case GameType.DarkSouls3: - viewModel = new DarkSouls3ViewModel(); - break; - - case GameType.Sekiro: - viewModel = new SekiroViewModel(); - break; - - default: - throw new Exception($"unsupported GameType {gameType}"); - } + GameType.DarkSouls1 => new DarkSouls1ViewModel(), + GameType.DarkSouls3 => new DarkSouls3ViewModel(), + GameType.Sekiro => new SekiroViewModel(), + _ => throw new Exception($"unsupported GameType {gameType}") + }; addSplit(viewModel, timingType, splitType, split); @@ -98,24 +87,13 @@ public void AddMultipleSplits() var expectedTimingTypes = new Dictionary(); var expectedSplitTypes = new Dictionary(); - BaseViewModel viewModel = null; - switch (gameType.Key) + BaseViewModel viewModel = gameType.Key switch { - case GameType.DarkSouls1: - viewModel = new DarkSouls1ViewModel(); - break; - - case GameType.DarkSouls3: - viewModel = new DarkSouls3ViewModel(); - break; - - case GameType.Sekiro: - viewModel = new SekiroViewModel(); - break; - - default: - throw new Exception($"unsupported GameType {gameType}"); - } + GameType.DarkSouls1 => new DarkSouls1ViewModel(), + GameType.DarkSouls3 => new DarkSouls3ViewModel(), + GameType.Sekiro => new SekiroViewModel(), + _ => throw new Exception($"unsupported GameType {gameType}") + }; //Add all the splits defined in the testdata to the VM foreach (var testCaseData in testData) From 194723a9a9ef425d29b13e5bf14214cf82db652b Mon Sep 17 00:00:00 2001 From: Frank van der Stam Date: Fri, 24 Jan 2025 17:56:01 +0100 Subject: [PATCH 14/28] Replace sonarqube with qodana --- .github/workflows/build.yml | 32 ++++++++------------------------ .github/workflows/qodana.yml | 33 --------------------------------- SoulSplitter.sln | 1 - 3 files changed, 8 insertions(+), 58 deletions(-) delete mode 100644 .github/workflows/qodana.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a0f67f7..91ed5a1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -26,33 +26,17 @@ jobs: - name: dotnet restore run: dotnet restore - - name: setup sonarqube - if: ${{ !github.event.pull_request.head.repo.fork }} - uses: ./.github/actions/setup-sonar + - name: Build solution + run: dotnet build -c release + + - name: Run tests with code coverage + run: dotnet test /p:CollectCoverage=true /p:CoverletOutput=../../.qodana/code-coverage/ /p:CoverletOutputFormat=lcov - #build with sonar analysis enabled - - name: Build and analyze + - name: Qodana Scan if: ${{ !github.event.pull_request.head.repo.fork }} + uses: JetBrains/qodana-action@v2024.1 env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - shell: powershell - run: | - .\.sonar\scanner\dotnet-sonarscanner begin /k:"FrankvdStam_SoulSplitter_AYT9tJW7QlZ0fhD27xsa" /d:sonar.token="${{ secrets.SONAR_TOKEN }}" /d:sonar.host.url="${{ secrets.SONAR_HOST_URL }}" /d:sonar.cs.opencover.reportsPaths=tests/**/*.xml - dotnet build src/soulsplitter/soulsplitter.csproj -c release /p:Platform=x64 - dotnet test -p:CollectCoverage=true -p:CoverletOutputFormat=opencover - .\.sonar\scanner\dotnet-sonarscanner end /d:sonar.token="${{ secrets.SONAR_TOKEN }}" - - #Forked repo's don't have access to the repository secrets and are unable to run sonarqube analysis - - name: Build only - if: ${{ github.event.pull_request.head.repo.fork }} - shell: powershell - run: | - dotnet build src/soulsplitter/soulsplitter.csproj -c release /p:Platform=x64 - dotnet test - - - name: Build CliTimer - shell: powershell - run: dotnet build src\CliTimer\CliTimer.csproj -c release /p:Platform=x64 + QODANA_TOKEN: ${{ secrets.QODANA_TOKEN }} #Collect all the artifacts and publish them - name: collect artifacts diff --git a/.github/workflows/qodana.yml b/.github/workflows/qodana.yml deleted file mode 100644 index 90df89f..0000000 --- a/.github/workflows/qodana.yml +++ /dev/null @@ -1,33 +0,0 @@ -name: Qodana -on: - #schedule: - # - cron: "30 1 * * *" - push: - branches: - - main - pull_request: - workflow_dispatch: - -jobs: - qodana: - runs-on: windows-latest - permissions: - contents: write - pull-requests: write - checks: write - steps: - - uses: actions/checkout@v3 - with: - ref: ${{ github.event.pull_request.head.sha }} # to check out the actual pull request commit, not the merge commit - fetch-depth: 0 # a full history is required for pull request analysis - - - name: Build solution - run: dotnet build - - - name: Run tests with code coverage - run: dotnet test /p:CollectCoverage=true /p:CoverletOutput=../../.qodana/code-coverage/ /p:CoverletOutputFormat=lcov - - - name: 'Qodana Scan' - uses: JetBrains/qodana-action@v2024.1 - env: - QODANA_TOKEN: ${{ secrets.QODANA_TOKEN }} diff --git a/SoulSplitter.sln b/SoulSplitter.sln index e432cfe..f35a095 100644 --- a/SoulSplitter.sln +++ b/SoulSplitter.sln @@ -65,7 +65,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "workflows", "workflows", "{ .github\workflows\build.yml = .github\workflows\build.yml .github\workflows\debug.yml = .github\workflows\debug.yml .github\workflows\issues.yml = .github\workflows\issues.yml - .github\workflows\qodana.yml = .github\workflows\qodana.yml EndProjectSection EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "setup-sonar", "setup-sonar", "{2F6D0351-99A1-4E2A-98B8-7FE636A53F89}" From 7be18f22bf29383a83138388163289afe05e545a Mon Sep 17 00:00:00 2001 From: Frank van der Stam Date: Fri, 24 Jan 2025 19:36:27 +0100 Subject: [PATCH 15/28] Extract version from build.props --- .github/workflows/build.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 91ed5a1..80d4915 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -20,6 +20,12 @@ jobs: with: fetch-depth: 0 + - name: get version + shell: pwsh + run: | + $version = select-xml -path "Directory.Build.props" -xpath "//PropertyGroup//Version" | Select-Object -ExpandProperty Node | Select-Object -ExpandProperty '#text' + echo "VERSION=$version" >> $env:GITHUB_ENV + - name: setup dotnet uses: actions/setup-dotnet@v3 From 2fcf0d2bb1a67725a24801f77fd631c99adca5d2 Mon Sep 17 00:00:00 2001 From: Frank van der Stam Date: Fri, 24 Jan 2025 19:38:34 +0100 Subject: [PATCH 16/28] Set filename to version --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 80d4915..70be3ac 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -88,5 +88,5 @@ jobs: - name: Publish SoulSplitter uses: actions/upload-artifact@v4 with: - name: SoulSplitter + name: ${{ env.VERSION }} path: artifact From 9a4b7d66d6fe71d981c52844b084a0140c29b198 Mon Sep 17 00:00:00 2001 From: Frank van der Stam Date: Fri, 24 Jan 2025 21:01:01 +0100 Subject: [PATCH 17/28] Try with failureConditions --- .github/workflows/build.yml | 4 ++++ qodana.yaml | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 70be3ac..e7c4da3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,6 +13,10 @@ jobs: build: name: build runs-on: windows-latest + permissions: + contents: write + pull-requests: write + checks: write steps: #clone, setup dotnet, restore packages - name: Checkout diff --git a/qodana.yaml b/qodana.yaml index b04238d..329902e 100644 --- a/qodana.yaml +++ b/qodana.yaml @@ -26,3 +26,10 @@ dependencyOverrides: licenses: - key: "MIT" url: "https://nuget.info/packages/NETStandard.Library/2.0.3" + +failureConditions: + severityThresholds: + any: 0 + testCoverageThresholds: + fresh: 50 + total: 20 \ No newline at end of file From 04960f66c6ee515f779430adddd12b01730de446 Mon Sep 17 00:00:00 2001 From: Frank van der Stam Date: Fri, 24 Jan 2025 21:59:38 +0100 Subject: [PATCH 18/28] Add baseline --- qodana.sarif.json | 218302 +++++++++++++++++++++++++++++++++++++++++++ qodana.yaml | 2 + 2 files changed, 218304 insertions(+) create mode 100644 qodana.sarif.json diff --git a/qodana.sarif.json b/qodana.sarif.json new file mode 100644 index 0000000..b6cc257 --- /dev/null +++ b/qodana.sarif.json @@ -0,0 +1,218302 @@ +{ + "$schema": "https://raw.githubusercontent.com/schemastore/schemastore/master/src/schemas/json/sarif-2.1.0-rtm.5.json", + "version": "2.1.0", + "runs": [ + { + "tool": { + "driver": { + "name": "QDNET", + "fullName": "Qodana for .NET", + "version": "241.16914.127", + "rules": [], + "taxa": [ + { + "id": "C#", + "name": "C#" + }, + { + "id": "C#/Potential Code Quality Issues", + "name": "Potential Code Quality Issues", + "relationships": [ + { + "target": { + "id": "C#", + "index": 0, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "C++", + "name": "C++" + }, + { + "id": "C++/Clang Diagnostics", + "name": "Clang Diagnostics", + "relationships": [ + { + "target": { + "id": "C++", + "index": 2, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "XAML", + "name": "XAML" + }, + { + "id": "XAML/Code Notification", + "name": "Code Notification", + "relationships": [ + { + "target": { + "id": "XAML", + "index": 4, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "C++/Unreal Engine", + "name": "Unreal Engine", + "relationships": [ + { + "target": { + "id": "C++", + "index": 2, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "C#/Language Usage Opportunities", + "name": "Language Usage Opportunities", + "relationships": [ + { + "target": { + "id": "C#", + "index": 0, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "C++/Clang-Tidy Checks", + "name": "Clang-Tidy Checks", + "relationships": [ + { + "target": { + "id": "C++", + "index": 2, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "C++/Potential Code Quality Issues", + "name": "Potential Code Quality Issues", + "relationships": [ + { + "target": { + "id": "C++", + "index": 2, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Sass_SCSS", + "name": "Sass/SCSS" + }, + { + "id": "HTML", + "name": "HTML" + }, + { + "id": "JavaScript and TypeScript", + "name": "JavaScript and TypeScript" + }, + { + "id": "JavaScript and TypeScript/Flow type checker", + "name": "Flow type checker", + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript", + "index": 12, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "C#/Common Practices and Code Improvements", + "name": "Common Practices and Code Improvements", + "relationships": [ + { + "target": { + "id": "C#", + "index": 0, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "PostCSS", + "name": "PostCSS" + }, + { + "id": "JavaScript and TypeScript/Bitwise operation issues", + "name": "Bitwise operation issues", + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript", + "index": 12, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "C++/Common Practices and Code Improvements", + "name": "Common Practices and Code Improvements", + "relationships": [ + { + "target": { + "id": "C++", + "index": 2, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JavaScript and TypeScript/General", + "name": "General", + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript", + "index": 12, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "C#/Unity", + "name": "Unity", + "relationships": [ + { + "target": { + "id": "C#", + "index": 0, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "EditorConfig", + "name": "EditorConfig" + }, + { + "id": "C#/Syntax Style", + "name": "Syntax Style", + "relationships": [ + { + "target": { + "id": "C#", + "index": 0, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JavaScript and TypeScript/Validity issues", + "name": "Validity issues", + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript", + "index": 12, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "C#/Redundancies in Code", + "name": "Redundancies in Code", + "relationships": [ + { + "target": { + "id": "C#", + "index": 0, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "C#/Formatting", + "name": "Formatting", + "relationships": [ + { + "target": { + "id": "C#", + "index": 0, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SQL", + "name": "SQL" + }, + { + "id": "C#/NUnit", + "name": "NUnit", + "relationships": [ + { + "target": { + "id": "C#", + "index": 0, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "C#/Compiler Warnings", + "name": "Compiler Warnings", + "relationships": [ + { + "target": { + "id": "C#", + "index": 0, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "C++/Formatting", + "name": "Formatting", + "relationships": [ + { + "target": { + "id": "C++", + "index": 2, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CSS", + "name": "CSS" + }, + { + "id": "CSS/Invalid elements", + "name": "Invalid elements", + "relationships": [ + { + "target": { + "id": "CSS", + "index": 29, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JavaScript and TypeScript/Potentially undesirable code constructs", + "name": "Potentially undesirable code constructs", + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript", + "index": 12, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "C++/Clang Static Analyzer Checks", + "name": "Clang Static Analyzer Checks", + "relationships": [ + { + "target": { + "id": "C++", + "index": 2, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "HTTP Client", + "name": "HTTP Client" + }, + { + "id": "C++/Redundancies in Code", + "name": "Redundancies in Code", + "relationships": [ + { + "target": { + "id": "C++", + "index": 2, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "C#/Roslyn Analyzers", + "name": "Roslyn Analyzers", + "relationships": [ + { + "target": { + "id": "C#", + "index": 0, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "C#/Redundancies in Symbol Declarations", + "name": "Redundancies in Symbol Declarations", + "relationships": [ + { + "target": { + "id": "C#", + "index": 0, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "C#/Entity Framework", + "name": "Entity Framework", + "relationships": [ + { + "target": { + "id": "C#", + "index": 0, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Properties files", + "name": "Properties files" + }, + { + "id": "VB.NET", + "name": "VB.NET" + }, + { + "id": "VB.NET/Common Practices and Code Improvements", + "name": "Common Practices and Code Improvements", + "relationships": [ + { + "target": { + "id": "VB.NET", + "index": 39, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Blazor", + "name": "Blazor" + }, + { + "id": "Blazor/Potential Code Quality Issues", + "name": "Potential Code Quality Issues", + "relationships": [ + { + "target": { + "id": "Blazor", + "index": 41, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "XSLT", + "name": "XSLT" + }, + { + "id": "XAML/Potential Code Quality Issues", + "name": "Potential Code Quality Issues", + "relationships": [ + { + "target": { + "id": "XAML", + "index": 4, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "General", + "name": "General" + }, + { + "id": "ASP.NET route templates", + "name": "ASP.NET route templates" + }, + { + "id": "ASP.NET route templates/Code Notification", + "name": "Code Notification", + "relationships": [ + { + "target": { + "id": "ASP.NET route templates", + "index": 46, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JavaScript and TypeScript/ES2015 migration aids", + "name": "ES2015 migration aids", + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript", + "index": 12, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JavaScript and TypeScript/DOM issues", + "name": "DOM issues", + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript", + "index": 12, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Code Coverage", + "name": "Code Coverage" + }, + { + "id": "HTML/Potential Code Quality Issues", + "name": "Potential Code Quality Issues", + "relationships": [ + { + "target": { + "id": "HTML", + "index": 11, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JavaScript and TypeScript/TypeScript", + "name": "TypeScript", + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript", + "index": 12, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "XML", + "name": "XML" + }, + { + "id": "C#/Unity Burst Compiler Warnings", + "name": "Unity Burst Compiler Warnings", + "relationships": [ + { + "target": { + "id": "C#", + "index": 0, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RegExp", + "name": "RegExp" + }, + { + "id": "XAML/Compiler Warnings", + "name": "Compiler Warnings", + "relationships": [ + { + "target": { + "id": "XAML", + "index": 4, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JavaScript and TypeScript/Potentially confusing code constructs", + "name": "Potentially confusing code constructs", + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript", + "index": 12, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "VB.NET/Potential Code Quality Issues", + "name": "Potential Code Quality Issues", + "relationships": [ + { + "target": { + "id": "VB.NET", + "index": 39, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Aspx", + "name": "Aspx" + }, + { + "id": "Aspx/Potential Code Quality Issues", + "name": "Potential Code Quality Issues", + "relationships": [ + { + "target": { + "id": "Aspx", + "index": 59, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JavaScript and TypeScript/Control flow issues", + "name": "Control flow issues", + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript", + "index": 12, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ResX", + "name": "ResX" + }, + { + "id": "ResX/Potential Code Quality Issues", + "name": "Potential Code Quality Issues", + "relationships": [ + { + "target": { + "id": "ResX", + "index": 62, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JavaScript and TypeScript/Code quality tools", + "name": "Code quality tools", + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript", + "index": 12, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Pug_Jade", + "name": "Pug/Jade" + }, + { + "id": "F#", + "name": "F#" + }, + { + "id": "F#/Redundancies in Code", + "name": "Redundancies in Code", + "relationships": [ + { + "target": { + "id": "F#", + "index": 66, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "HTML/Common Practices and Code Improvements", + "name": "Common Practices and Code Improvements", + "relationships": [ + { + "target": { + "id": "HTML", + "index": 11, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "C++/Compiler Warnings", + "name": "Compiler Warnings", + "relationships": [ + { + "target": { + "id": "C++", + "index": 2, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JavaScript and TypeScript/Function metrics", + "name": "Function metrics", + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript", + "index": 12, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "XAML/Redundancies in Code", + "name": "Redundancies in Code", + "relationships": [ + { + "target": { + "id": "XAML", + "index": 4, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JavaScript and TypeScript/Code style issues", + "name": "Code style issues", + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript", + "index": 12, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "C#/Constraints Violations", + "name": "Constraints Violations", + "relationships": [ + { + "target": { + "id": "C#", + "index": 0, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Web.Config", + "name": "Web.Config" + }, + { + "id": "Web.Config/Potential Code Quality Issues", + "name": "Potential Code Quality Issues", + "relationships": [ + { + "target": { + "id": "Web.Config", + "index": 74, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "HTML/Accessibility", + "name": "Accessibility", + "relationships": [ + { + "target": { + "id": "HTML", + "index": 11, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSON and JSON5", + "name": "JSON and JSON5" + }, + { + "id": "XPath", + "name": "XPath" + }, + { + "id": "JavaScript and TypeScript/Probable bugs", + "name": "Probable bugs", + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript", + "index": 12, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "C#/Security", + "name": "Security", + "relationships": [ + { + "target": { + "id": "C#", + "index": 0, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Vue", + "name": "Vue" + }, + { + "id": "MongoJS", + "name": "MongoJS" + }, + { + "id": "C++/Syntax Style", + "name": "Syntax Style", + "relationships": [ + { + "target": { + "id": "C++", + "index": 2, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Razor", + "name": "Razor" + }, + { + "id": "Razor/Potential Code Quality Issues", + "name": "Potential Code Quality Issues", + "relationships": [ + { + "target": { + "id": "Razor", + "index": 84, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Web.Config/Code Notification", + "name": "Code Notification", + "relationships": [ + { + "target": { + "id": "Web.Config", + "index": 74, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "YAML", + "name": "YAML" + }, + { + "id": "VB.NET/Redundancies in Code", + "name": "Redundancies in Code", + "relationships": [ + { + "target": { + "id": "VB.NET", + "index": 39, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JavaScript and TypeScript/Try statement issues", + "name": "Try statement issues", + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript", + "index": 12, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Web.Config/Redundancies in Code", + "name": "Redundancies in Code", + "relationships": [ + { + "target": { + "id": "Web.Config", + "index": 74, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ResX/Redundancies in Code", + "name": "Redundancies in Code", + "relationships": [ + { + "target": { + "id": "ResX", + "index": 62, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "HttpHandler or WebService", + "name": "HttpHandler or WebService" + }, + { + "id": "HttpHandler or WebService/Potential Code Quality Issues", + "name": "Potential Code Quality Issues", + "relationships": [ + { + "target": { + "id": "HttpHandler or WebService", + "index": 92, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SQL server", + "name": "SQL server" + }, + { + "id": "JavaScript and TypeScript/Async code and promises", + "name": "Async code and promises", + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript", + "index": 12, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JavaScript and TypeScript/Naming conventions", + "name": "Naming conventions", + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript", + "index": 12, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Dependency analysis", + "name": "Dependency analysis" + }, + { + "id": "JavaScript and TypeScript/Assignment issues", + "name": "Assignment issues", + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript", + "index": 12, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JavaScript and TypeScript/Switch statement issues", + "name": "Switch statement issues", + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript", + "index": 12, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "VB.NET/Compiler Warnings", + "name": "Compiler Warnings", + "relationships": [ + { + "target": { + "id": "VB.NET", + "index": 39, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Shell script", + "name": "Shell script" + }, + { + "id": "JavaScript and TypeScript/Data flow", + "name": "Data flow", + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript", + "index": 12, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "C++/UnrealHeaderTool", + "name": "UnrealHeaderTool", + "relationships": [ + { + "target": { + "id": "C++", + "index": 2, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CSS/Code style issues", + "name": "Code style issues", + "relationships": [ + { + "target": { + "id": "CSS", + "index": 29, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "T4", + "name": "T4" + }, + { + "id": "T4/T4", + "name": "T4", + "relationships": [ + { + "target": { + "id": "T4", + "index": 105, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JavaScript and TypeScript/Unused symbols", + "name": "Unused symbols", + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript", + "index": 12, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Aspx/Redundancies in Code", + "name": "Redundancies in Code", + "relationships": [ + { + "target": { + "id": "Aspx", + "index": 59, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JavaScript and TypeScript/Imports and dependencies", + "name": "Imports and dependencies", + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript", + "index": 12, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Less", + "name": "Less" + }, + { + "id": "Proofreading", + "name": "Proofreading" + }, + { + "id": "Oracle", + "name": "Oracle" + }, + { + "id": "Internationalization", + "name": "Internationalization" + }, + { + "id": "Unreal Engine", + "name": "Unreal Engine" + }, + { + "id": "C#/Unity Performance Inspections", + "name": "Unity Performance Inspections", + "relationships": [ + { + "target": { + "id": "C#", + "index": 0, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RELAX NG", + "name": "RELAX NG" + }, + { + "id": "C++/Constraints Violations", + "name": "Constraints Violations", + "relationships": [ + { + "target": { + "id": "C++", + "index": 2, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JavaScript and TypeScript/Unit testing", + "name": "Unit testing", + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript", + "index": 12, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "C#/Unreal Build System", + "name": "Unreal Build System", + "relationships": [ + { + "target": { + "id": "C#", + "index": 0, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MySQL", + "name": "MySQL" + }, + { + "id": "Angular 2 HTML", + "name": "Angular 2 HTML" + }, + { + "id": "Angular 2 HTML/Potential Code Quality Issues", + "name": "Potential Code Quality Issues", + "relationships": [ + { + "target": { + "id": "Angular 2 HTML", + "index": 121, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "C++/.NET Core", + "name": ".NET Core", + "relationships": [ + { + "target": { + "id": "C++", + "index": 2, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CSS/Probable bugs", + "name": "Probable bugs", + "relationships": [ + { + "target": { + "id": "CSS", + "index": 29, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Ini files", + "name": "Ini files" + }, + { + "id": "Security", + "name": "Security" + }, + { + "id": "Version control", + "name": "Version control" + }, + { + "id": "Aspx/Common Practices and Code Improvements", + "name": "Common Practices and Code Improvements", + "relationships": [ + { + "target": { + "id": "Aspx", + "index": 59, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CSS/Code quality tools", + "name": "Code quality tools", + "relationships": [ + { + "target": { + "id": "CSS", + "index": 29, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "PostgreSQL", + "name": "PostgreSQL" + }, + { + "id": "Qodana", + "name": "Qodana" + }, + { + "id": "File Watchers", + "name": "File Watchers" + }, + { + "id": "Rider", + "name": "Rider" + }, + { + "id": "Rider/General", + "name": "General", + "relationships": [ + { + "target": { + "id": "Rider", + "index": 133, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "XAML/Constraints Violations", + "name": "Constraints Violations", + "relationships": [ + { + "target": { + "id": "XAML", + "index": 4, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JavaScript and TypeScript/React", + "name": "React", + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript", + "index": 12, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "C#/Code Notification", + "name": "Code Notification", + "relationships": [ + { + "target": { + "id": "C#", + "index": 0, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MSBuild", + "name": "MSBuild" + }, + { + "id": "VB.NET/Code Notification", + "name": "Code Notification", + "relationships": [ + { + "target": { + "id": "VB.NET", + "index": 39, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RegExpBase", + "name": "RegExpBase" + }, + { + "id": "RegExpBase/Language Usage Opportunities", + "name": "Language Usage Opportunities", + "relationships": [ + { + "target": { + "id": "RegExpBase", + "index": 140, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Handlebars_Mustache", + "name": "Handlebars/Mustache" + }, + { + "id": "JavaScript and TypeScript/Node.js", + "name": "Node.js", + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript", + "index": 12, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "C#/Xunit", + "name": "Xunit", + "relationships": [ + { + "target": { + "id": "C#", + "index": 0, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false + }, + "extensions": [ + { + "name": "rider.intellij.plugin.appender", + "version": "241.16914", + "rules": [ + { + "id": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", + "shortDescription": { + "text": "Some values of the enum are not processed inside 'switch' statement and are handled via default section" + }, + "fullDescription": { + "text": "Some values of the enum are not processed inside 'switch' statement and fall into default section. This might indicate unintentional handling of all enum values added after the switch was introduced, consider handling missing enum values explicitly Learn more...", + "markdown": "Some values of the enum are not processed inside 'switch' statement and fall into default section. This might indicate unintentional handling of all enum values added after the switch was introduced, consider handling missing enum values explicitly [Learn more...](https://www.jetbrains.com/help/rider/SwitchStatementHandlesSomeKnownEnumValuesWithDefault.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticCpp98Cpp11Cpp14CompatPedantic", + "shortDescription": { + "text": "c++98-c++11-c++14-compat-pedantic clang diagnostic" + }, + "fullDescription": { + "text": "-Wc++98-c++11-c++14-compat-pedantic clang diagnostic · Learn more", + "markdown": "-Wc++98-c++11-c++14-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-98-c-11-c-14-compat-pedantic)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticCpp98Cpp11Cpp14CompatPedantic", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Xaml.InvalidDynamicResourceType", + "shortDescription": { + "text": "XAML dynamic resource of invalid type" + }, + "fullDescription": { + "text": "XAML dynamic resource of invalid type", + "markdown": "XAML dynamic resource of invalid type" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "Xaml.InvalidDynamicResourceType", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "XAML/Code Notification", + "index": 5, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppUEBlueprintImplementableEventNotImplemented", + "shortDescription": { + "text": "BlueprintImplementableEvent function is not implemented in any blueprint" + }, + "fullDescription": { + "text": "BlueprintImplementableEvent function is not implemented in any blueprint", + "markdown": "BlueprintImplementableEvent function is not implemented in any blueprint" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppUEBlueprintImplementableEventNotImplemented", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Unreal Engine", + "index": 6, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ConvertToCompoundAssignment", + "shortDescription": { + "text": "Use compound assignment" + }, + "fullDescription": { + "text": "Replace assignment with compound assignment", + "markdown": "Replace assignment with compound assignment" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "ConvertToCompoundAssignment", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Language Usage Opportunities", + "index": 7, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UseConfigureAwaitFalseForAsyncDisposable", + "shortDescription": { + "text": "Missing '.ConfigureAwait(false)' for async disposable in library code" + }, + "fullDescription": { + "text": "It is recommended to use 'ConfigureAwait(false)' in your library code to prevent context capture in task continuations. This inspection is controlled by the 'ConfigureAwait analysis mode' project level property, which is set to 'Disabled' by default. Set 'ConfigureAwait analysis mode' project level property to 'Library' to analyze 'await using' statements for missing 'ConfigureAwait(false)' calls.", + "markdown": "It is recommended to use 'ConfigureAwait(false)' in your library code to prevent context capture in task continuations. This inspection is controlled by the 'ConfigureAwait analysis mode' project level property, which is set to 'Disabled' by default. Set 'ConfigureAwait analysis mode' project level property to 'Library' to analyze 'await using' statements for missing 'ConfigureAwait(false)' calls." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "UseConfigureAwaitFalseForAsyncDisposable", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyCppcoreguidelinesProTypeReinterpretCast", + "shortDescription": { + "text": "cppcoreguidelines-pro-type-reinterpret-cast clang-tidy check" + }, + "fullDescription": { + "text": "cppcoreguidelines-pro-type-reinterpret-cast clang-tidy check · Learn more", + "markdown": "cppcoreguidelines-pro-type-reinterpret-cast clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/pro-type-reinterpret-cast.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyCppcoreguidelinesProTypeReinterpretCast", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticEnumConversion", + "shortDescription": { + "text": "enum-conversion clang diagnostic" + }, + "fullDescription": { + "text": "-Wenum-conversion clang diagnostic · Learn more", + "markdown": "-Wenum-conversion clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wenum-conversion)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticEnumConversion", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticCompareDistinctPointerTypes", + "shortDescription": { + "text": "compare-distinct-pointer-types clang diagnostic" + }, + "fullDescription": { + "text": "-Wcompare-distinct-pointer-types clang diagnostic · Learn more", + "markdown": "-Wcompare-distinct-pointer-types clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wcompare-distinct-pointer-types)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticCompareDistinctPointerTypes", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppAssignedValueIsNeverUsed", + "shortDescription": { + "text": "Assigned value is never used" + }, + "fullDescription": { + "text": "Assigned value is never used", + "markdown": "Assigned value is never used" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppAssignedValueIsNeverUsed", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Potential Code Quality Issues", + "index": 9, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppCVQualifierCanNotBeAppliedToReference", + "shortDescription": { + "text": "Adding cv-qualifiers to references has no effect" + }, + "fullDescription": { + "text": "Adding cv-qualifiers to references has no effect", + "markdown": "Adding cv-qualifiers to references has no effect" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppCVQualifierCanNotBeAppliedToReference", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Potential Code Quality Issues", + "index": 9, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppBoundToDelegateMethodIsNotMarkedAsUFunction", + "shortDescription": { + "text": "Method bound to delegate is not marked with UFUNCTION macro" + }, + "fullDescription": { + "text": "Method bound to delegate must be marked with UFUNCTION macro", + "markdown": "Method bound to delegate must be marked with UFUNCTION macro" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppBoundToDelegateMethodIsNotMarkedAsUFunction", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Unreal Engine", + "index": 6, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyBugproneEmptyCatch", + "shortDescription": { + "text": "bugprone-empty-catch clang-tidy check" + }, + "fullDescription": { + "text": "bugprone-empty-catch clang-tidy check · Learn more", + "markdown": "bugprone-empty-catch clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/empty-catch.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyBugproneEmptyCatch", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticPreOpenmp51Compat", + "shortDescription": { + "text": "pre-openmp-51-compat clang diagnostic" + }, + "fullDescription": { + "text": "-Wpre-openmp-51-compat clang diagnostic · Learn more", + "markdown": "-Wpre-openmp-51-compat clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpre-openmp-51-compat)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticPreOpenmp51Compat", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticIncompatiblePointerTypes", + "shortDescription": { + "text": "incompatible-pointer-types clang diagnostic" + }, + "fullDescription": { + "text": "-Wincompatible-pointer-types clang diagnostic · Learn more", + "markdown": "-Wincompatible-pointer-types clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wincompatible-pointer-types)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticIncompatiblePointerTypes", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticInitializerOverrides", + "shortDescription": { + "text": "initializer-overrides clang diagnostic" + }, + "fullDescription": { + "text": "-Winitializer-overrides clang diagnostic · Learn more", + "markdown": "-Winitializer-overrides clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#winitializer-overrides)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticInitializerOverrides", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticStdlibcxxNotFound", + "shortDescription": { + "text": "stdlibcxx-not-found clang diagnostic" + }, + "fullDescription": { + "text": "-Wstdlibcxx-not-found clang diagnostic · Learn more", + "markdown": "-Wstdlibcxx-not-found clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wstdlibcxx-not-found)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticStdlibcxxNotFound", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticTautologicalUnsignedEnumZeroCompare", + "shortDescription": { + "text": "tautological-unsigned-enum-zero-compare clang diagnostic" + }, + "fullDescription": { + "text": "-Wtautological-unsigned-enum-zero-compare clang diagnostic · Learn more", + "markdown": "-Wtautological-unsigned-enum-zero-compare clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wtautological-unsigned-enum-zero-compare)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticTautologicalUnsignedEnumZeroCompare", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClassNeedsConstructorBecauseOfUninitializedMember", + "shortDescription": { + "text": "Class should have a user-defined constructor because of an uninitialized data member" + }, + "fullDescription": { + "text": "Class should have a user-defined constructor because of an uninitialized data member", + "markdown": "Class should have a user-defined constructor because of an uninitialized data member" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClassNeedsConstructorBecauseOfUninitializedMember", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Potential Code Quality Issues", + "index": 9, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticTargetClonesMixedSpecifiers", + "shortDescription": { + "text": "target-clones-mixed-specifiers clang diagnostic" + }, + "fullDescription": { + "text": "-Wtarget-clones-mixed-specifiers clang diagnostic · Learn more", + "markdown": "-Wtarget-clones-mixed-specifiers clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wtarget-clones-mixed-specifiers)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticTargetClonesMixedSpecifiers", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticMicrosoftExists", + "shortDescription": { + "text": "microsoft-exists clang diagnostic" + }, + "fullDescription": { + "text": "-Wmicrosoft-exists clang diagnostic · Learn more", + "markdown": "-Wmicrosoft-exists clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-exists)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftExists", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyAndroidCloexecAccept", + "shortDescription": { + "text": "android-cloexec-accept clang-tidy check" + }, + "fullDescription": { + "text": "android-cloexec-accept clang-tidy check · Learn more", + "markdown": "android-cloexec-accept clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-accept.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyAndroidCloexecAccept", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CoVariantArrayConversion", + "shortDescription": { + "text": "Co-variant array conversion" + }, + "fullDescription": { + "text": "Co-variant conversion of array could cause run-time exceptions Learn more...", + "markdown": "Co-variant conversion of array could cause run-time exceptions [Learn more...](https://www.jetbrains.com/help/rider/CoVariantArrayConversion.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CoVariantArrayConversion", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MemberCanBeMadeStatic.Global", + "shortDescription": { + "text": "Member can be made static (shared) (non-private accessibility)" + }, + "fullDescription": { + "text": "A non-virtual instance member does not use 'this' object (neither implicitly nor explicitly) and can be made static (shared) Learn more...", + "markdown": "A non-virtual instance member does not use 'this' object (neither implicitly nor explicitly) and can be made static (shared) [Learn more...](https://www.jetbrains.com/help/rider/MemberCanBeMadeStatic.Global.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "MemberCanBeMadeStatic.Global", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 14, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppUseElementsView", + "shortDescription": { + "text": "std::views::keys/values can be used" + }, + "fullDescription": { + "text": "For example, when iterating on key-value pairs, std::views::keys allows ignoring the values.", + "markdown": "For example, when iterating on key-value pairs, std::views::keys allows ignoring the values." + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "CppUseElementsView", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Common Practices and Code Improvements", + "index": 17, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Unity.Entities.SingletonMustBeRequested", + "shortDescription": { + "text": "To use the result of a 'GetSingleton<{0}>' call in the function, 'OnCreate' must include a 'RequireForUpdate' call" + }, + "fullDescription": { + "text": "To use the result of a 'GetSingleton<{0}>' call in the function, 'OnCreate' must include a 'RequireForUpdate' call", + "markdown": "To use the result of a 'GetSingleton\\<{0}\\>' call in the function, 'OnCreate' must include a 'RequireForUpdate' call" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "Unity.Entities.SingletonMustBeRequested", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Unity", + "index": 19, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CollectionNeverUpdated.Global", + "shortDescription": { + "text": "Collection is never updated (non-private accessibility)" + }, + "fullDescription": { + "text": "New elements are never added to the collection Learn more...", + "markdown": "New elements are never added to the collection [Learn more...](https://www.jetbrains.com/help/rider/CollectionNeverUpdated.Global.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CollectionNeverUpdated.Global", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticCpp98Cpp11CompatPedantic", + "shortDescription": { + "text": "c++98-c++11-compat-pedantic clang diagnostic" + }, + "fullDescription": { + "text": "-Wc++98-c++11-compat-pedantic clang diagnostic · Learn more", + "markdown": "-Wc++98-c++11-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-98-c-11-compat-pedantic)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticCpp98Cpp11CompatPedantic", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticIgnoredPragmaIntrinsic", + "shortDescription": { + "text": "ignored-pragma-intrinsic clang diagnostic" + }, + "fullDescription": { + "text": "-Wignored-pragma-intrinsic clang diagnostic · Learn more", + "markdown": "-Wignored-pragma-intrinsic clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wignored-pragma-intrinsic)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticIgnoredPragmaIntrinsic", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ArrangeModifiersOrder", + "shortDescription": { + "text": "Adjust modifiers declaration order" + }, + "fullDescription": { + "text": "The order of declaration modifiers does not match code style settings Learn more...", + "markdown": "The order of declaration modifiers does not match code style settings [Learn more...](https://www.jetbrains.com/help/rider/ArrangeModifiersOrder.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "ArrangeModifiersOrder", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Syntax Style", + "index": 21, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Unity.UnknownLayer", + "shortDescription": { + "text": "The layer is not defined in the 'Tags & Layers'" + }, + "fullDescription": { + "text": "The layer is not defined in the 'Tags & Layers'. The call is likely to fail at runtime.", + "markdown": "The layer is not defined in the 'Tags \\& Layers'. The call is likely to fail at runtime." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "Unity.UnknownLayer", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Unity", + "index": 19, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RedundantDelegateCreation", + "shortDescription": { + "text": "Explicit delegate creation expression is redundant" + }, + "fullDescription": { + "text": "Explicit delegate creation expression is redundant Learn more...", + "markdown": "Explicit delegate creation expression is redundant [Learn more...](https://www.jetbrains.com/help/rider/RedundantDelegateCreation.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "RedundantDelegateCreation", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Redundancies in Code", + "index": 23, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "BadSemicolonSpaces", + "shortDescription": { + "text": "Incorrect spacing (around semicolon)" + }, + "fullDescription": { + "text": "Around semicolon Learn more...", + "markdown": "Around semicolon [Learn more...](https://www.jetbrains.com/help/rider/BadSemicolonSpaces.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "BadSemicolonSpaces", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Formatting", + "index": 24, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticVarargs", + "shortDescription": { + "text": "varargs clang diagnostic" + }, + "fullDescription": { + "text": "-Wvarargs clang diagnostic · Learn more", + "markdown": "-Wvarargs clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wvarargs)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticVarargs", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Unity.IncorrectScriptableObjectInstantiation", + "shortDescription": { + "text": "'ScriptableObject' instances must be instantiated with 'ScriptableObject.CreateInstance()' instead of 'new'" + }, + "fullDescription": { + "text": "Using 'new' to instantiate a class derived from 'ScriptableObject' means that Unity will not call any event functions. Create a new instance using 'GameObject.AddComponent()'. Learn more...", + "markdown": "Using 'new' to instantiate a class derived from 'ScriptableObject' means that Unity will not call any event functions. Create a new instance using 'GameObject.AddComponent()'. [Learn more...](https://github.com/JetBrains/resharper-unity/wiki/ScriptableObjects-must-be-instantiated-with-ScriptableObject.CreateInstance-instead-of-new)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "Unity.IncorrectScriptableObjectInstantiation", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Unity", + "index": 19, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppFunctionDoesntReturnValue", + "shortDescription": { + "text": "No return statement in a function or a lambda returning non-void" + }, + "fullDescription": { + "text": "No return statement in a function or a lambda with non-void return type", + "markdown": "No return statement in a function or a lambda with non-void return type" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppFunctionDoesntReturnValue", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Potential Code Quality Issues", + "index": 9, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticPointerArith", + "shortDescription": { + "text": "pointer-arith clang diagnostic" + }, + "fullDescription": { + "text": "-Wpointer-arith clang diagnostic · Learn more", + "markdown": "-Wpointer-arith clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpointer-arith)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticPointerArith", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticMaxUnsignedZero", + "shortDescription": { + "text": "max-unsigned-zero clang diagnostic" + }, + "fullDescription": { + "text": "-Wmax-unsigned-zero clang diagnostic · Learn more", + "markdown": "-Wmax-unsigned-zero clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmax-unsigned-zero)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticMaxUnsignedZero", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyModernizeReplaceRandomShuffle", + "shortDescription": { + "text": "modernize-replace-random-shuffle clang-tidy check" + }, + "fullDescription": { + "text": "modernize-replace-random-shuffle clang-tidy check · Learn more", + "markdown": "modernize-replace-random-shuffle clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/replace-random-shuffle.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyModernizeReplaceRandomShuffle", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticSpirvCompat", + "shortDescription": { + "text": "spirv-compat clang diagnostic" + }, + "fullDescription": { + "text": "-Wspirv-compat clang diagnostic · Learn more", + "markdown": "-Wspirv-compat clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wspirv-compat)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticSpirvCompat", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CompareNonConstrainedGenericWithNull", + "shortDescription": { + "text": "Possible comparison of value type with 'null'" + }, + "fullDescription": { + "text": "Generic type has no value or class constraint, the condition could be always 'false' Learn more...", + "markdown": "Generic type has no value or class constraint, the condition could be always 'false' [Learn more...](https://www.jetbrains.com/help/rider/CompareNonConstrainedGenericWithNull.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CompareNonConstrainedGenericWithNull", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "NUnit.ImplicitUnspecifiedNullValues", + "shortDescription": { + "text": "NUnit. Implicitly unspecified null values." + }, + "fullDescription": { + "text": "NUnit. No enough values are provided in the Values attribute so NUnit implicitly adds 'null' values to fill test data. Learn more...", + "markdown": "NUnit. No enough values are provided in the Values attribute so NUnit implicitly adds 'null' values to fill test data. [Learn more...](https://www.jetbrains.com/help/rider/NUnit.ImplicitUnspecifiedNullValues.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "NUnit.ImplicitUnspecifiedNullValues", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/NUnit", + "index": 26, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppFunctionResultShouldBeUsed", + "shortDescription": { + "text": "Function result should be used" + }, + "fullDescription": { + "text": "Function returns a value of a type that should be handled at the call site", + "markdown": "Function returns a value of a type that should be handled at the call site" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "CppFunctionResultShouldBeUsed", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Potential Code Quality Issues", + "index": 9, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CSharpWarnings__CS4014", + "shortDescription": { + "text": "Async method invocation without await expression" + }, + "fullDescription": { + "text": "Learn more...", + "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/hh873131.aspx)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CSharpWarnings__CS4014", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Compiler Warnings", + "index": 27, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppDoxygenUndocumentedParameter", + "shortDescription": { + "text": "Missing function parameter description in a documentation comment" + }, + "fullDescription": { + "text": "Missing function parameter description in a documentation comment", + "markdown": "Missing function parameter description in a documentation comment" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "CppDoxygenUndocumentedParameter", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Potential Code Quality Issues", + "index": 9, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppBadSwitchBracesIndent", + "shortDescription": { + "text": "Incorrect indent (around switch statement)" + }, + "fullDescription": { + "text": "Around switch statement", + "markdown": "Around switch statement" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppBadSwitchBracesIndent", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Formatting", + "index": 28, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticImplicitConstIntFloatConversion", + "shortDescription": { + "text": "implicit-const-int-float-conversion clang diagnostic" + }, + "fullDescription": { + "text": "-Wimplicit-const-int-float-conversion clang diagnostic · Learn more", + "markdown": "-Wimplicit-const-int-float-conversion clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wimplicit-const-int-float-conversion)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticImplicitConstIntFloatConversion", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyGoogleExplicitConstructor", + "shortDescription": { + "text": "google-explicit-constructor clang-tidy check" + }, + "fullDescription": { + "text": "google-explicit-constructor clang-tidy check · Learn more", + "markdown": "google-explicit-constructor clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/google/explicit-constructor.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyGoogleExplicitConstructor", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticShadowUncapturedLocal", + "shortDescription": { + "text": "shadow-uncaptured-local clang diagnostic" + }, + "fullDescription": { + "text": "-Wshadow-uncaptured-local clang diagnostic · Learn more", + "markdown": "-Wshadow-uncaptured-local clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wshadow-uncaptured-local)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticShadowUncapturedLocal", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UseIsOperator.1", + "shortDescription": { + "text": "Use 'is' operator" + }, + "fullDescription": { + "text": "typeof($T$).IsAssignableFrom($expr$.GetType())", + "markdown": "typeof($T$).IsAssignableFrom($expr$.GetType())" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "UseIsOperator.1", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 14, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UseIsOperator.2", + "shortDescription": { + "text": "Use 'is' operator" + }, + "fullDescription": { + "text": "typeof($T$).IsInstanceOfType($expr$)", + "markdown": "typeof($T$).IsInstanceOfType($expr$)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "UseIsOperator.2", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 14, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangAnalyzerCplusplusSmartPtrModeling", + "shortDescription": { + "text": "cplusplus.SmartPtrModeling clang static analyzer check" + }, + "fullDescription": { + "text": "cplusplus.SmartPtrModeling clang static analyzer check · Learn more", + "markdown": "cplusplus.SmartPtrModeling clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangAnalyzerCplusplusSmartPtrModeling", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Static Analyzer Checks", + "index": 32, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticGnuComplexInteger", + "shortDescription": { + "text": "gnu-complex-integer clang diagnostic" + }, + "fullDescription": { + "text": "-Wgnu-complex-integer clang diagnostic · Learn more", + "markdown": "-Wgnu-complex-integer clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wgnu-complex-integer)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticGnuComplexInteger", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ReplaceWithOfType.Single.1", + "shortDescription": { + "text": "Replace with OfType().Single()" + }, + "fullDescription": { + "text": "$seq$.Select($x$ => $x$ as $T$).Single($y$ => $y$ != null)", + "markdown": "$seq$.Select($x$ =\\> $x$ as $T$).Single($y$ =\\> $y$ != null)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "ReplaceWithOfType.Single.1", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 14, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ReplaceWithOfType.Single.2", + "shortDescription": { + "text": "Replace with OfType().Single() (replace with OfType().Single(..))" + }, + "fullDescription": { + "text": "$seq$.Select($x$ => $x$ as $T$).Single($y$ => $y$ != null && $expr$)", + "markdown": "$seq$.Select($x$ =\\> $x$ as $T$).Single($y$ =\\> $y$ != null \\&\\& $expr$)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "ReplaceWithOfType.Single.2", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 14, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyAbseilTimeSubtraction", + "shortDescription": { + "text": "abseil-time-subtraction clang-tidy check" + }, + "fullDescription": { + "text": "abseil-time-subtraction clang-tidy check · Learn more", + "markdown": "abseil-time-subtraction clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/time-subtraction.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyAbseilTimeSubtraction", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticDeallocInCategory", + "shortDescription": { + "text": "dealloc-in-category clang diagnostic" + }, + "fullDescription": { + "text": "-Wdealloc-in-category clang diagnostic · Learn more", + "markdown": "-Wdealloc-in-category clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdealloc-in-category)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticDeallocInCategory", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticCpp20Compat", + "shortDescription": { + "text": "c++20-compat clang diagnostic" + }, + "fullDescription": { + "text": "-Wc++20-compat clang diagnostic · Learn more", + "markdown": "-Wc++20-compat clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-20-compat)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticCpp20Compat", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticDeleteIncomplete", + "shortDescription": { + "text": "delete-incomplete clang diagnostic" + }, + "fullDescription": { + "text": "-Wdelete-incomplete clang diagnostic · Learn more", + "markdown": "-Wdelete-incomplete clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdelete-incomplete)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticDeleteIncomplete", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticThreadSafetyAnalysis", + "shortDescription": { + "text": "thread-safety-analysis clang diagnostic" + }, + "fullDescription": { + "text": "-Wthread-safety-analysis clang diagnostic · Learn more", + "markdown": "-Wthread-safety-analysis clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wthread-safety-analysis)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticThreadSafetyAnalysis", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyMiscNoRecursion", + "shortDescription": { + "text": "misc-no-recursion clang-tidy check" + }, + "fullDescription": { + "text": "misc-no-recursion clang-tidy check · Learn more", + "markdown": "misc-no-recursion clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/misc/no-recursion.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyMiscNoRecursion", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "EventUnsubscriptionViaAnonymousDelegate", + "shortDescription": { + "text": "Event unsubscription via anonymous delegate" + }, + "fullDescription": { + "text": "Event unsubscription via anonymous delegate is meaningless", + "markdown": "Event unsubscription via anonymous delegate is meaningless" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "EventUnsubscriptionViaAnonymousDelegate", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppRedundantConstSpecifier", + "shortDescription": { + "text": "Redundant 'const' specifier" + }, + "fullDescription": { + "text": "The 'const' specifier on a variable definition is redundant", + "markdown": "The 'const' specifier on a variable definition is redundant" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "CppRedundantConstSpecifier", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Redundancies in Code", + "index": 34, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CA3147", + "shortDescription": { + "text": "RoslynAnalyzers Mark Verb Handlers With Validate Antiforgery Token" + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CA3147", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UseNullableAnnotationInsteadOfAttribute", + "shortDescription": { + "text": "Use nullable annotation instead of an attribute" + }, + "fullDescription": { + "text": "An attribute is used to declare the nullability of a type. Nullable reference types' annotations might be used instead.", + "markdown": "An attribute is used to declare the nullability of a type. Nullable reference types' annotations might be used instead." + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "UseNullableAnnotationInsteadOfAttribute", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticCpp14CompatPedantic", + "shortDescription": { + "text": "c++14-compat-pedantic clang diagnostic" + }, + "fullDescription": { + "text": "-Wc++14-compat-pedantic clang diagnostic · Learn more", + "markdown": "-Wc++14-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-14-compat-pedantic)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticCpp14CompatPedantic", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppMissingIncludeGuard", + "shortDescription": { + "text": "Missing include guard" + }, + "fullDescription": { + "text": "Include guard is not found at the beginning of a header file", + "markdown": "Include guard is not found at the beginning of a header file" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppMissingIncludeGuard", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Potential Code Quality Issues", + "index": 9, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UnusedTupleComponentInReturnValue", + "shortDescription": { + "text": "Component of the tuple is never used" + }, + "fullDescription": { + "text": "Component of the tuple is never used", + "markdown": "Component of the tuple is never used" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "UnusedTupleComponentInReturnValue", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Redundancies in Symbol Declarations", + "index": 36, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticMacroRedefined", + "shortDescription": { + "text": "macro-redefined clang diagnostic" + }, + "fullDescription": { + "text": "-Wmacro-redefined clang diagnostic · Learn more", + "markdown": "-Wmacro-redefined clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmacro-redefined)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticMacroRedefined", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticRetainedLanguageLinkage", + "shortDescription": { + "text": "retained-language-linkage clang diagnostic" + }, + "fullDescription": { + "text": "-Wretained-language-linkage clang diagnostic · Learn more", + "markdown": "-Wretained-language-linkage clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wretained-language-linkage)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticRetainedLanguageLinkage", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "EntityFramework.UnsupportedServerSideFunctionCall", + "shortDescription": { + "text": "Function is not convertible to SQL and must not be called in the database context" + }, + "fullDescription": { + "text": "Reports methods that are not convertible to SQL and will produce runtime exceptions when called in database contexts Learn more...", + "markdown": "Reports methods that are not convertible to SQL and will produce runtime exceptions when called in database contexts [Learn more...](https://www.jetbrains.com/help/rider/EntityFramework.UnsupportedServerSideFunctionCall.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "EntityFramework.UnsupportedServerSideFunctionCall", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Entity Framework", + "index": 37, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticKeywordMacro", + "shortDescription": { + "text": "keyword-macro clang diagnostic" + }, + "fullDescription": { + "text": "-Wkeyword-macro clang diagnostic · Learn more", + "markdown": "-Wkeyword-macro clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wkeyword-macro)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticKeywordMacro", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyReadabilityUseAnyofallof", + "shortDescription": { + "text": "readability-use-anyofallof clang-tidy check" + }, + "fullDescription": { + "text": "readability-use-anyofallof clang-tidy check · Learn more", + "markdown": "readability-use-anyofallof clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/use-anyofallof.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyReadabilityUseAnyofallof", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticReadonlyIboutletProperty", + "shortDescription": { + "text": "readonly-iboutlet-property clang diagnostic" + }, + "fullDescription": { + "text": "-Wreadonly-iboutlet-property clang diagnostic · Learn more", + "markdown": "-Wreadonly-iboutlet-property clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wreadonly-iboutlet-property)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticReadonlyIboutletProperty", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CA1311", + "shortDescription": { + "text": "RoslynAnalyzers Specify a culture or use an invariant version" + }, + "fullDescription": { + "text": "Specify culture to help avoid accidental implicit dependency on current culture. Using an invariant version yields consistent results regardless of the culture of an application.", + "markdown": "Specify culture to help avoid accidental implicit dependency on current culture. Using an invariant version yields consistent results regardless of the culture of an application." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CA1311", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CA1310", + "shortDescription": { + "text": "RoslynAnalyzers Specify StringComparison for correctness" + }, + "fullDescription": { + "text": "A string comparison operation uses a method overload that does not set a StringComparison parameter, hence its behavior could vary based on the current user's locale settings. It is strongly recommended to use the overload with StringComparison parameter for correctness and clarity of intent. If the result will be displayed to the user, such as when sorting a list of items for display in a list box, specify 'StringComparison.CurrentCulture' or 'StringComparison.CurrentCultureIgnoreCase' as the 'StringComparison' parameter. If comparing case-insensitive identifiers, such as file paths, environment variables, or registry keys and values, specify 'StringComparison.OrdinalIgnoreCase'. Otherwise, if comparing case-sensitive identifiers, specify 'StringComparison.Ordinal'.", + "markdown": "A string comparison operation uses a method overload that does not set a StringComparison parameter, hence its behavior could vary based on the current user's locale settings. It is strongly recommended to use the overload with StringComparison parameter for correctness and clarity of intent. If the result will be displayed to the user, such as when sorting a list of items for display in a list box, specify 'StringComparison.CurrentCulture' or 'StringComparison.CurrentCultureIgnoreCase' as the 'StringComparison' parameter. If comparing case-insensitive identifiers, such as file paths, environment variables, or registry keys and values, specify 'StringComparison.OrdinalIgnoreCase'. Otherwise, if comparing case-sensitive identifiers, specify 'StringComparison.Ordinal'." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CA1310", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticGccCompat", + "shortDescription": { + "text": "gcc-compat clang diagnostic" + }, + "fullDescription": { + "text": "-Wgcc-compat clang diagnostic · Learn more", + "markdown": "-Wgcc-compat clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wgcc-compat)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticGccCompat", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppDeprecatedRegisterStorageClassSpecifier", + "shortDescription": { + "text": "Deprecated 'register' storage class specifier" + }, + "fullDescription": { + "text": "The 'register' storage class specifier is deprecated in C++11 and removed in C++17", + "markdown": "The 'register' storage class specifier is deprecated in C++11 and removed in C++17" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppDeprecatedRegisterStorageClassSpecifier", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Potential Code Quality Issues", + "index": 9, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticMemsizeComparison", + "shortDescription": { + "text": "memsize-comparison clang diagnostic" + }, + "fullDescription": { + "text": "-Wmemsize-comparison clang diagnostic · Learn more", + "markdown": "-Wmemsize-comparison clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmemsize-comparison)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticMemsizeComparison", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UseNegatedPatternInIsExpression", + "shortDescription": { + "text": "Convert negated 'is' expression into 'is' expression with negated pattern" + }, + "fullDescription": { + "text": "Replace unary negation operator '!' before 'is' expression with C# 9.0 negated pattern", + "markdown": "Replace unary negation operator '!' before 'is' expression with C# 9.0 negated pattern" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "UseNegatedPatternInIsExpression", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Language Usage Opportunities", + "index": 7, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyHicppAvoidCArrays", + "shortDescription": { + "text": "hicpp-avoid-c-arrays clang-tidy check" + }, + "fullDescription": { + "text": "hicpp-avoid-c-arrays clang-tidy check · Learn more", + "markdown": "hicpp-avoid-c-arrays clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/avoid-c-arrays.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyHicppAvoidCArrays", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "VBReplaceWithSingleCallToLast", + "shortDescription": { + "text": "Replace with single call to Last(..)" + }, + "fullDescription": { + "text": "$seq$.Where(Function ($x$) $expr$).Last()", + "markdown": "$seq$.Where(Function ($x$) $expr$).Last()" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "VBReplaceWithSingleCallToLast", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "VB.NET/Common Practices and Code Improvements", + "index": 40, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyCppcoreguidelinesNoexceptMoveOperations", + "shortDescription": { + "text": "cppcoreguidelines-noexcept-move-operations clang-tidy check" + }, + "fullDescription": { + "text": "cppcoreguidelines-noexcept-move-operations clang-tidy check · Learn more", + "markdown": "cppcoreguidelines-noexcept-move-operations clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/noexcept-move-operations.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyCppcoreguidelinesNoexceptMoveOperations", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Blazor.EditorRequired", + "shortDescription": { + "text": "Missed value for required attribute" + }, + "fullDescription": { + "text": "Missed value for required attribute", + "markdown": "Missed value for required attribute" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "Blazor.EditorRequired", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "Blazor/Potential Code Quality Issues", + "index": 42, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticBackslashNewlineEscape", + "shortDescription": { + "text": "backslash-newline-escape clang diagnostic" + }, + "fullDescription": { + "text": "-Wbackslash-newline-escape clang diagnostic · Learn more", + "markdown": "-Wbackslash-newline-escape clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wbackslash-newline-escape)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticBackslashNewlineEscape", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CA1309", + "shortDescription": { + "text": "RoslynAnalyzers Use ordinal string comparison" + }, + "fullDescription": { + "text": "A string comparison operation that is nonlinguistic does not set the StringComparison parameter to either Ordinal or OrdinalIgnoreCase. By explicitly setting the parameter to either StringComparison.Ordinal or StringComparison.OrdinalIgnoreCase, your code often gains speed, becomes more correct, and becomes more reliable.", + "markdown": "A string comparison operation that is nonlinguistic does not set the StringComparison parameter to either Ordinal or OrdinalIgnoreCase. By explicitly setting the parameter to either StringComparison.Ordinal or StringComparison.OrdinalIgnoreCase, your code often gains speed, becomes more correct, and becomes more reliable." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CA1309", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CA1308", + "shortDescription": { + "text": "RoslynAnalyzers Normalize strings to uppercase" + }, + "fullDescription": { + "text": "Strings should be normalized to uppercase. A small group of characters cannot make a round trip when they are converted to lowercase. To make a round trip means to convert the characters from one locale to another locale that represents character data differently, and then to accurately retrieve the original characters from the converted characters.", + "markdown": "Strings should be normalized to uppercase. A small group of characters cannot make a round trip when they are converted to lowercase. To make a round trip means to convert the characters from one locale to another locale that represents character data differently, and then to accurately retrieve the original characters from the converted characters." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CA1308", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CA1307", + "shortDescription": { + "text": "RoslynAnalyzers Specify StringComparison for clarity" + }, + "fullDescription": { + "text": "A string comparison operation uses a method overload that does not set a StringComparison parameter. It is recommended to use the overload with StringComparison parameter for clarity of intent. If the result will be displayed to the user, such as when sorting a list of items for display in a list box, specify 'StringComparison.CurrentCulture' or 'StringComparison.CurrentCultureIgnoreCase' as the 'StringComparison' parameter. If comparing case-insensitive identifiers, such as file paths, environment variables, or registry keys and values, specify 'StringComparison.OrdinalIgnoreCase'. Otherwise, if comparing case-sensitive identifiers, specify 'StringComparison.Ordinal'.", + "markdown": "A string comparison operation uses a method overload that does not set a StringComparison parameter. It is recommended to use the overload with StringComparison parameter for clarity of intent. If the result will be displayed to the user, such as when sorting a list of items for display in a list box, specify 'StringComparison.CurrentCulture' or 'StringComparison.CurrentCultureIgnoreCase' as the 'StringComparison' parameter. If comparing case-insensitive identifiers, such as file paths, environment variables, or registry keys and values, specify 'StringComparison.OrdinalIgnoreCase'. Otherwise, if comparing case-sensitive identifiers, specify 'StringComparison.Ordinal'." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CA1307", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyBugproneSizeofExpression", + "shortDescription": { + "text": "bugprone-sizeof-expression clang-tidy check" + }, + "fullDescription": { + "text": "bugprone-sizeof-expression clang-tidy check · Learn more", + "markdown": "bugprone-sizeof-expression clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/sizeof-expression.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyBugproneSizeofExpression", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CA1305", + "shortDescription": { + "text": "RoslynAnalyzers Specify IFormatProvider" + }, + "fullDescription": { + "text": "A method or constructor calls one or more members that have overloads that accept a System.IFormatProvider parameter, and the method or constructor does not call the overload that takes the IFormatProvider parameter. When a System.Globalization.CultureInfo or IFormatProvider object is not supplied, the default value that is supplied by the overloaded member might not have the effect that you want in all locales. If the result will be based on the input from/output displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider'. Otherwise, if the result will be stored and accessed by software, such as when it is loaded from disk/database and when it is persisted to disk/database, specify 'CultureInfo.InvariantCulture'.", + "markdown": "A method or constructor calls one or more members that have overloads that accept a System.IFormatProvider parameter, and the method or constructor does not call the overload that takes the IFormatProvider parameter. When a System.Globalization.CultureInfo or IFormatProvider object is not supplied, the default value that is supplied by the overloaded member might not have the effect that you want in all locales. If the result will be based on the input from/output displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider'. Otherwise, if the result will be stored and accessed by software, such as when it is loaded from disk/database and when it is persisted to disk/database, specify 'CultureInfo.InvariantCulture'." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CA1305", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CA1304", + "shortDescription": { + "text": "RoslynAnalyzers Specify CultureInfo" + }, + "fullDescription": { + "text": "A method or constructor calls a member that has an overload that accepts a System.Globalization.CultureInfo parameter, and the method or constructor does not call the overload that takes the CultureInfo parameter. When a CultureInfo or System.IFormatProvider object is not supplied, the default value that is supplied by the overloaded member might not have the effect that you want in all locales. If the result will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'CultureInfo' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", + "markdown": "A method or constructor calls a member that has an overload that accepts a System.Globalization.CultureInfo parameter, and the method or constructor does not call the overload that takes the CultureInfo parameter. When a CultureInfo or System.IFormatProvider object is not supplied, the default value that is supplied by the overloaded member might not have the effect that you want in all locales. If the result will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'CultureInfo' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CA1304", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CA1303", + "shortDescription": { + "text": "RoslynAnalyzers Do not pass literals as localized parameters" + }, + "fullDescription": { + "text": "A method passes a string literal as a parameter to a constructor or method in the .NET Framework class library and that string should be localizable. To fix a violation of this rule, replace the string literal with a string retrieved through an instance of the ResourceManager class.", + "markdown": "A method passes a string literal as a parameter to a constructor or method in the .NET Framework class library and that string should be localizable. To fix a violation of this rule, replace the string literal with a string retrieved through an instance of the ResourceManager class." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CA1303", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "NUnit.TestCaseSourceShouldImplementIEnumerable", + "shortDescription": { + "text": "NUnit. Test case source must be non-abstract and implement IEnumerable." + }, + "fullDescription": { + "text": "NUnit. Test case source must refer to non-abstract class implementing IEnumerable. Learn more...", + "markdown": "NUnit. Test case source must refer to non-abstract class implementing IEnumerable. [Learn more...](https://www.jetbrains.com/help/rider/NUnit.TestCaseSourceShouldImplementIEnumerable.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "NUnit.TestCaseSourceShouldImplementIEnumerable", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/NUnit", + "index": 26, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CollectionNeverUpdated.Local", + "shortDescription": { + "text": "Collection is never updated (private accessibility)" + }, + "fullDescription": { + "text": "New elements are never added to the collection Learn more...", + "markdown": "New elements are never added to the collection [Learn more...](https://www.jetbrains.com/help/rider/CollectionNeverUpdated.Local.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CollectionNeverUpdated.Local", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0019", + "shortDescription": { + "text": "RoslynAnalyzers Updating the alias of Declare statement requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0019", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0018", + "shortDescription": { + "text": "RoslynAnalyzers Updating the library name of Declare statement requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0018", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0026", + "shortDescription": { + "text": "RoslynAnalyzers Adding a user defined {0} requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0026", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticOpenmp51Extensions", + "shortDescription": { + "text": "openmp-51-extensions clang diagnostic" + }, + "fullDescription": { + "text": "-Wopenmp-51-extensions clang diagnostic · Learn more", + "markdown": "-Wopenmp-51-extensions clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wopenmp-51-extensions)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticOpenmp51Extensions", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppBadColonSpaces", + "shortDescription": { + "text": "Incorrect spacing (around colon)" + }, + "fullDescription": { + "text": "Around colon", + "markdown": "Around colon" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppBadColonSpaces", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Formatting", + "index": 28, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0024", + "shortDescription": { + "text": "RoslynAnalyzers Adding a MustOverride {0} or overriding an inherited {0} requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0024", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0025", + "shortDescription": { + "text": "RoslynAnalyzers Adding an extern {0} requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0025", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0023", + "shortDescription": { + "text": "RoslynAnalyzers Adding an abstract {0} or overriding an inherited {0} requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0023", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0020", + "shortDescription": { + "text": "RoslynAnalyzers Renaming {0} requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0020", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MergeNestedPropertyPatterns", + "shortDescription": { + "text": "Merge nested property patterns" + }, + "fullDescription": { + "text": "Simplify nested member access in a pattern by using the C# 10 extended property patterns syntax Learn more...", + "markdown": "Simplify nested member access in a pattern by using the C# 10 extended property patterns syntax [Learn more...](https://www.jetbrains.com/help/rider/MergeNestedPropertyPatterns.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "MergeNestedPropertyPatterns", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Language Usage Opportunities", + "index": 7, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0021", + "shortDescription": { + "text": "RoslynAnalyzers Adding {0} requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0021", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticStrictPrototypes", + "shortDescription": { + "text": "strict-prototypes clang diagnostic" + }, + "fullDescription": { + "text": "-Wstrict-prototypes clang diagnostic · Learn more", + "markdown": "-Wstrict-prototypes clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wstrict-prototypes)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticStrictPrototypes", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Xaml.XKeyAttributeDisallowed", + "shortDescription": { + "text": "x:Key is allowed for resources and dictionary elements only" + }, + "fullDescription": { + "text": "x:Key is allowed for resources and dictionary elements only", + "markdown": "x:Key is allowed for resources and dictionary elements only" + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "Xaml.XKeyAttributeDisallowed", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "XAML/Potential Code Quality Issues", + "index": 44, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "PatternIsRedundant", + "shortDescription": { + "text": "The pattern is redundant, it does not produce any runtime checks" + }, + "fullDescription": { + "text": "The pattern is redundant because it does not produce any actual checks at runtime. This usually indicates an error in the pattern matching condition. Learn more...", + "markdown": "The pattern is redundant because it does not produce any actual checks at runtime. This usually indicates an error in the pattern matching condition. [Learn more...](https://www.jetbrains.com/help/rider/PatternIsRedundant.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "PatternIsRedundant", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyCppcoreguidelinesMissingStdForward", + "shortDescription": { + "text": "cppcoreguidelines-missing-std-forward clang-tidy check" + }, + "fullDescription": { + "text": "cppcoreguidelines-missing-std-forward clang-tidy check · Learn more", + "markdown": "cppcoreguidelines-missing-std-forward clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/missing-std-forward.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyCppcoreguidelinesMissingStdForward", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JoinNullCheckWithUsage", + "shortDescription": { + "text": "Join null check with assignment" + }, + "fullDescription": { + "text": "Replaces if statement with code using ?? operator and throw expression Learn more...", + "markdown": "Replaces if statement with code using ?? operator and throw expression [Learn more...](https://www.jetbrains.com/help/rider/JoinNullCheckWithUsage.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "JoinNullCheckWithUsage", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Language Usage Opportunities", + "index": 7, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticSingleBitBitfieldConstantConversion", + "shortDescription": { + "text": "single-bit-bitfield-constant-conversion clang diagnostic" + }, + "fullDescription": { + "text": "-Wsingle-bit-bitfield-constant-conversion clang diagnostic · Learn more", + "markdown": "-Wsingle-bit-bitfield-constant-conversion clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wsingle-bit-bitfield-constant-conversion)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticSingleBitBitfieldConstantConversion", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticReceiverExpr", + "shortDescription": { + "text": "receiver-expr clang diagnostic" + }, + "fullDescription": { + "text": "-Wreceiver-expr clang diagnostic · Learn more", + "markdown": "-Wreceiver-expr clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wreceiver-expr)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticReceiverExpr", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0008", + "shortDescription": { + "text": "RoslynAnalyzers Changing a field to an event or vice versa requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0008", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CSharpWarnings__CS1574,CS1584,CS1581,CS1580", + "shortDescription": { + "text": "Cannot resolve reference in XML comment" + }, + "fullDescription": { + "text": "Learn more...", + "markdown": "[Learn more...](https://www.jetbrains.com/help/rider/CSharpWarnings_CS1574_CS1584_CS1581_CS1580.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CSharpWarnings__CS1574,CS1584,CS1581,CS1580", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Compiler Warnings", + "index": 27, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Unity.LoadSceneUnexistingScene", + "shortDescription": { + "text": "Scene does not exist" + }, + "fullDescription": { + "text": "There is no scene with the same name in the project.", + "markdown": "There is no scene with the same name in the project." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "Unity.LoadSceneUnexistingScene", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Unity", + "index": 19, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0009", + "shortDescription": { + "text": "RoslynAnalyzers Updating the type of {0} requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0009", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0006", + "shortDescription": { + "text": "RoslynAnalyzers Updating the Implements clause of a {0} requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0006", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0007", + "shortDescription": { + "text": "RoslynAnalyzers Updating the variance of {0} requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0007", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0015", + "shortDescription": { + "text": "RoslynAnalyzers Updating the kind of a type requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0015", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0016", + "shortDescription": { + "text": "RoslynAnalyzers Updating the kind of a property/event accessor requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0016", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CSharpWarnings__CS8425", + "shortDescription": { + "text": "Async-iterator has one or more parameters of type 'CancellationToken' but none of them is annotated with the 'EnumeratorCancellation' attribute." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CSharpWarnings__CS8425", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Compiler Warnings", + "index": 27, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0013", + "shortDescription": { + "text": "RoslynAnalyzers Updating the underlying type of {0} requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0013", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CSharpWarnings__CS8424", + "shortDescription": { + "text": "The 'EnumeratorCancellation' attribute is only effective on a parameter of type 'CancellationToken' in an async-iterator method returning 'IAsyncEnumerable<>'." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CSharpWarnings__CS8424", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Compiler Warnings", + "index": 27, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0014", + "shortDescription": { + "text": "RoslynAnalyzers Updating the base class and/or base interface(s) of {0} requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0014", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0011", + "shortDescription": { + "text": "RoslynAnalyzers Updating the initializer of {0} requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0011", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0012", + "shortDescription": { + "text": "RoslynAnalyzers Updating the size of a {0} requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0012", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticUnsafeBufferUsage", + "shortDescription": { + "text": "unsafe-buffer-usage clang diagnostic" + }, + "fullDescription": { + "text": "-Wunsafe-buffer-usage clang diagnostic · Learn more", + "markdown": "-Wunsafe-buffer-usage clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunsafe-buffer-usage)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticUnsafeBufferUsage", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppDeletingVoidPointer", + "shortDescription": { + "text": "Deleting a void pointer" + }, + "fullDescription": { + "text": "Deleting a void pointer is undefined behavior", + "markdown": "Deleting a void pointer is undefined behavior" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppDeletingVoidPointer", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Potential Code Quality Issues", + "index": 9, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticStrictSelectorMatch", + "shortDescription": { + "text": "strict-selector-match clang diagnostic" + }, + "fullDescription": { + "text": "-Wstrict-selector-match clang diagnostic · Learn more", + "markdown": "-Wstrict-selector-match clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wstrict-selector-match)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticStrictSelectorMatch", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticNullableToNonnullConversion", + "shortDescription": { + "text": "nullable-to-nonnull-conversion clang diagnostic" + }, + "fullDescription": { + "text": "-Wnullable-to-nonnull-conversion clang diagnostic · Learn more", + "markdown": "-Wnullable-to-nonnull-conversion clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wnullable-to-nonnull-conversion)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticNullableToNonnullConversion", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0004", + "shortDescription": { + "text": "RoslynAnalyzers Updating the modifiers of {0} requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0004", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0005", + "shortDescription": { + "text": "RoslynAnalyzers Updating the Handles clause of {0} requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0005", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0002", + "shortDescription": { + "text": "RoslynAnalyzers Removing {0} that contains an active statement requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0002", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RouteTemplates.ParameterConstraintCanBeSpecified", + "shortDescription": { + "text": "Route parameter constraint can be added due to type of method argument" + }, + "fullDescription": { + "text": "Route parameter constraint can be added due to type of method argument", + "markdown": "Route parameter constraint can be added due to type of method argument" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "RouteTemplates.ParameterConstraintCanBeSpecified", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "ASP.NET route templates/Code Notification", + "index": 47, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0003", + "shortDescription": { + "text": "RoslynAnalyzers Updating '{0}' requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0003", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticMicrosoftCommentPaste", + "shortDescription": { + "text": "microsoft-comment-paste clang diagnostic" + }, + "fullDescription": { + "text": "-Wmicrosoft-comment-paste clang diagnostic · Learn more", + "markdown": "-Wmicrosoft-comment-paste clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-comment-paste)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftCommentPaste", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0001", + "shortDescription": { + "text": "RoslynAnalyzers Updating an active statement requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0001", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppThrowExpressionCanBeReplacedWithRethrow", + "shortDescription": { + "text": "Throw expression can be replaced with a rethrow expression" + }, + "fullDescription": { + "text": "Throw expression can be replaced with a rethrow expression", + "markdown": "Throw expression can be replaced with a rethrow expression" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppThrowExpressionCanBeReplacedWithRethrow", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Common Practices and Code Improvements", + "index": 17, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Xaml.XamlMismatchedDeviceFamilyViewClrNameHighlighting", + "shortDescription": { + "text": "DeviceFamily-specific view type name does not match generic type name" + }, + "fullDescription": { + "text": "DeviceFamily-specific view type name does not match generic type name", + "markdown": "DeviceFamily-specific view type name does not match generic type name" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "Xaml.XamlMismatchedDeviceFamilyViewClrNameHighlighting", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "XAML/Potential Code Quality Issues", + "index": 44, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticCpp98Cpp11Cpp14Compat", + "shortDescription": { + "text": "c++98-c++11-c++14-compat clang diagnostic" + }, + "fullDescription": { + "text": "-Wc++98-c++11-c++14-compat clang diagnostic · Learn more", + "markdown": "-Wc++98-c++11-c++14-compat clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-98-c-11-c-14-compat)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticCpp98Cpp11Cpp14Compat", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyBugproneSwitchMissingDefaultCase", + "shortDescription": { + "text": "bugprone-switch-missing-default-case clang-tidy check" + }, + "fullDescription": { + "text": "bugprone-switch-missing-default-case clang-tidy check · Learn more", + "markdown": "bugprone-switch-missing-default-case clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/switch-missing-default-case.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyBugproneSwitchMissingDefaultCase", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticPreCpp14CompatPedantic", + "shortDescription": { + "text": "pre-c++14-compat-pedantic clang diagnostic" + }, + "fullDescription": { + "text": "-Wpre-c++14-compat-pedantic clang diagnostic · Learn more", + "markdown": "-Wpre-c++14-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpre-c-14-compat-pedantic)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticPreCpp14CompatPedantic", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticDeprecatedCopyWithUserProvidedCopy", + "shortDescription": { + "text": "deprecated-copy-with-user-provided-copy clang diagnostic" + }, + "fullDescription": { + "text": "-Wdeprecated-copy-with-user-provided-copy clang diagnostic · Learn more", + "markdown": "-Wdeprecated-copy-with-user-provided-copy clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdeprecated-copy-with-user-provided-copy)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedCopyWithUserProvidedCopy", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppRangeBasedForIncompatibleReference", + "shortDescription": { + "text": "Possibly unintended incompatible reference type in range declaration" + }, + "fullDescription": { + "text": "Using an incompatible reference type in the range declaration is likely to cause unwanted object copying", + "markdown": "Using an incompatible reference type in the range declaration is likely to cause unwanted object copying" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppRangeBasedForIncompatibleReference", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Potential Code Quality Issues", + "index": 9, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticAtomicAccess", + "shortDescription": { + "text": "atomic-access clang diagnostic" + }, + "fullDescription": { + "text": "-Watomic-access clang diagnostic · Learn more", + "markdown": "-Watomic-access clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#watomic-access)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticAtomicAccess", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticTautologicalTypeLimitCompare", + "shortDescription": { + "text": "tautological-type-limit-compare clang diagnostic" + }, + "fullDescription": { + "text": "-Wtautological-type-limit-compare clang diagnostic · Learn more", + "markdown": "-Wtautological-type-limit-compare clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wtautological-type-limit-compare)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticTautologicalTypeLimitCompare", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyCertCon36C", + "shortDescription": { + "text": "cert-con36-c clang-tidy check" + }, + "fullDescription": { + "text": "cert-con36-c clang-tidy check · Learn more", + "markdown": "cert-con36-c clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cert/con36-c.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyCertCon36C", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticMicrosoftUnionMemberReference", + "shortDescription": { + "text": "microsoft-union-member-reference clang diagnostic" + }, + "fullDescription": { + "text": "-Wmicrosoft-union-member-reference clang diagnostic · Learn more", + "markdown": "-Wmicrosoft-union-member-reference clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-union-member-reference)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftUnionMemberReference", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ConvertToLocalFunction", + "shortDescription": { + "text": "Convert delegate variable into local function" + }, + "fullDescription": { + "text": "Replace delegate variable with local function Learn more...", + "markdown": "Replace delegate variable with local function [Learn more...](https://www.jetbrains.com/help/rider/ConvertToLocalFunction.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "ConvertToLocalFunction", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Language Usage Opportunities", + "index": 7, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticNonModularIncludeInModule", + "shortDescription": { + "text": "non-modular-include-in-module clang diagnostic" + }, + "fullDescription": { + "text": "-Wnon-modular-include-in-module clang diagnostic · Learn more", + "markdown": "-Wnon-modular-include-in-module clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wnon-modular-include-in-module)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticNonModularIncludeInModule", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticReadModulesImplicitly", + "shortDescription": { + "text": "read-modules-implicitly clang diagnostic" + }, + "fullDescription": { + "text": "-Wread-modules-implicitly clang diagnostic · Learn more", + "markdown": "-Wread-modules-implicitly clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wread-modules-implicitly)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticReadModulesImplicitly", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyPerformanceNoexceptDestructor", + "shortDescription": { + "text": "performance-noexcept-destructor clang-tidy check" + }, + "fullDescription": { + "text": "performance-noexcept-destructor clang-tidy check · Learn more", + "markdown": "performance-noexcept-destructor clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/performance/noexcept-destructor.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyPerformanceNoexceptDestructor", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticIncompatibleMsStruct", + "shortDescription": { + "text": "incompatible-ms-struct clang diagnostic" + }, + "fullDescription": { + "text": "-Wincompatible-ms-struct clang diagnostic · Learn more", + "markdown": "-Wincompatible-ms-struct clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wincompatible-ms-struct)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticIncompatibleMsStruct", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyHicppNoArrayDecay", + "shortDescription": { + "text": "hicpp-no-array-decay clang-tidy check" + }, + "fullDescription": { + "text": "hicpp-no-array-decay clang-tidy check · Learn more", + "markdown": "hicpp-no-array-decay clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/no-array-decay.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyHicppNoArrayDecay", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangAnalyzerOsxNSOrCFErrorDerefChecker", + "shortDescription": { + "text": "osx.NSOrCFErrorDerefChecker clang static analyzer check" + }, + "fullDescription": { + "text": "osx.NSOrCFErrorDerefChecker clang static analyzer check · Learn more", + "markdown": "osx.NSOrCFErrorDerefChecker clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangAnalyzerOsxNSOrCFErrorDerefChecker", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Static Analyzer Checks", + "index": 32, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticPointerIntegerCompare", + "shortDescription": { + "text": "pointer-integer-compare clang diagnostic" + }, + "fullDescription": { + "text": "-Wpointer-integer-compare clang diagnostic · Learn more", + "markdown": "-Wpointer-integer-compare clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpointer-integer-compare)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticPointerIntegerCompare", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppMissingIndent", + "shortDescription": { + "text": "Incorrect indent (missing indent/outdent elsewhere)" + }, + "fullDescription": { + "text": "Missing indent/outdent elsewhere", + "markdown": "Missing indent/outdent elsewhere" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppMissingIndent", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Formatting", + "index": 28, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticIncompatibleFunctionPointerTypesStrict", + "shortDescription": { + "text": "incompatible-function-pointer-types-strict clang diagnostic" + }, + "fullDescription": { + "text": "-Wincompatible-function-pointer-types-strict clang diagnostic · Learn more", + "markdown": "-Wincompatible-function-pointer-types-strict clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wincompatible-function-pointer-types-strict)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticIncompatibleFunctionPointerTypesStrict", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Html.AttributeValueNotResolved", + "shortDescription": { + "text": "Unknown attribute value" + }, + "fullDescription": { + "text": "Unknown attribute value in HTML and related technologies", + "markdown": "Unknown attribute value in HTML and related technologies" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "Html.AttributeValueNotResolved", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "HTML/Potential Code Quality Issues", + "index": 51, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppPrintfExtraArg", + "shortDescription": { + "text": "Too many arguments in a call to printf" + }, + "fullDescription": { + "text": "Too many arguments in a call to printf. Some of the arguments are not used.", + "markdown": "Too many arguments in a call to printf. Some of the arguments are not used." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppPrintfExtraArg", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Potential Code Quality Issues", + "index": 9, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyReadabilityElseAfterReturn", + "shortDescription": { + "text": "readability-else-after-return clang-tidy check" + }, + "fullDescription": { + "text": "readability-else-after-return clang-tidy check · Learn more", + "markdown": "readability-else-after-return clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/else-after-return.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyReadabilityElseAfterReturn", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticPragmaClangAttribute", + "shortDescription": { + "text": "pragma-clang-attribute clang diagnostic" + }, + "fullDescription": { + "text": "-Wpragma-clang-attribute clang diagnostic · Learn more", + "markdown": "-Wpragma-clang-attribute clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpragma-clang-attribute)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticPragmaClangAttribute", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyCppcoreguidelinesProBoundsPointerArithmetic", + "shortDescription": { + "text": "cppcoreguidelines-pro-bounds-pointer-arithmetic clang-tidy check" + }, + "fullDescription": { + "text": "cppcoreguidelines-pro-bounds-pointer-arithmetic clang-tidy check · Learn more", + "markdown": "cppcoreguidelines-pro-bounds-pointer-arithmetic clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/pro-bounds-pointer-arithmetic.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyCppcoreguidelinesProBoundsPointerArithmetic", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticExternInitializer", + "shortDescription": { + "text": "extern-initializer clang diagnostic" + }, + "fullDescription": { + "text": "-Wextern-initializer clang diagnostic · Learn more", + "markdown": "-Wextern-initializer clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wextern-initializer)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticExternInitializer", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyCppcoreguidelinesAvoidMagicNumbers", + "shortDescription": { + "text": "cppcoreguidelines-avoid-magic-numbers clang-tidy check" + }, + "fullDescription": { + "text": "cppcoreguidelines-avoid-magic-numbers clang-tidy check · Learn more", + "markdown": "cppcoreguidelines-avoid-magic-numbers clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/avoid-magic-numbers.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyCppcoreguidelinesAvoidMagicNumbers", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "BaseObjectGetHashCodeCallInGetHashCode", + "shortDescription": { + "text": "Overridden GetHashCode calls base 'Object.GetHashCode()'" + }, + "fullDescription": { + "text": "Overridden GetHashCode calls base 'Object.GetHashCode()'", + "markdown": "Overridden GetHashCode calls base 'Object.GetHashCode()'" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "BaseObjectGetHashCodeCallInGetHashCode", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticDeprecatedLiteralOperator", + "shortDescription": { + "text": "deprecated-literal-operator clang diagnostic" + }, + "fullDescription": { + "text": "-Wdeprecated-literal-operator clang diagnostic · Learn more", + "markdown": "-Wdeprecated-literal-operator clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdeprecated-literal-operator)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedLiteralOperator", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyReadabilityUppercaseLiteralSuffix", + "shortDescription": { + "text": "readability-uppercase-literal-suffix clang-tidy check" + }, + "fullDescription": { + "text": "readability-uppercase-literal-suffix clang-tidy check · Learn more", + "markdown": "readability-uppercase-literal-suffix clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/uppercase-literal-suffix.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyReadabilityUppercaseLiteralSuffix", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticDirectIvarAccess", + "shortDescription": { + "text": "direct-ivar-access clang diagnostic" + }, + "fullDescription": { + "text": "-Wdirect-ivar-access clang diagnostic · Learn more", + "markdown": "-Wdirect-ivar-access clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdirect-ivar-access)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticDirectIvarAccess", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppIdenticalOperandsInBinaryExpression", + "shortDescription": { + "text": "Binary operator acts on identical operands" + }, + "fullDescription": { + "text": "Binary operator acts on identical operands", + "markdown": "Binary operator acts on identical operands" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppIdenticalOperandsInBinaryExpression", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Potential Code Quality Issues", + "index": 9, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticDeprecatedRegister", + "shortDescription": { + "text": "deprecated-register clang diagnostic" + }, + "fullDescription": { + "text": "-Wdeprecated-register clang diagnostic · Learn more", + "markdown": "-Wdeprecated-register clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdeprecated-register)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedRegister", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticMismatchedNewDelete", + "shortDescription": { + "text": "mismatched-new-delete clang diagnostic" + }, + "fullDescription": { + "text": "-Wmismatched-new-delete clang diagnostic · Learn more", + "markdown": "-Wmismatched-new-delete clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmismatched-new-delete)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticMismatchedNewDelete", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Unity.BurstAccessingManagedMethod", + "shortDescription": { + "text": "Accessing managed methods is not supported" + }, + "fullDescription": { + "text": "Accessing managed methods is not supported", + "markdown": "Accessing managed methods is not supported" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "Unity.BurstAccessingManagedMethod", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Unity Burst Compiler Warnings", + "index": 54, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ShiftExpressionResultEqualsZero", + "shortDescription": { + "text": "Constant shift expression with non-zero operands results in a zero value" + }, + "fullDescription": { + "text": "Constant shift expression with non-zero operands results in a zero value", + "markdown": "Constant shift expression with non-zero operands results in a zero value" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "ShiftExpressionResultEqualsZero", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyReadabilityRedundantStringInit", + "shortDescription": { + "text": "readability-redundant-string-init clang-tidy check" + }, + "fullDescription": { + "text": "readability-redundant-string-init clang-tidy check · Learn more", + "markdown": "readability-redundant-string-init clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/redundant-string-init.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyReadabilityRedundantStringInit", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticUnsupportedTargetOpt", + "shortDescription": { + "text": "unsupported-target-opt clang diagnostic" + }, + "fullDescription": { + "text": "-Wunsupported-target-opt clang diagnostic · Learn more", + "markdown": "-Wunsupported-target-opt clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunsupported-target-opt)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticUnsupportedTargetOpt", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticTautologicalConstantInRangeCompare", + "shortDescription": { + "text": "tautological-constant-in-range-compare clang diagnostic" + }, + "fullDescription": { + "text": "-Wtautological-constant-in-range-compare clang diagnostic · Learn more", + "markdown": "-Wtautological-constant-in-range-compare clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wtautological-constant-in-range-compare)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticTautologicalConstantInRangeCompare", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticUnknownEscapeSequence", + "shortDescription": { + "text": "unknown-escape-sequence clang diagnostic" + }, + "fullDescription": { + "text": "-Wunknown-escape-sequence clang diagnostic · Learn more", + "markdown": "-Wunknown-escape-sequence clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunknown-escape-sequence)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticUnknownEscapeSequence", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UseArrayEmptyMethod", + "shortDescription": { + "text": "Use 'Array.Empty()'" + }, + "fullDescription": { + "text": "Replace an empty array allocation with a call of the predefined 'Array.Empty()' method", + "markdown": "Replace an empty array allocation with a call of the predefined 'Array.Empty()' method" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "UseArrayEmptyMethod", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 14, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppBadCommaSpaces", + "shortDescription": { + "text": "Incorrect spacing (around comma)" + }, + "fullDescription": { + "text": "Around comma", + "markdown": "Around comma" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppBadCommaSpaces", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Formatting", + "index": 28, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppAbstractClassWithoutSpecifier", + "shortDescription": { + "text": "Class is abstract but not explicitly declared as such" + }, + "fullDescription": { + "text": "The class is abstract but not explicitly declared as such", + "markdown": "The class is abstract but not explicitly declared as such" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppAbstractClassWithoutSpecifier", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Potential Code Quality Issues", + "index": 9, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "VBReplaceWithOfType.Single.2", + "shortDescription": { + "text": "Replace with OfType().Single() (replace with OfType(Of ..)().Single(..))" + }, + "fullDescription": { + "text": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).Single(Function ($y$) $y$ IsNot Nothing AndAlso $expr$)", + "markdown": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).Single(Function ($y$) $y$ IsNot Nothing AndAlso $expr$)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "VBReplaceWithOfType.Single.2", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "VB.NET/Common Practices and Code Improvements", + "index": 40, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "VBReplaceWithOfType.Single.1", + "shortDescription": { + "text": "Replace with OfType().Single() (replace with OfType(Of ..)().Single())" + }, + "fullDescription": { + "text": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).Single(Function ($y$) $y$ IsNot Nothing)", + "markdown": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).Single(Function ($y$) $y$ IsNot Nothing)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "VBReplaceWithOfType.Single.1", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "VB.NET/Common Practices and Code Improvements", + "index": 40, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticFormatSecurity", + "shortDescription": { + "text": "format-security clang diagnostic" + }, + "fullDescription": { + "text": "-Wformat-security clang diagnostic · Learn more", + "markdown": "-Wformat-security clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wformat-security)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticFormatSecurity", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppBoostFormatBadCode", + "shortDescription": { + "text": "Incorrect format directive in boost::format" + }, + "fullDescription": { + "text": "A format string of boost::format contains an erroneous format directive", + "markdown": "A format string of boost::format contains an erroneous format directive" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppBoostFormatBadCode", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Potential Code Quality Issues", + "index": 9, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppBadParensSpaces", + "shortDescription": { + "text": "Incorrect spacing (around parenthesis)" + }, + "fullDescription": { + "text": "Around parenthesis", + "markdown": "Around parenthesis" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppBadParensSpaces", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Formatting", + "index": 28, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "PossibleInterfaceMemberAmbiguity", + "shortDescription": { + "text": "Possible ambiguity while accessing member by interface" + }, + "fullDescription": { + "text": "Possible ambiguity while accessing member by interface", + "markdown": "Possible ambiguity while accessing member by interface" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "PossibleInterfaceMemberAmbiguity", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticPessimizingMove", + "shortDescription": { + "text": "pessimizing-move clang diagnostic" + }, + "fullDescription": { + "text": "-Wpessimizing-move clang diagnostic · Learn more", + "markdown": "-Wpessimizing-move clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpessimizing-move)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticPessimizingMove", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MethodHasAsyncOverloadWithCancellation", + "shortDescription": { + "text": "Method has async overload with cancellation support" + }, + "fullDescription": { + "text": "Method has async overload with 'CancellationToken'", + "markdown": "Method has async overload with 'CancellationToken'" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "MethodHasAsyncOverloadWithCancellation", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 14, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticIncompatibleFunctionPointerTypes", + "shortDescription": { + "text": "incompatible-function-pointer-types clang diagnostic" + }, + "fullDescription": { + "text": "-Wincompatible-function-pointer-types clang diagnostic · Learn more", + "markdown": "-Wincompatible-function-pointer-types clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wincompatible-function-pointer-types)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticIncompatibleFunctionPointerTypes", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticDeleteNonAbstractNonVirtualDtor", + "shortDescription": { + "text": "delete-non-abstract-non-virtual-dtor clang diagnostic" + }, + "fullDescription": { + "text": "-Wdelete-non-abstract-non-virtual-dtor clang diagnostic · Learn more", + "markdown": "-Wdelete-non-abstract-non-virtual-dtor clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdelete-non-abstract-non-virtual-dtor)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticDeleteNonAbstractNonVirtualDtor", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppPrivateSpecialMemberFunctionIsNotImplemented", + "shortDescription": { + "text": "Private special member function is not implemented" + }, + "fullDescription": { + "text": "A private special member function must be defined or deleted", + "markdown": "A private special member function must be defined or deleted" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppPrivateSpecialMemberFunctionIsNotImplemented", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Potential Code Quality Issues", + "index": 9, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyCppcoreguidelinesAvoidGoto", + "shortDescription": { + "text": "cppcoreguidelines-avoid-goto clang-tidy check" + }, + "fullDescription": { + "text": "cppcoreguidelines-avoid-goto clang-tidy check · Learn more", + "markdown": "cppcoreguidelines-avoid-goto clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/avoid-goto.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyCppcoreguidelinesAvoidGoto", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticUndefPrefix", + "shortDescription": { + "text": "undef-prefix clang diagnostic" + }, + "fullDescription": { + "text": "-Wundef-prefix clang diagnostic · Learn more", + "markdown": "-Wundef-prefix clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wundef-prefix)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticUndefPrefix", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyReadabilityInconsistentDeclarationParameterName", + "shortDescription": { + "text": "readability-inconsistent-declaration-parameter-name clang-tidy check" + }, + "fullDescription": { + "text": "readability-inconsistent-declaration-parameter-name clang-tidy check · Learn more", + "markdown": "readability-inconsistent-declaration-parameter-name clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/inconsistent-declaration-parameter-name.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyReadabilityInconsistentDeclarationParameterName", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ObsoleteElementError", + "shortDescription": { + "text": "Use of obsolete type or type member (error)" + }, + "fullDescription": { + "text": "Use of obsolete type or type member in XAML markup (error)", + "markdown": "Use of obsolete type or type member in XAML markup (error)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "ObsoleteElementError", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "XAML/Compiler Warnings", + "index": 56, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ConvertConstructorToMemberInitializers", + "shortDescription": { + "text": "Convert constructor into member initializers" + }, + "fullDescription": { + "text": "Replace constructor with members initialized inline", + "markdown": "Replace constructor with members initialized inline" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "ConvertConstructorToMemberInitializers", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Language Usage Opportunities", + "index": 7, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Unity.DuplicateShortcut", + "shortDescription": { + "text": "The same shortcut is defined for another menu item" + }, + "fullDescription": { + "text": "The same shortcut is defined for another menu item", + "markdown": "The same shortcut is defined for another menu item" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "Unity.DuplicateShortcut", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Unity", + "index": 19, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyBugproneUnhandledExceptionAtNew", + "shortDescription": { + "text": "bugprone-unhandled-exception-at-new clang-tidy check" + }, + "fullDescription": { + "text": "bugprone-unhandled-exception-at-new clang-tidy check · Learn more", + "markdown": "bugprone-unhandled-exception-at-new clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/unhandled-exception-at-new.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyBugproneUnhandledExceptionAtNew", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticDllexportExplicitInstantiationDecl", + "shortDescription": { + "text": "dllexport-explicit-instantiation-decl clang diagnostic" + }, + "fullDescription": { + "text": "-Wdllexport-explicit-instantiation-decl clang diagnostic · Learn more", + "markdown": "-Wdllexport-explicit-instantiation-decl clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdllexport-explicit-instantiation-decl)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticDllexportExplicitInstantiationDecl", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppIntegralToPointerConversion", + "shortDescription": { + "text": "Implicit integer to pointer conversion" + }, + "fullDescription": { + "text": "Implicit integer to pointer conversion", + "markdown": "Implicit integer to pointer conversion" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppIntegralToPointerConversion", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Potential Code Quality Issues", + "index": 9, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CSharpWarnings__CS0420", + "shortDescription": { + "text": "Reference to a volatile field will not be treated as volatile" + }, + "fullDescription": { + "text": "Learn more...", + "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/4bw5ewxy.aspx)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CSharpWarnings__CS0420", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Compiler Warnings", + "index": 27, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticFourCharConstants", + "shortDescription": { + "text": "four-char-constants clang diagnostic" + }, + "fullDescription": { + "text": "-Wfour-char-constants clang diagnostic · Learn more", + "markdown": "-Wfour-char-constants clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wfour-char-constants)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticFourCharConstants", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CSharpWarnings__CS8383", + "shortDescription": { + "text": "The tuple element name is ignored because a different name or no name is specified on the other side of the tuple == or != operator." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CSharpWarnings__CS8383", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Compiler Warnings", + "index": 27, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Xaml.XamlRelativeSourceDefaultModeWarningHighlighting", + "shortDescription": { + "text": "RelativeSourceMode is not set explicitly" + }, + "fullDescription": { + "text": "Default RelativeSourceMode value is platform-specific, explicit specification is required to process RelativeSource usage unambiguously", + "markdown": "Default RelativeSourceMode value is platform-specific, explicit specification is required to process RelativeSource usage unambiguously" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "Xaml.XamlRelativeSourceDefaultModeWarningHighlighting", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "XAML/Potential Code Quality Issues", + "index": 44, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "NUnit.RangeAttributeBoundsAreOutOfRange", + "shortDescription": { + "text": "NUnit. Values in range do not fit the type of the test parameter." + }, + "fullDescription": { + "text": "NUnit. Values specified in [Range] are out range for the type of the test parameter. Learn more...", + "markdown": "NUnit. Values specified in \\[Range\\] are out range for the type of the test parameter. [Learn more...](https://www.jetbrains.com/help/rider/NUnit.RangeAttributeBoundsAreOutOfRange.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "NUnit.RangeAttributeBoundsAreOutOfRange", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/NUnit", + "index": 26, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyFuchsiaVirtualInheritance", + "shortDescription": { + "text": "fuchsia-virtual-inheritance clang-tidy check" + }, + "fullDescription": { + "text": "fuchsia-virtual-inheritance clang-tidy check · Learn more", + "markdown": "fuchsia-virtual-inheritance clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/fuchsia/virtual-inheritance.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyFuchsiaVirtualInheritance", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticGnuPointerArith", + "shortDescription": { + "text": "gnu-pointer-arith clang diagnostic" + }, + "fullDescription": { + "text": "-Wgnu-pointer-arith clang diagnostic · Learn more", + "markdown": "-Wgnu-pointer-arith clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wgnu-pointer-arith)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticGnuPointerArith", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyCertMsc33C", + "shortDescription": { + "text": "cert-msc33-c clang-tidy check" + }, + "fullDescription": { + "text": "cert-msc33-c clang-tidy check · Learn more", + "markdown": "cert-msc33-c clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cert/msc33-c.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyCertMsc33C", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "BadIndent", + "shortDescription": { + "text": "Incorrect indent (redundant indent/outdent elsewhere)" + }, + "fullDescription": { + "text": "Redundant indent/outdent elsewhere Learn more...", + "markdown": "Redundant indent/outdent elsewhere [Learn more...](https://www.jetbrains.com/help/rider/BadIndent.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "BadIndent", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Formatting", + "index": 24, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyCertCon54Cpp", + "shortDescription": { + "text": "cert-con54-cpp clang-tidy check" + }, + "fullDescription": { + "text": "cert-con54-cpp clang-tidy check · Learn more", + "markdown": "cert-con54-cpp clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cert/con54-cpp.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyCertCon54Cpp", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "NotAssignedOutParameter", + "shortDescription": { + "text": "'out' parameter is not assigned upon exit" + }, + "fullDescription": { + "text": "'out' parameter is not assigned upon exit", + "markdown": "'out' parameter is not assigned upon exit" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "NotAssignedOutParameter", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "VB.NET/Potential Code Quality Issues", + "index": 58, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticInvalidPpToken", + "shortDescription": { + "text": "invalid-pp-token clang diagnostic" + }, + "fullDescription": { + "text": "-Winvalid-pp-token clang diagnostic · Learn more", + "markdown": "-Winvalid-pp-token clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#winvalid-pp-token)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticInvalidPpToken", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CSharpWarnings__CS1723", + "shortDescription": { + "text": "XML comment has cref attribute that refers to a type parameter" + }, + "fullDescription": { + "text": "Learn more...", + "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/ms228603.aspx)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CSharpWarnings__CS1723", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Compiler Warnings", + "index": 27, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "NUnit.RedundantExpectedResultInTestCaseAttribute", + "shortDescription": { + "text": "NUnit. Redundant expected result for void test method." + }, + "fullDescription": { + "text": "Specifying expected result for void NUnit test methods through the [TestCase] attribute is redundant. Learn more...", + "markdown": "Specifying expected result for void NUnit test methods through the \\[TestCase\\] attribute is redundant. [Learn more...](https://www.jetbrains.com/help/rider/NUnit.RedundantExpectedResultInTestCaseAttribute.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "NUnit.RedundantExpectedResultInTestCaseAttribute", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/NUnit", + "index": 26, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Unity.UnknownTag", + "shortDescription": { + "text": "The tag is not defined in the 'Tags & Layers'" + }, + "fullDescription": { + "text": "The tag is not defined in the 'Tags & Layers'. Expression will return 'false'.", + "markdown": "The tag is not defined in the 'Tags \\& Layers'. Expression will return 'false'." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "Unity.UnknownTag", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Unity", + "index": 19, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RedundantExplicitParamsArrayCreation", + "shortDescription": { + "text": "Redundant explicit array creation in argument of 'params' parameter" + }, + "fullDescription": { + "text": "Array creation in argument passed to 'params' parameter is redundant", + "markdown": "Array creation in argument passed to 'params' parameter is redundant" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "RedundantExplicitParamsArrayCreation", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Redundancies in Code", + "index": 23, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyGoogleObjcFunctionNaming", + "shortDescription": { + "text": "google-objc-function-naming clang-tidy check" + }, + "fullDescription": { + "text": "google-objc-function-naming clang-tidy check · Learn more", + "markdown": "google-objc-function-naming clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/google/objc-function-naming.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyGoogleObjcFunctionNaming", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangAnalyzerOptinPerformancePadding", + "shortDescription": { + "text": "optin.performance.Padding clang static analyzer check" + }, + "fullDescription": { + "text": "optin.performance.Padding clang static analyzer check · Learn more", + "markdown": "optin.performance.Padding clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangAnalyzerOptinPerformancePadding", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Static Analyzer Checks", + "index": 32, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CSharpWarnings__CS7023", + "shortDescription": { + "text": "Static type in 'is' or 'as' operator." + }, + "fullDescription": { + "text": "Learn more...", + "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/warning-waves#cs7023---a-static-type-is-used-in-an-is-or-as-expression)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CSharpWarnings__CS7023", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Compiler Warnings", + "index": 27, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Asp.Warning", + "shortDescription": { + "text": "ASP.NET Warning" + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "Asp.Warning", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "Aspx/Potential Code Quality Issues", + "index": 60, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CSharpWarnings__CS7022", + "shortDescription": { + "text": "The 'Main' method will not be used as an entry point because compilation unit with top-level statements was found." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CSharpWarnings__CS7022", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Compiler Warnings", + "index": 27, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyBugproneMultipleNewInOneExpression", + "shortDescription": { + "text": "bugprone-multiple-new-in-one-expression clang-tidy check" + }, + "fullDescription": { + "text": "bugprone-multiple-new-in-one-expression clang-tidy check · Learn more", + "markdown": "bugprone-multiple-new-in-one-expression clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/multiple-new-in-one-expression.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyBugproneMultipleNewInOneExpression", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangAnalyzerCoreUninitializedArraySubscript", + "shortDescription": { + "text": "core.uninitialized.ArraySubscript clang static analyzer check" + }, + "fullDescription": { + "text": "core.uninitialized.ArraySubscript clang static analyzer check · Learn more", + "markdown": "core.uninitialized.ArraySubscript clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangAnalyzerCoreUninitializedArraySubscript", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Static Analyzer Checks", + "index": 32, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UseIndexFromEndExpression", + "shortDescription": { + "text": "Use index from end expression" + }, + "fullDescription": { + "text": "Replace array indexer argument with index from end expression", + "markdown": "Replace array indexer argument with index from end expression" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "UseIndexFromEndExpression", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Language Usage Opportunities", + "index": 7, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RouteTemplates.ParameterTypeAndConstraintsMismatch", + "shortDescription": { + "text": "Type of parameter doesn't satisfy constraints declared in route template" + }, + "fullDescription": { + "text": "Type of parameter doesn't satisfy constraints declared in route template", + "markdown": "Type of parameter doesn't satisfy constraints declared in route template" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "RouteTemplates.ParameterTypeAndConstraintsMismatch", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "ASP.NET route templates/Code Notification", + "index": 47, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyCertMsc32C", + "shortDescription": { + "text": "cert-msc32-c clang-tidy check" + }, + "fullDescription": { + "text": "cert-msc32-c clang-tidy check · Learn more", + "markdown": "cert-msc32-c clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cert/msc32-c.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyCertMsc32C", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticGnuBinaryLiteral", + "shortDescription": { + "text": "gnu-binary-literal clang diagnostic" + }, + "fullDescription": { + "text": "-Wgnu-binary-literal clang diagnostic · Learn more", + "markdown": "-Wgnu-binary-literal clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wgnu-binary-literal)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticGnuBinaryLiteral", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ConvertTypeCheckToNullCheck", + "shortDescription": { + "text": "Use null check instead of a type check succeeding on any not-null value" + }, + "fullDescription": { + "text": "The expression of 'is' operator matches the provided type on any non-null value. Consider comparing with 'null' instead.", + "markdown": "The expression of 'is' operator matches the provided type on any non-null value. Consider comparing with 'null' instead." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "ConvertTypeCheckToNullCheck", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyHicppUseEqualsDefault", + "shortDescription": { + "text": "hicpp-use-equals-default clang-tidy check" + }, + "fullDescription": { + "text": "hicpp-use-equals-default clang-tidy check · Learn more", + "markdown": "hicpp-use-equals-default clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/use-equals-default.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyHicppUseEqualsDefault", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "NUnit.IgnoredParameterAttribute", + "shortDescription": { + "text": "NUnit. Ignored parameter attribute." + }, + "fullDescription": { + "text": "NUnit. Parameter attribute is ignored by NUnit framework.", + "markdown": "NUnit. Parameter attribute is ignored by NUnit framework." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "NUnit.IgnoredParameterAttribute", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/NUnit", + "index": 26, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyModernizeUseTransparentFunctors", + "shortDescription": { + "text": "modernize-use-transparent-functors clang-tidy check" + }, + "fullDescription": { + "text": "modernize-use-transparent-functors clang-tidy check · Learn more", + "markdown": "modernize-use-transparent-functors clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-transparent-functors.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyModernizeUseTransparentFunctors", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MeaninglessDefaultParameterValue", + "shortDescription": { + "text": "'DefaultParameterValueAttribute' must be used in conjunction with 'OptionalAttribute'" + }, + "fullDescription": { + "text": "'DefaultParameterValueAttribute' must be used in conjunction with 'OptionalAttribute'", + "markdown": "'DefaultParameterValueAttribute' must be used in conjunction with 'OptionalAttribute'" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "MeaninglessDefaultParameterValue", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Redundancies in Symbol Declarations", + "index": 36, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticUnneededInternalDeclaration", + "shortDescription": { + "text": "unneeded-internal-declaration clang diagnostic" + }, + "fullDescription": { + "text": "-Wunneeded-internal-declaration clang diagnostic · Learn more", + "markdown": "-Wunneeded-internal-declaration clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunneeded-internal-declaration)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticUnneededInternalDeclaration", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Unity.BurstCreatingManagedType", + "shortDescription": { + "text": "Creating a managed type is not supported" + }, + "fullDescription": { + "text": "Creating a managed type is not supported", + "markdown": "Creating a managed type is not supported" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "Unity.BurstCreatingManagedType", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Unity Burst Compiler Warnings", + "index": 54, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticDangling", + "shortDescription": { + "text": "dangling clang diagnostic" + }, + "fullDescription": { + "text": "-Wdangling clang diagnostic · Learn more", + "markdown": "-Wdangling clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdangling)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticDangling", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticWeakVtables", + "shortDescription": { + "text": "weak-vtables clang diagnostic" + }, + "fullDescription": { + "text": "-Wweak-vtables clang diagnostic · Learn more", + "markdown": "-Wweak-vtables clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wweak-vtables)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticWeakVtables", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticMissingNoreturn", + "shortDescription": { + "text": "missing-noreturn clang diagnostic" + }, + "fullDescription": { + "text": "-Wmissing-noreturn clang diagnostic · Learn more", + "markdown": "-Wmissing-noreturn clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmissing-noreturn)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticMissingNoreturn", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppIfCanBeReplacedByConstexprIf", + "shortDescription": { + "text": "If statement with constant condition can be replaced with 'if constexpr'" + }, + "fullDescription": { + "text": "If statement with constant condition can be replaced with 'if constexpr'", + "markdown": "If statement with constant condition can be replaced with 'if constexpr'" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "CppIfCanBeReplacedByConstexprIf", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Common Practices and Code Improvements", + "index": 17, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyHicppUseNoexcept", + "shortDescription": { + "text": "hicpp-use-noexcept clang-tidy check" + }, + "fullDescription": { + "text": "hicpp-use-noexcept clang-tidy check · Learn more", + "markdown": "hicpp-use-noexcept clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/use-noexcept.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyHicppUseNoexcept", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CSharpWarnings__CS0458", + "shortDescription": { + "text": "The result of the expression is always 'null' of nullable type" + }, + "fullDescription": { + "text": "Learn more...", + "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/misc/cs0458)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CSharpWarnings__CS0458", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Compiler Warnings", + "index": 27, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticUnusedButSetParameter", + "shortDescription": { + "text": "unused-but-set-parameter clang diagnostic" + }, + "fullDescription": { + "text": "-Wunused-but-set-parameter clang diagnostic · Learn more", + "markdown": "-Wunused-but-set-parameter clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunused-but-set-parameter)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticUnusedButSetParameter", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppDefaultCaseNotHandledInSwitchStatement", + "shortDescription": { + "text": "Default case is not handled in a switch statement" + }, + "fullDescription": { + "text": "Default case is not handled in a switch statement", + "markdown": "Default case is not handled in a switch statement" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppDefaultCaseNotHandledInSwitchStatement", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Potential Code Quality Issues", + "index": 9, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticShadowFieldInConstructorModified", + "shortDescription": { + "text": "shadow-field-in-constructor-modified clang diagnostic" + }, + "fullDescription": { + "text": "-Wshadow-field-in-constructor-modified clang diagnostic · Learn more", + "markdown": "-Wshadow-field-in-constructor-modified clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wshadow-field-in-constructor-modified)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticShadowFieldInConstructorModified", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "NotOverriddenInSpecificCulture", + "shortDescription": { + "text": "Resource is not overridden in specific culture" + }, + "fullDescription": { + "text": "Resource is not overridden in one or more specific cultures Learn more...", + "markdown": "Resource is not overridden in one or more specific cultures [Learn more...](https://www.jetbrains.com/help/rider/NotOverriddenInSpecificCulture.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "NotOverriddenInSpecificCulture", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "ResX/Potential Code Quality Issues", + "index": 63, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "NonReadonlyMemberInGetHashCode", + "shortDescription": { + "text": "Non-readonly type member referenced in 'GetHashCode()'" + }, + "fullDescription": { + "text": "Non-readonly field or auto-property referenced in 'GetHashCode()' Learn more...", + "markdown": "Non-readonly field or auto-property referenced in 'GetHashCode()' [Learn more...](https://www.jetbrains.com/help/rider/NonReadonlyMemberInGetHashCode.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "NonReadonlyMemberInGetHashCode", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyMiscConfusableIdentifiers", + "shortDescription": { + "text": "misc-confusable-identifiers clang-tidy check" + }, + "fullDescription": { + "text": "misc-confusable-identifiers clang-tidy check · Learn more", + "markdown": "misc-confusable-identifiers clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/misc/confusable-identifiers.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyMiscConfusableIdentifiers", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticNonportableSystemIncludePath", + "shortDescription": { + "text": "nonportable-system-include-path clang diagnostic" + }, + "fullDescription": { + "text": "-Wnonportable-system-include-path clang diagnostic · Learn more", + "markdown": "-Wnonportable-system-include-path clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wnonportable-system-include-path)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticNonportableSystemIncludePath", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyCertMsc30C", + "shortDescription": { + "text": "cert-msc30-c clang-tidy check" + }, + "fullDescription": { + "text": "cert-msc30-c clang-tidy check · Learn more", + "markdown": "cert-msc30-c clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cert/msc30-c.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyCertMsc30C", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticPragmaOnceOutsideHeader", + "shortDescription": { + "text": "pragma-once-outside-header clang diagnostic" + }, + "fullDescription": { + "text": "-Wpragma-once-outside-header clang diagnostic · Learn more", + "markdown": "-Wpragma-once-outside-header clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpragma-once-outside-header)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticPragmaOnceOutsideHeader", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticAtomicAlignment", + "shortDescription": { + "text": "atomic-alignment clang diagnostic" + }, + "fullDescription": { + "text": "-Watomic-alignment clang diagnostic · Learn more", + "markdown": "-Watomic-alignment clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#watomic-alignment)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticAtomicAlignment", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UnusedAnonymousMethodSignature", + "shortDescription": { + "text": "Anonymous method signature is not necessary" + }, + "fullDescription": { + "text": "Specifying signature in an anonymous method is not necessary because none of its parameters are used in the body", + "markdown": "Specifying signature in an anonymous method is not necessary because none of its parameters are used in the body" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "UnusedAnonymousMethodSignature", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Redundancies in Code", + "index": 23, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CSharpWarnings__CS0469", + "shortDescription": { + "text": "'goto case' value is not implicitly convertible to required type" + }, + "fullDescription": { + "text": "Learn more...", + "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/ms228370.aspx)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CSharpWarnings__CS0469", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Compiler Warnings", + "index": 27, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticMissingExceptionSpec", + "shortDescription": { + "text": "missing-exception-spec clang diagnostic" + }, + "fullDescription": { + "text": "-Wmissing-exception-spec clang diagnostic · Learn more", + "markdown": "-Wmissing-exception-spec clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmissing-exception-spec)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticMissingExceptionSpec", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticPoisonSystemDirectories", + "shortDescription": { + "text": "poison-system-directories clang diagnostic" + }, + "fullDescription": { + "text": "-Wpoison-system-directories clang diagnostic · Learn more", + "markdown": "-Wpoison-system-directories clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpoison-system-directories)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticPoisonSystemDirectories", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CSharpWarnings__CS0464", + "shortDescription": { + "text": "Comparing with null of nullable value type always produces 'false'" + }, + "fullDescription": { + "text": "Learn more...", + "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/misc/cs0464)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CSharpWarnings__CS0464", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Compiler Warnings", + "index": 27, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CSharpWarnings__CS0465", + "shortDescription": { + "text": "Introducing a 'Finalize' method can interfere with destructor invocation" + }, + "fullDescription": { + "text": "Learn more...", + "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/02wtfwbt.aspx)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CSharpWarnings__CS0465", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Compiler Warnings", + "index": 27, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticUnusedLambdaCapture", + "shortDescription": { + "text": "unused-lambda-capture clang diagnostic" + }, + "fullDescription": { + "text": "-Wunused-lambda-capture clang diagnostic · Learn more", + "markdown": "-Wunused-lambda-capture clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunused-lambda-capture)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticUnusedLambdaCapture", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticFormat", + "shortDescription": { + "text": "format clang diagnostic" + }, + "fullDescription": { + "text": "-Wformat clang diagnostic · Learn more", + "markdown": "-Wformat clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wformat)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticFormat", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticIgnoredReferenceQualifiers", + "shortDescription": { + "text": "ignored-reference-qualifiers clang diagnostic" + }, + "fullDescription": { + "text": "-Wignored-reference-qualifiers clang diagnostic · Learn more", + "markdown": "-Wignored-reference-qualifiers clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wignored-reference-qualifiers)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticIgnoredReferenceQualifiers", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticPreCpp2cCompatPedantic", + "shortDescription": { + "text": "pre-c++2c-compat-pedantic clang diagnostic" + }, + "fullDescription": { + "text": "-Wpre-c++2c-compat-pedantic clang diagnostic · Learn more", + "markdown": "-Wpre-c++2c-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpre-c-2c-compat-pedantic)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticPreCpp2cCompatPedantic", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Xaml.EmptyGridLengthDefinition", + "shortDescription": { + "text": "Grid length definition must not be empty" + }, + "fullDescription": { + "text": "Grid length definition must not be empty", + "markdown": "Grid length definition must not be empty" + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "Xaml.EmptyGridLengthDefinition", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "XAML/Code Notification", + "index": 5, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "VBUseMethodAny.1", + "shortDescription": { + "text": "Use method Any()" + }, + "fullDescription": { + "text": "$seq$.Count() > 0", + "markdown": "$seq$.Count() \\> 0" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "VBUseMethodAny.1", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "VB.NET/Common Practices and Code Improvements", + "index": 40, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CSharpWarnings__CS7095", + "shortDescription": { + "text": "Filter expression is a constant, consider removing the filter" + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CSharpWarnings__CS7095", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Compiler Warnings", + "index": 27, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "VBUseMethodAny.2", + "shortDescription": { + "text": "Use method Any()" + }, + "fullDescription": { + "text": "$seq$.Count() >= 1", + "markdown": "$seq$.Count() \\>= 1" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "VBUseMethodAny.2", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "VB.NET/Common Practices and Code Improvements", + "index": 40, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "VBUseMethodAny.3", + "shortDescription": { + "text": "Use method Any()" + }, + "fullDescription": { + "text": "$seq$.Count() = 0", + "markdown": "$seq$.Count() = 0" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "VBUseMethodAny.3", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "VB.NET/Common Practices and Code Improvements", + "index": 40, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "VBUseMethodAny.4", + "shortDescription": { + "text": "Use method Any()" + }, + "fullDescription": { + "text": "$seq$.Count() <= 0", + "markdown": "$seq$.Count() \\<= 0" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "VBUseMethodAny.4", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "VB.NET/Common Practices and Code Improvements", + "index": 40, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "VBUseMethodAny.5", + "shortDescription": { + "text": "Use method Any()" + }, + "fullDescription": { + "text": "$seq$.Count() < 1", + "markdown": "$seq$.Count() \\< 1" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "VBUseMethodAny.5", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "VB.NET/Common Practices and Code Improvements", + "index": 40, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticUsedButMarkedUnused", + "shortDescription": { + "text": "used-but-marked-unused clang diagnostic" + }, + "fullDescription": { + "text": "-Wused-but-marked-unused clang diagnostic · Learn more", + "markdown": "-Wused-but-marked-unused clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wused-but-marked-unused)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticUsedButMarkedUnused", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticOverloadedShiftOpParentheses", + "shortDescription": { + "text": "overloaded-shift-op-parentheses clang diagnostic" + }, + "fullDescription": { + "text": "-Woverloaded-shift-op-parentheses clang diagnostic · Learn more", + "markdown": "-Woverloaded-shift-op-parentheses clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#woverloaded-shift-op-parentheses)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticOverloadedShiftOpParentheses", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "FSharpInterpolatedString", + "shortDescription": { + "text": "Format string can be replaced with an interpolated string" + }, + "fullDescription": { + "text": "Format string can be replaced with an interpolated string.", + "markdown": "Format string can be replaced with an interpolated string." + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "FSharpInterpolatedString", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "F#/Redundancies in Code", + "index": 67, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ReplaceWithFieldKeyword", + "shortDescription": { + "text": "Replace with 'field' keyword" + }, + "fullDescription": { + "text": "Replace explicit field declaration with a 'field' keyword usage in corresponding property declaration (anonymous field)", + "markdown": "Replace explicit field declaration with a 'field' keyword usage in corresponding property declaration (anonymous field)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "ReplaceWithFieldKeyword", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Language Usage Opportunities", + "index": 7, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ArrangeTypeModifiers", + "shortDescription": { + "text": "Use explicit or implicit modifier definition for types" + }, + "fullDescription": { + "text": "'internal' modifier can be safely added/removed from types without changing code semantics Learn more...", + "markdown": "'internal' modifier can be safely added/removed from types without changing code semantics [Learn more...](https://www.jetbrains.com/help/rider/ArrangeTypeModifiers.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "ArrangeTypeModifiers", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Syntax Style", + "index": 21, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticNonModularIncludeInFrameworkModule", + "shortDescription": { + "text": "non-modular-include-in-framework-module clang diagnostic" + }, + "fullDescription": { + "text": "-Wnon-modular-include-in-framework-module clang diagnostic · Learn more", + "markdown": "-Wnon-modular-include-in-framework-module clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wnon-modular-include-in-framework-module)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticNonModularIncludeInFrameworkModule", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "LocalFunctionHidesMethod", + "shortDescription": { + "text": "Local function hides method" + }, + "fullDescription": { + "text": "Local function has the same name as a method and hides it", + "markdown": "Local function has the same name as a method and hides it" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "LocalFunctionHidesMethod", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Unity.LoadSceneAmbiguousSceneName", + "shortDescription": { + "text": "Short scene name is not unique" + }, + "fullDescription": { + "text": "There are several scenes with the same name in the Unity build settings. Only scene with smallest index will be used.", + "markdown": "There are several scenes with the same name in the Unity build settings. Only scene with smallest index will be used." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "Unity.LoadSceneAmbiguousSceneName", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Unity", + "index": 19, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Unity.LoadSceneDisabledSceneName", + "shortDescription": { + "text": "Scene is disabled in the build settings" + }, + "fullDescription": { + "text": "Scene is disabled in the Unity build settings, so it could not be loaded", + "markdown": "Scene is disabled in the Unity build settings, so it could not be loaded" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "Unity.LoadSceneDisabledSceneName", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Unity", + "index": 19, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Unity.BurstStringFormatInvalidArgument", + "shortDescription": { + "text": "Burst: String.Format(format, ...) invalid argument type" + }, + "fullDescription": { + "text": "Burst: String.Format(format, ...) invalid argument type", + "markdown": "Burst: String.Format(format, ...) invalid argument type" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "Unity.BurstStringFormatInvalidArgument", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Unity Burst Compiler Warnings", + "index": 54, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ReturnTypeCanBeNotNullable", + "shortDescription": { + "text": "Return type of a function can be non-nullable" + }, + "fullDescription": { + "text": "Function's return type is declared as nullable but it never returns nullable values", + "markdown": "Function's return type is declared as nullable but it never returns nullable values" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "ReturnTypeCanBeNotNullable", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticDefaultedFunctionDeleted", + "shortDescription": { + "text": "defaulted-function-deleted clang diagnostic" + }, + "fullDescription": { + "text": "-Wdefaulted-function-deleted clang diagnostic · Learn more", + "markdown": "-Wdefaulted-function-deleted clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdefaulted-function-deleted)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticDefaultedFunctionDeleted", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MissingBodyTag", + "shortDescription": { + "text": "Important tags or attributes missing (missing )" + }, + "fullDescription": { + "text": "<([)html(]) $attr1$>$cont$", + "markdown": "\\<(\\[)html(\\]) $attr1$\\>$cont$" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "MissingBodyTag", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "HTML/Common Practices and Code Improvements", + "index": 68, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppOutParameterMustBeWritten", + "shortDescription": { + "text": "The 'out' parameter must be assigned" + }, + "fullDescription": { + "text": "In HLSL 'out' parameters must be assigned before exiting the function", + "markdown": "In HLSL 'out' parameters must be assigned before exiting the function" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppOutParameterMustBeWritten", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Compiler Warnings", + "index": 69, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Xaml.BindingWithContextNotResolved", + "shortDescription": { + "text": "Unresolved binding path when DataContext is known" + }, + "fullDescription": { + "text": "Unresolved binding path when DataContext for data binding is specified, but symbol cannot be found", + "markdown": "Unresolved binding path when DataContext for data binding is specified, but symbol cannot be found" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "Xaml.BindingWithContextNotResolved", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "XAML/Code Notification", + "index": 5, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppWarningDirective", + "shortDescription": { + "text": "#warning directive" + }, + "fullDescription": { + "text": "#warning preprocessor directive", + "markdown": "#warning preprocessor directive" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppWarningDirective", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Compiler Warnings", + "index": 69, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticOutOfScopeFunction", + "shortDescription": { + "text": "out-of-scope-function clang diagnostic" + }, + "fullDescription": { + "text": "-Wout-of-scope-function clang diagnostic · Learn more", + "markdown": "-Wout-of-scope-function clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wout-of-scope-function)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticOutOfScopeFunction", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ArrangeConstructorOrDestructorBody", + "shortDescription": { + "text": "Use preferred body style (convert into constructor or destructor with preferred body style)" + }, + "fullDescription": { + "text": "Use expression or block body Learn more...", + "markdown": "Use expression or block body [Learn more...](https://www.jetbrains.com/help/rider/ArrangeConstructorOrDestructorBody.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ArrangeConstructorOrDestructorBody", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Syntax Style", + "index": 21, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Html.TagShouldNotBeSelfClosed", + "shortDescription": { + "text": "Wrong self-closed tag" + }, + "fullDescription": { + "text": "Wrong self-closed tag in HTML and related technologies", + "markdown": "Wrong self-closed tag in HTML and related technologies" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "Html.TagShouldNotBeSelfClosed", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "HTML/Potential Code Quality Issues", + "index": 51, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticModuleConflict", + "shortDescription": { + "text": "module-conflict clang diagnostic" + }, + "fullDescription": { + "text": "-Wmodule-conflict clang diagnostic · Learn more", + "markdown": "-Wmodule-conflict clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmodule-conflict)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticModuleConflict", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RedundantExtendsListEntry", + "shortDescription": { + "text": "Redundant class or interface specification in base types list" + }, + "fullDescription": { + "text": "Type is either mentioned in the base types list of other part or it is an interface and appears as other type's base and contains no explicit implementations Learn more...", + "markdown": "Type is either mentioned in the base types list of other part or it is an interface and appears as other type's base and contains no explicit implementations [Learn more...](https://www.jetbrains.com/help/rider/RedundantExtendsListEntry.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "RedundantExtendsListEntry", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Redundancies in Symbol Declarations", + "index": 36, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ReturnValueOfPureMethodIsNotUsed", + "shortDescription": { + "text": "Return value of pure method is not used" + }, + "fullDescription": { + "text": "Return value of pure method is not used Learn more...", + "markdown": "Return value of pure method is not used [Learn more...](https://www.jetbrains.com/help/rider/ReturnValueOfPureMethodIsNotUsed.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "ReturnValueOfPureMethodIsNotUsed", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticConfigMacros", + "shortDescription": { + "text": "config-macros clang diagnostic" + }, + "fullDescription": { + "text": "-Wconfig-macros clang diagnostic · Learn more", + "markdown": "-Wconfig-macros clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wconfig-macros)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticConfigMacros", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticDocumentationUnknownCommand", + "shortDescription": { + "text": "documentation-unknown-command clang diagnostic" + }, + "fullDescription": { + "text": "-Wdocumentation-unknown-command clang diagnostic · Learn more", + "markdown": "-Wdocumentation-unknown-command clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdocumentation-unknown-command)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticDocumentationUnknownCommand", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "EmptyStatement", + "shortDescription": { + "text": "Empty statement is redundant" + }, + "fullDescription": { + "text": "Empty statement is redundant Learn more...", + "markdown": "Empty statement is redundant [Learn more...](https://www.jetbrains.com/help/rider/EmptyStatement.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "EmptyStatement", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 14, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "NotAccessedPositionalProperty.Local", + "shortDescription": { + "text": "Non-accessed positional property (private accessibility)" + }, + "fullDescription": { + "text": "Positional property is never accessed for reading Learn more...", + "markdown": "Positional property is never accessed for reading [Learn more...](https://www.jetbrains.com/help/rider/NotAccessedPositionalProperty.Local.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "NotAccessedPositionalProperty.Local", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Unity.IncorrectMethodSignatureInStringLiteral", + "shortDescription": { + "text": "Method referenced in string literal does not have the expected signature" + }, + "fullDescription": { + "text": "Method referenced in string literal does not have the expected signature.", + "markdown": "Method referenced in string literal does not have the expected signature." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "Unity.IncorrectMethodSignatureInStringLiteral", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Unity", + "index": 19, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Xaml.RedundantFreezeAttribute", + "shortDescription": { + "text": "Redundant 'Freeze' attribute" + }, + "fullDescription": { + "text": "Freeze attribute is not used and can be safely removed", + "markdown": "Freeze attribute is not used and can be safely removed" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "Xaml.RedundantFreezeAttribute", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "XAML/Redundancies in Code", + "index": 71, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UnassignedGetOnlyAutoProperty", + "shortDescription": { + "text": "Get-only auto-property is never assigned" + }, + "fullDescription": { + "text": "Auto-property without setter has no initializer or is never assigned in constructor", + "markdown": "Auto-property without setter has no initializer or is never assigned in constructor" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "UnassignedGetOnlyAutoProperty", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 14, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppUE4BlueprintCallableFunctionMayBeStatic", + "shortDescription": { + "text": "BlueprintCallable function can be made static" + }, + "fullDescription": { + "text": "BlueprintCallable function can be made static", + "markdown": "BlueprintCallable function can be made static" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "CppUE4BlueprintCallableFunctionMayBeStatic", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Unreal Engine", + "index": 6, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyBugproneUnhandledSelfAssignment", + "shortDescription": { + "text": "bugprone-unhandled-self-assignment clang-tidy check" + }, + "fullDescription": { + "text": "bugprone-unhandled-self-assignment clang-tidy check · Learn more", + "markdown": "bugprone-unhandled-self-assignment clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/unhandled-self-assignment.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyBugproneUnhandledSelfAssignment", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyBugproneSuspiciousMemoryComparison", + "shortDescription": { + "text": "bugprone-suspicious-memory-comparison clang-tidy check" + }, + "fullDescription": { + "text": "bugprone-suspicious-memory-comparison clang-tidy check · Learn more", + "markdown": "bugprone-suspicious-memory-comparison clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/suspicious-memory-comparison.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyBugproneSuspiciousMemoryComparison", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "AssignNullToNotNullAttribute", + "shortDescription": { + "text": "Possible 'null' assignment to non-nullable entity" + }, + "fullDescription": { + "text": "An expression that can have 'null' value is assigned to an entity marked with 'Value cannot be null' attribute. In particular, this can happen when passing such value to a method whose parameter is marked with 'Value cannot be null' attribute. Learn more...", + "markdown": "An expression that can have 'null' value is assigned to an entity marked with 'Value cannot be null' attribute. In particular, this can happen when passing such value to a method whose parameter is marked with 'Value cannot be null' attribute. [Learn more...](https://www.jetbrains.com/help/rider/AssignNullToNotNullAttribute.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "AssignNullToNotNullAttribute", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Constraints Violations", + "index": 73, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyModernizeUseStdPrint", + "shortDescription": { + "text": "modernize-use-std-print clang-tidy check" + }, + "fullDescription": { + "text": "modernize-use-std-print clang-tidy check · Learn more", + "markdown": "modernize-use-std-print clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-std-print.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyModernizeUseStdPrint", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppDeclarationSpecifierWithoutDeclarators", + "shortDescription": { + "text": "Declaration specifier with no declarators" + }, + "fullDescription": { + "text": "A declaration specifier is ignored when there are no declarators", + "markdown": "A declaration specifier is ignored when there are no declarators" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppDeclarationSpecifierWithoutDeclarators", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Potential Code Quality Issues", + "index": 9, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticDuplicateMethodArg", + "shortDescription": { + "text": "duplicate-method-arg clang diagnostic" + }, + "fullDescription": { + "text": "-Wduplicate-method-arg clang diagnostic · Learn more", + "markdown": "-Wduplicate-method-arg clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wduplicate-method-arg)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticDuplicateMethodArg", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "WebConfig.ModuleQualificationResolve", + "shortDescription": { + "text": "Module qualification required" + }, + "fullDescription": { + "text": "Module qualification required for type resolution", + "markdown": "Module qualification required for type resolution" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "WebConfig.ModuleQualificationResolve", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "Web.Config/Potential Code Quality Issues", + "index": 75, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyCppcoreguidelinesNonPrivateMemberVariablesInClasses", + "shortDescription": { + "text": "cppcoreguidelines-non-private-member-variables-in-classes clang-tidy check" + }, + "fullDescription": { + "text": "cppcoreguidelines-non-private-member-variables-in-classes clang-tidy check · Learn more", + "markdown": "cppcoreguidelines-non-private-member-variables-in-classes clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/non-private-member-variables-in-classes.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyCppcoreguidelinesNonPrivateMemberVariablesInClasses", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangAnalyzerOsxCocoaSelfInit", + "shortDescription": { + "text": "osx.cocoa.SelfInit clang static analyzer check" + }, + "fullDescription": { + "text": "osx.cocoa.SelfInit clang static analyzer check · Learn more", + "markdown": "osx.cocoa.SelfInit clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaSelfInit", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Static Analyzer Checks", + "index": 32, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "IntroduceOptionalParameters.Global", + "shortDescription": { + "text": "Introduce optional parameters (non-private accessibility)" + }, + "fullDescription": { + "text": "Introduce optional parameters to overload method", + "markdown": "Introduce optional parameters to overload method" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "IntroduceOptionalParameters.Global", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Language Usage Opportunities", + "index": 7, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyCppcoreguidelinesNoexceptSwap", + "shortDescription": { + "text": "cppcoreguidelines-noexcept-swap clang-tidy check" + }, + "fullDescription": { + "text": "cppcoreguidelines-noexcept-swap clang-tidy check · Learn more", + "markdown": "cppcoreguidelines-noexcept-swap clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/noexcept-swap.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyCppcoreguidelinesNoexceptSwap", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "DoubleNegationOperator", + "shortDescription": { + "text": "Double negation operator" + }, + "fullDescription": { + "text": "Double negation is meaningless bool b = !!condition; Learn more...", + "markdown": "Double negation is meaningless\n\n```\nbool b = !!condition;\n```\n\n[Learn more...](https://www.jetbrains.com/help/rider/DoubleNegationOperator.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "DoubleNegationOperator", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Redundancies in Code", + "index": 23, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyGoogleBuildNamespaces", + "shortDescription": { + "text": "google-build-namespaces clang-tidy check" + }, + "fullDescription": { + "text": "google-build-namespaces clang-tidy check · Learn more", + "markdown": "google-build-namespaces clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/google/build-namespaces.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyGoogleBuildNamespaces", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyBugproneForwardingReferenceOverload", + "shortDescription": { + "text": "bugprone-forwarding-reference-overload clang-tidy check" + }, + "fullDescription": { + "text": "bugprone-forwarding-reference-overload clang-tidy check · Learn more", + "markdown": "bugprone-forwarding-reference-overload clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/forwarding-reference-overload.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyBugproneForwardingReferenceOverload", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyModernizeUseNullptr", + "shortDescription": { + "text": "modernize-use-nullptr clang-tidy check" + }, + "fullDescription": { + "text": "modernize-use-nullptr clang-tidy check · Learn more", + "markdown": "modernize-use-nullptr clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-nullptr.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyModernizeUseNullptr", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ReplaceWithSingleCallToSingle", + "shortDescription": { + "text": "Replace with single call to Single(..)" + }, + "fullDescription": { + "text": "$seq$.Where($x$ => $expr$).Single()", + "markdown": "$seq$.Where($x$ =\\> $expr$).Single()" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "ReplaceWithSingleCallToSingle", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 14, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyModernizePassByValue", + "shortDescription": { + "text": "modernize-pass-by-value clang-tidy check" + }, + "fullDescription": { + "text": "modernize-pass-by-value clang-tidy check · Learn more", + "markdown": "modernize-pass-by-value clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/pass-by-value.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyModernizePassByValue", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticRegister", + "shortDescription": { + "text": "register clang diagnostic" + }, + "fullDescription": { + "text": "-Wregister clang diagnostic · Learn more", + "markdown": "-Wregister clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wregister)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticRegister", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CSharpWarnings__CS0472", + "shortDescription": { + "text": "The result of the expression is always 'true' or 'false' since a value of value type is never equal to 'null'" + }, + "fullDescription": { + "text": "Learn more...", + "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/misc/cs0472)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CSharpWarnings__CS0472", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Compiler Warnings", + "index": 27, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Unity.BurstFunctionSignatureContainsManagedTypes", + "shortDescription": { + "text": "Function signature cannot contain managed types" + }, + "fullDescription": { + "text": "Function signature cannot contain managed types", + "markdown": "Function signature cannot contain managed types" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "Unity.BurstFunctionSignatureContainsManagedTypes", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Unity Burst Compiler Warnings", + "index": 54, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticGnuConditionalOmittedOperand", + "shortDescription": { + "text": "gnu-conditional-omitted-operand clang diagnostic" + }, + "fullDescription": { + "text": "-Wgnu-conditional-omitted-operand clang diagnostic · Learn more", + "markdown": "-Wgnu-conditional-omitted-operand clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wgnu-conditional-omitted-operand)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticGnuConditionalOmittedOperand", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticClassVarargs", + "shortDescription": { + "text": "class-varargs clang diagnostic" + }, + "fullDescription": { + "text": "-Wclass-varargs clang diagnostic · Learn more", + "markdown": "-Wclass-varargs clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wclass-varargs)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticClassVarargs", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticCastFunctionType", + "shortDescription": { + "text": "cast-function-type clang diagnostic" + }, + "fullDescription": { + "text": "-Wcast-function-type clang diagnostic · Learn more", + "markdown": "-Wcast-function-type clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wcast-function-type)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticCastFunctionType", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppWrongIndentSize", + "shortDescription": { + "text": "Incorrect indent (incorrect indent size)" + }, + "fullDescription": { + "text": "Incorrect indent size", + "markdown": "Incorrect indent size" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppWrongIndentSize", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Formatting", + "index": 28, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ArrangeRedundantParentheses", + "shortDescription": { + "text": "Remove redundant parentheses" + }, + "fullDescription": { + "text": "Parentheses can be safely removed from expressions without changing code semantics Learn more...", + "markdown": "Parentheses can be safely removed from expressions without changing code semantics [Learn more...](https://www.jetbrains.com/help/rider/ArrangeRedundantParentheses.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "ArrangeRedundantParentheses", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Syntax Style", + "index": 21, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Xaml.ResourceFilePathCaseMismatch", + "shortDescription": { + "text": "Path to resource is case-sensitive" + }, + "fullDescription": { + "text": "Path to resource is case-sensitive", + "markdown": "Path to resource is case-sensitive" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "Xaml.ResourceFilePathCaseMismatch", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "XAML/Code Notification", + "index": 5, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ReplaceWithLastOrDefault.2", + "shortDescription": { + "text": "Replace with LastOrDefault($args$)" + }, + "fullDescription": { + "text": "$expr$ && $seq$.Any($args$) ? $seq$.Last($args$) : null", + "markdown": "$expr$ \\&\\& $seq$.Any($args$) ? $seq$.Last($args$) : null" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "ReplaceWithLastOrDefault.2", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 14, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticMissingPrototypes", + "shortDescription": { + "text": "missing-prototypes clang diagnostic" + }, + "fullDescription": { + "text": "-Wmissing-prototypes clang diagnostic · Learn more", + "markdown": "-Wmissing-prototypes clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmissing-prototypes)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticMissingPrototypes", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ReplaceWithLastOrDefault.3", + "shortDescription": { + "text": "Replace with LastOrDefault($args$)" + }, + "fullDescription": { + "text": "$seq$.Any($args$) ? $seq$.Last($args$) : default($T$)", + "markdown": "$seq$.Any($args$) ? $seq$.Last($args$) : default($T$)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "ReplaceWithLastOrDefault.3", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 14, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "PossibleInvalidCastExceptionInForeachLoop", + "shortDescription": { + "text": "Possible 'System.InvalidCastException' in foreach loop" + }, + "fullDescription": { + "text": "Possible cast expression of incompatible type Learn more...", + "markdown": "Possible cast expression of incompatible type [Learn more...](https://www.jetbrains.com/help/rider/PossibleInvalidCastExceptionInForeachLoop.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "PossibleInvalidCastExceptionInForeachLoop", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ReplaceWithLastOrDefault.1", + "shortDescription": { + "text": "Replace with LastOrDefault($args$)" + }, + "fullDescription": { + "text": "$seq$.Any($args$) ? $seq$.Last($args$) : null", + "markdown": "$seq$.Any($args$) ? $seq$.Last($args$) : null" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "ReplaceWithLastOrDefault.1", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 14, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "PossiblyImpureMethodCallOnReadonlyVariable", + "shortDescription": { + "text": "Possibly impure struct method is called on readonly variable: struct value always copied before invocation" + }, + "fullDescription": { + "text": "Possibly impure struct instance method or 'this ref' extension method is called on readonly field/in parameter/ref readonly return: struct value always copied before invocation Learn more...", + "markdown": "Possibly impure struct instance method or 'this ref' extension method is called on readonly field/in parameter/ref readonly return: struct value always copied before invocation [Learn more...](https://www.jetbrains.com/help/rider/PossiblyImpureMethodCallOnReadonlyVariable.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "PossiblyImpureMethodCallOnReadonlyVariable", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyAndroidCloexecPipe2", + "shortDescription": { + "text": "android-cloexec-pipe2 clang-tidy check" + }, + "fullDescription": { + "text": "android-cloexec-pipe2 clang-tidy check · Learn more", + "markdown": "android-cloexec-pipe2 clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-pipe2.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyAndroidCloexecPipe2", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ReplaceWithLastOrDefault.4", + "shortDescription": { + "text": "Replace with LastOrDefault($args$)" + }, + "fullDescription": { + "text": "$expr$ && $seq$.Any($args$) ? $seq$.Last($args$) : default($T$)", + "markdown": "$expr$ \\&\\& $seq$.Any($args$) ? $seq$.Last($args$) : default($T$)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "ReplaceWithLastOrDefault.4", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 14, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppUE4CodingStandardUClassNamingViolationError", + "shortDescription": { + "text": "Inconsistent Unreal Engine UCLASS Naming" + }, + "fullDescription": { + "text": "Class is declared with UCLASS or USTRUCT macro but its name doesn't match the Unreal Engine's coding standard naming style; this will lead to a build error. This inspection includes three rules: classes inherited from AActor must be prefixed by 'A', classes inherited from UObject must be prefixed by 'U', and USTRUCTS must be prefixed by 'F'.", + "markdown": "Class is declared with UCLASS or USTRUCT macro but its name doesn't match the Unreal Engine's coding standard naming style; this will lead to a build error. This inspection includes three rules: classes inherited from AActor must be prefixed by 'A', classes inherited from UObject must be prefixed by 'U', and USTRUCTS must be prefixed by 'F'." + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "CppUE4CodingStandardUClassNamingViolationError", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Unreal Engine", + "index": 6, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticMicrosoftTemplate", + "shortDescription": { + "text": "microsoft-template clang diagnostic" + }, + "fullDescription": { + "text": "-Wmicrosoft-template clang diagnostic · Learn more", + "markdown": "-Wmicrosoft-template clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-template)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftTemplate", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Unity.BurstTryNotSupported", + "shortDescription": { + "text": "Try statement is not supported" + }, + "fullDescription": { + "text": "Try statement is not supported", + "markdown": "Try statement is not supported" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "Unity.BurstTryNotSupported", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Unity Burst Compiler Warnings", + "index": 54, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RedundantEnumCaseLabelForDefaultSection", + "shortDescription": { + "text": "Redundant 'case' label before default section" + }, + "fullDescription": { + "text": "'case' label statement with enum value in front of default section is redundant", + "markdown": "'case' label statement with enum value in front of default section is redundant" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "RedundantEnumCaseLabelForDefaultSection", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Redundancies in Code", + "index": 23, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppBadParensLineBreaks", + "shortDescription": { + "text": "Incorrect line breaks (around parenthesis)" + }, + "fullDescription": { + "text": "Around parenthesis", + "markdown": "Around parenthesis" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppBadParensLineBreaks", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Formatting", + "index": 28, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyPerformanceTypePromotionInMathFn", + "shortDescription": { + "text": "performance-type-promotion-in-math-fn clang-tidy check" + }, + "fullDescription": { + "text": "performance-type-promotion-in-math-fn clang-tidy check · Learn more", + "markdown": "performance-type-promotion-in-math-fn clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/performance/type-promotion-in-math-fn.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyPerformanceTypePromotionInMathFn", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticUnsequenced", + "shortDescription": { + "text": "unsequenced clang diagnostic" + }, + "fullDescription": { + "text": "-Wunsequenced clang diagnostic · Learn more", + "markdown": "-Wunsequenced clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunsequenced)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticUnsequenced", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticDuplicateDeclSpecifier", + "shortDescription": { + "text": "duplicate-decl-specifier clang diagnostic" + }, + "fullDescription": { + "text": "-Wduplicate-decl-specifier clang diagnostic · Learn more", + "markdown": "-Wduplicate-decl-specifier clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wduplicate-decl-specifier)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticDuplicateDeclSpecifier", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppBadSymbolSpaces", + "shortDescription": { + "text": "Incorrect spacing (around operator symbols)" + }, + "fullDescription": { + "text": "Around operator symbols", + "markdown": "Around operator symbols" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppBadSymbolSpaces", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Formatting", + "index": 28, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyCppcoreguidelinesExplicitVirtualFunctions", + "shortDescription": { + "text": "cppcoreguidelines-explicit-virtual-functions clang-tidy check" + }, + "fullDescription": { + "text": "cppcoreguidelines-explicit-virtual-functions clang-tidy check · Learn more", + "markdown": "cppcoreguidelines-explicit-virtual-functions clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/explicit-virtual-functions.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyCppcoreguidelinesExplicitVirtualFunctions", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ReplaceWithOfType.Any.2", + "shortDescription": { + "text": "Replace with OfType().Any() (replace with OfType().Any(..))" + }, + "fullDescription": { + "text": "$seq$.Select($x$ => $x$ as $T$).Any($y$ => $y$ != null && $expr$)", + "markdown": "$seq$.Select($x$ =\\> $x$ as $T$).Any($y$ =\\> $y$ != null \\&\\& $expr$)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "ReplaceWithOfType.Any.2", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 14, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "VulnerableApi", + "shortDescription": { + "text": "Vulnerable API usage" + }, + "fullDescription": { + "text": "Reports usages of Vulnerable APIs in imported dependencies Learn more...", + "markdown": "Reports usages of Vulnerable APIs in imported dependencies [Learn more...](https://www.jetbrains.com/help/rider/VulnerableApi.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "VulnerableApi", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Security", + "index": 80, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ReplaceWithOfType.Any.1", + "shortDescription": { + "text": "Replace with OfType().Any()" + }, + "fullDescription": { + "text": "$seq$.Select($x$ => $x$ as $T$).Any($y$ => $y$ != null)", + "markdown": "$seq$.Select($x$ =\\> $x$ as $T$).Any($y$ =\\> $y$ != null)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "ReplaceWithOfType.Any.1", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 14, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "PossibleInvalidOperationException", + "shortDescription": { + "text": "Possible 'System.InvalidOperationException'" + }, + "fullDescription": { + "text": "Possible call to method is invalid for the object's current state Learn more...", + "markdown": "Possible call to method is invalid for the object's current state [Learn more...](https://www.jetbrains.com/help/rider/PossibleInvalidOperationException.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "PossibleInvalidOperationException", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticIndependentClassAttribute", + "shortDescription": { + "text": "IndependentClass-attribute clang diagnostic" + }, + "fullDescription": { + "text": "-WIndependentClass-attribute clang diagnostic · Learn more", + "markdown": "-WIndependentClass-attribute clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wIndependentClass-attribute)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticIndependentClassAttribute", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticSignedEnumBitfield", + "shortDescription": { + "text": "signed-enum-bitfield clang diagnostic" + }, + "fullDescription": { + "text": "-Wsigned-enum-bitfield clang diagnostic · Learn more", + "markdown": "-Wsigned-enum-bitfield clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wsigned-enum-bitfield)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticSignedEnumBitfield", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ArrangeVarKeywordsInDeconstructingDeclaration", + "shortDescription": { + "text": "Join or separate 'var' in deconstruction declarations" + }, + "fullDescription": { + "text": "Use preferred code style to check joined/separate 'var' usages in deconstruction declarations Learn more...", + "markdown": "Use preferred code style to check joined/separate 'var' usages in deconstruction declarations [Learn more...](https://www.jetbrains.com/help/rider/ArrangeVarKeywordsInDeconstructingDeclaration.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "ArrangeVarKeywordsInDeconstructingDeclaration", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Syntax Style", + "index": 21, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangAnalyzerApiModelingTrustReturnsNonnull", + "shortDescription": { + "text": "apiModeling.TrustReturnsNonnull clang static analyzer check" + }, + "fullDescription": { + "text": "apiModeling.TrustReturnsNonnull clang static analyzer check · Learn more", + "markdown": "apiModeling.TrustReturnsNonnull clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangAnalyzerApiModelingTrustReturnsNonnull", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Static Analyzer Checks", + "index": 32, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Unity.InstantiateWithoutParent", + "shortDescription": { + "text": "Setting 'parent' property immediately after object instantiation is inefficient" + }, + "fullDescription": { + "text": "Instantiating a Unity object and setting the 'parent' property as separate operations is inefficient, as the transform hierarchy is created and immediately replaced. Combine setting the 'parent' property with the call to instantiate the object. Learn more...", + "markdown": "Instantiating a Unity object and setting the 'parent' property as separate operations is inefficient, as the transform hierarchy is created and immediately replaced. Combine setting the 'parent' property with the call to instantiate the object. [Learn more...](https://github.com/JetBrains/resharper-unity/wiki/Avoid-using-Object.Instantiate-without-“Transform-Parent”-parameter-and-using-SetParent-later)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "Unity.InstantiateWithoutParent", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Unity", + "index": 19, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticShiftSignOverflow", + "shortDescription": { + "text": "shift-sign-overflow clang diagnostic" + }, + "fullDescription": { + "text": "-Wshift-sign-overflow clang diagnostic · Learn more", + "markdown": "-Wshift-sign-overflow clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wshift-sign-overflow)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticShiftSignOverflow", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticShadowFieldInConstructor", + "shortDescription": { + "text": "shadow-field-in-constructor clang diagnostic" + }, + "fullDescription": { + "text": "-Wshadow-field-in-constructor clang diagnostic · Learn more", + "markdown": "-Wshadow-field-in-constructor clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wshadow-field-in-constructor)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticShadowFieldInConstructor", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UseObjectOrCollectionInitializer", + "shortDescription": { + "text": "Use object or collection initializer when possible" + }, + "fullDescription": { + "text": "Suggest to replace object sequential assignments to newly created object fields by object initializer Learn more...", + "markdown": "Suggest to replace object sequential assignments to newly created object fields by object initializer [Learn more...](https://www.jetbrains.com/help/rider/UseObjectOrCollectionInitializer.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "UseObjectOrCollectionInitializer", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Language Usage Opportunities", + "index": 7, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MemberCanBePrivate.Global", + "shortDescription": { + "text": "Member can be made private (non-private accessibility)" + }, + "fullDescription": { + "text": "Member can be made private Learn more...", + "markdown": "Member can be made private [Learn more...](https://www.jetbrains.com/help/rider/MemberCanBePrivate.Global.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "MemberCanBePrivate.Global", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 14, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppDiscardedPostfixOperatorResult", + "shortDescription": { + "text": "Result of a postfix operator is discarded" + }, + "fullDescription": { + "text": "Result of a postfix operator is discarded. It might be more efficient to use a prefix form of the operator.", + "markdown": "Result of a postfix operator is discarded. It might be more efficient to use a prefix form of the operator." + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "CppDiscardedPostfixOperatorResult", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Common Practices and Code Improvements", + "index": 17, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UseCollectionCountProperty", + "shortDescription": { + "text": "Use collection's count property" + }, + "fullDescription": { + "text": "Usage of 'Enumerable.Count()' method can be replaced with direct collection count property access Learn more...", + "markdown": "Usage of 'Enumerable.Count()' method can be replaced with direct collection count property access [Learn more...](https://www.jetbrains.com/help/rider/UseCollectionCountProperty.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "UseCollectionCountProperty", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticPragmaPack", + "shortDescription": { + "text": "pragma-pack clang diagnostic" + }, + "fullDescription": { + "text": "-Wpragma-pack clang diagnostic · Learn more", + "markdown": "-Wpragma-pack clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpragma-pack)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticPragmaPack", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyGoogleReadabilityTodo", + "shortDescription": { + "text": "google-readability-todo clang-tidy check" + }, + "fullDescription": { + "text": "google-readability-todo clang-tidy check · Learn more", + "markdown": "google-readability-todo clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/google/readability-todo.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyGoogleReadabilityTodo", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticDeprecatedType", + "shortDescription": { + "text": "deprecated-type clang diagnostic" + }, + "fullDescription": { + "text": "-Wdeprecated-type clang diagnostic · Learn more", + "markdown": "-Wdeprecated-type clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdeprecated-type)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedType", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppEmptyDeclaration", + "shortDescription": { + "text": "Declaration does not declare anything" + }, + "fullDescription": { + "text": "A declaration does not declare anything", + "markdown": "A declaration does not declare anything" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppEmptyDeclaration", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Potential Code Quality Issues", + "index": 9, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppIncompatiblePointerConversion", + "shortDescription": { + "text": "Implicit conversion to incompatible pointer type" + }, + "fullDescription": { + "text": "Implicit conversion to incompatible pointer type", + "markdown": "Implicit conversion to incompatible pointer type" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppIncompatiblePointerConversion", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Potential Code Quality Issues", + "index": 9, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangAnalyzerCoreUninitializedCapturedBlockVariable", + "shortDescription": { + "text": "core.uninitialized.CapturedBlockVariable clang static analyzer check" + }, + "fullDescription": { + "text": "core.uninitialized.CapturedBlockVariable clang static analyzer check · Learn more", + "markdown": "core.uninitialized.CapturedBlockVariable clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangAnalyzerCoreUninitializedCapturedBlockVariable", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Static Analyzer Checks", + "index": 32, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyMiscIncludeCleaner", + "shortDescription": { + "text": "misc-include-cleaner clang-tidy check" + }, + "fullDescription": { + "text": "misc-include-cleaner clang-tidy check · Learn more", + "markdown": "misc-include-cleaner clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/misc/include-cleaner.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyMiscIncludeCleaner", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticStringConversion", + "shortDescription": { + "text": "string-conversion clang diagnostic" + }, + "fullDescription": { + "text": "-Wstring-conversion clang diagnostic · Learn more", + "markdown": "-Wstring-conversion clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wstring-conversion)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticStringConversion", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "NotNullOrRequiredMemberIsNotInitialized", + "shortDescription": { + "text": "Non-nullable or required member is not initialized at constructor exit" + }, + "fullDescription": { + "text": "Non-nullable or required type member is not initialized in any execution path of the constructor Learn more...", + "markdown": "Non-nullable or required type member is not initialized in any execution path of the constructor [Learn more...](https://www.jetbrains.com/help/rider/NotNullOrRequiredMemberIsNotInitialized.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "NotNullOrRequiredMemberIsNotInitialized", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Constraints Violations", + "index": 73, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UseUnsignedRightShiftOperator", + "shortDescription": { + "text": "Use unsigned right shift operator '>>>'" + }, + "fullDescription": { + "text": "Use unsigned right shift operator '>>>' instead of manual casting and shifting", + "markdown": "Use unsigned right shift operator '\\>\\>\\>' instead of manual casting and shifting" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "UseUnsignedRightShiftOperator", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Language Usage Opportunities", + "index": 7, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticDeprecatedDeclarations", + "shortDescription": { + "text": "deprecated-declarations clang diagnostic" + }, + "fullDescription": { + "text": "-Wdeprecated-declarations clang diagnostic · Learn more", + "markdown": "-Wdeprecated-declarations clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdeprecated-declarations)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedDeclarations", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticUnreachableCodeLoopIncrement", + "shortDescription": { + "text": "unreachable-code-loop-increment clang diagnostic" + }, + "fullDescription": { + "text": "-Wunreachable-code-loop-increment clang diagnostic · Learn more", + "markdown": "-Wunreachable-code-loop-increment clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunreachable-code-loop-increment)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticUnreachableCodeLoopIncrement", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "VBReplaceWithOfType.Last.1", + "shortDescription": { + "text": "Replace with OfType().Last() (replace with OfType(Of ..)().Last())" + }, + "fullDescription": { + "text": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).Last(Function ($y$) $y$ IsNot Nothing)", + "markdown": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).Last(Function ($y$) $y$ IsNot Nothing)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "VBReplaceWithOfType.Last.1", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "VB.NET/Common Practices and Code Improvements", + "index": 40, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "OneWayOperationContractWithReturnType", + "shortDescription": { + "text": "One way operations must not return values" + }, + "fullDescription": { + "text": "Methods marked with OperationContract attribute as OneWay operations must not return values Learn more...", + "markdown": "Methods marked with OperationContract attribute as OneWay operations must not return values [Learn more...](https://www.jetbrains.com/help/rider/OneWayOperationContractWithReturnType.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "OneWayOperationContractWithReturnType", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "VBReplaceWithOfType.Last.2", + "shortDescription": { + "text": "Replace with OfType().Last() (replace with OfType(Of ..)().Last(..))" + }, + "fullDescription": { + "text": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).Last(Function ($y$) $y$ IsNot Nothing AndAlso $expr$)", + "markdown": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).Last(Function ($y$) $y$ IsNot Nothing AndAlso $expr$)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "VBReplaceWithOfType.Last.2", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "VB.NET/Common Practices and Code Improvements", + "index": 40, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "AnnotateCanBeNullTypeMember", + "shortDescription": { + "text": "Declaration nullability inferred (type member is inferred to be nullable)" + }, + "fullDescription": { + "text": "Type member is inferred to be nullable: consider annotating it with [CanBeNull] or [ItemCanBeNull] attribute", + "markdown": "Type member is inferred to be nullable: consider annotating it with \\[CanBeNull\\] or \\[ItemCanBeNull\\] attribute" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "AnnotateCanBeNullTypeMember", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 14, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UseThrowIfNullMethod", + "shortDescription": { + "text": "Use 'ArgumentNullException.ThrowIfNull'" + }, + "fullDescription": { + "text": "Replace throwing of 'ArgumentNullException' object with an invocation of the helper method", + "markdown": "Replace throwing of 'ArgumentNullException' object with an invocation of the helper method" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "UseThrowIfNullMethod", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 14, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ConvertToAutoPropertyWhenPossible", + "shortDescription": { + "text": "Convert property into auto-property (when possible)" + }, + "fullDescription": { + "text": "Converts property declaration into C# auto-property syntax", + "markdown": "Converts property declaration into C# auto-property syntax" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "ConvertToAutoPropertyWhenPossible", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Language Usage Opportunities", + "index": 7, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SimplifyStringInterpolation", + "shortDescription": { + "text": "Use format specifier in interpolated strings" + }, + "fullDescription": { + "text": "'.ToString()' call could be replaced with a format specifier", + "markdown": "'.ToString()' call could be replaced with a format specifier" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "SimplifyStringInterpolation", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MoveVariableDeclarationInsideLoopCondition", + "shortDescription": { + "text": "Move variable declaration inside loop condition" + }, + "fullDescription": { + "text": "Declare variable inside a loop condition using pattern matching syntax to reduce its scope and avoid doing a C-style assignment as a side effect", + "markdown": "Declare variable inside a loop condition using pattern matching syntax to reduce its scope and avoid doing a C-style assignment as a side effect" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "MoveVariableDeclarationInsideLoopCondition", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Language Usage Opportunities", + "index": 7, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticGnuIncludeNext", + "shortDescription": { + "text": "gnu-include-next clang diagnostic" + }, + "fullDescription": { + "text": "-Wgnu-include-next clang diagnostic · Learn more", + "markdown": "-Wgnu-include-next clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wgnu-include-next)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticGnuIncludeNext", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ReferenceEqualsWithValueType", + "shortDescription": { + "text": "'Object.ReferenceEquals' is always false because it is called with value type" + }, + "fullDescription": { + "text": "'Object.ReferenceEquals' is always false because it is called with value type", + "markdown": "'Object.ReferenceEquals' is always false because it is called with value type" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "ReferenceEqualsWithValueType", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SimplifyConditionalTernaryExpression", + "shortDescription": { + "text": "Simplify conditional ternary expression" + }, + "fullDescription": { + "text": "Ternary expression contains 'true' or 'false' in result branch, for example \r\n condition ? true : elseBranch\r\n condition ? thenBranch : true\r\n Learn more...", + "markdown": "Ternary expression contains 'true' or 'false' in result branch, for example\n\n```\n\r\n condition ? true : elseBranch\r\n condition ? thenBranch : true\r\n \n```\n\n[Learn more...](https://www.jetbrains.com/help/rider/SimplifyConditionalTernaryExpression.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "SimplifyConditionalTernaryExpression", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 14, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticEmbeddedDirective", + "shortDescription": { + "text": "embedded-directive clang diagnostic" + }, + "fullDescription": { + "text": "-Wembedded-directive clang diagnostic · Learn more", + "markdown": "-Wembedded-directive clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wembedded-directive)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticEmbeddedDirective", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangAnalyzerOptinOsxOSObjectCStyleCast", + "shortDescription": { + "text": "optin.osx.OSObjectCStyleCast clang static analyzer check" + }, + "fullDescription": { + "text": "optin.osx.OSObjectCStyleCast clang static analyzer check · Learn more", + "markdown": "optin.osx.OSObjectCStyleCast clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangAnalyzerOptinOsxOSObjectCStyleCast", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Static Analyzer Checks", + "index": 32, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "BadAttributeBracketsSpaces", + "shortDescription": { + "text": "Incorrect spacing (around attributes)" + }, + "fullDescription": { + "text": "Around attributes Learn more...", + "markdown": "Around attributes [Learn more...](https://www.jetbrains.com/help/rider/BadAttributeBracketsSpaces.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "BadAttributeBracketsSpaces", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Formatting", + "index": 24, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Mvc.AreaNotResolved", + "shortDescription": { + "text": "MVC (unknown area)" + }, + "fullDescription": { + "text": "Unknown ASP.NET MVC Area", + "markdown": "Unknown ASP.NET MVC Area" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "Mvc.AreaNotResolved", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "Aspx/Potential Code Quality Issues", + "index": 60, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyPerformanceImplicitConversionInLoop", + "shortDescription": { + "text": "performance-implicit-conversion-in-loop clang-tidy check" + }, + "fullDescription": { + "text": "performance-implicit-conversion-in-loop clang-tidy check · Learn more", + "markdown": "performance-implicit-conversion-in-loop clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/performance/implicit-conversion-in-loop.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyPerformanceImplicitConversionInLoop", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Asp.ResolveWarning", + "shortDescription": { + "text": "ASP.NET Resolve Warning" + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "Asp.ResolveWarning", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "Aspx/Potential Code Quality Issues", + "index": 60, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticMalformedWarningCheck", + "shortDescription": { + "text": "malformed-warning-check clang diagnostic" + }, + "fullDescription": { + "text": "-Wmalformed-warning-check clang diagnostic · Learn more", + "markdown": "-Wmalformed-warning-check clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmalformed-warning-check)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticMalformedWarningCheck", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyReadabilitySimplifyBooleanExpr", + "shortDescription": { + "text": "readability-simplify-boolean-expr clang-tidy check" + }, + "fullDescription": { + "text": "readability-simplify-boolean-expr clang-tidy check · Learn more", + "markdown": "readability-simplify-boolean-expr clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/simplify-boolean-expr.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyReadabilitySimplifyBooleanExpr", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticDeprecatedAltivecSrcCompat", + "shortDescription": { + "text": "deprecated-altivec-src-compat clang diagnostic" + }, + "fullDescription": { + "text": "-Wdeprecated-altivec-src-compat clang diagnostic · Learn more", + "markdown": "-Wdeprecated-altivec-src-compat clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdeprecated-altivec-src-compat)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedAltivecSrcCompat", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticExtraSemiStmt", + "shortDescription": { + "text": "extra-semi-stmt clang diagnostic" + }, + "fullDescription": { + "text": "-Wextra-semi-stmt clang diagnostic · Learn more", + "markdown": "-Wextra-semi-stmt clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wextra-semi-stmt)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticExtraSemiStmt", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "InternalOrPrivateMemberNotDocumented", + "shortDescription": { + "text": "Missing XML comment for private or internal type or member" + }, + "fullDescription": { + "text": "Missing XML comment for private or internal type or member", + "markdown": "Missing XML comment for private or internal type or member" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "InternalOrPrivateMemberNotDocumented", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 14, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticUnusedConstVariable", + "shortDescription": { + "text": "unused-const-variable clang diagnostic" + }, + "fullDescription": { + "text": "-Wunused-const-variable clang diagnostic · Learn more", + "markdown": "-Wunused-const-variable clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunused-const-variable)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticUnusedConstVariable", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "IsExpressionAlwaysFalse", + "shortDescription": { + "text": "The expression of 'is' operator is never of the provided type" + }, + "fullDescription": { + "text": "The expression of 'is' operator is never of the provided type", + "markdown": "The expression of 'is' operator is never of the provided type" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "IsExpressionAlwaysFalse", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticDllAttributeOnRedeclaration", + "shortDescription": { + "text": "dll-attribute-on-redeclaration clang diagnostic" + }, + "fullDescription": { + "text": "-Wdll-attribute-on-redeclaration clang diagnostic · Learn more", + "markdown": "-Wdll-attribute-on-redeclaration clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdll-attribute-on-redeclaration)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticDllAttributeOnRedeclaration", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppUENonExistentInputAction", + "shortDescription": { + "text": "Action with this name does not exist" + }, + "fullDescription": { + "text": "Action with this name does not exist", + "markdown": "Action with this name does not exist" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppUENonExistentInputAction", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Unreal Engine", + "index": 6, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticArcPerformSelectorLeaks", + "shortDescription": { + "text": "arc-performSelector-leaks clang diagnostic" + }, + "fullDescription": { + "text": "-Warc-performSelector-leaks clang diagnostic · Learn more", + "markdown": "-Warc-performSelector-leaks clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#warc-performSelector-leaks)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticArcPerformSelectorLeaks", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyModernizeAvoidCArrays", + "shortDescription": { + "text": "modernize-avoid-c-arrays clang-tidy check" + }, + "fullDescription": { + "text": "modernize-avoid-c-arrays clang-tidy check · Learn more", + "markdown": "modernize-avoid-c-arrays clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/avoid-c-arrays.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyModernizeAvoidCArrays", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppBadControlBracesIndent", + "shortDescription": { + "text": "Incorrect indent (around statement braces)" + }, + "fullDescription": { + "text": "Around statement braces", + "markdown": "Around statement braces" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppBadControlBracesIndent", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Formatting", + "index": 28, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticAnonEnumEnumConversion", + "shortDescription": { + "text": "anon-enum-enum-conversion clang diagnostic" + }, + "fullDescription": { + "text": "-Wanon-enum-enum-conversion clang diagnostic · Learn more", + "markdown": "-Wanon-enum-enum-conversion clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wanon-enum-enum-conversion)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticAnonEnumEnumConversion", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppCoroutineCallResolveError", + "shortDescription": { + "text": "Cannot resolve a required coroutine function" + }, + "fullDescription": { + "text": "A coroutine-related function which is required by the C++20 standard cannot be resolved", + "markdown": "A coroutine-related function which is required by the C++20 standard cannot be resolved" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppCoroutineCallResolveError", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Compiler Warnings", + "index": 69, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppRemoveRedundantBraces", + "shortDescription": { + "text": "Use preferred braces style (remove redundant braces)" + }, + "fullDescription": { + "text": "Braces can be safely removed without changing code semantics", + "markdown": "Braces can be safely removed without changing code semantics" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppRemoveRedundantBraces", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Syntax Style", + "index": 83, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppDefaultIsUsedAsIdentifier", + "shortDescription": { + "text": "Keyword 'default' is used as identifier" + }, + "fullDescription": { + "text": "'default' is a keyword in the C++ standard and cannot be used as an identifier", + "markdown": "'default' is a keyword in the C++ standard and cannot be used as an identifier" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppDefaultIsUsedAsIdentifier", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Potential Code Quality Issues", + "index": 9, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticIncompleteUmbrella", + "shortDescription": { + "text": "incomplete-umbrella clang diagnostic" + }, + "fullDescription": { + "text": "-Wincomplete-umbrella clang diagnostic · Learn more", + "markdown": "-Wincomplete-umbrella clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wincomplete-umbrella)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticIncompleteUmbrella", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ArgumentsStyleOther", + "shortDescription": { + "text": "Use preferred argument style" + }, + "fullDescription": { + "text": "Prefer using named/positional argument for all expressions except literal, named and anonymous function Learn more...", + "markdown": "Prefer using named/positional argument for all expressions except literal, named and anonymous function [Learn more...](https://www.jetbrains.com/help/rider/ArgumentsStyleOther.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ArgumentsStyleOther", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Syntax Style", + "index": 21, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RedundantDefaultMemberInitializer", + "shortDescription": { + "text": "Redundant member initializer" + }, + "fullDescription": { + "text": "Initializing field/property/event with default value is redundant Learn more...", + "markdown": "Initializing field/property/event with default value is redundant [Learn more...](https://www.jetbrains.com/help/rider/RedundantDefaultMemberInitializer.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "RedundantDefaultMemberInitializer", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Redundancies in Symbol Declarations", + "index": 36, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Xaml.RedundantXamarinFormsClassDeclaration", + "shortDescription": { + "text": "Resource cannot be accessed by class name because of x:Key attribute" + }, + "fullDescription": { + "text": "Resource cannot be accessed by class name because of x:Key attribute", + "markdown": "Resource cannot be accessed by class name because of x:Key attribute" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "Xaml.RedundantXamarinFormsClassDeclaration", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "XAML/Potential Code Quality Issues", + "index": 44, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UnusedLabel", + "shortDescription": { + "text": "Unused label" + }, + "fullDescription": { + "text": "Label is never referenced", + "markdown": "Label is never referenced" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "UnusedLabel", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Redundancies in Symbol Declarations", + "index": 36, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticDeprecatedCopy", + "shortDescription": { + "text": "deprecated-copy clang diagnostic" + }, + "fullDescription": { + "text": "-Wdeprecated-copy clang diagnostic · Learn more", + "markdown": "-Wdeprecated-copy clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdeprecated-copy)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedCopy", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppUESourceFileWithoutStandardLibrary", + "shortDescription": { + "text": "C++ standard library headers not found" + }, + "fullDescription": { + "text": "C++ standard library headers cannot be resolved in an Unreal Engine source file. You might need to regenerate the project files.", + "markdown": "C++ standard library headers cannot be resolved in an Unreal Engine source file. You might need to regenerate the project files." + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "CppUESourceFileWithoutStandardLibrary", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Unreal Engine", + "index": 6, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticDelegatingCtorCycles", + "shortDescription": { + "text": "delegating-ctor-cycles clang diagnostic" + }, + "fullDescription": { + "text": "-Wdelegating-ctor-cycles clang diagnostic · Learn more", + "markdown": "-Wdelegating-ctor-cycles clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdelegating-ctor-cycles)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticDelegatingCtorCycles", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Razor.AssemblyNotResolved", + "shortDescription": { + "text": "Unknown Razor assembly" + }, + "fullDescription": { + "text": "Unknown Razor assembly", + "markdown": "Unknown Razor assembly" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "Razor.AssemblyNotResolved", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "Razor/Potential Code Quality Issues", + "index": 85, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyModernizeMakeShared", + "shortDescription": { + "text": "modernize-make-shared clang-tidy check" + }, + "fullDescription": { + "text": "modernize-make-shared clang-tidy check · Learn more", + "markdown": "modernize-make-shared clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/make-shared.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyModernizeMakeShared", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticCompoundTokenSplitBySpace", + "shortDescription": { + "text": "compound-token-split-by-space clang diagnostic" + }, + "fullDescription": { + "text": "-Wcompound-token-split-by-space clang diagnostic · Learn more", + "markdown": "-Wcompound-token-split-by-space clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wcompound-token-split-by-space)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticCompoundTokenSplitBySpace", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticAbstractFinalClass", + "shortDescription": { + "text": "abstract-final-class clang diagnostic" + }, + "fullDescription": { + "text": "-Wabstract-final-class clang diagnostic · Learn more", + "markdown": "-Wabstract-final-class clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wabstract-final-class)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticAbstractFinalClass", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "NestedStringInterpolation", + "shortDescription": { + "text": "Nested string interpolation can be inlined" + }, + "fullDescription": { + "text": "Nested string interpolation can be inlined into containing one", + "markdown": "Nested string interpolation can be inlined into containing one" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "NestedStringInterpolation", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 14, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ReadAccessInDoubleCheckLocking", + "shortDescription": { + "text": "Possible incorrect implementation of Double-Check Locking pattern. Read access to checked field." + }, + "fullDescription": { + "text": "Possible incorrect implementation of Double-Check Locking pattern. Read access to checked field. Learn more...", + "markdown": "Possible incorrect implementation of Double-Check Locking pattern. Read access to checked field. [Learn more...](https://www.jetbrains.com/help/rider/ReadAccessInDoubleCheckLocking.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "ReadAccessInDoubleCheckLocking", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyCertMsc50Cpp", + "shortDescription": { + "text": "cert-msc50-cpp clang-tidy check" + }, + "fullDescription": { + "text": "cert-msc50-cpp clang-tidy check · Learn more", + "markdown": "cert-msc50-cpp clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cert/msc50-cpp.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyCertMsc50Cpp", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticLiteralRange", + "shortDescription": { + "text": "literal-range clang diagnostic" + }, + "fullDescription": { + "text": "-Wliteral-range clang diagnostic · Learn more", + "markdown": "-Wliteral-range clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wliteral-range)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticLiteralRange", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "TooWideLocalVariableScope", + "shortDescription": { + "text": "Local variable has too wide declaration scope" + }, + "fullDescription": { + "text": "Local variable is declared in a wider scope than the scope of its actual use Learn more...", + "markdown": "Local variable is declared in a wider scope than the scope of its actual use [Learn more...](https://www.jetbrains.com/help/rider/TooWideLocalVariableScope.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "TooWideLocalVariableScope", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 14, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppUnmatchedPragmaEndRegionDirective", + "shortDescription": { + "text": "Missing a matching '#pragma region' directive" + }, + "fullDescription": { + "text": "A '#pragma endregion' directive is missing a matching '#pragma region' directive", + "markdown": "A '#pragma endregion' directive is missing a matching '#pragma region' directive" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppUnmatchedPragmaEndRegionDirective", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Potential Code Quality Issues", + "index": 9, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "AspOdsMethodReferenceResolveError", + "shortDescription": { + "text": "Object data source method resolve problem" + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "AspOdsMethodReferenceResolveError", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "Aspx/Potential Code Quality Issues", + "index": 60, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "NUnit.RangeToValueIsNotReachable", + "shortDescription": { + "text": "NUnit. The maximum range value is not reachable with the step value." + }, + "fullDescription": { + "text": "NUnit. The maximum value of [Range] is not reachable, check range and step values. Learn more...", + "markdown": "NUnit. The maximum value of \\[Range\\] is not reachable, check range and step values. [Learn more...](https://www.jetbrains.com/help/rider/NUnit.RangeToValueIsNotReachable.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "NUnit.RangeToValueIsNotReachable", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/NUnit", + "index": 26, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticQualifiedVoidReturnType", + "shortDescription": { + "text": "qualified-void-return-type clang diagnostic" + }, + "fullDescription": { + "text": "-Wqualified-void-return-type clang diagnostic · Learn more", + "markdown": "-Wqualified-void-return-type clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wqualified-void-return-type)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticQualifiedVoidReturnType", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CA3001", + "shortDescription": { + "text": "RoslynAnalyzers Review code for SQL injection vulnerabilities" + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CA3001", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CA3002", + "shortDescription": { + "text": "RoslynAnalyzers Review code for XSS vulnerabilities" + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CA3002", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticStaticFloatInit", + "shortDescription": { + "text": "static-float-init clang diagnostic" + }, + "fullDescription": { + "text": "-Wstatic-float-init clang diagnostic · Learn more", + "markdown": "-Wstatic-float-init clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wstatic-float-init)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticStaticFloatInit", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CA3003", + "shortDescription": { + "text": "RoslynAnalyzers Review code for file path injection vulnerabilities" + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CA3003", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Web.MappedPath", + "shortDescription": { + "text": "Mapped path" + }, + "fullDescription": { + "text": "Path is mapped to a different path in project settings", + "markdown": "Path is mapped to a different path in project settings" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "Web.MappedPath", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "Web.Config/Code Notification", + "index": 86, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CA3004", + "shortDescription": { + "text": "RoslynAnalyzers Review code for information disclosure vulnerabilities" + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CA3004", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CA3005", + "shortDescription": { + "text": "RoslynAnalyzers Review code for LDAP injection vulnerabilities" + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CA3005", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CA3006", + "shortDescription": { + "text": "RoslynAnalyzers Review code for process command injection vulnerabilities" + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CA3006", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CA3007", + "shortDescription": { + "text": "RoslynAnalyzers Review code for open redirect vulnerabilities" + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CA3007", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyCertErr33C", + "shortDescription": { + "text": "cert-err33-c clang-tidy check" + }, + "fullDescription": { + "text": "cert-err33-c clang-tidy check · Learn more", + "markdown": "cert-err33-c clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cert/err33-c.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyCertErr33C", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CA3008", + "shortDescription": { + "text": "RoslynAnalyzers Review code for XPath injection vulnerabilities" + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CA3008", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyBugproneNarrowingConversions", + "shortDescription": { + "text": "bugprone-narrowing-conversions clang-tidy check" + }, + "fullDescription": { + "text": "bugprone-narrowing-conversions clang-tidy check · Learn more", + "markdown": "bugprone-narrowing-conversions clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/narrowing-conversions.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyBugproneNarrowingConversions", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CA3009", + "shortDescription": { + "text": "RoslynAnalyzers Review code for XML injection vulnerabilities" + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CA3009", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "BadBracesSpaces", + "shortDescription": { + "text": "Incorrect spacing (around braces)" + }, + "fullDescription": { + "text": "Around braces Learn more...", + "markdown": "Around braces [Learn more...](https://www.jetbrains.com/help/rider/BadBracesSpaces.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "BadBracesSpaces", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Formatting", + "index": 24, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyCertErr60Cpp", + "shortDescription": { + "text": "cert-err60-cpp clang-tidy check" + }, + "fullDescription": { + "text": "cert-err60-cpp clang-tidy check · Learn more", + "markdown": "cert-err60-cpp clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cert/err60-cpp.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyCertErr60Cpp", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ReplaceSliceWithRangeIndexer", + "shortDescription": { + "text": "Replace 'Slice' with range indexer" + }, + "fullDescription": { + "text": "Replace 'Slice' method call with range indexer access", + "markdown": "Replace 'Slice' method call with range indexer access" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "ReplaceSliceWithRangeIndexer", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Language Usage Opportunities", + "index": 7, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CA3010", + "shortDescription": { + "text": "RoslynAnalyzers Review code for XAML injection vulnerabilities" + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CA3010", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CA3011", + "shortDescription": { + "text": "RoslynAnalyzers Review code for DLL injection vulnerabilities" + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CA3011", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CA3012", + "shortDescription": { + "text": "RoslynAnalyzers Review code for regex injection vulnerabilities" + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CA3012", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RedundantPropertyPatternClause", + "shortDescription": { + "text": "Redundant property pattern clause" + }, + "fullDescription": { + "text": "Empty property pattern clause can be omitted", + "markdown": "Empty property pattern clause can be omitted" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "RedundantPropertyPatternClause", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Redundancies in Code", + "index": 23, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangAnalyzerUnixCstringBadSizeArg", + "shortDescription": { + "text": "unix.cstring.BadSizeArg clang static analyzer check" + }, + "fullDescription": { + "text": "unix.cstring.BadSizeArg clang static analyzer check · Learn more", + "markdown": "unix.cstring.BadSizeArg clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangAnalyzerUnixCstringBadSizeArg", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Static Analyzer Checks", + "index": 32, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticMicrosoftMutableReference", + "shortDescription": { + "text": "microsoft-mutable-reference clang diagnostic" + }, + "fullDescription": { + "text": "-Wmicrosoft-mutable-reference clang diagnostic · Learn more", + "markdown": "-Wmicrosoft-mutable-reference clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-mutable-reference)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftMutableReference", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticRewriteNotBool", + "shortDescription": { + "text": "rewrite-not-bool clang diagnostic" + }, + "fullDescription": { + "text": "-Wrewrite-not-bool clang diagnostic · Learn more", + "markdown": "-Wrewrite-not-bool clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wrewrite-not-bool)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticRewriteNotBool", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppParameterMayBeConst", + "shortDescription": { + "text": "Parameter can be made const" + }, + "fullDescription": { + "text": "Parameter can be made const", + "markdown": "Parameter can be made const" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "CppParameterMayBeConst", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Common Practices and Code Improvements", + "index": 17, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "BadParensLineBreaks", + "shortDescription": { + "text": "Incorrect line breaks (around parenthesis)" + }, + "fullDescription": { + "text": "Around parenthesis Learn more...", + "markdown": "Around parenthesis [Learn more...](https://www.jetbrains.com/help/rider/BadParensLineBreaks.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "BadParensLineBreaks", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Formatting", + "index": 24, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyReadabilityFunctionCognitiveComplexity", + "shortDescription": { + "text": "readability-function-cognitive-complexity clang-tidy check" + }, + "fullDescription": { + "text": "readability-function-cognitive-complexity clang-tidy check · Learn more", + "markdown": "readability-function-cognitive-complexity clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/function-cognitive-complexity.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyReadabilityFunctionCognitiveComplexity", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppIncompleteSwitchStatement", + "shortDescription": { + "text": "Possibly erroneous incomplete switch-statement" + }, + "fullDescription": { + "text": "The switch statement doesn't cover the whole range of the enumeration used", + "markdown": "The switch statement doesn't cover the whole range of the enumeration used" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppIncompleteSwitchStatement", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Potential Code Quality Issues", + "index": 9, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyPortabilityRestrictSystemIncludes", + "shortDescription": { + "text": "portability-restrict-system-includes clang-tidy check" + }, + "fullDescription": { + "text": "portability-restrict-system-includes clang-tidy check · Learn more", + "markdown": "portability-restrict-system-includes clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/portability/restrict-system-includes.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyPortabilityRestrictSystemIncludes", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "AssignmentInConditionalExpression", + "shortDescription": { + "text": "Assignment in conditional expression" + }, + "fullDescription": { + "text": "Assignment in conditional expression; did you mean to use '==' instead of '='? Learn more...", + "markdown": "Assignment in conditional expression; did you mean to use '==' instead of '='? [Learn more...](https://www.jetbrains.com/help/rider/AssignmentInConditionalExpression.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "AssignmentInConditionalExpression", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "WebConfig.TypeNotResolved", + "shortDescription": { + "text": "Cannot resolve symbol" + }, + "fullDescription": { + "text": "Cannot resolve symbol", + "markdown": "Cannot resolve symbol" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "WebConfig.TypeNotResolved", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "Web.Config/Potential Code Quality Issues", + "index": 75, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangAnalyzerNullabilityNullableReturnedFromNonnull", + "shortDescription": { + "text": "nullability.NullableReturnedFromNonnull clang static analyzer check" + }, + "fullDescription": { + "text": "nullability.NullableReturnedFromNonnull clang static analyzer check · Learn more", + "markdown": "nullability.NullableReturnedFromNonnull clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangAnalyzerNullabilityNullableReturnedFromNonnull", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Static Analyzer Checks", + "index": 32, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CA1200", + "shortDescription": { + "text": "RoslynAnalyzers Avoid using cref tags with a prefix" + }, + "fullDescription": { + "text": "Use of cref tags with prefixes should be avoided, since it prevents the compiler from verifying references and the IDE from updating references during refactorings. It is permissible to suppress this error at a single documentation site if the cref must use a prefix because the type being mentioned is not findable by the compiler. For example, if a cref is mentioning a special attribute in the full framework but you're in a file that compiles against the portable framework, or if you want to reference a type at higher layer of Roslyn, you should suppress the error. You should not suppress the error just because you want to take a shortcut and avoid using the full syntax.", + "markdown": "Use of cref tags with prefixes should be avoided, since it prevents the compiler from verifying references and the IDE from updating references during refactorings. It is permissible to suppress this error at a single documentation site if the cref must use a prefix because the type being mentioned is not findable by the compiler. For example, if a cref is mentioning a special attribute in the full framework but you're in a file that compiles against the portable framework, or if you want to reference a type at higher layer of Roslyn, you should suppress the error. You should not suppress the error just because you want to take a shortcut and avoid using the full syntax." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CA1200", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticKeywordCompat", + "shortDescription": { + "text": "keyword-compat clang diagnostic" + }, + "fullDescription": { + "text": "-Wkeyword-compat clang diagnostic · Learn more", + "markdown": "-Wkeyword-compat clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wkeyword-compat)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticKeywordCompat", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticIntegerOverflow", + "shortDescription": { + "text": "integer-overflow clang diagnostic" + }, + "fullDescription": { + "text": "-Winteger-overflow clang diagnostic · Learn more", + "markdown": "-Winteger-overflow clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#winteger-overflow)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticIntegerOverflow", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticDocumentationDeprecatedSync", + "shortDescription": { + "text": "documentation-deprecated-sync clang diagnostic" + }, + "fullDescription": { + "text": "-Wdocumentation-deprecated-sync clang diagnostic · Learn more", + "markdown": "-Wdocumentation-deprecated-sync clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdocumentation-deprecated-sync)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticDocumentationDeprecatedSync", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticExpansionToDefined", + "shortDescription": { + "text": "expansion-to-defined clang diagnostic" + }, + "fullDescription": { + "text": "-Wexpansion-to-defined clang diagnostic · Learn more", + "markdown": "-Wexpansion-to-defined clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wexpansion-to-defined)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticExpansionToDefined", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticDllimportStaticFieldDef", + "shortDescription": { + "text": "dllimport-static-field-def clang diagnostic" + }, + "fullDescription": { + "text": "-Wdllimport-static-field-def clang diagnostic · Learn more", + "markdown": "-Wdllimport-static-field-def clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdllimport-static-field-def)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticDllimportStaticFieldDef", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Unity.ExpectedComponent", + "shortDescription": { + "text": "Expected a type derived from 'Component' or 'MonoBehaviour'" + }, + "fullDescription": { + "text": "A built-in type derived from 'Component' or a user-defined type derived from 'MonoBehaviour' is expected", + "markdown": "A built-in type derived from 'Component' or a user-defined type derived from 'MonoBehaviour' is expected" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "Unity.ExpectedComponent", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Unity", + "index": 19, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "FSharpRedundantNew", + "shortDescription": { + "text": "Redundant 'new' keyword" + }, + "fullDescription": { + "text": "'new' keyword is not required and can be safely removed.", + "markdown": "'new' keyword is not required and can be safely removed." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "FSharpRedundantNew", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "F#/Redundancies in Code", + "index": 67, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SwapViaDeconstruction", + "shortDescription": { + "text": "Use deconstruction to swap variables" + }, + "fullDescription": { + "text": "Replace multiple assignments with single deconstructing assignment to perform swapping", + "markdown": "Replace multiple assignments with single deconstructing assignment to perform swapping" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "SwapViaDeconstruction", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Language Usage Opportunities", + "index": 7, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RemoveConstructorInvocation", + "shortDescription": { + "text": "Remove constructor invocation" + }, + "fullDescription": { + "text": "new List<$T$>($seq$).ToArray()", + "markdown": "new List\\<$T$\\>($seq$).ToArray()" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "RemoveConstructorInvocation", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 14, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Xaml.CompiledBindingMissingDataTypeErrorHighlighting", + "shortDescription": { + "text": "x:DataType not specified for CompiledBinding" + }, + "fullDescription": { + "text": "x:DataType not specified for CompiledBinding", + "markdown": "x:DataType not specified for CompiledBinding" + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "Xaml.CompiledBindingMissingDataTypeErrorHighlighting", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "XAML/Code Notification", + "index": 5, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "InlineOutVariableDeclaration", + "shortDescription": { + "text": "Inline 'out' variable declaration" + }, + "fullDescription": { + "text": "Replace ordinary variable declaration with inline variable declaration under 'out' argument", + "markdown": "Replace ordinary variable declaration with inline variable declaration under 'out' argument" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "InlineOutVariableDeclaration", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Language Usage Opportunities", + "index": 7, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyCertErr34C", + "shortDescription": { + "text": "cert-err34-c clang-tidy check" + }, + "fullDescription": { + "text": "cert-err34-c clang-tidy check · Learn more", + "markdown": "cert-err34-c clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cert/err34-c.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyCertErr34C", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "VBReplaceWithSingleCallToFirstOrDefault", + "shortDescription": { + "text": "Replace with single call to FirstOrDefault(..)" + }, + "fullDescription": { + "text": "$seq$.Where(Function ($x$) $expr$).FirstOrDefault()", + "markdown": "$seq$.Where(Function ($x$) $expr$).FirstOrDefault()" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "VBReplaceWithSingleCallToFirstOrDefault", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "VB.NET/Common Practices and Code Improvements", + "index": 40, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "VirtualMemberCallInConstructor", + "shortDescription": { + "text": "Virtual member call in constructor" + }, + "fullDescription": { + "text": "When a virtual method is called, the actual type that executes the method is not selected until run time. When a constructor calls a virtual method, it is possible that the constructor for the instance that invokes the method has not executed. See http://msdn2.microsoft.com/en-us/library/ms182331.aspx. Learn more...", + "markdown": "When a virtual method is called, the actual type that executes the method is not selected until run time. When a constructor calls a virtual method, it is possible that the constructor for the instance that invokes the method has not executed. See . [Learn more...](https://www.jetbrains.com/help/rider/VirtualMemberCallInConstructor.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "VirtualMemberCallInConstructor", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticCpp98Cpp11Compat", + "shortDescription": { + "text": "c++98-c++11-compat clang diagnostic" + }, + "fullDescription": { + "text": "-Wc++98-c++11-compat clang diagnostic · Learn more", + "markdown": "-Wc++98-c++11-compat clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-98-c-11-compat)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticCpp98Cpp11Compat", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticUnreachableCodeBreak", + "shortDescription": { + "text": "unreachable-code-break clang diagnostic" + }, + "fullDescription": { + "text": "-Wunreachable-code-break clang diagnostic · Learn more", + "markdown": "-Wunreachable-code-break clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunreachable-code-break)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticUnreachableCodeBreak", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "FSharpDotLambdaCanBeUsed", + "shortDescription": { + "text": "Shorthand lambda can be used" + }, + "fullDescription": { + "text": "Shorthand lambda can be used", + "markdown": "Shorthand lambda can be used" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "FSharpDotLambdaCanBeUsed", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "F#/Redundancies in Code", + "index": 67, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "AddressOfMarshalByRefObject", + "shortDescription": { + "text": "Captured field reference of a marshal-by-reference class may cause a runtime exception" + }, + "fullDescription": { + "text": "Captured field reference of a marshal-by-reference class may cause a runtime exception", + "markdown": "Captured field reference of a marshal-by-reference class may cause a runtime exception" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "AddressOfMarshalByRefObject", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "AnnotationRedundancyAtValueType", + "shortDescription": { + "text": "Nullability attribute usage with declaration of void or value type" + }, + "fullDescription": { + "text": "Nullability attribute usage with declaration of void or value type does not affect code analysis Learn more...", + "markdown": "Nullability attribute usage with declaration of void or value type does not affect code analysis [Learn more...](https://www.jetbrains.com/help/rider/AnnotationRedundancyAtValueType.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "AnnotationRedundancyAtValueType", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 14, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ClearAttributeIsObsolete", + "shortDescription": { + "text": "Obsolete tags and attributes (attribute 'clear' is obsolete)" + }, + "fullDescription": { + "text": "<$tag$ ([)clear=\"$val$\"(]) $a1$>", + "markdown": "\\<$tag$ (\\[)clear=\"$val$\"(\\]) $a1$\\>" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "ClearAttributeIsObsolete", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "HTML/Common Practices and Code Improvements", + "index": 68, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RedundantExplicitPositionalPropertyDeclaration", + "shortDescription": { + "text": "Redundant explicit positional property declaration" + }, + "fullDescription": { + "text": "Redundant explicit positional property declaration in record type with primary constructor", + "markdown": "Redundant explicit positional property declaration in record type with primary constructor" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "RedundantExplicitPositionalPropertyDeclaration", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Redundancies in Code", + "index": 23, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "OperationContractWithoutServiceContract", + "shortDescription": { + "text": "Method is marked as OperationContract but containing type is not marked as ServiceContract" + }, + "fullDescription": { + "text": "Marking method as OperationContract without ServiceContract attribute on the containing type could cause runtime exception", + "markdown": "Marking method as OperationContract without ServiceContract attribute on the containing type could cause runtime exception" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "OperationContractWithoutServiceContract", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "BadSquareBracketsSpaces", + "shortDescription": { + "text": "Incorrect spacing (around square brackets within a statement)" + }, + "fullDescription": { + "text": "Around square brackets within a statement Learn more...", + "markdown": "Around square brackets within a statement [Learn more...](https://www.jetbrains.com/help/rider/BadSquareBracketsSpaces.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "BadSquareBracketsSpaces", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Formatting", + "index": 24, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UnusedMethodReturnValue.Global", + "shortDescription": { + "text": "Method return value is never used (non-private accessibility)" + }, + "fullDescription": { + "text": "Method return value is never used", + "markdown": "Method return value is never used" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "UnusedMethodReturnValue.Global", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Redundancies in Symbol Declarations", + "index": 36, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MSTEST0030", + "shortDescription": { + "text": "RoslynAnalyzers Type containing '[TestMethod]' should be marked with '[TestClass]'" + }, + "fullDescription": { + "text": "Type contaning '[TestMethod]' should be marked with '[TestClass]', otherwise the test method will be silently ignored.", + "markdown": "Type contaning '\\[TestMethod\\]' should be marked with '\\[TestClass\\]', otherwise the test method will be silently ignored." + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "MSTEST0030", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MSTEST0031", + "shortDescription": { + "text": "RoslynAnalyzers 'System.ComponentModel.DescriptionAttribute' has no effect on test methods" + }, + "fullDescription": { + "text": "'System.ComponentModel.DescriptionAttribute' has no effect in the context of tests and you likely wanted to use 'Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute' instead.", + "markdown": "'System.ComponentModel.DescriptionAttribute' has no effect in the context of tests and you likely wanted to use 'Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute' instead." + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "MSTEST0031", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MSTEST0032", + "shortDescription": { + "text": "RoslynAnalyzers Assertion condition is always true" + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "MSTEST0032", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MSTEST0034", + "shortDescription": { + "text": "RoslynAnalyzers Use 'ClassCleanupBehavior.EndOfClass' with the '[ClassCleanup]'" + }, + "fullDescription": { + "text": "Without using 'ClassCleanupBehavior.EndOfClass', the '[ClassCleanup]' will by default be run at the end of the assembly and not at the end of the class.", + "markdown": "Without using 'ClassCleanupBehavior.EndOfClass', the '\\[ClassCleanup\\]' will by default be run at the end of the assembly and not at the end of the class." + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "MSTEST0034", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MSTEST0035", + "shortDescription": { + "text": "RoslynAnalyzers '[DeploymentItem]' can be specified only on test class or test method" + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "MSTEST0035", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticInvalidConstexpr", + "shortDescription": { + "text": "invalid-constexpr clang diagnostic" + }, + "fullDescription": { + "text": "-Winvalid-constexpr clang diagnostic · Learn more", + "markdown": "-Winvalid-constexpr clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#winvalid-constexpr)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticInvalidConstexpr", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MSTEST0036", + "shortDescription": { + "text": "RoslynAnalyzers Do not use shadowing" + }, + "fullDescription": { + "text": "Shadowing test members could cause testing issues (such as NRE).", + "markdown": "Shadowing test members could cause testing issues (such as NRE)." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "MSTEST0036", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MSTEST0037", + "shortDescription": { + "text": "RoslynAnalyzers Use proper 'Assert' methods" + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "MSTEST0037", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ClearAttributeIsObsolete.All", + "shortDescription": { + "text": "Obsolete tags and attributes (attribute 'clear' is obsolete)" + }, + "fullDescription": { + "text": "<$tag$ ([)clear=all(]) $a1$>", + "markdown": "\\<$tag$ (\\[)clear=all(\\]) $a1$\\>" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "ClearAttributeIsObsolete.All", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "HTML/Common Practices and Code Improvements", + "index": 68, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyObjcMissingHash", + "shortDescription": { + "text": "objc-missing-hash clang-tidy check" + }, + "fullDescription": { + "text": "objc-missing-hash clang-tidy check · Learn more", + "markdown": "objc-missing-hash clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/objc/missing-hash.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyObjcMissingHash", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UnreachableSwitchArmDueToIntegerAnalysis", + "shortDescription": { + "text": "Heuristically unreachable switch arm according to integer analysis" + }, + "fullDescription": { + "text": "Heuristically unreachable switch arm according to integer analysis Learn more...", + "markdown": "Heuristically unreachable switch arm according to integer analysis [Learn more...](https://www.jetbrains.com/help/rider/UnreachableSwitchArmDueToIntegerAnalysis.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "UnreachableSwitchArmDueToIntegerAnalysis", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticMissingDeclarations", + "shortDescription": { + "text": "missing-declarations clang diagnostic" + }, + "fullDescription": { + "text": "-Wmissing-declarations clang diagnostic · Learn more", + "markdown": "-Wmissing-declarations clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmissing-declarations)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticMissingDeclarations", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "EnforceDoWhileStatementBraces", + "shortDescription": { + "text": "Use preferred braces style (enforce braces in 'do-while' statement)" + }, + "fullDescription": { + "text": "Use braces to separate 'do-while' statement body Learn more...", + "markdown": "Use braces to separate 'do-while' statement body [Learn more...](https://www.jetbrains.com/help/rider/EnforceDoWhileStatementBraces.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "EnforceDoWhileStatementBraces", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Syntax Style", + "index": 21, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppWrongSlashesInIncludeDirective", + "shortDescription": { + "text": "Use preferred include directive style (slash symbol used in #include directive does not match code style settings)" + }, + "fullDescription": { + "text": "Slash symbol used in #include directive does not match code style settings", + "markdown": "Slash symbol used in #include directive does not match code style settings" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "CppWrongSlashesInIncludeDirective", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Syntax Style", + "index": 83, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "PropertyCanBeMadeInitOnly.Global", + "shortDescription": { + "text": "Property can be made init-only (non-private accessibility)" + }, + "fullDescription": { + "text": "Property setter can be replaced with 'init' accessor to enforce property immutability", + "markdown": "Property setter can be replaced with 'init' accessor to enforce property immutability" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "PropertyCanBeMadeInitOnly.Global", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 14, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UseWithExpressionToCopyTuple", + "shortDescription": { + "text": "Use 'with' expression to copy tuple" + }, + "fullDescription": { + "text": "Use 'with' expression to create a modified copy of a tuple", + "markdown": "Use 'with' expression to create a modified copy of a tuple" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "UseWithExpressionToCopyTuple", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Language Usage Opportunities", + "index": 7, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyReadabilityRedundantPreprocessor", + "shortDescription": { + "text": "readability-redundant-preprocessor clang-tidy check" + }, + "fullDescription": { + "text": "readability-redundant-preprocessor clang-tidy check · Learn more", + "markdown": "readability-redundant-preprocessor clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/redundant-preprocessor.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyReadabilityRedundantPreprocessor", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SuggestVarOrType_SimpleTypes", + "shortDescription": { + "text": "Use preferred 'var' style (when type is simple)" + }, + "fullDescription": { + "text": "Convert if simple type (not an array and does not have generic parameters) Learn more...", + "markdown": "Convert if simple type (not an array and does not have generic parameters) [Learn more...](https://www.jetbrains.com/help/rider/SuggestVarOrType_SimpleTypes.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "SuggestVarOrType_SimpleTypes", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Syntax Style", + "index": 21, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CSharpWarnings__CS8305", + "shortDescription": { + "text": "Type is for evaluation purposes only and is subject to change or removal in future updates." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CSharpWarnings__CS8305", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Compiler Warnings", + "index": 27, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "InParameterWithMustDisposeResourceAttribute", + "shortDescription": { + "text": "Meaningless [MustDisposeResource] annotation for an input parameter" + }, + "fullDescription": { + "text": "Meaningless [MustDisposeResource] annotation for an input parameter", + "markdown": "Meaningless \\[MustDisposeResource\\] annotation for an input parameter" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "InParameterWithMustDisposeResourceAttribute", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RedundantQualifier", + "shortDescription": { + "text": "Redundant qualifier" + }, + "fullDescription": { + "text": "Qualifier is redundant", + "markdown": "Qualifier is redundant" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "RedundantQualifier", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "VB.NET/Redundancies in Code", + "index": 88, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CA3061", + "shortDescription": { + "text": "RoslynAnalyzers Do Not Add Schema By URL" + }, + "fullDescription": { + "text": "This overload of XmlSchemaCollection.Add method internally enables DTD processing on the XML reader instance used, and uses UrlResolver for resolving external XML entities. The outcome is information disclosure. Content from file system or network shares for the machine processing the XML can be exposed to attacker. In addition, an attacker can use this as a DoS vector.", + "markdown": "This overload of XmlSchemaCollection.Add method internally enables DTD processing on the XML reader instance used, and uses UrlResolver for resolving external XML entities. The outcome is information disclosure. Content from file system or network shares for the machine processing the XML can be exposed to attacker. In addition, an attacker can use this as a DoS vector." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CA3061", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Xaml.RedundantGridSpan", + "shortDescription": { + "text": "Single-cell grid column/row span is redundant" + }, + "fullDescription": { + "text": "Single-cell grid column/row span is redundant", + "markdown": "Single-cell grid column/row span is redundant" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "Xaml.RedundantGridSpan", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "XAML/Redundancies in Code", + "index": 71, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppEnforceOverridingFunctionStyle", + "shortDescription": { + "text": "Use preferred overriding function style (enforce overriding function style)" + }, + "fullDescription": { + "text": "Enforce the 'virtual' and 'override' specifiers on overriding functions", + "markdown": "Enforce the 'virtual' and 'override' specifiers on overriding functions" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "CppEnforceOverridingFunctionStyle", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Syntax Style", + "index": 83, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangAnalyzerDeadcodeDeadStores", + "shortDescription": { + "text": "deadcode.DeadStores clang static analyzer check" + }, + "fullDescription": { + "text": "deadcode.DeadStores clang static analyzer check · Learn more", + "markdown": "deadcode.DeadStores clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangAnalyzerDeadcodeDeadStores", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Static Analyzer Checks", + "index": 32, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticCtadMaybeUnsupported", + "shortDescription": { + "text": "ctad-maybe-unsupported clang diagnostic" + }, + "fullDescription": { + "text": "-Wctad-maybe-unsupported clang diagnostic · Learn more", + "markdown": "-Wctad-maybe-unsupported clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wctad-maybe-unsupported)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticCtadMaybeUnsupported", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticInlineAsm", + "shortDescription": { + "text": "inline-asm clang diagnostic" + }, + "fullDescription": { + "text": "-Winline-asm clang diagnostic · Learn more", + "markdown": "-Winline-asm clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#winline-asm)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticInlineAsm", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "AnnotateNotNullParameter", + "shortDescription": { + "text": "Declaration nullability inferred (parameter is inferred to be not null)" + }, + "fullDescription": { + "text": "Parameter is inferred always not to be null: consider annotating it with [NotNull] or [ItemNotNull] attribute", + "markdown": "Parameter is inferred always not to be null: consider annotating it with \\[NotNull\\] or \\[ItemNotNull\\] attribute" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "AnnotateNotNullParameter", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 14, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ArrangeThisQualifier", + "shortDescription": { + "text": "Add/remove 'this.' qualifier" + }, + "fullDescription": { + "text": "'this.' qualifier can be safely added/removed without changing code semantics Learn more...", + "markdown": "'this.' qualifier can be safely added/removed without changing code semantics [Learn more...](https://www.jetbrains.com/help/rider/ArrangeThisQualifier.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "ArrangeThisQualifier", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Syntax Style", + "index": 21, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticArcRetainCycles", + "shortDescription": { + "text": "arc-retain-cycles clang diagnostic" + }, + "fullDescription": { + "text": "-Warc-retain-cycles clang diagnostic · Learn more", + "markdown": "-Warc-retain-cycles clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#warc-retain-cycles)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticArcRetainCycles", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyHicppNewDeleteOperators", + "shortDescription": { + "text": "hicpp-new-delete-operators clang-tidy check" + }, + "fullDescription": { + "text": "hicpp-new-delete-operators clang-tidy check · Learn more", + "markdown": "hicpp-new-delete-operators clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/new-delete-operators.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyHicppNewDeleteOperators", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyModernizeUseUsing", + "shortDescription": { + "text": "modernize-use-using clang-tidy check" + }, + "fullDescription": { + "text": "modernize-use-using clang-tidy check · Learn more", + "markdown": "modernize-use-using clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-using.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyModernizeUseUsing", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyBugproneTooSmallLoopVariable", + "shortDescription": { + "text": "bugprone-too-small-loop-variable clang-tidy check" + }, + "fullDescription": { + "text": "bugprone-too-small-loop-variable clang-tidy check · Learn more", + "markdown": "bugprone-too-small-loop-variable clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/too-small-loop-variable.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyBugproneTooSmallLoopVariable", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyMiscNonPrivateMemberVariablesInClasses", + "shortDescription": { + "text": "misc-non-private-member-variables-in-classes clang-tidy check" + }, + "fullDescription": { + "text": "misc-non-private-member-variables-in-classes clang-tidy check · Learn more", + "markdown": "misc-non-private-member-variables-in-classes clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/misc/non-private-member-variables-in-classes.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyMiscNonPrivateMemberVariablesInClasses", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0116", + "shortDescription": { + "text": "RoslynAnalyzers Changing attribute '{0}' requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0116", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0117", + "shortDescription": { + "text": "RoslynAnalyzers Changing attribute '{0}' requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0117", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticXorUsedAsPow", + "shortDescription": { + "text": "xor-used-as-pow clang diagnostic" + }, + "fullDescription": { + "text": "-Wxor-used-as-pow clang diagnostic · Learn more", + "markdown": "-Wxor-used-as-pow clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wxor-used-as-pow)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticXorUsedAsPow", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyReadabilityIdentifierLength", + "shortDescription": { + "text": "readability-identifier-length clang-tidy check" + }, + "fullDescription": { + "text": "readability-identifier-length clang-tidy check · Learn more", + "markdown": "readability-identifier-length clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/identifier-length.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyReadabilityIdentifierLength", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticMicrosoftRedeclareStatic", + "shortDescription": { + "text": "microsoft-redeclare-static clang diagnostic" + }, + "fullDescription": { + "text": "-Wmicrosoft-redeclare-static clang diagnostic · Learn more", + "markdown": "-Wmicrosoft-redeclare-static clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-redeclare-static)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftRedeclareStatic", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RedundantExplicitArraySize", + "shortDescription": { + "text": "Redundant explicit size specification in array creation" + }, + "fullDescription": { + "text": "When array initializer has the same number of elements as specified in size expression, explicit size specification is redundant Learn more...", + "markdown": "When array initializer has the same number of elements as specified in size expression, explicit size specification is redundant [Learn more...](https://www.jetbrains.com/help/rider/RedundantExplicitArraySize.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "RedundantExplicitArraySize", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Redundancies in Code", + "index": 23, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticNonPowerOfTwoAlignment", + "shortDescription": { + "text": "non-power-of-two-alignment clang diagnostic" + }, + "fullDescription": { + "text": "-Wnon-power-of-two-alignment clang diagnostic · Learn more", + "markdown": "-Wnon-power-of-two-alignment clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wnon-power-of-two-alignment)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticNonPowerOfTwoAlignment", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "FunctionComplexityOverflow", + "shortDescription": { + "text": "Function body is too complex to analyze" + }, + "fullDescription": { + "text": "Function body is too complex to analyze, consider decomposing it or reducing number of variables", + "markdown": "Function body is too complex to analyze, consider decomposing it or reducing number of variables" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "FunctionComplexityOverflow", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticDoublePromotion", + "shortDescription": { + "text": "double-promotion clang diagnostic" + }, + "fullDescription": { + "text": "-Wdouble-promotion clang diagnostic · Learn more", + "markdown": "-Wdouble-promotion clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdouble-promotion)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticDoublePromotion", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CA3075", + "shortDescription": { + "text": "RoslynAnalyzers Insecure DTD processing in XML" + }, + "fullDescription": { + "text": "Using XmlTextReader.Load(), creating an insecure XmlReaderSettings instance when invoking XmlReader.Create(), setting the InnerXml property of the XmlDocument and enabling DTD processing using XmlUrlResolver insecurely can lead to information disclosure. Replace it with a call to the Load() method overload that takes an XmlReader instance, use XmlReader.Create() to accept XmlReaderSettings arguments or consider explicitly setting secure values. The DataViewSettingCollectionString property of DataViewManager should always be assigned from a trusted source, the DtdProcessing property should be set to false, and the XmlResolver property should be changed to XmlSecureResolver or null.", + "markdown": "Using XmlTextReader.Load(), creating an insecure XmlReaderSettings instance when invoking XmlReader.Create(), setting the InnerXml property of the XmlDocument and enabling DTD processing using XmlUrlResolver insecurely can lead to information disclosure. Replace it with a call to the Load() method overload that takes an XmlReader instance, use XmlReader.Create() to accept XmlReaderSettings arguments or consider explicitly setting secure values. The DataViewSettingCollectionString property of DataViewManager should always be assigned from a trusted source, the DtdProcessing property should be set to false, and the XmlResolver property should be changed to XmlSecureResolver or null." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CA3075", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CA3076", + "shortDescription": { + "text": "RoslynAnalyzers Insecure XSLT script processing" + }, + "fullDescription": { + "text": "Providing an insecure XsltSettings instance and an insecure XmlResolver instance to XslCompiledTransform.Load method is potentially unsafe as it allows processing script within XSL, which on an untrusted XSL input may lead to malicious code execution. Either replace the insecure XsltSettings argument with XsltSettings.Default or an instance that has disabled document function and script execution, or replace the XmlResolver argument with null or an XmlSecureResolver instance. This message may be suppressed if the input is known to be from a trusted source and external resource resolution from locations that are not known in advance must be supported.", + "markdown": "Providing an insecure XsltSettings instance and an insecure XmlResolver instance to XslCompiledTransform.Load method is potentially unsafe as it allows processing script within XSL, which on an untrusted XSL input may lead to malicious code execution. Either replace the insecure XsltSettings argument with XsltSettings.Default or an instance that has disabled document function and script execution, or replace the XmlResolver argument with null or an XmlSecureResolver instance. This message may be suppressed if the input is known to be from a trusted source and external resource resolution from locations that are not known in advance must be supported." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CA3076", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CA3077", + "shortDescription": { + "text": "RoslynAnalyzers Insecure Processing in API Design, XmlDocument and XmlTextReader" + }, + "fullDescription": { + "text": "Enabling DTD processing on all instances derived from XmlTextReader or XmlDocument and using XmlUrlResolver for resolving external XML entities may lead to information disclosure. Ensure to set the XmlResolver property to null, create an instance of XmlSecureResolver when processing untrusted input, or use XmlReader.Create method with a secure XmlReaderSettings argument. Unless you need to enable it, ensure the DtdProcessing property is set to false.", + "markdown": "Enabling DTD processing on all instances derived from XmlTextReader or XmlDocument and using XmlUrlResolver for resolving external XML entities may lead to information disclosure. Ensure to set the XmlResolver property to null, create an instance of XmlSecureResolver when processing untrusted input, or use XmlReader.Create method with a secure XmlReaderSettings argument. Unless you need to enable it, ensure the DtdProcessing property is set to false." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CA3077", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticReorderCtor", + "shortDescription": { + "text": "reorder-ctor clang diagnostic" + }, + "fullDescription": { + "text": "-Wreorder-ctor clang diagnostic · Learn more", + "markdown": "-Wreorder-ctor clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wreorder-ctor)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticReorderCtor", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "PolymorphicFieldLikeEventInvocation", + "shortDescription": { + "text": "Invocation of polymorphic field-like event" + }, + "fullDescription": { + "text": "Invocation of 'virtual' or 'override' field-like event leads to unpredictable result because the invocation list is not virtual Learn more...", + "markdown": "Invocation of 'virtual' or 'override' field-like event leads to unpredictable result because the invocation list is not virtual [Learn more...](https://www.jetbrains.com/help/rider/PolymorphicFieldLikeEventInvocation.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "PolymorphicFieldLikeEventInvocation", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppBadEmptyBracesLineBreaks", + "shortDescription": { + "text": "Incorrect line breaks (around empty braces)" + }, + "fullDescription": { + "text": "Around empty braces", + "markdown": "Around empty braces" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppBadEmptyBracesLineBreaks", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Formatting", + "index": 28, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RedundantCast", + "shortDescription": { + "text": "Redundant cast" + }, + "fullDescription": { + "text": "Type cast can be safely removed Learn more...", + "markdown": "Type cast can be safely removed [Learn more...](https://www.jetbrains.com/help/rider/RedundantCast.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "RedundantCast", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Redundancies in Code", + "index": 23, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangAnalyzerApiModelingLlvmCastValue", + "shortDescription": { + "text": "apiModeling.llvm.CastValue clang static analyzer check" + }, + "fullDescription": { + "text": "apiModeling.llvm.CastValue clang static analyzer check · Learn more", + "markdown": "apiModeling.llvm.CastValue clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangAnalyzerApiModelingLlvmCastValue", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Static Analyzer Checks", + "index": 32, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0109", + "shortDescription": { + "text": "RoslynAnalyzers Changing the containing namespace of '{0}' from '{1}' to '{2}' requires restarting the application" + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0109", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "StringLiteralAsInterpolationArgument", + "shortDescription": { + "text": "String literal can be inlined" + }, + "fullDescription": { + "text": "String literal can be inlined into interpolation", + "markdown": "String literal can be inlined into interpolation" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "StringLiteralAsInterpolationArgument", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 14, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0107", + "shortDescription": { + "text": "RoslynAnalyzers Renaming {0} requires restarting the application because it is not supported by the runtime." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0107", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0108", + "shortDescription": { + "text": "RoslynAnalyzers Changing pseudo-custom attribute '{0}' of {1} requires restarting the application" + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0108", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticDeprecatedStaticAnalyzerFlag", + "shortDescription": { + "text": "deprecated-static-analyzer-flag clang diagnostic" + }, + "fullDescription": { + "text": "-Wdeprecated-static-analyzer-flag clang diagnostic · Learn more", + "markdown": "-Wdeprecated-static-analyzer-flag clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdeprecated-static-analyzer-flag)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedStaticAnalyzerFlag", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0105", + "shortDescription": { + "text": "RoslynAnalyzers Changing constraints of {0} requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0105", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0106", + "shortDescription": { + "text": "RoslynAnalyzers Updating a reloadable type (marked by {0}) or its member requires restarting the application because is not supported by the runtime." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0106", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0114", + "shortDescription": { + "text": "RoslynAnalyzers Capturing primary constructor parameter '{0}' that hasn't been capture before requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0114", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0115", + "shortDescription": { + "text": "RoslynAnalyzers Ceasing to capture primary constructor parameter '{0}' of '{1}' requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0115", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0112", + "shortDescription": { + "text": "RoslynAnalyzers Updating async or iterator requires restarting the application because is not supported by the runtime." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0112", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0113", + "shortDescription": { + "text": "RoslynAnalyzers Updating {0} within generic type or method requires restarting the application because is not supported by the runtime." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0113", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0110", + "shortDescription": { + "text": "RoslynAnalyzers Changing the signature of {0} requires restarting the application because is not supported by the runtime." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0110", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangAnalyzerFuchsiaHandleChecker", + "shortDescription": { + "text": "fuchsia.HandleChecker clang static analyzer check" + }, + "fullDescription": { + "text": "fuchsia.HandleChecker clang static analyzer check · Learn more", + "markdown": "fuchsia.HandleChecker clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangAnalyzerFuchsiaHandleChecker", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Static Analyzer Checks", + "index": 32, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0111", + "shortDescription": { + "text": "RoslynAnalyzers Deleting {0} requires restarting the application because is not supported by the runtime." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0111", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticShadowField", + "shortDescription": { + "text": "shadow-field clang diagnostic" + }, + "fullDescription": { + "text": "-Wshadow-field clang diagnostic · Learn more", + "markdown": "-Wshadow-field clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wshadow-field)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticShadowField", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RedundantWithExpression", + "shortDescription": { + "text": "Empty 'with' expression is redundant" + }, + "fullDescription": { + "text": "Empty 'with' expression applied to newly created object instance results in unnecessary clone creation", + "markdown": "Empty 'with' expression applied to newly created object instance results in unnecessary clone creation" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "RedundantWithExpression", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticExtraQualification", + "shortDescription": { + "text": "extra-qualification clang diagnostic" + }, + "fullDescription": { + "text": "-Wextra-qualification clang diagnostic · Learn more", + "markdown": "-Wextra-qualification clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wextra-qualification)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticExtraQualification", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ConvertToVbAutoPropertyWhenPossible", + "shortDescription": { + "text": "Convert property to auto-property when possible" + }, + "fullDescription": { + "text": "Converts property declaration to VB.NET auto-property syntax.", + "markdown": "Converts property declaration to VB.NET auto-property syntax." + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "ConvertToVbAutoPropertyWhenPossible", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "VB.NET/Common Practices and Code Improvements", + "index": 40, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyHicppNoexceptMove", + "shortDescription": { + "text": "hicpp-noexcept-move clang-tidy check" + }, + "fullDescription": { + "text": "hicpp-noexcept-move clang-tidy check · Learn more", + "markdown": "hicpp-noexcept-move clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/noexcept-move.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyHicppNoexceptMove", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticAutoStorageClass", + "shortDescription": { + "text": "auto-storage-class clang diagnostic" + }, + "fullDescription": { + "text": "-Wauto-storage-class clang diagnostic · Learn more", + "markdown": "-Wauto-storage-class clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wauto-storage-class)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticAutoStorageClass", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "WebConfig.UnusedElementDueToConfigSourceAttribute", + "shortDescription": { + "text": "Redundant element or attribute because of 'configSource' attribute" + }, + "fullDescription": { + "text": "Element or attribute is not applied because of 'configSource' attribute and can be safely removed", + "markdown": "Element or attribute is not applied because of 'configSource' attribute and can be safely removed" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "WebConfig.UnusedElementDueToConfigSourceAttribute", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "Web.Config/Redundancies in Code", + "index": 90, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppConceptNeverUsed", + "shortDescription": { + "text": "Concept is never used" + }, + "fullDescription": { + "text": "Concept is never used", + "markdown": "Concept is never used" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppConceptNeverUsed", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Potential Code Quality Issues", + "index": 9, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "BadExpressionBracesLineBreaks", + "shortDescription": { + "text": "Incorrect line breaks (around expression braces)" + }, + "fullDescription": { + "text": "Around expression braces Learn more...", + "markdown": "Around expression braces [Learn more...](https://www.jetbrains.com/help/rider/BadExpressionBracesLineBreaks.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "BadExpressionBracesLineBreaks", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Formatting", + "index": 24, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticIncompleteModule", + "shortDescription": { + "text": "incomplete-module clang diagnostic" + }, + "fullDescription": { + "text": "-Wincomplete-module clang diagnostic · Learn more", + "markdown": "-Wincomplete-module clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wincomplete-module)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticIncompleteModule", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppMissingKeywordThrow", + "shortDescription": { + "text": "May be missing keyword 'throw'" + }, + "fullDescription": { + "text": "Object of exception type is created, but is not thrown", + "markdown": "Object of exception type is created, but is not thrown" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppMissingKeywordThrow", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Potential Code Quality Issues", + "index": 9, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0103", + "shortDescription": { + "text": "RoslynAnalyzers Changing parameter types of {0} requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0103", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0104", + "shortDescription": { + "text": "RoslynAnalyzers Changing type parameters of {0} requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0104", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0101", + "shortDescription": { + "text": "RoslynAnalyzers Updating the attributes of {0} requires restarting the application because it is not supported by the runtime." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0101", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0102", + "shortDescription": { + "text": "RoslynAnalyzers An update that causes the return type of the implicit Main method to change requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0102", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppNonInlineFunctionDefinitionInHeaderFile", + "shortDescription": { + "text": "Non-inline function definition in a header file" + }, + "fullDescription": { + "text": "A function definition in a header file that will lead to a multiple definition linkage error", + "markdown": "A function definition in a header file that will lead to a multiple definition linkage error" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppNonInlineFunctionDefinitionInHeaderFile", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Potential Code Quality Issues", + "index": 9, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0100", + "shortDescription": { + "text": "RoslynAnalyzers Adding {0} requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0100", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UnusedMemberHierarchy.Local", + "shortDescription": { + "text": "Type member is only used in overrides (private accessibility)" + }, + "fullDescription": { + "text": "Type member is never used from outside of implementation hierarchy, it is only accessed from overrides through base call", + "markdown": "Type member is never used from outside of implementation hierarchy, it is only accessed from overrides through base call" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "UnusedMemberHierarchy.Local", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Redundancies in Symbol Declarations", + "index": 36, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticGnuStaticFloatInit", + "shortDescription": { + "text": "gnu-static-float-init clang diagnostic" + }, + "fullDescription": { + "text": "-Wgnu-static-float-init clang diagnostic · Learn more", + "markdown": "-Wgnu-static-float-init clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wgnu-static-float-init)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticGnuStaticFloatInit", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Unity.NoNullPatternMatching", + "shortDescription": { + "text": "Possible unintended bypass of lifetime check of underlying Unity engine object (pattern matching null checks on a type deriving from 'UnityEngine.Object' bypasses the lifetime check on the underlying Unity engine object)" + }, + "fullDescription": { + "text": "Pattern matching null checks operators do not call the custom equality operators defined on 'UnityEngine.Object', which will check to see if the underlying Unity engine object has been destroyed. Prefer an explicit null comparison or implicit bool comparison if the lifetime check is intended, or explicitly use 'object.ReferenceEquals()' for a standard (and quicker) CLR null check. Learn more...", + "markdown": "Pattern matching null checks operators do not call the custom equality operators defined on 'UnityEngine.Object', which will check to see if the underlying Unity engine object has been destroyed. Prefer an explicit null comparison or implicit bool comparison if the lifetime check is intended, or explicitly use 'object.ReferenceEquals()' for a standard (and quicker) CLR null check. [Learn more...](https://github.com/JetBrains/resharper-unity/wiki/Possible-unintended-bypass-of-lifetime-check-of-underlying-Unity-engine-object)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "Unity.NoNullPatternMatching", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Unity", + "index": 19, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticAssume", + "shortDescription": { + "text": "assume clang diagnostic" + }, + "fullDescription": { + "text": "-Wassume clang diagnostic · Learn more", + "markdown": "-Wassume clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wassume)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticAssume", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticCpp98CompatUnnamedTypeTemplateArgs", + "shortDescription": { + "text": "c++98-compat-unnamed-type-template-args clang diagnostic" + }, + "fullDescription": { + "text": "-Wc++98-compat-unnamed-type-template-args clang diagnostic · Learn more", + "markdown": "-Wc++98-compat-unnamed-type-template-args clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-98-compat-unnamed-type-template-args)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticCpp98CompatUnnamedTypeTemplateArgs", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CSharpWarnings__CS1717", + "shortDescription": { + "text": "Assignment made to same variable" + }, + "fullDescription": { + "text": "Learn more...", + "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/a1kzfw0z.aspx)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CSharpWarnings__CS1717", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Compiler Warnings", + "index": 27, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CSharpWarnings__CS1711", + "shortDescription": { + "text": "XML comment has a 'typeparam' tag for 'TypeParameter', but there is no type parameter by that name" + }, + "fullDescription": { + "text": "Learn more...", + "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/misc/cs1711)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CSharpWarnings__CS1711", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Compiler Warnings", + "index": 27, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CSharpWarnings__CS1712", + "shortDescription": { + "text": "Type parameter has no matching typeparam tag in the XML comment" + }, + "fullDescription": { + "text": "Learn more...", + "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/t8zca749.aspx)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CSharpWarnings__CS1712", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Compiler Warnings", + "index": 27, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MSTEST0001", + "shortDescription": { + "text": "RoslynAnalyzers Explicitly enable or disable tests parallelization" + }, + "fullDescription": { + "text": "By default, MSTest runs tests within the same assembly sequentially, which can lead to severe performance limitations. It is recommended to enable assembly attribute '[Parallelize]' to run tests in parallel, or if the assembly is known to not be parallelizable, to use explicitly the assembly level attribute '[DoNotParallelize]'.", + "markdown": "By default, MSTest runs tests within the same assembly sequentially, which can lead to severe performance limitations. It is recommended to enable assembly attribute '\\[Parallelize\\]' to run tests in parallel, or if the assembly is known to not be parallelizable, to use explicitly the assembly level attribute '\\[DoNotParallelize\\]'." + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "MSTEST0001", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MSTEST0002", + "shortDescription": { + "text": "RoslynAnalyzers Test classes should have valid layout" + }, + "fullDescription": { + "text": "Test classes, classes marked with the '[TestClass]' attribute, should respect the following layout to be considered valid by MSTest: - it should be 'public' (or 'internal' if '[assembly: DiscoverInternals]' attribute is set) - it should not be 'static' (except if it contains only 'AssemblyInitialize' and/or 'AssemblyCleanup' methods) - it should not be generic.", + "markdown": "Test classes, classes marked with the '\\[TestClass\\]' attribute, should respect the following layout to be considered valid by MSTest: - it should be 'public' (or 'internal' if '\\[assembly: DiscoverInternals\\]' attribute is set) - it should not be 'static' (except if it contains only 'AssemblyInitialize' and/or 'AssemblyCleanup' methods) - it should not be generic." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "MSTEST0002", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MSTEST0003", + "shortDescription": { + "text": "RoslynAnalyzers Test methods should have valid layout" + }, + "fullDescription": { + "text": "Test methods, methods marked with the '[TestMethod]' attribute, should respect the following layout to be considered valid by MSTest: - it should be 'public' (or 'internal' if '[assembly: DiscoverInternals]' attribute is set) - it should not be 'static' - it should not be generic - it should not be 'abstract' - return type should be 'void', 'Task' or 'ValueTask' - it should not be 'async void' - it should not be a special method (finalizer, operator...).", + "markdown": "Test methods, methods marked with the '\\[TestMethod\\]' attribute, should respect the following layout to be considered valid by MSTest: - it should be 'public' (or 'internal' if '\\[assembly: DiscoverInternals\\]' attribute is set) - it should not be 'static' - it should not be generic - it should not be 'abstract' - return type should be 'void', 'Task' or 'ValueTask' - it should not be 'async void' - it should not be a special method (finalizer, operator...)." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "MSTEST0003", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MSTEST0004", + "shortDescription": { + "text": "RoslynAnalyzers Public types should be test classes" + }, + "fullDescription": { + "text": "It's considered a good practice to have only test classes marked public in a test project.", + "markdown": "It's considered a good practice to have only test classes marked public in a test project." + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "MSTEST0004", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ReplaceWithSimpleAssignment.False", + "shortDescription": { + "text": "Replace with simple assignment" + }, + "fullDescription": { + "text": "$bool1$ &= false", + "markdown": "$bool1$ \\&= false" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "ReplaceWithSimpleAssignment.False", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 14, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MSTEST0005", + "shortDescription": { + "text": "RoslynAnalyzers Test context property should have valid layout" + }, + "fullDescription": { + "text": "'TestContext' should be a non-static field or property assigned in constructor or for a property set by MSTest, it should follow the layout: - it should be 'public' regardless of whether '[assembly: DiscoverInternals]' attribute is set or not. - it should not be 'static' - it should have a setter.", + "markdown": "'TestContext' should be a non-static field or property assigned in constructor or for a property set by MSTest, it should follow the layout: - it should be 'public' regardless of whether '\\[assembly: DiscoverInternals\\]' attribute is set or not. - it should not be 'static' - it should have a setter." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "MSTEST0005", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MSTEST0006", + "shortDescription": { + "text": "RoslynAnalyzers Avoid '[ExpectedException]'" + }, + "fullDescription": { + "text": "Prefer 'Assert.ThrowsException' or 'Assert.ThrowsExceptionAsync' over '[ExpectedException]' as it ensures that only the expected call throws the expected exception. The assert APIs also provide more flexibility and allow you to assert extra properties of the exeption.", + "markdown": "Prefer 'Assert.ThrowsException' or 'Assert.ThrowsExceptionAsync' over '\\[ExpectedException\\]' as it ensures that only the expected call throws the expected exception. The assert APIs also provide more flexibility and allow you to assert extra properties of the exeption." + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "MSTEST0006", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CSharpWarnings__CS1710", + "shortDescription": { + "text": "Duplicate typeparam tag in XML comment" + }, + "fullDescription": { + "text": "Learn more...", + "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/k5ya7w1x.aspx)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CSharpWarnings__CS1710", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Compiler Warnings", + "index": 27, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyAndroidComparisonInTempFailureRetry", + "shortDescription": { + "text": "android-comparison-in-temp-failure-retry clang-tidy check" + }, + "fullDescription": { + "text": "android-comparison-in-temp-failure-retry clang-tidy check · Learn more", + "markdown": "android-comparison-in-temp-failure-retry clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/android/comparison-in-temp-failure-retry.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyAndroidComparisonInTempFailureRetry", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MSTEST0007", + "shortDescription": { + "text": "RoslynAnalyzers [Owner] can only be set on methods marked with [TestMethod]" + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "MSTEST0007", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticCpp20CompatPedantic", + "shortDescription": { + "text": "c++20-compat-pedantic clang diagnostic" + }, + "fullDescription": { + "text": "-Wc++20-compat-pedantic clang diagnostic · Learn more", + "markdown": "-Wc++20-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-20-compat-pedantic)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticCpp20CompatPedantic", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ClassWithVirtualMembersNeverInherited.Local", + "shortDescription": { + "text": "Class with virtual (overridable) members never inherited (private accessibility)" + }, + "fullDescription": { + "text": "Non-abstract class has virtual (overridable) members but has no inheritors", + "markdown": "Non-abstract class has virtual (overridable) members but has no inheritors" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "ClassWithVirtualMembersNeverInherited.Local", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Redundancies in Symbol Declarations", + "index": 36, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyCertOop57Cpp", + "shortDescription": { + "text": "cert-oop57-cpp clang-tidy check" + }, + "fullDescription": { + "text": "cert-oop57-cpp clang-tidy check · Learn more", + "markdown": "cert-oop57-cpp clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cert/oop57-cpp.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyCertOop57Cpp", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "NUnit.TestCaseResultPropertyIsObsolete", + "shortDescription": { + "text": "NUnit. Test case Result property is obsolete." + }, + "fullDescription": { + "text": "NUnit. Test case Result property is obsolete since NUnit 2.6. Learn more...", + "markdown": "NUnit. Test case Result property is obsolete since NUnit 2.6. [Learn more...](https://www.jetbrains.com/help/rider/NUnit.TestCaseResultPropertyIsObsolete.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "NUnit.TestCaseResultPropertyIsObsolete", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/NUnit", + "index": 26, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MSTEST0010", + "shortDescription": { + "text": "RoslynAnalyzers ClassInitialize methods should have valid layout" + }, + "fullDescription": { + "text": "Methods marked with '[ClassInitialize]' should follow the following layout to be valid: -it can't be declared on a generic class without the 'InheritanceBehavior' mode is set -it should be 'public' -it should be 'static' -it should not be 'async void' -it should not be a special method (finalizer, operator...). -it should not be generic -it should take one parameter of type 'TestContext' -return type should be 'void', 'Task' or 'ValueTask' -'InheritanceBehavior.BeforeEachDerivedClass' attribute parameter should be specified if the class is 'abstract' -'InheritanceBehavior.BeforeEachDerivedClass' attribute parameter should not be specified if the class is 'sealed' The type declaring these methods should also respect the following rules: -The type should be a class -The class should be 'public' or 'internal' (if the test project is using the '[DiscoverInternals]' attribute) -The class shouldn't be 'static' -If the class is 'sealed', it should be marked with '[TestClass]' (or a derived attribute) -the class should not be generic.", + "markdown": "Methods marked with '\\[ClassInitialize\\]' should follow the following layout to be valid: -it can't be declared on a generic class without the 'InheritanceBehavior' mode is set -it should be 'public' -it should be 'static' -it should not be 'async void' -it should not be a special method (finalizer, operator...). -it should not be generic -it should take one parameter of type 'TestContext' -return type should be 'void', 'Task' or 'ValueTask' -'InheritanceBehavior.BeforeEachDerivedClass' attribute parameter should be specified if the class is 'abstract' -'InheritanceBehavior.BeforeEachDerivedClass' attribute parameter should not be specified if the class is 'sealed' The type declaring these methods should also respect the following rules: -The type should be a class -The class should be 'public' or 'internal' (if the test project is using the '\\[DiscoverInternals\\]' attribute) -The class shouldn't be 'static' -If the class is 'sealed', it should be marked with '\\[TestClass\\]' (or a derived attribute) -the class should not be generic." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "MSTEST0010", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MSTEST0011", + "shortDescription": { + "text": "RoslynAnalyzers ClassCleanup methods should have valid layout" + }, + "fullDescription": { + "text": "Methods marked with '[ClassCleanup]' should follow the following layout to be valid: -it can't be declared on a generic class without the 'InheritanceBehavior' mode is set -it should be 'public' -it should be 'static' -it should not be 'async void' -it should not be a special method (finalizer, operator...). -it should not be generic -it should not take any parameter -return type should be 'void', 'Task' or 'ValueTask' -'InheritanceBehavior.BeforeEachDerivedClass' attribute parameter should be specified if the class is 'abstract' -'InheritanceBehavior.BeforeEachDerivedClass' attribute parameter should not be specified if the class is 'sealed' The type declaring these methods should also respect the following rules: -The type should be a class -The class should be 'public' or 'internal' (if the test project is using the '[DiscoverInternals]' attribute) -The class shouldn't be 'static' -If the class is 'sealed', it should be marked with '[TestClass]' (or a derived attribute) -the class should not be generic.", + "markdown": "Methods marked with '\\[ClassCleanup\\]' should follow the following layout to be valid: -it can't be declared on a generic class without the 'InheritanceBehavior' mode is set -it should be 'public' -it should be 'static' -it should not be 'async void' -it should not be a special method (finalizer, operator...). -it should not be generic -it should not take any parameter -return type should be 'void', 'Task' or 'ValueTask' -'InheritanceBehavior.BeforeEachDerivedClass' attribute parameter should be specified if the class is 'abstract' -'InheritanceBehavior.BeforeEachDerivedClass' attribute parameter should not be specified if the class is 'sealed' The type declaring these methods should also respect the following rules: -The type should be a class -The class should be 'public' or 'internal' (if the test project is using the '\\[DiscoverInternals\\]' attribute) -The class shouldn't be 'static' -If the class is 'sealed', it should be marked with '\\[TestClass\\]' (or a derived attribute) -the class should not be generic." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "MSTEST0011", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyCertDcl21Cpp", + "shortDescription": { + "text": "cert-dcl21-cpp clang-tidy check" + }, + "fullDescription": { + "text": "cert-dcl21-cpp clang-tidy check · Learn more", + "markdown": "cert-dcl21-cpp clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cert/dcl21-cpp.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyCertDcl21Cpp", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MSTEST0012", + "shortDescription": { + "text": "RoslynAnalyzers AssemblyInitialize methods should have valid layout" + }, + "fullDescription": { + "text": "Methods marked with '[AssemblyInitialize]' should follow the following layout to be valid: -it can't be declared on a generic class -it should be 'public' -it should be 'static' -it should not be 'async void' -it should not be a special method (finalizer, operator...). -it should not be generic -it should take one parameter of type 'TestContext' -return type should be 'void', 'Task' or 'ValueTask' The type declaring these methods should also respect the following rules: -The type should be a class -The class should be 'public' or 'internal' (if the test project is using the '[DiscoverInternals]' attribute) -The class shouldn't be 'static' -The class should be marked with '[TestClass]' (or a derived attribute) -the class should not be generic.", + "markdown": "Methods marked with '\\[AssemblyInitialize\\]' should follow the following layout to be valid: -it can't be declared on a generic class -it should be 'public' -it should be 'static' -it should not be 'async void' -it should not be a special method (finalizer, operator...). -it should not be generic -it should take one parameter of type 'TestContext' -return type should be 'void', 'Task' or 'ValueTask' The type declaring these methods should also respect the following rules: -The type should be a class -The class should be 'public' or 'internal' (if the test project is using the '\\[DiscoverInternals\\]' attribute) -The class shouldn't be 'static' -The class should be marked with '\\[TestClass\\]' (or a derived attribute) -the class should not be generic." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "MSTEST0012", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppUE4ProbableMemoryIssuesWithUObjectsInContainer", + "shortDescription": { + "text": "Objects stored in non-uproperty member can be destroyed during garbage collection, resulting in stale pointers" + }, + "fullDescription": { + "text": "Objects stored in non-uproperty member can be destroyed during garbage collection, resulting in stale pointers", + "markdown": "Objects stored in non-uproperty member can be destroyed during garbage collection, resulting in stale pointers" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppUE4ProbableMemoryIssuesWithUObjectsInContainer", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Unreal Engine", + "index": 6, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MSTEST0013", + "shortDescription": { + "text": "RoslynAnalyzers AssemblyCleanup methods should have valid layout" + }, + "fullDescription": { + "text": "Methods marked with '[AssemblyCleanup]' should follow the following layout to be valid: -it can't be declared on a generic class -it should be 'public' -it should be 'static' -it should not be 'async void' -it should not be a special method (finalizer, operator...). -it should not be generic -it should not take any parameter -return type should be 'void', 'Task' or 'ValueTask' The type declaring these methods should also respect the following rules: -The type should be a class -The class should be 'public' or 'internal' (if the test project is using the '[DiscoverInternals]' attribute) -The class shouldn't be 'static' -The class should be marked with '[TestClass]' (or a derived attribute) -the class should not be generic.", + "markdown": "Methods marked with '\\[AssemblyCleanup\\]' should follow the following layout to be valid: -it can't be declared on a generic class -it should be 'public' -it should be 'static' -it should not be 'async void' -it should not be a special method (finalizer, operator...). -it should not be generic -it should not take any parameter -return type should be 'void', 'Task' or 'ValueTask' The type declaring these methods should also respect the following rules: -The type should be a class -The class should be 'public' or 'internal' (if the test project is using the '\\[DiscoverInternals\\]' attribute) -The class shouldn't be 'static' -The class should be marked with '\\[TestClass\\]' (or a derived attribute) -the class should not be generic." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "MSTEST0013", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MSTEST0014", + "shortDescription": { + "text": "RoslynAnalyzers DataRow should be valid" + }, + "fullDescription": { + "text": "DataRow entry should have the following layout to be valid: - should only be set on a test method; - argument count should match method argument count; - argument type should match method argument type.", + "markdown": "DataRow entry should have the following layout to be valid: - should only be set on a test method; - argument count should match method argument count; - argument type should match method argument type." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "MSTEST0014", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MSTEST0015", + "shortDescription": { + "text": "RoslynAnalyzers Test method should not be ignored" + }, + "fullDescription": { + "text": "Test methods should not be ignored (marked with '[Ignore]').", + "markdown": "Test methods should not be ignored (marked with '\\[Ignore\\]')." + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "MSTEST0015", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppPrintfRiskyFormat", + "shortDescription": { + "text": "Possibly invalid printf format specifier" + }, + "fullDescription": { + "text": "Format string contains a potential error", + "markdown": "Format string contains a potential error" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppPrintfRiskyFormat", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Potential Code Quality Issues", + "index": 9, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MSTEST0016", + "shortDescription": { + "text": "RoslynAnalyzers Test class should have test method" + }, + "fullDescription": { + "text": "Test class should have at least one test method or be 'static' with method(s) marked by '[AssemblyInitialize]' and/or '[AssemblyCleanup]'.", + "markdown": "Test class should have at least one test method or be 'static' with method(s) marked by '\\[AssemblyInitialize\\]' and/or '\\[AssemblyCleanup\\]'." + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "MSTEST0016", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MSTEST0017", + "shortDescription": { + "text": "RoslynAnalyzers Assertion arguments should be passed in the correct order" + }, + "fullDescription": { + "text": "'Assert.AreEqual', 'Assert.AreNotEqual', 'Assert.AreSame' and 'Assert.AreNotSame' expects the expected value to be passed first and the actual value to be passed as second argument.", + "markdown": "'Assert.AreEqual', 'Assert.AreNotEqual', 'Assert.AreSame' and 'Assert.AreNotSame' expects the expected value to be passed first and the actual value to be passed as second argument." + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "MSTEST0017", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MSTEST0018", + "shortDescription": { + "text": "RoslynAnalyzers DynamicData should be valid" + }, + "fullDescription": { + "text": "'DynamicData' entry should have the following layout to be valid: - should only be set on a test method; - member should be defined on the type specified; - member should be a method if DynamicDataSourceType.Method is specified or a property otherwise.", + "markdown": "'DynamicData' entry should have the following layout to be valid: - should only be set on a test method; - member should be defined on the type specified; - member should be a method if DynamicDataSourceType.Method is specified or a property otherwise." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "MSTEST0018", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MSTEST0008", + "shortDescription": { + "text": "RoslynAnalyzers TestInitialize method should have valid layout" + }, + "fullDescription": { + "text": "Methods marked with '[TestInitialize]' should follow the following layout to be valid: -it should be 'public' -it should not be 'abstract' -it should not be 'async void' -it should not be 'static' -it should not be a special method (finalizer, operator...). -it should not be generic -it should not take any parameter -return type should be 'void', 'Task' or 'ValueTask' The type declaring these methods should also respect the following rules: -The type should be a class -The class should be 'public' or 'internal' (if the test project is using the '[DiscoverInternals]' attribute) -The class shouldn't be 'static' -If the class is 'sealed', it should be marked with '[TestClass]' (or a derived attribute).", + "markdown": "Methods marked with '\\[TestInitialize\\]' should follow the following layout to be valid: -it should be 'public' -it should not be 'abstract' -it should not be 'async void' -it should not be 'static' -it should not be a special method (finalizer, operator...). -it should not be generic -it should not take any parameter -return type should be 'void', 'Task' or 'ValueTask' The type declaring these methods should also respect the following rules: -The type should be a class -The class should be 'public' or 'internal' (if the test project is using the '\\[DiscoverInternals\\]' attribute) -The class shouldn't be 'static' -If the class is 'sealed', it should be marked with '\\[TestClass\\]' (or a derived attribute)." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "MSTEST0008", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MSTEST0009", + "shortDescription": { + "text": "RoslynAnalyzers TestCleanup method should have valid layout" + }, + "fullDescription": { + "text": "Methods marked with '[TestCleanup]' should follow the following layout to be valid: -it should be 'public' -it should not be 'abstract' -it should not be 'async void' -it should not be 'static' -it should not be a special method (finalizer, operator...). -it should not be generic -it should not take any parameter -return type should be 'void', 'Task' or 'ValueTask' The type declaring these methods should also respect the following rules: -The type should be a class -The class should be 'public' or 'internal' (if the test project is using the '[DiscoverInternals]' attribute) -The class shouldn't be 'static' -If the class is 'sealed', it should be marked with '[TestClass]' (or a derived attribute).", + "markdown": "Methods marked with '\\[TestCleanup\\]' should follow the following layout to be valid: -it should be 'public' -it should not be 'abstract' -it should not be 'async void' -it should not be 'static' -it should not be a special method (finalizer, operator...). -it should not be generic -it should not take any parameter -return type should be 'void', 'Task' or 'ValueTask' The type declaring these methods should also respect the following rules: -The type should be a class -The class should be 'public' or 'internal' (if the test project is using the '\\[DiscoverInternals\\]' attribute) -The class shouldn't be 'static' -If the class is 'sealed', it should be marked with '\\[TestClass\\]' (or a derived attribute)." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "MSTEST0009", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UsePositionalDeconstructionPattern", + "shortDescription": { + "text": "Use positional deconstruction pattern" + }, + "fullDescription": { + "text": "Replace property pattern member(s) of recursive pattern with positional deconstruction patterns", + "markdown": "Replace property pattern member(s) of recursive pattern with positional deconstruction patterns" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "UsePositionalDeconstructionPattern", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Language Usage Opportunities", + "index": 7, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Unity.SharedStaticUnmanagedType", + "shortDescription": { + "text": "Shared static type parameter requires the unmanaged constraint" + }, + "fullDescription": { + "text": "Shared static type parameter requires the unmanaged constraint", + "markdown": "Shared static type parameter requires the unmanaged constraint" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "Unity.SharedStaticUnmanagedType", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Unity Burst Compiler Warnings", + "index": 54, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticPadded", + "shortDescription": { + "text": "padded clang diagnostic" + }, + "fullDescription": { + "text": "-Wpadded clang diagnostic · Learn more", + "markdown": "-Wpadded clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpadded)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticPadded", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RedundantLogicalConditionalExpressionOperand", + "shortDescription": { + "text": "Redundant operand in logical conditional expression" + }, + "fullDescription": { + "text": "Redundant operand in logical conditional expression, for example \r\n expr || false\r\n expr && true\r\n Learn more...", + "markdown": "Redundant operand in logical conditional expression, for example\n\n```\n\r\n expr || false\r\n expr && true\r\n```\n\n[Learn more...](https://www.jetbrains.com/help/rider/RedundantLogicalConditionalExpressionOperand.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "RedundantLogicalConditionalExpressionOperand", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Redundancies in Code", + "index": 23, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticLanguageExtensionToken", + "shortDescription": { + "text": "language-extension-token clang diagnostic" + }, + "fullDescription": { + "text": "-Wlanguage-extension-token clang diagnostic · Learn more", + "markdown": "-Wlanguage-extension-token clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wlanguage-extension-token)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticLanguageExtensionToken", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "NonAtomicCompoundOperator", + "shortDescription": { + "text": "Suspicious 'volatile' field usage: compound operation is not atomic. 'Interlocked' class can be used instead." + }, + "fullDescription": { + "text": "Suspicious 'volatile' field usage: compound operation is not atomic. 'Interlocked' class can be used instead.", + "markdown": "Suspicious 'volatile' field usage: compound operation is not atomic. 'Interlocked' class can be used instead." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "NonAtomicCompoundOperator", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MSTEST0020", + "shortDescription": { + "text": "RoslynAnalyzers Prefer constructors over TestInitialize methods" + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "MSTEST0020", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MSTEST0021", + "shortDescription": { + "text": "RoslynAnalyzers Prefer 'Dispose' over TestCleanup methods" + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "MSTEST0021", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MSTEST0022", + "shortDescription": { + "text": "RoslynAnalyzers Prefer TestCleanup over 'Dispose' methods" + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "MSTEST0022", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MSTEST0023", + "shortDescription": { + "text": "RoslynAnalyzers Do not negate boolean assertions" + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "MSTEST0023", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyHighlighting", + "shortDescription": { + "text": "Unknown clang-tidy checks" + }, + "fullDescription": { + "text": "Unknown clang-tidy checks.", + "markdown": "Unknown clang-tidy checks." + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyHighlighting", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MSTEST0024", + "shortDescription": { + "text": "RoslynAnalyzers Do not store TestContext in a static member" + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "MSTEST0024", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MSTEST0025", + "shortDescription": { + "text": "RoslynAnalyzers Use 'Assert.Fail' instead of an always-failing assert" + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "MSTEST0025", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MSTEST0026", + "shortDescription": { + "text": "RoslynAnalyzers Avoid conditional access in assertions" + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "MSTEST0026", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MSTEST0029", + "shortDescription": { + "text": "RoslynAnalyzers Public methods should be test methods" + }, + "fullDescription": { + "text": "Public methods should be test methods (marked with `[TestMethod]`).", + "markdown": "Public methods should be test methods (marked with \\`\\[TestMethod\\]\\`)." + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "MSTEST0029", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MSTEST0019", + "shortDescription": { + "text": "RoslynAnalyzers Prefer TestInitialize methods over constructors" + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "MSTEST0019", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticUnusedButSetVariable", + "shortDescription": { + "text": "unused-but-set-variable clang diagnostic" + }, + "fullDescription": { + "text": "-Wunused-but-set-variable clang diagnostic · Learn more", + "markdown": "-Wunused-but-set-variable clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunused-but-set-variable)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticUnusedButSetVariable", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticTautologicalObjcBoolCompare", + "shortDescription": { + "text": "tautological-objc-bool-compare clang diagnostic" + }, + "fullDescription": { + "text": "-Wtautological-objc-bool-compare clang diagnostic · Learn more", + "markdown": "-Wtautological-objc-bool-compare clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wtautological-objc-bool-compare)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticTautologicalObjcBoolCompare", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "OverriddenWithSameValue", + "shortDescription": { + "text": "Resource is overridden with identical value" + }, + "fullDescription": { + "text": "Base resource item and the current item have the same value Learn more...", + "markdown": "Base resource item and the current item have the same value [Learn more...](https://www.jetbrains.com/help/rider/OverriddenWithSameValue.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "OverriddenWithSameValue", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "ResX/Redundancies in Code", + "index": 91, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Asxx.PathError", + "shortDescription": { + "text": "Path error" + }, + "fullDescription": { + "text": "Path error", + "markdown": "Path error" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "Asxx.PathError", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "HttpHandler or WebService/Potential Code Quality Issues", + "index": 93, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticMisspelledAssumption", + "shortDescription": { + "text": "misspelled-assumption clang diagnostic" + }, + "fullDescription": { + "text": "-Wmisspelled-assumption clang diagnostic · Learn more", + "markdown": "-Wmisspelled-assumption clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmisspelled-assumption)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticMisspelledAssumption", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ArrangeNamespaceBody", + "shortDescription": { + "text": "Use preferred namespace body style" + }, + "fullDescription": { + "text": "Use file-scoped or block-scoped namespace body Learn more...", + "markdown": "Use file-scoped or block-scoped namespace body [Learn more...](https://www.jetbrains.com/help/rider/ArrangeNamespaceBody.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "ArrangeNamespaceBody", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Syntax Style", + "index": 21, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyModernizeUseTrailingReturnType", + "shortDescription": { + "text": "modernize-use-trailing-return-type clang-tidy check" + }, + "fullDescription": { + "text": "modernize-use-trailing-return-type clang-tidy check · Learn more", + "markdown": "modernize-use-trailing-return-type clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-trailing-return-type.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyModernizeUseTrailingReturnType", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticMicrosoftStaticAssert", + "shortDescription": { + "text": "microsoft-static-assert clang diagnostic" + }, + "fullDescription": { + "text": "-Wmicrosoft-static-assert clang diagnostic · Learn more", + "markdown": "-Wmicrosoft-static-assert clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-static-assert)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftStaticAssert", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "PropertyCanBeMadeInitOnly.Local", + "shortDescription": { + "text": "Property can be made init-only (private accessibility)" + }, + "fullDescription": { + "text": "Property setter can be replaced with 'init' accessor to enforce property immutability", + "markdown": "Property setter can be replaced with 'init' accessor to enforce property immutability" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "PropertyCanBeMadeInitOnly.Local", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 14, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticCastQual", + "shortDescription": { + "text": "cast-qual clang diagnostic" + }, + "fullDescription": { + "text": "-Wcast-qual clang diagnostic · Learn more", + "markdown": "-Wcast-qual clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wcast-qual)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticCastQual", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticCpp11Compat", + "shortDescription": { + "text": "c++11-compat clang diagnostic" + }, + "fullDescription": { + "text": "-Wc++11-compat clang diagnostic · Learn more", + "markdown": "-Wc++11-compat clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-11-compat)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticCpp11Compat", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticMicrosoftEnumValue", + "shortDescription": { + "text": "microsoft-enum-value clang diagnostic" + }, + "fullDescription": { + "text": "-Wmicrosoft-enum-value clang diagnostic · Learn more", + "markdown": "-Wmicrosoft-enum-value clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-enum-value)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftEnumValue", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyBugproneUnusedRaii", + "shortDescription": { + "text": "bugprone-unused-raii clang-tidy check" + }, + "fullDescription": { + "text": "bugprone-unused-raii clang-tidy check · Learn more", + "markdown": "bugprone-unused-raii clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/unused-raii.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyBugproneUnusedRaii", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyBugproneMisplacedOperatorInStrlenInAlloc", + "shortDescription": { + "text": "bugprone-misplaced-operator-in-strlen-in-alloc clang-tidy check" + }, + "fullDescription": { + "text": "bugprone-misplaced-operator-in-strlen-in-alloc clang-tidy check · Learn more", + "markdown": "bugprone-misplaced-operator-in-strlen-in-alloc clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/misplaced-operator-in-strlen-in-alloc.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyBugproneMisplacedOperatorInStrlenInAlloc", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticShorten64To32", + "shortDescription": { + "text": "shorten-64-to-32 clang diagnostic" + }, + "fullDescription": { + "text": "-Wshorten-64-to-32 clang diagnostic · Learn more", + "markdown": "-Wshorten-64-to-32 clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wshorten-64-to-32)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticShorten64To32", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Html.EventNotResolved", + "shortDescription": { + "text": "Unknown event" + }, + "fullDescription": { + "text": "Unknown event in HTML and related technologies", + "markdown": "Unknown event in HTML and related technologies" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "Html.EventNotResolved", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "HTML/Potential Code Quality Issues", + "index": 51, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyAndroidCloexecEpollCreate", + "shortDescription": { + "text": "android-cloexec-epoll-create clang-tidy check" + }, + "fullDescription": { + "text": "android-cloexec-epoll-create clang-tidy check · Learn more", + "markdown": "android-cloexec-epoll-create clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-epoll-create.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyAndroidCloexecEpollCreate", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyReadabilityAvoidUnconditionalPreprocessorIf", + "shortDescription": { + "text": "readability-avoid-unconditional-preprocessor-if clang-tidy check" + }, + "fullDescription": { + "text": "readability-avoid-unconditional-preprocessor-if clang-tidy check · Learn more", + "markdown": "readability-avoid-unconditional-preprocessor-if clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/avoid-unconditional-preprocessor-if.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyReadabilityAvoidUnconditionalPreprocessorIf", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppUninitializedDependentBaseClass", + "shortDescription": { + "text": "Uninitialized dependent base class" + }, + "fullDescription": { + "text": "Possibly uninitialized dependent base class", + "markdown": "Possibly uninitialized dependent base class" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppUninitializedDependentBaseClass", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Compiler Warnings", + "index": 69, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticParenthesesEquality", + "shortDescription": { + "text": "parentheses-equality clang diagnostic" + }, + "fullDescription": { + "text": "-Wparentheses-equality clang diagnostic · Learn more", + "markdown": "-Wparentheses-equality clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wparentheses-equality)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticParenthesesEquality", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SimplifyLinqExpressionUseMinByAndMaxBy", + "shortDescription": { + "text": "Use 'MinBy' or 'MaxBy' instead of ordering and taking 'First' or 'Last'" + }, + "fullDescription": { + "text": "Replace ordering and taking 'First' or 'Last' with 'MinBy' or 'MaxBy' invocation", + "markdown": "Replace ordering and taking 'First' or 'Last' with 'MinBy' or 'MaxBy' invocation" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "SimplifyLinqExpressionUseMinByAndMaxBy", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 14, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppUseAutoForNumeric", + "shortDescription": { + "text": "Use preferred 'auto' style (numeric type can be replaced with auto)" + }, + "fullDescription": { + "text": "A numeric type can be replaced with 'auto'", + "markdown": "A numeric type can be replaced with 'auto'" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "CppUseAutoForNumeric", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Syntax Style", + "index": 83, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "VBReplaceWithSingleAssignment.1", + "shortDescription": { + "text": "Replace with single assignment" + }, + "fullDescription": { + "text": "Dim $x$ = False If($bool1$) Then $x$ = True", + "markdown": "Dim $x$ = False If($bool1$) Then $x$ = True" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "VBReplaceWithSingleAssignment.1", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "VB.NET/Common Practices and Code Improvements", + "index": 40, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "VBReplaceWithSingleAssignment.2", + "shortDescription": { + "text": "Replace with single assignment" + }, + "fullDescription": { + "text": "Dim $x$ = True If($bool1$) Then $x$ = False", + "markdown": "Dim $x$ = True If($bool1$) Then $x$ = False" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "VBReplaceWithSingleAssignment.2", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "VB.NET/Common Practices and Code Improvements", + "index": 40, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppTypeAliasNeverUsed", + "shortDescription": { + "text": "Type alias is never used" + }, + "fullDescription": { + "text": "A type alias is never used", + "markdown": "A type alias is never used" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppTypeAliasNeverUsed", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Potential Code Quality Issues", + "index": 9, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RedundantReadonlyModifier", + "shortDescription": { + "text": "Redundant 'readonly' modifier" + }, + "fullDescription": { + "text": "Readonly 'redundant' member/accessor modifier in struct declaration", + "markdown": "Readonly 'redundant' member/accessor modifier in struct declaration" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "RedundantReadonlyModifier", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Redundancies in Code", + "index": 23, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticSelfAssignField", + "shortDescription": { + "text": "self-assign-field clang diagnostic" + }, + "fullDescription": { + "text": "-Wself-assign-field clang diagnostic · Learn more", + "markdown": "-Wself-assign-field clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wself-assign-field)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticSelfAssignField", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppPassValueParameterByConstReference", + "shortDescription": { + "text": "Pass value parameters by const reference" + }, + "fullDescription": { + "text": "Parameter of a type that is expensive to copy is passed by value, but it can be passed by const reference instead", + "markdown": "Parameter of a type that is expensive to copy is passed by value, but it can be passed by const reference instead" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "CppPassValueParameterByConstReference", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Common Practices and Code Improvements", + "index": 17, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticConditionalTypeMismatch", + "shortDescription": { + "text": "conditional-type-mismatch clang diagnostic" + }, + "fullDescription": { + "text": "-Wconditional-type-mismatch clang diagnostic · Learn more", + "markdown": "-Wconditional-type-mismatch clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wconditional-type-mismatch)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticConditionalTypeMismatch", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RedundantArrayLowerBoundSpecification", + "shortDescription": { + "text": "Redundant array lower bound specification" + }, + "fullDescription": { + "text": "Array lower bound specification is redundant", + "markdown": "Array lower bound specification is redundant" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "RedundantArrayLowerBoundSpecification", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "VB.NET/Redundancies in Code", + "index": 88, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0099", + "shortDescription": { + "text": "RoslynAnalyzers Making a method an iterator requires restarting the application because is not supported by the runtime." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0099", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyBoostUseToString", + "shortDescription": { + "text": "boost-use-to-string clang-tidy check" + }, + "fullDescription": { + "text": "boost-use-to-string clang-tidy check · Learn more", + "markdown": "boost-use-to-string clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/boost/use-to-string.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyBoostUseToString", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0097", + "shortDescription": { + "text": "RoslynAnalyzers Applying source changes while the application is running is not supported by the runtime." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0097", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0098", + "shortDescription": { + "text": "RoslynAnalyzers Making a method asynchronous requires restarting the application because is not supported by the runtime." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0098", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JoinDeclarationAndInitializer", + "shortDescription": { + "text": "Join local variable declaration and assignment" + }, + "fullDescription": { + "text": "Join local variable declaration and assignment Learn more...", + "markdown": "Join local variable declaration and assignment [Learn more...](https://www.jetbrains.com/help/rider/JoinDeclarationAndInitializer.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "JoinDeclarationAndInitializer", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 14, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RouteTemplates.SyntaxError", + "shortDescription": { + "text": "Syntax error" + }, + "fullDescription": { + "text": "Syntax error", + "markdown": "Syntax error" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "RouteTemplates.SyntaxError", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "ASP.NET route templates/Code Notification", + "index": 47, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SwitchStatementMissingSomeEnumCasesNoDefault", + "shortDescription": { + "text": "Some values of the enum are not processed inside 'switch' statement" + }, + "fullDescription": { + "text": "Some values of the enum are not processed inside 'switch' statement Learn more...", + "markdown": "Some values of the enum are not processed inside 'switch' statement [Learn more...](https://www.jetbrains.com/help/rider/SwitchStatementMissingSomeEnumCasesNoDefault.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "SwitchStatementMissingSomeEnumCasesNoDefault", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyBugproneThrowKeywordMissing", + "shortDescription": { + "text": "bugprone-throw-keyword-missing clang-tidy check" + }, + "fullDescription": { + "text": "bugprone-throw-keyword-missing clang-tidy check · Learn more", + "markdown": "bugprone-throw-keyword-missing clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/throw-keyword-missing.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyBugproneThrowKeywordMissing", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0090", + "shortDescription": { + "text": "RoslynAnalyzers Modifying the body of {0} requires restarting the application because the body has too many statements." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0090", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ConstructorWithMustDisposeResourceAttributeBaseIsNotAnnotated", + "shortDescription": { + "text": "[MustDisposeResource] annotation is not inherited from the base constructor and should be placed explicitly" + }, + "fullDescription": { + "text": "[MustDisposeResource] annotation is not inherited from the base constructor Learn more...", + "markdown": "\\[MustDisposeResource\\] annotation is not inherited from the base constructor [Learn more...](https://www.jetbrains.com/help/rider/ConstructorWithMustDisposeResourceAttributeBaseIsNotAnnotated.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "ConstructorWithMustDisposeResourceAttributeBaseIsNotAnnotated", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RedundantPatternParentheses", + "shortDescription": { + "text": "Remove redundant pattern-matching parentheses" + }, + "fullDescription": { + "text": "Parentheses surrounding a pattern are redundant if they do not change precedence of `or`-/`and`-patterns", + "markdown": "Parentheses surrounding a pattern are redundant if they do not change precedence of \\`or\\`-/\\`and\\`-patterns" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "RedundantPatternParentheses", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Redundancies in Code", + "index": 23, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ConvertToPrimaryConstructor", + "shortDescription": { + "text": "Convert constructor into primary constructor" + }, + "fullDescription": { + "text": "Replace ordinary constructor with primary constructor", + "markdown": "Replace ordinary constructor with primary constructor" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "ConvertToPrimaryConstructor", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Language Usage Opportunities", + "index": 7, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppRedundantLinebreak", + "shortDescription": { + "text": "Incorrect line breaks (line break is redundant elsewhere)" + }, + "fullDescription": { + "text": "Line break is redundant elsewhere", + "markdown": "Line break is redundant elsewhere" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppRedundantLinebreak", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Formatting", + "index": 28, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyZirconTemporaryObjects", + "shortDescription": { + "text": "zircon-temporary-objects clang-tidy check" + }, + "fullDescription": { + "text": "zircon-temporary-objects clang-tidy check · Learn more", + "markdown": "zircon-temporary-objects clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/zircon/temporary-objects.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyZirconTemporaryObjects", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticGlobalConstructors", + "shortDescription": { + "text": "global-constructors clang diagnostic" + }, + "fullDescription": { + "text": "-Wglobal-constructors clang diagnostic · Learn more", + "markdown": "-Wglobal-constructors clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wglobal-constructors)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticGlobalConstructors", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppRedundantTypenameKeyword", + "shortDescription": { + "text": "Redundant 'typename' keyword" + }, + "fullDescription": { + "text": "Redundant 'typename' keyword", + "markdown": "Redundant 'typename' keyword" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppRedundantTypenameKeyword", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Redundancies in Code", + "index": 34, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppDoxygenSyntaxError", + "shortDescription": { + "text": "Syntax error in doxygen comment" + }, + "fullDescription": { + "text": "Syntax error in a doxygen comment", + "markdown": "Syntax error in a doxygen comment" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppDoxygenSyntaxError", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Potential Code Quality Issues", + "index": 9, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0088", + "shortDescription": { + "text": "RoslynAnalyzers Modifying the body of {0} requires restarting the application due to internal error: {1}" + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0088", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UselessComparisonToIntegralConstant", + "shortDescription": { + "text": "Comparison to integral constant is useless" + }, + "fullDescription": { + "text": "Comparison to integral constant is useless; the constant is outside the range of the target type", + "markdown": "Comparison to integral constant is useless; the constant is outside the range of the target type" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "UselessComparisonToIntegralConstant", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Redundancies in Code", + "index": 23, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0089", + "shortDescription": { + "text": "RoslynAnalyzers Modifying source file '{0}' requires restarting the application because the file is too big." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0089", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppRedundantElseKeyword", + "shortDescription": { + "text": "Redundant 'else' keyword" + }, + "fullDescription": { + "text": "Redundant 'else' keyword", + "markdown": "Redundant 'else' keyword" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "CppRedundantElseKeyword", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Redundancies in Code", + "index": 34, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0086", + "shortDescription": { + "text": "RoslynAnalyzers Changing '{0}' to '{1}' requires restarting the application because it changes the shape of the state machine." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0086", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticPackedNonPod", + "shortDescription": { + "text": "packed-non-pod clang diagnostic" + }, + "fullDescription": { + "text": "-Wpacked-non-pod clang diagnostic · Learn more", + "markdown": "-Wpacked-non-pod clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpacked-non-pod)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticPackedNonPod", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0087", + "shortDescription": { + "text": "RoslynAnalyzers Modifying {0} which contains an Aggregate, Group By, or Join query clauses requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0087", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyCppcoreguidelinesSpecialMemberFunctions", + "shortDescription": { + "text": "cppcoreguidelines-special-member-functions clang-tidy check" + }, + "fullDescription": { + "text": "cppcoreguidelines-special-member-functions clang-tidy check · Learn more", + "markdown": "cppcoreguidelines-special-member-functions clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/special-member-functions.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyCppcoreguidelinesSpecialMemberFunctions", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0085", + "shortDescription": { + "text": "RoslynAnalyzers Changing {0} from asynchronous to synchronous requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0085", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "EmptyConstructor", + "shortDescription": { + "text": "Empty constructor" + }, + "fullDescription": { + "text": "Empty public constructor declaration with no parameters is redundant. The compiler generates the same by default. Learn more...", + "markdown": "Empty public constructor declaration with no parameters is redundant. The compiler generates the same by default. [Learn more...](https://www.jetbrains.com/help/rider/EmptyConstructor.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "EmptyConstructor", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Redundancies in Symbol Declarations", + "index": 36, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0082", + "shortDescription": { + "text": "RoslynAnalyzers Adding {0} into an interface requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0082", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0083", + "shortDescription": { + "text": "RoslynAnalyzers Adding {0} into an interface method requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0083", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "StringIndexOfIsCultureSpecific.2", + "shortDescription": { + "text": "String.IndexOf is culture-specific (string.IndexOf(string, int) is culture-specific)" + }, + "fullDescription": { + "text": "$s$.IndexOf($sarg$, $iarg1$) Learn more...", + "markdown": "$s$.IndexOf($sarg$, $iarg1$) [Learn more...](https://www.jetbrains.com/help/rider/StringIndexOfIsCultureSpecific.2.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "StringIndexOfIsCultureSpecific.2", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 14, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyBugproneUnsafeFunctions", + "shortDescription": { + "text": "bugprone-unsafe-functions clang-tidy check" + }, + "fullDescription": { + "text": "bugprone-unsafe-functions clang-tidy check · Learn more", + "markdown": "bugprone-unsafe-functions clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/unsafe-functions.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyBugproneUnsafeFunctions", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0080", + "shortDescription": { + "text": "RoslynAnalyzers Modifying source file '{0}' requires restarting the application due to internal error: {1}" + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0080", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyCppcoreguidelinesSlicing", + "shortDescription": { + "text": "cppcoreguidelines-slicing clang-tidy check" + }, + "fullDescription": { + "text": "cppcoreguidelines-slicing clang-tidy check · Learn more", + "markdown": "cppcoreguidelines-slicing clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/slicing.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyCppcoreguidelinesSlicing", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "StringIndexOfIsCultureSpecific.3", + "shortDescription": { + "text": "String.IndexOf is culture-specific (string.IndexOf(string, int) is culture-specific)" + }, + "fullDescription": { + "text": "$s$.IndexOf($sarg$, $iarg1$, $iarg2$) Learn more...", + "markdown": "$s$.IndexOf($sarg$, $iarg1$, $iarg2$) [Learn more...](https://www.jetbrains.com/help/rider/StringIndexOfIsCultureSpecific.3.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "StringIndexOfIsCultureSpecific.3", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 14, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0081", + "shortDescription": { + "text": "RoslynAnalyzers Adding a method with an explicit interface specifier requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0081", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "StringIndexOfIsCultureSpecific.1", + "shortDescription": { + "text": "String.IndexOf is culture-specific (string.IndexOf(string) is culture-specific)" + }, + "fullDescription": { + "text": "$s$.IndexOf($sarg$) Learn more...", + "markdown": "$s$.IndexOf($sarg$) [Learn more...](https://www.jetbrains.com/help/rider/StringIndexOfIsCultureSpecific.1.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "StringIndexOfIsCultureSpecific.1", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 14, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyMiscMisleadingBidirectional", + "shortDescription": { + "text": "misc-misleading-bidirectional clang-tidy check" + }, + "fullDescription": { + "text": "misc-misleading-bidirectional clang-tidy check · Learn more", + "markdown": "misc-misleading-bidirectional clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/misc/misleading-bidirectional.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyMiscMisleadingBidirectional", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyReadabilityConvertMemberFunctionsToStatic", + "shortDescription": { + "text": "readability-convert-member-functions-to-static clang-tidy check" + }, + "fullDescription": { + "text": "readability-convert-member-functions-to-static clang-tidy check · Learn more", + "markdown": "readability-convert-member-functions-to-static clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/convert-member-functions-to-static.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyReadabilityConvertMemberFunctionsToStatic", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "StaticMemberInGenericType", + "shortDescription": { + "text": "Static field or auto-property in generic type" + }, + "fullDescription": { + "text": "Static field or auto-property in generic type may result in state duplication per each generic type instantiation Learn more...", + "markdown": "Static field or auto-property in generic type may result in state duplication per each generic type instantiation [Learn more...](https://www.jetbrains.com/help/rider/StaticMemberInGenericType.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "StaticMemberInGenericType", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticReservedMacroIdentifier", + "shortDescription": { + "text": "reserved-macro-identifier clang diagnostic" + }, + "fullDescription": { + "text": "-Wreserved-macro-identifier clang diagnostic · Learn more", + "markdown": "-Wreserved-macro-identifier clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wreserved-macro-identifier)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticReservedMacroIdentifier", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyHicppVararg", + "shortDescription": { + "text": "hicpp-vararg clang-tidy check" + }, + "fullDescription": { + "text": "hicpp-vararg clang-tidy check · Learn more", + "markdown": "hicpp-vararg clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/vararg.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyHicppVararg", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0075", + "shortDescription": { + "text": "RoslynAnalyzers Attribute '{0}' is missing. Updating an async method or an iterator requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0075", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyMiscDefinitionsInHeaders", + "shortDescription": { + "text": "misc-definitions-in-headers clang-tidy check" + }, + "fullDescription": { + "text": "misc-definitions-in-headers clang-tidy check · Learn more", + "markdown": "misc-definitions-in-headers clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/misc/definitions-in-headers.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyMiscDefinitionsInHeaders", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0076", + "shortDescription": { + "text": "RoslynAnalyzers Switching between a lambda and a local function requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0076", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0073", + "shortDescription": { + "text": "RoslynAnalyzers Removing {0} that contains an active statement requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0073", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0074", + "shortDescription": { + "text": "RoslynAnalyzers Updating async or iterator modifier around an active statement requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0074", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0071", + "shortDescription": { + "text": "RoslynAnalyzers Adding a new file requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0071", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RedundantUsingDirective.Global", + "shortDescription": { + "text": "Redundant global using directive" + }, + "fullDescription": { + "text": "Global using directive is not required by the code and can be safely removed", + "markdown": "Global using directive is not required by the code and can be safely removed" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "RedundantUsingDirective.Global", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Redundancies in Code", + "index": 23, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0072", + "shortDescription": { + "text": "RoslynAnalyzers Updating an active statement requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0072", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0070", + "shortDescription": { + "text": "RoslynAnalyzers Adding {0} with the Handles clause requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0070", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UseIndexedProperty", + "shortDescription": { + "text": "Use indexed property" + }, + "fullDescription": { + "text": "Use indexed property in COM import types instead of the accessor usage", + "markdown": "Use indexed property in COM import types instead of the accessor usage" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "UseIndexedProperty", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 14, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyMiscNewDeleteOverloads", + "shortDescription": { + "text": "misc-new-delete-overloads clang-tidy check" + }, + "fullDescription": { + "text": "misc-new-delete-overloads clang-tidy check · Learn more", + "markdown": "misc-new-delete-overloads clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/misc/new-delete-overloads.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyMiscNewDeleteOverloads", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticDeprecatedEnumFloatConversion", + "shortDescription": { + "text": "deprecated-enum-float-conversion clang diagnostic" + }, + "fullDescription": { + "text": "-Wdeprecated-enum-float-conversion clang diagnostic · Learn more", + "markdown": "-Wdeprecated-enum-float-conversion clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdeprecated-enum-float-conversion)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedEnumFloatConversion", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppRedundantComplexityInComparison", + "shortDescription": { + "text": "Expression can be simplified" + }, + "fullDescription": { + "text": "Expression can be simplified", + "markdown": "Expression can be simplified" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "CppRedundantComplexityInComparison", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Potential Code Quality Issues", + "index": 9, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticRangeLoopBindReference", + "shortDescription": { + "text": "range-loop-bind-reference clang diagnostic" + }, + "fullDescription": { + "text": "-Wrange-loop-bind-reference clang diagnostic · Learn more", + "markdown": "-Wrange-loop-bind-reference clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wrange-loop-bind-reference)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticRangeLoopBindReference", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Unity.LoadSceneWrongIndex", + "shortDescription": { + "text": "The index is missing in the build settings" + }, + "fullDescription": { + "text": "There is no scene with the same index in the Unity build settings.", + "markdown": "There is no scene with the same index in the Unity build settings." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "Unity.LoadSceneWrongIndex", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Unity", + "index": 19, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyBugproneSuspiciousReallocUsage", + "shortDescription": { + "text": "bugprone-suspicious-realloc-usage clang-tidy check" + }, + "fullDescription": { + "text": "bugprone-suspicious-realloc-usage clang-tidy check · Learn more", + "markdown": "bugprone-suspicious-realloc-usage clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/suspicious-realloc-usage.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyBugproneSuspiciousReallocUsage", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "StringCompareToIsCultureSpecific", + "shortDescription": { + "text": "String.CompareTo is culture-specific" + }, + "fullDescription": { + "text": "$s1$.CompareTo($s2$) Learn more...", + "markdown": "$s1$.CompareTo($s2$) [Learn more...](https://www.jetbrains.com/help/rider/StringCompareToIsCultureSpecific.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "StringCompareToIsCultureSpecific", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 14, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "EventNeverInvoked", + "shortDescription": { + "text": "Event never invoked" + }, + "fullDescription": { + "text": "Event never invoked. Note that in C# this warning is the compiler warning CS0067 and is not configured here.", + "markdown": "Event never invoked. Note that in C# this warning is the compiler warning CS0067 and is not configured here." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "EventNeverInvoked", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangAnalyzerOsxCocoaNSAutoreleasePool", + "shortDescription": { + "text": "osx.cocoa.NSAutoreleasePool clang static analyzer check" + }, + "fullDescription": { + "text": "osx.cocoa.NSAutoreleasePool clang static analyzer check · Learn more", + "markdown": "osx.cocoa.NSAutoreleasePool clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaNSAutoreleasePool", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Static Analyzer Checks", + "index": 32, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0068", + "shortDescription": { + "text": "RoslynAnalyzers Adding a constructor to a type with a field or property initializer that contains an anonymous function requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0068", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0069", + "shortDescription": { + "text": "RoslynAnalyzers Renaming a captured variable, from '{0}' to '{1}' requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0069", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticOverridingMethodMismatch", + "shortDescription": { + "text": "overriding-method-mismatch clang diagnostic" + }, + "fullDescription": { + "text": "-Woverriding-method-mismatch clang diagnostic · Learn more", + "markdown": "-Woverriding-method-mismatch clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#woverriding-method-mismatch)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticOverridingMethodMismatch", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0066", + "shortDescription": { + "text": "RoslynAnalyzers Modifying a catch handler around an active statement requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0066", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ArrangeObjectCreationWhenTypeNotEvident", + "shortDescription": { + "text": "Use preferred style of 'new' expression when created type is not evident" + }, + "fullDescription": { + "text": "Add or remove explicit type specification in 'new' expression when type is not evident from the usage Learn more...", + "markdown": "Add or remove explicit type specification in 'new' expression when type is not evident from the usage [Learn more...](https://www.jetbrains.com/help/rider/ArrangeObjectCreationWhenTypeNotEvident.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "ArrangeObjectCreationWhenTypeNotEvident", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Syntax Style", + "index": 21, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0067", + "shortDescription": { + "text": "RoslynAnalyzers Modifying {0} which contains a static variable requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0067", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0064", + "shortDescription": { + "text": "RoslynAnalyzers Modifying a catch/finally handler with an active statement in the try block requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0064", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0065", + "shortDescription": { + "text": "RoslynAnalyzers Modifying a try/catch/finally statement when the finally block is active requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0065", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0062", + "shortDescription": { + "text": "RoslynAnalyzers Removing {0} that contains an active statement requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0062", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "EmptyForStatement", + "shortDescription": { + "text": "Empty 'for' loop is redundant" + }, + "fullDescription": { + "text": "Empty 'for' loop is redundant Learn more...", + "markdown": "Empty 'for' loop is redundant [Learn more...](https://www.jetbrains.com/help/rider/EmptyForStatement.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "EmptyForStatement", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Redundancies in Code", + "index": 23, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0063", + "shortDescription": { + "text": "RoslynAnalyzers Updating a {0} around an active statement requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0063", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Asp.NotResolved", + "shortDescription": { + "text": "Unknown symbol" + }, + "fullDescription": { + "text": "Unknown symbol in ASP.NET and related technologies", + "markdown": "Unknown symbol in ASP.NET and related technologies" + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "Asp.NotResolved", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "Aspx/Potential Code Quality Issues", + "index": 60, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0060", + "shortDescription": { + "text": "RoslynAnalyzers Adding {0} around an active statement requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0060", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticUnsupportedFriend", + "shortDescription": { + "text": "unsupported-friend clang diagnostic" + }, + "fullDescription": { + "text": "-Wunsupported-friend clang diagnostic · Learn more", + "markdown": "-Wunsupported-friend clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunsupported-friend)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticUnsupportedFriend", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0061", + "shortDescription": { + "text": "RoslynAnalyzers Deleting {0} around an active statement requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0061", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyBugproneSpuriouslyWakeUpFunctions", + "shortDescription": { + "text": "bugprone-spuriously-wake-up-functions clang-tidy check" + }, + "fullDescription": { + "text": "bugprone-spuriously-wake-up-functions clang-tidy check · Learn more", + "markdown": "bugprone-spuriously-wake-up-functions clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/spuriously-wake-up-functions.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyBugproneSpuriouslyWakeUpFunctions", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyAndroidCloexecAccept4", + "shortDescription": { + "text": "android-cloexec-accept4 clang-tidy check" + }, + "fullDescription": { + "text": "android-cloexec-accept4 clang-tidy check · Learn more", + "markdown": "android-cloexec-accept4 clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-accept4.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyAndroidCloexecAccept4", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangAnalyzerOsxCocoaDealloc", + "shortDescription": { + "text": "osx.cocoa.Dealloc clang static analyzer check" + }, + "fullDescription": { + "text": "osx.cocoa.Dealloc clang static analyzer check · Learn more", + "markdown": "osx.cocoa.Dealloc clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaDealloc", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Static Analyzer Checks", + "index": 32, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "IntDivisionByZero", + "shortDescription": { + "text": "Division by zero in at least one execution path" + }, + "fullDescription": { + "text": "Division by zero in at least one execution path", + "markdown": "Division by zero in at least one execution path" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "IntDivisionByZero", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticEnumTooLarge", + "shortDescription": { + "text": "enum-too-large clang diagnostic" + }, + "fullDescription": { + "text": "-Wenum-too-large clang diagnostic · Learn more", + "markdown": "-Wenum-too-large clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wenum-too-large)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticEnumTooLarge", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticProfileInstrUnprofiled", + "shortDescription": { + "text": "profile-instr-unprofiled clang diagnostic" + }, + "fullDescription": { + "text": "-Wprofile-instr-unprofiled clang diagnostic · Learn more", + "markdown": "-Wprofile-instr-unprofiled clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wprofile-instr-unprofiled)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticProfileInstrUnprofiled", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0059", + "shortDescription": { + "text": "RoslynAnalyzers Changing the signature of {0} requires restarting the application because is not supported by the runtime." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0059", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangAnalyzerCoreUninitializedBranch", + "shortDescription": { + "text": "core.uninitialized.Branch clang static analyzer check" + }, + "fullDescription": { + "text": "core.uninitialized.Branch clang static analyzer check · Learn more", + "markdown": "core.uninitialized.Branch clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangAnalyzerCoreUninitializedBranch", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Static Analyzer Checks", + "index": 32, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0053", + "shortDescription": { + "text": "RoslynAnalyzers Changing the parameters of {0} requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0053", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0054", + "shortDescription": { + "text": "RoslynAnalyzers Changing the return type of {0} requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0054", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0051", + "shortDescription": { + "text": "RoslynAnalyzers Changing the type of a captured variable '{0}' previously of type '{1}' requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0051", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0052", + "shortDescription": { + "text": "RoslynAnalyzers Changing the declaration scope of a captured variable '{0}' requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0052", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangAnalyzerOsxCocoaVariadicMethodTypes", + "shortDescription": { + "text": "osx.cocoa.VariadicMethodTypes clang static analyzer check" + }, + "fullDescription": { + "text": "osx.cocoa.VariadicMethodTypes clang static analyzer check · Learn more", + "markdown": "osx.cocoa.VariadicMethodTypes clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaVariadicMethodTypes", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Static Analyzer Checks", + "index": 32, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyLlvmlibcCalleeNamespace", + "shortDescription": { + "text": "llvmlibc-callee-namespace clang-tidy check" + }, + "fullDescription": { + "text": "llvmlibc-callee-namespace clang-tidy check · Learn more", + "markdown": "llvmlibc-callee-namespace clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/llvmlibc/callee-namespace.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyLlvmlibcCalleeNamespace", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyAbseilDurationComparison", + "shortDescription": { + "text": "abseil-duration-comparison clang-tidy check" + }, + "fullDescription": { + "text": "abseil-duration-comparison clang-tidy check · Learn more", + "markdown": "abseil-duration-comparison clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/duration-comparison.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyAbseilDurationComparison", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticAutoVarId", + "shortDescription": { + "text": "auto-var-id clang diagnostic" + }, + "fullDescription": { + "text": "-Wauto-var-id clang diagnostic · Learn more", + "markdown": "-Wauto-var-id clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wauto-var-id)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticAutoVarId", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UseCollectionExpression", + "shortDescription": { + "text": "Use collection expression syntax" + }, + "fullDescription": { + "text": "Suggest to replace collection object construction and items additions with C# 12 collection expression syntax Learn more...", + "markdown": "Suggest to replace collection object construction and items additions with C# 12 collection expression syntax [Learn more...](https://www.jetbrains.com/help/rider/UseCollectionExpression.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "UseCollectionExpression", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Language Usage Opportunities", + "index": 7, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0046", + "shortDescription": { + "text": "RoslynAnalyzers Updating a complex statement containing an await expression requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0046", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0047", + "shortDescription": { + "text": "RoslynAnalyzers Changing visibility of {0} requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0047", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0044", + "shortDescription": { + "text": "RoslynAnalyzers Modifying {0} which contains the stackalloc operator requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0044", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0045", + "shortDescription": { + "text": "RoslynAnalyzers Modifying source with experimental language features enabled requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0045", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppUnmatchedPragmaRegionDirective", + "shortDescription": { + "text": "Missing a matching '#pragma endregion' directive" + }, + "fullDescription": { + "text": "A '#pragma region' directive is missing a matching '#pragma endregion' directive", + "markdown": "A '#pragma region' directive is missing a matching '#pragma endregion' directive" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppUnmatchedPragmaRegionDirective", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Potential Code Quality Issues", + "index": 9, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ReplaceWithSingleOrDefault.4", + "shortDescription": { + "text": "Replace with SingleOrDefault($args$)" + }, + "fullDescription": { + "text": "$expr$ && $seq$.Any($args$) ? $seq$.Single($args$) : default($T$)", + "markdown": "$expr$ \\&\\& $seq$.Any($args$) ? $seq$.Single($args$) : default($T$)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "ReplaceWithSingleOrDefault.4", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 14, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ReplaceWithSingleOrDefault.2", + "shortDescription": { + "text": "Replace with SingleOrDefault($args$)" + }, + "fullDescription": { + "text": "$expr$ && $seq$.Any($args$) ? $seq$.Single($args$) : null", + "markdown": "$expr$ \\&\\& $seq$.Any($args$) ? $seq$.Single($args$) : null" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "ReplaceWithSingleOrDefault.2", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 14, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ReplaceWithSingleOrDefault.3", + "shortDescription": { + "text": "Replace with SingleOrDefault($args$)" + }, + "fullDescription": { + "text": "$seq$.Any($args$) ? $seq$.Single($args$) : default($T$)", + "markdown": "$seq$.Any($args$) ? $seq$.Single($args$) : default($T$)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "ReplaceWithSingleOrDefault.3", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 14, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticModuleFileExtension", + "shortDescription": { + "text": "module-file-extension clang diagnostic" + }, + "fullDescription": { + "text": "-Wmodule-file-extension clang diagnostic · Learn more", + "markdown": "-Wmodule-file-extension clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmodule-file-extension)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticModuleFileExtension", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Unity.BurstLoadingManagedType", + "shortDescription": { + "text": "Loading managed type is not supported" + }, + "fullDescription": { + "text": "Loading managed type is not supported", + "markdown": "Loading managed type is not supported" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "Unity.BurstLoadingManagedType", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Unity Burst Compiler Warnings", + "index": 54, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyHicppFunctionSize", + "shortDescription": { + "text": "hicpp-function-size clang-tidy check" + }, + "fullDescription": { + "text": "hicpp-function-size clang-tidy check · Learn more", + "markdown": "hicpp-function-size clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/function-size.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyHicppFunctionSize", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ReturnTypeCanBeEnumerable.Local", + "shortDescription": { + "text": "Return type can be IEnumerable (private accessibility)" + }, + "fullDescription": { + "text": "All usages of a method (or read-only property/indexer) use returned value as IEnumerable, but it is declared with more specific type (e.g. List) Learn more...", + "markdown": "All usages of a method (or read-only property/indexer) use returned value as IEnumerable, but it is declared with more specific type (e.g. List) [Learn more...](https://www.jetbrains.com/help/rider/ReturnTypeCanBeEnumerable.Local.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ReturnTypeCanBeEnumerable.Local", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 14, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticUnusedMemberFunction", + "shortDescription": { + "text": "unused-member-function clang diagnostic" + }, + "fullDescription": { + "text": "-Wunused-member-function clang diagnostic · Learn more", + "markdown": "-Wunused-member-function clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunused-member-function)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticUnusedMemberFunction", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticExtraTokens", + "shortDescription": { + "text": "extra-tokens clang diagnostic" + }, + "fullDescription": { + "text": "-Wextra-tokens clang diagnostic · Learn more", + "markdown": "-Wextra-tokens clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wextra-tokens)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticExtraTokens", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ReplaceWithSingleOrDefault.1", + "shortDescription": { + "text": "Replace with SingleOrDefault($args$)" + }, + "fullDescription": { + "text": "$seq$.Any($args$) ? $seq$.Single($args$) : null", + "markdown": "$seq$.Any($args$) ? $seq$.Single($args$) : null" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "ReplaceWithSingleOrDefault.1", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 14, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "StaticProblemInText", + "shortDescription": { + "text": "Cannot access static symbol in text argument" + }, + "fullDescription": { + "text": "Cannot access static symbol in text argument", + "markdown": "Cannot access static symbol in text argument" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "StaticProblemInText", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RouteTemplates.ActionRoutePrefixCanBeExtractedToControllerRoute", + "shortDescription": { + "text": "Action's route prefix can be extracted to controller's route" + }, + "fullDescription": { + "text": "When all controller's actions' route templates have same prefixes, it's possible to extract their common prefix to controller's route template", + "markdown": "When all controller's actions' route templates have same prefixes, it's possible to extract their common prefix to controller's route template" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "RouteTemplates.ActionRoutePrefixCanBeExtractedToControllerRoute", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "ASP.NET route templates/Code Notification", + "index": 47, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticAixCompat", + "shortDescription": { + "text": "aix-compat clang diagnostic" + }, + "fullDescription": { + "text": "-Waix-compat clang diagnostic · Learn more", + "markdown": "-Waix-compat clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#waix-compat)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticAixCompat", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "InterpolatedStringExpressionIsNotIFormattable", + "shortDescription": { + "text": "Formatting is specified, but interpolated string expression is not IFormattable" + }, + "fullDescription": { + "text": "Formatting is specified, but interpolated string expression is not IFormattable", + "markdown": "Formatting is specified, but interpolated string expression is not IFormattable" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "InterpolatedStringExpressionIsNotIFormattable", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticOverridingTOption", + "shortDescription": { + "text": "overriding-t-option clang diagnostic" + }, + "fullDescription": { + "text": "-Woverriding-t-option clang diagnostic · Learn more", + "markdown": "-Woverriding-t-option clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#woverriding-t-option)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticOverridingTOption", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0029", + "shortDescription": { + "text": "RoslynAnalyzers Adding an imported method requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0029", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "InvertIf", + "shortDescription": { + "text": "Invert 'if' statement to reduce nesting" + }, + "fullDescription": { + "text": "Invert 'if' statement to reduce nesting Learn more...", + "markdown": "Invert 'if' statement to reduce nesting [Learn more...](https://www.jetbrains.com/help/rider/InvertIf.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "InvertIf", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Language Usage Opportunities", + "index": 7, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0038", + "shortDescription": { + "text": "RoslynAnalyzers Modifying a method inside the context of a generic type requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0038", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0036", + "shortDescription": { + "text": "RoslynAnalyzers Modifying a generic method requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0036", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0033", + "shortDescription": { + "text": "RoslynAnalyzers Deleting {0} requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0033", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0031", + "shortDescription": { + "text": "RoslynAnalyzers Adding {0} into a class with explicit or sequential layout requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0031", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UnusedField.Compiler", + "shortDescription": { + "text": "Field is never used" + }, + "fullDescription": { + "text": "Field is never used (compiler warning)", + "markdown": "Field is never used (compiler warning)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "UnusedField.Compiler", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Compiler Warnings", + "index": 27, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0032", + "shortDescription": { + "text": "RoslynAnalyzers Moving {0} requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0032", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ENC0030", + "shortDescription": { + "text": "RoslynAnalyzers Adding {0} into a {1} requires restarting the application." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ENC0030", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyFuchsiaOverloadedOperator", + "shortDescription": { + "text": "fuchsia-overloaded-operator clang-tidy check" + }, + "fullDescription": { + "text": "fuchsia-overloaded-operator clang-tidy check · Learn more", + "markdown": "fuchsia-overloaded-operator clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/fuchsia/overloaded-operator.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyFuchsiaOverloadedOperator", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticCastOfSelType", + "shortDescription": { + "text": "cast-of-sel-type clang diagnostic" + }, + "fullDescription": { + "text": "-Wcast-of-sel-type clang diagnostic · Learn more", + "markdown": "-Wcast-of-sel-type clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wcast-of-sel-type)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticCastOfSelType", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "IntVariableOverflowInUncheckedContext", + "shortDescription": { + "text": "Possible overflow in unchecked context" + }, + "fullDescription": { + "text": "Possible overflow in unchecked context", + "markdown": "Possible overflow in unchecked context" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "IntVariableOverflowInUncheckedContext", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ObjectCreationAsStatement", + "shortDescription": { + "text": "Possible unassigned object created by 'new' expression" + }, + "fullDescription": { + "text": "Object created by 'new' expression is possibly not assigned anywhere", + "markdown": "Object created by 'new' expression is possibly not assigned anywhere" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "ObjectCreationAsStatement", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RedundantNullnessAttributeWithNullableReferenceTypes", + "shortDescription": { + "text": "[NotNull] or [CanBeNull] attribute is applied to a type that already has the same annotation from nullable reference types" + }, + "fullDescription": { + "text": "[NotNull] or [CanBeNull] attribute has no effect because the target type already has the same annotation from nullable reference types", + "markdown": "\\[NotNull\\] or \\[CanBeNull\\] attribute has no effect because the target type already has the same annotation from nullable reference types" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "RedundantNullnessAttributeWithNullableReferenceTypes", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Redundancies in Code", + "index": 23, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangAnalyzerCoreUninitializedNewArraySize", + "shortDescription": { + "text": "core.uninitialized.NewArraySize clang static analyzer check" + }, + "fullDescription": { + "text": "core.uninitialized.NewArraySize clang static analyzer check · Learn more", + "markdown": "core.uninitialized.NewArraySize clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangAnalyzerCoreUninitializedNewArraySize", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Static Analyzer Checks", + "index": 32, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppRedundantExportKeyword", + "shortDescription": { + "text": "Keyword 'export' is redundant, because there is enclosing export declaration" + }, + "fullDescription": { + "text": "Keyword 'export' is redundant, because there is enclosing export declaration", + "markdown": "Keyword 'export' is redundant, because there is enclosing export declaration" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppRedundantExportKeyword", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Redundancies in Code", + "index": 34, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Xaml.PathError", + "shortDescription": { + "text": "Path error" + }, + "fullDescription": { + "text": "Path error", + "markdown": "Path error" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "Xaml.PathError", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "XAML/Potential Code Quality Issues", + "index": 44, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticC2xCompat", + "shortDescription": { + "text": "c2x-compat clang diagnostic" + }, + "fullDescription": { + "text": "-Wc2x-compat clang diagnostic · Learn more", + "markdown": "-Wc2x-compat clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc2x-compat)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticC2xCompat", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyPerformanceFasterStringFind", + "shortDescription": { + "text": "performance-faster-string-find clang-tidy check" + }, + "fullDescription": { + "text": "performance-faster-string-find clang-tidy check · Learn more", + "markdown": "performance-faster-string-find clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/performance/faster-string-find.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyPerformanceFasterStringFind", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ConditionIsAlwaysTrueOrFalse", + "shortDescription": { + "text": "Expression is always 'true' or always 'false'" + }, + "fullDescription": { + "text": "Value of a boolean expression is always the same at this point Learn more...", + "markdown": "Value of a boolean expression is always the same at this point [Learn more...](https://www.jetbrains.com/help/rider/ConditionIsAlwaysTrueOrFalse.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "ConditionIsAlwaysTrueOrFalse", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Redundancies in Code", + "index": 23, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticStringPlusInt", + "shortDescription": { + "text": "string-plus-int clang diagnostic" + }, + "fullDescription": { + "text": "-Wstring-plus-int clang diagnostic · Learn more", + "markdown": "-Wstring-plus-int clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wstring-plus-int)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticStringPlusInt", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ConstructorInitializerLoop", + "shortDescription": { + "text": "Possible cyclic constructor call" + }, + "fullDescription": { + "text": "Possible cyclic constructor call Learn more...", + "markdown": "Possible cyclic constructor call [Learn more...](https://www.jetbrains.com/help/rider/ConstructorInitializerLoop.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "ConstructorInitializerLoop", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "VBReplaceWithFirstOrDefault", + "shortDescription": { + "text": "Replace with FirstOrDefault($args$)" + }, + "fullDescription": { + "text": "If ($seq$.Any($args$), $seq$.First($args$), Nothing)", + "markdown": "If ($seq$.Any($args$), $seq$.First($args$), Nothing)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "VBReplaceWithFirstOrDefault", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "VB.NET/Common Practices and Code Improvements", + "index": 40, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppUseAssociativeContains", + "shortDescription": { + "text": "'contains' member function can be used" + }, + "fullDescription": { + "text": "'contains' member function can be used", + "markdown": "'contains' member function can be used" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "CppUseAssociativeContains", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Common Practices and Code Improvements", + "index": 17, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticMultichar", + "shortDescription": { + "text": "multichar clang diagnostic" + }, + "fullDescription": { + "text": "-Wmultichar clang diagnostic · Learn more", + "markdown": "-Wmultichar clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmultichar)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticMultichar", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyHicppMemberInit", + "shortDescription": { + "text": "hicpp-member-init clang-tidy check" + }, + "fullDescription": { + "text": "hicpp-member-init clang-tidy check · Learn more", + "markdown": "hicpp-member-init clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/member-init.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyHicppMemberInit", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "VBSimplifyLinqExpression.9", + "shortDescription": { + "text": "Simplify expression" + }, + "fullDescription": { + "text": "!$seq$.All(Function ($x$) $expr$ Is $expr2$)", + "markdown": "!$seq$.All(Function ($x$) $expr$ Is $expr2$)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "VBSimplifyLinqExpression.9", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "VB.NET/Common Practices and Code Improvements", + "index": 40, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyReadabilityRedundantAccessSpecifiers", + "shortDescription": { + "text": "readability-redundant-access-specifiers clang-tidy check" + }, + "fullDescription": { + "text": "readability-redundant-access-specifiers clang-tidy check · Learn more", + "markdown": "readability-redundant-access-specifiers clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/redundant-access-specifiers.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyReadabilityRedundantAccessSpecifiers", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticInvalidOffsetof", + "shortDescription": { + "text": "invalid-offsetof clang diagnostic" + }, + "fullDescription": { + "text": "-Winvalid-offsetof clang diagnostic · Learn more", + "markdown": "-Winvalid-offsetof clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#winvalid-offsetof)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticInvalidOffsetof", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticPrivateExtern", + "shortDescription": { + "text": "private-extern clang diagnostic" + }, + "fullDescription": { + "text": "-Wprivate-extern clang diagnostic · Learn more", + "markdown": "-Wprivate-extern clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wprivate-extern)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticPrivateExtern", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "VBSimplifyLinqExpression.1", + "shortDescription": { + "text": "Simplify expression" + }, + "fullDescription": { + "text": "!$seq$.Any(Function ($x$) Not $expr$)", + "markdown": "!$seq$.Any(Function ($x$) Not $expr$)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "VBSimplifyLinqExpression.1", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "VB.NET/Common Practices and Code Improvements", + "index": 40, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "VBSimplifyLinqExpression.2", + "shortDescription": { + "text": "Simplify expression" + }, + "fullDescription": { + "text": "!$seq$.All(Function ($x$) Not $expr$)", + "markdown": "!$seq$.All(Function ($x$) Not $expr$)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "VBSimplifyLinqExpression.2", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "VB.NET/Common Practices and Code Improvements", + "index": 40, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "VBSimplifyLinqExpression.3", + "shortDescription": { + "text": "Simplify expression" + }, + "fullDescription": { + "text": "!$seq$.Any(Function ($x$) $expr$ IsNot $expr2$)", + "markdown": "!$seq$.Any(Function ($x$) $expr$ IsNot $expr2$)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "VBSimplifyLinqExpression.3", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "VB.NET/Common Practices and Code Improvements", + "index": 40, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "VBSimplifyLinqExpression.4", + "shortDescription": { + "text": "Simplify expression" + }, + "fullDescription": { + "text": "!$seq$.Any(Function ($x$) $expr$ <> $expr2$)", + "markdown": "!$seq$.Any(Function ($x$) $expr$ \\<\\> $expr2$)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "VBSimplifyLinqExpression.4", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "VB.NET/Common Practices and Code Improvements", + "index": 40, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "VBSimplifyLinqExpression.5", + "shortDescription": { + "text": "Simplify expression" + }, + "fullDescription": { + "text": "!$seq$.All(Function ($x$) $expr$ IsNot $expr2$)", + "markdown": "!$seq$.All(Function ($x$) $expr$ IsNot $expr2$)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "VBSimplifyLinqExpression.5", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "VB.NET/Common Practices and Code Improvements", + "index": 40, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "VBSimplifyLinqExpression.6", + "shortDescription": { + "text": "Simplify expression" + }, + "fullDescription": { + "text": "!$seq$.All(Function ($x$) $expr$ <> $expr2$)", + "markdown": "!$seq$.All(Function ($x$) $expr$ \\<\\> $expr2$)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "VBSimplifyLinqExpression.6", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "VB.NET/Common Practices and Code Improvements", + "index": 40, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticStaticLocalInInline", + "shortDescription": { + "text": "static-local-in-inline clang diagnostic" + }, + "fullDescription": { + "text": "-Wstatic-local-in-inline clang diagnostic · Learn more", + "markdown": "-Wstatic-local-in-inline clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wstatic-local-in-inline)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticStaticLocalInInline", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "VBSimplifyLinqExpression.7", + "shortDescription": { + "text": "Simplify expression" + }, + "fullDescription": { + "text": "!$seq$.Any(Function ($x$) $expr$ Is $expr2$)", + "markdown": "!$seq$.Any(Function ($x$) $expr$ Is $expr2$)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "VBSimplifyLinqExpression.7", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "VB.NET/Common Practices and Code Improvements", + "index": 40, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "VBSimplifyLinqExpression.8", + "shortDescription": { + "text": "Simplify expression" + }, + "fullDescription": { + "text": "!$seq$.Any(Function ($x$) $expr$ = $expr2$)", + "markdown": "!$seq$.Any(Function ($x$) $expr$ = $expr2$)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "VBSimplifyLinqExpression.8", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "VB.NET/Common Practices and Code Improvements", + "index": 40, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "AccessRightsInText", + "shortDescription": { + "text": "Cannot access symbol in text argument" + }, + "fullDescription": { + "text": "Cannot access symbol in text argument", + "markdown": "Cannot access symbol in text argument" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "AccessRightsInText", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticArcNonPodMemaccess", + "shortDescription": { + "text": "arc-non-pod-memaccess clang diagnostic" + }, + "fullDescription": { + "text": "-Warc-non-pod-memaccess clang diagnostic · Learn more", + "markdown": "-Warc-non-pod-memaccess clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#warc-non-pod-memaccess)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticArcNonPodMemaccess", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "WebConfig.RedundantAddNamespaceTag", + "shortDescription": { + "text": "Redundant add namespace element" + }, + "fullDescription": { + "text": "Add namespace element is redundant because it duplicates another element of is cleared later and can be safely removed", + "markdown": "Add namespace element is redundant because it duplicates another element of is cleared later and can be safely removed" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "WebConfig.RedundantAddNamespaceTag", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "Web.Config/Redundancies in Code", + "index": 90, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticCpp11InlineNamespace", + "shortDescription": { + "text": "c++11-inline-namespace clang diagnostic" + }, + "fullDescription": { + "text": "-Wc++11-inline-namespace clang diagnostic · Learn more", + "markdown": "-Wc++11-inline-namespace clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-11-inline-namespace)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticCpp11InlineNamespace", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "EntityFramework.ClientSideDbFunctionCall", + "shortDescription": { + "text": "Database function must not be called in non-database context" + }, + "fullDescription": { + "text": "Reports database-only methods that can produce runtime exceptions when called outside the 'LINQ to Entities' context Learn more...", + "markdown": "Reports database-only methods that can produce runtime exceptions when called outside the 'LINQ to Entities' context [Learn more...](https://www.jetbrains.com/help/rider/EntityFramework.ClientSideDbFunctionCall.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "EntityFramework.ClientSideDbFunctionCall", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Entity Framework", + "index": 37, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyModernizeMakeUnique", + "shortDescription": { + "text": "modernize-make-unique clang-tidy check" + }, + "fullDescription": { + "text": "modernize-make-unique clang-tidy check · Learn more", + "markdown": "modernize-make-unique clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/make-unique.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyModernizeMakeUnique", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppNonExplicitConvertingConstructor", + "shortDescription": { + "text": "Non-explicit converting constructor" + }, + "fullDescription": { + "text": "Non-explicit converting constructor", + "markdown": "Non-explicit converting constructor" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "CppNonExplicitConvertingConstructor", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Common Practices and Code Improvements", + "index": 17, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyGoogleBuildUsingNamespace", + "shortDescription": { + "text": "google-build-using-namespace clang-tidy check" + }, + "fullDescription": { + "text": "google-build-using-namespace clang-tidy check · Learn more", + "markdown": "google-build-using-namespace clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/google/build-using-namespace.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyGoogleBuildUsingNamespace", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UseDiscardAssignment", + "shortDescription": { + "text": "Use discard assignment" + }, + "fullDescription": { + "text": "Replace intentionally ignored variable declaration 'var _ = ...' with discard assignment '_ = ...'.", + "markdown": "Replace intentionally ignored variable declaration 'var _ = ...' with discard assignment '_ = ...'." + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "UseDiscardAssignment", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Language Usage Opportunities", + "index": 7, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyGoogleRuntimeInt", + "shortDescription": { + "text": "google-runtime-int clang-tidy check" + }, + "fullDescription": { + "text": "google-runtime-int clang-tidy check · Learn more", + "markdown": "google-runtime-int clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/google/runtime-int.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyGoogleRuntimeInt", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ContractAnnotationNotParsed", + "shortDescription": { + "text": "Problem in contract annotation definition" + }, + "fullDescription": { + "text": "Input string in ContractAnnotation attribute could not be parsed Learn more...", + "markdown": "Input string in ContractAnnotation attribute could not be parsed [Learn more...](https://www.jetbrains.com/help/rider/ContractAnnotationNotParsed.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "ContractAnnotationNotParsed", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Constraints Violations", + "index": 73, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppRedundantDereferencingAndTakingAddress", + "shortDescription": { + "text": "Redundant dereferencing and taking address" + }, + "fullDescription": { + "text": "Redundant dereferencing and taking address", + "markdown": "Redundant dereferencing and taking address" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "CppRedundantDereferencingAndTakingAddress", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Redundancies in Code", + "index": 34, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticTautologicalBitwiseCompare", + "shortDescription": { + "text": "tautological-bitwise-compare clang diagnostic" + }, + "fullDescription": { + "text": "-Wtautological-bitwise-compare clang diagnostic · Learn more", + "markdown": "-Wtautological-bitwise-compare clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wtautological-bitwise-compare)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticTautologicalBitwiseCompare", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "VBReplaceWithLastOrDefault", + "shortDescription": { + "text": "Replace with LastOrDefault($args$)" + }, + "fullDescription": { + "text": "If ($seq$.Any($args$), $seq$.Last($args$), Nothing)", + "markdown": "If ($seq$.Any($args$), $seq$.Last($args$), Nothing)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "VBReplaceWithLastOrDefault", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "VB.NET/Common Practices and Code Improvements", + "index": 40, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "WithExpressionInsteadOfInitializer", + "shortDescription": { + "text": "'with' expression is used instead of object initializer" + }, + "fullDescription": { + "text": "'with' expression applied to a newly created object instance results in unnecessary clone creation", + "markdown": "'with' expression applied to a newly created object instance results in unnecessary clone creation" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "WithExpressionInsteadOfInitializer", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticExperimentalHeaderUnits", + "shortDescription": { + "text": "experimental-header-units clang diagnostic" + }, + "fullDescription": { + "text": "-Wexperimental-header-units clang diagnostic · Learn more", + "markdown": "-Wexperimental-header-units clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wexperimental-header-units)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticExperimentalHeaderUnits", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticNullPointerSubtraction", + "shortDescription": { + "text": "null-pointer-subtraction clang diagnostic" + }, + "fullDescription": { + "text": "-Wnull-pointer-subtraction clang diagnostic · Learn more", + "markdown": "-Wnull-pointer-subtraction clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wnull-pointer-subtraction)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticNullPointerSubtraction", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ReplaceObjectPatternWithVarPattern", + "shortDescription": { + "text": "Replace object pattern not performing any additional checks with 'var' pattern" + }, + "fullDescription": { + "text": "Replace '{ } x' object pattern not performing any additional checks with 'var x' pattern", + "markdown": "Replace '{ } x' object pattern not performing any additional checks with 'var x' pattern" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "ReplaceObjectPatternWithVarPattern", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Language Usage Opportunities", + "index": 7, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RedundantExplicitArrayCreation", + "shortDescription": { + "text": "Redundant explicit type in array creation" + }, + "fullDescription": { + "text": "When array type can be inferred from the initializer, you can use an implicitly-typed array Learn more...", + "markdown": "When array type can be inferred from the initializer, you can use an implicitly-typed array [Learn more...](https://www.jetbrains.com/help/rider/RedundantExplicitArrayCreation.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "RedundantExplicitArrayCreation", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Redundancies in Code", + "index": 23, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SimplifyIIf", + "shortDescription": { + "text": "Simplify 'IIf'" + }, + "fullDescription": { + "text": "'IIf' contains 'True' or 'False' in result branch, for example \r\n IIf(condition, True, elseBranch)\r\n IIf(condition, thenBranch : True)", + "markdown": "'IIf' contains 'True' or 'False' in result branch, for example\n\n```\n\r\n IIf(condition, True, elseBranch)\r\n IIf(condition, thenBranch : True)\r\n \n```" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "SimplifyIIf", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "VB.NET/Common Practices and Code Improvements", + "index": 40, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "PartialTypeWithSinglePart", + "shortDescription": { + "text": "Redundant 'partial' modifier on type declaration" + }, + "fullDescription": { + "text": "Class is declared as 'partial', but has only one part Learn more...", + "markdown": "Class is declared as 'partial', but has only one part [Learn more...](https://www.jetbrains.com/help/rider/PartialTypeWithSinglePart.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "PartialTypeWithSinglePart", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Redundancies in Symbol Declarations", + "index": 36, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "PossibleInvalidOperationExceptionCollectionWasModified", + "shortDescription": { + "text": "Possible 'System.InvalidOperationException: Collection was modified'" + }, + "fullDescription": { + "text": "Modifying the collection could result in a 'System.InvalidOperationException: Collection was modified' in the next foreach iteration", + "markdown": "Modifying the collection could result in a 'System.InvalidOperationException: Collection was modified' in the next foreach iteration" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "PossibleInvalidOperationExceptionCollectionWasModified", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticUnknownPragmas", + "shortDescription": { + "text": "unknown-pragmas clang diagnostic" + }, + "fullDescription": { + "text": "-Wunknown-pragmas clang diagnostic · Learn more", + "markdown": "-Wunknown-pragmas clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunknown-pragmas)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticUnknownPragmas", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MemberCanBeInternal", + "shortDescription": { + "text": "Member or type can be made internal (friend)" + }, + "fullDescription": { + "text": "Member or type can be made internal (friend)", + "markdown": "Member or type can be made internal (friend)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "MemberCanBeInternal", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 14, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticDisabledMacroExpansion", + "shortDescription": { + "text": "disabled-macro-expansion clang diagnostic" + }, + "fullDescription": { + "text": "-Wdisabled-macro-expansion clang diagnostic · Learn more", + "markdown": "-Wdisabled-macro-expansion clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdisabled-macro-expansion)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticDisabledMacroExpansion", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyBugproneSharedPtrArrayMismatch", + "shortDescription": { + "text": "bugprone-shared-ptr-array-mismatch clang-tidy check" + }, + "fullDescription": { + "text": "bugprone-shared-ptr-array-mismatch clang-tidy check · Learn more", + "markdown": "bugprone-shared-ptr-array-mismatch clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/shared-ptr-array-mismatch.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyBugproneSharedPtrArrayMismatch", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyHicppNamedParameter", + "shortDescription": { + "text": "hicpp-named-parameter clang-tidy check" + }, + "fullDescription": { + "text": "hicpp-named-parameter clang-tidy check · Learn more", + "markdown": "hicpp-named-parameter clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/named-parameter.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyHicppNamedParameter", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UseFormatSpecifierInFormatString", + "shortDescription": { + "text": "Use format specifier in format strings" + }, + "fullDescription": { + "text": "'.ToString()' call can be replaced with format specifier", + "markdown": "'.ToString()' call can be replaced with format specifier" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "UseFormatSpecifierInFormatString", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MissingSpace", + "shortDescription": { + "text": "Incorrect spacing (space is missing elsewhere)" + }, + "fullDescription": { + "text": "Space is missing elsewhere Learn more...", + "markdown": "Space is missing elsewhere [Learn more...](https://www.jetbrains.com/help/rider/MissingSpace.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "MissingSpace", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Formatting", + "index": 24, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ForeachCanBeConvertedToQueryUsingAnotherGetEnumerator", + "shortDescription": { + "text": "Foreach loop can be converted into LINQ-expression but another 'GetEnumerator' method will be used" + }, + "fullDescription": { + "text": "A 'foreach' ('For Each' for VB.NET) can be converted into a LINQ-expression but another 'GetEnumerator' method will be used", + "markdown": "A 'foreach' ('For Each' for VB.NET) can be converted into a LINQ-expression but another 'GetEnumerator' method will be used" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "ForeachCanBeConvertedToQueryUsingAnotherGetEnumerator", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Language Usage Opportunities", + "index": 7, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangAnalyzerOsxCocoaMissingSuperCall", + "shortDescription": { + "text": "osx.cocoa.MissingSuperCall clang static analyzer check" + }, + "fullDescription": { + "text": "osx.cocoa.MissingSuperCall clang static analyzer check · Learn more", + "markdown": "osx.cocoa.MissingSuperCall clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaMissingSuperCall", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Static Analyzer Checks", + "index": 32, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "HeuristicUnreachableCode", + "shortDescription": { + "text": "Heuristically unreachable code" + }, + "fullDescription": { + "text": "Heuristically unreachable code detected", + "markdown": "Heuristically unreachable code detected" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "HeuristicUnreachableCode", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Redundancies in Code", + "index": 23, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RedundantSuppressNullableWarningExpression", + "shortDescription": { + "text": "Redundant nullable warning suppression expression" + }, + "fullDescription": { + "text": "Nullable warning suppression expression does not suppress any warnings and is applied to an already non-nullable operand", + "markdown": "Nullable warning suppression expression does not suppress any warnings and is applied to an already non-nullable operand" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "RedundantSuppressNullableWarningExpression", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Redundancies in Code", + "index": 23, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyBugproneParentVirtualCall", + "shortDescription": { + "text": "bugprone-parent-virtual-call clang-tidy check" + }, + "fullDescription": { + "text": "bugprone-parent-virtual-call clang-tidy check · Learn more", + "markdown": "bugprone-parent-virtual-call clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/parent-virtual-call.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyBugproneParentVirtualCall", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ArrangeAccessorOwnerBody", + "shortDescription": { + "text": "Use preferred body style (convert into property, indexer, or event with preferred body style)" + }, + "fullDescription": { + "text": "Use expression or block body Learn more...", + "markdown": "Use expression or block body [Learn more...](https://www.jetbrains.com/help/rider/ArrangeAccessorOwnerBody.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "ArrangeAccessorOwnerBody", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Syntax Style", + "index": 21, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "NotAccessedPositionalProperty.Global", + "shortDescription": { + "text": "Non-accessed positional property (non-private accessibility)" + }, + "fullDescription": { + "text": "Positional property is never accessed for reading Learn more...", + "markdown": "Positional property is never accessed for reading [Learn more...](https://www.jetbrains.com/help/rider/NotAccessedPositionalProperty.Global.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "NotAccessedPositionalProperty.Global", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticIncompatiblePropertyType", + "shortDescription": { + "text": "incompatible-property-type clang diagnostic" + }, + "fullDescription": { + "text": "-Wincompatible-property-type clang diagnostic · Learn more", + "markdown": "-Wincompatible-property-type clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wincompatible-property-type)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticIncompatiblePropertyType", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Mvc.ViewNotResolved", + "shortDescription": { + "text": "MVC (unknown view)" + }, + "fullDescription": { + "text": "Unknown ASP.NET MVC View Learn more...", + "markdown": "Unknown ASP.NET MVC View [Learn more...](https://www.jetbrains.com/help/rider/Mvc.ViewNotResolved.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "Mvc.ViewNotResolved", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "Aspx/Potential Code Quality Issues", + "index": 60, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppBadAngleBracketsSpaces", + "shortDescription": { + "text": "Incorrect spacing (around angle brackets)" + }, + "fullDescription": { + "text": "Around angle brackets", + "markdown": "Around angle brackets" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppBadAngleBracketsSpaces", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Formatting", + "index": 28, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyGoogleReadabilityAvoidUnderscoreInGoogletestName", + "shortDescription": { + "text": "google-readability-avoid-underscore-in-googletest-name clang-tidy check" + }, + "fullDescription": { + "text": "google-readability-avoid-underscore-in-googletest-name clang-tidy check · Learn more", + "markdown": "google-readability-avoid-underscore-in-googletest-name clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/google/readability-avoid-underscore-in-googletest-name.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyGoogleReadabilityAvoidUnderscoreInGoogletestName", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangAnalyzerCplusplusPureVirtualCall", + "shortDescription": { + "text": "cplusplus.PureVirtualCall clang static analyzer check" + }, + "fullDescription": { + "text": "cplusplus.PureVirtualCall clang static analyzer check · Learn more", + "markdown": "cplusplus.PureVirtualCall clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangAnalyzerCplusplusPureVirtualCall", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Static Analyzer Checks", + "index": 32, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppBoostFormatMixedArgs", + "shortDescription": { + "text": "Positional and non-positional arguments in the same boost::format call" + }, + "fullDescription": { + "text": "An argument of boost::format should contain either positional (%N%, %|N$...|) or serial (%|...|, %s) arguments, not both", + "markdown": "An argument of boost::format should contain either positional (%N%, %\\|N$...\\|) or serial (%\\|...\\|, %s) arguments, not both" + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "CppBoostFormatMixedArgs", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Potential Code Quality Issues", + "index": 9, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppEnforceFunctionDeclarationStyle", + "shortDescription": { + "text": "Use preferred declaration style (enforce function declaration style)" + }, + "fullDescription": { + "text": "Enforce usage of the trailing return type or the regular return type syntax", + "markdown": "Enforce usage of the trailing return type or the regular return type syntax" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppEnforceFunctionDeclarationStyle", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Syntax Style", + "index": 83, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticNullConversion", + "shortDescription": { + "text": "null-conversion clang diagnostic" + }, + "fullDescription": { + "text": "-Wnull-conversion clang diagnostic · Learn more", + "markdown": "-Wnull-conversion clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wnull-conversion)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticNullConversion", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticPedanticCoreFeatures", + "shortDescription": { + "text": "pedantic-core-features clang diagnostic" + }, + "fullDescription": { + "text": "-Wpedantic-core-features clang diagnostic · Learn more", + "markdown": "-Wpedantic-core-features clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpedantic-core-features)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticPedanticCoreFeatures", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyPerformanceNoAutomaticMove", + "shortDescription": { + "text": "performance-no-automatic-move clang-tidy check" + }, + "fullDescription": { + "text": "performance-no-automatic-move clang-tidy check · Learn more", + "markdown": "performance-no-automatic-move clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/performance/no-automatic-move.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyPerformanceNoAutomaticMove", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticVexingParse", + "shortDescription": { + "text": "vexing-parse clang diagnostic" + }, + "fullDescription": { + "text": "-Wvexing-parse clang diagnostic · Learn more", + "markdown": "-Wvexing-parse clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wvexing-parse)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticVexingParse", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "VBWarnings__BC42505", + "shortDescription": { + "text": "The CallerArgumentExpressionAttribute applied to parameter will have no effect. It is applied with an invalid parameter name." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "VBWarnings__BC42505", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "VB.NET/Compiler Warnings", + "index": 100, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppMsExtReinterpretCastFromNullptr", + "shortDescription": { + "text": "Casting from nullptr to pointer type with reinterpret_cast is non-standard Microsoft C++ extension" + }, + "fullDescription": { + "text": "Casting from nullptr to pointer type with reinterpret_cast is non-standard Microsoft C++ extension", + "markdown": "Casting from nullptr to pointer type with reinterpret_cast is non-standard Microsoft C++ extension" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppMsExtReinterpretCastFromNullptr", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Potential Code Quality Issues", + "index": 9, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UnreachableSwitchCaseDueToIntegerAnalysis", + "shortDescription": { + "text": "Heuristically unreachable case according to integer analysis" + }, + "fullDescription": { + "text": "Heuristically unreachable case label according to integer analysis Learn more...", + "markdown": "Heuristically unreachable case label according to integer analysis [Learn more...](https://www.jetbrains.com/help/rider/UnreachableSwitchCaseDueToIntegerAnalysis.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "UnreachableSwitchCaseDueToIntegerAnalysis", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyCppcoreguidelinesInterfacesGlobalInit", + "shortDescription": { + "text": "cppcoreguidelines-interfaces-global-init clang-tidy check" + }, + "fullDescription": { + "text": "cppcoreguidelines-interfaces-global-init clang-tidy check · Learn more", + "markdown": "cppcoreguidelines-interfaces-global-init clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/interfaces-global-init.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyCppcoreguidelinesInterfacesGlobalInit", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "VBWarnings__BC42504", + "shortDescription": { + "text": "The CallerArgumentExpressionAttribute applied to parameter will have no effect because it's self-referential" + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "VBWarnings__BC42504", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "VB.NET/Compiler Warnings", + "index": 100, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ConvertToConstant.Local", + "shortDescription": { + "text": "Convert local variable or field into constant (private accessibility)" + }, + "fullDescription": { + "text": "Convert local variable or field into constant", + "markdown": "Convert local variable or field into constant" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "ConvertToConstant.Local", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 14, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticGnuOffsetofExtensions", + "shortDescription": { + "text": "gnu-offsetof-extensions clang diagnostic" + }, + "fullDescription": { + "text": "-Wgnu-offsetof-extensions clang diagnostic · Learn more", + "markdown": "-Wgnu-offsetof-extensions clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wgnu-offsetof-extensions)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticGnuOffsetofExtensions", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "OtherTagsInsideScript1", + "shortDescription": { + "text": "Script tag errors (other tags inside \n '", + "markdown": "Reports empty tags that do not work in some browsers.\n\n**Example:**\n\n\n \n \n \n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CheckEmptyScriptTag", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "HTML", + "index": 11, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "HtmlUnknownTarget", + "shortDescription": { + "text": "Unresolved file in a link" + }, + "fullDescription": { + "text": "Reports an unresolved file in a link.", + "markdown": "Reports an unresolved file in a link." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "HtmlUnknownTarget", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "HTML", + "index": 11, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "XmlWrongRootElement", + "shortDescription": { + "text": "Wrong root element" + }, + "fullDescription": { + "text": "Reports a root tag name different from the name specified in the '' tag.", + "markdown": "Reports a root tag name different from the name specified in the `` tag." + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "XmlWrongRootElement", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "XML", + "index": 53, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "HtmlUnknownAttribute", + "shortDescription": { + "text": "Unknown attribute" + }, + "fullDescription": { + "text": "Reports an unknown HTML attribute. Suggests configuring attributes that should not be reported.", + "markdown": "Reports an unknown HTML attribute. Suggests configuring attributes that should not be reported." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "HtmlUnknownAttribute", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "HTML", + "index": 11, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RegExpRedundantEscape", + "shortDescription": { + "text": "Redundant character escape" + }, + "fullDescription": { + "text": "Reports redundant character escape sequences that can be replaced with unescaped characters preserving the meaning. Many escape sequences that are necessary outside of a character class are redundant inside square brackets '[]' of a character class. Although unescaped opening curly braces '{' outside of character classes are allowed in some dialects (JavaScript, Python, and so on), it can cause confusion and make the pattern less portable, because there are dialects that require escaping curly braces as characters. For this reason the inspection does not report escaped opening curly braces. Example: '\\-\\;[\\.]' After the quick-fix is applied: '-;[.]' The Ignore escaped closing brackets '}' and ']' option specifies whether to report '\\}' and '\\]' outside of a character class when they are allowed to be unescaped by the RegExp dialect. New in 2017.3", + "markdown": "Reports redundant character escape sequences that can be replaced with unescaped characters preserving the meaning. Many escape sequences that are necessary outside of a character class are redundant inside square brackets `[]` of a character class.\n\n\nAlthough unescaped opening curly braces `{` outside of character classes are allowed in some dialects (JavaScript, Python, and so on),\nit can cause confusion and make the pattern less portable, because there are dialects that require escaping curly braces as characters.\nFor this reason the inspection does not report escaped opening curly braces.\n\n**Example:**\n\n\n \\-\\;[\\.]\n\nAfter the quick-fix is applied:\n\n\n -;[.]\n\n\nThe **Ignore escaped closing brackets '}' and '\\]'** option specifies whether to report `\\}` and `\\]` outside of a character class\nwhen they are allowed to be unescaped by the RegExp dialect.\n\nNew in 2017.3" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "RegExpRedundantEscape", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "RegExp", + "index": 55, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "HtmlExtraClosingTag", + "shortDescription": { + "text": "Redundant closing tag" + }, + "fullDescription": { + "text": "Reports redundant closing tags on empty elements, for example, 'img' or 'br'. Example: '\n \n

\n \n ' After the quick-fix is applied: '\n \n
\n \n '", + "markdown": "Reports redundant closing tags on empty elements, for example, `img` or `br`.\n\n**Example:**\n\n\n \n \n

\n \n \n\nAfter the quick-fix is applied:\n\n\n \n \n
\n \n \n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "HtmlExtraClosingTag", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "HTML", + "index": 11, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "XmlDuplicatedId", + "shortDescription": { + "text": "Duplicate 'id' attribute" + }, + "fullDescription": { + "text": "Reports a duplicate 'id' attribute in XML.", + "markdown": "Reports a duplicate `id` attribute in XML." + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "XmlDuplicatedId", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "XML", + "index": 53, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "XmlUnboundNsPrefix", + "shortDescription": { + "text": "Unbound namespace prefix" + }, + "fullDescription": { + "text": "Reports an unbound namespace prefix in XML.", + "markdown": "Reports an unbound namespace prefix in XML." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "XmlUnboundNsPrefix", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "XML", + "index": 53, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "XmlPathReference", + "shortDescription": { + "text": "Unresolved file reference" + }, + "fullDescription": { + "text": "Reports an unresolved file reference in XML.", + "markdown": "Reports an unresolved file reference in XML." + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "XmlPathReference", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "XML", + "index": 53, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "LossyEncoding", + "shortDescription": { + "text": "Lossy encoding" + }, + "fullDescription": { + "text": "Reports characters that cannot be displayed because of the current document encoding. Examples: If you type international characters in a document with the US-ASCII charset, some characters will be lost on save. If you load a UTF-8-encoded file using the ISO-8859-1 one-byte charset, some characters will be displayed incorrectly. You can fix this by changing the file encoding either by specifying the encoding directly in the file, e.g. by editing 'encoding=' attribute in the XML prolog of XML file, or by changing the corresponding options in Settings | Editor | File Encodings.", + "markdown": "Reports characters that cannot be displayed because of the current document encoding.\n\nExamples:\n\n* If you type international characters in a document with the **US-ASCII** charset, some characters will be lost on save.\n* If you load a **UTF-8** -encoded file using the **ISO-8859-1** one-byte charset, some characters will be displayed incorrectly.\n\nYou can fix this by changing the file encoding\neither by specifying the encoding directly in the file, e.g. by editing `encoding=` attribute in the XML prolog of XML file,\nor by changing the corresponding options in **Settings \\| Editor \\| File Encodings**." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "LossyEncoding", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "Internationalization", + "index": 113, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JsonSchemaDeprecation", + "shortDescription": { + "text": "Deprecated JSON property" + }, + "fullDescription": { + "text": "Reports a deprecated property in a JSON file. Note that deprecation mechanism is not defined in the JSON Schema specification yet, and this inspection uses a non-standard extension 'deprecationMessage'.", + "markdown": "Reports a deprecated property in a JSON file. \nNote that deprecation mechanism is not defined in the JSON Schema specification yet, and this inspection uses a non-standard extension 'deprecationMessage'." + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "JsonSchemaDeprecation", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "JSON and JSON5", + "index": 77, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RegExpRedundantNestedCharacterClass", + "shortDescription": { + "text": "Redundant nested character class" + }, + "fullDescription": { + "text": "Reports unnecessary nested character classes. Example: '[a-c[x-z]]' After the quick-fix is applied: '[a-cx-z]' New in 2020.2", + "markdown": "Reports unnecessary nested character classes.\n\n**Example:**\n\n\n [a-c[x-z]]\n\nAfter the quick-fix is applied:\n\n\n [a-cx-z]\n\nNew in 2020.2" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "RegExpRedundantNestedCharacterClass", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "RegExp", + "index": 55, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RegExpOctalEscape", + "shortDescription": { + "text": "Octal escape" + }, + "fullDescription": { + "text": "Reports octal escapes, which are easily confused with back references. Use hexadecimal escapes to avoid confusion. Example: '\\07' After the quick-fix is applied: '\\x07' New in 2017.1", + "markdown": "Reports octal escapes, which are easily confused with back references. Use hexadecimal escapes to avoid confusion.\n\n**Example:**\n\n\n \\07\n\nAfter the quick-fix is applied:\n\n\n \\x07\n\nNew in 2017.1" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "RegExpOctalEscape", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "RegExp", + "index": 55, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UnusedDefine", + "shortDescription": { + "text": "Unused define" + }, + "fullDescription": { + "text": "Reports an unused named pattern ('define') in a RELAX-NG file (XML or Compact Syntax). 'define' elements that are used through an include in another file are ignored.", + "markdown": "Reports an unused named pattern (`define`) in a RELAX-NG file (XML or Compact Syntax). `define` elements that are used through an include in another file are ignored." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "UnusedDefine", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "RELAX NG", + "index": 116, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RegExpDuplicateAlternationBranch", + "shortDescription": { + "text": "Duplicate branch in alternation" + }, + "fullDescription": { + "text": "Reports duplicate branches in a RegExp alternation. Duplicate branches slow down matching and obscure the intent of the expression. Example: '(alpha|bravo|charlie|alpha)' After the quick-fix is applied: '(alpha|bravo|charlie)' New in 2017.1", + "markdown": "Reports duplicate branches in a RegExp alternation. Duplicate branches slow down matching and obscure the intent of the expression.\n\n**Example:**\n\n\n (alpha|bravo|charlie|alpha)\n\nAfter the quick-fix is applied:\n\n\n (alpha|bravo|charlie)\n\nNew in 2017.1" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "RegExpDuplicateAlternationBranch", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "RegExp", + "index": 55, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RedundantSuppression", + "shortDescription": { + "text": "Redundant suppression" + }, + "fullDescription": { + "text": "Reports usages of the following elements that can be safely removed because the inspection they affect is no longer applicable in this context: '@SuppressWarning' annotation, or '// noinspection' line comment, or '/** noinspection */' JavaDoc comment Example: 'public class C {\n // symbol is already private,\n // but annotation is still around\n @SuppressWarnings({\"WeakerAccess\"})\n private boolean CONST = true;\n void f() {\n CONST = false;\n }\n}'", + "markdown": "Reports usages of the following elements that can be safely removed because the inspection they affect is no longer applicable in this context:\n\n* `@SuppressWarning` annotation, or\n* `// noinspection` line comment, or\n* `/** noinspection */` JavaDoc comment\n\nExample:\n\n\n public class C {\n // symbol is already private,\n // but annotation is still around\n @SuppressWarnings({\"WeakerAccess\"})\n private boolean CONST = true;\n void f() {\n CONST = false;\n }\n }\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "RedundantSuppression", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "General", + "index": 45, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CustomRegExpInspection", + "shortDescription": { + "text": "Custom RegExp inspection" + }, + "fullDescription": { + "text": "Custom Regex Inspection", + "markdown": "Custom Regex Inspection" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CustomRegExpInspection", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "RegExp", + "index": 55, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RegExpUnexpectedAnchor", + "shortDescription": { + "text": "Begin or end anchor in unexpected position" + }, + "fullDescription": { + "text": "Reports '^' or '\\A' anchors not at the beginning of the pattern and '$', '\\Z' or '\\z' anchors not at the end of the pattern. In the wrong position these RegExp anchors prevent the pattern from matching anything. In case of the '^' and '$' anchors, most likely the literal character was meant and the escape forgotten. Example: '(Price $10)' New in 2018.1", + "markdown": "Reports `^` or `\\A` anchors not at the beginning of the pattern and `$`, `\\Z` or `\\z` anchors not at the end of the pattern. In the wrong position these RegExp anchors prevent the pattern from matching anything. In case of the `^` and `$` anchors, most likely the literal character was meant and the escape forgotten.\n\n**Example:**\n\n\n (Price $10)\n\n\nNew in 2018.1" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "RegExpUnexpectedAnchor", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "RegExp", + "index": 55, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SpellCheckingInspection", + "shortDescription": { + "text": "Typo" + }, + "fullDescription": { + "text": "Reports typos and misspellings in your code, comments, and literals and fixes them with one click.", + "markdown": "Reports typos and misspellings in your code, comments, and literals and fixes them with one click." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "SpellCheckingInspection", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low" + } + }, + "relationships": [ + { + "target": { + "id": "Proofreading", + "index": 111, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RegExpSimplifiable", + "shortDescription": { + "text": "Regular expression can be simplified" + }, + "fullDescription": { + "text": "Reports regular expressions that can be simplified. Example: '[a] xx* [ah-hz]' After the quick-fix is applied: 'a x+ [ahz]' New in 2022.1", + "markdown": "Reports regular expressions that can be simplified.\n\n**Example:**\n\n\n [a] xx* [ah-hz]\n\nAfter the quick-fix is applied:\n\n\n a x+ [ahz]\n\nNew in 2022.1" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "RegExpSimplifiable", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "RegExp", + "index": 55, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RegExpEmptyAlternationBranch", + "shortDescription": { + "text": "Empty branch in alternation" + }, + "fullDescription": { + "text": "Reports empty branches in a RegExp alternation. An empty branch will only match the empty string, and in most cases that is not what is desired. This inspection will not report a single empty branch at the start or the end of an alternation. Example: '(alpha||bravo)' After the quick-fix is applied: '(alpha|bravo)' New in 2017.2", + "markdown": "Reports empty branches in a RegExp alternation. An empty branch will only match the empty string, and in most cases that is not what is desired. This inspection will not report a single empty branch at the start or the end of an alternation.\n\n**Example:**\n\n\n (alpha||bravo)\n\nAfter the quick-fix is applied:\n\n\n (alpha|bravo)\n\nNew in 2017.2" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "RegExpEmptyAlternationBranch", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "RegExp", + "index": 55, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "TodoComment", + "shortDescription": { + "text": "TODO comment" + }, + "fullDescription": { + "text": "Reports TODO comments in your code. You can configure the format for TODO comments in Settings | Editor | TODO. Enable the Only warn on TODO comments without any details option to only warn on empty TODO comments, that don't provide any description on the task that should be done. Disable to report all TODO comments.", + "markdown": "Reports **TODO** comments in your code.\n\nYou can configure the format for **TODO** comments in [Settings \\| Editor \\| TODO](settings://preferences.toDoOptions).\n\nEnable the **Only warn on TODO comments without any details** option to only warn on empty TODO comments, that\ndon't provide any description on the task that should be done. Disable to report all TODO comments." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "TodoComment", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "General", + "index": 45, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "XmlDefaultAttributeValue", + "shortDescription": { + "text": "Redundant attribute with default value" + }, + "fullDescription": { + "text": "Reports a redundant assignment of the default value to an XML attribute.", + "markdown": "Reports a redundant assignment of the default value to an XML attribute." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "XmlDefaultAttributeValue", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "XML", + "index": 53, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "EmptyDirectory", + "shortDescription": { + "text": "Empty directory" + }, + "fullDescription": { + "text": "Reports empty directories. Available only from Code | Inspect Code or Code | Analyze Code | Run Inspection by Name and isn't reported in the editor. Use the Only report empty directories located under a source folder option to have only directories under source roots reported.", + "markdown": "Reports empty directories.\n\nAvailable only from **Code \\| Inspect Code** or\n**Code \\| Analyze Code \\| Run Inspection by Name** and isn't reported in the editor.\n\nUse the **Only report empty directories located under a source folder** option to have only directories under source\nroots reported." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "EmptyDirectory", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "General", + "index": 45, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "NonAsciiCharacters", + "shortDescription": { + "text": "Non-ASCII characters" + }, + "fullDescription": { + "text": "Reports code elements that use non-ASCII symbols in an unusual context. Example: Non-ASCII characters used in identifiers, strings, or comments. Identifiers written in different languages, such as 'myСollection' with the letter 'C' written in Cyrillic. Comments or strings containing Unicode symbols, such as long dashes and arrows.", + "markdown": "Reports code elements that use non-ASCII symbols in an unusual context.\n\nExample:\n\n* Non-ASCII characters used in identifiers, strings, or comments.\n* Identifiers written in different languages, such as `my`**С**`ollection` with the letter **C** written in Cyrillic.\n* Comments or strings containing Unicode symbols, such as long dashes and arrows." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "NonAsciiCharacters", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "Internationalization", + "index": 113, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "IgnoreFileDuplicateEntry", + "shortDescription": { + "text": "Ignore file duplicates" + }, + "fullDescription": { + "text": "Reports duplicate entries (patterns) in the ignore file (e.g. .gitignore, .hgignore). Duplicate entries in these files are redundant and can be removed. Example: '# Output directories\n /out/\n /target/\n /out/'", + "markdown": "Reports duplicate entries (patterns) in the ignore file (e.g. .gitignore, .hgignore). Duplicate entries in these files are redundant and can be removed.\n\nExample:\n\n\n # Output directories\n /out/\n /target/\n /out/\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "IgnoreFileDuplicateEntry", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "Version control", + "index": 127, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JsonStandardCompliance", + "shortDescription": { + "text": "Compliance with JSON standard" + }, + "fullDescription": { + "text": "Reports the following discrepancies of a JSON file with the language specification: A line or block comment (configurable). Multiple top-level values (expect for JSON Lines files, configurable for others). A trailing comma in an object or array (configurable). A single quoted string. A property key is a not a double quoted strings. A NaN or Infinity/-Infinity numeric value as a floating point literal (configurable).", + "markdown": "Reports the following discrepancies of a JSON file with [the language specification](https://tools.ietf.org/html/rfc7159):\n\n* A line or block comment (configurable).\n* Multiple top-level values (expect for JSON Lines files, configurable for others).\n* A trailing comma in an object or array (configurable).\n* A single quoted string.\n* A property key is a not a double quoted strings.\n* A NaN or Infinity/-Infinity numeric value as a floating point literal (configurable)." + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "JsonStandardCompliance", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "JSON and JSON5", + "index": 77, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JsonSchemaRefReference", + "shortDescription": { + "text": "Unresolved '$ref' and '$schema' references" + }, + "fullDescription": { + "text": "Reports an unresolved '$ref' or '$schema' path in a JSON schema.", + "markdown": "Reports an unresolved `$ref` or `$schema` path in a JSON schema. " + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "JsonSchemaRefReference", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JSON and JSON5", + "index": 77, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RegExpSuspiciousBackref", + "shortDescription": { + "text": "Suspicious back reference" + }, + "fullDescription": { + "text": "Reports back references that will not be resolvable at runtime. This means that the back reference can never match anything. A back reference will not be resolvable when the group is defined after the back reference, or if the group is defined in a different branch of an alternation. Example of a group defined after its back reference: '\\1(abc)' Example of a group and a back reference in different branches: 'a(b)c|(xy)\\1z' New in 2022.1", + "markdown": "Reports back references that will not be resolvable at runtime. This means that the back reference can never match anything. A back reference will not be resolvable when the group is defined after the back reference, or if the group is defined in a different branch of an alternation.\n\n**Example of a group defined after its back reference:**\n\n\n \\1(abc)\n\n**Example of a group and a back reference in different branches:**\n\n\n a(b)c|(xy)\\1z\n\nNew in 2022.1" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "RegExpSuspiciousBackref", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "RegExp", + "index": 55, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UnresolvedReference", + "shortDescription": { + "text": "Unresolved reference" + }, + "fullDescription": { + "text": "Reports an unresolved reference to a named pattern ('define') in RELAX-NG files that use XML syntax. Suggests creating the referenced 'define' element.", + "markdown": "Reports an unresolved reference to a named pattern (`define`) in RELAX-NG files that use XML syntax. Suggests creating the referenced `define` element." + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "UnresolvedReference", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "RELAX NG", + "index": 116, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "HtmlMissingClosingTag", + "shortDescription": { + "text": "Missing closing tag" + }, + "fullDescription": { + "text": "Reports an HTML element without a closing tag. Some coding styles require that HTML elements have closing tags even where this is optional. Example: '\n \n

Behold!\n \n ' After the quick-fix is applied: '\n \n

Behold!

\n \n '", + "markdown": "Reports an HTML element without a closing tag. Some coding styles require that HTML elements have closing tags even where this is optional.\n\n**Example:**\n\n\n \n \n

Behold!\n \n \n\nAfter the quick-fix is applied:\n\n\n \n \n

Behold!

\n \n \n" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "HtmlMissingClosingTag", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "HTML", + "index": 11, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "XmlInvalidId", + "shortDescription": { + "text": "Unresolved 'id' reference" + }, + "fullDescription": { + "text": "Reports an unresolved 'id' reference in XML.", + "markdown": "Reports an unresolved `id` reference in XML." + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "XmlInvalidId", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "XML", + "index": 53, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "XmlDeprecatedElement", + "shortDescription": { + "text": "Deprecated symbol" + }, + "fullDescription": { + "text": "Reports a deprecated XML element or attribute. Symbols can be marked by XML comment or documentation tag with text 'deprecated'.", + "markdown": "Reports a deprecated XML element or attribute.\n\nSymbols can be marked by XML comment or documentation tag with text 'deprecated'." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "XmlDeprecatedElement", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "XML", + "index": 53, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RegExpAnonymousGroup", + "shortDescription": { + "text": "Anonymous capturing group or numeric back reference" + }, + "fullDescription": { + "text": "Reports anonymous capturing groups and numeric back references in a RegExp. These are only reported when the RegExp dialect supports named group and named group references. Named groups and named back references improve code readability and are recommended to use instead. When a capture is not needed, matching can be more performant and use less memory by using a non-capturing group, i.e. '(?:xxx)' instead of '(xxx)'. Example: '(\\d\\d\\d\\d)\\1' A better regex pattern could look like this: '(?\\d\\d\\d\\d)\\k' New in 2017.2", + "markdown": "Reports anonymous capturing groups and numeric back references in a RegExp. These are only reported when the RegExp dialect supports named group and named group references. Named groups and named back references improve code readability and are recommended to use instead. When a capture is not needed, matching can be more performant and use less memory by using a non-capturing group, i.e. `(?:xxx)` instead of `(xxx)`.\n\n**Example:**\n\n\n (\\d\\d\\d\\d)\\1\n\nA better regex pattern could look like this:\n\n\n (?\\d\\d\\d\\d)\\k\n\nNew in 2017.2" + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "RegExpAnonymousGroup", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "RegExp", + "index": 55, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "XmlUnresolvedReference", + "shortDescription": { + "text": "Unresolved references" + }, + "fullDescription": { + "text": "Reports an unresolved references in XML.", + "markdown": "Reports an unresolved references in XML." + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "XmlUnresolvedReference", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "XML", + "index": 53, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RegExpRepeatedSpace", + "shortDescription": { + "text": "Consecutive spaces" + }, + "fullDescription": { + "text": "Reports multiple consecutive spaces in a RegExp. Because spaces are not visible by default, it can be hard to see how many spaces are required. The RegExp can be made more clear by replacing the consecutive spaces with a single space and a counted quantifier. Example: '( )' After the quick-fix is applied: '( {5})' New in 2017.1", + "markdown": "Reports multiple consecutive spaces in a RegExp. Because spaces are not visible by default, it can be hard to see how many spaces are required. The RegExp can be made more clear by replacing the consecutive spaces with a single space and a counted quantifier.\n\n**Example:**\n\n\n ( )\n\nAfter the quick-fix is applied:\n\n\n ( {5})\n\n\nNew in 2017.1" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "RegExpRepeatedSpace", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "RegExp", + "index": 55, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "InconsistentLineSeparators", + "shortDescription": { + "text": "Inconsistent line separators" + }, + "fullDescription": { + "text": "Reports files with line separators different from the ones that are specified in the project's settings. For example, the inspection will be triggered if you set the line separator to '\\n' in Settings | Editor | Code Style | Line separator, while the file you are editing uses '\\r\\n' as a line separator. The inspection also warns you about mixed line separators within a file.", + "markdown": "Reports files with line separators different from the ones that are specified in the project's settings.\n\nFor example, the inspection will be triggered if you set the line separator to `\\n` in\n[Settings \\| Editor \\| Code Style \\| Line separator](settings://preferences.sourceCode?Line%20separator),\nwhile the file you are editing uses `\\r\\n` as a line separator.\n\nThe inspection also warns you about mixed line separators within a file." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "InconsistentLineSeparators", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "General", + "index": 45, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ProblematicWhitespace", + "shortDescription": { + "text": "Problematic whitespace" + }, + "fullDescription": { + "text": "Reports the following problems: Tabs used for indentation when the code style is configured to use only spaces. Spaces used for indentation when the code style is configured to use only tabs. Spaces used for indentation and tabs used for alignment when the code style is configured to use smart tabs.", + "markdown": "Reports the following problems:\n\n* Tabs used for indentation when the code style is configured to use only spaces.\n* Spaces used for indentation when the code style is configured to use only tabs.\n* Spaces used for indentation and tabs used for alignment when the code style is configured to use smart tabs." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "ProblematicWhitespace", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "General", + "index": 45, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "LongLine", + "shortDescription": { + "text": "Line is longer than allowed by code style" + }, + "fullDescription": { + "text": "Reports lines that are longer than the Hard wrap at parameter specified in Settings | Editor | Code Style | General.", + "markdown": "Reports lines that are longer than the **Hard wrap at** parameter specified in [Settings \\| Editor \\| Code Style \\| General](settings://preferences.sourceCode?Hard%20wrap%20at)." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "LongLine", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "General", + "index": 45, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "HtmlUnknownTag", + "shortDescription": { + "text": "Unknown tag" + }, + "fullDescription": { + "text": "Reports an unknown HTML tag. Suggests configuring tags that should not be reported.", + "markdown": "Reports an unknown HTML tag. Suggests configuring tags that should not be reported." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "HtmlUnknownTag", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "HTML", + "index": 11, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "XmlHighlighting", + "shortDescription": { + "text": "XML highlighting" + }, + "fullDescription": { + "text": "Reports XML validation problems in the results of a batch code inspection.", + "markdown": "Reports XML validation problems in the results of a batch code inspection." + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "XmlHighlighting", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "XML", + "index": 53, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RegExpDuplicateCharacterInClass", + "shortDescription": { + "text": "Duplicate character in character class" + }, + "fullDescription": { + "text": "Reports duplicate characters inside a RegExp character class. Duplicate characters are unnecessary and can be removed without changing the semantics of the regex. Example: '[aabc]' After the quick-fix is applied: '[abc]'", + "markdown": "Reports duplicate characters inside a RegExp character class. Duplicate characters are unnecessary and can be removed without changing the semantics of the regex.\n\n**Example:**\n\n\n [aabc]\n\nAfter the quick-fix is applied:\n\n\n [abc]\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "RegExpDuplicateCharacterInClass", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "RegExp", + "index": 55, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RequiredAttributes", + "shortDescription": { + "text": "Missing required attribute" + }, + "fullDescription": { + "text": "Reports a missing mandatory attribute in an XML/HTML tag. Suggests configuring attributes that should not be reported.", + "markdown": "Reports a missing mandatory attribute in an XML/HTML tag. Suggests configuring attributes that should not be reported." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "RequiredAttributes", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "HTML", + "index": 11, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RegExpRedundantClassElement", + "shortDescription": { + "text": "Redundant '\\d', '[:digit:]', or '\\D' class elements" + }, + "fullDescription": { + "text": "Reports redundant '\\d' or '[:digit:]' that are used in one class with '\\w' or '[:word:]' ('\\D' with '\\W') and can be removed. Example: '[\\w\\d]' After the quick-fix is applied: '[\\w]' New in 2022.2", + "markdown": "Reports redundant `\\d` or `[:digit:]` that are used in one class with `\\w` or `[:word:]` (`\\D` with `\\W`) and can be removed.\n\n**Example:**\n\n\n [\\w\\d]\n\nAfter the quick-fix is applied:\n\n\n [\\w]\n\nNew in 2022.2" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "RegExpRedundantClassElement", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "RegExp", + "index": 55, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Json5StandardCompliance", + "shortDescription": { + "text": "Compliance with JSON5 standard" + }, + "fullDescription": { + "text": "Reports inconsistency with the language specification in a JSON5 file.", + "markdown": "Reports inconsistency with [the language specification](http://json5.org) in a JSON5 file." + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "Json5StandardCompliance", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "JSON and JSON5", + "index": 77, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "HtmlWrongAttributeValue", + "shortDescription": { + "text": "Wrong attribute value" + }, + "fullDescription": { + "text": "Reports an incorrect HTML attribute value.", + "markdown": "Reports an incorrect HTML attribute value." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "HtmlWrongAttributeValue", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "HTML", + "index": 11, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MsbuildTargetFrameworkTagInspection", + "shortDescription": { + "text": "TargetFramework tag checks" + }, + "fullDescription": { + "text": "RIDER-83136", + "markdown": "[RIDER-83136](https://youtrack.jetbrains.com/issue/RIDER-83136/)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "MsbuildTargetFrameworkTagInspection", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "MSBuild", + "index": 138, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CheckValidXmlInScriptTagBody", + "shortDescription": { + "text": "Malformed content of 'script' tag" + }, + "fullDescription": { + "text": "Reports contents of 'script' tags that are invalid XML. Example: '' After the quick-fix is applied: ''", + "markdown": "Reports contents of `script` tags that are invalid XML. \n\n**Example:**\n\n\n \n\nAfter the quick-fix is applied:\n\n\n \n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "CheckValidXmlInScriptTagBody", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "HTML", + "index": 11, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "HtmlUnknownAnchorTarget", + "shortDescription": { + "text": "Unresolved fragment in a link" + }, + "fullDescription": { + "text": "Reports an unresolved last part of an URL after the '#' sign.", + "markdown": "Reports an unresolved last part of an URL after the `#` sign." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "HtmlUnknownAnchorTarget", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "HTML", + "index": 11, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Annotator", + "shortDescription": { + "text": "Annotator" + }, + "fullDescription": { + "text": "Reports issues essential to this file (e.g., syntax errors) in the result of a batch code inspection run. These issues are usually always highlighted in the editor and can't be configured, unlike inspections. These options control the scope of checks performed by this inspection: Option \"Report syntax errors\": report parser-related issues. Option \"Report issues from language-specific annotators\": report issues found by annotators configured for the relevant language. See Custom Language Support: Annotators for details. Option \"Report other highlighting problems\": report issues specific to the language of the current file (e.g., type mismatches or unreported exceptions). See Custom Language Support: Highlighting for details.", + "markdown": "Reports issues essential to this file (e.g., syntax errors) in the result of a batch code inspection run. These issues are usually always highlighted in the editor and can't be configured, unlike inspections. These options control the scope of checks performed by this inspection:\n\n* Option \"**Report syntax errors**\": report parser-related issues.\n* Option \"**Report issues from language-specific annotators** \": report issues found by annotators configured for the relevant language. See [Custom Language Support: Annotators](https://plugins.jetbrains.com/docs/intellij/annotator.html) for details.\n* Option \"**Report other highlighting problems** \": report issues specific to the language of the current file (e.g., type mismatches or unreported exceptions). See [Custom Language Support: Highlighting](https://plugins.jetbrains.com/docs/intellij/syntax-highlighting-and-error-highlighting.html#semantic-highlighting) for details." + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "Annotator", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "General", + "index": 45, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JsonDuplicatePropertyKeys", + "shortDescription": { + "text": "Duplicate keys in object literals" + }, + "fullDescription": { + "text": "Reports a duplicate key in an object literal.", + "markdown": "Reports a duplicate key in an object literal." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "JsonDuplicatePropertyKeys", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JSON and JSON5", + "index": 77, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false + }, + { + "name": "JavaScript", + "version": "241.16914", + "rules": [ + { + "id": "FlowJSError", + "shortDescription": { + "text": "Flow type checker" + }, + "fullDescription": { + "text": "Reports errors from Flow.", + "markdown": "Reports errors from [Flow](https://flowtype.org/)." + }, + "defaultConfiguration": { + "enabled": false, + "level": "error", + "parameters": { + "suppressToolId": "FlowJSError", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Flow type checker", + "index": 13, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ShiftOutOfRangeJS", + "shortDescription": { + "text": "Shift operation by possibly wrong constant" + }, + "fullDescription": { + "text": "Reports a shift operation where the second operand is a constant outside the reasonable range, for example, an integer shift operation outside the range '0..31', shifting by negative or overly large values.", + "markdown": "Reports a shift operation where the second operand is a constant outside the reasonable range, for example, an integer shift operation outside the range `0..31`, shifting by negative or overly large values." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "ShiftOutOfRangeJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Bitwise operation issues", + "index": 16, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSClosureCompilerSyntax", + "shortDescription": { + "text": "Incorrect usage of JSDoc tags" + }, + "fullDescription": { + "text": "Reports warnings implied by Google Closure Compiler annotations including correct use of '@abstract', '@interface', and '@implements' tags.", + "markdown": "Reports warnings implied by *Google Closure Compiler* annotations including correct use of `@abstract`, `@interface`, and `@implements` tags." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "JSClosureCompilerSyntax", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/General", + "index": 18, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "BadExpressionStatementJS", + "shortDescription": { + "text": "Expression statement which is not assignment or call" + }, + "fullDescription": { + "text": "Reports an expression statement that is neither an assignment nor a call. Such statements usually indicate an error.", + "markdown": "Reports an expression statement that is neither an assignment nor a call. Such statements usually indicate an error." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "BadExpressionStatementJS", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Validity issues", + "index": 22, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ContinueStatementJS", + "shortDescription": { + "text": "'continue' statement" + }, + "fullDescription": { + "text": "Reports a 'continue' statement.", + "markdown": "Reports a `continue` statement." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "ContinueStatementJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Potentially undesirable code constructs", + "index": 31, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSXSyntaxUsed", + "shortDescription": { + "text": "JSX syntax used" + }, + "fullDescription": { + "text": "Reports a usage of a JSX tag in JavaScript code.", + "markdown": "Reports a usage of a JSX tag in JavaScript code." + }, + "defaultConfiguration": { + "enabled": false, + "level": "error", + "parameters": { + "suppressToolId": "JSXSyntaxUsed", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/General", + "index": 18, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSJoinVariableDeclarationAndAssignment", + "shortDescription": { + "text": "Variable declaration can be merged with the first assignment to the variable" + }, + "fullDescription": { + "text": "Reports a variable that is declared without an initializer and is used much further in the code or in a single nested scope. Suggests moving the variable closer to its usages and joining it with the initializer expression.", + "markdown": "Reports a variable that is declared without an initializer and is used much further in the code or in a single nested scope. Suggests moving the variable closer to its usages and joining it with the initializer expression." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "JSJoinVariableDeclarationAndAssignment", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/General", + "index": 18, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ES6ConvertModuleExportToExport", + "shortDescription": { + "text": "'module.exports' is used instead of 'export'" + }, + "fullDescription": { + "text": "Reports a 'module.export' statement. Suggests replacing it with an 'export' or 'export default' statement. Please note that the quick-fix for converting 'module.export' into 'export' is not available for 'module.export' inside functions or statements because 'export' statements can only be at the top level of a module.", + "markdown": "Reports a `module.export` statement. Suggests replacing it with an `export` or `export default` statement. \n\nPlease note that the quick-fix for converting `module.export` into `export` is not available for `module.export` inside functions or statements because `export` statements can only be at the top level of a module." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ES6ConvertModuleExportToExport", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/ES2015 migration aids", + "index": 48, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "DocumentWriteJS", + "shortDescription": { + "text": "Call to 'document.write()'" + }, + "fullDescription": { + "text": "Reports a method call to 'document.write()' or 'document.writeln()'. Most usages of such calls are performed better with explicit DOM calls, such as 'getElementByID()' and 'createElement()'. Additionally, the 'write()' and 'writeln()' calls will not work with XML DOMs, including DOMs for XHTML if viewed as XML. This can result in difficulty to point out bugs.", + "markdown": "Reports a method call to `document.write()` or `document.writeln()`. Most usages of such calls are performed better with explicit DOM calls, such as `getElementByID()` and `createElement()`. Additionally, the `write()` and `writeln()` calls will not work with XML DOMs, including DOMs for XHTML if viewed as XML. This can result in difficulty to point out bugs." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "DocumentWriteJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/DOM issues", + "index": 49, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "IncompatibleMaskJS", + "shortDescription": { + "text": "Incompatible bitwise mask operation" + }, + "fullDescription": { + "text": "Reports a bitwise mask expression which for sure evaluates to 'true' or 'false'. Expressions are of the form '(var & constant1) == constant2' or '(var | constant1) == constant2', where 'constant1' and 'constant2' are incompatible bitmask constants. Example: '// Incompatible mask: as the last byte in mask is zero,\n// something like 0x1200 would be possible, but not 0x1234\nif ((mask & 0xFF00) == 0x1234) {...}'", + "markdown": "Reports a bitwise mask expression which for sure evaluates to `true` or `false`. Expressions are of the form `(var & constant1) == constant2` or `(var | constant1) == constant2`, where `constant1` and `constant2` are incompatible bitmask constants.\n\nExample:\n\n\n // Incompatible mask: as the last byte in mask is zero,\n // something like 0x1200 would be possible, but not 0x1234\n if ((mask & 0xFF00) == 0x1234) {...}\n" + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "IncompatibleBitwiseMaskOperation", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Bitwise operation issues", + "index": 16, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSDuplicatedDeclaration", + "shortDescription": { + "text": "Duplicate declaration" + }, + "fullDescription": { + "text": "Reports multiple declarations in a scope.", + "markdown": "Reports multiple declarations in a scope." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "JSDuplicatedDeclaration", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/General", + "index": 18, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "TypeScriptValidateGenericTypes", + "shortDescription": { + "text": "Incorrect generic type argument" + }, + "fullDescription": { + "text": "Reports an invalid type argument in a function, interface, or class declaration.", + "markdown": "Reports an invalid type argument in a function, interface, or class declaration." + }, + "defaultConfiguration": { + "enabled": false, + "level": "error", + "parameters": { + "suppressToolId": "TypeScriptValidateGenericTypes", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/TypeScript", + "index": 52, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSFileReferences", + "shortDescription": { + "text": "Unresolved file reference" + }, + "fullDescription": { + "text": "Reports an unresolved file reference in a JavaScript file, including CommonJS and AMD modules references.", + "markdown": "Reports an unresolved file reference in a JavaScript file, including CommonJS and AMD modules references." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "JSFileReferences", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/General", + "index": 18, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "FunctionWithInconsistentReturnsJS", + "shortDescription": { + "text": "Function with inconsistent returns" + }, + "fullDescription": { + "text": "Reports a function that returns a value in some cases while in other cases no value is returned. This usually indicates an error. Example: 'function foo() {\n if (true)\n return 3;\n return;\n}'", + "markdown": "Reports a function that returns a value in some cases while in other cases no value is returned. This usually indicates an error.\n\nExample:\n\n\n function foo() {\n if (true)\n return 3;\n return;\n }\n\n" + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "FunctionWithInconsistentReturnsJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Validity issues", + "index": 22, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ES6ClassMemberInitializationOrder", + "shortDescription": { + "text": "Use of possibly unassigned property in a static initializer" + }, + "fullDescription": { + "text": "Reports a class member initializer which references another non-hoisted class member while the latter may be not initialized yet. Initialization of class members happens consequently for fields, so a field cannot reference another field that is declared later.", + "markdown": "Reports a class member initializer which references another non-hoisted class member while the latter may be not initialized yet. \n\nInitialization of class members happens consequently for fields, so a field cannot reference another field that is declared later." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "ES6ClassMemberInitializationOrder", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/General", + "index": 18, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "NestedFunctionJS", + "shortDescription": { + "text": "Nested function" + }, + "fullDescription": { + "text": "Reports a function nested inside another function. Although JavaScript allows functions to be nested, such constructs may be confusing. Use the checkbox below to ignore anonymous nested functions.", + "markdown": "Reports a function nested inside another function. Although JavaScript allows functions to be nested, such constructs may be confusing.\n\n\nUse the checkbox below to ignore anonymous nested functions." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "NestedFunctionJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Potentially confusing code constructs", + "index": 57, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "TypeScriptUMDGlobal", + "shortDescription": { + "text": "Referenced UMD global variable" + }, + "fullDescription": { + "text": "Reports a usage of a Universal Module Definition (UMD) global variable if the current file is a module (ECMAScript or CommonJS). Referencing UMD variables without explicit imports can lead to a runtime error if the library isn't included implicitly.", + "markdown": "Reports a usage of a Universal Module Definition (UMD) global variable if the current file is a module (ECMAScript or CommonJS). Referencing UMD variables without explicit imports can lead to a runtime error if the library isn't included implicitly." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "TypeScriptUMDGlobal", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/TypeScript", + "index": 52, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UnnecessaryReturnJS", + "shortDescription": { + "text": "Unnecessary 'return' statement" + }, + "fullDescription": { + "text": "Reports an unnecessary 'return' statement, that is, a 'return' statement that returns no value and occurs just before the function would have \"fallen through\" the bottom. These statements may be safely removed.", + "markdown": "Reports an unnecessary `return` statement, that is, a `return` statement that returns no value and occurs just before the function would have \"fallen through\" the bottom. These statements may be safely removed." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "UnnecessaryReturnStatementJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Control flow issues", + "index": 61, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "StandardJS", + "shortDescription": { + "text": "Standard code style" + }, + "fullDescription": { + "text": "Reports a discrepancy detected by the JavaScript Standard Style linter. The highlighting severity in the editor is based on the severity level the linter reports.", + "markdown": "Reports a discrepancy detected by the [JavaScript Standard Style](https://standardjs.com/) linter. \n\nThe highlighting severity in the editor is based on the severity level the linter reports." + }, + "defaultConfiguration": { + "enabled": false, + "level": "error", + "parameters": { + "suppressToolId": "StandardJS", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Code quality tools", + "index": 64, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSCommentMatchesSignature", + "shortDescription": { + "text": "Mismatched JSDoc and function signature" + }, + "fullDescription": { + "text": "Reports mismatch between the names and the number of parameters within a JSDoc comment and the actual parameters of a function. Suggests updating parameters in JSDoc comment. Example: '/**\n * @param height Height in pixels\n */\nfunction sq(height, width) {} // width is not documented' After the quick-fix is applied: '/**\n * @param height Height in pixels\n * @param width\n */\nfunction sq(height, width) {}'", + "markdown": "Reports mismatch between the names and the number of parameters within a JSDoc comment and the actual parameters of a function. Suggests updating parameters in JSDoc comment.\n\n**Example:**\n\n\n /**\n * @param height Height in pixels\n */\n function sq(height, width) {} // width is not documented\n\nAfter the quick-fix is applied:\n\n\n /**\n * @param height Height in pixels\n * @param width\n */\n function sq(height, width) {}\n" + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "JSCommentMatchesSignature", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/General", + "index": 18, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "FunctionWithMultipleReturnPointsJS", + "shortDescription": { + "text": "Function with multiple return points" + }, + "fullDescription": { + "text": "Reports a function with multiple return points. Such functions are hard to understand and maintain.", + "markdown": "Reports a function with multiple return points. Such functions are hard to understand and maintain." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "FunctionWithMultipleReturnPointsJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Function metrics", + "index": 70, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSRemoveUnnecessaryParentheses", + "shortDescription": { + "text": "Unnecessary parentheses" + }, + "fullDescription": { + "text": "Reports redundant parentheses. In expressions: 'var x = ((1) + 2) + 3' In arrow function argument lists: 'var incrementer = (x) => x + 1' In TypeScript and Flow type declarations: 'type Card = (Suit & Rank) | (Suit & Number)'", + "markdown": "Reports redundant parentheses.\n\nIn expressions:\n\n var x = ((1) + 2) + 3\n\nIn arrow function argument lists:\n\n var incrementer = (x) => x + 1\n\nIn TypeScript and Flow type declarations:\n\n type Card = (Suit & Rank) | (Suit & Number)\n" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "JSRemoveUnnecessaryParentheses", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Code style issues", + "index": 72, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CommaExpressionJS", + "shortDescription": { + "text": "Comma expression" + }, + "fullDescription": { + "text": "Reports a comma expression. Such expressions are often a sign of overly clever code, and may lead to subtle bugs. Comma expressions in the initializer or in the update section of 'for' loops are ignored.", + "markdown": "Reports a comma expression. Such expressions are often a sign of overly clever code, and may lead to subtle bugs. Comma expressions in the initializer or in the update section of `for` loops are ignored." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "CommaExpressionJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Potentially undesirable code constructs", + "index": 31, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ES6BindWithArrowFunction", + "shortDescription": { + "text": "Suspicious usage of 'bind' with arrow function" + }, + "fullDescription": { + "text": "Reports 'bind' used together with an arrow function. Because arrow functions use lexical 'this', a 'bind' call will have no effect on them. See here for details.", + "markdown": "Reports `bind` used together with an arrow function. \nBecause arrow functions use lexical `this`, a `bind` call will have no effect on them. \nSee [here](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/Arrow_functions#Lexical_this) for details." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "ES6BindWithArrowFunction", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Probable bugs", + "index": 79, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSBitwiseOperatorUsage", + "shortDescription": { + "text": "Bitwise operator usage" + }, + "fullDescription": { + "text": "Reports a suspicious usage of a bitwise AND (\"'&'\") or OR (\"'|'\") operator. Usually it is a typo and the result of applying boolean operations AND (\"'&&'\") and OR (\"'||'\") is expected.", + "markdown": "Reports a suspicious usage of a bitwise AND (\"`&`\") or OR (\"`|`\") operator. Usually it is a typo and the result of applying boolean operations AND (\"`&&`\") and OR (\"`||`\") is expected." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "JSBitwiseOperatorUsage", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Bitwise operation issues", + "index": 16, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "IfStatementWithIdenticalBranchesJS", + "shortDescription": { + "text": "'if' statement with identical branches" + }, + "fullDescription": { + "text": "Reports an 'if' statement with identical 'then' and 'else' branches. Such statements are almost certainly an error.", + "markdown": "Reports an `if` statement with identical `then` and `else` branches. Such statements are almost certainly an error." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "IfStatementWithIdenticalBranchesJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Control flow issues", + "index": 61, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSConsecutiveCommasInArrayLiteral", + "shortDescription": { + "text": "Consecutive commas in array literal" + }, + "fullDescription": { + "text": "Reports a consecutive comma in an array literal. The skipped element accepts the 'undefined' value, but it could be done unintentionally, for example, when commas are at the end of one line and at the beginning of the next one.", + "markdown": "Reports a consecutive comma in an array literal. The skipped element accepts the `undefined` value, but it could be done unintentionally, for example, when commas are at the end of one line and at the beginning of the next one." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "JSConsecutiveCommasInArrayLiteral", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Probable bugs", + "index": 79, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSValidateTypes", + "shortDescription": { + "text": "Type mismatch" + }, + "fullDescription": { + "text": "Reports incorrect type of: a parameter in a function call a return value an assigned expression TypeScript code is ignored.", + "markdown": "Reports incorrect type of:\n\n* a parameter in a function call\n* a return value\n* an assigned expression\n\nTypeScript code is ignored." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "JSValidateTypes", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/General", + "index": 18, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSPotentiallyInvalidUsageOfClassThis", + "shortDescription": { + "text": "Potentially invalid reference to 'this' of a class from closure" + }, + "fullDescription": { + "text": "Reports an attempt to reference a member of an ECMAScript class via the 'this.' qualifier in a nested function that is not a lambda. 'this' in a nested function that is not a lambda is the function's own 'this' and doesn't relate to the outer class.", + "markdown": "Reports an attempt to reference a member of an ECMAScript class via the `this.` qualifier in a nested function that is not a lambda. \n`this` in a nested function that is not a lambda is the function's own `this` and doesn't relate to the outer class." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "JSPotentiallyInvalidUsageOfClassThis", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Probable bugs", + "index": 79, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UnnecessaryContinueJS", + "shortDescription": { + "text": "Unnecessary 'continue' statement" + }, + "fullDescription": { + "text": "Reports an unnecessary 'continue' statement at the end of a loop. Suggests removing such statements.", + "markdown": "Reports an unnecessary `continue` statement at the end of a loop. Suggests removing such statements." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "UnnecessaryContinueJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Control flow issues", + "index": 61, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "BreakStatementWithLabelJS", + "shortDescription": { + "text": "'break' statement with label" + }, + "fullDescription": { + "text": "Reports a labeled 'break' statement.", + "markdown": "Reports a labeled `break` statement." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "BreakStatementWithLabelJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Potentially undesirable code constructs", + "index": 31, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSDeclarationsAtScopeStart", + "shortDescription": { + "text": "'var' declared not at the beginning of a function" + }, + "fullDescription": { + "text": "Checks that declarations of local variables declared with var are at the top of a function scope. By default, variable declarations are always moved (\"hoisted\") invisibly to the top of their containing scope when the code is executed. Therefore, declaring them at the top of the scope helps represent this behavior in the code.", + "markdown": "Checks that declarations of local variables declared with **var** are at the top of a function scope. \n\nBy default, variable declarations are always moved (\"hoisted\") invisibly to the top of their containing scope when the code is executed. Therefore, declaring them at the top of the scope helps represent this behavior in the code." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "JSDeclarationsAtScopeStart", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Code style issues", + "index": 72, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ES6ConvertIndexedForToForOf", + "shortDescription": { + "text": "Indexed 'for' is used instead of 'for..of'" + }, + "fullDescription": { + "text": "Reports an indexed 'for' loop used on an array. Suggests replacing it with a 'for..of' loop. 'for..of' loops are introduced in ECMAScript 6 and iterate over 'iterable' objects.", + "markdown": "Reports an indexed [for](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for) loop used on an array. Suggests replacing it with a [for..of](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of) loop. \n`for..of` loops are introduced in ECMAScript 6 and iterate over `iterable` objects." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ES6ConvertIndexedForToForOf", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/ES2015 migration aids", + "index": 48, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ES6ConvertVarToLetConst", + "shortDescription": { + "text": "'var' is used instead of 'let' or 'const'" + }, + "fullDescription": { + "text": "Reports a 'var' declaration that is used instead of 'let' or 'const'. Both 'let' and 'const' are block-scoped and behave more strictly. Suggests replacing all 'var' declarations with 'let' or 'const' declarations, depending on the semantics of a particular value. The declarations may be moved to the top of the function or placed before the first usage of the variable to avoid Reference errors. Select the 'Conservatively convert var with Fix all action' option to prevent any changes in these complex cases when using the 'Fix all' action.", + "markdown": "Reports a `var` declaration that is used instead of `let` or `const`. \nBoth `let` and `const` are block-scoped and behave more strictly. \n\nSuggests replacing all `var` declarations with `let` or `const` declarations, depending on the semantics of a particular value. The declarations may be moved to the top of the function or placed before the first usage of the variable to avoid Reference errors. \nSelect the 'Conservatively convert var with Fix all action' option to prevent any changes in these complex cases when using the 'Fix all' action." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ES6ConvertVarToLetConst", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/ES2015 migration aids", + "index": 48, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "DynamicallyGeneratedCodeJS", + "shortDescription": { + "text": "Execution of dynamically generated code" + }, + "fullDescription": { + "text": "Reports a call of the 'eval()', 'setTimeout()', or 'setInterval()' function or an allocation of a 'Function' object. These functions are used to execute arbitrary strings of JavaScript text, which often dynamically generated. This can be very confusing, and may be a security risk. Ignores the cases when a callback function is provided to these methods statically, without code generation.", + "markdown": "Reports a call of the `eval()`, `setTimeout()`, or `setInterval()` function or an allocation of a `Function` object. These functions are used to execute arbitrary strings of JavaScript text, which often dynamically generated. This can be very confusing, and may be a security risk. \n\nIgnores the cases when a callback function is provided to these methods statically, without code generation." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "DynamicallyGeneratedCodeJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Potentially confusing code constructs", + "index": 57, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UnusedCatchParameterJS", + "shortDescription": { + "text": "Unused 'catch' parameter" + }, + "fullDescription": { + "text": "Reports a 'catch' parameter that is not used in the corresponding block. The 'catch' parameters named 'ignore' or 'ignored' are ignored. Use the checkbox below to disable this inspection for 'catch' blocks with comments.", + "markdown": "Reports a `catch` parameter that is not used in the corresponding block. The `catch` parameters named `ignore` or `ignored` are ignored.\n\n\nUse the checkbox below to disable this inspection for `catch`\nblocks with comments." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "UnusedCatchParameterJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Try statement issues", + "index": 89, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "AnonymousFunctionJS", + "shortDescription": { + "text": "Anonymous function" + }, + "fullDescription": { + "text": "Reports an anonymous function. An explicit name of a function expression may be helpful for debugging. Ignores function expressions without names if they have a 'name' property specified in the ECMAScript 6 standard. For example, 'var bar = function() {};' is not reported.", + "markdown": "Reports an anonymous function. An explicit name of a function expression may be helpful for debugging. Ignores function expressions without names if they have a `name` property specified in the ECMAScript 6 standard. For example, `var bar = function() {};` is not reported." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "AnonymousFunctionJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Potentially undesirable code constructs", + "index": 31, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "EmptyCatchBlockJS", + "shortDescription": { + "text": "Empty 'catch' block" + }, + "fullDescription": { + "text": "Reports an empty 'catch' block. This indicates that errors are simply ignored instead of handling them. Any comment in a 'catch' block mutes the inspection.", + "markdown": "Reports an empty `catch` block. This indicates that errors are simply ignored instead of handling them. \n\nAny comment in a `catch` block mutes the inspection." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "EmptyCatchBlockJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Try statement issues", + "index": 89, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ThrowFromFinallyBlockJS", + "shortDescription": { + "text": "'throw' inside 'finally' block" + }, + "fullDescription": { + "text": "Reports s 'throw' statement inside a 'finally' block. Such 'throw' statements may mask exceptions thrown, and complicate debugging.", + "markdown": "Reports s `throw` statement inside a `finally` block. Such `throw` statements may mask exceptions thrown, and complicate debugging." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "ThrowInsideFinallyBlockJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Try statement issues", + "index": 89, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSPotentiallyInvalidUsageOfThis", + "shortDescription": { + "text": "Potentially invalid reference to 'this' from closure" + }, + "fullDescription": { + "text": "Reports a 'this' in closure that is used for referencing properties of outer context. Example: 'function Outer() {\n this.outerProp = 1;\n function inner() {\n // bad, because 'outerProp' of Outer\n // won't be updated here\n // on calling 'new Outer()' as may be expected\n this.outerProp = 2;\n }\n inner();\n}'", + "markdown": "Reports a `this` in closure that is used for referencing properties of outer context.\n\nExample:\n\n\n function Outer() {\n this.outerProp = 1;\n function inner() {\n // bad, because 'outerProp' of Outer\n // won't be updated here\n // on calling 'new Outer()' as may be expected\n this.outerProp = 2;\n }\n inner();\n }\n" + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "JSPotentiallyInvalidUsageOfThis", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Probable bugs", + "index": 79, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSUnresolvedLibraryURL", + "shortDescription": { + "text": "Missed locally stored library for HTTP link" + }, + "fullDescription": { + "text": "Reports a URL of an external JavaScript library that is not associated with any locally stored file. Suggests downloading the library. Such association enables the IDE to provide proper code completion and navigation.", + "markdown": "Reports a URL of an external JavaScript library that is not associated with any locally stored file. Suggests downloading the library. Such association enables the IDE to provide proper code completion and navigation." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "JSUnresolvedLibraryURL", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/General", + "index": 18, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "TypeScriptFieldCanBeMadeReadonly", + "shortDescription": { + "text": "Field can be readonly" + }, + "fullDescription": { + "text": "Reports a private field that can be made readonly (for example, if the field is assigned only in the constructor).", + "markdown": "Reports a private field that can be made readonly (for example, if the field is assigned only in the constructor)." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "TypeScriptFieldCanBeMadeReadonly", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/TypeScript", + "index": 52, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "NegatedIfStatementJS", + "shortDescription": { + "text": "Negated 'if' statement" + }, + "fullDescription": { + "text": "Reports if statements which have an else branch and a negated condition. Flipping the order of the if and else branches will usually increase the clarity of such statements.", + "markdown": "Reports **if** statements which have an **else** branch and a negated condition. Flipping the order of the **if** and **else** branches will usually increase the clarity of such statements." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "NegatedIfStatementJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Potentially confusing code constructs", + "index": 57, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ConditionalExpressionWithIdenticalBranchesJS", + "shortDescription": { + "text": "Conditional expression with identical branches" + }, + "fullDescription": { + "text": "Reports a ternary conditional expression with identical 'then' and 'else' branches.", + "markdown": "Reports a ternary conditional expression with identical `then` and `else` branches." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "ConditionalExpressionWithIdenticalBranchesJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Control flow issues", + "index": 61, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSIncompatibleTypesComparison", + "shortDescription": { + "text": "Comparison of expressions having incompatible types" + }, + "fullDescription": { + "text": "Reports a comparison with operands of incompatible types or an operand with a type without possible common values.", + "markdown": "Reports a comparison with operands of incompatible types or an operand with a type without possible common values." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "JSIncompatibleTypesComparison", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Probable bugs", + "index": 79, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ES6TopLevelAwaitExpression", + "shortDescription": { + "text": "Top-level 'await' expression" + }, + "fullDescription": { + "text": "Reports a usage of a top-level 'await' expression. While the new 'top-level async' proposal is on its way, using 'await' outside async functions is not allowed.", + "markdown": "Reports a usage of a top-level `await` expression. While the new 'top-level async' proposal is on its way, using `await` outside async functions is not allowed." + }, + "defaultConfiguration": { + "enabled": false, + "level": "error", + "parameters": { + "suppressToolId": "ES6TopLevelAwaitExpression", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Async code and promises", + "index": 95, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ParameterNamingConventionJS", + "shortDescription": { + "text": "Function parameter naming convention" + }, + "fullDescription": { + "text": "Reports a function parameter whose name is too short, too long, or doesn't follow the specified regular expression pattern. Use the fields provided below to specify minimum length, maximum length and regular expression expected for local variables names. Use the standard 'java.util.regex' format regular expressions.", + "markdown": "Reports a function parameter whose name is too short, too long, or doesn't follow the specified regular expression pattern.\n\n\nUse the fields provided below to specify minimum length, maximum length and regular expression\nexpected for local variables names. Use the standard `java.util.regex` format regular expressions." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "ParameterNamingConventionJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Naming conventions", + "index": 96, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ParametersPerFunctionJS", + "shortDescription": { + "text": "Function with too many parameters" + }, + "fullDescription": { + "text": "Reports a function with too many parameters. Such functions often indicate problems with design. Use the field below to specify the maximum acceptable number of parameters for a function.", + "markdown": "Reports a function with too many parameters. Such functions often indicate problems with design.\n\n\nUse the field below to specify the maximum acceptable number of parameters for a function." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "OverlyComplexFunctionJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Function metrics", + "index": 70, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSSuspiciousNameCombination", + "shortDescription": { + "text": "Suspicious variable/parameter name combination" + }, + "fullDescription": { + "text": "Reports an assignment or a function call where the name of the target variable or the function parameter does not match the name of the value assigned to it. Example: 'var x = 0;\n var y = x;' or 'var x = 0, y = 0;\n var rc = new Rectangle(y, x, 20, 20);' Here the inspection guesses that 'x' and 'y' are mixed up. Specify the names that should not be used together. An error is reported if a parameter name or an assignment target name contains words from one group while the name of the assigned or passed variable contains words from another group.", + "markdown": "Reports an assignment or a function call where the name of the target variable or the function parameter does not match the name of the value assigned to it.\n\nExample:\n\n\n var x = 0;\n var y = x;\n\nor\n\n\n var x = 0, y = 0;\n var rc = new Rectangle(y, x, 20, 20);\n\nHere the inspection guesses that `x` and `y` are mixed up.\n\nSpecify the names that should not be used together. An error is reported\nif a parameter name or an assignment target name contains words from one group while the name of the assigned or passed\nvariable contains words from another group." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "JSSuspiciousNameCombination", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Probable bugs", + "index": 79, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ChainedFunctionCallJS", + "shortDescription": { + "text": "Chained function call" + }, + "fullDescription": { + "text": "Reports a function call whose target is another function call, for example, 'foo().bar()'", + "markdown": "Reports a function call whose target is another function call, for example, `foo().bar()`" + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "ChainedFunctionCallJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Code style issues", + "index": 72, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ConstantOnLHSOfComparisonJS", + "shortDescription": { + "text": "Constant on left side of comparison" + }, + "fullDescription": { + "text": "Reports a comparison operation with a constant value in the left-hand side. According to coding conventions, constants should be in the right-hand side of comparisons.", + "markdown": "Reports a comparison operation with a constant value in the left-hand side. According to coding conventions, constants should be in the right-hand side of comparisons." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "ConstantOnLefSideOfComparisonJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Code style issues", + "index": 72, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSCheckFunctionSignatures", + "shortDescription": { + "text": "Signature mismatch" + }, + "fullDescription": { + "text": "Reports a JavaScript call expression where the arguments do not match the signature of the referenced function, including the types of arguments and their number. Also, reports if the overloading function doesn't match the overloaded one in terms of parameters and return types. TypeScript code is ignored.", + "markdown": "Reports a JavaScript call expression where the arguments do not match the signature of the referenced function, including the types of arguments and their number. Also, reports if the overloading function doesn't match the overloaded one in terms of parameters and return types.\n\nTypeScript code is ignored." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "JSCheckFunctionSignatures", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/General", + "index": 18, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "TypeScriptUnresolvedReference", + "shortDescription": { + "text": "Unresolved TypeScript reference" + }, + "fullDescription": { + "text": "Reports an unresolved reference in TypeScript code.", + "markdown": "Reports an unresolved reference in TypeScript code." + }, + "defaultConfiguration": { + "enabled": false, + "level": "error", + "parameters": { + "suppressToolId": "TypeScriptUnresolvedReference", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/TypeScript", + "index": 52, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ES6RedundantAwait", + "shortDescription": { + "text": "Redundant 'await' expression" + }, + "fullDescription": { + "text": "Reports a redundant usage of 'await', such as 'await await', or awaiting a non-promise result. When the 'Report for promises' option is selected, suggests removing 'await' before promises when applicable (in 'return' statements, and with 'Promise.resolve/reject'). Removing 'await' in such contexts causes two problems. Surrounding your code with 'try-catch' and forgetting to add 'await' will change code semantics while you may fail to notice that. Having an explicit 'await' may prevent the V8 runtime from providing async stack traces.", + "markdown": "Reports a redundant usage of `await`, such as `await await`, or awaiting a non-promise result.\n\n\nWhen the 'Report for promises' option is selected, suggests removing `await` before promises when applicable\n(in `return` statements, and with `Promise.resolve/reject`).\n\nRemoving `await` in such contexts causes two problems.\n\n* Surrounding your code with `try-catch` and forgetting to add `await` will change code semantics while you may fail to notice that.\n* Having an explicit `await` may prevent the V8 runtime from providing [async stack traces](http://bit.ly/v8-zero-cost-async-stack-traces)." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ES6RedundantAwait", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Async code and promises", + "index": 95, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "AssignmentToFunctionParameterJS", + "shortDescription": { + "text": "Assignment to function parameter" + }, + "fullDescription": { + "text": "Reports an assignment to a function parameter, including increment and decrement operations. Although occasionally intended, this construct can be extremely confusing, and is often a result of an error.", + "markdown": "Reports an assignment to a function parameter, including increment and decrement operations. Although occasionally intended, this construct can be extremely confusing, and is often a result of an error." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "AssignmentToFunctionParameterJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Assignment issues", + "index": 98, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "FallThroughInSwitchStatementJS", + "shortDescription": { + "text": "Fallthrough in 'switch' statement" + }, + "fullDescription": { + "text": "Reports a 'switch' statement where control can proceed from a branch to the next one. Such \"fall-through\" often indicates an error, for example, a missing 'break' or 'return'.", + "markdown": "Reports a `switch` statement where control can proceed from a branch to the next one. Such \"fall-through\" often indicates an error, for example, a missing `break` or `return`." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "FallThroughInSwitchStatementJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Switch statement issues", + "index": 99, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CallerJS", + "shortDescription": { + "text": "Use of 'caller' property" + }, + "fullDescription": { + "text": "Reports a usage of the 'caller' property in a JavaScript function. Using this property to access the stack frame of the calling method can be extremely confusing and result in subtle bugs.", + "markdown": "Reports a usage of the `caller` property in a JavaScript function. Using this property to access the stack frame of the calling method can be extremely confusing and result in subtle bugs." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "CallerJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Potentially confusing code constructs", + "index": 57, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSSwitchVariableDeclarationIssue", + "shortDescription": { + "text": "Variable is declared and being used in different 'case' clauses" + }, + "fullDescription": { + "text": "Reports a variable that is declared in one 'case' clause of a 'switch' statement but is used in another 'case' clause of the same statement. For block-scoped variables, this results in throwing a 'ReferenceError'. For 'var' variables, it indicates a potential error. Disable the inspection for 'var' variables if this pattern is used intentionally.", + "markdown": "Reports a variable that is declared in one `case` clause of a `switch` statement but is used in another `case` clause of the same statement. For block-scoped variables, this results in throwing a `ReferenceError`. For `var` variables, it indicates a potential error.\n\nDisable the inspection for `var` variables if this pattern is used intentionally." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "JSSwitchVariableDeclarationIssue", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Switch statement issues", + "index": 99, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ReuseOfLocalVariableJS", + "shortDescription": { + "text": "Reuse of local variable" + }, + "fullDescription": { + "text": "Reports reusing a local variable and overwriting its value with a new value that is not related to the original variable usage. Reusing a local variable in this way may be confusing because the intended semantics of the local variable may vary with each usage. It may also cause bugs, if code changes result in values that were expected to be overwritten while they are actually live. It is good practices to keep variable lifetimes as short as possible, and not reuse local variables for the sake of brevity.", + "markdown": "Reports reusing a local variable and overwriting its value with a new value that is not related to the original variable usage. Reusing a local variable in this way may be confusing because the intended semantics of the local variable may vary with each usage. It may also cause bugs, if code changes result in values that were expected to be overwritten while they are actually live. It is good practices to keep variable lifetimes as short as possible, and not reuse local variables for the sake of brevity." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "ReuseOfLocalVariableJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Data flow", + "index": 102, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ES6ConvertLetToConst", + "shortDescription": { + "text": "'let' is used instead of 'const'" + }, + "fullDescription": { + "text": "Reports a 'let' declaration that can be made 'const'.", + "markdown": "Reports a `let` declaration that can be made `const`. " + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ES6ConvertLetToConst", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/ES2015 migration aids", + "index": 48, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSReferencingMutableVariableFromClosure", + "shortDescription": { + "text": "Referencing mutable variable from closure" + }, + "fullDescription": { + "text": "Reports access to outer mutable variables from functions. Example: 'for (var i = 1; i <= 3; i++) {\n setTimeout(function() {\n console.log(i); // bad\n }, 0);\n }'", + "markdown": "Reports access to outer mutable variables from functions.\n\nExample:\n\n\n for (var i = 1; i <= 3; i++) {\n setTimeout(function() {\n console.log(i); // bad\n }, 0);\n }\n" + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "JSReferencingMutableVariableFromClosure", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/General", + "index": 18, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ES6ConvertRequireIntoImport", + "shortDescription": { + "text": "'require()' is used instead of 'import'" + }, + "fullDescription": { + "text": "Reports a 'require()' statement. Suggests converting it to a 'require()' call with an 'import' statement. Enable 'Convert require() inside inner scopes with Fix all action' to convert all 'require()' calls inside the nested functions and statements when using the 'Fix all' action. Please note that converting 'require()' statements inside inner scopes to 'import' statements may cause changes in the semantics of the code. Import statements are static module dependencies and are hoisted, which means that they are moved to the top of the current module. 'require()' calls load modules dynamically. They can be executed conditionally, and their scope is defined by the expression in which they are used. Clear the 'Convert require() inside inner scopes with Fix all action' checkbox to prevent any changes in these complex cases when using the 'Fix all' action.", + "markdown": "Reports a `require()` statement. Suggests converting it to a `require()` call with an `import` statement. \n\nEnable 'Convert require() inside inner scopes with Fix all action' to convert all `require()` calls inside the nested functions and statements when using the 'Fix all' action. \n\nPlease note that converting `require()` statements inside inner scopes to `import` statements may cause changes in the semantics of the code. Import statements are static module dependencies and are hoisted, which means that they are moved to the top of the current module. `require()` calls load modules dynamically. They can be executed conditionally, and their scope is defined by the expression in which they are used. \nClear the 'Convert require() inside inner scopes with Fix all action' checkbox to prevent any changes in these complex cases when using the 'Fix all' action." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ES6ConvertRequireIntoImport", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/ES2015 migration aids", + "index": 48, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSUnusedGlobalSymbols", + "shortDescription": { + "text": "Unused global symbol" + }, + "fullDescription": { + "text": "Reports an unused globally accessible public function, variable, class, or property.", + "markdown": "Reports an unused globally accessible public function, variable, class, or property." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "JSUnusedGlobalSymbols", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Unused symbols", + "index": 107, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "NestedConditionalExpressionJS", + "shortDescription": { + "text": "Nested conditional expression" + }, + "fullDescription": { + "text": "Reports a ternary conditional expression within another ternary condition. Such nested conditionals may be extremely confusing, and best replaced by more explicit conditional logic.", + "markdown": "Reports a ternary conditional expression within another ternary condition. Such nested conditionals may be extremely confusing, and best replaced by more explicit conditional logic." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "NestedConditionalExpressionJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Potentially confusing code constructs", + "index": 57, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ES6PossiblyAsyncFunction", + "shortDescription": { + "text": "'await' in non-async function" + }, + "fullDescription": { + "text": "Reports a usage of 'await' in a function that was possibly intended to be async but is actually missing the 'async' modifier. Although 'await' can be used as an identifier, it is likely that it was intended to be used as an operator, so the containing function should be made 'async'.", + "markdown": "Reports a usage of `await` in a function that was possibly intended to be async but is actually missing the `async` modifier. Although `await` can be used as an identifier, it is likely that it was intended to be used as an operator, so the containing function should be made `async`." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ES6PossiblyAsyncFunction", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Async code and promises", + "index": 95, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "FlowJSFlagCommentPlacement", + "shortDescription": { + "text": "Misplaced @flow flag" + }, + "fullDescription": { + "text": "Reports a '@flow' flag comment that is not located at the top of a file.", + "markdown": "Reports a `@flow` flag comment that is not located at the top of a file." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "FlowJSFlagCommentPlacement", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Flow type checker", + "index": 13, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSMissingSwitchDefault", + "shortDescription": { + "text": "'switch' statement has no 'default' branch" + }, + "fullDescription": { + "text": "Reports a 'switch' statement without a 'default' clause when some possible values are not enumerated.", + "markdown": "Reports a `switch` statement without a `default` clause when some possible values are not enumerated." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "JSMissingSwitchDefault", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Switch statement issues", + "index": 99, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSXNamespaceValidation", + "shortDescription": { + "text": "Missing JSX namespace" + }, + "fullDescription": { + "text": "Reports a usage of a JSX construction without importing namespace. Having the namespace in the file scope ensures proper code compilation.", + "markdown": "Reports a usage of a JSX construction without importing namespace. Having the namespace in the file scope ensures proper code compilation." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "JSXNamespaceValidation", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Imports and dependencies", + "index": 109, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ReservedWordUsedAsNameJS", + "shortDescription": { + "text": "Reserved word used as name" + }, + "fullDescription": { + "text": "Reports a JavaScript reserved word used as a name. The JavaScript specification reserves a number of words which are currently not used as keywords. Using those words as identifiers may result in broken code if later versions of JavaScript start using them as keywords.", + "markdown": "Reports a JavaScript reserved word used as a name. The JavaScript specification reserves a number of words which are currently not used as keywords. Using those words as identifiers may result in broken code if later versions of JavaScript start using them as keywords." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "ReservedWordAsName", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Validity issues", + "index": 22, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "IncrementDecrementResultUsedJS", + "shortDescription": { + "text": "Result of increment or decrement used" + }, + "fullDescription": { + "text": "Reports an increment ('++') or decrement ('--') expression where the result of the assignment is used in a containing expression. Such assignments can result in confusion due to the order of operations, as evaluation of the assignment may affect the outer expression in unexpected ways. Example: 'var a = b++'", + "markdown": "Reports an increment (`++`) or decrement (`--`) expression where the result of the assignment is used in a containing expression. Such assignments can result in confusion due to the order of operations, as evaluation of the assignment may affect the outer expression in unexpected ways. Example: `var a = b++`" + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "IncrementDecrementResultUsedJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Potentially confusing code constructs", + "index": 57, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SuspiciousTypeOfGuard", + "shortDescription": { + "text": "Unsound type guard check" + }, + "fullDescription": { + "text": "Reports a 'typeof' or 'instanceof' unsound type guard check. The 'typeof x' type guard can be unsound in one of the following two cases: 'typeof x' never corresponds to the specified value (for example, 'typeof x === 'number'' when 'x' is of the type 'string | boolean') 'typeof x' always corresponds to the specified value (for example, 'typeof x === 'string'' when 'x' is of the type 'string') The 'x instanceof A' type guard can be unsound in one of the following two cases: The type of 'x' is not related to 'A' The type of 'x' is 'A' or a subtype of 'A'", + "markdown": "Reports a `typeof` or `instanceof` unsound type guard check. The `typeof x` type guard can be unsound in one of the following two cases:\n\n* `typeof x` never corresponds to the specified value (for example, `typeof x === 'number'` when `x` is of the type 'string \\| boolean')\n* `typeof x` always corresponds to the specified value (for example, `typeof x === 'string'` when `x` is of the type 'string')\n\nThe `x instanceof A` type guard can be unsound in one of the following two cases:\n\n* The type of `x` is not related to `A`\n* The type of `x` is `A` or a subtype of `A`" + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "SuspiciousTypeOfGuard", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Control flow issues", + "index": 61, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "LoopStatementThatDoesntLoopJS", + "shortDescription": { + "text": "Loop statement that doesn't loop" + }, + "fullDescription": { + "text": "Reports a 'for', 'while', or 'do' statement whose bodies are guaranteed to execute at most once. Normally, this indicates an error.", + "markdown": "Reports a `for`, `while`, or `do` statement whose bodies are guaranteed to execute at most once. Normally, this indicates an error." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "LoopStatementThatDoesntLoopJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Control flow issues", + "index": 61, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSNonASCIINames", + "shortDescription": { + "text": "Identifiers with non-ASCII symbols" + }, + "fullDescription": { + "text": "Reports a non-ASCII symbol in a name. If the 'Allow only ASCII names' option is selected, reports all names that contain non-ASCII symbols. Otherwise reports all names that contain both ASCII and non-ASCII symbols.", + "markdown": "Reports a non-ASCII symbol in a name. \n\nIf the 'Allow only ASCII names' option is selected, reports all names that contain non-ASCII symbols. \nOtherwise reports all names that contain both ASCII and non-ASCII symbols." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "JSNonASCIINames", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Naming conventions", + "index": 96, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ES6MissingAwait", + "shortDescription": { + "text": "Missing await for an async function call" + }, + "fullDescription": { + "text": "Reports an 'async' function call without an expected 'await' prefix inside an 'async' function. Such call returns a 'Promise' and control flow is continued immediately. Example: 'async function bar() { /* ... */ }\nasync function foo() {\n bar(); // bad\n}' After the quick-fix is applied, the 'await' prefix is added: 'async function bar() { /* ... */ }\nasync function foo() {\n await bar(); // good\n}' When the 'Report for promises in return statements' checkbox is selected, also suggests adding 'await' in return statements. While this is generally not necessary, it gives two main benefits. You won't forget to add 'await' when surrounding your code with 'try-catch'. An explicit 'await' helps V8 runtime to provide async stack traces.", + "markdown": "Reports an `async` function call without an expected `await` prefix inside an `async` function. Such call returns a `Promise` and control flow is continued immediately.\n\nExample:\n\n\n async function bar() { /* ... */ }\n async function foo() {\n bar(); // bad\n }\n\n\nAfter the quick-fix is applied, the `await` prefix is added:\n\n\n async function bar() { /* ... */ }\n async function foo() {\n await bar(); // good\n }\n\nWhen the 'Report for promises in return statements' checkbox is selected, also suggests adding `await` in return statements. \nWhile this is generally not necessary, it gives two main benefits. \n\n* You won't forget to add `await` when surrounding your code with `try-catch`.\n* An explicit `await` helps V8 runtime to provide [async stack traces](https://bit.ly/v8-zero-cost-async-stack-traces)." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ES6MissingAwait", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Async code and promises", + "index": 95, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "TailRecursionJS", + "shortDescription": { + "text": "Tail recursion" + }, + "fullDescription": { + "text": "Reports a tail recursion, that is, when a function calls itself as its last action before returning. A tail recursion can always be replaced by looping, which will be considerably faster. Some JavaScript engines perform this optimization, while others do not. Thus, tail recursive solutions may have considerably different performance characteristics in different environments.", + "markdown": "Reports a tail recursion, that is, when a function calls itself as its last action before returning. A tail recursion can always be replaced by looping, which will be considerably faster. Some JavaScript engines perform this optimization, while others do not. Thus, tail recursive solutions may have considerably different performance characteristics in different environments." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "TailRecursionJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Control flow issues", + "index": 61, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ConfusingPlusesOrMinusesJS", + "shortDescription": { + "text": "Confusing sequence of '+' or '-'" + }, + "fullDescription": { + "text": "Reports a suspicious combination of '+' or '-' characters in JavaScript code (for example, 'a+++b'. Such sequences are confusing, and their semantics may change through changes in the whitespace.", + "markdown": "Reports a suspicious combination of `+` or `-` characters in JavaScript code (for example, `a+++b`. Such sequences are confusing, and their semantics may change through changes in the whitespace." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "ConfusingPlusesOrMinusesJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Potentially confusing code constructs", + "index": 57, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "TypeScriptConfig", + "shortDescription": { + "text": "Inconsistent tsconfig.json properties" + }, + "fullDescription": { + "text": "Reports inconsistency of a 'paths', 'checkJs', or 'extends' property in a tsconfig.json file. The 'checkJs' property requires 'allowJs'. The 'extends' property should be a valid file reference.", + "markdown": "Reports inconsistency of a `paths`, `checkJs`, or `extends` property in a tsconfig.json file. \nThe `checkJs` property requires `allowJs`. \nThe `extends` property should be a valid file reference." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "TypeScriptConfig", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/TypeScript", + "index": 52, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "OverlyComplexBooleanExpressionJS", + "shortDescription": { + "text": "Overly complex boolean expression" + }, + "fullDescription": { + "text": "Reports a boolean expression with too many terms. Such expressions may be confusing and bug-prone. Use the field below to specify the maximum number of terms allowed in an arithmetic expression.", + "markdown": "Reports a boolean expression with too many terms. Such expressions may be confusing and bug-prone.\n\n\nUse the field below to specify the maximum number of terms allowed in an arithmetic expression." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "OverlyComplexBooleanExpressionJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Potentially confusing code constructs", + "index": 57, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "OverlyComplexArithmeticExpressionJS", + "shortDescription": { + "text": "Overly complex arithmetic expression" + }, + "fullDescription": { + "text": "Reports an arithmetic expression with too many terms. Such expressions may be confusing and bug-prone. Use the field below to specify the maximum number of terms allowed in an arithmetic expression.", + "markdown": "Reports an arithmetic expression with too many terms. Such expressions may be confusing and bug-prone.\n\n\nUse the field below to specify the maximum number of terms allowed in an arithmetic expression." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "OverlyComplexArithmeticExpressionJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Potentially confusing code constructs", + "index": 57, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "DuplicateConditionJS", + "shortDescription": { + "text": "Duplicate condition in 'if' statement" + }, + "fullDescription": { + "text": "Reports duplicate conditions in different branches of an 'if' statement. Duplicate conditions usually represent programmer oversight. Example: 'if (a) {\n ...\n } else if (a) {\n ...\n }'", + "markdown": "Reports duplicate conditions in different branches of an `if` statement. Duplicate conditions usually represent programmer oversight.\n\nExample:\n\n\n if (a) {\n ...\n } else if (a) {\n ...\n }\n\n" + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "DuplicateConditionJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Control flow issues", + "index": 61, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UnnecessaryLabelJS", + "shortDescription": { + "text": "Unnecessary label" + }, + "fullDescription": { + "text": "Reports an unused label.", + "markdown": "Reports an unused label." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "UnnecessaryLabelJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Control flow issues", + "index": 61, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "InnerHTMLJS", + "shortDescription": { + "text": "Use of 'innerHTML' property" + }, + "fullDescription": { + "text": "Reports a JavaScript access to DOM nodes as text using the 'innerHTML' property. Most usages of 'innerHTML' are performed better with explicit DOM calls, such as 'getElementByID()' and 'createElement()'. Additionally, 'innerHTML' will not work with XML DOMs, including DOMs for XHTML if viewed as XML. This can lead to difficulties in diagnosing bugs.", + "markdown": "Reports a JavaScript access to DOM nodes as text using the `innerHTML` property. Most usages of `innerHTML` are performed better with explicit DOM calls, such as `getElementByID()` and `createElement()`. Additionally, `innerHTML` will not work with XML DOMs, including DOMs for XHTML if viewed as XML. This can lead to difficulties in diagnosing bugs." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "InnerHTMLJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/DOM issues", + "index": 49, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ES6UnusedImports", + "shortDescription": { + "text": "Unused import" + }, + "fullDescription": { + "text": "Reports a redundant 'import' statement. This is usually the case if the imported symbols are not used in the source file. To avoid side-effects, consider using bare import 'import 'packageName'' instead of the regular one.", + "markdown": "Reports a redundant `import` statement. This is usually the case if the imported symbols are not used in the source file. To avoid side-effects, consider using bare import `import 'packageName'` instead of the regular one." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "ES6UnusedImports", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Imports and dependencies", + "index": 109, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSAssignmentUsedAsCondition", + "shortDescription": { + "text": "Assignment used as condition" + }, + "fullDescription": { + "text": "Reports an assignment that is used as the condition of an 'if', 'while', 'for', or 'do' statement. Although occasionally intended, this usage is confusing, and often indicates a typo (for example, '=' instead of '==').", + "markdown": "Reports an assignment that is used as the condition of an `if`, `while`, `for`, or `do` statement. Although occasionally intended, this usage is confusing, and often indicates a typo (for example, `=` instead of `==`)." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "JSAssignmentUsedAsCondition", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Assignment issues", + "index": 98, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ForLoopReplaceableByWhileJS", + "shortDescription": { + "text": "'for' loop may be replaced by 'while' loop" + }, + "fullDescription": { + "text": "Reports a 'for' loop that contains neither initialization nor an update component. Suggests replacing the loop with a simpler 'while' statement. Example: 'for(; exitCondition(); ) {\n process();\n }' After the quick-fix is applied the result looks like: 'while(exitCondition()) {\n process();\n }' Use the checkbox below if you wish this inspection to ignore for loops with trivial or non-existent conditions.", + "markdown": "Reports a `for` loop that contains neither initialization nor an update component. Suggests replacing the loop with a simpler `while` statement.\n\nExample:\n\n\n for(; exitCondition(); ) {\n process();\n }\n\nAfter the quick-fix is applied the result looks like:\n\n\n while(exitCondition()) {\n process();\n }\n\nUse the checkbox below if you wish this inspection to ignore **for** loops with trivial or non-existent conditions." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "ForLoopReplaceableByWhile", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Control flow issues", + "index": 61, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ConstantConditionalExpressionJS", + "shortDescription": { + "text": "Constant conditional expression" + }, + "fullDescription": { + "text": "Reports a conditional expression in the format 'true? result1: result2' or 'false? result1: result2. Suggests simplifying the expression.'", + "markdown": "Reports a conditional expression in the format `true? result1: result2` or `false? result1: result2``.\nSuggests simplifying the expression.\n`" + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "ConstantConditionalExpressionJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Control flow issues", + "index": 61, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSValidateJSDoc", + "shortDescription": { + "text": "Syntax errors and unresolved references in JSDoc" + }, + "fullDescription": { + "text": "Reports a syntax discrepancy in a documentation comment.", + "markdown": "Reports a syntax discrepancy in a documentation comment." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "JSValidateJSDoc", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/General", + "index": 18, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "NonBlockStatementBodyJS", + "shortDescription": { + "text": "Statement body without braces" + }, + "fullDescription": { + "text": "Reports a 'if', 'while', 'for', or 'with' statements whose body is not a block statement. Using code block in statement bodies is usually safer for downstream maintenance.", + "markdown": "Reports a `if`, `while`, `for`, or `with` statements whose body is not a block statement. Using code block in statement bodies is usually safer for downstream maintenance." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "NonBlockStatementBodyJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Code style issues", + "index": 72, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "FlowJSConfig", + "shortDescription": { + "text": "Missing .flowconfig" + }, + "fullDescription": { + "text": "Reports a JavaScript file with a '@flow' flag that doesn't have an associated '.flowconfig' file in the project.", + "markdown": "Reports a JavaScript file with a `@flow` flag that doesn't have an associated `.flowconfig` file in the project." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "FlowJSConfig", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Flow type checker", + "index": 13, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "TypeScriptValidateTypes", + "shortDescription": { + "text": "Type mismatch" + }, + "fullDescription": { + "text": "Reports a parameter, return value, or assigned expression of incorrect type.", + "markdown": "Reports a parameter, return value, or assigned expression of incorrect type." + }, + "defaultConfiguration": { + "enabled": false, + "level": "error", + "parameters": { + "suppressToolId": "TypeScriptValidateTypes", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/TypeScript", + "index": 52, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSObjectNullOrUndefined", + "shortDescription": { + "text": "Object is 'null' or 'undefined'" + }, + "fullDescription": { + "text": "Reports an error caused by invoking a method, accessing a property, or calling a function on an object that is 'undefined' or 'null'.", + "markdown": "Reports an error caused by invoking a method, accessing a property, or calling a function on an object that is `undefined` or `null`." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "JSObjectNullOrUndefined", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Control flow issues", + "index": 61, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "PointlessArithmeticExpressionJS", + "shortDescription": { + "text": "Pointless arithmetic expression" + }, + "fullDescription": { + "text": "Reports an arithmetic expression that include adding or subtracting zero, multiplying by zero or one, division by one, and shift by zero. Such expressions may result from not fully completed automated refactoring.", + "markdown": "Reports an arithmetic expression that include adding or subtracting zero, multiplying by zero or one, division by one, and shift by zero. Such expressions may result from not fully completed automated refactoring." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "PointlessArithmeticExpressionJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Potentially confusing code constructs", + "index": 57, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "TypeScriptSmartCast", + "shortDescription": { + "text": "Narrowed type" + }, + "fullDescription": { + "text": "Reports a usage of a variable where the variable type is narrowed by a type guard. Note that severity level doesn't affect this inspection.", + "markdown": "Reports a usage of a variable where the variable type is narrowed by a type guard. Note that severity level doesn't affect this inspection." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "TypeScriptSmartCast", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/TypeScript", + "index": 52, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSAccessibilityCheck", + "shortDescription": { + "text": "Inaccessible @private and @protected members referenced" + }, + "fullDescription": { + "text": "Reports a reference to a JavaScript member that is marked with a '@private' or '@protected' tag but does not comply with visibility rules that these tags imply.", + "markdown": "Reports a reference to a JavaScript member that is marked with a `@private` or `@protected` tag but does not comply with visibility rules that these tags imply." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "JSAccessibilityCheck", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/General", + "index": 18, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "FunctionWithMultipleLoopsJS", + "shortDescription": { + "text": "Function with multiple loops" + }, + "fullDescription": { + "text": "Reports a function with multiple loop statements.", + "markdown": "Reports a function with multiple loop statements." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "FunctionWithMultipleLoopsJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Function metrics", + "index": 70, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "NpmUsedModulesInstalled", + "shortDescription": { + "text": "Missing module dependency" + }, + "fullDescription": { + "text": "Reports a module from a 'require()' call or an 'import' statement that is not installed or is not listed in package.json dependencies. Suggests installing the module and/or including it into package.json. For 'require()' calls, works only in the files from the scope of Node.js Core JavaScript library.", + "markdown": "Reports a module from a `require()` call or an `import` statement that is not installed or is not listed in package.json dependencies.\n\nSuggests installing the module and/or including it into package.json.\n\nFor `require()` calls, works only in the files from the scope of *Node.js Core* JavaScript library." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "NpmUsedModulesInstalled", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Imports and dependencies", + "index": 109, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "FunctionNamingConventionJS", + "shortDescription": { + "text": "Function naming convention" + }, + "fullDescription": { + "text": "Reports a function whose name is too short, too long, or does not follow the specified regular expression pattern. Use the fields provided below to specify minimum length, maximum length, and a regular expression for function names. Use the standard 'java.util.regex' format for regular expressions.", + "markdown": "Reports a function whose name is too short, too long, or does not follow the specified regular expression pattern.\n\n\nUse the fields provided below to specify minimum length, maximum length, and a regular expression\nfor function names. Use the standard `java.util.regex` format for regular expressions." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "FunctionNamingConventionJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Naming conventions", + "index": 96, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ObjectAllocationIgnoredJS", + "shortDescription": { + "text": "Result of object allocation ignored" + }, + "fullDescription": { + "text": "Reports object allocation where the result of the allocated object is ignored, for example, 'new Error();' as a statement, without any assignment. Such allocation expressions may indicate an odd object initialization strategy.", + "markdown": "Reports object allocation where the result of the allocated object is ignored, for example, `new Error();` as a statement, without any assignment. Such allocation expressions may indicate an odd object initialization strategy." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "ObjectAllocationIgnored", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Probable bugs", + "index": 79, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSHint", + "shortDescription": { + "text": "JSHint" + }, + "fullDescription": { + "text": "Reports a problem detected by the JSHint linter.", + "markdown": "Reports a problem detected by the [JSHint](https://jshint.com/) linter." + }, + "defaultConfiguration": { + "enabled": false, + "level": "error", + "parameters": { + "suppressToolId": "JSHint", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Code quality tools", + "index": 64, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ExceptionCaughtLocallyJS", + "shortDescription": { + "text": "Exception used for local control-flow" + }, + "fullDescription": { + "text": "Reports a 'throw' statement whose exceptions are always caught by the containing 'try' statement. Using 'throw' statements as a 'goto' to change the local flow of control is confusing.", + "markdown": "Reports a `throw` statement whose exceptions are always caught by the containing `try` statement. Using `throw` statements as a `goto` to change the local flow of control is confusing." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "ExceptionCaughtLocallyJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Try statement issues", + "index": 89, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CyclomaticComplexityJS", + "shortDescription": { + "text": "Overly complex function" + }, + "fullDescription": { + "text": "Reports a function with too many branching points in a function (too high cyclomatic complexity). Such functions may be confusing and hard to test. Use the field provided below to specify the maximum acceptable cyclomatic complexity for a function.", + "markdown": "Reports a function with too many branching points in a function (too high cyclomatic complexity). Such functions may be confusing and hard to test.\n\n\nUse the field provided below to specify the maximum acceptable cyclomatic complexity for a function." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "OverlyComplexFunctionJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Function metrics", + "index": 70, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "TypeScriptJSXUnresolvedComponent", + "shortDescription": { + "text": "Unresolved JSX component" + }, + "fullDescription": { + "text": "Reports an unresolved reference to a JSX component. Suggests adding an import statement if the referenced component is defined in the project or its dependencies or creating a new component with the specified name. The template for a new component can be modified in Editor | File and Code Templates.", + "markdown": "Reports an unresolved reference to a JSX component. Suggests adding an import statement if the referenced component is defined in the project or its dependencies or creating a new component with the specified name.\n\nThe template for a new component can be modified in Editor \\| File and Code Templates." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "TypeScriptJSXUnresolvedComponent", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/TypeScript", + "index": 52, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSUnfilteredForInLoop", + "shortDescription": { + "text": "Unfiltered for..in loop" + }, + "fullDescription": { + "text": "Reports unfiltered 'for-in' loops. The use of this construct results in processing not only own properties of an object but properties from its prototype as well. It may be unexpected in some specific cases, for example, in utility methods that copy or modify all properties or when 'Object''s prototype may be incorrectly modified. For example, the following code will print 42 and myMethod: 'Object.prototype.myMethod = function myMethod() {};\nlet a = { foo: 42 };\nfor (let i in a) {\n console.log(a[i]);\n}' Suggests replacing the whole loop with a 'Object.keys()' method or adding a 'hasOwnProperty()' check. After applying the quick-fix the code looks as follows: 'for (let i in a) {\n if (a.hasOwnProperty(i)) {\n console.log(a[i]);\n }\n}'", + "markdown": "Reports unfiltered `for-in` loops. \n\nThe use of this construct results in processing not only own properties of an object but properties from its prototype as well. It may be unexpected in some specific cases, for example, in utility methods that copy or modify all properties or when `Object`'s prototype may be incorrectly modified. For example, the following code will print **42** and **myMethod** : \n\n\n Object.prototype.myMethod = function myMethod() {};\n let a = { foo: 42 };\n for (let i in a) {\n console.log(a[i]);\n }\n\nSuggests replacing the whole loop with a `Object.keys()` method or adding a `hasOwnProperty()` check. After applying the quick-fix the code looks as follows:\n\n\n for (let i in a) {\n if (a.hasOwnProperty(i)) {\n console.log(a[i]);\n }\n }\n" + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "JSUnfilteredForInLoop", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/General", + "index": 18, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSFunctionExpressionToArrowFunction", + "shortDescription": { + "text": "Function expression is used instead of arrow function" + }, + "fullDescription": { + "text": "Reports a function expression. Suggests converting it to an arrow function. Example: 'arr.map(function(el) {return el + 1})' After applying the quick-fix the code looks as follows: 'arr.map(el => el + 1)'", + "markdown": "Reports a [function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/function) expression. Suggests converting it to an [arrow function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions).\n\nExample:\n\n arr.map(function(el) {return el + 1})\n\nAfter applying the quick-fix the code looks as follows:\n\n arr.map(el => el + 1)\n" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "JSFunctionExpressionToArrowFunction", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/ES2015 migration aids", + "index": 48, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UpdateDependencyToLatestVersion", + "shortDescription": { + "text": "Update package.json dependencies to latest versions" + }, + "fullDescription": { + "text": "Suggests to upgrade your package.json dependencies to the latest versions, ignoring specified versions.", + "markdown": "Suggests to upgrade your package.json dependencies to the latest versions, ignoring specified versions." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "UpdateDependencyToLatestVersion", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Imports and dependencies", + "index": 109, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "AssignmentResultUsedJS", + "shortDescription": { + "text": "Result of assignment used" + }, + "fullDescription": { + "text": "Reports an assignment expression where the result of the assignment is used in the containing expression. Such assignments often indicate coding errors, for example, '=' instead of '=='. Moreover, they can result in confusion due to the order of operations, as evaluation of the assignment may affect the outer expression in unexpected ways. Expressions in parentheses are ignored.", + "markdown": "Reports an assignment expression where the result of the assignment is used in the containing expression. Such assignments often indicate coding errors, for example, `=` instead of `==`. Moreover, they can result in confusion due to the order of operations, as evaluation of the assignment may affect the outer expression in unexpected ways.\n\nExpressions in parentheses are ignored." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "AssignmentResultUsedJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Assignment issues", + "index": 98, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ConstantOnRHSOfComparisonJS", + "shortDescription": { + "text": "Constant on right side of comparison" + }, + "fullDescription": { + "text": "Reports a comparison operation with a constant in the right-hand side. According to coding conventions, constants should only be in the left-hand side of comparisons.", + "markdown": "Reports a comparison operation with a constant in the right-hand side. According to coding conventions, constants should only be in the left-hand side of comparisons." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "ConstantOnRightSideOfComparisonJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Code style issues", + "index": 72, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSUnnecessarySemicolon", + "shortDescription": { + "text": "Unnecessary semicolon" + }, + "fullDescription": { + "text": "Reports an unneeded semicolon.", + "markdown": "Reports an unneeded semicolon." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "JSUnnecessarySemicolon", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/General", + "index": 18, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSSuspiciousEqPlus", + "shortDescription": { + "text": "Suspicious '=+' assignment" + }, + "fullDescription": { + "text": "Reports an assignment in the form 'a =+ b'. Suggests replacing with 'a += b'.", + "markdown": "Reports an assignment in the form `a =+ b`. Suggests replacing with `a += b`." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "JSSuspiciousEqPlus", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Probable bugs", + "index": 79, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSUnusedAssignment", + "shortDescription": { + "text": "Unused assignment" + }, + "fullDescription": { + "text": "Reports a variable whose value is never used after assignment. Suggests removing the unused variable to shorten the code and to avoid redundant allocations. The following cases are reported: A variable is never read after assignment. The value of a variable is always overwritten with another assignment before the variable is read next time. The initializer of a variable is redundant (for one of the above-mentioned reasons).", + "markdown": "Reports a variable whose value is never used after assignment. \nSuggests removing the unused variable to shorten the code and to avoid redundant allocations.\n\nThe following cases are reported:\n\n* A variable is never read after assignment.\n* The value of a variable is always overwritten with another assignment before the variable is read next time.\n* The initializer of a variable is redundant (for one of the above-mentioned reasons)." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "JSUnusedAssignment", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Unused symbols", + "index": 107, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ConfusingFloatingPointLiteralJS", + "shortDescription": { + "text": "Confusing floating point literal" + }, + "fullDescription": { + "text": "Reports any floating point number that does not have a decimal point, or any numbers before the decimal point, or and numbers after the decimal point. Such literals may be confusing, and violate several coding standards.", + "markdown": "Reports any floating point number that does not have a decimal point, or any numbers before the decimal point, or and numbers after the decimal point. Such literals may be confusing, and violate several coding standards." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "ConfusingFloatingPointLiteralJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Potentially confusing code constructs", + "index": 57, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ContinueOrBreakFromFinallyBlockJS", + "shortDescription": { + "text": "'continue' or 'break' inside 'finally' block" + }, + "fullDescription": { + "text": "Reports a 'break' or 'continue' statement inside a 'finally' block. Such statements are very confusing, may hide exceptions, and complicate debugging.", + "markdown": "Reports a `break` or `continue` statement inside a `finally` block. Such statements are very confusing, may hide exceptions, and complicate debugging." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "ContinueOrBreakFromFinallyBlockJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Try statement issues", + "index": 89, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSMethodCanBeStatic", + "shortDescription": { + "text": "Method can be made 'static'" + }, + "fullDescription": { + "text": "Reports a class method that can be safely made 'static'. A method can be 'static' if it does not reference any of its class' non-static methods and non-static fields and is not overridden in a subclass. Use the first checkbox below to inspect only 'private' methods.", + "markdown": "Reports a class method that can be safely made `static`. A method can be `static` if it does not reference any of its class' non-static methods and non-static fields and is not overridden in a subclass.\n\n\nUse the first checkbox below to inspect only `private` methods." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "JSMethodCanBeStatic", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/General", + "index": 18, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSUndeclaredVariable", + "shortDescription": { + "text": "Implicitly declared global JavaScript variable" + }, + "fullDescription": { + "text": "Reports an implicit declaration of a global variable. Example: 'var aaa = 1; // good\n bbb = 2; // bad, if bbb is not declared with 'var' somewhere'", + "markdown": "Reports an implicit declaration of a global variable.\n\nExample:\n\n\n var aaa = 1; // good\n bbb = 2; // bad, if bbb is not declared with 'var' somewhere\n" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "JSUndeclaredVariable", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/General", + "index": 18, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SillyAssignmentJS", + "shortDescription": { + "text": "Variable is assigned to itself" + }, + "fullDescription": { + "text": "Reports an assignment in the form 'x = x'.", + "markdown": "Reports an assignment in the form `x = x`." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "SillyAssignmentJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Assignment issues", + "index": 98, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "TypeScriptCheckImport", + "shortDescription": { + "text": "Unresolved imported name" + }, + "fullDescription": { + "text": "Reports an unresolved name or binding in an 'import' declaration in TypeScript code.", + "markdown": "Reports an unresolved name or binding in an `import` declaration in TypeScript code." + }, + "defaultConfiguration": { + "enabled": false, + "level": "error", + "parameters": { + "suppressToolId": "TypeScriptCheckImport", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/TypeScript", + "index": 52, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "InfiniteRecursionJS", + "shortDescription": { + "text": "Infinite recursion" + }, + "fullDescription": { + "text": "Reports a function which must either recurse infinitely or throw an exception. Such functions may not return normally.", + "markdown": "Reports a function which must either recurse infinitely or throw an exception. Such functions may not return normally." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "InfiniteRecursionJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Probable bugs", + "index": 79, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSMismatchedCollectionQueryUpdate", + "shortDescription": { + "text": "Mismatched query and update of collection" + }, + "fullDescription": { + "text": "Reports a collection of fields or variables whose contents are either queried and not updated or updated and not queried. Such mismatched queries and updates are pointless and may indicate either dead code or a typographical error. Query methods are automatically detected, based on whether they return something, or a callback is passed to them. Use the table below to specify which methods are update methods.", + "markdown": "Reports a collection of fields or variables whose contents are either queried and not updated or updated and not queried. Such mismatched queries and updates are pointless and may indicate either dead code or a typographical error.\n\n\nQuery methods are automatically detected, based on whether they return something, or a callback is passed to them.\nUse the table below to specify which methods are update methods." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "JSMismatchedCollectionQueryUpdate", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/General", + "index": 18, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ES6PreferShortImport", + "shortDescription": { + "text": "Import can be shortened" + }, + "fullDescription": { + "text": "Reports an ES6 import whose 'from' part can be shortened. Suggests importing the parent directory.", + "markdown": "Reports an ES6 import whose `from` part can be shortened. Suggests importing the parent directory." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "ES6PreferShortImport", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/General", + "index": 18, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "PointlessBitwiseExpressionJS", + "shortDescription": { + "text": "Bitwise expression can be simplified" + }, + "fullDescription": { + "text": "Reports an expression that includes 'and' with zero, 'or' by zero, or shifting by zero. Such expressions may result from not fully completed automated refactorings.", + "markdown": "Reports an expression that includes `and` with zero, `or` by zero, or shifting by zero. Such expressions may result from not fully completed automated refactorings." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "PointlessBitwiseExpressionJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Bitwise operation issues", + "index": 16, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSStringConcatenationToES6Template", + "shortDescription": { + "text": "String concatenation is used instead of template literal" + }, + "fullDescription": { + "text": "Reports a string concatenation. Suggests replacing it with a template literal Example '\"result: \" + a + \".\"' After applying the quick-fix the code looks as follows: '`result: ${a}.`'", + "markdown": "Reports a string concatenation. Suggests replacing it with a [template literal](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals)\n\nExample\n\n \"result: \" + a + \".\" \n\nAfter applying the quick-fix the code looks as follows:\n\n `result: ${a}.` \n" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "JSStringConcatenationToES6Template", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/ES2015 migration aids", + "index": 48, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ReplaceAssignmentWithOperatorAssignmentJS", + "shortDescription": { + "text": "Assignment could be replaced with operator assignment" + }, + "fullDescription": { + "text": "Reports an assignment operation that can be replaced by an operator assignment to make your code shorter and probably clearer. Example: 'x = x + 3;'\n 'x = x / 3;'\n After the quick fix is applied the result looks like: 'x += 3;'\n 'x /= 3;'", + "markdown": "Reports an assignment operation that can be replaced by an operator assignment to make your code shorter and probably clearer.\n\n\nExample:\n\n x = x + 3;\n x = x / 3;\n\nAfter the quick fix is applied the result looks like:\n\n x += 3;\n x /= 3;\n" + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "AssignmentReplaceableWithOperatorAssignmentJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Assignment issues", + "index": 98, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ES6DestructuringVariablesMerge", + "shortDescription": { + "text": "Destructuring properties with the same key" + }, + "fullDescription": { + "text": "Reports multiple destructuring properties with identical keys. Suggests merging the properties.", + "markdown": "Reports multiple destructuring properties with identical keys. Suggests merging the properties." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ES6DestructuringVariablesMerge", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/General", + "index": 18, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "TypeScriptRedundantGenericType", + "shortDescription": { + "text": "Redundant type arguments" + }, + "fullDescription": { + "text": "Reports a type argument that is equal to the default one and can be removed. Example: 'type Foo = T;\nlet z: Foo;'", + "markdown": "Reports a type argument that is equal to the default one and can be removed.\n\n\nExample:\n\n\n type Foo = T;\n let z: Foo;\n" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "TypeScriptRedundantGenericType", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/TypeScript", + "index": 52, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSLastCommaInObjectLiteral", + "shortDescription": { + "text": "Unneeded last comma in object literal" + }, + "fullDescription": { + "text": "Reports usages of a trailing comma in object literals. The warning is reported only when the JavaScript language version is set to ECMAScript 5.1. Trailing commas in object literals are allowed by the specification, however, some browsers might throw an error when a trailing comma is used. You can configure formatting options for trailing commas in Code Style | JavaScript or TypeScript | Punctuation.", + "markdown": "Reports usages of a trailing comma in object literals.\n\nThe warning is reported only when the JavaScript language version is set to ECMAScript 5.1.\n\nTrailing commas in object literals are allowed by the specification, however, some browsers might throw an error when a trailing comma is used.\n\nYou can configure formatting options for trailing commas in **Code Style** \\| **JavaScript** or **TypeScript** \\| **Punctuation**." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "JSLastCommaInObjectLiteral", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/General", + "index": 18, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "NestedAssignmentJS", + "shortDescription": { + "text": "Nested assignment" + }, + "fullDescription": { + "text": "Reports an assignment expression nested inside another expression, for example, 'a = b = 1'. Such expressions may be confusing and violate the general design principle that a given construct should do precisely one thing.", + "markdown": "Reports an assignment expression nested inside another expression, for example, `a = b = 1`. Such expressions may be confusing and violate the general design principle that a given construct should do precisely one thing." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "NestedAssignmentJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Assignment issues", + "index": 98, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "DefaultNotLastCaseInSwitchJS", + "shortDescription": { + "text": "'default' not last case in 'switch'" + }, + "fullDescription": { + "text": "Reports a 'switch' statement where the 'default' case comes before another case instead of being the very last case, which may cause confusion.", + "markdown": "Reports a `switch` statement where the `default` case comes before another case instead of being the very last case, which may cause confusion." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "DefaultNotLastCaseInSwitchJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Switch statement issues", + "index": 99, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "EmptyFinallyBlockJS", + "shortDescription": { + "text": "Empty 'finally' block" + }, + "fullDescription": { + "text": "Reports an empty 'finally' block, which usually indicates an error.", + "markdown": "Reports an empty `finally` block, which usually indicates an error." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "EmptyFinallyBlockJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Try statement issues", + "index": 89, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ForLoopThatDoesntUseLoopVariableJS", + "shortDescription": { + "text": "'for' loop where update or condition does not use loop variable" + }, + "fullDescription": { + "text": "Reports a 'for' loop where the condition or update does not use the 'for' loop variable.", + "markdown": "Reports a `for` loop where the condition or update does not use the `for` loop variable." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "ForLoopThatDoesntUseLoopVariableJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Probable bugs", + "index": 79, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "TypeScriptAbstractClassConstructorCanBeMadeProtected", + "shortDescription": { + "text": "Abstract class constructor can be made protected" + }, + "fullDescription": { + "text": "Reports a public constructor of an abstract class and suggests making it protected (because it is useless to have it public).", + "markdown": "Reports a public constructor of an abstract class and suggests making it protected (because it is useless to have it public)." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "TypeScriptAbstractClassConstructorCanBeMadeProtected", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/TypeScript", + "index": 52, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ThreeNegationsPerFunctionJS", + "shortDescription": { + "text": "Function with more than three negations" + }, + "fullDescription": { + "text": "Reports a function with three or more negation operations ('!' or '!='). Such functions may be unnecessarily confusing.", + "markdown": "Reports a function with three or more negation operations (`!` or `!=`). Such functions may be unnecessarily confusing." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "FunctionWithMoreThanThreeNegationsJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Function metrics", + "index": 70, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "TrivialIfJS", + "shortDescription": { + "text": "Redundant 'if' statement" + }, + "fullDescription": { + "text": "Reports an 'if' statement that can be simplified to a single assignment or a 'return' statement. Example: 'if(foo())\n {\n return true;\n }\n else\n {\n return false;\n }' After applying the quick-fix the code looks as follows: 'return foo();'", + "markdown": "Reports an `if` statement that can be simplified to a single assignment or a `return` statement.\n\nExample:\n\n\n if(foo())\n {\n return true;\n }\n else\n {\n return false;\n }\n\nAfter applying the quick-fix the code looks as follows:\n\n return foo();\n" + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "RedundantIfStatementJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Control flow issues", + "index": 61, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UnterminatedStatementJS", + "shortDescription": { + "text": "Unterminated statement" + }, + "fullDescription": { + "text": "Reports a statement without a semicolon or a newline at the end. Select the 'Terminate statements with semicolons' option in Editor | Code Style | JavaScript or TypeScript - Punctuation to report any statement that doesn't end with a semicolon, even if a newline is used. According to some coding styles, semicolons are preferred to line-breaks for consistency with the other languages.", + "markdown": "Reports a statement without a semicolon or a newline at the end.\n\nSelect the 'Terminate statements with semicolons' option in *Editor \\| Code Style \\| JavaScript or TypeScript - Punctuation* to report any statement that doesn't end with a semicolon, even if a newline is used.\nAccording to some coding styles, semicolons are preferred to line-breaks for consistency with the other languages." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "UnterminatedStatementJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Code style issues", + "index": 72, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSUnreachableSwitchBranches", + "shortDescription": { + "text": "Unreachable 'case' branch of a 'switch' statement" + }, + "fullDescription": { + "text": "Reports an unreachable 'case' branch of a 'switch' statement. Example: '/**\n * @param {('foo' | 'bar')} p\n */\nfunction foo(p) {\n switch (p) {\n case 'foo': break;\n case 'bar': break;\n case 'baz': break; // unreachable\n }\n}'", + "markdown": "Reports an unreachable `case` branch of a `switch` statement.\n\nExample:\n\n\n /**\n * @param {('foo' | 'bar')} p\n */\n function foo(p) {\n switch (p) {\n case 'foo': break;\n case 'bar': break;\n case 'baz': break; // unreachable\n }\n }\n" + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "JSUnreachableSwitchBranches", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Switch statement issues", + "index": 99, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "TrivialConditionalJS", + "shortDescription": { + "text": "Redundant conditional expression" + }, + "fullDescription": { + "text": "Reports a conditional expression of the form 'condition ? true : false\ncondition ? false : true' These expressions may be safely converted to 'condition\n!condition'", + "markdown": "Reports a conditional expression of the form\n\n\n condition ? true : false\n condition ? false : true\n\n\nThese expressions may be safely converted to\n\n\n condition\n !condition\n" + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "RedundantConditionalExpressionJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Control flow issues", + "index": 61, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSTestFailedLine", + "shortDescription": { + "text": "Highlight failure line in test code" + }, + "fullDescription": { + "text": "Reports a failed method call or an assertion in a test.", + "markdown": "Reports a failed method call or an assertion in a test." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "JSTestFailedLine", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Unit testing", + "index": 118, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "IfStatementWithTooManyBranchesJS", + "shortDescription": { + "text": "'if' statement with too many branches" + }, + "fullDescription": { + "text": "Reports an 'if' statement with too many branches. Such statements may be confusing, and often indicate inadequate levels of design abstraction. Use the field below to specify the maximum number of branches expected.", + "markdown": "Reports an `if` statement with too many branches. Such statements may be confusing, and often indicate inadequate levels of design abstraction.\n\n\nUse the field below to specify the maximum number of branches expected." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "IfStatementWithTooManyBranchesJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Control flow issues", + "index": 61, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "BreakStatementJS", + "shortDescription": { + "text": "'break' statement" + }, + "fullDescription": { + "text": "Reports a 'break' statements. Ignores 'break' statements that end case blocks.", + "markdown": "Reports a `break` statements. Ignores `break` statements that end case blocks." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "BreakStatementJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Potentially undesirable code constructs", + "index": 31, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "DebuggerStatementJS", + "shortDescription": { + "text": "'debugger' statement" + }, + "fullDescription": { + "text": "Reports a 'debugger' statement used for interaction with the Javascript debuggers. Such statements should not appear in production code.", + "markdown": "Reports a `debugger` statement used for interaction with the Javascript debuggers. Such statements should not appear in production code." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "DebuggerStatementJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Potentially undesirable code constructs", + "index": 31, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "AssignmentToForLoopParameterJS", + "shortDescription": { + "text": "Assignment to 'for' loop parameter" + }, + "fullDescription": { + "text": "Reports an assignment to a variable declared as a 'for' loop parameter. Although occasionally intended, this construct can be extremely confusing, and is often a result of an error.", + "markdown": "Reports an assignment to a variable declared as a `for` loop parameter. Although occasionally intended, this construct can be extremely confusing, and is often a result of an error." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "AssignmentToForLoopParameterJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Assignment issues", + "index": 98, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ConditionalExpressionJS", + "shortDescription": { + "text": "Conditional expression" + }, + "fullDescription": { + "text": "Reports a ternary conditional expression. Some coding standards prohibit such expressions in favor of explicit 'if' statements.", + "markdown": "Reports a ternary conditional expression. Some coding standards prohibit such expressions in favor of explicit `if` statements." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "ConditionalExpressionJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Potentially undesirable code constructs", + "index": 31, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "PointlessBooleanExpressionJS", + "shortDescription": { + "text": "Pointless statement or boolean expression" + }, + "fullDescription": { + "text": "Reports a pointless or pointlessly complicated boolean expression or statement. Example: 'let a = !(false && x);\n let b = false || x;' After the quick fix is applied the result looks like: 'let a = true;\n let b = x;'", + "markdown": "Reports a pointless or pointlessly complicated boolean expression or statement.\n\nExample:\n\n\n let a = !(false && x);\n let b = false || x;\n\nAfter the quick fix is applied the result looks like:\n\n\n let a = true;\n let b = x;\n" + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "PointlessBooleanExpressionJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Control flow issues", + "index": 61, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSUrlImportUsage", + "shortDescription": { + "text": "URL import is used" + }, + "fullDescription": { + "text": "Checks used URL imports in the JavaScript language. Suggests downloading the module for the specified remote URL. Such association enables the IDE to provide proper code completion and navigation. URLs in import specifiers are supported only for ECMAScript modules in the JavaScript language.", + "markdown": "Checks used URL imports in the JavaScript language. Suggests downloading the module for the specified remote URL. Such association enables the IDE to provide proper code completion and navigation. \n\nURLs in import specifiers are supported only for ECMAScript modules in the JavaScript language." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "JSUrlImportUsage", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Imports and dependencies", + "index": 109, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UnnecessaryLabelOnContinueStatementJS", + "shortDescription": { + "text": "Unnecessary label on 'continue' statement" + }, + "fullDescription": { + "text": "Reports a labeled 'continue' statement whose labels may be removed without changing the flow of control.", + "markdown": "Reports a labeled `continue` statement whose labels may be removed without changing the flow of control." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "UnnecessaryLabelOnContinueStatementJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Control flow issues", + "index": 61, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSPotentiallyInvalidTargetOfIndexedPropertyAccess", + "shortDescription": { + "text": "Possibly incorrect target of indexed property access" + }, + "fullDescription": { + "text": "Reports a potentially invalid indexed property access, for example, 'Array[1]'.", + "markdown": "Reports a potentially invalid indexed property access, for example, `Array[1]`." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "JSPotentiallyInvalidTargetOfIndexedPropertyAccess", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Probable bugs", + "index": 79, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSTypeOfValues", + "shortDescription": { + "text": "'typeof' comparison with non-standard value" + }, + "fullDescription": { + "text": "Reports a comparison of a 'typeof' expression with a literal string which is not one of the standard types: 'undefined', 'object', 'boolean', 'number', 'string', 'function', or 'symbol'. Such comparisons always return 'false'.", + "markdown": "Reports a comparison of a `typeof` expression with a literal string which is not one of the standard types: `undefined`, `object`, `boolean`, `number`, `string`, `function`, or `symbol`. Such comparisons always return `false`." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "JSTypeOfValues", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Probable bugs", + "index": 79, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "XHTMLIncompatabilitiesJS", + "shortDescription": { + "text": "Incompatible XHTML usages" + }, + "fullDescription": { + "text": "Reports common JavaScript DOM patterns which may present problems with XHTML documents. In particular, the patterns detected will behave completely differently depending on whether the document is loaded as XML or HTML. This can result in subtle bugs where script behaviour is dependent on the MIME-type of the document, rather than its content. Patterns detected include document.body, document.images, document.applets, document.links, document.forms, and document.anchors.", + "markdown": "Reports common JavaScript DOM patterns which may present problems with XHTML documents. In particular, the patterns detected will behave completely differently depending on whether the document is loaded as XML or HTML. This can result in subtle bugs where script behaviour is dependent on the MIME-type of the document, rather than its content. Patterns detected include **document.body** , **document.images** , **document.applets** , **document.links** , **document.forms** , and **document.anchors**." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "XHTMLIncompatabilitiesJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/DOM issues", + "index": 49, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSAnnotator", + "shortDescription": { + "text": "ECMAScript specification is not followed" + }, + "fullDescription": { + "text": "Reports basic syntax issues and inconsistencies with language specification, such as invalid usages of keywords, usages of incompatible numeric format, or multiple parameters to getters/setters. Generally, such errors must always be reported and shouldn't be disabled. But in some cases, such as issues due to the dynamic nature of JavaScript, the use of not yet supported language features, or bugs in IDE's checker, it may be handy to disable reporting these very basic errors.", + "markdown": "Reports basic syntax issues and inconsistencies with language specification, such as invalid usages of keywords, usages of incompatible numeric format, or multiple parameters to getters/setters. \nGenerally, such errors must always be reported and shouldn't be disabled. But in some cases, such as issues due to the dynamic nature of JavaScript, the use of not yet supported language features, or bugs in IDE's checker, it may be handy to disable reporting these very basic errors." + }, + "defaultConfiguration": { + "enabled": false, + "level": "error", + "parameters": { + "suppressToolId": "JSAnnotator", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/General", + "index": 18, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ES6ConvertToForOf", + "shortDescription": { + "text": "'for..in' is used instead of 'for..of'" + }, + "fullDescription": { + "text": "Reports a usage of a 'for..in' loop on an array. Suggests replacing it with a 'for..of' loop. 'for..of' loops, which are introduced in ECMAScript 6, iterate over 'iterable' objects. For arrays, this structure is preferable to 'for..in', because it works only with array values but not with array object's properties.", + "markdown": "Reports a usage of a [for..in](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in) loop on an array. Suggests replacing it with a [for..of](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of) loop. \n`for..of` loops, which are introduced in ECMAScript 6, iterate over `iterable` objects. For arrays, this structure is preferable to `for..in`, because it works only with array values but not with array object's properties." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ES6ConvertToForOf", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/ES2015 migration aids", + "index": 48, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ThisExpressionReferencesGlobalObjectJS", + "shortDescription": { + "text": "'this' expression which references the global object" + }, + "fullDescription": { + "text": "Reports a 'this' expression outside an object literal or a constructor body. Such 'this' expressions reference the top-level \"global\" JavaScript object, but are mostly useless.", + "markdown": "Reports a `this` expression outside an object literal or a constructor body. Such `this` expressions reference the top-level \"global\" JavaScript object, but are mostly useless." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "ThisExpressionReferencesGlobalObjectJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Validity issues", + "index": 22, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "NestedFunctionCallJS", + "shortDescription": { + "text": "Nested function call" + }, + "fullDescription": { + "text": "Reports a function call that is used as an argument in another function call, for example, 'foo(bar())'", + "markdown": "Reports a function call that is used as an argument in another function call, for example, `foo(bar())`" + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "NestedFunctionCallJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Code style issues", + "index": 72, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSEqualityComparisonWithCoercion", + "shortDescription": { + "text": "Equality operator may cause type coercion" + }, + "fullDescription": { + "text": "Reports a usage of an equality operator that may cause unexpected type coercions. Suggests replacing '==' and '!=' with type-safe equality operators '===' and '!=='. Depending on the option selected, one of the following cases will be reported: All usages of '==' and '!=' operators. All usages except comparison with null. Some code styles allow using 'x == null' as a replacement for 'x === null || x === undefined'. Only suspicious expressions, such as: '==' or '!=' comparisons with '0', '''', 'null', 'true', 'false', or 'undefined'.", + "markdown": "Reports a usage of an equality operator that may cause unexpected type coercions. Suggests replacing `==` and `!=` with type-safe equality operators `===` and `!==`.\n\nDepending on the option selected, one of the following cases will be reported:\n\n* All usages of `==` and `!=` operators.\n* All usages except comparison with null. Some code styles allow using `x == null` as a replacement for `x === null || x === undefined`.\n* Only suspicious expressions, such as: `==` or `!=` comparisons with `0`, `''`, `null`, `true`, `false`, or `undefined`." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "EqualityComparisonWithCoercionJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Probable bugs", + "index": 79, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSNonStrictModeUsed", + "shortDescription": { + "text": "Non-strict mode used" + }, + "fullDescription": { + "text": "Reports a JavaScript file that is not in the 'strict' mode.", + "markdown": "Reports a JavaScript file that is not in the `strict` mode." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "JSNonStrictModeUsed", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/General", + "index": 18, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "TypeScriptExplicitMemberType", + "shortDescription": { + "text": "Explicit types" + }, + "fullDescription": { + "text": "Reports a type annotation that doesn't match the current code style for explicit types. Type declarations are not necessary when the type that is inferred from the context exactly matches the type annotation, for example: 'var pi: number = 3.14' In some cases it is preferable to always have explicit types - this prevents accidental type changes and makes code more explicit.", + "markdown": "Reports a type annotation that doesn't match the current code style for explicit types.\n\n\nType declarations are not necessary when the type that is inferred from the context exactly matches the type annotation, for example:\n\n\n var pi: number = 3.14\n\nIn some cases it is preferable to always have explicit types - this prevents accidental type changes and makes code more explicit." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "TypeScriptExplicitMemberType", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/TypeScript", + "index": 52, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSDuplicateCaseLabel", + "shortDescription": { + "text": "Duplicate 'case' label" + }, + "fullDescription": { + "text": "Reports a duplicated 'case' label on a 'switch' statement, which normally indicates an error.", + "markdown": "Reports a duplicated `case` label on a `switch` statement, which normally indicates an error." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "JSDuplicateCaseLabel", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Switch statement issues", + "index": 99, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSXDomNesting", + "shortDescription": { + "text": "Invalid DOM element nesting" + }, + "fullDescription": { + "text": "Detects HTML elements in JSX files which are not nested properly according to the DOM specification. React reports runtime warnings on incorrectly nested elements.", + "markdown": "Detects HTML elements in JSX files which are not nested properly according to the DOM specification. React reports runtime warnings on incorrectly nested elements." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "JSXDomNesting", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/React", + "index": 136, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UnnecessaryLocalVariableJS", + "shortDescription": { + "text": "Redundant local variable" + }, + "fullDescription": { + "text": "Reports an unnecessary local variable that does not make a function more comprehensible: a local variable that is immediately returned a local variable that is immediately assigned to another variable and is not used anymore a local variable that always has the same value as another local variable or parameter. Use the checkbox below to have this inspection ignore variables that are immediately returned or thrown. Some coding styles suggest using such variables for clarity and ease of debugging.", + "markdown": "Reports an unnecessary local variable that does not make a function more comprehensible:\n\n* a local variable that is immediately returned\n* a local variable that is immediately assigned to another variable and is not used anymore\n* a local variable that always has the same value as another local variable or parameter.\n\n\nUse the checkbox below to have this inspection ignore variables that are immediately\nreturned or thrown. Some coding styles suggest using such variables for clarity and\nease of debugging." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "UnnecessaryLocalVariableJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Data flow", + "index": 102, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSXUnresolvedComponent", + "shortDescription": { + "text": "Unresolved JSX component" + }, + "fullDescription": { + "text": "Reports an unresolved reference to a JSX component. Suggests adding a missing import statement if the referenced component is defined in the project or its dependencies or creating a new component with this name. The template for a new component can be modified in Editor | File and Code Templates.", + "markdown": "Reports an unresolved reference to a JSX component. Suggests adding a missing import statement if the referenced component is defined in the project or its dependencies or creating a new component with this name.\n\nThe template for a new component can be modified in Editor \\| File and Code Templates." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "JSXUnresolvedComponent", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/General", + "index": 18, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UnnecessaryLabelOnBreakStatementJS", + "shortDescription": { + "text": "Unnecessary label on 'break' statement" + }, + "fullDescription": { + "text": "Reports a labeled 'break' statement whose labels may be removed without changing the flow of control.", + "markdown": "Reports a labeled `break` statement whose labels may be removed without changing the flow of control." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "UnnecessaryLabelOnBreakStatementJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Control flow issues", + "index": 61, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "DivideByZeroJS", + "shortDescription": { + "text": "Division by zero" + }, + "fullDescription": { + "text": "Reports division by zero or a remainder by zero.", + "markdown": "Reports division by zero or a remainder by zero." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "DivideByZeroJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Probable bugs", + "index": 79, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ChainedEqualityJS", + "shortDescription": { + "text": "Chained equality" + }, + "fullDescription": { + "text": "Reports a chained equality comparison (i.e. 'a==b==c'). Such comparisons are confusing.", + "markdown": "Reports a chained equality comparison (i.e. `a==b==c`). Such comparisons are confusing." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "ChainedEqualityComparisonsJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Code style issues", + "index": 72, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSRedundantSwitchStatement", + "shortDescription": { + "text": "'switch' statement is redundant and can be replaced" + }, + "fullDescription": { + "text": "Reports a 'switch' statement with an empty body, or with only one 'case' branch, or with a 'default' branch only.", + "markdown": "Reports a `switch` statement with an empty body, or with only one `case` branch, or with a `default` branch only." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "JSRedundantSwitchStatement", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Switch statement issues", + "index": 99, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "BlockStatementJS", + "shortDescription": { + "text": "Unnecessary block statement" + }, + "fullDescription": { + "text": "Reports a block statement that is not used as the body of 'if', 'for', 'while', 'do', 'with', or 'try' statements, or as the body of a function declaration. Starting from ECMAScript 6, JavaScript blocks introduce new scopes for 'let' and 'const' variables, but still free-standing block statements may be confusing and result in subtle bugs when used with 'var' variables.", + "markdown": "Reports a block statement that is not used as the body of `if`, `for`, `while`, `do`, `with`, or `try` statements, or as the body of a function declaration. Starting from ECMAScript 6, JavaScript blocks introduce new scopes for `let` and `const` variables, but still free-standing block statements may be confusing and result in subtle bugs when used with `var` variables." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "BlockStatementJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Potentially confusing code constructs", + "index": 57, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "TextLabelInSwitchStatementJS", + "shortDescription": { + "text": "Text label in 'switch' statement" + }, + "fullDescription": { + "text": "Reports a labeled statement inside a 'switch' statement, which often results from a typo. Example: 'switch(x)\n {\n case 1:\n case2: //typo!\n case 3:\n break;\n }'", + "markdown": "Reports a labeled statement inside a `switch` statement, which often results from a typo.\n\nExample:\n\n\n switch(x)\n {\n case 1:\n case2: //typo!\n case 3:\n break;\n }\n" + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "TextLabelInSwitchStatementJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Switch statement issues", + "index": 99, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSOctalInteger", + "shortDescription": { + "text": "Octal integer" + }, + "fullDescription": { + "text": "Reports a deprecated octal integer literal prefixed with '0' instead of '0o'. Such literals are not allowed in modern ECMAScript code, and using them in the strict mode is an error. To force this inspection for ES5 and ES3 language levels, select the 'Warn about obsolete octal literals in ES5- code' checkbox below.", + "markdown": "Reports a deprecated octal integer literal prefixed with `0` instead of `0o`. \nSuch literals are not allowed in modern ECMAScript code, and using them in the strict mode is an error. \nTo force this inspection for ES5 and ES3 language levels, select the 'Warn about obsolete octal literals in ES5- code' checkbox below." + }, + "defaultConfiguration": { + "enabled": false, + "level": "error", + "parameters": { + "suppressToolId": "JSOctalInteger", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Validity issues", + "index": 22, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "EmptyTryBlockJS", + "shortDescription": { + "text": "Empty 'try' block" + }, + "fullDescription": { + "text": "Reports an empty 'try' block, which usually indicates an error.", + "markdown": "Reports an empty `try` block, which usually indicates an error." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "EmptyTryBlockJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Try statement issues", + "index": 89, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "FlowJSCoverage", + "shortDescription": { + "text": "Code is not covered by Flow" + }, + "fullDescription": { + "text": "Reports JavaScript code fragments that are not covered by the Flow type checker. To use this inspection, configure the Flow executable in Settings | Languages & Frameworks | JavaScript.", + "markdown": "Reports JavaScript code fragments that are not covered by the Flow type checker. To use this inspection, configure the Flow executable in [Settings \\| Languages \\& Frameworks \\| JavaScript](settings://Settings.JavaScript)." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "FlowJSCoverage", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Flow type checker", + "index": 13, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSIgnoredPromiseFromCall", + "shortDescription": { + "text": "Result of method call returning a promise is ignored" + }, + "fullDescription": { + "text": "Reports a function call that returns a 'Promise' that is not used later. Such calls are usually unintended and indicate an error.", + "markdown": "Reports a function call that returns a `Promise` that is not used later. Such calls are usually unintended and indicate an error." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "JSIgnoredPromiseFromCall", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Async code and promises", + "index": 95, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "StringLiteralBreaksHTMLJS", + "shortDescription": { + "text": "String literal which breaks HTML parsing" + }, + "fullDescription": { + "text": "Reports a string literal that contains a ' for the complete list." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "NodeCoreCodingAssistance", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Node.js", + "index": 143, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSPrimitiveTypeWrapperUsage", + "shortDescription": { + "text": "Primitive type object wrapper used" + }, + "fullDescription": { + "text": "Reports an improper usage of a wrapper for primitive types or a property of a primitive type being modified, as in the latter case the assigned value will be lost.", + "markdown": "Reports an improper usage of a wrapper for primitive types or a property of a primitive type being modified, as in the latter case the assigned value will be lost." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "JSPrimitiveTypeWrapperUsage", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/General", + "index": 18, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSLastCommaInArrayLiteral", + "shortDescription": { + "text": "Unneeded last comma in array literal" + }, + "fullDescription": { + "text": "Reports a usage of a trailing comma in an array literal. The warning is reported only when the JavaScript language version is set to ECMAScript 5.1. Although trailing commas in arrays are allowed by the specification, some browsers may throw an error when a trailing comma is used. You can configure formatting options for trailing commas in Code Style | JavaScript or TypeScript | Punctuation.", + "markdown": "Reports a usage of a trailing comma in an array literal.\n\nThe warning is reported only when the JavaScript language version is set to ECMAScript 5.1.\n\nAlthough trailing commas in arrays are allowed by the specification, some browsers may throw an error when a trailing comma is used.\n\nYou can configure formatting options for trailing commas in **Code Style** \\| **JavaScript** or **TypeScript** \\| **Punctuation**." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "JSLastCommaInArrayLiteral", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/General", + "index": 18, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "NegatedConditionalExpressionJS", + "shortDescription": { + "text": "Negated conditional expression" + }, + "fullDescription": { + "text": "Reports a conditional expression whose condition is negated. Suggests flipping the order of branches in the conditional expression to increase the clarity of the statement. Example: '!condition ? 2 : 1'", + "markdown": "Reports a conditional expression whose condition is negated. Suggests flipping the order of branches in the conditional expression to increase the clarity of the statement. Example: `!condition ? 2 : 1`" + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "NegatedConditionalExpressionJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Potentially confusing code constructs", + "index": 57, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "LabeledStatementJS", + "shortDescription": { + "text": "Labeled statement" + }, + "fullDescription": { + "text": "Reports a labeled statement.", + "markdown": "Reports a labeled statement." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "LabeledStatementJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Potentially undesirable code constructs", + "index": 31, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "WithStatementJS", + "shortDescription": { + "text": "'with' statement" + }, + "fullDescription": { + "text": "Reports a 'with' statements. Such statements result in potentially confusing implicit bindings, and may behave strangely in setting new variables.", + "markdown": "Reports a `with` statements. Such statements result in potentially confusing implicit bindings, and may behave strangely in setting new variables." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "WithStatementJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Potentially undesirable code constructs", + "index": 31, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSConstantReassignment", + "shortDescription": { + "text": "Attempt to assign to const or readonly variable" + }, + "fullDescription": { + "text": "Reports reassigning a value to a constant or a readonly variable.", + "markdown": "Reports reassigning a value to a constant or a readonly variable." + }, + "defaultConfiguration": { + "enabled": false, + "level": "error", + "parameters": { + "suppressToolId": "JSConstantReassignment", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Validity issues", + "index": 22, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MagicNumberJS", + "shortDescription": { + "text": "Magic number" + }, + "fullDescription": { + "text": "Reports a \"magic number\" that is a numeric literal used without being named by a constant declaration. Magic numbers can result in code whose intention is unclear, and may result in errors if a magic number is changed in one code location but remains unchanged in another. The numbers 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 100, 1000, 0.0 and 1.0 are ignored.", + "markdown": "Reports a \"magic number\" that is a numeric literal used without being named by a constant declaration. Magic numbers can result in code whose intention is unclear, and may result in errors if a magic number is changed in one code location but remains unchanged in another. The numbers 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 100, 1000, 0.0 and 1.0 are ignored." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "MagicNumberJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Potentially confusing code constructs", + "index": 57, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "TypeScriptLibrary", + "shortDescription": { + "text": "Missing global library" + }, + "fullDescription": { + "text": "Reports a TypeScript library file that is required for a symbol but is not listed under the 'lib' compiler option in 'tsconfig.json'.", + "markdown": "Reports a TypeScript library file that is required for a symbol but is not listed under the `lib` compiler option in `tsconfig.json`." + }, + "defaultConfiguration": { + "enabled": false, + "level": "error", + "parameters": { + "suppressToolId": "TypeScriptLibrary", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/TypeScript", + "index": 52, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "TypeScriptMissingAugmentationImport", + "shortDescription": { + "text": "Missing augmentation import" + }, + "fullDescription": { + "text": "Reports a usage from augmentation module without an explicit import.", + "markdown": "Reports a usage from [augmentation module](https://www.typescriptlang.org/docs/handbook/declaration-merging.html#module-augmentation) without an explicit import." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "TypeScriptMissingAugmentationImport", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/TypeScript", + "index": 52, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Eslint", + "shortDescription": { + "text": "ESLint" + }, + "fullDescription": { + "text": "Reports a discrepancy detected by the ESLint linter. The highlighting is based on the rule severity specified in the ESLint configuration file for each individual rule. Clear the 'Use rule severity from the configuration file' checkbox to use the severity configured in this inspection for all ESLint rules.", + "markdown": "Reports a discrepancy detected by the [ESLint](https://eslint.org) linter. \n\nThe highlighting is based on the rule severity specified in the [ESLint configuration file](https://eslint.org/docs/user-guide/configuring) for each individual rule. \n\nClear the 'Use rule severity from the configuration file' checkbox to use the severity configured in this inspection for all ESLint rules." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "Eslint", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Code quality tools", + "index": 64, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSEqualityComparisonWithCoercion.TS", + "shortDescription": { + "text": "Equality operator may cause type coercion" + }, + "fullDescription": { + "text": "Reports a usage of equality operators may cause unexpected type coercions. Suggests replacing '==' or '!=' equality operators with type-safe '===' or '!==' operators. Depending on the option selected, one of the following cases will be reported: All usages of '==' and '!=' operators. All usages except comparison with null. Some code styles allow using 'x == null' as a replacement for 'x === null || x === undefined'. Only suspicious expressions, such as: '==' or '!=' comparisons with '0', '''', 'null', 'true', 'false', or 'undefined'.", + "markdown": "Reports a usage of equality operators may cause unexpected type coercions. Suggests replacing `==` or `!=` equality operators with type-safe `===` or `!==` operators.\n\nDepending on the option selected, one of the following cases will be reported:\n\n* All usages of `==` and `!=` operators.\n* All usages except comparison with null. Some code styles allow using `x == null` as a replacement for `x === null || x === undefined`.\n* Only suspicious expressions, such as: `==` or `!=` comparisons with `0`, `''`, `null`, `true`, `false`, or `undefined`." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "EqualityComparisonWithCoercionJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/TypeScript", + "index": 52, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "PackageJsonMismatchedDependency", + "shortDescription": { + "text": "Mismatched dependencies in package.json" + }, + "fullDescription": { + "text": "Reports a dependency from package.json that is not installed or doesn't match the specified version range.", + "markdown": "Reports a dependency from package.json that is not installed or doesn't match the specified [version range](https://docs.npmjs.com/about-semantic-versioning)." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "PackageJsonMismatchedDependency", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Imports and dependencies", + "index": 109, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "InfiniteLoopJS", + "shortDescription": { + "text": "Infinite loop statement" + }, + "fullDescription": { + "text": "Reports a 'for', 'while', or 'do' statement which can only exit by throwing an exception. Such statements often indicate coding errors.", + "markdown": "Reports a `for`, `while`, or `do` statement which can only exit by throwing an exception. Such statements often indicate coding errors." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "InfiniteLoopJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Probable bugs", + "index": 79, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSArrowFunctionBracesCanBeRemoved", + "shortDescription": { + "text": "Redundant braces around arrow function body" + }, + "fullDescription": { + "text": "Reports an arrow function whose body only consists of braces and exactly one statement. Suggests converting to concise syntax without braces. 'let incrementer = (x) => {return x + 1};' After the quick-fix is applied, the code fragment looks as follows: 'let incrementer = (x) => x + 1;'", + "markdown": "Reports an arrow function whose body only consists of braces and exactly one statement. Suggests converting to concise syntax without braces.\n\n\n let incrementer = (x) => {return x + 1};\n\nAfter the quick-fix is applied, the code fragment looks as follows:\n\n\n let incrementer = (x) => x + 1;\n" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "JSArrowFunctionBracesCanBeRemoved", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Code style issues", + "index": 72, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSClassNamingConvention", + "shortDescription": { + "text": "Class naming convention" + }, + "fullDescription": { + "text": "Reports a class or a function that is annotated with a JSDoc '@constructor' or '@class' tag whose names are too short, too long, or do not follow the specified regular expression pattern. Use the fields provided below to specify minimum length, maximum length, and a regular expression expected for classes names. Use the standard 'java.util.regex' format for regular expressions.", + "markdown": "Reports a class or a function that is annotated with a JSDoc `@constructor` or `@class` tag whose names are too short, too long, or do not follow the specified regular expression pattern.\n\n\nUse the fields provided below to specify minimum length, maximum length, and a regular expression\nexpected for classes names. Use the standard `java.util.regex` format for regular expressions." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "JSClassNamingConvention", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Naming conventions", + "index": 96, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSUndefinedPropertyAssignment", + "shortDescription": { + "text": "Undefined property assignment" + }, + "fullDescription": { + "text": "Reports an assignment to a property that is not defined in the type of a variable. Example: '/**\n * @type {{ property1: string, property2: number }}\n */\nlet myVariable = create();\n\nmyVariable.newProperty = 3; // bad'", + "markdown": "Reports an assignment to a property that is not defined in the type of a variable.\n\nExample:\n\n\n /**\n * @type {{ property1: string, property2: number }}\n */\n let myVariable = create();\n\n myVariable.newProperty = 3; // bad\n" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "JSUndefinedPropertyAssignment", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Code style issues", + "index": 72, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSDeprecatedSymbols", + "shortDescription": { + "text": "Deprecated symbol used" + }, + "fullDescription": { + "text": "Reports a usage of a deprecated function variable.", + "markdown": "Reports a usage of a deprecated function variable." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "JSDeprecatedSymbols", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/General", + "index": 18, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "LocalVariableNamingConventionJS", + "shortDescription": { + "text": "Local variable naming convention" + }, + "fullDescription": { + "text": "Reports a local variable whose name is too short, too long, or doesn't follow the specified regular expression pattern. Use the fields provided below to specify minimum length, maximum length, and a regular expression expected for local variables names. Use the standard 'java.util.regex' format regular expressions.", + "markdown": "Reports a local variable whose name is too short, too long, or doesn't follow the specified regular expression pattern.\n\n\nUse the fields provided below to specify minimum length, maximum length, and a regular expression\nexpected for local variables names. Use the standard `java.util.regex` format regular expressions." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "LocalVariableNamingConventionJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Naming conventions", + "index": 96, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSUnresolvedExtXType", + "shortDescription": { + "text": "Unresolved Ext JS xtype" + }, + "fullDescription": { + "text": "Reports an Ext JS 'xtype' reference that doesn't have a corresponding class.", + "markdown": "Reports an Ext JS `xtype` reference that doesn't have a corresponding class." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "JSUnresolvedExtXType", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/General", + "index": 18, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ES6RedundantNestingInTemplateLiteral", + "shortDescription": { + "text": "Redundant nesting in template literal" + }, + "fullDescription": { + "text": "Reports nested instances of a string or a template literal. Suggests inlining the nested instances into the containing template string. Example: 'let a = `Hello, ${`Brave ${\"New\"}`} ${\"World\"}!`' After applying the quick-fix the code looks as follows: 'let a = `Hello, Brave New World!`'", + "markdown": "Reports nested instances of a string or a template literal. Suggests inlining the nested instances into the containing template string.\n\nExample:\n\n\n let a = `Hello, ${`Brave ${\"New\"}`} ${\"World\"}!`\n\nAfter applying the quick-fix the code looks as follows:\n\n\n let a = `Hello, Brave New World!`\n" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "ES6RedundantNestingInTemplateLiteral", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/General", + "index": 18, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "NestingDepthJS", + "shortDescription": { + "text": "Overly nested function" + }, + "fullDescription": { + "text": "Reports a function whose body contains statements that are too deeply nested within other statements. Such functions may be confusing and indicate that refactoring may be necessary. Use the field provided below to specify the maximum acceptable nesting depth allowed in a function.", + "markdown": "Reports a function whose body contains statements that are too deeply nested within other statements. Such functions may be confusing and indicate that refactoring may be necessary.\n\n\nUse the field provided below to specify the maximum acceptable nesting depth allowed in a function." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "OverlyNestedFunctionJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Function metrics", + "index": 70, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "TypeScriptSuspiciousConstructorParameterAssignment", + "shortDescription": { + "text": "Assigned constructor field parameter" + }, + "fullDescription": { + "text": "Reports a common mistake in TypeScript code, when a class field is declared as a constructor parameter, and then this parameter is assigned. In this case, the corresponding field won't be assigned, only the local parameter value is modified. 'class Foo {\n constructor(private p: number) {\n p = 1; //must be this.p = 1;\n }\n}'", + "markdown": "Reports a common mistake in TypeScript code, when a class field is declared as a constructor parameter, and then this parameter is assigned. \nIn this case, the corresponding field *won't* be assigned, only the local parameter value is modified.\n\n\n class Foo {\n constructor(private p: number) {\n p = 1; //must be this.p = 1;\n }\n }\n" + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "TypeScriptSuspiciousConstructorParameterAssignment", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/TypeScript", + "index": 52, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "NestedSwitchStatementJS", + "shortDescription": { + "text": "Nested 'switch' statement" + }, + "fullDescription": { + "text": "Reports a 'switch' statement that is nested in another 'switch' statement. Nested 'switch' statements may be very confusing, particularly if indenting is inconsistent.", + "markdown": "Reports a `switch` statement that is nested in another `switch` statement. Nested `switch` statements may be very confusing, particularly if indenting is inconsistent." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "NestedSwitchStatementJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Switch statement issues", + "index": 99, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSMissingSwitchBranches", + "shortDescription": { + "text": "'switch' statement has missing branches" + }, + "fullDescription": { + "text": "Reports a 'switch' statement on a variable of the type 'enum' or 'union' when the statement doesn't cover some value options from the type.", + "markdown": "Reports a `switch` statement on a variable of the type `enum` or `union` when the statement doesn't cover some value options from the type." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "JSMissingSwitchBranches", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Switch statement issues", + "index": 99, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSJQueryEfficiency", + "shortDescription": { + "text": "JQuery selector can be optimized" + }, + "fullDescription": { + "text": "Reports a duplicated jQuery selector that can be cached or a usage of an attribute or a pseudo-selector (optional).", + "markdown": "Reports a duplicated jQuery selector that can be cached or a usage of an attribute or a pseudo-selector (optional)." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "JSJQueryEfficiency", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/General", + "index": 18, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UnreachableCodeJS", + "shortDescription": { + "text": "Unreachable code" + }, + "fullDescription": { + "text": "Reports code that can never be executed, which almost certainly indicates an error", + "markdown": "Reports code that can never be executed, which almost certainly indicates an error" + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "UnreachableCodeJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Control flow issues", + "index": 61, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "EmptyStatementBodyJS", + "shortDescription": { + "text": "Statement with empty body" + }, + "fullDescription": { + "text": "Reports an 'if', 'while', 'for', or 'with' statement with an empty body. Such statements often result from typos, and may cause confusion. Use the checkbox below to specify whether the statements with empty block statements as bodies should be reported.", + "markdown": "Reports an `if`, `while`, `for`, or `with` statement with an empty body. Such statements often result from typos, and may cause confusion.\n\n\nUse the checkbox below to specify whether the statements with empty block statements as bodies\nshould be reported." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "StatementWithEmptyBodyJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Potentially confusing code constructs", + "index": 57, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JSUnusedLocalSymbols", + "shortDescription": { + "text": "Unused local symbol" + }, + "fullDescription": { + "text": "Reports an unused locally accessible parameter, local variable, function, class, or private member declaration.", + "markdown": "Reports an unused locally accessible parameter, local variable, function, class, or private member declaration." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "JSUnusedLocalSymbols", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Unused symbols", + "index": 107, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false + }, + { + "name": "org.intellij.plugins.postcss", + "version": "241.16914", + "rules": [ + { + "id": "PostCssUnresolvedModuleValueReference", + "shortDescription": { + "text": "Unresolved CSS module value" + }, + "fullDescription": { + "text": "Reports an unresolved reference to a CSS Module Value ('@value' declaration). Example: '@value foo from unknown;'", + "markdown": "Reports an unresolved reference to a [CSS Module Value](https://github.com/css-modules/postcss-modules-values) (`@value` declaration).\n\nExample:\n\n\n @value foo from unknown;\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "PostCssUnresolvedModuleValueReference", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "PostCSS", + "index": 15, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "PostCssNesting", + "shortDescription": { + "text": "Invalid nested rule" + }, + "fullDescription": { + "text": "Reports a nested style rule whose syntax doesn't comply with the PostCSS Nested or the PostCSS Nesting specification. Example: '.phone {\n &_title {}\n}'", + "markdown": "Reports a nested style rule whose syntax doesn't comply with the [PostCSS Nested](https://github.com/postcss/postcss-nested) or the [PostCSS Nesting](https://github.com/csstools/postcss-nesting) specification.\n\nExample:\n\n\n .phone {\n &_title {}\n }\n" + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "PostCssNesting", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "PostCSS", + "index": 15, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "PostCssCustomMedia", + "shortDescription": { + "text": "Invalid custom media" + }, + "fullDescription": { + "text": "Reports a syntax error in a PostCSS Custom Media query. Example: '@custom-media --small-viewport (max-width: 30em);'", + "markdown": "Reports a syntax error in a [PostCSS Custom Media](https://github.com/postcss/postcss-custom-media) query.\n\nExample:\n\n\n @custom-media --small-viewport (max-width: 30em);\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "PostCssCustomMedia", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "PostCSS", + "index": 15, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "PostCssCustomSelector", + "shortDescription": { + "text": "Invalid custom selector" + }, + "fullDescription": { + "text": "Reports a syntax error in PostCSS Custom Selector. Example: '@custom-selector :--heading h1, h2, h3;'", + "markdown": "Reports a syntax error in [PostCSS Custom Selector](https://github.com/postcss/postcss-custom-selectors).\n\nExample:\n\n\n @custom-selector :--heading h1, h2, h3;\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "PostCssCustomSelector", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "PostCSS", + "index": 15, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "PostCssMediaRange", + "shortDescription": { + "text": "Invalid media query range" + }, + "fullDescription": { + "text": "Checks range context syntax, which may alternatively be used for media features with a 'range' type. Example: '@media screen and (500px <= width <= 1200px) {}'", + "markdown": "Checks [range context](https://github.com/postcss/postcss-media-minmax) syntax, which may alternatively be used for media features with a 'range' type.\n\nExample:\n\n\n @media screen and (500px <= width <= 1200px) {}\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "PostCssMediaRange", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "PostCSS", + "index": 15, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false + }, + { + "name": "org.editorconfig.editorconfigjetbrains", + "version": "241.16914", + "rules": [ + { + "id": "EditorConfigNumerousWildcards", + "shortDescription": { + "text": "Too many wildcards" + }, + "fullDescription": { + "text": "Reports sections that contain too many wildcards. Using a lot of wildcards may lead to performance issues.", + "markdown": "Reports sections that contain too many wildcards. Using a lot of wildcards may lead to performance issues." + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "EditorConfigNumerousWildcards", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "EditorConfig", + "index": 20, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "EditorConfigKeyCorrectness", + "shortDescription": { + "text": "Unknown property" + }, + "fullDescription": { + "text": "Reports properties that are not supported by the IDE. Note: some “ij” domain properties may require specific language plugins.", + "markdown": "Reports properties that are not supported by the IDE. Note: some \"ij\" domain properties may require specific language plugins." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "EditorConfigKeyCorrectness", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "EditorConfig", + "index": 20, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "EditorConfigEncoding", + "shortDescription": { + "text": "File encoding doesn't match EditorConfig charset" + }, + "fullDescription": { + "text": "Checks that current file encoding matches the encoding defined in \"charset\" property of .editorconfig file.", + "markdown": "Checks that current file encoding matches the encoding defined in \"charset\" property of .editorconfig file." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "EditorConfigEncoding", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "EditorConfig", + "index": 20, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "EditorConfigEmptyHeader", + "shortDescription": { + "text": "Empty header" + }, + "fullDescription": { + "text": "Reports sections with an empty header. Section header must contain file path globs in the format similar to one supported by 'gitignore'.", + "markdown": "Reports sections with an empty header. Section header must contain file path globs in the format similar to one supported by `gitignore`." + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "EditorConfigEmptyHeader", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "EditorConfig", + "index": 20, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "EditorConfigSpaceInHeader", + "shortDescription": { + "text": "Space in file pattern" + }, + "fullDescription": { + "text": "Reports space characters in wildcard patterns that affect pattern matching. If these characters are not intentional, they should be removed.", + "markdown": "Reports space characters in wildcard patterns that affect pattern matching. If these characters are not intentional, they should be removed." + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "EditorConfigSpaceInHeader", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "EditorConfig", + "index": 20, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "EditorConfigOptionRedundancy", + "shortDescription": { + "text": "Redundant property" + }, + "fullDescription": { + "text": "Reports properties that are redundant when another applicable section already contains the same property and value. For example: '[*]\nindent_size=4\n[*.java]\nindent_size=4' are both applicable to '*.java' files and define the same 'indent_size' value.", + "markdown": "Reports properties that are redundant when another applicable section already contains the same property and value.\n\n\nFor example:\n\n\n [*]\n indent_size=4\n [*.java]\n indent_size=4\n\nare both applicable to `*.java` files and define the same `indent_size` value." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "EditorConfigOptionRedundancy", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "EditorConfig", + "index": 20, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "EditorConfigWildcardRedundancy", + "shortDescription": { + "text": "Redundant wildcard" + }, + "fullDescription": { + "text": "Reports wildcards that become redundant when the “**” wildcard is used in the same section. The “**” wildcard defines a broader set of files than any other wildcard. That is why, any other wildcard used in the same section has no affect and can be removed.", + "markdown": "Reports wildcards that become redundant when the \"\\*\\*\" wildcard is used in the same section.\n\n\nThe \"\\*\\*\" wildcard defines a broader set of files than any other wildcard.\nThat is why, any other wildcard used in the same section has no affect and can be removed." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "EditorConfigWildcardRedundancy", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "EditorConfig", + "index": 20, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "EditorConfigUnusedDeclaration", + "shortDescription": { + "text": "Unused declaration" + }, + "fullDescription": { + "text": "Reports unused declarations. Such declarations can be removed.", + "markdown": "Reports unused declarations. Such declarations can be removed." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "EditorConfigUnusedDeclaration", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "EditorConfig", + "index": 20, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "EditorConfigRootDeclarationUniqueness", + "shortDescription": { + "text": "Extra top-level declaration" + }, + "fullDescription": { + "text": "Reports multiple top-level declarations. There can be only one optional “root=true” top-level declaration in the EditorConfig file. Using multiple top-level declarations is not allowed.", + "markdown": "Reports multiple top-level declarations. There can be only one optional \"root=true\" top-level declaration in the EditorConfig file. Using multiple top-level declarations is not allowed." + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "EditorConfigRootDeclarationUniqueness", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "EditorConfig", + "index": 20, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "EditorConfigShadowedOption", + "shortDescription": { + "text": "Overridden property" + }, + "fullDescription": { + "text": "Reports properties that are already defined in other sections. For example: '[*.java]\nindent_size=4\n[{*.java,*.js}]\nindent_size=2' The second section includes all '*.java' files too but it also redefines indent_size. As a result the value 2 will be used for files matching '*.java'.", + "markdown": "Reports properties that are already defined in other sections.\n\nFor example:\n\n\n [*.java]\n indent_size=4\n [{*.java,*.js}]\n indent_size=2\n\nThe second section includes all `*.java` files too but it also redefines indent_size. As a result the value 2 will be used for files matching `*.java`." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "EditorConfigShadowedOption", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "EditorConfig", + "index": 20, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "EditorConfigValueUniqueness", + "shortDescription": { + "text": "Non-unique list value" + }, + "fullDescription": { + "text": "Reports duplicates in lists of values.", + "markdown": "Reports duplicates in lists of values." + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "EditorConfigValueUniqueness", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "EditorConfig", + "index": 20, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "EditorConfigUnexpectedComma", + "shortDescription": { + "text": "Unexpected comma" + }, + "fullDescription": { + "text": "Reports commas that cannot be used in the current context. Commas are allowed only as separators for values in lists.", + "markdown": "Reports commas that cannot be used in the current context. Commas are allowed only as separators for values in lists." + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "EditorConfigUnexpectedComma", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "EditorConfig", + "index": 20, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "EditorConfigShadowingOption", + "shortDescription": { + "text": "Overriding property" + }, + "fullDescription": { + "text": "Reports properties that override the same properties defined earlier in the file. For example: '[*.java]\nindent_size=4\n[{*.java,*.js}]\nindent_size=2' The second section includes the same files as '[*.java]' but also sets indent_size to value 2. Thus the first declaration 'indent_size=4'will be ignored.", + "markdown": "Reports properties that override the same properties defined earlier in the file.\n\nFor example:\n\n\n [*.java]\n indent_size=4\n [{*.java,*.js}]\n indent_size=2\n\nThe second section includes the same files as `[*.java]` but also sets indent_size to value 2. Thus the first declaration `indent_size=4`will be ignored." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "EditorConfigShadowingOption", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "EditorConfig", + "index": 20, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "EditorConfigReferenceCorrectness", + "shortDescription": { + "text": "Invalid reference" + }, + "fullDescription": { + "text": "Reports identifiers that are either unknown or have a wrong type.", + "markdown": "Reports identifiers that are either unknown or have a wrong type." + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "EditorConfigReferenceCorrectness", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "EditorConfig", + "index": 20, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "EditorConfigCharClassLetterRedundancy", + "shortDescription": { + "text": "Duplicate character class letter" + }, + "fullDescription": { + "text": "Reports wildcard patterns in the EditorConfig section that contain a duplicate character in the character class, for example '[aa]'.", + "markdown": "Reports wildcard patterns in the EditorConfig section that contain a duplicate character in the character class, for example `[aa]`." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "EditorConfigCharClassLetterRedundancy", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "EditorConfig", + "index": 20, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "EditorConfigMissingRequiredDeclaration", + "shortDescription": { + "text": "Required declarations are missing" + }, + "fullDescription": { + "text": "Reports properties that miss the required declarations. Refer to the documentation for more information.", + "markdown": "Reports properties that miss the required declarations. Refer to the documentation for more information." + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "EditorConfigMissingRequiredDeclaration", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "EditorConfig", + "index": 20, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "EditorConfigPartialOverride", + "shortDescription": { + "text": "Overlapping sections" + }, + "fullDescription": { + "text": "Reports subsets of files specified in the current section that overlap with other subsets in other sections. For example: '[{foo,bar}]' and '[{foo,bas}]' both contain “foo”.", + "markdown": "Reports subsets of files specified in the current section that overlap with other subsets in other sections. For example: `[{foo,bar}]` and `[{foo,bas}]` both contain \"foo\"." + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "EditorConfigPartialOverride", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "EditorConfig", + "index": 20, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "EditorConfigListAcceptability", + "shortDescription": { + "text": "Unexpected value list" + }, + "fullDescription": { + "text": "Reports lists of values that are used in properties in which lists are not supported. In this case, only a single value can be specified.", + "markdown": "Reports lists of values that are used in properties in which lists are not supported. In this case, only a single value can be specified." + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "EditorConfigListAcceptability", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "EditorConfig", + "index": 20, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "EditorConfigPatternEnumerationRedundancy", + "shortDescription": { + "text": "Unnecessary braces" + }, + "fullDescription": { + "text": "Reports pattern lists that are either empty '{}' or contain just one pattern, for example '{foo}' in contrast to a list containing multiple patterns, for example '{foo,bar}'. In this case braces are handled as a part of the name. For example, the pattern '*.{a}' will match the file 'my.{a}' but not 'my.a'.", + "markdown": "Reports pattern lists that are either empty `{}` or contain just one pattern, for example `{foo}` in contrast to a list containing multiple patterns, for example `{foo,bar}`. In this case braces are handled as a part of the name. For example, the pattern `*.{a}` will match the file `my.{a}` but not `my.a`." + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "EditorConfigPatternEnumerationRedundancy", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "EditorConfig", + "index": 20, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "EditorConfigPairAcceptability", + "shortDescription": { + "text": "Unexpected key-value pair" + }, + "fullDescription": { + "text": "Reports key-value pairs that are not allowed in the current context.", + "markdown": "Reports key-value pairs that are not allowed in the current context." + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "EditorConfigPairAcceptability", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "EditorConfig", + "index": 20, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "EditorConfigNoMatchingFiles", + "shortDescription": { + "text": "No matching files" + }, + "fullDescription": { + "text": "Reports sections with wildcard patterns that do not match any files under the directory in which the '.editorconfig' file is located.", + "markdown": "Reports sections with wildcard patterns that do not match any files under the directory in which the `.editorconfig` file is located." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "EditorConfigNoMatchingFiles", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "EditorConfig", + "index": 20, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "EditorConfigHeaderUniqueness", + "shortDescription": { + "text": "EditorConfig section is not unique" + }, + "fullDescription": { + "text": "Reports sections that define the same file pattern as other sections.", + "markdown": "Reports sections that define the same file pattern as other sections." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "EditorConfigHeaderUniqueness", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "EditorConfig", + "index": 20, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "EditorConfigValueCorrectness", + "shortDescription": { + "text": "Invalid property value" + }, + "fullDescription": { + "text": "Reports property values that do not meet value restrictions. For example, some properties may be only “true” or “false”, others contain only integer numbers etc. If a value has a limited set of variants, use code completion to see all of them.", + "markdown": "Reports property values that do not meet value restrictions. For example, some properties may be only \"true\" or \"false\", others contain only integer numbers etc. If a value has a limited set of variants, use code completion to see all of them." + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "EditorConfigValueCorrectness", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "EditorConfig", + "index": 20, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "EditorConfigRootDeclarationCorrectness", + "shortDescription": { + "text": "Unexpected top-level declaration" + }, + "fullDescription": { + "text": "Reports unexpected top-level declarations. Top-level declarations other than “root=true” are not allowed in the EditorConfig file.", + "markdown": "Reports unexpected top-level declarations. Top-level declarations other than \"root=true\" are not allowed in the EditorConfig file." + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "EditorConfigRootDeclarationCorrectness", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "EditorConfig", + "index": 20, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "EditorConfigPatternRedundancy", + "shortDescription": { + "text": "Duplicate or redundant pattern" + }, + "fullDescription": { + "text": "Reports file patterns that are redundant as there already are other patterns that define the same scope of files or even a broader one. For example, in '[{*.java,*}]' the first '*.java' pattern defines a narrower scope compared to '*'. That is why it is redundant and can be removed.", + "markdown": "Reports file patterns that are redundant as there already are other patterns that define the same scope of files or even a broader one. For example, in `[{*.java,*}]` the first `*.java` pattern defines a narrower scope compared to `*`. That is why it is redundant and can be removed." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "EditorConfigPatternRedundancy", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "EditorConfig", + "index": 20, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "EditorConfigDeprecatedDescriptor", + "shortDescription": { + "text": "Deprecated property" + }, + "fullDescription": { + "text": "Reports EditorConfig properties that are no longer supported.", + "markdown": "Reports EditorConfig properties that are no longer supported." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "EditorConfigDeprecatedDescriptor", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "EditorConfig", + "index": 20, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "EditorConfigCharClassRedundancy", + "shortDescription": { + "text": "Unnecessary character class" + }, + "fullDescription": { + "text": "Reports character classes that consist of a single character. Such classes can be simplified to a character, for example '[a]'→'a'.", + "markdown": "Reports character classes that consist of a single character. Such classes can be simplified to a character, for example `[a]`→`a`." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "EditorConfigCharClassRedundancy", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "EditorConfig", + "index": 20, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "EditorConfigEmptySection", + "shortDescription": { + "text": "Empty section" + }, + "fullDescription": { + "text": "Reports sections that do not contain any EditorConfig properties.", + "markdown": "Reports sections that do not contain any EditorConfig properties." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "EditorConfigEmptySection", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "EditorConfig", + "index": 20, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "EditorConfigVerifyByCore", + "shortDescription": { + "text": "Invalid .editorconfig file" + }, + "fullDescription": { + "text": "Verifies the whole file using the backing EditorConfig core library and reports any failures. Any such failure would prevent EditorConfig properties from being correctly applied.", + "markdown": "Verifies the whole file using the backing EditorConfig core library and reports any failures. Any such failure would prevent EditorConfig properties from being correctly applied." + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "EditorConfigVerifyByCore", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "EditorConfig", + "index": 20, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false + }, + { + "name": "com.intellij.database", + "version": "241.16914", + "rules": [ + { + "id": "SqlMissingReturnInspection", + "shortDescription": { + "text": "Missing return statement" + }, + "fullDescription": { + "text": "Reports functions that have no RETURN statements. Example (Oracle): 'CREATE FUNCTION foo RETURN int AS\nBEGIN\nEND;' The 'foo' function must return the integer value but the function body returns nothing. To fix the error, add a RETURN statement (for example, 'return 1;'). 'CREATE FUNCTION foo RETURN int AS\nBEGIN\n RETURN 1;\nEND;'", + "markdown": "Reports functions that have no RETURN statements.\n\nExample (Oracle):\n\n CREATE FUNCTION foo RETURN int AS\n BEGIN\n END;\n\nThe `foo` function must return the integer value but the function body returns nothing. To fix the error,\nadd a RETURN statement (for example, `return 1;`).\n\n CREATE FUNCTION foo RETURN int AS\n BEGIN\n RETURN 1;\n END;\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "SqlMissingReturn", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlCaseVsIfInspection", + "shortDescription": { + "text": "Using CASE instead of conditional function and vice versa" + }, + "fullDescription": { + "text": "Reports situations when CASE and IF are interchangeable. Example (MySQL): 'SELECT CASE\nWHEN C1 IS NULL THEN 1\nELSE 0\nEND\nFROM dual;' To keep your code short, you can replace the CASE structure with IF. You can do that by applying the Replace with 'IF' call intention action. The example code will look as follows: 'SELECT IF(C1 IS NULL, 1, 0)\nFROM dual;' To revert IF to CASE, click IF and apply the Replace with CASE expression intention action.", + "markdown": "Reports situations when CASE and IF are interchangeable.\n\nExample (MySQL):\n\n SELECT CASE\n WHEN C1 IS NULL THEN 1\n ELSE 0\n END\n FROM dual;\n\nTo keep your code short, you can replace the CASE structure with IF. You can do that by applying the **Replace with 'IF' call**\nintention action. The example code will look as follows:\n\n SELECT IF(C1 IS NULL, 1, 0)\n FROM dual;\n\nTo revert IF to CASE, click IF and apply the **Replace with CASE expression** intention action." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "SqlCaseVsIf", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlShouldBeInGroupByInspection", + "shortDescription": { + "text": "Column should be in group by clause" + }, + "fullDescription": { + "text": "Reports columns that are not in the GROUP BY clause or inside an aggregate function call. Example (Microsoft SQL Server): 'CREATE TABLE t1 (a INT, b INT);\nSELECT a, b FROM t1 GROUP BY a;' If you run the SELECT query, you will receive an error because Microsoft SQL Server expects the 'b' column in GROUP BY or used inside an aggregate function. The following two examples will fix the error. 'SELECT a, b FROM t1 GROUP BY a, b;\nSELECT a, max(b) max_b FROM t1 GROUP BY a;'", + "markdown": "Reports columns that are not in the GROUP BY clause or inside an aggregate function call.\n\nExample (Microsoft SQL Server):\n\n CREATE TABLE t1 (a INT, b INT);\n SELECT a, b FROM t1 GROUP BY a;\n\nIf you run the SELECT query, you will receive an error because Microsoft SQL Server expects the `b` column in GROUP BY or used\ninside an aggregate function. The following two examples will fix the error.\n\n SELECT a, b FROM t1 GROUP BY a, b;\n SELECT a, max(b) max_b FROM t1 GROUP BY a;\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "SqlShouldBeInGroupBy", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlMisleadingReferenceInspection", + "shortDescription": { + "text": "Misleading references" + }, + "fullDescription": { + "text": "Reports ambiguous references in SQL code. For example, when a name refer to both a table column and a routine parameter. The execution of such code might lead to errors or unexpected results due to counter-intuitive resolution logic. Usually, names with a more local scope have higher priority. Example (PostgreSQL): 'CREATE TABLE foo\n(\n id INT,\n name VARCHAR(5)\n);\nCREATE FUNCTION func(name VARCHAR(5)) RETURNS INT AS\n$$\nDECLARE\n b INT;\nBEGIN\n -- `name` is ambiguous as it is used as a column name and a parameter\n SELECT COUNT(*) INTO b FROM foo t WHERE t.name = name;\n RETURN b;\nEND;\n$$ LANGUAGE plpgsql;' In PostgreSQL, you can use the '#variable_conflict' directives to explicitly specify a correct reference. For example, use '#variable_conflict use_column' to refer to a column name, or '#variable_conflict use_variable' to refer to a parameter. 'CREATE TABLE foo\n(\n id INT,\n name VARCHAR(5)\n);\nCREATE FUNCTION func(name VARCHAR(5)) RETURNS INT AS\n$$\n #variable_conflict use_column\nDECLARE\n b INT;\nBEGIN\n SELECT COUNT(*) INTO b FROM foo t WHERE t.name = name;\n RETURN b;\nEND;\n$$ LANGUAGE plpgsql;'", + "markdown": "Reports ambiguous references in SQL code.\n\nFor example, when a name refer to both a table column and a routine parameter. The execution of such code might lead to errors or unexpected\nresults due to counter-intuitive resolution logic. Usually, names with a more local scope have higher priority.\n\nExample (PostgreSQL):\n\n CREATE TABLE foo\n (\n id INT,\n name VARCHAR(5)\n );\n CREATE FUNCTION func(name VARCHAR(5)) RETURNS INT AS\n $$\n DECLARE\n b INT;\n BEGIN\n -- `name` is ambiguous as it is used as a column name and a parameter\n SELECT COUNT(*) INTO b FROM foo t WHERE t.name = name;\n RETURN b;\n END;\n $$ LANGUAGE plpgsql;\n\nIn PostgreSQL, you can use the `#variable_conflict` directives to explicitly specify a correct reference. For example,\nuse `#variable_conflict use_column` to refer to a column name, or `#variable_conflict use_variable` to refer to a\nparameter.\n\n CREATE TABLE foo\n (\n id INT,\n name VARCHAR(5)\n );\n CREATE FUNCTION func(name VARCHAR(5)) RETURNS INT AS\n $$\n #variable_conflict use_column\n DECLARE\n b INT;\n BEGIN\n SELECT COUNT(*) INTO b FROM foo t WHERE t.name = name;\n RETURN b;\n END;\n $$ LANGUAGE plpgsql;\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "SqlMisleadingReference", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlRedundantAliasInspection", + "shortDescription": { + "text": "Redundant alias expressions" + }, + "fullDescription": { + "text": "Reports alias expressions that duplicate names of columns in tables and might be redundant. Example (PostgreSQL): 'CREATE TABLE foo(a INT, b INT);\n\nSELECT * FROM foo foo(a, b);\nSELECT * FROM foo foo(a);\nSELECT * FROM foo foo(x);\nSELECT * FROM foo foo(x, y);' The first two aliases use the same column names as in the 'foo' table. They are considered redundant because they column names are identical.", + "markdown": "Reports alias expressions that duplicate names of columns in tables and might be redundant.\n\nExample (PostgreSQL):\n\n CREATE TABLE foo(a INT, b INT);\n\n SELECT * FROM foo foo(a, b);\n SELECT * FROM foo foo(a);\n SELECT * FROM foo foo(x);\n SELECT * FROM foo foo(x, y);\n\nThe first two aliases use the same column names as in the `foo` table. They are considered redundant because they\ncolumn names are identical." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "SqlRedundantAlias", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlUnusedCteInspection", + "shortDescription": { + "text": "Unused common table expression" + }, + "fullDescription": { + "text": "Reports unused common table expressions (CTE) inside the query. Example (PostgreSQL): 'CREATE TABLE foo(a INT);\n\nWITH a AS (SELECT 1 AS x FROM foo)\nSELECT 1 + 2 FROM foo;' By using WITH, we create a temporary named result set with the name 'a', also known as a common table expression (CTE). But we do not use this CTE later in the code. The unused CTE is greyed out.", + "markdown": "Reports unused common table expressions (CTE) inside the query.\n\nExample (PostgreSQL):\n\n CREATE TABLE foo(a INT);\n\n WITH a AS (SELECT 1 AS x FROM foo)\n SELECT 1 + 2 FROM foo;\n\nBy using WITH, we create a temporary named result set with the name `a`, also known as a common table expression (CTE). But\nwe do not use this CTE later in the code. The unused CTE is greyed out." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "SqlUnusedCte", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MongoJSResolveInspection", + "shortDescription": { + "text": "Resolution problems" + }, + "fullDescription": { + "text": "Reports unresolved references in MongoDB and JavaScript code. Example: 'db\nuse foo\n -- a reference to a non-existing collection\ndb.non_existing_collection\ndb['non_existing_collection']\ndb['non_existing_collection'].find().hasNext()' The 'non_existing_collection' collection does not exist in the database and will be reported.", + "markdown": "Reports unresolved references in MongoDB and JavaScript code.\n\nExample:\n\n db\n use foo\n -- a reference to a non-existing collection\n db.non_existing_collection\n db['non_existing_collection']\n db['non_existing_collection'].find().hasNext()\n\nThe `non_existing_collection` collection does not exist in the database and will be reported." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "MongoJSResolve", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "MongoJS", + "index": 82, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlDialectInspection", + "shortDescription": { + "text": "SQL dialect detection" + }, + "fullDescription": { + "text": "Reports situations when a dialect is not assigned to an SQL file. For example, when you open a new SQL file without assigning a dialect to it, you see a notification where the best matching dialect is advised. Click the Use link to use the advised dialect. Alternatively, click the Change dialect to link to select the other dialect.", + "markdown": "Reports situations when a dialect is not assigned to an SQL file.\n\nFor example, when you open a new SQL file without assigning a dialect\nto it, you see a notification where the best matching dialect is advised. Click the **Use \\** link to use the advised\ndialect. Alternatively, click the **Change dialect to** link to select the other dialect." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "SqlDialectInspection", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MongoJSExtDeprecationInspection", + "shortDescription": { + "text": "Deprecated element" + }, + "fullDescription": { + "text": "Reports usages of deprecated methods in MongoDB and JavaScript code. The quick-fix replaces deprecated methods with recommended alternatives. Example: 'db.my_collection.insert()' After the quick-fix is applied: 'db.my_collection.insertOne()'", + "markdown": "Reports usages of deprecated methods in MongoDB and JavaScript code.\n\nThe quick-fix replaces deprecated methods with recommended alternatives.\n\nExample:\n\n\n db.my_collection.insert()\n\nAfter the quick-fix is applied:\n\n\n db.my_collection.insertOne()\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "MongoJSDeprecation", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "MongoJS", + "index": 82, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MongoJSDeprecationInspection", + "shortDescription": { + "text": "Deprecated element" + }, + "fullDescription": { + "text": "Reports usages of deprecated methods in MongoDB and JavaScript code. The quick-fix replaces deprecated methods with recommended alternatives. Example: 'db.my_collection.insert()' After the quick-fix is applied: 'db.my_collection.insertOne()'", + "markdown": "Reports usages of deprecated methods in MongoDB and JavaScript code.\n\nThe quick-fix replaces deprecated methods with recommended alternatives.\n\nExample:\n\n db.my_collection.insert()\n\nAfter the quick-fix is applied:\n\n db.my_collection.insertOne()\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "MongoJSDeprecation", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "MongoJS", + "index": 82, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MsBuiltinInspection", + "shortDescription": { + "text": "Builtin functions" + }, + "fullDescription": { + "text": "Reports truncations of string arguments in ISNULL functions. The ISNULL syntax is 'ISNULL(check_expression, replacement_value)'. According to ISNULL at docs.microsoft.com, 'replacement_value' will be truncated if 'replacement_value' is longer than 'check_expression'. Example (Microsoft SQL Server): 'DECLARE @name1 VARCHAR(2) = NULL;\nDECLARE @name2 VARCHAR(10) = 'Example';\nDECLARE @name3 VARCHAR(2) = 'Hi';\n\n -- `@name2` is VARCHAR(10) and will be truncated\nSELECT ISNULL(@name1, @name2);\n\n -- `@name3` is VARCHAR(2) as `@name1` and will not be truncated\nSELECT ISNULL(@name1, @name3);'", + "markdown": "Reports truncations of string arguments in ISNULL functions.\n\nThe ISNULL syntax is `ISNULL(check_expression, replacement_value)`.\n\nAccording to [ISNULL at\ndocs.microsoft.com](https://docs.microsoft.com/en-us/sql/t-sql/functions/isnull-transact-sql), `replacement_value` will be truncated if `replacement_value` is longer than\n`check_expression`.\n\nExample (Microsoft SQL Server):\n\n DECLARE @name1 VARCHAR(2) = NULL;\n DECLARE @name2 VARCHAR(10) = 'Example';\n DECLARE @name3 VARCHAR(2) = 'Hi';\n\n -- `@name2` is VARCHAR(10) and will be truncated\n SELECT ISNULL(@name1, @name2);\n\n -- `@name3` is VARCHAR(2) as `@name1` and will not be truncated\n SELECT ISNULL(@name1, @name3);\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "MssqlBuiltin", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "SQL server", + "index": 94, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlMultipleLimitClausesInspection", + "shortDescription": { + "text": "Multiple row limiting/offset clauses in queries" + }, + "fullDescription": { + "text": "Reports usages of multiple row limiting clauses in a single query. Example (Microsoft SQL Server): 'create table foo(a int);\nselect top 1 * from foo order by a offset 10 rows fetch next 20 rows only;' The SELECT TOP clause is used to specify that only 1 record must be returned. The FETCH clause specifies the number of rows to return after the OFFSET clause has been processed. But as we already have the SELECT TOP limiting clause, the FETCH clause might be redundant.", + "markdown": "Reports usages of multiple row limiting clauses in a single query.\n\nExample (Microsoft SQL Server):\n\n create table foo(a int);\n select top 1 * from foo order by a offset 10 rows fetch next 20 rows only;\n\nThe SELECT TOP clause is used to specify that only 1 record must be\nreturned. The FETCH clause specifies the number of rows to return after the OFFSET\nclause has been processed. But as we already have the SELECT TOP limiting clause, the FETCH clause might be redundant." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "SqlMultipleLimitClauses", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlAmbiguousColumnInspection", + "shortDescription": { + "text": "Ambiguous reference" + }, + "fullDescription": { + "text": "Reports columns that have identical names but belong to different tables. Example (MySQL): 'CREATE TABLE foo(id INT PRIMARY KEY);\nCREATE TABLE bar(id INT PRIMARY KEY);\n\nSELECT foo.id, bar.id FROM foo, bar WHERE id > 0;' The 'id' column appears in 'foo' and 'bar' tables. You need to qualify the column name to make the query correct. 'SELECT foo.id, bar.id FROM foo, bar WHERE foo.id > 0;'", + "markdown": "Reports columns that have identical names but belong to different tables.\n\nExample (MySQL):\n\n CREATE TABLE foo(id INT PRIMARY KEY);\n CREATE TABLE bar(id INT PRIMARY KEY);\n\n SELECT foo.id, bar.id FROM foo, bar WHERE id > 0;\n\nThe `id` column appears in `foo` and `bar` tables. You need to qualify the column name to\nmake the query correct.\n\n SELECT foo.id, bar.id FROM foo, bar WHERE foo.id > 0;\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "SqlAmbiguousColumn", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlNullComparisonInspection", + "shortDescription": { + "text": "Null comparison" + }, + "fullDescription": { + "text": "Reports comparisons with NULL that can be replaced with IS NULL or IS NOT NULL operators. Example (Microsoft SQL Server): 'CREATE TABLE foo ( id int );\n\nSELECT * FROM foo WHERE NULL = NULL;\nSELECT * FROM foo WHERE NULL != NULL;' The 'NULL = NULL' can be replaced with 'IS NULL', the 'NULL != NULL' comparison with 'IS NOT NULL'. To do this replacement, you can use Use IS NULL operator or Use IS NOT NULL operator quick-fixes. 'SELECT * FROM foo WHERE NULL IS NULL;\nSELECT * FROM foo WHERE NULL IS NOT NULL;'", + "markdown": "Reports comparisons with NULL that can be replaced with IS NULL or IS NOT NULL operators.\n\nExample (Microsoft SQL Server):\n\n CREATE TABLE foo ( id int );\n\n SELECT * FROM foo WHERE NULL = NULL;\n SELECT * FROM foo WHERE NULL != NULL;\n\nThe `NULL = NULL` can be replaced with `IS NULL`, the `NULL != NULL` comparison\nwith `IS NOT NULL`. To do this replacement, you can use **Use IS NULL operator** or **Use IS NOT NULL operator**\nquick-fixes.\n\n SELECT * FROM foo WHERE NULL IS NULL;\n SELECT * FROM foo WHERE NULL IS NOT NULL;\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "SqlNullComparison", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlInsertValuesInspection", + "shortDescription": { + "text": "VALUES clause cardinality" + }, + "fullDescription": { + "text": "Reports situations when a number of parameters in VALUES does not match a number of columns in a target table. Example (MySQL): 'CREATE TABLE foo(a INT, b INT, c INT);\n\nINSERT INTO foo VALUES (1,2,3,4)' The 'foo' table has three columns but in the INSERT INTO statement we pass four.", + "markdown": "Reports situations when a number of parameters in VALUES does not match a number of columns in a target table.\n\nExample (MySQL):\n\n CREATE TABLE foo(a INT, b INT, c INT);\n\n INSERT INTO foo VALUES (1,2,3,4)\n\nThe `foo` table has three columns but in the INSERT INTO statement we pass four." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "SqlInsertValues", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlRedundantElseNullInspection", + "shortDescription": { + "text": "Redundant ELSE NULL clause" + }, + "fullDescription": { + "text": "Reports redundant ELSE NULL clauses. Example (MySQL): 'SELECT CASE WHEN 2 > 1 THEN 'OK' ELSE NULL END AS alias FROM foo;' The 'ELSE NULL' part will never be executed and may be omitted.", + "markdown": "Reports redundant ELSE NULL clauses.\n\nExample (MySQL):\n\n SELECT CASE WHEN 2 > 1 THEN 'OK' ELSE NULL END AS alias FROM foo;\n\nThe `ELSE NULL` part will never be executed and may be omitted." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "SqlRedundantElseNull", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlCurrentSchemaInspection", + "shortDescription": { + "text": "Current console schema introspected" + }, + "fullDescription": { + "text": "Reports schemas and databases in the current session that are not introspected. For example, this warning might occur when you try to create a table in the schema that is not introspected. Introspection is a method of inspecting a data source. When you perform introspection, structural information in the data source is inspected to detect tables, columns, functions, and other elements with their attributes.", + "markdown": "Reports schemas and databases in the current session that are not introspected.\n\nFor example, this warning might occur when you try to create a table in the schema that is not introspected.\n\nIntrospection is a method of inspecting a data source. When you perform introspection, structural information in the data source is\ninspected to detect tables, columns, functions, and other elements with their attributes." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "SqlCurrentSchemaInspection", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlInsertNullIntoNotNullInspection", + "shortDescription": { + "text": "Insert NULL into NOT NULL column" + }, + "fullDescription": { + "text": "Reports cases when you insert NULL values into columns that accept only NOT NULL values. Example (Microsoft SQL Server): 'CREATE TABLE br2 (\nid INT NOT NULL,\ncol1 NVARCHAR (20) NOT NULL,\ncol2 NVARCHAR (20) NOT NULL,\n);\n--\nINSERT INTO br2 (id, col1, col2)\nVALUES (1, NULL, NULL);' You cannot insert NULL values in 'col1' and 'col2' because they are defined as NOT NULL. If you run the script as is, you will receive an error. To fix this code, replace NULL in the VALUES part with some values (for example, '42' and ''bird''). INSERT INTO br2 (id, col1, col2)\nVALUES (1, 42, 'bird');", + "markdown": "Reports cases when you insert NULL values into columns that accept only NOT NULL values.\n\nExample (Microsoft SQL Server):\n\n CREATE TABLE br2 (\n id INT NOT NULL,\n col1 NVARCHAR (20) NOT NULL,\n col2 NVARCHAR (20) NOT NULL,\n );\n --\n INSERT INTO br2 (id, col1, col2)\n VALUES (1, NULL, NULL);\n\nYou cannot insert NULL values in `col1` and `col2` because they are defined as NOT NULL. If you run the script as\nis,\nyou will receive an error. To fix this code, replace NULL in the VALUES part with some values (for example, `42` and\n`'bird'`).\n\n```\nINSERT INTO br2 (id, col1, col2)\nVALUES (1, 42, 'bird');\n```" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "SqlInsertNullIntoNotNull", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlTriggerTransitionInspection", + "shortDescription": { + "text": "Suspicious code in triggers" + }, + "fullDescription": { + "text": "Reports incorrect usages of transition table variables in triggers. Example (HSQLDB): 'CREATE TABLE foo(a INT);\n\nCREATE TRIGGER trg\n AFTER DELETE ON foo\nBEGIN\n SELECT * FROM NEW;\nEND;\n\nCREATE TRIGGER trig AFTER INSERT ON foo\n REFERENCING OLD ROW AS newrow\n FOR EACH ROW WHEN (a > 1)\n INSERT INTO foo VALUES (1)' In HSQLDB, DELETE triggers may be used only with the OLD state while INSERT triggers may have only the NEW state. So, in the previous example, NEW in 'SELECT * FROM NEW;' will be highlighted as well as OLD in 'REFERENCING OLD ROW AS newrow'.", + "markdown": "Reports incorrect usages of transition table variables in triggers.\n\nExample (HSQLDB):\n\n CREATE TABLE foo(a INT);\n\n CREATE TRIGGER trg\n AFTER DELETE ON foo\n BEGIN\n SELECT * FROM NEW;\n END;\n\n CREATE TRIGGER trig AFTER INSERT ON foo\n REFERENCING OLD ROW AS newrow\n FOR EACH ROW WHEN (a > 1)\n INSERT INTO foo VALUES (1)\n\nIn HSQLDB, DELETE triggers may be used only with the OLD state while INSERT triggers may have only the NEW state. So, in the previous\nexample, NEW in `SELECT * FROM NEW;` will be highlighted as well as OLD in `REFERENCING OLD ROW AS newrow`." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "SqlTriggerTransition", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlNamedArgumentsInspection", + "shortDescription": { + "text": "Named arguments should be used" + }, + "fullDescription": { + "text": "Reports arguments that are used without names in routine calls. By default, this inspection is disabled. For more information about the difference between named and unnamed parameters, see Binding Parameters by Name (Named Parameters) at docs.microsoft.com . Example (Microsoft SQL Server): 'CREATE FUNCTION foo(n INT, m INT) RETURNS INT AS\nBEGIN\n RETURN n + m;\nEND;\n\nCREATE PROCEDURE test AS\nBEGIN\n foo n = 1, m = 2;\n\n--- The following call misses parameter names and will be highlighted\n foo 1, 2;\nEND;' Parameters '1, 2' in the 'foo 1, 2;' call are highlighted because they miss names.", + "markdown": "Reports arguments that are used without names in routine calls. By default, this inspection is disabled.\n\nFor more information about the difference between named and unnamed parameters, see [Binding Parameters by Name (Named Parameters) at docs.microsoft.com](https://docs.microsoft.com/en-us/sql/odbc/reference/develop-app/binding-parameters-by-name-named-parameters).\n\nExample (Microsoft SQL Server):\n\n CREATE FUNCTION foo(n INT, m INT) RETURNS INT AS\n BEGIN\n RETURN n + m;\n END;\n\n CREATE PROCEDURE test AS\n BEGIN\n foo n = 1, m = 2;\n\n --- The following call misses parameter names and will be highlighted\n foo 1, 2;\n END;\n\nParameters `1, 2` in the `foo 1, 2;` call are highlighted because they miss names." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "SqlNamedArguments", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlTransactionStatementInTriggerInspection", + "shortDescription": { + "text": "Use of transaction management statements in triggers" + }, + "fullDescription": { + "text": "Reports usages of transaction management statements like COMMIT or ROLLBACK in trigger bodies. With COMMIT or ROLLBACK statements in a trigger body, the trigger will not compile. The fail happens because triggers start during transactions. When the trigger starts the current transaction is still not complete. As COMMIT terminates a transaction, both statements (COMMIT and ROLLBACK) would lead to an exception. Changes that are executed in a trigger should be committed (or rolled back) by the owning transaction that started the trigger. Example (Oracle): 'CREATE TABLE employee_audit\n(\n id INT NOT NULL,\n update_date DATE NOT NULL,\n old_name VARCHAR2(100),\n new_name VARCHAR2(100)\n);\n\nCREATE TABLE employees\n(\n id INT NOT NULL,\n name VARCHAR2(100) NOT NULL\n);\n\nCREATE OR REPLACE TRIGGER trig_commit\n AFTER UPDATE OF name\n ON employees\n FOR EACH ROW\nBEGIN\n INSERT INTO employee_audit VALUES (:old.id, SYSDATE, :old.name, :new.name);\n COMMIT;\nEND;\n\nCREATE OR REPLACE TRIGGER trig_rollback\n AFTER UPDATE OF name\n ON employees\n FOR EACH ROW\nBEGIN\n INSERT INTO employee_audit VALUES (:old.id, SYSDATE, :old.name, :new.name);\n ROLLBACK;\nEND;'", + "markdown": "Reports usages of transaction management statements like COMMIT or ROLLBACK in trigger bodies.\n\nWith COMMIT or ROLLBACK statements in a trigger body, the trigger will not compile.\nThe fail happens because triggers start during transactions. When the trigger starts the current transaction is still not complete. As\nCOMMIT\nterminates a transaction, both statements (COMMIT and ROLLBACK) would lead to an exception.\nChanges that are executed in a trigger should be committed (or rolled back) by the owning transaction that started the trigger.\n\nExample (Oracle):\n\n CREATE TABLE employee_audit\n (\n id INT NOT NULL,\n update_date DATE NOT NULL,\n old_name VARCHAR2(100),\n new_name VARCHAR2(100)\n );\n\n CREATE TABLE employees\n (\n id INT NOT NULL,\n name VARCHAR2(100) NOT NULL\n );\n\n CREATE OR REPLACE TRIGGER trig_commit\n AFTER UPDATE OF name\n ON employees\n FOR EACH ROW\n BEGIN\n INSERT INTO employee_audit VALUES (:old.id, SYSDATE, :old.name, :new.name);\n COMMIT;\n END;\n\n CREATE OR REPLACE TRIGGER trig_rollback\n AFTER UPDATE OF name\n ON employees\n FOR EACH ROW\n BEGIN\n INSERT INTO employee_audit VALUES (:old.id, SYSDATE, :old.name, :new.name);\n ROLLBACK;\n END;\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "SqlTransactionStatementInTrigger", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "OraMissingBodyInspection", + "shortDescription": { + "text": "Missing body for package/object type specification" + }, + "fullDescription": { + "text": "Reports package and object type specifications that are missing body declarations. Package specifications and object types that declare routines as well as package specifications with cursors must have body declarations where those routines and cursors are implemented. Absence of a body leads to a runtime error when routines or cursors are invoked in program code. Example (Oracle): 'CREATE OR REPLACE PACKAGE ppp IS\n FUNCTION foo(a INT) RETURN INT;\nEND;'", + "markdown": "Reports package and object type specifications that are missing body declarations.\n\nPackage specifications and object types that declare routines as well as package specifications with cursors must have body\ndeclarations where those routines and cursors are implemented. Absence of a body leads to a runtime error when routines or cursors are\ninvoked in program code.\n\nExample (Oracle):\n\n CREATE OR REPLACE PACKAGE ppp IS\n FUNCTION foo(a INT) RETURN INT;\n END;\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "SqlMissingBody", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "Oracle", + "index": 112, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlCheckUsingColumnsInspection", + "shortDescription": { + "text": "Check using clause columns" + }, + "fullDescription": { + "text": "Reports columns in the USING clause that does not exist in both tables. Example (MySQL): 'CREATE TABLE t1 (i INT, j INT);\nCREATE TABLE t2 (k INT, l INT);\nSELECT * FROM t1 JOIN t2 USING (j);' In USING clauses, a column name must be present in both tables, and the SELECT query will automatically join those tables by using the given column name. As we do not have the 'j' column in 't2', we can rewrite the query using ON. The ON clause can join tables where the column names do not match in both tables. 'SELECT * FROM t1 JOIN t2 ON t1.j = t2.l;'", + "markdown": "Reports columns in the USING clause that does not exist in both tables.\n\nExample (MySQL):\n\n CREATE TABLE t1 (i INT, j INT);\n CREATE TABLE t2 (k INT, l INT);\n SELECT * FROM t1 JOIN t2 USING (j);\n\nIn USING clauses, a column name must be present in both tables, and the SELECT query will automatically join\nthose tables by using the given column name. As we do not have the `j` column in `t2`, we can\nrewrite the query using ON. The ON clause can join tables where the column names do not match in both tables.\n\n SELECT * FROM t1 JOIN t2 ON t1.j = t2.l;\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "SqlCheckUsingColumns", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlConstantConditionInspection", + "shortDescription": { + "text": "Constant condition" + }, + "fullDescription": { + "text": "Reports conditions in WHERE or JOIN clauses that are always TRUE or always FALSE. Example (MySQL): 'CREATE TABLE t1 (a TEXT, b INT, c BOOLEAN);\nSELECT a FROM t1 WHERE 'Cat' = 'Cat';' The ''Cat' = 'Cat'' is always true and will be reported.", + "markdown": "Reports conditions in WHERE or JOIN clauses that are always TRUE or always FALSE.\n\nExample (MySQL):\n\n CREATE TABLE t1 (a TEXT, b INT, c BOOLEAN);\n SELECT a FROM t1 WHERE 'Cat' = 'Cat';\n\nThe `'Cat' = 'Cat'` is always true and will be reported." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "SqlConstantCondition", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlInsertIntoGeneratedColumnInspection", + "shortDescription": { + "text": "Insertion into generated columns" + }, + "fullDescription": { + "text": "Reports INSERT statements that assign values to generated columns. Generated columns can be read, but their values can not be directly written. Example (PostgreSQL): 'CREATE TABLE foo\n(\n col1 INT,\n col2 INT GENERATED ALWAYS AS (col1 + 1) STORED\n);\nINSERT INTO foo(col1, col2) VALUES (1, 2);'\n You cannot insert '2' into the 'col2' column because this column is generated. For this script to work, you can change '2' to DEFAULT. 'INSERT INTO foo(col1, col2) VALUES (1, DEFAULT);'", + "markdown": "Reports INSERT statements that assign values to generated columns. Generated columns can be read, but their values can not be directly written.\n\nExample (PostgreSQL):\n\n CREATE TABLE foo\n (\n col1 INT,\n col2 INT GENERATED ALWAYS AS (col1 + 1) STORED\n );\n INSERT INTO foo(col1, col2) VALUES (1, 2);\n\nYou cannot insert `2` into the `col2` column because this column is generated.\nFor this script to work, you can change `2` to DEFAULT.\n`INSERT INTO foo(col1, col2) VALUES (1, DEFAULT);`" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "SqlInsertIntoGeneratedColumn", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MsOrderByInspection", + "shortDescription": { + "text": "ORDER BY in queries" + }, + "fullDescription": { + "text": "Reports usages when the 'ORDER BY' clause is used without 'TOP', 'OFFSET', or 'FOR XML' in views, inline functions, derived tables, subqueries, and common table expressions. For more information about usages of 'ORDER BY', see SELECT - ORDER BY Clause (Transact-SQL) at docs.microsoft.com. Example (Microsoft SQL server): 'CREATE TABLE foo (a INT NOT NULL, b INT NOT NULL);\n\nSELECT *\nFROM (SELECT a, b\nFROM foo A\nWHERE a < 89\nORDER BY b) ALIAS;' In a subquery, ORDER BY will be highlighted as an error. You can add TOP, OFFSET, or FOR XML to a subquery. Alternatively, use the Delete element quick-fix to delete the ORDER BY section. After the quick-fix is applied: 'SELECT *\nFROM (SELECT a, b\nFROM foo A\nWHERE a < 89) ALIAS;'", + "markdown": "Reports usages when the `ORDER BY` clause is used without `TOP`, `OFFSET`, or `FOR XML` in views, inline functions, derived tables, subqueries, and common table expressions.\n\nFor more information about usages of `ORDER BY`, see [SELECT - ORDER BY Clause (Transact-SQL) at\ndocs.microsoft.com](https://docs.microsoft.com/en-us/sql/t-sql/queries/select-order-by-clause-transact-sql).\n\nExample (Microsoft SQL server):\n\n CREATE TABLE foo (a INT NOT NULL, b INT NOT NULL);\n\n SELECT *\n FROM (SELECT a, b\n FROM foo A\n WHERE a < 89\n ORDER BY b) ALIAS;\n\nIn a subquery, ORDER BY will be highlighted as an error. You can add TOP, OFFSET, or FOR XML to a subquery.\nAlternatively, use the **Delete element** quick-fix to delete the ORDER BY section.\n\nAfter the quick-fix is applied:\n\n SELECT *\n FROM (SELECT a, b\n FROM foo A\n WHERE a < 89) ALIAS;\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "MsOrderBy", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "SQL server", + "index": 94, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlDeprecateTypeInspection", + "shortDescription": { + "text": "Deprecated type" + }, + "fullDescription": { + "text": "Reports usages of types that are deprecated and might disappear in future versions of DBMS. Reported types: LONG in Oracle (see Deprecated and Desupported Features at docs.oracle.com). TEXT, NTEXT, and IMAGE in Microsoft SQL Server (see Deprecated Database Engine Features in SQL Server 2016 at docs.microsoft.com). Example (Oracle): 'CREATE TABLE ot.foo(\na NUMBER GENERATED BY DEFAULT AS IDENTITY,\nb LONG NOT NULL\n);'", + "markdown": "Reports usages of types that are deprecated and might disappear in future versions of DBMS.\n\nReported types:\n\n* LONG in Oracle (see [Deprecated\n and Desupported Features at docs.oracle.com](https://docs.oracle.com/cd/A91202_01/901_doc/server.901/a90120/ch4_dep.htm#6690)).\n* TEXT, NTEXT, and IMAGE in Microsoft SQL Server (see [Deprecated Database Engine Features in SQL Server 2016 at docs.microsoft.com](https://docs.microsoft.com/en-us/sql/database-engine/deprecated-database-engine-features-in-sql-server-2016?view=sql-server-ver15)).\n\nExample (Oracle):\n\n CREATE TABLE ot.foo(\n a NUMBER GENERATED BY DEFAULT AS IDENTITY,\n b LONG NOT NULL\n );\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "SqlDeprecateType", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlGotoInspection", + "shortDescription": { + "text": "Usages of GOTO statements" + }, + "fullDescription": { + "text": "Reports usages of backward GOTO statements and GOTO statements used to exit a loop. The extensive use of GOTO statements is generally not recommended. For details, see GOTO statement in SQL procedures at ibm.com. Instead of jumping back to a previous statement using GOTO, consider using a loop. Instead of exiting the WHILE loop with GOTO, consider using other control-of-flow statements (for example, RETURN or BREAK). Example (Oracle): 'CREATE PROCEDURE test(n INT) AS\nDECLARE\n x INT;\nBEGIN\n x := 0;\n GOTO a;\n <> x := 1;\n IF (n = 0) THEN\n GOTO a;\n END IF;\n WHILE TRUE\n LOOP\n GOTO b;\n END LOOP;\n <> x := 3;\nEND;'", + "markdown": "Reports usages of backward GOTO statements and GOTO statements used to exit a loop.\n\nThe extensive use of GOTO statements is generally\nnot recommended. For details, see [GOTO statement in\nSQL\nprocedures at ibm.com](https://www.ibm.com/docs/no/db2/11.5?topic=procedures-goto-statement-in-sql).\n\nInstead of jumping back to a previous statement using GOTO, consider using a loop.\n\nInstead of exiting the WHILE loop with GOTO, consider using other control-of-flow statements (for example, RETURN or BREAK).\n\nExample (Oracle):\n\n CREATE PROCEDURE test(n INT) AS\n DECLARE\n x INT;\n BEGIN\n x := 0;\n GOTO a;\n <> x := 1;\n IF (n = 0) THEN\n GOTO a;\n END IF;\n WHILE TRUE\n LOOP\n GOTO b;\n END LOOP;\n <> x := 3;\n END;\n" + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "SqlGoto", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MysqlLoadDataPathInspection", + "shortDescription": { + "text": "LOAD statement path" + }, + "fullDescription": { + "text": "Reports paths that start with the tilde character in LOAD statements. Example (MySQL): 'CREATE TABLE table_name (id int);\nLOAD DATA LOCAL INFILE '~/Documents/some_file.txt'\nINTO TABLE table_name FIELDS TERMINATED BY ',' LINES TERMINATED BY '\\n'\nIGNORE 1 LINES;' Instead of the tilde character, use a full path to the file.", + "markdown": "Reports paths that start with the tilde character in LOAD statements.\n\nExample (MySQL):\n\n CREATE TABLE table_name (id int);\n LOAD DATA LOCAL INFILE '~/Documents/some_file.txt'\n INTO TABLE table_name FIELDS TERMINATED BY ',' LINES TERMINATED BY '\\n'\n IGNORE 1 LINES;\n\nInstead of the tilde character, use a full path to the file." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "MysqlLoadDataPath", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "MySQL", + "index": 120, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlDtInspection", + "shortDescription": { + "text": "Ill-formed date/time literals" + }, + "fullDescription": { + "text": "Reports errors in date and time literals. This inspection is available in MySQL, Oracle, Db2, and H2. Example (MySQL): 'SELECT TIME '10 -12:13:14' FROM dual;\nSELECT TIME ' 12 : 13 : 14 ' FROM dual;\nSELECT TIME '12 13 14' FROM dual;\nSELECT TIME '12-13-14' FROM dual;\nSELECT TIME '12.13.14' FROM dual;\nSELECT TIME '12:13:' FROM dual;\nSELECT TIME '12:13' FROM dual;\nSELECT TIME '12:' FROM dual;' In this example, dates ignore the MySQL standard for date and time literals. Therefore, they will be highlighted. For more information about date and time literals in MySQL, see Date and Time Literals at dev.mysql.com. The following date and type literals are valid for MySQL. 'SELECT TIME '12:13:14' FROM dual;\nSELECT TIME '12:13:14.555' FROM dual;\nSELECT TIME '12:13:14.' FROM dual;\nSELECT TIME '-12:13:14' FROM dual;\nSELECT TIME '10 12:13:14' FROM dual;\nSELECT TIME '-10 12:13:14' FROM dual;'", + "markdown": "Reports errors in date and time literals. This inspection is available in MySQL, Oracle, Db2, and H2.\n\nExample (MySQL):\n\n SELECT TIME '10 -12:13:14' FROM dual;\n SELECT TIME ' 12 : 13 : 14 ' FROM dual;\n SELECT TIME '12 13 14' FROM dual;\n SELECT TIME '12-13-14' FROM dual;\n SELECT TIME '12.13.14' FROM dual;\n SELECT TIME '12:13:' FROM dual;\n SELECT TIME '12:13' FROM dual;\n SELECT TIME '12:' FROM dual;\n\nIn this example, dates ignore the MySQL standard for date and time literals. Therefore, they will be highlighted.\nFor more information about date and time literals in MySQL, see [Date and Time Literals at dev.mysql.com](https://dev.mysql.com/doc/refman/8.0/en/date-and-time-literals.html).\n\nThe following date and type literals are valid for MySQL.\n\n SELECT TIME '12:13:14' FROM dual;\n SELECT TIME '12:13:14.555' FROM dual;\n SELECT TIME '12:13:14.' FROM dual;\n SELECT TIME '-12:13:14' FROM dual;\n SELECT TIME '10 12:13:14' FROM dual;\n SELECT TIME '-10 12:13:14' FROM dual;\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "SqlDateTime", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlNoDataSourceInspection", + "shortDescription": { + "text": "No data sources configured" + }, + "fullDescription": { + "text": "Reports the absence of data sources in the Database tool window (View | Tool Windows | Database).", + "markdown": "Reports the absence of data sources in the **Database** tool window (**View \\| Tool Windows \\| Database**)." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "SqlNoDataSourceInspection", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlConstantExpressionInspection", + "shortDescription": { + "text": "Constant expression" + }, + "fullDescription": { + "text": "Reports conditions and expressions that are always true, false or null. Example (MySQL): 'CREATE TABLE t1 (a TEXT, b INT, c BOOLEAN);\nSELECT a FROM t1 WHERE 'Cat' = 'Cat';\nSELECT a FROM t1 WHERE 'Cat' = null;' The ''Cat' = 'Cat'' is always true and will be reported. The ''Cat' = null' is always null and will be reported.", + "markdown": "Reports conditions and expressions that are always true, false or null.\n\nExample (MySQL):\n\n CREATE TABLE t1 (a TEXT, b INT, c BOOLEAN);\n SELECT a FROM t1 WHERE 'Cat' = 'Cat';\n SELECT a FROM t1 WHERE 'Cat' = null;\n\nThe `'Cat' = 'Cat'` is always true and will be reported.\n\nThe `'Cat' = null` is always null and will be reported." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "SqlConstantExpression", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "OraUnmatchedForwardDeclarationInspection", + "shortDescription": { + "text": "Forward declaration without definition" + }, + "fullDescription": { + "text": "Reports declarations of procedures and functions that are missing their implementation in code. In Oracle, you can declare a procedure or a function without its body, and write the implementation later. The inspection will report names of such procedures or functions that are left without implementation. Example (Oracle): 'DECLARE PROCEDURE foo(a int, b varchar2);\nBEGIN\n NULL;\nEND;' The 'foo' procedure is declared but is missing implementation. We can add the implementation to get rid of the error. 'DECLARE PROCEDURE foo(a int, b varchar2);\n PROCEDURE foo(a int, b varchar2) IS\nBEGIN\n NULL;\nEND;\nBEGIN\n NULL;\nEND;'", + "markdown": "Reports declarations of procedures and functions that are missing their implementation in code.\n\nIn Oracle, you can declare a procedure or a function without its body, and write the implementation later. The inspection will report names\nof such procedures or functions that are left without implementation.\n\nExample (Oracle):\n\n DECLARE PROCEDURE foo(a int, b varchar2);\n BEGIN\n NULL;\n END;\n\nThe `foo` procedure is declared but is missing implementation. We can add the implementation to get rid of the error.\n\n DECLARE PROCEDURE foo(a int, b varchar2);\n PROCEDURE foo(a int, b varchar2) IS\n BEGIN\n NULL;\n END;\n BEGIN\n NULL;\n END;\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "SqlUnmatchedForwardDeclaration", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "Oracle", + "index": 112, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlWithoutWhereInspection", + "shortDescription": { + "text": "Delete or update statement without where clauses" + }, + "fullDescription": { + "text": "Reports usages of DELETE or UPDATE statements without WHERE clauses. Without WHERE clauses, DELETE drops all the data from the table, and UPDATE overwrites values for all the table rows. Example (MySQL): 'CREATE TABLE t1 (a TEXT, b INT, c BOOLEAN);\nupdate t1 set a = 'Smith';\ndelete from t1;'", + "markdown": "Reports usages of DELETE or UPDATE statements without WHERE clauses.\n\nWithout WHERE clauses, DELETE drops all the data from the table, and UPDATE overwrites values for all the table rows.\n\nExample (MySQL):\n\n CREATE TABLE t1 (a TEXT, b INT, c BOOLEAN);\n update t1 set a = 'Smith';\n delete from t1;\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "SqlWithoutWhere", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MongoJSSideEffectsInspection", + "shortDescription": { + "text": "Statement with side effects" + }, + "fullDescription": { + "text": "Reports statements that can cause side effects while the data source is in read-only mode. For more information about enabling read-only mode, see Enable read-only mode for a connection in the IDE documentation. The Disable read-only mode quick-fix turns off the read-only mode for the respective data source. Example: 'db.my_collection.insertOne()'", + "markdown": "Reports statements that can cause side effects while the data source is in read-only mode.\n\nFor more information about enabling read-only mode, see\n[Enable\nread-only mode for a connection in the IDE documentation](https://www.jetbrains.com/help/datagrip/configuring-database-connections.html#enable-read-only-mode-for-a-connection).\n\nThe **Disable read-only mode** quick-fix turns off the read-only mode for the respective data source.\n\nExample:\n\n\n db.my_collection.insertOne()\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "MongoJSSideEffects", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "MongoJS", + "index": 82, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MongoJSExtSideEffectsInspection", + "shortDescription": { + "text": "Statement with side effects" + }, + "fullDescription": { + "text": "Reports statements that may cause side effects while the data source is in read-only mode. The quick-fix turns off the read-only mode for the respective data source. Example: 'db.my_collection.insertOne()'", + "markdown": "Reports statements that may cause side effects while the data source is in read-only mode.\n\nThe quick-fix turns off the read-only mode for the respective data source.\n\nExample:\n\n\n db.my_collection.insertOne()\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "MongoJSSideEffects", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "MongoJS", + "index": 82, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlUnusedSubqueryItemInspection", + "shortDescription": { + "text": "Unused subquery item" + }, + "fullDescription": { + "text": "Reports columns, aliases, and other subquery items that are not referenced in the outer query expression. Example (PostgreSQL): 'CREATE TABLE for_subquery(id INT);\nSELECT a, q FROM (SELECT 1 AS a, 10 AS b, 2 + 3 AS q, id\n FROM for_subquery) x;' We reference 'a' and 'q' aliases from a subquery. But the 'b' alias and the 'id' column are not referenced in the outer SELECT statement. Therefore, 'b' and 'id' are grayed out.", + "markdown": "Reports columns, aliases, and other subquery items that are not referenced in the outer query expression.\n\nExample (PostgreSQL):\n\n CREATE TABLE for_subquery(id INT);\n SELECT a, q FROM (SELECT 1 AS a, 10 AS b, 2 + 3 AS q, id\n FROM for_subquery) x;\n\nWe reference `a` and `q` aliases from a subquery. But the `b` alias and the `id` column are\nnot referenced in the outer SELECT statement. Therefore, `b` and `id` are grayed out." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "SqlUnused", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlSideEffectsInspection", + "shortDescription": { + "text": "Statement with side effects" + }, + "fullDescription": { + "text": "Reports statements that might lead to modification of a database during a read-only connection. To enable read-only mode for a connection, right-click a data source in the Database tool window (View | Tool Windows | Database) and select Properties. In the Data Sources and Drivers dialog, click the Options tab and select the Read-only checkbox. Example (MySQL): 'CREATE TABLE foo(a INT);\nINSERT INTO foo VALUES (1);' As 'CREATE TABLE' and 'INSERT INTO' statements lead to a database modification, these statements will be highlighted in read-only connection mode.", + "markdown": "Reports statements that might lead to modification of a database during a read-only connection.\n\nTo enable read-only mode for a\nconnection,\nright-click a data source in the **Database** tool window (**View \\| Tool Windows \\| Database** ) and select **Properties** .\nIn the **Data Sources and Drivers** dialog, click the **Options** tab and select the **Read-only** checkbox.\n\nExample (MySQL):\n\n CREATE TABLE foo(a INT);\n INSERT INTO foo VALUES (1);\n\nAs `CREATE TABLE` and `INSERT INTO` statements lead to a database modification, these statements will be highlighted\nin read-only connection mode." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "SqlSideEffects", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlJoinWithoutOnInspection", + "shortDescription": { + "text": "Unsafe 'join' clause in 'delete' statement" + }, + "fullDescription": { + "text": "Reports missing conditional checks for statements that might modify the whole database. For example, usages of JOIN clauses inside DELETE statements without ON or WHERE. Without conditional checks on JOIN, DELETE drops contents of the entire table. Example (MySQL): 'CREATE TABLE foo (a INT,b INT,c INT);\nCREATE TABLE bar (a INT,b INT,c INT);\n\nDELETE table1 FROM foo table1 INNER JOIN bar table2;'", + "markdown": "Reports missing conditional checks for statements that might modify the whole database.\n\nFor example, usages of JOIN clauses inside DELETE statements without ON or WHERE. Without conditional checks on JOIN, DELETE drops\ncontents of the entire table.\n\nExample (MySQL):\n\n CREATE TABLE foo (a INT,b INT,c INT);\n CREATE TABLE bar (a INT,b INT,c INT);\n\n DELETE table1 FROM foo table1 INNER JOIN bar table2;\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "SqlJoinWithoutOn", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlDropIndexedColumnInspection", + "shortDescription": { + "text": "Index is dependent on column" + }, + "fullDescription": { + "text": "Reports cases when you try to drop columns from indexed tables. This inspection is available in Microsoft SQL Server and Sybase ASE. Example (Microsoft SQL Server): 'CREATE TABLE test_index\n(\ncol INT NOT NULL,\ncol2 INT NOT NULL,\ncol3 INT NOT NULL UNIQUE,\ncol4 VARCHAR(200)\n);\n\nCREATE UNIQUE INDEX aaaa ON test_index (col, col2);\n\nALTER TABLE test_index\nDROP COLUMN col;' You cannot delete the 'col' column because it is in the indexed table. To delete the column, you need to delete the 'aaaa' index first (for example, DROP INDEX aaaa).", + "markdown": "Reports cases when you try to drop columns from indexed tables. This inspection is available in Microsoft SQL Server and Sybase ASE.\n\nExample (Microsoft SQL Server):\n\n CREATE TABLE test_index\n (\n col INT NOT NULL,\n col2 INT NOT NULL,\n col3 INT NOT NULL UNIQUE,\n col4 VARCHAR(200)\n );\n\n CREATE UNIQUE INDEX aaaa ON test_index (col, col2);\n\n ALTER TABLE test_index\n DROP COLUMN col;\n\nYou cannot delete the `col` column because it is in the indexed table. To delete the column, you need to delete the\n`aaaa` index first (for example, DROP INDEX aaaa)." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "SqlDropIndexedColumn", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlTypeInspection", + "shortDescription": { + "text": "Types compatibility" + }, + "fullDescription": { + "text": "Reports type-related errors.", + "markdown": "Reports type-related errors." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "SqlType", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlUnicodeStringLiteralInspection", + "shortDescription": { + "text": "Unicode usage in SQL" + }, + "fullDescription": { + "text": "Reports string literals that use national characters without the 'N' prefix. Without the N prefix, the string is converted to the default code page of the database. This default code page may not recognize certain characters. For more information, see nchar and nvarchar (Transact-SQL) at docs.microsoft.com. Example (Microsoft SQL Server): 'SELECT 'abcde' AS a;\nSELECT N'abcde' AS b;\nSELECT 'абвгд' AS c;\nSELECT N'абвгд' AS d;' The 'SELECT 'абвгд' AS c;' does not have the 'N' prefix, the ''абвгд'' part will be highlighted.", + "markdown": "Reports string literals that use national characters without the `N` prefix.\n\nWithout the N prefix, the string is converted to the default\ncode page of the database. This default code page may not recognize certain characters. For more information, see\n[nchar and nvarchar\n(Transact-SQL)\nat docs.microsoft.com](https://docs.microsoft.com/en-us/sql/t-sql/data-types/nchar-and-nvarchar-transact-sql).\n\nExample (Microsoft SQL Server):\n\n SELECT 'abcde' AS a;\n SELECT N'abcde' AS b;\n SELECT 'абвгд' AS c;\n SELECT N'абвгд' AS d;\n\nThe `SELECT 'абвгд' AS c;` does not have the `N` prefix, the `'абвгд'` part will be highlighted." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "SqlUnicodeStringLiteral", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlUnusedVariableInspection", + "shortDescription": { + "text": "Unused variable" + }, + "fullDescription": { + "text": "Reports unused arguments, variables, or parameters. Example (PostgreSQL): 'CREATE FUNCTION foo(PARAMUSED INT, PARAMUNUSED INT) RETURNS INT AS\n$$\nBEGIN\n RETURN PARAMUSED;\nEND\n$$ LANGUAGE plpgsql;' The 'PARAMUNUSED' parameter is not used in the function and might be deleted.", + "markdown": "Reports unused arguments, variables, or parameters.\n\nExample (PostgreSQL):\n\n CREATE FUNCTION foo(PARAMUSED INT, PARAMUNUSED INT) RETURNS INT AS\n $$\n BEGIN\n RETURN PARAMUSED;\n END\n $$ LANGUAGE plpgsql;\n\nThe `PARAMUNUSED` parameter is not used in the function and might be deleted." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "SqlUnused", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "PgSelectFromProcedureInspection", + "shortDescription": { + "text": "Postgres: Select from procedure call" + }, + "fullDescription": { + "text": "Reports situations when you make SELECT from a function or a DBLINK without an alias with a type (for example, 'AS t1(s VARCHAR)'). This requirement does not apply to scalar functions. Example (PostgreSQL): 'CREATE FUNCTION produce_a_table() RETURNS RECORD AS $$\nSELECT 1;\n$$ LANGUAGE sql;\nSELECT * FROM produce_a_table() AS s (c1 INT);\nSELECT * FROM produce_a_table() AS s (c1);\nSELECT * FROM DBLINK('dbname=mydb', 'SELECT proname, prosrc FROM pg_proc') AS t1;' The 'AS s (c1 INT)' has a typed alias, while 'AS s (c1)' and 'AS t1' do not. In this case, the second call of 'produce_a_table()' and 'DBLINK()' will be highlighted.", + "markdown": "Reports situations when you make SELECT from a function or a DBLINK without an alias with a type (for example, `AS t1(s VARCHAR)`).\n\nThis requirement does not apply to scalar functions.\n\nExample (PostgreSQL):\n\n CREATE FUNCTION produce_a_table() RETURNS RECORD AS $$\n SELECT 1;\n $$ LANGUAGE sql;\n SELECT * FROM produce_a_table() AS s (c1 INT);\n SELECT * FROM produce_a_table() AS s (c1);\n SELECT * FROM DBLINK('dbname=mydb', 'SELECT proname, prosrc FROM pg_proc') AS t1;\n\nThe `AS s (c1 INT)` has a typed alias, while `AS s (c1)` and `AS t1` do not.\nIn this case, the second call of `produce_a_table()` and `DBLINK()` will be highlighted." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "PgSelectFromProcedure", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "PostgreSQL", + "index": 130, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlStorageInspection", + "shortDescription": { + "text": "SQL source modification detection" + }, + "fullDescription": { + "text": "Reports situations when source code of a database object has been changed. The inspection is triggered when you perform database or object introspection. The introspection is run when you open source code of an object, run statements, and perform code refactoring. Also, you can run introspection by right-clicking an object and selecting Refresh. The inspection covers the following situations: Object source code was changed in the database but code in the editor was not updated. Works in PostgreSQL, Microsoft SQL Server, Oracle, and Sybase ASE. You changed the object source code, introspected the database, but source code has been already changed by someone else. The database introspector was updated in the IDE and you need to download new object properties that were missing in the previous introspector version.", + "markdown": "Reports situations when source code of a database object has been changed.\n\nThe inspection is triggered when you perform database or object introspection. The introspection is run when you open source code of an\nobject, run statements, and perform code refactoring.\nAlso, you can run introspection by right-clicking an object and selecting **Refresh**.\n\nThe inspection covers the following situations:\n\n* Object source code was changed in the database but code in the editor was not updated. Works in PostgreSQL, Microsoft SQL Server, Oracle, and Sybase ASE.\n* You changed the object source code, introspected the database, but source code has been already changed by someone else.\n* The database introspector was updated in the IDE and you need to download new object properties that were missing in the previous introspector version." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "SqlStorageInspection", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlSignatureInspection", + "shortDescription": { + "text": "Function signature" + }, + "fullDescription": { + "text": "Reports signature issues for built-in functions. The inspection will report a wrong number of arguments, invalid keywords, wrong data types, and other issues. Example (MySQL): 'CREATE TABLE foo (a INT, b INT, c INT)\n\nSELECT IFNULL() FROM foo; -- error\nSELECT IFNULL(a) FROM foo; -- error\nSELECT IFNULL(a, b) FROM foo; -- OK\nSELECT IFNULL(a, b, c) FROM foo; -- error' In MySQL, the 'IFNULL()' function accepts strictly two arguments. So, only the 'SELECT IFNULL(a, b) FROM foo;' query is correct.", + "markdown": "Reports signature issues for built-in functions.\n\nThe inspection will report a wrong number of arguments, invalid keywords, wrong data types, and other issues.\n\nExample (MySQL):\n\n CREATE TABLE foo (a INT, b INT, c INT)\n\n SELECT IFNULL() FROM foo; -- error\n SELECT IFNULL(a) FROM foo; -- error\n SELECT IFNULL(a, b) FROM foo; -- OK\n SELECT IFNULL(a, b, c) FROM foo; -- error\n\nIn MySQL, the `IFNULL()` function accepts strictly two arguments. So, only the `SELECT IFNULL(a, b) FROM foo;`\nquery is correct." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "SqlSignature", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlRedundantOrderingDirectionInspection", + "shortDescription": { + "text": "Redundant ordering direction" + }, + "fullDescription": { + "text": "Reports redundant ordering directions like ASC and DESC in ORDER BY clauses. Example (MySQL): 'CREATE TABLE foo(a INT, b INT, c INT);\nSELECT * FROM foo ORDER BY a ASC, b DESC, c ASC;' The ORDER BY keyword sorts the records in the ascending order by default. So, the 'ASC' keyword for 'a' and 'c' columns is redundant.", + "markdown": "Reports redundant ordering directions like ASC and DESC in ORDER BY clauses.\n\nExample (MySQL):\n\n CREATE TABLE foo(a INT, b INT, c INT);\n SELECT * FROM foo ORDER BY a ASC, b DESC, c ASC;\n\nThe ORDER BY keyword sorts the records in the ascending order by default. So, the `ASC` keyword for `a` and\n`c` columns is redundant." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "SqlRedundantOrderingDirection", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "OraOverloadInspection", + "shortDescription": { + "text": "Overloading errors" + }, + "fullDescription": { + "text": "Reports invalid cases of subprogram overloading in Oracle. Example (Oracle): 'DECLARE\n SUBTYPE fff IS BINARY_INTEGER;\n SUBTYPE ggg IS NATURAL;\n PROCEDURE foo (a IN ggg) IS BEGIN NULL; END;\n PROCEDURE foo (a IN fff) IS BEGIN NULL; END;\nBEGIN\n NULL;\nEND;' You cannot overload subprograms which parameters differ only in subtypes. For example, you cannot overload procedures where one accepts a BINARY INTEGER parameter and the other accepts a NATURAL parameter. For more information about restrictions on procedure overloading, see Restrictions on Overloading at docs.oracle.com.", + "markdown": "Reports invalid cases of subprogram overloading in Oracle.\n\nExample (Oracle):\n\n DECLARE\n SUBTYPE fff IS BINARY_INTEGER;\n SUBTYPE ggg IS NATURAL;\n PROCEDURE foo (a IN ggg) IS BEGIN NULL; END;\n PROCEDURE foo (a IN fff) IS BEGIN NULL; END;\n BEGIN\n NULL;\n END;\n\nYou cannot overload subprograms which parameters differ only in subtypes. For example, you cannot overload procedures where one accepts a\nBINARY INTEGER parameter and the other accepts a NATURAL parameter. For more information about restrictions on procedure overloading,\nsee [Restrictions on Overloading at docs.oracle.com](https://docs.oracle.com/cd/B19306_01/appdev.102/b14261/subprograms.htm)." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "SqlOverload", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "Oracle", + "index": 112, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MysqlSpaceAfterFunctionNameInspection", + "shortDescription": { + "text": "Whitespace between the function name and the open parenthesis" + }, + "fullDescription": { + "text": "Reports any whitespace in a function call between the function name and the open parenthesis, which is not supported by default. Example (MySQL): 'SELECT MAX (qty) FROM orders;'", + "markdown": "Reports any whitespace in a function call between the function name and the open parenthesis, which is not supported by default.\n\nExample (MySQL):\n\n SELECT MAX (qty) FROM orders;\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "MysqlSpaceAfterFunctionName", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "MySQL", + "index": 120, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlAutoIncrementDuplicateInspection", + "shortDescription": { + "text": "Auto-increment duplicate" + }, + "fullDescription": { + "text": "Reports tables that contain two columns with an automatic increment. In MySQL, Microsoft SQL Server, and Db2 dialects, a table can have only one field with a auto-increment option, and this field must be a key. Example (MySQL): 'CREATE TABLE my_table\n(\n id INT AUTO_INCREMENT,\n c2 INT AUTO_INCREMENT,\n);' The AUTO_INCREMENT constraint for 'c2' will be highlighted as 'c1' already has this constraint. To fix the warning, you can make 'id' a primary key and delete AUTO_INCREMENT for 'c2'. 'CREATE TABLE my_table\n(\n id INT AUTO_INCREMENT PRIMARY KEY,\n c2 INT,\n);'", + "markdown": "Reports tables that contain two columns with an automatic increment. In MySQL, Microsoft SQL Server, and Db2 dialects, a table can have only one field with a auto-increment option, and this field must be a key.\n\nExample (MySQL):\n\n CREATE TABLE my_table\n (\n id INT AUTO_INCREMENT,\n c2 INT AUTO_INCREMENT,\n );\n\nThe AUTO_INCREMENT constraint for `c2` will be highlighted as `c1` already has this constraint. To fix the warning,\nyou can make `id` a primary key and delete AUTO_INCREMENT for `c2`.\n\n CREATE TABLE my_table\n (\n id INT AUTO_INCREMENT PRIMARY KEY,\n c2 INT,\n );\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "SqlAutoIncrementDuplicate", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlStringLengthExceededInspection", + "shortDescription": { + "text": "Implicit string truncation" + }, + "fullDescription": { + "text": "Reports variables that exceed the defined length in characters. Example (Microsoft SQL Server): 'CREATE PROCEDURE test() AS\nBEGIN\nDECLARE myVarOk VARCHAR(5) = 'abcde';\nDECLARE myVarExceeded VARCHAR(5) = 'abcde12345';\n\nSET myVarOk = 'xyz';\nSET myVarExceeded = '123456789';\nEND;' The 'myVarExceeded' variable is defined as 'VARCHAR(5)' but both assigned values (''abcde12345'' and ''123456789'') exceed this limitation. You can truncate assigned values or increase the defined length. To increase the length, use the Increase type length quick-fix. After the quick-fix is applied: 'CREATE PROCEDURE test() AS\nBEGIN\nDECLARE myVarOk VARCHAR(5) = 'abcde';\nDECLARE myVarExceeded VARCHAR(10) = 'abcde12345';\n\nSET myVarOk = 'xyz';\nSET myVarExceeded = '123456789';\nEND;'", + "markdown": "Reports variables that exceed the defined length in characters.\n\nExample (Microsoft SQL Server):\n\n CREATE PROCEDURE test() AS\n BEGIN\n DECLARE myVarOk VARCHAR(5) = 'abcde';\n DECLARE myVarExceeded VARCHAR(5) = 'abcde12345';\n\n SET myVarOk = 'xyz';\n SET myVarExceeded = '123456789';\n END;\n\nThe `myVarExceeded` variable is defined as `VARCHAR(5)` but both assigned values (`'abcde12345'` and\n`'123456789'`) exceed this limitation. You can truncate assigned values or increase the defined length.\nTo increase the length, use the **Increase type length** quick-fix.\n\nAfter the quick-fix is applied:\n\n CREATE PROCEDURE test() AS\n BEGIN\n DECLARE myVarOk VARCHAR(5) = 'abcde';\n DECLARE myVarExceeded VARCHAR(10) = 'abcde12345';\n\n SET myVarOk = 'xyz';\n SET myVarExceeded = '123456789';\n END;\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "SqlStringLengthExceeded", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlCallNotationInspection", + "shortDescription": { + "text": "Using of named and positional arguments" + }, + "fullDescription": { + "text": "Reports calls in which positional arguments go after the named ones. Works in PostgreSQL, Oracle, and Db2. Example (In PostgreSQL): 'CREATE FUNCTION foo(a int, b int, c int) RETURNS int\n LANGUAGE plpgsql AS\n$$\nBEGIN\n RETURN a + b + c;\nEND\n$$;\nSELECT foo(a => 1, b => 2, c => 3);\n -- `3` goes after the named argument\nSELECT foo(1, b => 2, 3);\n -- `1` and `3` go after the named argument\nSELECT foo(b => 2, 1, 3);'", + "markdown": "Reports calls in which positional arguments go after the named ones. Works in PostgreSQL, Oracle, and Db2.\n\nExample (In PostgreSQL):\n\n CREATE FUNCTION foo(a int, b int, c int) RETURNS int\n LANGUAGE plpgsql AS\n $$\n BEGIN\n RETURN a + b + c;\n END\n $$;\n SELECT foo(a => 1, b => 2, c => 3);\n -- `3` goes after the named argument\n SELECT foo(1, b => 2, 3);\n -- `1` and `3` go after the named argument\n SELECT foo(b => 2, 1, 3);\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "SqlCallNotation", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MysqlParsingInspection", + "shortDescription": { + "text": "Unsupported syntax in pre-8.0 versions" + }, + "fullDescription": { + "text": "Reports invalid usages of UNION in queries. The inspection works in MySQL versions that are earlier than 8.0. Example (MySQL): 'SELECT * FROM (SELECT 1 UNION (SELECT 1 UNION SELECT 2)) a;'", + "markdown": "Reports invalid usages of UNION in queries.\n\nThe inspection works in MySQL versions that are earlier than 8.0.\n\nExample (MySQL):\n\n\n SELECT * FROM (SELECT 1 UNION (SELECT 1 UNION SELECT 2)) a;\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "MysqlParsing", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "MySQL", + "index": 120, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlShadowingAliasInspection", + "shortDescription": { + "text": "Column is shadowed by alias" + }, + "fullDescription": { + "text": "Reports SELECT aliases with names that match column names in the FROM clause. Example (MySQL): 'CREATE TABLE foo (a INT, b INT, c INT);\nSELECT a b, c FROM foo;' The 'a' column uses the 'b' alias but the 'b' name is also used by the column from the 'foo' table.", + "markdown": "Reports SELECT aliases with names that match column names in the FROM clause.\n\nExample (MySQL):\n\n CREATE TABLE foo (a INT, b INT, c INT);\n SELECT a b, c FROM foo;\n\nThe `a` column uses the `b` alias but the `b` name is also used by the column from the `foo`\ntable." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "SqlShadowingAlias", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlUnreachableCodeInspection", + "shortDescription": { + "text": "Unreachable code" + }, + "fullDescription": { + "text": "Reports unreachable statements inside SQL routines. Example (Microsoft SQL Server): 'CREATE FUNCTION foo() RETURNS INT AS\nBEGIN\n THROW;\n RETURN 1;\nEND;' In Microsoft SQL Server, the 'THROW' statement raises an exception and transfers execution to the CATCH block of the TRY...CATCH construct. Therefore, the 'RETURN 1;' part will never be executed.", + "markdown": "Reports unreachable statements inside SQL routines.\n\nExample (Microsoft SQL Server):\n\n CREATE FUNCTION foo() RETURNS INT AS\n BEGIN\n THROW;\n RETURN 1;\n END;\n\nIn Microsoft SQL Server, the `THROW` statement raises an exception and transfers execution to the CATCH block of the TRY...CATCH\nconstruct. Therefore, the `RETURN 1;` part will never be executed." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "SqlUnreachable", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlResolveInspection", + "shortDescription": { + "text": "Unresolved reference" + }, + "fullDescription": { + "text": "Reports unresolved SQL references. Example (MySQL): 'CREATE TABLE users(id INT, name VARCHAR(40));\nCREATE TABLE admins(id INT, col1 INT);\n\nSELECT users.id, admins.id FROM admins WHERE admins.id > 1;' The 'users.id' column is unresolved because the 'users' table is missing in the FROM clause.", + "markdown": "Reports unresolved SQL references.\n\nExample (MySQL):\n\n CREATE TABLE users(id INT, name VARCHAR(40));\n CREATE TABLE admins(id INT, col1 INT);\n\n SELECT users.id, admins.id FROM admins WHERE admins.id > 1;\n\nThe `users.id` column is unresolved because the `users` table is missing in the FROM clause." + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "SqlResolve", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlRedundantLimitInspection", + "shortDescription": { + "text": "Redundant row limiting in queries" + }, + "fullDescription": { + "text": "Reports redundant row limiting clauses like FETCH and LIMIT in queries. Example (PostgreSQL): 'CREATE TABLE foo(a INT);\n\nSELECT * FROM foo WHERE EXISTS(SELECT * FROM foo LIMIT 2);\nSELECT * FROM foo WHERE EXISTS(SELECT * FROM foo FETCH FIRST 2 ROWS ONLY);' To fix the warning, you can add OFFSET to limiting clauses. If OFFSET is missing, then LIMIT is redundant because the usage of LIMIT does not influence the operation result of EXISTS. In case with OFFSET, we skip first 'N' rows and this will influence the output. 'SELECT * FROM foo WHERE EXISTS(SELECT * FROM foo OFFSET 1 ROW LIMIT 2);\nSELECT * FROM foo WHERE EXISTS(SELECT * FROM foo OFFSET 1 ROW FETCH FIRST 2 ROWS ONLY);'", + "markdown": "Reports redundant row limiting clauses like FETCH and LIMIT in queries.\n\nExample (PostgreSQL):\n\n CREATE TABLE foo(a INT);\n\n SELECT * FROM foo WHERE EXISTS(SELECT * FROM foo LIMIT 2);\n SELECT * FROM foo WHERE EXISTS(SELECT * FROM foo FETCH FIRST 2 ROWS ONLY);\n\nTo fix the warning, you can add OFFSET to limiting clauses. If OFFSET is missing, then LIMIT is redundant because\nthe usage of LIMIT does not influence the operation result of EXISTS. In case with OFFSET, we skip first `N` rows and this will\ninfluence the output.\n\n SELECT * FROM foo WHERE EXISTS(SELECT * FROM foo OFFSET 1 ROW LIMIT 2);\n SELECT * FROM foo WHERE EXISTS(SELECT * FROM foo OFFSET 1 ROW FETCH FIRST 2 ROWS ONLY);\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "SqlRedundantLimit", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlDerivedTableAliasInspection", + "shortDescription": { + "text": "Each derived table should have alias" + }, + "fullDescription": { + "text": "Reports derived tables without aliases. Example (MySQL): 'CREATE TABLE table1 (id INT, name VARCHAR(20), cats FLOAT);\nCREATE TABLE table2 (id INT, age INTEGER);\n\nSELECT id AS ID, name, cats, age\nFROM (SELECT table1.id, name, cats, age\nFROM table1\nJOIN table2 ON table1.id = table2.id);' According to Derived Tables at dev.mysql.com, an alias is mandatory. You can add the alias by using the Introduce alias quick-fix. After the quick-fix is applied: 'SELECT id AS ID, name, cats, age\nFROM (SELECT table1.id, name, cats, age\nFROM table1\nJOIN table2 ON table1.id = table2.id);'", + "markdown": "Reports derived tables without aliases.\n\nExample (MySQL):\n\n CREATE TABLE table1 (id INT, name VARCHAR(20), cats FLOAT);\n CREATE TABLE table2 (id INT, age INTEGER);\n\n SELECT id AS ID, name, cats, age\n FROM (SELECT table1.id, name, cats, age\n FROM table1\n JOIN table2 ON table1.id = table2.id);\n\nAccording to [Derived Tables at dev.mysql.com](https://dev.mysql.com/doc/refman/8.0/en/derived-tables.html), an alias is\nmandatory. You can add the alias by using the **Introduce alias** quick-fix.\n\nAfter the quick-fix is applied:\n\n SELECT id AS ID, name, cats, age\n FROM (SELECT table1.id, name, cats, age\n FROM table1\n JOIN table2 ON table1.id = table2.id);\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "SqlDerivedTableAlias", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlCaseVsCoalesceInspection", + "shortDescription": { + "text": "Using CASE instead of COALESCE function and vice versa" + }, + "fullDescription": { + "text": "Reports situations when CASE and COALESCE calls are interchangeable. This inspection has the following intention actions: Replace with 'COALESCE' call and the opposite one Replace with CASE expression. Example (MySQL): 'SELECT\n -- this CASE may be replaced by COALESCE\n\tCASE\n\t\tWHEN C1 IS NOT NULL THEN C1\n\t\tELSE 0\n\t\tEND\nFROM dual;' In the example, the CASE statement can be replaced with 'SELECT COALESCE(C1, 0)' that produces the same output. If you prefer using CASE expressions, select the Prefer CASE expressions over COALESCE function option on the inspection page.", + "markdown": "Reports situations when CASE and COALESCE calls are interchangeable. This inspection has the following intention actions: **Replace\nwith 'COALESCE' call** and the opposite one **Replace with CASE expression** .\n\nExample (MySQL):\n\n SELECT\n -- this CASE may be replaced by COALESCE\n \tCASE\n \t\tWHEN C1 IS NOT NULL THEN C1\n \t\tELSE 0\n \t\tEND\n FROM dual;\n\nIn the example, the CASE statement can be replaced with `SELECT COALESCE(C1, 0)` that produces the same output.\n\nIf you prefer using CASE expressions, select the **Prefer CASE expressions over COALESCE function** option on\nthe inspection page." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "SqlCaseVsCoalesce", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlRedundantCodeInCoalesceInspection", + "shortDescription": { + "text": "Redundant code in COALESCE call" + }, + "fullDescription": { + "text": "Reports all the arguments except for the first expression that does not evaluate to NULL in COALESCE functions. Example (MySQL): 'SELECT COALESCE(NULL, NULL, NULL, 42, NULL, 'string') as a;' The first NOT NULL argument is '42', all other arguments will be grayed out.", + "markdown": "Reports all the arguments except for the first expression that does not evaluate to NULL in COALESCE functions.\n\nExample (MySQL):\n\n SELECT COALESCE(NULL, NULL, NULL, 42, NULL, 'string') as a;\n\nThe first NOT NULL argument is `42`, all other arguments will be grayed out." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "SqlRedundantCodeInCoalesce", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlAggregatesInspection", + "shortDescription": { + "text": "Aggregate-related problems" + }, + "fullDescription": { + "text": "Reports invalid usages of SQL aggregate functions. The following situations are considered: Columns that are used in HAVING and ORDER BY clauses but are missed in GROUP BY clauses. 'CREATE TABLE foo(id INT PRIMARY KEY, a INT, b INT);\nSELECT a, MAX(b) FROM foo GROUP BY a HAVING b > 0;\nSELECT * FROM foo GROUP BY a ORDER BY b;' This rule does not apply when grouping is made by the primary key. 'SELECT * FROM foo GROUP BY id ORDER BY b;' Aggregate functions in a wrong context. Usually, you can use aggregate functions in the following contexts: a list of expressions in SELECT; in HAVING and ORDER BY sections; and other dialect-specific cases. The following queries will display an error. 'SELECT a FROM foo WHERE MAX(b) > 0;\nSELECT a FROM foo GROUP BY MAX(a);' Nested calls of aggregate functions. 'SELECT MAX(SUM(a)) FROM foo GROUP BY a;' This rule does not apply to analytic functions. The following query is valid and correct. 'SELECT MAX(SUM(a) OVER ()) FROM foo;' Usages of HAVING without aggregate functions. In this case, consider rewriting your code using the WHERE section. 'SELECT a, MAX(b) FROM foo GROUP BY a HAVING a > 0;'", + "markdown": "Reports invalid usages of SQL aggregate functions.\n\nThe following situations are considered:\n\n* Columns that are used in HAVING and ORDER BY clauses but are missed in GROUP BY clauses.\n\n CREATE TABLE foo(id INT PRIMARY KEY, a INT, b INT);\n SELECT a, MAX(b) FROM foo GROUP BY a HAVING b > 0;\n SELECT * FROM foo GROUP BY a ORDER BY b;\n\n This rule does not apply when grouping is made by the primary key.\n\n SELECT * FROM foo GROUP BY id ORDER BY b;\n\n* Aggregate functions in a wrong context. Usually, you can use aggregate functions in the following contexts: a list of expressions in\n SELECT; in HAVING and ORDER BY sections; and other dialect-specific cases. The following queries will display an error.\n\n SELECT a FROM foo WHERE MAX(b) > 0;\n SELECT a FROM foo GROUP BY MAX(a);\n\n* Nested calls of aggregate functions.\n\n SELECT MAX(SUM(a)) FROM foo GROUP BY a;\n\n This rule does not apply to analytic functions. The following query is valid and correct.\n\n SELECT MAX(SUM(a) OVER ()) FROM foo;\n\n* Usages of HAVING without aggregate functions. In this case, consider rewriting your code using the WHERE section.\n\n SELECT a, MAX(b) FROM foo GROUP BY a HAVING a > 0;\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "SqlAggregates", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlMissingColumnAliasesInspection", + "shortDescription": { + "text": "Missing column aliases" + }, + "fullDescription": { + "text": "Reports queries without explicit aliases in output expressions (for example, in the SELECT statement). Example (PostgreSQL): 'CREATE TABLE foo(a INT, b INT);\n\nSELECT 1, a + 1 AS A2, MAX(b) AS M\nFROM foo;'", + "markdown": "Reports queries without explicit aliases in output expressions (for example, in the SELECT statement).\n\nExample (PostgreSQL):\n\n CREATE TABLE foo(a INT, b INT);\n\n SELECT 1, a + 1 AS A2, MAX(b) AS M\n FROM foo;\n" + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "SqlMissingColumnAliases", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlAddNotNullColumnInspection", + "shortDescription": { + "text": "Adding not null column without default value" + }, + "fullDescription": { + "text": "Reports attempts to create NOT NULL columns without DEFAULT values. Example (Microsoft SQL Server): 'CREATE TABLE foo (a INT, b INT)\n\nALTER TABLE foo ADD c INT NOT NULL;' By default, a column holds NULL values. In the example, we use the NOT NULL constraint that enforces a column not to accept NULL values. If we prohibit to use NULL values, we must set the DEFAULT value that SQL can use when we create a new record. 'ALTER TABLE foo ADD c INT NOT NULL DEFAULT 42;' You can quickly add the DEFAULT value by using the Add DEFAULT value quick-fix.", + "markdown": "Reports attempts to create NOT NULL columns without DEFAULT values.\n\nExample (Microsoft SQL Server):\n\n CREATE TABLE foo (a INT, b INT)\n\n ALTER TABLE foo ADD c INT NOT NULL;\n\nBy default, a column holds NULL values. In the example, we use the NOT NULL constraint that enforces a column not to accept NULL values.\nIf we prohibit to use NULL values, we must set the DEFAULT value that SQL can use when we create a new record.\n\n ALTER TABLE foo ADD c INT NOT NULL DEFAULT 42;\n\nYou can quickly add the DEFAULT value by using the **Add DEFAULT value** quick-fix." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "SqlAddNotNullColumn", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "MongoJSExtResolveInspection", + "shortDescription": { + "text": "Resolution problems" + }, + "fullDescription": { + "text": "Reports unresolved references in MongoDB and JavaScript code.", + "markdown": "Reports unresolved references in MongoDB and JavaScript code." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "MongoJSResolve", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "MongoJS", + "index": 82, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlIllegalCursorStateInspection", + "shortDescription": { + "text": "Illegal cursor state" + }, + "fullDescription": { + "text": "Reports illegal cursor states inside SQL routines. A routine has CLOSE or FETCH statements but a cursor might be closed. A routine has the OPEN statement but a cursor might be opened. Example (Microsoft SQL Server): 'CREATE TABLE t(col INT);\n\nCREATE PROCEDURE foo() AS\nBEGIN\nDECLARE my_cursor CURSOR FOR SELECT * FROM t;\nDECLARE a INT;\nFETCH my_cursor INTO a;\nCLOSE my_cursor;\nEND;' According to CLOSE (Transact-SQL) at docs.microsoft.com, CLOSE must be issued on an open cursor, and CLOSE is not allowed on cursors that have only been declared or are already closed. So, we need to open the cursor to fix the warning. 'CREATE PROCEDURE foo() AS\nBEGIN\nDECLARE my_cursor CURSOR FOR SELECT * FROM t;\nDECLARE a INT;\nOPEN my_cursor;\nFETCH my_cursor INTO a;\nCLOSE my_cursor;\nEND;'", + "markdown": "Reports illegal cursor states inside SQL routines.\n\n* A routine has CLOSE or FETCH statements but a cursor might be closed.\n* A routine has the OPEN statement but a cursor might be opened.\n\nExample (Microsoft SQL Server):\n\n CREATE TABLE t(col INT);\n\n CREATE PROCEDURE foo() AS\n BEGIN\n DECLARE my_cursor CURSOR FOR SELECT * FROM t;\n DECLARE a INT;\n FETCH my_cursor INTO a;\n CLOSE my_cursor;\n END;\n\nAccording to [CLOSE (Transact-SQL) at\ndocs.microsoft.com](https://docs.microsoft.com/en-us/sql/t-sql/language-elements/close-transact-sql), CLOSE must be issued on an open cursor, and CLOSE is not allowed on cursors that have only been declared or are\nalready closed. So, we need to open the cursor to fix the warning.\n\n CREATE PROCEDURE foo() AS\n BEGIN\n DECLARE my_cursor CURSOR FOR SELECT * FROM t;\n DECLARE a INT;\n OPEN my_cursor;\n FETCH my_cursor INTO a;\n CLOSE my_cursor;\n END;\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "SqlIllegalCursorState", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlDuplicateColumnInspection", + "shortDescription": { + "text": "Duplicating column name in SELECT" + }, + "fullDescription": { + "text": "Reports duplicated names of column aliases in SELECT lists. Example (Sybase ASE): 'CREATE TABLE t1 (a TEXT, b INT, c INT);\n\nSELECT a AS x, b AS x FROM t1;' The 'x' alias name is used for 'a' and 'b' columns. These assignments are highlighted as errors because you cannot use identical alias names for columns in Sybase ASE.", + "markdown": "Reports duplicated names of column aliases in SELECT lists.\n\nExample (Sybase ASE):\n\n CREATE TABLE t1 (a TEXT, b INT, c INT);\n\n SELECT a AS x, b AS x FROM t1;\n\nThe `x` alias name is used for `a` and `b` columns. These assignments are highlighted as errors because\nyou cannot use identical alias names for columns in Sybase ASE." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "SqlDuplicateColumn", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlIdentifierInspection", + "shortDescription": { + "text": "Identifier should be quoted" + }, + "fullDescription": { + "text": "Reports situations when you use SQL reserved keywords as identifier names in your query. Example (Microsoft SQL Server): 'CREATE TABLE select (identity INT IDENTITY NOT NULL, order INT NOT NULL);' We use 'select', 'identity', and 'order' as table and column names. But they are also reserved keywords in Microsoft SQL Server. Therefore, in order to use them as object names in the query, you must quote these identifiers. To quote them, you can use the Quote identifier quick-fix. After the quick-fix is applied: 'CREATE TABLE [select] ([identity] INT IDENTITY NOT NULL, [order] INT NOT NULL);'", + "markdown": "Reports situations when you use SQL reserved keywords as identifier names in your query.\n\nExample (Microsoft SQL Server):\n\n CREATE TABLE select (identity INT IDENTITY NOT NULL, order INT NOT NULL);\n\nWe use `select`, `identity`, and `order` as table and column names.\nBut they are also reserved keywords in Microsoft SQL Server.\nTherefore, in order to use them as object names in the query, you must quote these identifiers. To quote them, you can use the\n**Quote identifier** quick-fix.\n\nAfter the quick-fix is applied:\n\n CREATE TABLE [select] ([identity] INT IDENTITY NOT NULL, [order] INT NOT NULL);\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "SqlIdentifier", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false + }, + { + "name": "com.intellij.css", + "version": "241.16914", + "rules": [ + { + "id": "CssInvalidFunction", + "shortDescription": { + "text": "Invalid function" + }, + "fullDescription": { + "text": "Reports an unknown CSS function or an incorrect function parameter.", + "markdown": "Reports an unknown [CSS function](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Functions) or an incorrect function parameter." + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "CssInvalidFunction", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "CSS/Invalid elements", + "index": 30, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CssConvertColorToRgbInspection", + "shortDescription": { + "text": "Color could be replaced with rgb()" + }, + "fullDescription": { + "text": "Reports an 'hsl()' or 'hwb()' color function or a hexadecimal color notation. Suggests replacing such color value with an equivalent 'rgb()' or 'rgba()' color function. Example: '#0c0fff' After the quick-fix is applied: 'rgb(12, 15, 255)'.", + "markdown": "Reports an `hsl()` or `hwb()` color function or a hexadecimal color notation.\n\nSuggests replacing such color value with an equivalent `rgb()` or `rgba()` color function.\n\n**Example:**\n\n #0c0fff\n\nAfter the quick-fix is applied:\n\n rgb(12, 15, 255).\n" + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "CssConvertColorToRgbInspection", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "CSS", + "index": 29, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CssOverwrittenProperties", + "shortDescription": { + "text": "Overwritten property" + }, + "fullDescription": { + "text": "Reports a duplicated CSS property within a ruleset. Respects shorthand properties. Example: '.foo {\n margin-bottom: 1px;\n margin-bottom: 1px; /* duplicates margin-bottom */\n margin: 0; /* overrides margin-bottom */\n}'", + "markdown": "Reports a duplicated CSS property within a ruleset. Respects shorthand properties.\n\n**Example:**\n\n\n .foo {\n margin-bottom: 1px;\n margin-bottom: 1px; /* duplicates margin-bottom */\n margin: 0; /* overrides margin-bottom */\n }\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CssOverwrittenProperties", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "CSS", + "index": 29, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CssInvalidNestedSelector", + "shortDescription": { + "text": "Invalid nested selector" + }, + "fullDescription": { + "text": "Reports a nested selector starting with an identifier or a functional notation.", + "markdown": "Reports a nested selector starting with an identifier or a functional notation." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "CssInvalidNestedSelector", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "CSS/Invalid elements", + "index": 30, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CssInvalidHtmlTagReference", + "shortDescription": { + "text": "Invalid type selector" + }, + "fullDescription": { + "text": "Reports a CSS type selector that matches an unknown HTML element.", + "markdown": "Reports a CSS [type selector](https://developer.mozilla.org/en-US/docs/Web/CSS/Type_selectors) that matches an unknown HTML element." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CssInvalidHtmlTagReference", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "CSS/Invalid elements", + "index": 30, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CssMissingSemicolon", + "shortDescription": { + "text": "Missing semicolon" + }, + "fullDescription": { + "text": "Reports a missing semicolon at the end of a declaration.", + "markdown": "Reports a missing semicolon at the end of a declaration." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "CssMissingSemicolon", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "CSS/Code style issues", + "index": 104, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CssInvalidCustomPropertyAtRuleName", + "shortDescription": { + "text": "Invalid @property name" + }, + "fullDescription": { + "text": "Reports an invalid custom property name. Custom property name should be prefixed with two dashes. Example: '@property invalid-property-name {\n ...\n}\n\n@property --valid-property-name {\n ...\n}'", + "markdown": "Reports an invalid custom property name. Custom property name should be prefixed with two dashes.\n\n**Example:**\n\n\n @property invalid-property-name {\n ...\n }\n\n @property --valid-property-name {\n ...\n }\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "CssInvalidCustomPropertyAtRuleName", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "CSS/Invalid elements", + "index": 30, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CssUnknownTarget", + "shortDescription": { + "text": "Unresolved file reference" + }, + "fullDescription": { + "text": "Reports an unresolved file reference, for example, an incorrect path in an '@import' statement.", + "markdown": "Reports an unresolved file reference, for example, an incorrect path in an `@import` statement." + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "CssUnknownTarget", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "CSS/Invalid elements", + "index": 30, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CssInvalidCharsetRule", + "shortDescription": { + "text": "Misplaced or incorrect @charset" + }, + "fullDescription": { + "text": "Reports a misplaced '@charset' at-rule or an incorrect charset value.", + "markdown": "Reports a misplaced `@charset` at-rule or an incorrect charset value." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CssInvalidCharsetRule", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "CSS/Invalid elements", + "index": 30, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CssInvalidPseudoSelector", + "shortDescription": { + "text": "Invalid pseudo-selector" + }, + "fullDescription": { + "text": "Reports an incorrect CSS pseudo-class pseudo-element.", + "markdown": "Reports an incorrect CSS [pseudo-class](https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-classes) [pseudo-element](https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-elements)." + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "CssInvalidPseudoSelector", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "CSS/Invalid elements", + "index": 30, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CssInvalidCustomPropertyAtRuleDeclaration", + "shortDescription": { + "text": "Invalid @property declaration" + }, + "fullDescription": { + "text": "Reports a missing required syntax, inherits, or initial-value property in a declaration of a custom property.", + "markdown": "Reports a missing required [syntax](https://developer.mozilla.org/en-US/docs/web/css/@property/syntax), [inherits](https://developer.mozilla.org/en-US/docs/web/css/@property/inherits), or [initial-value](https://developer.mozilla.org/en-US/docs/web/css/@property/initial-value) property in a declaration of a custom property." + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "CssInvalidCustomPropertyAtRuleDeclaration", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "CSS/Invalid elements", + "index": 30, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CssBrowserCompatibilityForProperties", + "shortDescription": { + "text": "Property is incompatible with selected browsers" + }, + "fullDescription": { + "text": "Reports a CSS property that is not supported by the specified browsers. Based on the MDN Compatibility Data.", + "markdown": "Reports a CSS property that is not supported by the specified browsers. Based on the [MDN Compatibility Data](https://github.com/mdn/browser-compat-data)." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "CssBrowserCompatibilityForProperties", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "CSS", + "index": 29, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CssInvalidMediaFeature", + "shortDescription": { + "text": "Invalid media feature" + }, + "fullDescription": { + "text": "Reports an unknown CSS media feature or an incorrect media feature value.", + "markdown": "Reports an unknown [CSS media feature](https://developer.mozilla.org/en-US/docs/Web/CSS/Media_Queries/Using_media_queries) or an incorrect media feature value." + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "CssInvalidMediaFeature", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "CSS/Invalid elements", + "index": 30, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CssUnresolvedCustomProperty", + "shortDescription": { + "text": "Unresolved custom property" + }, + "fullDescription": { + "text": "Reports an unresolved reference to a custom property among the arguments of the 'var()' function.", + "markdown": "Reports an unresolved reference to a [custom property](https://developer.mozilla.org/en-US/docs/Web/CSS/--*) among the arguments of the `var()` function." + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "CssUnresolvedCustomProperty", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "CSS/Invalid elements", + "index": 30, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CssUnknownProperty", + "shortDescription": { + "text": "Unknown property" + }, + "fullDescription": { + "text": "Reports an unknown CSS property or a property used in a wrong context. Add the unknown property to the 'Custom CSS properties' list to skip validation.", + "markdown": "Reports an unknown CSS property or a property used in a wrong context.\n\nAdd the unknown property to the 'Custom CSS properties' list to skip validation." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CssUnknownProperty", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "CSS/Invalid elements", + "index": 30, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CssMissingComma", + "shortDescription": { + "text": "Missing comma in selector list" + }, + "fullDescription": { + "text": "Reports a multi-line selector. Most likely this means that several single-line selectors are actually intended but a comma is missing at the end of one or several lines. Example: 'input /* comma has probably been forgotten */\n.button {\n margin: 1px;\n}'", + "markdown": "Reports a multi-line selector. Most likely this means that several single-line selectors are actually intended but a comma is missing at the end of one or several lines.\n\n**Example:**\n\n\n input /* comma has probably been forgotten */\n .button {\n margin: 1px;\n }\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CssMissingComma", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "CSS/Probable bugs", + "index": 124, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CssUnusedSymbol", + "shortDescription": { + "text": "Unused selector" + }, + "fullDescription": { + "text": "Reports a CSS class or an element IDs that appears in selectors but is not used in HTML. Note that complete inspection results are available only when running it via Code | Inspect Code or Code | Analyze Code | Run Inspection by Name. Due to performance reasons, style sheet files are not inspected on the fly.", + "markdown": "Reports a CSS class or an element IDs that appears in selectors but is not used in HTML.\n\n\nNote that complete inspection results are available only when running it via **Code \\| Inspect Code** or\n**Code \\| Analyze Code \\| Run Inspection by Name**.\nDue to performance reasons, style sheet files are not inspected on the fly." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CssUnusedSymbol", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "CSS", + "index": 29, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CssDeprecatedValue", + "shortDescription": { + "text": "Deprecated value" + }, + "fullDescription": { + "text": "Reports a deprecated CSS value. Suggests replacing the deprecated value with its valid equivalent.", + "markdown": "Reports a deprecated CSS value. Suggests replacing the deprecated value with its valid equivalent." + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "CssDeprecatedValue", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "CSS", + "index": 29, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CssNonIntegerLengthInPixels", + "shortDescription": { + "text": "Non-integer length in pixels" + }, + "fullDescription": { + "text": "Reports a non-integer length in pixels. Example: 'width: 3.14px'", + "markdown": "Reports a non-integer length in pixels.\n\n**Example:**\n\n width: 3.14px\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "CssNonIntegerLengthInPixels", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "CSS/Probable bugs", + "index": 124, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CssConvertColorToHexInspection", + "shortDescription": { + "text": "Color could be replaced with #-hex" + }, + "fullDescription": { + "text": "Reports an 'rgb()', 'hsl()', or other color function. Suggests replacing a color function with an equivalent hexadecimal notation. Example: 'rgb(12, 15, 255)' After the quick-fix is applied: '#0c0fff'.", + "markdown": "Reports an `rgb()`, `hsl()`, or other color function.\n\nSuggests replacing a color function with an equivalent hexadecimal notation.\n\n**Example:**\n\n rgb(12, 15, 255)\n\nAfter the quick-fix is applied:\n\n #0c0fff.\n" + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "CssConvertColorToHexInspection", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "CSS", + "index": 29, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CssInvalidAtRule", + "shortDescription": { + "text": "Unknown at-rule" + }, + "fullDescription": { + "text": "Reports an unknown CSS at-rule.", + "markdown": "Reports an unknown [CSS at-rule](https://developer.mozilla.org/en-US/docs/Web/CSS/At-rule)." + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "CssInvalidAtRule", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "CSS/Invalid elements", + "index": 30, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CssNegativeValue", + "shortDescription": { + "text": "Negative property value" + }, + "fullDescription": { + "text": "Reports a negative value of a CSS property that is not expected to be less than zero, for example, object width or height.", + "markdown": "Reports a negative value of a CSS property that is not expected to be less than zero, for example, object width or height." + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "CssNegativeValue", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "CSS/Invalid elements", + "index": 30, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CssNoGenericFontName", + "shortDescription": { + "text": "Missing generic font family name" + }, + "fullDescription": { + "text": "Verifies that the 'font-family' property contains a generic font family name as a fallback alternative. Generic font family names are: 'serif', 'sans-serif', 'cursive', 'fantasy', and 'monospace'.", + "markdown": "Verifies that the [font-family](https://developer.mozilla.org/en-US/docs/Web/CSS/font-family) property contains a generic font family name as a fallback alternative.\n\n\nGeneric font family names are: `serif`, `sans-serif`, `cursive`, `fantasy`,\nand `monospace`." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CssNoGenericFontName", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "CSS/Probable bugs", + "index": 124, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CssRedundantUnit", + "shortDescription": { + "text": "Redundant measure unit" + }, + "fullDescription": { + "text": "Reports a measure unit of a zero value where units are not required by the specification. Example: 'width: 0px'", + "markdown": "Reports a measure unit of a zero value where units are not required by the specification.\n\n**Example:**\n\n width: 0px\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CssRedundantUnit", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "CSS/Code style issues", + "index": 104, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CssInvalidPropertyValue", + "shortDescription": { + "text": "Invalid property value" + }, + "fullDescription": { + "text": "Reports an incorrect CSS property value.", + "markdown": "Reports an incorrect CSS property value." + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "CssInvalidPropertyValue", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "CSS/Invalid elements", + "index": 30, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CssReplaceWithShorthandUnsafely", + "shortDescription": { + "text": "Properties may probably be replaced with a shorthand" + }, + "fullDescription": { + "text": "Reports a set of longhand CSS properties and suggests replacing an incomplete set of longhand CSS properties with a shorthand form, which is however not 100% equivalent in this case. For example, 2 properties: 'outline-color' and 'outline-style' may be replaced with a single 'outline'. Such replacement is not 100% equivalent because shorthands reset all omitted sub-values to their initial states. In this example, switching to the 'outline' shorthand means that 'outline-width' is also set to its initial value, which is 'medium'. This inspection doesn't handle full sets of longhand properties (when switching to shorthand is 100% safe). For such cases see the 'Properties may be safely replaced with a shorthand' inspection instead.", + "markdown": "Reports a set of longhand CSS properties and suggests replacing an incomplete set of longhand CSS properties with a shorthand form, which is however not 100% equivalent in this case.\n\n\nFor example, 2 properties: `outline-color` and `outline-style` may be replaced with a single `outline`.\nSuch replacement is not 100% equivalent because shorthands reset all omitted sub-values to their initial states.\nIn this example, switching to the `outline` shorthand means that `outline-width` is also set to its initial value,\nwhich is `medium`.\n\n\nThis inspection doesn't handle full sets of longhand properties (when switching to shorthand is 100% safe).\nFor such cases see the 'Properties may be safely replaced with a shorthand' inspection instead." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CssReplaceWithShorthandUnsafely", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "CSS", + "index": 29, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CssUnknownUnit", + "shortDescription": { + "text": "Unknown unit" + }, + "fullDescription": { + "text": "Reports an unknown unit.", + "markdown": "Reports an unknown unit." + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "CssUnknownUnit", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "CSS/Invalid elements", + "index": 30, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CssInvalidImport", + "shortDescription": { + "text": "Misplaced @import" + }, + "fullDescription": { + "text": "Reports a misplaced '@import' statement. According to the specification, '@import' rules must precede all other types of rules, except '@charset' rules.", + "markdown": "Reports a misplaced `@import` statement.\n\n\nAccording to the [specification](https://developer.mozilla.org/en-US/docs/Web/CSS/@import),\n`@import` rules must precede all other types of rules, except `@charset` rules." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CssInvalidImport", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "CSS/Invalid elements", + "index": 30, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CssUnresolvedClassInComposesRule", + "shortDescription": { + "text": "Unresolved class in 'composes' rule" + }, + "fullDescription": { + "text": "Reports a CSS class reference in the 'composes' rule that cannot be resolved to any valid target. Example: '.className {/* ... */}\n\n .otherClassName {\n composes: className;\n }'", + "markdown": "Reports a CSS class reference in the ['composes'](https://github.com/css-modules/css-modules#composition) rule that cannot be resolved to any valid target.\n\n**Example:**\n\n\n .className {/* ... */}\n\n .otherClassName {\n composes: className;\n }\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "CssUnresolvedClassInComposesRule", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "CSS/Invalid elements", + "index": 30, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CssReplaceWithShorthandSafely", + "shortDescription": { + "text": "Properties may be safely replaced with a shorthand" + }, + "fullDescription": { + "text": "Reports a set of longhand properties. Suggests replacing a complete set of longhand CSS properties with an equivalent shorthand form. For example, 4 properties: 'padding-top', 'padding-right', 'padding-bottom', and 'padding-left' can be safely replaced with a single 'padding' property. Note that this inspection doesn't show up if the set of longhand properties is incomplete (e.g. only 3 'padding-xxx' properties in a ruleset) because switching to a shorthand may change the result. For such cases consider the 'Properties may probably be replaced with a shorthand' inspection.", + "markdown": "Reports a set of longhand properties. Suggests replacing a complete set of longhand CSS properties with an equivalent shorthand form.\n\n\nFor example, 4 properties: `padding-top`, `padding-right`, `padding-bottom`, and\n`padding-left`\ncan be safely replaced with a single `padding` property.\n\n\nNote that this inspection doesn't show up if the set of longhand properties is incomplete\n(e.g. only 3 `padding-xxx` properties in a ruleset)\nbecause switching to a shorthand may change the result.\nFor such cases consider the 'Properties may probably be replaced with a shorthand'\ninspection." + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "CssReplaceWithShorthandSafely", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "CSS", + "index": 29, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false + }, + { + "name": "com.jetbrains.restClient", + "version": "241.16914", + "rules": [ + { + "id": "HttpClientUnresolvedAuthId", + "shortDescription": { + "text": "Unresolved Auth identifier" + }, + "fullDescription": { + "text": "Highlights references to non-existent Auth configurations. Suggests creating a new one in the current environment.", + "markdown": "Highlights references to non-existent Auth configurations. Suggests creating a new one in the current environment." + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "HttpClientUnresolvedAuthId", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "HTTP Client", + "index": 33, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "HttpRequestRequestSeparatorJsonBodyInspection", + "shortDescription": { + "text": "Missing request separator in JSON body" + }, + "fullDescription": { + "text": "Reports possible requests in injected JSON body where request separator '###' is missing. The quick fix suggests adding the separator '###' before the request.", + "markdown": "Reports possible requests in injected JSON body where request separator `###` is missing. The quick fix suggests adding the separator `###` before the request." + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "HttpRequestRequestSeparatorJsonBodyInspection", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "HTTP Client", + "index": 33, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "HttpRequestContentLengthIsIgnored", + "shortDescription": { + "text": "Redundant 'Content-Length'" + }, + "fullDescription": { + "text": "Reports an explicitly set 'Content-Length' header. The header is redundant because HTTP Client uses the actual request body length.", + "markdown": "Reports an explicitly set `Content-Length` header. The header is redundant because HTTP Client uses the actual request body length." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "HttpRequestContentLengthIsIgnored", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "HTTP Client", + "index": 33, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "HttpRequestRequestSeparatorXmlBodyInspection", + "shortDescription": { + "text": "Missing request separator in HTML/XML body" + }, + "fullDescription": { + "text": "Reports possible requests in injected XML/HTML body where request separator '###' is missing. The quick fix suggests adding the separator '###' before the request.", + "markdown": "Reports possible requests in injected XML/HTML body where request separator `###` is missing. The quick fix suggests adding the separator `###` before the request." + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "HttpRequestRequestSeparatorXmlBodyInspection", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "HTTP Client", + "index": 33, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "HttpClientUnresolvedVariable", + "shortDescription": { + "text": "Unresolved environment variable" + }, + "fullDescription": { + "text": "Reports variables undeclared in the current environment HTTP Client. Executing requests with undeclared variables probably fail. Consider adding a variable to the environment or selecting an environment with this variable. Inspection doesn't report variables in request bodies, because it can be a valid syntax of the body. Some variables may be not reported as unresolved, because they are declared in response or pre-request handler scripts via 'client.global.set' or 'request.variables.set' functions call.", + "markdown": "Reports variables undeclared in the current environment HTTP Client.\n\n\nExecuting requests with undeclared variables probably fail.\nConsider adding a variable to the environment or selecting an environment with this variable.\n\nInspection doesn't report variables in request bodies, because it can be a valid syntax of the body.\n\n\nSome variables may be not reported as unresolved, because they are declared in response or pre-request handler scripts via\n`client.global.set` or `request.variables.set` functions call." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "HttpClientUnresolvedVariable", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "HTTP Client", + "index": 33, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "IncorrectHttpHeaderInspection", + "shortDescription": { + "text": "Incorrect HTTP header" + }, + "fullDescription": { + "text": "Reports unknown HTTP headers that do not match any publicly known headers. The quick fix suggests adding the header to the list of custom headers when the Use custom HTTP headers option is enabled. HTTP headers from the list of custom headers will not trigger the inspection.", + "markdown": "Reports unknown HTTP headers that do not match any [publicly\nknown headers](https://www.iana.org/assignments/message-headers/message-headers.xml). The quick fix suggests adding the header to the list of custom headers when the **Use custom HTTP headers** option\nis enabled. HTTP headers from the list of custom headers will not trigger the inspection." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "IncorrectHttpHeaderInspection", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "HTTP Client", + "index": 33, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "HttpRequestEnvironmentAuthConfigurationValidationInspection", + "shortDescription": { + "text": "Auth configuration validation" + }, + "fullDescription": { + "text": "Reports Auth configuration the following problems in HTTP Client environment files: Missing properties in Auth configuration Auth/Security configuration placed in private environment file", + "markdown": "Reports Auth configuration the following problems in HTTP Client environment files:\n\n* Missing properties in Auth configuration\n* Auth/Security configuration placed in private environment file" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "HttpRequestEnvironmentAuthConfigurationValidationInspection", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "HTTP Client", + "index": 33, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "HttpUrlsUsage", + "shortDescription": { + "text": "Link with unencrypted protocol" + }, + "fullDescription": { + "text": "Reports the links that use unencrypted protocols (such as HTTP), which can expose your data to man-in-the-middle attacks. These attacks are dangerous in general and may be especially harmful for artifact repositories. Use protocols with encryption, such as HTTPS, instead. See HTTPS: Difference from HTTP (wikipedia.org).", + "markdown": "Reports the links that use unencrypted protocols (such as HTTP), which can expose your data to man-in-the-middle attacks. These attacks\nare dangerous in general and may be especially harmful for artifact repositories. Use protocols with encryption, such as HTTPS,\ninstead.\n\nSee [HTTPS: Difference from HTTP (wikipedia.org)](https://en.wikipedia.org/wiki/HTTPS#Difference_from_HTTP)." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "HttpUrlsUsage", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "Security", + "index": 126, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "HttpRequestPlaceholder", + "shortDescription": { + "text": "'$placeholder' in HTTP Request" + }, + "fullDescription": { + "text": "Reports a '$placeholder' inside a request. A '$placeholder' to be replaced by the user is created automatically when a tool cannot recognize a part of a request. For example, a request mapping '/aaaa/*/bbb' will be generated as 'GET localhost/aaaa/{{$placeholder}}/bbb'.", + "markdown": "Reports a `$placeholder` inside a request.\n\nA `$placeholder` to be replaced by the user is created automatically when a tool cannot recognize a part of a request. For example, a request mapping `/aaaa/*/bbb` will be generated as `GET localhost/aaaa/{{$placeholder}}/bbb`." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "HttpRequestPlaceholder", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "HTTP Client", + "index": 33, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "HttpRequestWhitespaceInsideRequestTargetPath", + "shortDescription": { + "text": "Whitespace in URL in request" + }, + "fullDescription": { + "text": "Highlights spaces inside URL path segments. HTTP Client will ignore them. For better composing use Split Lines action.", + "markdown": "Highlights spaces inside URL path segments. HTTP Client will ignore them. For better composing use Split Lines action." + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "HttpRequestWhitespaceInsideRequestTargetPath", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "HTTP Client", + "index": 33, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "HttpClientInappropriateProtocolUsageInspection", + "shortDescription": { + "text": "Inappropriate HTTP Protocol usage" + }, + "fullDescription": { + "text": "Reports inappropriate usage of HTTP protocol keyword, e.g. 'HTTP/2', with non-HTTP method requests. Such a usage will be ignored.", + "markdown": "Reports inappropriate usage of HTTP protocol keyword, e.g. `HTTP/2`, with non-HTTP method requests. Such a usage will be ignored." + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "HttpClientInappropriateProtocolUsageInspection", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "HTTP Client", + "index": 33, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "HttpRequestRequestSeparatorYamlBodyInspection", + "shortDescription": { + "text": "Missing request separator in YAML body" + }, + "fullDescription": { + "text": "Reports possible requests in injected YAML body where request separator '###' is missing. The quick fix suggests adding the separator '###' before the request.", + "markdown": "Reports possible requests in injected YAML body where request separator `###` is missing. The quick fix suggests adding the separator `###` before the request." + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "HttpRequestRequestSeparatorYamlBodyInspection", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "HTTP Client", + "index": 33, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false + }, + { + "name": "com.intellij.properties", + "version": "241.16914", + "rules": [ + { + "id": "UseEllipsisInPropertyInspection", + "shortDescription": { + "text": "Three dot characters instead of the ellipsis" + }, + "fullDescription": { + "text": "Reports three \"dot\" characters which are used instead of the ellipsis character for UTF-8 properties files.", + "markdown": "Reports three \"dot\" characters which are used instead of the ellipsis character for UTF-8 properties files." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "UseEllipsisInPropertyInspection", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "Properties files", + "index": 38, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "AlphaUnsortedPropertiesFile", + "shortDescription": { + "text": "Properties file or resource bundle is alphabetically unsorted" + }, + "fullDescription": { + "text": "Reports alphabetically unsorted resource bundles or .properties files.", + "markdown": "Reports alphabetically unsorted resource bundles or .properties files." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "AlphaUnsortedPropertiesFile", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "Properties files", + "index": 38, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "UnusedProperty", + "shortDescription": { + "text": "Unused property" + }, + "fullDescription": { + "text": "Reports properties that are not referenced outside of the .properties file they are contained in.", + "markdown": "Reports properties that are not referenced outside of the .properties file they are contained in." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "UnusedProperty", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "Properties files", + "index": 38, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "TrailingSpacesInProperty", + "shortDescription": { + "text": "Trailing spaces in property" + }, + "fullDescription": { + "text": "Reports properties whose keys or values end with a whitespace.", + "markdown": "Reports properties whose keys or values end with a whitespace." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "TrailingSpacesInProperty", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "Properties files", + "index": 38, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "WrongPropertyKeyValueDelimiter", + "shortDescription": { + "text": "Property key/value delimiter doesn't match code style settings" + }, + "fullDescription": { + "text": "Reports properties in which key or value delimiters do not match code style settings.", + "markdown": "Reports properties in which key or value delimiters do not match code style settings." + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "WrongPropertyKeyValueDelimiter", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "Properties files", + "index": 38, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "DuplicatePropertyInspection", + "shortDescription": { + "text": "Duplicate property" + }, + "fullDescription": { + "text": "Reports duplicate property keys with different values, duplicate keys, or duplicate property values. Example: 'property1=value;\nproperty2=value;' The Options list allows selecting the area in which the inspection should search for duplicates.", + "markdown": "Reports duplicate property keys with different values, duplicate keys, or duplicate property values.\n\nExample:\n\n\n property1=value;\n property2=value;\n\nThe **Options** list allows selecting the area in which the inspection should search for duplicates." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "DuplicatePropertyInspection", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "Properties files", + "index": 38, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false + }, + { + "name": "XPathView", + "version": "241.16914", + "rules": [ + { + "id": "XsltUnusedDeclaration", + "shortDescription": { + "text": "Unused variable or parameter" + }, + "fullDescription": { + "text": "Reports local variables and parameters that are never used.", + "markdown": "Reports local variables and parameters that are never used." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "XsltUnusedDeclaration", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "XSLT", + "index": 43, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RedundantTypeConversion", + "shortDescription": { + "text": "Redundant type conversion" + }, + "fullDescription": { + "text": "Reports unnecessary type conversions. Type conversions are unnecessary when the argument type of a 'string()', 'number()', or 'boolean()' function is already the same as the function's return type or if the expected expression type is 'any'. Suggests removing the unnecessary conversion.", + "markdown": "Reports unnecessary type conversions. Type conversions are unnecessary when the argument type of a `string()`, `number()`, or `boolean()` function is already the same as the function's return type or if the expected expression type is `any`. Suggests removing the unnecessary conversion." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "RedundantTypeConversion", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "XPath", + "index": 78, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CheckNodeTest", + "shortDescription": { + "text": "Unknown element or attribute name" + }, + "fullDescription": { + "text": "Reports names of elements or attributes that are used in an XPath-expression but are missing in the associated XML files and are not defined in the referenced schemas. Such names are often the result of typos and would otherwise probably only be discovered at runtime. Example: '' If the 'h' is bound to the XHTML namespace, the inspection will report this part of the 'match' expression as an unknown element name because the correct name of the element is \"textarea\".", + "markdown": "Reports names of elements or attributes that are used in an XPath-expression but are missing in the associated XML files and are not defined in the referenced schemas. Such names are often the result of typos and would otherwise probably only be discovered at runtime.\n\n**Example:**\n\n\n \n\n\nIf the `h` is bound to the XHTML namespace, the inspection will report this part of the `match` expression as an\nunknown element name because the correct name of the element is \"textarea\"." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CheckNodeTest", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "XPath", + "index": 78, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "XsltDeclarations", + "shortDescription": { + "text": "Incorrect declaration" + }, + "fullDescription": { + "text": "Reports duplicate declarations and illegal identifiers in XSLT variables, parameters, and named templates:", + "markdown": "Reports duplicate declarations and illegal identifiers in XSLT variables, parameters, and named templates:" + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "XsltDeclarations", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "XSLT", + "index": 43, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "HardwiredNamespacePrefix", + "shortDescription": { + "text": "Hardcoded namespace prefix" + }, + "fullDescription": { + "text": "Reports comparisons of the 'name()' function with a string that contains a colon (':'). Such usages usually indicate a hardcoded namespace prefix in the comparison. As a result, the code will break when run against XML that uses another prefix for the same namespace. Example: '...'", + "markdown": "Reports comparisons of the `name()` function with a string that contains a colon (`:`). Such usages usually indicate a hardcoded namespace prefix in the comparison. As a result, the code will break when run against XML that uses another prefix for the same namespace.\n\n**Example:**\n\n\n ...\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "HardwiredNamespacePrefix", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "XPath", + "index": 78, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ImplicitTypeConversion", + "shortDescription": { + "text": "Implicit type conversion" + }, + "fullDescription": { + "text": "Reports implicit conversions between the predefined XPath-types 'STRING', 'NUMBER', 'BOOLEAN', and 'NODESET'. Helps to write XSLT scripts that are more expressive about types and prevents subtle bugs: Example: '' is not the same as '' The first test checks whether the element \"foo\" exists ('count(foo) > 0)'; the latter one however is only true if the element actually contains any text ('string-length(foo) > 0'). Suggests making the type conversion more explicit. Use the following options to configure the inspection: Enable or disable implicit conversions between certain types Always report explicit conversions that do not result in the actually expected type, for example, '' Ignore conversion from 'NODESET' to 'BOOLEAN' by using the 'string()' function as a shortcut for writing 'string-length() > 0'.", + "markdown": "Reports implicit conversions between the predefined XPath-types `STRING`, `NUMBER`, `BOOLEAN`, and `NODESET`. Helps to write XSLT scripts that are more expressive about types and prevents subtle bugs:\n\n**Example:**\n\n\n \n\nis not the same as\n\n\n \n\n\nThe first test checks whether the element \"foo\" exists (`count(foo) > 0)`; the latter one however is only\ntrue if the element actually contains any text (`string-length(foo) > 0`). Suggests making\nthe type conversion more explicit.\n\n\nUse the following options to configure the inspection:\n\n* Enable or disable implicit conversions between certain types\n* Always report explicit conversions that do not result in the actually expected type, for example, ``\n* Ignore conversion from `NODESET` to `BOOLEAN` by using the `string()` function as a shortcut for writing `string-length() > 0`." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "ImplicitTypeConversion", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "XPath", + "index": 78, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "IndexZeroUsage", + "shortDescription": { + "text": "XPath predicate with index 0" + }, + "fullDescription": { + "text": "Reports usages of '0' in a predicate index or in a comparison with the function 'position()'. Such usage is almost always a bug because in XPath, the index starts at '1', not at '0'. Example: '//someelement[position() = 0]' or '//something[0]'", + "markdown": "Reports usages of `0` in a predicate index or in a comparison with the function `position()`. Such usage is almost always a bug because in XPath, the index starts at `1`, *not* at `0`.\n\n**Example:**\n\n\n //someelement[position() = 0] or //something[0]\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "IndexZeroUsage", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "XPath", + "index": 78, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "XsltTemplateInvocation", + "shortDescription": { + "text": "Incorrect template invocation" + }, + "fullDescription": { + "text": "Reports missing arguments, passing arguments that are not declared, and passing arguments for parameters more than once in named XSLT template invocations. Parameters declared with a default value are optional and will not be reported as missing.", + "markdown": "Reports missing arguments, passing arguments that are not declared, and passing arguments for parameters more than once in named XSLT template invocations.\n\n\nParameters declared with a default value are optional and will not be reported as missing." + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "XsltTemplateInvocation", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "XSLT", + "index": 43, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "XsltVariableShadowing", + "shortDescription": { + "text": "Shadowed variable" + }, + "fullDescription": { + "text": "Reports shadowed XSLT variables.", + "markdown": "Reports shadowed XSLT variables." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "XsltVariableShadowing", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "XSLT", + "index": 43, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false + }, + { + "name": "org.intellij.qodana", + "version": "241.16914", + "rules": [ + { + "id": "JsCoverageInspection", + "shortDescription": { + "text": "Check JavaScript and TypeScript source code coverage" + }, + "fullDescription": { + "text": "Reports methods, classes and files whose coverage is below a certain threshold.", + "markdown": "Reports methods, classes and files whose coverage is below a certain threshold." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "JsCoverageInspection", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "Code Coverage", + "index": 50, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "QodanaSanity", + "shortDescription": { + "text": "Sanity" + }, + "fullDescription": { + "text": "Reports issues essential to this file like syntax errors, unresolved methods and variables, etc...", + "markdown": "Reports issues essential to this file like syntax errors, unresolved methods and variables, etc..." + }, + "defaultConfiguration": { + "enabled": false, + "level": "error", + "parameters": { + "suppressToolId": "QodanaSanity", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "Qodana", + "index": 131, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false + }, + { + "name": "com.jetbrains.plugins.jade", + "version": "241.16914", + "rules": [ + { + "id": "JadeTabsAndSpaces", + "shortDescription": { + "text": "Tabs and spaces both used" + }, + "fullDescription": { + "text": "Reports use of spaces and tabs for indentation in a Pug file.", + "markdown": "Reports use of spaces and tabs for indentation in a Pug file." + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "JadeTabsAndSpaces", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "Pug_Jade", + "index": 65, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false + }, + { + "name": "HtmlTools", + "version": "241.16914", + "rules": [ + { + "id": "HtmlRequiredSummaryAttribute", + "shortDescription": { + "text": "Missing required 'summary' attribute" + }, + "fullDescription": { + "text": "Reports a missing 'summary' attribute in a 'table' tag. Suggests adding a'summary' attribute. Based on WCAG 2.0: H73.", + "markdown": "Reports a missing `summary` attribute in a `table` tag. Suggests adding a`summary` attribute. Based on WCAG 2.0: [H73](https://www.w3.org/TR/WCAG20-TECHS/H73.html)." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "HtmlRequiredSummaryAttribute", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "HTML/Accessibility", + "index": 76, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "HtmlNonExistentInternetResource", + "shortDescription": { + "text": "Unresolved web link" + }, + "fullDescription": { + "text": "Reports an unresolved web link. Works by making network requests in the background.", + "markdown": "Reports an unresolved web link. Works by making network requests in the background." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "HtmlNonExistentInternetResource", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "HTML", + "index": 11, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "HtmlRequiredTitleAttribute", + "shortDescription": { + "text": "Missing required 'title' attribute" + }, + "fullDescription": { + "text": "Reports a missing title attribute 'frame', 'iframe', 'dl', and 'a' tags. Suggests adding a title attribute. Based on WCAG 2.0: H33, H40, and H64.", + "markdown": "Reports a missing title attribute `frame`, `iframe`, `dl`, and `a` tags. Suggests adding a title attribute. Based on WCAG 2.0: [H33](https://www.w3.org/TR/WCAG20-TECHS/H33.html), [H40](https://www.w3.org/TR/WCAG20-TECHS/H40.html), and [H64](https://www.w3.org/TR/WCAG20-TECHS/H64.html)." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "HtmlRequiredTitleAttribute", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "HTML/Accessibility", + "index": 76, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "HtmlRequiredAltAttribute", + "shortDescription": { + "text": "Missing required 'alt' attribute" + }, + "fullDescription": { + "text": "Reports a missing 'alt' attribute in a 'img' or 'applet' tag or in a 'area' element of an image map. Suggests adding a required attribute with a text alternative for the contents of the tag. Based on WCAG 2.0: H24, H35, H36, H37.", + "markdown": "Reports a missing `alt` attribute in a `img` or `applet` tag or in a `area` element of an image map. Suggests adding a required attribute with a text alternative for the contents of the tag. Based on WCAG 2.0: [H24](https://www.w3.org/TR/WCAG20-TECHS/H24.html), [H35](https://www.w3.org/TR/WCAG20-TECHS/H35.html), [H36](https://www.w3.org/TR/WCAG20-TECHS/H36.html), [H37](https://www.w3.org/TR/WCAG20-TECHS/H37.html)." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "HtmlRequiredAltAttribute", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "HTML/Accessibility", + "index": 76, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "HtmlPresentationalElement", + "shortDescription": { + "text": "Presentational tag" + }, + "fullDescription": { + "text": "Reports a presentational HTML tag. Suggests replacing the presentational tag with a CSS or another tag.", + "markdown": "Reports a presentational HTML tag. Suggests replacing the presentational tag with a CSS or another tag." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "HtmlPresentationalElement", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "HTML", + "index": 11, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "HtmlDeprecatedTag", + "shortDescription": { + "text": "Obsolete tag" + }, + "fullDescription": { + "text": "Reports an obsolete HTML5 tag. Suggests replacing the obsolete tag with a CSS or another tag.", + "markdown": "Reports an obsolete HTML5 tag. Suggests replacing the obsolete tag with a CSS or another tag." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "HtmlDeprecatedTag", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "HTML", + "index": 11, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "HtmlFormInputWithoutLabel", + "shortDescription": { + "text": "Missing associated label" + }, + "fullDescription": { + "text": "Reports a form element ('input', 'textarea', or 'select') without an associated label. Suggests creating a new label. Based on WCAG 2.0: H44.", + "markdown": "Reports a form element (`input`, `textarea`, or `select`) without an associated label. Suggests creating a new label. Based on WCAG 2.0: [H44](https://www.w3.org/TR/WCAG20-TECHS/H44.html). " + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "HtmlFormInputWithoutLabel", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "HTML/Accessibility", + "index": 76, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "HtmlRequiredTitleElement", + "shortDescription": { + "text": "Missing required 'title' element" + }, + "fullDescription": { + "text": "Reports a missing 'title' element inside a 'head' section. Suggests adding a 'title' element. The title should describe the document. Based on WCAG 2.0: H25.", + "markdown": "Reports a missing `title` element inside a `head` section. Suggests adding a `title` element. The title should describe the document. Based on WCAG 2.0: [H25](https://www.w3.org/TR/WCAG20-TECHS/H25.html)." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "HtmlRequiredTitleElement", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "HTML/Accessibility", + "index": 76, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "HtmlDeprecatedAttribute", + "shortDescription": { + "text": "Obsolete attribute" + }, + "fullDescription": { + "text": "Reports an obsolete HTML5 attribute.", + "markdown": "Reports an obsolete HTML5 attribute." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "HtmlDeprecatedAttribute", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "HTML", + "index": 11, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CheckImageSize", + "shortDescription": { + "text": "Mismatched image size" + }, + "fullDescription": { + "text": "Reports a 'width' and 'height' attribute value of a 'img' tag that is different from the actual width and height of the referenced image.", + "markdown": "Reports a `width` and `height` attribute value of a `img` tag that is different from the actual width and height of the referenced image." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CheckImageSize", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "HTML", + "index": 11, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "HtmlRequiredLangAttribute", + "shortDescription": { + "text": "Missing required 'lang' attribute" + }, + "fullDescription": { + "text": "Reports a missing 'lang' (or 'xml:lang') attribute in a 'html' tag. Suggests adding a required attribute to state the default language of the document. Based on WCAG 2.0: H57.", + "markdown": "Reports a missing `lang` (or `xml:lang`) attribute in a `html` tag. Suggests adding a required attribute to state the default language of the document. Based on WCAG 2.0: [H57](https://www.w3.org/TR/WCAG20-TECHS/H57.html)." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "HtmlRequiredLangAttribute", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "HTML/Accessibility", + "index": 76, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false + }, + { + "name": "org.jetbrains.plugins.vue", + "version": "241.16914", + "rules": [ + { + "id": "VueMissingComponentImportInspection", + "shortDescription": { + "text": "Missing component import" + }, + "fullDescription": { + "text": "Reports Vue components, which require to be imported in Vue templates. It provides a quick fix to add the missing import.", + "markdown": "Reports Vue components, which require to be imported in Vue templates. It provides a quick fix to add the missing import." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "VueMissingComponentImportInspection", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "Vue", + "index": 81, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "VueDeprecatedSymbol", + "shortDescription": { + "text": "Deprecated symbol" + }, + "fullDescription": { + "text": "Reports a deprecated Vue symbol.", + "markdown": "Reports a deprecated Vue symbol." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "VueDeprecatedSymbol", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "Vue", + "index": 81, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "VueUnrecognizedDirective", + "shortDescription": { + "text": "Unrecognized directive" + }, + "fullDescription": { + "text": "Reports an unrecognized Vue directive.", + "markdown": "Reports an unrecognized Vue directive." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "VueUnrecognizedDirective", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "Vue", + "index": 81, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "VueDuplicateTag", + "shortDescription": { + "text": "Duplicate template/script tag" + }, + "fullDescription": { + "text": "Reports multiple usages of the 'template' or 'script' tag in a Vue file. Vue Component specification indicates that each '*.vue' file can contain at most one 'template' or 'script' block at a time.", + "markdown": "Reports multiple usages of the `template` or `script` tag in a Vue file.\n\n[Vue Component specification](https://vue-loader.vuejs.org/spec.html) indicates that each `*.vue` file can contain at most one `template` or `script` block at a time." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "VueDuplicateTag", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "Vue", + "index": 81, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "VueDataFunction", + "shortDescription": { + "text": "Data function" + }, + "fullDescription": { + "text": "Reports a Vue component data property that is not a function. Suggests wrapping an object literal with a function. When defining a component, 'data' must be declared as a function that returns the initial data object, because the same definition will be used for creating numerous instances. If a plain object is still used for 'data', that very object will be shared by reference across all instances created! With a 'data' function, every time a new instance is created we can simply call it to return a fresh copy of the initial data.", + "markdown": "Reports a Vue component [data](https://vuejs.org/v2/api/#data) property that is not a function. Suggests wrapping an object literal with a function.\n\nWhen defining a component, `data` must be declared as a function that returns the initial data object, because the same definition will be used for creating numerous instances. If a plain object is still used for `data`, that very object will be shared by reference across all instances created! With a `data` function, every time a new instance is created we can simply call it to return a fresh copy of the initial data." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "VueDataFunction", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "Vue", + "index": 81, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "VueUnrecognizedSlot", + "shortDescription": { + "text": "Unrecognized slot" + }, + "fullDescription": { + "text": "Reports an unrecognized Vue slot.", + "markdown": "Reports an unrecognized Vue slot." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "VueUnrecognizedSlot", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "Vue", + "index": 81, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false + }, + { + "name": "org.jetbrains.plugins.yaml", + "version": "241.16914", + "rules": [ + { + "id": "YAMLIncompatibleTypes", + "shortDescription": { + "text": "Suspicious type mismatch" + }, + "fullDescription": { + "text": "Reports a mismatch between a scalar value type in YAML file and types of the values in the similar positions. Example: 'myElements:\n - value1\n - value2\n - false # <- reported, because it is a boolean value, while other values are strings'", + "markdown": "Reports a mismatch between a scalar value type in YAML file and types of the values in the similar positions.\n\n**Example:**\n\n\n myElements:\n - value1\n - value2\n - false # <- reported, because it is a boolean value, while other values are strings\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "YAMLIncompatibleTypes", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "YAML", + "index": 87, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "YAMLUnresolvedAlias", + "shortDescription": { + "text": "Unresolved alias" + }, + "fullDescription": { + "text": "Reports unresolved aliases in YAML files. Example: 'some_key: *unknown_alias'", + "markdown": "Reports unresolved aliases in YAML files.\n\n**Example:**\n\n\n some_key: *unknown_alias\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "YAMLUnresolvedAlias", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "YAML", + "index": 87, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "YAMLDuplicatedKeys", + "shortDescription": { + "text": "Duplicated YAML keys" + }, + "fullDescription": { + "text": "Reports duplicated keys in YAML files. Example: 'same_key: some value\n same_key: another value'", + "markdown": "Reports duplicated keys in YAML files.\n\n**Example:**\n\n\n same_key: some value\n same_key: another value\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "YAMLDuplicatedKeys", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "YAML", + "index": 87, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "YAMLSchemaValidation", + "shortDescription": { + "text": "Validation by JSON Schema" + }, + "fullDescription": { + "text": "Reports inconsistencies between a YAML file and a JSON Schema if the schema is specified. Scheme example: '{\n \"properties\": {\n \"SomeNumberProperty\": {\n \"type\": \"number\"\n }\n }\n }' The following is an example with the corresponding warning: 'SomeNumberProperty: hello world'", + "markdown": "Reports inconsistencies between a YAML file and a JSON Schema if the schema is specified.\n\n**Scheme example:**\n\n\n {\n \"properties\": {\n \"SomeNumberProperty\": {\n \"type\": \"number\"\n }\n }\n }\n\n**The following is an example with the corresponding warning:**\n\n\n SomeNumberProperty: hello world\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "YAMLSchemaValidation", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "YAML", + "index": 87, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "YAMLSchemaDeprecation", + "shortDescription": { + "text": "Deprecated YAML key" + }, + "fullDescription": { + "text": "Reports deprecated keys in YAML files. Deprecation is checked only if there exists a JSON schema associated with the corresponding YAML file. Note that the deprecation mechanism is not defined in the JSON Schema specification yet, and this inspection uses a non-standard 'deprecationMessage' extension. Scheme deprecation example: '{\n \"properties\": {\n \"SomeDeprecatedProperty\": {\n \"deprecationMessage\": \"Baz\",\n \"description\": \"Foo bar\"\n }\n }\n }' The following is an example with the corresponding warning: 'SomeDeprecatedProperty: some value'", + "markdown": "Reports deprecated keys in YAML files.\n\nDeprecation is checked only if there exists a JSON schema associated with the corresponding YAML file.\n\nNote that the deprecation mechanism is not defined in the JSON Schema specification yet,\nand this inspection uses a non-standard `deprecationMessage` extension.\n\n**Scheme deprecation example:**\n\n\n {\n \"properties\": {\n \"SomeDeprecatedProperty\": {\n \"deprecationMessage\": \"Baz\",\n \"description\": \"Foo bar\"\n }\n }\n }\n\n**The following is an example with the corresponding warning:**\n\n\n SomeDeprecatedProperty: some value\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "YAMLSchemaDeprecation", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "YAML", + "index": 87, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "YAMLRecursiveAlias", + "shortDescription": { + "text": "Recursive alias" + }, + "fullDescription": { + "text": "Reports recursion in YAML aliases. Alias can't be recursive and be used inside the data referenced by a corresponding anchor. Example: 'some_key: &some_anchor\n sub_key1: value1\n sub_key2: *some_anchor'", + "markdown": "Reports recursion in YAML aliases.\n\nAlias can't be recursive and be used inside the data referenced by a corresponding anchor.\n\n**Example:**\n\n\n some_key: &some_anchor\n sub_key1: value1\n sub_key2: *some_anchor\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "YAMLRecursiveAlias", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "YAML", + "index": 87, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "YAMLUnusedAnchor", + "shortDescription": { + "text": "Unused anchor" + }, + "fullDescription": { + "text": "Reports unused anchors. Example: 'some_key: &some_anchor\n key1: value1'", + "markdown": "Reports unused anchors.\n\n**Example:**\n\n\n some_key: &some_anchor\n key1: value1\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "YAMLUnusedAnchor", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "YAML", + "index": 87, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false + }, + { + "name": "intellij.webpack", + "version": "241.16914", + "rules": [ + { + "id": "WebpackConfigHighlighting", + "shortDescription": { + "text": "Webpack config compliance with JSON Schema" + }, + "fullDescription": { + "text": "Validates options in webpack config files (which name should start with `webpack`, e.g. `webpack.config.js`) against webpack options schema. Disable this inspection to turn off validation and code completion inside the configuration object.", + "markdown": "Validates options in webpack config files (which name should start with \\`webpack\\`, e.g. \\`webpack.config.js\\`) against [webpack options schema](https://github.com/webpack/webpack/blob/master/schemas/WebpackOptions.json). \n\nDisable this inspection to turn off validation and code completion inside the configuration object." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "WebpackConfigHighlighting", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/General", + "index": 18, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false + }, + { + "name": "com.intellij.plugins.dependencyAnalysis", + "version": "241.16914", + "rules": [ + { + "id": "CheckDependencyLicenses", + "shortDescription": { + "text": "Check dependency licenses" + }, + "fullDescription": { + "text": "Check dependencies licenses for possible problems: missing or prohibited licenses, or other compliance issues", + "markdown": "Check dependencies licenses for possible problems: missing or prohibited licenses, or other compliance issues" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CheckDependencyLicenses", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "Dependency analysis", + "index": 97, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CheckThirdPartySoftwareList", + "shortDescription": { + "text": "Check third party software list" + }, + "fullDescription": { + "text": "Check project for possible problems: user's third party software list does not match the collected project metadata", + "markdown": "Check project for possible problems: user's third party software list does not match the collected project metadata" + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "CheckThirdPartySoftwareList", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "Dependency analysis", + "index": 97, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CheckModuleLicenses", + "shortDescription": { + "text": "Check module licenses" + }, + "fullDescription": { + "text": "Check module licenses for possible problems: missing licenses or other compliance issues", + "markdown": "Check module licenses for possible problems: missing licenses or other compliance issues" + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "CheckModuleLicenses", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "Dependency analysis", + "index": 97, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false + }, + { + "name": "com.jetbrains.sh", + "version": "241.16914", + "rules": [ + { + "id": "ShellCheck", + "shortDescription": { + "text": "ShellCheck" + }, + "fullDescription": { + "text": "Reports shell script bugs detected by the integrated ShellCheck static analysis tool.", + "markdown": "Reports shell script bugs detected by the integrated [ShellCheck](https://github.com/koalaman/shellcheck) static analysis tool." + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "ShellCheck", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "Shell script", + "index": 101, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false + }, + { + "name": "org.jetbrains.plugins.less", + "version": "241.16914", + "rules": [ + { + "id": "LessResolvedByNameOnly", + "shortDescription": { + "text": "Missing import" + }, + "fullDescription": { + "text": "Reports a reference to a variable or mixin that is declared in another file, which is not explicitly imported in the current file. Example: '* {\n margin: @var-in-other-file;\n}'", + "markdown": "Reports a reference to a variable or mixin that is declared in another file, which is not explicitly [imported](http://lesscss.org/features/#import-atrules-feature) in the current file.\n\n**Example:**\n\n\n * {\n margin: @var-in-other-file;\n }\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "LessResolvedByNameOnly", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "Less", + "index": 110, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "LessUnresolvedVariable", + "shortDescription": { + "text": "Unresolved variable" + }, + "fullDescription": { + "text": "Reports a reference to a Less variable that is not resolved. Example: '* {\n margin: @unknown-var;\n}'", + "markdown": "Reports a reference to a [Less variable](http://lesscss.org/features/#variables-feature) that is not resolved.\n\n**Example:**\n\n\n * {\n margin: @unknown-var;\n }\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "LessUnresolvedVariable", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "Less", + "index": 110, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "LessUnresolvedMixin", + "shortDescription": { + "text": "Unresolved mixin" + }, + "fullDescription": { + "text": "Reports a reference to a Less mixin that is not resolved. Example: '* {\n .unknown-mixin();\n}'", + "markdown": "Reports a reference to a [Less mixin](http://lesscss.org/features/#mixins-feature) that is not resolved.\n\n**Example:**\n\n\n * {\n .unknown-mixin();\n }\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "LessUnresolvedMixin", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "Less", + "index": 110, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false + }, + { + "name": "tanvd.grazi", + "version": "241.16914", + "rules": [ + { + "id": "LanguageDetectionInspection", + "shortDescription": { + "text": "Natural language detection" + }, + "fullDescription": { + "text": "Detects natural languages and suggests enabling corresponding grammar and spelling checks.", + "markdown": "Detects natural languages and suggests enabling corresponding grammar and spelling checks." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "LanguageDetectionInspection", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "Proofreading", + "index": 111, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "GrazieInspection", + "shortDescription": { + "text": "Grammar" + }, + "fullDescription": { + "text": "Reports grammar mistakes in your text. You can configure the inspection in Settings | Editor | Natural Languages | Grammar.", + "markdown": "Reports grammar mistakes in your text. You can configure the inspection in [Settings \\| Editor \\| Natural Languages \\| Grammar](settings://reference.settingsdialog.project.grazie)." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "GrazieInspection", + "ideaSeverity": "GRAMMAR_ERROR", + "qodanaSeverity": "Info" + } + }, + "relationships": [ + { + "target": { + "id": "Proofreading", + "index": 111, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false + }, + { + "name": "com.jetbrains.rider-cpp", + "version": "241.16914", + "rules": [ + { + "id": "UnrealJsonLocalInspectionTool", + "shortDescription": { + "text": "Unreal Engine json inspection" + }, + "fullDescription": { + "text": "RIDER-83134", + "markdown": "[RIDER-83134](https://youtrack.jetbrains.com/issue/RIDER-83134/)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "UnrealJsonLocalInspectionTool", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "Unreal Engine", + "index": 114, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false + }, + { + "name": "Karma", + "version": "241.16914", + "rules": [ + { + "id": "KarmaConfigFile", + "shortDescription": { + "text": "Invalid Karma configuration file" + }, + "fullDescription": { + "text": "Reports a potential error in a file path ('basePath', 'files') for a Karma configuration file, for example, 'karma.conf.js'.", + "markdown": "Reports a potential error in a file path ('basePath', 'files') for a Karma configuration file, for example, `karma.conf.js`." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "KarmaConfigFile", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Unit testing", + "index": 118, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false + }, + { + "name": "com.jetbrains.plugins.ini4idea", + "version": "241.16914", + "rules": [ + { + "id": "DuplicateSectionInFile", + "shortDescription": { + "text": "Duplicate section in file" + }, + "fullDescription": { + "text": "Reports duplicate sections in the 'ini' file.", + "markdown": "Reports duplicate sections in the `ini` file." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "DuplicateSectionInFile", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "Ini files", + "index": 125, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "DuplicateKeyInSection", + "shortDescription": { + "text": "Duplicate directive in section" + }, + "fullDescription": { + "text": "Reports duplicate properties in the 'ini' file section.", + "markdown": "Reports duplicate properties in the `ini` file section." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "DuplicateKeyInSection", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "Ini files", + "index": 125, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false + }, + { + "name": "tslint", + "version": "241.16914", + "rules": [ + { + "id": "TsLint", + "shortDescription": { + "text": "TSLint" + }, + "fullDescription": { + "text": "Reports a discrepancy detected by the TSLint linter. The highlighting is based on the rule severity specified in the TSLint configuration file for each individual rule. Clear the 'Use rule severity from the configuration file' checkbox to use the severity configured in this inspection for all TSLint rules.", + "markdown": "Reports a discrepancy detected by the [TSLint](https://github.com/palantir/tslint) linter. \n\nThe highlighting is based on the rule severity specified in the [TSLint configuration file](https://palantir.github.io/tslint/usage/configuration/) for each individual rule. \n\nClear the 'Use rule severity from the configuration file' checkbox to use the severity configured in this inspection for all TSLint rules." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "TsLint", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Code quality tools", + "index": 64, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false + }, + { + "name": "org.intellij.intelliLang", + "version": "241.16914", + "rules": [ + { + "id": "InjectedReferences", + "shortDescription": { + "text": "Injected references" + }, + "fullDescription": { + "text": "Reports unresolved references injected by Language Injections. Example: '@Language(\"file-reference\")\n String fileName = \"/home/user/nonexistent.file\"; // highlighted if file doesn't exist'", + "markdown": "Reports unresolved references injected by [Language Injections](https://www.jetbrains.com/help/idea/using-language-injections.html).\n\nExample:\n\n\n @Language(\"file-reference\")\n String fileName = \"/home/user/nonexistent.file\"; // highlighted if file doesn't exist\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "InjectedReferences", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "General", + "index": 45, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false + }, + { + "name": "W3Validators", + "version": "241.16914", + "rules": [ + { + "id": "W3CssValidation", + "shortDescription": { + "text": "W3C CSS validator" + }, + "fullDescription": { + "text": "Reports a discrepancy detected by the W3C CSS Validator.", + "markdown": "Reports a discrepancy detected by the [W3C CSS Validator](https://jigsaw.w3.org/css-validator/)." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "W3CssValidation", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "CSS/Code quality tools", + "index": 129, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false + }, + { + "name": "com.intellij.plugins.watcher", + "version": "241.16914", + "rules": [ + { + "id": "TaskProblemsInspection", + "shortDescription": { + "text": "File watcher problems" + }, + "fullDescription": { + "text": "Reports an error detected by the output filters from a File Watcher. A File Watcher tracks changes in files and executes the configured command when a change is detected.", + "markdown": "Reports an error detected by the output filters from a File Watcher.\n\n\nA File Watcher tracks changes in files and executes the configured command when a change is detected." + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "TaskProblemsInspection", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" + } + }, + "relationships": [ + { + "target": { + "id": "File Watchers", + "index": 132, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false + }, + { + "name": "com.dmarcotte.handlebars", + "version": "241.16914", + "rules": [ + { + "id": "HbEmptyBlock", + "shortDescription": { + "text": "Missing block helper argument" + }, + "fullDescription": { + "text": "Reports an 'if', 'each', or 'with' block helper without an argument.", + "markdown": "Reports an `if`, `each`, or `with` block helper without an argument." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "HbEmptyBlock", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "Handlebars_Mustache", + "index": 142, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false + } + ] + }, + "invocations": [ + { + "startTimeUtc": "2025-01-24T20:30:24.7105146Z", + "exitCode": 255, + "exitCodeDescription": "Failure condition triggered:\n- Detected 166 problems across all severities, fail threshold: 0", + "executionSuccessful": true + } + ], + "language": "en-US", + "versionControlProvenance": [ + { + "repositoryUri": "https://github.com/FrankvdStam/SoulSplitter.git", + "revisionId": "4e37a0041a6b19b726c679d938440f9db4280153", + "branch": "feature/langversion-13", + "properties": { + "repoUrl": "https://github.com/FrankvdStam/SoulSplitter.git", + "lastAuthorName": "Frank", + "vcsType": "Git", + "lastAuthorEmail": "frank_stam5@hotmail.com" + } + } + ], + "results": [ + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 153, + "startColumn": 65, + "charOffset": 5931, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 151, + "startColumn": 1, + "charOffset": 5727, + "charLength": 220, + "snippet": { + "text": " new EnumFlagViewModel(TimingType.Immediate),\r\n new EnumFlagViewModel(TimingType.OnLoading),\r\n new EnumFlagViewModel(TimingType.OnWarp),\r\n };\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ad6f8ebdb3064944", + "equalIndicator/v1": "ef7ce585c3abbb140e1f0f522dd51bbb09763258a7ea041d7139dcf33586d7a8" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 163, + "startColumn": 61, + "charOffset": 6504, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 161, + "startColumn": 1, + "charOffset": 6314, + "charLength": 214, + "snippet": { + "text": " new EnumFlagViewModel(SplitType.Item),\r\n new EnumFlagViewModel(SplitType.Position),\r\n new EnumFlagViewModel(SplitType.Flag),\r\n };\r\n \r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c0e083ed292cf0bd", + "equalIndicator/v1": "ff5c0a8e2c08c7f0780bc50a7a348c09f8c7bff8abc0a2714943910ba7a90a92" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "MergeSequentialChecks", + "kind": "fail", + "level": "note", + "message": { + "text": "Merge sequential checks", + "markdown": "Merge sequential checks" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 64, + "startColumn": 57, + "charOffset": 2484, + "charLength": 2, + "snippet": { + "text": "&&" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 62, + "startColumn": 1, + "charOffset": 2385, + "charLength": 180, + "snippet": { + "text": "\r\n case SplitType.Bonfire:\r\n return NewSplitBonfireState != null && NewSplitBonfireState.Bonfire != null;\r\n\r\n case SplitType.Item:\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4d05b0d47486c533", + "equalIndicator/v1": "859827cc1992c121ffc4d869a3c47957e2f5a56739f09b0c8cdcafe338a766ea" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "MergeSequentialChecks", + "kind": "fail", + "level": "note", + "message": { + "text": "Merge sequential checks", + "markdown": "Merge sequential checks" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 67, + "startColumn": 54, + "charOffset": 2619, + "charLength": 2, + "snippet": { + "text": "&&" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 65, + "startColumn": 1, + "charOffset": 2526, + "charLength": 175, + "snippet": { + "text": "\r\n case SplitType.Item:\r\n return NewSplitItemState != null && NewSplitItemState.ItemType != null;\r\n\r\n case SplitType.Credits:\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c788683153bd0226", + "equalIndicator/v1": "b665eec3bfb75d079bc1fd1082963396441643f192521dbcefb2f018d981973e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantDefaultMemberInitializer", + "kind": "fail", + "level": "warning", + "message": { + "text": "Initializing field by default value is redundant", + "markdown": "Initializing field by default value is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 120, + "startColumn": 42, + "charOffset": 4437, + "charLength": 6, + "snippet": { + "text": "= null" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 118, + "startColumn": 1, + "charOffset": 4383, + "charLength": 85, + "snippet": { + "text": " }\r\n\r\n private SplitType? _newSplitType = null;\r\n\r\n [XmlIgnore]\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "76dc05de0c05f1df", + "equalIndicator/v1": "742f9dbdc0eb0ba7e101a1a262bf2c8d4b621791287a49fea39f248409c3b62e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantEmptyObjectCreationArgumentList", + "kind": "fail", + "level": "note", + "message": { + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 102, + "startColumn": 50, + "charOffset": 3794, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 100, + "startColumn": 1, + "charOffset": 3697, + "charLength": 174, + "snippet": { + "text": "\r\n case SplitType.Position:\r\n Position = new VectorSize() { Position = CurrentPosition.Clone() };\r\n break;\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d8afaeb4f928c092", + "equalIndicator/v1": "2d8d324ef8f20d8e3ff784a7ef0402cf20ff0176c7f7efd7f045cf39ed60c1c9" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantEmptyObjectCreationArgumentList", + "kind": "fail", + "level": "note", + "message": { + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 156, + "startColumn": 155, + "charOffset": 6102, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 154, + "startColumn": 1, + "charOffset": 5934, + "charLength": 245, + "snippet": { + "text": " };\r\n\r\n public static ObservableCollection> SplitTypes { get; set; } = new ObservableCollection>()\r\n {\r\n new EnumFlagViewModel(SplitType.Boss),\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a083737c350a5d54", + "equalIndicator/v1": "606a6c9ea5fb4a8a3ea70f1eac497e1f4d321c13d0650140e11af304284e2320" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantEmptyObjectCreationArgumentList", + "kind": "fail", + "level": "note", + "message": { + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 145, + "startColumn": 41, + "charOffset": 5378, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 143, + "startColumn": 1, + "charOffset": 5182, + "charLength": 370, + "snippet": { + "text": " public ObservableCollection BooleanFlags { get; set; } = new ObservableCollection()\r\n {\r\n new BoolDescriptionViewModel(){ Description = \"Start automatically\", Value = true },\r\n new BoolDescriptionViewModel(){ Description = \"Reset inventory indices\", Value = true }\r\n };\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4cff0868ed0f1131", + "equalIndicator/v1": "637ac634056f4782bca3c58d2665a04ccd73109db48f2ff7e4e40e547d1faeea" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantEmptyObjectCreationArgumentList", + "kind": "fail", + "level": "note", + "message": { + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 149, + "startColumn": 158, + "charOffset": 5712, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 147, + "startColumn": 1, + "charOffset": 5541, + "charLength": 255, + "snippet": { + "text": " };\r\n\r\n public static ObservableCollection> TimingTypes { get; set; } = new ObservableCollection>()\r\n {\r\n new EnumFlagViewModel(TimingType.Immediate),\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e79e306139f6a21d", + "equalIndicator/v1": "680236b845b1bb81f032667ca41c86be11ced003f69feb9b71e85fe3013ba347" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantEmptyObjectCreationArgumentList", + "kind": "fail", + "level": "note", + "message": { + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 110, + "startColumn": 82, + "charOffset": 4140, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 108, + "startColumn": 1, + "charOffset": 4012, + "charLength": 200, + "snippet": { + "text": "\r\n case SplitType.Bonfire:\r\n NewSplitBonfireState = new Splits.DarkSouls1.BonfireState() { State = BonfireState.Unlocked };\r\n break;\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ed688dc70c51ad6c", + "equalIndicator/v1": "8eb5979087b04e5b32d055c60cfae331255eb92ffa19629b8ad1942cca8465bb" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantEmptyObjectCreationArgumentList", + "kind": "fail", + "level": "note", + "message": { + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 146, + "startColumn": 41, + "charOffset": 5480, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 144, + "startColumn": 1, + "charOffset": 5327, + "charLength": 227, + "snippet": { + "text": " {\r\n new BoolDescriptionViewModel(){ Description = \"Start automatically\", Value = true },\r\n new BoolDescriptionViewModel(){ Description = \"Reset inventory indices\", Value = true }\r\n };\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "8a54528c02781916", + "equalIndicator/v1": "ababcdddcf004ae18233bc33bd6a3a18d40c580289093e43ae79ee273dde7450" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantEmptyObjectCreationArgumentList", + "kind": "fail", + "level": "note", + "message": { + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 98, + "startColumn": 72, + "charOffset": 3587, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 96, + "startColumn": 1, + "charOffset": 3450, + "charLength": 248, + "snippet": { + "text": " {\r\n case SplitType.Attribute:\r\n NewSplitValue = new Splits.DarkSouls1.Attribute() { AttributeType = SoulMemory.DarkSouls1.Attribute.Vitality, Level = 10 };\r\n break;\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7ad4b854e870363c", + "equalIndicator/v1": "bd11dab5ec7341a4273558ec8001f2548e0cdfbff66b578390970b8e552cbf78" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantEmptyObjectCreationArgumentList", + "kind": "fail", + "level": "note", + "message": { + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 143, + "startColumn": 142, + "charOffset": 5323, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 141, + "startColumn": 1, + "charOffset": 5000, + "charLength": 439, + "snippet": { + "text": "\r\n #region Static UI source data ============================================================================================================================================\r\n public ObservableCollection BooleanFlags { get; set; } = new ObservableCollection()\r\n {\r\n new BoolDescriptionViewModel(){ Description = \"Start automatically\", Value = true },\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "1a1036a3542fddff", + "equalIndicator/v1": "df37820f71aa670b64041b52413c3a67d4d5cc7f4e3953227199df17641769c9" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantNameQualifier", + "kind": "fail", + "level": "warning", + "message": { + "text": "Qualifier is redundant", + "markdown": "Qualifier is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 98, + "startColumn": 93, + "charOffset": 3608, + "charLength": 22, + "snippet": { + "text": "SoulMemory.DarkSouls1." + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 96, + "startColumn": 1, + "charOffset": 3450, + "charLength": 248, + "snippet": { + "text": " {\r\n case SplitType.Attribute:\r\n NewSplitValue = new Splits.DarkSouls1.Attribute() { AttributeType = SoulMemory.DarkSouls1.Attribute.Vitality, Level = 10 };\r\n break;\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "bb6a00e25a6e80c0", + "equalIndicator/v1": "d65290a376d1a0a323d6005ef0b236b3fade9cb66fdbb45cd5957982db0dd919" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", + "kind": "fail", + "level": "note", + "message": { + "text": "Some values of the enum are not processed inside switch: KnownFlag, ItemPickup, null", + "markdown": "Some values of the enum are not processed inside switch: KnownFlag, ItemPickup, null" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 48, + "startColumn": 13, + "charOffset": 1921, + "charLength": 6, + "snippet": { + "text": "switch" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 46, + "startColumn": 1, + "charOffset": 1892, + "charLength": 92, + "snippet": { + "text": " }\r\n\r\n switch (NewSplitType)\r\n {\r\n default:\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "23a0517eca880c64", + "equalIndicator/v1": "1f2be0a78eaece0f9666ffc06bbb0e3b408f8a2f54daf78fb8c3e6d2b518d5da" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "SwitchStatementMissingSomeEnumCasesNoDefault", + "kind": "fail", + "level": "note", + "message": { + "text": "Some values of the enum are not processed inside switch: Boss, KnownFlag, ItemPickup...", + "markdown": "Some values of the enum are not processed inside switch: Boss, KnownFlag, ItemPickup..." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 95, + "startColumn": 17, + "charOffset": 3427, + "charLength": 6, + "snippet": { + "text": "switch" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 93, + "startColumn": 1, + "charOffset": 3356, + "charLength": 159, + "snippet": { + "text": " SetField(ref _newSplitType, value);\r\n\r\n switch (NewSplitType)\r\n {\r\n case SplitType.Attribute:\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4d87e767e0889218", + "equalIndicator/v1": "85bf90966cfbd77a66bdd20f545e4f72a14c96a566244ebd90146d7b19d2493e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "UseSymbolAlias", + "kind": "fail", + "level": "note", + "message": { + "text": "Use type alias 'Attribute'", + "markdown": "Use type alias 'Attribute'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 98, + "startColumn": 93, + "charOffset": 3608, + "charLength": 31, + "snippet": { + "text": "SoulMemory.DarkSouls1.Attribute" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 96, + "startColumn": 1, + "charOffset": 3450, + "charLength": 248, + "snippet": { + "text": " {\r\n case SplitType.Attribute:\r\n NewSplitValue = new Splits.DarkSouls1.Attribute() { AttributeType = SoulMemory.DarkSouls1.Attribute.Vitality, Level = 10 };\r\n break;\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a9b812250de78dc4", + "equalIndicator/v1": "3b5f7e8ab72b22ee5ffc2dd42dbb51a64cff8b8cdbdd4f8f795614ebbde95f14" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "YAMLSchemaValidation", + "kind": "fail", + "level": "warning", + "message": { + "text": "Schema validation: Missing required property 'version' = 1.0", + "markdown": "Schema validation: Missing required property 'version' = 1.0" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": ".github/workflows/qodana.yml", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 1, + "startColumn": 1, + "charOffset": 0, + "charLength": 12, + "snippet": { + "text": "name: Qodana" + }, + "sourceLanguage": "yaml" + }, + "contextRegion": { + "startLine": 1, + "startColumn": 1, + "charOffset": 0, + "charLength": 32, + "snippet": { + "text": "name: Qodana\r\non:\r\n #schedule:\r" + }, + "sourceLanguage": "yaml" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "18d6a70f4b1439d0", + "equalIndicator/v1": "2a03b40c141d224bf54ff3e9565ea9aa53d43ceb165c31255d5e6806e440d259" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "yaml" + ] + } + }, + { + "ruleId": "AccessToStaticMemberViaDerivedType", + "kind": "fail", + "level": "warning", + "message": { + "text": "Access to a static member of a type via a derived type", + "markdown": "Access to a static member of a type via a derived type" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Migrations/Migrator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 123, + "startColumn": 33, + "charOffset": 5890, + "charLength": 31, + "snippet": { + "text": "SoulMemory.DarkSouls3.Attribute" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 121, + "startColumn": 1, + "charOffset": 5822, + "charLength": 331, + "snippet": { + "text": "\r\n if (\r\n SoulMemory.DarkSouls3.Attribute.TryParse(attributeType.InnerText, out SoulMemory.DarkSouls3.Attribute attributeTypeParsed) &&\r\n int.TryParse(attributeLevel.InnerText, out int attributeLevelParsed)\r\n )\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "50f1074e22d8662b", + "equalIndicator/v1": "1753b7bd92f528eac26a0ef15c28b512b7f645d3b012d571714e5042281aadfa" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "AccessToStaticMemberViaDerivedType", + "kind": "fail", + "level": "warning", + "message": { + "text": "Access to a static member of a type via a derived type", + "markdown": "Access to a static member of a type via a derived type" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Migrations/Migrator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 91, + "startColumn": 33, + "charOffset": 3999, + "charLength": 29, + "snippet": { + "text": "SoulMemory.DarkSouls3.Bonfire" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 89, + "startColumn": 1, + "charOffset": 3862, + "charLength": 351, + "snippet": { + "text": " {\r\n var split = bonfire.GetChildNodeByName(\"Split\");\r\n if (SoulMemory.DarkSouls3.Bonfire.TryParse(split.InnerText, out SoulMemory.DarkSouls3.Bonfire b))\r\n {\r\n newDarkSouls3ViewModel.NewSplitTimingType = timingType;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "874e0b1211730566", + "equalIndicator/v1": "23c1f865d861d55630c4a88a482e72fc46873dec1fc90816118fd93ac73ee9f6" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "AccessToStaticMemberViaDerivedType", + "kind": "fail", + "level": "warning", + "message": { + "text": "Access to a static member of a type via a derived type", + "markdown": "Access to a static member of a type via a derived type" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Migrations/Migrator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 231, + "startColumn": 33, + "charOffset": 11632, + "charLength": 22, + "snippet": { + "text": "SoulMemory.Sekiro.Idol" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 229, + "startColumn": 1, + "charOffset": 11498, + "charLength": 330, + "snippet": { + "text": " {\r\n var split = idol.GetChildNodeByName(\"Split\");\r\n if (SoulMemory.Sekiro.Idol.TryParse(split.InnerText, out SoulMemory.Sekiro.Idol i))\r\n {\r\n newSekiroViewModel.NewSplitTimingType = timingType;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4ab2b673f69e911a", + "equalIndicator/v1": "9e41dda177a031d3a40b33cc79b599f09ef5ad299e011daf9fc9499bfb264401" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "AccessToStaticMemberViaDerivedType", + "kind": "fail", + "level": "warning", + "message": { + "text": "Access to a static member of a type via a derived type", + "markdown": "Access to a static member of a type via a derived type" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Migrations/Migrator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 77, + "startColumn": 33, + "charOffset": 3181, + "charLength": 26, + "snippet": { + "text": "SoulMemory.DarkSouls3.Boss" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 75, + "startColumn": 1, + "charOffset": 3047, + "charLength": 342, + "snippet": { + "text": " {\r\n var split = boss.GetChildNodeByName(\"Split\");\r\n if (SoulMemory.DarkSouls3.Boss.TryParse(split.InnerText, out SoulMemory.DarkSouls3.Boss b))\r\n {\r\n newDarkSouls3ViewModel.NewSplitTimingType = timingType;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ae94872d3f6c17a4", + "equalIndicator/v1": "ac61ae1ea139d267aa190f494870d9ac841fb3bb2d8335db4d5c8709919cadc2" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "AccessToStaticMemberViaDerivedType", + "kind": "fail", + "level": "warning", + "message": { + "text": "Access to a static member of a type via a derived type", + "markdown": "Access to a static member of a type via a derived type" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Migrations/Migrator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 217, + "startColumn": 33, + "charOffset": 10847, + "charLength": 22, + "snippet": { + "text": "SoulMemory.Sekiro.Boss" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 215, + "startColumn": 1, + "charOffset": 10713, + "charLength": 330, + "snippet": { + "text": " {\r\n var split = boss.GetChildNodeByName(\"Split\");\r\n if (SoulMemory.Sekiro.Boss.TryParse(split.InnerText, out SoulMemory.Sekiro.Boss b))\r\n {\r\n newSekiroViewModel.NewSplitTimingType = timingType;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "fb26f80c0bd6191c", + "equalIndicator/v1": "bf6800c8af49426a306842f68e8d836c37cdfe2b65a8a0e0eeb300fb7d4ec247" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "AccessToStaticMemberViaDerivedType", + "kind": "fail", + "level": "warning", + "message": { + "text": "Access to a static member of a type via a derived type", + "markdown": "Access to a static member of a type via a derived type" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Migrations/Migrator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 105, + "startColumn": 33, + "charOffset": 4835, + "charLength": 32, + "snippet": { + "text": "SoulMemory.DarkSouls3.ItemPickup" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 103, + "startColumn": 1, + "charOffset": 4695, + "charLength": 360, + "snippet": { + "text": " {\r\n var split = itemPickup.GetChildNodeByName(\"Split\");\r\n if (SoulMemory.DarkSouls3.ItemPickup.TryParse(split.InnerText, out SoulMemory.DarkSouls3.ItemPickup i))\r\n {\r\n newDarkSouls3ViewModel.NewSplitTimingType = timingType;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "66615877a985e171", + "equalIndicator/v1": "f55cbacb905ee7f75b302b753e4018fe36d451d567bd00ed693b5629af836a74" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "ArrangeDefaultValueWhenTypeNotEvident", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant type specification", + "markdown": "Redundant type specification" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Extensions.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 32, + "startColumn": 27, + "charOffset": 1211, + "charLength": 3, + "snippet": { + "text": "(T)" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 30, + "startColumn": 1, + "charOffset": 1129, + "charLength": 101, + "snippet": { + "text": " if (string.IsNullOrWhiteSpace(xml))\r\n {\r\n return default(T)!;\r\n }\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b76b308654948a75", + "equalIndicator/v1": "a13caa2d47bc57752f46b258aef0c74d57fca4b3a029603dd09e182cc75397ae" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "ArrangeModifiersOrder", + "kind": "fail", + "level": "note", + "message": { + "text": "Inconsistent modifiers declaration order", + "markdown": "Inconsistent modifiers declaration order" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/Item.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 50, + "startColumn": 5, + "charOffset": 1660, + "charLength": 23, + "snippet": { + "text": "private readonly static" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 48, + "startColumn": 1, + "charOffset": 1639, + "charLength": 216, + "snippet": { + "text": " } \r\n\r\n private readonly static ReadOnlyCollection LookupTable = new(new List()\r\n {\r\n new() { Category = Category.Protector,GroupName = \"Armor\", Name = \"Iron Helmet\", Id = 40000 },\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "99a14f7ee880cbf9", + "equalIndicator/v1": "15bb2234c0b9625fe8ab810a606636c1d6e9ac6890f0b96461802fbe7f98f120" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeRedundantParentheses", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant parentheses", + "markdown": "Redundant parentheses" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/FlagTrackerViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 193, + "startColumn": 38, + "charOffset": 6321, + "charLength": 1, + "snippet": { + "text": "(" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 191, + "startColumn": 1, + "charOffset": 6192, + "charLength": 264, + "snippet": { + "text": " {\r\n var done = category.EventFlags.Count(i => i.State);\r\n var percentage = (done / (float)category.EventFlags.Count) * 100.0f;\r\n category.Progress = $\"{percentage:0.00}%\";\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d4e088bc2c52e843", + "equalIndicator/v1": "031ce54c4d1fe3151dbd1a90f102c31477f2e796689fbe20d11f0d50de49c485" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "ArrangeRedundantParentheses", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant parentheses", + "markdown": "Redundant parentheses" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/ItemReader.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 111, + "startColumn": 31, + "charOffset": 4712, + "charLength": 1, + "snippet": { + "text": "(" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 109, + "startColumn": 1, + "charOffset": 4601, + "charLength": 185, + "snippet": { + "text": " //Separate digits\r\n int one = item % 10;\r\n int ten = (item / 10) % 10;\r\n int hundred = (item / 100) % 10;\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "1d2626768d9a7a86", + "equalIndicator/v1": "0a427b6507b680e277338d099b225522bc7ab63fe9a2d72a70729c9922ebeb28" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeRedundantParentheses", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant parentheses", + "markdown": "Redundant parentheses" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Sekiro/Sekiro.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 283, + "startColumn": 44, + "charOffset": 10561, + "charLength": 1, + "snippet": { + "text": "(" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 281, + "startColumn": 1, + "charOffset": 10459, + "charLength": 184, + "snippet": { + "text": " for (int i = 0; i < size; i++)\r\n {\r\n var area = vector.ReadByte((i * 0x38) + 0xb);\r\n if (area == eventFlagArea)\r\n {\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "31f1d8bbe2cee7c9", + "equalIndicator/v1": "1201d18e4f4f5a1062bc725d0fad703242ff1d987eb46a59e8b24686162388f0" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeRedundantParentheses", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant parentheses", + "markdown": "Redundant parentheses" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Sl2Reader.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 82, + "startColumn": 45, + "charOffset": 2989, + "charLength": 1, + "snippet": { + "text": "(" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 80, + "startColumn": 1, + "charOffset": 2850, + "charLength": 247, + "snippet": { + "text": " file = DecryptSl2(file);\r\n int saveSlotSize = 0x60030;\r\n int igtOffset = 0x2EC + (saveSlotSize * slot);\r\n igt = BitConverter.ToInt32(file, igtOffset);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "96daffa8d7b5f542", + "equalIndicator/v1": "1e5c40c558d16838b3a2e444abc8ebedeae78c061f6129438bd5d2252ca00de8" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeRedundantParentheses", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant parentheses", + "markdown": "Redundant parentheses" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/ParamClassGenerator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 240, + "startColumn": 27, + "charOffset": 10258, + "charLength": 1, + "snippet": { + "text": "(" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 238, + "startColumn": 1, + "charOffset": 10169, + "charLength": 204, + "snippet": { + "text": " if(currentField.ArraySize != null)\r\n {\r\n offset += (ParamData.ParamByteSize[currentField.ParamType] * currentField.ArraySize.Value);\r\n }\r\n else\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7c4a008165de4b51", + "equalIndicator/v1": "22828307975a2fd0af4654130fe8e58739042d09167108775fa976b7ade88633" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeRedundantParentheses", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant parentheses", + "markdown": "Redundant parentheses" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/EldenRing.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 478, + "startColumn": 37, + "charOffset": 16072, + "charLength": 1, + "snippet": { + "text": "(" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 476, + "startColumn": 1, + "charOffset": 16003, + "charLength": 194, + "snippet": { + "text": " else\r\n {\r\n calculatedPointer = (_virtualMemoryFlag.ReadInt32(0x20) * currentElement.ReadInt32(0x30)) + _virtualMemoryFlag.ReadInt64(0x28);\r\n }\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "36d16522d03bc503", + "equalIndicator/v1": "3b97af5bf36b0a02ddb94b44b2f7697c47ebb64c7a01ab2e2a709c892c861221" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeRedundantParentheses", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant parentheses", + "markdown": "Redundant parentheses" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Sekiro/Sekiro.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 609, + "startColumn": 31, + "charOffset": 23108, + "charLength": 1, + "snippet": { + "text": "(" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 607, + "startColumn": 1, + "charOffset": 23063, + "charLength": 156, + "snippet": { + "text": " ]);\r\n\r\n int jmpTarget = (int)((igtFixEntryPoint+5)-(igtFixCodeLoc+103+5));\r\n igtFixCode.AddRange(BitConverter.GetBytes(jmpTarget));\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "befd457d0dcb5121", + "equalIndicator/v1": "3f425a5c684bf560a7e2b82a04f695e698d06be43f0a5cdf1fec695088ac1f7d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeRedundantParentheses", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant parentheses", + "markdown": "Redundant parentheses" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 226, + "startColumn": 44, + "charOffset": 7717, + "charLength": 1, + "snippet": { + "text": "(" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 224, + "startColumn": 1, + "charOffset": 7621, + "charLength": 178, + "snippet": { + "text": " {\r\n //0x00007ff4fd9ba4c3\r\n var area = vector.ReadByte((i * 0x38) + 0xb);\r\n if (area == eventFlagArea)\r\n {\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5d8333c178032990", + "equalIndicator/v1": "42ba158dfe795cf37b52950d27a2229dc55546b59f14c28d6ba5e89b786fdbb3" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeRedundantParentheses", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant parentheses", + "markdown": "Redundant parentheses" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 165, + "startColumn": 24, + "charOffset": 5751, + "charLength": 1, + "snippet": { + "text": "(" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 163, + "startColumn": 1, + "charOffset": 5715, + "charLength": 204, + "snippet": { + "text": " }\r\n\r\n var category = (eventFlagId / divisor); //stored in rax after; div r8d\r\n var leastSignificantDigits = eventFlagId - (category * divisor); //stored in r11 after; sub r11d,r8d\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b4df5c74376a82ec", + "equalIndicator/v1": "49ab4532fd1113399a8a848ae826a56c45ae3976f4d28459ae243d2ed832600b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeRedundantParentheses", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant parentheses", + "markdown": "Redundant parentheses" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 241, + "startColumn": 71, + "charOffset": 8418, + "charLength": 1, + "snippet": { + "text": "(" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 239, + "startColumn": 1, + "charOffset": 8219, + "charLength": 336, + "snippet": { + "text": " {\r\n worldInfoBlockVector = vector.CreatePointerFromAddress(i * 0x38 + 0x28);\r\n var flag = worldInfoBlockVector.ReadInt32((index * 0x70) + 0x8);\r\n\r\n if ((flag >> 0x10 & 0xff) == eventFlagIdDiv10000 && flag >> 0x18 == eventFlagArea)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "92dd75e3c83e5cd6", + "equalIndicator/v1": "58547e5cac763167156cc15274e771308bf5d02a28aca9a3d10c1e34504f3b04" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeRedundantParentheses", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant parentheses", + "markdown": "Redundant parentheses" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/ItemReader.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 112, + "startColumn": 35, + "charOffset": 4765, + "charLength": 1, + "snippet": { + "text": "(" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 110, + "startColumn": 1, + "charOffset": 4640, + "charLength": 217, + "snippet": { + "text": " int one = item % 10;\r\n int ten = (item / 10) % 10;\r\n int hundred = (item / 100) % 10;\r\n\r\n id = item - (one + (10 * ten) + (100 * hundred));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e14049d74aba3aa0", + "equalIndicator/v1": "60f950481bf16e63beaa2e0abe1205ef8413ae92c5104caf7a87006d4fad1cdf" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeRedundantParentheses", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant parentheses", + "markdown": "Redundant parentheses" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/ItemReader.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 114, + "startColumn": 40, + "charOffset": 4826, + "charLength": 1, + "snippet": { + "text": "(" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 112, + "startColumn": 1, + "charOffset": 4731, + "charLength": 228, + "snippet": { + "text": " int hundred = (item / 100) % 10;\r\n\r\n id = item - (one + (10 * ten) + (100 * hundred));\r\n infusion = (ItemInfusion)hundred;\r\n level = one + (10 * ten);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "1a094529f11a1636", + "equalIndicator/v1": "69712305b74b192ad2f2596c196e8cc99088f5dc88d3e428d2b456fcd6a288f3" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeRedundantParentheses", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant parentheses", + "markdown": "Redundant parentheses" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/ItemReader.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 116, + "startColumn": 35, + "charOffset": 4947, + "charLength": 1, + "snippet": { + "text": "(" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 114, + "startColumn": 1, + "charOffset": 4787, + "charLength": 193, + "snippet": { + "text": " id = item - (one + (10 * ten) + (100 * hundred));\r\n infusion = (ItemInfusion)hundred;\r\n level = one + (10 * ten);\r\n }\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "bafbf93aa3467060", + "equalIndicator/v1": "719fd6e0015ee249e6b0235ac6317f2e942f2126f95d920a4a81c134424ac5b2" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeRedundantParentheses", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant parentheses", + "markdown": "Redundant parentheses" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Sl2Reader.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 73, + "startColumn": 45, + "charOffset": 2554, + "charLength": 1, + "snippet": { + "text": "(" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 71, + "startColumn": 1, + "charOffset": 2459, + "charLength": 203, + "snippet": { + "text": " saveSlotSize = 0x60190;\r\n\r\n int igtOffset = 0x2dc + (saveSlotSize * slot);\r\n igt = BitConverter.ToInt32(file, igtOffset);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "faf03c122d3f9d62", + "equalIndicator/v1": "71a0db22485b36606209c5954b7f82a578de6f9e4c2d22c0f1540234d0eee254" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeRedundantParentheses", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant parentheses", + "markdown": "Redundant parentheses" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/ItemReader.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 114, + "startColumn": 53, + "charOffset": 4839, + "charLength": 1, + "snippet": { + "text": "(" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 112, + "startColumn": 1, + "charOffset": 4731, + "charLength": 228, + "snippet": { + "text": " int hundred = (item / 100) % 10;\r\n\r\n id = item - (one + (10 * ten) + (100 * hundred));\r\n infusion = (ItemInfusion)hundred;\r\n level = one + (10 * ten);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e1f58664117d11c2", + "equalIndicator/v1": "838ffdb8175773c0c67337af7668ed1fa4cbd028f9a2b6b939be86838bab09b5" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeRedundantParentheses", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant parentheses", + "markdown": "Redundant parentheses" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Sekiro/Sekiro.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 297, + "startColumn": 71, + "charOffset": 11215, + "charLength": 1, + "snippet": { + "text": "(" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 295, + "startColumn": 1, + "charOffset": 11016, + "charLength": 336, + "snippet": { + "text": " {\r\n worldInfoBlockVector = vector.CreatePointerFromAddress(i * 0x38 + 0x28);\r\n var flag = worldInfoBlockVector.ReadInt32((index * 0xb0) + 0x8);\r\n\r\n if ((flag >> 0x10 & 0xff) == eventFlagIdDiv10000 && flag >> 0x18 == eventFlagArea)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e2f702707504fa1b", + "equalIndicator/v1": "83aa7abe26cf514765672571938b16210a328898b730ec9b1a894804c362335a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeRedundantParentheses", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant parentheses", + "markdown": "Redundant parentheses" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/EldenRing.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 430, + "startColumn": 24, + "charOffset": 14128, + "charLength": 1, + "snippet": { + "text": "(" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 428, + "startColumn": 1, + "charOffset": 14092, + "charLength": 203, + "snippet": { + "text": " }\r\n\r\n var category = (eventFlagId / divisor); //stored in rax after; div r8d\r\n var leastSignificantDigits = eventFlagId - (category * divisor);//stored in r11 after; sub r11d,r8d\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ffa2206305d4f70a", + "equalIndicator/v1": "8b6e0fe30b481a04a160fe2a8b8c272bce052d8664d12e6578027a877b78bbed" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeRedundantParentheses", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant parentheses", + "markdown": "Redundant parentheses" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Sekiro/Sekiro.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 316, + "startColumn": 86, + "charOffset": 11933, + "charLength": 1, + "snippet": { + "text": "(" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 314, + "startColumn": 1, + "charOffset": 11793, + "charLength": 219, + "snippet": { + "text": " if (found)\r\n {\r\n flagWorldBlockInfoCategory = worldInfoBlockVector!.ReadInt32((index * 0xb0) + 0x20);\r\n break;\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5524b00dfa430611", + "equalIndicator/v1": "8c8acdec5d4eb464186d5fcbed14024b0b3fa05bb5cc7827a27eb1aee4f63e47" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeRedundantParentheses", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant parentheses", + "markdown": "Redundant parentheses" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/EldenRing.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 431, + "startColumn": 52, + "charOffset": 14236, + "charLength": 1, + "snippet": { + "text": "(" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 429, + "startColumn": 1, + "charOffset": 14103, + "charLength": 279, + "snippet": { + "text": "\r\n var category = (eventFlagId / divisor); //stored in rax after; div r8d\r\n var leastSignificantDigits = eventFlagId - (category * divisor);//stored in r11 after; sub r11d,r8d\r\n\r\n var currentElement = _virtualMemoryFlag.CreatePointerFromAddress(0x38); //rdx\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "65047b983ec007e4", + "equalIndicator/v1": "9123b0a46e647534394c16b315844bfee8acd52b7ca42bf34cf6e0d518081494" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeRedundantParentheses", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant parentheses", + "markdown": "Redundant parentheses" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/FlagTrackerViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 201, + "startColumn": 42, + "charOffset": 6725, + "charLength": 1, + "snippet": { + "text": "(" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 199, + "startColumn": 1, + "charOffset": 6594, + "charLength": 249, + "snippet": { + "text": " {\r\n var done = _lookup.Count(i => i.eventFlag.State);\r\n var percentageDone = (done / (float)_lookup.Count) * 100.0f;\r\n Progress = $\"{percentageDone:0.00}%\";\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0e59b95f0e06e587", + "equalIndicator/v1": "985df20db0831b3f5adcdf9d17bfa5e6236216e2650f5c77ba756341110f9498" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "ArrangeRedundantParentheses", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant parentheses", + "markdown": "Redundant parentheses" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Sl2Reader.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 101, + "startColumn": 42, + "charOffset": 3440, + "charLength": 1, + "snippet": { + "text": "(" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 99, + "startColumn": 1, + "charOffset": 3375, + "charLength": 124, + "snippet": { + "text": " try\r\n {\r\n return File.Exists(path) && !(new FileInfo(path).IsReadOnly);\r\n }\r\n catch\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f75d028f547a06bc", + "equalIndicator/v1": "a839517ff4ad05ac4534e9f6bf7a8606a9864aa635fafc0b1b596f47884cb361" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeRedundantParentheses", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant parentheses", + "markdown": "Redundant parentheses" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/ParamClassGenerator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 226, + "startColumn": 67, + "charOffset": 9718, + "charLength": 1, + "snippet": { + "text": "(" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 224, + "startColumn": 1, + "charOffset": 9563, + "charLength": 282, + "snippet": { + "text": "\r\n //Check if bitfield is out of storage, and next bitfield should start\r\n if (currentBitfield.Bitfields.Sum(b => b.size) >= (ParamData.ParamByteSize[currentBitfield.ParamType] * 8))\r\n {\r\n result.Add(currentBitfield);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d95001950d77112e", + "equalIndicator/v1": "c306a9610647d511162f4a3aa258c164fc93e9205e49f2e56650452dc51e851d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeRedundantParentheses", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant parentheses", + "markdown": "Redundant parentheses" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/soulmods/Soulmods.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 104, + "startColumn": 39, + "charOffset": 3708, + "charLength": 1, + "snippet": { + "text": "(" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 102, + "startColumn": 1, + "charOffset": 3627, + "charLength": 283, + "snippet": { + "text": " if (requestedSize > 0)\r\n {\r\n var totalSize = (int)(4 + (requestedSize * Marshal.SizeOf()));\r\n buffer = process.Allocate(totalSize);\r\n process.WriteProcessMemory(buffer.ToInt64(), BitConverter.GetBytes(requestedSize));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "2786737dc7365865", + "equalIndicator/v1": "d2ce41ee206cce8c0e15f705c4ae3fc3834fb510c83358c0454eabad0aae6585" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeRedundantParentheses", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant parentheses", + "markdown": "Redundant parentheses" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 362, + "startColumn": 37, + "charOffset": 12799, + "charLength": 1, + "snippet": { + "text": "(" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 360, + "startColumn": 1, + "charOffset": 12664, + "charLength": 210, + "snippet": { + "text": " offset += EventFlagAreas[area] * 0x500;\r\n offset += section * 128;\r\n offset += (number - (number % 32)) / 8;\r\n\r\n mask = 0x80000000 >> (number % 32);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "376f6349c2b2702c", + "equalIndicator/v1": "d5977743ab66dceadd1ea7efddda82e32921a23fc8c1ab09bd00fa78fc1715c4" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeRedundantParentheses", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant parentheses", + "markdown": "Redundant parentheses" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 213, + "startColumn": 37, + "charOffset": 7544, + "charLength": 1, + "snippet": { + "text": "(" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 211, + "startColumn": 1, + "charOffset": 7475, + "charLength": 219, + "snippet": { + "text": " else\r\n {\r\n calculatedPointer = (_eventFlagMan.ReadInt32(0x20) * currentElement.ReadInt32(0x30)) +\r\n _eventFlagMan.ReadInt64(0x28);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e715b1f9ec1872a3", + "equalIndicator/v1": "dd41fff5817797736c13cecade2dadb6fab1d6681b8c9936c58251d8fdccccb9" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeRedundantParentheses", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant parentheses", + "markdown": "Redundant parentheses" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 260, + "startColumn": 86, + "charOffset": 9136, + "charLength": 1, + "snippet": { + "text": "(" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 258, + "startColumn": 1, + "charOffset": 8996, + "charLength": 219, + "snippet": { + "text": " if (found)\r\n {\r\n flagWorldBlockInfoCategory = worldInfoBlockVector!.ReadInt32((index * 0x70) + 0x20);\r\n break;\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "44112d11c40e0580", + "equalIndicator/v1": "f3939f9bf5064b781579004d3590caacbeae5c4c8d3806559ee06b3751395e7d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeRedundantParentheses", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant parentheses", + "markdown": "Redundant parentheses" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 303, + "startColumn": 37, + "charOffset": 10855, + "charLength": 1, + "snippet": { + "text": "(" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 301, + "startColumn": 1, + "charOffset": 10720, + "charLength": 210, + "snippet": { + "text": " offset += EventFlagAreas[area] * 0x500;\r\n offset += section * 128;\r\n offset += (number - (number % 32)) / 8;\r\n\r\n mask = 0x80000000 >> (number % 32);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c98148e7bd37efeb", + "equalIndicator/v1": "f5f48e66e97fbfda30ddc4308781febf275ac5d3190350c052c7b5ec8d560ea3" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeRedundantParentheses", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant parentheses", + "markdown": "Redundant parentheses" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 166, + "startColumn": 52, + "charOffset": 5859, + "charLength": 1, + "snippet": { + "text": "(" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 164, + "startColumn": 1, + "charOffset": 5726, + "charLength": 260, + "snippet": { + "text": "\r\n var category = (eventFlagId / divisor); //stored in rax after; div r8d\r\n var leastSignificantDigits = eventFlagId - (category * divisor); //stored in r11 after; sub r11d,r8d\r\n\r\n var currentElement = _eventFlagMan.Pointer64(0x38); //rdx\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "60f16b732384a89d", + "equalIndicator/v1": "f675f59c863a926e92405f861322e2b815dd77d06d2f143d942ec2c9c58041a4" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/KnownFlag.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 202, + "startColumn": 30, + "charOffset": 6276, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 200, + "startColumn": 1, + "charOffset": 6190, + "charLength": 90, + "snippet": { + "text": "\r\n [Annotation(Name = \"Takes Rold Lift 1050542200\")]\r\n TakeGoldLift = 1050542200,\r\n}" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f6bf46accecaac74", + "equalIndicator/v1": "02b5b9d74136feac11826a20813b9d7e2eca69605225290e7a2cbb0574862d41" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/MainViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 411, + "startColumn": 26, + "charOffset": 12814, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 409, + "startColumn": 1, + "charOffset": 12738, + "charLength": 92, + "snippet": { + "text": " {\r\n OmitXmlDeclaration = true,\r\n Indent = true,\r\n };\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4fe94a9d4892466c", + "equalIndicator/v1": "0626affa7197d88dca836643cfb7e6802e5ec10a005fa211160d17d8b3c6d7a4" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerTreeBuilder.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 52, + "startColumn": 28, + "charOffset": 1950, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 50, + "startColumn": 1, + "charOffset": 1865, + "charLength": 124, + "snippet": { + "text": " Name = name,\r\n Pattern = pattern,\r\n Offset = offset,\r\n };\r\n Tree.Add(node);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "2ee5d670be778e17", + "equalIndicator/v1": "0894c57e42d8537d60578ea5fb49124172d51ee0ace3beadb73e5f63b60c0a3a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Sekiro/Idol.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 187, + "startColumn": 25, + "charOffset": 7292, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 185, + "startColumn": 1, + "charOffset": 7191, + "charLength": 107, + "snippet": { + "text": "\r\n [Annotation(Name = \"Sanctuary\", Description = \"Fountainhead Palace\")]\r\n Sanctuary = 12500005,\r\n}\r\n" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "1ae93317d7d35739", + "equalIndicator/v1": "0ad38dafc35520064fed56dd33f089b26006447282e276b8e18fc57246c52e89" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/TimerState.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 22, + "startColumn": 12, + "charOffset": 901, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 20, + "startColumn": 1, + "charOffset": 868, + "charLength": 39, + "snippet": { + "text": "{\r\n WaitForStart,\r\n Running,\r\n}\r\n" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ecce4cbd77150d34", + "equalIndicator/v1": "0c6b6114016ed7719d967d90f772fc3b56328c2be3ffa13078899930a13f766e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 285, + "startColumn": 20, + "charOffset": 10136, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 283, + "startColumn": 1, + "charOffset": 10073, + "charLength": 75, + "snippet": { + "text": " {\"170\", 15},\r\n {\"180\", 16},\r\n {\"181\", 17},\r\n };\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "47ec88614913638d", + "equalIndicator/v1": "0d72a9b53c1bb7f6f769785ed2a8fa51643707517ca170e5aec34323399206bd" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Boss.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 100, + "startColumn": 33, + "charOffset": 2925, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 98, + "startColumn": 1, + "charOffset": 2840, + "charLength": 91, + "snippet": { + "text": " \r\n [Annotation(Name = \"Sanctuary Guardian\")]\r\n SanctuaryGuardian = 11210000,\r\n}\r\n" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4f853b5fb50ba8fd", + "equalIndicator/v1": "0dabb17374a4854d8512b4f9ea09f67cff7f865f3c4ffff308be975b03263d60" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/KnownFlag.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 178, + "startColumn": 48, + "charOffset": 8304, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 176, + "startColumn": 1, + "charOffset": 8159, + "charLength": 151, + "snippet": { + "text": "\r\n [Annotation(Name = \"Goughless Kalameeth Death Animation 11210063\", Description = \"Other\")]\r\n GoughlessKalameethDeathAnimation = 11210063,\r\n}\r\n" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5c92bd1617dddb1a", + "equalIndicator/v1": "0fb11459e7edc4bef247c57ea239076e1085b9e2175c2528952735768943b1b1" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls2/vanilla.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 173, + "startColumn": 40, + "charOffset": 5936, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 171, + "startColumn": 1, + "charOffset": 5813, + "charLength": 135, + "snippet": { + "text": " { Attribute.Adaptability, 0x14},\r\n { Attribute.Intelligence, 0x10},\r\n { Attribute.Faith , 0x12},\r\n };\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "879f400d321161f3", + "equalIndicator/v1": "16520e8d5eebc55c4233f32eee3f1ddacd567fe94e1f9190ac43c4c33cd3706d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/ItemPickup.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 10929, + "startColumn": 66, + "charOffset": 532563, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 10927, + "startColumn": 1, + "charOffset": 532395, + "charLength": 175, + "snippet": { + "text": "\r\n [Annotation(Name = \"[Scadu Altus - Swordhand of Night Jolán] Swordhand of Night Jolán 400670\")]\r\n ScaduAltusSwordhandofNightJolanSwordhandofNightJolan = 400670,\r\n\r\n}\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "daec730be4cd5f35", + "equalIndicator/v1": "17ccdf786fd79996d9540a0c5c322679eff698db8448f115e75d194f4e1aaa7c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Item.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 846, + "startColumn": 16, + "charOffset": 137629, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 844, + "startColumn": 1, + "charOffset": 137574, + "charLength": 62, + "snippet": { + "text": " SpellTools,\r\n UpgradeMaterials,\r\n UsableItems,\r\n}\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f1f54d0ad07fcfaa", + "equalIndicator/v1": "1971165a9dc7ca43f3441f8449c0a9ae270f9b01446b00112088696c2a0a490c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/ParamType.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 28, + "startColumn": 11, + "charOffset": 947, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 26, + "startColumn": 1, + "charOffset": 917, + "charLength": 36, + "snippet": { + "text": " I32,\r\n F32,\r\n Dummy8,\r\n}\r\n" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "1f36f06f25c44c0a", + "equalIndicator/v1": "1a50703812bdda992435be42afc573608cbe65e3ee78487c247819fcdf7dda9e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/Boss.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 655, + "startColumn": 47, + "charOffset": 36095, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 653, + "startColumn": 1, + "charOffset": 35952, + "charLength": 149, + "snippet": { + "text": "\r\n [Annotation(Name = \"Radahn, Consort of Miquella - Enir-Ilim\", Description = \"Enir-Ilim\")]\r\n RadahnConsortofMiquellaEnirIlim = 20010800,\r\n}\r\n" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f0f7322cfd7d06dc", + "equalIndicator/v1": "1b1f1a3a81f2b5eafeb3b0da4a29d0527cc679f78e5751dbe02d0702a2b26051" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls2/BossType.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 150, + "startColumn": 37, + "charOffset": 4714, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 148, + "startColumn": 1, + "charOffset": 4616, + "charLength": 104, + "snippet": { + "text": "\r\n [Annotation(Name = \"Lud and Zallen, the King's Pets\")]\r\n LudAndZallenTheKingsPets = 0x108,\r\n}\r\n" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "756b923fd309b6cb", + "equalIndicator/v1": "252c9d023f1866726d97d16e17dbf4338c7abd51494413c19ee86dc25748d271" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/ParamReader.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 43, + "startColumn": 80, + "charOffset": 1708, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 41, + "startColumn": 1, + "charOffset": 1475, + "charLength": 290, + "snippet": { + "text": " ItemLowRange = BitConverter.ToUInt32(tableBytes, offset),\r\n DataOffset = BitConverter.ToUInt32(tableBytes, offset + 0x4),\r\n ItemHighRange = BitConverter.ToUInt32(tableBytes, offset + 0x8),\r\n };\r\n data.Add(textTableEntry);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b2190f6e690075e3", + "equalIndicator/v1": "2fb1ada78746fbec80530fcf348726acfb26c368e30e258608195be41198ce86" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls3/Attributes.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 35, + "startColumn": 20, + "charOffset": 1192, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 33, + "startColumn": 1, + "charOffset": 1148, + "charLength": 50, + "snippet": { + "text": "\r\n SoulLevel = 0x70,\r\n Humanity = 0x68,\r\n}\r\n" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "cf0beab847aca9fa", + "equalIndicator/v1": "2fcd7d0fb47ea9c70b96756e827abc791ab7584d01b92ed50eb2b4f57cbda576" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Item.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 1561, + "startColumn": 18, + "charOffset": 153056, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 1559, + "startColumn": 1, + "charOffset": 152996, + "charLength": 66, + "snippet": { + "text": " VerygoodCarving,\r\n ImsorryCarving,\r\n HelpmeCarving,\r\n}\r\n" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "6c32bb802e398daa", + "equalIndicator/v1": "31c6184f212ab99e81356f1deca7c6765580d5ba73b1c0adc8cbc1ba5d209074" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls3/Boss.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 99, + "startColumn": 31, + "charOffset": 4124, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 97, + "startColumn": 1, + "charOffset": 4009, + "charLength": 121, + "snippet": { + "text": " \r\n [Annotation(Name = \"Slave Knight Gael\", Description = \"The Ringed City\")]\r\n SlaveKnightGael = 15110800,\r\n}\r\n" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "548040b489e8dba9", + "equalIndicator/v1": "3d0496607a9b4e3f400ef585554ed183f3f215ddd90890fe30980bb3262c9509" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerAppender.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 37, + "startColumn": 30, + "charOffset": 1420, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 35, + "startColumn": 1, + "charOffset": 1314, + "charLength": 162, + "snippet": { + "text": " Pattern = _pointerNode.Pattern,\r\n Offsets = offsets,\r\n Pointer = pointer,\r\n };\r\n _pointerNode.Pointers.Add(node);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "92186ca04e49fa1d", + "equalIndicator/v1": "3df5b59cf9b5aae34e772631ace59fdfbebcbac77ba1b7eda8f720324c31b208" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls3/Bonfire.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 253, + "startColumn": 31, + "charOffset": 9926, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 251, + "startColumn": 1, + "charOffset": 9817, + "charLength": 115, + "snippet": { + "text": "\r\n [Annotation(Name = \"Slave Knight Gael\", Description=\"The Ringed City\")]\r\n SlaveKnightGael = 15110000,\r\n}\r\n" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "76162a5c674efb73", + "equalIndicator/v1": "42151814e33eebc75bebc44314b52abf74a6521ebb09156860a10d8a5ec5cc24" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerNodeType.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 23, + "startColumn": 12, + "charOffset": 941, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 21, + "startColumn": 1, + "charOffset": 892, + "charLength": 55, + "snippet": { + "text": " RelativeScan,\r\n AbsoluteScan,\r\n Pointer,\r\n}\r\n" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "3dbddf5d2170479f", + "equalIndicator/v1": "511f51d4946e9442ff961bd3b08a39b4730c197a973cacccf02c8bae1e74f154" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls2/scholar.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 204, + "startColumn": 40, + "charOffset": 7657, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 202, + "startColumn": 1, + "charOffset": 7534, + "charLength": 135, + "snippet": { + "text": " { Attribute.Adaptability, 0x18},\r\n { Attribute.Intelligence, 0x14},\r\n { Attribute.Faith , 0x16},\r\n };\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "929d9d9442ffaeba", + "equalIndicator/v1": "59e5adfe4c656f9bb83b953ab6907a5ab811ff4403f62935452d427ce5feea42" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Sekiro/Boss.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 67, + "startColumn": 31, + "charOffset": 2258, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 65, + "startColumn": 1, + "charOffset": 2169, + "charLength": 95, + "snippet": { + "text": "\r\n [Annotation(Name = \"Isshin, the Sword Saint\")] \r\n IsshinTheSwordSaint = 9312,\r\n}\r\n" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "37416a72017c6bd7", + "equalIndicator/v1": "5b15504d4fb3e3155e4d1d1f5f366875ec06c8f0f365df551581f3768147c265" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Attribute.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 33, + "startColumn": 21, + "charOffset": 1184, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 31, + "startColumn": 1, + "charOffset": 1123, + "charLength": 67, + "snippet": { + "text": " Faith = 0x68,\r\n Humanity = 0x7C,\r\n SoulLevel = 0x88,\r\n}\r\n" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "eeaf23cc63adee7c", + "equalIndicator/v1": "5bf4a4e621c402f1f06e5f4ac20ec1f35d2f5eefd90980733b7baedd4c470a70" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/EventFlagTrackerDisplayMode.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 22, + "startColumn": 10, + "charOffset": 915, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 20, + "startColumn": 1, + "charOffset": 886, + "charLength": 35, + "snippet": { + "text": "{\r\n Percentage,\r\n Count,\r\n}\r\n" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "37e025d47437f7f5", + "equalIndicator/v1": "6d771ba5c3ff743d0a9caf8e02971fcffc47303966a0ca6d85d8e900c377712b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Process/ProcessWrapperModule.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 36, + "startColumn": 55, + "charOffset": 1455, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 34, + "startColumn": 1, + "charOffset": 1313, + "charLength": 163, + "snippet": { + "text": " FileName = module.FileName,\r\n BaseAddress = module.BaseAddress,\r\n ModuleMemorySize = module.ModuleMemorySize,\r\n };\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "de105fcaf3b73632", + "equalIndicator/v1": "6fd6ff17af4a42d2d0433b345ffe84ec26411d225dfd63b2a32c82aa3a9953d0" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerTreeBuilder.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 39, + "startColumn": 46, + "charOffset": 1575, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 37, + "startColumn": 1, + "charOffset": 1454, + "charLength": 160, + "snippet": { + "text": " Pattern = pattern,\r\n AddressOffset = addressOffset,\r\n InstructionSize = instructionSize,\r\n };\r\n Tree.Add(node);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0b3c8e2616058ae0", + "equalIndicator/v1": "6ffb5d7a32492157faba66d72c9eaa6cad6f802c17caed477573b213b189110b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/MainViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 161, + "startColumn": 37, + "charOffset": 5645, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 159, + "startColumn": 1, + "charOffset": 5560, + "charLength": 134, + "snippet": { + "text": " {\r\n DateTime = DateTime.Now,\r\n Error = error.ToString(),\r\n };\r\n AddError(errorViewModel);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "910b3fa90ba4d1bc", + "equalIndicator/v1": "7925673ab5eafc95fc3395f00a6a880aefc0bc47a8399d3ccc2ea9d92ae0dc20" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls2/Attribute.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 33, + "startColumn": 10, + "charOffset": 1106, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 31, + "startColumn": 1, + "charOffset": 1059, + "charLength": 53, + "snippet": { + "text": " Adaptability,\r\n Intelligence,\r\n Faith,\r\n}\r\n" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "510457a2c01e0df5", + "equalIndicator/v1": "7f7c64753831c07ebf5250e4876d4883bcc494dd53757f88891ede6344cccabf" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/ParamData.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 33, + "startColumn": 32, + "charOffset": 1345, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 31, + "startColumn": 1, + "charOffset": 1246, + "charLength": 112, + "snippet": { + "text": " { ParamType.U32, 4 },\r\n { ParamType.I32, 4 },\r\n { ParamType.F32, 4 },\r\n });\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "bf301091cf4843ea", + "equalIndicator/v1": "818a305b9af7ff8b2844394b691aac557037bc1cb6a0a1ce770c416b3ef9e217" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Bonfire.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 151, + "startColumn": 30, + "charOffset": 5981, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 149, + "startColumn": 1, + "charOffset": 5867, + "charLength": 121, + "snippet": { + "text": "\r\n [Annotation(Name = \"Chasm of the Abyss\", Description = \"Chasm of the Abyss\")]\r\n ChasmOfTheAbyss = 1211950,\r\n}\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b70db9ad7ecf40ce", + "equalIndicator/v1": "846a855842d84173311f13d0b403d2d0a53cb7ac6d195bc921adb2492b549794" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/Game.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 26, + "startColumn": 21, + "charOffset": 986, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 24, + "startColumn": 1, + "charOffset": 929, + "charLength": 63, + "snippet": { + "text": " Sekiro = 3,\r\n EldenRing = 4,\r\n ArmoredCore6 = 5,\r\n}\r\n" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "3aa43315d041c9fb", + "equalIndicator/v1": "8de6e8f09b1ad6210ec127c311eff1930d2e7c11af49ab0116dba86c22b0227b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls2/WarpType.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 97, + "startColumn": 19, + "charOffset": 2487, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 95, + "startColumn": 1, + "charOffset": 2433, + "charLength": 60, + "snippet": { + "text": " InnerWall,\r\n LowerGarrison,\r\n GrandCathedral,\r\n}\r\n" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4f3d8e8d28be832b", + "equalIndicator/v1": "91a34087a2cce745a8a65f6813bf46628f1c000c3cb385a5e730861691fa38f3" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/TreeBuilder.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 38, + "startColumn": 46, + "charOffset": 1580, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 36, + "startColumn": 1, + "charOffset": 1459, + "charLength": 160, + "snippet": { + "text": " Pattern = pattern,\r\n AddressOffset = addressOffset,\r\n InstructionSize = instructionSize,\r\n };\r\n Tree.Add(node);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4752732f2e073e6b", + "equalIndicator/v1": "920395d9ceb0b10a92b204ba0214718d60c25fc3d27af3f4d378dc621fa6a24e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/EldenRing.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 308, + "startColumn": 60, + "charOffset": 11002, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 306, + "startColumn": 1, + "charOffset": 10819, + "charLength": 204, + "snippet": { + "text": " X = _playerIns.ReadFloat(_positionOffset + 0x0),\r\n Y = _playerIns.ReadFloat(_positionOffset + 0x4),\r\n Z = _playerIns.ReadFloat(_positionOffset + 0x8),\r\n };\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9630422bb3a87f7a", + "equalIndicator/v1": "9287d70685f83d37a4ae0dc7c7c0d8ace9e7ec0a9fc03bcf0f2e1c8ca7487592" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 125, + "startColumn": 14, + "charOffset": 4833, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 123, + "startColumn": 1, + "charOffset": 4790, + "charLength": 55, + "snippet": { + "text": " V104,\r\n V105,\r\n Later,\r\n };\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "249f7539564c8d58", + "equalIndicator/v1": "991e25842cf70d7fa171833ef03be5124f437825c894a1e80299a6d4e54ca87e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/TimingType.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 33, + "startColumn": 11, + "charOffset": 1121, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 31, + "startColumn": 1, + "charOffset": 1073, + "charLength": 54, + "snippet": { + "text": "\r\n [Annotation(Name = \"on warp\")]\r\n OnWarp,\r\n}\r\n" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "eafb3ad2ecfff10f", + "equalIndicator/v1": "996406a3015f1fd804b0a5749a11585b4443f30c67cee08c2a7aebf5b2c4d173" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/Grace.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 1349, + "startColumn": 26, + "charOffset": 50968, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 1347, + "startColumn": 1, + "charOffset": 50871, + "charLength": 103, + "snippet": { + "text": "\r\n [Annotation(Name = \"Scadutree Base\", Description = \"Scaduview\")]\r\n ScadutreeBase = 76960,\r\n}\r\n" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "93a9dc2ea6bde67c", + "equalIndicator/v1": "9ba0f2870c7c7c50283f96c01892f571f7957d36db348e3ca1e0fed5bb5105b5" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/RefreshError.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 76, + "startColumn": 18, + "charOffset": 2166, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 74, + "startColumn": 1, + "charOffset": 2109, + "charLength": 63, + "snippet": { + "text": " MainModuleNull,\r\n AccessDenied,\r\n ModLoadFailed,\r\n}\r\n" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "8e44e11527578eef", + "equalIndicator/v1": "9ce686b25cee873302605772ee7df7273dfa686c6852f3d2e5b1d8f9d44c2e66" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/TreeBuilder.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 51, + "startColumn": 28, + "charOffset": 1942, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 49, + "startColumn": 1, + "charOffset": 1857, + "charLength": 124, + "snippet": { + "text": " Name = name,\r\n Pattern = pattern,\r\n Offset = offset,\r\n };\r\n Tree.Add(node);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7c2ef33b7ea33ee8", + "equalIndicator/v1": "9e5fef2c3ee49d055704d85fa50ebacee211a8a098e43d2f32457af2074be834" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/ParamData.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 45, + "startColumn": 39, + "charOffset": 1822, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 43, + "startColumn": 1, + "charOffset": 1702, + "charLength": 133, + "snippet": { + "text": " { ParamType.U32, \"uint\" },\r\n { ParamType.I32, \"int\" },\r\n { ParamType.F32, \"float\" },\r\n });\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d7d4c992a06642ea", + "equalIndicator/v1": "9f9157a4bce1bd978c5697647cf9c7042650b758ae31e68798d3be1221b8a687" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Item.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 830, + "startColumn": 26, + "charOffset": 137408, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 828, + "startColumn": 1, + "charOffset": 137333, + "charLength": 82, + "snippet": { + "text": " InfusableRestricted = 4,\r\n PyroFlame = 5,\r\n PyroFlameAscended = 6,\r\n}\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "825d6aa8534194cf", + "equalIndicator/v1": "a8a1d6f7144cf65af269d0e95c666599de4d370b567d086da9c461d0335407a9" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 344, + "startColumn": 20, + "charOffset": 12076, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 342, + "startColumn": 1, + "charOffset": 12013, + "charLength": 75, + "snippet": { + "text": " {\"170\", 15},\r\n {\"180\", 16},\r\n {\"181\", 17},\r\n };\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d929e39bd5da06ad", + "equalIndicator/v1": "ac791e1b5341386f2ee9c81624bd804c5f62732c78dd6505378c046d5614b53b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/soulmemory-rs/SoulMemoryRs.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 38, + "startColumn": 27, + "charOffset": 1326, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 36, + "startColumn": 1, + "charOffset": 1251, + "charLength": 91, + "snippet": { + "text": " \"sekiro\",\r\n \"eldenring\",\r\n \"armoredcore6\",\r\n };\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0482f06de81d50a2", + "equalIndicator/v1": "afe46c4bb17b1ed2e747dd746747ad42d62e591d503af781b52378e235b921de" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 322, + "startColumn": 23, + "charOffset": 11583, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 320, + "startColumn": 1, + "charOffset": 11511, + "charLength": 88, + "snippet": { + "text": " {\"5\", 0x05F00},\r\n {\"6\", 0x0B900},\r\n {\"7\", 0x11300},\r\n };\r\n \r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "599f75481ab92a9f", + "equalIndicator/v1": "b04df3030832263939d7c7d95cb601855bbd45b726d3313a63373f780bf3e7c9" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Item.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 819, + "startColumn": 14, + "charOffset": 137229, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 817, + "startColumn": 1, + "charOffset": 137184, + "charLength": 52, + "snippet": { + "text": " Occult = 7,\r\n Fire = 8,\r\n Chaos = 9,\r\n}\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "14f1c295df7ca351", + "equalIndicator/v1": "b4de3deb49a93b481a454ade60f285f9b96531c1980de0bcddc31759392033e2" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Item.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 804, + "startColumn": 193, + "charOffset": 137016, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 802, + "startColumn": 1, + "charOffset": 136434, + "charLength": 596, + "snippet": { + "text": " new(\"Very good! Carving\" , 512, ItemType.VerygoodCarving , ItemCategory.UsableItems , 1, ItemUpgrade.None ),\r\n new(\"I'm sorry Carving\" , 513, ItemType.ImsorryCarving , ItemCategory.UsableItems , 1, ItemUpgrade.None ),\r\n new(\"Help me! Carving\" , 514, ItemType.HelpmeCarving , ItemCategory.UsableItems , 1, ItemUpgrade.None ),\r\n });\r\n}\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e5d8ce038cd060f9", + "equalIndicator/v1": "b5cf2dd53d3ac893726f24a3d2ee5764d2ff345ac656cfbf94cf0617b96aa5f2" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 263, + "startColumn": 23, + "charOffset": 9647, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 261, + "startColumn": 1, + "charOffset": 9575, + "charLength": 84, + "snippet": { + "text": " {\"5\", 0x05F00},\r\n {\"6\", 0x0B900},\r\n {\"7\", 0x11300},\r\n };\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5245238c704f9740", + "equalIndicator/v1": "bf7669765dbe4f2c5e15067f92933fc6e8f19a3019969a3e24eca4111c467b33" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/NodeType.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 23, + "startColumn": 12, + "charOffset": 913, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 21, + "startColumn": 1, + "charOffset": 864, + "charLength": 55, + "snippet": { + "text": " RelativeScan,\r\n AbsoluteScan,\r\n Pointer,\r\n}\r\n" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c958cc14de0cf31b", + "equalIndicator/v1": "c0c712b00b60486b890383d7dd05068921b2e8ac56fec25c9f2bae2c7f87eb75" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Process/ProcessRefreshResult.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 25, + "startColumn": 14, + "charOffset": 966, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 23, + "startColumn": 1, + "charOffset": 928, + "charLength": 44, + "snippet": { + "text": " Exited,\r\n Error,\r\n Refreshed,\r\n}\r\n" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a00e65c91029a544", + "equalIndicator/v1": "c5dfb61e789a0d78e98645979914aefce4553861b8ae77a979a0f8cbc9467397" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splits/DarkSouls2/DarkSouls2SplitType.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 24, + "startColumn": 9, + "charOffset": 942, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 22, + "startColumn": 1, + "charOffset": 903, + "charLength": 45, + "snippet": { + "text": " BossKill,\r\n Attribute,\r\n Flag,\r\n}\r\n" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "8e4b41ca2df22cc0", + "equalIndicator/v1": "c610eb93918c7f764447d92b786768e6eced2176012e8de7e5857d44c8cfc9a8" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/ParamData.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 57, + "startColumn": 39, + "charOffset": 2289, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 55, + "startColumn": 1, + "charOffset": 2169, + "charLength": 134, + "snippet": { + "text": " { \"u32\", ParamType.U32 },\r\n { \"s32\", ParamType.I32 },\r\n { \"f32\", ParamType.F32 },\r\n });\r\n}\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e318203fb9b0d941", + "equalIndicator/v1": "c70de4f2b1be76c28588309b0d7e30dc8bee65c1041b49628177bb5016750cf7" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Extensions.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 51, + "startColumn": 26, + "charOffset": 1676, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 49, + "startColumn": 1, + "charOffset": 1600, + "charLength": 92, + "snippet": { + "text": " {\r\n OmitXmlDeclaration = true,\r\n Indent = true,\r\n };\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b63d6df0c9c18841", + "equalIndicator/v1": "d8bda459b6f34d33ac4625bbc303def9ffe7ca28428f0de7967fd45b081b2a33" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/MainViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 171, + "startColumn": 33, + "charOffset": 5884, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 169, + "startColumn": 1, + "charOffset": 5803, + "charLength": 130, + "snippet": { + "text": " {\r\n DateTime = DateTime.Now,\r\n Error = e.ToString(),\r\n };\r\n AddError(errorViewModel);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "bece741bc21484e7", + "equalIndicator/v1": "dd11eac4c42eed7f6aaa3e24ea3afaecf1f4958f9b48819cf8fe6117efd575f7" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Validation/TextToNumberValidation.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 27, + "startColumn": 10, + "charOffset": 984, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 25, + "startColumn": 1, + "charOffset": 954, + "charLength": 37, + "snippet": { + "text": " Int,\r\n Uint,\r\n Float,\r\n}\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "01feeaea45f36fa0", + "equalIndicator/v1": "e52013a70571b9156e377466a810ca400660706400500af4eea5dc3f29ae1a7b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/PointerAppender.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 35, + "startColumn": 30, + "charOffset": 1348, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 33, + "startColumn": 1, + "charOffset": 1242, + "charLength": 162, + "snippet": { + "text": " Pattern = _pointerNode.Pattern,\r\n Offsets = offsets,\r\n Pointer = pointer,\r\n };\r\n _pointerNode.Pointers.Add(node);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "68126ee024dad656", + "equalIndicator/v1": "ec6add68c98f4d08e10c970ff1c6cbfa9e079e7be173cf23af44f99029e0974b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Bonfire.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 173, + "startColumn": 18, + "charOffset": 6426, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 171, + "startColumn": 1, + "charOffset": 6369, + "charLength": 63, + "snippet": { + "text": "\r\n [Annotation(Name = \"Kindled 3\")]\r\n Kindled3 = 40,\r\n}\r\n" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "6d056d0fec44a561", + "equalIndicator/v1": "ed3249c25f910a456037edc3e27b71affa3a7f3e5670bc0dd73ae411d36c06ee" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls3/ItemPickup.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 3454, + "startColumn": 28, + "charOffset": 137606, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 3452, + "startColumn": 1, + "charOffset": 137526, + "charLength": 86, + "snippet": { + "text": "\r\n [Annotation(Name = \"Green Blossom 53400040\")]\r\n GreenBlossom = 53400040,\r\n}\r\n" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0409d460c24bcb70", + "equalIndicator/v1": "ed4ba6fe818070ee7664d9f92640780eca409b700217c7dafee326e413b67f23" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/ParamReader.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 76, + "startColumn": 82, + "charOffset": 2945, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 74, + "startColumn": 1, + "charOffset": 2711, + "charLength": 254, + "snippet": { + "text": " Id = BitConverter.ToInt32(paramTableBytes, offset),\r\n DataOffset = BitConverter.ToUInt32(paramTableBytes, offset + 0x4),\r\n NameOffset = BitConverter.ToUInt32(paramTableBytes, offset + 0x8),\r\n };\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0d115fb10de46265", + "equalIndicator/v1": "f1c11e037079521acf2121aba141a18c83bd54683113dd6af96ea87641712e5d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls2/Data.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 110, + "startColumn": 83, + "charOffset": 7916, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 108, + "startColumn": 1, + "charOffset": 7670, + "charLength": 260, + "snippet": { + "text": " new(WarpType.InnerWall , 841285632, 37685, \"Inner Wall\"),\r\n new(WarpType.LowerGarrison , 841285632, 37665, \"Lower Garrison\"),\r\n new(WarpType.GrandCathedral , 841285632, 37670, \"Grand Cathedral\"),\r\n });\r\n}\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "2dde74bf742a1967", + "equalIndicator/v1": "f658cc98ec92196c50aadf468b3634fea440089d760421877083e6d1e76216a8" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/SplitType.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 48, + "startColumn": 12, + "charOffset": 1382, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 46, + "startColumn": 1, + "charOffset": 1333, + "charLength": 55, + "snippet": { + "text": "\r\n [Annotation(Name = \"Credits\")]\r\n Credits,\r\n}\r\n" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e68791d96661ea8e", + "equalIndicator/v1": "f9c2d8ac308003c78ad1419c57cbefa618d42db21c9e4da259b9b543f6ee5304" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/Item.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 2710, + "startColumn": 117, + "charOffset": 305492, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 2708, + "startColumn": 1, + "charOffset": 305143, + "charLength": 363, + "snippet": { + "text": " new() { Category = Category.Weapons,GroupName = \"Spell Tools\", Name = \"Erdtree Seal\", Id = 34070000 },\r\n new() { Category = Category.Weapons,GroupName = \"Spell Tools\", Name = \"Dragon Communion Seal\", Id = 34080000 },\r\n new() { Category = Category.Weapons,GroupName = \"Spell Tools\", Name = \"Frenzied Flame Seal\", Id = 34090000 },\r\n });\r\n}\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "cd033181948fefa0", + "equalIndicator/v1": "fa4cb29ed6d74d888c41160f88f01735543aaf7b70b689420a08e4ed83e1713c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splits/EldenRing/EldenRingSplitType.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 27, + "startColumn": 14, + "charOffset": 976, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 25, + "startColumn": 1, + "charOffset": 937, + "charLength": 45, + "snippet": { + "text": " Item,\r\n Position,\r\n KnownFlag,\r\n}\r\n" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c809e570e5eec3ca", + "equalIndicator/v1": "fc1823f3859a2b409f1f5f819057c5e42fe7a3ad979539399139202f13eb0cc5" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "ArrangeTrailingCommaInMultilineLists", + "kind": "fail", + "level": "note", + "message": { + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/EldenRing.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 273, + "startColumn": 16, + "charOffset": 9890, + "charLength": 1, + "snippet": { + "text": "," + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 271, + "startColumn": 1, + "charOffset": 9855, + "charLength": 47, + "snippet": { + "text": " V1_16_0,\r\n\r\n Unknown,\r\n };\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4feb9ff248d7c9e8", + "equalIndicator/v1": "fddc9d3589242ef21948b7e39db155d130bb2d311702d03a1e6dc1c85ed86e24" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ArrangeTypeMemberModifiers", + "kind": "fail", + "level": "note", + "message": { + "text": "Inconsistent modifiers style: missing 'private' modifier", + "markdown": "Inconsistent modifiers style: missing 'private' modifier" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2Control.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 35, + "startColumn": 10, + "charOffset": 1253, + "charLength": 20, + "snippet": { + "text": "OnDataContextChanged" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 33, + "startColumn": 1, + "charOffset": 1235, + "charLength": 151, + "snippet": { + "text": " }\r\n\r\n void OnDataContextChanged(object sender, DependencyPropertyChangedEventArgs e)\r\n {\r\n if (DataContext is DarkSouls2ViewModel vm)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "840b3ba1ece23099", + "equalIndicator/v1": "22ed5774bf0ae7ad9d5ea09324bebdf6b17b328f405755fc6a818321d00a3b70" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "ArrangeTypeMemberModifiers", + "kind": "fail", + "level": "note", + "message": { + "text": "Inconsistent modifiers style: missing 'private' modifier", + "markdown": "Inconsistent modifiers style: missing 'private' modifier" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Native/Structs/Process/PROCESSENTRY32.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 25, + "startColumn": 15, + "charOffset": 1023, + "charLength": 8, + "snippet": { + "text": "MAX_PATH" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 23, + "startColumn": 1, + "charOffset": 974, + "charLength": 125, + "snippet": { + "text": "internal struct PROCESSENTRY32\r\n{\r\n const int MAX_PATH = 260;\r\n internal UInt32 dwSize;\r\n internal UInt32 cntUsage;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "65591d933bdb8017", + "equalIndicator/v1": "e74927c83eed690f2d39e9e0ff9175e850d402ecdbaa75d1fb5a8bb9206ee128" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "AssignNullToNotNullAttribute", + "kind": "fail", + "level": "warning", + "message": { + "text": "Possible 'null' assignment to non-nullable entity", + "markdown": "Possible 'null' assignment to non-nullable entity" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/SoulComponent.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 372, + "startColumn": 46, + "charOffset": 13137, + "charLength": 9, + "snippet": { + "text": "directory" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 370, + "startColumn": 1, + "charOffset": 13028, + "charLength": 228, + "snippet": { + "text": " var directory = Path.GetDirectoryName(assemblyPath);\r\n\r\n var files = Directory.EnumerateFiles(directory).Select(i => Path.GetFileName(i)).ToList();\r\n var missing = _installedFiles.Except(files).ToList();\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "2601f304806dc1bf", + "equalIndicator/v1": "550b46e869ff0c0d7f613577add2014b45b010d2f6d3cc872402d7bce10f3673" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "AssignNullToNotNullAttribute", + "kind": "fail", + "level": "warning", + "message": { + "text": "Possible 'null' assignment to non-nullable entity", + "markdown": "Possible 'null' assignment to non-nullable entity" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Logger.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 50, + "startColumn": 47, + "charOffset": 1671, + "charLength": 31, + "snippet": { + "text": "Path.GetDirectoryName(filePath)" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 48, + "startColumn": 1, + "charOffset": 1571, + "charLength": 238, + "snippet": { + "text": " if (!info.Exists)\r\n {\r\n Directory.CreateDirectory(Path.GetDirectoryName(filePath));\r\n File.Create(filePath).Close();\r\n info = new FileInfo(filePath);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9a40aa8b79aa9e7b", + "equalIndicator/v1": "8c33c93d9f1455c8f9e808cccf9c2491efbfe03c4964788218d39a3caca77ad4" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "AssignNullToNotNullAttribute", + "kind": "fail", + "level": "warning", + "message": { + "text": "Possible 'null' assignment to non-nullable entity", + "markdown": "Possible 'null' assignment to non-nullable entity" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/soulmemory-rs/SoulMemoryRs.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 50, + "startColumn": 36, + "charOffset": 1765, + "charLength": 57, + "snippet": { + "text": "Path.GetDirectoryName(typeof(Soulmods).Assembly.Location)" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 48, + "startColumn": 1, + "charOffset": 1573, + "charLength": 402, + "snippet": { + "text": "\r\n var launcherPath = Path.Combine(Path.GetDirectoryName(typeof(Soulmods).Assembly.Location), $\"{(x64 ? \"launcher_x64.exe\" : \"launcher_x86.exe\")}\");\r\n var dllPath = Path.Combine(Path.GetDirectoryName(typeof(Soulmods).Assembly.Location), $\"{(x64 ? \"soulmemory_rs_x64.dll\" : \"soulmemory_rs_x86.dll\")}\");\r\n var args = $\"--processname={process.ProcessName} --dllpath=\\\"{dllPath}\\\"\";\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "406afa1d4a7d68d6", + "equalIndicator/v1": "a025cd7dc62340593c2ba009305aadd1d0c5a52399c78bdb7b7553da31d5242d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "AssignNullToNotNullAttribute", + "kind": "fail", + "level": "warning", + "message": { + "text": "Possible 'null' assignment to non-nullable entity", + "markdown": "Possible 'null' assignment to non-nullable entity" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/soulmemory-rs/SoulMemoryRs.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 49, + "startColumn": 41, + "charOffset": 1615, + "charLength": 57, + "snippet": { + "text": "Path.GetDirectoryName(typeof(Soulmods).Assembly.Location)" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 47, + "startColumn": 1, + "charOffset": 1526, + "charLength": 447, + "snippet": { + "text": " var x64 = process.Is64Bit().Unwrap();\r\n\r\n var launcherPath = Path.Combine(Path.GetDirectoryName(typeof(Soulmods).Assembly.Location), $\"{(x64 ? \"launcher_x64.exe\" : \"launcher_x86.exe\")}\");\r\n var dllPath = Path.Combine(Path.GetDirectoryName(typeof(Soulmods).Assembly.Location), $\"{(x64 ? \"soulmemory_rs_x64.dll\" : \"soulmemory_rs_x86.dll\")}\");\r\n var args = $\"--processname={process.ProcessName} --dllpath=\\\"{dllPath}\\\"\";\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d3a54235d23dda6e", + "equalIndicator/v1": "a4dc902f68c4873813bf6bc64b25e16182e9a2a52c73ccfb2cd8b68278c2bcb0" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "AutoPropertyCanBeMadeGetOnly.Local", + "kind": "fail", + "level": "note", + "message": { + "text": "Auto-property can be made get-only", + "markdown": "Auto-property can be made get-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/SoulComponent.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 207, + "startColumn": 39, + "charOffset": 7613, + "charLength": 12, + "snippet": { + "text": "private set;" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 205, + "startColumn": 1, + "charOffset": 7472, + "charLength": 279, + "snippet": { + "text": " public string ComponentName => Name;\r\n public float HorizontalWidth { get; private set; } = 0;\r\n public float MinimumHeight { get; private set; } = 0;\r\n public float VerticalHeight { get; private set; } = 0;\r\n public float MinimumWidth { get; private set; } = 0;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "1a84d530bcf52c24", + "equalIndicator/v1": "1173cceceeec34929a303aec0fabf7800a5f94eb92fa64121a676041dd2b254b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "AutoPropertyCanBeMadeGetOnly.Local", + "kind": "fail", + "level": "note", + "message": { + "text": "Auto-property can be made get-only", + "markdown": "Auto-property can be made get-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/SoulComponent.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 209, + "startColumn": 38, + "charOffset": 7731, + "charLength": 12, + "snippet": { + "text": "private set;" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 207, + "startColumn": 1, + "charOffset": 7575, + "charLength": 249, + "snippet": { + "text": " public float MinimumHeight { get; private set; } = 0;\r\n public float VerticalHeight { get; private set; } = 0;\r\n public float MinimumWidth { get; private set; } = 0;\r\n public float PaddingTop => 0;\r\n public float PaddingBottom => 0;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "1cd04617c4b2b2b0", + "equalIndicator/v1": "84d08cba3bbcc93e4a568a65e314d6822bd37c79c2dda47a2da01eddf96c1b08" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "AutoPropertyCanBeMadeGetOnly.Local", + "kind": "fail", + "level": "note", + "message": { + "text": "Auto-property can be made get-only", + "markdown": "Auto-property can be made get-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/SoulComponent.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 208, + "startColumn": 40, + "charOffset": 7673, + "charLength": 12, + "snippet": { + "text": "private set;" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 206, + "startColumn": 1, + "charOffset": 7514, + "charLength": 272, + "snippet": { + "text": " public float HorizontalWidth { get; private set; } = 0;\r\n public float MinimumHeight { get; private set; } = 0;\r\n public float VerticalHeight { get; private set; } = 0;\r\n public float MinimumWidth { get; private set; } = 0;\r\n public float PaddingTop => 0;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7911cf3803acc3e9", + "equalIndicator/v1": "a98d0aa588989da991aad1d424c59693a80584308597b99843551299dc6dcb7c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "AutoPropertyCanBeMadeGetOnly.Local", + "kind": "fail", + "level": "note", + "message": { + "text": "Auto-property can be made get-only", + "markdown": "Auto-property can be made get-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/SoulComponent.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 206, + "startColumn": 41, + "charOffset": 7554, + "charLength": 12, + "snippet": { + "text": "private set;" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 204, + "startColumn": 1, + "charOffset": 7470, + "charLength": 223, + "snippet": { + "text": "\r\n public string ComponentName => Name;\r\n public float HorizontalWidth { get; private set; } = 0;\r\n public float MinimumHeight { get; private set; } = 0;\r\n public float VerticalHeight { get; private set; } = 0;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f77117a7021c031d", + "equalIndicator/v1": "fbe4c8cfa4b9081df6331dc55785dcd8bb154ecfac8a3160849211cef6df1172" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "BuiltInTypeReferenceStyle", + "kind": "fail", + "level": "note", + "message": { + "text": "Built-in type reference is inconsistent with code style settings", + "markdown": "Built-in type reference is inconsistent with code style settings" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Native/Kernel32.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 226, + "startColumn": 90, + "charOffset": 8478, + "charLength": 6, + "snippet": { + "text": "UInt16" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 224, + "startColumn": 1, + "charOffset": 8321, + "charLength": 269, + "snippet": { + "text": "\r\n //Write the name of the dll to be injected into a buffer\r\n var dllFilepathPointer = process.Allocate(dllPath.Length * Marshal.SizeOf(typeof(UInt16)));\r\n process.WriteProcessMemory((long)dllFilepathPointer, Encoding.Unicode.GetBytes(dllPath));\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "3ad5fc262124e2cd", + "equalIndicator/v1": "4ea0f677efb6522e8c1f7f80b15357c1d5daffa876662ae2a0dd51045b31445b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "BuiltInTypeReferenceStyle", + "kind": "fail", + "level": "note", + "message": { + "text": "Built-in type reference is inconsistent with code style settings", + "markdown": "Built-in type reference is inconsistent with code style settings" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Native/Kernel32.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 291, + "startColumn": 33, + "charOffset": 11122, + "charLength": 6, + "snippet": { + "text": "UInt32" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 289, + "startColumn": 1, + "charOffset": 11017, + "charLength": 381, + "snippet": { + "text": " {\r\n MODULEENTRY32W procEntry = new MODULEENTRY32W();\r\n procEntry.dwSize = (UInt32)Marshal.SizeOf(typeof(MODULEENTRY32W));\r\n handleToSnapshot = NativeMethods.CreateToolhelp32Snapshot((uint)SnapshotFlags.Module | (uint)SnapshotFlags.Module32, (uint)process.Id);\r\n if (NativeMethods.Module32FirstW(handleToSnapshot, ref procEntry))\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "297e63f396811de7", + "equalIndicator/v1": "65b5a01e6439bfd259b8e4f3cf354295f1faaff85fa4265a2a8a34fea2b50b7c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "BuiltInTypeReferenceStyle", + "kind": "fail", + "level": "note", + "message": { + "text": "Built-in type reference is inconsistent with code style settings", + "markdown": "Built-in type reference is inconsistent with code style settings" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Native/NativeMethods.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 49, + "startColumn": 65, + "charOffset": 2333, + "charLength": 6, + "snippet": { + "text": "UInt32" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 47, + "startColumn": 1, + "charOffset": 2162, + "charLength": 322, + "snippet": { + "text": "\r\n [DllImport(\"kernel32\", SetLastError = true, CharSet = System.Runtime.InteropServices.CharSet.Auto)]\r\n internal static extern IntPtr CreateToolhelp32Snapshot([In] UInt32 dwFlags, [In] UInt32 th32ProcessID);\r\n\r\n [DllImport(\"kernel32\", SetLastError = true, CharSet = System.Runtime.InteropServices.CharSet.Auto)]\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "831184c465c5b1e7", + "equalIndicator/v1": "8a3e51d44ff1bbe34d930efb2953ebc6eb0654ac52aae96fba922c27cd444ecb" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "BuiltInTypeReferenceStyle", + "kind": "fail", + "level": "note", + "message": { + "text": "Built-in type reference is inconsistent with code style settings", + "markdown": "Built-in type reference is inconsistent with code style settings" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Native/NativeMethods.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 49, + "startColumn": 86, + "charOffset": 2354, + "charLength": 6, + "snippet": { + "text": "UInt32" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 47, + "startColumn": 1, + "charOffset": 2162, + "charLength": 322, + "snippet": { + "text": "\r\n [DllImport(\"kernel32\", SetLastError = true, CharSet = System.Runtime.InteropServices.CharSet.Auto)]\r\n internal static extern IntPtr CreateToolhelp32Snapshot([In] UInt32 dwFlags, [In] UInt32 th32ProcessID);\r\n\r\n [DllImport(\"kernel32\", SetLastError = true, CharSet = System.Runtime.InteropServices.CharSet.Auto)]\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "66b1b8694f0db7dd", + "equalIndicator/v1": "f225152bbc85dfeff1927909a11feefb9dbef719b4c5795d38cdf206a18f6a2a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "BuiltInTypeReferenceStyleForMemberAccess", + "kind": "fail", + "level": "note", + "message": { + "text": "Built-in type reference is inconsistent with code style settings", + "markdown": "Built-in type reference is inconsistent with code style settings" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 355, + "startColumn": 26, + "charOffset": 12464, + "charLength": 5, + "snippet": { + "text": "Int32" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 353, + "startColumn": 1, + "charOffset": 12320, + "charLength": 274, + "snippet": { + "text": " string area = idString.Substring(1, 3);\r\n int section = Int32.Parse(idString.Substring(4, 1));\r\n int number = Int32.Parse(idString.Substring(5, 3));\r\n\r\n if (EventFlagGroups.ContainsKey(group) && EventFlagAreas.ContainsKey(area))\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "3415b0e7441e6d82", + "equalIndicator/v1": "8eb38b6f43a725610ff5125913bcc79483037339f46d60249675fc96a14957d5" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "BuiltInTypeReferenceStyleForMemberAccess", + "kind": "fail", + "level": "note", + "message": { + "text": "Built-in type reference is inconsistent with code style settings", + "markdown": "Built-in type reference is inconsistent with code style settings" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 354, + "startColumn": 27, + "charOffset": 12399, + "charLength": 5, + "snippet": { + "text": "Int32" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 352, + "startColumn": 1, + "charOffset": 12266, + "charLength": 239, + "snippet": { + "text": " string group = idString.Substring(0, 1);\r\n string area = idString.Substring(1, 3);\r\n int section = Int32.Parse(idString.Substring(4, 1));\r\n int number = Int32.Parse(idString.Substring(5, 3));\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a634c406855010d3", + "equalIndicator/v1": "a4769b1659fd46d707650e006ac9a50a799089c900841f1b16393f0af2ce72e9" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "BuiltInTypeReferenceStyleForMemberAccess", + "kind": "fail", + "level": "note", + "message": { + "text": "Built-in type reference is inconsistent with code style settings", + "markdown": "Built-in type reference is inconsistent with code style settings" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 479, + "startColumn": 27, + "charOffset": 16764, + "charLength": 4, + "snippet": { + "text": "Byte" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 477, + "startColumn": 1, + "charOffset": 16622, + "charLength": 263, + "snippet": { + "text": " string hexes = match.Groups[1].Value;\r\n foreach (Match hex in Regex.Matches(hexes, @\"\\S+\"))\r\n bytes.Add(Byte.Parse(hex.Value, System.Globalization.NumberStyles.AllowHexSpecifier));\r\n }\r\n return bytes.ToArray();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b760deb4aa944962", + "equalIndicator/v1": "c209c3210ed974a692380aff95a5f7f86287325568a6ab578a2d5504c8bf0048" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "CanSimplifyDictionaryLookupWithTryGetValue", + "kind": "fail", + "level": "note", + "message": { + "text": "Dictionary lookup can be simplified with 'TryGetValue'", + "markdown": "Dictionary lookup can be simplified with 'TryGetValue'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 357, + "startColumn": 70, + "charOffset": 12575, + "charLength": 11, + "snippet": { + "text": "ContainsKey" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 355, + "startColumn": 1, + "charOffset": 12439, + "charLength": 224, + "snippet": { + "text": " int number = Int32.Parse(idString.Substring(5, 3));\r\n\r\n if (EventFlagGroups.ContainsKey(group) && EventFlagAreas.ContainsKey(area))\r\n {\r\n int offset = EventFlagGroups[group];\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "73306b512fe98657", + "equalIndicator/v1": "73631b32d2a2c44a15b860cfdd5ec897ad019f46734707fe3b6d888ab5aa4642" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "CanSimplifyDictionaryLookupWithTryGetValue", + "kind": "fail", + "level": "note", + "message": { + "text": "Dictionary lookup can be simplified with 'TryGetValue'", + "markdown": "Dictionary lookup can be simplified with 'TryGetValue'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 298, + "startColumn": 70, + "charOffset": 10631, + "charLength": 11, + "snippet": { + "text": "ContainsKey" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 296, + "startColumn": 1, + "charOffset": 10497, + "charLength": 222, + "snippet": { + "text": " int number = int.Parse(idString.Substring(5, 3));\r\n\r\n if (EventFlagGroups.ContainsKey(group) && EventFlagAreas.ContainsKey(area))\r\n {\r\n int offset = EventFlagGroups[group];\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "404da386773655bf", + "equalIndicator/v1": "900b5c82ce038edc036920f97015926f4079de08af4b684d3c2d049ac51d2d63" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "CheckNamespace", + "kind": "fail", + "level": "warning", + "message": { + "text": "Namespace does not correspond to file location, must be: 'SoulSplitter.UI'", + "markdown": "Namespace does not correspond to file location, must be: 'SoulSplitter.UI'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/ErrorViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 20, + "startColumn": 11, + "charOffset": 864, + "charLength": 23, + "snippet": { + "text": "SoulSplitter.UI.Generic" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 18, + "startColumn": 1, + "charOffset": 822, + "charLength": 129, + "snippet": { + "text": "using System.ComponentModel;\r\n\r\nnamespace SoulSplitter.UI.Generic;\r\n\r\npublic class ErrorViewModel : ICustomNotifyPropertyChanged\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7fd4a4e55f3b2fcb", + "equalIndicator/v1": "0a71f8b841795e1f169eaf1ea32eeedb8340c5b7c952f066e9874b7d7aebbd15" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "ConvertClosureToMethodGroup", + "kind": "fail", + "level": "note", + "message": { + "text": "Convert into method group", + "markdown": "Convert into method group" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/EldenRingSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 100, + "startColumn": 13, + "charOffset": 3166, + "charLength": 14, + "snippet": { + "text": "UpdatePosition" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 98, + "startColumn": 1, + "charOffset": 3096, + "charLength": 103, + "snippet": { + "text": " mainViewModel.TryAndHandleError(() =>\r\n {\r\n UpdatePosition();\r\n });\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "6df07dbe40b7b10a", + "equalIndicator/v1": "2aa855bd234c70b019b8bb7dc5645c4ac897d319925d58e542c80b7ce9c86a72" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "ConvertClosureToMethodGroup", + "kind": "fail", + "level": "note", + "message": { + "text": "Convert into method group", + "markdown": "Convert into method group" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/SekiroSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 106, + "startColumn": 13, + "charOffset": 3124, + "charLength": 11, + "snippet": { + "text": "UpdateTimer" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 104, + "startColumn": 1, + "charOffset": 3054, + "charLength": 100, + "snippet": { + "text": " mainViewModel.TryAndHandleError(() =>\r\n {\r\n UpdateTimer();\r\n });\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "68e175a421f88d7b", + "equalIndicator/v1": "3274bea72460c84916b820b64c4094dbeba75a9fda66c7991c8a8f9c67795891" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "ConvertClosureToMethodGroup", + "kind": "fail", + "level": "note", + "message": { + "text": "Convert into method group", + "markdown": "Convert into method group" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/EldenRingSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 110, + "startColumn": 13, + "charOffset": 3409, + "charLength": 18, + "snippet": { + "text": "UpdateAutoSplitter" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 108, + "startColumn": 1, + "charOffset": 3339, + "charLength": 107, + "snippet": { + "text": " mainViewModel.TryAndHandleError(() =>\r\n {\r\n UpdateAutoSplitter();\r\n });\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5d319fff177225ca", + "equalIndicator/v1": "77a8562abd64c6569566429a45704a955f37526383f7ac7b1810d7bc58e5d8fd" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "ConvertClosureToMethodGroup", + "kind": "fail", + "level": "note", + "message": { + "text": "Convert into method group", + "markdown": "Convert into method group" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls3Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 117, + "startColumn": 13, + "charOffset": 3507, + "charLength": 18, + "snippet": { + "text": "UpdateAutoSplitter" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 115, + "startColumn": 1, + "charOffset": 3437, + "charLength": 107, + "snippet": { + "text": " mainViewModel.TryAndHandleError(() =>\r\n {\r\n UpdateAutoSplitter();\r\n });\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "30079e402b14c3f6", + "equalIndicator/v1": "a76aeb80cf1a25a148e3fc4e23b5ed48e3533b01c577fec52269c3867b32aa55" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "ConvertClosureToMethodGroup", + "kind": "fail", + "level": "note", + "message": { + "text": "Convert into method group", + "markdown": "Convert into method group" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/SoulComponent.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 372, + "startColumn": 74, + "charOffset": 13165, + "charLength": 11, + "snippet": { + "text": "GetFileName" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 370, + "startColumn": 1, + "charOffset": 13028, + "charLength": 228, + "snippet": { + "text": " var directory = Path.GetDirectoryName(assemblyPath);\r\n\r\n var files = Directory.EnumerateFiles(directory).Select(i => Path.GetFileName(i)).ToList();\r\n var missing = _installedFiles.Except(files).ToList();\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "35f1427032852983", + "equalIndicator/v1": "d3b6dd6c8a45a1396a386ebac24df72bac990581054417c6721c0d73d3d8f030" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "ConvertClosureToMethodGroup", + "kind": "fail", + "level": "note", + "message": { + "text": "Convert into method group", + "markdown": "Convert into method group" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls3Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 112, + "startColumn": 13, + "charOffset": 3406, + "charLength": 11, + "snippet": { + "text": "UpdateTimer" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 110, + "startColumn": 1, + "charOffset": 3336, + "charLength": 100, + "snippet": { + "text": " mainViewModel.TryAndHandleError(() =>\r\n {\r\n UpdateTimer();\r\n });\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "de2dff0f20513ffc", + "equalIndicator/v1": "d41419dc08ce57b655a7876501c29484a3b0a167a1dc9b525da7a1fe5870e8cb" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "ConvertClosureToMethodGroup", + "kind": "fail", + "level": "note", + "message": { + "text": "Convert into method group", + "markdown": "Convert into method group" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/SekiroSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 111, + "startColumn": 13, + "charOffset": 3225, + "charLength": 18, + "snippet": { + "text": "UpdateAutoSplitter" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 109, + "startColumn": 1, + "charOffset": 3155, + "charLength": 107, + "snippet": { + "text": " mainViewModel.TryAndHandleError(() =>\r\n {\r\n UpdateAutoSplitter();\r\n });\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "2752206f391b7d58", + "equalIndicator/v1": "f5f29d566a08bfbb0d5ed4f9ef967d9e8b0871e2297fd3c374b941e17aa4e53d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "ConvertIfStatementToConditionalTernaryExpression", + "kind": "fail", + "level": "note", + "message": { + "text": "Convert into '?:' expression", + "markdown": "Convert into '?:' expression" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 105, + "startColumn": 17, + "charOffset": 2956, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 103, + "startColumn": 1, + "charOffset": 2885, + "charLength": 174, + "snippet": { + "text": " if (i + 1 < offsets.Count)\r\n {\r\n if (Is64Bit)\r\n {\r\n ptr = Process.ReadMemory(address).Unwrap();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5628a79bf5e6936c", + "equalIndicator/v1": "8e275278c119392fbd1da79429908f573d9ef4c82c46ff602c191d4028d95743" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ConvertIfStatementToConditionalTernaryExpression", + "kind": "fail", + "level": "note", + "message": { + "text": "Convert into '?:' expression", + "markdown": "Convert into '?:' expression" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/BaseParam.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 185, + "startColumn": 13, + "charOffset": 7310, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 183, + "startColumn": 1, + "charOffset": 7138, + "charLength": 276, + "snippet": { + "text": " for (int i = bitfield.paramFieldAttribute.BitsOffset; i < bitfield.paramFieldAttribute.BitsOffset + bitfield.paramFieldAttribute.Bits; i++)\r\n {\r\n if (newValue.IsBitSet(bitIndex))\r\n {\r\n currentValue = currentValue.SetBit(i);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "91a93af4d85fd1ba", + "equalIndicator/v1": "afdb7be0d0983dafde110bf9110c78873d7957c97da81b994c5867175a2cc12b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ConvertIfStatementToConditionalTernaryExpression", + "kind": "fail", + "level": "note", + "message": { + "text": "Convert into '?:' expression", + "markdown": "Convert into '?:' expression" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls2Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 152, + "startColumn": 21, + "charOffset": 4502, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 150, + "startColumn": 1, + "charOffset": 4395, + "charLength": 225, + "snippet": { + "text": " if (_previousIsLoading != _darkSouls2.IsLoading())\r\n {\r\n if (_darkSouls2.IsLoading())\r\n {\r\n _liveSplitState.IsGameTimePaused = true;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "95d88601f3126a75", + "equalIndicator/v1": "d742e6d36dbd5ad2b01066cad36f3d4e784aa7ef6268cacb52d931e771112301" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "ConvertIfStatementToConditionalTernaryExpression", + "kind": "fail", + "level": "note", + "message": { + "text": "Convert into '?:' expression", + "markdown": "Convert into '?:' expression" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/MainViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 201, + "startColumn": 13, + "charOffset": 6645, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 199, + "startColumn": 1, + "charOffset": 6560, + "charLength": 157, + "snippet": { + "text": " BadgeForegroundBrush = new SolidColorBrush(Colors.Black);\r\n\r\n if(Errors.Count > 9)\r\n {\r\n ErrorCount = \"9+\";\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "de39ec2c37f507c5", + "equalIndicator/v1": "e68cf8c8bfc712b212e7490d5dc138f50cb658bd4f0fde0713c06e499009cac2" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "ConvertIfStatementToReturnStatement", + "kind": "fail", + "level": "note", + "message": { + "text": "Convert into 'return' statement", + "markdown": "Convert into 'return' statement" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Extensions.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 94, + "startColumn": 9, + "charOffset": 2927, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 92, + "startColumn": 1, + "charOffset": 2757, + "charLength": 293, + "snippet": { + "text": "\r\n var versionStr = $\"{fileVersionInfo.FileMajorPart}.{fileVersionInfo.FileMinorPart}.{fileVersionInfo.FileBuildPart}.{fileVersionInfo.FilePrivatePart}\";\r\n if (values.Any(i => i.Version == versionStr))\r\n {\r\n return values.First(i => i.Version == versionStr).i;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d737ce3491f64ca7", + "equalIndicator/v1": "099347e29d286ab21296a88fe27b130d23464a8a0773dc930c2c4340606f5b73" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ConvertIfStatementToReturnStatement", + "kind": "fail", + "level": "note", + "message": { + "text": "Convert into 'return' statement", + "markdown": "Convert into 'return' statement" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 111, + "startColumn": 9, + "charOffset": 4029, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 109, + "startColumn": 1, + "charOffset": 4008, + "charLength": 150, + "snippet": { + "text": " }\r\n\r\n if (exception != null)\r\n {\r\n return Result.Err(new RefreshError(RefreshErrorReason.ModLoadFailed, exception));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "3e2fc3dacfd92485", + "equalIndicator/v1": "0bf73a4dd52f30d58186e4970e3b5923bd7337929a112211dbebbf8fd1a10a71" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ConvertIfStatementToReturnStatement", + "kind": "fail", + "level": "note", + "message": { + "text": "Convert into 'return' statement", + "markdown": "Convert into 'return' statement" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Result.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 267, + "startColumn": 9, + "charOffset": 6247, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 265, + "startColumn": 1, + "charOffset": 6150, + "charLength": 197, + "snippet": { + "text": " public static implicit operator Result(ResultErr resultErr)\r\n {\r\n if (resultErr.IsOk)\r\n {\r\n return new Result(true, default!, default!);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "46197b21f2dbd86e", + "equalIndicator/v1": "11d913d5b4793819d6f53163f086d47ac52962fe7b794e8548c199502e5c3414" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ConvertIfStatementToReturnStatement", + "kind": "fail", + "level": "note", + "message": { + "text": "Convert into 'return' statement", + "markdown": "Convert into 'return' statement" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/EldenRing.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 338, + "startColumn": 9, + "charOffset": 11675, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 336, + "startColumn": 1, + "charOffset": 11616, + "charLength": 144, + "snippet": { + "text": " var flag = _menuManImp.ReadInt32(0x18);\r\n\r\n if (\r\n (flag & 0x1) == 1 &&\r\n (flag >> 8 & 0x1) == 0 &&\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c6770c769fb04746", + "equalIndicator/v1": "1a2a23a1936cdb6790725804f14e2908b5786a3589f969ce76aaef0ef95f1df5" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ConvertIfStatementToReturnStatement", + "kind": "fail", + "level": "note", + "message": { + "text": "Convert into 'return' statement", + "markdown": "Convert into 'return' statement" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Converters/EnumToVisibilityConverter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 50, + "startColumn": 9, + "charOffset": 1957, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 48, + "startColumn": 1, + "charOffset": 1936, + "charLength": 138, + "snippet": { + "text": " }\r\n\r\n if (valueEnums.Where((t, i) => !t.Equals(paramEnums[i])).Any())\r\n {\r\n return Visibility.Collapsed;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f886fcf4cec338fe", + "equalIndicator/v1": "2d7e287ec3279a01b59eb31486b494ac2f1f0f10317bd35001058a7164abc5ec" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "ConvertIfStatementToReturnStatement", + "kind": "fail", + "level": "note", + "message": { + "text": "Convert into 'return' statement", + "markdown": "Convert into 'return' statement" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Process/ProcessWrapper.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 85, + "startColumn": 9, + "charOffset": 3033, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 83, + "startColumn": 1, + "charOffset": 2964, + "charLength": 140, + "snippet": { + "text": " public byte[] ReadBytes(long offset, int length)\r\n {\r\n if (_process == null)\r\n {\r\n return new byte[length];\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "232f1064da52596d", + "equalIndicator/v1": "2e2821793e65478ee8de5cf8be3e51400866263a7bdd8cf4677a03395234ce15" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ConvertIfStatementToReturnStatement", + "kind": "fail", + "level": "note", + "message": { + "text": "Convert into 'return' statement", + "markdown": "Convert into 'return' statement" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Converters/SplitTypeVisibilityConverter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 34, + "startColumn": 9, + "charOffset": 1343, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 32, + "startColumn": 1, + "charOffset": 1299, + "charLength": 107, + "snippet": { + "text": " splitType == target;\r\n\r\n if (result)\r\n {\r\n return Visibility.Visible;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0d27910a4f1b80e7", + "equalIndicator/v1": "3180202a9de9c2f51bdcdb11fa80dedbe6906923a466086a61b1083d51291b78" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "ConvertIfStatementToReturnStatement", + "kind": "fail", + "level": "note", + "message": { + "text": "Convert into 'return' statement", + "markdown": "Convert into 'return' statement" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 146, + "startColumn": 17, + "charOffset": 5856, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 144, + "startColumn": 1, + "charOffset": 5629, + "charLength": 443, + "snippet": { + "text": " {\r\n process = Process.GetProcesses().FirstOrDefault(i => string.Equals(i.ProcessName.ToLowerInvariant(), name.ToLowerInvariant(), StringComparison.InvariantCulture) && !i.HasExited);\r\n if (process == null)\r\n {\r\n return Result.Err(new RefreshError(RefreshErrorReason.ProcessNotRunning, $\"Process {name} not running or inaccessible. Try running livesplit as admin.\"));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "2facb4f63ca803b1", + "equalIndicator/v1": "3aae4e275a01f4620ac0e8c88e51ea208456e8be20c0c59db1a8724a3ca42669" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ConvertIfStatementToReturnStatement", + "kind": "fail", + "level": "note", + "message": { + "text": "Convert into 'return' statement", + "markdown": "Convert into 'return' statement" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Process/ProcessWrapper.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 51, + "startColumn": 17, + "charOffset": 2093, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 49, + "startColumn": 1, + "charOffset": 1912, + "charLength": 290, + "snippet": { + "text": " {\r\n _process = System.Diagnostics.Process.GetProcesses().FirstOrDefault(i => i.ProcessName.ToLower() == name.ToLower() && !i.HasExited);\r\n if (_process == null)\r\n {\r\n return ProcessRefreshResult.ProcessNotRunning;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "2aab569a3129a775", + "equalIndicator/v1": "4a336cb5d405a22795538663fab11974b262569b240fac6a12873233369815b8" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ConvertIfStatementToReturnStatement", + "kind": "fail", + "level": "note", + "message": { + "text": "Convert into 'return' statement", + "markdown": "Convert into 'return' statement" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/EldenRing.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 321, + "startColumn": 9, + "charOffset": 11281, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 319, + "startColumn": 1, + "charOffset": 11196, + "charLength": 168, + "snippet": { + "text": " {\r\n var screenState = _menuManImp.ReadInt32(_screenStateOffset);\r\n if (screenState.TryParseEnum(out ScreenState s))\r\n {\r\n return s;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0181f0e336216ba4", + "equalIndicator/v1": "4fe994fe0f53a5f48b87327938ab1c390a55d1627864d1325f850b1d301214da" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ConvertIfStatementToReturnStatement", + "kind": "fail", + "level": "note", + "message": { + "text": "Convert into 'return' statement", + "markdown": "Convert into 'return' statement" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 111, + "startColumn": 13, + "charOffset": 4337, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 109, + "startColumn": 1, + "charOffset": 4294, + "charLength": 277, + "snippet": { + "text": " process = null;\r\n\r\n if (e.Message == \"Access is denied\")\r\n {\r\n return Result.Err(new RefreshError(RefreshErrorReason.AccessDenied, \"Access is denied. Make sure you disable easy anti cheat and try running livesplit as admin.\"));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "6154d4498daf12b5", + "equalIndicator/v1": "5d41c710ec75de71f165f0f08e922b6c002f1ecfa54d9fec27f817693d1b268e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ConvertIfStatementToReturnStatement", + "kind": "fail", + "level": "note", + "message": { + "text": "Convert into 'return' statement", + "markdown": "Convert into 'return' statement" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 175, + "startColumn": 13, + "charOffset": 6827, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 173, + "startColumn": 1, + "charOffset": 6784, + "charLength": 277, + "snippet": { + "text": " process = null;\r\n\r\n if (e.Message == \"Access is denied\")\r\n {\r\n return Result.Err(new RefreshError(RefreshErrorReason.AccessDenied, \"Access is denied. Make sure you disable easy anti cheat and try running livesplit as admin.\"));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d12a80317177e027", + "equalIndicator/v1": "7c3a42df8bf52fda3b69d18f09a16b1a691bc611faa63e7d7e7bc36b8c7f350c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ConvertIfStatementToReturnStatement", + "kind": "fail", + "level": "note", + "message": { + "text": "Convert into 'return' statement", + "markdown": "Convert into 'return' statement" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 82, + "startColumn": 17, + "charOffset": 3366, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 80, + "startColumn": 1, + "charOffset": 3186, + "charLength": 396, + "snippet": { + "text": " {\r\n process = System.Diagnostics.Process.GetProcesses().FirstOrDefault(i => i.ProcessName.ToLower() == name.ToLower() && !i.HasExited);\r\n if (process == null)\r\n {\r\n return Result.Err(new RefreshError(RefreshErrorReason.ProcessNotRunning, $\"Process {name} not running or inaccessible. Try running livesplit as admin.\"));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7ebdd4eb9a2981b9", + "equalIndicator/v1": "7e7366cff771291310bfdf64affe3cf06b9cc805ebfd5d834c54de59f0ad476b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ConvertIfStatementToReturnStatement", + "kind": "fail", + "level": "note", + "message": { + "text": "Convert into 'return' statement", + "markdown": "Convert into 'return' statement" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Result.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 141, + "startColumn": 9, + "charOffset": 3505, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 139, + "startColumn": 1, + "charOffset": 3464, + "charLength": 92, + "snippet": { + "text": " public TErr GetErr()\r\n {\r\n if (IsOk)\r\n {\r\n return default!;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "68e3db15212c8c58", + "equalIndicator/v1": "a0618ea0582ea4aa915c0ecd0ceb6919e1c4b395f0d36b45890a169490ac085f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ConvertIfStatementToReturnStatement", + "kind": "fail", + "level": "note", + "message": { + "text": "Convert into 'return' statement", + "markdown": "Convert into 'return' statement" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Result.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 293, + "startColumn": 9, + "charOffset": 6817, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 291, + "startColumn": 1, + "charOffset": 6776, + "charLength": 92, + "snippet": { + "text": " public TErr GetErr()\r\n {\r\n if (IsOk)\r\n {\r\n return default!;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "17454356fe176ad6", + "equalIndicator/v1": "bbc9fa1b3f49d0b22292681a2d0ff9d287dad179bc97920bfeb4584b2489c3e5" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ConvertIfStatementToReturnStatement", + "kind": "fail", + "level": "note", + "message": { + "text": "Convert into 'return' statement", + "markdown": "Convert into 'return' statement" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/EldenRing.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 279, + "startColumn": 9, + "charOffset": 10052, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 277, + "startColumn": 1, + "charOffset": 9954, + "charLength": 184, + "snippet": { + "text": " {\r\n var version = _versions.FirstOrDefault(i => i.version.CompareTo(v) == 0);\r\n if (version.version == null)\r\n {\r\n return EldenRingVersion.Unknown;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "628114b8b029b62f", + "equalIndicator/v1": "d315054774d0fc47e2e03bcaf05a04c95b1d338e51dbdbcfc6edf63746b29851" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ConvertIfStatementToReturnStatement", + "kind": "fail", + "level": "note", + "message": { + "text": "Convert into 'return' statement", + "markdown": "Convert into 'return' statement" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Result.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 255, + "startColumn": 9, + "charOffset": 5915, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 253, + "startColumn": 1, + "charOffset": 5821, + "charLength": 202, + "snippet": { + "text": " public static implicit operator Result(ResultOk resultOk)\r\n {\r\n if (resultOk.IsOk)\r\n {\r\n return new Result(true, resultOk.Unwrap(), default!);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "42797a8457eb10cb", + "equalIndicator/v1": "d5e82c6cbbbc3b9a65c18e6dff23e4748fbce641c8974621e99dbbe3d75ca787" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ConvertIfStatementToReturnStatement", + "kind": "fail", + "level": "note", + "message": { + "text": "Convert into 'return' statement", + "markdown": "Convert into 'return' statement" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 171, + "startColumn": 9, + "charOffset": 4592, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 169, + "startColumn": 1, + "charOffset": 4465, + "charLength": 193, + "snippet": { + "text": " var address = ResolveOffsets(offsetsCopy);\r\n var result = Process!.ReadProcessMemory(address, length);\r\n if(result.IsErr)\r\n {\r\n return new byte[length];\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "46a230372da0026e", + "equalIndicator/v1": "e1366c34fccce7100c34d902e2668338aad7fe3b0c7ce1c20d35f1d47be9b78f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ConvertIfStatementToReturnStatement", + "kind": "fail", + "level": "note", + "message": { + "text": "Convert into 'return' statement", + "markdown": "Convert into 'return' statement" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/ViewModels/Games/ArmoredCore6ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 33, + "startColumn": 9, + "charOffset": 1248, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 31, + "startColumn": 1, + "charOffset": 1188, + "charLength": 121, + "snippet": { + "text": " private bool CanAddSplit(object? param)\r\n {\r\n if (param is FlatSplit)\r\n {\r\n return true;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "6cc548d76b94630e", + "equalIndicator/v1": "eaa3b042523c98e585238962aa01bc3c2030fe77fe68b0504c50e677138f39bd" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "ConvertIfStatementToReturnStatement", + "kind": "fail", + "level": "note", + "message": { + "text": "Convert into 'return' statement", + "markdown": "Convert into 'return' statement" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Validation/TextToNumberValidation.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 77, + "startColumn": 17, + "charOffset": 2411, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 75, + "startColumn": 1, + "charOffset": 2357, + "charLength": 207, + "snippet": { + "text": "\r\n case NumericType.Uint:\r\n if (!uint.TryParse(text, out var u))\r\n {\r\n return new ValidationResult(false, \"Input is not a valid positive number\");\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a517cb8069aadf93", + "equalIndicator/v1": "ef45cfa83d2730988e51484aea798db70d55093afd1b67461b9e5f56022275f3" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "ConvertIfStatementToReturnStatement", + "kind": "fail", + "level": "note", + "message": { + "text": "Convert into 'return' statement", + "markdown": "Convert into 'return' statement" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Process/ProcessHook.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 78, + "startColumn": 17, + "charOffset": 3349, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 76, + "startColumn": 1, + "charOffset": 3251, + "charLength": 341, + "snippet": { + "text": " case ProcessRefreshResult.Error:\r\n Exited.Invoke(e!);\r\n if (e!.Message == \"Access is denied\")\r\n {\r\n return Result.Err(new RefreshError(RefreshErrorReason.AccessDenied, \"Access is denied. Make sure you disable easy anti cheat and try running livesplit as admin.\"));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a94af20fa22a26cc", + "equalIndicator/v1": "f08304de304603f53a988b7794ef664b3a0a57c611d5148f9471330b6684fc4e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ConvertIfStatementToReturnStatement", + "kind": "fail", + "level": "note", + "message": { + "text": "Convert into 'return' statement", + "markdown": "Convert into 'return' statement" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Validation/TextToNumberValidation.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 38, + "startColumn": 13, + "charOffset": 1198, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 36, + "startColumn": 1, + "charOffset": 1147, + "charLength": 156, + "snippet": { + "text": " if (value == null)\r\n {\r\n if (IsRequired)\r\n {\r\n return new ValidationResult(false, \"Value is required\");\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "2635baf2c4240d15", + "equalIndicator/v1": "fcfbd8d2a9f8dee8251fd822df2f7d6cc42e9873c17720711781f5eefb8fa60a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "ConvertIfStatementToSwitchStatement", + "kind": "fail", + "level": "note", + "message": { + "text": "Convert 'if' statement into 'switch' statement", + "markdown": "Convert 'if' statement into 'switch' statement" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 82, + "startColumn": 13, + "charOffset": 3080, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 80, + "startColumn": 1, + "charOffset": 2988, + "charLength": 271, + "snippet": { + "text": " foreach (var node in _armoredCore6.PointerTreeBuilder.Tree)\r\n {\r\n if (node.PointerNodeType == PointerNodeType.RelativeScan)\r\n {\r\n builder.ScanRelative(node.Name, node.Pattern, node.AddressOffset, node.InstructionSize);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b69def539d787c79", + "equalIndicator/v1": "02d59436d5513ad2672bb2fbfd657235fa7c8be5ddcd7e660e5fae1da04cf5c2" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ConvertIfStatementToSwitchStatement", + "kind": "fail", + "level": "note", + "message": { + "text": "Convert 'if' statement into 'switch' statement", + "markdown": "Convert 'if' statement into 'switch' statement" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Converters/SplitObjectToDescriptionConverter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 27, + "startColumn": 9, + "charOffset": 1123, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 25, + "startColumn": 1, + "charOffset": 988, + "charLength": 207, + "snippet": { + "text": " public object Convert(object? value, Type targetType, object? parameter, System.Globalization.CultureInfo culture)\r\n {\r\n if (value is Enum e)\r\n {\r\n return e.GetDisplayName();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5d4cdc079bf5df26", + "equalIndicator/v1": "67a249201865fb1e42ac0fc587d5323a61f90609fa519ec1b44f6ba583425e66" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "ConvertIfStatementToSwitchStatement", + "kind": "fail", + "level": "note", + "message": { + "text": "Convert 'if' statement into 'switch' statement", + "markdown": "Convert 'if' statement into 'switch' statement" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls3/DarkSouls3ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 86, + "startColumn": 13, + "charOffset": 2952, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 84, + "startColumn": 1, + "charOffset": 2884, + "charLength": 243, + "snippet": { + "text": " this.SetField(ref _newSplitType, value);\r\n\r\n if(NewSplitType == SplitType.Attribute)\r\n {\r\n NewSplitValue = new Attribute() { AttributeType = SoulMemory.DarkSouls3.Attribute.Vigor, Level = 10 };\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a212e11b796e1186", + "equalIndicator/v1": "e688014ceb9175ed6dc178302db11cd0a4635d640b83e7adf27cfad791d59d72" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "ConvertIfStatementToSwitchStatement", + "kind": "fail", + "level": "note", + "message": { + "text": "Convert 'if' statement into 'switch' statement", + "markdown": "Convert 'if' statement into 'switch' statement" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/ParamClassGenerator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 49, + "startColumn": 13, + "charOffset": 2126, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 47, + "startColumn": 1, + "charOffset": 2060, + "charLength": 157, + "snippet": { + "text": " foreach (var baseField in fields)\r\n {\r\n if (baseField is Field field)\r\n {\r\n if (field.ArraySize == null)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "dd8208cb18480d49", + "equalIndicator/v1": "f8b6ca82d4789ed23d09aa4c2c639f6719ff98dab9e8e130dbf2cffcfb685b11" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ConvertToCompoundAssignment", + "kind": "fail", + "level": "note", + "message": { + "text": "Convert into compound assignment", + "markdown": "Convert into compound assignment" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/EldenRing.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 370, + "startColumn": 19, + "charOffset": 12431, + "charLength": 3, + "snippet": { + "text": "num" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 368, + "startColumn": 1, + "charOffset": 12362, + "charLength": 110, + "snippet": { + "text": " for (int i = 1; num != 0; i++)\r\n {\r\n num = num / 10;\r\n \r\n if (i == n)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "26ab2e0668345857", + "equalIndicator/v1": "cf7320bb24f8237ab6b3fcbc22f1fb3a846e31229845920f0a2356fd6c8460a9" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ConvertToCompoundAssignment", + "kind": "fail", + "level": "note", + "message": { + "text": "Convert into compound assignment", + "markdown": "Convert into compound assignment" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Native/Kernel32.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 222, + "startColumn": 23, + "charOffset": 8293, + "charLength": 7, + "snippet": { + "text": "dllPath" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 220, + "startColumn": 1, + "charOffset": 8223, + "charLength": 99, + "snippet": { + "text": " if(!dllPath.EndsWith(\"\\0\"))\r\n {\r\n dllPath = dllPath + '\\0';\r\n }\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "2d2e3671f5ff6998", + "equalIndicator/v1": "ec24ec2d2a8444d72b677879ba8566a13a99ed3ba136851a149d60d2c2477c70" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ConvertToConstant.Local", + "kind": "fail", + "level": "note", + "message": { + "text": "Convert into constant", + "markdown": "Convert into constant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 429, + "startColumn": 16, + "charOffset": 14675, + "charLength": 4, + "snippet": { + "text": "name" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 427, + "startColumn": 1, + "charOffset": 14622, + "charLength": 120, + "snippet": { + "text": " private int GetSteamId3()\r\n {\r\n string name = \"steam_api64.dll\";\r\n ProcessModule? module = null;\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "1202aeca897b9b24", + "equalIndicator/v1": "5bb08c852512a0804adb25359afe50a0169dab613e388ebbe3ce7df4f7c0e767" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ConvertToConstant.Local", + "kind": "fail", + "level": "note", + "message": { + "text": "Convert into constant", + "markdown": "Convert into constant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Sl2Reader.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 81, + "startColumn": 25, + "charOffset": 2920, + "charLength": 12, + "snippet": { + "text": "saveSlotSize" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 79, + "startColumn": 1, + "charOffset": 2790, + "charLength": 288, + "snippet": { + "text": " byte[] file = File.ReadAllBytes(path);\r\n file = DecryptSl2(file);\r\n int saveSlotSize = 0x60030;\r\n int igtOffset = 0x2EC + (saveSlotSize * slot);\r\n igt = BitConverter.ToInt32(file, igtOffset);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "cb30f2670e968368", + "equalIndicator/v1": "6245741e36a28f1f3c3ab4127fa1b403c1a37fa128f4ffd360a6c53e15d173db" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ConvertToConstant.Local", + "kind": "fail", + "level": "note", + "message": { + "text": "Convert into constant", + "markdown": "Convert into constant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Native/Kernel32.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 98, + "startColumn": 13, + "charOffset": 3703, + "charLength": 7, + "snippet": { + "text": "endByte" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 96, + "startColumn": 1, + "charOffset": 3526, + "charLength": 283, + "snippet": { + "text": " public static string ReadAsciiString(this Process process, long address, int initialBufferSize = 20, [CallerMemberName] string? callerMemberName = null)\r\n {\r\n var endByte = (byte)'\\0';\r\n var bytes = Array.Empty();\r\n while (!bytes.Contains(endByte))\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d397341cbde800de", + "equalIndicator/v1": "6e27837e93ec302974a0cddb15970c835f04e30118747be8282b96e7e62655a2" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ConvertToConstant.Local", + "kind": "fail", + "level": "note", + "message": { + "text": "Convert into constant", + "markdown": "Convert into constant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/EldenRing.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 400, + "startColumn": 18, + "charOffset": 13251, + "charLength": 4, + "snippet": { + "text": "mask" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 398, + "startColumn": 1, + "charOffset": 13176, + "charLength": 171, + "snippet": { + "text": " \r\n byte cat = inventory[itemIndex + 0X7];\r\n byte mask = 0xF0;\r\n cat &= mask;\r\n var category = (Category)(cat * 0x1000000);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e8e0ca44f97b3c27", + "equalIndicator/v1": "f6c410e50068741f71c263922e1886b62f9b430aa4c4eeefcd83d9a357c6af02" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "EmptyConstructor", + "kind": "fail", + "level": "warning", + "message": { + "text": "Empty constructor is redundant. The compiler generates the same by default.", + "markdown": "Empty constructor is redundant. The compiler generates the same by default." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 30, + "startColumn": 12, + "charOffset": 1163, + "charLength": 18, + "snippet": { + "text": "EldenRingViewModel" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 28, + "startColumn": 1, + "charOffset": 1085, + "charLength": 113, + "snippet": { + "text": "public class EldenRingViewModel : ICustomNotifyPropertyChanged\r\n{\r\n public EldenRingViewModel()\r\n {\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a2903162588ddf50", + "equalIndicator/v1": "aaecf5d33627949e428a48e69bb5b29edb9ae7aeac4c3142d704f52ea15b5493" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "FieldCanBeMadeReadOnly.Local", + "kind": "fail", + "level": "note", + "message": { + "text": "Field can be made readonly", + "markdown": "Field can be made readonly" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Logger.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 26, + "startColumn": 27, + "charOffset": 996, + "charLength": 8, + "snippet": { + "text": "_logLock" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 24, + "startColumn": 1, + "charOffset": 919, + "charLength": 152, + "snippet": { + "text": "{\r\n private static bool LoggingEnabled = true;\r\n private static object _logLock = new();\r\n\r\n public static void SetLoggingEnabled(bool enable)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a4ad486934730d49", + "equalIndicator/v1": "0c2756a94105e8c4f1563ee558472fccb400e381fd888852f5c87b8e8ed446bf" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "FieldCanBeMadeReadOnly.Local", + "kind": "fail", + "level": "note", + "message": { + "text": "Field can be made readonly", + "markdown": "Field can be made readonly" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/DropMod.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 134, + "startColumn": 20, + "charOffset": 5310, + "charLength": 7, + "snippet": { + "text": "ItemId1" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 132, + "startColumn": 1, + "charOffset": 5206, + "charLength": 169, + "snippet": { + "text": " public ItemType SwitchItem = switchItem;\r\n public int RowId = rowId;\r\n public int ItemId1 = itemId1;\r\n public int ItemId2 = itemId2;\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "127222fd54792a69", + "equalIndicator/v1": "154c545125b7796c9bfe27f930ce1a6c1ba7099abf864e3f10a36622f5dcc964" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "FieldCanBeMadeReadOnly.Local", + "kind": "fail", + "level": "note", + "message": { + "text": "Field can be made readonly", + "markdown": "Field can be made readonly" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/ParamClassGenerator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 255, + "startColumn": 26, + "charOffset": 10673, + "charLength": 9, + "snippet": { + "text": "ParamType" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 253, + "startColumn": 1, + "charOffset": 10531, + "charLength": 235, + "snippet": { + "text": " private struct PreParsedField(string name, ParamType paramType, int? bits = null, int? arraySize = null)\r\n {\r\n public ParamType ParamType = paramType;\r\n public string Name = name;\r\n public int? Bits = bits;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "662dad8231aedc8f", + "equalIndicator/v1": "70f7ed43b27512c1485413dfc67725bfed6a838b682374f85eb201996ceb0928" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "FieldCanBeMadeReadOnly.Local", + "kind": "fail", + "level": "note", + "message": { + "text": "Field can be made readonly", + "markdown": "Field can be made readonly" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/ParamClassGenerator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 258, + "startColumn": 21, + "charOffset": 10787, + "charLength": 9, + "snippet": { + "text": "ArraySize" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 256, + "startColumn": 1, + "charOffset": 10697, + "charLength": 158, + "snippet": { + "text": " public string Name = name;\r\n public int? Bits = bits;\r\n public int? ArraySize = arraySize;\r\n\r\n public override string ToString()\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a686162728f53056", + "equalIndicator/v1": "758885d1df4f466c3b91231db6089632b47277b63b06d0d09e9fb5ba0d0112b6" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "FieldCanBeMadeReadOnly.Local", + "kind": "fail", + "level": "note", + "message": { + "text": "Field can be made readonly", + "markdown": "Field can be made readonly" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/DropMod.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 132, + "startColumn": 25, + "charOffset": 5230, + "charLength": 10, + "snippet": { + "text": "SwitchItem" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 130, + "startColumn": 1, + "charOffset": 5157, + "charLength": 172, + "snippet": { + "text": " {\r\n public bool ShouldSwitch = true;\r\n public ItemType SwitchItem = switchItem;\r\n public int RowId = rowId;\r\n public int ItemId1 = itemId1;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "2d48841a244cfacf", + "equalIndicator/v1": "79a78122c29c3b21424f7b42716a48fd713446cf2d5bff2f01261b3e38522ff6" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "FieldCanBeMadeReadOnly.Local", + "kind": "fail", + "level": "note", + "message": { + "text": "Field can be made readonly", + "markdown": "Field can be made readonly" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/ParamClassGenerator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 256, + "startColumn": 23, + "charOffset": 10719, + "charLength": 4, + "snippet": { + "text": "Name" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 254, + "startColumn": 1, + "charOffset": 10641, + "charLength": 169, + "snippet": { + "text": " {\r\n public ParamType ParamType = paramType;\r\n public string Name = name;\r\n public int? Bits = bits;\r\n public int? ArraySize = arraySize;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "2a751848821fd8a1", + "equalIndicator/v1": "8191f6977fb7a05bc4f97d1ce70967e2022bcea83a08a774a392ada42cebe467" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "FieldCanBeMadeReadOnly.Local", + "kind": "fail", + "level": "note", + "message": { + "text": "Field can be made readonly", + "markdown": "Field can be made readonly" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/ParamClassGenerator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 294, + "startColumn": 46, + "charOffset": 11658, + "charLength": 9, + "snippet": { + "text": "Bitfields" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 292, + "startColumn": 1, + "charOffset": 11600, + "charLength": 87, + "snippet": { + "text": " }\r\n\r\n public List<(string name, int size)> Bitfields = [];\r\n }\r\n \r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "1b855d64949976dd", + "equalIndicator/v1": "9ac13aaa90fe77b9ef4f6ac141ad4ad1b5a328e5937fd60203a2ee86c8e01023" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "FieldCanBeMadeReadOnly.Local", + "kind": "fail", + "level": "note", + "message": { + "text": "Field can be made readonly", + "markdown": "Field can be made readonly" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/DropMod.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 133, + "startColumn": 20, + "charOffset": 5275, + "charLength": 5, + "snippet": { + "text": "RowId" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 131, + "startColumn": 1, + "charOffset": 5164, + "charLength": 204, + "snippet": { + "text": " public bool ShouldSwitch = true;\r\n public ItemType SwitchItem = switchItem;\r\n public int RowId = rowId;\r\n public int ItemId1 = itemId1;\r\n public int ItemId2 = itemId2;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e59efca32581d80c", + "equalIndicator/v1": "a90c707302ec52420e441de1d50ed7dccf9f9a4da2535a21c51403fbbe8eea3b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "FieldCanBeMadeReadOnly.Local", + "kind": "fail", + "level": "note", + "message": { + "text": "Field can be made readonly", + "markdown": "Field can be made readonly" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/DropMod.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 135, + "startColumn": 20, + "charOffset": 5349, + "charLength": 7, + "snippet": { + "text": "ItemId2" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 133, + "startColumn": 1, + "charOffset": 5256, + "charLength": 122, + "snippet": { + "text": " public int RowId = rowId;\r\n public int ItemId1 = itemId1;\r\n public int ItemId2 = itemId2;\r\n }\r\n}\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "571e23e68a31238b", + "equalIndicator/v1": "ac0a58629bfd14c285e13c41f5cf696bcc564c1fda841455e47f0c08dcbec50b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "FieldCanBeMadeReadOnly.Local", + "kind": "fail", + "level": "note", + "message": { + "text": "Field can be made readonly", + "markdown": "Field can be made readonly" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/ParamClassGenerator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 257, + "startColumn": 21, + "charOffset": 10753, + "charLength": 4, + "snippet": { + "text": "Bits" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 255, + "startColumn": 1, + "charOffset": 10648, + "charLength": 164, + "snippet": { + "text": " public ParamType ParamType = paramType;\r\n public string Name = name;\r\n public int? Bits = bits;\r\n public int? ArraySize = arraySize;\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "45fb0cabf5e08ad4", + "equalIndicator/v1": "c37e48b921f5852eacc013bd5cd2e0bdd2eab2572775f4250bf328e9cf8181ac" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "FieldCanBeMadeReadOnly.Local", + "kind": "fail", + "level": "note", + "message": { + "text": "Field can be made readonly", + "markdown": "Field can be made readonly" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/ParamClassGenerator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 282, + "startColumn": 23, + "charOffset": 11362, + "charLength": 4, + "snippet": { + "text": "Name" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 280, + "startColumn": 1, + "charOffset": 11327, + "charLength": 80, + "snippet": { + "text": " }\r\n\r\n public string Name;\r\n public int? ArraySize;\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5b3e8bd385e95c87", + "equalIndicator/v1": "dc481c46ac48d2bf9e128ff916e11b619a891598074bc519db68bcecf9873af9" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "FieldCanBeMadeReadOnly.Local", + "kind": "fail", + "level": "note", + "message": { + "text": "Field can be made readonly", + "markdown": "Field can be made readonly" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/ParamClassGenerator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 283, + "startColumn": 21, + "charOffset": 11389, + "charLength": 9, + "snippet": { + "text": "ArraySize" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 281, + "startColumn": 1, + "charOffset": 11338, + "charLength": 71, + "snippet": { + "text": "\r\n public string Name;\r\n public int? ArraySize;\r\n }\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d3866538d75702c2", + "equalIndicator/v1": "e1906e93fec92aa16371ee6c2b52de81a005dade69e88ac89fab4044f54b05a1" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ForeachCanBeConvertedToQueryUsingAnotherGetEnumerator", + "kind": "fail", + "level": "note", + "message": { + "text": "Loop can be converted into LINQ-expression but another 'GetEnumerator' method will be used", + "markdown": "Loop can be converted into LINQ-expression but another 'GetEnumerator' method will be used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 101, + "startColumn": 9, + "charOffset": 4077, + "charLength": 7, + "snippet": { + "text": "foreach" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 99, + "startColumn": 1, + "charOffset": 4005, + "charLength": 190, + "snippet": { + "text": " var files = new List<(string name, byte[] bytes)>();\r\n\r\n foreach (var path in filepaths)\r\n {\r\n files.Add((Path.GetFileName(path), File.ReadAllBytes(path)));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e9b443cd7e14f56f", + "equalIndicator/v1": "23420545e3152c3c7fd5d61627e83427d13d600005443b7762a98e537039895c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ForeachCanBeConvertedToQueryUsingAnotherGetEnumerator", + "kind": "fail", + "level": "note", + "message": { + "text": "Loop can be converted into LINQ-expression but another 'GetEnumerator' method will be used", + "markdown": "Loop can be converted into LINQ-expression but another 'GetEnumerator' method will be used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 37, + "startColumn": 9, + "charOffset": 1615, + "charLength": 7, + "snippet": { + "text": "foreach" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 35, + "startColumn": 1, + "charOffset": 1543, + "charLength": 190, + "snippet": { + "text": " var files = new List<(string name, byte[] bytes)>();\r\n\r\n foreach (var path in filepaths)\r\n {\r\n files.Add((Path.GetFileName(path), File.ReadAllBytes(path)));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f4b20012dd1bcc4d", + "equalIndicator/v1": "ad0ca981af283ac936cc492d5e71ddb53151fb58972fe8693fcd365e540bb681" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ForeachCanBePartlyConvertedToQueryUsingAnotherGetEnumerator", + "kind": "fail", + "level": "note", + "message": { + "text": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used", + "markdown": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Migrations/Migrator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 102, + "startColumn": 25, + "charOffset": 4622, + "charLength": 7, + "snippet": { + "text": "foreach" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 100, + "startColumn": 1, + "charOffset": 4556, + "charLength": 246, + "snippet": { + "text": "\r\n case \"ItemPickup\":\r\n foreach (XmlNode itemPickup in typeNode.GetChildNodeByName(\"Children\"))\r\n {\r\n var split = itemPickup.GetChildNodeByName(\"Split\");\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d2fe93e5965cfe91", + "equalIndicator/v1": "012351fd20e324b55956befccd5d2ca2649792406fdfa68045120a4e8a2321a0" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "ForeachCanBePartlyConvertedToQueryUsingAnotherGetEnumerator", + "kind": "fail", + "level": "note", + "message": { + "text": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used", + "markdown": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls1Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 234, + "startColumn": 9, + "charOffset": 7852, + "charLength": 7, + "snippet": { + "text": "foreach" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 232, + "startColumn": 1, + "charOffset": 7803, + "charLength": 123, + "snippet": { + "text": "\r\n List? inventory = null;\r\n foreach (var s in _splits)\r\n {\r\n if (!s.SplitTriggered)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "8562882943651c6c", + "equalIndicator/v1": "05763ccea30fa061eeea533063b5a07d43f4908d96962ca5aa86ce25db96da55" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "ForeachCanBePartlyConvertedToQueryUsingAnotherGetEnumerator", + "kind": "fail", + "level": "note", + "message": { + "text": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used", + "markdown": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Migrations/Migrator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 88, + "startColumn": 25, + "charOffset": 3792, + "charLength": 7, + "snippet": { + "text": "foreach" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 86, + "startColumn": 1, + "charOffset": 3729, + "charLength": 237, + "snippet": { + "text": "\r\n case \"Bonfire\":\r\n foreach (XmlNode bonfire in typeNode.GetChildNodeByName(\"Children\"))\r\n {\r\n var split = bonfire.GetChildNodeByName(\"Split\");\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "cee3eedf36a3f0dc", + "equalIndicator/v1": "0c8c4140f614569e704698e1fa45c3b8aac54757bf3d15270776a9d4d7260d13" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "ForeachCanBePartlyConvertedToQueryUsingAnotherGetEnumerator", + "kind": "fail", + "level": "note", + "message": { + "text": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used", + "markdown": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls3Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 214, + "startColumn": 9, + "charOffset": 6385, + "charLength": 7, + "snippet": { + "text": "foreach" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 212, + "startColumn": 1, + "charOffset": 6356, + "charLength": 103, + "snippet": { + "text": " }\r\n \r\n foreach (var s in _splits)\r\n {\r\n if (!s.SplitTriggered)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ab55efb8d21adcd9", + "equalIndicator/v1": "28432a46b81a29f82a1f887acc68b929cc68a18db9f5f3f98344e58a631b2622" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "ForeachCanBePartlyConvertedToQueryUsingAnotherGetEnumerator", + "kind": "fail", + "level": "note", + "message": { + "text": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used", + "markdown": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/SekiroSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 218, + "startColumn": 9, + "charOffset": 6209, + "charLength": 7, + "snippet": { + "text": "foreach" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 216, + "startColumn": 1, + "charOffset": 6180, + "charLength": 103, + "snippet": { + "text": " }\r\n \r\n foreach (var s in _splits)\r\n {\r\n if (!s.SplitTriggered)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "fc002c4bd1207932", + "equalIndicator/v1": "349185f97867ca886c02acb55c2d05e05b94bed7b9b915e069c5608f1771cfd6" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "ForeachCanBePartlyConvertedToQueryUsingAnotherGetEnumerator", + "kind": "fail", + "level": "note", + "message": { + "text": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used", + "markdown": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Migrations/Migrator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 214, + "startColumn": 25, + "charOffset": 10646, + "charLength": 7, + "snippet": { + "text": "foreach" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 212, + "startColumn": 1, + "charOffset": 10586, + "charLength": 228, + "snippet": { + "text": "\r\n case \"Boss\":\r\n foreach (XmlNode boss in typeNode.GetChildNodeByName(\"Children\"))\r\n {\r\n var split = boss.GetChildNodeByName(\"Split\");\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "fd6976c0e48548c7", + "equalIndicator/v1": "367c70f4b472c89a0b36cd028b3edb6c7bb0d466cde82540aaacfeef3647e138" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "ForeachCanBePartlyConvertedToQueryUsingAnotherGetEnumerator", + "kind": "fail", + "level": "note", + "message": { + "text": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used", + "markdown": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/EldenRingSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 250, + "startColumn": 9, + "charOffset": 8096, + "charLength": 7, + "snippet": { + "text": "foreach" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 248, + "startColumn": 1, + "charOffset": 8042, + "charLength": 128, + "snippet": { + "text": " List? inventoryItems = null;\r\n\r\n foreach (var s in _splits)\r\n {\r\n if (!s.SplitTriggered)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "fa6469910976b205", + "equalIndicator/v1": "54c82c6d2ea4a4bac337b7a82482eb3b5cda84943c851f604d4a56f359ebfcf4" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "ForeachCanBePartlyConvertedToQueryUsingAnotherGetEnumerator", + "kind": "fail", + "level": "note", + "message": { + "text": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used", + "markdown": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Migrations/Migrator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 136, + "startColumn": 25, + "charOffset": 6778, + "charLength": 7, + "snippet": { + "text": "foreach" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 134, + "startColumn": 1, + "charOffset": 6718, + "charLength": 228, + "snippet": { + "text": "\r\n case \"Flag\":\r\n foreach (XmlNode flag in typeNode.GetChildNodeByName(\"Children\"))\r\n {\r\n var split = flag.GetChildNodeByName(\"Split\");\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0528c2272fbf7945", + "equalIndicator/v1": "556bfd702d8cb8091b7f3c616db924fb5bc008cb360b5608603465436cb38bef" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "ForeachCanBePartlyConvertedToQueryUsingAnotherGetEnumerator", + "kind": "fail", + "level": "note", + "message": { + "text": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used", + "markdown": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/DropMod.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 65, + "startColumn": 9, + "charOffset": 2263, + "charLength": 7, + "snippet": { + "text": "foreach" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 63, + "startColumn": 1, + "charOffset": 2206, + "charLength": 216, + "snippet": { + "text": " var items = darkSouls.GetInventory();\r\n\r\n foreach (SwitchableDrop temp in _switchableWeapons)\r\n {\r\n var s = temp; //structs need to be put in a variable in order to be mutable. Meme.\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "64c2d1a6ba93a8d0", + "equalIndicator/v1": "622e3e4b8ab79359b991c85c47bbd66a576b8380a0afb0524685a2a8f47f992f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "ForeachCanBePartlyConvertedToQueryUsingAnotherGetEnumerator", + "kind": "fail", + "level": "note", + "message": { + "text": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used", + "markdown": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls2Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 196, + "startColumn": 9, + "charOffset": 5619, + "charLength": 7, + "snippet": { + "text": "foreach" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 194, + "startColumn": 1, + "charOffset": 5590, + "charLength": 103, + "snippet": { + "text": " }\r\n \r\n foreach (var s in _splits)\r\n {\r\n if (!s.SplitTriggered)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "39609fc877653488", + "equalIndicator/v1": "77851fd4cf58c26bd822c6d8648023f1f4f6b69963b342c16af9da0295459509" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "ForeachCanBePartlyConvertedToQueryUsingAnotherGetEnumerator", + "kind": "fail", + "level": "note", + "message": { + "text": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used", + "markdown": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Migrations/Migrator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 74, + "startColumn": 25, + "charOffset": 2980, + "charLength": 7, + "snippet": { + "text": "foreach" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 72, + "startColumn": 1, + "charOffset": 2903, + "charLength": 245, + "snippet": { + "text": " {\r\n case \"Boss\":\r\n foreach (XmlNode boss in typeNode.GetChildNodeByName(\"Children\"))\r\n {\r\n var split = boss.GetChildNodeByName(\"Split\");\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "8706ed99a2d29d37", + "equalIndicator/v1": "c403b7c8dacca5e9e283ba84df39bcd58328a1efdedf7f99a711976abccbd715" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "ForeachCanBePartlyConvertedToQueryUsingAnotherGetEnumerator", + "kind": "fail", + "level": "note", + "message": { + "text": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used", + "markdown": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/ArmoredCore6Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 81, + "startColumn": 9, + "charOffset": 2732, + "charLength": 7, + "snippet": { + "text": "foreach" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 79, + "startColumn": 1, + "charOffset": 2711, + "charLength": 95, + "snippet": { + "text": " }\r\n\r\n foreach (var s in _splits)\r\n {\r\n if (!s.SplitTriggered)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "58cbb48e9b18ee4e", + "equalIndicator/v1": "d51de9e4b30af90e38fe47cc1a6766fa9bc453f2780f809426b79f43126ae7e4" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "ForeachCanBePartlyConvertedToQueryUsingAnotherGetEnumerator", + "kind": "fail", + "level": "note", + "message": { + "text": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used", + "markdown": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Migrations/Migrator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 242, + "startColumn": 25, + "charOffset": 12219, + "charLength": 7, + "snippet": { + "text": "foreach" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 240, + "startColumn": 1, + "charOffset": 12159, + "charLength": 228, + "snippet": { + "text": "\r\n case \"Flag\":\r\n foreach (XmlNode flag in typeNode.GetChildNodeByName(\"Children\"))\r\n {\r\n var split = flag.GetChildNodeByName(\"Split\");\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c1c6b8827d51f2cc", + "equalIndicator/v1": "df1c8f10b756a59320161d6a3bc79fc288dc6485977b1670d587b43afccfffd1" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "ForeachCanBePartlyConvertedToQueryUsingAnotherGetEnumerator", + "kind": "fail", + "level": "note", + "message": { + "text": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used", + "markdown": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Migrations/Migrator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 228, + "startColumn": 25, + "charOffset": 11431, + "charLength": 7, + "snippet": { + "text": "foreach" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 226, + "startColumn": 1, + "charOffset": 11371, + "charLength": 228, + "snippet": { + "text": "\r\n case \"Idol\":\r\n foreach (XmlNode idol in typeNode.GetChildNodeByName(\"Children\"))\r\n {\r\n var split = idol.GetChildNodeByName(\"Split\");\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "061ed65b2e7c4cd5", + "equalIndicator/v1": "fdec897a2568f779fa824b6b1fe688e58706f1870a629b01a7492a9e859eb1af" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "InvalidXmlDocComment", + "kind": "fail", + "level": "warning", + "message": { + "text": "Cannot resolve parameter 'iv'", + "markdown": "Cannot resolve parameter 'iv'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Sl2Reader.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 114, + "startColumn": 22, + "charOffset": 3784, + "charLength": 2, + "snippet": { + "text": "iv" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 112, + "startColumn": 1, + "charOffset": 3665, + "charLength": 236, + "snippet": { + "text": " /// encrypted bytes\r\n /// key\r\n /// iv\r\n /// decrypted bytes\r\n private static byte[] DecryptSl2(byte[] cipherBytes)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "bf856313bcb73407", + "equalIndicator/v1": "468bd5875655386750dcd5b317204eb9307c86980bc3466f0e0881af5f36f5ce" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvalidXmlDocComment", + "kind": "fail", + "level": "warning", + "message": { + "text": "Parameter 'ptde' has no matching param tag in the XML comment for SoulMemory.DarkSouls1.Sl2Reader.GetSaveFileIgt (but other parameters do)", + "markdown": "Parameter 'ptde' has no matching param tag in the XML comment for SoulMemory.DarkSouls1.Sl2Reader.GetSaveFileIgt (but other parameters do)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Sl2Reader.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 49, + "startColumn": 68, + "charOffset": 1893, + "charLength": 4, + "snippet": { + "text": "ptde" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 47, + "startColumn": 1, + "charOffset": 1712, + "charLength": 220, + "snippet": { + "text": " /// The game version\r\n /// IGT or -1 if sometimes failed\r\n public static int? GetSaveFileIgt(string? path, int slot, bool ptde)\r\n {\r\n int? igt = null;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "77a143a217896dcf", + "equalIndicator/v1": "8a74589a15a25c84695c7e74a5f0e0ca1a30af7b3dcc32c16527219f9a2cc52f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvalidXmlDocComment", + "kind": "fail", + "level": "warning", + "message": { + "text": "Cannot resolve parameter 'errors'", + "markdown": "Cannot resolve parameter 'errors'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 36, + "startColumn": 22, + "charOffset": 1453, + "charLength": 6, + "snippet": { + "text": "errors" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 34, + "startColumn": 1, + "charOffset": 1348, + "charLength": 201, + "snippet": { + "text": " /// \r\n /// \r\n /// \r\n /// \r\n /// \r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "43d6d71041648287", + "equalIndicator/v1": "8ca00d65ee57945fa59ffd9e59ae2fdc9a5b9db53e9e60a258faa61f68c48444" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvalidXmlDocComment", + "kind": "fail", + "level": "warning", + "message": { + "text": "Cannot resolve parameter 'version'", + "markdown": "Cannot resolve parameter 'version'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Sl2Reader.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 47, + "startColumn": 22, + "charOffset": 1733, + "charLength": 7, + "snippet": { + "text": "version" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 45, + "startColumn": 1, + "charOffset": 1589, + "charLength": 310, + "snippet": { + "text": " /// path to the SL2 file\r\n /// the slot to read the IGT from\r\n /// The game version\r\n /// IGT or -1 if sometimes failed\r\n public static int? GetSaveFileIgt(string? path, int slot, bool ptde)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "eec4b53b102bc920", + "equalIndicator/v1": "a8edf12716bea8944f15d70731710c789bf97c6778d1fa046821c058a965867d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvalidXmlDocComment", + "kind": "fail", + "level": "warning", + "message": { + "text": "Cannot resolve parameter 'key'", + "markdown": "Cannot resolve parameter 'key'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Sl2Reader.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 113, + "startColumn": 22, + "charOffset": 3745, + "charLength": 3, + "snippet": { + "text": "key" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 111, + "startColumn": 1, + "charOffset": 3645, + "charLength": 198, + "snippet": { + "text": " /// \r\n /// encrypted bytes\r\n /// key\r\n /// iv\r\n /// decrypted bytes\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "653146d61fed80dc", + "equalIndicator/v1": "eacffe11019fbc31229c71a87dde5b228a71ee5bcf4221a44768e27d4e874e70" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 159, + "startColumn": 17, + "charOffset": 6377, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 157, + "startColumn": 1, + "charOffset": 6328, + "charLength": 128, + "snippet": { + "text": " else\r\n {\r\n if (process.HasExited)\r\n {\r\n process = null;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5da56bce3b20b379", + "equalIndicator/v1": "027a70fa60e22b201c78a65fcb8c0314b8a4d33daa09221611b1b10c79f79670" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 217, + "startColumn": 13, + "charOffset": 7709, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 215, + "startColumn": 1, + "charOffset": 7680, + "charLength": 135, + "snippet": { + "text": " }\r\n\r\n if (calculatedPointer != 0)\r\n {\r\n var thing = 7 - (leastSignificantDigits & 7);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f18aca08d2acc005", + "equalIndicator/v1": "08c9b01a1c0905d91a860c410dd838eea834d0fa22b50cc2a6f0252343e610b5" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/SekiroSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 78, + "startColumn": 9, + "charOffset": 2386, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 76, + "startColumn": 1, + "charOffset": 2319, + "charLength": 142, + "snippet": { + "text": " protected virtual void Dispose(bool disposing)\r\n {\r\n if (disposing)\r\n {\r\n _liveSplitState.OnStart -= OnStart;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "643fb98de375013a", + "equalIndicator/v1": "0c5ec9d37f0e109a2c9e7056324edee3fa2ea5ffa8c421321260331ffda49a74" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/DarkSouls1.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 79, + "startColumn": 17, + "charOffset": 3943, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 77, + "startColumn": 1, + "charOffset": 3856, + "charLength": 164, + "snippet": { + "text": " {\r\n var result = _darkSouls1.TryRefresh();\r\n if(result.IsErr)\r\n {\r\n _darkSouls1 = null;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e64a1742565f6f46", + "equalIndicator/v1": "128c1071161b4d6aa70ee507190f0cd2f14eb9cce3c34ca3f676165de7910b6e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/ParamClassGenerator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 173, + "startColumn": 9, + "charOffset": 7632, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 171, + "startColumn": 1, + "charOffset": 7601, + "charLength": 125, + "snippet": { + "text": "\r\n //Bitfields\r\n if (paramName.Contains(':'))\r\n {\r\n var colonIndex = paramName.IndexOf(':');\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5855ddaa5ef2ed4d", + "equalIndicator/v1": "135b139eb1be6572036d0696b414d198c1ac50a28fe02c3703440cd9669acd2b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 144, + "startColumn": 9, + "charOffset": 5113, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 142, + "startColumn": 1, + "charOffset": 5028, + "charLength": 157, + "snippet": { + "text": " {\r\n var result = GetEventFlagAddress(eventFlagId, out int mask);\r\n if (result.IsOk)\r\n {\r\n var address = result.Unwrap();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "239f704c38bbe5fa", + "equalIndicator/v1": "1702d944ed49dfbba6b1af918f6961fc4905f47b8ac70b5c5638cbbef721b91f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/EldenRing.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 181, + "startColumn": 13, + "charOffset": 6857, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 179, + "startColumn": 1, + "charOffset": 6805, + "charLength": 137, + "snippet": { + "text": " catch (Exception e)\r\n {\r\n if(e.Message == \"Access is denied\")\r\n {\r\n _process = null;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e5fba7c5c4649ac4", + "equalIndicator/v1": "1a4698c404c4c680acc28b18a6a80e61e7ed55c7719143b81b50b808277f8947" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Migrations/Migrator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 77, + "startColumn": 29, + "charOffset": 3177, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 75, + "startColumn": 1, + "charOffset": 3047, + "charLength": 342, + "snippet": { + "text": " {\r\n var split = boss.GetChildNodeByName(\"Split\");\r\n if (SoulMemory.DarkSouls3.Boss.TryParse(split.InnerText, out SoulMemory.DarkSouls3.Boss b))\r\n {\r\n newDarkSouls3ViewModel.NewSplitTimingType = timingType;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "3458202ac27e073b", + "equalIndicator/v1": "1b6419179f0bb2f5a066fd0d51965fcdc6b9cc5019c53a0a5079795373a860e7" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/EldenRing.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 171, + "startColumn": 13, + "charOffset": 6523, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 169, + "startColumn": 1, + "charOffset": 6481, + "charLength": 130, + "snippet": { + "text": " ApplyNoLogo();\r\n\r\n if (!soulmods.Soulmods.Inject(_process!))\r\n {\r\n _igt.Clear();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "20bf8e9ca6c91d32", + "equalIndicator/v1": "1e3ee243ea977c558bf91799ac3c88940d95557c0b8c0f5386f013a0c8e2604f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/EldenRing.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 454, + "startColumn": 9, + "charOffset": 15215, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 452, + "startColumn": 1, + "charOffset": 15194, + "charLength": 167, + "snippet": { + "text": " }\r\n\r\n if (currentElement.GetAddress() != currentSubElement.GetAddress())\r\n {\r\n var mysteryValue = currentElement.ReadInt32(0x28) - 1;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "208629a29266ed9b", + "equalIndicator/v1": "2103d5ce5318d80e734f583edfd4661b02d9c63f5563ff464005c125488f825b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls2Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 198, + "startColumn": 13, + "charOffset": 5670, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 196, + "startColumn": 1, + "charOffset": 5611, + "charLength": 140, + "snippet": { + "text": " foreach (var s in _splits)\r\n {\r\n if (!s.SplitTriggered)\r\n {\r\n if (!s.SplitConditionMet)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b5d52d9480d65542", + "equalIndicator/v1": "24d162772e7701d2be88af9f26222ed9924c79c43e2c523d320e8249fa8b53bf" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/MainWindow.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 64, + "startColumn": 13, + "charOffset": 2000, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 62, + "startColumn": 1, + "charOffset": 1896, + "charLength": 180, + "snippet": { + "text": " var hdc = graphics.GetHdc();\r\n var color = Gdi32.BitBlt(hdc, 0, 0);\r\n if (color != _stash)\r\n {\r\n graphics.ReleaseHdc();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4d002f82171467d2", + "equalIndicator/v1": "2eeed7069ce088abb4a71568fcdc9d2c18bedc0c0f3d006749ae2ac944a70a40" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/BaseSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 91, + "startColumn": 9, + "charOffset": 2909, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 89, + "startColumn": 1, + "charOffset": 2842, + "charLength": 148, + "snippet": { + "text": " protected virtual void Dispose(bool disposing)\r\n {\r\n if (disposing)\r\n {\r\n _liveSplitState.OnStart -= InternalStart;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "11b968cb2c7e7ae1", + "equalIndicator/v1": "2feaf5f7cbd3f45f63abf662221eff87143923db9e3e2f108e6bb96836012161" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 69, + "startColumn": 9, + "charOffset": 2302, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 67, + "startColumn": 1, + "charOffset": 2202, + "charLength": 180, + "snippet": { + "text": " private void OnPreviewTextInput_Byte(object sender, TextCompositionEventArgs e)\r\n {\r\n if (sender is TextBox t)\r\n {\r\n var newText = t.Text + e.Text;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "3ae8d697f3f8ec9c", + "equalIndicator/v1": "33a300a135bc13ba3c26fc442301e1869d00fc8fa05b12a930c4715d07a193c3" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Sekiro/Sekiro.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 249, + "startColumn": 9, + "charOffset": 9120, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 247, + "startColumn": 1, + "charOffset": 9042, + "charLength": 164, + "snippet": { + "text": " {\r\n var resultAddress = GetEventFlagAddress(eventFlagId);\r\n if (resultAddress.IsOk)\r\n {\r\n var pointer = resultAddress.Unwrap();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "79cfaee8b7b4d53f", + "equalIndicator/v1": "35b57df37196b1770c1d9d01f254ce1ecae3c99b981a2c0af8ec5c8f83e99df3" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Process/ProcessWrapper.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 63, + "startColumn": 17, + "charOffset": 2474, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 61, + "startColumn": 1, + "charOffset": 2425, + "charLength": 130, + "snippet": { + "text": " else\r\n {\r\n if (_process.HasExited)\r\n {\r\n _process = null;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "342a2b32c6e4bb45", + "equalIndicator/v1": "36e8f6a24e04452cf4bae1f2a041ada4612a6e64bace40cec8c3b2635a1e0990" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Sekiro/Sekiro.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 225, + "startColumn": 9, + "charOffset": 8370, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 223, + "startColumn": 1, + "charOffset": 8292, + "charLength": 164, + "snippet": { + "text": " {\r\n var resultAddress = GetEventFlagAddress(eventFlagId);\r\n if (resultAddress.IsOk)\r\n {\r\n var pointer = resultAddress.Unwrap();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "55dfe7697bbbffbc", + "equalIndicator/v1": "37d24195284483fc642a26c583359026bc0a2bc28e06c41ce9c1b54dba6ab660" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 31, + "startColumn": 9, + "charOffset": 1112, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 29, + "startColumn": 1, + "charOffset": 1058, + "charLength": 186, + "snippet": { + "text": " var sourceMemory = memory;\r\n \r\n if (memory is Pointer p)\r\n {\r\n //Pointers read memory relatively, must get their source to keep reading correctly\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ec2403717045d658", + "equalIndicator/v1": "38cca05efb7d51c7efa0791fd5c3725508487dee13e26fbb871c12159beeb1e7" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 192, + "startColumn": 9, + "charOffset": 7628, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 190, + "startColumn": 1, + "charOffset": 7539, + "charLength": 264, + "snippet": { + "text": " result = 0;\r\n var pattern = pointerNode.Pattern.ToBytePattern();\r\n if (bytes.TryBoyerMooreSearch(pattern, out long scanResult))\r\n {\r\n var address = BitConverter.ToInt32(bytes, (int)(scanResult + pointerNode.AddressOffset));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "3aef7642ce00914d", + "equalIndicator/v1": "397a6587e276c2aa10cde56d49ec93f5b75b1623f4b1c250177c5d7314b8f37a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/EldenRing.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 481, + "startColumn": 13, + "charOffset": 16210, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 479, + "startColumn": 1, + "charOffset": 16181, + "charLength": 135, + "snippet": { + "text": " }\r\n\r\n if (calculatedPointer != 0)\r\n {\r\n var thing = 7 - (leastSignificantDigits & 7);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "401605a88ccdc37f", + "equalIndicator/v1": "399ac465590eaed787f99e1982f523bbf17342202e18f94b9c0ad75fa91077f6" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/SoulComponent.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 124, + "startColumn": 13, + "charOffset": 4063, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 122, + "startColumn": 1, + "charOffset": 4026, + "charLength": 115, + "snippet": { + "text": " else\r\n {\r\n if (_previousBitBlt)\r\n {\r\n _previousBitBlt = false;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "6e4e6870eb0ea04e", + "equalIndicator/v1": "3d780cb020e081a4fcfa47cbd55b01150b008dc1d8a428db27ddac61bdadbdb5" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Extensions.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 31, + "startColumn": 9, + "charOffset": 1124, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 29, + "startColumn": 1, + "charOffset": 1081, + "charLength": 132, + "snippet": { + "text": " {\r\n result = default!;\r\n if (Enum.IsDefined(typeof(T), value))\r\n {\r\n result = (T)(object)value;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "142dfa756a5f18c5", + "equalIndicator/v1": "3f3213eadfa6c8b172602f62ad19b9bda60058dc461b95d8365d98ae49883bec" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/ItemReader.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 37, + "startColumn": 13, + "charOffset": 1486, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 35, + "startColumn": 1, + "charOffset": 1391, + "charLength": 186, + "snippet": { + "text": " var quantity = BitConverter.ToInt32(data, address + 8);\r\n \r\n if (item != -1)\r\n {\r\n var categories = new List();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "992ec3d319da2204", + "equalIndicator/v1": "4099c847cf12e4278e612cd669e09aec25c09481a2176c004b5a0d77bd2d7feb" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 116, + "startColumn": 17, + "charOffset": 4770, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 114, + "startColumn": 1, + "charOffset": 4608, + "charLength": 234, + "snippet": { + "text": " var pattern = n.Pattern.ToBytePattern();\r\n var count = files[i].bytes.BoyerMooreCount(pattern); //BoyerMooreCount\r\n if (count != 1)\r\n {\r\n lock(errorLock)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "654ba3b22811b6d6", + "equalIndicator/v1": "43ab058ca390998f8e18f0704ef1310d39d00ccc5bbd4e3f9477eef0529ef0b8" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 342, + "startColumn": 9, + "charOffset": 11945, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 340, + "startColumn": 1, + "charOffset": 11880, + "charLength": 155, + "snippet": { + "text": " var variable = _saveInfo.ReadInt32(0x10);\r\n \r\n if (variable != 0)\r\n {\r\n // some old gfwl savefiles are still supported\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "62912600b65e482e", + "equalIndicator/v1": "481578124f493d6d9b920aebecc99eda9004d924a67599d0dcd7a7008dc6c521" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 128, + "startColumn": 9, + "charOffset": 5137, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 126, + "startColumn": 1, + "charOffset": 5048, + "charLength": 264, + "snippet": { + "text": " result = 0;\r\n var pattern = pointerNode.Pattern.ToBytePattern();\r\n if (bytes.TryBoyerMooreSearch(pattern, out long scanResult))\r\n {\r\n var address = BitConverter.ToInt32(bytes, (int)(scanResult + pointerNode.AddressOffset));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ae10c4a0b07076c9", + "equalIndicator/v1": "500297d0e4c7ed5dac560c54138957694e1cd9d893df2152fd09a0c57c6de745" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 350, + "startColumn": 9, + "charOffset": 12228, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 348, + "startColumn": 1, + "charOffset": 12158, + "charLength": 161, + "snippet": { + "text": " {\r\n string idString = eventFlagId.ToString(\"D8\");\r\n if (idString.Length == 8)\r\n {\r\n string group = idString.Substring(0, 1);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "2723aed77472844a", + "equalIndicator/v1": "505600cfddcce511e85a63de66db7d0f4f853afc541dafd26e1f3901786428d7" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls1Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 236, + "startColumn": 13, + "charOffset": 7903, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 234, + "startColumn": 1, + "charOffset": 7844, + "charLength": 140, + "snippet": { + "text": " foreach (var s in _splits)\r\n {\r\n if (!s.SplitTriggered)\r\n {\r\n if (!s.SplitConditionMet)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "64d55ea29f17bb78", + "equalIndicator/v1": "52bce8252a7fd7725657590386ef548fa4f880e2f182625087865453ba995c1e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/SoulComponent.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 303, + "startColumn": 9, + "charOffset": 10585, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 301, + "startColumn": 1, + "charOffset": 10564, + "charLength": 126, + "snippet": { + "text": " }\r\n\r\n if (_customShowSettingsButton == null)\r\n {\r\n _customShowSettingsButton = new Button();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5e18f40425b641c0", + "equalIndicator/v1": "58b91b9e2ac6f2513549155a357a12e0cc1626bb23bf6af95dcf53dc0147279c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2Control.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 56, + "startColumn": 9, + "charOffset": 1882, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 54, + "startColumn": 1, + "charOffset": 1781, + "charLength": 271, + "snippet": { + "text": " private void TextBoxRawFlag_OnTextChanged(object sender, TextChangedEventArgs e)\r\n {\r\n if (_darkSouls2ViewModel.NewSplitType is DarkSouls2SplitType.Flag && sender is TextBox textBox)\r\n {\r\n if (uint.TryParse(textBox.Text, out uint result))\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ed711c2c9b8a148a", + "equalIndicator/v1": "599db2db34744eddabd2888137b095427dfd1af21e1704eab90f5cd9b09d8e3f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 291, + "startColumn": 9, + "charOffset": 10288, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 289, + "startColumn": 1, + "charOffset": 10218, + "charLength": 161, + "snippet": { + "text": " {\r\n string idString = eventFlagId.ToString(\"D8\");\r\n if (idString.Length == 8)\r\n {\r\n string group = idString.Substring(0, 1);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "cf7bc7bbaf477171", + "equalIndicator/v1": "60f9bcadaaebb62f68bb8a0991bd8807428eec106e9a8cf40d1701f0a9682d37" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls1Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 362, + "startColumn": 13, + "charOffset": 12521, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 360, + "startColumn": 1, + "charOffset": 12492, + "charLength": 115, + "snippet": { + "text": " }\r\n\r\n if (_isWarping && isPlayerLoaded)\r\n {\r\n _isWarping = false;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "3a1ed71f236b14d6", + "equalIndicator/v1": "66fa58c7d712e78508230dc7b9b67504221fe765b9f34e03c3406348385ccc7b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2Control.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 78, + "startColumn": 9, + "charOffset": 2699, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 76, + "startColumn": 1, + "charOffset": 2598, + "charLength": 181, + "snippet": { + "text": " private void OnPreviewTextInput_Float(object sender, TextCompositionEventArgs e)\r\n {\r\n if (sender is TextBox t)\r\n {\r\n var newText = t.Text + e.Text;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f0ef2283c245ba45", + "equalIndicator/v1": "6734e9f897e67e1a047373aa53bf159e05cf1b5f890d992d3423aa18792d14c5" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/SplitsTree.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 44, + "startColumn": 9, + "charOffset": 1748, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 42, + "startColumn": 1, + "charOffset": 1627, + "charLength": 238, + "snippet": { + "text": " private void TreeView_OnSelectedItemChanged(object sender, RoutedPropertyChangedEventArgs e)\r\n {\r\n if (sender is TreeView treeView)\r\n {\r\n if (treeView.SelectedItem is SplitViewModel splitViewModel)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "093e7123106db0b7", + "equalIndicator/v1": "6c0b645dd70c91bd4449d59706437e6a8e697245c8411c7ded8ea629e192c403" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/FlagWatcher.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 48, + "startColumn": 13, + "charOffset": 1674, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 46, + "startColumn": 1, + "charOffset": 1561, + "charLength": 199, + "snippet": { + "text": " var flag = _flags.ElementAt(i);\r\n var value = _game.ReadEventFlag(flag.Key);\r\n if (value != flag.Value)\r\n {\r\n result.Add(flag.Key, value);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5b06a35ce7c15e7e", + "equalIndicator/v1": "6d1bf4ab922905bbf99e4422e54f2ca9283873650f807a017eea23d7fa5d41b2" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 256, + "startColumn": 17, + "charOffset": 9793, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 254, + "startColumn": 1, + "charOffset": 9660, + "charLength": 200, + "snippet": { + "text": " for (var j = lastPatternIndex; !needle[j].HasValue || haystack[i + j] == needle[j]; --j)\r\n {\r\n if (j == 0)\r\n {\r\n result.Add(i);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "595721cd34332911", + "equalIndicator/v1": "70a28e7815c601d8e53f78fe2d8a523d69853276fdcbad681debbde683e8810f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Migrations/Migrator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 217, + "startColumn": 29, + "charOffset": 10843, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 215, + "startColumn": 1, + "charOffset": 10713, + "charLength": 330, + "snippet": { + "text": " {\r\n var split = boss.GetChildNodeByName(\"Split\");\r\n if (SoulMemory.Sekiro.Boss.TryParse(split.InnerText, out SoulMemory.Sekiro.Boss b))\r\n {\r\n newSekiroViewModel.NewSplitTimingType = timingType;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f12b2b308353c26f", + "equalIndicator/v1": "712f1976791f2cf1c3e897478a21bc92a30fb0c25a107682e448a53f55d90266" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls1Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 85, + "startColumn": 9, + "charOffset": 2870, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 83, + "startColumn": 1, + "charOffset": 2803, + "charLength": 151, + "snippet": { + "text": " protected virtual void Dispose(bool disposing)\r\n {\r\n if (disposing)\r\n {\r\n _timerModel.CurrentState.OnStart -= OnStart;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "86e929be260bf6ac", + "equalIndicator/v1": "74f07e77f12a880aeabfabee387a63810a57fe5c0e7b90a3e3f458b313458d35" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/FlagTrackerWindow.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 31, + "startColumn": 9, + "charOffset": 1145, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 29, + "startColumn": 1, + "charOffset": 1026, + "charLength": 256, + "snippet": { + "text": " private void TreeView_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs e)\r\n {\r\n if (DataContext is FlagTrackerViewModel flagTrackerViewModel)\r\n {\r\n if (e.NewValue is FlagDescription flagDescription)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "6d35d458c4e5c86f", + "equalIndicator/v1": "75e2b7704c7b21072bfe3baeb4ae97b896eb751181481a53e9f7fbdaaacdb515" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 298, + "startColumn": 13, + "charOffset": 10574, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 296, + "startColumn": 1, + "charOffset": 10497, + "charLength": 222, + "snippet": { + "text": " int number = int.Parse(idString.Substring(5, 3));\r\n\r\n if (EventFlagGroups.ContainsKey(group) && EventFlagAreas.ContainsKey(area))\r\n {\r\n int offset = EventFlagGroups[group];\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ea7b27016f9fffaf", + "equalIndicator/v1": "7623eb95ff2c36e497ce7778657ea417223f4129263cbbf6ff587f0a5d0786dd" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/soulmods/Soulmods.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 102, + "startColumn": 9, + "charOffset": 3635, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 100, + "startColumn": 1, + "charOffset": 3588, + "charLength": 174, + "snippet": { + "text": "\r\n //Get data of requestedSize\r\n if (requestedSize > 0)\r\n {\r\n var totalSize = (int)(4 + (requestedSize * Marshal.SizeOf()));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "6c35b10c714a8116", + "equalIndicator/v1": "76476e6c4948249bc3a00cb1b730a7418296d2f862d433f0c4b706056aae0575" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 278, + "startColumn": 17, + "charOffset": 10902, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 276, + "startColumn": 1, + "charOffset": 10769, + "charLength": 197, + "snippet": { + "text": " for (var j = lastPatternIndex; !needle[j].HasValue || haystack[i + j] == needle[j]; --j)\r\n {\r\n if (j == 0)\r\n {\r\n result = i;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "562ff9a056783da6", + "equalIndicator/v1": "780d43df2c18c272a4e05d41f0b436b8f365f9029368ac9e70698ff536d52da5" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 117, + "startColumn": 9, + "charOffset": 4764, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 115, + "startColumn": 1, + "charOffset": 4718, + "charLength": 132, + "snippet": { + "text": " public void RemoveSplit()\r\n {\r\n if (SelectedSplit != null)\r\n {\r\n var parent = SelectedSplit.Parent;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b6d800c815117e0a", + "equalIndicator/v1": "801638fe6278cfbe1763a562199a97d50839f0a17b5b9f95258c849647ab8021" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/ArmoredCore6Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 83, + "startColumn": 13, + "charOffset": 2783, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 81, + "startColumn": 1, + "charOffset": 2724, + "charLength": 140, + "snippet": { + "text": " foreach (var s in _splits)\r\n {\r\n if (!s.SplitTriggered)\r\n {\r\n if (!s.SplitConditionMet)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "36f94d0e3ec1e560", + "equalIndicator/v1": "823f87a46d0a6ed9c2fd9a84923544a4295e5df0a9d5240720bec0f0b8deb14c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/SoulComponent.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 87, + "startColumn": 17, + "charOffset": 2868, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 85, + "startColumn": 1, + "charOffset": 2695, + "charLength": 257, + "snippet": { + "text": " //Result will internally be added to the error list already.\r\n var result = UpdateSplitter(MainWindow.MainViewModel, state);\r\n if(result.IsErr)\r\n {\r\n var err = result.GetErr();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "eb6f8898ba16aadd", + "equalIndicator/v1": "87b6d989f5a4cf1c10ec1d8d72d91d932627e82929eb4e348fd726f0690c7bb4" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 258, + "startColumn": 21, + "charOffset": 9016, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 256, + "startColumn": 1, + "charOffset": 8971, + "charLength": 189, + "snippet": { + "text": " }\r\n\r\n if (found)\r\n {\r\n flagWorldBlockInfoCategory = worldInfoBlockVector!.ReadInt32((index * 0x70) + 0x20);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "fae49345eb2e0859", + "equalIndicator/v1": "883f3096f914c0f901be9224436286beab45adaa0839c8c8a9c78677e705ae4c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Sekiro/Sekiro.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 306, + "startColumn": 29, + "charOffset": 11570, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 304, + "startColumn": 1, + "charOffset": 11502, + "charLength": 167, + "snippet": { + "text": "\r\n index++;\r\n if (count <= index)\r\n {\r\n found = false;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "81a0c33fca180e1a", + "equalIndicator/v1": "8f8bfca524176246b58e06f80fd7f202de00e1d036920dad7c8b8cdd4feef9b2" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 320, + "startColumn": 17, + "charOffset": 12285, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 318, + "startColumn": 1, + "charOffset": 12152, + "charLength": 200, + "snippet": { + "text": " for (var j = lastPatternIndex; !needle[j].HasValue || haystack[i + j] == needle[j]; --j)\r\n {\r\n if (j == 0)\r\n {\r\n result.Add(i);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "223e888dbf3cda46", + "equalIndicator/v1": "8f914f632d7a041b0b3a131ed3c12dbae738b312f16de56e703aac55c2583cf2" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls3Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 65, + "startColumn": 9, + "charOffset": 2067, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 63, + "startColumn": 1, + "charOffset": 2000, + "charLength": 142, + "snippet": { + "text": " protected virtual void Dispose(bool disposing)\r\n {\r\n if (disposing)\r\n {\r\n _liveSplitState.OnStart -= OnStart;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4ee8f85b3802ed8a", + "equalIndicator/v1": "9282a617acd581b6b32dec615c6b47510a62f9b64308803cbba7dc887b57fc0a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Migrations/Migrator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 231, + "startColumn": 29, + "charOffset": 11628, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 229, + "startColumn": 1, + "charOffset": 11498, + "charLength": 330, + "snippet": { + "text": " {\r\n var split = idol.GetChildNodeByName(\"Split\");\r\n if (SoulMemory.Sekiro.Idol.TryParse(split.InnerText, out SoulMemory.Sekiro.Idol i))\r\n {\r\n newSekiroViewModel.NewSplitTimingType = timingType;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5ab17ad976567290", + "equalIndicator/v1": "93bd13ce45bab07055c8a8c65e18fb0c5341eaf98430fdc575b440f745fbaa95" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/DropMod.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 68, + "startColumn": 13, + "charOffset": 2435, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 66, + "startColumn": 1, + "charOffset": 2316, + "charLength": 252, + "snippet": { + "text": " {\r\n var s = temp; //structs need to be put in a variable in order to be mutable. Meme.\r\n if (s.ShouldSwitch && items.Any(j => j.ItemType == s.SwitchItem))\r\n {\r\n GuaranteeDrop(s.RowId, s.ItemId2);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "179d9030d2ee8729", + "equalIndicator/v1": "93d33e6a4217bb3ce79b9d755c03ec1801749a2fb98475d332bb611cc498b07d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 357, + "startColumn": 13, + "charOffset": 12518, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 355, + "startColumn": 1, + "charOffset": 12439, + "charLength": 224, + "snippet": { + "text": " int number = Int32.Parse(idString.Substring(5, 3));\r\n\r\n if (EventFlagGroups.ContainsKey(group) && EventFlagAreas.ContainsKey(area))\r\n {\r\n int offset = EventFlagGroups[group];\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "abf5ae7691b0f293", + "equalIndicator/v1": "954a9e4e281f5d006a3767a3c3e6b2663c22dd7d4308f1beb35427e8d82fe337" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 283, + "startColumn": 9, + "charOffset": 9816, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 281, + "startColumn": 1, + "charOffset": 9650, + "charLength": 324, + "snippet": { + "text": " resultPointerAddress.Initialize(ptr.Process!, ptr.Is64Bit, (eventFlagIdDiv1000 << 4) + ptr.GetAddress() + flagWorldBlockInfoCategory * 0xa8, 0x0);\r\n\r\n if (!resultPointerAddress.IsNullPtr())\r\n {\r\n var value = resultPointerAddress.ReadUInt32((long)((uint)((int)eventFlagId % 1000) >> 5) * 4);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b96b880795d6d343", + "equalIndicator/v1": "9bcec903028493f17e1d9b6f548142cdb3c87992e3bd23eef138c0c57016b782" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 298, + "startColumn": 17, + "charOffset": 11152, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 296, + "startColumn": 1, + "charOffset": 11019, + "charLength": 195, + "snippet": { + "text": " for (var j = lastPatternIndex; !needle[j].HasValue || haystack[i + j] == needle[j]; --j)\r\n {\r\n if (j == 0)\r\n {\r\n result++;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0ab2cf43e179e1a1", + "equalIndicator/v1": "9bfdde1c4c7a004f573aa26d001e09c9330d92f39c0258f0d69bd38342acb541" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/FlagTrackerViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 109, + "startColumn": 13, + "charOffset": 3537, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 107, + "startColumn": 1, + "charOffset": 3462, + "charLength": 218, + "snippet": { + "text": " {\r\n var category = EventFlagCategories[i];\r\n if(category.EventFlags.Contains(SelectedFlagDescription))\r\n {\r\n category.EventFlags.Remove(SelectedFlagDescription);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9556eb29b6a13cda", + "equalIndicator/v1": "9e7f7d64a63d27bdf202c0c438beaf3d9364adcb5fa3db1dd574ff66897f74fe" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls3Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 216, + "startColumn": 13, + "charOffset": 6436, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 214, + "startColumn": 1, + "charOffset": 6377, + "charLength": 140, + "snippet": { + "text": " foreach (var s in _splits)\r\n {\r\n if (!s.SplitTriggered)\r\n {\r\n if (!s.SplitConditionMet)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0741417c239beccd", + "equalIndicator/v1": "a0e5bd6426e84c7197bbe2894fe5589b0811bdcb3030c08a8217c2ac39076440" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/ItemReader.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 120, + "startColumn": 17, + "charOffset": 5113, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 118, + "startColumn": 1, + "charOffset": 4979, + "charLength": 340, + "snippet": { + "text": "\r\n var lookupItem = Item.AllItems.FirstOrDefault(j => categories.Contains(j.Category) && j.Id == id);\r\n if (lookupItem != null)\r\n {\r\n var instance = new Item(lookupItem.Name, lookupItem.Id, lookupItem.ItemType, lookupItem.Category, lookupItem.StackLimit, lookupItem.Upgrade);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4d0b1f000a11f2d9", + "equalIndicator/v1": "a5b4f9764013ae97c3ece701f7d8048b392b45871b35294c859c5c4e19e2aba1" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Sekiro/Sekiro.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 314, + "startColumn": 21, + "charOffset": 11813, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 312, + "startColumn": 1, + "charOffset": 11768, + "charLength": 189, + "snippet": { + "text": " }\r\n\r\n if (found)\r\n {\r\n flagWorldBlockInfoCategory = worldInfoBlockVector!.ReadInt32((index * 0xb0) + 0x20);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "32de148207c7caac", + "equalIndicator/v1": "abfed1c5f1aa9cc6e77c7908f92ed49d170ed19f7a25cb85f09c92825a3ce659" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/EldenRingSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 252, + "startColumn": 13, + "charOffset": 8147, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 250, + "startColumn": 1, + "charOffset": 8088, + "charLength": 140, + "snippet": { + "text": " foreach (var s in _splits)\r\n {\r\n if (!s.SplitTriggered)\r\n {\r\n if (!s.SplitConditionMet)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4615987ff2a8b29f", + "equalIndicator/v1": "b0b32fa76fdf43f95b7ab3872e5db381a6beea1d8110fae05d73091c0965ca01" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/SoulComponent.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 332, + "startColumn": 13, + "charOffset": 11695, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 330, + "startColumn": 1, + "charOffset": 11628, + "charLength": 205, + "snippet": { + "text": " MainWindow.Dispatcher.Invoke(() =>\r\n {\r\n if (!string.IsNullOrWhiteSpace(s?.Run?.GameName))\r\n {\r\n var name = s!.Run!.GameName.ToLower().Replace(\" \", \"\");\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "27627aa20023fd29", + "equalIndicator/v1": "b114f7ab9b770818888da92c6b8c29c7404711094d0c482c71f9ef977a3362f3" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 144, + "startColumn": 9, + "charOffset": 5881, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 142, + "startColumn": 1, + "charOffset": 5792, + "charLength": 201, + "snippet": { + "text": " result = 0;\r\n var pattern = pointerNode.Pattern.ToBytePattern();\r\n if (bytes.TryBoyerMooreSearch(pattern, out long scanResult))\r\n {\r\n scanResult += baseAddress;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e9d2e37d7b33106c", + "equalIndicator/v1": "b3627806e5927d04c0905f751e7bfe91ca8f895bef6f942ce74081f60115d2f6" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 95, + "startColumn": 17, + "charOffset": 3887, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 93, + "startColumn": 1, + "charOffset": 3838, + "charLength": 128, + "snippet": { + "text": " else\r\n {\r\n if (process.HasExited)\r\n {\r\n process = null;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "138f24bb28b5acaf", + "equalIndicator/v1": "b5c37f49c18d37117aa86f49dcd1be8de83a88a4f15bd1e9c11c69ac68a1dd21" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Migrations/Migrator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 122, + "startColumn": 29, + "charOffset": 5852, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 120, + "startColumn": 1, + "charOffset": 5737, + "charLength": 381, + "snippet": { + "text": " var attributeLevel = split.GetChildNodeByName(\"Level\");\r\n\r\n if (\r\n SoulMemory.DarkSouls3.Attribute.TryParse(attributeType.InnerText, out SoulMemory.DarkSouls3.Attribute attributeTypeParsed) &&\r\n int.TryParse(attributeLevel.InnerText, out int attributeLevelParsed)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9cd4c2f7af53c6e4", + "equalIndicator/v1": "b5e69a48caaae12c2366bf0efb70a56bc1380203ad27c408e424aff73f5b8e9a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls2Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 76, + "startColumn": 9, + "charOffset": 2334, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 74, + "startColumn": 1, + "charOffset": 2267, + "charLength": 142, + "snippet": { + "text": " protected virtual void Dispose(bool disposing)\r\n {\r\n if (disposing)\r\n {\r\n _liveSplitState.OnStart -= OnStart;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0cd75644b873c94a", + "equalIndicator/v1": "b72f163632381aa1ef5ab6923a8af603828d6af24dfe0865b6a0687bf811796f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls1Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 348, + "startColumn": 9, + "charOffset": 12181, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 346, + "startColumn": 1, + "charOffset": 12116, + "charLength": 144, + "snippet": { + "text": "\r\n //Warp is requested - wait for loading screen\r\n if (_isWarpRequested)\r\n {\r\n if (!_warpHasPlayerBeenUnloaded)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "afe65230b1f24de2", + "equalIndicator/v1": "b8206fdd24a9dd3dd3c3a33fe875e53822e66e005bd8de9e0d67368ec7992614" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 82, + "startColumn": 9, + "charOffset": 2676, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 80, + "startColumn": 1, + "charOffset": 2575, + "charLength": 181, + "snippet": { + "text": " private void OnPreviewTextInput_Float(object sender, TextCompositionEventArgs e)\r\n {\r\n if (sender is TextBox t)\r\n {\r\n var newText = t.Text + e.Text;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "1dbc511620596f6b", + "equalIndicator/v1": "bc4672985c0fc8b507d1aa4c386f0df583a921f0d5cd7076ba0677f5bd3b7dfa" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Sekiro/Sekiro.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 284, + "startColumn": 17, + "charOffset": 10597, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 282, + "startColumn": 1, + "charOffset": 10503, + "charLength": 207, + "snippet": { + "text": " {\r\n var area = vector.ReadByte((i * 0x38) + 0xb);\r\n if (area == eventFlagArea)\r\n {\r\n var count = vector.ReadByte(i * 0x38 + 0x20);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "76bc17264b72cb45", + "equalIndicator/v1": "bcebea4420d3b82508cbb89baedba0428b4f7baa0a2554dd470bd522fdeabcc4" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Migrations/Migrator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 139, + "startColumn": 29, + "charOffset": 6975, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 137, + "startColumn": 1, + "charOffset": 6845, + "charLength": 298, + "snippet": { + "text": " {\r\n var split = flag.GetChildNodeByName(\"Split\");\r\n if (uint.TryParse(split.InnerText, out uint u))\r\n {\r\n newDarkSouls3ViewModel.NewSplitTimingType = timingType;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9daea532a2bd3148", + "equalIndicator/v1": "bcf3bc4a034585b098675b7d8dff5582ef15a5bb24c8c38aabd61f0d15f2101a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 434, + "startColumn": 13, + "charOffset": 14825, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 432, + "startColumn": 1, + "charOffset": 14743, + "charLength": 158, + "snippet": { + "text": " foreach (ProcessModule item in _process!.Modules)\r\n {\r\n if (item.ModuleName == name)\r\n {\r\n module = item;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e4aced28e3d94641", + "equalIndicator/v1": "bdc1cdaa2d208b88920d48fd1c67797f87adf55465256ed9b99f6a15e3381b8c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 227, + "startColumn": 17, + "charOffset": 7753, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 225, + "startColumn": 1, + "charOffset": 7636, + "charLength": 210, + "snippet": { + "text": " //0x00007ff4fd9ba4c3\r\n var area = vector.ReadByte((i * 0x38) + 0xb);\r\n if (area == eventFlagArea)\r\n {\r\n //function at 0x14060c650\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "21e57df19b1e67b6", + "equalIndicator/v1": "bf7110fb6b38ae996727b5478bcaeaa499678fc06cd9ca57445f92740c8aa25d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 400, + "startColumn": 9, + "charOffset": 12410, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 398, + "startColumn": 1, + "charOffset": 12364, + "charLength": 132, + "snippet": { + "text": " public void RemoveSplit()\r\n {\r\n if (SelectedSplit != null)\r\n {\r\n var parent = SelectedSplit.Parent;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "af11b08cf5251ac2", + "equalIndicator/v1": "c85c596b864d4f78d7b37d55b4bf2ae94e2efdabc8f8b595cbbcdb0f458c0a8d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/FlagTrackerViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 112, + "startColumn": 17, + "charOffset": 3697, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 110, + "startColumn": 1, + "charOffset": 3596, + "charLength": 210, + "snippet": { + "text": " {\r\n category.EventFlags.Remove(SelectedFlagDescription);\r\n if(!category.EventFlags.Any())\r\n {\r\n EventFlagCategories.Remove(category);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5271aacd9819a175", + "equalIndicator/v1": "c89f19d6f63b20134606d4606f58d4b4f2e8c2c2427f81bddd87241c2888eac0" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 52, + "startColumn": 17, + "charOffset": 2307, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 50, + "startColumn": 1, + "charOffset": 2145, + "charLength": 235, + "snippet": { + "text": " var pattern = n.Pattern.ToBytePattern();\r\n var count = files[i].bytes.BoyerMooreCount(pattern); //BoyerMooreCount\r\n if (count != 1)\r\n {\r\n lock (errorLock)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "fd5eab0aebff60f4", + "equalIndicator/v1": "c8a87460ddd12f42d9c40881b749af1deef2b6d05719575ebf841b1f9c893544" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/IMemory.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 105, + "startColumn": 13, + "charOffset": 3432, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 103, + "startColumn": 1, + "charOffset": 3362, + "charLength": 152, + "snippet": { + "text": " for (int i = 1; i < data.Length; i++)\r\n {\r\n if (data[i - 1] == 0 && data[i] == 0)\r\n {\r\n length = i;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "3f32e08b790e846a", + "equalIndicator/v1": "c9a3d21d68e7d82afc3b27029682121f86598059aa0cde56a6ed4b357a4abf1d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 124, + "startColumn": 9, + "charOffset": 4575, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 122, + "startColumn": 1, + "charOffset": 4490, + "charLength": 157, + "snippet": { + "text": " {\r\n var result = GetEventFlagAddress(eventFlagId, out int mask);\r\n if (result.IsOk)\r\n {\r\n var address = result.Unwrap();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "edcc39668688291d", + "equalIndicator/v1": "cba929074fb9a3a92608694371c1cd92143aa62a572f62419c9df2de8e4016a8" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 208, + "startColumn": 9, + "charOffset": 8373, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 206, + "startColumn": 1, + "charOffset": 8284, + "charLength": 201, + "snippet": { + "text": " result = 0;\r\n var pattern = pointerNode.Pattern.ToBytePattern();\r\n if (bytes.TryBoyerMooreSearch(pattern, out long scanResult))\r\n {\r\n scanResult += baseAddress;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c893a6d121dd20dc", + "equalIndicator/v1": "ceee4b7141d20ff178483c90f3f2b9d2b3245efb8df9864e35769889ff3637f5" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/BaseParam.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 112, + "startColumn": 9, + "charOffset": 4226, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 110, + "startColumn": 1, + "charOffset": 4192, + "charLength": 153, + "snippet": { + "text": " field = value;\r\n\r\n if (WriteEnabled)\r\n {\r\n var property = GetType().GetProperties().First(i => i.Name == propertyName);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ebe0ef9c1bce9818", + "equalIndicator/v1": "d22b2ea55bbb9e02b5f8fb67cb8594adf38cd371eea72533d1dc117657e83066" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/RefreshError.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 58, + "startColumn": 9, + "charOffset": 1832, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 56, + "startColumn": 1, + "charOffset": 1780, + "charLength": 117, + "snippet": { + "text": " sb.Append(Message);\r\n }\r\n if (Exception != null)\r\n {\r\n sb.Append(\" - \");\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b776a43d3438b115", + "equalIndicator/v1": "d3491db752425ef54a1ca9d3c66f1c69c4d4829d82e8bcbb8ac4dfd7d05a5216" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Extensions.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 42, + "startColumn": 9, + "charOffset": 1397, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 40, + "startColumn": 1, + "charOffset": 1354, + "charLength": 132, + "snippet": { + "text": " {\r\n result = default!;\r\n if (Enum.IsDefined(typeof(T), value))\r\n {\r\n result = (T)(object)value;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "3e6feabeb6913ded", + "equalIndicator/v1": "d3b9af37b214cece5ff5b9fa936537807c072541ee34621282cd912e116ba2f3" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Sekiro/Sekiro.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 148, + "startColumn": 13, + "charOffset": 6238, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 146, + "startColumn": 1, + "charOffset": 6166, + "charLength": 137, + "snippet": { + "text": " _saveSlot.WriteByte(null, 0xeb);\r\n \r\n if (!InitB3Mods())\r\n {\r\n _igt.Clear();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "02f25f1cf0057642", + "equalIndicator/v1": "d6afae91d2e8f4067516f4dc7365a81257674d434d14a2bf27aef43cebe736c1" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 189, + "startColumn": 9, + "charOffset": 6684, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 187, + "startColumn": 1, + "charOffset": 6663, + "charLength": 175, + "snippet": { + "text": " }\r\n\r\n if (currentElement.ResolveOffsets() != currentSubElement.ResolveOffsets())\r\n {\r\n var mysteryValue = currentElement.ReadInt32(0x28) - 1;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "156e4ea46a6941c5", + "equalIndicator/v1": "d8b5b3cf89caf484acb5d61d75013d7f6abd3457ac0d0a8c5dded4b780172704" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 104, + "startColumn": 13, + "charOffset": 3397, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 102, + "startColumn": 1, + "charOffset": 3327, + "charLength": 152, + "snippet": { + "text": " for (int i = 1; i < data.Length; i++)\r\n {\r\n if (data[i - 1] == 0 && data[i] == 0)\r\n {\r\n length = i;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d0a508bb31706fb5", + "equalIndicator/v1": "db3c1ad53176712a0a30b2cf1af1e13ea8156d02c8e418f971cbda35f3cebc77" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Migrations/Migrator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 105, + "startColumn": 29, + "charOffset": 4831, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 103, + "startColumn": 1, + "charOffset": 4695, + "charLength": 360, + "snippet": { + "text": " {\r\n var split = itemPickup.GetChildNodeByName(\"Split\");\r\n if (SoulMemory.DarkSouls3.ItemPickup.TryParse(split.InnerText, out SoulMemory.DarkSouls3.ItemPickup i))\r\n {\r\n newDarkSouls3ViewModel.NewSplitTimingType = timingType;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a56e0271018f7c34", + "equalIndicator/v1": "db605436f416e4301bc146efec05c3515d708cb2ae2bf00ff24650d88576b428" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Migrations/Migrator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 245, + "startColumn": 29, + "charOffset": 12416, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 243, + "startColumn": 1, + "charOffset": 12286, + "charLength": 294, + "snippet": { + "text": " {\r\n var split = flag.GetChildNodeByName(\"Split\");\r\n if (uint.TryParse(split.InnerText, out uint u))\r\n {\r\n newSekiroViewModel.NewSplitTimingType = timingType;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b473c7dd766dcf60", + "equalIndicator/v1": "dbcc6d3002eb79588da2929a93a124a4986a69ec2228f5fdf7587fead7737cdd" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/MainWindow.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 41, + "startColumn": 9, + "charOffset": 1407, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 39, + "startColumn": 1, + "charOffset": 1325, + "charLength": 136, + "snippet": { + "text": " private void Window_Closing(object sender, CancelEventArgs e)\r\n {\r\n if (WindowShouldHide)\r\n {\r\n Hide();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7d979ecd5b32dba1", + "equalIndicator/v1": "dc60bf83fba9bfbf478750839820c341c1db0bc08d29101b7cc77ea3d6f39ed1" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 250, + "startColumn": 29, + "charOffset": 8773, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 248, + "startColumn": 1, + "charOffset": 8705, + "charLength": 167, + "snippet": { + "text": "\r\n index++;\r\n if (count <= index)\r\n {\r\n found = false;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7b82111d24db3162", + "equalIndicator/v1": "dcdd58707c2f4e9356aff7b81403d61360ace5b24809dde5de94b6dc3f6b4b0e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/SekiroSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 220, + "startColumn": 13, + "charOffset": 6260, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 218, + "startColumn": 1, + "charOffset": 6201, + "charLength": 140, + "snippet": { + "text": " foreach (var s in _splits)\r\n {\r\n if (!s.SplitTriggered)\r\n {\r\n if (!s.SplitConditionMet)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "508ec1cb45687275", + "equalIndicator/v1": "dd3fc97ec5c3430cc73ac1090e9ab3e139fbd87a0e93c0687ca033467360b4b8" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Native/Kernel32.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 281, + "startColumn": 13, + "charOffset": 10804, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 279, + "startColumn": 1, + "charOffset": 10749, + "charLength": 169, + "snippet": { + "text": " void CleanupSnapshot()\r\n {\r\n if (handleToSnapshot != IntPtr.Zero)\r\n {\r\n NativeMethods.CloseHandle(handleToSnapshot);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "564f7321d73b0a20", + "equalIndicator/v1": "e76010bd2ed9732aa2f88fa9696bf4319a4af102fb6a2139d611f20d6a08f84a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Converters/ColorToHexTextConverter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 38, + "startColumn": 9, + "charOffset": 1480, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 36, + "startColumn": 1, + "charOffset": 1362, + "charLength": 171, + "snippet": { + "text": " public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)\r\n {\r\n if (value is string hex)\r\n {\r\n try\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "30cf2a21c80888e1", + "equalIndicator/v1": "e93fd57aa8297ef084fcdea6700d57d4cd63e953669a4a16f7914289991fd18a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/EldenRingSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 63, + "startColumn": 9, + "charOffset": 2046, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 61, + "startColumn": 1, + "charOffset": 1979, + "charLength": 142, + "snippet": { + "text": " protected virtual void Dispose(bool disposing)\r\n {\r\n if (disposing)\r\n {\r\n _liveSplitState.OnStart -= OnStart;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9b37ccdb69856c63", + "equalIndicator/v1": "ece56a9d8723e18dad1c1472332bfe127596af053d4a78264253c9bddd0d724c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/HierarchicalViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 53, + "startColumn": 9, + "charOffset": 2199, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 51, + "startColumn": 1, + "charOffset": 2153, + "charLength": 132, + "snippet": { + "text": " public void RemoveSplit()\r\n {\r\n if (SelectedSplit != null)\r\n {\r\n var parent = SelectedSplit.Parent;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "888a473fcdb5b724", + "equalIndicator/v1": "ef19f1036afbc6c770e7da1808ffa4fa760a7f2e5d9c5721f1d137d00b7b774d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls2/DarkSouls2.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 64, + "startColumn": 17, + "charOffset": 2676, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 62, + "startColumn": 1, + "charOffset": 2589, + "charLength": 166, + "snippet": { + "text": " {\r\n var result = _darkSouls2.TryRefresh();\r\n if (result.IsErr)\r\n {\r\n _darkSouls2 = null!;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "115315c1b15d535d", + "equalIndicator/v1": "f12f5a5c7f3cbd66095a4a468087c49f8b89ecbd950577775479ac19c5210a9f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Hotkeys/GlobalHotKey.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 108, + "startColumn": 9, + "charOffset": 3352, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 106, + "startColumn": 1, + "charOffset": 3300, + "charLength": 222, + "snippet": { + "text": " base.WndProc(ref windowMessage);\r\n\r\n if (windowMessage.Msg == 0x0312) //0x0312 is the hotkey message\r\n {\r\n var key = KeyInterop.KeyFromVirtualKey((int)windowMessage.LParam >> 16 & 0xFFFF);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7dd94cc424874740", + "equalIndicator/v1": "f4e2da2018f188ef5367052709fb2d140ae0d5cb813dce7f4450d7ba6492e777" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 214, + "startColumn": 17, + "charOffset": 8410, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 212, + "startColumn": 1, + "charOffset": 8277, + "charLength": 197, + "snippet": { + "text": " for (var j = lastPatternIndex; !needle[j].HasValue || haystack[i + j] == needle[j]; --j)\r\n {\r\n if (j == 0)\r\n {\r\n result = i;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0fa28c6257652429", + "equalIndicator/v1": "f5b6caa413a2ddf994cebb048a1d104723fb2f108005d3a0fdcd1deed8aad1f3" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 372, + "startColumn": 9, + "charOffset": 14458, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 370, + "startColumn": 1, + "charOffset": 14337, + "charLength": 238, + "snippet": { + "text": " private void TreeView_OnSelectedItemChanged(object sender, RoutedPropertyChangedEventArgs e)\r\n {\r\n if (sender is TreeView treeView)\r\n {\r\n if (treeView.SelectedItem is SplitViewModel splitViewModel)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f4f7100e424c3e6e", + "equalIndicator/v1": "f68e9b28b43f8a49996f1b475351aac32537af3401f0ab3c1af8316e7c00736f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 362, + "startColumn": 17, + "charOffset": 13644, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 360, + "startColumn": 1, + "charOffset": 13511, + "charLength": 195, + "snippet": { + "text": " for (var j = lastPatternIndex; !needle[j].HasValue || haystack[i + j] == needle[j]; --j)\r\n {\r\n if (j == 0)\r\n {\r\n result++;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "16aacfb1f801b972", + "equalIndicator/v1": "f8166796df9bdf311fbcc1fd3815f4924a7eadfdea2786c0d1fb34de569efb9d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Migrations/Migrator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 91, + "startColumn": 29, + "charOffset": 3995, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 89, + "startColumn": 1, + "charOffset": 3862, + "charLength": 351, + "snippet": { + "text": " {\r\n var split = bonfire.GetChildNodeByName(\"Split\");\r\n if (SoulMemory.DarkSouls3.Bonfire.TryParse(split.InnerText, out SoulMemory.DarkSouls3.Bonfire b))\r\n {\r\n newDarkSouls3ViewModel.NewSplitTimingType = timingType;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0f3027159ac04759", + "equalIndicator/v1": "f9aecaed93f7adbf13726f9079d444b389cbaa582e1ac87b11be3ca9928f31c4" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "InvertIf", + "kind": "fail", + "level": "note", + "message": { + "text": "Invert 'if' statement to reduce nesting", + "markdown": "Invert 'if' statement to reduce nesting" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 249, + "startColumn": 13, + "charOffset": 6592, + "charLength": 2, + "snippet": { + "text": "if" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 247, + "startColumn": 1, + "charOffset": 6522, + "charLength": 152, + "snippet": { + "text": " for (int i = 1; i < data.Length; i++)\r\n {\r\n if (data[i - 1] == 0 && data[i] == 0)\r\n {\r\n length = i;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "2aaf982bb5acae6c", + "equalIndicator/v1": "ff8c1d35444129bb562deb8d24aa7588bce9eac94663e37393fc442a6abf4154" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "LoopCanBeConvertedToQuery", + "kind": "fail", + "level": "note", + "message": { + "text": "Loop can be converted into LINQ-expression", + "markdown": "Loop can be converted into LINQ-expression" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Extensions.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 65, + "startColumn": 9, + "charOffset": 2037, + "charLength": 7, + "snippet": { + "text": "foreach" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 63, + "startColumn": 1, + "charOffset": 1949, + "charLength": 162, + "snippet": { + "text": " public static IEnumerable Enumerate(this XmlNodeList list)\r\n {\r\n foreach (XmlNode node in list)\r\n {\r\n yield return node;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "10f8a6616c8814d3", + "equalIndicator/v1": "5ced36fa877ab7711228e5ff70ba02bc952c8662d53398e3f51b5db36d3871e1" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "LoopCanBeConvertedToQuery", + "kind": "fail", + "level": "note", + "message": { + "text": "Loop can be converted into LINQ-expression", + "markdown": "Loop can be converted into LINQ-expression" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 478, + "startColumn": 13, + "charOffset": 16685, + "charLength": 7, + "snippet": { + "text": "foreach" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 476, + "startColumn": 1, + "charOffset": 16567, + "charLength": 285, + "snippet": { + "text": " Match match = _assemblyRegex.Match(line);\r\n string hexes = match.Groups[1].Value;\r\n foreach (Match hex in Regex.Matches(hexes, @\"\\S+\"))\r\n bytes.Add(Byte.Parse(hex.Value, System.Globalization.NumberStyles.AllowHexSpecifier));\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0d98ec2df7df826e", + "equalIndicator/v1": "619bedd8c957a8d2975e4470b973e893897d5b964044989011c7a292d267f11b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "LoopCanBeConvertedToQuery", + "kind": "fail", + "level": "note", + "message": { + "text": "Loop can be converted into LINQ-expression", + "markdown": "Loop can be converted into LINQ-expression" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 474, + "startColumn": 9, + "charOffset": 16500, + "charLength": 7, + "snippet": { + "text": "foreach" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 472, + "startColumn": 1, + "charOffset": 16453, + "charLength": 168, + "snippet": { + "text": " {\r\n List bytes = [];\r\n foreach (string line in Regex.Split(lines, \"[\\r\\n]+\"))\r\n {\r\n Match match = _assemblyRegex.Match(line);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "52b0dd108341b76c", + "equalIndicator/v1": "cd093c6ea1c66321b8b3e4fb21cec3226e6f0af82571c6e73434772ee4c7f288" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "LoopCanBeConvertedToQuery", + "kind": "fail", + "level": "note", + "message": { + "text": "Loop can be converted into LINQ-expression", + "markdown": "Loop can be converted into LINQ-expression" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 432, + "startColumn": 9, + "charOffset": 14751, + "charLength": 7, + "snippet": { + "text": "foreach" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 430, + "startColumn": 1, + "charOffset": 14702, + "charLength": 152, + "snippet": { + "text": " ProcessModule? module = null;\r\n\r\n foreach (ProcessModule item in _process!.Modules)\r\n {\r\n if (item.ModuleName == name)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "6227ae65d067d421", + "equalIndicator/v1": "fee8c09fa8acc26fc7c15a565b2067c85230462753f774941fbe44fff6fd3420" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "MemberCanBeMadeStatic.Local", + "kind": "fail", + "level": "note", + "message": { + "text": "Method 'GetEventFlagOffset' can be made static", + "markdown": "Method 'GetEventFlagOffset' can be made static" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 347, + "startColumn": 17, + "charOffset": 12105, + "charLength": 18, + "snippet": { + "text": "GetEventFlagOffset" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 345, + "startColumn": 1, + "charOffset": 12079, + "charLength": 140, + "snippet": { + "text": " };\r\n\r\n private int GetEventFlagOffset(uint eventFlagId, out uint mask)\r\n {\r\n string idString = eventFlagId.ToString(\"D8\");\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "8cf45e45831c8a49", + "equalIndicator/v1": "1768f7571611f1ecac8d00325ad88d57b756992ca8fe5078e42ff000fd568f09" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "MemberCanBeMadeStatic.Local", + "kind": "fail", + "level": "note", + "message": { + "text": "Method 'DeleteFromEnd' can be made static", + "markdown": "Method 'DeleteFromEnd' can be made static" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/EldenRing.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 366, + "startColumn": 17, + "charOffset": 12324, + "charLength": 13, + "snippet": { + "text": "DeleteFromEnd" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 364, + "startColumn": 1, + "charOffset": 12252, + "charLength": 149, + "snippet": { + "text": " private const int InventoryEntrySize = 0x14;\r\n \r\n private int DeleteFromEnd(int num, int n)\r\n {\r\n for (int i = 1; num != 0; i++)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4790e6f6220fb301", + "equalIndicator/v1": "2aeae7ae53873a805a956ca9a43adb0451aa4c058de255606b0998438fdf5d2f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "MemberCanBeMadeStatic.Local", + "kind": "fail", + "level": "note", + "message": { + "text": "Method 'OpenTroubleshootingWebpage' can be made static", + "markdown": "Method 'OpenTroubleshootingWebpage' can be made static" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/MainViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 292, + "startColumn": 18, + "charOffset": 9219, + "charLength": 26, + "snippet": { + "text": "OpenTroubleshootingWebpage" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 290, + "startColumn": 1, + "charOffset": 9085, + "charLength": 214, + "snippet": { + "text": "\r\n private const string TroubleshootingUrl = \"https://github.com/FrankvdStam/SoulSplitter/wiki/troubleshooting\";\r\n private void OpenTroubleshootingWebpage()\r\n {\r\n Process.Start(TroubleshootingUrl);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "863418e60e2c787e", + "equalIndicator/v1": "417bb8f75d1103d84c7b1289454019c08634ee8343c83b5c94f80e91fc8a5e4c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "MemberCanBeMadeStatic.Local", + "kind": "fail", + "level": "note", + "message": { + "text": "Method 'GetEventFlagOffset' can be made static", + "markdown": "Method 'GetEventFlagOffset' can be made static" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 288, + "startColumn": 17, + "charOffset": 10165, + "charLength": 18, + "snippet": { + "text": "GetEventFlagOffset" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 286, + "startColumn": 1, + "charOffset": 10139, + "charLength": 140, + "snippet": { + "text": " };\r\n\r\n private int GetEventFlagOffset(uint eventFlagId, out uint mask)\r\n {\r\n string idString = eventFlagId.ToString(\"D8\");\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "fa66e13e7616d964", + "equalIndicator/v1": "9ace6a9da191d418e38a01b935fb8100b836bf1f87ace615388493af5d0b87d0" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "MemberCanBeMadeStatic.Local", + "kind": "fail", + "level": "note", + "message": { + "text": "Method 'CanAddSplit' can be made static", + "markdown": "Method 'CanAddSplit' can be made static" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/ViewModels/Games/ArmoredCore6ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 31, + "startColumn": 18, + "charOffset": 1205, + "charLength": 11, + "snippet": { + "text": "CanAddSplit" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 29, + "startColumn": 1, + "charOffset": 1179, + "charLength": 93, + "snippet": { + "text": " }\r\n\r\n private bool CanAddSplit(object? param)\r\n {\r\n if (param is FlatSplit)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ed2f4cb57fa18730", + "equalIndicator/v1": "c8c9df9a49b44b40e00ea2ff1964ba4a89a4bf67509c4fc84392fe4ade1b7587" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "MoveLocalFunctionAfterJumpStatement", + "kind": "fail", + "level": "note", + "message": { + "text": "Put local function 'CleanupSnapshot' after 'return'", + "markdown": "Put local function 'CleanupSnapshot' after 'return'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Native/Kernel32.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 279, + "startColumn": 14, + "charOffset": 10762, + "charLength": 15, + "snippet": { + "text": "CleanupSnapshot" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 277, + "startColumn": 1, + "charOffset": 10699, + "charLength": 142, + "snippet": { + "text": " IntPtr handleToSnapshot = IntPtr.Zero;\r\n\r\n void CleanupSnapshot()\r\n {\r\n if (handleToSnapshot != IntPtr.Zero)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "66ad5e9d78de162d", + "equalIndicator/v1": "bbfc175cd271be79c1147f7c78440080ca09dd47380c685b799fca288c5dd854" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteInt16' coverage is below the threshold 50%", + "markdown": "Method `WriteInt16` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/IMemory.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 122, + "startColumn": 24, + "charOffset": 3899, + "charLength": 10, + "snippet": { + "text": "WriteInt16" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 120, + "startColumn": 1, + "charOffset": 3770, + "charLength": 261, + "snippet": { + "text": " public static void WriteInt16(this IMemory memory, short value) => memory.WriteInt16(null, value);\r\n\r\n public static void WriteInt16(this IMemory memory, long? offset, short value)\r\n {\r\n memory.WriteBytes(offset, BitConverter.GetBytes(value));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "1bad4fa50891ad61", + "equalIndicator/v1": "004365f5ee8665c6991c5c8d00951c8846a9a6e364a0263a2188f87d671206fe" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'StartAutoSplitting' coverage is below the threshold 50%", + "markdown": "Method `StartAutoSplitting` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/SekiroSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 201, + "startColumn": 17, + "charOffset": 5715, + "charLength": 18, + "snippet": { + "text": "StartAutoSplitting" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 199, + "startColumn": 1, + "charOffset": 5690, + "charLength": 74, + "snippet": { + "text": " }\r\n\r\n public void StartAutoSplitting()\r\n {\r\n _splits = (\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "60d555890a89407e", + "equalIndicator/v1": "006e72ae67acef478e5b8e04d42ce41de251b21d47c31f260135c0c0353c3a2e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'InitAllAchievements' coverage is below the threshold 50%", + "markdown": "Method `InitAllAchievements` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/DropMod.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 34, + "startColumn": 17, + "charOffset": 1286, + "charLength": 19, + "snippet": { + "text": "InitAllAchievements" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 32, + "startColumn": 1, + "charOffset": 1261, + "charLength": 326, + "snippet": { + "text": " }\r\n\r\n public void InitAllAchievements()\r\n {\r\n darkSouls.WriteWeaponDescription(1004000, \"Dropmod!\\n\\nAffected:\\nBlack Knight Halberd/Sword/Greatsword/Greataxe/Shield\\nSilver Knight Straight Sword/Spear/Shield\\nStone Greatsword/Greatshield\\nChanneler's Trident\\nSouvenir of Reprisal\\nEye of Death\\n\\n\\n\\n\\n\");\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ad9b6c0866060145", + "equalIndicator/v1": "0084830f18676a9fe91985c0fbc1ce867045905697cd8f304cc037aed88bba3e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'DarkSouls2.Attribute' coverage is below the threshold 50%", + "markdown": "Class `DarkSouls2.Attribute` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splits/DarkSouls2/Attribute.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 24, + "startColumn": 14, + "charOffset": 999, + "charLength": 9, + "snippet": { + "text": "Attribute" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 22, + "startColumn": 1, + "charOffset": 947, + "charLength": 140, + "snippet": { + "text": "\r\n[XmlType(Namespace = \"DarkSouls2\")]\r\npublic class Attribute : ICustomNotifyPropertyChanged\r\n{\r\n [XmlElement(Namespace = \"DarkSouls2\")]\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f522dde8aaf369bb", + "equalIndicator/v1": "00a8ffe709173f73996afbbdfed9ae7a1e8414c4a9c6f4cc983ed7e45d8194ea" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'IsBitSet' coverage is below the threshold 50%", + "markdown": "Method `IsBitSet` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Extensions.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 71, + "startColumn": 24, + "charOffset": 2155, + "charLength": 8, + "snippet": { + "text": "IsBitSet" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 69, + "startColumn": 1, + "charOffset": 2123, + "charLength": 121, + "snippet": { + "text": " }\r\n\r\n public static bool IsBitSet(this long l, int index)\r\n {\r\n return (l & ((long)0x1 << index)) != 0;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "443113931ec218a6", + "equalIndicator/v1": "00d02ea18caebab8e913aa169c800ce67f466ac09a5851fc372ea3b6eeee7009" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_IsOk' coverage is below the threshold 50%", + "markdown": "Method `get_IsOk` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Result.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 160, + "startColumn": 24, + "charOffset": 3854, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 158, + "startColumn": 1, + "charOffset": 3797, + "charLength": 114, + "snippet": { + "text": "{\r\n private readonly TOk _ok;\r\n public bool IsOk { get; protected set; }\r\n public bool IsErr => !IsOk;\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "281e155ee4201e70", + "equalIndicator/v1": "00d6c5dbf1d01e99f8939cf9fd3c4580f8e0f904aded532e141fdee1901e841b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_IsOk' coverage is below the threshold 50%", + "markdown": "Method `set_IsOk` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Result.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 52, + "startColumn": 39, + "charOffset": 1709, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 50, + "startColumn": 1, + "charOffset": 1653, + "charLength": 98, + "snippet": { + "text": " #endregion\r\n\r\n public bool IsOk { get; protected set; }\r\n public bool IsErr => !IsOk;\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "59354860e21e066e", + "equalIndicator/v1": "00e00068ad64d45040e6ced9540aa7b59746620b87a4354c4d76c7b7b50db665" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_Children' coverage is below the threshold 50%", + "markdown": "Method `set_Children` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/SplitViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 63, + "startColumn": 77, + "charOffset": 2170, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 61, + "startColumn": 1, + "charOffset": 2039, + "charLength": 188, + "snippet": { + "text": " private EldenRingSplitType _eldenRingSplitType;\r\n\r\n public ObservableCollection Children { get; set; } = [];\r\n\r\n #region ICustomNotifyPropertyChanged\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "fdfe2380097293e3", + "equalIndicator/v1": "01a21ae99030a05a0a4964cecca10822ae29c40c22e2cdc72adbb27caaf5d78c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'UpdatePosition' coverage is below the threshold 50%", + "markdown": "Method `UpdatePosition` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/EldenRingSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 122, + "startColumn": 18, + "charOffset": 3641, + "charLength": 14, + "snippet": { + "text": "UpdatePosition" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 120, + "startColumn": 1, + "charOffset": 3620, + "charLength": 95, + "snippet": { + "text": "\r\n\r\n private void UpdatePosition()\r\n {\r\n var position = _eldenRing.GetPosition();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c40eea7960f883dd", + "equalIndicator/v1": "01bd82ae9d7dc0d14c1f67d6aa7aa89e0a5c3ce6c0a66799c7904d56152aa4e6" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_Description' coverage is below the threshold 50%", + "markdown": "Method `get_Description` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/BoolDescriptionViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 25, + "startColumn": 9, + "charOffset": 996, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 23, + "startColumn": 1, + "charOffset": 950, + "charLength": 130, + "snippet": { + "text": " public string Description\r\n {\r\n get => _description;\r\n set => this.SetField(ref _description, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9bed13dc0001f20f", + "equalIndicator/v1": "01d598f1038d3be036484f8d64e223b1a3ae9960aa70db3bc91d261aed95134e" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'Memory.BitBlt' coverage is below the threshold 50%", + "markdown": "Class `Memory.BitBlt` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/BitBlt.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 23, + "startColumn": 21, + "charOffset": 951, + "charLength": 6, + "snippet": { + "text": "BitBlt" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 21, + "startColumn": 1, + "charOffset": 899, + "charLength": 154, + "snippet": { + "text": "namespace SoulMemory.Memory;\r\n\r\npublic static class BitBlt\r\n{\r\n public static bool GetBitBlt(this IGame game, List files, List bitBlt)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "3713e94f3cf36d3d", + "equalIndicator/v1": "0218495f3059df7ba63e691b60dc43b4fe13c003b680e848404dfdff482c36fc" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Constructor 'RelayCommand' coverage is below the threshold 50%", + "markdown": "Constructor `RelayCommand` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/RelayCommand.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 24, + "startColumn": 12, + "charOffset": 1001, + "charLength": 12, + "snippet": { + "text": "RelayCommand" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 22, + "startColumn": 1, + "charOffset": 891, + "charLength": 416, + "snippet": { + "text": "public class RelayCommand(Action execute, Func? canExecute) : ICommand\r\n{\r\n public RelayCommand(Action execute) : this(_ => execute(), (Func?)null) { }\r\n public RelayCommand(Action execute, Func canExecute) : this(_ => execute(), _ => canExecute()) { }\r\n public RelayCommand(Action execute, Func canExecute) : this(_ => execute(), canExecute) { }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5b4149707bc15b9a", + "equalIndicator/v1": "02cddf608f3cb8c41ee4ac2898a615404bc7e0bc815aea8cadea36f2979e0a3d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadBytes' coverage is below the threshold 50%", + "markdown": "Method `ReadBytes` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Process/ProcessHook.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 93, + "startColumn": 19, + "charOffset": 3849, + "charLength": 9, + "snippet": { + "text": "ReadBytes" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 91, + "startColumn": 1, + "charOffset": 3808, + "charLength": 223, + "snippet": { + "text": " #region IMemory\r\n\r\n public byte[] ReadBytes(long offset, int length) => ProcessWrapper.ReadBytes(offset, length);\r\n public void WriteBytes(long offset, byte[] bytes) => ProcessWrapper.WriteBytes(offset, bytes);\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d9509e7fbdee537a", + "equalIndicator/v1": "0359cc45602bebadbd9688378bf1ae01df7e4ee2ec224b292f50d5d42d1794e0" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_RemoveSplit' coverage is below the threshold 50%", + "markdown": "Method `set_RemoveSplit` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 266, + "startColumn": 9, + "charOffset": 11684, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 264, + "startColumn": 1, + "charOffset": 11598, + "charLength": 150, + "snippet": { + "text": " {\r\n get => (RelayCommand)GetValue(RemoveSplitDependencyProperty);\r\n set => SetValue(RemoveSplitDependencyProperty, value);\r\n }\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "da48d2f7382b5a8b", + "equalIndicator/v1": "03ecb9f56dc0d71950b7b1e093602b37db64782e61ce39c7b4fb5af0c38a70fc" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ScanRelative' coverage is below the threshold 50%", + "markdown": "Method `ScanRelative` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/TreeBuilder.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 30, + "startColumn": 28, + "charOffset": 1247, + "charLength": 12, + "snippet": { + "text": "ScanRelative" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 28, + "startColumn": 1, + "charOffset": 1177, + "charLength": 197, + "snippet": { + "text": " public List Tree = [];\r\n\r\n public PointerAppender ScanRelative(string name, string pattern, long addressOffset, long instructionSize)\r\n {\r\n var node = new PointerNode\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "774fc4e822899290", + "equalIndicator/v1": "03ed98c6afb9b2c8e0fa6e5a41f9510b04642477f3b312ad562ef9e3b53785c6" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'CopyPosition_OnClick' coverage is below the threshold 50%", + "markdown": "Method `CopyPosition_OnClick` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 93, + "startColumn": 18, + "charOffset": 2967, + "charLength": 20, + "snippet": { + "text": "CopyPosition_OnClick" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 91, + "startColumn": 1, + "charOffset": 2941, + "charLength": 131, + "snippet": { + "text": " }\r\n\r\n private void CopyPosition_OnClick(object sender, RoutedEventArgs e)\r\n {\r\n var vm = GetEldenRingViewModel();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "89595f38c1acb490", + "equalIndicator/v1": "03fe094784e8db0075261193a6bad3f502f85b667628fd8ce2f1c3555815952f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_KnownFlags' coverage is below the threshold 50%", + "markdown": "Method `get_KnownFlags` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 194, + "startColumn": 9, + "charOffset": 7991, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 192, + "startColumn": 1, + "charOffset": 7907, + "charLength": 248, + "snippet": { + "text": " public ObservableCollection> KnownFlags\r\n {\r\n get => (ObservableCollection>)GetValue(KnownFlagsDependencyProperty);\r\n set => SetValue(KnownFlagsDependencyProperty, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "dd6ec2610bfad0e2", + "equalIndicator/v1": "0407db6da4326028bcf8eac519a0caea51ed36b972e330dd6640340e239d1902" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_Attributes' coverage is below the threshold 50%", + "markdown": "Method `get_Attributes` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 204, + "startColumn": 9, + "charOffset": 8561, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 202, + "startColumn": 1, + "charOffset": 8477, + "charLength": 248, + "snippet": { + "text": " public ObservableCollection> Attributes\r\n {\r\n get => (ObservableCollection>)GetValue(AttributesDependencyProperty);\r\n set => SetValue(AttributesDependencyProperty, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b2c089dc6ee35868", + "equalIndicator/v1": "041a7f069256b075377a63bef5c2af5b417b5a7c51873ba9c9832590a3292c43" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Constructor 'Split' coverage is below the threshold 50%", + "markdown": "Constructor `Split` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splits/DarkSouls3/Split.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 25, + "startColumn": 12, + "charOffset": 967, + "charLength": 5, + "snippet": { + "text": "Split" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 23, + "startColumn": 1, + "charOffset": 931, + "charLength": 151, + "snippet": { + "text": "internal class Split\r\n{\r\n public Split(TimingType timingType, SplitType darkSouls3SplitType, object split)\r\n {\r\n TimingType = timingType;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f745362420a7ae3a", + "equalIndicator/v1": "04be8a5f6ef7072a5acfbfed279cbc9acbf06befd3d3dce5873dcb8722a0fd66" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'ArmoredCore6.ArmoredCore6' coverage is below the threshold 50%", + "markdown": "Class `ArmoredCore6.ArmoredCore6` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 25, + "startColumn": 14, + "charOffset": 1020, + "charLength": 12, + "snippet": { + "text": "ArmoredCore6" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 23, + "startColumn": 1, + "charOffset": 969, + "charLength": 125, + "snippet": { + "text": "namespace SoulMemory.ArmoredCore6;\r\n\r\npublic class ArmoredCore6 : IGame\r\n{\r\n private readonly IProcessHook _armoredCore6;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7de43ae6451bd99e", + "equalIndicator/v1": "0500244801e6efa78a3ac97f3c7786b939ff9d77c1152f51a1da5d8b8e76f284" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'RestoreHierarchy' coverage is below the threshold 50%", + "markdown": "Method `RestoreHierarchy` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 421, + "startColumn": 17, + "charOffset": 12988, + "charLength": 16, + "snippet": { + "text": "RestoreHierarchy" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 419, + "startColumn": 1, + "charOffset": 12940, + "charLength": 235, + "snippet": { + "text": " #region Splits hierarchy\r\n\r\n public void RestoreHierarchy()\r\n {\r\n //When serializing the model, we can't serialize the parent relation, because that would be a circular reference. Instead, parent's are not serialized.\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "696c3708f000d722", + "equalIndicator/v1": "0534cb7d5b1c4d3a21fa486cf59a724be0faeec370d391e786a4e92c0e035cb3" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_Children' coverage is below the threshold 50%", + "markdown": "Method `get_Children` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/HierarchicalViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 38, + "startColumn": 76, + "charOffset": 1485, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 36, + "startColumn": 1, + "charOffset": 1367, + "charLength": 180, + "snippet": { + "text": " private TimingType _timingType;\r\n \r\n public ObservableCollection Children { get; set; } = [];\r\n\r\n #region ICustomNotifyPropertyChanged\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4b60a51d0959255f", + "equalIndicator/v1": "0570d876dd80898207e583723e31367982fcc4c4c7a78e07221974537f179357" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ToString' coverage is below the threshold 50%", + "markdown": "Method `ToString` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Result.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 326, + "startColumn": 28, + "charOffset": 7459, + "charLength": 8, + "snippet": { + "text": "ToString" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 324, + "startColumn": 1, + "charOffset": 7405, + "charLength": 104, + "snippet": { + "text": " public T Value = t;\r\n\r\n public override string ToString()\r\n {\r\n return $\"{typeof(T)}\";\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "67fec1cd7d59d6ef", + "equalIndicator/v1": "05ef9c32e686f5feff102727eff3963bc96b938e572c89c79fe99d2cc9b2fea8" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ImportSettings' coverage is below the threshold 50%", + "markdown": "Method `ImportSettings` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/MainViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 360, + "startColumn": 18, + "charOffset": 11201, + "charLength": 14, + "snippet": { + "text": "ImportSettings" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 358, + "startColumn": 1, + "charOffset": 11116, + "charLength": 142, + "snippet": { + "text": " private RelayCommand _commandImportSettingsFromFile = null!;\r\n\r\n private void ImportSettings()\r\n {\r\n TryAndHandleError(() =>\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4c527aaf2eeaa487", + "equalIndicator/v1": "05f17946f4ac91de3b9b4d4bda447424980cae7d26a2f73496a287741aab732a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_BadgeVisibilityInverse' coverage is below the threshold 50%", + "markdown": "Method `set_BadgeVisibilityInverse` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/MainViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 272, + "startColumn": 9, + "charOffset": 8568, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 270, + "startColumn": 1, + "charOffset": 8512, + "charLength": 191, + "snippet": { + "text": " {\r\n get => _badgeVisibilityInverse;\r\n set => this.SetField(ref _badgeVisibilityInverse, value);\r\n }\r\n private Visibility _badgeVisibilityInverse = Visibility.Visible;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9410b801883a82a2", + "equalIndicator/v1": "0601282490d6ce191d27131864b8881174f12b1c7c136efe6e3df6f01b1245a9" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetProcess' coverage is below the threshold 50%", + "markdown": "Method `GetProcess` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 38, + "startColumn": 21, + "charOffset": 1556, + "charLength": 10, + "snippet": { + "text": "GetProcess" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 36, + "startColumn": 1, + "charOffset": 1504, + "charLength": 217, + "snippet": { + "text": " private long _igtOffset;\r\n\r\n public Process? GetProcess() => _process;\r\n public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, \"darksoulsiii\", InitPointers, ResetPointers);\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b50d3259f7f38f39", + "equalIndicator/v1": "0618c719095231632d6df8a3aa63651589eef5c17e477233a01bdf7d4878afc9" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'InitPointers' coverage is below the threshold 50%", + "markdown": "Method `InitPointers` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 147, + "startColumn": 37, + "charOffset": 6043, + "charLength": 12, + "snippet": { + "text": "InitPointers" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 145, + "startColumn": 1, + "charOffset": 5998, + "charLength": 80, + "snippet": { + "text": " }\r\n\r\n private ResultErr InitPointers()\r\n {\r\n try\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "27f393734826c3f5", + "equalIndicator/v1": "063a0b489fb82dc75c41e7ba8f6316934beff86439dee2abfc6e68602940c0c8" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'Hotkeys.GlobalHotKey' coverage is below the threshold 50%", + "markdown": "Class `Hotkeys.GlobalHotKey` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Hotkeys/GlobalHotKey.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 27, + "startColumn": 21, + "charOffset": 1045, + "charLength": 12, + "snippet": { + "text": "GlobalHotKey" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 25, + "startColumn": 1, + "charOffset": 990, + "charLength": 176, + "snippet": { + "text": "namespace SoulSplitter.Hotkeys;\r\n\r\npublic static class GlobalHotKey\r\n{\r\n private static readonly List<(int id, ModifierKeys modifier, Key key, Action action)> Hotkeys = [];\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "dd24e0bfd1af079c", + "equalIndicator/v1": "06549552f5491025a24c601cb5e4ec626e7077588097af5d9ef7dbac2a3cb69e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ClearErrors' coverage is below the threshold 50%", + "markdown": "Method `ClearErrors` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/MainViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 182, + "startColumn": 17, + "charOffset": 6100, + "charLength": 11, + "snippet": { + "text": "ClearErrors" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 180, + "startColumn": 1, + "charOffset": 6075, + "charLength": 71, + "snippet": { + "text": " }\r\n\r\n public void ClearErrors()\r\n {\r\n Errors.Clear();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "92569f3e31af1a28", + "equalIndicator/v1": "06a5573d9312bafa287eea6da08125d85a21ea2cfd225f00b3dd770eab628faf" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadUInt32' coverage is below the threshold 50%", + "markdown": "Method `ReadUInt32` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 73, + "startColumn": 24, + "charOffset": 2368, + "charLength": 10, + "snippet": { + "text": "ReadUInt32" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 71, + "startColumn": 1, + "charOffset": 2336, + "charLength": 155, + "snippet": { + "text": " }\r\n\r\n public static uint ReadUInt32(this IMemory memory, long offset)\r\n {\r\n return BitConverter.ToUInt32(memory.ReadBytes(offset, 4), 0);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ed6e11b5f0f7ef02", + "equalIndicator/v1": "06e36b1e5da664d68522876be63ec04afc68ba56af48b7b1373a7f92ed22210f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'soulmemory_rs.SoulMemoryRs' coverage is below the threshold 50%", + "markdown": "Class `soulmemory_rs.SoulMemoryRs` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/soulmemory-rs/SoulMemoryRs.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 26, + "startColumn": 21, + "charOffset": 1024, + "charLength": 12, + "snippet": { + "text": "SoulMemoryRs" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 24, + "startColumn": 1, + "charOffset": 963, + "charLength": 110, + "snippet": { + "text": "namespace SoulSplitter.soulmemory_rs;\r\n\r\npublic static class SoulMemoryRs\r\n{\r\n public static void Launch()\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "68c43fab1357e551", + "equalIndicator/v1": "06e60a3262956916d2c8bbe4db49bee94898faa590cd5a5d67bc3291af3d5d17" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'RegisterHotkey' coverage is below the threshold 50%", + "markdown": "Method `RegisterHotkey` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Native/User32.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 34, + "startColumn": 24, + "charOffset": 1272, + "charLength": 14, + "snippet": { + "text": "RegisterHotkey" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 32, + "startColumn": 1, + "charOffset": 1240, + "charLength": 292, + "snippet": { + "text": " }\r\n\r\n public static bool RegisterHotkey(IntPtr handle, int id, uint modifiers, uint virtualKeyCode) => NativeMethods.RegisterHotKey(handle, id, modifiers, virtualKeyCode);\r\n public static bool UnregisterHotkey(IntPtr handle, int id) => NativeMethods.UnregisterHotKey(handle, id);\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a1449e2a7356ce10", + "equalIndicator/v1": "06ffe830e80fde9c9429d5e038518cfeae9c9859ea1f371e5eed5dfd264a9a7a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_Children' coverage is below the threshold 50%", + "markdown": "Method `set_Children` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/HierarchicalViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 67, + "startColumn": 77, + "charOffset": 2269, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 65, + "startColumn": 1, + "charOffset": 2189, + "charLength": 137, + "snippet": { + "text": "\r\n\r\n public ObservableCollection Children { get; set; } = [];\r\n\r\n #region ICustomNotifyPropertyChanged\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f12389c04f4334bb", + "equalIndicator/v1": "077fd1c812cbbf8f9c43b6fab64b71d90490a47e22a2dba43b603da1938a108d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'SoulMemory.Container' coverage is below the threshold 50%", + "markdown": "Class `SoulMemory.Container` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Result.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 322, + "startColumn": 14, + "charOffset": 7383, + "charLength": 9, + "snippet": { + "text": "Container" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 320, + "startColumn": 1, + "charOffset": 7261, + "charLength": 168, + "snippet": { + "text": "/// Container type, used in implicit conversions with the Result classes, for sugar syntax.\r\n/// \r\npublic class Container(T t)\r\n{\r\n public T Value = t;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c641f6ef294971a7", + "equalIndicator/v1": "07c23dacf8c46ae150790d7f3ce8f5bb8815d82e77d1873e2f53adf5044dd28b" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ToString' coverage is below the threshold 50%", + "markdown": "Method `ToString` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/PointerPath.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 24, + "startColumn": 28, + "charOffset": 957, + "charLength": 8, + "snippet": { + "text": "ToString" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 22, + "startColumn": 1, + "charOffset": 902, + "charLength": 124, + "snippet": { + "text": " public long Address;\r\n\r\n public override string ToString()\r\n {\r\n return $\"0x{Offset:x8} - 0x{Address:x8}\";\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "1745e0b5e8d3183c", + "equalIndicator/v1": "07ec58cdc156e68c2c30c550f2cd1922c413f221ec67dbb656914c6e2531e1ff" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadInt16' coverage is below the threshold 50%", + "markdown": "Method `ReadInt16` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 58, + "startColumn": 25, + "charOffset": 1899, + "charLength": 9, + "snippet": { + "text": "ReadInt16" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 56, + "startColumn": 1, + "charOffset": 1866, + "charLength": 154, + "snippet": { + "text": " }\r\n\r\n public static short ReadInt16(this IMemory memory, long offset)\r\n {\r\n return BitConverter.ToInt16(memory.ReadBytes(offset, 2), 0);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "fded70a5b71b8afb", + "equalIndicator/v1": "084527c162f205a04ffd53543e035f102a9e18806a5c3b009d116e8ac12bb097" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'IsPlayerLoaded' coverage is below the threshold 50%", + "markdown": "Method `IsPlayerLoaded` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 174, + "startColumn": 17, + "charOffset": 6889, + "charLength": 14, + "snippet": { + "text": "IsPlayerLoaded" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 172, + "startColumn": 1, + "charOffset": 6804, + "charLength": 167, + "snippet": { + "text": " public int GetPlayerHealth() => _playerIns.ReadInt32(0x2d4) ;\r\n\r\n public bool IsPlayerLoaded() => !_playerIns.IsNullPtr();\r\n\r\n public bool IsWarpRequested()\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "04997c100058c025", + "equalIndicator/v1": "08b1d7fd332c0266a29df5f3d131044b5ce3cf17983d0fc4c21bd42948d9f038" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_DataOffset' coverage is below the threshold 50%", + "markdown": "Method `set_DataOffset` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/ParamTableEntry.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 22, + "startColumn": 35, + "charOffset": 943, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 20, + "startColumn": 1, + "charOffset": 873, + "charLength": 121, + "snippet": { + "text": "{\r\n public int Id { get; set; }\r\n public uint DataOffset { get; set; }\r\n public uint NameOffset { get; set; }\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5ff32ac83b1c1a29", + "equalIndicator/v1": "08f78c72c159b91b409add50ef4782e5d691fd62bd455b8e2850317d9b4a3887" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_ItemType' coverage is below the threshold 50%", + "markdown": "Method `set_ItemType` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splits/DarkSouls1/ItemState.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 31, + "startColumn": 9, + "charOffset": 1167, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 29, + "startColumn": 1, + "charOffset": 1125, + "charLength": 127, + "snippet": { + "text": " {\r\n get => _itemType;\r\n set => this.SetField(ref _itemType, value);\r\n }\r\n private ItemType? _itemType;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "cd8dec7203a13aa5", + "equalIndicator/v1": "0917d1dba24084a43d24bdd0ce857cc9308c75026baae315b44b324b7e7c48a6" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'DarkSouls1.DarkSouls1' coverage is below the threshold 50%", + "markdown": "Class `DarkSouls1.DarkSouls1` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/DarkSouls1.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 27, + "startColumn": 14, + "charOffset": 1047, + "charLength": 10, + "snippet": { + "text": "DarkSouls1" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 25, + "startColumn": 1, + "charOffset": 998, + "charLength": 116, + "snippet": { + "text": "namespace SoulMemory.DarkSouls1;\r\n\r\npublic class DarkSouls1 : IDarkSouls1\r\n{\r\n private IDarkSouls1? _darkSouls1;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "caa504e1dbba18b8", + "equalIndicator/v1": "093459268ac63edb0db89352f0f68bd311c729ec2c2cdd01185a931093ba1231" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'Memory.Pointer' coverage is below the threshold 50%", + "markdown": "Class `Memory.Pointer` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 26, + "startColumn": 14, + "charOffset": 997, + "charLength": 7, + "snippet": { + "text": "Pointer" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 24, + "startColumn": 1, + "charOffset": 952, + "charLength": 86, + "snippet": { + "text": "namespace SoulMemory.Memory;\r\n\r\npublic class Pointer\r\n{\r\n public Process? Process;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ff7c19c0b79690ec", + "equalIndicator/v1": "09eb0f9be5af40aed5711daa01def9f987ea71303138ebcd645b524b2d256794" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteInt32' coverage is below the threshold 50%", + "markdown": "Method `WriteInt32` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/IMemory.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 134, + "startColumn": 24, + "charOffset": 4340, + "charLength": 10, + "snippet": { + "text": "WriteInt32" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 132, + "startColumn": 1, + "charOffset": 4308, + "charLength": 114, + "snippet": { + "text": " }\r\n\r\n public static void WriteInt32(this IMemory memory, int value) => memory.WriteInt32(null, value);\r\n\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "8ecdb42f9acd203c", + "equalIndicator/v1": "0a1ca83a85ce219b13ddc46c2cc75166c0f704628b39522e89a3903ad17fc07f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'OnPreviewKeyDown' coverage is below the threshold 50%", + "markdown": "Method `OnPreviewKeyDown` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/FilteredComboBox.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 56, + "startColumn": 29, + "charOffset": 2024, + "charLength": 16, + "snippet": { + "text": "OnPreviewKeyDown" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 54, + "startColumn": 1, + "charOffset": 1987, + "charLength": 101, + "snippet": { + "text": " }\r\n\r\n protected override void OnPreviewKeyDown(KeyEventArgs e)\r\n {\r\n switch (e.Key)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "fd8453bb64394ed6", + "equalIndicator/v1": "0a509dcb567eb428d08800edf19f5d700fba63625f61081552efaffd27a2154f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'Update' coverage is below the threshold 50%", + "markdown": "Method `Update` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls3Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 86, + "startColumn": 36, + "charOffset": 2584, + "charLength": 6, + "snippet": { + "text": "Update" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 84, + "startColumn": 1, + "charOffset": 2545, + "charLength": 129, + "snippet": { + "text": "\r\n\r\n public ResultErr Update(MainViewModel mainViewModel)\r\n {\r\n mainViewModel.TryAndHandleError(() =>\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c6bb1c6c30e8a2bb", + "equalIndicator/v1": "0a5da4e37001e6682cd5372241d3b7c56ff44acd1ee85430881d3dd5db0e0770" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_ItemHighRange' coverage is below the threshold 50%", + "markdown": "Method `get_ItemHighRange` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/TextTableEntry.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 23, + "startColumn": 33, + "charOffset": 993, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 21, + "startColumn": 1, + "charOffset": 875, + "charLength": 199, + "snippet": { + "text": " public uint ItemLowRange { get; set; }\r\n public uint DataOffset { get; set; }\r\n public uint ItemHighRange { get; set; }\r\n\r\n public override string ToString() => ItemLowRange.ToString();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "29153835f3d62f42", + "equalIndicator/v1": "0a747b506b840b272acfeadfc25b6352f053029858dc407a8ee13d230e8f8c1b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'TryScanRelative' coverage is below the threshold 50%", + "markdown": "Method `TryScanRelative` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 124, + "startColumn": 24, + "charOffset": 4945, + "charLength": 15, + "snippet": { + "text": "TryScanRelative" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 122, + "startColumn": 1, + "charOffset": 4841, + "charLength": 227, + "snippet": { + "text": " /// Returns the static address of the given instruction\r\n /// \r\n public static bool TryScanRelative(this byte[] bytes, long baseAddress, PointerNode pointerNode, out long result)\r\n {\r\n result = 0;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "da4dce2d1d0a8866", + "equalIndicator/v1": "0a8230d4144d76dca367f3c3b3b84d80af6962eac6bb3ec8cb47c4157e1e6888" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'Generic.ErrorViewModel' coverage is below the threshold 50%", + "markdown": "Class `Generic.ErrorViewModel` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/ErrorViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 22, + "startColumn": 14, + "charOffset": 905, + "charLength": 14, + "snippet": { + "text": "ErrorViewModel" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 20, + "startColumn": 1, + "charOffset": 854, + "charLength": 130, + "snippet": { + "text": "namespace SoulSplitter.UI.Generic;\r\n\r\npublic class ErrorViewModel : ICustomNotifyPropertyChanged\r\n{\r\n public DateTime DateTime\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "72bc83249c9a7f0b", + "equalIndicator/v1": "0ab365a366418cadc2b2184402b4db0cf633bcb5d9ee29fab4532d1f9e579a88" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetEventFlagAddress' coverage is below the threshold 50%", + "markdown": "Method `GetEventFlagAddress` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 154, + "startColumn": 28, + "charOffset": 5356, + "charLength": 19, + "snippet": { + "text": "GetEventFlagAddress" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 152, + "startColumn": 1, + "charOffset": 5320, + "charLength": 114, + "snippet": { + "text": " }\r\n\r\n private ResultOk GetEventFlagAddress(uint eventFlagId, out int mask)\r\n {\r\n mask = 0;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "32b919d734bc04f6", + "equalIndicator/v1": "0ab8b5d68cc4f3ad653b235b8c3397d44d2d08c539a4821c59318e636299cd56" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_Flag' coverage is below the threshold 50%", + "markdown": "Method `get_Flag` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/KnownFlagViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 54, + "startColumn": 9, + "charOffset": 1604, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 52, + "startColumn": 1, + "charOffset": 1567, + "charLength": 107, + "snippet": { + "text": " public uint Flag\r\n {\r\n get => _flag;\r\n set => this.SetField(ref _flag, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9b47502df9eb1e35", + "equalIndicator/v1": "0b60a5da96b792797be09044cb5357af9cef4409bddf069e956e5b2026958750" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'TextBoxRawFlag_OnTextChanged' coverage is below the threshold 50%", + "markdown": "Method `TextBoxRawFlag_OnTextChanged` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2Control.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 54, + "startColumn": 18, + "charOffset": 1798, + "charLength": 28, + "snippet": { + "text": "TextBoxRawFlag_OnTextChanged" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 52, + "startColumn": 1, + "charOffset": 1772, + "charLength": 206, + "snippet": { + "text": " }\r\n\r\n private void TextBoxRawFlag_OnTextChanged(object sender, TextChangedEventArgs e)\r\n {\r\n if (_darkSouls2ViewModel.NewSplitType is DarkSouls2SplitType.Flag && sender is TextBox textBox)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ed18410205d8136c", + "equalIndicator/v1": "0b691cd73f7c517d16add808dbd69e9c96f77b75600b1e68e39fcbf7fd9dffe2" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_EnabledAddSplit' coverage is below the threshold 50%", + "markdown": "Method `set_EnabledAddSplit` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 281, + "startColumn": 9, + "charOffset": 7776, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 279, + "startColumn": 1, + "charOffset": 7727, + "charLength": 143, + "snippet": { + "text": " {\r\n get => _enabledAddSplit;\r\n set => this.SetField(ref _enabledAddSplit, value);\r\n }\r\n private bool _enabledAddSplit;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0da803b106b3469e", + "equalIndicator/v1": "0ca055a221598a2454f9b2bde118b62c6a037ce11dd227c8e58bc68de978d28d" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteInGameTimeMilliseconds' coverage is below the threshold 50%", + "markdown": "Method `WriteInGameTimeMilliseconds` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 156, + "startColumn": 17, + "charOffset": 5513, + "charLength": 27, + "snippet": { + "text": "WriteInGameTimeMilliseconds" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 154, + "startColumn": 1, + "charOffset": 5488, + "charLength": 126, + "snippet": { + "text": " }\r\n\r\n public void WriteInGameTimeMilliseconds(int millis)\r\n {\r\n _gameDataMan.WriteInt32(_igtOffset, millis);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "38703af0b844c627", + "equalIndicator/v1": "0caf9b0fa31536686f49dbee8b9cb69742f226296f3aa73bc667d1c54143ee8d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteInGameTimeMilliseconds' coverage is below the threshold 50%", + "markdown": "Method `WriteInGameTimeMilliseconds` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Sekiro/Sekiro.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 189, + "startColumn": 17, + "charOffset": 7229, + "charLength": 27, + "snippet": { + "text": "WriteInGameTimeMilliseconds" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 187, + "startColumn": 1, + "charOffset": 7204, + "charLength": 104, + "snippet": { + "text": " }\r\n\r\n public void WriteInGameTimeMilliseconds(int value)\r\n {\r\n _igt.WriteInt32(value);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e747107d84d28c94", + "equalIndicator/v1": "0cb923573b1a055ce94058bd885d20cc0f17dc2fce46bd31f4244e0809c7c9b0" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadUInt32' coverage is below the threshold 50%", + "markdown": "Method `ReadUInt32` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 204, + "startColumn": 17, + "charOffset": 5368, + "charLength": 10, + "snippet": { + "text": "ReadUInt32" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 202, + "startColumn": 1, + "charOffset": 5281, + "charLength": 191, + "snippet": { + "text": " return BitConverter.ToInt32(ReadMemory(offset, 4), 0);\r\n }\r\n public uint ReadUInt32(long? offset = null)\r\n {\r\n return BitConverter.ToUInt32(ReadMemory(offset, 4), 0);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "51221508fa823165", + "equalIndicator/v1": "0d270efae5e4f611a2a04faa1feea0fa836a29aa95e648ab502e07376848c607" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_NewSplitItem' coverage is below the threshold 50%", + "markdown": "Method `set_NewSplitItem` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 200, + "startColumn": 9, + "charOffset": 5699, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 198, + "startColumn": 1, + "charOffset": 5653, + "charLength": 115, + "snippet": { + "text": " {\r\n get => _newSplitItem;\r\n set\r\n {\r\n this.SetField(ref _newSplitItem, value);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a286aecf062a38ea", + "equalIndicator/v1": "0ded78896f1792a2b1f6dc281cf0628fec354364e6fa87c55bcb0099c7d8010e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'soulmods.RustCallAttribute' coverage is below the threshold 50%", + "markdown": "Class `soulmods.RustCallAttribute` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/soulmods/Soulmods.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 43, + "startColumn": 14, + "charOffset": 1448, + "charLength": 17, + "snippet": { + "text": "RustCallAttribute" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 41, + "startColumn": 1, + "charOffset": 1371, + "charLength": 163, + "snippet": { + "text": "\r\n[AttributeUsage(AttributeTargets.Method, Inherited = false)]\r\npublic class RustCallAttribute : Attribute\r\n{\r\n public string MethodName { get; set; } = null!;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "8b5b4e9e63a87fe1", + "equalIndicator/v1": "0e12350eef1b69cd48384e61d40d137134b0b35449b15d0c7f5187187374ad58" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_NewSplitPosition' coverage is below the threshold 50%", + "markdown": "Method `get_NewSplitPosition` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 219, + "startColumn": 9, + "charOffset": 6156, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 217, + "startColumn": 1, + "charOffset": 6093, + "charLength": 113, + "snippet": { + "text": " public PositionViewModel? NewSplitPosition\r\n {\r\n get => _newSplitPosition;\r\n set\r\n {\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "49ce82623dcd8055", + "equalIndicator/v1": "0e80b19e9b20e84610d91672bf51f8629652d82de87888a545e75dab9839819b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Constructor 'ResultOk' coverage is below the threshold 50%", + "markdown": "Constructor `ResultOk` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Result.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 163, + "startColumn": 15, + "charOffset": 3926, + "charLength": 8, + "snippet": { + "text": "ResultOk" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 161, + "startColumn": 1, + "charOffset": 3877, + "charLength": 106, + "snippet": { + "text": " public bool IsErr => !IsOk;\r\n\r\n protected ResultOk(bool isOk, TOk ok)\r\n {\r\n IsOk = isOk;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e58ed9c9bf1c9dad", + "equalIndicator/v1": "0f3ea3b4e49fbd14f0f21a9eb293e6a22f1521d72a41999f70d9f310c7dec193" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_VisibleItemSplit' coverage is below the threshold 50%", + "markdown": "Method `set_VisibleItemSplit` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 212, + "startColumn": 9, + "charOffset": 5977, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 210, + "startColumn": 1, + "charOffset": 5927, + "charLength": 146, + "snippet": { + "text": " {\r\n get => _visibleItemSplit;\r\n set => this.SetField(ref _visibleItemSplit, value);\r\n }\r\n private bool _visibleItemSplit;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "15107cc923f8bb62", + "equalIndicator/v1": "104142087ae03236eaed7c7bdffa7e88ae0346d3006dd99af21ad3eac75a93d1" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'Unwrap' coverage is below the threshold 50%", + "markdown": "Method `Unwrap` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Result.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 75, + "startColumn": 17, + "charOffset": 2174, + "charLength": 6, + "snippet": { + "text": "Unwrap" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 73, + "startColumn": 1, + "charOffset": 2149, + "charLength": 61, + "snippet": { + "text": " }\r\n\r\n public void Unwrap()\r\n {\r\n if (!IsOk)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d16f6cc612fe2753", + "equalIndicator/v1": "105ec2b006101f3bed4826eff5d0f79256a056d4ea2c2624c599bf4377293d8c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteUInt32' coverage is below the threshold 50%", + "markdown": "Method `WriteUInt32` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/IMemory.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 142, + "startColumn": 24, + "charOffset": 4609, + "charLength": 11, + "snippet": { + "text": "WriteUInt32" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 140, + "startColumn": 1, + "charOffset": 4577, + "charLength": 198, + "snippet": { + "text": " }\r\n\r\n public static void WriteUInt32(this IMemory memory, uint value) => memory.WriteUInt32(null, value);\r\n\r\n public static void WriteUInt32(this IMemory memory, long? offset, uint value)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4b3b5a3910cdf7ee", + "equalIndicator/v1": "1061ebb696e222742cbb9d3d2fb429e183eacb901fa67cc94f804afb6a2aa2fb" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'Memory.MemoryExtensions' coverage is below the threshold 50%", + "markdown": "Class `Memory.MemoryExtensions` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/IMemory.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 50, + "startColumn": 21, + "charOffset": 1523, + "charLength": 16, + "snippet": { + "text": "MemoryExtensions" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 48, + "startColumn": 1, + "charOffset": 1498, + "charLength": 63, + "snippet": { + "text": "}\r\n\r\npublic static class MemoryExtensions\r\n{\r\n #region Read\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7ffde59700b0726a", + "equalIndicator/v1": "10b51e6ea170f66fd19da41d4699c79708b4d4b18e820388e8a6cb9e066fc9c4" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ResetPointers' coverage is below the threshold 50%", + "markdown": "Method `ResetPointers` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/EldenRing.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 191, + "startColumn": 18, + "charOffset": 7234, + "charLength": 13, + "snippet": { + "text": "ResetPointers" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 189, + "startColumn": 1, + "charOffset": 7204, + "charLength": 76, + "snippet": { + "text": " }\r\n \r\n private void ResetPointers()\r\n {\r\n _igt.Clear();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "05bc56e4b233df0b", + "equalIndicator/v1": "1102a177039302c4623a2f449767a0c9154b1d07f578311221d7685e36cba801" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetEnumViewModels' coverage is below the threshold 50%", + "markdown": "Method `GetEnumViewModels` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/EnumFlagViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 82, + "startColumn": 62, + "charOffset": 2366, + "charLength": 17, + "snippet": { + "text": "GetEnumViewModels" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 80, + "startColumn": 1, + "charOffset": 2287, + "charLength": 248, + "snippet": { + "text": " #endregion\r\n\r\n public static ObservableCollection> GetEnumViewModels()\r\n {\r\n return new ObservableCollection>(Enum.GetValues(typeof(T)).Cast().Select(i => new EnumFlagViewModel(i)));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "abe8bb0d2c8924e0", + "equalIndicator/v1": "11c71e3d42afc4911e41a39a9d7b49aa6d1e5dedfb3360bb3fbaf1646b22a173" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_SelectedBonfireState' coverage is below the threshold 50%", + "markdown": "Method `get_SelectedBonfireState` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 328, + "startColumn": 9, + "charOffset": 13268, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 326, + "startColumn": 1, + "charOffset": 13214, + "charLength": 156, + "snippet": { + "text": " public Enum? SelectedBonfireState\r\n {\r\n get => _selectedBonfireState;\r\n set => this.SetField(ref _selectedBonfireState, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "81c01f2c286d4476", + "equalIndicator/v1": "120913c981f55f0785956a54d9fafb0b6b5d03c5678ba28ebf955b5c6bb2f869" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'FromProcessModule' coverage is below the threshold 50%", + "markdown": "Method `FromProcessModule` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Process/ProcessWrapperModule.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 29, + "startColumn": 40, + "charOffset": 1168, + "charLength": 17, + "snippet": { + "text": "FromProcessModule" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 27, + "startColumn": 1, + "charOffset": 1080, + "charLength": 176, + "snippet": { + "text": " public int ModuleMemorySize { get; set; }\r\n\r\n public static ProcessWrapperModule FromProcessModule(ProcessModule module)\r\n {\r\n return new ProcessWrapperModule\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e96db6d8b9ee1ce9", + "equalIndicator/v1": "120c0ef2c5413d30858fb0fc45f3f02eb0defe663157935bd52f451722744ec5" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteUInt16' coverage is below the threshold 50%", + "markdown": "Method `WriteUInt16` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/IMemory.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 129, + "startColumn": 24, + "charOffset": 4173, + "charLength": 11, + "snippet": { + "text": "WriteUInt16" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 127, + "startColumn": 1, + "charOffset": 4041, + "charLength": 266, + "snippet": { + "text": " public static void WriteUInt16(this IMemory memory, ushort value) => memory.WriteUInt16(null, value);\r\n\r\n public static void WriteUInt16(this IMemory memory, long? offset, ushort value)\r\n {\r\n memory.WriteBytes(offset, BitConverter.GetBytes(value));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "62bb43b3431732eb", + "equalIndicator/v1": "1217e4af3d89f0886a4e77ba93d56c7a323f31135ef7b763651e7f12942469c4" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Constructor 'ResultErr' coverage is below the threshold 50%", + "markdown": "Constructor `ResultErr` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Result.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 98, + "startColumn": 15, + "charOffset": 2642, + "charLength": 9, + "snippet": { + "text": "ResultErr" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 96, + "startColumn": 1, + "charOffset": 2593, + "charLength": 109, + "snippet": { + "text": " public bool IsErr => !IsOk;\r\n\r\n protected ResultErr(bool isOk, TErr err)\r\n {\r\n IsOk = isOk;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "3a38e0722586340c", + "equalIndicator/v1": "1237f2c9bbaa104228be1dee9a6f2800af639a5a6c8b3b036b85468c35e99f69" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'CopyGamePosition' coverage is below the threshold 50%", + "markdown": "Method `CopyGamePosition` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 279, + "startColumn": 18, + "charOffset": 11990, + "charLength": 16, + "snippet": { + "text": "CopyGamePosition" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 277, + "startColumn": 1, + "charOffset": 11908, + "charLength": 152, + "snippet": { + "text": " public RelayCommand CopyGamePositionCommand { get; set; }\r\n\r\n private void CopyGamePosition(object? param)\r\n {\r\n if (Position != null)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "739ad031bccb726a", + "equalIndicator/v1": "12440d7709e69cbe6ec7cd85ec2bff0aea44fb5a1763ab42eaecb33adb254c6a" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ToString' coverage is below the threshold 50%", + "markdown": "Method `ToString` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/RefreshError.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 50, + "startColumn": 28, + "charOffset": 1613, + "charLength": 8, + "snippet": { + "text": "ToString" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 48, + "startColumn": 1, + "charOffset": 1542, + "charLength": 145, + "snippet": { + "text": " public Exception? Exception { get; }\r\n\r\n public override string ToString()\r\n {\r\n var sb = new StringBuilder(Reason.ToString());\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "bb8b54777e9c0680", + "equalIndicator/v1": "12942868d582c3f2f899b8dc5f92bdbcdfc389a228fbe57b4400439f491796b5" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_KnownFlags' coverage is below the threshold 50%", + "markdown": "Method `set_KnownFlags` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 195, + "startColumn": 9, + "charOffset": 8094, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 193, + "startColumn": 1, + "charOffset": 7976, + "charLength": 181, + "snippet": { + "text": " {\r\n get => (ObservableCollection>)GetValue(KnownFlagsDependencyProperty);\r\n set => SetValue(KnownFlagsDependencyProperty, value);\r\n }\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "6175ff6a07312fa3", + "equalIndicator/v1": "12cb8a720e48d09f41cb86c510a4d9ab2b6ee110bf854ee4d306417d06204a63" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_NewSplitItemState' coverage is below the threshold 50%", + "markdown": "Method `get_NewSplitItemState` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 167, + "startColumn": 9, + "charOffset": 5823, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 165, + "startColumn": 1, + "charOffset": 5768, + "charLength": 151, + "snippet": { + "text": " public ItemState NewSplitItemState\r\n {\r\n get => _newSplitItemState;\r\n set => this.SetField(ref _newSplitItemState, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0c19ea8ebf459be9", + "equalIndicator/v1": "12f768396bd1ca2436a56b51691b434ca29e1beb9497d0193b3b11d588aafa57" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'OnItemsSourceChanged' coverage is below the threshold 50%", + "markdown": "Method `OnItemsSourceChanged` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/FilteredComboBox.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 34, + "startColumn": 29, + "charOffset": 1378, + "charLength": 20, + "snippet": { + "text": "OnItemsSourceChanged" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 32, + "startColumn": 1, + "charOffset": 1246, + "charLength": 274, + "snippet": { + "text": " protected TextBox EditableTextBox => (GetTemplateChild(\"PART_EditableTextBox\") as TextBox)!;\r\n \r\n protected override void OnItemsSourceChanged(IEnumerable oldValue, IEnumerable newValue)\r\n {\r\n var newView = CollectionViewSource.GetDefaultView(newValue);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "57250fdf75af5433", + "equalIndicator/v1": "13a800d60ee206269e440116be838e461c77b55411b91ce13295f51dd70fdd7a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'DarkSouls2.DarkSouls2' coverage is below the threshold 50%", + "markdown": "Class `DarkSouls2.DarkSouls2` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls2/DarkSouls2.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 25, + "startColumn": 14, + "charOffset": 972, + "charLength": 10, + "snippet": { + "text": "DarkSouls2" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 23, + "startColumn": 1, + "charOffset": 923, + "charLength": 127, + "snippet": { + "text": "namespace SoulMemory.DarkSouls2;\r\n\r\npublic class DarkSouls2 : IDarkSouls2\r\n{\r\n public int GetInGameTimeMilliseconds() => 0;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a6cbd98d218dedb1", + "equalIndicator/v1": "13b06551f63f51128bf07160749aac47209c99993cac46bc822b7a835f5cfd89" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteInt32' coverage is below the threshold 50%", + "markdown": "Method `WriteInt32` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 279, + "startColumn": 17, + "charOffset": 7319, + "charLength": 10, + "snippet": { + "text": "WriteInt32" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 277, + "startColumn": 1, + "charOffset": 7299, + "charLength": 123, + "snippet": { + "text": "\r\n\r\n public void WriteInt32(long? offset, int value)\r\n {\r\n WriteMemory(offset, BitConverter.GetBytes(value));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "6fe0763fcb06c747", + "equalIndicator/v1": "13d9f8fc24a0e4bea8008276e7d74f5413c8bd8835b7ad0b4755988be6f71b08" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'DrawHorizontal' coverage is below the threshold 50%", + "markdown": "Method `DrawHorizontal` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/SoulComponent.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 195, + "startColumn": 17, + "charOffset": 7063, + "charLength": 14, + "snippet": { + "text": "DrawHorizontal" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 193, + "startColumn": 1, + "charOffset": 6813, + "charLength": 438, + "snippet": { + "text": " #region drawing ===================================================================================================================\r\n public IDictionary ContextMenuControls => new Dictionary();\r\n public void DrawHorizontal(Graphics g, LiveSplitState state, float height, Region clipRegion)\r\n {\r\n //Soulsplitter doesn't draw to livesplit's window, but must implement the full interface.\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ac7a7e91d3ce7b9c", + "equalIndicator/v1": "15c2d2a2f1887da921193bac939a0521beb4b0aa031db57ad020d58e1b936cdd" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_Description' coverage is below the threshold 50%", + "markdown": "Method `set_Description` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/BoolDescriptionViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 26, + "startColumn": 9, + "charOffset": 1026, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 24, + "startColumn": 1, + "charOffset": 981, + "charLength": 138, + "snippet": { + "text": " {\r\n get => _description;\r\n set => this.SetField(ref _description, value);\r\n }\r\n private string _description = \"\";\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5bd825bb47bd7ca0", + "equalIndicator/v1": "15e381d64c7ab6c1a5594648f958fc79c5bf15468054af0ce7c40d6401b7e5f1" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_Children' coverage is below the threshold 50%", + "markdown": "Method `get_Children` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/SplitViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 63, + "startColumn": 72, + "charOffset": 2165, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 61, + "startColumn": 1, + "charOffset": 2039, + "charLength": 188, + "snippet": { + "text": " private EldenRingSplitType _eldenRingSplitType;\r\n\r\n public ObservableCollection Children { get; set; } = [];\r\n\r\n #region ICustomNotifyPropertyChanged\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "58c2931d6ea0e954", + "equalIndicator/v1": "160ec5ab4974d863fa9df747ea2eb2ae2ce8895be500eadab3d0141054d6c899" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'TryResolvePointers' coverage is below the threshold 50%", + "markdown": "Method `TryResolvePointers` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 39, + "startColumn": 43, + "charOffset": 1592, + "charLength": 18, + "snippet": { + "text": "TryResolvePointers" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 37, + "startColumn": 1, + "charOffset": 1471, + "charLength": 232, + "snippet": { + "text": " /// \r\n /// \r\n public static ResultErr TryResolvePointers(TreeBuilder treeBuilder, Process? process)\r\n {\r\n if (process?.MainModule == null)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a71aa6d7ad4306f7", + "equalIndicator/v1": "16a2aab9384bcd3f7b5aad9ee7216a866e253f3070e4eb17f0d60b80d126c503" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'Memory.MemoryExtensions' coverage is below the threshold 50%", + "markdown": "Class `Memory.MemoryExtensions` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 23, + "startColumn": 21, + "charOffset": 925, + "charLength": 16, + "snippet": { + "text": "MemoryExtensions" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 21, + "startColumn": 1, + "charOffset": 864, + "charLength": 103, + "snippet": { + "text": "namespace SoulMemory.MemoryV2.Memory;\r\n\r\npublic static class MemoryExtensions\r\n{\r\n #region Pointers\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c94440723e421cba", + "equalIndicator/v1": "16b5001c7b063f5ee573d4a5d686fa53fa252b3f414d2a3f5a605afdb191dbee" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_NewSplitItemPickup' coverage is below the threshold 50%", + "markdown": "Method `get_NewSplitItemPickup` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 247, + "startColumn": 9, + "charOffset": 6909, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 245, + "startColumn": 1, + "charOffset": 6851, + "charLength": 110, + "snippet": { + "text": " public ItemPickup? NewSplitItemPickup\r\n {\r\n get => _newSplitItemPickup;\r\n set\r\n {\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "fdc6a3c6960f159e", + "equalIndicator/v1": "16c2f01892c94fe42850a691160f8bb63c4ad32bed596f7ad56345115996edcd" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteItemLotParam' coverage is below the threshold 50%", + "markdown": "Method `WriteItemLotParam` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/DarkSouls1.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 46, + "startColumn": 17, + "charOffset": 2592, + "charLength": 17, + "snippet": { + "text": "WriteItemLotParam" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 44, + "startColumn": 1, + "charOffset": 2301, + "charLength": 516, + "snippet": { + "text": " public int GetSaveFileGameTimeMilliseconds(string path, int slot) => _darkSouls1?.GetSaveFileGameTimeMilliseconds(path, slot) ?? 0;\r\n public void WriteWeaponDescription(uint weaponId, string description) => _darkSouls1?.WriteWeaponDescription(weaponId, description);\r\n public void WriteItemLotParam(int rowId, Action accessor) => _darkSouls1?.WriteItemLotParam(rowId, accessor);\r\n public void SetLoadingScreenItem(int index, uint item) => _darkSouls1?.SetLoadingScreenItem(index, item);\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7b153997acdd0c82", + "equalIndicator/v1": "17033027d89514259620ca0182fe708648f81a830dc9dabac8326852505f01db" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'OnDropModSettingsChanged' coverage is below the threshold 50%", + "markdown": "Method `OnDropModSettingsChanged` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 61, + "startColumn": 18, + "charOffset": 1979, + "charLength": 24, + "snippet": { + "text": "OnDropModSettingsChanged" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 59, + "startColumn": 1, + "charOffset": 1898, + "charLength": 275, + "snippet": { + "text": " [XmlIgnore]\r\n public bool DropModRequestInitialisation;\r\n private void OnDropModSettingsChanged(DropModType oldValue, DropModType newValue)\r\n {\r\n //When dropmod is turned off, the game should be closed to ensure no modifications are left behind in memory\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "53ebbc55bd507cfa", + "equalIndicator/v1": "174fc9679a20657c76c37dfaf6ae511d6407de73e74c438c6b4da6dbaae80f64" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetBonfireState' coverage is below the threshold 50%", + "markdown": "Method `GetBonfireState` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 280, + "startColumn": 25, + "charOffset": 10162, + "charLength": 15, + "snippet": { + "text": "GetBonfireState" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 278, + "startColumn": 1, + "charOffset": 10129, + "charLength": 142, + "snippet": { + "text": " }\r\n\r\n public BonfireState GetBonfireState(Bonfire bonfire)\r\n {\r\n var element = _netBonfireDb.CreatePointerFromAddress(0x28);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f829b12a3764c565", + "equalIndicator/v1": "17ab21127a93ed3ace1febd7e80cb558219ff1d18dbd3cac767a20bd3a9f201c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_TimingType' coverage is below the threshold 50%", + "markdown": "Method `set_TimingType` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/HierarchicalViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 34, + "startColumn": 9, + "charOffset": 1313, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 32, + "startColumn": 1, + "charOffset": 1269, + "charLength": 134, + "snippet": { + "text": " {\r\n get => _timingType;\r\n set => this.SetField(ref _timingType, value);\r\n }\r\n private TimingType _timingType;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "66059483d6b53cd6", + "equalIndicator/v1": "17b203ba5823e54f359ef16c4c6f1194a9c479de0d8f3af854261ee1c3e7cd71" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetSteamId3' coverage is below the threshold 50%", + "markdown": "Method `GetSteamId3` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 427, + "startColumn": 17, + "charOffset": 14638, + "charLength": 11, + "snippet": { + "text": "GetSteamId3" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 425, + "startColumn": 1, + "charOffset": 14557, + "charLength": 144, + "snippet": { + "text": " /// SteamID3 used for savefile location\r\n /// \r\n private int GetSteamId3()\r\n {\r\n string name = \"steam_api64.dll\";\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "8c4e68b36b87f024", + "equalIndicator/v1": "17e82b0544ed85e3cfc3537fcd3cb4a658179b4f3957b8be7970d9bfbf0bf6e5" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'IsLoadingScreenVisible' coverage is below the threshold 50%", + "markdown": "Method `IsLoadingScreenVisible` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 69, + "startColumn": 17, + "charOffset": 2662, + "charLength": 22, + "snippet": { + "text": "IsLoadingScreenVisible" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 67, + "startColumn": 1, + "charOffset": 2536, + "charLength": 206, + "snippet": { + "text": " public void WriteInGameTimeMilliseconds(int milliseconds) => _fd4Time.WriteInt32(0x114, milliseconds);\r\n\r\n public bool IsLoadingScreenVisible()\r\n {\r\n var value = _menuMan.ReadInt32(0x8e4);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "81bca1795709beb0", + "equalIndicator/v1": "180826f14558c0c9585fe80295b64b19236e8c364efb48f1ef1ba3d09129490a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteBool' coverage is below the threshold 50%", + "markdown": "Method `WriteBool` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 296, + "startColumn": 17, + "charOffset": 7781, + "charLength": 9, + "snippet": { + "text": "WriteBool" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 294, + "startColumn": 1, + "charOffset": 7756, + "charLength": 128, + "snippet": { + "text": " }\r\n\r\n public void WriteBool(long? offset, bool value)\r\n {\r\n WriteMemory(offset, BitConverter.GetBytes(value));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "476d998049286823", + "equalIndicator/v1": "182b863de80861351bb879ba32eddc76f4857b6998c661900f6b1f3d166ad763" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_Area' coverage is below the threshold 50%", + "markdown": "Method `get_Area` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/PositionViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 31, + "startColumn": 9, + "charOffset": 1101, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 29, + "startColumn": 1, + "charOffset": 1064, + "charLength": 123, + "snippet": { + "text": " public byte Area\r\n {\r\n get => Position.Area;\r\n set => this.SetField(ref Position.Area, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0c058ae3f4926d90", + "equalIndicator/v1": "186c092a6ea873b365dbf9335bb5b9779091008dd58ec67936dc4b8e0047ac96" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetSaveFileLocation' coverage is below the threshold 50%", + "markdown": "Method `GetSaveFileLocation` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/DarkSouls1.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 43, + "startColumn": 20, + "charOffset": 2239, + "charLength": 19, + "snippet": { + "text": "GetSaveFileLocation" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 41, + "startColumn": 1, + "charOffset": 2013, + "charLength": 562, + "snippet": { + "text": " public bool AreCreditsRolling() => _darkSouls1?.AreCreditsRolling() ?? false;\r\n public BonfireState GetBonfireState(Bonfire bonfire) => _darkSouls1?.GetBonfireState(bonfire) ?? BonfireState.Unknown;\r\n public string? GetSaveFileLocation() => _darkSouls1?.GetSaveFileLocation();\r\n public int GetSaveFileGameTimeMilliseconds(string path, int slot) => _darkSouls1?.GetSaveFileGameTimeMilliseconds(path, slot) ?? 0;\r\n public void WriteWeaponDescription(uint weaponId, string description) => _darkSouls1?.WriteWeaponDescription(weaponId, description);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0b40696a1d4aceb3", + "equalIndicator/v1": "189ff8eab8958336823afcb945a56a03e64040de9bd7d558110a2afffa795197" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ApplyNoLogo' coverage is below the threshold 50%", + "markdown": "Method `ApplyNoLogo` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/EldenRing.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 352, + "startColumn": 18, + "charOffset": 11950, + "charLength": 11, + "snippet": { + "text": "ApplyNoLogo" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 350, + "startColumn": 1, + "charOffset": 11924, + "charLength": 86, + "snippet": { + "text": " }\r\n\r\n private void ApplyNoLogo()\r\n {\r\n _process!.NtSuspendProcess();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7d3c79622ed84a61", + "equalIndicator/v1": "1915c8c2f1e395a3da1e534998b82ad30deb0904e220fa7057298a3355ddd701" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'PointerTreeBuilder.PointerTreeBuilder' coverage is below the threshold 50%", + "markdown": "Class `PointerTreeBuilder.PointerTreeBuilder` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerTreeBuilder.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 27, + "startColumn": 14, + "charOffset": 1135, + "charLength": 18, + "snippet": { + "text": "PointerTreeBuilder" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 25, + "startColumn": 1, + "charOffset": 1055, + "charLength": 143, + "snippet": { + "text": "/// Resolve the scans against an IMemory instance\r\n/// \r\npublic class PointerTreeBuilder\r\n{\r\n public List Tree = [];\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0573ee650c063121", + "equalIndicator/v1": "193baa0f0e1f61fec2be31eb7088925c77b5372a62bedc65d783e44c858fab74" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadInventory' coverage is below the threshold 50%", + "markdown": "Method `ReadInventory` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/EldenRing.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 379, + "startColumn": 23, + "charOffset": 12573, + "charLength": 13, + "snippet": { + "text": "ReadInventory" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 377, + "startColumn": 1, + "charOffset": 12538, + "charLength": 97, + "snippet": { + "text": " }\r\n \r\n public List ReadInventory()\r\n {\r\n var items = new List();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "1268ba7979f6a589", + "equalIndicator/v1": "1979c118cb0e800cad8fe8b78a10fdfa51d613e81107cf414b71017d86cf85cc" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_WriteEnabled' coverage is below the threshold 50%", + "markdown": "Method `set_WriteEnabled` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/BaseParam.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 101, + "startColumn": 37, + "charOffset": 3958, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 99, + "startColumn": 1, + "charOffset": 3741, + "charLength": 335, + "snippet": { + "text": " #region Writing fields ======================================================================================================================================================\r\n\r\n public bool WriteEnabled { get; set; }\r\n\r\n protected void WriteParamField(ref T field, T value, [CallerMemberName] string? propertyName = null)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0a5cf19596380378", + "equalIndicator/v1": "198728c148ad9ab3c8414b821d62aec649c84b8bb0f3ff32cca7667ec942f39b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'SplitsTreeView_OnSelectedItemChanged' coverage is below the threshold 50%", + "markdown": "Method `SplitsTreeView_OnSelectedItemChanged` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 48, + "startColumn": 18, + "charOffset": 1557, + "charLength": 36, + "snippet": { + "text": "SplitsTreeView_OnSelectedItemChanged" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 46, + "startColumn": 1, + "charOffset": 1531, + "charLength": 182, + "snippet": { + "text": " }\r\n\r\n private void SplitsTreeView_OnSelectedItemChanged(object sender, RoutedPropertyChangedEventArgs e)\r\n {\r\n GetEldenRingViewModel().SelectedSplit = null;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5fb01787d8f4d06f", + "equalIndicator/v1": "1a22a478c26cfb2904217425f7a03f13a5e5dbbc6cb87b7fd68df20bce9feb21" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetProcess' coverage is below the threshold 50%", + "markdown": "Method `GetProcess` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Sekiro/Sekiro.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 46, + "startColumn": 21, + "charOffset": 2001, + "charLength": 10, + "snippet": { + "text": "GetProcess" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 44, + "startColumn": 1, + "charOffset": 1818, + "charLength": 346, + "snippet": { + "text": " #region Refresh/init/reset ================================================================================================================================\r\n\r\n public Process? GetProcess() => _process;\r\n \r\n public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, \"sekiro\", InitPointers, ResetPointers);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ec39a3a1db6ea8a2", + "equalIndicator/v1": "1a94fb9ada1f8000a28fc3feb6101aae13706c84ab869de48974d82f15686701" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'RemoveSplit' coverage is below the threshold 50%", + "markdown": "Method `RemoveSplit` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/BaseViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 135, + "startColumn": 18, + "charOffset": 4161, + "charLength": 11, + "snippet": { + "text": "RemoveSplit" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 133, + "startColumn": 1, + "charOffset": 4135, + "charLength": 87, + "snippet": { + "text": " }\r\n\r\n private void RemoveSplit()\r\n {\r\n SplitsViewModel.RemoveSplit();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f3b56a4e8b54c8c8", + "equalIndicator/v1": "1ad716e5094a5b8fd4ef7140ad98363209590348263228b66a06c194c455e722" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ToString' coverage is below the threshold 50%", + "markdown": "Method `ToString` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/ItemPickupViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 33, + "startColumn": 28, + "charOffset": 1209, + "charLength": 8, + "snippet": { + "text": "ToString" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 31, + "startColumn": 1, + "charOffset": 1173, + "charLength": 76, + "snippet": { + "text": " }\r\n\r\n public override string ToString()\r\n {\r\n return Name;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e56c83148eff8eb9", + "equalIndicator/v1": "1aeed4585c6a4ac21ffef550a21349d67740b705f159e1a80d6e319b15e5c17a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ResetInventoryIndices' coverage is below the threshold 50%", + "markdown": "Method `ResetInventoryIndices` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 323, + "startColumn": 17, + "charOffset": 11393, + "charLength": 21, + "snippet": { + "text": "ResetInventoryIndices" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 321, + "startColumn": 1, + "charOffset": 11325, + "charLength": 137, + "snippet": { + "text": " //Imported from CapitaineToinon. Thanks!\r\n \r\n public void ResetInventoryIndices()\r\n {\r\n for (int i = 0; i < 20; i++)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a7e4fb22d2123451", + "equalIndicator/v1": "1b0fc5662f155300e7c3cf0874cf2366c616a53e0f555069113406ec1ba44dc3" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'Update' coverage is below the threshold 50%", + "markdown": "Method `Update` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls2Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 84, + "startColumn": 36, + "charOffset": 2516, + "charLength": 6, + "snippet": { + "text": "Update" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 82, + "startColumn": 1, + "charOffset": 2477, + "charLength": 149, + "snippet": { + "text": "\r\n\r\n public ResultErr Update(MainViewModel mainViewModel)\r\n {\r\n _darkSouls2ViewModel = mainViewModel.DarkSouls2ViewModel;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "64d827ecf326acda", + "equalIndicator/v1": "1b5911f9ca7c5701bb3c062d9cd0c15c8a22c39a577c1806aafa63fdade3e61c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'UpdateAutoSplitter' coverage is below the threshold 50%", + "markdown": "Method `UpdateAutoSplitter` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/EldenRingSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 241, + "startColumn": 17, + "charOffset": 7920, + "charLength": 18, + "snippet": { + "text": "UpdateAutoSplitter" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 239, + "startColumn": 1, + "charOffset": 7895, + "charLength": 101, + "snippet": { + "text": " }\r\n\r\n public void UpdateAutoSplitter()\r\n {\r\n if (_timerState != TimerState.Running)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "3a614ab65175b943", + "equalIndicator/v1": "1b7b858839d77b15e40f70c62bb8921aae6ec1d9cd832b69e49e98c9e69106d0" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Constructor 'RefreshError' coverage is below the threshold 50%", + "markdown": "Constructor `RefreshError` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/RefreshError.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 34, + "startColumn": 12, + "charOffset": 1176, + "charLength": 12, + "snippet": { + "text": "RefreshError" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 32, + "startColumn": 1, + "charOffset": 1156, + "charLength": 109, + "snippet": { + "text": " }\r\n\r\n public RefreshError(RefreshErrorReason reason, string message)\r\n {\r\n Reason = reason;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0eaaad374d5fc387", + "equalIndicator/v1": "1b94f44d58d7fe3b34bc891de3740175417ea6e5ea176ef18bd31952ea3e73bb" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetProcess' coverage is below the threshold 50%", + "markdown": "Method `GetProcess` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 68, + "startColumn": 21, + "charOffset": 3030, + "charLength": 10, + "snippet": { + "text": "GetProcess" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 66, + "startColumn": 1, + "charOffset": 2943, + "charLength": 249, + "snippet": { + "text": " private List _weaponDescriptionsTable = [];\r\n\r\n public Process? GetProcess() => _process;\r\n\r\n public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, \"darksouls\", InitPointers, ResetPointers);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "1e42cb624afab2d4", + "equalIndicator/v1": "1bd170735ba28d9ca09442c61ec59e4d31c5b7ca3d713dc88a0f107d3211d18d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'SetBitfieldValue' coverage is below the threshold 50%", + "markdown": "Method `SetBitfieldValue` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/BaseParam.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 176, + "startColumn": 20, + "charOffset": 6764, + "charLength": 16, + "snippet": { + "text": "SetBitfieldValue" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 174, + "startColumn": 1, + "charOffset": 6736, + "charLength": 226, + "snippet": { + "text": " }\r\n\r\n protected void SetBitfieldValue(ref T field, T value, [CallerMemberName] string? propertyName = null)\r\n {\r\n var bitfield = _paramBitfieldPropertyCache.First(i => i.propertyInfo.Name == propertyName);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5a09b3bd58ab46d0", + "equalIndicator/v1": "1be24e1d71b8bec61c3433bd391a91b711ec51d6d0ec1d98bae5471656b67e74" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetPlayerHealth' coverage is below the threshold 50%", + "markdown": "Method `GetPlayerHealth` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 172, + "startColumn": 16, + "charOffset": 6819, + "charLength": 15, + "snippet": { + "text": "GetPlayerHealth" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 170, + "startColumn": 1, + "charOffset": 6672, + "charLength": 262, + "snippet": { + "text": " public Vector3f GetPosition() => new(_playerIns.ReadFloat(0xc50), _playerIns.ReadFloat(0xC58), _playerIns.ReadFloat(0xC54));\r\n\r\n public int GetPlayerHealth() => _playerIns.ReadInt32(0x2d4) ;\r\n\r\n public bool IsPlayerLoaded() => !_playerIns.IsNullPtr();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "25a2d9bbd668fae2", + "equalIndicator/v1": "1c12f25b94e1ad3cd63e2294da153398b7e9760af3b02704d1547fbc7686f7fc" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'Parameters.ParamTableEntry' coverage is below the threshold 50%", + "markdown": "Class `Parameters.ParamTableEntry` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/ParamTableEntry.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 19, + "startColumn": 14, + "charOffset": 856, + "charLength": 15, + "snippet": { + "text": "ParamTableEntry" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 17, + "startColumn": 1, + "charOffset": 807, + "charLength": 101, + "snippet": { + "text": "namespace SoulMemory.Parameters;\r\n\r\npublic class ParamTableEntry\r\n{\r\n public int Id { get; set; }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "24be31202c5e195f", + "equalIndicator/v1": "1c420150863013da5b449e92f02bbae30c18c1ed1dcb7ef70ae8edeb6ccba8ad" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Constructor 'PointerAppender' coverage is below the threshold 50%", + "markdown": "Constructor `PointerAppender` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerAppender.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 24, + "startColumn": 14, + "charOffset": 991, + "charLength": 15, + "snippet": { + "text": "PointerAppender" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 22, + "startColumn": 1, + "charOffset": 927, + "charLength": 149, + "snippet": { + "text": "{\r\n private readonly PointerNode _pointerNode;\r\n internal PointerAppender(PointerNode pointerNode)\r\n {\r\n _pointerNode = pointerNode;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "fad5ad6680b390e1", + "equalIndicator/v1": "1cab1adb9339605ce365359c9a4af78f6afc1e7c6abe25d34579c8916c520c22" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_BadgeVisibilityInverse' coverage is below the threshold 50%", + "markdown": "Method `get_BadgeVisibilityInverse` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/MainViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 271, + "startColumn": 9, + "charOffset": 8527, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 269, + "startColumn": 1, + "charOffset": 8466, + "charLength": 167, + "snippet": { + "text": " public Visibility BadgeVisibilityInverse\r\n {\r\n get => _badgeVisibilityInverse;\r\n set => this.SetField(ref _badgeVisibilityInverse, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "415bb9f306b918ee", + "equalIndicator/v1": "1cc9c24b78ac030d4dc7ceac150d4b8494d4c72be7d8cccb17fd5bd62315173b" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteInt16' coverage is below the threshold 50%", + "markdown": "Method `WriteInt16` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/IMemory.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 120, + "startColumn": 24, + "charOffset": 3793, + "charLength": 10, + "snippet": { + "text": "WriteInt16" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 118, + "startColumn": 1, + "charOffset": 3663, + "charLength": 295, + "snippet": { + "text": " public static void WriteBytes(this IMemory memory, byte[] value) => memory.WriteBytes(null, value);\r\n\r\n public static void WriteInt16(this IMemory memory, short value) => memory.WriteInt16(null, value);\r\n\r\n public static void WriteInt16(this IMemory memory, long? offset, short value)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "3e9f348c7eba32a0", + "equalIndicator/v1": "1d55d0313109bb1d9b8c25efe233e83ad3d50b4980eaa096777bf277fe3f6713" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_NewSplitFlag' coverage is below the threshold 50%", + "markdown": "Method `set_NewSplitFlag` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 180, + "startColumn": 9, + "charOffset": 5227, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 178, + "startColumn": 1, + "charOffset": 5181, + "charLength": 115, + "snippet": { + "text": " {\r\n get => _newSplitFlag;\r\n set\r\n {\r\n this.SetField(ref _newSplitFlag, value);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "6a8dc87314199535", + "equalIndicator/v1": "1d5c20b87857aeb38adff4f2d18cf6297e904ebca0023b307090c7bae97d2e2a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'SetViewModel' coverage is below the threshold 50%", + "markdown": "Method `SetViewModel` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/EldenRingSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 50, + "startColumn": 17, + "charOffset": 1776, + "charLength": 12, + "snippet": { + "text": "SetViewModel" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 48, + "startColumn": 1, + "charOffset": 1751, + "charLength": 115, + "snippet": { + "text": " }\r\n\r\n public void SetViewModel(MainViewModel mainViewModel)\r\n {\r\n _mainViewModel = mainViewModel;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "94b11f16e25ed60c", + "equalIndicator/v1": "1d8ad0697f289441f2f43b38227ea240fd7fb85cc21888ed43b7b33f3e9cad8e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'IsLoading' coverage is below the threshold 50%", + "markdown": "Method `IsLoading` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls2/DarkSouls2.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 31, + "startColumn": 17, + "charOffset": 1254, + "charLength": 9, + "snippet": { + "text": "IsLoading" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 29, + "startColumn": 1, + "charOffset": 1090, + "charLength": 417, + "snippet": { + "text": " public Process? GetProcess() => _darkSouls2?.GetProcess();\r\n public Vector3f GetPosition() => _darkSouls2?.GetPosition() ?? new Vector3f();\r\n public bool IsLoading() => _darkSouls2?.IsLoading() ?? false;\r\n public bool ReadEventFlag(uint eventFlagId) => _darkSouls2?.ReadEventFlag(eventFlagId) ?? false;\r\n public int GetBossKillCount(BossType bossType) => _darkSouls2?.GetBossKillCount(bossType) ?? 0;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "94c17bf67b24dc27", + "equalIndicator/v1": "1d9e9cef5b2e2cb8731b43c2f35a92bc0667b59d0eeb69cadbaf18c8de679df2" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_SplitType' coverage is below the threshold 50%", + "markdown": "Method `set_SplitType` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/HierarchicalViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 62, + "startColumn": 9, + "charOffset": 2091, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 60, + "startColumn": 1, + "charOffset": 2048, + "charLength": 140, + "snippet": { + "text": " {\r\n get => _splitType;\r\n set => this.SetField(ref _splitType, value);\r\n }\r\n private DarkSouls2SplitType _splitType;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5ffb2f4e18f5a1ba", + "equalIndicator/v1": "1daf55b84ed856def429aebf53312a8c6fd10c446671935fd600d50d0a417b62" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetbitfieldValue' coverage is below the threshold 50%", + "markdown": "Method `GetbitfieldValue` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/BaseParam.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 156, + "startColumn": 17, + "charOffset": 6030, + "charLength": 16, + "snippet": { + "text": "GetbitfieldValue" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 154, + "startColumn": 1, + "charOffset": 5838, + "charLength": 377, + "snippet": { + "text": " #region Bitfields ======================================================================================================================================================\r\n\r\n protected T GetbitfieldValue(T field, [CallerMemberName] string? propertyName = null)\r\n {\r\n var bitfield = _paramBitfieldPropertyCache.First(i => i.propertyInfo.Name == propertyName);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "3c55446d8d7ff54e", + "equalIndicator/v1": "1e02e4b77fdc312f73c69ab5ef7b6968256edb7cb41fa234a2b21b00edfc65fb" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_SelectedBoss' coverage is below the threshold 50%", + "markdown": "Method `get_SelectedBoss` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 306, + "startColumn": 9, + "charOffset": 12684, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 304, + "startColumn": 1, + "charOffset": 12638, + "charLength": 132, + "snippet": { + "text": " public Enum? SelectedBoss\r\n {\r\n get => _selectedBoss;\r\n set => this.SetField(ref _selectedBoss, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0fa614607f809278", + "equalIndicator/v1": "1e2d6f1c7badd06dd3c172110ff52e3f459da32db69330d7a165717088bf0eed" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WndProc' coverage is below the threshold 50%", + "markdown": "Method `WndProc` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Hotkeys/GlobalHotKey.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 104, + "startColumn": 29, + "charOffset": 3257, + "charLength": 7, + "snippet": { + "text": "WndProc" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 102, + "startColumn": 1, + "charOffset": 3220, + "charLength": 121, + "snippet": { + "text": " }\r\n\r\n protected override void WndProc(ref Message windowMessage)\r\n {\r\n base.WndProc(ref windowMessage);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "6c43f4a1a84c471d", + "equalIndicator/v1": "1f5f4f818661f87d82c8474564c9d1da250bc083b2807c33d9961862b7f85f65" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'OnReset' coverage is below the threshold 50%", + "markdown": "Method `OnReset` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/EldenRingSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 146, + "startColumn": 18, + "charOffset": 4978, + "charLength": 7, + "snippet": { + "text": "OnReset" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 144, + "startColumn": 1, + "charOffset": 4952, + "charLength": 102, + "snippet": { + "text": " }\r\n\r\n private void OnReset(object sender, TimerPhase timerPhase)\r\n {\r\n ResetTimer();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5143695168c42509", + "equalIndicator/v1": "1f65cf28d398c3f3bda6e2a9b0a69c8feb8d4751eb99e67741b648cc687791c8" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'InternalReset' coverage is below the threshold 50%", + "markdown": "Method `InternalReset` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/BaseSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 72, + "startColumn": 18, + "charOffset": 2467, + "charLength": 13, + "snippet": { + "text": "InternalReset" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 70, + "startColumn": 1, + "charOffset": 2441, + "charLength": 133, + "snippet": { + "text": " }\r\n\r\n private void InternalReset(object sender, TimerPhase timerPhase)\r\n {\r\n _timerState = TimerState.WaitForStart;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "bc9040e205c1abc8", + "equalIndicator/v1": "1fb272bd66fb153f5454d18db51f80463476d36757facd52982912f14afadaa9" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'DarkSouls2.HierarchicalSplitViewModel' coverage is below the threshold 50%", + "markdown": "Class `DarkSouls2.HierarchicalSplitViewModel` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/HierarchicalViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 87, + "startColumn": 14, + "charOffset": 2756, + "charLength": 26, + "snippet": { + "text": "HierarchicalSplitViewModel" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 85, + "startColumn": 1, + "charOffset": 2681, + "charLength": 153, + "snippet": { + "text": " XmlInclude(typeof(Attribute)), \r\n XmlInclude(typeof(uint))]\r\npublic class HierarchicalSplitViewModel : ICustomNotifyPropertyChanged\r\n{\r\n [XmlIgnore]\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b3fe2b156561ae95", + "equalIndicator/v1": "1fcc3d749bba802871aa581eb6eced6af0d75e972f4d8c21aa6fbb1a5bf8e201" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetProcess' coverage is below the threshold 50%", + "markdown": "Method `GetProcess` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 89, + "startColumn": 21, + "charOffset": 3588, + "charLength": 10, + "snippet": { + "text": "GetProcess" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 87, + "startColumn": 1, + "charOffset": 3559, + "charLength": 201, + "snippet": { + "text": " }\r\n\r\n public Process? GetProcess() => _process;\r\n\r\n public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, \"darksoulsremastered\", InitPointers, ResetPointers);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4dc0a5ccf38b80ba", + "equalIndicator/v1": "1fcd445cfac6d048f6e98288fecd034e259aac19f9bf5c1172bba476d06cc610" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadInt64' coverage is below the threshold 50%", + "markdown": "Method `ReadInt64` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 209, + "startColumn": 17, + "charOffset": 5498, + "charLength": 9, + "snippet": { + "text": "ReadInt64" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 207, + "startColumn": 1, + "charOffset": 5473, + "charLength": 127, + "snippet": { + "text": " }\r\n\r\n public long ReadInt64(long? offset = null)\r\n {\r\n return BitConverter.ToInt64(ReadMemory(offset, 8), 0);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "68a60fc8027f67bd", + "equalIndicator/v1": "2058b10d2789974a7d3e153956ad776a057486861e04c022ab69b03d0bac9543" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_Version' coverage is below the threshold 50%", + "markdown": "Method `get_Version` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/VersionAttribute.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 23, + "startColumn": 29, + "charOffset": 939, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 21, + "startColumn": 1, + "charOffset": 849, + "charLength": 161, + "snippet": { + "text": "public class VersionAttribute(string version) : Attribute\r\n{\r\n public string Version { get; } = version;\r\n public Version GetVersion() => new(Version);\r\n}\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "eb076390cffc6108", + "equalIndicator/v1": "20a4b158ea55f419ef13bf90d0129c0cb4b9fed29278f40ec884265abbb259e5" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_ModuleMemorySize' coverage is below the threshold 50%", + "markdown": "Method `set_ModuleMemorySize` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Process/ProcessWrapperModule.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 27, + "startColumn": 40, + "charOffset": 1119, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 25, + "startColumn": 1, + "charOffset": 984, + "charLength": 224, + "snippet": { + "text": " public string FileName { get; set; } = null!;\r\n public IntPtr BaseAddress { get; set; }\r\n public int ModuleMemorySize { get; set; }\r\n\r\n public static ProcessWrapperModule FromProcessModule(ProcessModule module)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "21b7b88cde8d954a", + "equalIndicator/v1": "20e181dfee3361c5ff350eab2861a6d75545d13e465cd5f263adf8f6a85e17fa" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetInGameTimeMilliseconds' coverage is below the threshold 50%", + "markdown": "Method `GetInGameTimeMilliseconds` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/EldenRing.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 602, + "startColumn": 16, + "charOffset": 25077, + "charLength": 25, + "snippet": { + "text": "GetInGameTimeMilliseconds" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 600, + "startColumn": 1, + "charOffset": 25038, + "charLength": 108, + "snippet": { + "text": "\r\n #region Timeable\r\n public int GetInGameTimeMilliseconds()\r\n {\r\n return _igt.ReadInt32();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "062681b7acf40617", + "equalIndicator/v1": "20f313827bd161ae650cf84559c023da5592284613d764b5418699ca02e7e64f" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_VisibleItemSplit' coverage is below the threshold 50%", + "markdown": "Method `get_VisibleItemSplit` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 211, + "startColumn": 9, + "charOffset": 5942, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 209, + "startColumn": 1, + "charOffset": 5893, + "charLength": 143, + "snippet": { + "text": " public bool VisibleItemSplit\r\n {\r\n get => _visibleItemSplit;\r\n set => this.SetField(ref _visibleItemSplit, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "6b87b747e5c09298", + "equalIndicator/v1": "20fe1689e3e4570d9e1d438c9ab7f24de574c7cfbc2cdbd0ceea695246ad8dd7" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'StartTimer' coverage is below the threshold 50%", + "markdown": "Method `StartTimer` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls3Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 167, + "startColumn": 18, + "charOffset": 5194, + "charLength": 10, + "snippet": { + "text": "StartTimer" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 165, + "startColumn": 1, + "charOffset": 5168, + "charLength": 89, + "snippet": { + "text": " }\r\n\r\n private void StartTimer()\r\n {\r\n _timerState = TimerState.Running;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0558d241515ef772", + "equalIndicator/v1": "217067bde9e09c9bbd0536696e095a962c15b23c45d1b28b8b85edec64bb957c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_SelectedSplitType' coverage is below the threshold 50%", + "markdown": "Method `set_SelectedSplitType` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 300, + "startColumn": 9, + "charOffset": 12515, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 298, + "startColumn": 1, + "charOffset": 12464, + "charLength": 171, + "snippet": { + "text": " {\r\n get => _selectedSplitType;\r\n set => this.SetField(ref _selectedSplitType, value);\r\n }\r\n private SplitType _selectedSplitType = SplitType.Boss;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "8acefccdf748f00b", + "equalIndicator/v1": "222b2c71f76280bbfa0e500e45c7301ae5165a822996db2737b7d7a51bc1d871" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ResetPointers' coverage is below the threshold 50%", + "markdown": "Method `ResetPointers` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 129, + "startColumn": 18, + "charOffset": 5528, + "charLength": 13, + "snippet": { + "text": "ResetPointers" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 127, + "startColumn": 1, + "charOffset": 5498, + "charLength": 80, + "snippet": { + "text": " }\r\n \r\n private void ResetPointers()\r\n {\r\n _gameMan.Clear();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4d94e2ccd70ee909", + "equalIndicator/v1": "224d9d213a516a88d21b3974ab0502874c2d69afa7fc10f956337ff2d4b02877" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_Y' coverage is below the threshold 50%", + "markdown": "Method `set_Y` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/PositionViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 63, + "startColumn": 9, + "charOffset": 1760, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 61, + "startColumn": 1, + "charOffset": 1717, + "charLength": 97, + "snippet": { + "text": " {\r\n get => Position.Y;\r\n set => this.SetField(ref Position.Y, value);\r\n }\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4574a1e02ff2f7e0", + "equalIndicator/v1": "226dbda77e7c3b2401192aa2a1a4f159556246d0aa77a30b1117f3e963e52690" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_Children' coverage is below the threshold 50%", + "markdown": "Method `set_Children` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/SplitViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 36, + "startColumn": 81, + "charOffset": 1396, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 34, + "startColumn": 1, + "charOffset": 1277, + "charLength": 176, + "snippet": { + "text": " private TimingType _timingType;\r\n\r\n public ObservableCollection Children { get; set; } = [];\r\n\r\n #region ICustomNotifyPropertyChanged\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b99a902293d534e4", + "equalIndicator/v1": "2292ef83cf15ea93bb51999a655782b87baded31c9178d804a24b6c5cdfb8c6a" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteInGameTimeMilliseconds' coverage is below the threshold 50%", + "markdown": "Method `WriteInGameTimeMilliseconds` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/EldenRing.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 606, + "startColumn": 17, + "charOffset": 25170, + "charLength": 27, + "snippet": { + "text": "WriteInGameTimeMilliseconds" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 604, + "startColumn": 1, + "charOffset": 25113, + "charLength": 150, + "snippet": { + "text": " return _igt.ReadInt32();\r\n }\r\n public void WriteInGameTimeMilliseconds(int milliseconds)\r\n {\r\n _igt.WriteInt32(milliseconds);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "613bc5fc612d5e44", + "equalIndicator/v1": "22f4acf6878968ee641a717895a533907be8bcfeb4aac14b5573985efcc1ae3e" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'Dispose' coverage is below the threshold 50%", + "markdown": "Method `Dispose` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/SoulComponent.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 214, + "startColumn": 17, + "charOffset": 7914, + "charLength": 7, + "snippet": { + "text": "Dispose" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 212, + "startColumn": 1, + "charOffset": 7825, + "charLength": 130, + "snippet": { + "text": " public float PaddingLeft => 0;\r\n public float PaddingRight => 0;\r\n public void Dispose()\r\n {\r\n Dispose(true);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5cf431b0d3d16263", + "equalIndicator/v1": "22fae90723fd19f17f741a62ecaadef832283ef779fba67716e55f12cb2ec747" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'Dispose' coverage is below the threshold 50%", + "markdown": "Method `Dispose` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls2Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 74, + "startColumn": 28, + "charOffset": 2294, + "charLength": 7, + "snippet": { + "text": "Dispose" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 72, + "startColumn": 1, + "charOffset": 2258, + "charLength": 91, + "snippet": { + "text": " }\r\n\r\n protected virtual void Dispose(bool disposing)\r\n {\r\n if (disposing)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ca23a882eb2021cf", + "equalIndicator/v1": "23807c28b9adc03ea47fe5133fcb53000e5e3fb1b53d10709294d4a5659e5461" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'InvokePropertyChanged' coverage is below the threshold 50%", + "markdown": "Method `InvokePropertyChanged` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/HierarchicalViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 105, + "startColumn": 17, + "charOffset": 3231, + "charLength": 21, + "snippet": { + "text": "InvokePropertyChanged" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 103, + "startColumn": 1, + "charOffset": 3149, + "charLength": 216, + "snippet": { + "text": " public event PropertyChangedEventHandler? PropertyChanged;\r\n\r\n public void InvokePropertyChanged(string propertyName)\r\n {\r\n PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "88cf5548d9d9659f", + "equalIndicator/v1": "23c02177c73a22f5991fde33f08ec3d78bb6463e5d5f55397fd95e6351bff2ee" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_IsOk' coverage is below the threshold 50%", + "markdown": "Method `get_IsOk` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Result.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 219, + "startColumn": 24, + "charOffset": 5122, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 217, + "startColumn": 1, + "charOffset": 5035, + "charLength": 144, + "snippet": { + "text": " private readonly TOk _ok;\r\n private readonly TErr _err;\r\n public bool IsOk { get; protected set; }\r\n public bool IsErr => !IsOk;\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a0e8a85c2bf6b358", + "equalIndicator/v1": "241077a3220b1ecc74c942784fbe4341519d24d7d77a75995d88ca031a8e9eaa" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_SplitsViewModel' coverage is below the threshold 50%", + "markdown": "Method `set_SplitsViewModel` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/SplitsTree.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 39, + "startColumn": 9, + "charOffset": 1554, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 37, + "startColumn": 1, + "charOffset": 1462, + "charLength": 164, + "snippet": { + "text": " {\r\n get =>(SplitsViewModel)GetValue(SplitsViewModelDependencyProperty);\r\n set => SetValue(SplitsViewModelDependencyProperty, value);\r\n }\r\n \r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "554882ef0c8dd978", + "equalIndicator/v1": "245a492b799dbf966d57e2537e39cbb55bdb812569a66d55b79dd3e7304a167e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_NewSplitAddEnabled' coverage is below the threshold 50%", + "markdown": "Method `set_NewSplitAddEnabled` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 252, + "startColumn": 9, + "charOffset": 8817, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 250, + "startColumn": 1, + "charOffset": 8765, + "charLength": 152, + "snippet": { + "text": " {\r\n get => _newSplitAddEnabled;\r\n set => this.SetField(ref _newSplitAddEnabled, value);\r\n }\r\n private bool _newSplitAddEnabled;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "22112922923717b1", + "equalIndicator/v1": "24ea495a1984cde7f98e341fb130a87e199ee30cf81fa67c502f768226b81d4e" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'TreeView_OnSelectedItemChanged' coverage is below the threshold 50%", + "markdown": "Method `TreeView_OnSelectedItemChanged` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/SplitsTree.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 42, + "startColumn": 18, + "charOffset": 1644, + "charLength": 30, + "snippet": { + "text": "TreeView_OnSelectedItemChanged" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 40, + "startColumn": 1, + "charOffset": 1614, + "charLength": 167, + "snippet": { + "text": " }\r\n \r\n private void TreeView_OnSelectedItemChanged(object sender, RoutedPropertyChangedEventArgs e)\r\n {\r\n if (sender is TreeView treeView)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5efc4c3655a543c4", + "equalIndicator/v1": "24fe209fe1208efd4ba28101a4ebfb57ae3e7c6ee3fe004fa942bf6ceb692e84" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetTextTables' coverage is below the threshold 50%", + "markdown": "Method `GetTextTables` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/ParamReader.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 28, + "startColumn": 40, + "charOffset": 1086, + "charLength": 13, + "snippet": { + "text": "GetTextTables" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 26, + "startColumn": 1, + "charOffset": 1011, + "charLength": 178, + "snippet": { + "text": "public static class ParamReader\r\n{\r\n public static List GetTextTables(Pointer textBasePointer)\r\n {\r\n var rowCount = textBasePointer.ReadUInt16(0xc);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c34cb53c4fef4464", + "equalIndicator/v1": "25703a7dd1ebf664c190ee39b980b07f1e844a867e23523460adb1dcee9e7754" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetSaveFileGameTimeMilliseconds' coverage is below the threshold 50%", + "markdown": "Method `GetSaveFileGameTimeMilliseconds` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 307, + "startColumn": 16, + "charOffset": 11108, + "charLength": 31, + "snippet": { + "text": "GetSaveFileGameTimeMilliseconds" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 305, + "startColumn": 1, + "charOffset": 11084, + "charLength": 152, + "snippet": { + "text": " }\r\n\r\n public int GetSaveFileGameTimeMilliseconds(string path, int slot)\r\n {\r\n return Sl2Reader.GetSaveFileIgt(path, slot, false) ?? 0;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c825708132511550", + "equalIndicator/v1": "25e2690d9dd263adb22bd42151a5b935d3298fb649dd78b10b8fa625ba93b0ed" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_TimingType' coverage is below the threshold 50%", + "markdown": "Method `get_TimingType` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/SplitViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 31, + "startColumn": 9, + "charOffset": 1194, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 29, + "startColumn": 1, + "charOffset": 1145, + "charLength": 131, + "snippet": { + "text": " public TimingType TimingType\r\n {\r\n get => _timingType;\r\n set => this.SetField(ref _timingType, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e1b30795171a8b1b", + "equalIndicator/v1": "2699e83bd6fbe2f14cb00c72c4a8ce240af1a47a83fd93a4a4e2ade22040638c" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_Path' coverage is below the threshold 50%", + "markdown": "Method `get_Path` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 133, + "startColumn": 26, + "charOffset": 3713, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 131, + "startColumn": 1, + "charOffset": 3644, + "charLength": 139, + "snippet": { + "text": "\r\n //Debug representation, shows in IDE\r\n public string Path { get; private set; } = null!;\r\n\r\n public override string ToString()\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "967c7d2155f2802d", + "equalIndicator/v1": "269a976a53707e2ba0b42a88fb1199dddc31678166918e81e66f2cc30956a469" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'EldenRing.EldenRingControl' coverage is below the threshold 50%", + "markdown": "Class `EldenRing.EldenRingControl` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 26, + "startColumn": 22, + "charOffset": 1030, + "charLength": 16, + "snippet": { + "text": "EldenRingControl" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 24, + "startColumn": 1, + "charOffset": 948, + "charLength": 147, + "snippet": { + "text": "/// Interaction logic for UserControl1.xaml\r\n/// \r\npublic partial class EldenRingControl : UserControl\r\n{\r\n public EldenRingControl()\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "07437de59fb2e870", + "equalIndicator/v1": "269d2f0c1e5363c41e17cbae8f985f304017aeae5868424cdde00b47ac65db63" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetPosition' coverage is below the threshold 50%", + "markdown": "Method `GetPosition` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 170, + "startColumn": 21, + "charOffset": 6692, + "charLength": 11, + "snippet": { + "text": "GetPosition" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 168, + "startColumn": 1, + "charOffset": 6603, + "charLength": 267, + "snippet": { + "text": " public int GetCurrentSaveSlot() => _gameMan.ReadInt32(0xA70);\r\n\r\n public Vector3f GetPosition() => new(_playerIns.ReadFloat(0xc50), _playerIns.ReadFloat(0xC58), _playerIns.ReadFloat(0xC54));\r\n\r\n public int GetPlayerHealth() => _playerIns.ReadInt32(0x2d4) ;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "3408c3cd273fe799", + "equalIndicator/v1": "27329a63c65b5602af85ab004a48ad1a4586934be7eb399d5b854cc9e8ac2ac7" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'BoyerMooreSearch' coverage is below the threshold 50%", + "markdown": "Method `BoyerMooreSearch` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 230, + "startColumn": 30, + "charOffset": 8876, + "charLength": 16, + "snippet": { + "text": "BoyerMooreSearch" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 228, + "startColumn": 1, + "charOffset": 8780, + "charLength": 198, + "snippet": { + "text": " /// Will return the first match it finds.\r\n /// \r\n public static List BoyerMooreSearch(this byte[] haystack, byte?[] needle)\r\n {\r\n var result = new List();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "1aeb53a57d609bd7", + "equalIndicator/v1": "273e7c8cabe96aaa1ed9c9f7e2ddf645fd60fd03735061474cba01f0bb4953a9" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_Level' coverage is below the threshold 50%", + "markdown": "Method `set_Level` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splits/Sekiro/Attribute.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 37, + "startColumn": 9, + "charOffset": 1354, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 35, + "startColumn": 1, + "charOffset": 1315, + "charLength": 112, + "snippet": { + "text": " {\r\n get => _level;\r\n set => this.SetField(ref _level, value);\r\n }\r\n private int _level;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "90c6712ceeed4e38", + "equalIndicator/v1": "2765e169be4f80b65e0cdaee1a2a4184b32f2c9033e20b07ec5cc6621edd49e8" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_Id' coverage is below the threshold 50%", + "markdown": "Method `set_Id` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/ParamTableEntry.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 21, + "startColumn": 26, + "charOffset": 901, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 19, + "startColumn": 1, + "charOffset": 843, + "charLength": 149, + "snippet": { + "text": "public class ParamTableEntry\r\n{\r\n public int Id { get; set; }\r\n public uint DataOffset { get; set; }\r\n public uint NameOffset { get; set; }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "3ed69a9b260f2457", + "equalIndicator/v1": "27728d5bfbbbae096e93db15e868a53098280807ce36a2def61b77eb3beb245f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'EldenRing.HierarchicalSplitViewModel' coverage is below the threshold 50%", + "markdown": "Class `EldenRing.HierarchicalSplitViewModel` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/SplitViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 83, + "startColumn": 14, + "charOffset": 2669, + "charLength": 26, + "snippet": { + "text": "HierarchicalSplitViewModel" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 81, + "startColumn": 1, + "charOffset": 2596, + "charLength": 151, + "snippet": { + "text": "[XmlInclude(typeof(Item))]\r\n[XmlInclude(typeof(Position))]\r\npublic class HierarchicalSplitViewModel : ICustomNotifyPropertyChanged\r\n{\r\n [XmlIgnore]\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d05b16d4dbc68073", + "equalIndicator/v1": "2788df4135da2749919107f4a903a73ae18c8760aede2d425cd0d586e34db2c5" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_Area' coverage is below the threshold 50%", + "markdown": "Method `get_Area` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/BossViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 48, + "startColumn": 9, + "charOffset": 1452, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 46, + "startColumn": 1, + "charOffset": 1413, + "charLength": 109, + "snippet": { + "text": " public string Area\r\n {\r\n get => _area;\r\n set => this.SetField(ref _area, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7998dd5f7a2abc69", + "equalIndicator/v1": "2794a5c17adacc28feb9755a66e5352b8d2382e4d199ddac3a0ae2d8e332dd16" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'Update' coverage is below the threshold 50%", + "markdown": "Method `Update` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/EldenRingSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 70, + "startColumn": 36, + "charOffset": 2226, + "charLength": 6, + "snippet": { + "text": "Update" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 68, + "startColumn": 1, + "charOffset": 2182, + "charLength": 119, + "snippet": { + "text": " }\r\n\r\n public ResultErr Update(MainViewModel mainViewModel)\r\n {\r\n //Settings from the UI\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "436df82ed98804c1", + "equalIndicator/v1": "27a10f0927fc8ba24f5cf20f2a46aeecd92c77607a4acae7d595e7921c6f0663" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_NewSplitTimingType' coverage is below the threshold 50%", + "markdown": "Method `get_NewSplitTimingType` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 62, + "startColumn": 9, + "charOffset": 2023, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 60, + "startColumn": 1, + "charOffset": 1965, + "charLength": 110, + "snippet": { + "text": " public TimingType? NewSplitTimingType\r\n {\r\n get => _newSplitTimingType;\r\n set\r\n {\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f4b38d2fd337d14c", + "equalIndicator/v1": "27de2a7c4f5376732ba4102793b115276f8760c45005751f5610ba5a1d5da6ab" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetAttribute' coverage is below the threshold 50%", + "markdown": "Method `GetAttribute` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/DarkSouls1.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 31, + "startColumn": 16, + "charOffset": 1194, + "charLength": 12, + "snippet": { + "text": "GetAttribute" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 29, + "startColumn": 1, + "charOffset": 1076, + "charLength": 379, + "snippet": { + "text": " private IDarkSouls1? _darkSouls1;\r\n public Process? GetProcess() => _darkSouls1?.GetProcess();\r\n public int GetAttribute(Attribute attribute) => _darkSouls1?.GetAttribute(attribute) ?? 0;\r\n public bool ReadEventFlag(uint eventFlagId) => _darkSouls1?.ReadEventFlag(eventFlagId) ?? false;\r\n public bool IsWarpRequested() => _darkSouls1?.IsWarpRequested() ?? false;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0f8d4d09c5bbc66c", + "equalIndicator/v1": "27ec8c4b3119082e136e6eafb7de4b03732874d21d9b5ab0d3bec03533b6bc35" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'DarkSouls1.Remastered' coverage is below the threshold 50%", + "markdown": "Class `DarkSouls1.Remastered` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 49, + "startColumn": 14, + "charOffset": 2131, + "charLength": 10, + "snippet": { + "text": "Remastered" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 47, + "startColumn": 1, + "charOffset": 2082, + "charLength": 238, + "snippet": { + "text": "namespace SoulMemory.DarkSouls1;\r\n\r\npublic class Remastered : IDarkSouls1\r\n{\r\n #region Refresh/init/reset ================================================================================================================================\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "828d8a471845e829", + "equalIndicator/v1": "28094814e8a4393cd11b02ac6f48c033712771bcb52fed5c379ef3ff28207b45" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetTreeBuilder' coverage is below the threshold 50%", + "markdown": "Method `GetTreeBuilder` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 77, + "startColumn": 42, + "charOffset": 2903, + "charLength": 14, + "snippet": { + "text": "GetTreeBuilder" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 75, + "startColumn": 1, + "charOffset": 2780, + "charLength": 207, + "snippet": { + "text": " public ResultErr TryRefresh() => _armoredCore6.TryRefresh();\r\n\r\n public SoulMemory.Memory.TreeBuilder GetTreeBuilder()\r\n {\r\n var builder = new SoulMemory.Memory.TreeBuilder();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a4f0c78203fd30ab", + "equalIndicator/v1": "28487183d6c7d58c4da1fef2263c5785878866118a33e21c338ba71515f75fcc" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ConvertBack' coverage is below the threshold 50%", + "markdown": "Method `ConvertBack` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Converters/EnumValueEnumParameterConverter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 35, + "startColumn": 19, + "charOffset": 1348, + "charLength": 11, + "snippet": { + "text": "ConvertBack" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 33, + "startColumn": 1, + "charOffset": 1321, + "charLength": 146, + "snippet": { + "text": " }\r\n\r\n public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)\r\n {\r\n return parameter!;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0a3f757d80916865", + "equalIndicator/v1": "2850724a44472d1c16f4a03aa0d2fa54989171d3eb2b699ccc038c822f3dfd72" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'SetViewModel' coverage is below the threshold 50%", + "markdown": "Method `SetViewModel` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls2Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 49, + "startColumn": 17, + "charOffset": 1790, + "charLength": 12, + "snippet": { + "text": "SetViewModel" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 47, + "startColumn": 1, + "charOffset": 1765, + "charLength": 115, + "snippet": { + "text": " }\r\n\r\n public void SetViewModel(MainViewModel mainViewModel)\r\n {\r\n _mainViewModel = mainViewModel;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "1327b30d4f422efe", + "equalIndicator/v1": "285c209b1f565cca11952c87e45cdb5d6b5321d5bf27217b97a04bbfeb69702a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'IsNullPtr' coverage is below the threshold 50%", + "markdown": "Method `IsNullPtr` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 189, + "startColumn": 17, + "charOffset": 5058, + "charLength": 9, + "snippet": { + "text": "IsNullPtr" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 187, + "startColumn": 1, + "charOffset": 5033, + "charLength": 79, + "snippet": { + "text": " }\r\n\r\n public bool IsNullPtr()\r\n {\r\n return GetAddress() == 0;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "8a187a14cfff6d47", + "equalIndicator/v1": "289e865421809f1d451b8f6c011947d003f89f01ce54278ce6c0dd11029368e7" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetAddress' coverage is below the threshold 50%", + "markdown": "Method `GetAddress` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 194, + "startColumn": 17, + "charOffset": 5138, + "charLength": 10, + "snippet": { + "text": "GetAddress" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 192, + "startColumn": 1, + "charOffset": 5113, + "charLength": 86, + "snippet": { + "text": " }\r\n\r\n public long GetAddress()\r\n {\r\n return ResolveOffsets(Offsets);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b3b06f8f02a0dd14", + "equalIndicator/v1": "2916c74551723a8d09a3949ce813999606dad725d4efad0efe02156f00f50bed" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ToString' coverage is below the threshold 50%", + "markdown": "Method `ToString` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/PointerNode.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 42, + "startColumn": 28, + "charOffset": 1354, + "charLength": 8, + "snippet": { + "text": "ToString" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 40, + "startColumn": 1, + "charOffset": 1280, + "charLength": 98, + "snippet": { + "text": " public List Pointers = [];\r\n\r\n public override string ToString() => Name;\r\n}\r\n" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a4d90d73044650b9", + "equalIndicator/v1": "292360a4da3be22e8e759a9d92adae99a9aa05246b1aad4b65b741604831642b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ToString' coverage is below the threshold 50%", + "markdown": "Method `ToString` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 66, + "startColumn": 28, + "charOffset": 2163, + "charLength": 8, + "snippet": { + "text": "ToString" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 64, + "startColumn": 1, + "charOffset": 2127, + "charLength": 79, + "snippet": { + "text": " }\r\n\r\n public override string ToString()\r\n {\r\n //Populate path\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9fc5890266d4d5c5", + "equalIndicator/v1": "292db43683f73ed1a7ebeb4bbc615a874d2d10bbd3a2d1dad45c5d55a4f5adf9" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'TryResolvePointers' coverage is below the threshold 50%", + "markdown": "Method `TryResolvePointers` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerTreeBuilder.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 63, + "startColumn": 36, + "charOffset": 2374, + "charLength": 18, + "snippet": { + "text": "TryResolvePointers" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 61, + "startColumn": 1, + "charOffset": 2222, + "charLength": 306, + "snippet": { + "text": " /// Resolve pointers to their correct address by scanning for patterns in a running process\r\n /// \r\n public ResultErr TryResolvePointers(IMemory memory, long baseAddress, int memorySize, bool is64Bit)\r\n {\r\n var bytes = memory.ReadBytes(baseAddress, memorySize);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c3cac61dfbe7b628", + "equalIndicator/v1": "29535a2f101818d8183b0250a779cf1991e3a92af05d4881de67c73ea32ce049" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ResolveSplitTiming' coverage is below the threshold 50%", + "markdown": "Method `ResolveSplitTiming` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls3Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 261, + "startColumn": 18, + "charOffset": 8528, + "charLength": 18, + "snippet": { + "text": "ResolveSplitTiming" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 259, + "startColumn": 1, + "charOffset": 8502, + "charLength": 92, + "snippet": { + "text": " }\r\n\r\n private void ResolveSplitTiming(Split s)\r\n {\r\n switch (s.TimingType)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a4b5fed0678b0f5f", + "equalIndicator/v1": "2a1e42633308ffab08d66689296ded9e55393a90806622cc25e51a7278157a6d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'UpdateTimer' coverage is below the threshold 50%", + "markdown": "Method `UpdateTimer` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/EldenRingSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 173, + "startColumn": 17, + "charOffset": 5660, + "charLength": 11, + "snippet": { + "text": "UpdateTimer" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 171, + "startColumn": 1, + "charOffset": 5640, + "charLength": 135, + "snippet": { + "text": "\r\n\r\n public void UpdateTimer(bool startAutomatically)\r\n {\r\n //Allow updates from the UI only when a run isn't in progress\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ed8ad5cfcdefece9", + "equalIndicator/v1": "2a5cec9c1be5c11a911fbf4b794392a5a79d2227bfd8186c35eb7e6697aeb80d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ToString' coverage is below the threshold 50%", + "markdown": "Method `ToString` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/BoolDescriptionViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 37, + "startColumn": 28, + "charOffset": 1288, + "charLength": 8, + "snippet": { + "text": "ToString" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 35, + "startColumn": 1, + "charOffset": 1233, + "charLength": 115, + "snippet": { + "text": " private bool _value;\r\n\r\n public override string ToString()\r\n {\r\n return $\"{Value} {Description}\";\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "fb62065a1e514700", + "equalIndicator/v1": "2acb225e8a474d229ac6b409435ece174525f3676dd72fbd8521f5c48ccb379e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_Category' coverage is below the threshold 50%", + "markdown": "Method `get_Category` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 488, + "startColumn": 9, + "charOffset": 15242, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 486, + "startColumn": 1, + "charOffset": 15197, + "charLength": 123, + "snippet": { + "text": " public Category Category\r\n {\r\n get => _category;\r\n set => this.SetField(ref _category, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "216a3089c304f2f7", + "equalIndicator/v1": "2ae312d94e19437f4fe251e3f2590aab829230b0e5762166ad8d8ed07daa0a18" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'UpdateAutoSplitter' coverage is below the threshold 50%", + "markdown": "Method `UpdateAutoSplitter` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/ArmoredCore6Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 74, + "startColumn": 18, + "charOffset": 2602, + "charLength": 18, + "snippet": { + "text": "UpdateAutoSplitter" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 72, + "startColumn": 1, + "charOffset": 2540, + "charLength": 138, + "snippet": { + "text": " private List _splits = [];\r\n \r\n private void UpdateAutoSplitter()\r\n {\r\n if (_timerState != TimerState.Running)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f3b6b471f05f975e", + "equalIndicator/v1": "2af17f053078ae9f6f6ed843273d59973c4014260308b52b42137624c9eb655e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_Bosses' coverage is below the threshold 50%", + "markdown": "Method `get_Bosses` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 184, + "startColumn": 9, + "charOffset": 7429, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 182, + "startColumn": 1, + "charOffset": 7349, + "charLength": 236, + "snippet": { + "text": " public ObservableCollection> Bosses\r\n {\r\n get => (ObservableCollection>)GetValue(BossesDependencyProperty);\r\n set => SetValue(BossesDependencyProperty, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e932e91cc0137d3a", + "equalIndicator/v1": "2afffb1f5ccbbe5cb1fa772a41324408ab5ac793eaa79718f95a59f92ba0e92f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadDouble' coverage is below the threshold 50%", + "markdown": "Method `ReadDouble` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 93, + "startColumn": 26, + "charOffset": 2997, + "charLength": 10, + "snippet": { + "text": "ReadDouble" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 91, + "startColumn": 1, + "charOffset": 2963, + "charLength": 157, + "snippet": { + "text": " }\r\n\r\n public static double ReadDouble(this IMemory memory, long offset)\r\n {\r\n return BitConverter.ToDouble(memory.ReadBytes(offset, 8), 0);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "53c1209b6baa8487", + "equalIndicator/v1": "2b4635a1ce77c7193b8e6c887cd1d843bb9c9fb21219b69e1bc53332297eb70b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetInGameTimeMilliseconds' coverage is below the threshold 50%", + "markdown": "Method `GetInGameTimeMilliseconds` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls2/DarkSouls2.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 27, + "startColumn": 16, + "charOffset": 1016, + "charLength": 25, + "snippet": { + "text": "GetInGameTimeMilliseconds" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 25, + "startColumn": 1, + "charOffset": 959, + "charLength": 194, + "snippet": { + "text": "public class DarkSouls2 : IDarkSouls2\r\n{\r\n public int GetInGameTimeMilliseconds() => 0;\r\n private IDarkSouls2? _darkSouls2;\r\n public Process? GetProcess() => _darkSouls2?.GetProcess();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "3090089fdfc3fdbd", + "equalIndicator/v1": "2bab9dc2e3fbbdd0404ca990158c67c97f2364236d308792bad6373a99c04eeb" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'DarkSouls2.DarkSouls2Control' coverage is below the threshold 50%", + "markdown": "Class `DarkSouls2.DarkSouls2Control` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2Control.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 27, + "startColumn": 22, + "charOffset": 1075, + "charLength": 17, + "snippet": { + "text": "DarkSouls2Control" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 25, + "startColumn": 1, + "charOffset": 988, + "charLength": 154, + "snippet": { + "text": "/// Interaction logic for DarkSouls3Control.xaml\r\n/// \r\npublic partial class DarkSouls2Control : UserControl\r\n{\r\n public DarkSouls2Control()\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "767d3493ed3da846", + "equalIndicator/v1": "2bdce1c183e95d88193574d94c0da947833723c5ee5ac10527e1d9b12a5a1e7e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteDouble' coverage is below the threshold 50%", + "markdown": "Method `WriteDouble` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 164, + "startColumn": 24, + "charOffset": 5140, + "charLength": 11, + "snippet": { + "text": "WriteDouble" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 162, + "startColumn": 1, + "charOffset": 5108, + "charLength": 165, + "snippet": { + "text": " }\r\n\r\n public static void WriteDouble(this IMemory memory, long offset, double value)\r\n {\r\n memory.WriteBytes(offset, BitConverter.GetBytes(value));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "cabf598dc8b3542f", + "equalIndicator/v1": "2be23899d36cf1fc6ff01df74b0130aac2741dcde84f951fa8d432fdec155e28" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_Message' coverage is below the threshold 50%", + "markdown": "Method `get_Message` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/RefreshError.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 47, + "startColumn": 29, + "charOffset": 1525, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 45, + "startColumn": 1, + "charOffset": 1448, + "charLength": 137, + "snippet": { + "text": "\r\n public RefreshErrorReason Reason { get; }\r\n public string Message { get; } = null!;\r\n public Exception? Exception { get; }\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "79bae411a81d7d1e", + "equalIndicator/v1": "2c26eef9ecca3f9af9c9b033581da13808e97ee991e21be8a7281e6690cb8abd" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetInGameTimeMilliseconds' coverage is below the threshold 50%", + "markdown": "Method `GetInGameTimeMilliseconds` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 164, + "startColumn": 16, + "charOffset": 6478, + "charLength": 25, + "snippet": { + "text": "GetInGameTimeMilliseconds" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 162, + "startColumn": 1, + "charOffset": 6364, + "charLength": 236, + "snippet": { + "text": " public int GetAttribute(Attribute attribute) => _playerGameData.ReadInt32((long)attribute);\r\n\r\n public int GetInGameTimeMilliseconds() => _gameDataMan.ReadInt32(0x68);\r\n\r\n public int NgCount() => _gameDataMan.ReadInt32(0x3C);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "52973f32d102e639", + "equalIndicator/v1": "2c2a4aa5bf8ef207a5e7687e7411342f63664f60d94031689812e729597de2cf" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetPosition' coverage is below the threshold 50%", + "markdown": "Method `GetPosition` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls2/DarkSouls2.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 30, + "startColumn": 21, + "charOffset": 1174, + "charLength": 11, + "snippet": { + "text": "GetPosition" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 28, + "startColumn": 1, + "charOffset": 1051, + "charLength": 355, + "snippet": { + "text": " private IDarkSouls2? _darkSouls2;\r\n public Process? GetProcess() => _darkSouls2?.GetProcess();\r\n public Vector3f GetPosition() => _darkSouls2?.GetPosition() ?? new Vector3f();\r\n public bool IsLoading() => _darkSouls2?.IsLoading() ?? false;\r\n public bool ReadEventFlag(uint eventFlagId) => _darkSouls2?.ReadEventFlag(eventFlagId) ?? false;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "467dc32d40e9f9df", + "equalIndicator/v1": "2cbc39f09f4b288a753d66110df85a2ca8e772a2caeec59ab8d49074ed1048f8" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'TextBoxBase_OnTextChanged' coverage is below the threshold 50%", + "markdown": "Method `TextBoxBase_OnTextChanged` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 57, + "startColumn": 18, + "charOffset": 1875, + "charLength": 25, + "snippet": { + "text": "TextBoxBase_OnTextChanged" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 55, + "startColumn": 1, + "charOffset": 1849, + "charLength": 186, + "snippet": { + "text": " }\r\n\r\n private void TextBoxBase_OnTextChanged(object sender, TextChangedEventArgs e)\r\n {\r\n if (sender is TextBox textBox && uint.TryParse(textBox.Text, out uint result))\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c92867cb052331c1", + "equalIndicator/v1": "2d18c2ddf15f01990bfe788b1ff8c90e6c38f98cbf3e45eeac106a23a6768a96" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Constructor 'Result' coverage is below the threshold 50%", + "markdown": "Constructor `Result` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Result.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 229, + "startColumn": 13, + "charOffset": 5321, + "charLength": 6, + "snippet": { + "text": "Result" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 227, + "startColumn": 1, + "charOffset": 5300, + "charLength": 65, + "snippet": { + "text": " }\r\n\r\n private Result(TOk ok)\r\n {\r\n IsOk = true;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "1e85b8871c71438a", + "equalIndicator/v1": "2d5fd2279f07bf3df6c2f004c17197a3963697039a89d0f741f6c69420c6286c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'EnableHud' coverage is below the threshold 50%", + "markdown": "Method `EnableHud` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/EldenRing.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 289, + "startColumn": 17, + "charOffset": 10237, + "charLength": 9, + "snippet": { + "text": "EnableHud" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 287, + "startColumn": 1, + "charOffset": 10203, + "charLength": 87, + "snippet": { + "text": " #endregion\r\n\r\n public void EnableHud()\r\n {\r\n var b = _hud.ReadByte();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f735a42cc14d180e", + "equalIndicator/v1": "2d971c63d6843f4891b02b43df5bf18d0ab7f2eec8a578ce2073436504a8dbc5" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_Value' coverage is below the threshold 50%", + "markdown": "Method `set_Value` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/BoolDescriptionViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 33, + "startColumn": 9, + "charOffset": 1184, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 31, + "startColumn": 1, + "charOffset": 1145, + "charLength": 113, + "snippet": { + "text": " {\r\n get => _value;\r\n set => this.SetField(ref _value, value);\r\n }\r\n private bool _value;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f26285c14fdd6b46", + "equalIndicator/v1": "2dda1016c704c308845699f1e2f6c8f929ac1404d68b5be2000943835fc279ca" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetAttribute' coverage is below the threshold 50%", + "markdown": "Method `GetAttribute` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls2/vanilla.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 97, + "startColumn": 16, + "charOffset": 3350, + "charLength": 12, + "snippet": { + "text": "GetAttribute" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 95, + "startColumn": 1, + "charOffset": 3326, + "charLength": 117, + "snippet": { + "text": " }\r\n\r\n public int GetAttribute(Attribute attribute)\r\n {\r\n var offset = _attributeOffsets[attribute];\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "afa2dc9e6c72269a", + "equalIndicator/v1": "2e1ff6b1f898a24471c03f095d588fa53d5e67ec17fa49875d5e543719045be2" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_Id' coverage is below the threshold 50%", + "markdown": "Method `set_Id` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/BaseParam.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 95, + "startColumn": 26, + "charOffset": 3687, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 93, + "startColumn": 1, + "charOffset": 3653, + "charLength": 85, + "snippet": { + "text": " }\r\n\r\n public int Id { get; set; }\r\n\r\n public readonly Pointer BasePointer;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9c9d0de81bd9de18", + "equalIndicator/v1": "2ed30946b7f0d640284cea6ecacef81318d3d48256a0ed4942eceb967e8ee8fe" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_IsOk' coverage is below the threshold 50%", + "markdown": "Method `get_IsOk` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Result.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 52, + "startColumn": 24, + "charOffset": 1694, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 50, + "startColumn": 1, + "charOffset": 1653, + "charLength": 98, + "snippet": { + "text": " #endregion\r\n\r\n public bool IsOk { get; protected set; }\r\n public bool IsErr => !IsOk;\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "627bce8f9b99e7c5", + "equalIndicator/v1": "2ef85863f0ecf36520d47b51daa34c68de811c18baa1fb4bedb70a15288fde50" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetProcess' coverage is below the threshold 50%", + "markdown": "Method `GetProcess` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls2/scholar.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 34, + "startColumn": 21, + "charOffset": 1489, + "charLength": 10, + "snippet": { + "text": "GetProcess" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 32, + "startColumn": 1, + "charOffset": 1306, + "charLength": 395, + "snippet": { + "text": "\r\n #region Refresh/init/reset ================================================================================================================================\r\n public Process? GetProcess() => _process;\r\n public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, \"darksoulsii\", InitPointers, ResetPointers);\r\n public int GetInGameTimeMilliseconds() => 0;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "2bca479e890fa223", + "equalIndicator/v1": "307a18625faac1bd53efd528561abb519a4f84bda12427be4fe7719c0a18d3c0" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_NewSplitTimingType' coverage is below the threshold 50%", + "markdown": "Method `get_NewSplitTimingType` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 144, + "startColumn": 9, + "charOffset": 5652, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 142, + "startColumn": 1, + "charOffset": 5594, + "charLength": 110, + "snippet": { + "text": " public TimingType? NewSplitTimingType\r\n {\r\n get => _newSplitTimingType;\r\n set\r\n {\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "2aea8600773c4a37", + "equalIndicator/v1": "309782c9ff6ac9ae98ca2025177f92b3c1c17f6755a703ffb37f8df6a9a933df" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'SoulMemory.RefreshError' coverage is below the threshold 50%", + "markdown": "Class `SoulMemory.RefreshError` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/RefreshError.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 22, + "startColumn": 14, + "charOffset": 882, + "charLength": 12, + "snippet": { + "text": "RefreshError" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 20, + "startColumn": 1, + "charOffset": 844, + "charLength": 124, + "snippet": { + "text": "namespace SoulMemory;\r\n\r\npublic class RefreshError\r\n{\r\n public static ResultErr FromException(Exception e)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "bd3e90bfe92b0ef8", + "equalIndicator/v1": "30a7b377f79aa566dd8fd66ea620e7db02520dd865520eb65ad2cb6fc7736e2b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteFloat' coverage is below the threshold 50%", + "markdown": "Method `WriteFloat` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 159, + "startColumn": 24, + "charOffset": 4976, + "charLength": 10, + "snippet": { + "text": "WriteFloat" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 157, + "startColumn": 1, + "charOffset": 4944, + "charLength": 163, + "snippet": { + "text": " }\r\n\r\n public static void WriteFloat(this IMemory memory, long offset, float value)\r\n {\r\n memory.WriteBytes(offset, BitConverter.GetBytes(value));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5a77eb4bfd554a5f", + "equalIndicator/v1": "30ce1633540729afbf1668e7b47357666170a25cd77509f2f03ee4571ae1484f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Constructor 'Split' coverage is below the threshold 50%", + "markdown": "Constructor `Split` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splits/Sekiro/Split.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 25, + "startColumn": 12, + "charOffset": 959, + "charLength": 5, + "snippet": { + "text": "Split" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 23, + "startColumn": 1, + "charOffset": 923, + "charLength": 141, + "snippet": { + "text": "internal class Split\r\n{\r\n public Split(TimingType timingType, SplitType splitType, object split)\r\n {\r\n TimingType = timingType;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a1cc70e87df18cff", + "equalIndicator/v1": "30e78b3222ffa487f046793c94ae06b84deff19c44b9ee66465640ac682243e9" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'UI.FlagTrackerWindow' coverage is below the threshold 50%", + "markdown": "Class `UI.FlagTrackerWindow` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/FlagTrackerWindow.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 22, + "startColumn": 22, + "charOffset": 915, + "charLength": 17, + "snippet": { + "text": "FlagTrackerWindow" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 20, + "startColumn": 1, + "charOffset": 864, + "charLength": 113, + "snippet": { + "text": "namespace SoulSplitter.UI;\r\n\r\npublic partial class FlagTrackerWindow : Window\r\n{\r\n public FlagTrackerWindow()\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "544d32587c7d5dd1", + "equalIndicator/v1": "310c19ac1bfdf8e11ec550827460de224ccd73c4a334174d59ecc41622c99ea8" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_PointerTreeBuilder' coverage is below the threshold 50%", + "markdown": "Method `set_PointerTreeBuilder` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Process/ProcessHook.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 30, + "startColumn": 76, + "charOffset": 1345, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 28, + "startColumn": 1, + "charOffset": 1215, + "charLength": 315, + "snippet": { + "text": " public event Action Exited = null!;\r\n\r\n public PointerTreeBuilder.PointerTreeBuilder PointerTreeBuilder { get; set; } = new();\r\n\r\n #region Refresh =================================================================================================================================================\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "2333ccb7fbd55913", + "equalIndicator/v1": "315095ebeeedb2a52ccd4efd3cfb948944d435089bf6f44d8af79ad32b73c300" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'PointerTreeBuilder.PointerNode' coverage is below the threshold 50%", + "markdown": "Class `PointerTreeBuilder.PointerNode` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerNode.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 22, + "startColumn": 14, + "charOffset": 945, + "charLength": 11, + "snippet": { + "text": "PointerNode" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 20, + "startColumn": 1, + "charOffset": 879, + "charLength": 126, + "snippet": { + "text": "namespace SoulMemory.MemoryV2.PointerTreeBuilder;\r\n\r\npublic class PointerNode\r\n{\r\n public PointerNodeType PointerNodeType;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "3325db18be313347", + "equalIndicator/v1": "31ed21b68d891bd9a950dfdda888a5500a5bed6ec39de77e9a64cda098eb732e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_Name' coverage is below the threshold 50%", + "markdown": "Method `get_Name` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/EnumFlagViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 51, + "startColumn": 9, + "charOffset": 1602, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 49, + "startColumn": 1, + "charOffset": 1563, + "charLength": 109, + "snippet": { + "text": " public string Name\r\n {\r\n get => _name;\r\n set => this.SetField(ref _name, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "258fa083bb4bf575", + "equalIndicator/v1": "320dd0c2cd7f5b57772c87303cf9ca991fce6660363982f96398dfd2b187cf59" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'Window_Closing' coverage is below the threshold 50%", + "markdown": "Method `Window_Closing` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/MainWindow.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 39, + "startColumn": 18, + "charOffset": 1342, + "charLength": 14, + "snippet": { + "text": "Window_Closing" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 37, + "startColumn": 1, + "charOffset": 1281, + "charLength": 148, + "snippet": { + "text": "\r\n public bool WindowShouldHide = true;\r\n private void Window_Closing(object sender, CancelEventArgs e)\r\n {\r\n if (WindowShouldHide)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "183912ad82b55214", + "equalIndicator/v1": "321d1bd3cdafddde30266d7eca9eb96055c50c5f1c9f92ce5dc6c27dad9d081f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'PointerTreeBuilder.PointerAppender' coverage is below the threshold 50%", + "markdown": "Class `PointerTreeBuilder.PointerAppender` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerAppender.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 21, + "startColumn": 14, + "charOffset": 910, + "charLength": 15, + "snippet": { + "text": "PointerAppender" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 19, + "startColumn": 1, + "charOffset": 844, + "charLength": 133, + "snippet": { + "text": "namespace SoulMemory.MemoryV2.PointerTreeBuilder;\r\n\r\npublic class PointerAppender\r\n{\r\n private readonly PointerNode _pointerNode;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "bed3fffb93c2aac3", + "equalIndicator/v1": "32a067036ea4b6fd6d0f34ab7c250e2c500fbc151a62985cca845fb78f6e8e2d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'Splitters.DarkSouls2Splitter' coverage is below the threshold 50%", + "markdown": "Class `Splitters.DarkSouls2Splitter` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls2Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 30, + "startColumn": 14, + "charOffset": 1132, + "charLength": 18, + "snippet": { + "text": "DarkSouls2Splitter" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 28, + "startColumn": 1, + "charOffset": 1082, + "charLength": 130, + "snippet": { + "text": "namespace SoulSplitter.Splitters;\r\n\r\npublic class DarkSouls2Splitter : ISplitter\r\n{\r\n private readonly DarkSouls2 _darkSouls2;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a275221f2636159f", + "equalIndicator/v1": "33736fd57eb0b467ae7d2061ee637fd98503a9cbffa2da19c941d2ba8bb48895" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteInt16' coverage is below the threshold 50%", + "markdown": "Method `WriteInt16` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 262, + "startColumn": 17, + "charOffset": 6839, + "charLength": 10, + "snippet": { + "text": "WriteInt16" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 260, + "startColumn": 1, + "charOffset": 6802, + "charLength": 146, + "snippet": { + "text": " #region Write\r\n\r\n public void WriteInt16(short value) => WriteInt16(null, value);\r\n\r\n public void WriteInt16(long? offset, short value)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "755a5b8c6fa997a5", + "equalIndicator/v1": "3393d6b6eb70747d87e5d0b47c2215abba1f1e757e31c628e06d0e3545ff88f6" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_VisibleItemPickupSplit' coverage is below the threshold 50%", + "markdown": "Method `set_VisibleItemPickupSplit` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 240, + "startColumn": 9, + "charOffset": 6723, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 238, + "startColumn": 1, + "charOffset": 6667, + "charLength": 164, + "snippet": { + "text": " {\r\n get => _visibleItemPickupSplit;\r\n set => this.SetField(ref _visibleItemPickupSplit, value);\r\n }\r\n private bool _visibleItemPickupSplit;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7be390789e0665c1", + "equalIndicator/v1": "33c79c3d80c6ed90434d3f5704c1fa6f071424e897bff9570d8b6b1d6f4d99a8" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'DeleteFromEnd' coverage is below the threshold 50%", + "markdown": "Method `DeleteFromEnd` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/EldenRing.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 366, + "startColumn": 17, + "charOffset": 12324, + "charLength": 13, + "snippet": { + "text": "DeleteFromEnd" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 364, + "startColumn": 1, + "charOffset": 12252, + "charLength": 149, + "snippet": { + "text": " private const int InventoryEntrySize = 0x14;\r\n \r\n private int DeleteFromEnd(int num, int n)\r\n {\r\n for (int i = 1; num != 0; i++)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e9fa355fb72e264d", + "equalIndicator/v1": "33fe542b64e61c64a4daee59d555a0cd766ba80994dd882ab5f9c3defa5f1166" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_NewSplitFlag' coverage is below the threshold 50%", + "markdown": "Method `get_NewSplitFlag` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 179, + "startColumn": 9, + "charOffset": 5196, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 177, + "startColumn": 1, + "charOffset": 5150, + "charLength": 92, + "snippet": { + "text": " public uint? NewSplitFlag\r\n {\r\n get => _newSplitFlag;\r\n set\r\n {\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a97f0214b5927abb", + "equalIndicator/v1": "3492e20dc8812ca30ae70a91863b575c3b169e3e9e28426724c9372fd08c1dcf" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'Is64Bit' coverage is below the threshold 50%", + "markdown": "Method `Is64Bit` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Process/ProcessWrapper.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 29, + "startColumn": 17, + "charOffset": 1157, + "charLength": 7, + "snippet": { + "text": "Is64Bit" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 27, + "startColumn": 1, + "charOffset": 1024, + "charLength": 330, + "snippet": { + "text": " private System.Diagnostics.Process? _process;\r\n public System.Diagnostics.Process? GetProcess() => _process;\r\n public bool Is64Bit() => _process?.Is64Bit() ?? false;\r\n public ProcessWrapperModule? GetMainModule() => _process?.MainModule == null ? null : ProcessWrapperModule.FromProcessModule(_process.MainModule);\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "49b813ee8f94485d", + "equalIndicator/v1": "34b321a2f50fe9b03e1c7a65d0dfe24d233f4a3b0c8ef40e45917fc30ceb75b4" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'Sekiro.Sekiro' coverage is below the threshold 50%", + "markdown": "Class `Sekiro.Sekiro` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Sekiro/Sekiro.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 26, + "startColumn": 14, + "charOffset": 1008, + "charLength": 6, + "snippet": { + "text": "Sekiro" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 24, + "startColumn": 1, + "charOffset": 963, + "charLength": 95, + "snippet": { + "text": "namespace SoulMemory.Sekiro;\r\n\r\npublic class Sekiro : IGame\r\n{\r\n private Process? _process;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "2fb44f1a9d3e1038", + "equalIndicator/v1": "354458ad5ffb0796a59514dd224f21962095e334a8870bc74bf6bb443b5da85c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadBool' coverage is below the threshold 50%", + "markdown": "Method `ReadBool` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/IMemory.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 69, + "startColumn": 24, + "charOffset": 2176, + "charLength": 8, + "snippet": { + "text": "ReadBool" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 67, + "startColumn": 1, + "charOffset": 2144, + "charLength": 162, + "snippet": { + "text": " }\r\n\r\n public static bool ReadBool(this IMemory memory, long? offset = null)\r\n {\r\n return BitConverter.ToBoolean(memory.ReadBytes(offset, 1), 0);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "3c310e6e1f2a4d83", + "equalIndicator/v1": "354f3859b133eca90049c6045b42a163e303d105dc49d4f15967b2b69b5ac256" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'InvokePropertyChanged' coverage is below the threshold 50%", + "markdown": "Method `InvokePropertyChanged` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 389, + "startColumn": 17, + "charOffset": 14920, + "charLength": 21, + "snippet": { + "text": "InvokePropertyChanged" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 387, + "startColumn": 1, + "charOffset": 14838, + "charLength": 216, + "snippet": { + "text": " public event PropertyChangedEventHandler? PropertyChanged;\r\n\r\n public void InvokePropertyChanged(string propertyName)\r\n {\r\n PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "011432eff889f329", + "equalIndicator/v1": "358a3fa503b80ff466f4b8877d26dddb6414a623df673f23452b811ab41bf5db" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'SoulMemory.ResultOk' coverage is below the threshold 50%", + "markdown": "Class `SoulMemory.ResultOk` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Result.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 157, + "startColumn": 14, + "charOffset": 3782, + "charLength": 8, + "snippet": { + "text": "ResultOk" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 155, + "startColumn": 1, + "charOffset": 3719, + "charLength": 111, + "snippet": { + "text": "/// Result with generic ok type.\r\n/// \r\npublic class ResultOk\r\n{\r\n private readonly TOk _ok;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c1518154ae2eeabb", + "equalIndicator/v1": "3601a69287c7f20273b708a9a8f407c9eb1794ef7be9307de78d7c28b74434e4" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_MethodName' coverage is below the threshold 50%", + "markdown": "Method `get_MethodName` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/soulmods/Soulmods.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 45, + "startColumn": 32, + "charOffset": 1513, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 43, + "startColumn": 1, + "charOffset": 1435, + "charLength": 104, + "snippet": { + "text": "public class RustCallAttribute : Attribute\r\n{\r\n public string MethodName { get; set; } = null!;\r\n}\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ee51ab44dc7322c3", + "equalIndicator/v1": "36145315971cad3d1eea22602269c963011d5353fcffd7bd69df617298f43e7b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetPosition' coverage is below the threshold 50%", + "markdown": "Method `GetPosition` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls2/vanilla.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 78, + "startColumn": 21, + "charOffset": 2922, + "charLength": 11, + "snippet": { + "text": "GetPosition" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 76, + "startColumn": 1, + "charOffset": 2880, + "charLength": 93, + "snippet": { + "text": " #endregion\r\n \r\n public Vector3f GetPosition()\r\n {\r\n return new Vector3f(\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "03b91bbda2faba79", + "equalIndicator/v1": "3667b8304e584c424b12d4465c225a5664fba2d91dc246be87ca3d585b34d512" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'InvokePropertyChanged' coverage is below the threshold 50%", + "markdown": "Method `InvokePropertyChanged` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splits/DarkSouls1/ItemState.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 46, + "startColumn": 17, + "charOffset": 1576, + "charLength": 21, + "snippet": { + "text": "InvokePropertyChanged" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 44, + "startColumn": 1, + "charOffset": 1494, + "charLength": 216, + "snippet": { + "text": " public event PropertyChangedEventHandler? PropertyChanged;\r\n\r\n public void InvokePropertyChanged(string propertyName)\r\n {\r\n PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "aedcab70c5ec5d8e", + "equalIndicator/v1": "3680f922de39603df4c53f63e693c2718e4a4ff2289ddf114e51c98348114736" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ToString' coverage is below the threshold 50%", + "markdown": "Method `ToString` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 465, + "startColumn": 28, + "charOffset": 14825, + "charLength": 8, + "snippet": { + "text": "ToString" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 463, + "startColumn": 1, + "charOffset": 14736, + "charLength": 129, + "snippet": { + "text": "public class ItemViewModel : ICustomNotifyPropertyChanged\r\n{\r\n public override string ToString()\r\n {\r\n return Name;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "3501457cf5982fb6", + "equalIndicator/v1": "36ce6c9926fbdf8bf77443d3ffe4c8faf61b4309812f8f4779ca0b4e13360b08" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetTestValue' coverage is below the threshold 50%", + "markdown": "Method `GetTestValue` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 241, + "startColumn": 19, + "charOffset": 8939, + "charLength": 12, + "snippet": { + "text": "GetTestValue" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 239, + "startColumn": 1, + "charOffset": 8917, + "charLength": 94, + "snippet": { + "text": "\r\n\r\n public object GetTestValue()\r\n {\r\n WriteWeaponDescription(1105000, \"asdf\");\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "27dc9452820a3f29", + "equalIndicator/v1": "371339d00ec48990f466a306746615a37ae9a1873ab748757ed76e8ce9ce0896" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetAttribute' coverage is below the threshold 50%", + "markdown": "Method `GetAttribute` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls2/DarkSouls2.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 34, + "startColumn": 16, + "charOffset": 1523, + "charLength": 12, + "snippet": { + "text": "GetAttribute" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 32, + "startColumn": 1, + "charOffset": 1305, + "charLength": 384, + "snippet": { + "text": " public bool ReadEventFlag(uint eventFlagId) => _darkSouls2?.ReadEventFlag(eventFlagId) ?? false;\r\n public int GetBossKillCount(BossType bossType) => _darkSouls2?.GetBossKillCount(bossType) ?? 0;\r\n public int GetAttribute(Attribute attribute) => _darkSouls2?.GetAttribute(attribute) ?? 0;\r\n public TreeBuilder GetTreeBuilder() => _darkSouls2?.GetTreeBuilder() ?? null!;\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "6932f8bbb561f5a3", + "equalIndicator/v1": "379e5acd775cc0db21b2f5279d1aae7b6c4effc9c378d047d9a0c9b7ac4c9d69" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_NewSplitBossKillEnabled' coverage is below the threshold 50%", + "markdown": "Method `set_NewSplitBossKillEnabled` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 228, + "startColumn": 9, + "charOffset": 8155, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 226, + "startColumn": 1, + "charOffset": 8098, + "charLength": 167, + "snippet": { + "text": " {\r\n get => _newSplitBossKillEnabled;\r\n set => this.SetField(ref _newSplitBossKillEnabled, value);\r\n }\r\n private bool _newSplitBossKillEnabled;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4fefa95751294804", + "equalIndicator/v1": "37dc72e8486bb2faa58239348a5899a037003ba3ea4a3a7b8295572f8e8ebd89" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadUInt16' coverage is below the threshold 50%", + "markdown": "Method `ReadUInt16` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 63, + "startColumn": 26, + "charOffset": 2055, + "charLength": 10, + "snippet": { + "text": "ReadUInt16" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 61, + "startColumn": 1, + "charOffset": 2021, + "charLength": 157, + "snippet": { + "text": " }\r\n\r\n public static ushort ReadUInt16(this IMemory memory, long offset)\r\n {\r\n return BitConverter.ToUInt16(memory.ReadBytes(offset, 2), 0);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "68ce72e2c145beb8", + "equalIndicator/v1": "37ed909eb9a0aee789561cdb253c478b8be2842fe1a7f8c538fd64d0c74408c6" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_Flag' coverage is below the threshold 50%", + "markdown": "Method `get_Flag` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/BossViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 62, + "startColumn": 9, + "charOffset": 1744, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 60, + "startColumn": 1, + "charOffset": 1707, + "charLength": 107, + "snippet": { + "text": " public uint Flag\r\n {\r\n get => _flag;\r\n set => this.SetField(ref _flag, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5f4da7ffc3cfa983", + "equalIndicator/v1": "382c267abc7b9534e2297044c057aa2e5cc131734cdf3ce9fbe933fd1c7dc3d2" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ClearBit' coverage is below the threshold 50%", + "markdown": "Method `ClearBit` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Extensions.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 81, + "startColumn": 24, + "charOffset": 2390, + "charLength": 8, + "snippet": { + "text": "ClearBit" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 79, + "startColumn": 1, + "charOffset": 2358, + "charLength": 115, + "snippet": { + "text": " }\r\n\r\n public static long ClearBit(this long l, int index)\r\n {\r\n return l & ~((long)0x1 << index);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "8182c75f0c64d9d0", + "equalIndicator/v1": "388599ccbac4701fecd83d9a759f44c20592fd8e0c3c52297336f1fb7c4b328f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'SoulMemory.Result' coverage is below the threshold 50%", + "markdown": "Class `SoulMemory.Result` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Result.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 26, + "startColumn": 14, + "charOffset": 1034, + "charLength": 6, + "snippet": { + "text": "Result" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 24, + "startColumn": 1, + "charOffset": 942, + "charLength": 286, + "snippet": { + "text": "/// Can be Unwrapped - this will throw when the result is Err\r\n/// \r\npublic class Result\r\n{\r\n #region Sugar interface ==========================================================================================================================================================\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d3eecc307145430a", + "equalIndicator/v1": "38fc95ab2dc511b693e281c37de34bac306202ec86342fb685f7783e76d4efa3" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'InvokePropertyChanged' coverage is below the threshold 50%", + "markdown": "Method `InvokePropertyChanged` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/PositionViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 83, + "startColumn": 17, + "charOffset": 2159, + "charLength": 21, + "snippet": { + "text": "InvokePropertyChanged" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 81, + "startColumn": 1, + "charOffset": 2077, + "charLength": 216, + "snippet": { + "text": " public event PropertyChangedEventHandler? PropertyChanged;\r\n\r\n public void InvokePropertyChanged(string propertyName)\r\n {\r\n PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "94c23149dc61f593", + "equalIndicator/v1": "3900e75057357ec87640e674f9e098397dfeed0970701abd9ff76bba8d38badc" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ToString' coverage is below the threshold 50%", + "markdown": "Method `ToString` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/ParamTableEntry.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 25, + "startColumn": 28, + "charOffset": 1022, + "charLength": 8, + "snippet": { + "text": "ToString" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 23, + "startColumn": 1, + "charOffset": 951, + "charLength": 104, + "snippet": { + "text": " public uint NameOffset { get; set; }\r\n\r\n public override string ToString() => Id.ToString();\r\n}\r\n" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "eeeef4272f0b999f", + "equalIndicator/v1": "39978003ce6845a5e67a14f96d524ee5e44b9be8ace06cf81d715a7feaf60af3" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_EnumTemplate' coverage is below the threshold 50%", + "markdown": "Method `get_EnumTemplate` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/SplitTemplateSelector.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 25, + "startColumn": 40, + "charOffset": 1018, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 23, + "startColumn": 1, + "charOffset": 917, + "charLength": 191, + "snippet": { + "text": "public class SplitTemplateSelector : DataTemplateSelector\r\n{\r\n public DataTemplate EnumTemplate { get; set; } = null!;\r\n public DataTemplate VectorSizeTemplate { get; set; } = null!;\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "708af11e6a7841a7", + "equalIndicator/v1": "3a2982516bd10c1d0922006d6d42824fdb859b3f6eb66860733a91c2a6680416" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'TryRefresh' coverage is below the threshold 50%", + "markdown": "Method `TryRefresh` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 138, + "startColumn": 43, + "charOffset": 5395, + "charLength": 10, + "snippet": { + "text": "TryRefresh" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 136, + "startColumn": 1, + "charOffset": 5304, + "charLength": 213, + "snippet": { + "text": " /// \r\n /// \r\n public static ResultErr TryRefresh(ref Process? process, string name, Func> initialize, Action reset)\r\n {\r\n try\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d433c4e394241085", + "equalIndicator/v1": "3a669fe7304637ad2c5535ce787649e3be99a7345882d421820446dffc8b6658" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetSaveFileIgt' coverage is below the threshold 50%", + "markdown": "Method `GetSaveFileIgt` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Sl2Reader.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 49, + "startColumn": 24, + "charOffset": 1849, + "charLength": 14, + "snippet": { + "text": "GetSaveFileIgt" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 47, + "startColumn": 1, + "charOffset": 1712, + "charLength": 220, + "snippet": { + "text": " /// The game version\r\n /// IGT or -1 if sometimes failed\r\n public static int? GetSaveFileIgt(string? path, int slot, bool ptde)\r\n {\r\n int? igt = null;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d0399b31aabd93bb", + "equalIndicator/v1": "3c5fcc7a23c887e98f5698c4cefa7038d620067d498e87846e35e5ea7115ecad" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'TryRefresh' coverage is below the threshold 50%", + "markdown": "Method `TryRefresh` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Process/ProcessHook.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 38, + "startColumn": 36, + "charOffset": 1677, + "charLength": 10, + "snippet": { + "text": "TryRefresh" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 36, + "startColumn": 1, + "charOffset": 1593, + "charLength": 184, + "snippet": { + "text": " /// \r\n /// \r\n public ResultErr TryRefresh()\r\n {\r\n var processRefreshResult = ProcessWrapper.TryRefresh(name, out var e);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "eccea8ad29db7b23", + "equalIndicator/v1": "3ced5816b1f0b11c50efeec6bb2ac6ce541bb2820ebd5549366085ca87c3ff5c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadBytes' coverage is below the threshold 50%", + "markdown": "Method `ReadBytes` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Process/ProcessWrapper.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 83, + "startColumn": 19, + "charOffset": 2982, + "charLength": 9, + "snippet": { + "text": "ReadBytes" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 81, + "startColumn": 1, + "charOffset": 2941, + "charLength": 114, + "snippet": { + "text": " #region IMemory\r\n\r\n public byte[] ReadBytes(long offset, int length)\r\n {\r\n if (_process == null)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7bdeecf8359d1361", + "equalIndicator/v1": "3ec793cc43d809f5e4acd35f3706bef6dd11ae931b347056ef888f33cf04c7bb" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'OnReset' coverage is below the threshold 50%", + "markdown": "Method `OnReset` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls3Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 79, + "startColumn": 18, + "charOffset": 2407, + "charLength": 7, + "snippet": { + "text": "OnReset" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 77, + "startColumn": 1, + "charOffset": 2381, + "charLength": 102, + "snippet": { + "text": " }\r\n\r\n private void OnReset(object sender, TimerPhase timerPhase)\r\n {\r\n ResetTimer();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9b9219de847bcc88", + "equalIndicator/v1": "3f12a08b1ce95dd52cbc9b8841b59f68a7bab4552c4cbe28f831b004e34b5868" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_Area' coverage is below the threshold 50%", + "markdown": "Method `set_Area` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/PositionViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 32, + "startColumn": 9, + "charOffset": 1132, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 30, + "startColumn": 1, + "charOffset": 1086, + "charLength": 103, + "snippet": { + "text": " {\r\n get => Position.Area;\r\n set => this.SetField(ref Position.Area, value);\r\n }\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "73f8e1cff6ab413b", + "equalIndicator/v1": "3f17993f8099db77ad9140aeb43365fb11fcfe19bbfe9a16044d2cfe334bad12" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Constructor 'HotkeyForm' coverage is below the threshold 50%", + "markdown": "Constructor `HotkeyForm` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Hotkeys/GlobalHotKey.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 97, + "startColumn": 12, + "charOffset": 3053, + "charLength": 10, + "snippet": { + "text": "HotkeyForm" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 95, + "startColumn": 1, + "charOffset": 3007, + "charLength": 138, + "snippet": { + "text": "public class HotkeyForm : Form\r\n{\r\n public HotkeyForm(ManualResetEvent windowReadyEvent)\r\n {\r\n GlobalHotKey.Handle = Handle;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ff4056c9104c8d99", + "equalIndicator/v1": "3fd04a49f843322523b08d6bf93d29d5e4e13bb62bc735c832ae16d9584c0957" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'Memory.TreeBuilder' coverage is below the threshold 50%", + "markdown": "Class `Memory.TreeBuilder` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/TreeBuilder.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 26, + "startColumn": 14, + "charOffset": 1161, + "charLength": 11, + "snippet": { + "text": "TreeBuilder" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 24, + "startColumn": 1, + "charOffset": 1098, + "charLength": 119, + "snippet": { + "text": "/// or to validate the patterns.\r\n/// \r\npublic class TreeBuilder\r\n{\r\n public List Tree = [];\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "111e9d1afb0a2954", + "equalIndicator/v1": "404c96968a1ae7d7920668fb02d18acc20a45ccda5f4a48b6a405c68ce38b1f8" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'Inject' coverage is below the threshold 50%", + "markdown": "Method `Inject` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/soulmods/Soulmods.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 50, + "startColumn": 24, + "charOffset": 1596, + "charLength": 6, + "snippet": { + "text": "Inject" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 48, + "startColumn": 1, + "charOffset": 1540, + "charLength": 166, + "snippet": { + "text": "public static class Soulmods\r\n{\r\n public static bool Inject(Process process)\r\n {\r\n var dir = Path.GetDirectoryName(typeof(Soulmods).Assembly.Location)!;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "3c3b27b65b36f442", + "equalIndicator/v1": "405d815650e3aadb1fc69f23dc7fcdb16fc06194e5e465ba547e33ccb8d03b9e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'UpdateTimer' coverage is below the threshold 50%", + "markdown": "Method `UpdateTimer` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls3Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 129, + "startColumn": 18, + "charOffset": 3756, + "charLength": 11, + "snippet": { + "text": "UpdateTimer" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 127, + "startColumn": 1, + "charOffset": 3718, + "charLength": 90, + "snippet": { + "text": "\r\n #region Timer\r\n private void UpdateTimer()\r\n {\r\n switch (_timerState)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9effdd206d080e50", + "equalIndicator/v1": "40733fbe9ed541fb983fe9e52999619d7aab243f1a0a83ece3f93fbec0b96bb1" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'SetViewModel' coverage is below the threshold 50%", + "markdown": "Method `SetViewModel` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/SekiroSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 49, + "startColumn": 17, + "charOffset": 1734, + "charLength": 12, + "snippet": { + "text": "SetViewModel" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 47, + "startColumn": 1, + "charOffset": 1709, + "charLength": 115, + "snippet": { + "text": " }\r\n\r\n public void SetViewModel(MainViewModel mainViewModel)\r\n {\r\n _mainViewModel = mainViewModel;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7c179bd79863dd76", + "equalIndicator/v1": "40f008238a3c229f3af394770e9c5d1af2a2ef468c6625ffde022d41db44bf2c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetInGameTimeMilliseconds' coverage is below the threshold 50%", + "markdown": "Method `GetInGameTimeMilliseconds` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 161, + "startColumn": 16, + "charOffset": 5639, + "charLength": 25, + "snippet": { + "text": "GetInGameTimeMilliseconds" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 159, + "startColumn": 1, + "charOffset": 5615, + "charLength": 111, + "snippet": { + "text": " }\r\n\r\n public int GetInGameTimeMilliseconds()\r\n {\r\n return _gameDataMan.ReadInt32(_igtOffset);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "00089bacd7f8b6ec", + "equalIndicator/v1": "40fab897c166ba8cc3e8e83a1a172cda534e49d06482225ec5ab7c61a715d089" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'InvokePropertyChanged' coverage is below the threshold 50%", + "markdown": "Method `InvokePropertyChanged` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splits/DarkSouls2/BossKill.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 51, + "startColumn": 17, + "charOffset": 1641, + "charLength": 21, + "snippet": { + "text": "InvokePropertyChanged" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 49, + "startColumn": 1, + "charOffset": 1559, + "charLength": 216, + "snippet": { + "text": " public event PropertyChangedEventHandler? PropertyChanged;\r\n\r\n public void InvokePropertyChanged(string propertyName)\r\n {\r\n PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "af4703830b00d197", + "equalIndicator/v1": "41957015f656f585c7cd4f1c94e324557caf63fd8e2e8c0c554c24b523381cbe" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetSaveFileGameTimeMilliseconds' coverage is below the threshold 50%", + "markdown": "Method `GetSaveFileGameTimeMilliseconds` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/DarkSouls1.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 44, + "startColumn": 16, + "charOffset": 2316, + "charLength": 31, + "snippet": { + "text": "GetSaveFileGameTimeMilliseconds" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 42, + "startColumn": 1, + "charOffset": 2096, + "charLength": 608, + "snippet": { + "text": " public BonfireState GetBonfireState(Bonfire bonfire) => _darkSouls1?.GetBonfireState(bonfire) ?? BonfireState.Unknown;\r\n public string? GetSaveFileLocation() => _darkSouls1?.GetSaveFileLocation();\r\n public int GetSaveFileGameTimeMilliseconds(string path, int slot) => _darkSouls1?.GetSaveFileGameTimeMilliseconds(path, slot) ?? 0;\r\n public void WriteWeaponDescription(uint weaponId, string description) => _darkSouls1?.WriteWeaponDescription(weaponId, description);\r\n public void WriteItemLotParam(int rowId, Action accessor) => _darkSouls1?.WriteItemLotParam(rowId, accessor);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d617de20480b1126", + "equalIndicator/v1": "41cefb422e2798d162df274e212e19af2f1b8ca3227c547dbd008fe73606dc45" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'CanAddSplit' coverage is below the threshold 50%", + "markdown": "Method `CanAddSplit` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls3/DarkSouls3ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 36, + "startColumn": 18, + "charOffset": 1442, + "charLength": 11, + "snippet": { + "text": "CanAddSplit" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 34, + "startColumn": 1, + "charOffset": 1251, + "charLength": 277, + "snippet": { + "text": " #region add/remove splits ============================================================================================================================================\r\n\r\n private bool CanAddSplit() \r\n {\r\n if(NewSplitTimingType == null || NewSplitType == null)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ebfc6b0903f3ce12", + "equalIndicator/v1": "42b6a084c86f7222f094d94914ad422a0f7f95d768c66070880941a6f2575f8a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_FileName' coverage is below the threshold 50%", + "markdown": "Method `set_FileName` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Process/ProcessWrapperModule.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 25, + "startColumn": 35, + "charOffset": 1018, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 23, + "startColumn": 1, + "charOffset": 928, + "charLength": 198, + "snippet": { + "text": "{\r\n public string ModuleName { get; set; } = null!;\r\n public string FileName { get; set; } = null!;\r\n public IntPtr BaseAddress { get; set; }\r\n public int ModuleMemorySize { get; set; }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0852e14a47f970cc", + "equalIndicator/v1": "4314a3af0825e01691522d8cad6db4fff0522dc9d284846701f6f63e98ad1b8e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'TryValidatePatterns' coverage is below the threshold 50%", + "markdown": "Method `TryValidatePatterns` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 33, + "startColumn": 24, + "charOffset": 1372, + "charLength": 19, + "snippet": { + "text": "TryValidatePatterns" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 31, + "startColumn": 1, + "charOffset": 1243, + "charLength": 361, + "snippet": { + "text": " /// Validate patterns in a TreeBuilder by counting the patterns in a given file.\r\n /// \r\n public static bool TryValidatePatterns(PointerTreeBuilder.PointerTreeBuilder treeBuilder, List filepaths, out List<(string fileName, string patternName, long count)> errors)\r\n {\r\n var files = new List<(string name, byte[] bytes)>();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e197e95f574d18e9", + "equalIndicator/v1": "432d3eca693563f6229178bf097d492086f05e1bd6499d8e35cead6a4c703bd3" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'TryRefresh' coverage is below the threshold 50%", + "markdown": "Method `TryRefresh` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Sekiro/Sekiro.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 48, + "startColumn": 36, + "charOffset": 2069, + "charLength": 10, + "snippet": { + "text": "TryRefresh" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 46, + "startColumn": 1, + "charOffset": 1981, + "charLength": 226, + "snippet": { + "text": " public Process? GetProcess() => _process;\r\n \r\n public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, \"sekiro\", InitPointers, ResetPointers);\r\n\r\n public TreeBuilder GetTreeBuilder()\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "6779be894eb9dedd", + "equalIndicator/v1": "4334eb18f2dea4e0ea3f0248f754163994842652811ee17b725e505cc762a148" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'SelectGameFromLiveSplitState' coverage is below the threshold 50%", + "markdown": "Method `SelectGameFromLiveSplitState` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/SoulComponent.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 328, + "startColumn": 18, + "charOffset": 11572, + "charLength": 28, + "snippet": { + "text": "SelectGameFromLiveSplitState" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 326, + "startColumn": 1, + "charOffset": 11433, + "charLength": 238, + "snippet": { + "text": " /// Reads the game name from livesplit and tries to write the appropriate game to the view model\r\n /// \r\n private void SelectGameFromLiveSplitState(LiveSplitState? s)\r\n {\r\n MainWindow.Dispatcher.Invoke(() =>\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7ace4c87473ff699", + "equalIndicator/v1": "43640031213a5224bcd0383bd1abd47e0a5e7c6bcb3bcf5d894c5028deaf2555" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_NewSplitBoss' coverage is below the threshold 50%", + "markdown": "Method `set_NewSplitBoss` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 140, + "startColumn": 9, + "charOffset": 4272, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 138, + "startColumn": 1, + "charOffset": 4226, + "charLength": 115, + "snippet": { + "text": " {\r\n get => _newSplitBoss;\r\n set\r\n {\r\n this.SetField(ref _newSplitBoss, value);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "dbab3ae2d6ab2f40", + "equalIndicator/v1": "440f39b6ef17d1b4b207f7c19cd1acc2576c61063469073900c7a0a3d9056149" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_NewSplitBossKillEnabled' coverage is below the threshold 50%", + "markdown": "Method `get_NewSplitBossKillEnabled` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 227, + "startColumn": 9, + "charOffset": 8113, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 225, + "startColumn": 1, + "charOffset": 8057, + "charLength": 164, + "snippet": { + "text": " public bool NewSplitBossKillEnabled\r\n {\r\n get => _newSplitBossKillEnabled;\r\n set => this.SetField(ref _newSplitBossKillEnabled, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7dba34f730e71d20", + "equalIndicator/v1": "443779411b95f53fc6b7e906890d538829fd658a7dfc9320f7176d5c70a98bac" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Constructor 'RefreshError' coverage is below the threshold 50%", + "markdown": "Constructor `RefreshError` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/RefreshError.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 29, + "startColumn": 12, + "charOffset": 1082, + "charLength": 12, + "snippet": { + "text": "RefreshError" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 27, + "startColumn": 1, + "charOffset": 1062, + "charLength": 93, + "snippet": { + "text": " }\r\n\r\n public RefreshError(RefreshErrorReason reason)\r\n {\r\n Reason = reason;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "26999fce2e184443", + "equalIndicator/v1": "44a37707b66ce7eb395af2ef171820d285a88370055e4f3c6328445cc77df8c0" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'SetViewModel' coverage is below the threshold 50%", + "markdown": "Method `SetViewModel` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls1Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 47, + "startColumn": 17, + "charOffset": 1755, + "charLength": 12, + "snippet": { + "text": "SetViewModel" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 45, + "startColumn": 1, + "charOffset": 1730, + "charLength": 115, + "snippet": { + "text": " }\r\n\r\n public void SetViewModel(MainViewModel mainViewModel)\r\n {\r\n _mainViewModel = mainViewModel;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "50cb82aefd3b4687", + "equalIndicator/v1": "4508eaffde3768fb73dfb67996d76e951108db8db14b5c9648cdf012d5aadccb" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetVersion' coverage is below the threshold 50%", + "markdown": "Method `GetVersion` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/EldenRing.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 276, + "startColumn": 29, + "charOffset": 9931, + "charLength": 10, + "snippet": { + "text": "GetVersion" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 274, + "startColumn": 1, + "charOffset": 9893, + "charLength": 150, + "snippet": { + "text": " };\r\n\r\n public EldenRingVersion GetVersion(Version v)\r\n {\r\n var version = _versions.FirstOrDefault(i => i.version.CompareTo(v) == 0);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "47d8eb84264a0cb5", + "equalIndicator/v1": "450d813fa6d88bf6016c513f270d7b4dbd789e069b40b08735b7c7e4ac4bea72" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'TryRefresh' coverage is below the threshold 50%", + "markdown": "Method `TryRefresh` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/EldenRing.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 49, + "startColumn": 36, + "charOffset": 1869, + "charLength": 10, + "snippet": { + "text": "TryRefresh" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 47, + "startColumn": 1, + "charOffset": 1785, + "charLength": 225, + "snippet": { + "text": " public Process? GetProcess() => _process;\r\n\r\n public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, \"eldenring\", InitPointers, ResetPointers);\r\n\r\n public TreeBuilder GetTreeBuilder()\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "dcde8cd9c7c31097", + "equalIndicator/v1": "45648b8f7ce19b1c287a38aacaadaca2e909053272ca7f2b8c2da568fa0dd7e2" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'Parameters.ParamBitFieldAttribute' coverage is below the threshold 50%", + "markdown": "Class `Parameters.ParamBitFieldAttribute` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/ParamFieldAttribute.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 40, + "startColumn": 16, + "charOffset": 1337, + "charLength": 22, + "snippet": { + "text": "ParamBitFieldAttribute" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 38, + "startColumn": 1, + "charOffset": 1317, + "charLength": 166, + "snippet": { + "text": "}\r\n\r\ninternal class ParamBitFieldAttribute(string paramFieldName, int bitsOffset, int bits) : System.Attribute\r\n{\r\n public string ParamFieldName = paramFieldName;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7d35de3a3e93892c", + "equalIndicator/v1": "4571ada1a8115184f0357befae45b819d5dc2ce00bb20960110564a518407c08" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_AttributeType' coverage is below the threshold 50%", + "markdown": "Method `get_AttributeType` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splits/DarkSouls2/Attribute.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 29, + "startColumn": 9, + "charOffset": 1161, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 27, + "startColumn": 1, + "charOffset": 1088, + "charLength": 161, + "snippet": { + "text": " public SoulMemory.DarkSouls2.Attribute AttributeType\r\n {\r\n get => _attributeType;\r\n set => this.SetField(ref _attributeType, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "20444b43bcf3f5c0", + "equalIndicator/v1": "460b29178591efdf6810dcba40ce789868ca7cb3849c62e29b05f28351c73e80" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'SplitsTreeView_OnSelectedItemChanged' coverage is below the threshold 50%", + "markdown": "Method `SplitsTreeView_OnSelectedItemChanged` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2Control.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 67, + "startColumn": 18, + "charOffset": 2303, + "charLength": 36, + "snippet": { + "text": "SplitsTreeView_OnSelectedItemChanged" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 65, + "startColumn": 1, + "charOffset": 2268, + "charLength": 188, + "snippet": { + "text": " }\r\n }\r\n private void SplitsTreeView_OnSelectedItemChanged(object sender, RoutedPropertyChangedEventArgs e)\r\n {\r\n _darkSouls2ViewModel.SelectedSplit = null;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "77240ada4738aa89", + "equalIndicator/v1": "4630b1e723a23bb5a818793ab7b2fdedbedf57f338fdb33ebbeeeb61b4c85aa7" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'BoyerMooreCount' coverage is below the threshold 50%", + "markdown": "Method `BoyerMooreCount` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 272, + "startColumn": 23, + "charOffset": 10251, + "charLength": 15, + "snippet": { + "text": "BoyerMooreCount" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 270, + "startColumn": 1, + "charOffset": 10161, + "charLength": 176, + "snippet": { + "text": " /// Will return how many matches are found\r\n /// \r\n public static int BoyerMooreCount(this byte[] haystack, byte?[] needle)\r\n {\r\n int result = 0;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "8857a2641434d453", + "equalIndicator/v1": "465ca5e96ea69cbd2ba7d739f844df6c62910950347697e0ca03351fb930490e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'InvokePropertyChanged' coverage is below the threshold 50%", + "markdown": "Method `InvokePropertyChanged` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/SplitViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 42, + "startColumn": 17, + "charOffset": 1538, + "charLength": 21, + "snippet": { + "text": "InvokePropertyChanged" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 40, + "startColumn": 1, + "charOffset": 1456, + "charLength": 216, + "snippet": { + "text": " public event PropertyChangedEventHandler? PropertyChanged;\r\n\r\n public void InvokePropertyChanged(string propertyName)\r\n {\r\n PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "398a7bc1d7ae2d81", + "equalIndicator/v1": "467ff706a6da86f80879a6f0f13211dbd50c82b4522c0c8a2cdffaf14be84a05" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_Flag' coverage is below the threshold 50%", + "markdown": "Method `get_Flag` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/ItemPickupViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 54, + "startColumn": 9, + "charOffset": 1614, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 52, + "startColumn": 1, + "charOffset": 1577, + "charLength": 107, + "snippet": { + "text": " public uint Flag\r\n {\r\n get => _flag;\r\n set => this.SetField(ref _flag, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "3b8c9b22319fe8e7", + "equalIndicator/v1": "4685cf1e055995c7a7fc09d2666bf44f361068319f52d65bf940d57ab6006f04" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'CreatePointerFromAddress' coverage is below the threshold 50%", + "markdown": "Method `CreatePointerFromAddress` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 64, + "startColumn": 20, + "charOffset": 1932, + "charLength": 24, + "snippet": { + "text": "CreatePointerFromAddress" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 62, + "startColumn": 1, + "charOffset": 1864, + "charLength": 149, + "snippet": { + "text": " /// \r\n /// \r\n public Pointer CreatePointerFromAddress(long? offset = null)\r\n {\r\n var copy = Copy();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "2fc5148e6bdfd6c6", + "equalIndicator/v1": "473fcf8ebf92c0ff24db521b84733cc31a8d53c37c7d6596adc8eaba72ab0591" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'OnPreviewTextInput_Float' coverage is below the threshold 50%", + "markdown": "Method `OnPreviewTextInput_Float` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2Control.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 76, + "startColumn": 18, + "charOffset": 2615, + "charLength": 24, + "snippet": { + "text": "OnPreviewTextInput_Float" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 74, + "startColumn": 1, + "charOffset": 2589, + "charLength": 135, + "snippet": { + "text": " }\r\n\r\n private void OnPreviewTextInput_Float(object sender, TextCompositionEventArgs e)\r\n {\r\n if (sender is TextBox t)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "cb8ca37b0f9980bd", + "equalIndicator/v1": "4764490f36c381119881570d2cde285258b94ac7481753eb8effb33f9df543d4" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'DarkSouls2.Vanilla' coverage is below the threshold 50%", + "markdown": "Class `DarkSouls2.Vanilla` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls2/vanilla.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 24, + "startColumn": 16, + "charOffset": 963, + "charLength": 7, + "snippet": { + "text": "Vanilla" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 22, + "startColumn": 1, + "charOffset": 912, + "charLength": 108, + "snippet": { + "text": "namespace SoulMemory.DarkSouls2;\r\n\r\ninternal class Vanilla : IDarkSouls2\r\n{\r\n private Process? _process;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "357a93010a837dd8", + "equalIndicator/v1": "47bcf8e66a3c7cc754ce94501fd44d6a33b6d75d4bec41d7c2a0ec3180013612" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_Split' coverage is below the threshold 50%", + "markdown": "Method `set_Split` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/HierarchicalViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 97, + "startColumn": 9, + "charOffset": 3018, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 95, + "startColumn": 1, + "charOffset": 2979, + "charLength": 123, + "snippet": { + "text": " {\r\n get => _split;\r\n set => this.SetField(ref _split, value);\r\n }\r\n private object _split = null!;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "880c1867525bfe16", + "equalIndicator/v1": "47ec57081685fc09287b77389d1a342d1f93ef79e40d4d774bfaac255805fc04" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'InitPointers' coverage is below the threshold 50%", + "markdown": "Method `InitPointers` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 115, + "startColumn": 37, + "charOffset": 4421, + "charLength": 12, + "snippet": { + "text": "InitPointers" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 113, + "startColumn": 1, + "charOffset": 4376, + "charLength": 80, + "snippet": { + "text": " }\r\n\r\n private ResultErr InitPointers()\r\n {\r\n try\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0f6429fdf3610ca7", + "equalIndicator/v1": "480046aba0ebddd30fddd98065fb1c36537d302b2be5cbe8a55b332d6ccd818e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadMemory' coverage is below the threshold 50%", + "markdown": "Method `ReadMemory` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 156, + "startColumn": 20, + "charOffset": 4187, + "charLength": 10, + "snippet": { + "text": "ReadMemory" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 154, + "startColumn": 1, + "charOffset": 4135, + "charLength": 124, + "snippet": { + "text": " #region Read/write memory\r\n\r\n private byte[] ReadMemory(long? offset, int length)\r\n {\r\n if (!_initialized)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e50cdc54496b35f4", + "equalIndicator/v1": "485403c45df532272cfd6db95b63c30a24b17a950fd256e685991c3701c909f4" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ThrowIfInstallationInvalid' coverage is below the threshold 50%", + "markdown": "Method `ThrowIfInstallationInvalid` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/SoulComponent.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 367, + "startColumn": 18, + "charOffset": 12909, + "charLength": 26, + "snippet": { + "text": "ThrowIfInstallationInvalid" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 365, + "startColumn": 1, + "charOffset": 12882, + "charLength": 145, + "snippet": { + "text": " ];\r\n\r\n private void ThrowIfInstallationInvalid()\r\n {\r\n var assemblyPath = Assembly.GetAssembly(typeof(SoulComponent)).Location;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "34b5fe2aa1c1e21d", + "equalIndicator/v1": "4902cd020e68ed088eed795e3ffd613b7a7684eb7573c14cabd9613a5749639a" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_Size' coverage is below the threshold 50%", + "markdown": "Method `set_Size` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/PositionViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 50, + "startColumn": 9, + "charOffset": 1519, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 48, + "startColumn": 1, + "charOffset": 1473, + "charLength": 103, + "snippet": { + "text": " {\r\n get => Position.Size;\r\n set => this.SetField(ref Position.Size, value);\r\n }\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "49152e0fe466a923", + "equalIndicator/v1": "4933ef9da1454372aa5f5253b09534912c91fd2ab092756d682fac9e9436600a" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadBytes' coverage is below the threshold 50%", + "markdown": "Method `ReadBytes` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 233, + "startColumn": 19, + "charOffset": 6121, + "charLength": 9, + "snippet": { + "text": "ReadBytes" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 231, + "startColumn": 1, + "charOffset": 6094, + "charLength": 117, + "snippet": { + "text": " }\r\n\r\n public byte[] ReadBytes(int size, long? offset = null)\r\n {\r\n return ReadMemory(offset, size);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f9796b9615a00589", + "equalIndicator/v1": "49a5efe155a0e2d9bea6f477c7f27263262b3568ccbc6900d5fc5b87e0fde4ab" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteFloat' coverage is below the threshold 50%", + "markdown": "Method `WriteFloat` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/IMemory.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 170, + "startColumn": 24, + "charOffset": 5531, + "charLength": 10, + "snippet": { + "text": "WriteFloat" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 168, + "startColumn": 1, + "charOffset": 5499, + "charLength": 197, + "snippet": { + "text": " }\r\n\r\n public static void WriteFloat(this IMemory memory, float value) => memory.WriteFloat(null, value);\r\n\r\n public static void WriteFloat(this IMemory memory, long? offset, float value)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0956938d31ebbbb0", + "equalIndicator/v1": "49d0d2c038f38e31b9af913f3d22047d08b78d43c07870e139df9e329960301a" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_CurrentPosition' coverage is below the threshold 50%", + "markdown": "Method `set_CurrentPosition` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 52, + "startColumn": 9, + "charOffset": 1682, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 50, + "startColumn": 1, + "charOffset": 1633, + "charLength": 164, + "snippet": { + "text": " {\r\n get => _currentPosition;\r\n set => this.SetField(ref _currentPosition, value);\r\n }\r\n private PositionViewModel _currentPosition = new();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "26a75fc29914d882", + "equalIndicator/v1": "49d21b781c53fd9705b3b6e0cf6093a6b3476ccdc162e49f0b3d80062ae50d05" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'DarkSouls2.HierarchicalSplitTypeViewModel' coverage is below the threshold 50%", + "markdown": "Class `DarkSouls2.HierarchicalSplitTypeViewModel` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/HierarchicalViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 53, + "startColumn": 14, + "charOffset": 1847, + "charLength": 30, + "snippet": { + "text": "HierarchicalSplitTypeViewModel" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 51, + "startColumn": 1, + "charOffset": 1795, + "charLength": 134, + "snippet": { + "text": "\r\n[XmlType(Namespace = \"DarkSouls2\")]\r\npublic class HierarchicalSplitTypeViewModel : ICustomNotifyPropertyChanged\r\n{\r\n [XmlIgnore]\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a6c69d2aa817e9f8", + "equalIndicator/v1": "4a4d2282b3e216b8949385686d782f2e8ac567384ab348754008cd432dd8b96d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'Process.ProcessWrapper' coverage is below the threshold 50%", + "markdown": "Class `Process.ProcessWrapper` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Process/ProcessWrapper.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 25, + "startColumn": 14, + "charOffset": 987, + "charLength": 14, + "snippet": { + "text": "ProcessWrapper" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 23, + "startColumn": 1, + "charOffset": 932, + "charLength": 142, + "snippet": { + "text": "namespace SoulMemory.MemoryV2.Process;\r\n\r\npublic class ProcessWrapper : IProcessWrapper\r\n{\r\n private System.Diagnostics.Process? _process;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "706214f65d1cedc0", + "equalIndicator/v1": "4a8f89e4ef480dd4e0cdee1bf503e7b951d08f477c550b4f5a1c9b06f86136a5" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_SelectedItem' coverage is below the threshold 50%", + "markdown": "Method `get_SelectedItem` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 349, + "startColumn": 9, + "charOffset": 13828, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 347, + "startColumn": 1, + "charOffset": 13782, + "charLength": 132, + "snippet": { + "text": " public Enum? SelectedItem\r\n {\r\n get => _selectedItem;\r\n set => this.SetField(ref _selectedItem, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7e81e0e659252510", + "equalIndicator/v1": "4ac97840ac29c5259dcee96fdd861582e31fda8e7a754a6694eb462538675cb3" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_BossType' coverage is below the threshold 50%", + "markdown": "Method `set_BossType` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splits/DarkSouls2/BossKill.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 31, + "startColumn": 9, + "charOffset": 1189, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 29, + "startColumn": 1, + "charOffset": 1147, + "charLength": 126, + "snippet": { + "text": " {\r\n get => _bossType;\r\n set => this.SetField(ref _bossType, value);\r\n }\r\n private BossType _bossType;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0ee485fe6a56e3fc", + "equalIndicator/v1": "4acf67e6f612cf8789919fe8ecfa58b31e661cb3c60bc0f340e6d0517ca93a66" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'CopyGamePosition' coverage is below the threshold 50%", + "markdown": "Method `CopyGamePosition` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/BaseViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 127, + "startColumn": 18, + "charOffset": 3997, + "charLength": 16, + "snippet": { + "text": "CopyGamePosition" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 125, + "startColumn": 1, + "charOffset": 3955, + "charLength": 99, + "snippet": { + "text": " #region Functions\r\n\r\n private void CopyGamePosition()\r\n {\r\n if (Position != null)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c777865e947fa681", + "equalIndicator/v1": "4b0ed02691272994f1375251c1670506f5242c39f7194cd0e4f8a6244c9518ed" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ScanRelative' coverage is below the threshold 50%", + "markdown": "Method `ScanRelative` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerTreeBuilder.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 31, + "startColumn": 28, + "charOffset": 1228, + "charLength": 12, + "snippet": { + "text": "ScanRelative" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 29, + "startColumn": 1, + "charOffset": 1158, + "charLength": 197, + "snippet": { + "text": " public List Tree = [];\r\n\r\n public PointerAppender ScanRelative(string name, string pattern, long addressOffset, long instructionSize)\r\n {\r\n var node = new PointerNode\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b5e3776f2cf323af", + "equalIndicator/v1": "4ba398dcda5655f0a35ef53e2ef821974cc20619bb262497eda9fa8d20340ecb" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadBytes' coverage is below the threshold 50%", + "markdown": "Method `ReadBytes` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/IMemory.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 53, + "startColumn": 26, + "charOffset": 1587, + "charLength": 9, + "snippet": { + "text": "ReadBytes" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 51, + "startColumn": 1, + "charOffset": 1541, + "charLength": 201, + "snippet": { + "text": "{\r\n #region Read\r\n public static byte[] ReadBytes(this IMemory memory, int length) => memory.ReadBytes(null, length);\r\n\r\n public static int ReadInt32(this IMemory memory, long? offset = null)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a25b4ac450ee8644", + "equalIndicator/v1": "4be2aa13c9f2ad1b179abd7f4ad6480a310caae2c462a0f8d79cec67cf5ca1c5" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadInt64' coverage is below the threshold 50%", + "markdown": "Method `ReadInt64` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 78, + "startColumn": 24, + "charOffset": 2528, + "charLength": 9, + "snippet": { + "text": "ReadInt64" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 76, + "startColumn": 1, + "charOffset": 2492, + "charLength": 157, + "snippet": { + "text": " }\r\n \r\n public static long ReadInt64(this IMemory memory, long offset)\r\n {\r\n return BitConverter.ToInt64(memory.ReadBytes(offset, 8), 0);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a0865d7292855225", + "equalIndicator/v1": "4c076f803ac685b6618415b2fa977954a54f4328636e5d19629ca1dc3a9ae087" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'UnregisterHotkey' coverage is below the threshold 50%", + "markdown": "Method `UnregisterHotkey` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Native/User32.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 35, + "startColumn": 24, + "charOffset": 1443, + "charLength": 16, + "snippet": { + "text": "UnregisterHotkey" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 33, + "startColumn": 1, + "charOffset": 1247, + "charLength": 288, + "snippet": { + "text": "\r\n public static bool RegisterHotkey(IntPtr handle, int id, uint modifiers, uint virtualKeyCode) => NativeMethods.RegisterHotKey(handle, id, modifiers, virtualKeyCode);\r\n public static bool UnregisterHotkey(IntPtr handle, int id) => NativeMethods.UnregisterHotKey(handle, id);\r\n\r\n}\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b747b1ea5d861aa6", + "equalIndicator/v1": "4c28d74f70ef2b1981d838be5f3e3ddbeb96034db31aea7c9400ab73f8d21195" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ToString' coverage is below the threshold 50%", + "markdown": "Method `ToString` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/EnumFlagViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 66, + "startColumn": 28, + "charOffset": 1967, + "charLength": 8, + "snippet": { + "text": "ToString" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 64, + "startColumn": 1, + "charOffset": 1864, + "charLength": 143, + "snippet": { + "text": " /// Used to compare items in the filtered combobox\r\n /// \r\n public override string ToString()\r\n {\r\n return Name;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "cd4e176837f4e720", + "equalIndicator/v1": "4c629bb3ff0c6a99e4d6be60ecb11406cc64754f1281693dc21e1766f5b3a618" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'Create' coverage is below the threshold 50%", + "markdown": "Method `Create` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/SoulComponentFactory.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 43, + "startColumn": 23, + "charOffset": 1576, + "charLength": 6, + "snippet": { + "text": "Create" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 41, + "startColumn": 1, + "charOffset": 1498, + "charLength": 156, + "snippet": { + "text": " public Version Version => VersionHelper.Version;\r\n\r\n public IComponent Create(LiveSplitState state)\r\n {\r\n return new SoulComponent(state);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d05ee0042afe5f97", + "equalIndicator/v1": "4c829948fa3f0393e01c93837aaa705a6ca12e189ff22a4c0c77b1bbdeafe59e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_VisibleFlagSplit' coverage is below the threshold 50%", + "markdown": "Method `set_VisibleFlagSplit` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 192, + "startColumn": 9, + "charOffset": 5506, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 190, + "startColumn": 1, + "charOffset": 5456, + "charLength": 146, + "snippet": { + "text": " {\r\n get => _visibleFlagSplit;\r\n set => this.SetField(ref _visibleFlagSplit, value);\r\n }\r\n private bool _visibleFlagSplit;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "54d54a1d231eb7f8", + "equalIndicator/v1": "4d0a9c077c88db646e616ba40d98789a77335c572bf0648bd91b460c1d6b339d" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'SoulSplitter.SoulComponent' coverage is below the threshold 50%", + "markdown": "Class `SoulSplitter.SoulComponent` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/SoulComponent.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 38, + "startColumn": 14, + "charOffset": 1320, + "charLength": 13, + "snippet": { + "text": "SoulComponent" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 36, + "startColumn": 1, + "charOffset": 1280, + "charLength": 118, + "snippet": { + "text": "namespace SoulSplitter;\r\n\r\npublic class SoulComponent : IComponent\r\n{\r\n public const string Name = \"SoulSplitter\";\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4f6f7aa39db8ffd1", + "equalIndicator/v1": "4d271b95fead5d5d7232276103fcd1f642c1dfcf2143920bf405aa986dbad85b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteInt32' coverage is below the threshold 50%", + "markdown": "Method `WriteInt32` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 276, + "startColumn": 17, + "charOffset": 7248, + "charLength": 10, + "snippet": { + "text": "WriteInt32" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 274, + "startColumn": 1, + "charOffset": 7223, + "charLength": 79, + "snippet": { + "text": " }\r\n\r\n public void WriteInt32(int value) => WriteInt32(null, value);\r\n\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ec6f894b5d91d69e", + "equalIndicator/v1": "4d51502ba1fb2317b132c2c8a9dd622e172d8c2e92f4df7383cd084a6a99a545" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetPosition' coverage is below the threshold 50%", + "markdown": "Method `GetPosition` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/DarkSouls1.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 35, + "startColumn": 21, + "charOffset": 1553, + "charLength": 11, + "snippet": { + "text": "GetPosition" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 33, + "startColumn": 1, + "charOffset": 1377, + "charLength": 396, + "snippet": { + "text": " public bool IsWarpRequested() => _darkSouls1?.IsWarpRequested() ?? false;\r\n public bool IsPlayerLoaded() => _darkSouls1?.IsPlayerLoaded() ?? false;\r\n public Vector3f GetPosition() => _darkSouls1?.GetPosition() ?? new Vector3f(0,0,0);\r\n public int GetInGameTimeMilliseconds() => _darkSouls1?.GetInGameTimeMilliseconds() ?? 0;\r\n public int NgCount() => _darkSouls1?.NgCount() ?? 0;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b75162a947095d46", + "equalIndicator/v1": "4d53dd0fed959d1f04f7d8013bc95c5a629d9b4709f6e71a8cb17368bc7c6992" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'StartAutoSplitting' coverage is below the threshold 50%", + "markdown": "Method `StartAutoSplitting` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/EldenRingSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 231, + "startColumn": 17, + "charOffset": 7532, + "charLength": 18, + "snippet": { + "text": "StartAutoSplitting" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 229, + "startColumn": 1, + "charOffset": 7507, + "charLength": 111, + "snippet": { + "text": " }\r\n\r\n public void StartAutoSplitting(EldenRingViewModel eldenRingViewModel)\r\n {\r\n _splits = (\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5eaa3350e59aa7ee", + "equalIndicator/v1": "4deeb5b0efb5efdf383e6b97bd47e707562c4d7d274e2eed5c99f6abb25c08a8" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_NewSplitItemState' coverage is below the threshold 50%", + "markdown": "Method `set_NewSplitItemState` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 168, + "startColumn": 9, + "charOffset": 5859, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 166, + "startColumn": 1, + "charOffset": 5808, + "charLength": 162, + "snippet": { + "text": " {\r\n get => _newSplitItemState;\r\n set => this.SetField(ref _newSplitItemState, value);\r\n }\r\n private ItemState _newSplitItemState = null!;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "41accd6309c36c42", + "equalIndicator/v1": "4e4f43608cd114cf35b700ecf4fe68e785819b295c91cafa79fb831474ae70d3" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ToString' coverage is below the threshold 50%", + "markdown": "Method `ToString` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerNode.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 43, + "startColumn": 28, + "charOffset": 1424, + "charLength": 8, + "snippet": { + "text": "ToString" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 41, + "startColumn": 1, + "charOffset": 1350, + "charLength": 98, + "snippet": { + "text": " public List Pointers = [];\r\n\r\n public override string ToString() => Name;\r\n}\r\n" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c646ded9b8f855d8", + "equalIndicator/v1": "4ecc7e4d5e432ec1f87985eb11cf8e887182c006eda8239ab9e8e8097ca6f887" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteUint32' coverage is below the threshold 50%", + "markdown": "Method `WriteUint32` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 284, + "startColumn": 17, + "charOffset": 7448, + "charLength": 11, + "snippet": { + "text": "WriteUint32" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 282, + "startColumn": 1, + "charOffset": 7423, + "charLength": 135, + "snippet": { + "text": " }\r\n\r\n public void WriteUint32(uint value) => WriteUint32(null, value);\r\n\r\n public void WriteUint32(long? offset, uint value)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f2f298266408dd63", + "equalIndicator/v1": "4f030cdda1fe861dda0045123135123bf23a356f485d7f3522a15d4c80056f9f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_Flag' coverage is below the threshold 50%", + "markdown": "Method `get_Flag` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/EnumFlagViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 58, + "startColumn": 9, + "charOffset": 1747, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 56, + "startColumn": 1, + "charOffset": 1710, + "charLength": 107, + "snippet": { + "text": " public uint Flag\r\n {\r\n get => _flag;\r\n set => this.SetField(ref _flag, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c7c7c0bf90814f7a", + "equalIndicator/v1": "4f089b5ca7f3778938d335ce1fcad579662b12c4ed6ef5dd16d05bf85927deca" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ToBytePattern' coverage is below the threshold 50%", + "markdown": "Method `ToBytePattern` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 162, + "startColumn": 27, + "charOffset": 6627, + "charLength": 13, + "snippet": { + "text": "ToBytePattern" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 160, + "startColumn": 1, + "charOffset": 6387, + "charLength": 323, + "snippet": { + "text": " /// Hex string, separated with whitespaces and ?/??/x/xx as wildcards. Example: \"48 8b 05 ? ? ? ? c6 40 18 00\"\r\n /// byte representation of the input string\r\n public static byte?[] ToBytePattern(this string pattern)\r\n {\r\n var result = new List();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0567393705af9abf", + "equalIndicator/v1": "5048283bfc7fee398350309fa71a63f2c9e6444a3211ee5d19aa42518a978c70" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_NameOffset' coverage is below the threshold 50%", + "markdown": "Method `set_NameOffset` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/ParamTableEntry.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 23, + "startColumn": 35, + "charOffset": 985, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 21, + "startColumn": 1, + "charOffset": 876, + "charLength": 175, + "snippet": { + "text": " public int Id { get; set; }\r\n public uint DataOffset { get; set; }\r\n public uint NameOffset { get; set; }\r\n\r\n public override string ToString() => Id.ToString();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "432fb4fb3360b18f", + "equalIndicator/v1": "506f3974c46513603a5f254b75d22d341cea0142cfc2a127daf7541a0d1f32e6" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'SelectTemplate' coverage is below the threshold 50%", + "markdown": "Method `SelectTemplate` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/SplitTemplateSelector.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 28, + "startColumn": 34, + "charOffset": 1142, + "charLength": 14, + "snippet": { + "text": "SelectTemplate" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 26, + "startColumn": 1, + "charOffset": 1040, + "charLength": 194, + "snippet": { + "text": " public DataTemplate VectorSizeTemplate { get; set; } = null!;\r\n\r\n public override DataTemplate SelectTemplate(object? item, DependencyObject container)\r\n {\r\n return item switch\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7ab5363447a1533a", + "equalIndicator/v1": "50b45c7119c17d5390fd2bca6a55ac4a7517d9223594c04ff8e79ed7ab82bbf8" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetTreeBuilder' coverage is below the threshold 50%", + "markdown": "Method `GetTreeBuilder` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 41, + "startColumn": 24, + "charOffset": 1745, + "charLength": 14, + "snippet": { + "text": "GetTreeBuilder" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 39, + "startColumn": 1, + "charOffset": 1583, + "charLength": 232, + "snippet": { + "text": " public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, \"darksoulsiii\", InitPointers, ResetPointers);\r\n\r\n public TreeBuilder GetTreeBuilder()\r\n {\r\n var treeBuilder = new TreeBuilder();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f0c4cd74517b997f", + "equalIndicator/v1": "512cbe2f7b95f552e7cf73ad63cc0e9b63e3f5cac825406568973eaa9727b03a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_TimingTypes' coverage is below the threshold 50%", + "markdown": "Method `set_TimingTypes` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 165, + "startColumn": 9, + "charOffset": 6347, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 163, + "startColumn": 1, + "charOffset": 6223, + "charLength": 187, + "snippet": { + "text": " {\r\n get => (ObservableCollection>)GetValue(TimingTypeDependencyProperty);\r\n set => SetValue(TimingTypeDependencyProperty, value);\r\n }\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d05d903c681720a2", + "equalIndicator/v1": "5148c49d4dbc9277078847384797e3aaf448bbdb5526971d48a40210140d7aef" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'SoulMemory.ResultErr' coverage is below the threshold 50%", + "markdown": "Class `SoulMemory.ResultErr` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Result.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 92, + "startColumn": 14, + "charOffset": 2494, + "charLength": 9, + "snippet": { + "text": "ResultErr" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 90, + "startColumn": 1, + "charOffset": 2428, + "charLength": 118, + "snippet": { + "text": "/// Result with generic error type.\r\n/// \r\npublic class ResultErr\r\n{\r\n private readonly TErr _err;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "dbc4d94e2c747c9f", + "equalIndicator/v1": "51b12d0594b5ceb45c62490ab5bf1bc40f71e7d584c2d30f067c03f73d7cf535" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'TryRefresh' coverage is below the threshold 50%", + "markdown": "Method `TryRefresh` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Process/ProcessWrapper.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 41, + "startColumn": 33, + "charOffset": 1700, + "charLength": 10, + "snippet": { + "text": "TryRefresh" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 39, + "startColumn": 1, + "charOffset": 1619, + "charLength": 165, + "snippet": { + "text": " /// \r\n /// \r\n public ProcessRefreshResult TryRefresh(string name, out Exception? exception)\r\n {\r\n exception = null;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "65adf6a90984a217", + "equalIndicator/v1": "520f8d7a309d7eede0b88671104d1e98dd96d9b7142985ddde9bbad106a02aef" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'IsReadable' coverage is below the threshold 50%", + "markdown": "Method `IsReadable` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Sl2Reader.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 97, + "startColumn": 25, + "charOffset": 3343, + "charLength": 10, + "snippet": { + "text": "IsReadable" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 95, + "startColumn": 1, + "charOffset": 3235, + "charLength": 152, + "snippet": { + "text": " /// Tests if the path to an SL2 file should be read or not\r\n /// \r\n private static bool IsReadable(string path)\r\n {\r\n try\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "05774bb4e10555f6", + "equalIndicator/v1": "52ce7506007557752f9f2e16fcc0ecea1e1d3da7908e876b60f73e48079c50ad" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteUInt16' coverage is below the threshold 50%", + "markdown": "Method `WriteUInt16` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 271, + "startColumn": 17, + "charOffset": 7115, + "charLength": 11, + "snippet": { + "text": "WriteUInt16" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 269, + "startColumn": 1, + "charOffset": 7025, + "charLength": 197, + "snippet": { + "text": " public void WriteUInt16(ushort value) => WriteUInt16(null, value);\r\n\r\n public void WriteUInt16(long? offset, ushort value)\r\n {\r\n WriteMemory(offset, BitConverter.GetBytes(value));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "cda710331e04bc86", + "equalIndicator/v1": "52ffe9e8176191b9790b207f9861d001e4cb68e5cfcb913e6c4197062aa3381f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadUnicodeString' coverage is below the threshold 50%", + "markdown": "Method `ReadUnicodeString` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 243, + "startColumn": 19, + "charOffset": 6369, + "charLength": 17, + "snippet": { + "text": "ReadUnicodeString" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 241, + "startColumn": 1, + "charOffset": 6342, + "charLength": 158, + "snippet": { + "text": " }\r\n\r\n public string ReadUnicodeString(out int length, int maxSize = 1000, long? offset = null)\r\n {\r\n var data = ReadMemory(offset, maxSize);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c4433f5bfc900e42", + "equalIndicator/v1": "53e6b29911a733e23e17aaf0b5f343cd34647d37d7ec073b0b5aed50a7788922" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_NewSplitItemPickup' coverage is below the threshold 50%", + "markdown": "Method `set_NewSplitItemPickup` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 248, + "startColumn": 9, + "charOffset": 6946, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 246, + "startColumn": 1, + "charOffset": 6894, + "charLength": 127, + "snippet": { + "text": " {\r\n get => _newSplitItemPickup;\r\n set\r\n {\r\n this.SetField(ref _newSplitItemPickup, value);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9926cef34d77a6fb", + "equalIndicator/v1": "53fa38d9538d5af83135befc74ea01d7183721302c246f6d6b300c8f3609abd8" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteBytes' coverage is below the threshold 50%", + "markdown": "Method `WriteBytes` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 312, + "startColumn": 17, + "charOffset": 8165, + "charLength": 10, + "snippet": { + "text": "WriteBytes" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 310, + "startColumn": 1, + "charOffset": 8140, + "charLength": 108, + "snippet": { + "text": " }\r\n\r\n public void WriteBytes(long? offset, byte[] value)\r\n {\r\n WriteMemory(offset, value);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9a1a9eafdd9156d6", + "equalIndicator/v1": "54075c0ecdca5a014dd3c84be96bf00adda36803c36bec1c7eefe4227ad30939" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'InvokePropertyChanged' coverage is below the threshold 50%", + "markdown": "Method `InvokePropertyChanged` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 310, + "startColumn": 17, + "charOffset": 10673, + "charLength": 21, + "snippet": { + "text": "InvokePropertyChanged" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 308, + "startColumn": 1, + "charOffset": 10591, + "charLength": 216, + "snippet": { + "text": " public event PropertyChangedEventHandler? PropertyChanged;\r\n\r\n public void InvokePropertyChanged(string propertyName)\r\n {\r\n PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "38341c3d4db57ef3", + "equalIndicator/v1": "540fdc6cf1547eaf4e7f2efc964f7bcbb3ca33d0080fd56141981e65e1ea425b" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_DataOffset' coverage is below the threshold 50%", + "markdown": "Method `get_DataOffset` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/TextTableEntry.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 22, + "startColumn": 30, + "charOffset": 948, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 20, + "startColumn": 1, + "charOffset": 872, + "charLength": 135, + "snippet": { + "text": "{\r\n public uint ItemLowRange { get; set; }\r\n public uint DataOffset { get; set; }\r\n public uint ItemHighRange { get; set; }\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7fc92bec00338acc", + "equalIndicator/v1": "547856825ebbce8e6da1f14251c550be9f35f15700707cf5b0f490cca7008a14" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_IsOk' coverage is below the threshold 50%", + "markdown": "Method `set_IsOk` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Result.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 160, + "startColumn": 39, + "charOffset": 3869, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 158, + "startColumn": 1, + "charOffset": 3797, + "charLength": 114, + "snippet": { + "text": "{\r\n private readonly TOk _ok;\r\n public bool IsOk { get; protected set; }\r\n public bool IsErr => !IsOk;\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ea748da8cf9cd739", + "equalIndicator/v1": "55645c660fa7140dfa04d88aeedd72a0f9fce123e3a9485879042044d8c4ad42" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetAttribute' coverage is below the threshold 50%", + "markdown": "Method `GetAttribute` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 162, + "startColumn": 16, + "charOffset": 6379, + "charLength": 12, + "snippet": { + "text": "GetAttribute" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 160, + "startColumn": 1, + "charOffset": 6342, + "charLength": 197, + "snippet": { + "text": " #endregion\r\n \r\n public int GetAttribute(Attribute attribute) => _playerGameData.ReadInt32((long)attribute);\r\n\r\n public int GetInGameTimeMilliseconds() => _gameDataMan.ReadInt32(0x68);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "20a71ece6754a62a", + "equalIndicator/v1": "5598f06454774ed902eaf4dbe79bca577a9ecda56be13d53b5aa04f15c69ea21" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_DateTime' coverage is below the threshold 50%", + "markdown": "Method `get_DateTime` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/ErrorViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 26, + "startColumn": 9, + "charOffset": 1000, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 24, + "startColumn": 1, + "charOffset": 955, + "charLength": 123, + "snippet": { + "text": " public DateTime DateTime\r\n {\r\n get => _dateTime;\r\n set => this.SetField(ref _dateTime, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "672993c0b3a9d53a", + "equalIndicator/v1": "55abfa1d7fc499216fc82f029e59bc3e780fc82e6053d05a6e3faf019b0bea41" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_Count' coverage is below the threshold 50%", + "markdown": "Method `get_Count` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splits/DarkSouls2/BossKill.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 37, + "startColumn": 9, + "charOffset": 1313, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 35, + "startColumn": 1, + "charOffset": 1276, + "charLength": 109, + "snippet": { + "text": " public int Count\r\n {\r\n get => _count;\r\n set => this.SetField(ref _count, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "73391b7958d2b13a", + "equalIndicator/v1": "55c32d67cdd312f7709a27616447221b5de3393cde53556cb43eba0cb36d06fc" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_ItemLowRange' coverage is below the threshold 50%", + "markdown": "Method `set_ItemLowRange` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/TextTableEntry.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 21, + "startColumn": 37, + "charOffset": 911, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 19, + "startColumn": 1, + "charOffset": 843, + "charLength": 162, + "snippet": { + "text": "public class TextTableEntry\r\n{\r\n public uint ItemLowRange { get; set; }\r\n public uint DataOffset { get; set; }\r\n public uint ItemHighRange { get; set; }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "537e16a19d15f4a7", + "equalIndicator/v1": "55cabdc28a78d2ec0ea84047e9c68723795ea9182ce7d67af0b311fda09327b3" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'Dispose' coverage is below the threshold 50%", + "markdown": "Method `Dispose` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls1Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 83, + "startColumn": 28, + "charOffset": 2830, + "charLength": 7, + "snippet": { + "text": "Dispose" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 81, + "startColumn": 1, + "charOffset": 2794, + "charLength": 91, + "snippet": { + "text": " }\r\n\r\n protected virtual void Dispose(bool disposing)\r\n {\r\n if (disposing)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "71b1e684468eb6f1", + "equalIndicator/v1": "5634d0ad4a8f8018a348cf2c29bb654a0b30295d7acd5461b406481179ef6046" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_VisibleBossSplit' coverage is below the threshold 50%", + "markdown": "Method `get_VisibleBossSplit` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 151, + "startColumn": 9, + "charOffset": 4516, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 149, + "startColumn": 1, + "charOffset": 4467, + "charLength": 143, + "snippet": { + "text": " public bool VisibleBossSplit\r\n {\r\n get => _visibleBossSplit;\r\n set => this.SetField(ref _visibleBossSplit, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7371ee658aeeedc6", + "equalIndicator/v1": "564bd439ac21dc694b9e81a8cdbcd614d213d0151cf67dec9364725d4890cd6d" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_NewSplitPositionEnabled' coverage is below the threshold 50%", + "markdown": "Method `get_NewSplitPositionEnabled` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 219, + "startColumn": 9, + "charOffset": 7885, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 217, + "startColumn": 1, + "charOffset": 7829, + "charLength": 164, + "snippet": { + "text": " public bool NewSplitPositionEnabled\r\n {\r\n get => _newSplitPositionEnabled;\r\n set => this.SetField(ref _newSplitPositionEnabled, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e28e2cd6a5f0d1dd", + "equalIndicator/v1": "569031e1b623b148fbb4acedf4b3cb0b2688b75210f17703cf0ad2174a90bb6c" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_ProcessWrapper' coverage is below the threshold 50%", + "markdown": "Method `get_ProcessWrapper` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Process/ProcessHook.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 23, + "startColumn": 45, + "charOffset": 1007, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 21, + "startColumn": 1, + "charOffset": 866, + "charLength": 282, + "snippet": { + "text": "public class ProcessHook(string name, IProcessWrapper? processWrapper = null) : IProcessHook\r\n{\r\n public IProcessWrapper ProcessWrapper { get; set; } = processWrapper ?? new ProcessWrapper();\r\n\r\n public System.Diagnostics.Process? GetProcess() => ProcessWrapper.GetProcess();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7df04b927c2acb5c", + "equalIndicator/v1": "57220d925f1f7dae064c5ae483b67630c38d49c7f48969207a723af512e3e101" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'SetViewModel' coverage is below the threshold 50%", + "markdown": "Method `SetViewModel` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/BaseSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 57, + "startColumn": 17, + "charOffset": 2019, + "charLength": 12, + "snippet": { + "text": "SetViewModel" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 55, + "startColumn": 1, + "charOffset": 1994, + "charLength": 115, + "snippet": { + "text": " }\r\n\r\n public void SetViewModel(MainViewModel mainViewModel)\r\n {\r\n _mainViewModel = mainViewModel;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9f6fdbbea9a37abd", + "equalIndicator/v1": "573f53af3c05da2d2f6ad93fd493712267cf32ac3851b6f895ff831b360647b1" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteUInt64' coverage is below the threshold 50%", + "markdown": "Method `WriteUInt64` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 154, + "startColumn": 24, + "charOffset": 4811, + "charLength": 11, + "snippet": { + "text": "WriteUInt64" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 152, + "startColumn": 1, + "charOffset": 4779, + "charLength": 164, + "snippet": { + "text": " }\r\n\r\n public static void WriteUInt64(this IMemory memory, long offset, ulong value)\r\n {\r\n memory.WriteBytes(offset, BitConverter.GetBytes(value));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "be003a78a3f7f657", + "equalIndicator/v1": "57a7c143a884add0700aeebfc59c4acbeba3c6d369c82d9d0ab5c86b763584a2" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_Id' coverage is below the threshold 50%", + "markdown": "Method `get_Id` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/ParamTableEntry.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 21, + "startColumn": 21, + "charOffset": 896, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 19, + "startColumn": 1, + "charOffset": 843, + "charLength": 149, + "snippet": { + "text": "public class ParamTableEntry\r\n{\r\n public int Id { get; set; }\r\n public uint DataOffset { get; set; }\r\n public uint NameOffset { get; set; }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "34a78f4f868df4e5", + "equalIndicator/v1": "57e35d2c308300aec630dca80a407eae7ae101c0cfda249d52f382117ac57ab4" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_Name' coverage is below the threshold 50%", + "markdown": "Method `get_Name` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/BossViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 55, + "startColumn": 9, + "charOffset": 1599, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 53, + "startColumn": 1, + "charOffset": 1560, + "charLength": 109, + "snippet": { + "text": " public string Name\r\n {\r\n get => _name;\r\n set => this.SetField(ref _name, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "fa346860d7d2411a", + "equalIndicator/v1": "57e4033df00006e31e92a409fbe1fa106ffe3281a6b112a9eae533f7d9fb3705" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_Id' coverage is below the threshold 50%", + "markdown": "Method `get_Id` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 510, + "startColumn": 9, + "charOffset": 15707, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 508, + "startColumn": 1, + "charOffset": 15672, + "charLength": 101, + "snippet": { + "text": " public uint Id\r\n {\r\n get => _id;\r\n set => this.SetField(ref _id, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9caa1738f1f34cce", + "equalIndicator/v1": "5856e1acc65efe2e5658c69c325a8abfd42a483bda2d17602a88df88bd53b586" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'NgCount' coverage is below the threshold 50%", + "markdown": "Method `NgCount` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 166, + "startColumn": 16, + "charOffset": 6557, + "charLength": 7, + "snippet": { + "text": "NgCount" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 164, + "startColumn": 1, + "charOffset": 6463, + "charLength": 206, + "snippet": { + "text": " public int GetInGameTimeMilliseconds() => _gameDataMan.ReadInt32(0x68);\r\n\r\n public int NgCount() => _gameDataMan.ReadInt32(0x3C);\r\n\r\n public int GetCurrentSaveSlot() => _gameMan.ReadInt32(0xA70);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "1469ea666ce4ace2", + "equalIndicator/v1": "585de7241749a1352600c1d590c92b99189c8cf07900fce300b3eef2409e65b8" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'SetBit' coverage is below the threshold 50%", + "markdown": "Method `SetBit` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Extensions.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 76, + "startColumn": 24, + "charOffset": 2277, + "charLength": 6, + "snippet": { + "text": "SetBit" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 74, + "startColumn": 1, + "charOffset": 2245, + "charLength": 112, + "snippet": { + "text": " }\r\n\r\n public static long SetBit(this long l, int index)\r\n {\r\n return l | ((long)0x1 << index);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f6b693a3d6fe9622", + "equalIndicator/v1": "5892306fac17e650c24e9774fe8474e7cefa8a7b91b43effa61587499ef3d205" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_Name' coverage is below the threshold 50%", + "markdown": "Method `get_Name` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/KnownFlagViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 47, + "startColumn": 9, + "charOffset": 1459, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 45, + "startColumn": 1, + "charOffset": 1420, + "charLength": 109, + "snippet": { + "text": " public string Name\r\n {\r\n get => _name;\r\n set => this.SetField(ref _name, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c5c950c485d0091a", + "equalIndicator/v1": "58c888c2973a8c67761007f419c1fa75ccaf8a362da896af362e0afeb06ccec7" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ToString' coverage is below the threshold 50%", + "markdown": "Method `ToString` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splits/DarkSouls2/BossKill.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 42, + "startColumn": 28, + "charOffset": 1444, + "charLength": 8, + "snippet": { + "text": "ToString" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 40, + "startColumn": 1, + "charOffset": 1386, + "charLength": 115, + "snippet": { + "text": " private int _count = 1;\r\n\r\n public override string ToString()\r\n {\r\n return $\"{BossType} {Count}\";\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "1bdbda5f7184fe50", + "equalIndicator/v1": "5a1d2c891c0ad5c5c6dd56027518070bc11001e926571dd07de125f0d4204442" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_BitBlt' coverage is below the threshold 50%", + "markdown": "Method `set_BitBlt` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Sekiro/Sekiro.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 403, + "startColumn": 17, + "charOffset": 14642, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 401, + "startColumn": 1, + "charOffset": 14600, + "charLength": 89, + "snippet": { + "text": " }\r\n }\r\n private set\r\n {\r\n lock (_bitBltLock)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ef206980372f11b2", + "equalIndicator/v1": "5a382dccadd2863cb2a83723714cb6a24d7308634aaf039967227a8604463df9" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_Bonfires' coverage is below the threshold 50%", + "markdown": "Method `set_Bonfires` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 216, + "startColumn": 9, + "charOffset": 9228, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 214, + "startColumn": 1, + "charOffset": 9112, + "charLength": 177, + "snippet": { + "text": " {\r\n get => (ObservableCollection>)GetValue(BonfiresDependencyProperty);\r\n set => SetValue(BonfiresDependencyProperty, value);\r\n }\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d198a7dfc7809b2f", + "equalIndicator/v1": "5a753c0be2d436ec3d7a2e15cddcd4d83dc81a26ba2a3a90c442405752bf3a4e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ResolveGameVersionSpecificOffsets' coverage is below the threshold 50%", + "markdown": "Method `ResolveGameVersionSpecificOffsets` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 144, + "startColumn": 18, + "charOffset": 5265, + "charLength": 33, + "snippet": { + "text": "ResolveGameVersionSpecificOffsets" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 142, + "startColumn": 1, + "charOffset": 5239, + "charLength": 113, + "snippet": { + "text": " }\r\n\r\n private void ResolveGameVersionSpecificOffsets(DsrVersion version)\r\n {\r\n switch (version)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f9d7226b6ecc09ab", + "equalIndicator/v1": "5a839eb8ead2fea876f542e77acc3b824f7ebf2fed094f6bd6a7e5792f1ebb25" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteMemory' coverage is below the threshold 50%", + "markdown": "Method `WriteMemory` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 178, + "startColumn": 18, + "charOffset": 4729, + "charLength": 11, + "snippet": { + "text": "WriteMemory" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 176, + "startColumn": 1, + "charOffset": 4703, + "charLength": 118, + "snippet": { + "text": " }\r\n\r\n private void WriteMemory(long? offset, byte[] bytes)\r\n {\r\n var offsetsCopy = Offsets.ToList();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "dc539756cc2db815", + "equalIndicator/v1": "5a9d726f2ca8b2da3b2f9bae64e3635fd3f7517804c82c18e3d9d693b9046315" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_ItemPickup' coverage is below the threshold 50%", + "markdown": "Method `get_ItemPickup` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/ItemPickupViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 40, + "startColumn": 9, + "charOffset": 1308, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 38, + "startColumn": 1, + "charOffset": 1259, + "charLength": 131, + "snippet": { + "text": " public ItemPickup ItemPickup\r\n {\r\n get => _itemPickup;\r\n set => this.SetField(ref _itemPickup, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9c2fa7d36b18f58e", + "equalIndicator/v1": "5af08e490f30818530fa9dff8cbc56e9f76689f4515412c5c4f73147358b07c6" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'DarkSouls1.ItemReader' coverage is below the threshold 50%", + "markdown": "Class `DarkSouls1.ItemReader` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/ItemReader.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 23, + "startColumn": 23, + "charOffset": 937, + "charLength": 10, + "snippet": { + "text": "ItemReader" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 21, + "startColumn": 1, + "charOffset": 879, + "charLength": 186, + "snippet": { + "text": "namespace SoulMemory.DarkSouls1;\r\n\r\ninternal static class ItemReader\r\n{\r\n internal static List GetCurrentInventoryItems(byte[] data, int listCount, int itemCount, int keyCount)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f0bc4ff9322b3988", + "equalIndicator/v1": "5b3340866329da49c49b30e70f18a24f9a92d42825f14c760d2ba2437f52da8e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteInt64' coverage is below the threshold 50%", + "markdown": "Method `WriteInt64` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 149, + "startColumn": 24, + "charOffset": 4648, + "charLength": 10, + "snippet": { + "text": "WriteInt64" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 147, + "startColumn": 1, + "charOffset": 4616, + "charLength": 162, + "snippet": { + "text": " }\r\n\r\n public static void WriteInt64(this IMemory memory, long offset, long value)\r\n {\r\n memory.WriteBytes(offset, BitConverter.GetBytes(value));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c01b4c69f9bc0273", + "equalIndicator/v1": "5b5216abef5fa43888e664694fce7cb1f45063bc063063390087c0c48a07a21d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'InvokePropertyChanged' coverage is below the threshold 50%", + "markdown": "Method `InvokePropertyChanged` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 522, + "startColumn": 17, + "charOffset": 15931, + "charLength": 21, + "snippet": { + "text": "InvokePropertyChanged" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 520, + "startColumn": 1, + "charOffset": 15849, + "charLength": 216, + "snippet": { + "text": " public event PropertyChangedEventHandler? PropertyChanged;\r\n\r\n public void InvokePropertyChanged(string propertyName)\r\n {\r\n PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a6098bc0b904aefa", + "equalIndicator/v1": "5b603f8d7328dc5c4be7c384d3c209cc30dd4387806772209b4ddf4050bee830" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'NgCount' coverage is below the threshold 50%", + "markdown": "Method `NgCount` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 230, + "startColumn": 16, + "charOffset": 8239, + "charLength": 7, + "snippet": { + "text": "NgCount" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 228, + "startColumn": 1, + "charOffset": 8145, + "charLength": 223, + "snippet": { + "text": " public int GetInGameTimeMilliseconds() => _gameDataMan.ReadInt32(0xa4);\r\n\r\n public int NgCount() => _gameDataMan.ReadInt32(0x78);\r\n\r\n public int GetCurrentSaveSlot() => _gameMan.ReadInt32(_currentSaveSlotOffset);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "edc07aff77b7c8b6", + "equalIndicator/v1": "5b63742c63ceacf2a004bb81651d68e7e758e01e2db353992d64b83307702400" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_VectorSizeTemplate' coverage is below the threshold 50%", + "markdown": "Method `get_VectorSizeTemplate` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/SplitTemplateSelector.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 26, + "startColumn": 46, + "charOffset": 1085, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 24, + "startColumn": 1, + "charOffset": 976, + "charLength": 223, + "snippet": { + "text": "{\r\n public DataTemplate EnumTemplate { get; set; } = null!;\r\n public DataTemplate VectorSizeTemplate { get; set; } = null!;\r\n\r\n public override DataTemplate SelectTemplate(object? item, DependencyObject container)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f234c73be4b91770", + "equalIndicator/v1": "5bb6f5c5f666e011433b7323d4305855110d73d7967fd7c1870683fb3517ec63" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'Converters.DropModTypeConverter' coverage is below the threshold 50%", + "markdown": "Class `Converters.DropModTypeConverter` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Converters/DropModTypeConverter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 24, + "startColumn": 14, + "charOffset": 965, + "charLength": 20, + "snippet": { + "text": "DropModTypeConverter" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 22, + "startColumn": 1, + "charOffset": 911, + "charLength": 195, + "snippet": { + "text": "namespace SoulSplitter.UI.Converters;\r\n\r\npublic class DropModTypeConverter : IValueConverter\r\n{\r\n public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "bbfc44c20c41b850", + "equalIndicator/v1": "5bcb0600692b494bd82afbc31d9df3017fa9dd97ff945b3c0d5d6161c970b2da" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteBytes' coverage is below the threshold 50%", + "markdown": "Method `WriteBytes` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/IMemory.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 39, + "startColumn": 17, + "charOffset": 1301, + "charLength": 10, + "snippet": { + "text": "WriteBytes" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 37, + "startColumn": 1, + "charOffset": 1276, + "charLength": 94, + "snippet": { + "text": " }\r\n\r\n public void WriteBytes(long? offset, byte[] bytes)\r\n {\r\n offset ??= 0;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ab5929432c17018f", + "equalIndicator/v1": "5c8a39241829679eef3107ef3b050ceddfafc8b4216c3e21080e5e6abc5510f2" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'Update' coverage is below the threshold 50%", + "markdown": "Method `Update` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/SoulComponent.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 66, + "startColumn": 17, + "charOffset": 2120, + "charLength": 6, + "snippet": { + "text": "Update" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 64, + "startColumn": 1, + "charOffset": 2043, + "charLength": 227, + "snippet": { + "text": " /// Called by livesplit every frame\r\n /// \r\n public void Update(IInvalidator invalidator, LiveSplitState state, float width, float height, LayoutMode mode)\r\n {\r\n MainWindow.Dispatcher.Invoke(() =>\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "28b7eeee6c202a7a", + "equalIndicator/v1": "5c8fb351e569cf8d51e21d4d46400a93c6364e81119f60c9d4ae4d2cbb4873b4" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'UpdateAutoSplitter' coverage is below the threshold 50%", + "markdown": "Method `UpdateAutoSplitter` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls3Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 207, + "startColumn": 17, + "charOffset": 6247, + "charLength": 18, + "snippet": { + "text": "UpdateAutoSplitter" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 205, + "startColumn": 1, + "charOffset": 6222, + "charLength": 101, + "snippet": { + "text": " }\r\n\r\n public void UpdateAutoSplitter()\r\n {\r\n if (_timerState != TimerState.Running)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "3b75b23028540634", + "equalIndicator/v1": "5d7a221a59b94677fbd2ba8f8e43455e36d475e7375c4699971245aaf6e0c44e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'Memory.Pointer' coverage is below the threshold 50%", + "markdown": "Class `Memory.Pointer` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 24, + "startColumn": 14, + "charOffset": 953, + "charLength": 7, + "snippet": { + "text": "Pointer" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 22, + "startColumn": 1, + "charOffset": 899, + "charLength": 112, + "snippet": { + "text": "namespace SoulMemory.MemoryV2.Memory;\r\n\r\npublic class Pointer : IMemory\r\n{\r\n public readonly IMemory Memory;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4ba9249e3ee95eba", + "equalIndicator/v1": "5d8fb60d8eda250bdc28fb685f3830d920c42577ecdd205975ba53cb8647a796" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'OnUpdate' coverage is below the threshold 50%", + "markdown": "Method `OnUpdate` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/BaseSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 99, + "startColumn": 44, + "charOffset": 3148, + "charLength": 8, + "snippet": { + "text": "OnUpdate" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 97, + "startColumn": 1, + "charOffset": 3064, + "charLength": 159, + "snippet": { + "text": "\r\n public virtual void OnStart() { }\r\n public virtual ResultErr OnUpdate() { return Result.Ok();}\r\n public virtual void OnReset() { }\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "bd3226bea041dd5e", + "equalIndicator/v1": "5db87307845543fffd55b728a2fbf2ca5c70bb4043df8c2cdc041a16e8c39fb6" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_KnownFlags' coverage is below the threshold 50%", + "markdown": "Method `set_KnownFlags` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 177, + "startColumn": 88, + "charOffset": 6436, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 175, + "startColumn": 1, + "charOffset": 6167, + "charLength": 311, + "snippet": { + "text": "\r\n public static ObservableCollection> Bosses { get; set; } = new(Enum.GetValues(typeof(Boss)).Cast().Select(i => new EnumFlagViewModel(i)));\r\n public static ObservableCollection> KnownFlags { get; set; } = \r\n new(\r\n Enum\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d100f8aea45ce221", + "equalIndicator/v1": "5dc970697ed1b2ffefadce3fc6f4f5d2844e43b65e347a752815a48e9f76e613" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_NameOffset' coverage is below the threshold 50%", + "markdown": "Method `get_NameOffset` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/ParamTableEntry.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 23, + "startColumn": 30, + "charOffset": 980, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 21, + "startColumn": 1, + "charOffset": 876, + "charLength": 175, + "snippet": { + "text": " public int Id { get; set; }\r\n public uint DataOffset { get; set; }\r\n public uint NameOffset { get; set; }\r\n\r\n public override string ToString() => Id.ToString();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4fbcbb7ca345fc9a", + "equalIndicator/v1": "5dfc1825253968fe0638c4312e09c774d3205ac1cd892ee7eec6741b0a076582" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_BaseAddress' coverage is below the threshold 50%", + "markdown": "Method `set_BaseAddress` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Process/ProcessWrapperModule.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 26, + "startColumn": 38, + "charOffset": 1072, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 24, + "startColumn": 1, + "charOffset": 931, + "charLength": 197, + "snippet": { + "text": " public string ModuleName { get; set; } = null!;\r\n public string FileName { get; set; } = null!;\r\n public IntPtr BaseAddress { get; set; }\r\n public int ModuleMemorySize { get; set; }\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "6fd503f143df8453", + "equalIndicator/v1": "5e2bc989f9d3aa5cc25b93c4c542dd9c6ccc0b774339c2942428011266341bed" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetChildNodeByName' coverage is below the threshold 50%", + "markdown": "Method `GetChildNodeByName` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Extensions.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 50, + "startColumn": 27, + "charOffset": 1582, + "charLength": 18, + "snippet": { + "text": "GetChildNodeByName" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 48, + "startColumn": 1, + "charOffset": 1547, + "charLength": 140, + "snippet": { + "text": " }\r\n\r\n public static XmlNode GetChildNodeByName(this XmlNode node, string childName)\r\n {\r\n var lower = childName.ToLower();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "06106527059c0cdf", + "equalIndicator/v1": "5e367e3b22f521186a8f5416e858762b802cbfb5d84ccc0d6d34a5bbe5c0e5dc" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ToString' coverage is below the threshold 50%", + "markdown": "Method `ToString` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/BaseParam.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 204, + "startColumn": 28, + "charOffset": 7814, + "charLength": 8, + "snippet": { + "text": "ToString" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 202, + "startColumn": 1, + "charOffset": 7765, + "charLength": 99, + "snippet": { + "text": " #endregion\r\n \r\n public override string ToString()\r\n {\r\n var fields = GetType()\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b0c1df9235d7c996", + "equalIndicator/v1": "5e44dd55d98d037c76a49f780d2c92149f3d03faa776063b60cfef4746a3b243" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteEventFlag' coverage is below the threshold 50%", + "markdown": "Method `WriteEventFlag` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Sekiro/Sekiro.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 222, + "startColumn": 17, + "charOffset": 8237, + "charLength": 14, + "snippet": { + "text": "WriteEventFlag" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 220, + "startColumn": 1, + "charOffset": 8081, + "charLength": 280, + "snippet": { + "text": " #region event flags ================================================================================================================\r\n\r\n public void WriteEventFlag(uint eventFlagId, bool eventFlagValue)\r\n {\r\n var resultAddress = GetEventFlagAddress(eventFlagId);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "6572c8ec1d546b18", + "equalIndicator/v1": "5ef41bc76ae0078554b7a4e4495f469261f5529f85dddf7212285c857b77df81" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_AttributeType' coverage is below the threshold 50%", + "markdown": "Method `get_AttributeType` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splits/Sekiro/Attribute.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 29, + "startColumn": 9, + "charOffset": 1145, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 27, + "startColumn": 1, + "charOffset": 1076, + "charLength": 157, + "snippet": { + "text": " public SoulMemory.Sekiro.Attribute AttributeType\r\n {\r\n get => _attributeType;\r\n set => this.SetField(ref _attributeType, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a19eeedd09f3702b", + "equalIndicator/v1": "5f7f2b68ec74684535aeed7939fd78a13c2f6ea07958cfad8e8869b7e9730432" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_KnownFlags' coverage is below the threshold 50%", + "markdown": "Method `get_KnownFlags` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 177, + "startColumn": 83, + "charOffset": 6431, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 175, + "startColumn": 1, + "charOffset": 6167, + "charLength": 311, + "snippet": { + "text": "\r\n public static ObservableCollection> Bosses { get; set; } = new(Enum.GetValues(typeof(Boss)).Cast().Select(i => new EnumFlagViewModel(i)));\r\n public static ObservableCollection> KnownFlags { get; set; } = \r\n new(\r\n Enum\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "02b7c5cbbd7253e7", + "equalIndicator/v1": "60571a0a870428bf3c6f4e239897722d14ecabc752394d61596c4c6b63753aa3" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetInGameTimeMilliseconds' coverage is below the threshold 50%", + "markdown": "Method `GetInGameTimeMilliseconds` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 228, + "startColumn": 16, + "charOffset": 8160, + "charLength": 25, + "snippet": { + "text": "GetInGameTimeMilliseconds" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 226, + "startColumn": 1, + "charOffset": 8040, + "charLength": 242, + "snippet": { + "text": " public int GetAttribute(Attribute attribute) => _playerGameData.ReadInt32(0x8 + (long)attribute);\r\n\r\n public int GetInGameTimeMilliseconds() => _gameDataMan.ReadInt32(0xa4);\r\n\r\n public int NgCount() => _gameDataMan.ReadInt32(0x78);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "fd426e849f891bcc", + "equalIndicator/v1": "605ced5e753e8a0ea7d394aca05ce44c84f0573d76394f5b5c873e2a81264167" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_AttributeType' coverage is below the threshold 50%", + "markdown": "Method `set_AttributeType` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splits/Sekiro/Attribute.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 30, + "startColumn": 9, + "charOffset": 1177, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 28, + "startColumn": 1, + "charOffset": 1130, + "charLength": 160, + "snippet": { + "text": " {\r\n get => _attributeType;\r\n set => this.SetField(ref _attributeType, value);\r\n }\r\n private SoulMemory.Sekiro.Attribute _attributeType;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "72bc5a19f3aabd0c", + "equalIndicator/v1": "60604bb9e9d1ff94dc50d853b0a6d5ce090f81ee9ad6f64c5943c076fb2acb3f" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'BitBlt' coverage is below the threshold 50%", + "markdown": "Method `BitBlt` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Native/Gdi32.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 29, + "startColumn": 25, + "charOffset": 1238, + "charLength": 6, + "snippet": { + "text": "BitBlt" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 27, + "startColumn": 1, + "charOffset": 1091, + "charLength": 232, + "snippet": { + "text": " private static extern int BitBlt(IntPtr hdc, int x, int y, int cx, int cy, IntPtr hdcSrc, int x1, int y1, int rop);\r\n\r\n public static Color BitBlt(IntPtr src, int x, int y)\r\n {\r\n var screenPixel = new Bitmap(1, 1);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "957b6ed53f3f1764", + "equalIndicator/v1": "60698dccef631dadf4f4846436fca48bcbe58a1bebddcb1c45c094ded52c8ad4" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'Unwrap' coverage is below the threshold 50%", + "markdown": "Method `Unwrap` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Result.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 131, + "startColumn": 17, + "charOffset": 3320, + "charLength": 6, + "snippet": { + "text": "Unwrap" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 129, + "startColumn": 1, + "charOffset": 3295, + "charLength": 61, + "snippet": { + "text": " }\r\n\r\n public void Unwrap()\r\n {\r\n if (!IsOk)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a2c35978222ff286", + "equalIndicator/v1": "606cbc165edc80227d70b2f1ef1c2bfc518b320f91877f4d9b31546100a1e75c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'RestoreHierarchy' coverage is below the threshold 50%", + "markdown": "Method `RestoreHierarchy` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 279, + "startColumn": 17, + "charOffset": 9515, + "charLength": 16, + "snippet": { + "text": "RestoreHierarchy" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 277, + "startColumn": 1, + "charOffset": 9467, + "charLength": 235, + "snippet": { + "text": "\r\n #region Splits hierarchy\r\n public void RestoreHierarchy()\r\n {\r\n //When serializing the model, we can't serialize the parent relation, because that would be a circular reference. Instead, parent's are not serialized.\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f9688915183c94d6", + "equalIndicator/v1": "60a70855e95444050d34fe3568176ac93799268f6391943839689cfe68cf9dd1" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_SplitsViewModel' coverage is below the threshold 50%", + "markdown": "Method `get_SplitsViewModel` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/SplitsTree.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 38, + "startColumn": 9, + "charOffset": 1477, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 36, + "startColumn": 1, + "charOffset": 1418, + "charLength": 202, + "snippet": { + "text": " public SplitsViewModel SplitsViewModel\r\n {\r\n get =>(SplitsViewModel)GetValue(SplitsViewModelDependencyProperty);\r\n set => SetValue(SplitsViewModelDependencyProperty, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "70d504451b6a91b8", + "equalIndicator/v1": "6207341909deb8c91a8c099339f1a0f3491c05a9354c4484f601910b241435f7" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'TryRefresh' coverage is below the threshold 50%", + "markdown": "Method `TryRefresh` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/DarkSouls1.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 52, + "startColumn": 36, + "charOffset": 2941, + "charLength": 10, + "snippet": { + "text": "TryRefresh" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 50, + "startColumn": 1, + "charOffset": 2820, + "charLength": 154, + "snippet": { + "text": " public TreeBuilder GetTreeBuilder() => _darkSouls1?.GetTreeBuilder() ?? null!;\r\n\r\n public ResultErr TryRefresh()\r\n {\r\n try\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9dab2915cf59ad98", + "equalIndicator/v1": "6213109a88be2abe6923cef1c3b9606ec7e3a618bc74c2ea03e893339292be4a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_Name' coverage is below the threshold 50%", + "markdown": "Method `get_Name` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 503, + "startColumn": 9, + "charOffset": 15564, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 501, + "startColumn": 1, + "charOffset": 15525, + "charLength": 109, + "snippet": { + "text": " public string Name\r\n {\r\n get => _name;\r\n set => this.SetField(ref _name, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a2ba85f413174e7c", + "equalIndicator/v1": "6256822fe4f1a1f5bd4393c758688da0d7c26cc00a8446b8306ab58eaa40aab7" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_Flag' coverage is below the threshold 50%", + "markdown": "Method `get_Flag` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/GraceViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 62, + "startColumn": 9, + "charOffset": 1754, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 60, + "startColumn": 1, + "charOffset": 1717, + "charLength": 107, + "snippet": { + "text": " public uint Flag\r\n {\r\n get => _flag;\r\n set => this.SetField(ref _flag, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "924dfb9d5452adbd", + "equalIndicator/v1": "62c5d60b5067cd044556f70d16a8a67701ebb029c975711b276d8b663a275d49" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetEnumAttribute' coverage is below the threshold 50%", + "markdown": "Method `GetEnumAttribute` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/Extensions.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 62, + "startColumn": 21, + "charOffset": 1982, + "charLength": 16, + "snippet": { + "text": "GetEnumAttribute" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 60, + "startColumn": 1, + "charOffset": 1953, + "charLength": 124, + "snippet": { + "text": " }\r\n\r\n public static T GetEnumAttribute(this Enum value) where T : Attribute\r\n {\r\n var attribute = value\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "03295c743e7ebe84", + "equalIndicator/v1": "62f5db956da1edd14482fea27672626294cfc9786b74e7931a54f92f352c7369" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'ArmoredCore6.Split' coverage is below the threshold 50%", + "markdown": "Class `ArmoredCore6.Split` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splits/ArmoredCore6/Split.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 22, + "startColumn": 16, + "charOffset": 918, + "charLength": 5, + "snippet": { + "text": "Split" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 20, + "startColumn": 1, + "charOffset": 856, + "charLength": 147, + "snippet": { + "text": "namespace SoulSplitter.Splits.ArmoredCore6;\r\n\r\ninternal class Split\r\n{\r\n public Split(TimingType timingType, SplitType splitType, object split)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "74433f0c2afcf3b8", + "equalIndicator/v1": "63508299a843b10822f526e5c68159e99fbfcd7545ff078e285ec4f6e63d4977" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_Bosses' coverage is below the threshold 50%", + "markdown": "Method `set_Bosses` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 185, + "startColumn": 9, + "charOffset": 7528, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 183, + "startColumn": 1, + "charOffset": 7414, + "charLength": 173, + "snippet": { + "text": " {\r\n get => (ObservableCollection>)GetValue(BossesDependencyProperty);\r\n set => SetValue(BossesDependencyProperty, value);\r\n }\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0730e2a542aab936", + "equalIndicator/v1": "638c1839d032b18b97de65f5cc242cc65b2b39b4873f2c548065f6fa0680c5cc" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'RustCall' coverage is below the threshold 50%", + "markdown": "Method `RustCall` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/soulmods/Soulmods.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 72, + "startColumn": 26, + "charOffset": 2413, + "charLength": 8, + "snippet": { + "text": "RustCall" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 70, + "startColumn": 1, + "charOffset": 2313, + "charLength": 293, + "snippet": { + "text": "\r\n private static List<(string name, long address)>? _soulmodsMethods;\r\n public static TSized RustCall(this Process process, string function, TSized? parameter = null) where TSized : struct\r\n {\r\n _soulmodsMethods ??= process.GetModuleExportedFunctions(\"soulmods.dll\");\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "acb03aafd2a223ca", + "equalIndicator/v1": "63ab8958458fd6b54b42d6cd4c574cc3b2010cb77c69a32e6bf26ea63f0776df" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_Position' coverage is below the threshold 50%", + "markdown": "Method `get_Position` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 356, + "startColumn": 9, + "charOffset": 13999, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 354, + "startColumn": 1, + "charOffset": 13951, + "charLength": 126, + "snippet": { + "text": " public VectorSize? Position\r\n {\r\n get => _position;\r\n set => this.SetField(ref _position, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e4b0898c736f5ced", + "equalIndicator/v1": "63aec6526ef384aa7db9d270ad3afa12244757c5e82d32f6217602ea7e8c2fda" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'UIv2.SplitSettingsControl' coverage is below the threshold 50%", + "markdown": "Class `UIv2.SplitSettingsControl` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 32, + "startColumn": 22, + "charOffset": 1191, + "charLength": 20, + "snippet": { + "text": "SplitSettingsControl" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 30, + "startColumn": 1, + "charOffset": 1101, + "charLength": 193, + "snippet": { + "text": "/// Interaction logic for SplitSettingsControl.xaml\r\n/// \r\npublic partial class SplitSettingsControl : UserControl, ICustomNotifyPropertyChanged\r\n{\r\n public SplitSettingsControl()\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "054d36b84703c67e", + "equalIndicator/v1": "63b9dea9bf90062bde1c413aa47c2571b7b79995a9724cdfb6678dc55c7029a5" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadEventFlag' coverage is below the threshold 50%", + "markdown": "Method `ReadEventFlag` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/DarkSouls1.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 32, + "startColumn": 17, + "charOffset": 1291, + "charLength": 13, + "snippet": { + "text": "ReadEventFlag" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 30, + "startColumn": 1, + "charOffset": 1115, + "charLength": 417, + "snippet": { + "text": " public Process? GetProcess() => _darkSouls1?.GetProcess();\r\n public int GetAttribute(Attribute attribute) => _darkSouls1?.GetAttribute(attribute) ?? 0;\r\n public bool ReadEventFlag(uint eventFlagId) => _darkSouls1?.ReadEventFlag(eventFlagId) ?? false;\r\n public bool IsWarpRequested() => _darkSouls1?.IsWarpRequested() ?? false;\r\n public bool IsPlayerLoaded() => _darkSouls1?.IsPlayerLoaded() ?? false;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a61fac783d052943", + "equalIndicator/v1": "63bd588eb81b05677f74f41e0d2d5a009a11e0769891e2378a3945e8b8bf631f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_SelectedKnownFlag' coverage is below the threshold 50%", + "markdown": "Method `set_SelectedKnownFlag` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 314, + "startColumn": 9, + "charOffset": 12894, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 312, + "startColumn": 1, + "charOffset": 12843, + "charLength": 150, + "snippet": { + "text": " {\r\n get => _selectedKnownFlag;\r\n set => this.SetField(ref _selectedKnownFlag, value);\r\n }\r\n private Enum? _selectedKnownFlag;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9a7a31fb42568b2b", + "equalIndicator/v1": "63c755f0dcf7f6f0c5b5eb1fad0ddb3670c8f45198b0740ba15da0ae9487ed2c" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'Unwrap' coverage is below the threshold 50%", + "markdown": "Method `Unwrap` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Result.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 196, + "startColumn": 16, + "charOffset": 4577, + "charLength": 6, + "snippet": { + "text": "Unwrap" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 194, + "startColumn": 1, + "charOffset": 4553, + "charLength": 110, + "snippet": { + "text": " }\r\n\r\n public TOk Unwrap([CallerMemberName] string? callerMemberName = null)\r\n {\r\n if (!IsOk)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "2c9e5bc572be151a", + "equalIndicator/v1": "63d61a51518951cc4cc9996739ad5064f27268b86a36c35b7b4a950d40cfa366" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'IsPlayerLoaded' coverage is below the threshold 50%", + "markdown": "Method `IsPlayerLoaded` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Sekiro/Sekiro.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 204, + "startColumn": 17, + "charOffset": 7675, + "charLength": 14, + "snippet": { + "text": "IsPlayerLoaded" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 202, + "startColumn": 1, + "charOffset": 7650, + "charLength": 103, + "snippet": { + "text": " }\r\n\r\n public bool IsPlayerLoaded()\r\n {\r\n return _worldChrManImp.ReadInt64(0x88) != 0;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c4fa7993e1a05dde", + "equalIndicator/v1": "64c04e218cb88d43e95c22f3176d72b9e6006728341177b96d4f23f398f92864" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_EnumTemplate' coverage is below the threshold 50%", + "markdown": "Method `set_EnumTemplate` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/SplitTemplateSelector.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 25, + "startColumn": 45, + "charOffset": 1023, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 23, + "startColumn": 1, + "charOffset": 917, + "charLength": 191, + "snippet": { + "text": "public class SplitTemplateSelector : DataTemplateSelector\r\n{\r\n public DataTemplate EnumTemplate { get; set; } = null!;\r\n public DataTemplate VectorSizeTemplate { get; set; } = null!;\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a54e1223b0209ebd", + "equalIndicator/v1": "64e28fcf4abc559bdf02cd11a3db797389585ee60258c82c8f49382f4bf808c2" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetProcessModules' coverage is below the threshold 50%", + "markdown": "Method `GetProcessModules` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Process/ProcessWrapper.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 32, + "startColumn": 39, + "charOffset": 1393, + "charLength": 17, + "snippet": { + "text": "GetProcessModules" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 30, + "startColumn": 1, + "charOffset": 1201, + "charLength": 348, + "snippet": { + "text": " public ProcessWrapperModule? GetMainModule() => _process?.MainModule == null ? null : ProcessWrapperModule.FromProcessModule(_process.MainModule);\r\n\r\n public List GetProcessModules()\r\n {\r\n return (from object pm in _process?.Modules select ProcessWrapperModule.FromProcessModule((ProcessModule)pm)).ToList();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "cb37ea8da503b2fd", + "equalIndicator/v1": "6500ce972960f312d962ef8859dd12fc19df7e0981266eb43251510d5cdb9a09" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadEventFlag' coverage is below the threshold 50%", + "markdown": "Method `ReadEventFlag` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Sekiro/Sekiro.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 246, + "startColumn": 17, + "charOffset": 9009, + "charLength": 13, + "snippet": { + "text": "ReadEventFlag" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 244, + "startColumn": 1, + "charOffset": 8984, + "charLength": 127, + "snippet": { + "text": " }\r\n\r\n public bool ReadEventFlag(uint eventFlagId)\r\n {\r\n var resultAddress = GetEventFlagAddress(eventFlagId);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a9ab4bd97687b345", + "equalIndicator/v1": "653aeb1112011b3e7dd23963ad1e6a3e55e12a993734d87ce36d9e967acb4cee" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadBool' coverage is below the threshold 50%", + "markdown": "Method `ReadBool` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 214, + "startColumn": 17, + "charOffset": 5626, + "charLength": 8, + "snippet": { + "text": "ReadBool" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 212, + "startColumn": 1, + "charOffset": 5601, + "charLength": 128, + "snippet": { + "text": " }\r\n\r\n public bool ReadBool(long? offset = null)\r\n {\r\n return BitConverter.ToBoolean(ReadMemory(offset, 1), 0);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "de090a2393ad0f63", + "equalIndicator/v1": "656e351b642acb1721d6e17f93f41f74ec6520dc2d87d15348f9176b67b07342" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'Convert' coverage is below the threshold 50%", + "markdown": "Method `Convert` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Converters/EnumValueEnumParameterConverter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 25, + "startColumn": 19, + "charOffset": 1007, + "charLength": 7, + "snippet": { + "text": "Convert" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 23, + "startColumn": 1, + "charOffset": 922, + "charLength": 297, + "snippet": { + "text": "public class EnumValueEnumParameterConverter : IValueConverter\r\n{\r\n public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture)\r\n {\r\n if (value is Enum valueEnum && parameter is Enum valueParameter && valueEnum.GetType() == valueParameter.GetType())\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "23a31e408d8fed59", + "equalIndicator/v1": "659a3f508eaf9d46d306b01c117c06c5e7e51c8d4dd9ff3732a4bb5b6c1a711d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteInt32' coverage is below the threshold 50%", + "markdown": "Method `WriteInt32` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 139, + "startColumn": 24, + "charOffset": 4318, + "charLength": 10, + "snippet": { + "text": "WriteInt32" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 137, + "startColumn": 1, + "charOffset": 4286, + "charLength": 161, + "snippet": { + "text": " }\r\n\r\n public static void WriteInt32(this IMemory memory, long offset, int value)\r\n {\r\n memory.WriteBytes(offset, BitConverter.GetBytes(value));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c8d611a602c97973", + "equalIndicator/v1": "6708c9a8e4b8cf9ac4d8830b38c2d881b36af63cad3df33178c40d85ab8846d2" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_GroupName' coverage is below the threshold 50%", + "markdown": "Method `get_GroupName` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 495, + "startColumn": 9, + "charOffset": 15400, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 493, + "startColumn": 1, + "charOffset": 15356, + "charLength": 124, + "snippet": { + "text": " public string GroupName\r\n {\r\n get => _groupName;\r\n set => this.SetField(ref _groupName, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f4a89fcef8b58673", + "equalIndicator/v1": "678d1af736fc9f8d3994dc3e09b7d5c41dacb66a53f4d21698edae3c31411ba0" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetSaveFileGameTimeMilliseconds' coverage is below the threshold 50%", + "markdown": "Method `GetSaveFileGameTimeMilliseconds` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 247, + "startColumn": 16, + "charOffset": 9059, + "charLength": 31, + "snippet": { + "text": "GetSaveFileGameTimeMilliseconds" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 245, + "startColumn": 1, + "charOffset": 9035, + "charLength": 151, + "snippet": { + "text": " }\r\n\r\n public int GetSaveFileGameTimeMilliseconds(string path, int slot)\r\n {\r\n return Sl2Reader.GetSaveFileIgt(path, slot, true) ?? 0;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "842e0d205507f3de", + "equalIndicator/v1": "679b1a7f3f92f95a4ab5d080d18e9b862e29efeb15ac573914d6c31d29046606" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'Memory.PointerNode' coverage is below the threshold 50%", + "markdown": "Class `Memory.PointerNode` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/PointerNode.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 21, + "startColumn": 14, + "charOffset": 889, + "charLength": 11, + "snippet": { + "text": "PointerNode" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 19, + "startColumn": 1, + "charOffset": 844, + "charLength": 91, + "snippet": { + "text": "namespace SoulMemory.Memory;\r\n\r\npublic class PointerNode\r\n{\r\n public NodeType NodeType;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "35ae538002c2969f", + "equalIndicator/v1": "67d4b9c49328e86c965946c0178d3d3531815f8e38e62d58c4ba5d6e36b63c1f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetTreeBuilder' coverage is below the threshold 50%", + "markdown": "Method `GetTreeBuilder` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/DarkSouls1.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 50, + "startColumn": 24, + "charOffset": 2843, + "charLength": 14, + "snippet": { + "text": "GetTreeBuilder" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 48, + "startColumn": 1, + "charOffset": 2816, + "charLength": 138, + "snippet": { + "text": "\r\n\r\n public TreeBuilder GetTreeBuilder() => _darkSouls1?.GetTreeBuilder() ?? null!;\r\n\r\n public ResultErr TryRefresh()\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "40f5c1dd1f713b43", + "equalIndicator/v1": "682e04b71d5af8a9f773099fbd914d79348b41594339d3833737b81d34a7e19c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'Dispose' coverage is below the threshold 50%", + "markdown": "Method `Dispose` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/BaseSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 83, + "startColumn": 17, + "charOffset": 2755, + "charLength": 7, + "snippet": { + "text": "Dispose" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 81, + "startColumn": 1, + "charOffset": 2714, + "charLength": 82, + "snippet": { + "text": " #region Disposing\r\n\r\n public void Dispose()\r\n {\r\n Dispose(true);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d625eede5a8d3db7", + "equalIndicator/v1": "686d791c37cd3ef5974d4936f21f9695a0d68973cfe94816130799fdd12f6b81" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetPosition' coverage is below the threshold 50%", + "markdown": "Method `GetPosition` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/EldenRing.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 296, + "startColumn": 21, + "charOffset": 10506, + "charLength": 11, + "snippet": { + "text": "GetPosition" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 294, + "startColumn": 1, + "charOffset": 10477, + "charLength": 105, + "snippet": { + "text": " }\r\n\r\n public Position GetPosition()\r\n {\r\n var map = _playerIns.ReadInt32(_mapIdOffset);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f4c3ac9d99c6b203", + "equalIndicator/v1": "686f00352b24fd624934a252685b3429c70172cc4e5f2eea7a7c7525acfe8353" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_EldenRingSplitType' coverage is below the threshold 50%", + "markdown": "Method `set_EldenRingSplitType` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/SplitViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 59, + "startColumn": 9, + "charOffset": 1977, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 57, + "startColumn": 1, + "charOffset": 1925, + "charLength": 166, + "snippet": { + "text": " {\r\n get => _eldenRingSplitType;\r\n set => this.SetField(ref _eldenRingSplitType, value);\r\n }\r\n private EldenRingSplitType _eldenRingSplitType;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "20cd0191dbf937d0", + "equalIndicator/v1": "688196be5f45225ab1c01383edd6c11e1776b00c5b640156be788e55896f3ad8" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_SelectedSplit' coverage is below the threshold 50%", + "markdown": "Method `get_SelectedSplit` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 267, + "startColumn": 9, + "charOffset": 9214, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 265, + "startColumn": 1, + "charOffset": 9145, + "charLength": 116, + "snippet": { + "text": " public HierarchicalSplitViewModel? SelectedSplit\r\n {\r\n get => _selectedSplit;\r\n set\r\n {\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "082dcab7b82bbac6", + "equalIndicator/v1": "688282a40ad566b82b743a98ef8b57774cb09e60986e149a4f37c87ad02dc776" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_NewSplitValue' coverage is below the threshold 50%", + "markdown": "Method `set_NewSplitValue` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 200, + "startColumn": 9, + "charOffset": 7411, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 198, + "startColumn": 1, + "charOffset": 7364, + "charLength": 117, + "snippet": { + "text": " {\r\n get => _newSplitValue;\r\n set\r\n {\r\n this.SetField(ref _newSplitValue, value);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "db2b886adb1096e2", + "equalIndicator/v1": "68f524afd25adb83c67f8fd68bade7a142ebe8f3d01cd94fee3d1f3718c62a8e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_BaseAddress' coverage is below the threshold 50%", + "markdown": "Method `get_BaseAddress` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Process/ProcessWrapperModule.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 26, + "startColumn": 33, + "charOffset": 1067, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 24, + "startColumn": 1, + "charOffset": 931, + "charLength": 197, + "snippet": { + "text": " public string ModuleName { get; set; } = null!;\r\n public string FileName { get; set; } = null!;\r\n public IntPtr BaseAddress { get; set; }\r\n public int ModuleMemorySize { get; set; }\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0b347f2a0086d6cc", + "equalIndicator/v1": "693b5242c402d745d377f7dd119078336b211943a48ef5ca6b3a6f53031d114b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GuaranteeDrop' coverage is below the threshold 50%", + "markdown": "Method `GuaranteeDrop` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/DropMod.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 85, + "startColumn": 18, + "charOffset": 2933, + "charLength": 13, + "snippet": { + "text": "GuaranteeDrop" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 83, + "startColumn": 1, + "charOffset": 2907, + "charLength": 127, + "snippet": { + "text": " }\r\n\r\n private void GuaranteeDrop(int rowId, int itemId)\r\n {\r\n darkSouls.WriteItemLotParam(rowId, (itemLot) =>\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "33069d91c8af2c02", + "equalIndicator/v1": "696b142600a906e513f62516de1386b9179e4b3c780b280cf2f008e127a49f33" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Constructor 'Pointer' coverage is below the threshold 50%", + "markdown": "Constructor `Pointer` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 30, + "startColumn": 12, + "charOffset": 1098, + "charLength": 7, + "snippet": { + "text": "Pointer" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 28, + "startColumn": 1, + "charOffset": 1048, + "charLength": 113, + "snippet": { + "text": " public long AbsoluteOffset = 0;\r\n\r\n public Pointer(IMemory memory)\r\n {\r\n if (memory is Pointer)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "78467a5e8e6bfb93", + "equalIndicator/v1": "69ba0f4b7171cd5f1fd695e3b544f2d7896000ba31741e32faddf6b31b72f319" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_isValid' coverage is below the threshold 50%", + "markdown": "Method `get_isValid` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Native/Structs/Image/IMAGE_NT_HEADERS64.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 43, + "startColumn": 9, + "charOffset": 1401, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 41, + "startColumn": 1, + "charOffset": 1361, + "charLength": 156, + "snippet": { + "text": " public bool isValid\r\n {\r\n get { return _Signature == \"PE\\0\\0\" && OptionalHeader.Magic == MagicType.IMAGE_NT_OPTIONAL_HDR64_MAGIC; }\r\n }\r\n}\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "23fe9687b1d70b0b", + "equalIndicator/v1": "69e1dfb44fec0a8f123fe593d38e7e8eb58c87901d2c4cc6b687c05a79a9211a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'OnPreviewTextInput_Byte' coverage is below the threshold 50%", + "markdown": "Method `OnPreviewTextInput_Byte` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 67, + "startColumn": 18, + "charOffset": 2219, + "charLength": 23, + "snippet": { + "text": "OnPreviewTextInput_Byte" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 65, + "startColumn": 1, + "charOffset": 2193, + "charLength": 134, + "snippet": { + "text": " }\r\n\r\n private void OnPreviewTextInput_Byte(object sender, TextCompositionEventArgs e)\r\n {\r\n if (sender is TextBox t)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5c3f063bbcac75f7", + "equalIndicator/v1": "69f509e6bd4191a0563afeb2aa8a249b05b715bede65c802e60248f90583682a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'Unwrap' coverage is below the threshold 50%", + "markdown": "Method `Unwrap` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Result.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 282, + "startColumn": 16, + "charOffset": 6612, + "charLength": 6, + "snippet": { + "text": "Unwrap" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 280, + "startColumn": 1, + "charOffset": 6588, + "charLength": 59, + "snippet": { + "text": " }\r\n\r\n public TOk Unwrap()\r\n {\r\n if (IsOk)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "baf06ae699a967f4", + "equalIndicator/v1": "6a838788d1d078c22647c07965a9cfb71b1b56625a730c69664dfd92dc61e7aa" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetBossKillCount' coverage is below the threshold 50%", + "markdown": "Method `GetBossKillCount` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls2/vanilla.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 87, + "startColumn": 16, + "charOffset": 3129, + "charLength": 16, + "snippet": { + "text": "GetBossKillCount" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 85, + "startColumn": 1, + "charOffset": 3105, + "charLength": 124, + "snippet": { + "text": " }\r\n\r\n public int GetBossKillCount(BossType bossType)\r\n {\r\n return _bossCounters.ReadInt32((long)bossType);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "75126b0a6ccdab48", + "equalIndicator/v1": "6aa5bfc89aa0cba3afa458ca9928649819a7cfdbf83717e95e4ba463e92ffa3d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_VisibleKnownFlagSplit' coverage is below the threshold 50%", + "markdown": "Method `set_VisibleKnownFlagSplit` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 260, + "startColumn": 9, + "charOffset": 7259, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 258, + "startColumn": 1, + "charOffset": 7204, + "charLength": 161, + "snippet": { + "text": " {\r\n get => _visibleKnownFlagSplit;\r\n set => this.SetField(ref _visibleKnownFlagSplit, value);\r\n }\r\n private bool _visibleKnownFlagSplit;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "6cbd230ba321cbd2", + "equalIndicator/v1": "6b063058629a12ae402fe0a1fe5c9ca1136d0915b96a2abe489f49d9faac81e4" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteUInt32' coverage is below the threshold 50%", + "markdown": "Method `WriteUInt32` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 144, + "startColumn": 24, + "charOffset": 4484, + "charLength": 11, + "snippet": { + "text": "WriteUInt32" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 142, + "startColumn": 1, + "charOffset": 4448, + "charLength": 167, + "snippet": { + "text": " }\r\n \r\n public static void WriteUInt32(this IMemory memory, long offset, uint value)\r\n {\r\n memory.WriteBytes(offset, BitConverter.GetBytes(value));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "76e3ca54e0511eba", + "equalIndicator/v1": "6b5e8be673f15b55c831905953e77d8b4022e7aff1e689384022c240e2f977a4" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ResetPointers' coverage is below the threshold 50%", + "markdown": "Method `ResetPointers` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Sekiro/Sekiro.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 164, + "startColumn": 18, + "charOffset": 6630, + "charLength": 13, + "snippet": { + "text": "ResetPointers" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 162, + "startColumn": 1, + "charOffset": 6601, + "charLength": 84, + "snippet": { + "text": " \r\n \r\n private void ResetPointers()\r\n {\r\n _eventFlagMan.Clear();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7e6cb69566e2b3cc", + "equalIndicator/v1": "6b734fc30a2fb172ecc0796eacffb1273fecf1a48763ebe952e6e0df855d8423" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ToString' coverage is below the threshold 50%", + "markdown": "Method `ToString` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splits/DarkSouls2/Attribute.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 41, + "startColumn": 28, + "charOffset": 1477, + "charLength": 8, + "snippet": { + "text": "ToString" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 39, + "startColumn": 1, + "charOffset": 1423, + "charLength": 116, + "snippet": { + "text": " private int _level;\r\n\r\n public override string ToString()\r\n {\r\n return $\"{AttributeType} {Level}\";\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ba2236e3cc43a282", + "equalIndicator/v1": "6c100d204840717bdbeafa840a0cd35ca2ab7b9a0067acc354b6895e35688a11" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteInt64' coverage is below the threshold 50%", + "markdown": "Method `WriteInt64` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/IMemory.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 149, + "startColumn": 24, + "charOffset": 4881, + "charLength": 10, + "snippet": { + "text": "WriteInt64" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 147, + "startColumn": 1, + "charOffset": 4849, + "charLength": 163, + "snippet": { + "text": " }\r\n\r\n public static void WriteInt64(this IMemory memory, long? offset, long value)\r\n {\r\n memory.WriteBytes(offset, BitConverter.GetBytes(value));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d68c7b933d32637c", + "equalIndicator/v1": "6c9a79b6300b71f1614aa436a050c3004e0c20d4b58e15faec026ed97ee4a816" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetProcess' coverage is below the threshold 50%", + "markdown": "Method `GetProcess` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls2/DarkSouls2.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 29, + "startColumn": 21, + "charOffset": 1110, + "charLength": 10, + "snippet": { + "text": "GetProcess" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 27, + "startColumn": 1, + "charOffset": 1001, + "charLength": 303, + "snippet": { + "text": " public int GetInGameTimeMilliseconds() => 0;\r\n private IDarkSouls2? _darkSouls2;\r\n public Process? GetProcess() => _darkSouls2?.GetProcess();\r\n public Vector3f GetPosition() => _darkSouls2?.GetPosition() ?? new Vector3f();\r\n public bool IsLoading() => _darkSouls2?.IsLoading() ?? false;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "68d4bae130d0a8b8", + "equalIndicator/v1": "6d59af693d39502dfe2645bd91cd413a44d2325b2d64788a70be1172b5ec32aa" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_Area' coverage is below the threshold 50%", + "markdown": "Method `get_Area` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/GraceViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 48, + "startColumn": 9, + "charOffset": 1462, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 46, + "startColumn": 1, + "charOffset": 1423, + "charLength": 109, + "snippet": { + "text": " public string Area\r\n {\r\n get => _area;\r\n set => this.SetField(ref _area, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "baa6ef78bae7ee25", + "equalIndicator/v1": "6dbd2501c47bace1797c928c6d1516aef2b8b0ff028c1ed6fab2e4fa78136b23" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetInventory' coverage is below the threshold 50%", + "markdown": "Method `GetInventory` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 188, + "startColumn": 23, + "charOffset": 7152, + "charLength": 12, + "snippet": { + "text": "GetInventory" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 186, + "startColumn": 1, + "charOffset": 7122, + "charLength": 111, + "snippet": { + "text": " \r\n\r\n public List GetInventory()\r\n {\r\n var itemCount = _playerGameData.ReadInt32(0x2e0);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e676ae5d51f988fa", + "equalIndicator/v1": "6de59432c17e6b18dff039511eb546f81713911bcd3d692acb5afc087c789267" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'IsWarpRequested' coverage is below the threshold 50%", + "markdown": "Method `IsWarpRequested` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 240, + "startColumn": 17, + "charOffset": 8648, + "charLength": 15, + "snippet": { + "text": "IsWarpRequested" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 238, + "startColumn": 1, + "charOffset": 8568, + "charLength": 142, + "snippet": { + "text": " public bool IsPlayerLoaded() => !_playerIns.IsNullPtr();\r\n\r\n public bool IsWarpRequested()\r\n {\r\n if (GetPlayerHealth() == 0)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "8211f28522d888a5", + "equalIndicator/v1": "6edd906f0ca8376f7241aedd7fead61094cf40b6dab13215a919b3e235b950d7" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'Sekiro.Split' coverage is below the threshold 50%", + "markdown": "Class `Sekiro.Split` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splits/Sekiro/Split.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 23, + "startColumn": 16, + "charOffset": 938, + "charLength": 5, + "snippet": { + "text": "Split" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 21, + "startColumn": 1, + "charOffset": 882, + "charLength": 141, + "snippet": { + "text": "namespace SoulSplitter.Splits.Sekiro;\r\n\r\ninternal class Split\r\n{\r\n public Split(TimingType timingType, SplitType splitType, object split)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a89f2a73008e3e03", + "equalIndicator/v1": "6f03ce7620d9eaf6d329c1cd8319fffd9ca085ec31ff98ca82aaabbec6fe99b6" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadFloat' coverage is below the threshold 50%", + "markdown": "Method `ReadFloat` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 238, + "startColumn": 18, + "charOffset": 6238, + "charLength": 9, + "snippet": { + "text": "ReadFloat" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 236, + "startColumn": 1, + "charOffset": 6212, + "charLength": 129, + "snippet": { + "text": " }\r\n\r\n public float ReadFloat(long? offset = null)\r\n {\r\n return BitConverter.ToSingle(ReadMemory(offset, 4), 0);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5a684c1570d3a96a", + "equalIndicator/v1": "6f3c1829704212d67dffda6ceca6c34de52964ecdc753ee5bcd805bbb32baf26" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'Generic.FilteredComboBox' coverage is below the threshold 50%", + "markdown": "Class `Generic.FilteredComboBox` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/FilteredComboBox.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 26, + "startColumn": 14, + "charOffset": 1112, + "charLength": 16, + "snippet": { + "text": "FilteredComboBox" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 24, + "startColumn": 1, + "charOffset": 981, + "charLength": 209, + "snippet": { + "text": "\r\n//https://stackoverflow.com/questions/2001842/dynamic-filter-of-wpf-combobox-based-on-text-input/41986141#41986141\r\npublic class FilteredComboBox : ComboBox\r\n{\r\n private string _oldFilter = string.Empty;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ae9e3922554ceb24", + "equalIndicator/v1": "6f603cca226554feaec87986997302be2684d0e95bf4df44e8c13c87d6262a11" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteItemLotParam' coverage is below the threshold 50%", + "markdown": "Method `WriteItemLotParam` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 368, + "startColumn": 17, + "charOffset": 12732, + "charLength": 17, + "snippet": { + "text": "WriteItemLotParam" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 366, + "startColumn": 1, + "charOffset": 12707, + "charLength": 128, + "snippet": { + "text": " }\r\n\r\n public void WriteItemLotParam(int rowId, Action accessor)\r\n {\r\n if (!_itemLotParams.Any())\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "71b1479c0ef4bd8d", + "equalIndicator/v1": "6fa3340fa400258cccdc64c60d60bb65ba35078b92ed36e53cbb6d22c84e4ed0" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'DrawVertical' coverage is below the threshold 50%", + "markdown": "Method `DrawVertical` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/SoulComponent.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 200, + "startColumn": 17, + "charOffset": 7277, + "charLength": 12, + "snippet": { + "text": "DrawVertical" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 198, + "startColumn": 1, + "charOffset": 7252, + "charLength": 210, + "snippet": { + "text": " }\r\n\r\n public void DrawVertical(Graphics g, LiveSplitState state, float width, Region clipRegion)\r\n {\r\n //Soulsplitter doesn't draw to livesplit's window, but must implement the full interface.\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f269decc2fe24bfe", + "equalIndicator/v1": "6fb65c58e78c5d23102e113f5fa2cbb349c7228bdf001a5e94f62beeecfe251b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'UnregisterHotKey' coverage is below the threshold 50%", + "markdown": "Method `UnregisterHotKey` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Hotkeys/GlobalHotKey.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 78, + "startColumn": 24, + "charOffset": 2655, + "charLength": 16, + "snippet": { + "text": "UnregisterHotKey" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 76, + "startColumn": 1, + "charOffset": 2623, + "charLength": 107, + "snippet": { + "text": " }\r\n\r\n public static void UnregisterHotKey(int id)\r\n {\r\n if (Hotkeys.All(i => i.id != id))\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "2714872a8729fb8e", + "equalIndicator/v1": "6ffaee646c4cea5776c2d2cc1de816520ed5849cf048397d6b2aef610270793d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_NewSplitGrace' coverage is below the threshold 50%", + "markdown": "Method `get_NewSplitGrace` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 159, + "startColumn": 9, + "charOffset": 4715, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 157, + "startColumn": 1, + "charOffset": 4667, + "charLength": 95, + "snippet": { + "text": " public Grace? NewSplitGrace\r\n {\r\n get => _newSplitGrace;\r\n set\r\n {\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "645e6d7a9c3d89cc", + "equalIndicator/v1": "6fffd88d9e4dda8945acba6ab4f4e0c83546cfcb1fe94cfbb8f6d6640c35e01c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'InitPointers' coverage is below the threshold 50%", + "markdown": "Method `InitPointers` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/EldenRing.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 149, + "startColumn": 37, + "charOffset": 5792, + "charLength": 12, + "snippet": { + "text": "InitPointers" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 147, + "startColumn": 1, + "charOffset": 5752, + "charLength": 75, + "snippet": { + "text": "\r\n\r\n private ResultErr InitPointers()\r\n {\r\n try\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "3d93f6918dcee625", + "equalIndicator/v1": "700f5c2b0ab716ffe933b809663389ac5f0ab525ebeb36526d7ed93f92b042f9" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ToString' coverage is below the threshold 50%", + "markdown": "Method `ToString` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 135, + "startColumn": 28, + "charOffset": 3772, + "charLength": 8, + "snippet": { + "text": "ToString" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 133, + "startColumn": 1, + "charOffset": 3688, + "charLength": 141, + "snippet": { + "text": " public string Path { get; private set; } = null!;\r\n\r\n public override string ToString()\r\n {\r\n var sb = new StringBuilder();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "25f68b15d78921b8", + "equalIndicator/v1": "705524982893ea34ce65e3e1c149dcb8378778e4fcb62441e18fae70091c97df" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'Memory.PointerPath' coverage is below the threshold 50%", + "markdown": "Class `Memory.PointerPath` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/PointerPath.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 19, + "startColumn": 14, + "charOffset": 861, + "charLength": 11, + "snippet": { + "text": "PointerPath" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 17, + "startColumn": 1, + "charOffset": 807, + "charLength": 94, + "snippet": { + "text": "namespace SoulMemory.MemoryV2.Memory;\r\n\r\npublic class PointerPath\r\n{\r\n public long Offset;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a0a6a18cc9ea1ccb", + "equalIndicator/v1": "705c48bbce4af3c2dd632447df759881e732baeaa57be039470d836daae10adc" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'Parameters.ParamFieldAttribute' coverage is below the threshold 50%", + "markdown": "Class `Parameters.ParamFieldAttribute` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/ParamFieldAttribute.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 19, + "startColumn": 16, + "charOffset": 858, + "charLength": 19, + "snippet": { + "text": "ParamFieldAttribute" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 17, + "startColumn": 1, + "charOffset": 807, + "charLength": 117, + "snippet": { + "text": "namespace SoulMemory.Parameters;\r\n\r\ninternal class ParamFieldAttribute : System.Attribute\r\n{\r\n public int Offset;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "bf1908c372e64978", + "equalIndicator/v1": "706c6691eda656d8c636d1e7419c54e3970691e2383b8b355bb0e307b013a88c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_CommandRemoveEventFlag' coverage is below the threshold 50%", + "markdown": "Method `get_CommandRemoveEventFlag` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/FlagTrackerViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 362, + "startColumn": 9, + "charOffset": 11207, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 360, + "startColumn": 1, + "charOffset": 11144, + "charLength": 169, + "snippet": { + "text": " public RelayCommand CommandRemoveEventFlag\r\n {\r\n get => _commandRemoveEventFlag;\r\n set => this.SetField(ref _commandRemoveEventFlag, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "540f346e309fa533", + "equalIndicator/v1": "707af621d319049017cc03e2ab0057568fc91423d6911012e30ceebef97b947d" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'DarkSouls1.Sl2Reader' coverage is below the threshold 50%", + "markdown": "Class `DarkSouls1.Sl2Reader` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Sl2Reader.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 37, + "startColumn": 23, + "charOffset": 1346, + "charLength": 9, + "snippet": { + "text": "Sl2Reader" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 35, + "startColumn": 1, + "charOffset": 1284, + "charLength": 216, + "snippet": { + "text": " IV: First 16 bytes of each file\r\n*/\r\ninternal static class Sl2Reader\r\n{\r\n private static readonly byte[] AesKey = [0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF, 0xFE, 0xDC, 0xBA, 0x98, 0x76, 0x54, 0x32, 0x10\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "1863a4590fec98dc", + "equalIndicator/v1": "709482ded3363803c058bf0fc35d977d324dc8c136eaa0371d3f0b3b24cbcf0b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_Category' coverage is below the threshold 50%", + "markdown": "Method `set_Category` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 489, + "startColumn": 9, + "charOffset": 15269, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 487, + "startColumn": 1, + "charOffset": 15227, + "charLength": 126, + "snippet": { + "text": " {\r\n get => _category;\r\n set => this.SetField(ref _category, value);\r\n }\r\n private Category _category;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "1bc31d6967e6e59e", + "equalIndicator/v1": "7106df02db19bd52b86a4bbf5d3037fc797b50a556e7006fa9ed31bf6b5baf90" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'SoulSplitter.SoulComponentFactory' coverage is below the threshold 50%", + "markdown": "Class `SoulSplitter.SoulComponentFactory` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/SoulComponentFactory.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 27, + "startColumn": 14, + "charOffset": 1005, + "charLength": 20, + "snippet": { + "text": "SoulComponentFactory" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 25, + "startColumn": 1, + "charOffset": 965, + "charLength": 140, + "snippet": { + "text": "namespace SoulSplitter;\r\n\r\npublic class SoulComponentFactory : IComponentFactory\r\n{\r\n public string ComponentName => SoulComponent.Name;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e4addaba11a4feaa", + "equalIndicator/v1": "71075d055724ad08619799b83a8a4a11f232ce167a72a0b645bd3cb51deeaede" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'EldenRing.EldenRing' coverage is below the threshold 50%", + "markdown": "Class `EldenRing.EldenRing` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/EldenRing.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 27, + "startColumn": 14, + "charOffset": 1050, + "charLength": 9, + "snippet": { + "text": "EldenRing" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 25, + "startColumn": 1, + "charOffset": 1002, + "charLength": 101, + "snippet": { + "text": "namespace SoulMemory.EldenRing;\r\n\r\npublic class EldenRing : IGame\r\n{\r\n private Process? _process;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "41ef084e6d366acf", + "equalIndicator/v1": "7146269e2d695354ecb4ca8178c9dc26d66bad1eded6d50be5025c9f508957e2" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'FilterItem' coverage is below the threshold 50%", + "markdown": "Method `FilterItem` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/FilteredComboBox.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 140, + "startColumn": 18, + "charOffset": 4214, + "charLength": 10, + "snippet": { + "text": "FilterItem" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 138, + "startColumn": 1, + "charOffset": 4188, + "charLength": 102, + "snippet": { + "text": " }\r\n\r\n private bool FilterItem(object value)\r\n {\r\n if (Text.Length == 0) return true;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0d1d0689c7112427", + "equalIndicator/v1": "716db41487d8e974876e78586144255d64cf28f649a7f5fd32514e5bcab75d4f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'IsJapanese' coverage is below the threshold 50%", + "markdown": "Method `IsJapanese` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 489, + "startColumn": 18, + "charOffset": 17049, + "charLength": 10, + "snippet": { + "text": "IsJapanese" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 487, + "startColumn": 1, + "charOffset": 16979, + "charLength": 207, + "snippet": { + "text": " /// \r\n /// bool\r\n private bool IsJapanese()\r\n {\r\n // Calls DarkSoulsRemastered.exe+C8820 (1.03, different address in 1.03.1) and then writes the value of eax\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ba1996215385f441", + "equalIndicator/v1": "717c71b7640efbb4b53cfa9c760b1e26fc8530dc362c0ad66efc09eb4de50184" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadBytes' coverage is below the threshold 50%", + "markdown": "Method `ReadBytes` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/IMemory.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 30, + "startColumn": 19, + "charOffset": 1083, + "charLength": 9, + "snippet": { + "text": "ReadBytes" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 28, + "startColumn": 1, + "charOffset": 1009, + "charLength": 140, + "snippet": { + "text": "public class ByteArrayMemory(byte[] data) : IMemory\r\n{\r\n public byte[] ReadBytes(long? offset, int length)\r\n {\r\n offset ??= 0;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "adca8760fa1c3c0e", + "equalIndicator/v1": "71ed824a37682b3b82533be178e2760548bda803bfae1483e2e6e8eb3e278d42" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Constructor 'ParamFieldAttribute' coverage is below the threshold 50%", + "markdown": "Constructor `ParamFieldAttribute` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/ParamFieldAttribute.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 31, + "startColumn": 12, + "charOffset": 1142, + "charLength": 19, + "snippet": { + "text": "ParamFieldAttribute" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 29, + "startColumn": 1, + "charOffset": 1122, + "charLength": 121, + "snippet": { + "text": " }\r\n\r\n public ParamFieldAttribute(int offset, ParamType paramType, int arraySize)\r\n {\r\n Offset = offset;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "64d7378b8e360bf3", + "equalIndicator/v1": "7256285b026a903fd59f0498acdef65ae6322f9af16401bceb1ef248343bbcb7" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_VisibleBossSplit' coverage is below the threshold 50%", + "markdown": "Method `set_VisibleBossSplit` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 152, + "startColumn": 9, + "charOffset": 4551, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 150, + "startColumn": 1, + "charOffset": 4501, + "charLength": 146, + "snippet": { + "text": " {\r\n get => _visibleBossSplit;\r\n set => this.SetField(ref _visibleBossSplit, value);\r\n }\r\n private bool _visibleBossSplit;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "fd0209239051e87c", + "equalIndicator/v1": "730ff1edc4da206841a852d01311de9bba2da875147ed3e1f336a202900f13a0" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteInt16' coverage is below the threshold 50%", + "markdown": "Method `WriteInt16` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 264, + "startColumn": 17, + "charOffset": 6910, + "charLength": 10, + "snippet": { + "text": "WriteInt16" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 262, + "startColumn": 1, + "charOffset": 6823, + "charLength": 192, + "snippet": { + "text": " public void WriteInt16(short value) => WriteInt16(null, value);\r\n\r\n public void WriteInt16(long? offset, short value)\r\n {\r\n WriteMemory(offset, BitConverter.GetBytes(value));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c86a8bbfc7504b70", + "equalIndicator/v1": "7322d157903335b112fceac0c27d4332839a86d331dfbfbaee1c7703c1991ecd" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'DarkSouls2.Scholar' coverage is below the threshold 50%", + "markdown": "Class `DarkSouls2.Scholar` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls2/scholar.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 24, + "startColumn": 16, + "charOffset": 963, + "charLength": 7, + "snippet": { + "text": "Scholar" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 22, + "startColumn": 1, + "charOffset": 912, + "charLength": 108, + "snippet": { + "text": "namespace SoulMemory.DarkSouls2;\r\n\r\ninternal class Scholar : IDarkSouls2\r\n{\r\n private Process? _process;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "3905975fd2a76464", + "equalIndicator/v1": "73446037f46ce36c734a31748c2fb1274e2ee8b4b8f9220ff7f6211633fee926" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_DataOffset' coverage is below the threshold 50%", + "markdown": "Method `set_DataOffset` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/TextTableEntry.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 22, + "startColumn": 35, + "charOffset": 953, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 20, + "startColumn": 1, + "charOffset": 872, + "charLength": 135, + "snippet": { + "text": "{\r\n public uint ItemLowRange { get; set; }\r\n public uint DataOffset { get; set; }\r\n public uint ItemHighRange { get; set; }\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d3ffb60049f51f72", + "equalIndicator/v1": "73512b7463387072fd60961c10b1164280f22c4b8287634015e89d24ec51c0c6" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'BoyerMooreSearch' coverage is below the threshold 50%", + "markdown": "Method `BoyerMooreSearch` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 294, + "startColumn": 30, + "charOffset": 11368, + "charLength": 16, + "snippet": { + "text": "BoyerMooreSearch" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 292, + "startColumn": 1, + "charOffset": 11272, + "charLength": 198, + "snippet": { + "text": " /// Will return the first match it finds.\r\n /// \r\n public static List BoyerMooreSearch(this byte[] haystack, byte?[] needle)\r\n {\r\n var result = new List();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7bb4eaa9b6cbbc82", + "equalIndicator/v1": "744b7dc52e22a67b05ee0ac987f6f2fe0ac5cb9b6399bc1f70f35d3ab92db380" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetMainModule' coverage is below the threshold 50%", + "markdown": "Method `GetMainModule` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Process/ProcessWrapper.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 30, + "startColumn": 34, + "charOffset": 1234, + "charLength": 13, + "snippet": { + "text": "GetMainModule" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 28, + "startColumn": 1, + "charOffset": 1075, + "charLength": 338, + "snippet": { + "text": " public System.Diagnostics.Process? GetProcess() => _process;\r\n public bool Is64Bit() => _process?.Is64Bit() ?? false;\r\n public ProcessWrapperModule? GetMainModule() => _process?.MainModule == null ? null : ProcessWrapperModule.FromProcessModule(_process.MainModule);\r\n\r\n public List GetProcessModules()\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5245347eb8cbbb0d", + "equalIndicator/v1": "749b3ec9b456a0bbf89f15b96fad7c5ae4e801a64a832674246bfff75727c8df" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'OnStart' coverage is below the threshold 50%", + "markdown": "Method `OnStart` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls2Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 56, + "startColumn": 18, + "charOffset": 1923, + "charLength": 7, + "snippet": { + "text": "OnStart" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 54, + "startColumn": 1, + "charOffset": 1890, + "charLength": 99, + "snippet": { + "text": " #region \r\n\r\n private void OnStart(object sender, EventArgs e)\r\n {\r\n StartTimer();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "1b4181fbed540719", + "equalIndicator/v1": "74cd28d1c525dbf384bf0529540630d85dcd99e4a59097722913f317178a0d2a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_VisibleKnownFlagSplit' coverage is below the threshold 50%", + "markdown": "Method `get_VisibleKnownFlagSplit` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 259, + "startColumn": 9, + "charOffset": 7219, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 257, + "startColumn": 1, + "charOffset": 7165, + "charLength": 158, + "snippet": { + "text": " public bool VisibleKnownFlagSplit\r\n {\r\n get => _visibleKnownFlagSplit;\r\n set => this.SetField(ref _visibleKnownFlagSplit, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d91df009fb1507ba", + "equalIndicator/v1": "754636cadbc739e8914e6f078e8be58466e60f3f482373e3237fddd954b78cf3" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetTreeBuilder' coverage is below the threshold 50%", + "markdown": "Method `GetTreeBuilder` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls2/scholar.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 37, + "startColumn": 24, + "charOffset": 1725, + "charLength": 14, + "snippet": { + "text": "GetTreeBuilder" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 35, + "startColumn": 1, + "charOffset": 1516, + "charLength": 279, + "snippet": { + "text": " public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, \"darksoulsii\", InitPointers, ResetPointers);\r\n public int GetInGameTimeMilliseconds() => 0;\r\n public TreeBuilder GetTreeBuilder()\r\n {\r\n var treeBuilder = new TreeBuilder();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7e9a2f3e0708cec9", + "equalIndicator/v1": "75d8c46fc9c5ea07c4271755e8c1e53b40f1375272a313394beb303a4995f03d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'OnStart' coverage is below the threshold 50%", + "markdown": "Method `OnStart` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/EldenRingSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 139, + "startColumn": 18, + "charOffset": 4781, + "charLength": 7, + "snippet": { + "text": "OnStart" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 137, + "startColumn": 1, + "charOffset": 4603, + "charLength": 244, + "snippet": { + "text": " //Thats why autostarting will take care of this and doesn't need the event.\r\n //However, we still need this event when players start the timer manually.\r\n private void OnStart(object sender, EventArgs e)\r\n {\r\n StartTimer();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "05ecaff2f012a429", + "equalIndicator/v1": "762b8a7f6863867ee05b5b16e48077c6f0faad43b6da1c4a73c4871047f281b6" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_VisibleGraceSplit' coverage is below the threshold 50%", + "markdown": "Method `get_VisibleGraceSplit` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 171, + "startColumn": 9, + "charOffset": 4996, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 169, + "startColumn": 1, + "charOffset": 4946, + "charLength": 146, + "snippet": { + "text": " public bool VisibleGraceSplit\r\n {\r\n get => _visibleGraceSplit;\r\n set => this.SetField(ref _visibleGraceSplit, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a67dab43cb1d479a", + "equalIndicator/v1": "7647781b0b124028c27f08916df4dad2d8a9ec130e62667395bcb8d45fd4100c" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'AddRefreshError' coverage is below the threshold 50%", + "markdown": "Method `AddRefreshError` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/MainViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 151, + "startColumn": 17, + "charOffset": 5271, + "charLength": 15, + "snippet": { + "text": "AddRefreshError" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 149, + "startColumn": 1, + "charOffset": 5246, + "charLength": 219, + "snippet": { + "text": " }\r\n\r\n public void AddRefreshError(RefreshError error)\r\n {\r\n if(IgnoreProcessNotRunningErrors && error.Reason == RefreshErrorReason.ProcessNotRunning || error.Reason == RefreshErrorReason.ProcessExited)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ee4d2799759c2d41", + "equalIndicator/v1": "768051e06eea633dea85393b7cad22796d9f4d37b9635f50c126fbac45b72ebc" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'EldenRing.PositionViewModel' coverage is below the threshold 50%", + "markdown": "Class `EldenRing.PositionViewModel` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/PositionViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 23, + "startColumn": 14, + "charOffset": 953, + "charLength": 17, + "snippet": { + "text": "PositionViewModel" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 21, + "startColumn": 1, + "charOffset": 900, + "charLength": 111, + "snippet": { + "text": "namespace SoulSplitter.UI.EldenRing;\r\n\r\npublic class PositionViewModel : ICustomNotifyPropertyChanged\r\n{\r\n \r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "2bbe01d751ff298e", + "equalIndicator/v1": "768f8f2ebc7db7fbc6511c5dbd3f7117fbe1565309b3043db92ca5e53a10ca17" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Constructor 'SekiroSplitter' coverage is below the threshold 50%", + "markdown": "Constructor `SekiroSplitter` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/SekiroSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 37, + "startColumn": 12, + "charOffset": 1362, + "charLength": 14, + "snippet": { + "text": "SekiroSplitter" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 35, + "startColumn": 1, + "charOffset": 1298, + "charLength": 150, + "snippet": { + "text": " private MainViewModel _mainViewModel = null!;\r\n\r\n public SekiroSplitter(LiveSplitState state, Sekiro sekiro)\r\n {\r\n _sekiro = sekiro;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ab39f3f2882688ad", + "equalIndicator/v1": "76f9d99426b8aea50e3e7b63d0de1c0a91c21e18bd4034c60318f2dab6f39263" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Constructor 'ErrorWindow' coverage is below the threshold 50%", + "markdown": "Constructor `ErrorWindow` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/ErrorWindow.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 26, + "startColumn": 12, + "charOffset": 995, + "charLength": 11, + "snippet": { + "text": "ErrorWindow" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 24, + "startColumn": 1, + "charOffset": 938, + "charLength": 110, + "snippet": { + "text": "public partial class ErrorWindow : Window\r\n{\r\n public ErrorWindow()\r\n {\r\n InitializeComponent();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f9b178c122743b8a", + "equalIndicator/v1": "773efde8793763f6c0327504277c3e30c2f398a5cbfe747f9c3046f923821f0a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get__Signature' coverage is below the threshold 50%", + "markdown": "Method `get__Signature` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Native/Structs/Image/IMAGE_NT_HEADERS32.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 39, + "startColumn": 9, + "charOffset": 1278, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 37, + "startColumn": 1, + "charOffset": 1261, + "charLength": 101, + "snippet": { + "text": " {\r\n\r\n get { return Encoding.ASCII.GetString(BitConverter.GetBytes(Signature)); }\r\n }\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "bc99439b16be3c3d", + "equalIndicator/v1": "77445c49f4d1ca4b31e339770acfb01a0976ed7c365e2a385cff083c045b1ab6" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'Dispose' coverage is below the threshold 50%", + "markdown": "Method `Dispose` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/EldenRingSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 55, + "startColumn": 17, + "charOffset": 1892, + "charLength": 7, + "snippet": { + "text": "Dispose" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 53, + "startColumn": 1, + "charOffset": 1867, + "charLength": 66, + "snippet": { + "text": " }\r\n\r\n public void Dispose()\r\n {\r\n Dispose(true);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "28a31a67cc45c578", + "equalIndicator/v1": "783ddc21449bfd6873cdd72c5b9f80f230f7d33e5eb0c81d7b86edfbb949ed63" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_SelectedSplit' coverage is below the threshold 50%", + "markdown": "Method `set_SelectedSplit` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 268, + "startColumn": 9, + "charOffset": 9246, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 266, + "startColumn": 1, + "charOffset": 9199, + "charLength": 117, + "snippet": { + "text": " {\r\n get => _selectedSplit;\r\n set\r\n {\r\n this.SetField(ref _selectedSplit, value);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "934fe4030a31c052", + "equalIndicator/v1": "785a4ef478a5353eba3c62aae9eaa900b9124212adda003c09a32dc36a074303" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetBossKillCount' coverage is below the threshold 50%", + "markdown": "Method `GetBossKillCount` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls2/DarkSouls2.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 33, + "startColumn": 16, + "charOffset": 1422, + "charLength": 16, + "snippet": { + "text": "GetBossKillCount" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 31, + "startColumn": 1, + "charOffset": 1238, + "charLength": 449, + "snippet": { + "text": " public bool IsLoading() => _darkSouls2?.IsLoading() ?? false;\r\n public bool ReadEventFlag(uint eventFlagId) => _darkSouls2?.ReadEventFlag(eventFlagId) ?? false;\r\n public int GetBossKillCount(BossType bossType) => _darkSouls2?.GetBossKillCount(bossType) ?? 0;\r\n public int GetAttribute(Attribute attribute) => _darkSouls2?.GetAttribute(attribute) ?? 0;\r\n public TreeBuilder GetTreeBuilder() => _darkSouls2?.GetTreeBuilder() ?? null!;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4f41684ab83452f9", + "equalIndicator/v1": "786e43ce164e7705e18e5cef1960bb696d1e730ae15ec0f7320d85f883134c5a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetProcess' coverage is below the threshold 50%", + "markdown": "Method `GetProcess` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/EldenRing.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 47, + "startColumn": 21, + "charOffset": 1805, + "charLength": 10, + "snippet": { + "text": "GetProcess" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 45, + "startColumn": 1, + "charOffset": 1654, + "charLength": 313, + "snippet": { + "text": "\r\n #region Refresh/init/reset ================================================================================================\r\n public Process? GetProcess() => _process;\r\n\r\n public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, \"eldenring\", InitPointers, ResetPointers);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "bc5d93e3ce98f4e6", + "equalIndicator/v1": "7884a8e9396f2a0ff4fcb736bd98787f7b74b39a5a33f71638e9ad28e7679990" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadInt32' coverage is below the threshold 50%", + "markdown": "Method `ReadInt32` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 200, + "startColumn": 16, + "charOffset": 5242, + "charLength": 9, + "snippet": { + "text": "ReadInt32" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 198, + "startColumn": 1, + "charOffset": 5207, + "charLength": 137, + "snippet": { + "text": "\r\n #region Read\r\n public int ReadInt32(long? offset = null)\r\n {\r\n return BitConverter.ToInt32(ReadMemory(offset, 4), 0);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9a15e96a49586cf0", + "equalIndicator/v1": "78b56775f833c75de3f9c2ec293f34f6b769d97f9ee90dd0316e579244bdb948" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteWeaponDescription' coverage is below the threshold 50%", + "markdown": "Method `WriteWeaponDescription` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 539, + "startColumn": 17, + "charOffset": 19021, + "charLength": 22, + "snippet": { + "text": "WriteWeaponDescription" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 537, + "startColumn": 1, + "charOffset": 18996, + "charLength": 172, + "snippet": { + "text": " }\r\n\r\n public void WriteWeaponDescription(uint weaponId, string description)\r\n {\r\n var weaponDescriptionsPointer = _msgMan.CreatePointerFromAddress(0x358);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4d392f2260d66200", + "equalIndicator/v1": "78eb40909650591f9ed59224da6e5dc49e87f2eb9e021cd1144f770d5469d610" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_Children' coverage is below the threshold 50%", + "markdown": "Method `get_Children` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/SplitViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 36, + "startColumn": 76, + "charOffset": 1391, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 34, + "startColumn": 1, + "charOffset": 1277, + "charLength": 176, + "snippet": { + "text": " private TimingType _timingType;\r\n\r\n public ObservableCollection Children { get; set; } = [];\r\n\r\n #region ICustomNotifyPropertyChanged\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e871dce56f06586b", + "equalIndicator/v1": "79464ed17b61372bbaa4931da3c074493cea290f0ed1810547c96a70234c529d" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get__e_magic' coverage is below the threshold 50%", + "markdown": "Method `get__e_magic` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Native/Structs/Image/IMAGE_DOS_HEADER.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 49, + "startColumn": 9, + "charOffset": 2281, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 47, + "startColumn": 1, + "charOffset": 2237, + "charLength": 89, + "snippet": { + "text": " private string _e_magic\r\n {\r\n get { return new string(e_magic); }\r\n }\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ffce0a19366e1179", + "equalIndicator/v1": "7962812c0ccfaf6d5ebc8123fec158bc7f9789241e52c46ae4eb5baca50b6c5b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'AddPointer' coverage is below the threshold 50%", + "markdown": "Method `AddPointer` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/PointerAppender.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 27, + "startColumn": 28, + "charOffset": 1055, + "charLength": 10, + "snippet": { + "text": "AddPointer" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 25, + "startColumn": 1, + "charOffset": 1019, + "charLength": 130, + "snippet": { + "text": " }\r\n\r\n public PointerAppender AddPointer(Pointer pointer, params long[] offsets)\r\n {\r\n var node = new PointerNode\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "44e7fae72c1e3d36", + "equalIndicator/v1": "79b6011ae7c09aa79b11f257ceeae268dcd065b5ab3179b5cbffd40e22c9a015" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'Dispose' coverage is below the threshold 50%", + "markdown": "Method `Dispose` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls1Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 77, + "startColumn": 17, + "charOffset": 2716, + "charLength": 7, + "snippet": { + "text": "Dispose" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 75, + "startColumn": 1, + "charOffset": 2691, + "charLength": 66, + "snippet": { + "text": " }\r\n\r\n public void Dispose()\r\n {\r\n Dispose(true);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f79a4d44817118e6", + "equalIndicator/v1": "7a1fdbc0a4aab3b6f84b3eeab1813cfa201efd2117871a061f8550b45dd1bbce" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Constructor 'RefreshError' coverage is below the threshold 50%", + "markdown": "Constructor `RefreshError` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/RefreshError.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 40, + "startColumn": 12, + "charOffset": 1314, + "charLength": 12, + "snippet": { + "text": "RefreshError" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 38, + "startColumn": 1, + "charOffset": 1294, + "charLength": 114, + "snippet": { + "text": " }\r\n\r\n public RefreshError(RefreshErrorReason reason, Exception exception)\r\n {\r\n Reason = reason;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7b6985484467f4d3", + "equalIndicator/v1": "7a536bf47681925a42214b9a8409f9c67505cf4e5db17b8a745767d61138939b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Constructor 'DarkSouls3Splitter' coverage is below the threshold 50%", + "markdown": "Constructor `DarkSouls3Splitter` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls3Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 37, + "startColumn": 12, + "charOffset": 1394, + "charLength": 18, + "snippet": { + "text": "DarkSouls3Splitter" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 35, + "startColumn": 1, + "charOffset": 1330, + "charLength": 168, + "snippet": { + "text": " private MainViewModel _mainViewModel = null!;\r\n\r\n public DarkSouls3Splitter(LiveSplitState state, DarkSouls3 darkSouls)\r\n {\r\n _darkSouls3 = darkSouls;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "6c9e77021457cb86", + "equalIndicator/v1": "7a582943b1aad02dcf27439d123fc6ef8460d59ad07b5eb446b60a984211f0ca" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteBytes' coverage is below the threshold 50%", + "markdown": "Method `WriteBytes` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/IMemory.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 118, + "startColumn": 24, + "charOffset": 3686, + "charLength": 10, + "snippet": { + "text": "WriteBytes" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 116, + "startColumn": 1, + "charOffset": 3642, + "charLength": 231, + "snippet": { + "text": " #region Write\r\n\r\n public static void WriteBytes(this IMemory memory, byte[] value) => memory.WriteBytes(null, value);\r\n\r\n public static void WriteInt16(this IMemory memory, short value) => memory.WriteInt16(null, value);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c5535fc5c0f680b9", + "equalIndicator/v1": "7a9a96dcf19afb93c843a29c9df74120e44e46b04d84a66b8728390a5d424671" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'RegisterHotKey' coverage is below the threshold 50%", + "markdown": "Method `RegisterHotKey` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Hotkeys/GlobalHotKey.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 57, + "startColumn": 23, + "charOffset": 1983, + "charLength": 14, + "snippet": { + "text": "RegisterHotKey" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 55, + "startColumn": 1, + "charOffset": 1952, + "charLength": 182, + "snippet": { + "text": " }\r\n\r\n public static int RegisterHotKey(ModifierKeys modifier, Key key, Action action)\r\n {\r\n WindowReadyEvent.WaitOne(); //wait for hotkey window to have initialized\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c986fe90d091484c", + "equalIndicator/v1": "7a9eb5b338fa9e607ec62b92a248e364c9fe92d28a3714392b4d1be9e4dd28dd" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'RemoveSplit' coverage is below the threshold 50%", + "markdown": "Method `RemoveSplit` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 398, + "startColumn": 17, + "charOffset": 12380, + "charLength": 11, + "snippet": { + "text": "RemoveSplit" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 396, + "startColumn": 1, + "charOffset": 12301, + "charLength": 136, + "snippet": { + "text": " private HierarchicalSplitViewModel? _selectedSplit;\r\n \r\n public void RemoveSplit()\r\n {\r\n if (SelectedSplit != null)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "05b99bb3e365c969", + "equalIndicator/v1": "7aadfcf1530db9a6dc2f4914beae2c3a8d955be1832d168aeb6cb0c9fbe5ae4f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_Level' coverage is below the threshold 50%", + "markdown": "Method `get_Level` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splits/DarkSouls2/Attribute.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 36, + "startColumn": 9, + "charOffset": 1350, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 34, + "startColumn": 1, + "charOffset": 1313, + "charLength": 109, + "snippet": { + "text": " public int Level\r\n {\r\n get => _level;\r\n set => this.SetField(ref _level, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "64a718986cefed40", + "equalIndicator/v1": "7af3d7cbd59b71d85ef3be368e6ff244fe5f64716eb631b01d73c9a97283c6f1" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_ModuleName' coverage is below the threshold 50%", + "markdown": "Method `set_ModuleName` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Process/ProcessWrapperModule.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 24, + "startColumn": 37, + "charOffset": 967, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 22, + "startColumn": 1, + "charOffset": 893, + "charLength": 186, + "snippet": { + "text": "public class ProcessWrapperModule\r\n{\r\n public string ModuleName { get; set; } = null!;\r\n public string FileName { get; set; } = null!;\r\n public IntPtr BaseAddress { get; set; }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "cc272e116b3c866e", + "equalIndicator/v1": "7b000be212ed0a7cc3bb15842b3a59371187cde8fc1eaedddaa781ea27aa549c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_Region' coverage is below the threshold 50%", + "markdown": "Method `set_Region` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/PositionViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 44, + "startColumn": 9, + "charOffset": 1391, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 42, + "startColumn": 1, + "charOffset": 1343, + "charLength": 107, + "snippet": { + "text": " {\r\n get => Position.Region;\r\n set => this.SetField(ref Position.Region, value);\r\n }\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "68b5df5288121e39", + "equalIndicator/v1": "7bc2b88debb9a82ca0a7ab9d4e43382d69b6214dea1e1919f439536af4255cf0" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'AddPointer' coverage is below the threshold 50%", + "markdown": "Method `AddPointer` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerAppender.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 29, + "startColumn": 28, + "charOffset": 1113, + "charLength": 10, + "snippet": { + "text": "AddPointer" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 27, + "startColumn": 1, + "charOffset": 1077, + "charLength": 130, + "snippet": { + "text": " }\r\n\r\n public PointerAppender AddPointer(Pointer pointer, params long[] offsets)\r\n {\r\n var node = new PointerNode\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "86705f16ddbec2a8", + "equalIndicator/v1": "7be1e4428b6e663c626d9eadaecfafa08fedc7574861b486316d66f0a0b01e60" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Constructor 'BaseParam' coverage is below the threshold 50%", + "markdown": "Constructor `BaseParam` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/BaseParam.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 33, + "startColumn": 15, + "charOffset": 1375, + "charLength": 9, + "snippet": { + "text": "BaseParam" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 31, + "startColumn": 1, + "charOffset": 1230, + "charLength": 289, + "snippet": { + "text": " private readonly List<(PropertyInfo propertyInfo, ParamBitFieldAttribute paramFieldAttribute)> _paramBitfieldPropertyCache;\r\n\r\n protected BaseParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry)\r\n {\r\n BasePointer = basePointer;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9e187e680ab132eb", + "equalIndicator/v1": "7c046ae1197bf06a2cdc594829d92a8c2b83ed2ccb7271bc4b908067220d5200" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_RemoveSplit' coverage is below the threshold 50%", + "markdown": "Method `get_RemoveSplit` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 265, + "startColumn": 9, + "charOffset": 11613, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 263, + "startColumn": 1, + "charOffset": 11561, + "charLength": 185, + "snippet": { + "text": " public RelayCommand RemoveSplit\r\n {\r\n get => (RelayCommand)GetValue(RemoveSplitDependencyProperty);\r\n set => SetValue(RemoveSplitDependencyProperty, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "3ddd315217cee011", + "equalIndicator/v1": "7c212e9c4826be9cbf177ac4f65465e8c454159d377f053f686656bf0fdedc5f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_SelectedFlagDescription' coverage is below the threshold 50%", + "markdown": "Method `get_SelectedFlagDescription` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/FlagTrackerViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 346, + "startColumn": 9, + "charOffset": 10724, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 344, + "startColumn": 1, + "charOffset": 10656, + "charLength": 176, + "snippet": { + "text": " public FlagDescription? SelectedFlagDescription\r\n {\r\n get => _selectedFlagDescription;\r\n set => this.SetField(ref _selectedFlagDescription, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d5e82f22857dc917", + "equalIndicator/v1": "7c5dfdeab5fd1a0bc9c7d5b93c083926a6b46b9a5713c4384acbf55004a908e5" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'Dispose' coverage is below the threshold 50%", + "markdown": "Method `Dispose` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/SoulComponent.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 219, + "startColumn": 28, + "charOffset": 8026, + "charLength": 7, + "snippet": { + "text": "Dispose" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 217, + "startColumn": 1, + "charOffset": 7956, + "charLength": 133, + "snippet": { + "text": " GC.SuppressFinalize(this);\r\n }\r\n protected virtual void Dispose(bool disposing)\r\n {\r\n if (_splitter != null)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "57321fb6768df62d", + "equalIndicator/v1": "7dc2fe84860cc665d27e9ac85906857ec303ff4bb68717849d3b71387c5bab4b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_Size' coverage is below the threshold 50%", + "markdown": "Method `get_Size` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/PositionViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 49, + "startColumn": 9, + "charOffset": 1488, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 47, + "startColumn": 1, + "charOffset": 1451, + "charLength": 123, + "snippet": { + "text": " public byte Size\r\n {\r\n get => Position.Size;\r\n set => this.SetField(ref Position.Size, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "fbe10003c099ab82", + "equalIndicator/v1": "7dd18f0d4bc46d8794aee45ceab06f19e4cc9da076c5ef50ab607bb8746ff2fb" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'IsPlayerLoaded' coverage is below the threshold 50%", + "markdown": "Method `IsPlayerLoaded` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/EldenRing.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 312, + "startColumn": 17, + "charOffset": 11042, + "charLength": 14, + "snippet": { + "text": "IsPlayerLoaded" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 310, + "startColumn": 1, + "charOffset": 11017, + "charLength": 95, + "snippet": { + "text": " }\r\n\r\n public bool IsPlayerLoaded()\r\n {\r\n var player = _playerIns.ReadInt64();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9baaafdb27abf612", + "equalIndicator/v1": "7dea8e7f2f99e28a33e7ad697f6192b7bfb9682a7610851c47f573d902c613f8" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'Generic.SplitsTree' coverage is below the threshold 50%", + "markdown": "Class `Generic.SplitsTree` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/SplitsTree.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 25, + "startColumn": 22, + "charOffset": 997, + "charLength": 10, + "snippet": { + "text": "SplitsTree" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 23, + "startColumn": 1, + "charOffset": 917, + "charLength": 133, + "snippet": { + "text": "/// Interaction logic for SplitsTree.xaml\r\n/// \r\npublic partial class SplitsTree : UserControl\r\n{\r\n public SplitsTree()\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5fec85b6f9f4ca04", + "equalIndicator/v1": "7f0792e87e07474b541761fc6c6b0c31992db3318b69d198a66bef41839ce2c7" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetEldenRingViewModel' coverage is below the threshold 50%", + "markdown": "Method `GetEldenRingViewModel` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 33, + "startColumn": 32, + "charOffset": 1179, + "charLength": 21, + "snippet": { + "text": "GetEldenRingViewModel" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 31, + "startColumn": 1, + "charOffset": 1135, + "charLength": 129, + "snippet": { + "text": " }\r\n \r\n private EldenRingViewModel GetEldenRingViewModel()\r\n {\r\n return (DataContext as EldenRingViewModel)!;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a8a1f3c9ec7dc473", + "equalIndicator/v1": "7f24c86fbbe5254f8fdd2c4718548e0725ac2721c430f87be56d9c89b81c6b5c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'OnStart' coverage is below the threshold 50%", + "markdown": "Method `OnStart` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/BaseSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 98, + "startColumn": 25, + "charOffset": 3090, + "charLength": 7, + "snippet": { + "text": "OnStart" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 96, + "startColumn": 1, + "charOffset": 3057, + "charLength": 164, + "snippet": { + "text": " }\r\n\r\n public virtual void OnStart() { }\r\n public virtual ResultErr OnUpdate() { return Result.Ok();}\r\n public virtual void OnReset() { }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "67630fa82330f9f6", + "equalIndicator/v1": "7f7be0eeb33e3aaeaa8cc50f16fbaeebcf182f9caf5f717981fb330bdff0d118" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ToString' coverage is below the threshold 50%", + "markdown": "Method `ToString` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Result.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 206, + "startColumn": 28, + "charOffset": 4844, + "charLength": 8, + "snippet": { + "text": "ToString" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 204, + "startColumn": 1, + "charOffset": 4808, + "charLength": 100, + "snippet": { + "text": " }\r\n\r\n public override string ToString()\r\n {\r\n return IsOk ? $\"Ok: {_ok}\" : $\"Err\";\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "22cb6b26c0f46762", + "equalIndicator/v1": "7f7ce356d74d5e862b757d9ecc7f428a0825f94cde9b1ab9b1f380da0c36cca2" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ImportXml' coverage is below the threshold 50%", + "markdown": "Method `ImportXml` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/SoulComponent.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 230, + "startColumn": 18, + "charOffset": 8327, + "charLength": 9, + "snippet": { + "text": "ImportXml" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 228, + "startColumn": 1, + "charOffset": 8171, + "charLength": 188, + "snippet": { + "text": " #region Xml settings ==============================================================================================================\r\n\r\n private void ImportXml()\r\n {\r\n try\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7909e2804dc27555", + "equalIndicator/v1": "7fb2b0e06263cb6d97ca54702318daf9fb1d12bc839d5bc868918b764c6b8c20" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'OnReset' coverage is below the threshold 50%", + "markdown": "Method `OnReset` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/BaseSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 100, + "startColumn": 25, + "charOffset": 3207, + "charLength": 7, + "snippet": { + "text": "OnReset" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 98, + "startColumn": 1, + "charOffset": 3066, + "charLength": 173, + "snippet": { + "text": " public virtual void OnStart() { }\r\n public virtual ResultErr OnUpdate() { return Result.Ok();}\r\n public virtual void OnReset() { }\r\n\r\n #endregion\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "07b69bb7da1c9d98", + "equalIndicator/v1": "7fde8bc0fc04143952bb448335c4ca8da534da3389ab8ea8008d85ef98135472" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'Handle' coverage is below the threshold 50%", + "markdown": "Method `Handle` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Result.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 300, + "startColumn": 17, + "charOffset": 6927, + "charLength": 6, + "snippet": { + "text": "Handle" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 298, + "startColumn": 1, + "charOffset": 6902, + "charLength": 104, + "snippet": { + "text": " }\r\n\r\n public void Handle(Action okAction, Action errAction)\r\n {\r\n if (IsOk)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a8874115ed61ee84", + "equalIndicator/v1": "7fe6f6371e2267b428d76bd055f3229070b8bcf94640eb558716528071a2d4c0" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'Memory.Extensions' coverage is below the threshold 50%", + "markdown": "Class `Memory.Extensions` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/Extensions.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 23, + "startColumn": 21, + "charOffset": 922, + "charLength": 10, + "snippet": { + "text": "Extensions" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 21, + "startColumn": 1, + "charOffset": 870, + "charLength": 123, + "snippet": { + "text": "namespace SoulMemory.Memory;\r\n\r\npublic static class Extensions\r\n{\r\n public static string ToHexString(this byte[] bytes)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "46f9a53ca542c29e", + "equalIndicator/v1": "806e627249e32e96035a9e3cefcbdd6760de14e104684a6954d3fb11faffa547" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ToString' coverage is below the threshold 50%", + "markdown": "Method `ToString` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/Position.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 30, + "startColumn": 28, + "charOffset": 1057, + "charLength": 8, + "snippet": { + "text": "ToString" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 28, + "startColumn": 1, + "charOffset": 1007, + "charLength": 159, + "snippet": { + "text": " public float Z;\r\n\r\n public override string ToString()\r\n {\r\n return $\"m{Area:D2}_{Block:D2}_{Region:D2}_{Size:D2} - ({X:F2}, {Y:F2}, {Z:F2})\";\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "2fefcf3923cb03ae", + "equalIndicator/v1": "812da137f027f71dceecbb53c9a440501ed358e5138e568385ce4867d1429e24" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_ItemHighRange' coverage is below the threshold 50%", + "markdown": "Method `set_ItemHighRange` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/TextTableEntry.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 23, + "startColumn": 38, + "charOffset": 998, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 21, + "startColumn": 1, + "charOffset": 875, + "charLength": 199, + "snippet": { + "text": " public uint ItemLowRange { get; set; }\r\n public uint DataOffset { get; set; }\r\n public uint ItemHighRange { get; set; }\r\n\r\n public override string ToString() => ItemLowRange.ToString();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "af9ba9837c0f69cd", + "equalIndicator/v1": "81c902b8912d694bd128eb14bec1a780a1ea3e9f4e516d75167a6a96eb058b06" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'Dispose' coverage is below the threshold 50%", + "markdown": "Method `Dispose` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/SekiroSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 76, + "startColumn": 28, + "charOffset": 2346, + "charLength": 7, + "snippet": { + "text": "Dispose" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 74, + "startColumn": 1, + "charOffset": 2310, + "charLength": 91, + "snippet": { + "text": " }\r\n\r\n protected virtual void Dispose(bool disposing)\r\n {\r\n if (disposing)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "1eeab7b424955558", + "equalIndicator/v1": "82b49dc5a144fa347665582f5666ec0ac5bfc47173c8e2a38c60264bed22210b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'EldenRing.EldenRingViewModel' coverage is below the threshold 50%", + "markdown": "Class `EldenRing.EldenRingViewModel` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 28, + "startColumn": 14, + "charOffset": 1098, + "charLength": 18, + "snippet": { + "text": "EldenRingViewModel" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 26, + "startColumn": 1, + "charOffset": 1045, + "charLength": 139, + "snippet": { + "text": "namespace SoulSplitter.UI.EldenRing;\r\n\r\npublic class EldenRingViewModel : ICustomNotifyPropertyChanged\r\n{\r\n public EldenRingViewModel()\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "1b3cb9c5097db0e9", + "equalIndicator/v1": "835e058b8246452f0006e56783a101ee5b7247050476a4c2872d768cc7197e65" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'Splitters.SekiroSplitter' coverage is below the threshold 50%", + "markdown": "Class `Splitters.SekiroSplitter` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/SekiroSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 30, + "startColumn": 14, + "charOffset": 1120, + "charLength": 14, + "snippet": { + "text": "SekiroSplitter" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 28, + "startColumn": 1, + "charOffset": 1070, + "charLength": 118, + "snippet": { + "text": "namespace SoulSplitter.Splitters;\r\n\r\npublic class SekiroSplitter : ISplitter\r\n{\r\n private readonly Sekiro _sekiro;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "2647eb1a1b225cb1", + "equalIndicator/v1": "836943d684f8684e85bd143462081d98b7db4b7f093e33d39158b71083561029" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_EldenRingSplitType' coverage is below the threshold 50%", + "markdown": "Method `get_EldenRingSplitType` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/SplitViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 58, + "startColumn": 9, + "charOffset": 1940, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 56, + "startColumn": 1, + "charOffset": 1875, + "charLength": 163, + "snippet": { + "text": " public EldenRingSplitType EldenRingSplitType\r\n {\r\n get => _eldenRingSplitType;\r\n set => this.SetField(ref _eldenRingSplitType, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "79b612c1b1b433de", + "equalIndicator/v1": "845149aa9820a49329f1cd8c19ad93b853211a4718fb4913c72a8350b1ea8bf9" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetTreeBuilder' coverage is below the threshold 50%", + "markdown": "Method `GetTreeBuilder` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 162, + "startColumn": 24, + "charOffset": 5747, + "charLength": 14, + "snippet": { + "text": "GetTreeBuilder" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 160, + "startColumn": 1, + "charOffset": 5715, + "charLength": 102, + "snippet": { + "text": " }\r\n\r\n public TreeBuilder GetTreeBuilder()\r\n {\r\n var treeBuilder = new TreeBuilder();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "53c03bea193ecad6", + "equalIndicator/v1": "85071a4340a77c175814c1887aff3558f1328994d0ccb8635199a62915b11c3e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ResetInventoryIndices' coverage is below the threshold 50%", + "markdown": "Method `ResetInventoryIndices` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 380, + "startColumn": 17, + "charOffset": 13325, + "charLength": 21, + "snippet": { + "text": "ResetInventoryIndices" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 378, + "startColumn": 1, + "charOffset": 13261, + "charLength": 133, + "snippet": { + "text": "\r\n //Imported from CapitaineToinon. Thanks!\r\n public void ResetInventoryIndices()\r\n {\r\n for (int i = 0; i < 20; i++)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "20df31243ec4d7a8", + "equalIndicator/v1": "85150218b59d5ff1aef7a0f34a810febbec528fe8798215922ff07ce22a89efc" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'UpdateTimer' coverage is below the threshold 50%", + "markdown": "Method `UpdateTimer` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls2Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 127, + "startColumn": 18, + "charOffset": 3612, + "charLength": 11, + "snippet": { + "text": "UpdateTimer" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 125, + "startColumn": 1, + "charOffset": 3586, + "charLength": 77, + "snippet": { + "text": " }\r\n\r\n private void UpdateTimer()\r\n {\r\n switch (_timerState)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d5895bcffe6ae2ca", + "equalIndicator/v1": "854d2e68b279d0fb3e5d1d3b16009bfcc20bc913f7dc06ee00c0fcaf70f1efe3" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadEventFlag' coverage is below the threshold 50%", + "markdown": "Method `ReadEventFlag` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 312, + "startColumn": 17, + "charOffset": 11097, + "charLength": 13, + "snippet": { + "text": "ReadEventFlag" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 310, + "startColumn": 1, + "charOffset": 11068, + "charLength": 138, + "snippet": { + "text": " }\r\n \r\n public bool ReadEventFlag(uint eventFlagId)\r\n {\r\n int offset = GetEventFlagOffset(eventFlagId, out uint mask);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d81f1c307b138c61", + "equalIndicator/v1": "8553057f503ad419937e18de78d02b6f7acf61ac53a9df8179436657ce4e666e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ToString' coverage is below the threshold 50%", + "markdown": "Method `ToString` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/PositionViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 73, + "startColumn": 28, + "charOffset": 1966, + "charLength": 8, + "snippet": { + "text": "ToString" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 71, + "startColumn": 1, + "charOffset": 1931, + "charLength": 90, + "snippet": { + "text": "\r\n \r\n public override string ToString()\r\n {\r\n return Position.ToString();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "72a604ce4d72b12f", + "equalIndicator/v1": "855a1069ac9faa96df2158a5220162814be3b52ab7d1e12eb3abbc606045725b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteBytes' coverage is below the threshold 50%", + "markdown": "Method `WriteBytes` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Process/ProcessWrapper.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 92, + "startColumn": 17, + "charOffset": 3208, + "charLength": 10, + "snippet": { + "text": "WriteBytes" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 90, + "startColumn": 1, + "charOffset": 3183, + "charLength": 136, + "snippet": { + "text": " }\r\n\r\n public void WriteBytes(long offset, byte[] bytes) => _process?.WriteProcessMemoryNoError(offset, bytes);\r\n\r\n #endregion\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b4ac8c43e4c93e72", + "equalIndicator/v1": "85b2682753def7a2c735e01c0f7200f591bced4facabbf07f0efe5bb8f094e47" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetTreeBuilder' coverage is below the threshold 50%", + "markdown": "Method `GetTreeBuilder` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls2/DarkSouls2.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 35, + "startColumn": 24, + "charOffset": 1627, + "charLength": 14, + "snippet": { + "text": "GetTreeBuilder" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 33, + "startColumn": 1, + "charOffset": 1407, + "charLength": 331, + "snippet": { + "text": " public int GetBossKillCount(BossType bossType) => _darkSouls2?.GetBossKillCount(bossType) ?? 0;\r\n public int GetAttribute(Attribute attribute) => _darkSouls2?.GetAttribute(attribute) ?? 0;\r\n public TreeBuilder GetTreeBuilder() => _darkSouls2?.GetTreeBuilder() ?? null!;\r\n\r\n public ResultErr TryRefresh()\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "62397ebde4261c2e", + "equalIndicator/v1": "8618e28e38e31e90a6c89e4f6b08bcd9d3b7eb7deb01a1c945504606be3754e9" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadUInt64' coverage is below the threshold 50%", + "markdown": "Method `ReadUInt64` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 83, + "startColumn": 25, + "charOffset": 2683, + "charLength": 10, + "snippet": { + "text": "ReadUInt64" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 81, + "startColumn": 1, + "charOffset": 2650, + "charLength": 156, + "snippet": { + "text": " }\r\n\r\n public static ulong ReadUInt64(this IMemory memory, long offset)\r\n {\r\n return BitConverter.ToUInt64(memory.ReadBytes(offset, 8), 0);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "cfcb2788761663e6", + "equalIndicator/v1": "8634a98f27de8078a3d0552e6945beb86c8f9be7af391a26610eca4619eb6271" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ResetAutoSplitting' coverage is below the threshold 50%", + "markdown": "Method `ResetAutoSplitting` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls3Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 192, + "startColumn": 17, + "charOffset": 5807, + "charLength": 18, + "snippet": { + "text": "ResetAutoSplitting" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 190, + "startColumn": 1, + "charOffset": 5750, + "charLength": 111, + "snippet": { + "text": " private List _splits = [];\r\n\r\n public void ResetAutoSplitting()\r\n {\r\n _splits.Clear();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "87dfcc97ff14aa81", + "equalIndicator/v1": "86603eda527a74b3295d84e117b14da0b8c7433d546bcf338a08c2a64e400460" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'SetVisibleCore' coverage is below the threshold 50%", + "markdown": "Method `SetVisibleCore` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Hotkeys/GlobalHotKey.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 116, + "startColumn": 29, + "charOffset": 3709, + "charLength": 14, + "snippet": { + "text": "SetVisibleCore" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 114, + "startColumn": 1, + "charOffset": 3672, + "charLength": 108, + "snippet": { + "text": " }\r\n\r\n protected override void SetVisibleCore(bool value)\r\n {\r\n base.SetVisibleCore(false);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "2154100e043645f4", + "equalIndicator/v1": "867dd15a9b0059714fe04c02b609721bdac3e4b3b87f41b12897eae22695ec5d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteUInt16' coverage is below the threshold 50%", + "markdown": "Method `WriteUInt16` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 269, + "startColumn": 17, + "charOffset": 7041, + "charLength": 11, + "snippet": { + "text": "WriteUInt16" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 267, + "startColumn": 1, + "charOffset": 7016, + "charLength": 139, + "snippet": { + "text": " }\r\n\r\n public void WriteUInt16(ushort value) => WriteUInt16(null, value);\r\n\r\n public void WriteUInt16(long? offset, ushort value)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0be68817cf73326d", + "equalIndicator/v1": "86a1793fd48571743fb84c47925254dd1e214e41b54a52eefccba5147c01e68f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Constructor 'FlagTrackerWindow' coverage is below the threshold 50%", + "markdown": "Constructor `FlagTrackerWindow` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/FlagTrackerWindow.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 24, + "startColumn": 12, + "charOffset": 957, + "charLength": 17, + "snippet": { + "text": "FlagTrackerWindow" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 22, + "startColumn": 1, + "charOffset": 894, + "charLength": 122, + "snippet": { + "text": "public partial class FlagTrackerWindow : Window\r\n{\r\n public FlagTrackerWindow()\r\n {\r\n InitializeComponent();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "6828242110504ce0", + "equalIndicator/v1": "871302c344bf3e0767ca909c5bac9ee300715f99a581b99ae9786b41e976fc7e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetInventory' coverage is below the threshold 50%", + "markdown": "Method `GetInventory` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 261, + "startColumn": 23, + "charOffset": 9186, + "charLength": 12, + "snippet": { + "text": "GetInventory" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 259, + "startColumn": 1, + "charOffset": 9156, + "charLength": 157, + "snippet": { + "text": " \r\n\r\n public List GetInventory()\r\n {\r\n //Path: GameDataMan->hostPlayerGameData->equipGameData.equipInventoryData.equipInventoryDataSub\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7ca767e4147a954e", + "equalIndicator/v1": "878414dc36bbfe14b7ab814f8534f99a9c9249e1d2d3d66f96d1eab48eb7ac23" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_VisiblePositionSplit' coverage is below the threshold 50%", + "markdown": "Method `get_VisiblePositionSplit` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 231, + "startColumn": 9, + "charOffset": 6464, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 229, + "startColumn": 1, + "charOffset": 6411, + "charLength": 155, + "snippet": { + "text": " public bool VisiblePositionSplit\r\n {\r\n get => _visiblePositionSplit;\r\n set => this.SetField(ref _visiblePositionSplit, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "30a5cc9370c3b308", + "equalIndicator/v1": "87bcf2371c628f755b21b82edf2d93d0fa0f655700ca65d444cb78ead4e7a4c6" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'AreCreditsRolling' coverage is below the threshold 50%", + "markdown": "Method `AreCreditsRolling` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 251, + "startColumn": 17, + "charOffset": 8839, + "charLength": 17, + "snippet": { + "text": "AreCreditsRolling" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 249, + "startColumn": 1, + "charOffset": 8815, + "charLength": 99, + "snippet": { + "text": "\r\n \r\n public bool AreCreditsRolling()\r\n {\r\n var first = _menuMan.ReadInt32(0xc8);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0339afca5e17fd5c", + "equalIndicator/v1": "87f83eeba6bd47633eafaaffba69ecaeeb266d2fd136829ade79603e1bd1cd8d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Constructor 'ResultOk' coverage is below the threshold 50%", + "markdown": "Constructor `ResultOk` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Result.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 169, + "startColumn": 13, + "charOffset": 4024, + "charLength": 8, + "snippet": { + "text": "ResultOk" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 167, + "startColumn": 1, + "charOffset": 4003, + "charLength": 62, + "snippet": { + "text": " }\r\n\r\n private ResultOk()\r\n {\r\n IsOk = false;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "980df3d7d28f2f03", + "equalIndicator/v1": "881e10fbcf4b8f5e2a8814ace5953c923ea2af4cbcf8db880b9a84a20bfd85b8" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'DarkSouls1.DropMod' coverage is below the threshold 50%", + "markdown": "Class `DarkSouls1.DropMod` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/DropMod.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 22, + "startColumn": 14, + "charOffset": 913, + "charLength": 7, + "snippet": { + "text": "DropMod" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 20, + "startColumn": 1, + "charOffset": 864, + "charLength": 110, + "snippet": { + "text": "namespace SoulMemory.DarkSouls1;\r\n\r\npublic class DropMod(IDarkSouls1 darkSouls)\r\n{\r\n public void InitBkh()\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7ea8a73fe1c5d01d", + "equalIndicator/v1": "886568204a40b8e1a94f066484df2def8ab17961d4191d98fab06a8728aefd71" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadByte' coverage is below the threshold 50%", + "markdown": "Method `ReadByte` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 47, + "startColumn": 24, + "charOffset": 1564, + "charLength": 8, + "snippet": { + "text": "ReadByte" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 45, + "startColumn": 1, + "charOffset": 1514, + "charLength": 148, + "snippet": { + "text": " #region Reading\r\n \r\n public static byte ReadByte(this IMemory memory, long offset)\r\n {\r\n return memory.ReadBytes(offset, 1)[0];\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a22e70bf3c195c78", + "equalIndicator/v1": "88c5fe70649189d9dac72728a2c41dac90430c1376c3a4cbebf2976768209f73" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'DarkSouls1.ItemState' coverage is below the threshold 50%", + "markdown": "Class `DarkSouls1.ItemState` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splits/DarkSouls1/ItemState.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 26, + "startColumn": 14, + "charOffset": 1049, + "charLength": 9, + "snippet": { + "text": "ItemState" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 24, + "startColumn": 1, + "charOffset": 997, + "charLength": 127, + "snippet": { + "text": "\r\n[XmlType(Namespace = \"DarkSouls1\")]\r\npublic class ItemState : ICustomNotifyPropertyChanged\r\n{\r\n public ItemType? ItemType\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "828f00507ccb3171", + "equalIndicator/v1": "88f0c02105e36380cfd53520585e1e5452c12d9e2620b4ffcd9a8e3cae275dce" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'soulmods.Soulmods' coverage is below the threshold 50%", + "markdown": "Class `soulmods.Soulmods` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/soulmods/Soulmods.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 48, + "startColumn": 21, + "charOffset": 1560, + "charLength": 8, + "snippet": { + "text": "Soulmods" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 46, + "startColumn": 1, + "charOffset": 1535, + "charLength": 85, + "snippet": { + "text": "}\r\n\r\npublic static class Soulmods\r\n{\r\n public static bool Inject(Process process)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4f9435f252e4192c", + "equalIndicator/v1": "88f66433205f6f7c390f21831560f32e8f226968ad7bbe02bfed3a3876dda52d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadInt16' coverage is below the threshold 50%", + "markdown": "Method `ReadInt16` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/IMemory.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 84, + "startColumn": 25, + "charOffset": 2688, + "charLength": 9, + "snippet": { + "text": "ReadInt16" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 82, + "startColumn": 1, + "charOffset": 2655, + "charLength": 162, + "snippet": { + "text": " }\r\n\r\n public static short ReadInt16(this IMemory memory, long? offset = null)\r\n {\r\n return BitConverter.ToInt16(memory.ReadBytes(offset, 2), 0);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7d218a136c5a9a92", + "equalIndicator/v1": "890255b190af951cc9cfabb2915c76519c8f9bee5157707360602d5c37e8707c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Constructor 'ResultOk' coverage is below the threshold 50%", + "markdown": "Constructor `ResultOk` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Result.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 175, + "startColumn": 13, + "charOffset": 4112, + "charLength": 8, + "snippet": { + "text": "ResultOk" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 173, + "startColumn": 1, + "charOffset": 4091, + "charLength": 67, + "snippet": { + "text": " }\r\n\r\n private ResultOk(TOk ok)\r\n {\r\n IsOk = true;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "eeb853f68842f345", + "equalIndicator/v1": "890869e96c350bb4547c2eaf7eecd30e7c9b79df6ed684234a7ae230b0b2c8ac" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'OnStart' coverage is below the threshold 50%", + "markdown": "Method `OnStart` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/ArmoredCore6Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 32, + "startColumn": 26, + "charOffset": 1262, + "charLength": 7, + "snippet": { + "text": "OnStart" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 30, + "startColumn": 1, + "charOffset": 1164, + "charLength": 147, + "snippet": { + "text": " private readonly ArmoredCore6 _armoredCore6 = (ArmoredCore6)game;\r\n\r\n public override void OnStart()\r\n {\r\n //Copy splits on start\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c15f64485f63c562", + "equalIndicator/v1": "89300e99487685e7d34e2d7bee2b507ffa9578fad0c8c150666ef62a94a61b33" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'InitPointers' coverage is below the threshold 50%", + "markdown": "Method `InitPointers` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 78, + "startColumn": 37, + "charOffset": 3418, + "charLength": 12, + "snippet": { + "text": "InitPointers" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 76, + "startColumn": 1, + "charOffset": 3378, + "charLength": 75, + "snippet": { + "text": "\r\n\r\n private ResultErr InitPointers()\r\n {\r\n try\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4703f139f41e1e2b", + "equalIndicator/v1": "898019be15bf4ac1d4c24fa89c4ed686a8b6fb1180446b1cc3f15fb63f28079d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_FlagDescription' coverage is below the threshold 50%", + "markdown": "Method `set_FlagDescription` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/FlagTrackerViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 339, + "startColumn": 9, + "charOffset": 10523, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 337, + "startColumn": 1, + "charOffset": 10474, + "charLength": 162, + "snippet": { + "text": " {\r\n get => _flagDescription;\r\n set => this.SetField(ref _flagDescription, value);\r\n }\r\n private FlagDescription _flagDescription = new();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5a9ae75d7e25a764", + "equalIndicator/v1": "89977d80c1ddf3af4a77c92bb1d56a46f5d1a555769d920805566ab647982d25" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetProcess' coverage is below the threshold 50%", + "markdown": "Method `GetProcess` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/DarkSouls1.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 30, + "startColumn": 21, + "charOffset": 1135, + "charLength": 10, + "snippet": { + "text": "GetProcess" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 28, + "startColumn": 1, + "charOffset": 1073, + "charLength": 303, + "snippet": { + "text": "{\r\n private IDarkSouls1? _darkSouls1;\r\n public Process? GetProcess() => _darkSouls1?.GetProcess();\r\n public int GetAttribute(Attribute attribute) => _darkSouls1?.GetAttribute(attribute) ?? 0;\r\n public bool ReadEventFlag(uint eventFlagId) => _darkSouls1?.ReadEventFlag(eventFlagId) ?? false;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d2ce9acae38bc75d", + "equalIndicator/v1": "89cea257cccaa6a075eb85d4b38bbf7dd33107e5775e820c05c81029ef738e2c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'Launch' coverage is below the threshold 50%", + "markdown": "Method `Launch` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/soulmemory-rs/SoulMemoryRs.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 28, + "startColumn": 24, + "charOffset": 1064, + "charLength": 6, + "snippet": { + "text": "Launch" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 26, + "startColumn": 1, + "charOffset": 1004, + "charLength": 116, + "snippet": { + "text": "public static class SoulMemoryRs\r\n{\r\n public static void Launch()\r\n {\r\n var games = new List()\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "fc130d17acc7b847", + "equalIndicator/v1": "8a5b7f13152db5e04e52215fec4a6b87edba94e9ce4ae574c37c89da17985569" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'Native.User32' coverage is below the threshold 50%", + "markdown": "Class `Native.User32` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Native/User32.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 22, + "startColumn": 21, + "charOffset": 917, + "charLength": 6, + "snippet": { + "text": "User32" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 20, + "startColumn": 1, + "charOffset": 863, + "charLength": 104, + "snippet": { + "text": "namespace SoulSplitter.Native;\r\n\r\npublic static class User32\r\n{\r\n private static class NativeMethods\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d53e90a98de7fbc5", + "equalIndicator/v1": "8a7ff41e786dd1ab5644832ceed6cdec5cf6af7d564cd17bbac8824059f807fc" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'Memory.MemoryScanner' coverage is below the threshold 50%", + "markdown": "Class `Memory.MemoryScanner` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 26, + "startColumn": 21, + "charOffset": 1036, + "charLength": 13, + "snippet": { + "text": "MemoryScanner" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 24, + "startColumn": 1, + "charOffset": 975, + "charLength": 246, + "snippet": { + "text": "namespace SoulMemory.MemoryV2.Memory;\r\n\r\npublic static class MemoryScanner\r\n{\r\n #region Validate patterns from file ==============================================================================================================================\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "deb20dcde882d26d", + "equalIndicator/v1": "8aa1c32f586d894a24fd49761ff6fea39b56ef9f8b9eb9f4b30c7b10992c52df" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'UpdateAutoSplitter' coverage is below the threshold 50%", + "markdown": "Method `UpdateAutoSplitter` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/SekiroSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 211, + "startColumn": 17, + "charOffset": 6071, + "charLength": 18, + "snippet": { + "text": "UpdateAutoSplitter" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 209, + "startColumn": 1, + "charOffset": 6042, + "charLength": 105, + "snippet": { + "text": " }\r\n \r\n public void UpdateAutoSplitter()\r\n {\r\n if (_timerState != TimerState.Running)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a4db247517fe4d6a", + "equalIndicator/v1": "8ac83be58fab004fa2b15b688ba26acdd5b247e1dc1f81abb62b469c975d4403" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'InitPointers' coverage is below the threshold 50%", + "markdown": "Method `InitPointers` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Sekiro/Sekiro.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 122, + "startColumn": 37, + "charOffset": 5244, + "charLength": 12, + "snippet": { + "text": "InitPointers" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 120, + "startColumn": 1, + "charOffset": 5199, + "charLength": 128, + "snippet": { + "text": " }\r\n\r\n private ResultErr InitPointers()\r\n {\r\n Thread.Sleep(3000); //Give sekiro some time to boot\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c3ebe40d1d79b394", + "equalIndicator/v1": "8af744e91ffad86fa122a47ca263cd46d846a9a447a4c3e045a9c335fc6f1296" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_Split' coverage is below the threshold 50%", + "markdown": "Method `set_Split` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/SplitViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 92, + "startColumn": 9, + "charOffset": 2887, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 90, + "startColumn": 1, + "charOffset": 2848, + "charLength": 123, + "snippet": { + "text": " {\r\n get => _split;\r\n set => this.SetField(ref _split, value);\r\n }\r\n private object _split = null!;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "94e1e57d7af8ee32", + "equalIndicator/v1": "8b0fec967e7a57edab6e5628f37846e4479ccb6c76284e8603686dbe78e5c341" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'Dispose' coverage is below the threshold 50%", + "markdown": "Method `Dispose` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls2Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 68, + "startColumn": 17, + "charOffset": 2180, + "charLength": 7, + "snippet": { + "text": "Dispose" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 66, + "startColumn": 1, + "charOffset": 2155, + "charLength": 66, + "snippet": { + "text": " }\r\n\r\n public void Dispose()\r\n {\r\n Dispose(true);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c4cb13048376b9c6", + "equalIndicator/v1": "8b1ee1f414436159c62de38a9572c64222e6ca66c504892a7e99d0dd4738832a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetScreenState' coverage is below the threshold 50%", + "markdown": "Method `GetScreenState` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/EldenRing.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 318, + "startColumn": 24, + "charOffset": 11178, + "charLength": 14, + "snippet": { + "text": "GetScreenState" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 316, + "startColumn": 1, + "charOffset": 11142, + "charLength": 130, + "snippet": { + "text": " }\r\n \r\n public ScreenState GetScreenState()\r\n {\r\n var screenState = _menuManImp.ReadInt32(_screenStateOffset);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a2590fda6f78b5ae", + "equalIndicator/v1": "8b3b85ff18a1d03d0371be85c83adb1f39c82e3ac436117f991fd44ec23b170c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetTreeBuilder' coverage is below the threshold 50%", + "markdown": "Method `GetTreeBuilder` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls2/vanilla.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 47, + "startColumn": 24, + "charOffset": 1907, + "charLength": 14, + "snippet": { + "text": "GetTreeBuilder" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 45, + "startColumn": 1, + "charOffset": 1875, + "charLength": 102, + "snippet": { + "text": " }\r\n\r\n public TreeBuilder GetTreeBuilder()\r\n {\r\n var treeBuilder = new TreeBuilder();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e5c10219857cb67d", + "equalIndicator/v1": "8b4300cf6147bef3c6cde1f342424f3a96881260c91ac3288d0d2e976ec5ff62" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'SoulMemory.ContainerErr' coverage is below the threshold 50%", + "markdown": "Class `SoulMemory.ContainerErr` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Result.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 340, + "startColumn": 14, + "charOffset": 7879, + "charLength": 12, + "snippet": { + "text": "ContainerErr" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 338, + "startColumn": 1, + "charOffset": 7736, + "charLength": 200, + "snippet": { + "text": "/// Container type for Err, used to distinguish between Ok and Err in implicit conversions between result types.\r\n/// \r\npublic class ContainerErr(T t) : Container(t);\r\n\r\n/// \r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b65e98e9e84d0cac", + "equalIndicator/v1": "8b7a2a7cd8940819bed7492048e5e592de8484747f161ef87274133c3a4f7bf3" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'CopyPosition_OnClick' coverage is below the threshold 50%", + "markdown": "Method `CopyPosition_OnClick` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2Control.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 89, + "startColumn": 18, + "charOffset": 3008, + "charLength": 20, + "snippet": { + "text": "CopyPosition_OnClick" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 87, + "startColumn": 1, + "charOffset": 2982, + "charLength": 180, + "snippet": { + "text": " }\r\n\r\n private void CopyPosition_OnClick(object sender, RoutedEventArgs e)\r\n {\r\n _darkSouls2ViewModel.NewSplitValue = _darkSouls2ViewModel.CurrentPosition.Clone();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "1832bb1a94053fdd", + "equalIndicator/v1": "8bf56e43a04dc9741312f2a7ea1c3bbc8c3523ffd6e388d5a78dad4f243d6b94" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'AddSplit_OnClick' coverage is below the threshold 50%", + "markdown": "Method `AddSplit_OnClick` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 38, + "startColumn": 18, + "charOffset": 1291, + "charLength": 16, + "snippet": { + "text": "AddSplit_OnClick" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 36, + "startColumn": 1, + "charOffset": 1265, + "charLength": 129, + "snippet": { + "text": " }\r\n\r\n private void AddSplit_OnClick(object sender, RoutedEventArgs e)\r\n {\r\n GetEldenRingViewModel().AddSplit();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ffe59a3ca913e198", + "equalIndicator/v1": "8c0ef2d79876ead9f696efc9bba6991c0a882b6a8bee238a76cf1785f11d1e4e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_Count' coverage is below the threshold 50%", + "markdown": "Method `set_Count` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splits/DarkSouls2/BossKill.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 38, + "startColumn": 9, + "charOffset": 1337, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 36, + "startColumn": 1, + "charOffset": 1298, + "charLength": 116, + "snippet": { + "text": " {\r\n get => _count;\r\n set => this.SetField(ref _count, value);\r\n }\r\n private int _count = 1;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "6240af049c15b224", + "equalIndicator/v1": "8d29e59f84d2120e1c45b7f521832f48b64f25e69a97f5c2b26011385d6a10b4" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'SetLoadingScreenItem' coverage is below the threshold 50%", + "markdown": "Method `SetLoadingScreenItem` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/DarkSouls1.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 47, + "startColumn": 17, + "charOffset": 2721, + "charLength": 20, + "snippet": { + "text": "SetLoadingScreenItem" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 45, + "startColumn": 1, + "charOffset": 2438, + "charLength": 381, + "snippet": { + "text": " public void WriteWeaponDescription(uint weaponId, string description) => _darkSouls1?.WriteWeaponDescription(weaponId, description);\r\n public void WriteItemLotParam(int rowId, Action accessor) => _darkSouls1?.WriteItemLotParam(rowId, accessor);\r\n public void SetLoadingScreenItem(int index, uint item) => _darkSouls1?.SetLoadingScreenItem(index, item);\r\n\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "83d80db79bd74761", + "equalIndicator/v1": "8d4347b2997a094ff8cbbc75b7fdbbf043c7e5cf13a35b378822fce43ea7a595" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_Path' coverage is below the threshold 50%", + "markdown": "Method `set_Path` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 133, + "startColumn": 39, + "charOffset": 3726, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 131, + "startColumn": 1, + "charOffset": 3644, + "charLength": 139, + "snippet": { + "text": "\r\n //Debug representation, shows in IDE\r\n public string Path { get; private set; } = null!;\r\n\r\n public override string ToString()\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "88da06b5c89264d1", + "equalIndicator/v1": "8d7ce32d4a838c9f79e4aeeb162152a8a58094831b8fe698081af6bfd14e978f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadUnicodeString' coverage is below the threshold 50%", + "markdown": "Method `ReadUnicodeString` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 98, + "startColumn": 26, + "charOffset": 3155, + "charLength": 17, + "snippet": { + "text": "ReadUnicodeString" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 96, + "startColumn": 1, + "charOffset": 3121, + "charLength": 184, + "snippet": { + "text": " }\r\n\r\n public static string ReadUnicodeString(this IMemory memory, long offset, out int length, int maxSize = 1000)\r\n {\r\n var data = memory.ReadBytes(offset, maxSize);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "cb230b224fa598c8", + "equalIndicator/v1": "8dbaf364aabef125eabc420377ed698be7aeff6c3bf9cd9acc54041ceb17ee1e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'IsLoading' coverage is below the threshold 50%", + "markdown": "Method `IsLoading` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 139, + "startColumn": 17, + "charOffset": 5177, + "charLength": 9, + "snippet": { + "text": "IsLoading" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 137, + "startColumn": 1, + "charOffset": 5152, + "charLength": 91, + "snippet": { + "text": " }\r\n\r\n public bool IsLoading()\r\n {\r\n return _loading.ReadInt32(-0x1) != 0;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "50579072f11c2484", + "equalIndicator/v1": "8dbe9f2b96e65e2c117e93ff09996cbcbfda9e86f5bf71fbb4fa1ed3848f2d5f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadBytes' coverage is below the threshold 50%", + "markdown": "Method `ReadBytes` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/ByteArrayMemory.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 27, + "startColumn": 19, + "charOffset": 1098, + "charLength": 9, + "snippet": { + "text": "ReadBytes" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 25, + "startColumn": 1, + "charOffset": 1024, + "charLength": 156, + "snippet": { + "text": "public class ByteArrayMemory(byte[] data) : IMemory\r\n{\r\n public byte[] ReadBytes(long offset, int length)\r\n {\r\n var buffer = new byte[length];\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5e37ff2519c7b8c5", + "equalIndicator/v1": "8df2818f33dab4e8c3d5a32ba7d27ed1a162b2d539807846013fc9aff5421c84" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ToString' coverage is below the threshold 50%", + "markdown": "Method `ToString` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/KnownFlagViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 33, + "startColumn": 28, + "charOffset": 1205, + "charLength": 8, + "snippet": { + "text": "ToString" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 31, + "startColumn": 1, + "charOffset": 1169, + "charLength": 76, + "snippet": { + "text": " }\r\n\r\n public override string ToString()\r\n {\r\n return Name;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7eb955db693c93ff", + "equalIndicator/v1": "8df69a71aef941d320d3d9862df745dbe9d989e9d2354eaed9dea26a718fac43" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_Items' coverage is below the threshold 50%", + "markdown": "Method `set_Items` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 236, + "startColumn": 9, + "charOffset": 10295, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 234, + "startColumn": 1, + "charOffset": 10182, + "charLength": 171, + "snippet": { + "text": " {\r\n get => (ObservableCollection>)GetValue(ItemsDependencyProperty);\r\n set => SetValue(ItemsDependencyProperty, value);\r\n }\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0198af1c79706c90", + "equalIndicator/v1": "8e5a09838879d5f39eb268eeba021eecf621f94b7baeaa4b8b760c4075825e87" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'DarkSouls3.DarkSouls3' coverage is below the threshold 50%", + "markdown": "Class `DarkSouls3.DarkSouls3` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 24, + "startColumn": 14, + "charOffset": 970, + "charLength": 10, + "snippet": { + "text": "DarkSouls3" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 22, + "startColumn": 1, + "charOffset": 921, + "charLength": 103, + "snippet": { + "text": "namespace SoulMemory.DarkSouls3;\r\n\r\npublic class DarkSouls3 : IGame\r\n{\r\n private Process? _process;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d5d60da3b95d6695", + "equalIndicator/v1": "8e62b942b7a14bbcf2bd24ceea92d1dbee95539471f834a9e5a87ff4ec026e04" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'StartAutoSplitting' coverage is below the threshold 50%", + "markdown": "Method `StartAutoSplitting` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls2Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 177, + "startColumn": 17, + "charOffset": 5097, + "charLength": 18, + "snippet": { + "text": "StartAutoSplitting" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 175, + "startColumn": 1, + "charOffset": 5072, + "charLength": 74, + "snippet": { + "text": " }\r\n\r\n public void StartAutoSplitting()\r\n {\r\n _splits = (\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "6d230c57af755132", + "equalIndicator/v1": "8f15226b721feee8cdde142bc52b9d87709b170a85d1add319b315f66ca32055" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_IsOk' coverage is below the threshold 50%", + "markdown": "Method `set_IsOk` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Result.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 219, + "startColumn": 39, + "charOffset": 5137, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 217, + "startColumn": 1, + "charOffset": 5035, + "charLength": 144, + "snippet": { + "text": " private readonly TOk _ok;\r\n private readonly TErr _err;\r\n public bool IsOk { get; protected set; }\r\n public bool IsErr => !IsOk;\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "38a154c6c6f71147", + "equalIndicator/v1": "8f3504b96b36f60fe2e65268ab0601e6486b2b5290281d3f4339fff35ca2fade" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'Update' coverage is below the threshold 50%", + "markdown": "Method `Update` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/BaseSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 45, + "startColumn": 36, + "charOffset": 1680, + "charLength": 6, + "snippet": { + "text": "Update" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 43, + "startColumn": 1, + "charOffset": 1595, + "charLength": 177, + "snippet": { + "text": " _timerModel.CurrentState = state;\r\n }\r\n public ResultErr Update(MainViewModel mainViewModel)\r\n {\r\n var refreshResult = _game.TryRefresh();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "6c6935c8898cd437", + "equalIndicator/v1": "8f4ae868ad3925c3f6a982e29946dec005341d5976d54cdaa2dae080b187bc63" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'OnKeyUp' coverage is below the threshold 50%", + "markdown": "Method `OnKeyUp` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/FilteredComboBox.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 80, + "startColumn": 29, + "charOffset": 2648, + "charLength": 7, + "snippet": { + "text": "OnKeyUp" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 78, + "startColumn": 1, + "charOffset": 2611, + "charLength": 92, + "snippet": { + "text": " }\r\n\r\n protected override void OnKeyUp(KeyEventArgs e)\r\n {\r\n switch (e.Key)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "411274f09cf20d3c", + "equalIndicator/v1": "8f69d8e87cb40edc3570889afc0bc323c2c904a4808b9f6d5fa01eb070f67222" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'Convert' coverage is below the threshold 50%", + "markdown": "Method `Convert` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Converters/DropModTypeConverter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 26, + "startColumn": 19, + "charOffset": 1026, + "charLength": 7, + "snippet": { + "text": "Convert" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 24, + "startColumn": 1, + "charOffset": 952, + "charLength": 261, + "snippet": { + "text": "public class DropModTypeConverter : IValueConverter\r\n{\r\n public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture)\r\n {\r\n if(value is DropModType valueDropModType && parameter is DropModType parameterDropModType)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "eac932d4a0c40044", + "equalIndicator/v1": "8fd30fe121ff65b1562b03d4ada5c4b9c4ad59542ce52b88391ad1338c25c387" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'Generic.SplitTemplateSelector' coverage is below the threshold 50%", + "markdown": "Class `Generic.SplitTemplateSelector` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/SplitTemplateSelector.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 23, + "startColumn": 14, + "charOffset": 930, + "charLength": 21, + "snippet": { + "text": "SplitTemplateSelector" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 21, + "startColumn": 1, + "charOffset": 879, + "charLength": 160, + "snippet": { + "text": "namespace SoulSplitter.UI.Generic;\r\n\r\npublic class SplitTemplateSelector : DataTemplateSelector\r\n{\r\n public DataTemplate EnumTemplate { get; set; } = null!;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c5005da2e2c2c476", + "equalIndicator/v1": "8feeaf90405d79c93b04b3f0c4304a16b7496fc0bdd10394aed723ee36769c0e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_ModuleMemorySize' coverage is below the threshold 50%", + "markdown": "Method `get_ModuleMemorySize` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Process/ProcessWrapperModule.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 27, + "startColumn": 35, + "charOffset": 1114, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 25, + "startColumn": 1, + "charOffset": 984, + "charLength": 224, + "snippet": { + "text": " public string FileName { get; set; } = null!;\r\n public IntPtr BaseAddress { get; set; }\r\n public int ModuleMemorySize { get; set; }\r\n\r\n public static ProcessWrapperModule FromProcessModule(ProcessModule module)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9aed581d11f2b9e6", + "equalIndicator/v1": "9019ab24a2b440fac4b16c4d60b56fb5e803f8e005487d3f02838ae632523b55" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_SelectedTimingType' coverage is below the threshold 50%", + "markdown": "Method `get_SelectedTimingType` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 292, + "startColumn": 9, + "charOffset": 12255, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 290, + "startColumn": 1, + "charOffset": 12198, + "charLength": 155, + "snippet": { + "text": " public TimingType SelectedTimingType\r\n {\r\n get => _selectedTimingType;\r\n set => this.SetField(ref _selectedTimingType, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "85d411a4fc5e6d8c", + "equalIndicator/v1": "902295024ba5d9cbfbfaaa8ad78d598af0f615cda5ac4604e93a6bc2c3a4965e" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Constructor 'Split' coverage is below the threshold 50%", + "markdown": "Constructor `Split` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splits/ArmoredCore6/Split.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 24, + "startColumn": 12, + "charOffset": 939, + "charLength": 5, + "snippet": { + "text": "Split" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 22, + "startColumn": 1, + "charOffset": 903, + "charLength": 141, + "snippet": { + "text": "internal class Split\r\n{\r\n public Split(TimingType timingType, SplitType splitType, object split)\r\n {\r\n TimingType = timingType;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ce3c3d391dc385af", + "equalIndicator/v1": "90e726cbce773453cb3b2d17ee2dafe3e24c91eb53ffa747883cf0856aea1878" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_CurrentPosition' coverage is below the threshold 50%", + "markdown": "Method `get_CurrentPosition` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 42, + "startColumn": 9, + "charOffset": 1503, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 40, + "startColumn": 1, + "charOffset": 1451, + "charLength": 144, + "snippet": { + "text": " public Vector3f CurrentPosition\r\n {\r\n get => _currentPosition;\r\n set => this.SetField(ref _currentPosition, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e3a8f0e6e2698fcd", + "equalIndicator/v1": "90ecc100ea8882ec78fdcd03b3c11f2cd281deb8221fefb72189ec113597a2dd" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadInt64' coverage is below the threshold 50%", + "markdown": "Method `ReadInt64` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/IMemory.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 64, + "startColumn": 24, + "charOffset": 2014, + "charLength": 9, + "snippet": { + "text": "ReadInt64" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 62, + "startColumn": 1, + "charOffset": 1982, + "charLength": 161, + "snippet": { + "text": " }\r\n\r\n public static long ReadInt64(this IMemory memory, long? offset = null)\r\n {\r\n return BitConverter.ToInt64(memory.ReadBytes(offset, 8), 0);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ec6490bd0727c691", + "equalIndicator/v1": "91638424906ae073c235ffd58d8d63964813ee43229e874d560928c9bd8d3e6d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_Split' coverage is below the threshold 50%", + "markdown": "Method `get_Split` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/HierarchicalViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 96, + "startColumn": 9, + "charOffset": 2994, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 94, + "startColumn": 1, + "charOffset": 2954, + "charLength": 112, + "snippet": { + "text": " public object Split\r\n {\r\n get => _split;\r\n set => this.SetField(ref _split, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "3321c43512483d76", + "equalIndicator/v1": "9222ab483a3ee8f58e9532ee106a81522a860524d1c1f15f87a9bb8763cca51d" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_Children' coverage is below the threshold 50%", + "markdown": "Method `set_Children` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/HierarchicalViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 38, + "startColumn": 81, + "charOffset": 1490, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 36, + "startColumn": 1, + "charOffset": 1367, + "charLength": 180, + "snippet": { + "text": " private TimingType _timingType;\r\n \r\n public ObservableCollection Children { get; set; } = [];\r\n\r\n #region ICustomNotifyPropertyChanged\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "2cdd04146a85067d", + "equalIndicator/v1": "92653259fe674f28008938f7b1b68d00c81d54abfc0c64f0fc710585dc2d9f7b" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_Block' coverage is below the threshold 50%", + "markdown": "Method `get_Block` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/PositionViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 37, + "startColumn": 9, + "charOffset": 1228, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 35, + "startColumn": 1, + "charOffset": 1190, + "charLength": 126, + "snippet": { + "text": " public byte Block\r\n {\r\n get => Position.Block;\r\n set => this.SetField(ref Position.Block, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "463c816bfd6f1ec3", + "equalIndicator/v1": "92731e52ad9bf7008f04ce195a5699e994ebb5be3c79773ab399117882e76bc1" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_NewSplitType' coverage is below the threshold 50%", + "markdown": "Method `set_NewSplitType` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 83, + "startColumn": 9, + "charOffset": 2571, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 81, + "startColumn": 1, + "charOffset": 2525, + "charLength": 115, + "snippet": { + "text": " {\r\n get => _newSplitType;\r\n set\r\n {\r\n this.SetField(ref _newSplitType, value);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e7d78c417cb90582", + "equalIndicator/v1": "92adddba47f60c3cf014c53bf6fcdc9d3fde345e8cbf42a7c37b57e5ab9f1980" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'Ok' coverage is below the threshold 50%", + "markdown": "Method `Ok` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Result.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 45, + "startColumn": 34, + "charOffset": 1586, + "charLength": 2, + "snippet": { + "text": "Ok" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 43, + "startColumn": 1, + "charOffset": 1544, + "charLength": 99, + "snippet": { + "text": " }\r\n\r\n public static ContainerOk Ok(T t)\r\n {\r\n return new ContainerOk(t);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "3f1fba9841740ace", + "equalIndicator/v1": "9322c517480fe598331cad0cef3dcfbd9c031cddd66948beb1f50b9c9e575795" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'RemoveEventFlag' coverage is below the threshold 50%", + "markdown": "Method `RemoveEventFlag` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/FlagTrackerViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 99, + "startColumn": 18, + "charOffset": 3286, + "charLength": 15, + "snippet": { + "text": "RemoveEventFlag" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 97, + "startColumn": 1, + "charOffset": 3260, + "charLength": 96, + "snippet": { + "text": " }\r\n\r\n private void RemoveEventFlag()\r\n {\r\n if(SelectedFlagDescription == null)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ccacb06f46ffcd32", + "equalIndicator/v1": "9324c8f48b4ccb71dd195fc4b3d665538dcaba7bb7b9a6a3917e7258084be31e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'Initialize' coverage is below the threshold 50%", + "markdown": "Method `Initialize` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 35, + "startColumn": 17, + "charOffset": 1184, + "charLength": 10, + "snippet": { + "text": "Initialize" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 33, + "startColumn": 1, + "charOffset": 1164, + "charLength": 138, + "snippet": { + "text": "\r\n\r\n public void Initialize(Process process, bool is64Bit, long baseAddress, params long[] offsets)\r\n {\r\n Process = process;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e05d390dd87da4f5", + "equalIndicator/v1": "937c5c12d272b259201cb558a47bd0001fe114d3ef482ee0e1a23ec870205824" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_KnownFlag' coverage is below the threshold 50%", + "markdown": "Method `get_KnownFlag` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/KnownFlagViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 40, + "startColumn": 9, + "charOffset": 1302, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 38, + "startColumn": 1, + "charOffset": 1255, + "charLength": 127, + "snippet": { + "text": " public KnownFlag KnownFlag\r\n {\r\n get => _knownFlag;\r\n set => this.SetField(ref _knownFlag, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "be3075f4a6268cae", + "equalIndicator/v1": "93a3f31c7bab2726b4b5d849bc2df74a34b58c9ddd8e76cfe7efaba44841c1ab" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'TreeView_SelectedItemChanged' coverage is below the threshold 50%", + "markdown": "Method `TreeView_SelectedItemChanged` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/FlagTrackerWindow.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 29, + "startColumn": 18, + "charOffset": 1043, + "charLength": 28, + "snippet": { + "text": "TreeView_SelectedItemChanged" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 27, + "startColumn": 1, + "charOffset": 1017, + "charLength": 190, + "snippet": { + "text": " }\r\n\r\n private void TreeView_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs e)\r\n {\r\n if (DataContext is FlagTrackerViewModel flagTrackerViewModel)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "19c584a3d9e8e43f", + "equalIndicator/v1": "93e47c5126220d6047962521731272261ec4c0978651aac660016ba4f0226322" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadEventFlag' coverage is below the threshold 50%", + "markdown": "Method `ReadEventFlag` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls2/DarkSouls2.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 32, + "startColumn": 17, + "charOffset": 1321, + "charLength": 13, + "snippet": { + "text": "ReadEventFlag" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 30, + "startColumn": 1, + "charOffset": 1154, + "charLength": 449, + "snippet": { + "text": " public Vector3f GetPosition() => _darkSouls2?.GetPosition() ?? new Vector3f();\r\n public bool IsLoading() => _darkSouls2?.IsLoading() ?? false;\r\n public bool ReadEventFlag(uint eventFlagId) => _darkSouls2?.ReadEventFlag(eventFlagId) ?? false;\r\n public int GetBossKillCount(BossType bossType) => _darkSouls2?.GetBossKillCount(bossType) ?? 0;\r\n public int GetAttribute(Attribute attribute) => _darkSouls2?.GetAttribute(attribute) ?? 0;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "bd8c140b44002e46", + "equalIndicator/v1": "9474aec9162dac0630df6fc59c537fbb216d82be9d34fc358f6b437d7ad2f9b1" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_NewSplitAttributeEnabled' coverage is below the threshold 50%", + "markdown": "Method `set_NewSplitAttributeEnabled` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 236, + "startColumn": 9, + "charOffset": 8385, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 234, + "startColumn": 1, + "charOffset": 8327, + "charLength": 170, + "snippet": { + "text": " {\r\n get => _newSplitAttributeEnabled;\r\n set => this.SetField(ref _newSplitAttributeEnabled, value);\r\n }\r\n private bool _newSplitAttributeEnabled;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ed1c9f17ccdbe6bd", + "equalIndicator/v1": "94e7e8103bb6a851b082f41e4516857c47c574ddfa4cc4b6fd692f1d4cbbc0db" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetPlayerHealth' coverage is below the threshold 50%", + "markdown": "Method `GetPlayerHealth` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 236, + "startColumn": 16, + "charOffset": 8515, + "charLength": 15, + "snippet": { + "text": "GetPlayerHealth" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 234, + "startColumn": 1, + "charOffset": 8371, + "charLength": 258, + "snippet": { + "text": " public Vector3f GetPosition() => new(_playerPos.ReadFloat(0x10), _playerPos.ReadFloat(0x14), _playerPos.ReadFloat(0x18));\r\n\r\n public int GetPlayerHealth() => _playerIns.ReadInt32(0x3e8);\r\n\r\n public bool IsPlayerLoaded() => !_playerIns.IsNullPtr();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ccc5b45be5c84c7b", + "equalIndicator/v1": "94ff4eefb9556c61205e4301e0f71300b3cb6a4985ed6384712f4e1b96e520d8" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'TryRefresh' coverage is below the threshold 50%", + "markdown": "Method `TryRefresh` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 70, + "startColumn": 36, + "charOffset": 3094, + "charLength": 10, + "snippet": { + "text": "TryRefresh" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 68, + "startColumn": 1, + "charOffset": 3010, + "charLength": 226, + "snippet": { + "text": " public Process? GetProcess() => _process;\r\n\r\n public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, \"darksouls\", InitPointers, ResetPointers);\r\n\r\n public TreeBuilder GetTreeBuilder() \r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0287ab36f9ce15e2", + "equalIndicator/v1": "955c784c819f901e973aaf571d8d2df22cc8d294432188c632f0c75e95b73aab" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetInGameTimeMilliseconds' coverage is below the threshold 50%", + "markdown": "Method `GetInGameTimeMilliseconds` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Sekiro/Sekiro.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 184, + "startColumn": 16, + "charOffset": 7134, + "charLength": 25, + "snippet": { + "text": "GetInGameTimeMilliseconds" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 182, + "startColumn": 1, + "charOffset": 7101, + "charLength": 102, + "snippet": { + "text": " #endregion\r\n\r\n public int GetInGameTimeMilliseconds()\r\n {\r\n return _igt.ReadInt32();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "1922f3d752b96084", + "equalIndicator/v1": "95ca072f50310a1761c423c959a91600fe24b85be32d6db326216d909799b903" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'StartTimer' coverage is below the threshold 50%", + "markdown": "Method `StartTimer` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls2Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 112, + "startColumn": 18, + "charOffset": 3211, + "charLength": 10, + "snippet": { + "text": "StartTimer" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 110, + "startColumn": 1, + "charOffset": 3125, + "charLength": 149, + "snippet": { + "text": " private TimerState _timerState = TimerState.WaitForStart;\r\n \r\n private void StartTimer()\r\n {\r\n _timerState = TimerState.Running;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "191230544be169a9", + "equalIndicator/v1": "95fda2cf2e28c3910b57754682c49fef174a1efc6861bce0ec7c49b2f2e1cdce" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'IsPlayerLoaded' coverage is below the threshold 50%", + "markdown": "Method `IsPlayerLoaded` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 151, + "startColumn": 17, + "charOffset": 5418, + "charLength": 14, + "snippet": { + "text": "IsPlayerLoaded" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 149, + "startColumn": 1, + "charOffset": 5353, + "charLength": 134, + "snippet": { + "text": " public bool Attached => _process != null;\r\n\r\n public bool IsPlayerLoaded()\r\n {\r\n return _playerIns.ReadInt64() != 0;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "36bb9d2e4f05a29e", + "equalIndicator/v1": "96284cc787eb42f2ecc29fb7db68f93fb3461ed2d8faa1db83bf75e2dbcb5471" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'Dispose' coverage is below the threshold 50%", + "markdown": "Method `Dispose` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls3Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 57, + "startColumn": 17, + "charOffset": 1913, + "charLength": 7, + "snippet": { + "text": "Dispose" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 55, + "startColumn": 1, + "charOffset": 1888, + "charLength": 66, + "snippet": { + "text": " }\r\n\r\n public void Dispose()\r\n {\r\n Dispose(true);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9f8949dd16649248", + "equalIndicator/v1": "963a8602baef36f524383acc0d973b608fccdc1d0d88e4b36952235cef90faf8" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'DarkSouls2.Split' coverage is below the threshold 50%", + "markdown": "Class `DarkSouls2.Split` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splits/DarkSouls2/Split.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 23, + "startColumn": 16, + "charOffset": 935, + "charLength": 5, + "snippet": { + "text": "Split" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 21, + "startColumn": 1, + "charOffset": 875, + "charLength": 165, + "snippet": { + "text": "namespace SoulSplitter.Splits.DarkSouls2;\r\n\r\ninternal class Split\r\n{\r\n public Split(TimingType timingType, DarkSouls2SplitType darkSouls2SplitType, object split)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9cd8980c8a92e88a", + "equalIndicator/v1": "965791ce22d1b27f5af2f52136ac5ade696835070569d2282502b528920d8f75" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'IsWarpRequested' coverage is below the threshold 50%", + "markdown": "Method `IsWarpRequested` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 176, + "startColumn": 17, + "charOffset": 6953, + "charLength": 15, + "snippet": { + "text": "IsWarpRequested" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 174, + "startColumn": 1, + "charOffset": 6873, + "charLength": 142, + "snippet": { + "text": " public bool IsPlayerLoaded() => !_playerIns.IsNullPtr();\r\n\r\n public bool IsWarpRequested()\r\n {\r\n if (GetPlayerHealth() == 0)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "208715bc43d906d9", + "equalIndicator/v1": "9662ee23e23c4d86ca6cb7ff55fbd4731a56c24be0bd4029e72867314292152e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadUnicodeString' coverage is below the threshold 50%", + "markdown": "Method `ReadUnicodeString` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/IMemory.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 99, + "startColumn": 26, + "charOffset": 3182, + "charLength": 17, + "snippet": { + "text": "ReadUnicodeString" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 97, + "startColumn": 1, + "charOffset": 3148, + "charLength": 192, + "snippet": { + "text": " }\r\n\r\n public static string ReadUnicodeString(this IMemory memory, out int length, int maxSize = 1000, long? offset = null)\r\n {\r\n var data = memory.ReadBytes(offset, maxSize);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "241959d78e7bd9bd", + "equalIndicator/v1": "96956ed6ee73e80fe5f8224eec53e33279af207731027d9eb26807d5723e8b03" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetPosition' coverage is below the threshold 50%", + "markdown": "Method `GetPosition` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls2/scholar.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 82, + "startColumn": 21, + "charOffset": 3147, + "charLength": 11, + "snippet": { + "text": "GetPosition" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 80, + "startColumn": 1, + "charOffset": 3105, + "charLength": 93, + "snippet": { + "text": " #endregion\r\n \r\n public Vector3f GetPosition()\r\n {\r\n return new Vector3f(\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f5713f6ab4067cf7", + "equalIndicator/v1": "971718605a528db414b7e80a3e6776c189c6bde7bda1e39f0b707b1ba9655d7f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'InvokePropertyChanged' coverage is below the threshold 50%", + "markdown": "Method `InvokePropertyChanged` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splits/Sekiro/Attribute.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 50, + "startColumn": 17, + "charOffset": 1655, + "charLength": 21, + "snippet": { + "text": "InvokePropertyChanged" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 48, + "startColumn": 1, + "charOffset": 1573, + "charLength": 216, + "snippet": { + "text": " public event PropertyChangedEventHandler? PropertyChanged;\r\n\r\n public void InvokePropertyChanged(string propertyName)\r\n {\r\n PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "340fd75ab2e40a38", + "equalIndicator/v1": "971dddc1d9d8b90e990982793853b881da06bb77971e8c9f186667d26af69807" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'InvokePropertyChanged' coverage is below the threshold 50%", + "markdown": "Method `InvokePropertyChanged` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/SplitViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 69, + "startColumn": 17, + "charOffset": 2312, + "charLength": 21, + "snippet": { + "text": "InvokePropertyChanged" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 67, + "startColumn": 1, + "charOffset": 2230, + "charLength": 216, + "snippet": { + "text": " public event PropertyChangedEventHandler? PropertyChanged;\r\n\r\n public void InvokePropertyChanged(string propertyName)\r\n {\r\n PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "fbe6a5d9f1d4adf8", + "equalIndicator/v1": "979082b325cdf802989a42c61f9cd4d8a00a7e63ffcee6d7d2c0961324d44b5c" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'InitPointers' coverage is below the threshold 50%", + "markdown": "Method `InitPointers` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls2/scholar.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 58, + "startColumn": 37, + "charOffset": 2601, + "charLength": 12, + "snippet": { + "text": "InitPointers" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 56, + "startColumn": 1, + "charOffset": 2552, + "charLength": 84, + "snippet": { + "text": " }\r\n \r\n private ResultErr InitPointers()\r\n {\r\n try\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "601834378e9d3d18", + "equalIndicator/v1": "97b55f41ab47c894a4050338b64341b5d1e4a44339739b9c1acbc83beda0ef2d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetCurrentSaveSlot' coverage is below the threshold 50%", + "markdown": "Method `GetCurrentSaveSlot` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 232, + "startColumn": 16, + "charOffset": 8300, + "charLength": 18, + "snippet": { + "text": "GetCurrentSaveSlot" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 230, + "startColumn": 1, + "charOffset": 8224, + "charLength": 273, + "snippet": { + "text": " public int NgCount() => _gameDataMan.ReadInt32(0x78);\r\n\r\n public int GetCurrentSaveSlot() => _gameMan.ReadInt32(_currentSaveSlotOffset);\r\n\r\n public Vector3f GetPosition() => new(_playerPos.ReadFloat(0x10), _playerPos.ReadFloat(0x14), _playerPos.ReadFloat(0x18));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "667c5628745cec83", + "equalIndicator/v1": "97bc280161e3592385b82bb0399b12948c6ae0061bee942ae7414c8770ff72b1" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'Process.ProcessHook' coverage is below the threshold 50%", + "markdown": "Class `Process.ProcessHook` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Process/ProcessHook.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 21, + "startColumn": 14, + "charOffset": 879, + "charLength": 11, + "snippet": { + "text": "ProcessHook" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 19, + "startColumn": 1, + "charOffset": 824, + "charLength": 237, + "snippet": { + "text": "namespace SoulMemory.MemoryV2.Process;\r\n\r\npublic class ProcessHook(string name, IProcessWrapper? processWrapper = null) : IProcessHook\r\n{\r\n public IProcessWrapper ProcessWrapper { get; set; } = processWrapper ?? new ProcessWrapper();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "141fb1efb7cf9525", + "equalIndicator/v1": "9848a3e19857fb641eab86c20457982e8c9b15c3a701239e3ad9597f32fea06d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'RemoveSplit' coverage is below the threshold 50%", + "markdown": "Method `RemoveSplit` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 115, + "startColumn": 17, + "charOffset": 4734, + "charLength": 11, + "snippet": { + "text": "RemoveSplit" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 113, + "startColumn": 1, + "charOffset": 4709, + "charLength": 82, + "snippet": { + "text": " }\r\n\r\n public void RemoveSplit()\r\n {\r\n if (SelectedSplit != null)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a6f5557e0c0701be", + "equalIndicator/v1": "9858c3d36cab0bb2f2b6039f8c746b3f8cd4016a6f816c446a71bbfa6ff0d112" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'Hotkeys.HotkeyForm' coverage is below the threshold 50%", + "markdown": "Class `Hotkeys.HotkeyForm` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Hotkeys/GlobalHotKey.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 95, + "startColumn": 14, + "charOffset": 3020, + "charLength": 10, + "snippet": { + "text": "HotkeyForm" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 93, + "startColumn": 1, + "charOffset": 3002, + "charLength": 97, + "snippet": { + "text": "}\r\n\r\npublic class HotkeyForm : Form\r\n{\r\n public HotkeyForm(ManualResetEvent windowReadyEvent)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "1ea0816cfb36636f", + "equalIndicator/v1": "9874ba2198897417689aab6e9fd26524ad9e283100117efa6d56ae4b8a645629" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_NewSplitAttributeEnabled' coverage is below the threshold 50%", + "markdown": "Method `get_NewSplitAttributeEnabled` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 235, + "startColumn": 9, + "charOffset": 8342, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 233, + "startColumn": 1, + "charOffset": 8285, + "charLength": 167, + "snippet": { + "text": " public bool NewSplitAttributeEnabled\r\n {\r\n get => _newSplitAttributeEnabled;\r\n set => this.SetField(ref _newSplitAttributeEnabled, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "124b3683f40748c4", + "equalIndicator/v1": "98bcc9657d641d5ca3ae114e194aafc03833200fcb2a310444e425f6326db105" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_NewSplitKnownFlag' coverage is below the threshold 50%", + "markdown": "Method `set_NewSplitKnownFlag` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 268, + "startColumn": 9, + "charOffset": 7477, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 266, + "startColumn": 1, + "charOffset": 7426, + "charLength": 125, + "snippet": { + "text": " {\r\n get => _newSplitKnownFlag;\r\n set\r\n {\r\n this.SetField(ref _newSplitKnownFlag, value);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "09b123a017eed923", + "equalIndicator/v1": "997678b6f15272c1c44f0e2385365eaa56b14d0a5a2c35d19d8995dd544c8089" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'OnHotkeyPressed' coverage is below the threshold 50%", + "markdown": "Method `OnHotkeyPressed` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Hotkeys/GlobalHotKey.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 46, + "startColumn": 24, + "charOffset": 1726, + "charLength": 15, + "snippet": { + "text": "OnHotkeyPressed" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 44, + "startColumn": 1, + "charOffset": 1694, + "charLength": 117, + "snippet": { + "text": " }\r\n\r\n public static void OnHotkeyPressed(ModifierKeys modifier, Key key)\r\n {\r\n Hotkeys.ForEach(x =>\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4dcd4f433fd4045a", + "equalIndicator/v1": "99f29644bd8f68612fdb214d36fe66f93ccbb3be9948c8e1df03f7fc9c6a3eed" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ResetBitBlt' coverage is below the threshold 50%", + "markdown": "Method `ResetBitBlt` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/MainWindow.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 79, + "startColumn": 17, + "charOffset": 2399, + "charLength": 11, + "snippet": { + "text": "ResetBitBlt" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 77, + "startColumn": 1, + "charOffset": 2374, + "charLength": 59, + "snippet": { + "text": " }\r\n\r\n public void ResetBitBlt()\r\n {\r\n try\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c0bc6721d5b90cfd", + "equalIndicator/v1": "9a3694276e80eee9120b3a96d866ac4c31396d0716faca6b0b52316fb9b144e1" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'EldenRing.HierarchicalTimingTypeViewModel' coverage is below the threshold 50%", + "markdown": "Class `EldenRing.HierarchicalTimingTypeViewModel` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/SplitViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 27, + "startColumn": 14, + "charOffset": 1078, + "charLength": 31, + "snippet": { + "text": "HierarchicalTimingTypeViewModel" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 25, + "startColumn": 1, + "charOffset": 1025, + "charLength": 153, + "snippet": { + "text": "namespace SoulSplitter.UI.EldenRing;\r\n\r\npublic class HierarchicalTimingTypeViewModel : ICustomNotifyPropertyChanged\r\n{\r\n public TimingType TimingType\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e7dd7e96eac5f2bc", + "equalIndicator/v1": "9b3ed8654d7407d7ca919bea0549c2f5c1171cb1468520705c82095aae56843d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Constructor 'Result' coverage is below the threshold 50%", + "markdown": "Constructor `Result` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Result.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 55, + "startColumn": 15, + "charOffset": 1766, + "charLength": 6, + "snippet": { + "text": "Result" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 53, + "startColumn": 1, + "charOffset": 1717, + "charLength": 92, + "snippet": { + "text": " public bool IsErr => !IsOk;\r\n\r\n protected Result(bool ok)\r\n {\r\n IsOk = ok;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "91c2283400d55d59", + "equalIndicator/v1": "9b6aa48be2892ad099697f10f7daa4103671cbf69cf9f7753179ce15a4a2e0b6" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadUInt16' coverage is below the threshold 50%", + "markdown": "Method `ReadUInt16` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/IMemory.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 89, + "startColumn": 26, + "charOffset": 2852, + "charLength": 10, + "snippet": { + "text": "ReadUInt16" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 87, + "startColumn": 1, + "charOffset": 2818, + "charLength": 165, + "snippet": { + "text": " }\r\n\r\n public static ushort ReadUInt16(this IMemory memory, long? offset = null)\r\n {\r\n return BitConverter.ToUInt16(memory.ReadBytes(offset, 2), 0);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "88ebbc1455ad2906", + "equalIndicator/v1": "9b88a55e28609499c2bd70c1a807a6d8fc3c7cdcd0412612f1d0415edcba976d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'AddErrorCommand' coverage is below the threshold 50%", + "markdown": "Method `AddErrorCommand` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/MainViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 347, + "startColumn": 18, + "charOffset": 10828, + "charLength": 15, + "snippet": { + "text": "AddErrorCommand" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 345, + "startColumn": 1, + "charOffset": 10779, + "charLength": 119, + "snippet": { + "text": "\r\n //For debugging purposes\r\n private void AddErrorCommand()\r\n {\r\n AddException(new Exception(\"adf\"));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "51e133352c860ff7", + "equalIndicator/v1": "9bc051ae00cb87a22756149c6efa22750d7d4136c4a93a62be82fa4edefef352" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_AttributeLevel' coverage is below the threshold 50%", + "markdown": "Method `get_AttributeLevel` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 342, + "startColumn": 9, + "charOffset": 13650, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 340, + "startColumn": 1, + "charOffset": 13604, + "charLength": 136, + "snippet": { + "text": " public int AttributeLevel\r\n {\r\n get => _attributeLevel;\r\n set => this.SetField(ref _attributeLevel, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "34dac8a41e80ce49", + "equalIndicator/v1": "9bea1a8fbfad8d3a94ee620fb68124fc820cd36175fcbb832336a7b888234ef4" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetInGameTimeMilliseconds' coverage is below the threshold 50%", + "markdown": "Method `GetInGameTimeMilliseconds` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 66, + "startColumn": 16, + "charOffset": 2477, + "charLength": 25, + "snippet": { + "text": "GetInGameTimeMilliseconds" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 64, + "startColumn": 1, + "charOffset": 2420, + "charLength": 225, + "snippet": { + "text": " private readonly Pointer _menuMan;\r\n\r\n public int GetInGameTimeMilliseconds() => _fd4Time.ReadInt32(0x114);\r\n public void WriteInGameTimeMilliseconds(int milliseconds) => _fd4Time.WriteInt32(0x114, milliseconds);\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "19a271d0756decfe", + "equalIndicator/v1": "9c2ebe0572a7f3c255a8102ed21713bd8e36b8a1d425e5ce4cd4d1d280e5da17" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteInGameTimeMilliseconds' coverage is below the threshold 50%", + "markdown": "Method `WriteInGameTimeMilliseconds` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 67, + "startColumn": 17, + "charOffset": 2552, + "charLength": 27, + "snippet": { + "text": "WriteInGameTimeMilliseconds" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 65, + "startColumn": 1, + "charOffset": 2460, + "charLength": 227, + "snippet": { + "text": "\r\n public int GetInGameTimeMilliseconds() => _fd4Time.ReadInt32(0x114);\r\n public void WriteInGameTimeMilliseconds(int milliseconds) => _fd4Time.WriteInt32(0x114, milliseconds);\r\n\r\n public bool IsLoadingScreenVisible()\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9ee7dc911dabe8df", + "equalIndicator/v1": "9c6534e13393170eccd2e18743be50b082a783354b0c8262e9c411f4bfe30ddf" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'InitializeOffsets' coverage is below the threshold 50%", + "markdown": "Method `InitializeOffsets` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/EldenRing.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 79, + "startColumn": 18, + "charOffset": 3362, + "charLength": 17, + "snippet": { + "text": "InitializeOffsets" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 77, + "startColumn": 1, + "charOffset": 3336, + "charLength": 100, + "snippet": { + "text": " }\r\n\r\n private void InitializeOffsets(Version v)\r\n {\r\n var version = GetVersion(v);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5e76649a3925c2dc", + "equalIndicator/v1": "9ce98d24d7bbb708a76984744a9b80b5e1ad9a5aabb1ec989a5c92d0298921f7" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'OnReset' coverage is below the threshold 50%", + "markdown": "Method `OnReset` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls2Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 62, + "startColumn": 18, + "charOffset": 2047, + "charLength": 7, + "snippet": { + "text": "OnReset" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 60, + "startColumn": 1, + "charOffset": 2021, + "charLength": 102, + "snippet": { + "text": " }\r\n\r\n private void OnReset(object sender, TimerPhase timerPhase)\r\n {\r\n ResetTimer();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4a28566cb11dc24f", + "equalIndicator/v1": "9d006fc9ab97ec66862ee70e3856e10b463a158f0fc2c4b284ebb37f4287b3f3" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_WriteEnabled' coverage is below the threshold 50%", + "markdown": "Method `get_WriteEnabled` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/BaseParam.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 101, + "startColumn": 32, + "charOffset": 3953, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 99, + "startColumn": 1, + "charOffset": 3741, + "charLength": 335, + "snippet": { + "text": " #region Writing fields ======================================================================================================================================================\r\n\r\n public bool WriteEnabled { get; set; }\r\n\r\n protected void WriteParamField(ref T field, T value, [CallerMemberName] string? propertyName = null)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5ba371476811eb97", + "equalIndicator/v1": "9d832e41be4bc059b23d6e705ac8fe52ee3b01a8dff94e46c09cebde4291fdf6" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetMorphemeMessages2' coverage is below the threshold 50%", + "markdown": "Method `GetMorphemeMessages2` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/soulmods/Soulmods.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 67, + "startColumn": 41, + "charOffset": 2182, + "charLength": 20, + "snippet": { + "text": "GetMorphemeMessages2" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 65, + "startColumn": 1, + "charOffset": 2133, + "charLength": 179, + "snippet": { + "text": " }\r\n\r\n public static MorphemeMessageBuffer GetMorphemeMessages2(Process process) => process.RustCall(\"GetQueuedDarkSouls2MorphemeMessages2\");\r\n \r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4fb31120fef7f50e", + "equalIndicator/v1": "9d9b3045a066531fe03d87fd4741c96143f40f7c3c2769a02bb2ce725df11c90" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ToString' coverage is below the threshold 50%", + "markdown": "Method `ToString` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/GraceViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 34, + "startColumn": 28, + "charOffset": 1232, + "charLength": 8, + "snippet": { + "text": "ToString" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 32, + "startColumn": 1, + "charOffset": 1196, + "charLength": 76, + "snippet": { + "text": " }\r\n\r\n public override string ToString()\r\n {\r\n return Name;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "cbe9165968cc6643", + "equalIndicator/v1": "9daa585c2a009d38cd7b02907e1bd027b4b7b3c766a8edfaf8f0fa0346a442ef" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_CurrentPosition' coverage is below the threshold 50%", + "markdown": "Method `get_CurrentPosition` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 51, + "startColumn": 9, + "charOffset": 1648, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 49, + "startColumn": 1, + "charOffset": 1587, + "charLength": 153, + "snippet": { + "text": " public PositionViewModel CurrentPosition\r\n {\r\n get => _currentPosition;\r\n set => this.SetField(ref _currentPosition, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7eb02d33c3fd1f60", + "equalIndicator/v1": "9e0d571e0005563516fbd19b70305013edfb04fb61712ef23123db40a85104d0" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadSByte' coverage is below the threshold 50%", + "markdown": "Method `ReadSByte` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 52, + "startColumn": 25, + "charOffset": 1696, + "charLength": 9, + "snippet": { + "text": "ReadSByte" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 50, + "startColumn": 1, + "charOffset": 1663, + "charLength": 133, + "snippet": { + "text": " }\r\n\r\n public static sbyte ReadSByte(this IMemory memory, long offset)\r\n {\r\n var b = memory.ReadBytes(offset, 1)[0];\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "29101a774bb7ed5e", + "equalIndicator/v1": "9e3f3b4a1d8a6e048a9f94f8f676319b9f95842343f41db13fd56c2759201573" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_SelectedAttribute' coverage is below the threshold 50%", + "markdown": "Method `set_SelectedAttribute` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 336, + "startColumn": 9, + "charOffset": 13502, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 334, + "startColumn": 1, + "charOffset": 13451, + "charLength": 150, + "snippet": { + "text": " {\r\n get => _selectedAttribute;\r\n set => this.SetField(ref _selectedAttribute, value);\r\n }\r\n private Enum? _selectedAttribute;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5b7577c95d0df267", + "equalIndicator/v1": "9e7eaf0be6dc364a3e522e9f2ba4090c685aa74a37413261068b5bf59c2d1c3e" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_ModuleName' coverage is below the threshold 50%", + "markdown": "Method `get_ModuleName` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Process/ProcessWrapperModule.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 24, + "startColumn": 32, + "charOffset": 962, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 22, + "startColumn": 1, + "charOffset": 893, + "charLength": 186, + "snippet": { + "text": "public class ProcessWrapperModule\r\n{\r\n public string ModuleName { get; set; } = null!;\r\n public string FileName { get; set; } = null!;\r\n public IntPtr BaseAddress { get; set; }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "15710739c47dad4a", + "equalIndicator/v1": "9ea6cdca2b7181ceb7850f010b2ac5fa26b682cf5c1a5bb0650d9995b8a3a04e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_NewSplitFlagEnabled' coverage is below the threshold 50%", + "markdown": "Method `set_NewSplitFlagEnabled` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 244, + "startColumn": 9, + "charOffset": 8607, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 242, + "startColumn": 1, + "charOffset": 8554, + "charLength": 155, + "snippet": { + "text": " {\r\n get => _newSplitFlagEnabled;\r\n set => this.SetField(ref _newSplitFlagEnabled, value);\r\n }\r\n private bool _newSplitFlagEnabled;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "44bb900c7c971bd7", + "equalIndicator/v1": "9efd24cd441a27c967b21c1497a8bd49a89d045a8d88519c85971eacaa5ca374" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'AddSplit_OnClick' coverage is below the threshold 50%", + "markdown": "Method `AddSplit_OnClick` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2Control.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 44, + "startColumn": 18, + "charOffset": 1538, + "charLength": 16, + "snippet": { + "text": "AddSplit_OnClick" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 42, + "startColumn": 1, + "charOffset": 1456, + "charLength": 182, + "snippet": { + "text": " private DarkSouls2ViewModel _darkSouls2ViewModel = null!;\r\n\r\n private void AddSplit_OnClick(object sender, RoutedEventArgs e)\r\n {\r\n _darkSouls2ViewModel.AddSplit();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "6480703fcbf5ccb2", + "equalIndicator/v1": "9f2f58e0cd589c419679084f75a940bdc89a997bc769dee3406566125c6ec0f8" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Constructor 'Split' coverage is below the threshold 50%", + "markdown": "Constructor `Split` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splits/DarkSouls2/Split.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 25, + "startColumn": 12, + "charOffset": 956, + "charLength": 5, + "snippet": { + "text": "Split" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 23, + "startColumn": 1, + "charOffset": 920, + "charLength": 161, + "snippet": { + "text": "internal class Split\r\n{\r\n public Split(TimingType timingType, DarkSouls2SplitType darkSouls2SplitType, object split)\r\n {\r\n TimingType = timingType;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "529c6a8c3c89e966", + "equalIndicator/v1": "9f923fc1d66ac300f8bb64771a3310f34f58aa71ab6c9685aa8755d6503554f2" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'SetLoadingScreenItem' coverage is below the threshold 50%", + "markdown": "Method `SetLoadingScreenItem` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 513, + "startColumn": 17, + "charOffset": 18121, + "charLength": 20, + "snippet": { + "text": "SetLoadingScreenItem" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 511, + "startColumn": 1, + "charOffset": 18096, + "charLength": 134, + "snippet": { + "text": " }\r\n\r\n public void SetLoadingScreenItem(int index, uint item)\r\n {\r\n _loadingScreenItems.WriteUint32(index * 4, item);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c0f76cd953b1699a", + "equalIndicator/v1": "9fa563c3e9f984c915dc6e2e47537eae69528d8875652ede40082071c28d0199" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_NewSplitTypeEnabled' coverage is below the threshold 50%", + "markdown": "Method `set_NewSplitTypeEnabled` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 212, + "startColumn": 9, + "charOffset": 7707, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 210, + "startColumn": 1, + "charOffset": 7654, + "charLength": 155, + "snippet": { + "text": " {\r\n get => _newSplitTypeEnabled;\r\n set => this.SetField(ref _newSplitTypeEnabled, value);\r\n }\r\n private bool _newSplitTypeEnabled;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "14962a3087bdc776", + "equalIndicator/v1": "a02730d93e91008245ae516ecd15ed360fd17400cf2b6470613ff6b9d1d4ae1b" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_AttributeLevel' coverage is below the threshold 50%", + "markdown": "Method `set_AttributeLevel` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 343, + "startColumn": 9, + "charOffset": 13683, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 341, + "startColumn": 1, + "charOffset": 13635, + "charLength": 144, + "snippet": { + "text": " {\r\n get => _attributeLevel;\r\n set => this.SetField(ref _attributeLevel, value);\r\n }\r\n private int _attributeLevel = 10;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "47d85078361982ab", + "equalIndicator/v1": "a06e0774299509662fea14b0ec5faec6858ba9278f304c9ca2df2eac9d36e1d0" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'InitB3Mods' coverage is below the threshold 50%", + "markdown": "Method `InitB3Mods` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Sekiro/Sekiro.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 498, + "startColumn": 18, + "charOffset": 18442, + "charLength": 10, + "snippet": { + "text": "InitB3Mods" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 496, + "startColumn": 1, + "charOffset": 18403, + "charLength": 84, + "snippet": { + "text": " */\r\n\r\n private bool InitB3Mods()\r\n {\r\n string version;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "113adbc0ca0a6213", + "equalIndicator/v1": "a06f7c293ff79921d866418385c67709fbbe7c9e66c0d8f98067aff2224fe1ee" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_CopyGamePositionCommand' coverage is below the threshold 50%", + "markdown": "Method `get_CopyGamePositionCommand` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/BaseViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 118, + "startColumn": 9, + "charOffset": 3766, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 116, + "startColumn": 1, + "charOffset": 3702, + "charLength": 172, + "snippet": { + "text": " public RelayCommand CopyGamePositionCommand\r\n {\r\n get => _copyGamePositionCommand;\r\n set => this.SetField(ref _copyGamePositionCommand, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "337b7cd015022527", + "equalIndicator/v1": "a0bf86e9cff5bb631f1a1cd1bf0884eb2211a6f8a35998480c40a5866ac92825" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadByte' coverage is below the threshold 50%", + "markdown": "Method `ReadByte` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 218, + "startColumn": 17, + "charOffset": 5753, + "charLength": 8, + "snippet": { + "text": "ReadByte" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 216, + "startColumn": 1, + "charOffset": 5664, + "charLength": 168, + "snippet": { + "text": " return BitConverter.ToBoolean(ReadMemory(offset, 1), 0);\r\n }\r\n public byte ReadByte(long? offset = null)\r\n {\r\n return ReadMemory(offset, 1)[0];\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4223fccc43c1ba70", + "equalIndicator/v1": "a126f8cb63607b3987bb524826c196da7f5b007d35cf43c58c9893afdd65f0b3" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'AddSplitFunc' coverage is below the threshold 50%", + "markdown": "Method `AddSplitFunc` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 86, + "startColumn": 18, + "charOffset": 2928, + "charLength": 12, + "snippet": { + "text": "AddSplitFunc" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 84, + "startColumn": 1, + "charOffset": 2902, + "charLength": 104, + "snippet": { + "text": " }\r\n\r\n private void AddSplitFunc(object? parameter)\r\n {\r\n var flatSplit = new FlatSplit\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "1f285ff361dcde1a", + "equalIndicator/v1": "a20c700c4045495460929adce0e66f72c9c63b9021407b55e17251afb878a85c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_SplitTypes' coverage is below the threshold 50%", + "markdown": "Method `get_SplitTypes` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 174, + "startColumn": 9, + "charOffset": 6868, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 172, + "startColumn": 1, + "charOffset": 6779, + "charLength": 256, + "snippet": { + "text": " public ObservableCollection> SplitTypes\r\n {\r\n get => (ObservableCollection>)GetValue(SplitTypeDependencyProperty);\r\n set => SetValue(SplitTypeDependencyProperty, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "89817993a3f1acac", + "equalIndicator/v1": "a28fe6fe5f72aa3f2af64865a273131305a8c123cd2f2006a5ffb9bf8500705e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_NewSplitBoss' coverage is below the threshold 50%", + "markdown": "Method `get_NewSplitBoss` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 139, + "startColumn": 9, + "charOffset": 4241, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 137, + "startColumn": 1, + "charOffset": 4195, + "charLength": 92, + "snippet": { + "text": " public Boss? NewSplitBoss\r\n {\r\n get => _newSplitBoss;\r\n set\r\n {\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "71bc392090d1481e", + "equalIndicator/v1": "a3035c124dc28e8ac9bc1843e5f4dce895d197d7e45a63ca36ad53a6790afe29" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ResetTimer' coverage is below the threshold 50%", + "markdown": "Method `ResetTimer` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/EldenRingSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 166, + "startColumn": 18, + "charOffset": 5538, + "charLength": 10, + "snippet": { + "text": "ResetTimer" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 164, + "startColumn": 1, + "charOffset": 5512, + "charLength": 94, + "snippet": { + "text": " }\r\n\r\n private void ResetTimer()\r\n {\r\n _timerState = TimerState.WaitForStart;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "56571c9745ad1ae1", + "equalIndicator/v1": "a31f644b0e687efdc875226facb5ae675fda367a58a2fc473c1dd2944852a2ca" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetTreeBuilder' coverage is below the threshold 50%", + "markdown": "Method `GetTreeBuilder` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 72, + "startColumn": 24, + "charOffset": 3218, + "charLength": 14, + "snippet": { + "text": "GetTreeBuilder" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 70, + "startColumn": 1, + "charOffset": 3059, + "charLength": 230, + "snippet": { + "text": " public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, \"darksouls\", InitPointers, ResetPointers);\r\n\r\n public TreeBuilder GetTreeBuilder() \r\n {\r\n var treeBuilder = new TreeBuilder();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d7dfeb91e2bb357d", + "equalIndicator/v1": "a3628de304cfc95bf41ede1ae00de113c5f16d432e5ad953a2bb983462bbfd93" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'TryRefresh' coverage is below the threshold 50%", + "markdown": "Method `TryRefresh` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 39, + "startColumn": 36, + "charOffset": 1618, + "charLength": 10, + "snippet": { + "text": "TryRefresh" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 37, + "startColumn": 1, + "charOffset": 1534, + "charLength": 228, + "snippet": { + "text": "\r\n public Process? GetProcess() => _process;\r\n public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, \"darksoulsiii\", InitPointers, ResetPointers);\r\n\r\n public TreeBuilder GetTreeBuilder()\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ad0bcbcdb7b7908f", + "equalIndicator/v1": "a3f78c27958682542ea31f4d4f27720a28b4beb5f2ab5ada9bee37572e0de347" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_Items' coverage is below the threshold 50%", + "markdown": "Method `get_Items` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 235, + "startColumn": 9, + "charOffset": 10197, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 233, + "startColumn": 1, + "charOffset": 10118, + "charLength": 233, + "snippet": { + "text": " public ObservableCollection> Items\r\n {\r\n get => (ObservableCollection>)GetValue(ItemsDependencyProperty);\r\n set => SetValue(ItemsDependencyProperty, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b9d3229af111e029", + "equalIndicator/v1": "a44606c3f0971dc42320050eb92cb9f0d984be5c209a862ffff1a3dfeda68dc5" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'Parameters.TextTableEntry' coverage is below the threshold 50%", + "markdown": "Class `Parameters.TextTableEntry` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/TextTableEntry.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 19, + "startColumn": 14, + "charOffset": 856, + "charLength": 14, + "snippet": { + "text": "TextTableEntry" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 17, + "startColumn": 1, + "charOffset": 807, + "charLength": 111, + "snippet": { + "text": "namespace SoulMemory.Parameters;\r\n\r\npublic class TextTableEntry\r\n{\r\n public uint ItemLowRange { get; set; }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ec3d05c171344cb4", + "equalIndicator/v1": "a4f64ced8159d0caf8397b2c4971b3fa72e5171cd3158070b02fe410d46dbb85" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_SelectedTimingType' coverage is below the threshold 50%", + "markdown": "Method `set_SelectedTimingType` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 293, + "startColumn": 9, + "charOffset": 12292, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 291, + "startColumn": 1, + "charOffset": 12240, + "charLength": 181, + "snippet": { + "text": " {\r\n get => _selectedTimingType;\r\n set => this.SetField(ref _selectedTimingType, value);\r\n }\r\n private TimingType _selectedTimingType = TimingType.Immediate;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "220f9f0e94b07317", + "equalIndicator/v1": "a4f7432c55819a7251fd080e64308088b913eea10ae28592194071a205315c78" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ToString' coverage is below the threshold 50%", + "markdown": "Method `ToString` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splits/Sekiro/Attribute.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 41, + "startColumn": 28, + "charOffset": 1457, + "charLength": 8, + "snippet": { + "text": "ToString" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 39, + "startColumn": 1, + "charOffset": 1403, + "charLength": 116, + "snippet": { + "text": " private int _level;\r\n\r\n public override string ToString()\r\n {\r\n return $\"{AttributeType} {Level}\";\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9871c543be50709c", + "equalIndicator/v1": "a5c5005db2f65b1bed840091b0580ae54e967e6fde703795b5f8ea23eb75e8e1" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_BossType' coverage is below the threshold 50%", + "markdown": "Method `get_BossType` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splits/DarkSouls2/BossKill.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 30, + "startColumn": 9, + "charOffset": 1162, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 28, + "startColumn": 1, + "charOffset": 1117, + "charLength": 123, + "snippet": { + "text": " public BossType BossType\r\n {\r\n get => _bossType;\r\n set => this.SetField(ref _bossType, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f763f02f51249c50", + "equalIndicator/v1": "a60a8d0b0c44490ccebfcfcd72946949017020fbce7f67df18d44f8f39247d5f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'Update' coverage is below the threshold 50%", + "markdown": "Method `Update` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/SekiroSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 85, + "startColumn": 36, + "charOffset": 2566, + "charLength": 6, + "snippet": { + "text": "Update" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 83, + "startColumn": 1, + "charOffset": 2522, + "charLength": 89, + "snippet": { + "text": " }\r\n\r\n public ResultErr Update(MainViewModel mainViewModel)\r\n {\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a036acedaa0491bc", + "equalIndicator/v1": "a61851ceca7a4e1bc95b79445eb0195be5e768b82e80abe7b4c3755c746be7a1" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteFloat' coverage is below the threshold 50%", + "markdown": "Method `WriteFloat` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 319, + "startColumn": 17, + "charOffset": 8345, + "charLength": 10, + "snippet": { + "text": "WriteFloat" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 317, + "startColumn": 1, + "charOffset": 8258, + "charLength": 192, + "snippet": { + "text": " public void WriteFloat(float value) => WriteFloat(null, value);\r\n\r\n public void WriteFloat(long? offset, float value)\r\n {\r\n WriteMemory(offset, BitConverter.GetBytes(value));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "290d4fa3c963b989", + "equalIndicator/v1": "a62b4c3d85e79e476654f361782247bbb7c9974f89210f10caa5da157cdbfd7f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_CommandClearErrors' coverage is below the threshold 50%", + "markdown": "Method `get_CommandClearErrors` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/MainViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 215, + "startColumn": 9, + "charOffset": 6932, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 213, + "startColumn": 1, + "charOffset": 6873, + "charLength": 157, + "snippet": { + "text": " public RelayCommand CommandClearErrors\r\n {\r\n get => _commandClearErrors;\r\n set => this.SetField(ref _commandClearErrors, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d20bafae6f5af403", + "equalIndicator/v1": "a6308b26f7d2722c30f878eaafdd1d555021761ac46c45c5bcead9edf3f40bb9" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_GamePosition' coverage is below the threshold 50%", + "markdown": "Method `get_GamePosition` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 245, + "startColumn": 9, + "charOffset": 10692, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 243, + "startColumn": 1, + "charOffset": 10643, + "charLength": 180, + "snippet": { + "text": " public Vector3f GamePosition\r\n {\r\n get => (Vector3f)GetValue(GamePositionDependencyProperty);\r\n set => SetValue(GamePositionDependencyProperty, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "309d8d2e3a8cdb04", + "equalIndicator/v1": "a6e9a8fa0be199d5752b381e00bec7f3172be267e6605d47dd7b3b5250663d93" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_SplitsViewModel' coverage is below the threshold 50%", + "markdown": "Method `set_SplitsViewModel` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 226, + "startColumn": 9, + "charOffset": 9736, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 224, + "startColumn": 1, + "charOffset": 9643, + "charLength": 161, + "snippet": { + "text": " {\r\n get => (SplitsViewModel)GetValue(SplitsViewModelDependencyProperty);\r\n set => SetValue(SplitsViewModelDependencyProperty, value);\r\n }\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "8444091db524a5aa", + "equalIndicator/v1": "a70ed92b39b5efc66b005fee0a43990e6edee0ed6cf66a1b21423a7374770421" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadBytes' coverage is below the threshold 50%", + "markdown": "Method `ReadBytes` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 81, + "startColumn": 19, + "charOffset": 2508, + "charLength": 9, + "snippet": { + "text": "ReadBytes" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 79, + "startColumn": 1, + "charOffset": 2481, + "charLength": 232, + "snippet": { + "text": " }\r\n\r\n public byte[] ReadBytes(long offset, int length) => Memory.ReadBytes(ResolveOffsets() + offset, length);\r\n public void WriteBytes(long offset, byte[] bytes) => Memory.WriteBytes(ResolveOffsets() + offset, bytes);\r\n}\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0f74ec75c4ad1067", + "equalIndicator/v1": "a77e631f641b7b0cfa1fed91e306f596f64a8a8c12697cfcd269a632c8a5d48c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteByte' coverage is below the threshold 50%", + "markdown": "Method `WriteByte` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 301, + "startColumn": 17, + "charOffset": 7910, + "charLength": 9, + "snippet": { + "text": "WriteByte" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 299, + "startColumn": 1, + "charOffset": 7885, + "charLength": 107, + "snippet": { + "text": " }\r\n\r\n public void WriteByte(long? offset, byte value)\r\n {\r\n WriteMemory(offset, [value]);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "74d8c1b3f31e025f", + "equalIndicator/v1": "a7e7875bbe2605f268e05fa4180bc4e5d29d1feb65ff9de573336fc04b6f9d70" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'TryScanAbsolute' coverage is below the threshold 50%", + "markdown": "Method `TryScanAbsolute` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 204, + "startColumn": 25, + "charOffset": 8181, + "charLength": 15, + "snippet": { + "text": "TryScanAbsolute" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 202, + "startColumn": 1, + "charOffset": 7980, + "charLength": 324, + "snippet": { + "text": " /// Scan a previously created buffer of bytes for a given pattern, then interpret the data as assembly, where the target address is an absolute address\r\n /// \r\n private static bool TryScanAbsolute(this byte[] bytes, long baseAddress, PointerNode pointerNode, out long result)\r\n {\r\n result = 0;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e47f6dd9171c88a0", + "equalIndicator/v1": "a832ab6a4a8c8167ce8cba09b611416fd9440d2811d22bac44e6ef71d458ab48" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetPosition' coverage is below the threshold 50%", + "markdown": "Method `GetPosition` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 166, + "startColumn": 21, + "charOffset": 5756, + "charLength": 11, + "snippet": { + "text": "GetPosition" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 164, + "startColumn": 1, + "charOffset": 5727, + "charLength": 79, + "snippet": { + "text": " }\r\n\r\n public Vector3f GetPosition()\r\n {\r\n return new Vector3f\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "66c3d19573ebec11", + "equalIndicator/v1": "a840fb2b45f9cbb7c9de0b98062c661b7cfa89f5377cdaab57df019e9b4d1ebf" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'TryScanRelative' coverage is below the threshold 50%", + "markdown": "Method `TryScanRelative` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 188, + "startColumn": 25, + "charOffset": 7436, + "charLength": 15, + "snippet": { + "text": "TryScanRelative" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 186, + "startColumn": 1, + "charOffset": 7331, + "charLength": 228, + "snippet": { + "text": " /// Returns the static address of the given instruction\r\n /// \r\n private static bool TryScanRelative(this byte[] bytes, long baseAddress, PointerNode pointerNode, out long result)\r\n {\r\n result = 0;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0fccca15b60d3d61", + "equalIndicator/v1": "a8835bd2cc785e6dedce9dcebbacd2016d54a793bc1f9488aa45e76f64de5a4b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_BitBlt' coverage is below the threshold 50%", + "markdown": "Method `get_BitBlt` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Sekiro/Sekiro.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 396, + "startColumn": 9, + "charOffset": 14504, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 394, + "startColumn": 1, + "charOffset": 14465, + "charLength": 86, + "snippet": { + "text": " public bool BitBlt\r\n {\r\n get\r\n {\r\n lock (_bitBltLock)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "fee4c42ec21cf3a8", + "equalIndicator/v1": "a8caf2312c0312560701c65767af8bee2761ef737ac9a0d86fea3af96524a716" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'Splitters.EldenRingSplitter' coverage is below the threshold 50%", + "markdown": "Class `Splitters.EldenRingSplitter` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/EldenRingSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 30, + "startColumn": 16, + "charOffset": 1131, + "charLength": 17, + "snippet": { + "text": "EldenRingSplitter" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 28, + "startColumn": 1, + "charOffset": 1079, + "charLength": 129, + "snippet": { + "text": "namespace SoulSplitter.Splitters;\r\n\r\ninternal class EldenRingSplitter : ISplitter\r\n{\r\n private readonly EldenRing _eldenRing;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b29712fab2f7c8a0", + "equalIndicator/v1": "a8fdc4909957621c77d397c040171a797297655aac874fef5ba71e074506444e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetErr' coverage is below the threshold 50%", + "markdown": "Method `GetErr` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Result.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 139, + "startColumn": 17, + "charOffset": 3480, + "charLength": 6, + "snippet": { + "text": "GetErr" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 137, + "startColumn": 1, + "charOffset": 3455, + "charLength": 60, + "snippet": { + "text": " }\r\n\r\n public TErr GetErr()\r\n {\r\n if (IsOk)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "fca63b4c34d0703b", + "equalIndicator/v1": "a90da0ee5df3c0e9c2686571dc080cd0995ccd9591dee643e5cf68f1060a91d4" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetSettingsControl' coverage is below the threshold 50%", + "markdown": "Method `GetSettingsControl` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/SoulComponent.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 294, + "startColumn": 41, + "charOffset": 10325, + "charLength": 18, + "snippet": { + "text": "GetSettingsControl" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 292, + "startColumn": 1, + "charOffset": 10235, + "charLength": 177, + "snippet": { + "text": "\r\n private Button? _customShowSettingsButton;\r\n public System.Windows.Forms.Control GetSettingsControl(LayoutMode mode)\r\n {\r\n var stackTrace = new StackTrace();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4f037b2f4fa7e1df", + "equalIndicator/v1": "a926eb5ec5b797d26e76961c2993e774afbeac741af76f85411c16a6a8be4c82" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetTreeBuilder' coverage is below the threshold 50%", + "markdown": "Method `GetTreeBuilder` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/EldenRing.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 51, + "startColumn": 24, + "charOffset": 1993, + "charLength": 14, + "snippet": { + "text": "GetTreeBuilder" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 49, + "startColumn": 1, + "charOffset": 1834, + "charLength": 229, + "snippet": { + "text": " public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, \"eldenring\", InitPointers, ResetPointers);\r\n\r\n public TreeBuilder GetTreeBuilder()\r\n {\r\n var treeBuilder = new TreeBuilder();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c4764a83bd9c8b22", + "equalIndicator/v1": "a935c6e0fd9b87761b371395eca9251ca18546e51b03e19ca2f9b880deb2fdfb" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_BooleanFlags' coverage is below the threshold 50%", + "markdown": "Method `set_BooleanFlags` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 155, + "startColumn": 9, + "charOffset": 5709, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 153, + "startColumn": 1, + "charOffset": 5588, + "charLength": 186, + "snippet": { + "text": " {\r\n get => (ObservableCollection)GetValue(BooleanFlagsDependencyProperty);\r\n set => SetValue(BooleanFlagsDependencyProperty, value);\r\n }\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f0a97491ae98da6d", + "equalIndicator/v1": "a9cdc5d21e8934b2ce4df8f5bbb0b2481e588aac9acb35dd5ee2950872cd3234" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadEventFlag' coverage is below the threshold 50%", + "markdown": "Method `ReadEventFlag` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 141, + "startColumn": 17, + "charOffset": 4995, + "charLength": 13, + "snippet": { + "text": "ReadEventFlag" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 139, + "startColumn": 1, + "charOffset": 4970, + "charLength": 134, + "snippet": { + "text": " }\r\n\r\n public bool ReadEventFlag(uint eventFlagId)\r\n {\r\n var result = GetEventFlagAddress(eventFlagId, out int mask);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "dc8fcd2183663b4d", + "equalIndicator/v1": "aa1ca0c1cb0abbe74511e3683494f498876ee3f2e77fc94bedb44e1492e8849b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'DarkSouls2.BossKill' coverage is below the threshold 50%", + "markdown": "Class `DarkSouls2.BossKill` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splits/DarkSouls2/BossKill.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 25, + "startColumn": 14, + "charOffset": 1029, + "charLength": 8, + "snippet": { + "text": "BossKill" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 23, + "startColumn": 1, + "charOffset": 977, + "charLength": 139, + "snippet": { + "text": "\r\n[XmlType(Namespace = \"DarkSouls2\")]\r\npublic class BossKill : ICustomNotifyPropertyChanged\r\n{\r\n [XmlElement(Namespace = \"DarkSouls2\")]\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "43262d432deb29e1", + "equalIndicator/v1": "aa29ed951a91e0731238eaef69a6d1f94c0071952a64134e0b6846566aad6c23" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'TryRefresh' coverage is below the threshold 50%", + "markdown": "Method `TryRefresh` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 91, + "startColumn": 36, + "charOffset": 3652, + "charLength": 10, + "snippet": { + "text": "TryRefresh" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 89, + "startColumn": 1, + "charOffset": 3568, + "charLength": 228, + "snippet": { + "text": " public Process? GetProcess() => _process;\r\n\r\n public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, \"darksoulsremastered\", InitPointers, ResetPointers);\r\n\r\n private void ResetPointers()\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a690e778e00014a3", + "equalIndicator/v1": "aa343592818bf455e0f0041c64ba85f986ef714cc6bab65ae2a77e972166aafb" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_EnabledSplitType' coverage is below the threshold 50%", + "markdown": "Method `get_EnabledSplitType` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 74, + "startColumn": 9, + "charOffset": 2329, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 72, + "startColumn": 1, + "charOffset": 2280, + "charLength": 143, + "snippet": { + "text": " public bool EnabledSplitType\r\n {\r\n get => _enabledSplitType;\r\n set => this.SetField(ref _enabledSplitType, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "173303d5dce20a6b", + "equalIndicator/v1": "aa3715deb46defd000ef403ce3267d321eb865cf983e1a2e3ff10a5556ef2d99" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'EldenRing.Split' coverage is below the threshold 50%", + "markdown": "Class `EldenRing.Split` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splits/EldenRing/Split.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 23, + "startColumn": 16, + "charOffset": 944, + "charLength": 5, + "snippet": { + "text": "Split" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 21, + "startColumn": 1, + "charOffset": 885, + "charLength": 162, + "snippet": { + "text": "namespace SoulSplitter.Splits.EldenRing;\r\n\r\ninternal class Split\r\n{\r\n public Split(TimingType timingType, EldenRingSplitType eldenRingSplitType, object split)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "674ca6ff58dfa56c", + "equalIndicator/v1": "aa51d6f050c8d575c580008cfca2886a0b0fa2bce196a15626473fd64a5847d2" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteBytes' coverage is below the threshold 50%", + "markdown": "Method `WriteBytes` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/ByteArrayMemory.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 34, + "startColumn": 17, + "charOffset": 1284, + "charLength": 10, + "snippet": { + "text": "WriteBytes" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 32, + "startColumn": 1, + "charOffset": 1259, + "charLength": 118, + "snippet": { + "text": " }\r\n\r\n public void WriteBytes(long offset, byte[] bytes)\r\n {\r\n for (int i = 0; i < bytes.Length; i++)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "682882c25ac96ebb", + "equalIndicator/v1": "aa84c53729240cf3fe99aee4b42eee0f6a8b1f49720f17d03c2334b6eb2b59db" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetAttribute' coverage is below the threshold 50%", + "markdown": "Method `GetAttribute` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Sekiro/Sekiro.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 194, + "startColumn": 16, + "charOffset": 7333, + "charLength": 12, + "snippet": { + "text": "GetAttribute" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 192, + "startColumn": 1, + "charOffset": 7309, + "charLength": 98, + "snippet": { + "text": " }\r\n\r\n public int GetAttribute(Attribute attribute)\r\n {\r\n return attribute switch\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "8525853f6b349db1", + "equalIndicator/v1": "aa9baa507f804447d58f026ac146b58002cd8f7f5b5f42cf0550e50bc110870e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadEventFlag' coverage is below the threshold 50%", + "markdown": "Method `ReadEventFlag` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls2/scholar.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 118, + "startColumn": 17, + "charOffset": 4002, + "charLength": 13, + "snippet": { + "text": "ReadEventFlag" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 116, + "startColumn": 1, + "charOffset": 3982, + "charLength": 116, + "snippet": { + "text": "\r\n\r\n public bool ReadEventFlag(uint eventFlagId)\r\n {\r\n var eventCategory = eventFlagId / 10000 * 0x89;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7389efa4074fe5e9", + "equalIndicator/v1": "ab358cc206c9c7e7b98bba8d244a362c0f43674b5dea40ebaf392472442c5938" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'OnUpdate' coverage is below the threshold 50%", + "markdown": "Method `OnUpdate` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/ArmoredCore6Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 43, + "startColumn": 45, + "charOffset": 1683, + "charLength": 8, + "snippet": { + "text": "OnUpdate" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 41, + "startColumn": 1, + "charOffset": 1630, + "charLength": 101, + "snippet": { + "text": " }\r\n\r\n public override ResultErr OnUpdate()\r\n {\r\n switch (_timerState)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "53d2121d50c3edce", + "equalIndicator/v1": "ac16de956dc34c9c456c4b6ac85c46d92f71ae5361c282a6e75121e20addacca" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'TryValidatePatterns' coverage is below the threshold 50%", + "markdown": "Method `TryValidatePatterns` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 97, + "startColumn": 24, + "charOffset": 3860, + "charLength": 19, + "snippet": { + "text": "TryValidatePatterns" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 95, + "startColumn": 1, + "charOffset": 3731, + "charLength": 335, + "snippet": { + "text": " /// Validate patterns in a TreeBuilder by counting the patterns in a given file.\r\n /// \r\n public static bool TryValidatePatterns(TreeBuilder treeBuilder, List filepaths, out List<(string fileName, string patternName, long count)> errors)\r\n {\r\n var files = new List<(string name, byte[] bytes)>();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "8da9023a1aac94bf", + "equalIndicator/v1": "ac18cefbeb0a6433040fd73bacdc965c67c5f6946fc95c876f2c1abe64741b31" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'RunEventFlagLogger' coverage is below the threshold 50%", + "markdown": "Method `RunEventFlagLogger` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/MainViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 305, + "startColumn": 18, + "charOffset": 9586, + "charLength": 18, + "snippet": { + "text": "RunEventFlagLogger" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 303, + "startColumn": 1, + "charOffset": 9505, + "charLength": 158, + "snippet": { + "text": " private RelayCommand _commandRunEventFlagLogger = null!;\r\n\r\n private void RunEventFlagLogger()\r\n {\r\n TryAndHandleError(SoulMemoryRs.Launch);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c09cc863d37ae8fb", + "equalIndicator/v1": "ac37cbe774f374fe513951aa03b4e972ad0764e8c20c09e7c87449b3721e5aa9" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_NewSplitTypeEnabled' coverage is below the threshold 50%", + "markdown": "Method `get_NewSplitTypeEnabled` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 211, + "startColumn": 9, + "charOffset": 7669, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 209, + "startColumn": 1, + "charOffset": 7617, + "charLength": 152, + "snippet": { + "text": " public bool NewSplitTypeEnabled\r\n {\r\n get => _newSplitTypeEnabled;\r\n set => this.SetField(ref _newSplitTypeEnabled, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f69158bfb05df617", + "equalIndicator/v1": "ac6d372a36a172128082bfd6e5e6634ab8435551824964b96f0554044140890a" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteBytes' coverage is below the threshold 50%", + "markdown": "Method `WriteBytes` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Process/ProcessHook.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 94, + "startColumn": 17, + "charOffset": 3946, + "charLength": 10, + "snippet": { + "text": "WriteBytes" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 92, + "startColumn": 1, + "charOffset": 3829, + "charLength": 218, + "snippet": { + "text": "\r\n public byte[] ReadBytes(long offset, int length) => ProcessWrapper.ReadBytes(offset, length);\r\n public void WriteBytes(long offset, byte[] bytes) => ProcessWrapper.WriteBytes(offset, bytes);\r\n\r\n #endregion\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "15d03144ca0009f6", + "equalIndicator/v1": "ad09047a37b19f000295d13380603411b208332fc00482e72d622d466365a530" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_NewSplitTimingType' coverage is below the threshold 50%", + "markdown": "Method `set_NewSplitTimingType` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 145, + "startColumn": 9, + "charOffset": 5689, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 143, + "startColumn": 1, + "charOffset": 5637, + "charLength": 127, + "snippet": { + "text": " {\r\n get => _newSplitTimingType;\r\n set\r\n {\r\n this.SetField(ref _newSplitTimingType, value);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9840e4d4361fdbf3", + "equalIndicator/v1": "ad3a5b0ea14385bec1711b5194e99fd23d2a021746e929d3210ad88493313a61" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'Clear' coverage is below the threshold 50%", + "markdown": "Method `Clear` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 44, + "startColumn": 17, + "charOffset": 1459, + "charLength": 5, + "snippet": { + "text": "Clear" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 42, + "startColumn": 1, + "charOffset": 1434, + "charLength": 71, + "snippet": { + "text": " }\r\n\r\n public void Clear()\r\n {\r\n _initialized = false;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "8efd45de0f9b98ce", + "equalIndicator/v1": "ad3bf755884149549005cea1228e49b9a101d73f0891227e9f1491e09c98c051" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_X' coverage is below the threshold 50%", + "markdown": "Method `get_X` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/PositionViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 56, + "startColumn": 9, + "charOffset": 1614, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 54, + "startColumn": 1, + "charOffset": 1579, + "charLength": 115, + "snippet": { + "text": " public float X\r\n {\r\n get => Position.X;\r\n set => this.SetField(ref Position.X, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9858e18bbbc5a7e2", + "equalIndicator/v1": "ad498a15699ecfefbce421d4fd011645a690c6e4fd824bd35e8c8970990d52d4" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'TreeView_OnSelectedItemChanged' coverage is below the threshold 50%", + "markdown": "Method `TreeView_OnSelectedItemChanged` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 370, + "startColumn": 18, + "charOffset": 14354, + "charLength": 30, + "snippet": { + "text": "TreeView_OnSelectedItemChanged" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 368, + "startColumn": 1, + "charOffset": 14333, + "charLength": 158, + "snippet": { + "text": "\r\n\r\n private void TreeView_OnSelectedItemChanged(object sender, RoutedPropertyChangedEventArgs e)\r\n {\r\n if (sender is TreeView treeView)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b40c5d8e986fa0d0", + "equalIndicator/v1": "ad7771f11c8c7b5465019a7e58b05c0bdc41f4c9f13c8eea74dff67606f2316a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetProcess' coverage is below the threshold 50%", + "markdown": "Method `GetProcess` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Process/ProcessHook.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 25, + "startColumn": 40, + "charOffset": 1103, + "charLength": 10, + "snippet": { + "text": "GetProcess" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 23, + "startColumn": 1, + "charOffset": 963, + "charLength": 251, + "snippet": { + "text": " public IProcessWrapper ProcessWrapper { get; set; } = processWrapper ?? new ProcessWrapper();\r\n\r\n public System.Diagnostics.Process? GetProcess() => ProcessWrapper.GetProcess();\r\n\r\n public event Func> Hooked = null!;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "1c339e44051d363a", + "equalIndicator/v1": "ad84a645c78dcc7a869b1efcbf4f0ffd8b1f77589aa4a66d98d9974c8479445f" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'StartTimer' coverage is below the threshold 50%", + "markdown": "Method `StartTimer` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/SekiroSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 129, + "startColumn": 18, + "charOffset": 3637, + "charLength": 10, + "snippet": { + "text": "StartTimer" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 127, + "startColumn": 1, + "charOffset": 3551, + "charLength": 157, + "snippet": { + "text": " private TimerState _timerState = TimerState.WaitForStart;\r\n \r\n private void StartTimer()\r\n {\r\n if (_sekiroViewModel.OverwriteIgtOnStart)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0738bf4af21d443e", + "equalIndicator/v1": "ad9b7689ae01c2e21e4940a7ce9c05d949756de42329d2bac4d425ba1aec3fd3" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_VisibleFlagSplit' coverage is below the threshold 50%", + "markdown": "Method `get_VisibleFlagSplit` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 191, + "startColumn": 9, + "charOffset": 5471, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 189, + "startColumn": 1, + "charOffset": 5422, + "charLength": 143, + "snippet": { + "text": " public bool VisibleFlagSplit\r\n {\r\n get => _visibleFlagSplit;\r\n set => this.SetField(ref _visibleFlagSplit, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a5f83ef07bfdd12c", + "equalIndicator/v1": "adaf36d42ed029524e8cf40eb9b38080732b5c7606edef0010a661374ad17c61" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'Memory.MemoryScanner' coverage is below the threshold 50%", + "markdown": "Class `Memory.MemoryScanner` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 27, + "startColumn": 21, + "charOffset": 1033, + "charLength": 13, + "snippet": { + "text": "MemoryScanner" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 25, + "startColumn": 1, + "charOffset": 981, + "charLength": 228, + "snippet": { + "text": "namespace SoulMemory.Memory;\r\n\r\npublic static class MemoryScanner\r\n{\r\n #region Resolving pointers ==============================================================================================================================\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ab0a506d152d1a74", + "equalIndicator/v1": "adc357193dd01f280d63e0c758cb88cbe6b1dded2bdfc1f22d9208024343cec6" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'Process.ProcessWrapperModule' coverage is below the threshold 50%", + "markdown": "Class `Process.ProcessWrapperModule` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Process/ProcessWrapperModule.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 22, + "startColumn": 14, + "charOffset": 906, + "charLength": 20, + "snippet": { + "text": "ProcessWrapperModule" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 20, + "startColumn": 1, + "charOffset": 851, + "charLength": 132, + "snippet": { + "text": "namespace SoulMemory.MemoryV2.Process;\r\n\r\npublic class ProcessWrapperModule\r\n{\r\n public string ModuleName { get; set; } = null!;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "94851fab5f82d9c0", + "equalIndicator/v1": "ae3880e046310dbbd36146c57c4e5cc18d58672b886e17b54b8dde78fbcc5d96" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_VectorSizeTemplate' coverage is below the threshold 50%", + "markdown": "Method `set_VectorSizeTemplate` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/SplitTemplateSelector.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 26, + "startColumn": 51, + "charOffset": 1090, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 24, + "startColumn": 1, + "charOffset": 976, + "charLength": 223, + "snippet": { + "text": "{\r\n public DataTemplate EnumTemplate { get; set; } = null!;\r\n public DataTemplate VectorSizeTemplate { get; set; } = null!;\r\n\r\n public override DataTemplate SelectTemplate(object? item, DependencyObject container)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c2ec062e99edb143", + "equalIndicator/v1": "ae8949233667e9c2e7fb8ddc5750d78c87810c5656907a68e480f330250571fa" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'Dispose' coverage is below the threshold 50%", + "markdown": "Method `Dispose` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls3Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 63, + "startColumn": 28, + "charOffset": 2027, + "charLength": 7, + "snippet": { + "text": "Dispose" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 61, + "startColumn": 1, + "charOffset": 1991, + "charLength": 91, + "snippet": { + "text": " }\r\n\r\n protected virtual void Dispose(bool disposing)\r\n {\r\n if (disposing)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9cb5a4cd9b1a7aa3", + "equalIndicator/v1": "af02693b94b5fe4100fa7c449153a6a0527611a662b5a361f4de4d3b8f8df101" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'IsLoading' coverage is below the threshold 50%", + "markdown": "Method `IsLoading` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls2/scholar.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 96, + "startColumn": 17, + "charOffset": 3480, + "charLength": 9, + "snippet": { + "text": "IsLoading" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 94, + "startColumn": 1, + "charOffset": 3455, + "charLength": 94, + "snippet": { + "text": " }\r\n\r\n public bool IsLoading()\r\n {\r\n return _loadState.ReadInt32(0x11c) == 1;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "256da3e6db82b7bd", + "equalIndicator/v1": "af12cd57e488486f884efc57e33d8f8b56d612817935c8979731604dc9e212d9" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ExportSettings' coverage is below the threshold 50%", + "markdown": "Method `ExportSettings` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/MainViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 387, + "startColumn": 18, + "charOffset": 12061, + "charLength": 14, + "snippet": { + "text": "ExportSettings" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 385, + "startColumn": 1, + "charOffset": 11976, + "charLength": 142, + "snippet": { + "text": " private RelayCommand _commandExportSettingsFromFile = null!;\r\n\r\n private void ExportSettings()\r\n {\r\n TryAndHandleError(() =>\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "04d7796fc41660fa", + "equalIndicator/v1": "af1a686d5d803ac0bf08cd9468d6cf1a816e77d34cd6cfdbca36b5de2f4bbfa9" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetTestValue' coverage is below the threshold 50%", + "markdown": "Method `GetTestValue` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 518, + "startColumn": 19, + "charOffset": 18258, + "charLength": 12, + "snippet": { + "text": "GetTestValue" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 516, + "startColumn": 1, + "charOffset": 18231, + "charLength": 71, + "snippet": { + "text": " }\r\n\r\n public object GetTestValue()\r\n {\r\n return this;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "434d226ff72ecced", + "equalIndicator/v1": "af2142d5bd0097193b760274e2035498eacba7923fa35569a472f5cdadecdb9a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_Reason' coverage is below the threshold 50%", + "markdown": "Method `get_Reason` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/RefreshError.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 46, + "startColumn": 40, + "charOffset": 1489, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 44, + "startColumn": 1, + "charOffset": 1441, + "charLength": 142, + "snippet": { + "text": " }\r\n\r\n public RefreshErrorReason Reason { get; }\r\n public string Message { get; } = null!;\r\n public Exception? Exception { get; }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ee2dd46895cdfb7b", + "equalIndicator/v1": "af7b35ee71b39018e9e28082a483d494334a718c6ee4fc18dc45c6636502e149" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetBonfireState' coverage is below the threshold 50%", + "markdown": "Method `GetBonfireState` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 201, + "startColumn": 25, + "charOffset": 7648, + "charLength": 15, + "snippet": { + "text": "GetBonfireState" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 199, + "startColumn": 1, + "charOffset": 7620, + "charLength": 137, + "snippet": { + "text": "\r\n\r\n public BonfireState GetBonfireState(Bonfire bonfire)\r\n {\r\n var element = _netBonfireDb.CreatePointerFromAddress(0x24);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "76df75217f2fa276", + "equalIndicator/v1": "af83d170a9a0a8b6984a570a3b230ca97a3f264c996522757e5b91870ac245d5" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadInt32' coverage is below the threshold 50%", + "markdown": "Method `ReadInt32` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/IMemory.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 55, + "startColumn": 23, + "charOffset": 1690, + "charLength": 9, + "snippet": { + "text": "ReadInt32" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 53, + "startColumn": 1, + "charOffset": 1562, + "charLength": 257, + "snippet": { + "text": " public static byte[] ReadBytes(this IMemory memory, int length) => memory.ReadBytes(null, length);\r\n\r\n public static int ReadInt32(this IMemory memory, long? offset = null)\r\n {\r\n return BitConverter.ToInt32(memory.ReadBytes(offset, 4), 0);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "336677590536106b", + "equalIndicator/v1": "afa0ae4e6fae4c21eeb9ee5cd3eb95ac0be99e890ca1605b6049864e75646929" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_VisibleItemPickupSplit' coverage is below the threshold 50%", + "markdown": "Method `get_VisibleItemPickupSplit` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 239, + "startColumn": 9, + "charOffset": 6682, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 237, + "startColumn": 1, + "charOffset": 6627, + "charLength": 161, + "snippet": { + "text": " public bool VisibleItemPickupSplit\r\n {\r\n get => _visibleItemPickupSplit;\r\n set => this.SetField(ref _visibleItemPickupSplit, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "34c3242c966255c0", + "equalIndicator/v1": "b02c57ac85720ef053ea79919c7e89ef0439dfd8f2a6a893318dea3350f03871" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetInGameTimeMilliseconds' coverage is below the threshold 50%", + "markdown": "Method `GetInGameTimeMilliseconds` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls2/vanilla.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 37, + "startColumn": 16, + "charOffset": 1644, + "charLength": 25, + "snippet": { + "text": "GetInGameTimeMilliseconds" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 35, + "startColumn": 1, + "charOffset": 1491, + "charLength": 228, + "snippet": { + "text": "\r\n public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, \"darksoulsii\", InitPointers, ResetPointers);\r\n public int GetInGameTimeMilliseconds() => 0;\r\n private void ResetPointers()\r\n {\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "89c8e96c6ea23d99", + "equalIndicator/v1": "b05f7f47c389a9c01bd1faf8f091225c61c37fbfffe8c7e3506d4025893c3eeb" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_CurrentPosition' coverage is below the threshold 50%", + "markdown": "Method `set_CurrentPosition` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 43, + "startColumn": 9, + "charOffset": 1537, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 41, + "startColumn": 1, + "charOffset": 1488, + "charLength": 163, + "snippet": { + "text": " {\r\n get => _currentPosition;\r\n set => this.SetField(ref _currentPosition, value);\r\n }\r\n private Vector3f _currentPosition = new(0f,0f,0f);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "bd26658544f23b89", + "equalIndicator/v1": "b080da0c1bda914eb5bf1db36b52954f5f4191acffb6469c6ad67ba568f9ab7e" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_SelectedSplitType' coverage is below the threshold 50%", + "markdown": "Method `get_SelectedSplitType` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 299, + "startColumn": 9, + "charOffset": 12479, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 297, + "startColumn": 1, + "charOffset": 12424, + "charLength": 151, + "snippet": { + "text": " public SplitType SelectedSplitType\r\n {\r\n get => _selectedSplitType;\r\n set => this.SetField(ref _selectedSplitType, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0bbda3a60834502f", + "equalIndicator/v1": "b0bf1637c1d5f6880cfba36029c8f65ae8a261f2b7b47a7ba148882aa082d80f" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_AddSplit' coverage is below the threshold 50%", + "markdown": "Method `set_AddSplit` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 256, + "startColumn": 9, + "charOffset": 11218, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 254, + "startColumn": 1, + "charOffset": 11135, + "charLength": 144, + "snippet": { + "text": " {\r\n get => (RelayCommand)GetValue(AddSplitDependencyProperty);\r\n set => SetValue(AddSplitDependencyProperty, value);\r\n }\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "397feae6288bf3c7", + "equalIndicator/v1": "b0c62ef2a162b29eb8b5061d6f263b28465e9a764539ac7f3feba2b27b0480d4" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'TryRefresh' coverage is below the threshold 50%", + "markdown": "Method `TryRefresh` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 75, + "startColumn": 36, + "charOffset": 2815, + "charLength": 10, + "snippet": { + "text": "TryRefresh" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 73, + "startColumn": 1, + "charOffset": 2771, + "charLength": 149, + "snippet": { + "text": " }\r\n\r\n public ResultErr TryRefresh() => _armoredCore6.TryRefresh();\r\n\r\n public SoulMemory.Memory.TreeBuilder GetTreeBuilder()\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9223fca45ae93b42", + "equalIndicator/v1": "b1027d254fe658df381119756659e02a93a0078d78c66ea6b1bb5614b7e9add7" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_BooleanFlags' coverage is below the threshold 50%", + "markdown": "Method `get_BooleanFlags` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 154, + "startColumn": 9, + "charOffset": 5603, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 152, + "startColumn": 1, + "charOffset": 5516, + "charLength": 256, + "snippet": { + "text": " public ObservableCollection BooleanFlags\r\n {\r\n get => (ObservableCollection)GetValue(BooleanFlagsDependencyProperty);\r\n set => SetValue(BooleanFlagsDependencyProperty, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9fbbc0bb54c40cb7", + "equalIndicator/v1": "b10f515af5d7904bf9ee25c93e23afe2276f16e2343e705a2a208c077f388c7d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Constructor 'ParamFieldAttribute' coverage is below the threshold 50%", + "markdown": "Constructor `ParamFieldAttribute` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/ParamFieldAttribute.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 25, + "startColumn": 12, + "charOffset": 1003, + "charLength": 19, + "snippet": { + "text": "ParamFieldAttribute" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 23, + "startColumn": 1, + "charOffset": 958, + "charLength": 131, + "snippet": { + "text": " public int? ArraySize;\r\n \r\n public ParamFieldAttribute(int offset, ParamType paramType)\r\n {\r\n Offset = offset;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7378193c1c15203a", + "equalIndicator/v1": "b232e9381742736ed74597d998aed5abf956334619ce550a445f807e2dd5dd81" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_SelectedItem' coverage is below the threshold 50%", + "markdown": "Method `set_SelectedItem` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 350, + "startColumn": 9, + "charOffset": 13859, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 348, + "startColumn": 1, + "charOffset": 13813, + "charLength": 135, + "snippet": { + "text": " {\r\n get => _selectedItem;\r\n set => this.SetField(ref _selectedItem, value);\r\n }\r\n private Enum? _selectedItem;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9268ff472b4507e4", + "equalIndicator/v1": "b23af5baa0c5d70f2966fda6b259144d890b9fcc3fd0cf089a52124eea4cf1f7" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ShowErrorWindow' coverage is below the threshold 50%", + "markdown": "Method `ShowErrorWindow` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/MainViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 229, + "startColumn": 18, + "charOffset": 7373, + "charLength": 15, + "snippet": { + "text": "ShowErrorWindow" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 227, + "startColumn": 1, + "charOffset": 7314, + "charLength": 118, + "snippet": { + "text": "\r\n private ErrorWindow? _errorWindow;\r\n private void ShowErrorWindow()\r\n {\r\n if(_errorWindow == null)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "cc47383ae3988625", + "equalIndicator/v1": "b280ace6b63b0359e6b29a0a457864723fdc6cade071c8a0614eeb29f403758a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'UI.ErrorWindow' coverage is below the threshold 50%", + "markdown": "Class `UI.ErrorWindow` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/ErrorWindow.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 24, + "startColumn": 22, + "charOffset": 959, + "charLength": 11, + "snippet": { + "text": "ErrorWindow" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 22, + "startColumn": 1, + "charOffset": 877, + "charLength": 132, + "snippet": { + "text": "/// Interaction logic for UserControl1.xaml\r\n/// \r\npublic partial class ErrorWindow : Window\r\n{\r\n public ErrorWindow()\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "99d4da0807752360", + "equalIndicator/v1": "b2cda19545fc5f5666da77294a6f15d2e2bdb7a7bbf659b5dfc651ba4a2e20fe" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetVersion' coverage is below the threshold 50%", + "markdown": "Method `GetVersion` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 128, + "startColumn": 37, + "charOffset": 4882, + "charLength": 10, + "snippet": { + "text": "GetVersion" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 126, + "startColumn": 1, + "charOffset": 4836, + "charLength": 106, + "snippet": { + "text": " };\r\n\r\n public static DarkSouls3Version GetVersion(Version v)\r\n {\r\n return v.Minor switch\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "2908bd316cb61b34", + "equalIndicator/v1": "b2f6065dd0afa6a14d33c959d85f938b7a61a416740cbe3c0c333ad81e3078d6" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'DarkSouls2.Data' coverage is below the threshold 50%", + "markdown": "Class `DarkSouls2.Data` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls2/Data.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 22, + "startColumn": 21, + "charOffset": 939, + "charLength": 4, + "snippet": { + "text": "Data" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 20, + "startColumn": 1, + "charOffset": 883, + "charLength": 153, + "snippet": { + "text": "namespace SoulMemory.DarkSouls2;\r\n\r\npublic static class Data\r\n{\r\n public struct Bonfire(WarpType warpType, int areaId, ushort bonfireId, string name)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f7b0f9179974b9f0", + "equalIndicator/v1": "b3111a8a8146a6d00b157412dd942b09d1baa2f8285561853779465045c13757" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetCurrentInventoryItems' coverage is below the threshold 50%", + "markdown": "Method `GetCurrentInventoryItems` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/ItemReader.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 25, + "startColumn": 32, + "charOffset": 983, + "charLength": 24, + "snippet": { + "text": "GetCurrentInventoryItems" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 23, + "startColumn": 1, + "charOffset": 915, + "charLength": 196, + "snippet": { + "text": "internal static class ItemReader\r\n{\r\n internal static List GetCurrentInventoryItems(byte[] data, int listCount, int itemCount, int keyCount)\r\n {\r\n var items = new List();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0421c4feecb8ffab", + "equalIndicator/v1": "b34745e9dbaaa79575cee9a206a60506a7c0c1cc20839252ecd5738ba78e2bd8" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetProcess' coverage is below the threshold 50%", + "markdown": "Method `GetProcess` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Process/ProcessWrapper.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 28, + "startColumn": 40, + "charOffset": 1114, + "charLength": 10, + "snippet": { + "text": "GetProcess" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 26, + "startColumn": 1, + "charOffset": 1021, + "charLength": 331, + "snippet": { + "text": "{\r\n private System.Diagnostics.Process? _process;\r\n public System.Diagnostics.Process? GetProcess() => _process;\r\n public bool Is64Bit() => _process?.Is64Bit() ?? false;\r\n public ProcessWrapperModule? GetMainModule() => _process?.MainModule == null ? null : ProcessWrapperModule.FromProcessModule(_process.MainModule);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "463db473bacc61a4", + "equalIndicator/v1": "b3603236d6629692da26216866ad42b0cfc570db51a918315b69137150096f9e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'Sekiro.Attribute' coverage is below the threshold 50%", + "markdown": "Class `Sekiro.Attribute` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splits/Sekiro/Attribute.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 24, + "startColumn": 14, + "charOffset": 991, + "charLength": 9, + "snippet": { + "text": "Attribute" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 22, + "startColumn": 1, + "charOffset": 943, + "charLength": 132, + "snippet": { + "text": "\r\n[XmlType(Namespace = \"Sekiro\")]\r\npublic class Attribute : ICustomNotifyPropertyChanged\r\n{\r\n [XmlElement(Namespace = \"Sekiro\")]\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "35226a3e977034b5", + "equalIndicator/v1": "b40418c6973b37af9d5c55772a54d08a62d89b904481f42036cc27a87327823c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_SelectedKnownFlag' coverage is below the threshold 50%", + "markdown": "Method `get_SelectedKnownFlag` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 313, + "startColumn": 9, + "charOffset": 12858, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 311, + "startColumn": 1, + "charOffset": 12807, + "charLength": 147, + "snippet": { + "text": " public Enum? SelectedKnownFlag\r\n {\r\n get => _selectedKnownFlag;\r\n set => this.SetField(ref _selectedKnownFlag, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e55da3725da0c2d8", + "equalIndicator/v1": "b420b3a4576b63986b03b4575a5c3a5a9b73bfbafb3e09b5ee47b1f9cc706945" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'TryRefresh' coverage is below the threshold 50%", + "markdown": "Method `TryRefresh` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls2/vanilla.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 36, + "startColumn": 36, + "charOffset": 1528, + "charLength": 10, + "snippet": { + "text": "TryRefresh" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 34, + "startColumn": 1, + "charOffset": 1444, + "charLength": 268, + "snippet": { + "text": " public Process? GetProcess() => _process;\r\n\r\n public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, \"darksoulsii\", InitPointers, ResetPointers);\r\n public int GetInGameTimeMilliseconds() => 0;\r\n private void ResetPointers()\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "8d55b482b04aeffd", + "equalIndicator/v1": "b4a3898dfb91c91e03ecdaa005b43219094ec257e59abd641c4472d6ced124d8" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'IsBlackscreenActive' coverage is below the threshold 50%", + "markdown": "Method `IsBlackscreenActive` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/EldenRing.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 328, + "startColumn": 17, + "charOffset": 11442, + "charLength": 19, + "snippet": { + "text": "IsBlackscreenActive" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 326, + "startColumn": 1, + "charOffset": 11413, + "charLength": 103, + "snippet": { + "text": " }\r\n \r\n public bool IsBlackscreenActive()\r\n {\r\n var screenState = GetScreenState();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7f1976aebc63eb27", + "equalIndicator/v1": "b4dfca4e298f17e1a96588337a77fbb018d223c361dfe55d7e09a46957eb1e2e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_FileName' coverage is below the threshold 50%", + "markdown": "Method `get_FileName` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Process/ProcessWrapperModule.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 25, + "startColumn": 30, + "charOffset": 1013, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 23, + "startColumn": 1, + "charOffset": 928, + "charLength": 198, + "snippet": { + "text": "{\r\n public string ModuleName { get; set; } = null!;\r\n public string FileName { get; set; } = null!;\r\n public IntPtr BaseAddress { get; set; }\r\n public int ModuleMemorySize { get; set; }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d7c9077af5eb93fe", + "equalIndicator/v1": "b5420e392874615151f4dad59c4f4cd0fb49d6b3a709513dbea8a7b24b75911a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'DarkSouls2.DarkSouls2ViewModel' coverage is below the threshold 50%", + "markdown": "Class `DarkSouls2.DarkSouls2ViewModel` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 30, + "startColumn": 14, + "charOffset": 1181, + "charLength": 19, + "snippet": { + "text": "DarkSouls2ViewModel" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 28, + "startColumn": 1, + "charOffset": 1127, + "charLength": 144, + "snippet": { + "text": "namespace SoulSplitter.UI.DarkSouls2;\r\n\r\npublic class DarkSouls2ViewModel : ICustomNotifyPropertyChanged\r\n{\r\n public bool StartAutomatically\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f15b6c55de0c3d6c", + "equalIndicator/v1": "b5626b68dac21bd8296666754c72787e2b2ce2cf07656c45944ff48b04021cd3" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ToString' coverage is below the threshold 50%", + "markdown": "Method `ToString` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Result.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 312, + "startColumn": 28, + "charOffset": 7159, + "charLength": 8, + "snippet": { + "text": "ToString" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 310, + "startColumn": 1, + "charOffset": 7123, + "charLength": 108, + "snippet": { + "text": " }\r\n\r\n public override string ToString()\r\n {\r\n return IsOk ? $\"Ok: {_ok}\" : $\"Err: {_err}\";\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f0b057f02d116f59", + "equalIndicator/v1": "b582b8303eb03ed4fef6bffecc446c1a8bed9bf3e09a4827b0f2b36adcfb2e5d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'Copy' coverage is below the threshold 50%", + "markdown": "Method `Copy` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 53, + "startColumn": 20, + "charOffset": 1613, + "charLength": 4, + "snippet": { + "text": "Copy" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 51, + "startColumn": 1, + "charOffset": 1590, + "charLength": 69, + "snippet": { + "text": "\r\n\r\n public Pointer Copy()\r\n {\r\n var p = new Pointer();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "6be7362839bd697d", + "equalIndicator/v1": "b59e81b66b92b31023ebe74047d1122578bbb036e235f57d1c9d163c287e62fe" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteByte' coverage is below the threshold 50%", + "markdown": "Method `WriteByte` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/IMemory.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 159, + "startColumn": 24, + "charOffset": 5208, + "charLength": 9, + "snippet": { + "text": "WriteByte" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 157, + "startColumn": 1, + "charOffset": 5176, + "charLength": 141, + "snippet": { + "text": " }\r\n\r\n public static void WriteByte(this IMemory memory, long? offset, byte value)\r\n {\r\n memory.WriteBytes(offset, [value]);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e48740d2ab973844", + "equalIndicator/v1": "b62c793b3fbebf800026f645d730464d5cd9af9a56a53d516d4c3497565dc03d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_FlagDescription' coverage is below the threshold 50%", + "markdown": "Method `get_FlagDescription` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 363, + "startColumn": 9, + "charOffset": 14176, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 361, + "startColumn": 1, + "charOffset": 14116, + "charLength": 152, + "snippet": { + "text": " public FlagDescription? FlagDescription\r\n {\r\n get => _flagDescription;\r\n set => this.SetField(ref _flagDescription, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e4bdd0501d174650", + "equalIndicator/v1": "b6549f08e66c7587105b6e6734ace2958269bed8d60ea5caf513eb3c4e50933a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_Area' coverage is below the threshold 50%", + "markdown": "Method `get_Area` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/EnumFlagViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 44, + "startColumn": 9, + "charOffset": 1455, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 42, + "startColumn": 1, + "charOffset": 1416, + "charLength": 109, + "snippet": { + "text": " public string Area\r\n {\r\n get => _area;\r\n set => this.SetField(ref _area, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "cf1a113276cc667f", + "equalIndicator/v1": "b691b3cff690cd8f4e399124cc1495c00081aadaf54422a53274b4b543b2aec8" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'OnReset' coverage is below the threshold 50%", + "markdown": "Method `OnReset` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/SekiroSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 63, + "startColumn": 18, + "charOffset": 2045, + "charLength": 7, + "snippet": { + "text": "OnReset" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 61, + "startColumn": 1, + "charOffset": 2019, + "charLength": 102, + "snippet": { + "text": " }\r\n\r\n private void OnReset(object sender, TimerPhase timerPhase)\r\n {\r\n ResetTimer();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "af9bd8d582a94a6c", + "equalIndicator/v1": "b696859cef6311e319318f455d29c1e54761299c7244133f728e05002383adfb" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetTestValue' coverage is below the threshold 50%", + "markdown": "Method `GetTestValue` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/DarkSouls1.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 95, + "startColumn": 19, + "charOffset": 4281, + "charLength": 12, + "snippet": { + "text": "GetTestValue" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 93, + "startColumn": 1, + "charOffset": 4250, + "charLength": 90, + "snippet": { + "text": "\r\n#if DEBUG\r\n public object GetTestValue() => _darkSouls1?.GetTestValue()!;\r\n#endif\r\n}\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d12c158b98eee6c6", + "equalIndicator/v1": "b7071fdaee1b6004c3677125db34bf617aa80bc3196cfcf43aa85e6acad4941a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ResetPointers' coverage is below the threshold 50%", + "markdown": "Method `ResetPointers` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls2/vanilla.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 38, + "startColumn": 18, + "charOffset": 1696, + "charLength": 13, + "snippet": { + "text": "ResetPointers" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 36, + "startColumn": 1, + "charOffset": 1493, + "charLength": 262, + "snippet": { + "text": " public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, \"darksoulsii\", InitPointers, ResetPointers);\r\n public int GetInGameTimeMilliseconds() => 0;\r\n private void ResetPointers()\r\n {\r\n _eventFlagManager.Clear();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "606cf3b444ab22de", + "equalIndicator/v1": "b721b9a8013a49acdae73af9cd99b0afe1aa2a8ced183903e25aae5e399ca11f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'Dispose' coverage is below the threshold 50%", + "markdown": "Method `Dispose` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/BaseSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 89, + "startColumn": 28, + "charOffset": 2869, + "charLength": 7, + "snippet": { + "text": "Dispose" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 87, + "startColumn": 1, + "charOffset": 2833, + "charLength": 91, + "snippet": { + "text": " }\r\n\r\n protected virtual void Dispose(bool disposing)\r\n {\r\n if (disposing)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "bac738546230bc50", + "equalIndicator/v1": "b748b37d7ca6bef2f8a7633761c93d52d6e2a78cf031710bad5d9b56cabfd8f0" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'RemoveSplit_OnClick' coverage is below the threshold 50%", + "markdown": "Method `RemoveSplit_OnClick` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 43, + "startColumn": 18, + "charOffset": 1421, + "charLength": 19, + "snippet": { + "text": "RemoveSplit_OnClick" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 41, + "startColumn": 1, + "charOffset": 1395, + "charLength": 135, + "snippet": { + "text": " }\r\n\r\n private void RemoveSplit_OnClick(object sender, RoutedEventArgs e)\r\n {\r\n GetEldenRingViewModel().RemoveSplit();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "1b2b81436f4127e2", + "equalIndicator/v1": "b75e1133e2d3dac74133ffba170e7ef07ebfc3b773bb8834d8cee494c0ed5054" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ToString' coverage is below the threshold 50%", + "markdown": "Method `ToString` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splits/DarkSouls1/ItemState.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 37, + "startColumn": 28, + "charOffset": 1389, + "charLength": 8, + "snippet": { + "text": "ToString" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 35, + "startColumn": 1, + "charOffset": 1255, + "charLength": 185, + "snippet": { + "text": " private string ItemString => Item.AllItems.FirstOrDefault(i => i.ItemType == ItemType)?.Name ?? \"\";\r\n\r\n public override string ToString()\r\n {\r\n return $\"{ItemString}\";\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "51dbee8789d5403a", + "equalIndicator/v1": "b78ac968daeb9f630a8aa8a095d1bb612f5055cb652f87a5739f365ad6dbb384" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadAttribute' coverage is below the threshold 50%", + "markdown": "Method `ReadAttribute` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 178, + "startColumn": 16, + "charOffset": 6040, + "charLength": 13, + "snippet": { + "text": "ReadAttribute" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 176, + "startColumn": 1, + "charOffset": 5994, + "charLength": 158, + "snippet": { + "text": " #region Read attributes\r\n\r\n public int ReadAttribute(Attribute attribute)\r\n {\r\n if (IsPlayerLoaded() && _newMenuSystem.ReadInt32(0x88) != 3)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "403422d13740f12d", + "equalIndicator/v1": "b84e84f24bd9e1bf79459f6007209a32c920daaa087f483eec75ade9ae5d7c6b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_PointerTreeBuilder' coverage is below the threshold 50%", + "markdown": "Method `get_PointerTreeBuilder` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Process/ProcessHook.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 30, + "startColumn": 71, + "charOffset": 1340, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 28, + "startColumn": 1, + "charOffset": 1215, + "charLength": 315, + "snippet": { + "text": " public event Action Exited = null!;\r\n\r\n public PointerTreeBuilder.PointerTreeBuilder PointerTreeBuilder { get; set; } = new();\r\n\r\n #region Refresh =================================================================================================================================================\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5167934d336195be", + "equalIndicator/v1": "b8bb2ed24b174ea5c61d5a5ed3f9189c36ed4671a370ab349c3f830c2def10d9" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'Parameters.ParamData' coverage is below the threshold 50%", + "markdown": "Class `Parameters.ParamData` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/ParamData.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 22, + "startColumn": 21, + "charOffset": 939, + "charLength": 9, + "snippet": { + "text": "ParamData" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 20, + "startColumn": 1, + "charOffset": 883, + "charLength": 185, + "snippet": { + "text": "namespace SoulMemory.Parameters;\r\n\r\npublic static class ParamData\r\n{\r\n public static readonly ReadOnlyDictionary ParamByteSize = new(new Dictionary()\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ebe769fd109ac5e1", + "equalIndicator/v1": "b9f7ba533d6b1f97622cbb5cbf686ae3bbe034ff553e68a579315b7c4c62a53c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'InitPointers' coverage is below the threshold 50%", + "markdown": "Method `InitPointers` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls2/vanilla.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 63, + "startColumn": 37, + "charOffset": 2585, + "charLength": 12, + "snippet": { + "text": "InitPointers" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 61, + "startColumn": 1, + "charOffset": 2540, + "charLength": 80, + "snippet": { + "text": " }\r\n\r\n private ResultErr InitPointers()\r\n {\r\n try\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0fcca1db0b657363", + "equalIndicator/v1": "b9ff9217c069243c077e5feb258356253a0dc042b5f7d67d18c679d1ca8291e3" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'Append' coverage is below the threshold 50%", + "markdown": "Method `Append` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 145, + "startColumn": 20, + "charOffset": 3979, + "charLength": 6, + "snippet": { + "text": "Append" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 143, + "startColumn": 1, + "charOffset": 3930, + "charLength": 114, + "snippet": { + "text": " #region Append offsets\r\n\r\n public Pointer Append(params long[] offsets)\r\n {\r\n var copy = Copy();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "3142267616c27a6e", + "equalIndicator/v1": "badd4b4b75447d8c34df24d3d144edd5e8034e6f6467ceec365677610f88583a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'Generic.BoolDescriptionViewModel' coverage is below the threshold 50%", + "markdown": "Class `Generic.BoolDescriptionViewModel` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/BoolDescriptionViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 21, + "startColumn": 14, + "charOffset": 890, + "charLength": 24, + "snippet": { + "text": "BoolDescriptionViewModel" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 19, + "startColumn": 1, + "charOffset": 839, + "charLength": 141, + "snippet": { + "text": "namespace SoulSplitter.UI.Generic;\r\n\r\npublic class BoolDescriptionViewModel : ICustomNotifyPropertyChanged\r\n{\r\n public string Description\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "aa952515a0581f51", + "equalIndicator/v1": "bb5e71385c301bcb9f0c00d062eee972a3845769c32a2550f05bd67334745680" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetEventFlagOffset' coverage is below the threshold 50%", + "markdown": "Method `GetEventFlagOffset` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 347, + "startColumn": 17, + "charOffset": 12105, + "charLength": 18, + "snippet": { + "text": "GetEventFlagOffset" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 345, + "startColumn": 1, + "charOffset": 12079, + "charLength": 140, + "snippet": { + "text": " };\r\n\r\n private int GetEventFlagOffset(uint eventFlagId, out uint mask)\r\n {\r\n string idString = eventFlagId.ToString(\"D8\");\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "843a768cf404f902", + "equalIndicator/v1": "bbba8602a0bed2f2ce0435ddf6cfcdf82a2193a60c00519671df980199610914" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'DarkSouls1.Ptde' coverage is below the threshold 50%", + "markdown": "Class `DarkSouls1.Ptde` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 47, + "startColumn": 14, + "charOffset": 2048, + "charLength": 4, + "snippet": { + "text": "Ptde" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 45, + "startColumn": 1, + "charOffset": 1999, + "charLength": 232, + "snippet": { + "text": "namespace SoulMemory.DarkSouls1;\r\n\r\npublic class Ptde : IDarkSouls1\r\n{\r\n #region Refresh/init/reset ================================================================================================================================\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "89347cfa299b1516", + "equalIndicator/v1": "bbd8f0c38688ebcf1310c4e1bfba3acd4094dbd9e509f83c843ad2a1b07d5a6b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Constructor 'Split' coverage is below the threshold 50%", + "markdown": "Constructor `Split` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splits/EldenRing/Split.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 25, + "startColumn": 12, + "charOffset": 965, + "charLength": 5, + "snippet": { + "text": "Split" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 23, + "startColumn": 1, + "charOffset": 929, + "charLength": 159, + "snippet": { + "text": "internal class Split\r\n{\r\n public Split(TimingType timingType, EldenRingSplitType eldenRingSplitType, object split)\r\n {\r\n TimingType = timingType;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "61f0f56c558cbca3", + "equalIndicator/v1": "bc1165e3a3a51feac4dbdc12dfcef491a93500e1ee4ce6313f38e300a349c297" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_SelectedBonfireState' coverage is below the threshold 50%", + "markdown": "Method `set_SelectedBonfireState` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 329, + "startColumn": 9, + "charOffset": 13307, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 327, + "startColumn": 1, + "charOffset": 13253, + "charLength": 159, + "snippet": { + "text": " {\r\n get => _selectedBonfireState;\r\n set => this.SetField(ref _selectedBonfireState, value);\r\n }\r\n private Enum? _selectedBonfireState;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f003892a6e2b95f7", + "equalIndicator/v1": "bc133193baed0031e1c4033d7caf38edc05b877fbd8d60648bbcd3b474218376" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_EnabledSplitType' coverage is below the threshold 50%", + "markdown": "Method `set_EnabledSplitType` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 75, + "startColumn": 9, + "charOffset": 2364, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 73, + "startColumn": 1, + "charOffset": 2314, + "charLength": 146, + "snippet": { + "text": " {\r\n get => _enabledSplitType;\r\n set => this.SetField(ref _enabledSplitType, value);\r\n }\r\n private bool _enabledSplitType;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0ad59249f6223613", + "equalIndicator/v1": "bc3dc653574a62e5042aa8268b8985e6f7504b0c1433778efb42657863ca4750" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_Position' coverage is below the threshold 50%", + "markdown": "Method `set_Position` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 357, + "startColumn": 9, + "charOffset": 14026, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 355, + "startColumn": 1, + "charOffset": 13984, + "charLength": 129, + "snippet": { + "text": " {\r\n get => _position;\r\n set => this.SetField(ref _position, value);\r\n }\r\n private VectorSize? _position;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4754b1563c0da4b2", + "equalIndicator/v1": "bc722898aece05ffd440612869a626daf06f1a0a3d6e0075361a8979d28307c8" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Constructor 'Result' coverage is below the threshold 50%", + "markdown": "Constructor `Result` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Result.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 236, + "startColumn": 13, + "charOffset": 5432, + "charLength": 6, + "snippet": { + "text": "Result" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 234, + "startColumn": 1, + "charOffset": 5411, + "charLength": 68, + "snippet": { + "text": " }\r\n\r\n private Result(TErr err)\r\n {\r\n IsOk = false;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "958f2ded9314da6a", + "equalIndicator/v1": "bcb2352b6e699e50ef61836ef668d8b35ea401c82708fb6fef959cbd8c0e15be" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteSByte' coverage is below the threshold 50%", + "markdown": "Method `WriteSByte` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 306, + "startColumn": 17, + "charOffset": 8018, + "charLength": 10, + "snippet": { + "text": "WriteSByte" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 304, + "startColumn": 1, + "charOffset": 7993, + "charLength": 111, + "snippet": { + "text": " }\r\n\r\n public void WriteSByte(long? offset, sbyte value)\r\n {\r\n var b = unchecked((byte)value);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4b36ccf2f1bda246", + "equalIndicator/v1": "bcb9d93b01af9aae05e41c7d8ea87f6fa55fb9b27082345a7c2445f7c203ae07" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'SoulMemory.Extensions' coverage is below the threshold 50%", + "markdown": "Class `SoulMemory.Extensions` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Extensions.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 26, + "startColumn": 21, + "charOffset": 996, + "charLength": 10, + "snippet": { + "text": "Extensions" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 24, + "startColumn": 1, + "charOffset": 951, + "charLength": 129, + "snippet": { + "text": "namespace SoulMemory;\r\n\r\npublic static class Extensions\r\n{\r\n public static bool TryParseEnum(this int value, out T result)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0aa2c84b71a52ab1", + "equalIndicator/v1": "bd08d70d5fc4c73a0568da639f2acf61b078f4e4e8b57aa1a7af7fb445250643" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'Splitters.BaseSplitter' coverage is below the threshold 50%", + "markdown": "Class `Splitters.BaseSplitter` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/BaseSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 24, + "startColumn": 23, + "charOffset": 950, + "charLength": 12, + "snippet": { + "text": "BaseSplitter" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 22, + "startColumn": 1, + "charOffset": 891, + "charLength": 124, + "snippet": { + "text": "namespace SoulSplitter.Splitters;\r\n\r\npublic abstract class BaseSplitter : ISplitter\r\n{\r\n protected readonly IGame _game;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "1c756af8877c72ba", + "equalIndicator/v1": "bd92627adf31261fa92f64dbbce7fed1cee3a971bfc1c3bb7ff90a718319db52" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_NewSplitPositionEnabled' coverage is below the threshold 50%", + "markdown": "Method `set_NewSplitPositionEnabled` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 220, + "startColumn": 9, + "charOffset": 7927, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 218, + "startColumn": 1, + "charOffset": 7870, + "charLength": 167, + "snippet": { + "text": " {\r\n get => _newSplitPositionEnabled;\r\n set => this.SetField(ref _newSplitPositionEnabled, value);\r\n }\r\n private bool _newSplitPositionEnabled;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9030f9de6d987b04", + "equalIndicator/v1": "bda2502a7f8580c9a955863e9d71a6cc817e6038207dabdc9988414fbc5bf35f" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetBossKillCount' coverage is below the threshold 50%", + "markdown": "Method `GetBossKillCount` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls2/scholar.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 91, + "startColumn": 16, + "charOffset": 3354, + "charLength": 16, + "snippet": { + "text": "GetBossKillCount" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 89, + "startColumn": 1, + "charOffset": 3330, + "charLength": 124, + "snippet": { + "text": " }\r\n\r\n public int GetBossKillCount(BossType bossType)\r\n {\r\n return _bossCounters.ReadInt32((long)bossType);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "daef5e723f6921f1", + "equalIndicator/v1": "bda6524ff15c59004dfdd38a108b40c9b29a22460620eef84b20068478bf0e2e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_Name' coverage is below the threshold 50%", + "markdown": "Method `get_Name` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/ItemPickupViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 47, + "startColumn": 9, + "charOffset": 1469, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 45, + "startColumn": 1, + "charOffset": 1430, + "charLength": 109, + "snippet": { + "text": " public string Name\r\n {\r\n get => _name;\r\n set => this.SetField(ref _name, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e160e415304accd4", + "equalIndicator/v1": "bdb7f0e4d87123ea1337018230e1d1b83e627a58a9c0413852b689a4f99c48ad" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadInt16' coverage is below the threshold 50%", + "markdown": "Method `ReadInt16` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 223, + "startColumn": 18, + "charOffset": 5859, + "charLength": 9, + "snippet": { + "text": "ReadInt16" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 221, + "startColumn": 1, + "charOffset": 5833, + "charLength": 128, + "snippet": { + "text": " }\r\n\r\n public short ReadInt16(long? offset = null)\r\n {\r\n return BitConverter.ToInt16(ReadMemory(offset, 2), 0);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f82b2ed337e64c09", + "equalIndicator/v1": "bdcc822dab7993758ea21ce261b369e04f6b8bcf16b504dfbb8415b928669908" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadParam' coverage is below the threshold 50%", + "markdown": "Method `ReadParam` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/ParamReader.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 51, + "startColumn": 27, + "charOffset": 1836, + "charLength": 9, + "snippet": { + "text": "ReadParam" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 49, + "startColumn": 1, + "charOffset": 1801, + "charLength": 161, + "snippet": { + "text": " }\r\n\r\n public static List ReadParam(Pointer paramBasePointer) where T : BaseParam\r\n {\r\n var dataOffset = paramBasePointer.ReadUInt16(0x4);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "46847548a19a689e", + "equalIndicator/v1": "be9e510e1f702ebafc663f5897d32dc6161197dc694108ffe8311b3b4a437ffc" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'Dispose' coverage is below the threshold 50%", + "markdown": "Method `Dispose` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/SekiroSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 70, + "startColumn": 17, + "charOffset": 2232, + "charLength": 7, + "snippet": { + "text": "Dispose" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 68, + "startColumn": 1, + "charOffset": 2207, + "charLength": 66, + "snippet": { + "text": " }\r\n\r\n public void Dispose()\r\n {\r\n Dispose(true);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b7a66496b5e56de3", + "equalIndicator/v1": "bf0bf7a1529e0360b68e759261c84ddb121fc843149751b206b5e967c3e8fc6e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetSaveFileLocation' coverage is below the threshold 50%", + "markdown": "Method `GetSaveFileLocation` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 392, + "startColumn": 20, + "charOffset": 13622, + "charLength": 19, + "snippet": { + "text": "GetSaveFileLocation" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 390, + "startColumn": 1, + "charOffset": 13554, + "charLength": 160, + "snippet": { + "text": " /// \r\n /// \r\n public string? GetSaveFileLocation()\r\n {\r\n // values may be null if called before hook, in which\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "454ac8914993072e", + "equalIndicator/v1": "bf96c0f32e587202ba83d1e4929b9792a7268f9cd1878ff1551ac58a8ecac7cc" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ResolveOffsets' coverage is below the threshold 50%", + "markdown": "Method `ResolveOffsets` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 52, + "startColumn": 17, + "charOffset": 1735, + "charLength": 14, + "snippet": { + "text": "ResolveOffsets" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 50, + "startColumn": 1, + "charOffset": 1710, + "charLength": 173, + "snippet": { + "text": " }\r\n\r\n public long ResolveOffsets()\r\n {\r\n long currentAddress = AbsoluteOffset;//0 for standard pointers. Only has a value when coming from an absolute scan\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "2a18db250507f747", + "equalIndicator/v1": "bfa21bf32c220eb1ec4ca74a44fef8ed2769080ed1f5b45ffb38b40652e03c9a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_Y' coverage is below the threshold 50%", + "markdown": "Method `get_Y` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/PositionViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 62, + "startColumn": 9, + "charOffset": 1732, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 60, + "startColumn": 1, + "charOffset": 1697, + "charLength": 115, + "snippet": { + "text": " public float Y\r\n {\r\n get => Position.Y;\r\n set => this.SetField(ref Position.Y, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "2cdf8a382da8fca5", + "equalIndicator/v1": "c00d77d65f0d35f1050535b0343f60eb27210484ce0c23ad11e81e38090e596c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'InvokePropertyChanged' coverage is below the threshold 50%", + "markdown": "Method `InvokePropertyChanged` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/SplitViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 100, + "startColumn": 17, + "charOffset": 3100, + "charLength": 21, + "snippet": { + "text": "InvokePropertyChanged" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 98, + "startColumn": 1, + "charOffset": 3018, + "charLength": 216, + "snippet": { + "text": " public event PropertyChangedEventHandler? PropertyChanged;\r\n\r\n public void InvokePropertyChanged(string propertyName)\r\n {\r\n PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ca7dabd9a4d3c75d", + "equalIndicator/v1": "c06018ec166d9916a5679f88338b17a198330350c622233284d9eb87d9b28519" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'BlackscreenActive' coverage is below the threshold 50%", + "markdown": "Method `BlackscreenActive` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 144, + "startColumn": 17, + "charOffset": 5269, + "charLength": 17, + "snippet": { + "text": "BlackscreenActive" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 142, + "startColumn": 1, + "charOffset": 5244, + "charLength": 99, + "snippet": { + "text": " }\r\n\r\n public bool BlackscreenActive()\r\n {\r\n return _blackscreen.ReadInt32() != 0;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4ed9225113fd03aa", + "equalIndicator/v1": "c07c6ee4d3fa90df8df9308f5c2a4e8a47c6bec24ed2a6795dbef9246124106e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadUInt32' coverage is below the threshold 50%", + "markdown": "Method `ReadUInt32` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/IMemory.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 59, + "startColumn": 24, + "charOffset": 1850, + "charLength": 10, + "snippet": { + "text": "ReadUInt32" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 57, + "startColumn": 1, + "charOffset": 1750, + "charLength": 231, + "snippet": { + "text": " return BitConverter.ToInt32(memory.ReadBytes(offset, 4), 0);\r\n }\r\n public static uint ReadUInt32(this IMemory memory, long? offset = null)\r\n {\r\n return BitConverter.ToUInt32(memory.ReadBytes(offset, 4), 0);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "446ab32c9c9027b7", + "equalIndicator/v1": "c0b1d6852f812271419bc616f04b6a5e258ede7a00d9616e6f4b65811363bdf4" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'Pointer64' coverage is below the threshold 50%", + "markdown": "Method `Pointer64` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 27, + "startColumn": 27, + "charOffset": 996, + "charLength": 9, + "snippet": { + "text": "Pointer64" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 25, + "startColumn": 1, + "charOffset": 946, + "charLength": 147, + "snippet": { + "text": " #region Pointers\r\n\r\n public static Pointer Pointer64(this IMemory memory, params long[] offsets)\r\n {\r\n var sourceMemory = memory;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "97b4996333107d5f", + "equalIndicator/v1": "c0fff51a6bc9f915380b92157912b0a384ea89a150e6bf06ea1555d588a9dcd9" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetInGameTimeMilliseconds' coverage is below the threshold 50%", + "markdown": "Method `GetInGameTimeMilliseconds` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/DarkSouls1.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 36, + "startColumn": 16, + "charOffset": 1637, + "charLength": 25, + "snippet": { + "text": "GetInGameTimeMilliseconds" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 34, + "startColumn": 1, + "charOffset": 1456, + "charLength": 398, + "snippet": { + "text": " public bool IsPlayerLoaded() => _darkSouls1?.IsPlayerLoaded() ?? false;\r\n public Vector3f GetPosition() => _darkSouls1?.GetPosition() ?? new Vector3f(0,0,0);\r\n public int GetInGameTimeMilliseconds() => _darkSouls1?.GetInGameTimeMilliseconds() ?? 0;\r\n public int NgCount() => _darkSouls1?.NgCount() ?? 0;\r\n public int GetCurrentSaveSlot() => _darkSouls1?.GetCurrentSaveSlot() ?? -1;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0d799d7812ac0f31", + "equalIndicator/v1": "c12861cb58215b44e74e3e6be66adada37c6e1622b782a29aa49634c591f2ab1" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'OnStart' coverage is below the threshold 50%", + "markdown": "Method `OnStart` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls3Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 72, + "startColumn": 18, + "charOffset": 2229, + "charLength": 7, + "snippet": { + "text": "OnStart" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 70, + "startColumn": 1, + "charOffset": 2203, + "charLength": 92, + "snippet": { + "text": " }\r\n\r\n private void OnStart(object sender, EventArgs e)\r\n {\r\n StartTimer();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "31a3017e77aea235", + "equalIndicator/v1": "c1306131b8238a35152dcd97ae0abcb19c7512a20a9b244cc39e2ecbf750dee5" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ResetPointers' coverage is below the threshold 50%", + "markdown": "Method `ResetPointers` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 106, + "startColumn": 18, + "charOffset": 4436, + "charLength": 13, + "snippet": { + "text": "ResetPointers" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 104, + "startColumn": 1, + "charOffset": 4410, + "charLength": 80, + "snippet": { + "text": " }\r\n\r\n private void ResetPointers()\r\n {\r\n _gameDataMan.Clear();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f1058d684993a5e6", + "equalIndicator/v1": "c150a4621455231c53574c021b5a059cfb5016de1c2b70102c9478c4af257a3c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ClearFilter' coverage is below the threshold 50%", + "markdown": "Method `ClearFilter` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/FilteredComboBox.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 134, + "startColumn": 18, + "charOffset": 4100, + "charLength": 11, + "snippet": { + "text": "ClearFilter" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 132, + "startColumn": 1, + "charOffset": 4074, + "charLength": 87, + "snippet": { + "text": " }\r\n\r\n private void ClearFilter()\r\n {\r\n _currentFilter = string.Empty;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "22bb49573429b7e6", + "equalIndicator/v1": "c15a24ff3efc535a2201920d6166e2c3393b2f9f238ca2a4f8fb221b78eb8f38" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_FlagDescription' coverage is below the threshold 50%", + "markdown": "Method `set_FlagDescription` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 364, + "startColumn": 9, + "charOffset": 14210, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 362, + "startColumn": 1, + "charOffset": 14161, + "charLength": 155, + "snippet": { + "text": " {\r\n get => _flagDescription;\r\n set => this.SetField(ref _flagDescription, value);\r\n }\r\n private FlagDescription? _flagDescription;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f11199b23cbc3c2d", + "equalIndicator/v1": "c184983c3f90a8eb904d8f813d6a70e6258ec482e89498e9ebc6c9e1ec0f9672" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'TryParseEnum' coverage is below the threshold 50%", + "markdown": "Method `TryParseEnum` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Extensions.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 39, + "startColumn": 24, + "charOffset": 1306, + "charLength": 12, + "snippet": { + "text": "TryParseEnum" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 37, + "startColumn": 1, + "charOffset": 1274, + "charLength": 114, + "snippet": { + "text": " }\r\n\r\n public static bool TryParseEnum(this uint value, out T result)\r\n {\r\n result = default!;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f89fce5a2d965335", + "equalIndicator/v1": "c184e5e0b6f3472200e5aa0437227c0f6b003ded72f6af1bc3040ffc76de1338" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'Dispose' coverage is below the threshold 50%", + "markdown": "Method `Dispose` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/EldenRingSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 61, + "startColumn": 28, + "charOffset": 2006, + "charLength": 7, + "snippet": { + "text": "Dispose" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 59, + "startColumn": 1, + "charOffset": 1970, + "charLength": 91, + "snippet": { + "text": " }\r\n\r\n protected virtual void Dispose(bool disposing)\r\n {\r\n if (disposing)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f28b2bb2b51bd4a8", + "equalIndicator/v1": "c1e207cad7c60b7fea4f73758064fb9ada4ee49c671bff9ac18689c6e6fa8b2a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_SplitType' coverage is below the threshold 50%", + "markdown": "Method `get_SplitType` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/HierarchicalViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 61, + "startColumn": 9, + "charOffset": 2063, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 59, + "startColumn": 1, + "charOffset": 2006, + "charLength": 137, + "snippet": { + "text": " public DarkSouls2SplitType SplitType\r\n {\r\n get => _splitType;\r\n set => this.SetField(ref _splitType, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5fc92605ef0844a8", + "equalIndicator/v1": "c1fb2521ffca9777a7cde7c2a53805eaf9480c2745fced2c89bc3b8972642bf3" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_X' coverage is below the threshold 50%", + "markdown": "Method `set_X` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/PositionViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 57, + "startColumn": 9, + "charOffset": 1642, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 55, + "startColumn": 1, + "charOffset": 1599, + "charLength": 97, + "snippet": { + "text": " {\r\n get => Position.X;\r\n set => this.SetField(ref Position.X, value);\r\n }\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "2b3db67345c9c335", + "equalIndicator/v1": "c22d41e311d902f0a1c8e1a8db38b1cdfb2a0326ad091c9cf6d21b06383466c6" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_GamePosition' coverage is below the threshold 50%", + "markdown": "Method `set_GamePosition` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 246, + "startColumn": 9, + "charOffset": 10760, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 244, + "startColumn": 1, + "charOffset": 10677, + "charLength": 148, + "snippet": { + "text": " {\r\n get => (Vector3f)GetValue(GamePositionDependencyProperty);\r\n set => SetValue(GamePositionDependencyProperty, value);\r\n }\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "46f6e30e266a0c48", + "equalIndicator/v1": "c270f3c23acab4ce912e8b0e8a6972277c62728b36d050ba8d0f7a72cf3d454e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_AttributeType' coverage is below the threshold 50%", + "markdown": "Method `set_AttributeType` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splits/DarkSouls2/Attribute.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 30, + "startColumn": 9, + "charOffset": 1193, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 28, + "startColumn": 1, + "charOffset": 1146, + "charLength": 164, + "snippet": { + "text": " {\r\n get => _attributeType;\r\n set => this.SetField(ref _attributeType, value);\r\n }\r\n private SoulMemory.DarkSouls2.Attribute _attributeType;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "54b194e42cf5eaf3", + "equalIndicator/v1": "c2aa27daff5e3224755fd077ef8cb620af08a27ba4478d7d1847c8d08ae40591" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ResetInventoryIndices' coverage is below the threshold 50%", + "markdown": "Method `ResetInventoryIndices` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/DarkSouls1.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 39, + "startColumn": 17, + "charOffset": 1871, + "charLength": 21, + "snippet": { + "text": "ResetInventoryIndices" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 37, + "startColumn": 1, + "charOffset": 1716, + "charLength": 379, + "snippet": { + "text": " public int NgCount() => _darkSouls1?.NgCount() ?? 0;\r\n public int GetCurrentSaveSlot() => _darkSouls1?.GetCurrentSaveSlot() ?? -1;\r\n public void ResetInventoryIndices() => _darkSouls1?.ResetInventoryIndices();\r\n public List GetInventory() => _darkSouls1?.GetInventory() ?? [];\r\n public bool AreCreditsRolling() => _darkSouls1?.AreCreditsRolling() ?? false;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d74380e0d205ab4e", + "equalIndicator/v1": "c33fcf12947ac2543ff959b33d58b0a5ec707634528e57527d251c0d075e1a15" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ResetPointers' coverage is below the threshold 50%", + "markdown": "Method `ResetPointers` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 93, + "startColumn": 18, + "charOffset": 3780, + "charLength": 13, + "snippet": { + "text": "ResetPointers" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 91, + "startColumn": 1, + "charOffset": 3617, + "charLength": 213, + "snippet": { + "text": " public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, \"darksoulsremastered\", InitPointers, ResetPointers);\r\n\r\n private void ResetPointers()\r\n {\r\n _gameMan.Clear();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "525e7af951bb3311", + "equalIndicator/v1": "c35b54c4aa5150a391194c7fb5e37fdf90029c25f324528154a6078d23a62c6a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'FromException' coverage is below the threshold 50%", + "markdown": "Method `FromException` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/RefreshError.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 24, + "startColumn": 43, + "charOffset": 941, + "charLength": 13, + "snippet": { + "text": "FromException" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 22, + "startColumn": 1, + "charOffset": 869, + "charLength": 192, + "snippet": { + "text": "public class RefreshError\r\n{\r\n public static ResultErr FromException(Exception e)\r\n {\r\n return Result.Err(new RefreshError(RefreshErrorReason.UnknownException, e));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5456b3474946c7e1", + "equalIndicator/v1": "c3665ec81ecaeee6c0e13f442e4826766c463528523af3d7b47ebb456f7e09c2" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'UpdateTimer' coverage is below the threshold 50%", + "markdown": "Method `UpdateTimer` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/SekiroSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 149, + "startColumn": 18, + "charOffset": 4146, + "charLength": 11, + "snippet": { + "text": "UpdateTimer" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 147, + "startColumn": 1, + "charOffset": 4120, + "charLength": 77, + "snippet": { + "text": " }\r\n\r\n private void UpdateTimer()\r\n {\r\n switch (_timerState)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "96d502d44c142c41", + "equalIndicator/v1": "c39b97269321e4d08c9ba9df122af51177f7af51af459f0e91ab9968ca1bc2fe" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get__Signature' coverage is below the threshold 50%", + "markdown": "Method `get__Signature` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Native/Structs/Image/IMAGE_NT_HEADERS64.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 38, + "startColumn": 9, + "charOffset": 1276, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 36, + "startColumn": 1, + "charOffset": 1230, + "charLength": 130, + "snippet": { + "text": " private string _Signature\r\n {\r\n get { return Encoding.ASCII.GetString(BitConverter.GetBytes(Signature)); }\r\n }\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "26b517d36de0ad3b", + "equalIndicator/v1": "c3ca4cfbb23e2459e9f23fcd159f5af5c103d18095b3c463d376b84f80543a7c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_Exception' coverage is below the threshold 50%", + "markdown": "Method `get_Exception` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/RefreshError.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 48, + "startColumn": 35, + "charOffset": 1576, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 46, + "startColumn": 1, + "charOffset": 1450, + "charLength": 174, + "snippet": { + "text": " public RefreshErrorReason Reason { get; }\r\n public string Message { get; } = null!;\r\n public Exception? Exception { get; }\r\n\r\n public override string ToString()\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0c77da517becfc39", + "equalIndicator/v1": "c3cae237dcdbabe6ff45dedc0ea1a872bd6bb418c9f2479b717a6fdac5084843" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteWeaponDescription' coverage is below the threshold 50%", + "markdown": "Method `WriteWeaponDescription` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/DarkSouls1.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 45, + "startColumn": 17, + "charOffset": 2454, + "charLength": 22, + "snippet": { + "text": "WriteWeaponDescription" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 43, + "startColumn": 1, + "charOffset": 2220, + "charLength": 595, + "snippet": { + "text": " public string? GetSaveFileLocation() => _darkSouls1?.GetSaveFileLocation();\r\n public int GetSaveFileGameTimeMilliseconds(string path, int slot) => _darkSouls1?.GetSaveFileGameTimeMilliseconds(path, slot) ?? 0;\r\n public void WriteWeaponDescription(uint weaponId, string description) => _darkSouls1?.WriteWeaponDescription(weaponId, description);\r\n public void WriteItemLotParam(int rowId, Action accessor) => _darkSouls1?.WriteItemLotParam(rowId, accessor);\r\n public void SetLoadingScreenItem(int index, uint item) => _darkSouls1?.SetLoadingScreenItem(index, item);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "693bb109b8a078c3", + "equalIndicator/v1": "c3fb18bf3919758cbb4023799f856eb4de1fb088b1e1a37e01d7c824e04941a5" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetErr' coverage is below the threshold 50%", + "markdown": "Method `GetErr` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Result.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 291, + "startColumn": 17, + "charOffset": 6792, + "charLength": 6, + "snippet": { + "text": "GetErr" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 289, + "startColumn": 1, + "charOffset": 6767, + "charLength": 60, + "snippet": { + "text": " }\r\n\r\n public TErr GetErr()\r\n {\r\n if (IsOk)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7015014545df0ec2", + "equalIndicator/v1": "c466cb36be946739dc03110edd79d39c95b13380b05bee3a626290c96ffc0b52" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'Memory.PointerAppender' coverage is below the threshold 50%", + "markdown": "Class `Memory.PointerAppender` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/PointerAppender.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 19, + "startColumn": 14, + "charOffset": 852, + "charLength": 15, + "snippet": { + "text": "PointerAppender" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 17, + "startColumn": 1, + "charOffset": 807, + "charLength": 112, + "snippet": { + "text": "namespace SoulMemory.Memory;\r\n\r\npublic class PointerAppender\r\n{\r\n private readonly PointerNode _pointerNode;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "fec9ad967ff897fa", + "equalIndicator/v1": "c467da549a68bd918696ed5fc358b3d312c833c4377d89933247a9322bfdee79" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'TryRefresh' coverage is below the threshold 50%", + "markdown": "Method `TryRefresh` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls2/DarkSouls2.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 37, + "startColumn": 36, + "charOffset": 1725, + "charLength": 10, + "snippet": { + "text": "TryRefresh" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 35, + "startColumn": 1, + "charOffset": 1604, + "charLength": 154, + "snippet": { + "text": " public TreeBuilder GetTreeBuilder() => _darkSouls2?.GetTreeBuilder() ?? null!;\r\n\r\n public ResultErr TryRefresh()\r\n {\r\n try\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "08b19ac84c7f41ec", + "equalIndicator/v1": "c486deb83378b8b3b184367a5252b396cf8c308700a3dc16b39c555f7fcd4604" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'InvokePropertyChanged' coverage is below the threshold 50%", + "markdown": "Method `InvokePropertyChanged` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splits/DarkSouls2/Attribute.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 50, + "startColumn": 17, + "charOffset": 1675, + "charLength": 21, + "snippet": { + "text": "InvokePropertyChanged" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 48, + "startColumn": 1, + "charOffset": 1593, + "charLength": 216, + "snippet": { + "text": " public event PropertyChangedEventHandler? PropertyChanged;\r\n\r\n public void InvokePropertyChanged(string propertyName)\r\n {\r\n PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a4aee4bec1a0f578", + "equalIndicator/v1": "c5860fc6805d161095dc071f2b0e2dfc972eed7c9aa9a77aa85fde5467a404c8" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ToHexString' coverage is below the threshold 50%", + "markdown": "Method `ToHexString` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/Extensions.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 25, + "startColumn": 26, + "charOffset": 962, + "charLength": 11, + "snippet": { + "text": "ToHexString" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 23, + "startColumn": 1, + "charOffset": 902, + "charLength": 162, + "snippet": { + "text": "public static class Extensions\r\n{\r\n public static string ToHexString(this byte[] bytes)\r\n {\r\n return BitConverter.ToString(bytes).Replace(\"-\", \" \");\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "226d6c4d8af31740", + "equalIndicator/v1": "c59eb8f4f2ff62e3b7dccdb052fef19fec5efa371b93c781044468c0fb56b389" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_SplitsViewModel' coverage is below the threshold 50%", + "markdown": "Method `get_SplitsViewModel` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 225, + "startColumn": 9, + "charOffset": 9658, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 223, + "startColumn": 1, + "charOffset": 9599, + "charLength": 203, + "snippet": { + "text": " public SplitsViewModel SplitsViewModel\r\n {\r\n get => (SplitsViewModel)GetValue(SplitsViewModelDependencyProperty);\r\n set => SetValue(SplitsViewModelDependencyProperty, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e78032011c61fa3e", + "equalIndicator/v1": "c5ecd23fcae6a7e4a67f6ce564bd99d8f0f858ad6b4ce03550b658b6d8afd780" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_Id' coverage is below the threshold 50%", + "markdown": "Method `get_Id` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/BaseParam.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 95, + "startColumn": 21, + "charOffset": 3682, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 93, + "startColumn": 1, + "charOffset": 3653, + "charLength": 85, + "snippet": { + "text": " }\r\n\r\n public int Id { get; set; }\r\n\r\n public readonly Pointer BasePointer;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "564e2462c9724a54", + "equalIndicator/v1": "c623e961ff495335ed05eb463600016be0be99858c4498a1f05e6e0110ffa1ec" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'StartAutoSplitting' coverage is below the threshold 50%", + "markdown": "Method `StartAutoSplitting` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls3Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 197, + "startColumn": 17, + "charOffset": 5887, + "charLength": 18, + "snippet": { + "text": "StartAutoSplitting" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 195, + "startColumn": 1, + "charOffset": 5862, + "charLength": 74, + "snippet": { + "text": " }\r\n\r\n public void StartAutoSplitting()\r\n {\r\n _splits = (\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "586eacfda7e90e6c", + "equalIndicator/v1": "c6b4831227c91f8e5ba5b18dab2a0ccc1af4a74743f8e7eb497d9e403a46dc37" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetEventFlagOffset' coverage is below the threshold 50%", + "markdown": "Method `GetEventFlagOffset` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 288, + "startColumn": 17, + "charOffset": 10165, + "charLength": 18, + "snippet": { + "text": "GetEventFlagOffset" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 286, + "startColumn": 1, + "charOffset": 10139, + "charLength": 140, + "snippet": { + "text": " };\r\n\r\n private int GetEventFlagOffset(uint eventFlagId, out uint mask)\r\n {\r\n string idString = eventFlagId.ToString(\"D8\");\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "2b61a30ffa795566", + "equalIndicator/v1": "c6eda751f9098d8d5967229625899a762f49b94fdc92f6fb1377002c3c9f6b4e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ResolveSplitTiming' coverage is below the threshold 50%", + "markdown": "Method `ResolveSplitTiming` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/ArmoredCore6Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 102, + "startColumn": 18, + "charOffset": 3369, + "charLength": 18, + "snippet": { + "text": "ResolveSplitTiming" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 100, + "startColumn": 1, + "charOffset": 3343, + "charLength": 92, + "snippet": { + "text": " }\r\n\r\n private void ResolveSplitTiming(Split s)\r\n {\r\n switch (s.TimingType)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5724406474f1ce97", + "equalIndicator/v1": "c79af958bc6b0171d11456bbf53dc1d5c002606f4fc1b88c9d5dea99f5a24ad6" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'OpenFlagTrackerWindow' coverage is below the threshold 50%", + "markdown": "Method `OpenFlagTrackerWindow` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/MainViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 319, + "startColumn": 18, + "charOffset": 10018, + "charLength": 21, + "snippet": { + "text": "OpenFlagTrackerWindow" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 317, + "startColumn": 1, + "charOffset": 9947, + "charLength": 143, + "snippet": { + "text": "\r\n private FlagTrackerWindow? _flagTrackerWindow;\r\n private void OpenFlagTrackerWindow()\r\n {\r\n if (_flagTrackerWindow == null)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f5f2ff92f261674d", + "equalIndicator/v1": "c7d49d34a3d9cee457d82bfbcfca88882eb49c558b7562c3ddfaec3fbf0b741f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Constructor 'ItemViewModel' coverage is below the threshold 50%", + "markdown": "Constructor `ItemViewModel` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 470, + "startColumn": 12, + "charOffset": 14886, + "charLength": 13, + "snippet": { + "text": "ItemViewModel" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 468, + "startColumn": 1, + "charOffset": 14866, + "charLength": 68, + "snippet": { + "text": " }\r\n\r\n public ItemViewModel(Item i)\r\n {\r\n Item = i;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d189ba6d618d0a7a", + "equalIndicator/v1": "c80f0ef19aecd25c9dee917c80f57561d84681e9bfcb45c8b8c3b8cea05d4915" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetEventFlagAddress' coverage is below the threshold 50%", + "markdown": "Method `GetEventFlagAddress` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Sekiro/Sekiro.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 260, + "startColumn": 31, + "charOffset": 9535, + "charLength": 19, + "snippet": { + "text": "GetEventFlagAddress" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 258, + "startColumn": 1, + "charOffset": 9496, + "charLength": 158, + "snippet": { + "text": " }\r\n\r\n private ResultOk GetEventFlagAddress(uint eventFlagId)\r\n {\r\n var eventFlagIdDiv10000000 = (int)(eventFlagId / 10000000) % 10;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "2b368efc3a7e7d9f", + "equalIndicator/v1": "c810e4bbf038ebfe573e1c8686d3f9be71c3b78ff89788ef2d2472b5f060649b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_SelectedSplit' coverage is below the threshold 50%", + "markdown": "Method `set_SelectedSplit` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 390, + "startColumn": 9, + "charOffset": 12155, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 388, + "startColumn": 1, + "charOffset": 12108, + "charLength": 117, + "snippet": { + "text": " {\r\n get => _selectedSplit;\r\n set\r\n {\r\n this.SetField(ref _selectedSplit, value);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "639093de77b723f2", + "equalIndicator/v1": "c83748f593223ba74974500c8a5f4ca8ef5141c0e01ae3fe512efe94a08f9665" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'AreCreditsRolling' coverage is below the threshold 50%", + "markdown": "Method `AreCreditsRolling` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/DarkSouls1.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 41, + "startColumn": 17, + "charOffset": 2029, + "charLength": 17, + "snippet": { + "text": "AreCreditsRolling" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 39, + "startColumn": 1, + "charOffset": 1855, + "charLength": 445, + "snippet": { + "text": " public void ResetInventoryIndices() => _darkSouls1?.ResetInventoryIndices();\r\n public List GetInventory() => _darkSouls1?.GetInventory() ?? [];\r\n public bool AreCreditsRolling() => _darkSouls1?.AreCreditsRolling() ?? false;\r\n public BonfireState GetBonfireState(Bonfire bonfire) => _darkSouls1?.GetBonfireState(bonfire) ?? BonfireState.Unknown;\r\n public string? GetSaveFileLocation() => _darkSouls1?.GetSaveFileLocation();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7127ae982cffc1e5", + "equalIndicator/v1": "c86539c3db3150112351cf78a580a0d64daaa786a322e74fc3402dfb446ebadb" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Constructor 'Result' coverage is below the threshold 50%", + "markdown": "Constructor `Result` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Result.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 222, + "startColumn": 15, + "charOffset": 5194, + "charLength": 6, + "snippet": { + "text": "Result" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 220, + "startColumn": 1, + "charOffset": 5145, + "charLength": 114, + "snippet": { + "text": " public bool IsErr => !IsOk;\r\n\r\n protected Result(bool isOk, TOk ok, TErr err)\r\n {\r\n IsOk = isOk;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9cff3cd24c855738", + "equalIndicator/v1": "c8fbb8c8831e0f00173ad9ca108934f93f3609703a4b5058e0f56fcdb24860d9" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'Enumerate' coverage is below the threshold 50%", + "markdown": "Method `Enumerate` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Extensions.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 63, + "startColumn": 40, + "charOffset": 1988, + "charLength": 9, + "snippet": { + "text": "Enumerate" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 61, + "startColumn": 1, + "charOffset": 1940, + "charLength": 128, + "snippet": { + "text": " }\r\n\r\n public static IEnumerable Enumerate(this XmlNodeList list)\r\n {\r\n foreach (XmlNode node in list)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "815bfa1457af85a4", + "equalIndicator/v1": "c924816d6f31ef3459777df614e1f2751fbb6e4184a75b88661660c67059f986" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'Log' coverage is below the threshold 50%", + "markdown": "Method `Log` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Logger.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 75, + "startColumn": 24, + "charOffset": 2561, + "charLength": 3, + "snippet": { + "text": "Log" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 73, + "startColumn": 1, + "charOffset": 2529, + "charLength": 169, + "snippet": { + "text": " }\r\n\r\n public static void Log(string message, Exception e) => Log(message + \" \" + e.ToString());\r\n public static void Log(Exception e) => Log(e.ToString());\r\n}\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4bf9999b50911817", + "equalIndicator/v1": "c99025a46ed57943c1d089a5ef85fc8c92b788b23b07d9905c16860b963c240b" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_ItemLowRange' coverage is below the threshold 50%", + "markdown": "Method `get_ItemLowRange` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/TextTableEntry.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 21, + "startColumn": 32, + "charOffset": 906, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 19, + "startColumn": 1, + "charOffset": 843, + "charLength": 162, + "snippet": { + "text": "public class TextTableEntry\r\n{\r\n public uint ItemLowRange { get; set; }\r\n public uint DataOffset { get; set; }\r\n public uint ItemHighRange { get; set; }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4aef78f98bb8b0ae", + "equalIndicator/v1": "c9a27d503e6b1b0a166ca74551bcfde6f3080a6a52008a38b269bb6abc92b7c2" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'AreCreditsRolling' coverage is below the threshold 50%", + "markdown": "Method `AreCreditsRolling` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 228, + "startColumn": 17, + "charOffset": 8592, + "charLength": 17, + "snippet": { + "text": "AreCreditsRolling" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 226, + "startColumn": 1, + "charOffset": 8567, + "charLength": 99, + "snippet": { + "text": " }\r\n\r\n public bool AreCreditsRolling()\r\n {\r\n var first = _menuMan.ReadInt32(0xb4);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5cecf3364cfdb513", + "equalIndicator/v1": "ca38387aac6158496afe5252752275fc91146bf301aa22178a173cf61776d1d9" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'InvokePropertyChanged' coverage is below the threshold 50%", + "markdown": "Method `InvokePropertyChanged` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/HierarchicalViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 73, + "startColumn": 17, + "charOffset": 2411, + "charLength": 21, + "snippet": { + "text": "InvokePropertyChanged" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 71, + "startColumn": 1, + "charOffset": 2329, + "charLength": 216, + "snippet": { + "text": " public event PropertyChangedEventHandler? PropertyChanged;\r\n\r\n public void InvokePropertyChanged(string propertyName)\r\n {\r\n PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "04d66ca66181ccc9", + "equalIndicator/v1": "ca980b382f2014b451769148a2663f3920b5a2c696fa750e5ab03559c810b263" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadEventFlag' coverage is below the threshold 50%", + "markdown": "Method `ReadEventFlag` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls2/vanilla.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 111, + "startColumn": 17, + "charOffset": 3736, + "charLength": 13, + "snippet": { + "text": "ReadEventFlag" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 109, + "startColumn": 1, + "charOffset": 3711, + "charLength": 121, + "snippet": { + "text": " }\r\n\r\n public bool ReadEventFlag(uint eventFlagId)\r\n {\r\n var eventCategory = eventFlagId / 10000 * 0x89;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a3b01ebf87e04357", + "equalIndicator/v1": "caff8cf7ec2fb37df49f0b06806941166df4eb6b848c5ea1e4b1f6addebdf236" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadByte' coverage is below the threshold 50%", + "markdown": "Method `ReadByte` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/IMemory.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 73, + "startColumn": 24, + "charOffset": 2337, + "charLength": 8, + "snippet": { + "text": "ReadByte" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 71, + "startColumn": 1, + "charOffset": 2235, + "charLength": 208, + "snippet": { + "text": " return BitConverter.ToBoolean(memory.ReadBytes(offset, 1), 0);\r\n }\r\n public static byte ReadByte(this IMemory memory, long? offset = null)\r\n {\r\n return memory.ReadBytes(offset, 1)[0];\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "3106ec22faaa7398", + "equalIndicator/v1": "cbb612e3e768d1a62aaeae98675cfdad77889cbf42b2714fcdab4e878a573060" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'SetBitBlt' coverage is below the threshold 50%", + "markdown": "Method `SetBitBlt` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/SoulComponent.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 107, + "startColumn": 18, + "charOffset": 3656, + "charLength": 9, + "snippet": { + "text": "SetBitBlt" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 105, + "startColumn": 1, + "charOffset": 3630, + "charLength": 100, + "snippet": { + "text": " }\r\n\r\n private void SetBitBlt()\r\n {\r\n if (_game is SoulMemory.Sekiro.Sekiro sekiro)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "edc506099ca0d13e", + "equalIndicator/v1": "cc13541ab5400b17e1aad46950715a04a8bf198b2b43d32d4810991bdeb31276" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteParamField' coverage is below the threshold 50%", + "markdown": "Method `WriteParamField` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/BaseParam.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 103, + "startColumn": 20, + "charOffset": 3987, + "charLength": 15, + "snippet": { + "text": "WriteParamField" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 101, + "startColumn": 1, + "charOffset": 3922, + "charLength": 224, + "snippet": { + "text": " public bool WriteEnabled { get; set; }\r\n\r\n protected void WriteParamField(ref T field, T value, [CallerMemberName] string? propertyName = null)\r\n {\r\n if (EqualityComparer.Default.Equals(field, value))\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "6cce9090661afd28", + "equalIndicator/v1": "cc8b2f8693fd38a4a4e4c33d2eda63b76116e0419176a634d0a3284d6747e421" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_NewSplitEnabledSplitType' coverage is below the threshold 50%", + "markdown": "Method `get_NewSplitEnabledSplitType` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/BaseViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 91, + "startColumn": 9, + "charOffset": 3029, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 89, + "startColumn": 1, + "charOffset": 2972, + "charLength": 167, + "snippet": { + "text": " public bool NewSplitEnabledSplitType\r\n {\r\n get => _newSplitEnabledSplitType;\r\n set => this.SetField(ref _newSplitEnabledSplitType, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "8109f0b662c0e1d9", + "equalIndicator/v1": "cc9e7e9ba12b20e05884130bdf71c97667a7e6e2b626783540d8b0e1b7a0f635" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_Boss' coverage is below the threshold 50%", + "markdown": "Method `get_Boss` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/BossViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 41, + "startColumn": 9, + "charOffset": 1315, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 39, + "startColumn": 1, + "charOffset": 1278, + "charLength": 107, + "snippet": { + "text": " public Boss Boss\r\n {\r\n get => _boss;\r\n set => this.SetField(ref _boss, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "8a5dd5cd6d8f35e3", + "equalIndicator/v1": "cd859cf732bfdf3c58ca4e5ec36d5a1e4176613652da9b18ef708f03c75e269c" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'Err' coverage is below the threshold 50%", + "markdown": "Method `Err` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Result.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 35, + "startColumn": 35, + "charOffset": 1376, + "charLength": 3, + "snippet": { + "text": "Err" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 33, + "startColumn": 1, + "charOffset": 1333, + "charLength": 102, + "snippet": { + "text": " }\r\n\r\n public static ContainerErr Err(T t)\r\n {\r\n return new ContainerErr(t);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f8319da5b5a6f1bb", + "equalIndicator/v1": "cda905bf35ca5b1569865d3132920a0d4f57c3b8f21b275020511af4b628c00a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'DarkSouls2.HierarchicalTimingTypeViewModel' coverage is below the threshold 50%", + "markdown": "Class `DarkSouls2.HierarchicalTimingTypeViewModel` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/HierarchicalViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 29, + "startColumn": 14, + "charOffset": 1168, + "charLength": 31, + "snippet": { + "text": "HierarchicalTimingTypeViewModel" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 27, + "startColumn": 1, + "charOffset": 1116, + "charLength": 152, + "snippet": { + "text": "\r\n[XmlType(Namespace = \"DarkSouls2\")]\r\npublic class HierarchicalTimingTypeViewModel : ICustomNotifyPropertyChanged\r\n{\r\n public TimingType TimingType\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ce7f12059e60d2f3", + "equalIndicator/v1": "cdb811bff8a77520b342a52f94479093f92dc688005fdc906a5a0b5f2c308d84" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ResetAllAchievements' coverage is below the threshold 50%", + "markdown": "Method `ResetAllAchievements` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/DropMod.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 76, + "startColumn": 17, + "charOffset": 2661, + "charLength": 20, + "snippet": { + "text": "ResetAllAchievements" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 74, + "startColumn": 1, + "charOffset": 2636, + "charLength": 116, + "snippet": { + "text": " }\r\n\r\n public void ResetAllAchievements()\r\n {\r\n foreach (SwitchableDrop temp in _switchableWeapons)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b590914f5786e9ce", + "equalIndicator/v1": "cec0c2b06dc1121d955651a3505b6c7e4e085cc63cb8b4192ec1b52676c2e4b8" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_Split' coverage is below the threshold 50%", + "markdown": "Method `get_Split` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/SplitViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 91, + "startColumn": 9, + "charOffset": 2863, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 89, + "startColumn": 1, + "charOffset": 2823, + "charLength": 112, + "snippet": { + "text": " public object Split\r\n {\r\n get => _split;\r\n set => this.SetField(ref _split, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "04fe329539a76d86", + "equalIndicator/v1": "cef93f6f30d96c185d5f126b970df715389978df87f848d759152fc29f0415ab" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_NewSplitPosition' coverage is below the threshold 50%", + "markdown": "Method `set_NewSplitPosition` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 220, + "startColumn": 9, + "charOffset": 6191, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 218, + "startColumn": 1, + "charOffset": 6141, + "charLength": 123, + "snippet": { + "text": " {\r\n get => _newSplitPosition;\r\n set\r\n {\r\n this.SetField(ref _newSplitPosition, value);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "6a8845c145489e3d", + "equalIndicator/v1": "cf34a1be073cb820a7a5d714bb9e02549978ef35d6fc3653ae06529c2044b57c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_NewSplitType' coverage is below the threshold 50%", + "markdown": "Method `get_NewSplitType` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 156, + "startColumn": 9, + "charOffset": 5950, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 154, + "startColumn": 1, + "charOffset": 5889, + "charLength": 107, + "snippet": { + "text": " public DarkSouls2SplitType? NewSplitType\r\n {\r\n get => _newSplitType;\r\n set\r\n {\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d6d25fb2ecfa7d93", + "equalIndicator/v1": "cf69f15be7c8bd4fe3770bea919254a59fd218ce547b3e1c4df17a077a974f45" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetSaveFileLocation' coverage is below the threshold 50%", + "markdown": "Method `GetSaveFileLocation` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 336, + "startColumn": 19, + "charOffset": 11691, + "charLength": 19, + "snippet": { + "text": "GetSaveFileLocation" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 334, + "startColumn": 1, + "charOffset": 11624, + "charLength": 189, + "snippet": { + "text": " /// \r\n /// \r\n public string GetSaveFileLocation()\r\n {\r\n var myDocuments = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "bc407525ca252894", + "equalIndicator/v1": "cff3a289436bddf5c625fb58574a021ec165c31c592b8ae82c7d06ad6f07def7" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ScanAbsolute' coverage is below the threshold 50%", + "markdown": "Method `ScanAbsolute` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerTreeBuilder.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 45, + "startColumn": 28, + "charOffset": 1694, + "charLength": 12, + "snippet": { + "text": "ScanAbsolute" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 43, + "startColumn": 1, + "charOffset": 1658, + "charLength": 134, + "snippet": { + "text": " }\r\n\r\n public PointerAppender ScanAbsolute(string name, string pattern, long offset)\r\n {\r\n var node = new PointerNode\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "fe84049c0e96903b", + "equalIndicator/v1": "cff7c0720be0d21890954b6da1162c4665520b9e543f093cff9c253e38cc0964" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'Parameters.ParamReader' coverage is below the threshold 50%", + "markdown": "Class `Parameters.ParamReader` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/ParamReader.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 26, + "startColumn": 21, + "charOffset": 1031, + "charLength": 11, + "snippet": { + "text": "ParamReader" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 24, + "startColumn": 1, + "charOffset": 975, + "charLength": 150, + "snippet": { + "text": "namespace SoulMemory.Parameters;\r\n\r\npublic static class ParamReader\r\n{\r\n public static List GetTextTables(Pointer textBasePointer)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "2090fcf1110b0368", + "equalIndicator/v1": "d01a07b5692006a1b0af5d74d78bb00de413bc933c644e376117075cf81dcf51" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ToString' coverage is below the threshold 50%", + "markdown": "Method `ToString` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Result.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 148, + "startColumn": 28, + "charOffset": 3626, + "charLength": 8, + "snippet": { + "text": "ToString" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 146, + "startColumn": 1, + "charOffset": 3590, + "charLength": 101, + "snippet": { + "text": " }\r\n\r\n public override string ToString()\r\n {\r\n return IsOk ? $\"Ok\" : $\"Err: {_err}\";\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ce1bed71ad4c400b", + "equalIndicator/v1": "d069bf16acb5902ab73f461b05a0896734bceab5e9008b7eb43fa39ba08ec54b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'RemoveSplitFunc' coverage is below the threshold 50%", + "markdown": "Method `RemoveSplitFunc` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 139, + "startColumn": 18, + "charOffset": 4980, + "charLength": 15, + "snippet": { + "text": "RemoveSplitFunc" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 137, + "startColumn": 1, + "charOffset": 4871, + "charLength": 197, + "snippet": { + "text": "\r\n private bool CanRemoveSplit(object? param) => SplitsViewModel.SelectedSplit != null;\r\n private void RemoveSplitFunc(object? parameter) => RemoveSplit.Execute(parameter);\r\n\r\n #endregion\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5eb14a94a7e9e87c", + "equalIndicator/v1": "d08d43cfc29dd611170a47b8bb6442a0a959e1db4ca5247ee24a813db2c411cc" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadEventFlag' coverage is below the threshold 50%", + "markdown": "Method `ReadEventFlag` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 371, + "startColumn": 17, + "charOffset": 13037, + "charLength": 13, + "snippet": { + "text": "ReadEventFlag" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 369, + "startColumn": 1, + "charOffset": 13012, + "charLength": 134, + "snippet": { + "text": " }\r\n\r\n public bool ReadEventFlag(uint eventFlagId)\r\n {\r\n int offset = GetEventFlagOffset(eventFlagId, out uint mask);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a8efda18cacb90db", + "equalIndicator/v1": "d0a3ae4683c2487dc4dfa9ec95b34ae97503b071cb264c26990ac7f373c10ea5" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_Item' coverage is below the threshold 50%", + "markdown": "Method `get_Item` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 481, + "startColumn": 9, + "charOffset": 15091, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 479, + "startColumn": 1, + "charOffset": 15054, + "charLength": 107, + "snippet": { + "text": " public Item Item\r\n {\r\n get => _item;\r\n set => this.SetField(ref _item, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0c069e1e9d6f3e62", + "equalIndicator/v1": "d0e3be339e7e379d4a0ea97c2f577ef65d558eb7cf7473bb2fd5c44aaff169ab" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_TimingType' coverage is below the threshold 50%", + "markdown": "Method `set_TimingType` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/SplitViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 32, + "startColumn": 9, + "charOffset": 1223, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 30, + "startColumn": 1, + "charOffset": 1179, + "charLength": 134, + "snippet": { + "text": " {\r\n get => _timingType;\r\n set => this.SetField(ref _timingType, value);\r\n }\r\n private TimingType _timingType;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "2e0362b997a31cf2", + "equalIndicator/v1": "d13f8e8f3a0b63dd4d98977e8e627d321bd472b577d5bc027ac466087391b62f" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Constructor 'BaseSplitter' coverage is below the threshold 50%", + "markdown": "Constructor `BaseSplitter` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/BaseSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 34, + "startColumn": 15, + "charOffset": 1288, + "charLength": 12, + "snippet": { + "text": "BaseSplitter" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 32, + "startColumn": 1, + "charOffset": 1270, + "charLength": 106, + "snippet": { + "text": "\r\n\r\n protected BaseSplitter(LiveSplitState state, IGame game)\r\n {\r\n _liveSplitState = state;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "62a48a38a4f76a73", + "equalIndicator/v1": "d173ddfb411bb26575425e9928b7105ced352b94a2669112f98776d288cac792" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteFloat' coverage is below the threshold 50%", + "markdown": "Method `WriteFloat` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 317, + "startColumn": 17, + "charOffset": 8274, + "charLength": 10, + "snippet": { + "text": "WriteFloat" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 315, + "startColumn": 1, + "charOffset": 8249, + "charLength": 134, + "snippet": { + "text": " }\r\n\r\n public void WriteFloat(float value) => WriteFloat(null, value);\r\n\r\n public void WriteFloat(long? offset, float value)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "79f1b46555709837", + "equalIndicator/v1": "d190518f7ad9f8b35c361dfe7015a458257050d017ddc830651c5ba346e2bb03" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'CanAddSplit' coverage is below the threshold 50%", + "markdown": "Method `CanAddSplit` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/ViewModels/Games/ArmoredCore6ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 31, + "startColumn": 18, + "charOffset": 1205, + "charLength": 11, + "snippet": { + "text": "CanAddSplit" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 29, + "startColumn": 1, + "charOffset": 1179, + "charLength": 93, + "snippet": { + "text": " }\r\n\r\n private bool CanAddSplit(object? param)\r\n {\r\n if (param is FlatSplit)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "44570612ba1902cb", + "equalIndicator/v1": "d1a2ba8ec02278afcdbb18566afb40de20e876a002b237911a22a3bd005ef2a4" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteEventFlag' coverage is below the threshold 50%", + "markdown": "Method `WriteEventFlag` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 121, + "startColumn": 17, + "charOffset": 4444, + "charLength": 14, + "snippet": { + "text": "WriteEventFlag" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 119, + "startColumn": 1, + "charOffset": 4282, + "charLength": 284, + "snippet": { + "text": " #region Read event flag ==================================================================================================================\r\n\r\n public void WriteEventFlag(uint eventFlagId, bool value)\r\n {\r\n var result = GetEventFlagAddress(eventFlagId, out int mask);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9e903e4d677553d8", + "equalIndicator/v1": "d1ee783c0b537ce13e4bd66898491ef421b62128f91f7e3ebce109731e0091a2" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadFloat' coverage is below the threshold 50%", + "markdown": "Method `ReadFloat` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/IMemory.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 94, + "startColumn": 25, + "charOffset": 3017, + "charLength": 9, + "snippet": { + "text": "ReadFloat" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 92, + "startColumn": 1, + "charOffset": 2984, + "charLength": 163, + "snippet": { + "text": " }\r\n\r\n public static float ReadFloat(this IMemory memory, long? offset = null)\r\n {\r\n return BitConverter.ToSingle(memory.ReadBytes(offset, 4), 0);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "dbd02c737e7e4ecf", + "equalIndicator/v1": "d1fe34930624d1b0fdba08c29e429463bae935c8e102dee137624e8c83c13277" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetProcess' coverage is below the threshold 50%", + "markdown": "Method `GetProcess` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 94, + "startColumn": 21, + "charOffset": 3525, + "charLength": 10, + "snippet": { + "text": "GetProcess" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 92, + "startColumn": 1, + "charOffset": 3496, + "charLength": 140, + "snippet": { + "text": " }\r\n\r\n public Process? GetProcess() => _armoredCore6.ProcessWrapper.GetProcess();\r\n\r\n private ResultErr InjectMods()\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4c79069853ff0d0d", + "equalIndicator/v1": "d254f5605dd037f321ac675d68654d0973a622b9654f26a45a6d1edae6fb1f51" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'SoulMemory.UnwrapException' coverage is below the threshold 50%", + "markdown": "Class `SoulMemory.UnwrapException` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Result.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 351, + "startColumn": 14, + "charOffset": 8183, + "charLength": 15, + "snippet": { + "text": "UnwrapException" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 349, + "startColumn": 1, + "charOffset": 8138, + "charLength": 100, + "snippet": { + "text": "/// \r\n[Serializable]\r\npublic class UnwrapException(string message) : Exception(message);\r\n" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "2a5551402b7503dc", + "equalIndicator/v1": "d29d7c8ad2bf98e19daf7f9148406cf35d355b8c466ab0f9dbffb33886097d00" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'UpdateDropMod' coverage is below the threshold 50%", + "markdown": "Method `UpdateDropMod` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls1Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 373, + "startColumn": 18, + "charOffset": 12793, + "charLength": 13, + "snippet": { + "text": "UpdateDropMod" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 371, + "startColumn": 1, + "charOffset": 12753, + "charLength": 112, + "snippet": { + "text": "\r\n #region Dropmod\r\n private void UpdateDropMod()\r\n {\r\n var process = _darkSouls1.GetProcess();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "273f71266651034a", + "equalIndicator/v1": "d2e379bf8c5f8940b39c38b2b903337f9ce32331aa9b8e35f5555035d35ba669" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ToString' coverage is below the threshold 50%", + "markdown": "Method `ToString` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/BossViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 34, + "startColumn": 28, + "charOffset": 1228, + "charLength": 8, + "snippet": { + "text": "ToString" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 32, + "startColumn": 1, + "charOffset": 1192, + "charLength": 76, + "snippet": { + "text": " }\r\n\r\n public override string ToString()\r\n {\r\n return Name;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "8a5b0b8b73d1103e", + "equalIndicator/v1": "d2e807b2315d554e5dc64363c720fbe68fa92794d37f72092200cb0b929422e9" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'OnStart' coverage is below the threshold 50%", + "markdown": "Method `OnStart` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/SekiroSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 56, + "startColumn": 18, + "charOffset": 1867, + "charLength": 7, + "snippet": { + "text": "OnStart" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 54, + "startColumn": 1, + "charOffset": 1834, + "charLength": 99, + "snippet": { + "text": " #region \r\n\r\n private void OnStart(object sender, EventArgs e)\r\n {\r\n StartTimer();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9763ee4cc4879aae", + "equalIndicator/v1": "d3132e19712916ab862def695ecf75153b6b1071ea4cae91ef79c05e459d63b7" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetVersion' coverage is below the threshold 50%", + "markdown": "Method `GetVersion` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/VersionAttribute.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 24, + "startColumn": 20, + "charOffset": 977, + "charLength": 10, + "snippet": { + "text": "GetVersion" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 22, + "startColumn": 1, + "charOffset": 908, + "charLength": 103, + "snippet": { + "text": "{\r\n public string Version { get; } = version;\r\n public Version GetVersion() => new(Version);\r\n}\r\n" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b13669d90c21a345", + "equalIndicator/v1": "d3216b60a273820928065309f2b121f11713aa7c8859772ffa944da60d98fe34" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_NewSplitItem' coverage is below the threshold 50%", + "markdown": "Method `get_NewSplitItem` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 199, + "startColumn": 9, + "charOffset": 5668, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 197, + "startColumn": 1, + "charOffset": 5622, + "charLength": 92, + "snippet": { + "text": " public Item? NewSplitItem\r\n {\r\n get => _newSplitItem;\r\n set\r\n {\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "dac6a904da8b3a54", + "equalIndicator/v1": "d40daee8e0e0bae00bbdf958e4e5bc793ba458d5276745eca0a5c49f34ad6429" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_Region' coverage is below the threshold 50%", + "markdown": "Method `get_Region` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/PositionViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 43, + "startColumn": 9, + "charOffset": 1358, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 41, + "startColumn": 1, + "charOffset": 1319, + "charLength": 129, + "snippet": { + "text": " public byte Region\r\n {\r\n get => Position.Region;\r\n set => this.SetField(ref Position.Region, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e13c94e9288e6fb9", + "equalIndicator/v1": "d45a70fd97c0a4704f11a0893145e98f055ef061249e9eaf17a3a6e2aac2c943" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_isValid' coverage is below the threshold 50%", + "markdown": "Method `get_isValid` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Native/Structs/Image/IMAGE_DOS_HEADER.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 54, + "startColumn": 9, + "charOffset": 2367, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 52, + "startColumn": 1, + "charOffset": 2327, + "charLength": 82, + "snippet": { + "text": " public bool isValid\r\n {\r\n get { return _e_magic == \"MZ\"; }\r\n }\r\n}" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "48b8b24ccc124b66", + "equalIndicator/v1": "d47c20335318c3936f82a267e95ec7d766c81b2d05a76c4a82fa4c5e9a7c505f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ResetAutoSplitting' coverage is below the threshold 50%", + "markdown": "Method `ResetAutoSplitting` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/EldenRingSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 226, + "startColumn": 17, + "charOffset": 7452, + "charLength": 18, + "snippet": { + "text": "ResetAutoSplitting" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 224, + "startColumn": 1, + "charOffset": 7395, + "charLength": 111, + "snippet": { + "text": " private List _splits = [];\r\n\r\n public void ResetAutoSplitting()\r\n {\r\n _splits.Clear();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "92e3ca6c44c93737", + "equalIndicator/v1": "d4a10f27a56d61d1315e5284e7cfda1a3c6a0884ef907dadf73f3a5392841e00" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'InitBkh' coverage is below the threshold 50%", + "markdown": "Method `InitBkh` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/DropMod.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 24, + "startColumn": 17, + "charOffset": 964, + "charLength": 7, + "snippet": { + "text": "InitBkh" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 22, + "startColumn": 1, + "charOffset": 900, + "charLength": 200, + "snippet": { + "text": "public class DropMod(IDarkSouls1 darkSouls)\r\n{\r\n public void InitBkh()\r\n {\r\n darkSouls.WriteWeaponDescription(1105000, \"Dropmod!\\n\\nAffected:\\nBlack Knight Halberd\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\");\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a50ff71945c7faf3", + "equalIndicator/v1": "d533067fbd4843705f973381759877ee70b2829dad6e5f3d08757c7ec05dbdf1" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_Z' coverage is below the threshold 50%", + "markdown": "Method `set_Z` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/PositionViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 69, + "startColumn": 9, + "charOffset": 1878, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 67, + "startColumn": 1, + "charOffset": 1835, + "charLength": 97, + "snippet": { + "text": " {\r\n get => Position.Z;\r\n set => this.SetField(ref Position.Z, value);\r\n }\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "fa10a48f66cce034", + "equalIndicator/v1": "d54ddcf769ae55de23b8187333c64310a54cc06f2d99a671d6a495aa7892f866" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_NewSplitGrace' coverage is below the threshold 50%", + "markdown": "Method `set_NewSplitGrace` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 160, + "startColumn": 9, + "charOffset": 4747, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 158, + "startColumn": 1, + "charOffset": 4700, + "charLength": 117, + "snippet": { + "text": " {\r\n get => _newSplitGrace;\r\n set\r\n {\r\n this.SetField(ref _newSplitGrace, value);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4e530bf34350b99d", + "equalIndicator/v1": "d5775e7ef261d666393800ab98b7130703908abecb5b99d4796c752a7870c47a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_Block' coverage is below the threshold 50%", + "markdown": "Method `set_Block` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/PositionViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 38, + "startColumn": 9, + "charOffset": 1260, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 36, + "startColumn": 1, + "charOffset": 1213, + "charLength": 105, + "snippet": { + "text": " {\r\n get => Position.Block;\r\n set => this.SetField(ref Position.Block, value);\r\n }\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "be0a862f228de959", + "equalIndicator/v1": "d5e04a05adb906fa8d5ebdd103bd368c6d4be470b3b2df639642bd8279a15cf1" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetCurrentSaveSlot' coverage is below the threshold 50%", + "markdown": "Method `GetCurrentSaveSlot` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/DarkSouls1.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 38, + "startColumn": 16, + "charOffset": 1789, + "charLength": 18, + "snippet": { + "text": "GetCurrentSaveSlot" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 36, + "startColumn": 1, + "charOffset": 1622, + "charLength": 390, + "snippet": { + "text": " public int GetInGameTimeMilliseconds() => _darkSouls1?.GetInGameTimeMilliseconds() ?? 0;\r\n public int NgCount() => _darkSouls1?.NgCount() ?? 0;\r\n public int GetCurrentSaveSlot() => _darkSouls1?.GetCurrentSaveSlot() ?? -1;\r\n public void ResetInventoryIndices() => _darkSouls1?.ResetInventoryIndices();\r\n public List GetInventory() => _darkSouls1?.GetInventory() ?? [];\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "3ccc656ecd36297e", + "equalIndicator/v1": "d6eebc45e04fe24b23d1b335105f4b9e5ac25a5bed41cbe688d5f9bbe8334b63" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_NewSplitFlagEnabled' coverage is below the threshold 50%", + "markdown": "Method `get_NewSplitFlagEnabled` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 243, + "startColumn": 9, + "charOffset": 8569, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 241, + "startColumn": 1, + "charOffset": 8517, + "charLength": 152, + "snippet": { + "text": " public bool NewSplitFlagEnabled\r\n {\r\n get => _newSplitFlagEnabled;\r\n set => this.SetField(ref _newSplitFlagEnabled, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d1cf0b9cab9a95ac", + "equalIndicator/v1": "d700efc8d7d3b8430a3c4ed50e38d8382e6871489a6dbd557e5c705087c59119" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Constructor 'ArmoredCore6' coverage is below the threshold 50%", + "markdown": "Constructor `ArmoredCore6` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 29, + "startColumn": 12, + "charOffset": 1112, + "charLength": 12, + "snippet": { + "text": "ArmoredCore6" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 27, + "startColumn": 1, + "charOffset": 1045, + "charLength": 194, + "snippet": { + "text": " private readonly IProcessHook _armoredCore6;\r\n \r\n public ArmoredCore6(IProcessHook? processHook = null)\r\n {\r\n _armoredCore6 = processHook ?? new ProcessHook(\"armoredcore6\");\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "8cbd5c60db43a8e3", + "equalIndicator/v1": "d711234e9d08d3092d549eb18e8ee999d2cf25a952e3e42c75efde7f7951e8dc" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_Id' coverage is below the threshold 50%", + "markdown": "Method `set_Id` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 511, + "startColumn": 9, + "charOffset": 15728, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 509, + "startColumn": 1, + "charOffset": 15692, + "charLength": 104, + "snippet": { + "text": " {\r\n get => _id;\r\n set => this.SetField(ref _id, value);\r\n }\r\n private uint _id;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "113e9c9295c70735", + "equalIndicator/v1": "d72c88d2eca9ff9defd4ead3db7cf23e98f16343fe680272a12ebb17bafb3dfe" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'LoadDefuseOutput' coverage is below the threshold 50%", + "markdown": "Method `LoadDefuseOutput` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 471, + "startColumn": 20, + "charOffset": 16421, + "charLength": 16, + "snippet": { + "text": "LoadDefuseOutput" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 469, + "startColumn": 1, + "charOffset": 16276, + "charLength": 215, + "snippet": { + "text": " /// out of https://defuse.ca/online-x86-assembler.htm \r\n /// byte code\r\n private byte[] LoadDefuseOutput(string lines)\r\n {\r\n List bytes = [];\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b35591612e11f689", + "equalIndicator/v1": "d7ec58021b3c6b564b744ffbda7cc50ebd6612f6abb61a6f0a590e86d15bcb94" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_Name' coverage is below the threshold 50%", + "markdown": "Method `get_Name` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/GraceViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 55, + "startColumn": 9, + "charOffset": 1609, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 53, + "startColumn": 1, + "charOffset": 1570, + "charLength": 109, + "snippet": { + "text": " public string Name\r\n {\r\n get => _name;\r\n set => this.SetField(ref _name, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "dc34abe68b4a05d1", + "equalIndicator/v1": "d81192381b188c857ee856cf1e7f64030a0acc131b4b68feb03766a544a79208" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'TryScanAbsolute' coverage is below the threshold 50%", + "markdown": "Method `TryScanAbsolute` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 140, + "startColumn": 24, + "charOffset": 5689, + "charLength": 15, + "snippet": { + "text": "TryScanAbsolute" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 138, + "startColumn": 1, + "charOffset": 5489, + "charLength": 323, + "snippet": { + "text": " /// Scan a previously created buffer of bytes for a given pattern, then interpret the data as assembly, where the target address is an absolute address\r\n /// \r\n public static bool TryScanAbsolute(this byte[] bytes, long baseAddress, PointerNode pointerNode, out long result)\r\n {\r\n result = 0;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9e0f698aab50e5f0", + "equalIndicator/v1": "d8992076065804f8f686d532280f3664e0720495b5d4cd37b2d2879c73af4917" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ConvertBack' coverage is below the threshold 50%", + "markdown": "Method `ConvertBack` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Converters/ColorToBrushConverter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 36, + "startColumn": 19, + "charOffset": 1326, + "charLength": 11, + "snippet": { + "text": "ConvertBack" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 34, + "startColumn": 1, + "charOffset": 1299, + "charLength": 164, + "snippet": { + "text": " }\r\n\r\n public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)\r\n {\r\n throw new NotImplementedException();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5fbc561e15a42e8f", + "equalIndicator/v1": "d8f77ca9f408bd771f40588f7f813c139a9b0b4b0e6897d3ad7ede52322cf597" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'UpdateSplitter' coverage is below the threshold 50%", + "markdown": "Method `UpdateSplitter` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/SoulComponent.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 134, + "startColumn": 37, + "charOffset": 4292, + "charLength": 14, + "snippet": { + "text": "UpdateSplitter" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 132, + "startColumn": 1, + "charOffset": 4220, + "charLength": 208, + "snippet": { + "text": "\r\n private Game? _selectedGame;\r\n private ResultErr UpdateSplitter(MainViewModel mainViewModel, LiveSplitState state)\r\n {\r\n //Detect game change, initialize the correct splitter\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "eb63a09e8c57645a", + "equalIndicator/v1": "d968692542625c63b76316a6fc082785eb6f5bb214db34996d2e2b921eabacb2" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_NewSplitTimingType' coverage is below the threshold 50%", + "markdown": "Method `set_NewSplitTimingType` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 63, + "startColumn": 9, + "charOffset": 2060, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 61, + "startColumn": 1, + "charOffset": 2008, + "charLength": 127, + "snippet": { + "text": " {\r\n get => _newSplitTimingType;\r\n set\r\n {\r\n this.SetField(ref _newSplitTimingType, value);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0f1e07976a79691c", + "equalIndicator/v1": "d9721dc4a7c5838de2cedd7ec885533f0a3a1b31c3868ff5394f118af28620c7" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_Bonfires' coverage is below the threshold 50%", + "markdown": "Method `get_Bonfires` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 215, + "startColumn": 9, + "charOffset": 9127, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 213, + "startColumn": 1, + "charOffset": 9045, + "charLength": 242, + "snippet": { + "text": " public ObservableCollection> Bonfires\r\n {\r\n get => (ObservableCollection>)GetValue(BonfiresDependencyProperty);\r\n set => SetValue(BonfiresDependencyProperty, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "488cce64276a514d", + "equalIndicator/v1": "da0aef42a59e8b36dea5a2108380f2c186da2ae063c1117f81ff574a3c491c9e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ResolveSplitTiming' coverage is below the threshold 50%", + "markdown": "Method `ResolveSplitTiming` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls2Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 243, + "startColumn": 18, + "charOffset": 7738, + "charLength": 18, + "snippet": { + "text": "ResolveSplitTiming" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 241, + "startColumn": 1, + "charOffset": 7712, + "charLength": 92, + "snippet": { + "text": " }\r\n\r\n private void ResolveSplitTiming(Split s)\r\n {\r\n switch (s.TimingType)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "427e0a20b6a1f909", + "equalIndicator/v1": "da1585047b4f6a88710c62e8f157b17b61086ae387991139836e7dbba398d000" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ResetTimer' coverage is below the threshold 50%", + "markdown": "Method `ResetTimer` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/SekiroSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 142, + "startColumn": 18, + "charOffset": 3995, + "charLength": 10, + "snippet": { + "text": "ResetTimer" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 140, + "startColumn": 1, + "charOffset": 3969, + "charLength": 94, + "snippet": { + "text": " }\r\n\r\n private void ResetTimer()\r\n {\r\n _timerState = TimerState.WaitForStart;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e3aa1c390f73ebcb", + "equalIndicator/v1": "da7fbd2e04dd1f3d3257e3276f702319b8ceae8de937d1a0cb966958889be40d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetPosition' coverage is below the threshold 50%", + "markdown": "Method `GetPosition` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 234, + "startColumn": 21, + "charOffset": 8391, + "charLength": 11, + "snippet": { + "text": "GetPosition" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 232, + "startColumn": 1, + "charOffset": 8285, + "charLength": 280, + "snippet": { + "text": " public int GetCurrentSaveSlot() => _gameMan.ReadInt32(_currentSaveSlotOffset);\r\n\r\n public Vector3f GetPosition() => new(_playerPos.ReadFloat(0x10), _playerPos.ReadFloat(0x14), _playerPos.ReadFloat(0x18));\r\n\r\n public int GetPlayerHealth() => _playerIns.ReadInt32(0x3e8);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "baa1eb810ba5a40c", + "equalIndicator/v1": "daa13aa68aa559831dae75429eb8c0a6d51eb18b4a96b4f8a2d7c7617afa5947" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_TimingType' coverage is below the threshold 50%", + "markdown": "Method `get_TimingType` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/HierarchicalViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 33, + "startColumn": 9, + "charOffset": 1284, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 31, + "startColumn": 1, + "charOffset": 1235, + "charLength": 131, + "snippet": { + "text": " public TimingType TimingType\r\n {\r\n get => _timingType;\r\n set => this.SetField(ref _timingType, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "bd8a10ccdb57300b", + "equalIndicator/v1": "db05e15d93527641676d8e8078773dfbb4414e462cc323dba60c79fd95db3f9c" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_NewSplitType' coverage is below the threshold 50%", + "markdown": "Method `set_NewSplitType` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 157, + "startColumn": 9, + "charOffset": 5981, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 155, + "startColumn": 1, + "charOffset": 5935, + "charLength": 107, + "snippet": { + "text": " {\r\n get => _newSplitType;\r\n set\r\n {\r\n NewSplitPositionEnabled = false;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9daf57bc943ea5b9", + "equalIndicator/v1": "db73f192aea9312d81b4fe92e6f647f6309c6d25b8011b659a8af123c5ac2b98" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_Name' coverage is below the threshold 50%", + "markdown": "Method `set_Name` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 504, + "startColumn": 9, + "charOffset": 15587, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 502, + "startColumn": 1, + "charOffset": 15549, + "charLength": 120, + "snippet": { + "text": " {\r\n get => _name;\r\n set => this.SetField(ref _name, value);\r\n }\r\n private string _name = null!;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "bd0f921947c2abd4", + "equalIndicator/v1": "dc35b0d64ab25deb06fe27c03b4d21e5c536756489aa7aef277db1d8ee6a1439" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_VisiblePositionSplit' coverage is below the threshold 50%", + "markdown": "Method `set_VisiblePositionSplit` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 232, + "startColumn": 9, + "charOffset": 6503, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 230, + "startColumn": 1, + "charOffset": 6449, + "charLength": 158, + "snippet": { + "text": " {\r\n get => _visiblePositionSplit;\r\n set => this.SetField(ref _visiblePositionSplit, value);\r\n }\r\n private bool _visiblePositionSplit;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "1a9a4e2853818549", + "equalIndicator/v1": "dc37dcb7280ccfddee624dc6e1e37e3dc59ab261c7569846d320e466dbe0933a" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'AddSplit' coverage is below the threshold 50%", + "markdown": "Method `AddSplit` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 49, + "startColumn": 17, + "charOffset": 1844, + "charLength": 8, + "snippet": { + "text": "AddSplit" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 47, + "startColumn": 1, + "charOffset": 1654, + "charLength": 251, + "snippet": { + "text": "\r\n #region add/remove splits ============================================================================================================================================\r\n public void AddSplit()\r\n {\r\n if (NewSplitTimingType == null ||\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "6410f14aa06a5f40", + "equalIndicator/v1": "dc53bcbca3cf8b428fb8fe074f4b64070cdaea6e5095d607a97af55645e06320" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'IsBlackscreenActive' coverage is below the threshold 50%", + "markdown": "Method `IsBlackscreenActive` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Sekiro/Sekiro.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 214, + "startColumn": 17, + "charOffset": 7947, + "charLength": 19, + "snippet": { + "text": "IsBlackscreenActive" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 212, + "startColumn": 1, + "charOffset": 7922, + "charLength": 94, + "snippet": { + "text": " }\r\n\r\n public bool IsBlackscreenActive()\r\n {\r\n //0x2dc best candidate so far.\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "51ca87572c701152", + "equalIndicator/v1": "dc707e8a43c4edb510245bb032f6002d3c5b7cbda3503270b53f9ab29e425c14" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Constructor 'ResultErr' coverage is below the threshold 50%", + "markdown": "Constructor `ResultErr` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Result.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 110, + "startColumn": 13, + "charOffset": 2834, + "charLength": 9, + "snippet": { + "text": "ResultErr" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 108, + "startColumn": 1, + "charOffset": 2813, + "charLength": 71, + "snippet": { + "text": " }\r\n\r\n private ResultErr(TErr err)\r\n {\r\n IsOk = false;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "30186185320bc2e8", + "equalIndicator/v1": "dcb69b12e04f89c417d19ecfb480c5feb47f3c553c59b27a51e54521a727aee8" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'RemoveSplit_OnClick' coverage is below the threshold 50%", + "markdown": "Method `RemoveSplit_OnClick` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2Control.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 49, + "startColumn": 18, + "charOffset": 1665, + "charLength": 19, + "snippet": { + "text": "RemoveSplit_OnClick" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 47, + "startColumn": 1, + "charOffset": 1639, + "charLength": 132, + "snippet": { + "text": " }\r\n\r\n private void RemoveSplit_OnClick(object sender, RoutedEventArgs e)\r\n {\r\n _darkSouls2ViewModel.RemoveSplit();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "8e540b82378defb9", + "equalIndicator/v1": "dcb861abd7b8ea2cac40326fc2cfff7a76b34f5b0e594294fdfca6ec425923f7" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetBitBlt' coverage is below the threshold 50%", + "markdown": "Method `GetBitBlt` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/BitBlt.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 25, + "startColumn": 24, + "charOffset": 985, + "charLength": 9, + "snippet": { + "text": "GetBitBlt" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 23, + "startColumn": 1, + "charOffset": 931, + "charLength": 171, + "snippet": { + "text": "public static class BitBlt\r\n{\r\n public static bool GetBitBlt(this IGame game, List files, List bitBlt)\r\n {\r\n var process = game.GetProcess();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a0b67228ea7df001", + "equalIndicator/v1": "dcbe5eb87d69665774bc23a76a677366feeeba88556bf9a2a74764b0de9e57cb" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'OpenTroubleshootingWebpage' coverage is below the threshold 50%", + "markdown": "Method `OpenTroubleshootingWebpage` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/MainViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 292, + "startColumn": 18, + "charOffset": 9219, + "charLength": 26, + "snippet": { + "text": "OpenTroubleshootingWebpage" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 290, + "startColumn": 1, + "charOffset": 9085, + "charLength": 214, + "snippet": { + "text": "\r\n private const string TroubleshootingUrl = \"https://github.com/FrankvdStam/SoulSplitter/wiki/troubleshooting\";\r\n private void OpenTroubleshootingWebpage()\r\n {\r\n Process.Start(TroubleshootingUrl);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d4663dda1eaebd8a", + "equalIndicator/v1": "dce7d0f11c5121aa348a850bc4001393b225e516fa52e6fd6ccfdadafa10de25" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ResolveSplitTiming' coverage is below the threshold 50%", + "markdown": "Method `ResolveSplitTiming` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/EldenRingSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 305, + "startColumn": 18, + "charOffset": 10708, + "charLength": 18, + "snippet": { + "text": "ResolveSplitTiming" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 303, + "startColumn": 1, + "charOffset": 10682, + "charLength": 92, + "snippet": { + "text": " }\r\n\r\n private void ResolveSplitTiming(Split s)\r\n {\r\n switch (s.TimingType)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7d4f1e4a92bafbee", + "equalIndicator/v1": "dd70ee9f32d755f17803f9e3290e3ab20ecf3caf407ee1a571f9c6c13e469830" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Constructor 'GlobalHotKey' coverage is below the threshold 50%", + "markdown": "Constructor `GlobalHotKey` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Hotkeys/GlobalHotKey.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 35, + "startColumn": 12, + "charOffset": 1388, + "charLength": 12, + "snippet": { + "text": "GlobalHotKey" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 33, + "startColumn": 1, + "charOffset": 1339, + "charLength": 127, + "snippet": { + "text": " private static int _currentId;\r\n\r\n static GlobalHotKey()\r\n {\r\n var messageLoopThread = new Thread(delegate ()\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "613fa800ce53dd23", + "equalIndicator/v1": "ddea3822789192ec330112fea3ce0a6323a31171611dd0b9060c4987722a2fc3" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadEventFlag' coverage is below the threshold 50%", + "markdown": "Method `ReadEventFlag` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 192, + "startColumn": 17, + "charOffset": 6336, + "charLength": 13, + "snippet": { + "text": "ReadEventFlag" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 190, + "startColumn": 1, + "charOffset": 6288, + "charLength": 161, + "snippet": { + "text": "\r\n #region read event flags\r\n public bool ReadEventFlag(uint eventFlagId)\r\n {\r\n var eventFlagIdDiv10000000 = (int)(eventFlagId / 10000000) % 10;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "fee4f12c8d7a9eab", + "equalIndicator/v1": "de4490b49129f5830a2c33415b182b78e00310b469263f4b1104e9681b540ec5" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'TryRefresh' coverage is below the threshold 50%", + "markdown": "Method `TryRefresh` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls2/scholar.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 35, + "startColumn": 36, + "charOffset": 1551, + "charLength": 10, + "snippet": { + "text": "TryRefresh" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 33, + "startColumn": 1, + "charOffset": 1308, + "charLength": 434, + "snippet": { + "text": " #region Refresh/init/reset ================================================================================================================================\r\n public Process? GetProcess() => _process;\r\n public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, \"darksoulsii\", InitPointers, ResetPointers);\r\n public int GetInGameTimeMilliseconds() => 0;\r\n public TreeBuilder GetTreeBuilder()\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "069980b2d5229902", + "equalIndicator/v1": "de5d23b7c3e9fc387c427df5d5b60e9aacec24bfbb4169612caca4484be92992" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_RemoveSplitEnabled' coverage is below the threshold 50%", + "markdown": "Method `get_RemoveSplitEnabled` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 259, + "startColumn": 9, + "charOffset": 8988, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 257, + "startColumn": 1, + "charOffset": 8937, + "charLength": 149, + "snippet": { + "text": " public bool RemoveSplitEnabled\r\n {\r\n get => _removeSplitEnabled;\r\n set => this.SetField(ref _removeSplitEnabled, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "efc6cf0b36945916", + "equalIndicator/v1": "de68ab0a61d1d4a1b8632bda96e54979d1aec3e578461253248a10ecd5b6c824" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ResetPointers' coverage is below the threshold 50%", + "markdown": "Method `ResetPointers` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls2/scholar.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 71, + "startColumn": 18, + "charOffset": 2917, + "charLength": 13, + "snippet": { + "text": "ResetPointers" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 69, + "startColumn": 1, + "charOffset": 2887, + "charLength": 89, + "snippet": { + "text": " }\r\n \r\n private void ResetPointers()\r\n {\r\n _eventFlagManager.Clear();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "614b6153ba0951fc", + "equalIndicator/v1": "deaafa7ab29f1645bdf76ad266215f2c11bcbfb6fc8224bcb3052a12644943fb" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'BitBlt' coverage is below the threshold 50%", + "markdown": "Method `BitBlt` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/MainWindow.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 56, + "startColumn": 17, + "charOffset": 1739, + "charLength": 6, + "snippet": { + "text": "BitBlt" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 54, + "startColumn": 1, + "charOffset": 1676, + "charLength": 92, + "snippet": { + "text": " \r\n private Color _stash = Color.White;\r\n public void BitBlt()\r\n {\r\n try\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "82edaa255219379e", + "equalIndicator/v1": "df08d2db29d8e91a669e33502a1bcaf2af81f1bf95ce90a74ab6b1c797cf27a3" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'Converters.EnumValueEnumParameterConverter' coverage is below the threshold 50%", + "markdown": "Class `Converters.EnumValueEnumParameterConverter` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Converters/EnumValueEnumParameterConverter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 23, + "startColumn": 14, + "charOffset": 935, + "charLength": 31, + "snippet": { + "text": "EnumValueEnumParameterConverter" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 21, + "startColumn": 1, + "charOffset": 881, + "charLength": 206, + "snippet": { + "text": "namespace SoulSplitter.UI.Converters;\r\n\r\npublic class EnumValueEnumParameterConverter : IValueConverter\r\n{\r\n public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "8e67ff6d8e6ead64", + "equalIndicator/v1": "df69f0a7eec5df4f9dc756d4262bf376af8db60c894f4aa3819f5bde6489f8f2" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_NewSplitValue' coverage is below the threshold 50%", + "markdown": "Method `get_NewSplitValue` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 199, + "startColumn": 9, + "charOffset": 7379, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 197, + "startColumn": 1, + "charOffset": 7330, + "charLength": 96, + "snippet": { + "text": " public object? NewSplitValue\r\n {\r\n get => _newSplitValue;\r\n set\r\n {\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c4cd4e7e8d297f75", + "equalIndicator/v1": "dfa86baa0034000a1e2beda92587cfee622f3bd721ec0303f1e62aef1be6c530" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteUInt32' coverage is below the threshold 50%", + "markdown": "Method `WriteUInt32` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/IMemory.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 144, + "startColumn": 24, + "charOffset": 4716, + "charLength": 11, + "snippet": { + "text": "WriteUInt32" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 142, + "startColumn": 1, + "charOffset": 4586, + "charLength": 262, + "snippet": { + "text": " public static void WriteUInt32(this IMemory memory, uint value) => memory.WriteUInt32(null, value);\r\n\r\n public static void WriteUInt32(this IMemory memory, long? offset, uint value)\r\n {\r\n memory.WriteBytes(offset, BitConverter.GetBytes(value));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "8dd6fd24ec692dff", + "equalIndicator/v1": "e0211abf02b4388aa7b598b2cdf73368aa5214431e6008a18f7505a362d21b41" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_SelectedBonfire' coverage is below the threshold 50%", + "markdown": "Method `set_SelectedBonfire` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 321, + "startColumn": 9, + "charOffset": 13079, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 319, + "startColumn": 1, + "charOffset": 13030, + "charLength": 144, + "snippet": { + "text": " {\r\n get => _selectedBonfire;\r\n set => this.SetField(ref _selectedBonfire, value);\r\n }\r\n private Enum? _selectedBonfire;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "1abfedb699b5b504", + "equalIndicator/v1": "e1031a37ee6c7ebc7d86c1f2dda2e1196e6917ff9e006f0f2eb1796704c3e4aa" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'Err' coverage is below the threshold 50%", + "markdown": "Method `Err` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Result.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 30, + "startColumn": 39, + "charOffset": 1269, + "charLength": 3, + "snippet": { + "text": "Err" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 28, + "startColumn": 1, + "charOffset": 1045, + "charLength": 287, + "snippet": { + "text": " #region Sugar interface ==========================================================================================================================================================\r\n\r\n public static ContainerErr Err()\r\n {\r\n return new ContainerErr(default);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c0174e19b435706e", + "equalIndicator/v1": "e1203123d311d6432ab665c5587880d803ce26c0574300fa4de194b56ae7764c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'SoulMemory.VersionAttribute' coverage is below the threshold 50%", + "markdown": "Class `SoulMemory.VersionAttribute` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/VersionAttribute.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 21, + "startColumn": 14, + "charOffset": 862, + "charLength": 16, + "snippet": { + "text": "VersionAttribute" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 19, + "startColumn": 1, + "charOffset": 824, + "charLength": 133, + "snippet": { + "text": "namespace SoulMemory;\r\n\r\npublic class VersionAttribute(string version) : Attribute\r\n{\r\n public string Version { get; } = version;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b5465b09f96bf876", + "equalIndicator/v1": "e1e280c190880ad7e6e2363e2083bd56c1db139a266a86de256cda0a4b96aa0a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'MemoryV2.ByteArrayMemory' coverage is below the threshold 50%", + "markdown": "Class `MemoryV2.ByteArrayMemory` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/ByteArrayMemory.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 25, + "startColumn": 14, + "charOffset": 1037, + "charLength": 15, + "snippet": { + "text": "ByteArrayMemory" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 23, + "startColumn": 1, + "charOffset": 908, + "charLength": 225, + "snippet": { + "text": "/// IMemory access to an array of memory. Allows resolving pointers and reading data/writing data.\r\n/// \r\npublic class ByteArrayMemory(byte[] data) : IMemory\r\n{\r\n public byte[] ReadBytes(long offset, int length)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a158aa0825874955", + "equalIndicator/v1": "e1f9e75f38d893a600f94e3492fe3cb6d7a02cc7f971287d271de50c525c0508" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_SelectedBonfire' coverage is below the threshold 50%", + "markdown": "Method `get_SelectedBonfire` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 320, + "startColumn": 9, + "charOffset": 13045, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 318, + "startColumn": 1, + "charOffset": 12996, + "charLength": 141, + "snippet": { + "text": " public Enum? SelectedBonfire\r\n {\r\n get => _selectedBonfire;\r\n set => this.SetField(ref _selectedBonfire, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "1a6b0ec165d4f59b", + "equalIndicator/v1": "e20fe7316991dec10708c0756a810265dbfb6435e55f7b116f69094cbb8e2966" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'OnSelectionChanged' coverage is below the threshold 50%", + "markdown": "Method `OnSelectionChanged` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/FilteredComboBox.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 46, + "startColumn": 29, + "charOffset": 1776, + "charLength": 18, + "snippet": { + "text": "OnSelectionChanged" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 44, + "startColumn": 1, + "charOffset": 1739, + "charLength": 126, + "snippet": { + "text": " }\r\n\r\n protected override void OnSelectionChanged(SelectionChangedEventArgs e)\r\n {\r\n if (SelectedIndex != -1)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "25c12f50a1a07aa8", + "equalIndicator/v1": "e23eede4e11f2a929180c818ae1815090993bfcc446ac5bec994dfecedb1dde2" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'Parameters.BaseParam' coverage is below the threshold 50%", + "markdown": "Class `Parameters.BaseParam` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/BaseParam.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 28, + "startColumn": 23, + "charOffset": 1093, + "charLength": 9, + "snippet": { + "text": "BaseParam" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 26, + "startColumn": 1, + "charOffset": 1035, + "charLength": 194, + "snippet": { + "text": "namespace SoulMemory.Parameters;\r\n\r\npublic abstract class BaseParam\r\n{\r\n private readonly List<(PropertyInfo propertyInfo, ParamFieldAttribute paramFieldAttribute)> _paramFieldPropertyCache;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "cc0151aab83be80a", + "equalIndicator/v1": "e2695a026f1d634c1fa323ed85ca0ddb4f2ab3c178e77ab87230d4ce20b988c8" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_Children' coverage is below the threshold 50%", + "markdown": "Method `get_Children` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/HierarchicalViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 67, + "startColumn": 72, + "charOffset": 2264, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 65, + "startColumn": 1, + "charOffset": 2189, + "charLength": 137, + "snippet": { + "text": "\r\n\r\n public ObservableCollection Children { get; set; } = [];\r\n\r\n #region ICustomNotifyPropertyChanged\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "385bd81cfe12a514", + "equalIndicator/v1": "e2d2fd91f47ec4b88961f5743bb97aad51fca8df89e3ad52c47fa0bf32a59580" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetPlayerPosition' coverage is below the threshold 50%", + "markdown": "Method `GetPlayerPosition` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Sekiro/Sekiro.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 209, + "startColumn": 21, + "charOffset": 7783, + "charLength": 17, + "snippet": { + "text": "GetPlayerPosition" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 207, + "startColumn": 1, + "charOffset": 7754, + "charLength": 167, + "snippet": { + "text": " }\r\n\r\n public Vector3f GetPlayerPosition()\r\n {\r\n return new Vector3f(_position.ReadFloat(0x80), _position.ReadFloat(0x84), _position.ReadFloat(0x88));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "dbab3f61e358b90a", + "equalIndicator/v1": "e2f56df09301dc1355ec1342db1fa23b92e2a35491464162adc74670bac64eaa" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'EldenRing.ItemViewModel' coverage is below the threshold 50%", + "markdown": "Class `EldenRing.ItemViewModel` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 463, + "startColumn": 14, + "charOffset": 14749, + "charLength": 13, + "snippet": { + "text": "ItemViewModel" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 461, + "startColumn": 1, + "charOffset": 14731, + "charLength": 105, + "snippet": { + "text": "}\r\n\r\npublic class ItemViewModel : ICustomNotifyPropertyChanged\r\n{\r\n public override string ToString()\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "2253a1e94f0f3f2c", + "equalIndicator/v1": "e3728e2f98f244b528d71824db0713e1c4ab470be5d0f5a28124cd28c764659a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_Error' coverage is below the threshold 50%", + "markdown": "Method `get_Error` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/ErrorViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 33, + "startColumn": 9, + "charOffset": 1154, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 31, + "startColumn": 1, + "charOffset": 1114, + "charLength": 112, + "snippet": { + "text": " public string Error\r\n {\r\n get => _error;\r\n set => this.SetField(ref _error, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "62967bce794ac04e", + "equalIndicator/v1": "e3cfddd5a16c2a6179fbaef25914b41009b5adbcab9128bcef07f6c339a5bd1d" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_Item' coverage is below the threshold 50%", + "markdown": "Method `set_Item` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 482, + "startColumn": 9, + "charOffset": 15114, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 480, + "startColumn": 1, + "charOffset": 15076, + "charLength": 118, + "snippet": { + "text": " {\r\n get => _item;\r\n set => this.SetField(ref _item, value);\r\n }\r\n private Item _item = null!;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "49c0aa3977c171f8", + "equalIndicator/v1": "e3e20c123bdd8dd6079daa9762300e8b01f9c44e78c48e0f09a8c9866e938b11" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadUInt16' coverage is below the threshold 50%", + "markdown": "Method `ReadUInt16` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 228, + "startColumn": 19, + "charOffset": 5989, + "charLength": 10, + "snippet": { + "text": "ReadUInt16" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 226, + "startColumn": 1, + "charOffset": 5962, + "charLength": 131, + "snippet": { + "text": " }\r\n\r\n public ushort ReadUInt16(long? offset = null)\r\n {\r\n return BitConverter.ToUInt16(ReadMemory(offset, 2), 0);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7afef8ec54a8877a", + "equalIndicator/v1": "e3ecb53829eb5719b10cacd90c07537844f2190a6949af3cf8b3bf68a84cf1fc" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'OverwriteFile' coverage is below the threshold 50%", + "markdown": "Method `OverwriteFile` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/soulmods/Soulmods.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 114, + "startColumn": 25, + "charOffset": 4133, + "charLength": 13, + "snippet": { + "text": "OverwriteFile" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 112, + "startColumn": 1, + "charOffset": 4100, + "charLength": 200, + "snippet": { + "text": " }\r\n\r\n private static void OverwriteFile(string manifestResourceName, string path)\r\n {\r\n using var stream = typeof(Soulmods).Assembly.GetManifestResourceStream(manifestResourceName)!;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "6d97af20d4f57c0d", + "equalIndicator/v1": "e42c8b6c54badaec2b8ae4bfd9f833dacfa60d2dfb6dbb5b8963e8d9f32dbf65" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'CanAddSplit' coverage is below the threshold 50%", + "markdown": "Method `CanAddSplit` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 79, + "startColumn": 18, + "charOffset": 2686, + "charLength": 11, + "snippet": { + "text": "CanAddSplit" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 77, + "startColumn": 1, + "charOffset": 2495, + "charLength": 294, + "snippet": { + "text": " #region add/remove splits ============================================================================================================================================\r\n\r\n private bool CanAddSplit(object? param)\r\n {\r\n if (!NewSplitTimingType.HasValue || !NewSplitType.HasValue)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7703d2ec6d2aa294", + "equalIndicator/v1": "e4b35a264a8a964199210f14c37be0a2dc11ac4e73158df77f8ed8ee9c0f0826" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Constructor 'EldenRingSplitter' coverage is below the threshold 50%", + "markdown": "Constructor `EldenRingSplitter` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/EldenRingSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 37, + "startColumn": 12, + "charOffset": 1387, + "charLength": 17, + "snippet": { + "text": "EldenRingSplitter" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 35, + "startColumn": 1, + "charOffset": 1324, + "charLength": 165, + "snippet": { + "text": " private MainViewModel _mainViewModel= null!;\r\n\r\n public EldenRingSplitter(LiveSplitState state, EldenRing eldenRing)\r\n {\r\n _liveSplitState = state;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "890fc550b9ed560d", + "equalIndicator/v1": "e4f27ae9f1981052eac6fb201e60d837f8be6db13a2b09b07e7c5a9d810b7b91" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'UpdateAutoSplitter' coverage is below the threshold 50%", + "markdown": "Method `UpdateAutoSplitter` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls2Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 189, + "startColumn": 17, + "charOffset": 5481, + "charLength": 18, + "snippet": { + "text": "UpdateAutoSplitter" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 187, + "startColumn": 1, + "charOffset": 5421, + "charLength": 136, + "snippet": { + "text": "\r\n private const float _boxSize = 5.0f;\r\n public void UpdateAutoSplitter()\r\n {\r\n if (_timerState != TimerState.Running)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "47eb029074c5bdf6", + "equalIndicator/v1": "e58c25bed89adcc11f7880e5cfe333501cadbda70576d5073f9eca78aab30b50" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetInventory' coverage is below the threshold 50%", + "markdown": "Method `GetInventory` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/DarkSouls1.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 40, + "startColumn": 23, + "charOffset": 1959, + "charLength": 12, + "snippet": { + "text": "GetInventory" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 38, + "startColumn": 1, + "charOffset": 1774, + "charLength": 445, + "snippet": { + "text": " public int GetCurrentSaveSlot() => _darkSouls1?.GetCurrentSaveSlot() ?? -1;\r\n public void ResetInventoryIndices() => _darkSouls1?.ResetInventoryIndices();\r\n public List GetInventory() => _darkSouls1?.GetInventory() ?? [];\r\n public bool AreCreditsRolling() => _darkSouls1?.AreCreditsRolling() ?? false;\r\n public BonfireState GetBonfireState(Bonfire bonfire) => _darkSouls1?.GetBonfireState(bonfire) ?? BonfireState.Unknown;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f9a6860dee2cbfaa", + "equalIndicator/v1": "e5cbfd22f3c09df9c18e3b0c28db25bc492c14303643cedd7c1f5a1ee06ebcce" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteUInt16' coverage is below the threshold 50%", + "markdown": "Method `WriteUInt16` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 134, + "startColumn": 24, + "charOffset": 4152, + "charLength": 11, + "snippet": { + "text": "WriteUInt16" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 132, + "startColumn": 1, + "charOffset": 4116, + "charLength": 169, + "snippet": { + "text": " }\r\n \r\n public static void WriteUInt16(this IMemory memory, long offset, ushort value)\r\n {\r\n memory.WriteBytes(offset, BitConverter.GetBytes(value));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "51c81a4b32c6dec9", + "equalIndicator/v1": "e5dac206dcd5a58c7cd1f3982baf31adef32e1102232a9a07d6424321b58cc9b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'CanRemoveSplit' coverage is below the threshold 50%", + "markdown": "Method `CanRemoveSplit` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 138, + "startColumn": 18, + "charOffset": 4890, + "charLength": 14, + "snippet": { + "text": "CanRemoveSplit" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 136, + "startColumn": 1, + "charOffset": 4864, + "charLength": 188, + "snippet": { + "text": " }\r\n\r\n private bool CanRemoveSplit(object? param) => SplitsViewModel.SelectedSplit != null;\r\n private void RemoveSplitFunc(object? parameter) => RemoveSplit.Execute(parameter);\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e9a973106f4912e5", + "equalIndicator/v1": "e60a386f928aecd939f35b7f46ae278711941ec7f84a7592ae84d4c1ea3df97f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'RefreshFilter' coverage is below the threshold 50%", + "markdown": "Method `RefreshFilter` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/FilteredComboBox.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 126, + "startColumn": 18, + "charOffset": 3911, + "charLength": 13, + "snippet": { + "text": "RefreshFilter" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 124, + "startColumn": 1, + "charOffset": 3885, + "charLength": 91, + "snippet": { + "text": " }\r\n\r\n private void RefreshFilter()\r\n {\r\n if (ItemsSource == null) return;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "be4e58545f7f6dab", + "equalIndicator/v1": "e62b6d6cb06f84f48021b7b045b76f13f783df5b8646b1b48e94e8a041cd1d7a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_NewSplitAddEnabled' coverage is below the threshold 50%", + "markdown": "Method `get_NewSplitAddEnabled` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 251, + "startColumn": 9, + "charOffset": 8780, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 249, + "startColumn": 1, + "charOffset": 8729, + "charLength": 149, + "snippet": { + "text": " public bool NewSplitAddEnabled\r\n {\r\n get => _newSplitAddEnabled;\r\n set => this.SetField(ref _newSplitAddEnabled, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "791061d8c0481936", + "equalIndicator/v1": "e63d5da3c0d5c4d32f1037aa89f2bf490e3a705519a1527dcfc5ce671e541ee6" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'IsPlayerLoaded' coverage is below the threshold 50%", + "markdown": "Method `IsPlayerLoaded` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/DarkSouls1.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 34, + "startColumn": 17, + "charOffset": 1472, + "charLength": 14, + "snippet": { + "text": "IsPlayerLoaded" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 32, + "startColumn": 1, + "charOffset": 1275, + "charLength": 440, + "snippet": { + "text": " public bool ReadEventFlag(uint eventFlagId) => _darkSouls1?.ReadEventFlag(eventFlagId) ?? false;\r\n public bool IsWarpRequested() => _darkSouls1?.IsWarpRequested() ?? false;\r\n public bool IsPlayerLoaded() => _darkSouls1?.IsPlayerLoaded() ?? false;\r\n public Vector3f GetPosition() => _darkSouls1?.GetPosition() ?? new Vector3f(0,0,0);\r\n public int GetInGameTimeMilliseconds() => _darkSouls1?.GetInGameTimeMilliseconds() ?? 0;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "18c625131536fd3a", + "equalIndicator/v1": "e66bfe4b62c3a33411b296f1afc5a0031af2f4faea02c47165138886f3dee7fe" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_Level' coverage is below the threshold 50%", + "markdown": "Method `get_Level` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splits/Sekiro/Attribute.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 36, + "startColumn": 9, + "charOffset": 1330, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 34, + "startColumn": 1, + "charOffset": 1293, + "charLength": 109, + "snippet": { + "text": " public int Level\r\n {\r\n get => _level;\r\n set => this.SetField(ref _level, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "03103feff51c7c78", + "equalIndicator/v1": "e763d68a384e96eb973e9f7df90aca3c83aa445a49d2d12f67da8c8428a6b933" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetAttribute' coverage is below the threshold 50%", + "markdown": "Method `GetAttribute` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 226, + "startColumn": 16, + "charOffset": 8055, + "charLength": 12, + "snippet": { + "text": "GetAttribute" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 224, + "startColumn": 1, + "charOffset": 8018, + "charLength": 203, + "snippet": { + "text": " #endregion\r\n \r\n public int GetAttribute(Attribute attribute) => _playerGameData.ReadInt32(0x8 + (long)attribute);\r\n\r\n public int GetInGameTimeMilliseconds() => _gameDataMan.ReadInt32(0xa4);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9c43c1cb075371ff", + "equalIndicator/v1": "e822478d8197074c083cb9971643ef92807c90f88b2f85345d80e8a99ff38411" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'CanAddSplit' coverage is below the threshold 50%", + "markdown": "Method `CanAddSplit` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 45, + "startColumn": 18, + "charOffset": 1630, + "charLength": 11, + "snippet": { + "text": "CanAddSplit" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 43, + "startColumn": 1, + "charOffset": 1582, + "charLength": 118, + "snippet": { + "text": " #region Add split logic\r\n\r\n private bool CanAddSplit(object? param)\r\n {\r\n switch (SelectedSplitType)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7f5f85a0d98c96ae", + "equalIndicator/v1": "e849007920bddccd613e5eb77d0d555a5b2c14107393fcdcd8211ffbffc1017a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_Grace' coverage is below the threshold 50%", + "markdown": "Method `get_Grace` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/GraceViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 41, + "startColumn": 9, + "charOffset": 1321, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 39, + "startColumn": 1, + "charOffset": 1282, + "charLength": 111, + "snippet": { + "text": " public Grace Grace\r\n {\r\n get => _grace;\r\n set => this.SetField(ref _grace, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "32b6164cb3e5183f", + "equalIndicator/v1": "e8635447ce4e6e51d640a2d7bbf90753e45fd02b3191257fd77fb8e82324103d" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'AddSplit' coverage is below the threshold 50%", + "markdown": "Method `AddSplit` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 288, + "startColumn": 17, + "charOffset": 7895, + "charLength": 8, + "snippet": { + "text": "AddSplit" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 286, + "startColumn": 1, + "charOffset": 7875, + "charLength": 107, + "snippet": { + "text": "\r\n\r\n public void AddSplit()\r\n {\r\n if (!NewSplitTimingType.HasValue || !NewSplitType.HasValue)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5cdde4f641b60f94", + "equalIndicator/v1": "e8c233571493574d9794bb9b824477f919603af958519663fc86f4ebf9f82f3c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadEventFlag' coverage is below the threshold 50%", + "markdown": "Method `ReadEventFlag` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/EldenRing.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 421, + "startColumn": 17, + "charOffset": 13776, + "charLength": 13, + "snippet": { + "text": "ReadEventFlag" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 419, + "startColumn": 1, + "charOffset": 13729, + "charLength": 145, + "snippet": { + "text": " #region Read event flag\r\n\r\n public bool ReadEventFlag(uint eventFlagId)\r\n {\r\n var divisor = _virtualMemoryFlag.ReadInt32(0x1c);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "43242932e6f74dc5", + "equalIndicator/v1": "e8d05099f88ab9180619e15c9de589e41a2e8b25ee179d3d258d755b0275bdae" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'DarkSouls3.Split' coverage is below the threshold 50%", + "markdown": "Class `DarkSouls3.Split` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splits/DarkSouls3/Split.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 23, + "startColumn": 16, + "charOffset": 946, + "charLength": 5, + "snippet": { + "text": "Split" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 21, + "startColumn": 1, + "charOffset": 886, + "charLength": 155, + "snippet": { + "text": "namespace SoulSplitter.Splits.DarkSouls3;\r\n\r\ninternal class Split\r\n{\r\n public Split(TimingType timingType, SplitType darkSouls3SplitType, object split)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f4d0adaa02300f98", + "equalIndicator/v1": "e8f5b11084176b4565d9edca638167dd05a22df58b750f6df5c86d5599179616" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetBonfireState' coverage is below the threshold 50%", + "markdown": "Method `GetBonfireState` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/DarkSouls1.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 42, + "startColumn": 25, + "charOffset": 2120, + "charLength": 15, + "snippet": { + "text": "GetBonfireState" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 40, + "startColumn": 1, + "charOffset": 1937, + "charLength": 500, + "snippet": { + "text": " public List GetInventory() => _darkSouls1?.GetInventory() ?? [];\r\n public bool AreCreditsRolling() => _darkSouls1?.AreCreditsRolling() ?? false;\r\n public BonfireState GetBonfireState(Bonfire bonfire) => _darkSouls1?.GetBonfireState(bonfire) ?? BonfireState.Unknown;\r\n public string? GetSaveFileLocation() => _darkSouls1?.GetSaveFileLocation();\r\n public int GetSaveFileGameTimeMilliseconds(string path, int slot) => _darkSouls1?.GetSaveFileGameTimeMilliseconds(path, slot) ?? 0;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9a4074a35bcceff0", + "equalIndicator/v1": "e91f8759e61e93c9e4d0b736dc15be5cbb1b6be4ea172173160f2922b4c1d5ef" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'BoyerMooreCount' coverage is below the threshold 50%", + "markdown": "Method `BoyerMooreCount` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 336, + "startColumn": 23, + "charOffset": 12743, + "charLength": 15, + "snippet": { + "text": "BoyerMooreCount" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 334, + "startColumn": 1, + "charOffset": 12653, + "charLength": 176, + "snippet": { + "text": " /// Will return how many matches are found\r\n /// \r\n public static int BoyerMooreCount(this byte[] haystack, byte?[] needle)\r\n {\r\n int result = 0;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "36234364fcf25d97", + "equalIndicator/v1": "e9507919ca926dc739addefef1f9ac52764109ca4d71923c17871e9794d8a915" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'OnPreviewTextInput_Float' coverage is below the threshold 50%", + "markdown": "Method `OnPreviewTextInput_Float` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 80, + "startColumn": 18, + "charOffset": 2592, + "charLength": 24, + "snippet": { + "text": "OnPreviewTextInput_Float" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 78, + "startColumn": 1, + "charOffset": 2566, + "charLength": 135, + "snippet": { + "text": " }\r\n\r\n private void OnPreviewTextInput_Float(object sender, TextCompositionEventArgs e)\r\n {\r\n if (sender is TextBox t)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7fcbd131255338f8", + "equalIndicator/v1": "e9cd204a80be69738bbe5e9e94353ebfc00b99a60f9a3fbbb0bbea311cbb0916" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ToString' coverage is below the threshold 50%", + "markdown": "Method `ToString` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/TextTableEntry.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 25, + "startColumn": 28, + "charOffset": 1035, + "charLength": 8, + "snippet": { + "text": "ToString" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 23, + "startColumn": 1, + "charOffset": 961, + "charLength": 117, + "snippet": { + "text": " public uint ItemHighRange { get; set; }\r\n\r\n public override string ToString() => ItemLowRange.ToString();\r\n}\r\n" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "056e8cc5fe7da0bd", + "equalIndicator/v1": "ea21668b0d8a68e865e7e5d14650d556ab8c4ec31d138e9216dbd486fad28a33" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_NewSplitKnownFlag' coverage is below the threshold 50%", + "markdown": "Method `get_NewSplitKnownFlag` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 267, + "startColumn": 9, + "charOffset": 7441, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 265, + "startColumn": 1, + "charOffset": 7385, + "charLength": 107, + "snippet": { + "text": " public KnownFlag? NewSplitKnownFlag\r\n {\r\n get => _newSplitKnownFlag;\r\n set\r\n {\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "22f3585b8c6103dd", + "equalIndicator/v1": "ea3d57b2ca98a343404dc79953394b58491db6525a25fe8ca37747706bacfb76" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_SplitTypes' coverage is below the threshold 50%", + "markdown": "Method `set_SplitTypes` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 175, + "startColumn": 9, + "charOffset": 6975, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 173, + "startColumn": 1, + "charOffset": 6853, + "charLength": 184, + "snippet": { + "text": " {\r\n get => (ObservableCollection>)GetValue(SplitTypeDependencyProperty);\r\n set => SetValue(SplitTypeDependencyProperty, value);\r\n }\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9beb6e1515e994e5", + "equalIndicator/v1": "ea8261308efbf177d4471aed2e4fa9d544c0f4d8eef0ed5cb52582b25c94dfd3" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ResolveSplitTiming' coverage is below the threshold 50%", + "markdown": "Method `ResolveSplitTiming` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/SekiroSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 264, + "startColumn": 18, + "charOffset": 8189, + "charLength": 18, + "snippet": { + "text": "ResolveSplitTiming" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 262, + "startColumn": 1, + "charOffset": 8163, + "charLength": 92, + "snippet": { + "text": " }\r\n\r\n private void ResolveSplitTiming(Split s)\r\n {\r\n switch (s.TimingType)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ac701adecca32b80", + "equalIndicator/v1": "ea86c5069b7b69ae93c8fa41f6712092bd2f28b8c59f7902e1107bc63723685b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteUInt16' coverage is below the threshold 50%", + "markdown": "Method `WriteUInt16` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/IMemory.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 127, + "startColumn": 24, + "charOffset": 4064, + "charLength": 11, + "snippet": { + "text": "WriteUInt16" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 125, + "startColumn": 1, + "charOffset": 4032, + "charLength": 202, + "snippet": { + "text": " }\r\n\r\n public static void WriteUInt16(this IMemory memory, ushort value) => memory.WriteUInt16(null, value);\r\n\r\n public static void WriteUInt16(this IMemory memory, long? offset, ushort value)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "3c5f9883bdb2b429", + "equalIndicator/v1": "eafcb21f1f1426f78258ae15563078b6d2f85d135e6b75aeb2677016e4402b1f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'TryRefresh' coverage is below the threshold 50%", + "markdown": "Method `TryRefresh` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 74, + "startColumn": 43, + "charOffset": 2933, + "charLength": 10, + "snippet": { + "text": "TryRefresh" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 72, + "startColumn": 1, + "charOffset": 2842, + "charLength": 232, + "snippet": { + "text": " /// \r\n /// \r\n public static ResultErr TryRefresh(ref System.Diagnostics.Process? process, string name, Func> initialize, Action reset)\r\n {\r\n try\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "dd90553603e7189c", + "equalIndicator/v1": "eb18aade19ffd2c52f0c7d860ad70094b5d29beec09f865fa7f2c67baac2c847" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'Reset' coverage is below the threshold 50%", + "markdown": "Method `Reset` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/FlagTrackerViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 224, + "startColumn": 17, + "charOffset": 7455, + "charLength": 5, + "snippet": { + "text": "Reset" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 222, + "startColumn": 1, + "charOffset": 7435, + "charLength": 60, + "snippet": { + "text": "\r\n\r\n public void Reset()\r\n {\r\n _lookup = null;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9400a754838f470d", + "equalIndicator/v1": "eb627dd15be8ad548c80a4aba9d74389acf50eaa21a292970ca9162319c475a8" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'IsWarpRequested' coverage is below the threshold 50%", + "markdown": "Method `IsWarpRequested` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/DarkSouls1.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 33, + "startColumn": 17, + "charOffset": 1393, + "charLength": 15, + "snippet": { + "text": "IsWarpRequested" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 31, + "startColumn": 1, + "charOffset": 1179, + "charLength": 442, + "snippet": { + "text": " public int GetAttribute(Attribute attribute) => _darkSouls1?.GetAttribute(attribute) ?? 0;\r\n public bool ReadEventFlag(uint eventFlagId) => _darkSouls1?.ReadEventFlag(eventFlagId) ?? false;\r\n public bool IsWarpRequested() => _darkSouls1?.IsWarpRequested() ?? false;\r\n public bool IsPlayerLoaded() => _darkSouls1?.IsPlayerLoaded() ?? false;\r\n public Vector3f GetPosition() => _darkSouls1?.GetPosition() ?? new Vector3f(0,0,0);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "1c09cd901cbf416e", + "equalIndicator/v1": "eb76fcd9980365324e622fd80481cceabc8846fbeec391e87eab4bc7d2d280a3" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_SelectedAttribute' coverage is below the threshold 50%", + "markdown": "Method `get_SelectedAttribute` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 335, + "startColumn": 9, + "charOffset": 13466, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 333, + "startColumn": 1, + "charOffset": 13415, + "charLength": 147, + "snippet": { + "text": " public Enum? SelectedAttribute\r\n {\r\n get => _selectedAttribute;\r\n set => this.SetField(ref _selectedAttribute, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c544e44d54c39dc1", + "equalIndicator/v1": "ec0ca24760a6c0bb1ce715c4249489d39f984d57a94580815ae92d7cef1de462" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteWeaponDescription' coverage is below the threshold 50%", + "markdown": "Method `WriteWeaponDescription` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 381, + "startColumn": 17, + "charOffset": 13220, + "charLength": 22, + "snippet": { + "text": "WriteWeaponDescription" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 379, + "startColumn": 1, + "charOffset": 13195, + "charLength": 125, + "snippet": { + "text": " }\r\n\r\n public void WriteWeaponDescription(uint weaponId, string description)\r\n {\r\n //weaponName 0x1d0 - 0x30\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b7b19f3e2b42a4d2", + "equalIndicator/v1": "ec72e6fa24c697ade1c46647d698d293c0a24c692eef3f840f9d6b60a1864957" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'InternalStart' coverage is below the threshold 50%", + "markdown": "Method `InternalStart` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/BaseSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 62, + "startColumn": 18, + "charOffset": 2136, + "charLength": 13, + "snippet": { + "text": "InternalStart" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 60, + "startColumn": 1, + "charOffset": 2110, + "charLength": 125, + "snippet": { + "text": " }\r\n\r\n private void InternalStart(object sender, EventArgs e)\r\n {\r\n _liveSplitState.IsGameTimePaused = true;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "78e0586ef5b110b9", + "equalIndicator/v1": "ec87899ec9db0aeed0a0d511afdf2d04355a630a9d7f9c5edd93ca072c5dcb49" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ResetAutoSplitting' coverage is below the threshold 50%", + "markdown": "Method `ResetAutoSplitting` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/SekiroSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 196, + "startColumn": 17, + "charOffset": 5635, + "charLength": 18, + "snippet": { + "text": "ResetAutoSplitting" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 194, + "startColumn": 1, + "charOffset": 5578, + "charLength": 111, + "snippet": { + "text": " private List _splits = [];\r\n\r\n public void ResetAutoSplitting()\r\n {\r\n _splits.Clear();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "3f8fbd5d7a729fac", + "equalIndicator/v1": "ecd38fe0380123c71c9a704fcae541c1a6417065a4b0b5e6e1b9be0eae9091cd" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_EnabledAddSplit' coverage is below the threshold 50%", + "markdown": "Method `get_EnabledAddSplit` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 280, + "startColumn": 9, + "charOffset": 7742, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 278, + "startColumn": 1, + "charOffset": 7694, + "charLength": 140, + "snippet": { + "text": " public bool EnabledAddSplit\r\n {\r\n get => _enabledAddSplit;\r\n set => this.SetField(ref _enabledAddSplit, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e3f74685abe44bbc", + "equalIndicator/v1": "ecf744c0ed9f80be67a55e0d131f016652192a414329f63a72774d30c0dcc1cd" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_SelectedBoss' coverage is below the threshold 50%", + "markdown": "Method `set_SelectedBoss` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 307, + "startColumn": 9, + "charOffset": 12715, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 305, + "startColumn": 1, + "charOffset": 12669, + "charLength": 135, + "snippet": { + "text": " {\r\n get => _selectedBoss;\r\n set => this.SetField(ref _selectedBoss, value);\r\n }\r\n private Enum? _selectedBoss;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d0f325b0238b6468", + "equalIndicator/v1": "ed3f9cf7986bfc14bb1654ffe05e822b91990071cfad36336dd96784b3d48a70" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ResetTimer' coverage is below the threshold 50%", + "markdown": "Method `ResetTimer` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls3Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 175, + "startColumn": 18, + "charOffset": 5428, + "charLength": 10, + "snippet": { + "text": "ResetTimer" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 173, + "startColumn": 1, + "charOffset": 5402, + "charLength": 94, + "snippet": { + "text": " }\r\n\r\n private void ResetTimer()\r\n {\r\n _timerState = TimerState.WaitForStart;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "83fd183b37525c1a", + "equalIndicator/v1": "ed4c5faa91f2fac47969473b7c92cefce5804c9c5668d353f5595f0ecce919cc" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'SetLoadingScreenItem' coverage is below the threshold 50%", + "markdown": "Method `SetLoadingScreenItem` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 406, + "startColumn": 17, + "charOffset": 14254, + "charLength": 20, + "snippet": { + "text": "SetLoadingScreenItem" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 404, + "startColumn": 1, + "charOffset": 14229, + "charLength": 100, + "snippet": { + "text": " }\r\n\r\n public void SetLoadingScreenItem(int index, uint item)\r\n {\r\n if (index < 62)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "78db45c83d8eb081", + "equalIndicator/v1": "ed5c3ec7eab5f750ade93017420bd3442566b40b7f0d5b2ac779a22e38a5d954" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Constructor 'Pointer' coverage is below the threshold 50%", + "markdown": "Constructor `Pointer` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 41, + "startColumn": 12, + "charOffset": 1367, + "charLength": 7, + "snippet": { + "text": "Pointer" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 39, + "startColumn": 1, + "charOffset": 1347, + "charLength": 106, + "snippet": { + "text": " }\r\n\r\n public Pointer(IMemory memory, params long[] offsets)\r\n {\r\n if (memory is Pointer)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "577d143b280a056f", + "equalIndicator/v1": "ed7bbb9e952f9cad633b117df563fea977b5fc69a79cb2b42dcca43cc7322a62" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetMorphemeMessages' coverage is below the threshold 50%", + "markdown": "Method `GetMorphemeMessages` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/soulmods/Soulmods.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 89, + "startColumn": 24, + "charOffset": 3104, + "charLength": 19, + "snippet": { + "text": "GetMorphemeMessages" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 87, + "startColumn": 1, + "charOffset": 3077, + "charLength": 103, + "snippet": { + "text": "\r\n\r\n public static void GetMorphemeMessages(Process process)\r\n {\r\n //Get function address\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "09464d2436b6ff3d", + "equalIndicator/v1": "ed9fae978052046995cf538e1b10518cc661ad4470df61ebadae0ea2bc7c3c60" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_ItemType' coverage is below the threshold 50%", + "markdown": "Method `get_ItemType` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splits/DarkSouls1/ItemState.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 30, + "startColumn": 9, + "charOffset": 1140, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 28, + "startColumn": 1, + "charOffset": 1094, + "charLength": 124, + "snippet": { + "text": " public ItemType? ItemType\r\n {\r\n get => _itemType;\r\n set => this.SetField(ref _itemType, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "35714beab84a2dec", + "equalIndicator/v1": "ee335103c382c48f4f133d568225a21f40d996430894f245bc05ab502727f074" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_VisibleGraceSplit' coverage is below the threshold 50%", + "markdown": "Method `set_VisibleGraceSplit` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 172, + "startColumn": 9, + "charOffset": 5032, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 170, + "startColumn": 1, + "charOffset": 4981, + "charLength": 149, + "snippet": { + "text": " {\r\n get => _visibleGraceSplit;\r\n set => this.SetField(ref _visibleGraceSplit, value);\r\n }\r\n private bool _visibleGraceSplit;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "65a85d546a0bb56c", + "equalIndicator/v1": "ee434ec0048765c0cda178226722de09b360941563c45cd1ca248616f0786c3e" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteInt64' coverage is below the threshold 50%", + "markdown": "Method `WriteInt64` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 291, + "startColumn": 17, + "charOffset": 7651, + "charLength": 10, + "snippet": { + "text": "WriteInt64" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 289, + "startColumn": 1, + "charOffset": 7626, + "charLength": 129, + "snippet": { + "text": " }\r\n\r\n public void WriteInt64(long? offset, long value)\r\n {\r\n WriteMemory(offset, BitConverter.GetBytes(value));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "26ca06249e6772a9", + "equalIndicator/v1": "ee7fa81234fa10e1f61373e6cdb23e68b6c9bb97ca2ad065726fb9b7f6d29ed7" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'StartTimer' coverage is below the threshold 50%", + "markdown": "Method `StartTimer` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/EldenRingSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 159, + "startColumn": 18, + "charOffset": 5365, + "charLength": 10, + "snippet": { + "text": "StartTimer" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 157, + "startColumn": 1, + "charOffset": 5307, + "charLength": 128, + "snippet": { + "text": " private bool _startAutomatically;\r\n\r\n private void StartTimer()\r\n {\r\n _liveSplitState.IsGameTimePaused = true;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f5885b1ee8bab651", + "equalIndicator/v1": "ee89208fe9b836ab0c4a642e82240e5cc11642b69f90f47bb318ebe60061d26c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteFloat' coverage is below the threshold 50%", + "markdown": "Method `WriteFloat` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/IMemory.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 172, + "startColumn": 24, + "charOffset": 5637, + "charLength": 10, + "snippet": { + "text": "WriteFloat" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 170, + "startColumn": 1, + "charOffset": 5508, + "charLength": 261, + "snippet": { + "text": " public static void WriteFloat(this IMemory memory, float value) => memory.WriteFloat(null, value);\r\n\r\n public static void WriteFloat(this IMemory memory, long? offset, float value)\r\n {\r\n memory.WriteBytes(offset, BitConverter.GetBytes(value));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "2e0040dd267b7f9f", + "equalIndicator/v1": "eebd64dd350254a2cc3e1c00d86b1ea0ef474fb070655b2a19b4c7cde87d2223" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetCurrentSaveSlot' coverage is below the threshold 50%", + "markdown": "Method `GetCurrentSaveSlot` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 168, + "startColumn": 16, + "charOffset": 6618, + "charLength": 18, + "snippet": { + "text": "GetCurrentSaveSlot" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 166, + "startColumn": 1, + "charOffset": 6542, + "charLength": 259, + "snippet": { + "text": " public int NgCount() => _gameDataMan.ReadInt32(0x3C);\r\n\r\n public int GetCurrentSaveSlot() => _gameMan.ReadInt32(0xA70);\r\n\r\n public Vector3f GetPosition() => new(_playerIns.ReadFloat(0xc50), _playerIns.ReadFloat(0xC58), _playerIns.ReadFloat(0xC54));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "2ad35cb65a4a4408", + "equalIndicator/v1": "f012e373fe355cc71a1847cd1873c6bb0487b10635e67f68f3bb19ee77503799" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Constructor 'DarkSouls2Splitter' coverage is below the threshold 50%", + "markdown": "Constructor `DarkSouls2Splitter` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls2Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 37, + "startColumn": 12, + "charOffset": 1398, + "charLength": 18, + "snippet": { + "text": "DarkSouls2Splitter" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 35, + "startColumn": 1, + "charOffset": 1327, + "charLength": 177, + "snippet": { + "text": " private readonly LiveSplitState _liveSplitState;\r\n \r\n public DarkSouls2Splitter(LiveSplitState state, DarkSouls2 darkSouls2)\r\n {\r\n _darkSouls2 = darkSouls2;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "97387578be01caf8", + "equalIndicator/v1": "f01c7ecbbe3a9058fa0f0cb1685a7b325a08c73e68dae1aa4962b847b9c06d47" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ScanAbsolute' coverage is below the threshold 50%", + "markdown": "Method `ScanAbsolute` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/TreeBuilder.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 44, + "startColumn": 28, + "charOffset": 1699, + "charLength": 12, + "snippet": { + "text": "ScanAbsolute" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 42, + "startColumn": 1, + "charOffset": 1663, + "charLength": 135, + "snippet": { + "text": " }\r\n\r\n public PointerAppender ScanAbsolute(string name, string pattern, long? offset)\r\n {\r\n var node = new PointerNode\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7e352a0c9e0c8c54", + "equalIndicator/v1": "f042b9b5d7a76643358fdc49ef016574c88166f7879d1a96391040adecf29aa2" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteBytes' coverage is below the threshold 50%", + "markdown": "Method `WriteBytes` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 82, + "startColumn": 17, + "charOffset": 2616, + "charLength": 10, + "snippet": { + "text": "WriteBytes" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 80, + "startColumn": 1, + "charOffset": 2488, + "charLength": 226, + "snippet": { + "text": "\r\n public byte[] ReadBytes(long offset, int length) => Memory.ReadBytes(ResolveOffsets() + offset, length);\r\n public void WriteBytes(long offset, byte[] bytes) => Memory.WriteBytes(ResolveOffsets() + offset, bytes);\r\n}\r\n" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "76e77be8fb1f7c54", + "equalIndicator/v1": "f072ac436b983ca9d489f102f3c03e7044e21c19e1c1ed48e954913b02446d21" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ToBytePattern' coverage is below the threshold 50%", + "markdown": "Method `ToBytePattern` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 226, + "startColumn": 27, + "charOffset": 9119, + "charLength": 13, + "snippet": { + "text": "ToBytePattern" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 224, + "startColumn": 1, + "charOffset": 8879, + "charLength": 323, + "snippet": { + "text": " /// Hex string, separated with whitespaces and ?/??/x/xx as wildcards. Example: \"48 8b 05 ? ? ? ? c6 40 18 00\"\r\n /// byte representation of the input string\r\n public static byte?[] ToBytePattern(this string pattern)\r\n {\r\n var result = new List();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "74bc20d66bc5b093", + "equalIndicator/v1": "f12d6160a21253e949f9a68aaf6f3ccc24faea40d08a2a56a4bc1b6b096e88fe" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_CommandAddError' coverage is below the threshold 50%", + "markdown": "Method `get_CommandAddError` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/MainViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 341, + "startColumn": 9, + "charOffset": 10634, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 339, + "startColumn": 1, + "charOffset": 10578, + "charLength": 148, + "snippet": { + "text": " public RelayCommand CommandAddError\r\n {\r\n get => _commandAddError;\r\n set => this.SetField(ref _commandAddError, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ed9947785266a0bc", + "equalIndicator/v1": "f14031248fb47a2c9b8a56ad3557c10de041189230eb2ed69648776374d37bf5" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteInt32' coverage is below the threshold 50%", + "markdown": "Method `WriteInt32` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/IMemory.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 137, + "startColumn": 24, + "charOffset": 4446, + "charLength": 10, + "snippet": { + "text": "WriteInt32" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 135, + "startColumn": 1, + "charOffset": 4419, + "charLength": 157, + "snippet": { + "text": "\r\n\r\n public static void WriteInt32(this IMemory memory, long? offset, int value)\r\n {\r\n memory.WriteBytes(offset, BitConverter.GetBytes(value));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "89aa78732f3dcbf7", + "equalIndicator/v1": "f1e58b24b72d4100a9fa832d3ccc113ebccdea06ce38b45e98d68678e0ef0d3e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetInGameTimeMilliseconds' coverage is below the threshold 50%", + "markdown": "Method `GetInGameTimeMilliseconds` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls2/scholar.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 36, + "startColumn": 16, + "charOffset": 1667, + "charLength": 25, + "snippet": { + "text": "GetInGameTimeMilliseconds" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 34, + "startColumn": 1, + "charOffset": 1469, + "charLength": 280, + "snippet": { + "text": " public Process? GetProcess() => _process;\r\n public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, \"darksoulsii\", InitPointers, ResetPointers);\r\n public int GetInGameTimeMilliseconds() => 0;\r\n public TreeBuilder GetTreeBuilder()\r\n {\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4a3bbafd43f3f172", + "equalIndicator/v1": "f21c71840580d5811b56d74b49146b3b795f410c3f7f69e08e7d9c3d1aeb7266" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetAttribute' coverage is below the threshold 50%", + "markdown": "Method `GetAttribute` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls2/scholar.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 101, + "startColumn": 16, + "charOffset": 3574, + "charLength": 12, + "snippet": { + "text": "GetAttribute" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 99, + "startColumn": 1, + "charOffset": 3550, + "charLength": 117, + "snippet": { + "text": " }\r\n\r\n public int GetAttribute(Attribute attribute)\r\n {\r\n var offset = _attributeOffsets[attribute];\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "201405d54e01e7aa", + "equalIndicator/v1": "f23230d8248e0c5d3d5b6406a22bf14502d9d8ce700eec8ee9436f3764993141" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'SetLoggingEnabled' coverage is below the threshold 50%", + "markdown": "Method `SetLoggingEnabled` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Logger.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 28, + "startColumn": 24, + "charOffset": 1040, + "charLength": 17, + "snippet": { + "text": "SetLoggingEnabled" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 26, + "startColumn": 1, + "charOffset": 970, + "charLength": 142, + "snippet": { + "text": " private static object _logLock = new();\r\n\r\n public static void SetLoggingEnabled(bool enable)\r\n {\r\n LoggingEnabled = enable;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "408b4fbe7541c11f", + "equalIndicator/v1": "f2395053f2c3d4e35fa9c00858f4be1e8e13a9dca7558e1da004277bda5431c6" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ResetAutoSplitting' coverage is below the threshold 50%", + "markdown": "Method `ResetAutoSplitting` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls2Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 172, + "startColumn": 17, + "charOffset": 5017, + "charLength": 18, + "snippet": { + "text": "ResetAutoSplitting" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 170, + "startColumn": 1, + "charOffset": 4960, + "charLength": 111, + "snippet": { + "text": " private List _splits = [];\r\n\r\n public void ResetAutoSplitting()\r\n {\r\n _splits.Clear();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "bca7a3819577fae4", + "equalIndicator/v1": "f25bc2282f462046d2c83338c9b9f83af0d092d63695bf9bf15b2090262730c2" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'SetViewModel' coverage is below the threshold 50%", + "markdown": "Method `SetViewModel` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls3Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 52, + "startColumn": 17, + "charOffset": 1797, + "charLength": 12, + "snippet": { + "text": "SetViewModel" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 50, + "startColumn": 1, + "charOffset": 1777, + "charLength": 110, + "snippet": { + "text": "\r\n\r\n public void SetViewModel(MainViewModel mainViewModel)\r\n {\r\n _mainViewModel = mainViewModel;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "1055ffb68ca78863", + "equalIndicator/v1": "f274c7e4c89112ed2e564a78f563d6dc46083421e5e4d8e9a159637be030b1f7" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_GroupName' coverage is below the threshold 50%", + "markdown": "Method `set_GroupName` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 496, + "startColumn": 9, + "charOffset": 15428, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 494, + "startColumn": 1, + "charOffset": 15385, + "charLength": 135, + "snippet": { + "text": " {\r\n get => _groupName;\r\n set => this.SetField(ref _groupName, value);\r\n }\r\n private string _groupName = null!;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "789283219649b430", + "equalIndicator/v1": "f2967b9d6c3338f78c06064cb281b79c3a7633a2d04f5458539555a8773d3b0b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_Level' coverage is below the threshold 50%", + "markdown": "Method `set_Level` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splits/DarkSouls2/Attribute.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 37, + "startColumn": 9, + "charOffset": 1374, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 35, + "startColumn": 1, + "charOffset": 1335, + "charLength": 112, + "snippet": { + "text": " {\r\n get => _level;\r\n set => this.SetField(ref _level, value);\r\n }\r\n private int _level;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b2766ea964d0368d", + "equalIndicator/v1": "f2ef51a28bcb339569bcb5f2ae7bdfe828e4618196fef306970494bfa9e10470" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_TimingTypes' coverage is below the threshold 50%", + "markdown": "Method `get_TimingTypes` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 164, + "startColumn": 9, + "charOffset": 6238, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 162, + "startColumn": 1, + "charOffset": 6147, + "charLength": 261, + "snippet": { + "text": " public ObservableCollection> TimingTypes\r\n {\r\n get => (ObservableCollection>)GetValue(TimingTypeDependencyProperty);\r\n set => SetValue(TimingTypeDependencyProperty, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f720c85d5e36144e", + "equalIndicator/v1": "f3c312c21b2ffc6f6c0d8bae0f85496c76c5aabf67e9229beaa12c18063442ea" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_Attributes' coverage is below the threshold 50%", + "markdown": "Method `set_Attributes` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 205, + "startColumn": 9, + "charOffset": 8664, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 203, + "startColumn": 1, + "charOffset": 8546, + "charLength": 181, + "snippet": { + "text": " {\r\n get => (ObservableCollection>)GetValue(AttributesDependencyProperty);\r\n set => SetValue(AttributesDependencyProperty, value);\r\n }\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "adcf017a5d613864", + "equalIndicator/v1": "f3f62dff7a52fd3eca0f9d2475480bda1255be82f50bb0d460b2f268d7266c10" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetTreeBuilder' coverage is below the threshold 50%", + "markdown": "Method `GetTreeBuilder` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Sekiro/Sekiro.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 50, + "startColumn": 24, + "charOffset": 2190, + "charLength": 14, + "snippet": { + "text": "GetTreeBuilder" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 48, + "startColumn": 1, + "charOffset": 2034, + "charLength": 258, + "snippet": { + "text": " public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, \"sekiro\", InitPointers, ResetPointers);\r\n\r\n public TreeBuilder GetTreeBuilder()\r\n {\r\n //MenuMan AOB is 48 8b 05 ? ? ? ? 0f b6 d1 48 8b 88 08 33 00 00 3, 7\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0abe896a842fcd29", + "equalIndicator/v1": "f427847c8947c23a319a092ccd8f2bc72bba03ab2ea106d1d342b9a2f8857e06" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'InjectMods' coverage is below the threshold 50%", + "markdown": "Method `InjectMods` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 96, + "startColumn": 37, + "charOffset": 3623, + "charLength": 10, + "snippet": { + "text": "InjectMods" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 94, + "startColumn": 1, + "charOffset": 3505, + "charLength": 176, + "snippet": { + "text": " public Process? GetProcess() => _armoredCore6.ProcessWrapper.GetProcess();\r\n\r\n private ResultErr InjectMods()\r\n {\r\n Exception? exception = null;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "09bcaae2a516a1a1", + "equalIndicator/v1": "f51f596c45710c64841f14d7f18cb2b5be381dc0ddf42d40c8f31fd49ed0727c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'TryBoyerMooreSearch' coverage is below the threshold 50%", + "markdown": "Method `TryBoyerMooreSearch` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 252, + "startColumn": 24, + "charOffset": 9984, + "charLength": 19, + "snippet": { + "text": "TryBoyerMooreSearch" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 250, + "startColumn": 1, + "charOffset": 9894, + "charLength": 193, + "snippet": { + "text": " /// Will return the first match it finds.\r\n /// \r\n public static bool TryBoyerMooreSearch(this byte[] haystack, byte?[] needle, out long result)\r\n {\r\n result = 0;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ed9e37a0229d3db4", + "equalIndicator/v1": "f555191de2229da8b15cdaee7b30b29b9269b62b4c15bd6da4209324c172d632" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_AddSplit' coverage is below the threshold 50%", + "markdown": "Method `get_AddSplit` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 255, + "startColumn": 9, + "charOffset": 11150, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 253, + "startColumn": 1, + "charOffset": 11101, + "charLength": 176, + "snippet": { + "text": " public RelayCommand AddSplit\r\n {\r\n get => (RelayCommand)GetValue(AddSplitDependencyProperty);\r\n set => SetValue(AddSplitDependencyProperty, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "752729a0d97eeb1c", + "equalIndicator/v1": "f5763a9c84b94119ad2c86383ed6e4f58fb16a85c65764e368324e97fce72331" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_DataOffset' coverage is below the threshold 50%", + "markdown": "Method `get_DataOffset` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/ParamTableEntry.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 22, + "startColumn": 30, + "charOffset": 938, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 20, + "startColumn": 1, + "charOffset": 873, + "charLength": 121, + "snippet": { + "text": "{\r\n public int Id { get; set; }\r\n public uint DataOffset { get; set; }\r\n public uint NameOffset { get; set; }\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d85671ce767498cc", + "equalIndicator/v1": "f5a34cdff9cc8fbfa0acb4bd1f61eff1e25dba2dee03608bc14018f9fa7879af" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteSByte' coverage is below the threshold 50%", + "markdown": "Method `WriteSByte` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/IMemory.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 164, + "startColumn": 24, + "charOffset": 5350, + "charLength": 10, + "snippet": { + "text": "WriteSByte" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 162, + "startColumn": 1, + "charOffset": 5318, + "charLength": 139, + "snippet": { + "text": " }\r\n\r\n public static void WriteSByte(this IMemory memory, long? offset, sbyte value)\r\n {\r\n var b = unchecked((byte)value);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5000c8ea62a5c2c7", + "equalIndicator/v1": "f5b8a2e334b9ef05ff2edf81743fad7375583f79d71a40a872d1fb53854f15a3" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'TryBoyerMooreSearch' coverage is below the threshold 50%", + "markdown": "Method `TryBoyerMooreSearch` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 188, + "startColumn": 24, + "charOffset": 7492, + "charLength": 19, + "snippet": { + "text": "TryBoyerMooreSearch" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 186, + "startColumn": 1, + "charOffset": 7402, + "charLength": 193, + "snippet": { + "text": " /// Will return the first match it finds.\r\n /// \r\n public static bool TryBoyerMooreSearch(this byte[] haystack, byte?[] needle, out long result)\r\n {\r\n result = 0;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0ae6e5f2587d8d07", + "equalIndicator/v1": "f5d93ef6266cec26fe44a95f8c2fbe08492201047622219a00a4911aea04f96c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadFloat' coverage is below the threshold 50%", + "markdown": "Method `ReadFloat` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 88, + "startColumn": 25, + "charOffset": 2840, + "charLength": 9, + "snippet": { + "text": "ReadFloat" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 86, + "startColumn": 1, + "charOffset": 2807, + "charLength": 155, + "snippet": { + "text": " }\r\n\r\n public static float ReadFloat(this IMemory memory, long offset)\r\n {\r\n return BitConverter.ToSingle(memory.ReadBytes(offset, 4), 0);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ced1a1088bf56afd", + "equalIndicator/v1": "f5dd8d8f86076655b9fd71a16289faea8bb9d671f1d914ee2cdacac78d1ff82a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteUint32' coverage is below the threshold 50%", + "markdown": "Method `WriteUint32` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 286, + "startColumn": 17, + "charOffset": 7520, + "charLength": 11, + "snippet": { + "text": "WriteUint32" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 284, + "startColumn": 1, + "charOffset": 7432, + "charLength": 193, + "snippet": { + "text": " public void WriteUint32(uint value) => WriteUint32(null, value);\r\n\r\n public void WriteUint32(long? offset, uint value)\r\n {\r\n WriteMemory(offset, BitConverter.GetBytes(value));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "8e54e196e411478c", + "equalIndicator/v1": "f5edfeab9c993ac454066f8dbfd92ed5d087f45a2ab36b6ef5edb6e692621eaa" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'InvokePropertyChanged' coverage is below the threshold 50%", + "markdown": "Method `InvokePropertyChanged` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/HierarchicalViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 44, + "startColumn": 17, + "charOffset": 1632, + "charLength": 21, + "snippet": { + "text": "InvokePropertyChanged" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 42, + "startColumn": 1, + "charOffset": 1550, + "charLength": 216, + "snippet": { + "text": " public event PropertyChangedEventHandler? PropertyChanged;\r\n\r\n public void InvokePropertyChanged(string propertyName)\r\n {\r\n PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "fe78232efe911e88", + "equalIndicator/v1": "f735eb6e8cf813a11e3fda7bb2bc62ca720c88b9f2428540d70b126fcc2d952f" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ToString' coverage is below the threshold 50%", + "markdown": "Method `ToString` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Result.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 83, + "startColumn": 28, + "charOffset": 2345, + "charLength": 8, + "snippet": { + "text": "ToString" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 81, + "startColumn": 1, + "charOffset": 2309, + "charLength": 91, + "snippet": { + "text": " }\r\n\r\n public override string ToString()\r\n {\r\n return IsOk ? \"Ok\" : \"Err\";\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a6d1c7ccd2275479", + "equalIndicator/v1": "f751f926d4d14bfb2041191233764ce570f0e328eca0015d0dfd9190115c454c" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'Memory.ByteArrayMemory' coverage is below the threshold 50%", + "markdown": "Class `Memory.ByteArrayMemory` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/IMemory.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 28, + "startColumn": 14, + "charOffset": 1022, + "charLength": 15, + "snippet": { + "text": "ByteArrayMemory" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 26, + "startColumn": 1, + "charOffset": 1004, + "charLength": 115, + "snippet": { + "text": "}\r\n\r\npublic class ByteArrayMemory(byte[] data) : IMemory\r\n{\r\n public byte[] ReadBytes(long? offset, int length)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "be423541ae40b451", + "equalIndicator/v1": "f7e8db63fbceeb2902fad34c445c59aa94e88bc0c74d4d64639a55309f8471a9" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'UpdateAllAchievements' coverage is below the threshold 50%", + "markdown": "Method `UpdateAllAchievements` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/DropMod.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 61, + "startColumn": 17, + "charOffset": 2174, + "charLength": 21, + "snippet": { + "text": "UpdateAllAchievements" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 59, + "startColumn": 1, + "charOffset": 2149, + "charLength": 103, + "snippet": { + "text": " }\r\n\r\n public void UpdateAllAchievements()\r\n {\r\n var items = darkSouls.GetInventory();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f6f1e7ff06d1ebfe", + "equalIndicator/v1": "f811dbb2eb9fa4ae82e5898b3f155c383dd74202f060505ac8d30aec29102b84" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteItemLotParam' coverage is below the threshold 50%", + "markdown": "Method `WriteItemLotParam` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 526, + "startColumn": 17, + "charOffset": 18533, + "charLength": 17, + "snippet": { + "text": "WriteItemLotParam" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 524, + "startColumn": 1, + "charOffset": 18331, + "charLength": 305, + "snippet": { + "text": " /// Provides an accessor to an itemLotParam. Do not capture this object; it's lifecycle will be managed efficiently. Only modify the itemlots via this accessor.\r\n /// \r\n public void WriteItemLotParam(int rowId, Action accessor)\r\n {\r\n if (!_itemLotParams.Any())\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f82ec6f3c1c4590a", + "equalIndicator/v1": "f8767709f8d0440941b212a1bc39122bb9938d518432cb043a22c4390dd31484" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Constructor 'RelayCommand' coverage is below the threshold 50%", + "markdown": "Constructor `RelayCommand` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/RelayCommand.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 28, + "startColumn": 12, + "charOffset": 1417, + "charLength": 12, + "snippet": { + "text": "RelayCommand" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 26, + "startColumn": 1, + "charOffset": 1196, + "charLength": 372, + "snippet": { + "text": " public RelayCommand(Action execute, Func canExecute) : this(_ => execute(), canExecute) { }\r\n public RelayCommand(Action execute) : this(execute, (Func?)null) { }\r\n public RelayCommand(Action execute, Func canExecute) : this(execute, _ => canExecute()) { }\r\n\r\n public event EventHandler CanExecuteChanged\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d00b5903b1a3ffde", + "equalIndicator/v1": "f89528966db2b1caaecdbc1526d4d6a400a3f5e6e24c3137896b56af5b59b8a0" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteBool' coverage is below the threshold 50%", + "markdown": "Method `WriteBool` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/IMemory.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 154, + "startColumn": 24, + "charOffset": 5045, + "charLength": 9, + "snippet": { + "text": "WriteBool" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 152, + "startColumn": 1, + "charOffset": 5013, + "charLength": 162, + "snippet": { + "text": " }\r\n\r\n public static void WriteBool(this IMemory memory, long? offset, bool value)\r\n {\r\n memory.WriteBytes(offset, BitConverter.GetBytes(value));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c32a64f1cf510d04", + "equalIndicator/v1": "f8c8f18ff023cf517e41132af308949fda7ba91e706e62d837dcb04dac95c116" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ResolveVersion' coverage is below the threshold 50%", + "markdown": "Method `ResolveVersion` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Extensions.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 86, + "startColumn": 21, + "charOffset": 2503, + "charLength": 14, + "snippet": { + "text": "ResolveVersion" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 84, + "startColumn": 1, + "charOffset": 2474, + "charLength": 155, + "snippet": { + "text": " }\r\n\r\n public static T ResolveVersion(this FileVersionInfo fileVersionInfo) where T : Enum\r\n {\r\n var values = Enum.GetValues(typeof(T))\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f2bf20e5f61cdd4e", + "equalIndicator/v1": "f905e1b7d645b211b66f5d9d35594ab245fb276fabf430bb09771e9eff1108b1" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'EldenRing.HierarchicalSplitTypeViewModel' coverage is below the threshold 50%", + "markdown": "Class `EldenRing.HierarchicalSplitTypeViewModel` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/SplitViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 50, + "startColumn": 14, + "charOffset": 1716, + "charLength": 30, + "snippet": { + "text": "HierarchicalSplitTypeViewModel" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 48, + "startColumn": 1, + "charOffset": 1698, + "charLength": 100, + "snippet": { + "text": "}\r\n\r\npublic class HierarchicalSplitTypeViewModel : ICustomNotifyPropertyChanged\r\n{\r\n [XmlIgnore]\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "58fb67713d3f6d84", + "equalIndicator/v1": "f923a52f530e9f9fb4e970f189d04438d76da2f03c6628593b86c0d6ea5eca0d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteInt16' coverage is below the threshold 50%", + "markdown": "Method `WriteInt16` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 129, + "startColumn": 24, + "charOffset": 3984, + "charLength": 10, + "snippet": { + "text": "WriteInt16" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 127, + "startColumn": 1, + "charOffset": 3952, + "charLength": 163, + "snippet": { + "text": " }\r\n\r\n public static void WriteInt16(this IMemory memory, long offset, short value)\r\n {\r\n memory.WriteBytes(offset, BitConverter.GetBytes(value));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f60ba5c7315dd259", + "equalIndicator/v1": "f928e021301f054461c325cc30a904c044cbe5b701113b482792b345f1bec19c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'NgCount' coverage is below the threshold 50%", + "markdown": "Method `NgCount` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/DarkSouls1.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 37, + "startColumn": 16, + "charOffset": 1731, + "charLength": 7, + "snippet": { + "text": "NgCount" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 35, + "startColumn": 1, + "charOffset": 1533, + "charLength": 403, + "snippet": { + "text": " public Vector3f GetPosition() => _darkSouls1?.GetPosition() ?? new Vector3f(0,0,0);\r\n public int GetInGameTimeMilliseconds() => _darkSouls1?.GetInGameTimeMilliseconds() ?? 0;\r\n public int NgCount() => _darkSouls1?.NgCount() ?? 0;\r\n public int GetCurrentSaveSlot() => _darkSouls1?.GetCurrentSaveSlot() ?? -1;\r\n public void ResetInventoryIndices() => _darkSouls1?.ResetInventoryIndices();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "725ca91e97b00fc1", + "equalIndicator/v1": "f946e072eb1cbb4c3587093f7f8a4a85718fb6f32d7c64eb51c0f1e5097534fb" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_Z' coverage is below the threshold 50%", + "markdown": "Method `get_Z` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/PositionViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 68, + "startColumn": 9, + "charOffset": 1850, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 66, + "startColumn": 1, + "charOffset": 1815, + "charLength": 115, + "snippet": { + "text": " public float Z\r\n {\r\n get => Position.Z;\r\n set => this.SetField(ref Position.Z, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b29a295b9203b4b8", + "equalIndicator/v1": "f94c311f5241d259007919e94f055044b8f9122bbd0c1ffef99b071c0799eb7f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'OnPreviewLostKeyboardFocus' coverage is below the threshold 50%", + "markdown": "Method `OnPreviewLostKeyboardFocus` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/FilteredComboBox.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 116, + "startColumn": 29, + "charOffset": 3623, + "charLength": 26, + "snippet": { + "text": "OnPreviewLostKeyboardFocus" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 114, + "startColumn": 1, + "charOffset": 3586, + "charLength": 128, + "snippet": { + "text": " }\r\n\r\n protected override void OnPreviewLostKeyboardFocus(KeyboardFocusChangedEventArgs e)\r\n {\r\n ClearFilter();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f787267066d6f650", + "equalIndicator/v1": "f9bd7896319d113c047ace973017520690605e3d6d06df07a84dcd91c118dabf" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'InvokePropertyChanged' coverage is below the threshold 50%", + "markdown": "Method `InvokePropertyChanged` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/BoolDescriptionViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 46, + "startColumn": 17, + "charOffset": 1484, + "charLength": 21, + "snippet": { + "text": "InvokePropertyChanged" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 44, + "startColumn": 1, + "charOffset": 1402, + "charLength": 216, + "snippet": { + "text": " public event PropertyChangedEventHandler? PropertyChanged;\r\n\r\n public void InvokePropertyChanged(string propertyName)\r\n {\r\n PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "337c9d633bb348ef", + "equalIndicator/v1": "f9cf193545d59df4de2ca48ae342e0d62c11b1097f3a1c71290fba7419e4410f" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'Splitters.DarkSouls3Splitter' coverage is below the threshold 50%", + "markdown": "Class `Splitters.DarkSouls3Splitter` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls3Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 30, + "startColumn": 14, + "charOffset": 1132, + "charLength": 18, + "snippet": { + "text": "DarkSouls3Splitter" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 28, + "startColumn": 1, + "charOffset": 1082, + "charLength": 138, + "snippet": { + "text": "namespace SoulSplitter.Splitters;\r\n\r\npublic class DarkSouls3Splitter : ISplitter\r\n{\r\n private readonly LiveSplitState _liveSplitState;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0dc146263c3dfa01", + "equalIndicator/v1": "f9f6ea5dc5156555236a761205eb0a79ebd0ba4f8563819c0cbc0a805e22b8d7" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_NewSplitType' coverage is below the threshold 50%", + "markdown": "Method `get_NewSplitType` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 82, + "startColumn": 9, + "charOffset": 2540, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 80, + "startColumn": 1, + "charOffset": 2480, + "charLength": 106, + "snippet": { + "text": " public EldenRingSplitType? NewSplitType\r\n {\r\n get => _newSplitType;\r\n set\r\n {\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "3e282e91805ebbe2", + "equalIndicator/v1": "f9fb24b79a300fdd52c3ac45d09de2227ead0e22240a3d61f5d486bd6ad72fdd" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ConvertBack' coverage is below the threshold 50%", + "markdown": "Method `ConvertBack` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Converters/DropModTypeConverter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 35, + "startColumn": 19, + "charOffset": 1348, + "charLength": 11, + "snippet": { + "text": "ConvertBack" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 33, + "startColumn": 1, + "charOffset": 1321, + "charLength": 159, + "snippet": { + "text": " }\r\n\r\n public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)\r\n {\r\n return (DropModType)parameter!;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e6e4a7f05f450ece", + "equalIndicator/v1": "fa24daa3d17d58cf7d669cb48c2c73385504fac6afe5b58673284a29559d9600" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'SoulMemory.Result' coverage is below the threshold 50%", + "markdown": "Class `SoulMemory.Result` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Result.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 215, + "startColumn": 14, + "charOffset": 5013, + "charLength": 6, + "snippet": { + "text": "Result" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 213, + "startColumn": 1, + "charOffset": 4936, + "charLength": 129, + "snippet": { + "text": "/// Result type with generic Ok and Error type\r\n/// \r\npublic class Result\r\n{\r\n private readonly TOk _ok;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d44fe7bcd76a24e5", + "equalIndicator/v1": "fad6f4d8bbb56889ffea6a20e27a9f512f9c1584892dd26ee7d19a13fb337b9e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_SelectedFlagDescription' coverage is below the threshold 50%", + "markdown": "Method `set_SelectedFlagDescription` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/FlagTrackerViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 347, + "startColumn": 9, + "charOffset": 10766, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 345, + "startColumn": 1, + "charOffset": 10709, + "charLength": 179, + "snippet": { + "text": " {\r\n get => _selectedFlagDescription;\r\n set => this.SetField(ref _selectedFlagDescription, value);\r\n }\r\n private FlagDescription? _selectedFlagDescription;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4aee12c7ff0b47eb", + "equalIndicator/v1": "faf313ae371ad157dd7a5f18e5e6052e0c673dbb86228864618d93b59d9ea250" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_MethodName' coverage is below the threshold 50%", + "markdown": "Method `set_MethodName` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/soulmods/Soulmods.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 45, + "startColumn": 37, + "charOffset": 1518, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 43, + "startColumn": 1, + "charOffset": 1435, + "charLength": 104, + "snippet": { + "text": "public class RustCallAttribute : Attribute\r\n{\r\n public string MethodName { get; set; } = null!;\r\n}\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4515d5a3891d8084", + "equalIndicator/v1": "fb1fcc67e718a81279daa98fa5f08b082e889e2de8eabb9dafc81c3ac1557c89" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'UI.MainWindow' coverage is below the threshold 50%", + "markdown": "Class `UI.MainWindow` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/MainWindow.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 30, + "startColumn": 22, + "charOffset": 1150, + "charLength": 10, + "snippet": { + "text": "MainWindow" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 28, + "startColumn": 1, + "charOffset": 1069, + "charLength": 129, + "snippet": { + "text": "/// Interaction logic for MainControl.xaml\r\n/// \r\npublic partial class MainWindow : Window\r\n{\r\n public MainWindow()\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "8194dd0e412a241c", + "equalIndicator/v1": "fb5ce35a5099938f073fa0c88ac63c98699b90e8f07be16a7035a1b06c32a722" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteByte' coverage is below the threshold 50%", + "markdown": "Method `WriteByte` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 118, + "startColumn": 24, + "charOffset": 3663, + "charLength": 9, + "snippet": { + "text": "WriteByte" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 116, + "startColumn": 1, + "charOffset": 3613, + "charLength": 158, + "snippet": { + "text": " #region Writing\r\n \r\n public static void WriteByte(this IMemory memory, long offset, byte value)\r\n {\r\n memory.WriteBytes(offset, [value]);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e0400d284076a43c", + "equalIndicator/v1": "fb70c86d05f02da2889bc612c8deca62e2cb71328b653d1acfa5499478d6ae2e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'GetProcess' coverage is below the threshold 50%", + "markdown": "Method `GetProcess` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls2/vanilla.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 34, + "startColumn": 21, + "charOffset": 1464, + "charLength": 10, + "snippet": { + "text": "GetProcess" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 32, + "startColumn": 1, + "charOffset": 1281, + "charLength": 347, + "snippet": { + "text": "\r\n #region Refresh/init/reset ================================================================================================================================\r\n public Process? GetProcess() => _process;\r\n\r\n public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, \"darksoulsii\", InitPointers, ResetPointers);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a919a125b1da30bc", + "equalIndicator/v1": "fbbe4b2f0261f2b752ca30eefe08ece43a18f9ac8b6c62a50d00f5924a15e656" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadSByte' coverage is below the threshold 50%", + "markdown": "Method `ReadSByte` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/IMemory.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 78, + "startColumn": 25, + "charOffset": 2477, + "charLength": 9, + "snippet": { + "text": "ReadSByte" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 76, + "startColumn": 1, + "charOffset": 2444, + "charLength": 141, + "snippet": { + "text": " }\r\n\r\n public static sbyte ReadSByte(this IMemory memory, long? offset = null)\r\n {\r\n var b = memory.ReadBytes(offset, 1)[0];\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "50f4e129c7685480", + "equalIndicator/v1": "fbec4b73846ef4a8ef1dc17ace713b6780754e9552610b3db47da350516547d9" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_RemoveSplitEnabled' coverage is below the threshold 50%", + "markdown": "Method `set_RemoveSplitEnabled` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 260, + "startColumn": 9, + "charOffset": 9025, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 258, + "startColumn": 1, + "charOffset": 8973, + "charLength": 152, + "snippet": { + "text": " {\r\n get => _removeSplitEnabled;\r\n set => this.SetField(ref _removeSplitEnabled, value);\r\n }\r\n private bool _removeSplitEnabled;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4e435e7b0507ec32", + "equalIndicator/v1": "fc7099850766eaf69d953e5dc2ffb214cd1fb977a8d6432e4dbd4baeafb0b1e7" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'Splitters.ArmoredCore6Splitter' coverage is below the threshold 50%", + "markdown": "Class `Splitters.ArmoredCore6Splitter` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/ArmoredCore6Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 28, + "startColumn": 14, + "charOffset": 1077, + "charLength": 20, + "snippet": { + "text": "ArmoredCore6Splitter" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 26, + "startColumn": 1, + "charOffset": 1027, + "charLength": 207, + "snippet": { + "text": "namespace SoulSplitter.Splitters;\r\n\r\npublic class ArmoredCore6Splitter(LiveSplitState state, IGame game) : BaseSplitter(state, game)\r\n{\r\n private readonly ArmoredCore6 _armoredCore6 = (ArmoredCore6)game;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "3282a966d30d2ab9", + "equalIndicator/v1": "fcd9ec462c7449d2efe7940909678275c96c59f009f034da32887c9c2d05db65" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'DecryptSl2' coverage is below the threshold 50%", + "markdown": "Method `DecryptSl2` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Sl2Reader.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 116, + "startColumn": 27, + "charOffset": 3870, + "charLength": 10, + "snippet": { + "text": "DecryptSl2" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 114, + "startColumn": 1, + "charOffset": 3763, + "charLength": 184, + "snippet": { + "text": " /// iv\r\n /// decrypted bytes\r\n private static byte[] DecryptSl2(byte[] cipherBytes)\r\n {\r\n var encryptor = Aes.Create();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a9e834b0b9200318", + "equalIndicator/v1": "fd1f6f1517cbb30ccf79147b4256c603807f4f7e029d82526890d997eeba4511" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'Native.Gdi32' coverage is below the threshold 50%", + "markdown": "Class `Native.Gdi32` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Native/Gdi32.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 24, + "startColumn": 21, + "charOffset": 984, + "charLength": 5, + "snippet": { + "text": "Gdi32" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 22, + "startColumn": 1, + "charOffset": 930, + "charLength": 160, + "snippet": { + "text": "namespace SoulSplitter.Native;\r\n\r\npublic static class Gdi32\r\n{\r\n [DllImport(\"gdi32.dll\", CharSet = CharSet.Auto, SetLastError = true, ExactSpelling = true)]\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "94ff81dacef356ec", + "equalIndicator/v1": "fd2ba151350295c1f4c80e0f6ae334fb073d9a63a06ff52b928f4b5a44196b41" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'set_ProcessWrapper' coverage is below the threshold 50%", + "markdown": "Method `set_ProcessWrapper` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Process/ProcessHook.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 23, + "startColumn": 50, + "charOffset": 1012, + "charLength": 3, + "snippet": { + "text": "set" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 21, + "startColumn": 1, + "charOffset": 866, + "charLength": 282, + "snippet": { + "text": "public class ProcessHook(string name, IProcessWrapper? processWrapper = null) : IProcessHook\r\n{\r\n public IProcessWrapper ProcessWrapper { get; set; } = processWrapper ?? new ProcessWrapper();\r\n\r\n public System.Diagnostics.Process? GetProcess() => ProcessWrapper.GetProcess();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5234b08b747a2b19", + "equalIndicator/v1": "fd409e76938c97fe8f9e1ad341d2a6d999c4331a0c6d2c28a95980195a051ab5" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_Value' coverage is below the threshold 50%", + "markdown": "Method `get_Value` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/BoolDescriptionViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 32, + "startColumn": 9, + "charOffset": 1160, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 30, + "startColumn": 1, + "charOffset": 1122, + "charLength": 110, + "snippet": { + "text": " public bool Value\r\n {\r\n get => _value;\r\n set => this.SetField(ref _value, value);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ed13ef59cb6455ee", + "equalIndicator/v1": "fd6bedf9555d6239eb3322da3d592c0ec5cd6d5ce1cdd5880eb7d6bd8f0b44e6" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'IsPlayerLoaded' coverage is below the threshold 50%", + "markdown": "Method `IsPlayerLoaded` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 238, + "startColumn": 17, + "charOffset": 8584, + "charLength": 14, + "snippet": { + "text": "IsPlayerLoaded" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 236, + "startColumn": 1, + "charOffset": 8500, + "charLength": 166, + "snippet": { + "text": " public int GetPlayerHealth() => _playerIns.ReadInt32(0x3e8);\r\n\r\n public bool IsPlayerLoaded() => !_playerIns.IsNullPtr();\r\n\r\n public bool IsWarpRequested()\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "06d23da039c47a26", + "equalIndicator/v1": "fdcbf7c8a47d550ec8d34eb635a8d0aa171ea6c289056ab4a808f11634ef075c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'WriteSByte' coverage is below the threshold 50%", + "markdown": "Method `WriteSByte` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 123, + "startColumn": 24, + "charOffset": 3804, + "charLength": 10, + "snippet": { + "text": "WriteSByte" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 121, + "startColumn": 1, + "charOffset": 3772, + "charLength": 138, + "snippet": { + "text": " }\r\n\r\n public static void WriteSByte(this IMemory memory, long offset, sbyte value)\r\n {\r\n var b = unchecked((byte)value);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4f7b71b288092675", + "equalIndicator/v1": "fde9d9b7c07e2e40d5b7a0a6cec2e95834636f6f48013463ca6d78ea1520fcd1" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'IsLoading' coverage is below the threshold 50%", + "markdown": "Method `IsLoading` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls2/vanilla.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 92, + "startColumn": 17, + "charOffset": 3255, + "charLength": 9, + "snippet": { + "text": "IsLoading" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 90, + "startColumn": 1, + "charOffset": 3230, + "charLength": 95, + "snippet": { + "text": " }\r\n\r\n public bool IsLoading()\r\n {\r\n return _loadState.ReadUInt32(0x1D4) == 1;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "daa35d79e7e998bf", + "equalIndicator/v1": "fe290d47d5ef04a135edbeb1c395298cd78add247215b026c9aa73000dd94cf3" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Class 'EldenRing.Position' coverage is below the threshold 50%", + "markdown": "Class `EldenRing.Position` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/Position.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 19, + "startColumn": 14, + "charOffset": 855, + "charLength": 8, + "snippet": { + "text": "Position" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 17, + "startColumn": 1, + "charOffset": 807, + "charLength": 83, + "snippet": { + "text": "namespace SoulMemory.EldenRing;\r\n\r\npublic class Position\r\n{\r\n public byte Area;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "625df3cd734d9d92", + "equalIndicator/v1": "fe2a91b3bf66cc0fa55ce4bbdc166fc7227b63785c5dc29e53d03ef5ee593e0a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Constructor 'PointerAppender' coverage is below the threshold 50%", + "markdown": "Constructor `PointerAppender` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/PointerAppender.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 22, + "startColumn": 14, + "charOffset": 933, + "charLength": 15, + "snippet": { + "text": "PointerAppender" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 20, + "startColumn": 1, + "charOffset": 869, + "charLength": 149, + "snippet": { + "text": "{\r\n private readonly PointerNode _pointerNode;\r\n internal PointerAppender(PointerNode pointerNode)\r\n {\r\n _pointerNode = pointerNode;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "fe11edfbb6cb2dac", + "equalIndicator/v1": "fe3ffe8f8271ae3ee000c2e82aa3f9023247f3dbadd22d49d35e60e4a0e6952d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'get_isValid' coverage is below the threshold 50%", + "markdown": "Method `get_isValid` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Native/Structs/Image/IMAGE_NT_HEADERS32.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 44, + "startColumn": 9, + "charOffset": 1403, + "charLength": 3, + "snippet": { + "text": "get" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 42, + "startColumn": 1, + "charOffset": 1363, + "charLength": 156, + "snippet": { + "text": " public bool isValid\r\n {\r\n get { return _Signature == \"PE\\0\\0\" && OptionalHeader.Magic == MagicType.IMAGE_NT_OPTIONAL_HDR32_MAGIC; }\r\n }\r\n}\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "eb9f1124366ee0f4", + "equalIndicator/v1": "fed410eab8dea6e2e72f60de62a1ac220831ce0e92b0bc8246a03bd3ad34b83e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ResetTimer' coverage is below the threshold 50%", + "markdown": "Method `ResetTimer` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls2Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 120, + "startColumn": 18, + "charOffset": 3437, + "charLength": 10, + "snippet": { + "text": "ResetTimer" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 118, + "startColumn": 1, + "charOffset": 3411, + "charLength": 94, + "snippet": { + "text": " }\r\n\r\n private void ResetTimer()\r\n {\r\n _timerState = TimerState.WaitForStart;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7500021ef886bb95", + "equalIndicator/v1": "ff5c87fd87540c70b25374bfb4d5272a40db33876c51ecd0de3a34d6330b6d97" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ReadInt32' coverage is below the threshold 50%", + "markdown": "Method `ReadInt32` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 68, + "startColumn": 23, + "charOffset": 2214, + "charLength": 9, + "snippet": { + "text": "ReadInt32" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 66, + "startColumn": 1, + "charOffset": 2179, + "charLength": 156, + "snippet": { + "text": " }\r\n \r\n public static int ReadInt32(this IMemory memory, long offset)\r\n {\r\n return BitConverter.ToInt32(memory.ReadBytes(offset, 4), 0);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5685393012e712e7", + "equalIndicator/v1": "ff67876f278e033c09369d778b687da67e350ac79d0518ed334a669f4e490ffa" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'CanAddSplit' coverage is below the threshold 50%", + "markdown": "Method `CanAddSplit` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Sekiro/SekiroViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 42, + "startColumn": 18, + "charOffset": 1533, + "charLength": 11, + "snippet": { + "text": "CanAddSplit" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 40, + "startColumn": 1, + "charOffset": 1342, + "charLength": 281, + "snippet": { + "text": " #region add/remove splits ============================================================================================================================================\r\n\r\n private bool CanAddSplit()\r\n {\r\n if (!NewSplitTimingType.HasValue || !NewSplitType.HasValue)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "192f94683cef8384", + "equalIndicator/v1": "ff6d02bcc2c1495dfb9c21477f9c2a585079ef04cfc7bcba8ca9a8978fc2e7d8" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NetCoverageInspection", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'ResolveOffsets' coverage is below the threshold 50%", + "markdown": "Method `ResolveOffsets` coverage is below the threshold 50%" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 82, + "startColumn": 18, + "charOffset": 2314, + "charLength": 14, + "snippet": { + "text": "ResolveOffsets" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 80, + "startColumn": 1, + "charOffset": 2291, + "charLength": 137, + "snippet": { + "text": " \r\n\r\n private long ResolveOffsets(List offsets, StringBuilder? debugStringBuilder = null)\r\n {\r\n if (Process == null)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c44f7a89a79e3a67", + "equalIndicator/v1": "ff83078d7aea0fa9924da744717ab59a49e70bc5fb6981d91a1d3aa7c7fd0254" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NonAsciiCharacters", + "kind": "fail", + "level": "warning", + "message": { + "text": "Non-ASCII symbols in ASCII word", + "markdown": "Non-ASCII symbols in ASCII word" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Parameters/ShadowBank.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 126, + "startColumn": 37, + "charOffset": 3693, + "charLength": 1, + "snippet": { + "text": "G" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 124, + "startColumn": 1, + "charOffset": 3621, + "charLength": 131, + "snippet": { + "text": " {\r\n get => _GradFactor;\r\n set => WriteParamField(ref _GradFactor, value);\r\n }\r\n private float _GradFactor;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "dfabc1064bf43018", + "equalIndicator/v1": "4d8bbaa7f51c58f00b4ebdc3f5aa6a666df93ba89f38357c60ec2214580c5363" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NonAsciiCharacters", + "kind": "fail", + "level": "warning", + "message": { + "text": "Non-ASCII characters", + "markdown": "Non-ASCII characters" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Parameters/ShadowBank.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 126, + "startColumn": 37, + "charOffset": 3693, + "charLength": 1, + "snippet": { + "text": "G" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 124, + "startColumn": 1, + "charOffset": 3621, + "charLength": 131, + "snippet": { + "text": " {\r\n get => _GradFactor;\r\n set => WriteParamField(ref _GradFactor, value);\r\n }\r\n private float _GradFactor;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "rider.module", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "dfabc1064bf43018", + "equalIndicator/v1": "5d67cae54c8a4eb87660e1203b3de38ead4ae697f4e67ced4e7d55e432366616" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#" + ] + } + }, + { + "ruleId": "NotAccessedField.Local", + "kind": "fail", + "level": "warning", + "message": { + "text": "Field '_mainViewModel' is assigned but its value is never used", + "markdown": "Field '_mainViewModel' is assigned but its value is never used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls2Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 34, + "startColumn": 27, + "charOffset": 1302, + "charLength": 14, + "snippet": { + "text": "_mainViewModel" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 32, + "startColumn": 1, + "charOffset": 1167, + "charLength": 219, + "snippet": { + "text": " private readonly DarkSouls2 _darkSouls2;\r\n private DarkSouls2ViewModel _darkSouls2ViewModel = null!;\r\n private MainViewModel _mainViewModel = null!;\r\n private readonly LiveSplitState _liveSplitState;\r\n \r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "2bae4fa05ca0cfb3", + "equalIndicator/v1": "4abdaf2af952cc8136482d37b9fb0726ff0fd4d78a2764f2edc47ad3d8e8f744" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "NotAccessedVariable", + "kind": "fail", + "level": "warning", + "message": { + "text": "Local variable 's' is only assigned but its value is never used", + "markdown": "Local variable 's' is only assigned but its value is never used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/DropMod.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 80, + "startColumn": 17, + "charOffset": 2780, + "charLength": 1, + "snippet": { + "text": "s" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 78, + "startColumn": 1, + "charOffset": 2692, + "charLength": 214, + "snippet": { + "text": " foreach (SwitchableDrop temp in _switchableWeapons)\r\n {\r\n var s = temp; //structs need to be put in a variable in order to be mutable. Meme.\r\n s.ShouldSwitch = true;\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "362bf94d5e894da3", + "equalIndicator/v1": "eb67250048a9c9e8eaa57a16ce6fc8cd36dc3fd5a8398f481ae03dd7c0b25a6e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "PrivateFieldCanBeConvertedToLocalVariable", + "kind": "fail", + "level": "warning", + "message": { + "text": "The field is always assigned before being used and can be converted into a local variable", + "markdown": "The field is always assigned before being used and can be converted into a local variable" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 62, + "startColumn": 30, + "charOffset": 2370, + "charLength": 7, + "snippet": { + "text": "_noLogo" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 60, + "startColumn": 1, + "charOffset": 2294, + "charLength": 165, + "snippet": { + "text": "\r\n private readonly Pointer _eventFlagMan;\r\n private readonly Pointer _noLogo;\r\n private readonly Pointer _fd4Time;\r\n private readonly Pointer _menuMan;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "92b8ef1384a389c2", + "equalIndicator/v1": "54703a02d64528cbb6f3be82e516a0c688e94165912bed494f5c8dc8778e0075" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "PrivateFieldCanBeConvertedToLocalVariable", + "kind": "fail", + "level": "warning", + "message": { + "text": "The field is always assigned before being used and can be converted into a local variable", + "markdown": "The field is always assigned before being used and can be converted into a local variable" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/BaseParam.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 30, + "startColumn": 97, + "charOffset": 1203, + "charLength": 24, + "snippet": { + "text": "_paramFieldPropertyCache" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 28, + "startColumn": 1, + "charOffset": 1071, + "charLength": 289, + "snippet": { + "text": "public abstract class BaseParam\r\n{\r\n private readonly List<(PropertyInfo propertyInfo, ParamFieldAttribute paramFieldAttribute)> _paramFieldPropertyCache;\r\n private readonly List<(PropertyInfo propertyInfo, ParamBitFieldAttribute paramFieldAttribute)> _paramBitfieldPropertyCache;\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "56556f087105061e", + "equalIndicator/v1": "e0d54e06da3c865ebbe5ae3bcaece1640ca0a3a4ebce1a46bde45c59878c866c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantAssignment", + "kind": "fail", + "level": "warning", + "message": { + "text": "Value assigned is not used in any execution path", + "markdown": "Value assigned is not used in any execution path" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerTreeBuilder.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 71, + "startColumn": 29, + "charOffset": 2693, + "charLength": 3, + "snippet": { + "text": "= 0" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 69, + "startColumn": 1, + "charOffset": 2618, + "charLength": 158, + "snippet": { + "text": " foreach (var node in Tree)\r\n {\r\n long scanResult = 0;\r\n bool success = false;\r\n switch (node.PointerNodeType)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c1bedbd60c3047c5", + "equalIndicator/v1": "12046fbd93afd6f435002da781d1a8a0ed91da98e3283b61b7b2fb101ea198af" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantAssignment", + "kind": "fail", + "level": "warning", + "message": { + "text": "Value assigned is not used in any execution path", + "markdown": "Value assigned is not used in any execution path" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 196, + "startColumn": 36, + "charOffset": 7035, + "charLength": 3, + "snippet": { + "text": "= 0" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 194, + "startColumn": 1, + "charOffset": 6911, + "charLength": 176, + "snippet": { + "text": " //They are written out like this explicitly, to match the game's assembly\r\n\r\n long calculatedPointer = 0;\r\n\r\n //jump to calculate ptr if zero\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b4ad44436c99d73d", + "equalIndicator/v1": "1c5f68fd9b2dfcc13e4f2e06efc1c21693e04d36f5b04629398f1bcfd1add630" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantAssignment", + "kind": "fail", + "level": "warning", + "message": { + "text": "Value assigned is not used in any execution path", + "markdown": "Value assigned is not used in any execution path" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Native/Kernel32.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 328, + "startColumn": 33, + "charOffset": 12443, + "charLength": 3, + "snippet": { + "text": "= 0" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 326, + "startColumn": 1, + "charOffset": 12369, + "charLength": 130, + "snippet": { + "text": " //moduleImageDosHeader.isValid\r\n\r\n uint exportTableAddress = 0;\r\n if (Is64Bit(process).Unwrap())\r\n {\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e771241043cab8ed", + "equalIndicator/v1": "1d2dab82094abcf69a8b62e6ee34c86d6d0808b6a23282969c714cef97176235" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantAssignment", + "kind": "fail", + "level": "warning", + "message": { + "text": "Value assigned is not used in any execution path", + "markdown": "Value assigned is not used in any execution path" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Sekiro/Sekiro.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 536, + "startColumn": 31, + "charOffset": 19796, + "charLength": 3, + "snippet": { + "text": "= 0" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 534, + "startColumn": 1, + "charOffset": 19743, + "charLength": 165, + "snippet": { + "text": "\r\n //timer mod\r\n long igtFixEntryPoint = 0;\r\n //cvttss2si rax, xmm0 <---\r\n //add [rcx+9Ch], eax ; timer_update\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9606d5c8dddd9d63", + "equalIndicator/v1": "2650c218116d2cc8919fa3ebf87080ea0bdbbda618ec2a04b1e7ad5baf6e13dc" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantAssignment", + "kind": "fail", + "level": "warning", + "message": { + "text": "Value assigned is not used in any execution path", + "markdown": "Value assigned is not used in any execution path" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Sekiro/Sekiro.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 502, + "startColumn": 37, + "charOffset": 18526, + "charLength": 3, + "snippet": { + "text": "= 0" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 500, + "startColumn": 1, + "charOffset": 18463, + "charLength": 111, + "snippet": { + "text": " string version;\r\n\r\n uint logoCodeBytesPointFive = 0;\r\n uint logoCodeBytesPointSix = 0;\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ed22952f637bf55f", + "equalIndicator/v1": "2b767feae9ae8cc78395b8dd7e2f3c5913b612d3e773980c99f1a21eac99ea98" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantAssignment", + "kind": "fail", + "level": "warning", + "message": { + "text": "Value assigned is not used in any execution path", + "markdown": "Value assigned is not used in any execution path" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Sekiro/Sekiro.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 503, + "startColumn": 36, + "charOffset": 18567, + "charLength": 3, + "snippet": { + "text": "= 0" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 501, + "startColumn": 1, + "charOffset": 18488, + "charLength": 88, + "snippet": { + "text": "\r\n uint logoCodeBytesPointFive = 0;\r\n uint logoCodeBytesPointSix = 0;\r\n\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "baa5e17aaf56cc4e", + "equalIndicator/v1": "373e06a4c46fb20724a4a1ba6b5cc7ea4331aa15ca59375aaa65247483ff3f3d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantAssignment", + "kind": "fail", + "level": "warning", + "message": { + "text": "Value assigned is not used in any execution path", + "markdown": "Value assigned is not used in any execution path" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/ItemReader.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 71, + "startColumn": 24, + "charOffset": 2838, + "charLength": 3, + "snippet": { + "text": "= 0" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 69, + "startColumn": 1, + "charOffset": 2782, + "charLength": 155, + "snippet": { + "text": "\r\n //Decode item\r\n int id = 0;\r\n ItemInfusion infusion = ItemInfusion.Normal;\r\n int level = 0;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "8fd4a00008e9c7f2", + "equalIndicator/v1": "41ffce7ceadccc546fa16bd524e0072fa26d01dd9361d79e6b7b5d136715ba3f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantAssignment", + "kind": "fail", + "level": "warning", + "message": { + "text": "Value assigned is not used in any execution path", + "markdown": "Value assigned is not used in any execution path" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerTreeBuilder.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 72, + "startColumn": 26, + "charOffset": 2724, + "charLength": 7, + "snippet": { + "text": "= false" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 70, + "startColumn": 1, + "charOffset": 2654, + "charLength": 137, + "snippet": { + "text": " {\r\n long scanResult = 0;\r\n bool success = false;\r\n switch (node.PointerNodeType)\r\n {\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ad442d00f292f65d", + "equalIndicator/v1": "4ae49c8ef4a153bbf96e69a337dfe6114d363e2b6d580db69457a21eecf43257" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantAssignment", + "kind": "fail", + "level": "warning", + "message": { + "text": "Value assigned is not used in any execution path", + "markdown": "Value assigned is not used in any execution path" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/MainViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 414, + "startColumn": 17, + "charOffset": 12847, + "charLength": 4, + "snippet": { + "text": "= \"\"" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 412, + "startColumn": 1, + "charOffset": 12817, + "charLength": 148, + "snippet": { + "text": " };\r\n\r\n var xml = \"\";\r\n using var stream = new StringWriter();\r\n using var writer = XmlWriter.Create(stream, settings);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "57a9a35d48361c5c", + "equalIndicator/v1": "636481f6e0338f5bf111aa27e42ac5bc8fc7576c83ab0fe93a3231b49a30ae3e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantAssignment", + "kind": "fail", + "level": "warning", + "message": { + "text": "Value assigned is not used in any execution path", + "markdown": "Value assigned is not used in any execution path" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Sekiro/Sekiro.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 542, + "startColumn": 28, + "charOffset": 20069, + "charLength": 3, + "snippet": { + "text": "= 0" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 540, + "startColumn": 1, + "charOffset": 19952, + "charLength": 302, + "snippet": { + "text": " //cmp dword ptr [rax+9Ch], 0D693A018h\r\n //jbe short loc_1407A8D41\r\n long igtFixCodeLoc = 0; //Start of TutorialMsgDialog constructor. This is dead code after applying the no-tut mod so the timer mod can be injected here\r\n \r\n // finding igtFixCodeLoc address\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "445fd3712e478f47", + "equalIndicator/v1": "a044e0542a480b8dc5ff4953a89a85a710ac15e12983e5b439dc467535f57919" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantAssignment", + "kind": "fail", + "level": "warning", + "message": { + "text": "Value assigned is not used in any execution path", + "markdown": "Value assigned is not used in any execution path" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 55, + "startColumn": 29, + "charOffset": 2367, + "charLength": 3, + "snippet": { + "text": "= 0" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 53, + "startColumn": 1, + "charOffset": 2280, + "charLength": 163, + "snippet": { + "text": " foreach (var node in treeBuilder.Tree)\r\n {\r\n long scanResult = 0;\r\n bool success = false;\r\n switch (node.NodeType)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "01b6aad1255184ea", + "equalIndicator/v1": "af708b3a9cf24b373c3747c4b86c1021a88fbd1fbaf025b8d75d2e2f6ac27ec0" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantAssignment", + "kind": "fail", + "level": "warning", + "message": { + "text": "Value assigned is not used in any execution path", + "markdown": "Value assigned is not used in any execution path" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Native/Kernel32.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 252, + "startColumn": 26, + "charOffset": 9510, + "charLength": 3, + "snippet": { + "text": "= 0" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 250, + "startColumn": 1, + "charOffset": 9368, + "charLength": 195, + "snippet": { + "text": " IntPtr[] processMods = new IntPtr[arraySize];\r\n uint arrayBytesSize = arraySize * (uint)IntPtr.Size;\r\n uint bytesCopied = 0;\r\n\r\n // Loop until all modules are listed\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "eab91d6d1545b540", + "equalIndicator/v1": "ced8f5a447a9c5fd7bc6bcfc22a0d0b1ff9db06e99c97dbdfbca0342c72c4693" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantAssignment", + "kind": "fail", + "level": "warning", + "message": { + "text": "Value assigned is not used in any execution path", + "markdown": "Value assigned is not used in any execution path" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 56, + "startColumn": 26, + "charOffset": 2398, + "charLength": 7, + "snippet": { + "text": "= false" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 54, + "startColumn": 1, + "charOffset": 2328, + "charLength": 130, + "snippet": { + "text": " {\r\n long scanResult = 0;\r\n bool success = false;\r\n switch (node.NodeType)\r\n {\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "695857bb41427fdd", + "equalIndicator/v1": "df752a8fd9e7772e53f520562e83879c0dcb9bdb8765f939a9be218c9c329a8a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantAssignment", + "kind": "fail", + "level": "warning", + "message": { + "text": "Value assigned is not used in any execution path", + "markdown": "Value assigned is not used in any execution path" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/EldenRing.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 461, + "startColumn": 36, + "charOffset": 15570, + "charLength": 3, + "snippet": { + "text": "= 0" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 459, + "startColumn": 1, + "charOffset": 15446, + "charLength": 176, + "snippet": { + "text": " //They are written out like this explicitly, to match the game's assembly\r\n\r\n long calculatedPointer = 0;\r\n\r\n //jump to calculate ptr if zero\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4148585c4750423c", + "equalIndicator/v1": "e1d55bb11efb1cb9ab7dbd3907d8a16f2a39649845c032141ffeb8ada230c5cb" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantCast", + "kind": "fail", + "level": "warning", + "message": { + "text": "Type cast is redundant", + "markdown": "Type cast is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls2/scholar.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 111, + "startColumn": 20, + "charOffset": 3891, + "charLength": 5, + "snippet": { + "text": "(int)" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 109, + "startColumn": 1, + "charOffset": 3802, + "charLength": 144, + "snippet": { + "text": " {\r\n var bytes = _attributes.ReadBytes(2, offset);\r\n return (int)BitConverter.ToInt16(bytes, 0);\r\n }\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7863ffed70666119", + "equalIndicator/v1": "73363a5b723138c9d4f63fdd3f6baf19aab69a24423217879f1c7556307e58f8" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantDeclarationSemicolon", + "kind": "fail", + "level": "note", + "message": { + "text": "Semicolon after enum declaration is redundant", + "markdown": "Semicolon after enum declaration is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 126, + "startColumn": 6, + "charOffset": 4841, + "charLength": 1, + "snippet": { + "text": ";" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 124, + "startColumn": 1, + "charOffset": 4805, + "charLength": 99, + "snippet": { + "text": " V105,\r\n Later,\r\n };\r\n\r\n public static DarkSouls3Version GetVersion(Version v)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d93f6b416e6c298e", + "equalIndicator/v1": "99740e6cfe93b226b66e6348b9e47284c1536b876e4521e309ad259e37ac46d4" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantDeclarationSemicolon", + "kind": "fail", + "level": "note", + "message": { + "text": "Semicolon after enum declaration is redundant", + "markdown": "Semicolon after enum declaration is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/EldenRing.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 274, + "startColumn": 6, + "charOffset": 9898, + "charLength": 1, + "snippet": { + "text": ";" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 272, + "startColumn": 1, + "charOffset": 9873, + "charLength": 80, + "snippet": { + "text": "\r\n Unknown,\r\n };\r\n\r\n public EldenRingVersion GetVersion(Version v)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d5fedb622432557a", + "equalIndicator/v1": "f37f93d4aca6540f875973fc3523120b6ed1e738f1fb86b521d141efb980cf7a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantEmptyObjectCreationArgumentList", + "kind": "fail", + "level": "note", + "message": { + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 81, + "startColumn": 86, + "charOffset": 3249, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 79, + "startColumn": 1, + "charOffset": 3028, + "charLength": 322, + "snippet": { + "text": " if (hierarchicalSplitType.Children.All(i => ((Vector3f)i.Split).ToString() != position.ToString()))\r\n {\r\n hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = position, Parent = hierarchicalSplitType });\r\n }\r\n break;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c5c68a2b80bb6c87", + "equalIndicator/v1": "0281dcca63f683e5b27dd135a12ca964698f0d9201886038e7a8a54535352c10" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantEmptyObjectCreationArgumentList", + "kind": "fail", + "level": "note", + "message": { + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 105, + "startColumn": 86, + "charOffset": 4501, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 103, + "startColumn": 1, + "charOffset": 4312, + "charLength": 286, + "snippet": { + "text": " if (hierarchicalSplitType.Children.All(i => (uint)i.Split != flag))\r\n {\r\n hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = flag, Parent = hierarchicalSplitType });\r\n }\r\n break;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f978ca1874d710e1", + "equalIndicator/v1": "0e82300f1e867cc5b39554f85c7b174c692f6b460cf096a6b6be0a898b75f72c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantEmptyObjectCreationArgumentList", + "kind": "fail", + "level": "note", + "message": { + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/BaseViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 59, + "startColumn": 64, + "charOffset": 2252, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 57, + "startColumn": 1, + "charOffset": 2144, + "charLength": 206, + "snippet": { + "text": "\r\n case SplitType.Attribute:\r\n NewSplitValue = new Splits.Sekiro.Attribute() { AttributeType = Attribute.Vitality, Level = 10 };\r\n break;\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "57346f377d374349", + "equalIndicator/v1": "0f25f355f22cc3da7695fd5780031850472239f04ae4bd22a95385dcc4fe3759" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantEmptyObjectCreationArgumentList", + "kind": "fail", + "level": "note", + "message": { + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 137, + "startColumn": 46, + "charOffset": 4886, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 135, + "startColumn": 1, + "charOffset": 4797, + "charLength": 162, + "snippet": { + "text": "\r\n case SplitType.Position:\r\n Position = new VectorSize() { Position = CurrentPosition.Clone() };\r\n break;\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b7650013357aadde", + "equalIndicator/v1": "12f27e6eab343978ee5d605e6053af2c51903317fdc4be19938b1aabd47c0c7f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantEmptyObjectCreationArgumentList", + "kind": "fail", + "level": "note", + "message": { + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/ParamData.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 24, + "startColumn": 113, + "charOffset": 1065, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 22, + "startColumn": 1, + "charOffset": 919, + "charLength": 190, + "snippet": { + "text": "public static class ParamData\r\n{\r\n public static readonly ReadOnlyDictionary ParamByteSize = new(new Dictionary()\r\n {\r\n { ParamType.Dummy8, 1 },\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "65338239467f0b2a", + "equalIndicator/v1": "15b29faca67a1913e1fa6dcde0d0fa0b865947dcb60fbdf1367cb9ce35c4c32e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantEmptyObjectCreationArgumentList", + "kind": "fail", + "level": "note", + "message": { + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/EldenRing.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 299, + "startColumn": 28, + "charOffset": 10610, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 297, + "startColumn": 1, + "charOffset": 10521, + "charLength": 151, + "snippet": { + "text": " {\r\n var map = _playerIns.ReadInt32(_mapIdOffset);\r\n return new Position()\r\n {\r\n Area = (byte)(map >> 24 & 0xff),\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "29749150bcddf016", + "equalIndicator/v1": "1a48d7989f0b9730e8fdf5ff1cc4d6adb1ed29689048be2c188144f16bd01295" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantEmptyObjectCreationArgumentList", + "kind": "fail", + "level": "note", + "message": { + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls3/DarkSouls3ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 93, + "startColumn": 42, + "charOffset": 3253, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 91, + "startColumn": 1, + "charOffset": 3145, + "charLength": 168, + "snippet": { + "text": " if(NewSplitType == SplitType.Position)\r\n {\r\n Position = new VectorSize() { Position = CurrentPosition.Clone() };\r\n }\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f7b41b11abccd539", + "equalIndicator/v1": "201083134205d8269c5615de0dd6183a14cfdc7a8626e808f9edb3e124e5055e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantEmptyObjectCreationArgumentList", + "kind": "fail", + "level": "note", + "message": { + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/HierarchicalViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 34, + "startColumn": 60, + "charOffset": 1462, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 32, + "startColumn": 1, + "charOffset": 1349, + "charLength": 203, + "snippet": { + "text": " if (splitTimingViewModel == null)\r\n {\r\n splitTimingViewModel = new SplitTimingViewModel() { TimingType = timingType };\r\n Splits.Add(splitTimingViewModel);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "cb86e034e6ebb40f", + "equalIndicator/v1": "254cb1fbd7f39ff7acc794c1cf6de4172a230b9b9678c8e183d8fb40badaca2d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantEmptyObjectCreationArgumentList", + "kind": "fail", + "level": "note", + "message": { + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 352, + "startColumn": 86, + "charOffset": 11009, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 350, + "startColumn": 1, + "charOffset": 10811, + "charLength": 304, + "snippet": { + "text": " if (hierarchicalSplitType.Children.All(i => (Item)i.Split != NewSplitItem))\r\n { \r\n hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = NewSplitItem!, Parent = hierarchicalSplitType });\r\n }\r\n break;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a93b8d1aca0c9c97", + "equalIndicator/v1": "26538c305abf9de85e55263a41a054ce1001d0c3195403123d5929542199ed50" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantEmptyObjectCreationArgumentList", + "kind": "fail", + "level": "note", + "message": { + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/HierarchicalViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 47, + "startColumn": 63, + "charOffset": 2080, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 45, + "startColumn": 1, + "charOffset": 1916, + "charLength": 234, + "snippet": { + "text": " if (splitTypeViewModel.Children.All(i => i.Split.ToString() != split.ToString()))\r\n {\r\n splitTypeViewModel.Children.Add(new SplitViewModel() { Split = split, Parent = splitTypeViewModel });\r\n }\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0a1e342d0d1aba14", + "equalIndicator/v1": "2c0ae6f7cbedaa73b8e88ce0d69316032d0dd2226b4ac6aac8a25393ec96b9fb" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantEmptyObjectCreationArgumentList", + "kind": "fail", + "level": "note", + "message": { + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/ParamData.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 48, + "startColumn": 118, + "charOffset": 1953, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 46, + "startColumn": 1, + "charOffset": 1825, + "charLength": 179, + "snippet": { + "text": " });\r\n\r\n public static readonly ReadOnlyDictionary ParamStrings = new(new Dictionary()\r\n {\r\n { \"dummy8\", ParamType.Dummy8 },\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "2bcbaabc69f9ed15", + "equalIndicator/v1": "3471e9eedbafac693ee1d0a509c717e9634a1a70eb71d80856c3b16e713ab2d8" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantEmptyObjectCreationArgumentList", + "kind": "fail", + "level": "note", + "message": { + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls2/Data.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 32, + "startColumn": 88, + "charOffset": 1305, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 30, + "startColumn": 1, + "charOffset": 1209, + "charLength": 198, + "snippet": { + "text": " }\r\n\r\n public static readonly ReadOnlyCollection Bonfires = new(new List()\r\n {\r\n new(WarpType.FireKeepersDwelling , 167903232, 2650 , \"Fire Keepers' Dwelling\"),\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "39ea401f198b3785", + "equalIndicator/v1": "3cb1c062311be4629b18ddeb10c05e24c7d83624a3f034862b8c837c63ee15e7" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantEmptyObjectCreationArgumentList", + "kind": "fail", + "level": "note", + "message": { + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Sekiro/Sekiro.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 579, + "startColumn": 40, + "charOffset": 21581, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 577, + "startColumn": 1, + "charOffset": 21467, + "charLength": 195, + "snippet": { + "text": " //fix body\r\n var frac = _process.Allocate(sizeof(double));\r\n var igtFixCode = new List(){\r\n 0x53, //push rbx\r\n 0x48, 0xBB //mov rbx, fracAddress\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "dfb5db395f0b947b", + "equalIndicator/v1": "4c6ef6e70cba3cbd65ac26243e072b82968312273ee552f8cf62693888a28a76" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantEmptyObjectCreationArgumentList", + "kind": "fail", + "level": "note", + "message": { + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 133, + "startColumn": 68, + "charOffset": 4691, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 131, + "startColumn": 1, + "charOffset": 4566, + "charLength": 232, + "snippet": { + "text": " {\r\n case SplitType.Attribute:\r\n NewSplitValue = new Splits.DarkSouls1.Attribute() { AttributeType = SoulMemory.DarkSouls1.Attribute.Vitality, Level = 10 };\r\n break;\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "aa52735e84e7efc9", + "equalIndicator/v1": "4d59570de45d165910cbdde65220a3b2cbe6c15adbed6c1877b8689828fbe45d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantEmptyObjectCreationArgumentList", + "kind": "fail", + "level": "note", + "message": { + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 324, + "startColumn": 86, + "charOffset": 9543, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 322, + "startColumn": 1, + "charOffset": 9344, + "charLength": 312, + "snippet": { + "text": " if (hierarchicalSplitType.Children.All(i => (Grace)i.Split != NewSplitGrace))\r\n {\r\n hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = NewSplitGrace!.Value, Parent = hierarchicalSplitType });\r\n }\r\n break;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f54251ac50783b90", + "equalIndicator/v1": "52c8ed1a749868528ff53bbb1a5745fb67f79364629bed57756351ef2029f572" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantEmptyObjectCreationArgumentList", + "kind": "fail", + "level": "note", + "message": { + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Item.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 107, + "startColumn": 82, + "charOffset": 3643, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 105, + "startColumn": 1, + "charOffset": 3549, + "charLength": 298, + "snippet": { + "text": " }\r\n \r\n public static readonly ReadOnlyCollection AllItems = new(new List()\r\n {\r\n new(\"Catarina Helm\" , 10000, ItemType.CatarinaHelm , ItemCategory.Armor , 1, ItemUpgrade.Unique ),\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "cf3043f279165005", + "equalIndicator/v1": "583143f5dd8145aa6b0038160d75d475889e57cc07f671f5204f9313477bd23e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantEmptyObjectCreationArgumentList", + "kind": "fail", + "level": "note", + "message": { + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 97, + "startColumn": 86, + "charOffset": 4114, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 95, + "startColumn": 1, + "charOffset": 3891, + "charLength": 325, + "snippet": { + "text": " if (hierarchicalSplitType.Children.All(i => ((Attribute)i.Split).ToString() != attribute.ToString()))\r\n {\r\n hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = attribute, Parent = hierarchicalSplitType });\r\n }\r\n break;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "fafae641a9410f90", + "equalIndicator/v1": "5837fb1f3667efbe784d324669435f55c247f807f2a67ed329a6a01c500a5cbd" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantEmptyObjectCreationArgumentList", + "kind": "fail", + "level": "note", + "message": { + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/MainViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 408, + "startColumn": 45, + "charOffset": 12734, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 406, + "startColumn": 1, + "charOffset": 12652, + "charLength": 136, + "snippet": { + "text": " public string Serialize()\r\n {\r\n var settings = new XmlWriterSettings()\r\n {\r\n OmitXmlDeclaration = true,\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "234d6cb5fc0be7d0", + "equalIndicator/v1": "5aac50f6941b9088a52f35e7ee98af84f34297d67d6055f90db78705bf29b006" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantEmptyObjectCreationArgumentList", + "kind": "fail", + "level": "note", + "message": { + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 61, + "startColumn": 73, + "charOffset": 2254, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 59, + "startColumn": 1, + "charOffset": 2126, + "charLength": 234, + "snippet": { + "text": " if (hierarchicalTimingType == null)\r\n {\r\n hierarchicalTimingType = new HierarchicalTimingTypeViewModel() { TimingType = NewSplitTimingType.Value };\r\n Splits.Add(hierarchicalTimingType);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5967ee4e18e47fb6", + "equalIndicator/v1": "5f7388d66be2bf242ea927ba4200086c490b81907e9765d60a819b820703b6cd" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantEmptyObjectCreationArgumentList", + "kind": "fail", + "level": "note", + "message": { + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/soulmemory-rs/SoulMemoryRs.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 30, + "startColumn": 37, + "charOffset": 1117, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 28, + "startColumn": 1, + "charOffset": 1041, + "charLength": 116, + "snippet": { + "text": " public static void Launch()\r\n {\r\n var games = new List()\r\n {\r\n \"darksouls\",\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "179693b31bf5473b", + "equalIndicator/v1": "5f8a99569b46c365fc07630b1479a93c0394af295b94bed230c1403c84c3ffd6" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantEmptyObjectCreationArgumentList", + "kind": "fail", + "level": "note", + "message": { + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 298, + "startColumn": 73, + "charOffset": 8258, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 296, + "startColumn": 1, + "charOffset": 8130, + "charLength": 234, + "snippet": { + "text": " if (hierarchicalTimingType == null)\r\n {\r\n hierarchicalTimingType = new HierarchicalTimingTypeViewModel() { TimingType = NewSplitTimingType.Value };\r\n Splits.Add(hierarchicalTimingType);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "314b8eb060427595", + "equalIndicator/v1": "617d331be59b78d319d49995981e2edc76f57baa45deffe8b2ac7dc38f2f0502" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantEmptyObjectCreationArgumentList", + "kind": "fail", + "level": "note", + "message": { + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 111, + "startColumn": 73, + "charOffset": 3805, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 109, + "startColumn": 1, + "charOffset": 3668, + "charLength": 316, + "snippet": { + "text": " if (Game == Game.DarkSouls1)\r\n {\r\n flatSplit.Split = new Splits.DarkSouls1.BonfireState(){ Bonfire = (SoulMemory.DarkSouls1.Bonfire)SelectedBonfire!, State = (SoulMemory.DarkSouls1.BonfireState)SelectedBonfireState! };\r\n break;\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e83506acb444209d", + "equalIndicator/v1": "67d4a14f21f4238a38546ca5a4a65f59c73cf3a158a366d117b7c33d9a6adc1e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantEmptyObjectCreationArgumentList", + "kind": "fail", + "level": "note", + "message": { + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Migrations/Migrator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 207, + "startColumn": 73, + "charOffset": 10394, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 205, + "startColumn": 1, + "charOffset": 10158, + "charLength": 393, + "snippet": { + "text": " newSekiroViewModel.NewSplitTimingType = timingType;\r\n newSekiroViewModel.NewSplitType = SplitType.Position;\r\n newSekiroViewModel.Position = new VectorSize() { Position = new Vector3f(x, y, z), Size = 5 };\r\n newSekiroViewModel.AddSplitCommand.Execute(null);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "fcacdc2e546f1938", + "equalIndicator/v1": "6f8cb804e360269ececcd3569c1df5696e3567c891a9375b99a1c5045c032ca5" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantEmptyObjectCreationArgumentList", + "kind": "fail", + "level": "note", + "message": { + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Extensions.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 48, + "startColumn": 45, + "charOffset": 1596, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 46, + "startColumn": 1, + "charOffset": 1539, + "charLength": 111, + "snippet": { + "text": " }\r\n\r\n var settings = new XmlWriterSettings()\r\n {\r\n OmitXmlDeclaration = true,\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c2bae57613a319a0", + "equalIndicator/v1": "7392d4e54f837564eb1fa1551a5054b05b1250c88b90d1dce870f2b2d14e849e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantEmptyObjectCreationArgumentList", + "kind": "fail", + "level": "note", + "message": { + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 68, + "startColumn": 71, + "charOffset": 2607, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 66, + "startColumn": 1, + "charOffset": 2482, + "charLength": 281, + "snippet": { + "text": " if (hierarchicalSplitType == null)\r\n {\r\n hierarchicalSplitType = new HierarchicalSplitTypeViewModel() { SplitType = NewSplitType.Value, Parent = hierarchicalTimingType };\r\n hierarchicalTimingType.Children.Add(hierarchicalSplitType);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ee16934fc3cf7a82", + "equalIndicator/v1": "7c939c44f35a8e747263d2b95d06969b153b017b727d239320de9a36fadd0204" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantEmptyObjectCreationArgumentList", + "kind": "fail", + "level": "note", + "message": { + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls3/DarkSouls3ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 88, + "startColumn": 46, + "charOffset": 3053, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 86, + "startColumn": 1, + "charOffset": 2940, + "charLength": 204, + "snippet": { + "text": " if(NewSplitType == SplitType.Attribute)\r\n {\r\n NewSplitValue = new Attribute() { AttributeType = SoulMemory.DarkSouls3.Attribute.Vigor, Level = 10 };\r\n }\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c2b68a159a0390ab", + "equalIndicator/v1": "83b3ef1a2aee308d9690eacd25340e0ddc13d6b32367f1fd13a47a81d0895df4" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantEmptyObjectCreationArgumentList", + "kind": "fail", + "level": "note", + "message": { + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 338, + "startColumn": 86, + "charOffset": 10293, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 336, + "startColumn": 1, + "charOffset": 10086, + "charLength": 324, + "snippet": { + "text": " if (hierarchicalSplitType.Children.All(i => (KnownFlag)i.Split != NewSplitKnownFlag))\r\n {\r\n hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = NewSplitKnownFlag!.Value, Parent = hierarchicalSplitType });\r\n }\r\n break;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c6fc28fcd18bf605", + "equalIndicator/v1": "90a89e0c0d33b784fe0cdb6721c3184c365684c7217c2865bf9874cc28364470" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantEmptyObjectCreationArgumentList", + "kind": "fail", + "level": "note", + "message": { + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/ParamData.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 36, + "startColumn": 128, + "charOffset": 1486, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 34, + "startColumn": 1, + "charOffset": 1348, + "charLength": 189, + "snippet": { + "text": " });\r\n\r\n public static readonly ReadOnlyDictionary ParamToSharpTypeString = new(new Dictionary()\r\n {\r\n { ParamType.Dummy8, \"byte\" },\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ba4d92bf0b46413c", + "equalIndicator/v1": "91c479f8d6af3ba4921b7b562836d709816017d2a2439d53e4d988113c28c138" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantEmptyObjectCreationArgumentList", + "kind": "fail", + "level": "note", + "message": { + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 103, + "startColumn": 70, + "charOffset": 3459, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 101, + "startColumn": 1, + "charOffset": 3325, + "charLength": 279, + "snippet": { + "text": " if (Game == Game.DarkSouls1)\r\n {\r\n flatSplit.Split = new Splits.DarkSouls1.Attribute(){ AttributeType = (SoulMemory.DarkSouls1.Attribute)SelectedAttribute!, Level = AttributeLevel};\r\n break;\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "6945ea68a711c62b", + "equalIndicator/v1": "965befedbfbe3d054097347277e09d9324032257fb8e1115db87200ebbad2cd4" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantEmptyObjectCreationArgumentList", + "kind": "fail", + "level": "note", + "message": { + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 305, + "startColumn": 71, + "charOffset": 8620, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 303, + "startColumn": 1, + "charOffset": 8495, + "charLength": 290, + "snippet": { + "text": " if (hierarchicalSplitType == null)\r\n {\r\n hierarchicalSplitType = new HierarchicalSplitTypeViewModel() { EldenRingSplitType = NewSplitType.Value, Parent = hierarchicalTimingType };\r\n hierarchicalTimingType.Children.Add(hierarchicalSplitType);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "3e11d317e886120a", + "equalIndicator/v1": "9b2d3bbdb04be881f3b050d2f04b4e9676e2265bb7a153c5d2bb31aceb7842c0" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantEmptyObjectCreationArgumentList", + "kind": "fail", + "level": "note", + "message": { + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 145, + "startColumn": 78, + "charOffset": 5208, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 143, + "startColumn": 1, + "charOffset": 5088, + "charLength": 188, + "snippet": { + "text": "\r\n case SplitType.Bonfire:\r\n NewSplitBonfireState = new Splits.DarkSouls1.BonfireState() { State = BonfireState.Unlocked };\r\n break;\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e79eb2d8520fd8b4", + "equalIndicator/v1": "9e6fb13fca56957a75fc17ad0b40720f1748fc2294f3c02c9a9113c7147ac72d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantEmptyObjectCreationArgumentList", + "kind": "fail", + "level": "note", + "message": { + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 359, + "startColumn": 86, + "charOffset": 11392, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 357, + "startColumn": 1, + "charOffset": 11165, + "charLength": 346, + "snippet": { + "text": " if (hierarchicalSplitType.Children.All(i => i.Split.ToString() != NewSplitPosition!.Position.ToString()))\r\n {\r\n hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = NewSplitPosition!.Position, Parent = hierarchicalSplitType });\r\n }\r\n break;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "8b5d91f01ef04381", + "equalIndicator/v1": "9e90207e48e796a7660df2b0714bb88fc6ef2e7ab3c4d9d2be4fe87e8ede9799" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantEmptyObjectCreationArgumentList", + "kind": "fail", + "level": "note", + "message": { + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 345, + "startColumn": 86, + "charOffset": 10653, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 343, + "startColumn": 1, + "charOffset": 10456, + "charLength": 309, + "snippet": { + "text": " if (hierarchicalSplitType.Children.All(i => (uint)i.Split != NewSplitFlag))\r\n {\r\n hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = NewSplitFlag!.Value, Parent = hierarchicalSplitType });\r\n }\r\n break;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b915d62da74ae525", + "equalIndicator/v1": "a86d0edc3647ed273d81283e3694b36fe8082487127bebccf59a3878fc6bb654" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantEmptyObjectCreationArgumentList", + "kind": "fail", + "level": "note", + "message": { + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 89, + "startColumn": 86, + "charOffset": 3679, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 87, + "startColumn": 1, + "charOffset": 3458, + "charLength": 322, + "snippet": { + "text": " if (hierarchicalSplitType.Children.All(i => ((BossKill)i.Split).ToString() != bossKill.ToString()))\r\n {\r\n hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = bossKill, Parent = hierarchicalSplitType });\r\n }\r\n break;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "99c368b7bc272b99", + "equalIndicator/v1": "abcb26036cf26d7d9c1154e55c7b932531b58a3915ba588224497b8858dd2ffb" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantEmptyObjectCreationArgumentList", + "kind": "fail", + "level": "note", + "message": { + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Migrations/Migrator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 143, + "startColumn": 93, + "charOffset": 7323, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 141, + "startColumn": 1, + "charOffset": 7055, + "charLength": 421, + "snippet": { + "text": " newDarkSouls3ViewModel.NewSplitTimingType = timingType;\r\n newDarkSouls3ViewModel.NewSplitType = SplitType.Flag;\r\n newDarkSouls3ViewModel.FlagDescription = new FlagDescription() { Description = \"\", Flag = u };\r\n newDarkSouls3ViewModel.AddSplitCommand.Execute(null);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e46f8ee70af00c8e", + "equalIndicator/v1": "b253333b0703ed19a50c308814a380a866934b57f31a9b7c62ef6731e50c78e9" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantEmptyObjectCreationArgumentList", + "kind": "fail", + "level": "note", + "message": { + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Sekiro/Sekiro.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 573, + "startColumn": 46, + "charOffset": 21309, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 571, + "startColumn": 1, + "charOffset": 21232, + "charLength": 232, + "snippet": { + "text": " \r\n //fix detour\r\n var igtFixDetourCode = new List(){0xE9};\r\n int detourTarget = (int) (igtFixCodeLoc-(igtFixEntryPoint+5));\r\n igtFixDetourCode.AddRange(BitConverter.GetBytes(detourTarget));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "fcc34cd3d84b0d84", + "equalIndicator/v1": "b827421874ddfd2522a8dbda3be1cf7b4e0f8020dfaec901e8cabd9bfe9c5ec9" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantEmptyObjectCreationArgumentList", + "kind": "fail", + "level": "note", + "message": { + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/HierarchicalViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 41, + "startColumn": 56, + "charOffset": 1773, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 39, + "startColumn": 1, + "charOffset": 1666, + "charLength": 247, + "snippet": { + "text": " if (splitTypeViewModel == null)\r\n {\r\n splitTypeViewModel = new SplitTypeViewModel() { SplitType = splitType, Parent = splitTimingViewModel };\r\n splitTimingViewModel.Children.Add(splitTypeViewModel);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "46ffb6c9f700ae97", + "equalIndicator/v1": "c2647e0921a56c039f09d7108d2d5a66c077b91b0a68afa05b303b4713438a66" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantEmptyObjectCreationArgumentList", + "kind": "fail", + "level": "note", + "message": { + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/BaseViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 51, + "startColumn": 46, + "charOffset": 1942, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 49, + "startColumn": 1, + "charOffset": 1840, + "charLength": 175, + "snippet": { + "text": " {\r\n case SplitType.Position:\r\n Position = new VectorSize() { Position = CurrentPosition.Clone() };\r\n break;\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "949c4ab0326b7507", + "equalIndicator/v1": "c557676e7832e1d68d615874fff89feb519c5975936f44a70de8fce159b0f605" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantEmptyObjectCreationArgumentList", + "kind": "fail", + "level": "note", + "message": { + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Migrations/Migrator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 249, + "startColumn": 89, + "charOffset": 12752, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 247, + "startColumn": 1, + "charOffset": 12496, + "charLength": 405, + "snippet": { + "text": " newSekiroViewModel.NewSplitTimingType = timingType;\r\n newSekiroViewModel.NewSplitType = SplitType.Flag;\r\n newSekiroViewModel.FlagDescription = new FlagDescription() { Description = \"\", Flag = u };\r\n newSekiroViewModel.AddSplitCommand.Execute(null);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b11da85ef939248b", + "equalIndicator/v1": "c5c012eb457e7d6888a7093594f10959cbd61cde11b68f4a342feba512feb38b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantEmptyObjectCreationArgumentList", + "kind": "fail", + "level": "note", + "message": { + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/Item.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 50, + "startColumn": 86, + "charOffset": 1741, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 48, + "startColumn": 1, + "charOffset": 1639, + "charLength": 216, + "snippet": { + "text": " } \r\n\r\n private readonly static ReadOnlyCollection LookupTable = new(new List()\r\n {\r\n new() { Category = Category.Protector,GroupName = \"Armor\", Name = \"Iron Helmet\", Id = 40000 },\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "2437c73885a72ad3", + "equalIndicator/v1": "c8aedeb8f84817638fcf5b3ae18e0e280c28f4f32a4d4ed2e76f3f9e011d5633" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantEmptyObjectCreationArgumentList", + "kind": "fail", + "level": "note", + "message": { + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 317, + "startColumn": 86, + "charOffset": 9185, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 315, + "startColumn": 1, + "charOffset": 8988, + "charLength": 309, + "snippet": { + "text": " if (hierarchicalSplitType.Children.All(i => (Boss)i.Split != NewSplitBoss))\r\n {\r\n hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = NewSplitBoss!.Value, Parent = hierarchicalSplitType });\r\n }\r\n break;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "43dc7469a0728e67", + "equalIndicator/v1": "cbb65fd82766e357760efff3fc07399d94796440e8bd33d259dd4ea64655c4ca" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantEmptyObjectCreationArgumentList", + "kind": "fail", + "level": "note", + "message": { + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 331, + "startColumn": 86, + "charOffset": 9917, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 329, + "startColumn": 1, + "charOffset": 9708, + "charLength": 327, + "snippet": { + "text": " if (hierarchicalSplitType.Children.All(i => (ItemPickup)i.Split != NewSplitItemPickup))\r\n {\r\n hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = NewSplitItemPickup!.Value, Parent = hierarchicalSplitType });\r\n }\r\n break;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "8fbfba60e5d1629d", + "equalIndicator/v1": "d95a8281427f6f14f6685c3ae5dff6082ac0cfbd93c48a221d8a72ce9711e48f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantExtendsListEntry", + "kind": "fail", + "level": "warning", + "message": { + "text": "Base type 'UserControl' is already specified in other parts", + "markdown": "Base type 'UserControl' is already specified in other parts" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls3/DarkSouls3Control.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 24, + "startColumn": 42, + "charOffset": 1004, + "charLength": 11, + "snippet": { + "text": "UserControl" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 22, + "startColumn": 1, + "charOffset": 897, + "charLength": 154, + "snippet": { + "text": "/// Interaction logic for DarkSouls3Control.xaml\r\n/// \r\npublic partial class DarkSouls3Control : UserControl\r\n{\r\n public DarkSouls3Control()\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ff84c926863861a1", + "equalIndicator/v1": "04b53dddd89083e1d28f0c56a2453f1bd3dea4a4a39ae804a29be9aa4af0d4c2" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantExtendsListEntry", + "kind": "fail", + "level": "warning", + "message": { + "text": "Base type 'UserControl' is already specified in other parts", + "markdown": "Base type 'UserControl' is already specified in other parts" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2Control.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 27, + "startColumn": 42, + "charOffset": 1095, + "charLength": 11, + "snippet": { + "text": "UserControl" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 25, + "startColumn": 1, + "charOffset": 988, + "charLength": 154, + "snippet": { + "text": "/// Interaction logic for DarkSouls3Control.xaml\r\n/// \r\npublic partial class DarkSouls2Control : UserControl\r\n{\r\n public DarkSouls2Control()\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "aabeee575c4f739c", + "equalIndicator/v1": "05bc2f909ae9f1c5daeea1f03ba71af92118698068046fb54aca32664b6f8e91" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantExtendsListEntry", + "kind": "fail", + "level": "warning", + "message": { + "text": "Base type 'UserControl' is already specified in other parts", + "markdown": "Base type 'UserControl' is already specified in other parts" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1Control.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 24, + "startColumn": 42, + "charOffset": 1004, + "charLength": 11, + "snippet": { + "text": "UserControl" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 22, + "startColumn": 1, + "charOffset": 897, + "charLength": 154, + "snippet": { + "text": "/// Interaction logic for DarkSouls1Control.xaml\r\n/// \r\npublic partial class DarkSouls1Control : UserControl\r\n{\r\n public DarkSouls1Control()\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "35066608db8af220", + "equalIndicator/v1": "259395ada3ce9196ba533d6a1930b3d5edcfea114dcdd579aa99acf18bb74f9e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantExtendsListEntry", + "kind": "fail", + "level": "warning", + "message": { + "text": "Base type 'UserControl' is already specified in other parts", + "markdown": "Base type 'UserControl' is already specified in other parts" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/AddRemoveSplits.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 24, + "startColumn": 40, + "charOffset": 997, + "charLength": 11, + "snippet": { + "text": "UserControl" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 22, + "startColumn": 1, + "charOffset": 894, + "charLength": 148, + "snippet": { + "text": "/// Interaction logic for AddRemoveSplits.xaml\r\n/// \r\npublic partial class AddRemoveSplits : UserControl\r\n{\r\n public AddRemoveSplits()\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "8ce80071de748911", + "equalIndicator/v1": "268a02276276d9caa8737621eeb620fa89afe3ac4ef089126f9fd5ee5b4251f6" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantExtendsListEntry", + "kind": "fail", + "level": "warning", + "message": { + "text": "Base type 'UserControl' is already specified in other parts", + "markdown": "Base type 'UserControl' is already specified in other parts" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/FlagControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 24, + "startColumn": 36, + "charOffset": 989, + "charLength": 11, + "snippet": { + "text": "UserControl" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 22, + "startColumn": 1, + "charOffset": 894, + "charLength": 136, + "snippet": { + "text": "/// Interaction logic for FlagControl.xaml\r\n/// \r\npublic partial class FlagControl : UserControl\r\n{\r\n public FlagControl()\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d0954293e8cacc1a", + "equalIndicator/v1": "27c14a653b914eb2fe4e4b364dadee97562ae45557e812990f4e69f8cc212e3a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantExtendsListEntry", + "kind": "fail", + "level": "warning", + "message": { + "text": "Base type 'UserControl' is already specified in other parts", + "markdown": "Base type 'UserControl' is already specified in other parts" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 26, + "startColumn": 41, + "charOffset": 1049, + "charLength": 11, + "snippet": { + "text": "UserControl" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 24, + "startColumn": 1, + "charOffset": 948, + "charLength": 147, + "snippet": { + "text": "/// Interaction logic for UserControl1.xaml\r\n/// \r\npublic partial class EldenRingControl : UserControl\r\n{\r\n public EldenRingControl()\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f9026e5d7eca9549", + "equalIndicator/v1": "4ef18e620ec697311cf4b38c332dfad4435bf7a74ab65db2cb64dee71e7fcbb6" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantExtendsListEntry", + "kind": "fail", + "level": "warning", + "message": { + "text": "Base type 'UserControl' is already specified in other parts", + "markdown": "Base type 'UserControl' is already specified in other parts" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 32, + "startColumn": 45, + "charOffset": 1214, + "charLength": 11, + "snippet": { + "text": "UserControl" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 30, + "startColumn": 1, + "charOffset": 1101, + "charLength": 193, + "snippet": { + "text": "/// Interaction logic for SplitSettingsControl.xaml\r\n/// \r\npublic partial class SplitSettingsControl : UserControl, ICustomNotifyPropertyChanged\r\n{\r\n public SplitSettingsControl()\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f9a6bfafade0d969", + "equalIndicator/v1": "55887ca8a170def3c84365b3295d7014f584477d91421df35fbf40c6aaee7b8a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantExtendsListEntry", + "kind": "fail", + "level": "warning", + "message": { + "text": "Base type 'Window' is already specified in other parts", + "markdown": "Base type 'Window' is already specified in other parts" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/FlagTrackerWindow.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 22, + "startColumn": 42, + "charOffset": 935, + "charLength": 6, + "snippet": { + "text": "Window" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 20, + "startColumn": 1, + "charOffset": 864, + "charLength": 113, + "snippet": { + "text": "namespace SoulSplitter.UI;\r\n\r\npublic partial class FlagTrackerWindow : Window\r\n{\r\n public FlagTrackerWindow()\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "8a428ace552eea17", + "equalIndicator/v1": "856fb64a5e6b303139dae8cefaf2232625856a97589a3ef776ac512f7600bb11" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantExtendsListEntry", + "kind": "fail", + "level": "warning", + "message": { + "text": "Base type 'UserControl' is already specified in other parts", + "markdown": "Base type 'UserControl' is already specified in other parts" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Sekiro/SekiroControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 24, + "startColumn": 38, + "charOffset": 996, + "charLength": 11, + "snippet": { + "text": "UserControl" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 22, + "startColumn": 1, + "charOffset": 893, + "charLength": 146, + "snippet": { + "text": "/// Interaction logic for DarkSouls3Control.xaml\r\n/// \r\npublic partial class SekiroControl : UserControl\r\n{\r\n public SekiroControl()\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c37f8a7d5a3a9b88", + "equalIndicator/v1": "86d515f64daa3d74712399cd27252a1e1b14a5279e9746e8fa69c796366ff474" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantExtendsListEntry", + "kind": "fail", + "level": "warning", + "message": { + "text": "Base type 'Window' is already specified in other parts", + "markdown": "Base type 'Window' is already specified in other parts" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/MainWindow.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 30, + "startColumn": 35, + "charOffset": 1163, + "charLength": 6, + "snippet": { + "text": "Window" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 28, + "startColumn": 1, + "charOffset": 1069, + "charLength": 129, + "snippet": { + "text": "/// Interaction logic for MainControl.xaml\r\n/// \r\npublic partial class MainWindow : Window\r\n{\r\n public MainWindow()\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "40458778582c5705", + "equalIndicator/v1": "aae5fe864f46876fc29ea74aaac151ce894ca69bb36a35b8a4f38ed9202af4e8" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantExtendsListEntry", + "kind": "fail", + "level": "warning", + "message": { + "text": "Base type 'UserControl' is already specified in other parts", + "markdown": "Base type 'UserControl' is already specified in other parts" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/PositionControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 24, + "startColumn": 40, + "charOffset": 997, + "charLength": 11, + "snippet": { + "text": "UserControl" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 22, + "startColumn": 1, + "charOffset": 894, + "charLength": 148, + "snippet": { + "text": "/// Interaction logic for PositionControl.xaml\r\n/// \r\npublic partial class PositionControl : UserControl\r\n{\r\n public PositionControl()\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e4cb86e0cea8b752", + "equalIndicator/v1": "b6013c31b60475933699bf590def4d04d8844817109233e4e9621b1f4dff8eb5" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantExtendsListEntry", + "kind": "fail", + "level": "warning", + "message": { + "text": "Base type 'Window' is already specified in other parts", + "markdown": "Base type 'Window' is already specified in other parts" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/ErrorWindow.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 24, + "startColumn": 36, + "charOffset": 973, + "charLength": 6, + "snippet": { + "text": "Window" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 22, + "startColumn": 1, + "charOffset": 877, + "charLength": 132, + "snippet": { + "text": "/// Interaction logic for UserControl1.xaml\r\n/// \r\npublic partial class ErrorWindow : Window\r\n{\r\n public ErrorWindow()\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "78da3c0a6567d617", + "equalIndicator/v1": "bb5fe0bd4928f2193e97eefdd7b46c9c07a52c61b686b60cb534b09010878dea" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantExtendsListEntry", + "kind": "fail", + "level": "warning", + "message": { + "text": "Base type 'UserControl' is already specified in other parts", + "markdown": "Base type 'UserControl' is already specified in other parts" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/SplitsTree.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 25, + "startColumn": 35, + "charOffset": 1010, + "charLength": 11, + "snippet": { + "text": "UserControl" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 23, + "startColumn": 1, + "charOffset": 917, + "charLength": 133, + "snippet": { + "text": "/// Interaction logic for SplitsTree.xaml\r\n/// \r\npublic partial class SplitsTree : UserControl\r\n{\r\n public SplitsTree()\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a275a8037ae677fe", + "equalIndicator/v1": "bbe7e7d9836005013a1e45981d93499acebd952a3bf1113886bb83724ec0501e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantIfElseBlock", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant 'else' keyword", + "markdown": "Redundant 'else' keyword" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls2/scholar.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 108, + "startColumn": 9, + "charOffset": 3796, + "charLength": 4, + "snippet": { + "text": "else" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 106, + "startColumn": 1, + "charOffset": 3726, + "charLength": 145, + "snippet": { + "text": " return _attributes.ReadInt32(offset);\r\n }\r\n else\r\n {\r\n var bytes = _attributes.ReadBytes(2, offset);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "98e86b6aaba913b2", + "equalIndicator/v1": "05392acba46c22e00dadce19409e4bff5881e91ad6d1e06c9069f0d9eab7c670" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantIfElseBlock", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant 'else' keyword", + "markdown": "Redundant 'else' keyword" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Validation/TextToNumberValidation.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 42, + "startColumn": 13, + "charOffset": 1331, + "charLength": 4, + "snippet": { + "text": "else" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 40, + "startColumn": 1, + "charOffset": 1230, + "charLength": 179, + "snippet": { + "text": " return new ValidationResult(false, \"Value is required\");\r\n }\r\n else\r\n {\r\n return new ValidationResult(true, null);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "971ac662d8606639", + "equalIndicator/v1": "073c1680dc8a82e9d13e9d6f9b9d9dac3562e2feca568d5d9a4baac5e6ecef1b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantIfElseBlock", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant 'else' keyword", + "markdown": "Redundant 'else' keyword" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Process/ProcessWrapper.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 61, + "startColumn": 13, + "charOffset": 2437, + "charLength": 4, + "snippet": { + "text": "else" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 59, + "startColumn": 1, + "charOffset": 2344, + "charLength": 154, + "snippet": { + "text": " }\r\n //Process is attached, make sure it is still running\r\n else\r\n {\r\n if (_process.HasExited)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "331969be142b9a14", + "equalIndicator/v1": "1cc8812dad9ea9157d938948f62cfe75540848348d13b915bacddc8b97ead504" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantIfElseBlock", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant 'else' keyword", + "markdown": "Redundant 'else' keyword" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 157, + "startColumn": 13, + "charOffset": 6340, + "charLength": 4, + "snippet": { + "text": "else" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 155, + "startColumn": 1, + "charOffset": 6247, + "charLength": 153, + "snippet": { + "text": " }\r\n //Process is attached, make sure it is still running\r\n else\r\n {\r\n if (process.HasExited)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f73d8c1150e39521", + "equalIndicator/v1": "3882847df4a7995bb2484f4ce4ddd48fbcb426fda11b65cb5ddcd1ab755cfcde" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantIfElseBlock", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant 'else' keyword", + "markdown": "Redundant 'else' keyword" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/EldenRing.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 346, + "startColumn": 9, + "charOffset": 11869, + "charLength": 4, + "snippet": { + "text": "else" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 344, + "startColumn": 1, + "charOffset": 11824, + "charLength": 88, + "snippet": { + "text": " return true;\r\n }\r\n else\r\n {\r\n return false;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "6d3003b482e2ebb9", + "equalIndicator/v1": "3c8189ef2061f320f88951e8d189752ab84ae8eff345a4f6cafc6ad44883086a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantIfElseBlock", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant 'else' keyword", + "markdown": "Redundant 'else' keyword" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Result.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 271, + "startColumn": 9, + "charOffset": 6367, + "charLength": 4, + "snippet": { + "text": "else" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 269, + "startColumn": 1, + "charOffset": 6279, + "charLength": 184, + "snippet": { + "text": " return new Result(true, default!, default!);\r\n }\r\n else\r\n {\r\n return new Result(false, default!, resultErr.GetErr());\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "dbfbfe3407b4257c", + "equalIndicator/v1": "3ea86fe21ed61ff2ebb1130bb4304f14eb8310d2ff3c1214d9b9b1e68d26ab81" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantIfElseBlock", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant 'else' keyword", + "markdown": "Redundant 'else' keyword" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Process/ProcessWrapper.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 55, + "startColumn": 17, + "charOffset": 2238, + "charLength": 4, + "snippet": { + "text": "else" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 53, + "startColumn": 1, + "charOffset": 2135, + "charLength": 189, + "snippet": { + "text": " return ProcessRefreshResult.ProcessNotRunning;\r\n }\r\n else\r\n {\r\n return ProcessRefreshResult.Initialized;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "134fda8f13a8aa35", + "equalIndicator/v1": "5f541bbae345020775bb4baf458d7485a68dd6f8d577ceb2c47c9bc3dafb34e9" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantIfElseBlock", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant 'else' keyword", + "markdown": "Redundant 'else' keyword" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 93, + "startColumn": 13, + "charOffset": 3850, + "charLength": 4, + "snippet": { + "text": "else" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 91, + "startColumn": 1, + "charOffset": 3757, + "charLength": 153, + "snippet": { + "text": " }\r\n //Process is attached, make sure it is still running\r\n else\r\n {\r\n if (process.HasExited)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "479023cf3863439b", + "equalIndicator/v1": "6459322c9cfc58b765d6a8f79e6483519751dc01a7a1501e2a28a847321bb13b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantIfElseBlock", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant 'else' keyword", + "markdown": "Redundant 'else' keyword" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls2/DarkSouls2.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 61, + "startColumn": 13, + "charOffset": 2583, + "charLength": 4, + "snippet": { + "text": "else" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 59, + "startColumn": 1, + "charOffset": 2519, + "charLength": 140, + "snippet": { + "text": " return Result.Ok();\r\n }\r\n else\r\n {\r\n var result = _darkSouls2.TryRefresh();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "856a10493ab8c15c", + "equalIndicator/v1": "6486fb0eb5a9be7027d90fc58dfafd14ad355a6746aa7937380d85ccd45b9e3a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantIfElseBlock", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant 'else' keyword", + "markdown": "Redundant 'else' keyword" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/DarkSouls1.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 76, + "startColumn": 13, + "charOffset": 3850, + "charLength": 4, + "snippet": { + "text": "else" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 74, + "startColumn": 1, + "charOffset": 3773, + "charLength": 153, + "snippet": { + "text": " return _darkSouls1.TryRefresh();\r\n }\r\n else\r\n {\r\n var result = _darkSouls1.TryRefresh();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d355a1aa4570c15a", + "equalIndicator/v1": "7f275bc8189bf61db8f2b825af428f4ad51524e5e999e1295fdb03c7c4d21115" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantIfElseBlock", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant 'else' keyword", + "markdown": "Redundant 'else' keyword" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 150, + "startColumn": 17, + "charOffset": 6108, + "charLength": 4, + "snippet": { + "text": "else" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 148, + "startColumn": 1, + "charOffset": 5897, + "charLength": 288, + "snippet": { + "text": " return Result.Err(new RefreshError(RefreshErrorReason.ProcessNotRunning, $\"Process {name} not running or inaccessible. Try running livesplit as admin.\"));\r\n }\r\n else\r\n {\r\n //Propogate init result upwards\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "606b980a9621252f", + "equalIndicator/v1": "8471a9eb021893790ff9063dfeb748b5fc1e5f8549ad1af60d1b4c3a3ffdd7ce" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantIfElseBlock", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant 'else' keyword", + "markdown": "Redundant 'else' keyword" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 86, + "startColumn": 17, + "charOffset": 3618, + "charLength": 4, + "snippet": { + "text": "else" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 84, + "startColumn": 1, + "charOffset": 3407, + "charLength": 288, + "snippet": { + "text": " return Result.Err(new RefreshError(RefreshErrorReason.ProcessNotRunning, $\"Process {name} not running or inaccessible. Try running livesplit as admin.\"));\r\n }\r\n else\r\n {\r\n //Propogate init result upwards\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "bae29e70b7a563ea", + "equalIndicator/v1": "8ec468eb34cfac7c33b4b1c2fb17818c41dabc0973a8d3b5a4086d1dd762fccf" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantIfElseBlock", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant 'else' keyword", + "markdown": "Redundant 'else' keyword" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Result.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 259, + "startColumn": 9, + "charOffset": 6043, + "charLength": 4, + "snippet": { + "text": "else" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 257, + "startColumn": 1, + "charOffset": 5946, + "charLength": 183, + "snippet": { + "text": " return new Result(true, resultOk.Unwrap(), default!);\r\n }\r\n else\r\n {\r\n return new Result(false, default!, default!);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b58155051be4992b", + "equalIndicator/v1": "a629b2123e18de95913ab8a87e8ea4230946e0ebd1aae2d984ffd8dfeb870af4" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantIfElseBlock", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant 'else' keyword", + "markdown": "Redundant 'else' keyword" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/ItemReader.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 103, + "startColumn": 17, + "charOffset": 4466, + "charLength": 4, + "snippet": { + "text": "else" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 101, + "startColumn": 1, + "charOffset": 4400, + "charLength": 140, + "snippet": { + "text": " continue;\r\n }\r\n else if (item < 10000)\r\n {\r\n id = item;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "3cbd50de925632d9", + "equalIndicator/v1": "b2223411ad31f3c486b24cf3afd6774814b4294a597bcbcbba604d83edd9559e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantIfElseBlock", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant 'else' keyword", + "markdown": "Redundant 'else' keyword" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls2/vanilla.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 104, + "startColumn": 9, + "charOffset": 3572, + "charLength": 4, + "snippet": { + "text": "else" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 102, + "startColumn": 1, + "charOffset": 3502, + "charLength": 145, + "snippet": { + "text": " return _attributes.ReadInt32(offset);\r\n }\r\n else\r\n {\r\n var bytes = _attributes.ReadBytes(2, offset);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e1b65666915d99ee", + "equalIndicator/v1": "c3a4534527f60eb09345c2f34bffad505d0a2576c9df29384908f36926b6c9b0" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantJumpStatement", + "kind": "fail", + "level": "warning", + "message": { + "text": "Redundant control flow jump statement", + "markdown": "Redundant control flow jump statement" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/ParamClassGenerator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 230, + "startColumn": 21, + "charOffset": 9912, + "charLength": 9, + "snippet": { + "text": "continue;" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 228, + "startColumn": 1, + "charOffset": 9796, + "charLength": 147, + "snippet": { + "text": " result.Add(currentBitfield);\r\n currentBitfield = null; \r\n continue;\r\n }\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "6157267c514aca1c", + "equalIndicator/v1": "31d6c60c1c8b48cd19307afc0aa78a60013eb988ab1666e9b46a28af4bcd004d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantJumpStatement", + "kind": "fail", + "level": "warning", + "message": { + "text": "Redundant control flow jump statement", + "markdown": "Redundant control flow jump statement" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 112, + "startColumn": 21, + "charOffset": 3958, + "charLength": 6, + "snippet": { + "text": "break;" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 110, + "startColumn": 1, + "charOffset": 3714, + "charLength": 294, + "snippet": { + "text": " {\r\n flatSplit.Split = new Splits.DarkSouls1.BonfireState(){ Bonfire = (SoulMemory.DarkSouls1.Bonfire)SelectedBonfire!, State = (SoulMemory.DarkSouls1.BonfireState)SelectedBonfireState! };\r\n break;\r\n }\r\n break;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f62a0d49c559881e", + "equalIndicator/v1": "89e37bf7f28e67150fc1f7b81f2cb9b3c9e57e97e060a700ed977ed37a1fc8a8" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantJumpStatement", + "kind": "fail", + "level": "warning", + "message": { + "text": "Redundant control flow jump statement", + "markdown": "Redundant control flow jump statement" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 104, + "startColumn": 21, + "charOffset": 3578, + "charLength": 6, + "snippet": { + "text": "break;" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 102, + "startColumn": 1, + "charOffset": 3371, + "charLength": 257, + "snippet": { + "text": " {\r\n flatSplit.Split = new Splits.DarkSouls1.Attribute(){ AttributeType = (SoulMemory.DarkSouls1.Attribute)SelectedAttribute!, Level = AttributeLevel};\r\n break;\r\n }\r\n break;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "bf407260aeec56a2", + "equalIndicator/v1": "a9fba9e87bcede8a52cc80b0b37771f2788fa8372f3dfb8920735d9290bbbf5f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantLambdaSignatureParentheses", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant lambda signature parentheses", + "markdown": "Redundant lambda signature parentheses" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/MainViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 44, + "startColumn": 79, + "charOffset": 1625, + "charLength": 1, + "snippet": { + "text": "(" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 42, + "startColumn": 1, + "charOffset": 1512, + "charLength": 301, + "snippet": { + "text": " public MainViewModel()\r\n {\r\n CommandTroubleShooting = new RelayCommand(OpenTroubleshootingWebpage, (_) => true);\r\n CommandRunEventFlagLogger = new RelayCommand(RunEventFlagLogger, (_) => true);\r\n CommandClearErrors = new RelayCommand(ClearErrors, (_) => Errors.Count > 0);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d169b9cb91c8b423", + "equalIndicator/v1": "13b03115f70a35430fcaabbc9be6df4a6253c95ace273e9b436e07db22f785f9" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantLambdaSignatureParentheses", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant lambda signature parentheses", + "markdown": "Redundant lambda signature parentheses" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/BaseViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 33, + "startColumn": 60, + "charOffset": 1374, + "charLength": 1, + "snippet": { + "text": "(" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 31, + "startColumn": 1, + "charOffset": 1224, + "charLength": 210, + "snippet": { + "text": " {\r\n CopyGamePositionCommand = new RelayCommand(CopyGamePosition, (_) => true);\r\n RemoveSplitCommand = new RelayCommand(RemoveSplit, (_) => SplitsViewModel.SelectedSplit != null);\r\n }\r\n \r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ea29130f89584eb7", + "equalIndicator/v1": "254716c8f27ef28fca7cfaa1249a0cb39b82a5b278dd5f4a06aeab955ed30481" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantLambdaSignatureParentheses", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant lambda signature parentheses", + "markdown": "Redundant lambda signature parentheses" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/MainViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 47, + "startColumn": 61, + "charOffset": 1874, + "charLength": 1, + "snippet": { + "text": "(" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 45, + "startColumn": 1, + "charOffset": 1640, + "charLength": 419, + "snippet": { + "text": " CommandRunEventFlagLogger = new RelayCommand(RunEventFlagLogger, (_) => true);\r\n CommandClearErrors = new RelayCommand(ClearErrors, (_) => Errors.Count > 0);\r\n CommandAddError = new RelayCommand(AddErrorCommand, (_) => true);\r\n CommandShowErrors = new RelayCommand(ShowErrorWindow, (_) => true);\r\n CommandOpenFlagTrackerWindow = new RelayCommand(OpenFlagTrackerWindow, (_) => true);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f907b6c21530300c", + "equalIndicator/v1": "36681119321e8f4578327f77f5b945130e9bc6278b9b83d78f16f4f84b41704e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantLambdaSignatureParentheses", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant lambda signature parentheses", + "markdown": "Redundant lambda signature parentheses" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/MainViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 46, + "startColumn": 60, + "charOffset": 1787, + "charLength": 1, + "snippet": { + "text": "(" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 44, + "startColumn": 1, + "charOffset": 1547, + "charLength": 418, + "snippet": { + "text": " CommandTroubleShooting = new RelayCommand(OpenTroubleshootingWebpage, (_) => true);\r\n CommandRunEventFlagLogger = new RelayCommand(RunEventFlagLogger, (_) => true);\r\n CommandClearErrors = new RelayCommand(ClearErrors, (_) => Errors.Count > 0);\r\n CommandAddError = new RelayCommand(AddErrorCommand, (_) => true);\r\n CommandShowErrors = new RelayCommand(ShowErrorWindow, (_) => true);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "2cd9ee9515974240", + "equalIndicator/v1": "58b1d482e82240942e33051e2cdb05970e592a5e6d0c460d24fb6e6db96b756e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantLambdaSignatureParentheses", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant lambda signature parentheses", + "markdown": "Redundant lambda signature parentheses" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/DropMod.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 87, + "startColumn": 44, + "charOffset": 3021, + "charLength": 1, + "snippet": { + "text": "(" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 85, + "startColumn": 1, + "charOffset": 2916, + "charLength": 222, + "snippet": { + "text": " private void GuaranteeDrop(int rowId, int itemId)\r\n {\r\n darkSouls.WriteItemLotParam(rowId, (itemLot) =>\r\n {\r\n itemLot.LotItemBasePoint01 = (ushort)(itemLot.LotItemId01 == itemId ? 100 : 0);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7bc80d7531a93619", + "equalIndicator/v1": "6a17884ccb1e72a0c34a69b951cbe9514f5cb45c4014ade756dd81b15bc483e8" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantLambdaSignatureParentheses", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant lambda signature parentheses", + "markdown": "Redundant lambda signature parentheses" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/BaseViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 32, + "startColumn": 70, + "charOffset": 1300, + "charLength": 1, + "snippet": { + "text": "(" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 30, + "startColumn": 1, + "charOffset": 1196, + "charLength": 232, + "snippet": { + "text": " public BaseViewModel()\r\n {\r\n CopyGamePositionCommand = new RelayCommand(CopyGamePosition, (_) => true);\r\n RemoveSplitCommand = new RelayCommand(RemoveSplit, (_) => SplitsViewModel.SelectedSplit != null);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "69f9d2e92ca8b945", + "equalIndicator/v1": "6cec0a6301d62f004c3ed1264ef5a94a812adb7853cf087b8bc0a75c74d9e084" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantLambdaSignatureParentheses", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant lambda signature parentheses", + "markdown": "Redundant lambda signature parentheses" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/MainViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 51, + "startColumn": 74, + "charOffset": 2221, + "charLength": 1, + "snippet": { + "text": "(" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 49, + "startColumn": 1, + "charOffset": 1966, + "charLength": 278, + "snippet": { + "text": " CommandOpenFlagTrackerWindow = new RelayCommand(OpenFlagTrackerWindow, (_) => true);\r\n CommandImportSettingsFromFile = new RelayCommand(ImportSettings, (_) => true);\r\n CommandExportSettingsFromFile = new RelayCommand(ExportSettings, (_) => true);\r\n }\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d11c3b42a56dcd1b", + "equalIndicator/v1": "7d5b4f038677f378bcd13c73e2e1c81d8a87b496e4116c795b2453f44597028d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantLambdaSignatureParentheses", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant lambda signature parentheses", + "markdown": "Redundant lambda signature parentheses" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/MainViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 48, + "startColumn": 63, + "charOffset": 1951, + "charLength": 1, + "snippet": { + "text": "(" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 46, + "startColumn": 1, + "charOffset": 1728, + "charLength": 419, + "snippet": { + "text": " CommandClearErrors = new RelayCommand(ClearErrors, (_) => Errors.Count > 0);\r\n CommandAddError = new RelayCommand(AddErrorCommand, (_) => true);\r\n CommandShowErrors = new RelayCommand(ShowErrorWindow, (_) => true);\r\n CommandOpenFlagTrackerWindow = new RelayCommand(OpenFlagTrackerWindow, (_) => true);\r\n CommandImportSettingsFromFile = new RelayCommand(ImportSettings, (_) => true);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "da65b235e5f6fb04", + "equalIndicator/v1": "8a5473076192e5f8c22d82ae90bc144d1bc7c76ad691f21b5d5569849269311f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantLambdaSignatureParentheses", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant lambda signature parentheses", + "markdown": "Redundant lambda signature parentheses" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/MainViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 49, + "startColumn": 80, + "charOffset": 2045, + "charLength": 1, + "snippet": { + "text": "(" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 47, + "startColumn": 1, + "charOffset": 1814, + "charLength": 421, + "snippet": { + "text": " CommandAddError = new RelayCommand(AddErrorCommand, (_) => true);\r\n CommandShowErrors = new RelayCommand(ShowErrorWindow, (_) => true);\r\n CommandOpenFlagTrackerWindow = new RelayCommand(OpenFlagTrackerWindow, (_) => true);\r\n CommandImportSettingsFromFile = new RelayCommand(ImportSettings, (_) => true);\r\n CommandExportSettingsFromFile = new RelayCommand(ExportSettings, (_) => true);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "de1baf73035ae1ee", + "equalIndicator/v1": "b4d394a4006f571141684fcce718c221977cd039a684c276f4ad946e4473e1f0" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantLambdaSignatureParentheses", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant lambda signature parentheses", + "markdown": "Redundant lambda signature parentheses" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 36, + "startColumn": 70, + "charOffset": 1371, + "charLength": 1, + "snippet": { + "text": "(" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 34, + "startColumn": 1, + "charOffset": 1260, + "charLength": 278, + "snippet": { + "text": " public SplitSettingsControl()\r\n {\r\n CopyGamePositionCommand = new RelayCommand(CopyGamePosition, (_) => true);\r\n AddSplitCommand = new RelayCommand(AddSplitFunc, CanAddSplit);\r\n RemoveSplitCommand = new RelayCommand(RemoveSplitFunc, CanRemoveSplit);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "3edcc125128ae9e7", + "equalIndicator/v1": "c8818f7144e5025f0e64de9e61b06b39e39181b146d1b94a1410e33fc55d9ae5" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantLambdaSignatureParentheses", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant lambda signature parentheses", + "markdown": "Redundant lambda signature parentheses" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/MainViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 50, + "startColumn": 74, + "charOffset": 2133, + "charLength": 1, + "snippet": { + "text": "(" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 48, + "startColumn": 1, + "charOffset": 1889, + "charLength": 353, + "snippet": { + "text": " CommandShowErrors = new RelayCommand(ShowErrorWindow, (_) => true);\r\n CommandOpenFlagTrackerWindow = new RelayCommand(OpenFlagTrackerWindow, (_) => true);\r\n CommandImportSettingsFromFile = new RelayCommand(ImportSettings, (_) => true);\r\n CommandExportSettingsFromFile = new RelayCommand(ExportSettings, (_) => true);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "259af3490c378315", + "equalIndicator/v1": "e557bbeffc093366572e0d91fb2ef32fd348b1b203945ba5e393f946884b5ac1" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantLambdaSignatureParentheses", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant lambda signature parentheses", + "markdown": "Redundant lambda signature parentheses" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/MainViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 45, + "startColumn": 74, + "charOffset": 1713, + "charLength": 1, + "snippet": { + "text": "(" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 43, + "startColumn": 1, + "charOffset": 1540, + "charLength": 348, + "snippet": { + "text": " {\r\n CommandTroubleShooting = new RelayCommand(OpenTroubleshootingWebpage, (_) => true);\r\n CommandRunEventFlagLogger = new RelayCommand(RunEventFlagLogger, (_) => true);\r\n CommandClearErrors = new RelayCommand(ClearErrors, (_) => Errors.Count > 0);\r\n CommandAddError = new RelayCommand(AddErrorCommand, (_) => true);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ea15f83c9a691741", + "equalIndicator/v1": "fbac1c6c1b29715c91946f34a36aa270e556e8f869fb9e38f7dd0a9601b897ed" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantLogicalConditionalExpressionOperand", + "kind": "fail", + "level": "warning", + "message": { + "text": "Redundant operand in logical conditional expression", + "markdown": "Redundant operand in logical conditional expression" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/MainViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 394, + "startColumn": 49, + "charOffset": 12372, + "charLength": 5, + "snippet": { + "text": "false" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 392, + "startColumn": 1, + "charOffset": 12202, + "charLength": 271, + "snippet": { + "text": " saveFileDialog.Filter = \"XML-File | *.xml|All files (*.*)|*.*\";\r\n saveFileDialog.FilterIndex = 0;\r\n if (!saveFileDialog.ShowDialog() ?? false || string.IsNullOrWhiteSpace(saveFileDialog.FileName))\r\n {\r\n return;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "277c00ccd1bc2306", + "equalIndicator/v1": "b2cd3a2c370d03c384983841900007693c8a18d55e9fda902c8433e5d266fe12" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantLogicalConditionalExpressionOperand", + "kind": "fail", + "level": "warning", + "message": { + "text": "Redundant operand in logical conditional expression", + "markdown": "Redundant operand in logical conditional expression" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/MainViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 368, + "startColumn": 49, + "charOffset": 11514, + "charLength": 5, + "snippet": { + "text": "false" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 366, + "startColumn": 1, + "charOffset": 11419, + "charLength": 196, + "snippet": { + "text": " openFileDialog.FilterIndex = 0;\r\n\r\n if (!openFileDialog.ShowDialog() ?? false || string.IsNullOrWhiteSpace(openFileDialog.FileName))\r\n {\r\n return;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "43eac6f4923cdecd", + "equalIndicator/v1": "f93aae3484afc342bb54d090bce297908f2f789e2f421039ae29c153419a882b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantNameQualifier", + "kind": "fail", + "level": "warning", + "message": { + "text": "Qualifier is redundant", + "markdown": "Qualifier is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 182, + "startColumn": 41, + "charOffset": 6920, + "charLength": 18, + "snippet": { + "text": "Splits.DarkSouls2." + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 180, + "startColumn": 1, + "charOffset": 6773, + "charLength": 208, + "snippet": { + "text": " case DarkSouls2SplitType.Attribute:\r\n NewSplitAttributeEnabled = true;\r\n NewSplitValue = new Splits.DarkSouls2.Attribute();\r\n break;\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b9695fc4722d61fc", + "equalIndicator/v1": "08700d0ee04c0f853bb5a1814e6d992d846e39821e1b8fb94ab890e7753ee4f7" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantNameQualifier", + "kind": "fail", + "level": "warning", + "message": { + "text": "Qualifier is redundant", + "markdown": "Qualifier is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/SoulComponent.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 294, + "startColumn": 12, + "charOffset": 10296, + "charLength": 21, + "snippet": { + "text": "System.Windows.Forms." + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 292, + "startColumn": 1, + "charOffset": 10235, + "charLength": 177, + "snippet": { + "text": "\r\n private Button? _customShowSettingsButton;\r\n public System.Windows.Forms.Control GetSettingsControl(LayoutMode mode)\r\n {\r\n var stackTrace = new StackTrace();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "504f05ef7357c7f7", + "equalIndicator/v1": "257c16a0e64c184b015026b1f9670b2aab5cd311f450d663d84a13cc77b415cc" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantNameQualifier", + "kind": "fail", + "level": "warning", + "message": { + "text": "Qualifier is redundant", + "markdown": "Qualifier is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Native/NativeMethods.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 48, + "startColumn": 59, + "charOffset": 2222, + "charLength": 31, + "snippet": { + "text": "System.Runtime.InteropServices." + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 46, + "startColumn": 1, + "charOffset": 2088, + "charLength": 291, + "snippet": { + "text": " internal static extern IntPtr GetModuleHandleW(string lpModuleName);\r\n\r\n [DllImport(\"kernel32\", SetLastError = true, CharSet = System.Runtime.InteropServices.CharSet.Auto)]\r\n internal static extern IntPtr CreateToolhelp32Snapshot([In] UInt32 dwFlags, [In] UInt32 th32ProcessID);\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "cba4d2c89b367d09", + "equalIndicator/v1": "30cb8cce11cd7fe0de48d1cc6917d672cd76712b1bdb876930946170fcf6e995" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantNameQualifier", + "kind": "fail", + "level": "warning", + "message": { + "text": "Qualifier is redundant", + "markdown": "Qualifier is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Native/Structs/Module/MODULEENTRY32W.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 22, + "startColumn": 48, + "charOffset": 957, + "charLength": 31, + "snippet": { + "text": "System.Runtime.InteropServices." + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 20, + "startColumn": 1, + "charOffset": 863, + "charLength": 173, + "snippet": { + "text": "namespace SoulMemory.Native.Structs.Module;\r\n\r\n[StructLayout(LayoutKind.Sequential, CharSet = System.Runtime.InteropServices.CharSet.Auto)]\r\npublic struct MODULEENTRY32W\r\n{\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e205e8c1c383cdb7", + "equalIndicator/v1": "3ee4cb73f46c018fb8f64db4e4d92bb5463f7033c1147986d02de5dcaa8522ac" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantNameQualifier", + "kind": "fail", + "level": "warning", + "message": { + "text": "Qualifier is redundant", + "markdown": "Qualifier is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Native/NativeMethods.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 51, + "startColumn": 59, + "charOffset": 2438, + "charLength": 31, + "snippet": { + "text": "System.Runtime.InteropServices." + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 49, + "startColumn": 1, + "charOffset": 2269, + "charLength": 314, + "snippet": { + "text": " internal static extern IntPtr CreateToolhelp32Snapshot([In] UInt32 dwFlags, [In] UInt32 th32ProcessID);\r\n\r\n [DllImport(\"kernel32\", SetLastError = true, CharSet = System.Runtime.InteropServices.CharSet.Auto)]\r\n internal static extern bool Process32First([In] IntPtr hSnapshot, ref PROCESSENTRY32 lppe);\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "344f95e45af7b544", + "equalIndicator/v1": "4a96177909f220daf6ceaa3dce327fd67c1005576b4f86ff4ffd052b73932df4" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantNameQualifier", + "kind": "fail", + "level": "warning", + "message": { + "text": "Qualifier is redundant", + "markdown": "Qualifier is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls1Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 127, + "startColumn": 56, + "charOffset": 4123, + "charLength": 16, + "snippet": { + "text": "LiveSplit.Model." + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 125, + "startColumn": 1, + "charOffset": 4007, + "charLength": 262, + "snippet": { + "text": "\r\n _timerModel.CurrentState.IsGameTimePaused = true;\r\n _timerModel.CurrentState.CurrentTimingMethod = LiveSplit.Model.TimingMethod.GameTime;\r\n _timerState = TimerState.Running;\r\n _inGameTime = _darkSouls1.GetInGameTimeMilliseconds();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e209fc069b78d6e0", + "equalIndicator/v1": "6ac14e914ecc939796716eba597f0e4c87fbcb28c0af89dc21d11528ee024eac" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantNameQualifier", + "kind": "fail", + "level": "warning", + "message": { + "text": "Qualifier is redundant", + "markdown": "Qualifier is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Migrations/Migrator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 62, + "startColumn": 34, + "charOffset": 2515, + "charLength": 11, + "snippet": { + "text": "UI.Generic." + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 60, + "startColumn": 1, + "charOffset": 2423, + "charLength": 270, + "snippet": { + "text": " {\r\n //Get original timing type\r\n var timingType = UI.Generic.TimingType.Immediate;\r\n var timingTypeText = timingNode.GetChildNodeByName(\"TimingType\").InnerText;\r\n if (timingTypeText != \"Immediate\")\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ada35ec011ad38d4", + "equalIndicator/v1": "97f47e72aaeba5d0a0500db1924a98baec51c7b49d822cd3f335c272857cabbb" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantNameQualifier", + "kind": "fail", + "level": "warning", + "message": { + "text": "Qualifier is redundant", + "markdown": "Qualifier is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Migrations/Migrator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 183, + "startColumn": 34, + "charOffset": 9112, + "charLength": 11, + "snippet": { + "text": "UI.Generic." + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 181, + "startColumn": 1, + "charOffset": 9020, + "charLength": 270, + "snippet": { + "text": " {\r\n //Get original timing type\r\n var timingType = UI.Generic.TimingType.Immediate;\r\n var timingTypeText = timingNode.GetChildNodeByName(\"TimingType\").InnerText;\r\n if (timingTypeText != \"Immediate\")\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "601e14ce63c641a0", + "equalIndicator/v1": "9c86661d8917b3596dc2ea1f4270110f080736b7f1a691a9c56d613d2b7ffec9" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantNameQualifier", + "kind": "fail", + "level": "warning", + "message": { + "text": "Qualifier is redundant", + "markdown": "Qualifier is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Native/NativeMethods.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 54, + "startColumn": 59, + "charOffset": 2642, + "charLength": 31, + "snippet": { + "text": "System.Runtime.InteropServices." + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 52, + "startColumn": 1, + "charOffset": 2485, + "charLength": 301, + "snippet": { + "text": " internal static extern bool Process32First([In] IntPtr hSnapshot, ref PROCESSENTRY32 lppe);\r\n\r\n [DllImport(\"kernel32\", SetLastError = true, CharSet = System.Runtime.InteropServices.CharSet.Auto)]\r\n internal static extern bool Process32Next([In] IntPtr hSnapshot, ref PROCESSENTRY32 lppe);\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f41c6d90bbfbff7f", + "equalIndicator/v1": "a4306e8ca9b3693addf20f6b9069dde0b40bb6d4bacb57e8812a1b0716a48821" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantNameQualifier", + "kind": "fail", + "level": "warning", + "message": { + "text": "Qualifier is redundant", + "markdown": "Qualifier is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 77, + "startColumn": 12, + "charOffset": 2873, + "charLength": 11, + "snippet": { + "text": "SoulMemory." + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 75, + "startColumn": 1, + "charOffset": 2780, + "charLength": 207, + "snippet": { + "text": " public ResultErr TryRefresh() => _armoredCore6.TryRefresh();\r\n\r\n public SoulMemory.Memory.TreeBuilder GetTreeBuilder()\r\n {\r\n var builder = new SoulMemory.Memory.TreeBuilder();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "687b80467d25ef2a", + "equalIndicator/v1": "ceb0d11ce38c0f659a75ae268a0d90c709e91974a40cbf4c4d67f5936eb41a15" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantNameQualifier", + "kind": "fail", + "level": "warning", + "message": { + "text": "Qualifier is redundant", + "markdown": "Qualifier is redundant" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 79, + "startColumn": 27, + "charOffset": 2954, + "charLength": 11, + "snippet": { + "text": "SoulMemory." + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 77, + "startColumn": 1, + "charOffset": 2862, + "charLength": 205, + "snippet": { + "text": " public SoulMemory.Memory.TreeBuilder GetTreeBuilder()\r\n {\r\n var builder = new SoulMemory.Memory.TreeBuilder();\r\n foreach (var node in _armoredCore6.PointerTreeBuilder.Tree)\r\n {\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "1f9c3865409c3181", + "equalIndicator/v1": "f61f3030ad5a2ebdb8582a24a63e26fc98292a93071f90e1dbfec1c354e4e90b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantStringInterpolation", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant string interpolation", + "markdown": "Redundant string interpolation" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Result.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 150, + "startColumn": 23, + "charOffset": 3667, + "charLength": 1, + "snippet": { + "text": "$" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 148, + "startColumn": 1, + "charOffset": 3599, + "charLength": 102, + "snippet": { + "text": " public override string ToString()\r\n {\r\n return IsOk ? $\"Ok\" : $\"Err: {_err}\";\r\n }\r\n}\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "83824865f5499da5", + "equalIndicator/v1": "1d0286c23384205a5d9d95f7ecb16d11a16848426567d518820947043b6f6f4c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantStringInterpolation", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant string interpolation", + "markdown": "Redundant string interpolation" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/ParamClassGenerator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 71, + "startColumn": 23, + "charOffset": 2731, + "charLength": 1, + "snippet": { + "text": "$" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 69, + "startColumn": 1, + "charOffset": 2672, + "charLength": 100, + "snippet": { + "text": "\r\n sb.AppendLine($\" }}\");\r\n sb.AppendLine($\"}}\");\r\n\r\n return sb.ToString();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "77efc8841233487c", + "equalIndicator/v1": "24a2a8c2591baf1d0f0573bf0c4bc18a99be0fde168ae51d422e5d674e500399" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantStringInterpolation", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant string interpolation", + "markdown": "Redundant string interpolation" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/ParamClassGenerator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 70, + "startColumn": 23, + "charOffset": 2696, + "charLength": 1, + "snippet": { + "text": "$" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 68, + "startColumn": 1, + "charOffset": 2661, + "charLength": 80, + "snippet": { + "text": " }\r\n\r\n sb.AppendLine($\" }}\");\r\n sb.AppendLine($\"}}\");\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "fa18c25cc1625a78", + "equalIndicator/v1": "333c939b4ea33ff0bfc7e16252165ac72a02769977b2139695a22e37a44ccd5e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantStringInterpolation", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant string interpolation", + "markdown": "Redundant string interpolation" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/ParamClassGenerator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 100, + "startColumn": 34, + "charOffset": 4317, + "charLength": 1, + "snippet": { + "text": "$" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 98, + "startColumn": 1, + "charOffset": 4110, + "charLength": 384, + "snippet": { + "text": " stringBuilder.AppendLine($\" get => {privateName};\");\r\n stringBuilder.AppendLine($\" set => WriteParamField(ref {privateName}, value);\");\r\n stringBuilder.AppendLine($\" }}\");\r\n stringBuilder.AppendLine($\" private {ParamData.ParamToSharpTypeString[field.ParamType]}[] {privateName};\");\r\n stringBuilder.AppendLine();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "8003d888c14008c9", + "equalIndicator/v1": "67295735d65a487267c446e964e69162028c7dc974e545265cd8637c8b14b528" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantStringInterpolation", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant string interpolation", + "markdown": "Redundant string interpolation" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/ParamClassGenerator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 97, + "startColumn": 34, + "charOffset": 4093, + "charLength": 1, + "snippet": { + "text": "$" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 95, + "startColumn": 1, + "charOffset": 3811, + "charLength": 472, + "snippet": { + "text": " stringBuilder.AppendLine($\" [ParamField(0x{field.Offset:X}, ParamType.{field.ParamType}, {field.ArraySize})]\");\r\n stringBuilder.AppendLine($\" public {ParamData.ParamToSharpTypeString[field.ParamType]}[] {field.Name}\");\r\n stringBuilder.AppendLine($\" {{\");\r\n stringBuilder.AppendLine($\" get => {privateName};\");\r\n stringBuilder.AppendLine($\" set => WriteParamField(ref {privateName}, value);\");\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "1916a9b2a6761f75", + "equalIndicator/v1": "6a103064680db0b399065829084bab579c5bc53a59873b36f2bd9f8e0a66be8c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantStringInterpolation", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant string interpolation", + "markdown": "Redundant string interpolation" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/ParamClassGenerator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 43, + "startColumn": 23, + "charOffset": 1808, + "charLength": 1, + "snippet": { + "text": "$" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 41, + "startColumn": 1, + "charOffset": 1680, + "charLength": 369, + "snippet": { + "text": " sb.AppendLine(classHeader);\r\n sb.AppendLine($\" public class {className} : BaseParam\");\r\n sb.AppendLine($\" {{\");\r\n sb.AppendLine($\" public {className}(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){{}}\");\r\n sb.AppendLine();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c25dba7e0e687100", + "equalIndicator/v1": "6ed2d49b3896ffa292ff2d427200ea62891b074c844a077d9b9c173158b21122" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantStringInterpolation", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant string interpolation", + "markdown": "Redundant string interpolation" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/ParamClassGenerator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 86, + "startColumn": 34, + "charOffset": 3445, + "charLength": 1, + "snippet": { + "text": "$" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 84, + "startColumn": 1, + "charOffset": 3238, + "charLength": 382, + "snippet": { + "text": " stringBuilder.AppendLine($\" get => {privateName};\");\r\n stringBuilder.AppendLine($\" set => WriteParamField(ref {privateName}, value);\");\r\n stringBuilder.AppendLine($\" }}\");\r\n stringBuilder.AppendLine($\" private {ParamData.ParamToSharpTypeString[field.ParamType]} {privateName};\");\r\n stringBuilder.AppendLine();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "1a6589888d3c3cd5", + "equalIndicator/v1": "8fd7c7e917cc840cc1b361bd189c76df57d87dfea28ed78d8bd67bec3cc16796" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantStringInterpolation", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant string interpolation", + "markdown": "Redundant string interpolation" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/ParamClassGenerator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 122, + "startColumn": 38, + "charOffset": 5513, + "charLength": 1, + "snippet": { + "text": "$" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 120, + "startColumn": 1, + "charOffset": 5222, + "charLength": 524, + "snippet": { + "text": " stringBuilder.AppendLine($\" [ParamBitField(nameof({bitfieldName}), bits: {b.size}, bitsOffset: {bitOffset})]\");\r\n stringBuilder.AppendLine($\" public {ParamData.ParamToSharpTypeString[bitfield.ParamType]} {b.name}\");\r\n stringBuilder.AppendLine($\" {{\");\r\n stringBuilder.AppendLine($\" get => GetbitfieldValue({bitfieldPrivateName});\");\r\n stringBuilder.AppendLine($\" set => SetBitfieldValue(ref {bitfieldPrivateName}, value);\");\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "af70f80d2ab711bc", + "equalIndicator/v1": "98efd94a3ba9b65e18e442bfa4a1bcb7b9f33e4e59f5f6fff3f0e48e0c842994" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantStringInterpolation", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant string interpolation", + "markdown": "Redundant string interpolation" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/ParamClassGenerator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 125, + "startColumn": 38, + "charOffset": 5784, + "charLength": 1, + "snippet": { + "text": "$" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 123, + "startColumn": 1, + "charOffset": 5530, + "charLength": 313, + "snippet": { + "text": " stringBuilder.AppendLine($\" get => GetbitfieldValue({bitfieldPrivateName});\");\r\n stringBuilder.AppendLine($\" set => SetBitfieldValue(ref {bitfieldPrivateName}, value);\");\r\n stringBuilder.AppendLine($\" }}\");\r\n stringBuilder.AppendLine();\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "304d187484cff1e1", + "equalIndicator/v1": "ca9cb3c4517f9b6daef08dc41f6ec8882a525dee4807380a4a350fd17d3f8e2c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantStringInterpolation", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant string interpolation", + "markdown": "Redundant string interpolation" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/ParamClassGenerator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 83, + "startColumn": 34, + "charOffset": 3221, + "charLength": 1, + "snippet": { + "text": "$" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 81, + "startColumn": 1, + "charOffset": 2960, + "charLength": 451, + "snippet": { + "text": " stringBuilder.AppendLine($\" [ParamField(0x{field.Offset:X}, ParamType.{field.ParamType})]\");\r\n stringBuilder.AppendLine($\" public {ParamData.ParamToSharpTypeString[field.ParamType]} {field.Name}\");\r\n stringBuilder.AppendLine($\" {{\");\r\n stringBuilder.AppendLine($\" get => {privateName};\");\r\n stringBuilder.AppendLine($\" set => WriteParamField(ref {privateName}, value);\");\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c186b17065d47516", + "equalIndicator/v1": "e3eebce908da669dbcda5fced5d6c1e030c96a22ea941281b911c3ff7cefcdd4" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantStringInterpolation", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant string interpolation", + "markdown": "Redundant string interpolation" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Result.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 208, + "startColumn": 38, + "charOffset": 4900, + "charLength": 1, + "snippet": { + "text": "$" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 206, + "startColumn": 1, + "charOffset": 4817, + "charLength": 101, + "snippet": { + "text": " public override string ToString()\r\n {\r\n return IsOk ? $\"Ok: {_ok}\" : $\"Err\";\r\n }\r\n}\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b54b90f528fbe17e", + "equalIndicator/v1": "e8592621c81e789ec7b46fa9e0546f348c25ec3f420294e00bc2a939efe8c0f9" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantToStringCall", + "kind": "fail", + "level": "warning", + "message": { + "text": "Redundant 'Object.ToString()' call", + "markdown": "Redundant 'Object.ToString()' call" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Logger.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 75, + "startColumn": 81, + "charOffset": 2618, + "charLength": 11, + "snippet": { + "text": ".ToString()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 73, + "startColumn": 1, + "charOffset": 2529, + "charLength": 169, + "snippet": { + "text": " }\r\n\r\n public static void Log(string message, Exception e) => Log(message + \" \" + e.ToString());\r\n public static void Log(Exception e) => Log(e.ToString());\r\n}\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e632a81905a939b9", + "equalIndicator/v1": "3ae4b656db3f56430394afbba7f12208eb7077d1cb7ca49ce8f0e731b17c2eb5" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant verbatim string prefix", + "markdown": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/soulmods/Soulmods.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 53, + "startColumn": 67, + "charOffset": 1773, + "charLength": 1, + "snippet": { + "text": "@" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 51, + "startColumn": 1, + "charOffset": 1621, + "charLength": 251, + "snippet": { + "text": " {\r\n var dir = Path.GetDirectoryName(typeof(Soulmods).Assembly.Location)!;\r\n var path = process.Is64Bit().Unwrap() ? Path.Combine(dir, @\"soulmods_x64.dll\") : Path.Combine(dir, @\"soulmods_x86.dll\");\r\n\r\n process.InjectDll(path);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7c1ffab398bbe1e2", + "equalIndicator/v1": "3361df04fc9913975461ac2b41eff09e41b9e81f6d4e3ce95a1341a66117bd52" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "RedundantVerbatimStringPrefix", + "kind": "fail", + "level": "note", + "message": { + "text": "Redundant verbatim string prefix", + "markdown": "Redundant verbatim string prefix" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/soulmods/Soulmods.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 53, + "startColumn": 108, + "charOffset": 1814, + "charLength": 1, + "snippet": { + "text": "@" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 51, + "startColumn": 1, + "charOffset": 1621, + "charLength": 251, + "snippet": { + "text": " {\r\n var dir = Path.GetDirectoryName(typeof(Soulmods).Assembly.Location)!;\r\n var path = process.Is64Bit().Unwrap() ? Path.Combine(dir, @\"soulmods_x64.dll\") : Path.Combine(dir, @\"soulmods_x86.dll\");\r\n\r\n process.InjectDll(path);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "6cd7fdcfd0cd6960", + "equalIndicator/v1": "a7b53846bd5e40d77bfaa623bf726bd3b82762dbb036d7507622aa5f362b3b0b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SimplifyLinqExpressionUseAll", + "kind": "fail", + "level": "note", + "message": { + "text": "Simplify LINQ expression (use 'All')", + "markdown": "Simplify LINQ expression (use 'All')" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/ItemReader.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 76, + "startColumn": 99, + "charOffset": 3101, + "charLength": 50, + "snippet": { + "text": "!items.Any(j => j.ItemType == ItemType.EstusFlask)" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 74, + "startColumn": 1, + "charOffset": 2938, + "charLength": 328, + "snippet": { + "text": "\r\n //if 4 or less digits -> non-upgradable item.\r\n if (categories.Contains(ItemCategory.Consumables) && item is >= 200 and <= 215 && !items.Any(j => j.ItemType == ItemType.EstusFlask))\r\n {\r\n var estus = Item.AllItems.First(j => j.ItemType == ItemType.EstusFlask);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "6b32d5259ce5eb67", + "equalIndicator/v1": "a3e2b885df946c04a62c9a87b703a18b7592673745f9abffd0b4640de0bba815" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SimplifyStringInterpolation", + "kind": "fail", + "level": "note", + "message": { + "text": "Simplify string interpolation", + "markdown": "Simplify string interpolation" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Logger.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 65, + "startColumn": 49, + "charOffset": 2341, + "charLength": 36, + "snippet": { + "text": ".ToString(\"yyyy-MM-dd HH:mm:ss:fff\")" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 63, + "startColumn": 1, + "charOffset": 2195, + "charLength": 246, + "snippet": { + "text": " //Log the message\r\n using var writer = File.AppendText(filePath);\r\n writer.WriteLine($\"{DateTime.Now.ToString(\"yyyy-MM-dd HH:mm:ss:fff\")}: {message}\");\r\n writer.Flush();\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d4cdd8f48fb4ede4", + "equalIndicator/v1": "0c2a9fa1a4410405f2a1ceab1b3b133461a3429521cf417d6a002d92f2b7f4fd" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "SpecifyStringComparison", + "kind": "fail", + "level": "note", + "message": { + "text": "Specify string comparison explicitly", + "markdown": "Specify string comparison explicitly" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Process/ProcessWrapper.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 50, + "startColumn": 114, + "charOffset": 2040, + "charLength": 2, + "snippet": { + "text": "==" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 48, + "startColumn": 1, + "charOffset": 1877, + "charLength": 257, + "snippet": { + "text": " if (_process == null)\r\n {\r\n _process = System.Diagnostics.Process.GetProcesses().FirstOrDefault(i => i.ProcessName.ToLower() == name.ToLower() && !i.HasExited);\r\n if (_process == null)\r\n {\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "fb7cedba9219bbb5", + "equalIndicator/v1": "59e335651b718bee7c08b85715fe402fd07f20374f69122a0b2cf6415598ce4f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SpecifyStringComparison", + "kind": "fail", + "level": "note", + "message": { + "text": "Specify string comparison explicitly", + "markdown": "Specify string comparison explicitly" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 81, + "startColumn": 113, + "charOffset": 3313, + "charLength": 2, + "snippet": { + "text": "==" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 79, + "startColumn": 1, + "charOffset": 3152, + "charLength": 254, + "snippet": { + "text": " if (process == null)\r\n {\r\n process = System.Diagnostics.Process.GetProcesses().FirstOrDefault(i => i.ProcessName.ToLower() == name.ToLower() && !i.HasExited);\r\n if (process == null)\r\n {\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "8e1413fbd498206d", + "equalIndicator/v1": "7cc99a1bd232614b1706751d13f5ea57216ea590ac7ebe3af187fab1e705b87b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SpecifyStringComparison", + "kind": "fail", + "level": "note", + "message": { + "text": "Specify string comparison explicitly", + "markdown": "Specify string comparison explicitly" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Native/Kernel32.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 323, + "startColumn": 71, + "charOffset": 12217, + "charLength": 2, + "snippet": { + "text": "==" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 321, + "startColumn": 1, + "charOffset": 12084, + "charLength": 284, + "snippet": { + "text": " {\r\n var modules = process.GetModulesViaSnapshot();\r\n var module = modules.First(i => i.szModule.ToLowerInvariant() == hModuleName.ToLowerInvariant());\r\n\r\n var moduleImageDosHeader = process.ReadMemory(module.modBaseAddr.ToInt64()).Unwrap();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "172eba8b5f5e339c", + "equalIndicator/v1": "faa9ad355a2ac19a9091c9d5da6bb2705867429411ed5b9f2a8d188d02dd22c4" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/ByteArrayMemory.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 36, + "startColumn": 14, + "charOffset": 1343, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 34, + "startColumn": 1, + "charOffset": 1268, + "charLength": 162, + "snippet": { + "text": " public void WriteBytes(long offset, byte[] bytes)\r\n {\r\n for (int i = 0; i < bytes.Length; i++)\r\n {\r\n data[offset + i] = bytes[i];\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e706beab68098c95", + "equalIndicator/v1": "08d68438a5497bbafcac662a9e0b5ed4c2faef35e75259b7df6676bce807c8d6" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 218, + "startColumn": 17, + "charOffset": 8263, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 216, + "startColumn": 1, + "charOffset": 8188, + "charLength": 194, + "snippet": { + "text": " if (bonfireId == (int)bonfire)\r\n {\r\n int bonfireState = netBonfireDbItem.ReadInt32(0x8);\r\n return (BonfireState)bonfireState;\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "6dcd7d0fa7d12f09", + "equalIndicator/v1": "0b08f3742ffbb5e351f86d41c359d704cf7d3bb005fb844a3f974112e8d732d0" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 192, + "startColumn": 52, + "charOffset": 7671, + "charLength": 4, + "snippet": { + "text": "long" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 190, + "startColumn": 1, + "charOffset": 7539, + "charLength": 264, + "snippet": { + "text": " result = 0;\r\n var pattern = pointerNode.Pattern.ToBytePattern();\r\n if (bytes.TryBoyerMooreSearch(pattern, out long scanResult))\r\n {\r\n var address = BitConverter.ToInt32(bytes, (int)(scanResult + pointerNode.AddressOffset));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ee4fc38507d30fdf", + "equalIndicator/v1": "0bd55a6b3f28f1ec1173d72fb93240a631a14cd3a8deda45e99213df3f4396e0" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 359, + "startColumn": 17, + "charOffset": 12626, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 357, + "startColumn": 1, + "charOffset": 12506, + "charLength": 256, + "snippet": { + "text": " if (EventFlagGroups.ContainsKey(group) && EventFlagAreas.ContainsKey(area))\r\n {\r\n int offset = EventFlagGroups[group];\r\n offset += EventFlagAreas[area] * 0x500;\r\n offset += section * 128;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e3fdc0a2d08ed077", + "equalIndicator/v1": "10a30486e80e1c21f0ef85862ea3da4bc88c94220d8e24de028a1b25598db6b6" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Native/Kernel32.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 166, + "startColumn": 71, + "charOffset": 6325, + "charLength": 4, + "snippet": { + "text": "bool" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 164, + "startColumn": 1, + "charOffset": 6184, + "charLength": 195, + "snippet": { + "text": " public static ResultOk Is64Bit(this Process process)\r\n {\r\n var result = NativeMethods.IsWow64Process(process.Handle, out bool isWow64Result);\r\n if (!result)\r\n {\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "6e5c1d9458d53a41", + "equalIndicator/v1": "12bc7b721d0022487aeabbec2bb3ac6637f6a18d38b042807ea5bc8cfb102ff2" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Sl2Reader.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 66, + "startColumn": 21, + "charOffset": 2246, + "charLength": 6, + "snippet": { + "text": "byte[]" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 64, + "startColumn": 1, + "charOffset": 2180, + "charLength": 156, + "snippet": { + "text": " if (ptde)\r\n {\r\n byte[] file = File.ReadAllBytes(path);\r\n int saveSlotSize = 0x60020;\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4fd83e476584a0fe", + "equalIndicator/v1": "170ba0b3508476937d02aedbf665e5fe7c6010cb1288bff1bcae5c7f91309ab8" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/ItemReader.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 112, + "startColumn": 21, + "charOffset": 4751, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 110, + "startColumn": 1, + "charOffset": 4640, + "charLength": 217, + "snippet": { + "text": " int one = item % 10;\r\n int ten = (item / 10) % 10;\r\n int hundred = (item / 100) % 10;\r\n\r\n id = item - (one + (10 * ten) + (100 * hundred));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "2b2b40886b7da695", + "equalIndicator/v1": "18ac0f578fdc8f70cc5f35b8427046d0ff36d0da097f77d10ec3e4e50ce539b6" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 325, + "startColumn": 14, + "charOffset": 11438, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 323, + "startColumn": 1, + "charOffset": 11377, + "charLength": 164, + "snippet": { + "text": " public void ResetInventoryIndices()\r\n {\r\n for (int i = 0; i < 20; i++)\r\n {\r\n _inventoryIndices.WriteUint32(0x4 * i, uint.MaxValue);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "20578c7ae01f5f0d", + "equalIndicator/v1": "19ad9bee97810cf7658a48b1b9e8fe13cfef89a3c36c2a7ebaa74f4d5ade53d3" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/ItemReader.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 73, + "startColumn": 17, + "charOffset": 2922, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 71, + "startColumn": 1, + "charOffset": 2815, + "charLength": 187, + "snippet": { + "text": " int id = 0;\r\n ItemInfusion infusion = ItemInfusion.Normal;\r\n int level = 0;\r\n\r\n //if 4 or less digits -> non-upgradable item.\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "8927f3f51b487d12", + "equalIndicator/v1": "19e27b40a81cf2a17403db54207c5d14f3003030eeac2da54325d6c65d7a9717" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/ParamReader.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 35, + "startColumn": 14, + "charOffset": 1329, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 33, + "startColumn": 1, + "charOffset": 1266, + "charLength": 138, + "snippet": { + "text": "\r\n var data = new List();\r\n for (int i = 0; i < rowCount; i++)\r\n {\r\n var offset = i * 12;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b3e44d95a593bdb4", + "equalIndicator/v1": "1a88e8f5ee788567cfde36b5f4e29ea6bdc564c57f5e72f0bdb9b8e4d5cb09a6" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 144, + "startColumn": 52, + "charOffset": 5924, + "charLength": 4, + "snippet": { + "text": "long" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 142, + "startColumn": 1, + "charOffset": 5792, + "charLength": 201, + "snippet": { + "text": " result = 0;\r\n var pattern = pointerNode.Pattern.ToBytePattern();\r\n if (bytes.TryBoyerMooreSearch(pattern, out long scanResult))\r\n {\r\n scanResult += baseAddress;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "40fecb43f5beaf00", + "equalIndicator/v1": "1bdfdcd70dc64e6a840e1313734d123f2c1721dce8062ac8a6b997cadc1ddc1e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Migrations/Migrator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 51, + "startColumn": 103, + "charOffset": 2068, + "charLength": 4, + "snippet": { + "text": "bool" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 49, + "startColumn": 1, + "charOffset": 1899, + "charLength": 283, + "snippet": { + "text": " var newDarkSouls3ViewModel = new DarkSouls3ViewModel();\r\n\r\n if (bool.TryParse(darkSouls3ViewModel.GetChildNodeByName(\"StartAutomatically\").InnerText, out bool startAutomatically))\r\n {\r\n newDarkSouls3ViewModel.StartAutomatically = startAutomatically;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "cb1973ebc64dfa7f", + "equalIndicator/v1": "247e31ee9b16635d0d17f0d4a94c2531b0534208dcb27e507377c8e336cc9869" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 295, + "startColumn": 13, + "charOffset": 10445, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 293, + "startColumn": 1, + "charOffset": 10326, + "charLength": 235, + "snippet": { + "text": " string group = idString.Substring(0, 1);\r\n string area = idString.Substring(1, 3);\r\n int section = int.Parse(idString.Substring(4, 1));\r\n int number = int.Parse(idString.Substring(5, 3));\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5731b9b0be0daca3", + "equalIndicator/v1": "24bf5c0ab76d2c4068a8d46e38fa88372ffcb91792a9074b17f4aee4f60e90e7" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Migrations/Migrator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 245, + "startColumn": 68, + "charOffset": 12455, + "charLength": 4, + "snippet": { + "text": "uint" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 243, + "startColumn": 1, + "charOffset": 12286, + "charLength": 294, + "snippet": { + "text": " {\r\n var split = flag.GetChildNodeByName(\"Split\");\r\n if (uint.TryParse(split.InnerText, out uint u))\r\n {\r\n newSekiroViewModel.NewSplitTimingType = timingType;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "fdc8d02a8c13d850", + "equalIndicator/v1": "275c442c20174ca9923310cd10d383f6329246b823acd18aca42a6c32f35d4e4" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/IMemory.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 43, + "startColumn": 14, + "charOffset": 1386, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 41, + "startColumn": 1, + "charOffset": 1348, + "charLength": 131, + "snippet": { + "text": " offset ??= 0;\r\n\r\n for (int i = 0; i < bytes.Length; i++)\r\n {\r\n data[offset.Value + i] = bytes[i];\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9fa47dc19f3d0f32", + "equalIndicator/v1": "280e2434ab0ef8e1a6b43b440099e0ba66dd4e19c3e8486ab8548ed8dfdc52cd" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 354, + "startColumn": 13, + "charOffset": 12385, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 352, + "startColumn": 1, + "charOffset": 12266, + "charLength": 239, + "snippet": { + "text": " string group = idString.Substring(0, 1);\r\n string area = idString.Substring(1, 3);\r\n int section = Int32.Parse(idString.Substring(4, 1));\r\n int number = Int32.Parse(idString.Substring(5, 3));\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "276b613f05707c21", + "equalIndicator/v1": "28411474179e6a118fb07cbf3bb5d49c2f814d9a81ee1815ec09ab1f2891bd02" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 123, + "startColumn": 59, + "charOffset": 4555, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 121, + "startColumn": 1, + "charOffset": 4428, + "charLength": 175, + "snippet": { + "text": " public void WriteEventFlag(uint eventFlagId, bool value)\r\n {\r\n var result = GetEventFlagAddress(eventFlagId, out int mask);\r\n if (result.IsOk)\r\n {\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "65be8efad016743d", + "equalIndicator/v1": "2a5d17e1810c5f780c0c415946ee081dd1fbff64c5e64d2d8ef28586a187ce2d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 474, + "startColumn": 18, + "charOffset": 16509, + "charLength": 6, + "snippet": { + "text": "string" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 472, + "startColumn": 1, + "charOffset": 16453, + "charLength": 168, + "snippet": { + "text": " {\r\n List bytes = [];\r\n foreach (string line in Regex.Split(lines, \"[\\r\\n]+\"))\r\n {\r\n Match match = _assemblyRegex.Match(line);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "760740260a9e8e0b", + "equalIndicator/v1": "2c2ef0d8c1219b571f3cc43b8f3b49a6354de77e7bc37a5cd4fa5fd86caf3424" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2Control.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 58, + "startColumn": 49, + "charOffset": 2038, + "charLength": 4, + "snippet": { + "text": "uint" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 56, + "startColumn": 1, + "charOffset": 1874, + "charLength": 255, + "snippet": { + "text": " if (_darkSouls2ViewModel.NewSplitType is DarkSouls2SplitType.Flag && sender is TextBox textBox)\r\n {\r\n if (uint.TryParse(textBox.Text, out uint result))\r\n {\r\n _darkSouls2ViewModel.NewSplitValue = result;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5c8c9905dc313e15", + "equalIndicator/v1": "2cc3ed6a0f465074de2d8492c35f0dbb7215956aa065748725c92ab6d366287f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Migrations/Migrator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 167, + "startColumn": 99, + "charOffset": 8435, + "charLength": 4, + "snippet": { + "text": "bool" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 165, + "startColumn": 1, + "charOffset": 8278, + "charLength": 267, + "snippet": { + "text": " var newSekiroViewModel = new SekiroViewModel();\r\n\r\n if (bool.TryParse(sekiroViewModel.GetChildNodeByName(\"StartAutomatically\").InnerText, out bool startAutomatically))\r\n {\r\n newSekiroViewModel.StartAutomatically = startAutomatically;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "56a1919a8dd3e75d", + "equalIndicator/v1": "30eab36950e97526048693c65de433de6e3ed398165e6cf8930b1ed267746ebd" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Native/User32.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 35, + "startColumn": 44, + "charOffset": 1356, + "charLength": 4, + "snippet": { + "text": "uint" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 33, + "startColumn": 1, + "charOffset": 1260, + "charLength": 135, + "snippet": { + "text": " {\r\n IntPtr hWnd = GetForegroundWindow();\r\n GetWindowThreadProcessId(hWnd, out uint pid);\r\n return pid;\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a28b674f6724e992", + "equalIndicator/v1": "3118e92d59e44ca65d7ba52dc79b1da5f58495b30421a35a14dc15a39a392abb" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 314, + "startColumn": 58, + "charOffset": 11194, + "charLength": 4, + "snippet": { + "text": "uint" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 312, + "startColumn": 1, + "charOffset": 11081, + "charLength": 216, + "snippet": { + "text": " public bool ReadEventFlag(uint eventFlagId)\r\n {\r\n int offset = GetEventFlagOffset(eventFlagId, out uint mask);\r\n uint value = _eventFlags.ReadUInt32(offset);\r\n return (value & mask) != 0;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "354b2d07803631e4", + "equalIndicator/v1": "33c588c57fdbb295c097e59cd5c613b1fef233aec56d6fd2baab24bc3be1704e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/ParamClassGenerator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 193, + "startColumn": 13, + "charOffset": 8297, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 191, + "startColumn": 1, + "charOffset": 8258, + "charLength": 149, + "snippet": { + "text": " var offset = 0;\r\n\r\n for(int i = 0; i < preParsedFields.Count; i++)\r\n {\r\n //Grab current and next field if available\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "1dba7b6debc38c07", + "equalIndicator/v1": "35c59cd6c0bfa3279625177541ece9fecd7b51fb3947abbd04bab31a6b27f68a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 247, + "startColumn": 14, + "charOffset": 6535, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 245, + "startColumn": 1, + "charOffset": 6452, + "charLength": 178, + "snippet": { + "text": " var data = ReadMemory(offset, maxSize);\r\n length = 0;\r\n for (int i = 1; i < data.Length; i++)\r\n {\r\n if (data[i - 1] == 0 && data[i] == 0)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0bd0cd1ffff16c0e", + "equalIndicator/v1": "376b87ac7bf662bf271403f4721eb4dff8a8547459207fad399ecc806da01c7b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 143, + "startColumn": 59, + "charOffset": 5093, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 141, + "startColumn": 1, + "charOffset": 4979, + "charLength": 162, + "snippet": { + "text": " public bool ReadEventFlag(uint eventFlagId)\r\n {\r\n var result = GetEventFlagAddress(eventFlagId, out int mask);\r\n if (result.IsOk)\r\n {\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "185139e387fcd80e", + "equalIndicator/v1": "3d757af46f91c7a7bb7e6ea18da64bffcaa63e301698c37dd17668c986839631" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls2/vanilla.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 132, + "startColumn": 14, + "charOffset": 4400, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 130, + "startColumn": 1, + "charOffset": 4383, + "charLength": 187, + "snippet": { + "text": "\r\n\r\n for (int i = 0; i < 100; i++) //Replaced infinite while with for loop, in case some memes occur and the function never returns\r\n {\r\n if (vector.IsNullPtr())\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "512664b6a721bf36", + "equalIndicator/v1": "4312ad5104faffa6669d6a7370016f7eda1048b4aa2e77078347207a907005f7" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Sl2Reader.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 82, + "startColumn": 21, + "charOffset": 2965, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 80, + "startColumn": 1, + "charOffset": 2850, + "charLength": 247, + "snippet": { + "text": " file = DecryptSl2(file);\r\n int saveSlotSize = 0x60030;\r\n int igtOffset = 0x2EC + (saveSlotSize * slot);\r\n igt = BitConverter.ToInt32(file, igtOffset);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d61673e68376f939", + "equalIndicator/v1": "45b790ee3be1cc11e427891dc5e665c315729f6a4d6e8d864ffd8149578cce1f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/ItemReader.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 111, + "startColumn": 21, + "charOffset": 4702, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 109, + "startColumn": 1, + "charOffset": 4601, + "charLength": 185, + "snippet": { + "text": " //Separate digits\r\n int one = item % 10;\r\n int ten = (item / 10) % 10;\r\n int hundred = (item / 100) % 10;\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "6b70ff0fc0dd27f5", + "equalIndicator/v1": "4626e3f285643ebe0a78916621a50c66b2ef5bb921b67e180a8d0dd6ba0360a4" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 56, + "startColumn": 13, + "charOffset": 2385, + "charLength": 4, + "snippet": { + "text": "bool" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 54, + "startColumn": 1, + "charOffset": 2328, + "charLength": 130, + "snippet": { + "text": " {\r\n long scanResult = 0;\r\n bool success = false;\r\n switch (node.NodeType)\r\n {\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "391c3a15e056d1ec", + "equalIndicator/v1": "495a537b095f73d8b99770b63a34171c87d3fea7fe76d48d538c195304b6b513" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 274, + "startColumn": 9, + "charOffset": 10321, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 272, + "startColumn": 1, + "charOffset": 10229, + "charLength": 161, + "snippet": { + "text": " public static int BoyerMooreCount(this byte[] haystack, byte?[] needle)\r\n {\r\n int result = 0;\r\n var lastPatternIndex = needle.Length - 1;\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "efb018e880118bc6", + "equalIndicator/v1": "4c66368625a616eb1a65cb8d30df8229d9c032980832e09908ec3fec25b9ceda" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/FlagWatcher.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 44, + "startColumn": 14, + "charOffset": 1515, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 42, + "startColumn": 1, + "charOffset": 1443, + "charLength": 162, + "snippet": { + "text": " {\r\n var result = new Dictionary();\r\n for (int i = 0; i < _flags.Count; i++)\r\n {\r\n var flag = _flags.ElementAt(i);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e130c27635bf07c6", + "equalIndicator/v1": "4efa829b5f5545dbb4bf4d8f4876945b0236eef70c2d4b00a648e26676408bff" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 223, + "startColumn": 18, + "charOffset": 7594, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 221, + "startColumn": 1, + "charOffset": 7532, + "charLength": 141, + "snippet": { + "text": "\r\n //Loop over worldInfo structs\r\n for (int i = 0; i < size; i++)\r\n {\r\n //0x00007ff4fd9ba4c3\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "2874d9c071523c32", + "equalIndicator/v1": "4f06f3beb6e27e8f8bbbf0d03e7b72745283160ceb6ed1527e6112e098a62b0d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/EldenRing/EldenRingControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 59, + "startColumn": 74, + "charOffset": 2021, + "charLength": 4, + "snippet": { + "text": "uint" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 57, + "startColumn": 1, + "charOffset": 1858, + "charLength": 248, + "snippet": { + "text": " private void TextBoxBase_OnTextChanged(object sender, TextChangedEventArgs e)\r\n {\r\n if (sender is TextBox textBox && uint.TryParse(textBox.Text, out uint result))\r\n {\r\n GetEldenRingViewModel().NewSplitFlag = result;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "44e21f778660408e", + "equalIndicator/v1": "5a8083c0f5081e8f2cd1cf3fdf3a63d39ae32db6b86bbc1e88456b39ed4256ae" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/ParamReader.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 68, + "startColumn": 14, + "charOffset": 2563, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 66, + "startColumn": 1, + "charOffset": 2507, + "charLength": 131, + "snippet": { + "text": " var parameters = new List();\r\n\r\n for (int i = 0; i < rowCount; i++)\r\n {\r\n var offset = i * 12;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4283f2d16e957e48", + "equalIndicator/v1": "5b8becd7de563071c7e50166874936624cfcd96b7ff231c1a7a3654d6825edfd" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Sl2Reader.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 73, + "startColumn": 21, + "charOffset": 2530, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 71, + "startColumn": 1, + "charOffset": 2459, + "charLength": 203, + "snippet": { + "text": " saveSlotSize = 0x60190;\r\n\r\n int igtOffset = 0x2dc + (saveSlotSize * slot);\r\n igt = BitConverter.ToInt32(file, igtOffset);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "48c1263097e48338", + "equalIndicator/v1": "642d929d66f19b16d9a9fdd484448b70573e8be7b6346434f1843787810e41b7" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 398, + "startColumn": 57, + "charOffset": 13967, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 396, + "startColumn": 1, + "charOffset": 13743, + "charLength": 329, + "snippet": { + "text": " var dataPointer = weaponDescriptionsPointer.CreatePointerFromAddress(0x14);\r\n var textOffset = dataPointer.ReadInt32(weaponDescription.DataOffset * 4);\r\n weaponDescriptionsPointer.ReadUnicodeString(out int length, offset: textOffset);\r\n \r\n var buffer = Encoding.Unicode.GetBytes(description);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5478d00531b085f4", + "equalIndicator/v1": "6464cf7bc8230547363ce2ed95397998c4aa875439934347d4fc626f311e399d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 315, + "startColumn": 9, + "charOffset": 11215, + "charLength": 4, + "snippet": { + "text": "uint" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 313, + "startColumn": 1, + "charOffset": 11130, + "charLength": 174, + "snippet": { + "text": " {\r\n int offset = GetEventFlagOffset(eventFlagId, out uint mask);\r\n uint value = _eventFlags.ReadUInt32(offset);\r\n return (value & mask) != 0;\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "87a4c121c00d8cba", + "equalIndicator/v1": "64a8c9632cb09fb4e046ec16391882bd3dc3988d686cd592ad70572d4c4f1e83" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Migrations/Migrator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 172, + "startColumn": 100, + "charOffset": 8658, + "charLength": 4, + "snippet": { + "text": "bool" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 170, + "startColumn": 1, + "charOffset": 8546, + "charLength": 225, + "snippet": { + "text": " }\r\n\r\n if (bool.TryParse(sekiroViewModel.GetChildNodeByName(\"OverwriteIgtOnStart\").InnerText, out bool overwriteIgtOnStart))\r\n {\r\n newSekiroViewModel.OverwriteIgtOnStart = overwriteIgtOnStart;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c9b134a05e938736", + "equalIndicator/v1": "66af6e7ff591149f495ce9445c1f0d08b2cc7dc46aef050a34f094382d6ea84c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 502, + "startColumn": 9, + "charOffset": 17680, + "charLength": 6, + "snippet": { + "text": "byte[]" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 500, + "startColumn": 1, + "charOffset": 17561, + "charLength": 296, + "snippet": { + "text": " // build asm and replace the function pointers\r\n byte[] asm = LoadDefuseOutput(IsJapaneseAsm);\r\n byte[] callBytes = BitConverter.GetBytes((ulong)callPtr);\r\n Array.Copy(callBytes, 0, asm, 0x6, 8);\r\n byte[] resultBytes = BitConverter.GetBytes((ulong)resultPtr);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "93790c501cc156e2", + "equalIndicator/v1": "67bb0a57caf605e091bff4cdda9cd7f2f32b174519cebf50986f8f735b200dbd" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 208, + "startColumn": 52, + "charOffset": 8416, + "charLength": 4, + "snippet": { + "text": "long" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 206, + "startColumn": 1, + "charOffset": 8284, + "charLength": 201, + "snippet": { + "text": " result = 0;\r\n var pattern = pointerNode.Pattern.ToBytePattern();\r\n if (bytes.TryBoyerMooreSearch(pattern, out long scanResult))\r\n {\r\n scanResult += baseAddress;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c802a0e02473b710", + "equalIndicator/v1": "6cc2f835ed403bbc0d8deb85bcac0684cf90fb641d60b9b77e8f7c78fa31c8a7" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 504, + "startColumn": 9, + "charOffset": 17795, + "charLength": 6, + "snippet": { + "text": "byte[]" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 502, + "startColumn": 1, + "charOffset": 17672, + "charLength": 238, + "snippet": { + "text": " byte[] callBytes = BitConverter.GetBytes((ulong)callPtr);\r\n Array.Copy(callBytes, 0, asm, 0x6, 8);\r\n byte[] resultBytes = BitConverter.GetBytes((ulong)resultPtr);\r\n Array.Copy(resultBytes, 0, asm, 0x13, 8);\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a3ad794df5806988", + "equalIndicator/v1": "6e2bbc0d58687dcd91ea2538bd4a3db3319b52b11f63645080216b99053a2ca2" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Sl2Reader.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 81, + "startColumn": 21, + "charOffset": 2916, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 79, + "startColumn": 1, + "charOffset": 2790, + "charLength": 288, + "snippet": { + "text": " byte[] file = File.ReadAllBytes(path);\r\n file = DecryptSl2(file);\r\n int saveSlotSize = 0x60030;\r\n int igtOffset = 0x2EC + (saveSlotSize * slot);\r\n igt = BitConverter.ToInt32(file, igtOffset);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9e725e1387238dd4", + "equalIndicator/v1": "7057ecaa3e893508f81b88211354e83e43f262d3b5f52c909aa3ae0f5301c00a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 477, + "startColumn": 13, + "charOffset": 16634, + "charLength": 6, + "snippet": { + "text": "string" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 475, + "startColumn": 1, + "charOffset": 16556, + "charLength": 285, + "snippet": { + "text": " {\r\n Match match = _assemblyRegex.Match(line);\r\n string hexes = match.Groups[1].Value;\r\n foreach (Match hex in Regex.Matches(hexes, @\"\\S+\"))\r\n bytes.Add(Byte.Parse(hex.Value, System.Globalization.NumberStyles.AllowHexSpecifier));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "fd580214af259d89", + "equalIndicator/v1": "73fbf8974ea7a25a0a01d235e7fb5390903563ec9bc110780fc0a90757163aaf" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 54, + "startColumn": 9, + "charOffset": 1768, + "charLength": 4, + "snippet": { + "text": "long" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 52, + "startColumn": 1, + "charOffset": 1719, + "charLength": 193, + "snippet": { + "text": " public long ResolveOffsets()\r\n {\r\n long currentAddress = AbsoluteOffset;//0 for standard pointers. Only has a value when coming from an absolute scan\r\n\r\n //Resolve offsets\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4472c8465efdcd86", + "equalIndicator/v1": "7889c743dbaeceab2e5923b489230572c9c20154270e8aac433e67eb8b62d138" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 350, + "startColumn": 18, + "charOffset": 12233, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 348, + "startColumn": 1, + "charOffset": 12162, + "charLength": 171, + "snippet": { + "text": " var bytes = strPointer.ReadBytes(128);\r\n\r\n for (int i = 0; i < 128; i += 2)\r\n {\r\n if (bytes[i] == 0 && bytes[i + 1] == 0)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "73b033ac360a280d", + "equalIndicator/v1": "80fca6ef383509760b471753d8ce59aa25cdea2b96c83e3ff6d23b344dcc3847" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 128, + "startColumn": 52, + "charOffset": 5180, + "charLength": 4, + "snippet": { + "text": "long" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 126, + "startColumn": 1, + "charOffset": 5048, + "charLength": 264, + "snippet": { + "text": " result = 0;\r\n var pattern = pointerNode.Pattern.ToBytePattern();\r\n if (bytes.TryBoyerMooreSearch(pattern, out long scanResult))\r\n {\r\n var address = BitConverter.ToInt32(bytes, (int)(scanResult + pointerNode.AddressOffset));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "72d01532945fb085", + "equalIndicator/v1": "8145475cae85bd5b9b301ce2471893d5ef6f36f0efca83a859a5f66e1b299c91" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 92, + "startColumn": 14, + "charOffset": 2584, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 90, + "startColumn": 1, + "charOffset": 2536, + "charLength": 132, + "snippet": { + "text": "\r\n long ptr = BaseAddress;\r\n for (int i = 0; i < offsets.Count; i++)\r\n {\r\n var offset = offsets[i];\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e80b73216c81b38f", + "equalIndicator/v1": "82a64a601a643a6e7ad71d17f53381b821442e82ff43bdef6c41013ed0aaf95a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Sl2Reader.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 79, + "startColumn": 21, + "charOffset": 2810, + "charLength": 6, + "snippet": { + "text": "byte[]" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 77, + "startColumn": 1, + "charOffset": 2685, + "charLength": 259, + "snippet": { + "text": " {\r\n // Each USERDATA file is individually AES - 128 - CBC encrypted.\r\n byte[] file = File.ReadAllBytes(path);\r\n file = DecryptSl2(file);\r\n int saveSlotSize = 0x60030;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "bb6f844cb2bd03c8", + "equalIndicator/v1": "8613211867e17260a8dfa4a81a34c5bae69cf26999dbfd3d6097ab69f3639c88" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 349, + "startColumn": 9, + "charOffset": 12173, + "charLength": 6, + "snippet": { + "text": "string" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 347, + "startColumn": 1, + "charOffset": 12089, + "charLength": 176, + "snippet": { + "text": " private int GetEventFlagOffset(uint eventFlagId, out uint mask)\r\n {\r\n string idString = eventFlagId.ToString(\"D8\");\r\n if (idString.Length == 8)\r\n {\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7ab201f5ad9f221d", + "equalIndicator/v1": "87b1e66f0c925786ee5a3b63eba9e591a69c8f53569716aebed99e04d6581231" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Native/Kernel32.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 251, + "startColumn": 9, + "charOffset": 9431, + "charLength": 4, + "snippet": { + "text": "uint" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 249, + "startColumn": 1, + "charOffset": 9337, + "charLength": 180, + "snippet": { + "text": " uint arraySize = 256;\r\n IntPtr[] processMods = new IntPtr[arraySize];\r\n uint arrayBytesSize = arraySize * (uint)IntPtr.Size;\r\n uint bytesCopied = 0;\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "26e4481f36f1ec64", + "equalIndicator/v1": "89e8f48c3c18a283ca4ce3e780c3e55270786042b83ed8ab4619a19eb4a5980f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/BaseParam.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 183, + "startColumn": 14, + "charOffset": 7151, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 181, + "startColumn": 1, + "charOffset": 7109, + "charLength": 234, + "snippet": { + "text": "\r\n var bitIndex = 0;\r\n for (int i = bitfield.paramFieldAttribute.BitsOffset; i < bitfield.paramFieldAttribute.BitsOffset + bitfield.paramFieldAttribute.Bits; i++)\r\n {\r\n if (newValue.IsBitSet(bitIndex))\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a5578cfb1f000695", + "equalIndicator/v1": "90ca8136046659022dd242666a904e7d3680883a8dc7bcfd45ae3786fc3f3ca4" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 42, + "startColumn": 9, + "charOffset": 1755, + "charLength": 6, + "snippet": { + "text": "object" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 40, + "startColumn": 1, + "charOffset": 1734, + "charLength": 145, + "snippet": { + "text": " }\r\n\r\n object errorLock = new object();\r\n var errorsList = new List<(string fileName, string patternName, long count)>();\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b38989fba9d47234", + "equalIndicator/v1": "92527ae454b1b939f1a05db06a3673176374a77c495446f46329eae28b5a8c7e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/FlagTrackerViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 164, + "startColumn": 13, + "charOffset": 5313, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 162, + "startColumn": 1, + "charOffset": 5265, + "charLength": 154, + "snippet": { + "text": "\r\n //Check the next x flags\r\n for(int i = 0; i < FlagsPerFrame; i++)\r\n {\r\n var (category, flag) = _lookup[_currentIndex];\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ea3fa073ef7d3e55", + "equalIndicator/v1": "952c0eb4005e0d283e2a21bf4c830ffcf4478609d5e27410631df79f59154ab5" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 374, + "startColumn": 9, + "charOffset": 13155, + "charLength": 4, + "snippet": { + "text": "uint" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 372, + "startColumn": 1, + "charOffset": 13070, + "charLength": 174, + "snippet": { + "text": " {\r\n int offset = GetEventFlagOffset(eventFlagId, out uint mask);\r\n uint value = _eventFlags.ReadUInt32(offset);\r\n return (value & mask) != 0;\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "904e403b02c31c81", + "equalIndicator/v1": "96df9210bd21f227847473f7317b6819c0816a77b3f95babc5d9216b822bafd0" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 294, + "startColumn": 13, + "charOffset": 10392, + "charLength": 6, + "snippet": { + "text": "string" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 292, + "startColumn": 1, + "charOffset": 10315, + "charLength": 244, + "snippet": { + "text": " {\r\n string group = idString.Substring(0, 1);\r\n string area = idString.Substring(1, 3);\r\n int section = int.Parse(idString.Substring(4, 1));\r\n int number = int.Parse(idString.Substring(5, 3));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4464987f842e260f", + "equalIndicator/v1": "9ba41893535ed200af8b2c9aa19c1f7505c29104ca9f9503eabca2d07d58875b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Converters/ColorToHexTextConverter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 42, + "startColumn": 17, + "charOffset": 1565, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 40, + "startColumn": 1, + "charOffset": 1517, + "charLength": 215, + "snippet": { + "text": " try\r\n {\r\n int rgb = System.Convert.ToInt32(hex.Remove(0, 1), 16);\r\n var r = (byte)((rgb & 0xff0000) >> 16);\r\n var g = (byte)((rgb & 0xff00) >> 8);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4de2c54d9ebf4e41", + "equalIndicator/v1": "9bd64982c642361d9504f4ca6a2869d556d0ad917534e5b75d80119942078ea8" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/DropMod.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 27, + "startColumn": 14, + "charOffset": 1114, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 25, + "startColumn": 1, + "charOffset": 975, + "charLength": 231, + "snippet": { + "text": " {\r\n darkSouls.WriteWeaponDescription(1105000, \"Dropmod!\\n\\nAffected:\\nBlack Knight Halberd\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\");\r\n for (int i = 0; i < 62; i++)\r\n {\r\n darkSouls.SetLoadingScreenItem(i, 1105000);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "30247c9ee9cf7150", + "equalIndicator/v1": "9c2813d3083c6e680d735c215b22e1c25d497bb5d9a7e51a44dceae6714259a7" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Item.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 48, + "startColumn": 9, + "charOffset": 1775, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 46, + "startColumn": 1, + "charOffset": 1729, + "charLength": 161, + "snippet": { + "text": " public int GetGameValue()\r\n {\r\n int id = (int)ItemType;\r\n if (Upgrade is ItemUpgrade.PyroFlame or ItemUpgrade.PyroFlameAscended)\r\n {\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "3b8d9a0ef800ee25", + "equalIndicator/v1": "a25ade25b501cf591f85b91bb93d7d21305ea3ae3cdd29f8ef8ed8db9e06683d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/ItemReader.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 71, + "startColumn": 17, + "charOffset": 2831, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 69, + "startColumn": 1, + "charOffset": 2782, + "charLength": 155, + "snippet": { + "text": "\r\n //Decode item\r\n int id = 0;\r\n ItemInfusion infusion = ItemInfusion.Normal;\r\n int level = 0;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "1cdbd2140493efcc", + "equalIndicator/v1": "a3495c5d639f2d806484a7fad7a550f9e65ee14551c7921cac4e753e342985cb" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Validation/TextToNumberValidation.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 85, + "startColumn": 127, + "charOffset": 2809, + "charLength": 5, + "snippet": { + "text": "float" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 83, + "startColumn": 1, + "charOffset": 2644, + "charLength": 290, + "snippet": { + "text": "\r\n case NumericType.Float:\r\n if (!float.TryParse(text, NumberStyles.Float | NumberStyles.AllowThousands, CultureInfo.InvariantCulture, out float f))\r\n {\r\n return new ValidationResult(false, \"Input is not a valid decimal number\");\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "2b8689a02d941cad", + "equalIndicator/v1": "a7a5d3f10cbfec03c4194c80def54a0497d9e570a0bb17258b8c19afd47f7aa0" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 429, + "startColumn": 9, + "charOffset": 14668, + "charLength": 6, + "snippet": { + "text": "string" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 427, + "startColumn": 1, + "charOffset": 14622, + "charLength": 120, + "snippet": { + "text": " private int GetSteamId3()\r\n {\r\n string name = \"steam_api64.dll\";\r\n ProcessModule? module = null;\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "590be8b7a8bcf33a", + "equalIndicator/v1": "a82331e3c4c9f194f637de2915072d6e308b68fcc2ee9bb109fe3f2d08740476" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 293, + "startColumn": 13, + "charOffset": 10338, + "charLength": 6, + "snippet": { + "text": "string" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 291, + "startColumn": 1, + "charOffset": 10280, + "charLength": 216, + "snippet": { + "text": " if (idString.Length == 8)\r\n {\r\n string group = idString.Substring(0, 1);\r\n string area = idString.Substring(1, 3);\r\n int section = int.Parse(idString.Substring(4, 1));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f8175246c85a4829", + "equalIndicator/v1": "aaa6a054ca75a9a33d8a3c4b775c3019c2f3676557fee9bb875ed74936cfe077" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/ItemReader.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 110, + "startColumn": 21, + "charOffset": 4660, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 108, + "startColumn": 1, + "charOffset": 4582, + "charLength": 202, + "snippet": { + "text": " {\r\n //Separate digits\r\n int one = item % 10;\r\n int ten = (item / 10) % 10;\r\n int hundred = (item / 100) % 10;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0aeee0ba06bdecab", + "equalIndicator/v1": "aac69079d16c08abb1cb2fc7b5d53d48bdffccb5cde82b4796e53f4881cc47d9" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/DropMod.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 38, + "startColumn": 14, + "charOffset": 1603, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 36, + "startColumn": 1, + "charOffset": 1316, + "charLength": 379, + "snippet": { + "text": " darkSouls.WriteWeaponDescription(1004000, \"Dropmod!\\n\\nAffected:\\nBlack Knight Halberd/Sword/Greatsword/Greataxe/Shield\\nSilver Knight Straight Sword/Spear/Shield\\nStone Greatsword/Greatshield\\nChanneler's Trident\\nSouvenir of Reprisal\\nEye of Death\\n\\n\\n\\n\\n\");\r\n\r\n for (int i = 0; i < 62; i++)\r\n {\r\n darkSouls.SetLoadingScreenItem(i, 1004000);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e92a2d3746490705", + "equalIndicator/v1": "abcce10336b41c6821ac27a203d70947b48b053096c440dbe9d0b3ac5f4085e7" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 106, + "startColumn": 9, + "charOffset": 4217, + "charLength": 6, + "snippet": { + "text": "object" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 104, + "startColumn": 1, + "charOffset": 4196, + "charLength": 145, + "snippet": { + "text": " }\r\n\r\n object errorLock = new object();\r\n var errorsList = new List<(string fileName, string patternName, long count)>();\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "90a479ad65d475e9", + "equalIndicator/v1": "ad03e7275ee0947852c9f5a5bf51b65fb215788dcbfb73cb7d92aadfe47e991f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Sl2Reader.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 67, + "startColumn": 21, + "charOffset": 2306, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 65, + "startColumn": 1, + "charOffset": 2207, + "charLength": 202, + "snippet": { + "text": " {\r\n byte[] file = File.ReadAllBytes(path);\r\n int saveSlotSize = 0x60020;\r\n\r\n // Seems like GFWL files have a different slot size\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "088f020716d06922", + "equalIndicator/v1": "af304008f1668db12c33e8e83af2dab82fda8df3ea4315a44d9767f04b0aa20d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/Pointer.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 91, + "startColumn": 9, + "charOffset": 2546, + "charLength": 4, + "snippet": { + "text": "long" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 89, + "startColumn": 1, + "charOffset": 2476, + "charLength": 154, + "snippet": { + "text": " debugStringBuilder?.Append($\" 0x{BaseAddress:x}\");\r\n\r\n long ptr = BaseAddress;\r\n for (int i = 0; i < offsets.Count; i++)\r\n {\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e1666af60d2db184", + "equalIndicator/v1": "b193baf825eb899127e3efaf816f9cfbc800c18fd07b7a4e8f141592e88e50c4" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 355, + "startColumn": 13, + "charOffset": 12451, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 353, + "startColumn": 1, + "charOffset": 12320, + "charLength": 274, + "snippet": { + "text": " string area = idString.Substring(1, 3);\r\n int section = Int32.Parse(idString.Substring(4, 1));\r\n int number = Int32.Parse(idString.Substring(5, 3));\r\n\r\n if (EventFlagGroups.ContainsKey(group) && EventFlagAreas.ContainsKey(area))\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7feeb7c58556962e", + "equalIndicator/v1": "b3bf28a7a0065d959b77dbb963b9a7c4ef45359d3442f148db7f67dc3cb46455" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Migrations/Migrator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 124, + "startColumn": 76, + "charOffset": 6092, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 122, + "startColumn": 1, + "charOffset": 5824, + "charLength": 360, + "snippet": { + "text": " if (\r\n SoulMemory.DarkSouls3.Attribute.TryParse(attributeType.InnerText, out SoulMemory.DarkSouls3.Attribute attributeTypeParsed) &&\r\n int.TryParse(attributeLevel.InnerText, out int attributeLevelParsed)\r\n )\r\n {\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "964dab8ab5b482ab", + "equalIndicator/v1": "b4624a3152b8d14fd95ed1330ad51c27ea393b4f1983589e307970707142b4ec" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/EldenRing.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 399, + "startColumn": 13, + "charOffset": 13194, + "charLength": 4, + "snippet": { + "text": "byte" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 397, + "startColumn": 1, + "charOffset": 13156, + "charLength": 134, + "snippet": { + "text": " ], 0);\r\n \r\n byte cat = inventory[itemIndex + 0X7];\r\n byte mask = 0xF0;\r\n cat &= mask;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "888706b1e9fbcea9", + "equalIndicator/v1": "b64618a18463d1acf3969a46c2277e462fd3d422546dab5b872a752967b4182c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/EldenRing.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 386, + "startColumn": 14, + "charOffset": 12825, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 384, + "startColumn": 1, + "charOffset": 12722, + "charLength": 203, + "snippet": { + "text": " var inventory = _inventory.ReadBytes(inventoryCount * InventoryEntrySize);\r\n \r\n for (int i = 0; i < inventoryCount; i++)\r\n {\r\n var itemIndex = i * InventoryEntrySize;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0df661a3043c1a30", + "equalIndicator/v1": "baeec25f59c74b205d8cc696c1623195561f0c5aa0936e828221c5a05050e05b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 300, + "startColumn": 17, + "charOffset": 10682, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 298, + "startColumn": 1, + "charOffset": 10562, + "charLength": 256, + "snippet": { + "text": " if (EventFlagGroups.ContainsKey(group) && EventFlagAreas.ContainsKey(area))\r\n {\r\n int offset = EventFlagGroups[group];\r\n offset += EventFlagAreas[area] * 0x500;\r\n offset += section * 128;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "fc8c7b9771d7d700", + "equalIndicator/v1": "c4a537bb2a1d41b8906af33eb2265191a0d432204515825b01c691ea08c82ef9" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Hotkeys/GlobalHotKey.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 62, + "startColumn": 9, + "charOffset": 2216, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 60, + "startColumn": 1, + "charOffset": 2135, + "charLength": 175, + "snippet": { + "text": "\r\n var virtualKeyCode = (Keys)KeyInterop.VirtualKeyFromKey(key);\r\n int id = Interlocked.Increment(ref _currentId);\r\n\r\n Delegate register = (Action)(() =>\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7cceb2948f39055c", + "equalIndicator/v1": "c8e88d14619937eff8bfe6b66dc0bad850bff89433864361c2698901c2f537b3" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls2/scholar.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 127, + "startColumn": 14, + "charOffset": 4373, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 125, + "startColumn": 1, + "charOffset": 4284, + "charLength": 259, + "snippet": { + "text": " var vector = _eventFlagManager.CreatePointerFromAddress(offset);\r\n\r\n for (int i = 0; i < 100; i++) //Replaced infinite while with for loop, in case some memes occur and the function never returns\r\n {\r\n if (vector.IsNullPtr())\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "79cdfe06e626fc16", + "equalIndicator/v1": "c9982f0aa84c7a316d421e2a3428d6964b823e7c60838610278ad24432d4bebc" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 102, + "startColumn": 14, + "charOffset": 3340, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 100, + "startColumn": 1, + "charOffset": 3251, + "charLength": 184, + "snippet": { + "text": " var data = memory.ReadBytes(offset, maxSize);\r\n length = 0;\r\n for (int i = 1; i < data.Length; i++)\r\n {\r\n if (data[i - 1] == 0 && data[i] == 0)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e8cd3cd0581f42b6", + "equalIndicator/v1": "cc8f2863cf17202fac088e340e7a821a8de497ae4e53bff14c0a629bc636293f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 373, + "startColumn": 9, + "charOffset": 13085, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 371, + "startColumn": 1, + "charOffset": 13021, + "charLength": 216, + "snippet": { + "text": " public bool ReadEventFlag(uint eventFlagId)\r\n {\r\n int offset = GetEventFlagOffset(eventFlagId, out uint mask);\r\n uint value = _eventFlags.ReadUInt32(offset);\r\n return (value & mask) != 0;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7d751d67418bb2e1", + "equalIndicator/v1": "cf2d35e9baf9217a34e0fa283f7173aa938aefc33e61c3846f9af1240a09718e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Native/Kernel32.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 127, + "startColumn": 9, + "charOffset": 4674, + "charLength": 4, + "snippet": { + "text": "long" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 125, + "startColumn": 1, + "charOffset": 4498, + "charLength": 273, + "snippet": { + "text": " var result = new List();\r\n var maxAddress = (process.MainModule.BaseAddress + process.MainModule.ModuleMemorySize).ToInt64();\r\n long address = process.MainModule.BaseAddress.ToInt64();\r\n\r\n while (address < maxAddress)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "93a7e8f762424bbf", + "equalIndicator/v1": "cf7929fb2f090ae7f1f491eb36e7e8751229d3d0a1e3e0824681c388ee0e81d8" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 353, + "startColumn": 13, + "charOffset": 12332, + "charLength": 6, + "snippet": { + "text": "string" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 351, + "startColumn": 1, + "charOffset": 12255, + "charLength": 248, + "snippet": { + "text": " {\r\n string group = idString.Substring(0, 1);\r\n string area = idString.Substring(1, 3);\r\n int section = Int32.Parse(idString.Substring(4, 1));\r\n int number = Int32.Parse(idString.Substring(5, 3));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0792da9354c2155d", + "equalIndicator/v1": "d0c6f873537e1203cb58460d06aa372cd67264dc1a3fde4e959abea9bc71b80b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 290, + "startColumn": 9, + "charOffset": 10233, + "charLength": 6, + "snippet": { + "text": "string" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 288, + "startColumn": 1, + "charOffset": 10149, + "charLength": 176, + "snippet": { + "text": " private int GetEventFlagOffset(uint eventFlagId, out uint mask)\r\n {\r\n string idString = eventFlagId.ToString(\"D8\");\r\n if (idString.Length == 8)\r\n {\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9feffad78a2eda29", + "equalIndicator/v1": "d0f778a272d7d0fb788ca75bf0f5566907ad87477be60696eb024f5e72908ccc" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Sekiro/Sekiro.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 574, + "startColumn": 9, + "charOffset": 21328, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 572, + "startColumn": 1, + "charOffset": 21242, + "charLength": 224, + "snippet": { + "text": " //fix detour\r\n var igtFixDetourCode = new List(){0xE9};\r\n int detourTarget = (int) (igtFixCodeLoc-(igtFixEntryPoint+5));\r\n igtFixDetourCode.AddRange(BitConverter.GetBytes(detourTarget));\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "3f55175fccf13820", + "equalIndicator/v1": "d2644bd501170252ab04cc63c9ba87ed559f806f5500b5abad915719a99bc78a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 373, + "startColumn": 58, + "charOffset": 13134, + "charLength": 4, + "snippet": { + "text": "uint" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 371, + "startColumn": 1, + "charOffset": 13021, + "charLength": 216, + "snippet": { + "text": " public bool ReadEventFlag(uint eventFlagId)\r\n {\r\n int offset = GetEventFlagOffset(eventFlagId, out uint mask);\r\n uint value = _eventFlags.ReadUInt32(offset);\r\n return (value & mask) != 0;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "8b7f9ccdea71a899", + "equalIndicator/v1": "d525941dcba4acdd83ece6460c2b09b9d97ca5b3220bda7b49b86d2fc3c17ce5" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 338, + "startColumn": 9, + "charOffset": 12813, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 336, + "startColumn": 1, + "charOffset": 12721, + "charLength": 161, + "snippet": { + "text": " public static int BoyerMooreCount(this byte[] haystack, byte?[] needle)\r\n {\r\n int result = 0;\r\n var lastPatternIndex = needle.Length - 1;\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "267fdf2605e27d9f", + "equalIndicator/v1": "d61fed4e1e0b20f6238871368e4c0bb1e345195903aa13061a83869fdcfd9944" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 382, + "startColumn": 14, + "charOffset": 13370, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 380, + "startColumn": 1, + "charOffset": 13309, + "charLength": 164, + "snippet": { + "text": " public void ResetInventoryIndices()\r\n {\r\n for (int i = 0; i < 20; i++)\r\n {\r\n _inventoryIndices.WriteUint32(0x4 * i, uint.MaxValue);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c9806180d1aae283", + "equalIndicator/v1": "daf3591b92212fc43cb8e9f2b1e84580ebcb428af88ac8d5378cd5c00cb6d192" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Migrations/Migrator.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 139, + "startColumn": 68, + "charOffset": 7014, + "charLength": 4, + "snippet": { + "text": "uint" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 137, + "startColumn": 1, + "charOffset": 6845, + "charLength": 298, + "snippet": { + "text": " {\r\n var split = flag.GetChildNodeByName(\"Split\");\r\n if (uint.TryParse(split.InnerText, out uint u))\r\n {\r\n newDarkSouls3ViewModel.NewSplitTimingType = timingType;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "45ebd3cfe1cd880b", + "equalIndicator/v1": "db61a9f3d87d815986ab5fc11261f3ee086d5453e036a56bfb754b7441fe3cf6" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 314, + "startColumn": 9, + "charOffset": 11145, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 312, + "startColumn": 1, + "charOffset": 11081, + "charLength": 216, + "snippet": { + "text": " public bool ReadEventFlag(uint eventFlagId)\r\n {\r\n int offset = GetEventFlagOffset(eventFlagId, out uint mask);\r\n uint value = _eventFlags.ReadUInt32(offset);\r\n return (value & mask) != 0;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "858eea39dae2e289", + "equalIndicator/v1": "dbce96d4a58374dd706cd54e8945b41f733e3a28bcd7da3d53e794fa4a1fd5b3" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 296, + "startColumn": 13, + "charOffset": 10509, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 294, + "startColumn": 1, + "charOffset": 10380, + "charLength": 270, + "snippet": { + "text": " string area = idString.Substring(1, 3);\r\n int section = int.Parse(idString.Substring(4, 1));\r\n int number = int.Parse(idString.Substring(5, 3));\r\n\r\n if (EventFlagGroups.ContainsKey(group) && EventFlagAreas.ContainsKey(area))\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c96f670c6bac36e8", + "equalIndicator/v1": "dda6fc94da64c3dc2bf5bfc245b670611067a81518941227c57aa4032dec75ce" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Sekiro/Sekiro.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 609, + "startColumn": 9, + "charOffset": 23086, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 607, + "startColumn": 1, + "charOffset": 23063, + "charLength": 156, + "snippet": { + "text": " ]);\r\n\r\n int jmpTarget = (int)((igtFixEntryPoint+5)-(igtFixCodeLoc+103+5));\r\n igtFixCode.AddRange(BitConverter.GetBytes(jmpTarget));\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "197bcd4304fd272e", + "equalIndicator/v1": "de7d3bf0338d947ec0a972424dc94880b00adacafaa873854922005d3437bc96" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/IMemory.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 103, + "startColumn": 14, + "charOffset": 3375, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 101, + "startColumn": 1, + "charOffset": 3286, + "charLength": 184, + "snippet": { + "text": " var data = memory.ReadBytes(offset, maxSize);\r\n length = 0;\r\n for (int i = 1; i < data.Length; i++)\r\n {\r\n if (data[i - 1] == 0 && data[i] == 0)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "8912684d13160e25", + "equalIndicator/v1": "e027f0bb6b3c9c9b2bc0498099fae38365ef13cdbbb8fa981f0fdde72399c0ae" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerTreeBuilder.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 72, + "startColumn": 13, + "charOffset": 2711, + "charLength": 4, + "snippet": { + "text": "bool" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 70, + "startColumn": 1, + "charOffset": 2654, + "charLength": 137, + "snippet": { + "text": " {\r\n long scanResult = 0;\r\n bool success = false;\r\n switch (node.PointerNodeType)\r\n {\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "3a36c095945a9d2f", + "equalIndicator/v1": "ea9329d8dcb15f0ef043deaac5ba5442499fb993f292d5a0a069e9a5d73d6ab6" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/BaseParam.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 163, + "startColumn": 14, + "charOffset": 6367, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 161, + "startColumn": 1, + "charOffset": 6301, + "charLength": 255, + "snippet": { + "text": " var bitIndex = 0;\r\n long result = 0;\r\n for (int i = bitfield.paramFieldAttribute.BitsOffset; i < bitfield.paramFieldAttribute.BitsOffset + bitfield.paramFieldAttribute.Bits; i++)\r\n {\r\n if (currentValue.IsBitSet(i))\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "aaef7f814cc87113", + "equalIndicator/v1": "ec2b833326b374ebb541f397b53dd459f7d2e58dc280291d4ae85fc1e4fd45d8" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Sekiro/Sekiro.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 281, + "startColumn": 18, + "charOffset": 10476, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 279, + "startColumn": 1, + "charOffset": 10414, + "charLength": 166, + "snippet": { + "text": "\r\n //Loop over worldInfo structs\r\n for (int i = 0; i < size; i++)\r\n {\r\n var area = vector.ReadByte((i * 0x38) + 0xb);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "13ba0989e850fe45", + "equalIndicator/v1": "ed47ca219e2eaef2b67105c6e9d126a301f0078fec095afe151ceac21df18cc0" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 552, + "startColumn": 57, + "charOffset": 19670, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 550, + "startColumn": 1, + "charOffset": 19435, + "charLength": 332, + "snippet": { + "text": " var dataOffset = weaponDescriptionsPointer.ReadInt32(0x14);\r\n var textOffset = weaponDescriptionsPointer.ReadInt32(dataOffset + weaponDescription.DataOffset * 4);\r\n weaponDescriptionsPointer.ReadUnicodeString(out int length, offset: textOffset);\r\n\r\n var buffer = Encoding.Unicode.GetBytes(description);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e3467ab4631af659", + "equalIndicator/v1": "edf18b7d157f7570e8379166e76c7d21eb0bd93b4cf3d2c4740a5fa33785d127" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 297, + "startColumn": 17, + "charOffset": 10779, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 295, + "startColumn": 1, + "charOffset": 10703, + "charLength": 195, + "snippet": { + "text": " if (bonfireId == (int)bonfire)\r\n { \r\n int bonfireState = netBonfireDbItem.ReadInt32(0xc);\r\n return (BonfireState)bonfireState;\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b087c2d18c162a6c", + "equalIndicator/v1": "f0cc4a6100d412be0d7c407e8377576b3949c3a232a42029ba548b7b8e0e7708" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/EldenRing.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 368, + "startColumn": 14, + "charOffset": 12375, + "charLength": 3, + "snippet": { + "text": "int" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 366, + "startColumn": 1, + "charOffset": 12308, + "charLength": 133, + "snippet": { + "text": " private int DeleteFromEnd(int num, int n)\r\n {\r\n for (int i = 1; num != 0; i++)\r\n {\r\n num = num / 10;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4c1fdfa2cdc8f6bd", + "equalIndicator/v1": "f63b7370342d0d389e66a3fb7074885554df78c36b73d275b8821f3e42955e4b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 501, + "startColumn": 9, + "charOffset": 17625, + "charLength": 6, + "snippet": { + "text": "byte[]" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 499, + "startColumn": 1, + "charOffset": 17559, + "charLength": 227, + "snippet": { + "text": "\r\n // build asm and replace the function pointers\r\n byte[] asm = LoadDefuseOutput(IsJapaneseAsm);\r\n byte[] callBytes = BitConverter.GetBytes((ulong)callPtr);\r\n Array.Copy(callBytes, 0, asm, 0x6, 8);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4fa8e9169b9fc8d1", + "equalIndicator/v1": "fa4ccb1371b46e2f74c5c4c4dc0cf5c21f0e41d9415b7179bf03601e7096f0f1" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 352, + "startColumn": 13, + "charOffset": 12278, + "charLength": 6, + "snippet": { + "text": "string" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 350, + "startColumn": 1, + "charOffset": 12220, + "charLength": 218, + "snippet": { + "text": " if (idString.Length == 8)\r\n {\r\n string group = idString.Substring(0, 1);\r\n string area = idString.Substring(1, 3);\r\n int section = Int32.Parse(idString.Substring(4, 1));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ff1d8dbb5b6e5c14", + "equalIndicator/v1": "fec01f056ba450efcc666ad11bf8f8cf83b8e8ec7730df23b37522f8f9df098e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_BuiltInTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (built-in types)", + "markdown": "Use 'var' (built-in types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Native/Kernel32.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 149, + "startColumn": 121, + "charOffset": 5842, + "charLength": 4, + "snippet": { + "text": "uint" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 147, + "startColumn": 1, + "charOffset": 5619, + "charLength": 300, + "snippet": { + "text": " public static Result WriteProcessMemory(this Process process, long address, byte[] buffer)\r\n {\r\n var result = NativeMethods.WriteProcessMemory(process.Handle, (IntPtr)address, buffer, (uint)buffer.Length, out uint bytesWritten);\r\n\r\n if (!result || bytesWritten != buffer.Length)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "3b326affe7ce671d", + "equalIndicator/v1": "fed98adf31c7d8fb6f98b31796dcf39c567a8a27767222f674e9d9732407ff63" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_Elsewhere", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (elsewhere)", + "markdown": "Use 'var' (elsewhere)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Native/Kernel32.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 250, + "startColumn": 9, + "charOffset": 9376, + "charLength": 8, + "snippet": { + "text": "IntPtr[]" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 248, + "startColumn": 1, + "charOffset": 9330, + "charLength": 185, + "snippet": { + "text": " {\r\n uint arraySize = 256;\r\n IntPtr[] processMods = new IntPtr[arraySize];\r\n uint arrayBytesSize = arraySize * (uint)IntPtr.Size;\r\n uint bytesCopied = 0;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "1c907989cc0f2272", + "equalIndicator/v1": "6d30512c3d47572aa3f76b0524833a481f6746d9e040b29794d1fb87a16ed3bd" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (simple types)", + "markdown": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/SoulComponent.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 255, + "startColumn": 13, + "charOffset": 9061, + "charLength": 19, + "snippet": { + "text": "XmlDocumentFragment" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 253, + "startColumn": 1, + "charOffset": 8977, + "charLength": 229, + "snippet": { + "text": " {\r\n var xml = MainWindow.MainViewModel.Serialize();\r\n XmlDocumentFragment fragment = document.CreateDocumentFragment();\r\n fragment.InnerXml = xml;\r\n root.AppendChild(fragment);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4f48d4a330f6c705", + "equalIndicator/v1": "09ec64cda7591d44de8a8c78c1a4eca9aab1e3c5aa0af2245ddc0588e8b9d701" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (simple types)", + "markdown": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 476, + "startColumn": 13, + "charOffset": 16579, + "charLength": 5, + "snippet": { + "text": "Match" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 474, + "startColumn": 1, + "charOffset": 16492, + "charLength": 245, + "snippet": { + "text": " foreach (string line in Regex.Split(lines, \"[\\r\\n]+\"))\r\n {\r\n Match match = _assemblyRegex.Match(line);\r\n string hexes = match.Groups[1].Value;\r\n foreach (Match hex in Regex.Matches(hexes, @\"\\S+\"))\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ed2f07b9907fa730", + "equalIndicator/v1": "1b91390c0215e78a03e91e48b580f4e1cfe25efcf7cd6bfb443477427214f658" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (simple types)", + "markdown": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 498, + "startColumn": 9, + "charOffset": 17514, + "charLength": 6, + "snippet": { + "text": "IntPtr" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 496, + "startColumn": 1, + "charOffset": 17398, + "charLength": 218, + "snippet": { + "text": " var getRegionAddress = _getRegion.BaseAddress;\r\n IntPtr callPtr = (IntPtr)getRegionAddress;\r\n IntPtr resultPtr = _process!.Allocate(0x4);\r\n\r\n // build asm and replace the function pointers\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "96fa565b3e24e5b4", + "equalIndicator/v1": "31fac4c145210027057223aa140995dd740d4d2cfaecc3e68d2271aedb56248a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (simple types)", + "markdown": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Native/Gdi32.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 32, + "startColumn": 16, + "charOffset": 1339, + "charLength": 8, + "snippet": { + "text": "Graphics" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 30, + "startColumn": 1, + "charOffset": 1272, + "charLength": 167, + "snippet": { + "text": " {\r\n var screenPixel = new Bitmap(1, 1);\r\n using (Graphics gdest = Graphics.FromImage(screenPixel))\r\n {\r\n var hDC = gdest.GetHdc();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "8de3d4ce38bf6c71", + "equalIndicator/v1": "349d703d81809b025958be39d6e2c437cb33ab814bc61b01fb38988166a63d44" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (simple types)", + "markdown": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Native/Kernel32.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 277, + "startColumn": 9, + "charOffset": 10707, + "charLength": 6, + "snippet": { + "text": "IntPtr" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 275, + "startColumn": 1, + "charOffset": 10641, + "charLength": 139, + "snippet": { + "text": " {\r\n var modules = new List();\r\n IntPtr handleToSnapshot = IntPtr.Zero;\r\n\r\n void CleanupSnapshot()\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "3d42b810ab35a864", + "equalIndicator/v1": "5bb20acbe44652711fef14ffc5645ffae2729e5e2507fb1cf14061355b940547" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (simple types)", + "markdown": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/DropMod.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 78, + "startColumn": 18, + "charOffset": 2709, + "charLength": 14, + "snippet": { + "text": "SwitchableDrop" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 76, + "startColumn": 1, + "charOffset": 2645, + "charLength": 214, + "snippet": { + "text": " public void ResetAllAchievements()\r\n {\r\n foreach (SwitchableDrop temp in _switchableWeapons)\r\n {\r\n var s = temp; //structs need to be put in a variable in order to be mutable. Meme.\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4051f175b5d2dcbb", + "equalIndicator/v1": "69c83fe472cceb7984e19fc1935f77058591b0ac63d3e25c4d7f9dd5fcc1ece5" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (simple types)", + "markdown": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Native/Kernel32.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 290, + "startColumn": 13, + "charOffset": 11040, + "charLength": 14, + "snippet": { + "text": "MODULEENTRY32W" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 288, + "startColumn": 1, + "charOffset": 11004, + "charLength": 314, + "snippet": { + "text": " try\r\n {\r\n MODULEENTRY32W procEntry = new MODULEENTRY32W();\r\n procEntry.dwSize = (UInt32)Marshal.SizeOf(typeof(MODULEENTRY32W));\r\n handleToSnapshot = NativeMethods.CreateToolhelp32Snapshot((uint)SnapshotFlags.Module | (uint)SnapshotFlags.Module32, (uint)process.Id);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "640bf00a263562a5", + "equalIndicator/v1": "78964565949a879341f8ad15938b3c18a0dda4331c95b8e8422daded3307a1eb" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (simple types)", + "markdown": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 84, + "startColumn": 54, + "charOffset": 3624, + "charLength": 7, + "snippet": { + "text": "Version" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 82, + "startColumn": 1, + "charOffset": 3465, + "charLength": 331, + "snippet": { + "text": " var versionString = _process?.MainModule?.FileVersionInfo.ProductVersion ?? \"Read failed\";\r\n\r\n if (!Version.TryParse(versionString, out Version v))\r\n {\r\n return Result.Err(new RefreshError(RefreshErrorReason.UnknownException, $\"Unable to determine game version: {versionString}\"));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "1e877c934d2a52bc", + "equalIndicator/v1": "8106a3cb4692472bfbe5b1b0338d52a680c5e3555e9da83d4373805313fa6cec" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (simple types)", + "markdown": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/SoulComponent.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 251, + "startColumn": 9, + "charOffset": 8878, + "charLength": 10, + "snippet": { + "text": "XmlElement" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 249, + "startColumn": 1, + "charOffset": 8809, + "charLength": 178, + "snippet": { + "text": " public XmlNode GetSettings(XmlDocument document)\r\n {\r\n XmlElement root = document.CreateElement(\"Settings\");\r\n MainWindow.Dispatcher.Invoke(() =>\r\n {\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "49f0e9ef6ed995bc", + "equalIndicator/v1": "81b3e91e94c578ad86cb715022fc058f27835ff3efba90c8787330654fc616dd" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (simple types)", + "markdown": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Native/Kernel32.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 80, + "startColumn": 9, + "charOffset": 3144, + "charLength": 6, + "snippet": { + "text": "IntPtr" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 78, + "startColumn": 1, + "charOffset": 3057, + "charLength": 137, + "snippet": { + "text": " var size = Marshal.SizeOf(type);\r\n var bytes = new byte[size];\r\n IntPtr ptr = IntPtr.Zero;\r\n try\r\n {\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "3e7108c46e21d555", + "equalIndicator/v1": "b264577e5bc65de948b988472a501eedd7167717b72c8adee0344e06ee25ec11" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (simple types)", + "markdown": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Native/User32.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 34, + "startColumn": 9, + "charOffset": 1275, + "charLength": 6, + "snippet": { + "text": "IntPtr" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 32, + "startColumn": 1, + "charOffset": 1211, + "charLength": 177, + "snippet": { + "text": " public static uint GetForegroundProcessId()\r\n {\r\n IntPtr hWnd = GetForegroundWindow();\r\n GetWindowThreadProcessId(hWnd, out uint pid);\r\n return pid;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e4f792e71d067962", + "equalIndicator/v1": "bcf0bbee7d1674b1a663131a0946270c263d478e76f5c63443b423f0d8373e4b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (simple types)", + "markdown": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/ItemReader.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 72, + "startColumn": 17, + "charOffset": 2860, + "charLength": 12, + "snippet": { + "text": "ItemInfusion" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 70, + "startColumn": 1, + "charOffset": 2784, + "charLength": 155, + "snippet": { + "text": " //Decode item\r\n int id = 0;\r\n ItemInfusion infusion = ItemInfusion.Normal;\r\n int level = 0;\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "6345799c6ccc09d5", + "equalIndicator/v1": "c82135e1a1fcb27eb72e93136e12b18098f9fec460da164e34e874efb2f9e3df" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (simple types)", + "markdown": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Native/Kernel32.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 205, + "startColumn": 9, + "charOffset": 7643, + "charLength": 6, + "snippet": { + "text": "IntPtr" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 203, + "startColumn": 1, + "charOffset": 7591, + "charLength": 284, + "snippet": { + "text": " {\r\n process.NtSuspendProcess();\r\n IntPtr thread = NativeMethods.CreateRemoteThread(process.Handle, IntPtr.Zero, 0, startAddress, parameter ?? IntPtr.Zero, 0, IntPtr.Zero);\r\n NativeMethods.WaitForSingleObject(thread, 5000);\r\n process.NtResumeProcess();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "778af38b91c3553a", + "equalIndicator/v1": "ca07fca8976dde18250a3a7dfb254db827883baa8255c4f301c3f29e645f28e3" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (simple types)", + "markdown": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/DropMod.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 65, + "startColumn": 18, + "charOffset": 2272, + "charLength": 14, + "snippet": { + "text": "SwitchableDrop" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 63, + "startColumn": 1, + "charOffset": 2206, + "charLength": 216, + "snippet": { + "text": " var items = darkSouls.GetInventory();\r\n\r\n foreach (SwitchableDrop temp in _switchableWeapons)\r\n {\r\n var s = temp; //structs need to be put in a variable in order to be mutable. Meme.\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c134c88d41c22583", + "equalIndicator/v1": "cacdff840c45de53bdc96c489b0e8e7db7a7a58a7fcb6471dacf302b5148df89" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (simple types)", + "markdown": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/EldenRing.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 154, + "startColumn": 54, + "charOffset": 5996, + "charLength": 7, + "snippet": { + "text": "Version" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 152, + "startColumn": 1, + "charOffset": 5828, + "charLength": 340, + "snippet": { + "text": " {\r\n var versionString = _process?.MainModule?.FileVersionInfo.ProductVersion ?? \"Read failed\";\r\n if (!Version.TryParse(versionString, out Version v))\r\n {\r\n return Result.Err(new RefreshError(RefreshErrorReason.UnknownException, $\"Unable to determine game version: {versionString}\"));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4a4eb403e62f6273", + "equalIndicator/v1": "e96a202213df21b82e13a8b071c2b2240b6442b8b188fb72e4c82f6af21c0048" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (simple types)", + "markdown": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 497, + "startColumn": 9, + "charOffset": 17462, + "charLength": 6, + "snippet": { + "text": "IntPtr" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 495, + "startColumn": 1, + "charOffset": 17396, + "charLength": 164, + "snippet": { + "text": "\r\n var getRegionAddress = _getRegion.BaseAddress;\r\n IntPtr callPtr = (IntPtr)getRegionAddress;\r\n IntPtr resultPtr = _process!.Allocate(0x4);\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "86343684912ef7d7", + "equalIndicator/v1": "f30074a874782a31bb50aecb87628cdb0705f71dc4732e65c334a00a9e7be572" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SuggestVarOrType_SimpleTypes", + "kind": "fail", + "level": "note", + "message": { + "text": "Use 'var' (simple types)", + "markdown": "Use 'var' (simple types)" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Native/Kernel32.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 131, + "startColumn": 93, + "charOffset": 4875, + "charLength": 24, + "snippet": { + "text": "MemoryBasicInformation64" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 129, + "startColumn": 1, + "charOffset": 4734, + "charLength": 295, + "snippet": { + "text": " while (address < maxAddress)\r\n {\r\n var queryEx = NativeMethods.VirtualQueryEx(process.Handle, (IntPtr)address, out MemoryBasicInformation64 memoryBasicInformation64, (uint)Marshal.SizeOf(typeof(MemoryBasicInformation64)));\r\n if (queryEx == 0)\r\n {\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "913fd1a503656346", + "equalIndicator/v1": "f7ac78695e0658eb04ad4648a2a6253f0dd4f321275a149cdb4df05313829ca5" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", + "kind": "fail", + "level": "note", + "message": { + "text": "Some cases are not processed: default", + "markdown": "Some cases are not processed: default" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/SekiroSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 151, + "startColumn": 9, + "charOffset": 4176, + "charLength": 6, + "snippet": { + "text": "switch" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 149, + "startColumn": 1, + "charOffset": 4129, + "charLength": 122, + "snippet": { + "text": " private void UpdateTimer()\r\n {\r\n switch (_timerState)\r\n {\r\n case TimerState.WaitForStart:\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c85ac44661002b7f", + "equalIndicator/v1": "181e73da5b51aa740bad47575cb7b69a3aa94a68019f238fde5eea69f67ee936" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", + "kind": "fail", + "level": "note", + "message": { + "text": "Some cases are not processed: default", + "markdown": "Some cases are not processed: default" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/EldenRingSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 181, + "startColumn": 9, + "charOffset": 5916, + "charLength": 6, + "snippet": { + "text": "switch" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 179, + "startColumn": 1, + "charOffset": 5895, + "charLength": 96, + "snippet": { + "text": " }\r\n\r\n switch (_timerState)\r\n {\r\n case TimerState.WaitForStart:\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e9691a594a0b0534", + "equalIndicator/v1": "31dbbc71767f8da5057e08b5f66112be49b25ae3cdef45678ab3dcbe90c8dc8a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", + "kind": "fail", + "level": "note", + "message": { + "text": "Some values of the enum are not processed inside switch: None", + "markdown": "Some values of the enum are not processed inside switch: None" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls1Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 390, + "startColumn": 13, + "charOffset": 13368, + "charLength": 6, + "snippet": { + "text": "switch" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 388, + "startColumn": 1, + "charOffset": 13259, + "charLength": 206, + "snippet": { + "text": " {\r\n _mainViewModel.DarkSouls1ViewModel.DropModRequestInitialisation = false;\r\n switch (_mainViewModel.DarkSouls1ViewModel.DropModType)\r\n {\r\n default:\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b3c5ca68008f6b5b", + "equalIndicator/v1": "339d0c02bc09755bedb9c8a79d6afce04279d95f1cc811831ed3883ffa1d7dba" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", + "kind": "fail", + "level": "note", + "message": { + "text": "Some values of the enum are not processed inside switch: ItemPickup", + "markdown": "Some values of the enum are not processed inside switch: ItemPickup" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls1Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 240, + "startColumn": 21, + "charOffset": 8024, + "charLength": 6, + "snippet": { + "text": "switch" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 238, + "startColumn": 1, + "charOffset": 7942, + "charLength": 160, + "snippet": { + "text": " if (!s.SplitConditionMet)\r\n {\r\n switch (s.SplitType)\r\n {\r\n default:\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5e3697f4aa877eea", + "equalIndicator/v1": "3a930f922b180f21a4579a4ae4f51438373545e97e52c357ebd52e6e9a374e49" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", + "kind": "fail", + "level": "note", + "message": { + "text": "Some values of the enum are not processed inside switch: OnWarp", + "markdown": "Some values of the enum are not processed inside switch: OnWarp" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/EldenRingSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 307, + "startColumn": 9, + "charOffset": 10752, + "charLength": 6, + "snippet": { + "text": "switch" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 305, + "startColumn": 1, + "charOffset": 10691, + "charLength": 116, + "snippet": { + "text": " private void ResolveSplitTiming(Split s)\r\n {\r\n switch (s.TimingType)\r\n {\r\n default:\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "709489776b2b13a5", + "equalIndicator/v1": "3afa93eb184f4109c9b0054ccded44252f75f5f78b3920a0b57311e464d26505" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", + "kind": "fail", + "level": "note", + "message": { + "text": "Some values of the enum are not processed inside switch: OnBlackscreen, OnWarp", + "markdown": "Some values of the enum are not processed inside switch: OnBlackscreen, OnWarp" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/SekiroSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 266, + "startColumn": 9, + "charOffset": 8233, + "charLength": 6, + "snippet": { + "text": "switch" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 264, + "startColumn": 1, + "charOffset": 8172, + "charLength": 116, + "snippet": { + "text": " private void ResolveSplitTiming(Split s)\r\n {\r\n switch (s.TimingType)\r\n {\r\n default:\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4107a66ff2e3f69d", + "equalIndicator/v1": "3b8564f1e6b3f3a45344ffa94f4d8ff44efb125fcb67d7ad5377c64c9f55617f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", + "kind": "fail", + "level": "note", + "message": { + "text": "Some cases are not processed: default", + "markdown": "Some cases are not processed: default" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls1Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 145, + "startColumn": 9, + "charOffset": 4619, + "charLength": 6, + "snippet": { + "text": "switch" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 143, + "startColumn": 1, + "charOffset": 4572, + "charLength": 122, + "snippet": { + "text": " private void UpdateTimer()\r\n {\r\n switch (_timerState)\r\n {\r\n case TimerState.WaitForStart:\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "748b7fe41f9c52d1", + "equalIndicator/v1": "40be907d145c26f1ed87c75fd3522efc5cbd543e69381ad63fe952b581458b72" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", + "kind": "fail", + "level": "note", + "message": { + "text": "Some cases are not processed: default", + "markdown": "Some cases are not processed: default" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/FlagTrackerViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 186, + "startColumn": 9, + "charOffset": 5965, + "charLength": 6, + "snippet": { + "text": "switch" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 184, + "startColumn": 1, + "charOffset": 5944, + "charLength": 111, + "snippet": { + "text": " }\r\n\r\n switch(DisplayMode) \r\n {\r\n case EventFlagTrackerDisplayMode.Percentage:\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b2d3a9abe3a7545c", + "equalIndicator/v1": "4350b55c6e4a3d4951a9eba80f4386f490a627ccd6034c93534d19edb0f9f02b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", + "kind": "fail", + "level": "note", + "message": { + "text": "Some cases are not processed: default", + "markdown": "Some cases are not processed: default" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls2Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 129, + "startColumn": 9, + "charOffset": 3642, + "charLength": 6, + "snippet": { + "text": "switch" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 127, + "startColumn": 1, + "charOffset": 3595, + "charLength": 122, + "snippet": { + "text": " private void UpdateTimer()\r\n {\r\n switch (_timerState)\r\n {\r\n case TimerState.WaitForStart:\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "6464eeb47c7d0d9b", + "equalIndicator/v1": "46417441e70e45fe41b0a2cdc47cf5d3b52005bc460d8c0bd56519d2d9767213" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", + "kind": "fail", + "level": "note", + "message": { + "text": "Some values of the enum are not processed inside switch: OnBlackscreen, OnWarp", + "markdown": "Some values of the enum are not processed inside switch: OnBlackscreen, OnWarp" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls2Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 245, + "startColumn": 9, + "charOffset": 7782, + "charLength": 6, + "snippet": { + "text": "switch" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 243, + "startColumn": 1, + "charOffset": 7721, + "charLength": 116, + "snippet": { + "text": " private void ResolveSplitTiming(Split s)\r\n {\r\n switch (s.TimingType)\r\n {\r\n default:\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "1a4f41f9967ea861", + "equalIndicator/v1": "4fdb5dc3e61a47895714d2f5518919497ccee2e009cdbb7d817e00fcace1c5de" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", + "kind": "fail", + "level": "note", + "message": { + "text": "Some values of the enum are not processed inside switch: KnownFlag, Item, ItemPickup...", + "markdown": "Some values of the enum are not processed inside switch: KnownFlag, Item, ItemPickup..." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splits/Sekiro/Split.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 30, + "startColumn": 9, + "charOffset": 1107, + "charLength": 6, + "snippet": { + "text": "switch" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 28, + "startColumn": 1, + "charOffset": 1065, + "charLength": 94, + "snippet": { + "text": " SplitType = splitType;\r\n\r\n switch (SplitType)\r\n {\r\n default:\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "322a34e3e8115ca5", + "equalIndicator/v1": "5979792c8f9bd07e1f24a65f00977f27cc3f56fb9fa378f7e3348111a1334d78" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", + "kind": "fail", + "level": "note", + "message": { + "text": "Some values of the enum are not processed inside switch: OnBlackscreen", + "markdown": "Some values of the enum are not processed inside switch: OnBlackscreen" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls1Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 294, + "startColumn": 9, + "charOffset": 10601, + "charLength": 6, + "snippet": { + "text": "switch" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 292, + "startColumn": 1, + "charOffset": 10540, + "charLength": 116, + "snippet": { + "text": " private void ResolveSplitTiming(Split s)\r\n {\r\n switch (s.TimingType)\r\n {\r\n default:\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "68a030dcef1e58a8", + "equalIndicator/v1": "5bcd4a02eabece30b37502201d9ebca764ad984d84ec74117f645a858919ffd6" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", + "kind": "fail", + "level": "note", + "message": { + "text": "Some cases are not processed: default", + "markdown": "Some cases are not processed: default" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Parameters/BaseParam.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 118, + "startColumn": 13, + "charOffset": 4536, + "charLength": 6, + "snippet": { + "text": "switch" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 116, + "startColumn": 1, + "charOffset": 4431, + "charLength": 179, + "snippet": { + "text": " var paramType = property.GetCustomAttribute().ParamType;\r\n\r\n switch (paramType)\r\n {\r\n case ParamType.Dummy8:\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "774ebf11d9436a9e", + "equalIndicator/v1": "5cc0a380242ec040209e7d00dffe85de51352a8c8fafa2a6a0cf4eda802fcd5e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", + "kind": "fail", + "level": "note", + "message": { + "text": "Some values of the enum are not processed inside switch: Unknown", + "markdown": "Some values of the enum are not processed inside switch: Unknown" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/EldenRing/EldenRing.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 82, + "startColumn": 9, + "charOffset": 3445, + "charLength": 6, + "snippet": { + "text": "switch" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 80, + "startColumn": 1, + "charOffset": 3392, + "charLength": 125, + "snippet": { + "text": " {\r\n var version = GetVersion(v);\r\n switch (version)\r\n {\r\n case EldenRingVersion.V1_02_0:\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f9a9d2cfa8b98f24", + "equalIndicator/v1": "5f0d1c533556c85ddce997591d17d4db63bf6325c8e9e03ac27a2b78eed99a5a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", + "kind": "fail", + "level": "note", + "message": { + "text": "Some values of the enum are not processed inside switch: KnownFlag, Item, ItemPickup...", + "markdown": "Some values of the enum are not processed inside switch: KnownFlag, Item, ItemPickup..." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/SekiroSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 224, + "startColumn": 21, + "charOffset": 6381, + "charLength": 6, + "snippet": { + "text": "switch" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 222, + "startColumn": 1, + "charOffset": 6299, + "charLength": 160, + "snippet": { + "text": " if (!s.SplitConditionMet)\r\n {\r\n switch (s.SplitType)\r\n {\r\n default:\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ca3a25742d944eeb", + "equalIndicator/v1": "7f5d26aeb532d1de860ae82b3f76b931f80582b0547e0d30316d94529bcfcffa" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", + "kind": "fail", + "level": "note", + "message": { + "text": "Some values of the enum are not processed inside switch: None, Cancel, Back...", + "markdown": "Some values of the enum are not processed inside switch: None, Cancel, Back..." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/FilteredComboBox.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 82, + "startColumn": 9, + "charOffset": 2688, + "charLength": 6, + "snippet": { + "text": "switch" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 80, + "startColumn": 1, + "charOffset": 2620, + "charLength": 120, + "snippet": { + "text": " protected override void OnKeyUp(KeyEventArgs e)\r\n {\r\n switch (e.Key)\r\n {\r\n case Key.Up:\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a3e312e002dcf870", + "equalIndicator/v1": "8111e4131451a78b7e710cca5e2cc8c534be85e3a83286a8c62581abc0b6a226" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", + "kind": "fail", + "level": "note", + "message": { + "text": "Some values of the enum are not processed inside switch: ItemPickup", + "markdown": "Some values of the enum are not processed inside switch: ItemPickup" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splits/DarkSouls1/Split.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 30, + "startColumn": 9, + "charOffset": 1115, + "charLength": 6, + "snippet": { + "text": "switch" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 28, + "startColumn": 1, + "charOffset": 1073, + "charLength": 94, + "snippet": { + "text": " SplitType = splitType;\r\n\r\n switch (SplitType)\r\n {\r\n default:\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "3175cb906334e025", + "equalIndicator/v1": "9d2b278a3ac95402941c502c39af86978aab2246523b4e0bc1f5c690c646bd8e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", + "kind": "fail", + "level": "note", + "message": { + "text": "Some values of the enum are not processed inside switch: V130, V131, Unknown", + "markdown": "Some values of the enum are not processed inside switch: V130, V131, Unknown" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 146, + "startColumn": 9, + "charOffset": 5335, + "charLength": 6, + "snippet": { + "text": "switch" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 144, + "startColumn": 1, + "charOffset": 5248, + "charLength": 137, + "snippet": { + "text": " private void ResolveGameVersionSpecificOffsets(DsrVersion version)\r\n {\r\n switch (version)\r\n {\r\n default:\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9f8f82f626fe58fc", + "equalIndicator/v1": "9ec76315a1888afdd3102d613055576319f8e5775dc47a216f536ae91ad9746e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", + "kind": "fail", + "level": "note", + "message": { + "text": "Some values of the enum are not processed inside switch: ItemPickup, Credits", + "markdown": "Some values of the enum are not processed inside switch: ItemPickup, Credits" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 94, + "startColumn": 9, + "charOffset": 3137, + "charLength": 6, + "snippet": { + "text": "switch" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 92, + "startColumn": 1, + "charOffset": 3107, + "charLength": 102, + "snippet": { + "text": " };\r\n \r\n switch (SelectedSplitType)\r\n {\r\n case SplitType.Boss:\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "8040041386dd8ca0", + "equalIndicator/v1": "a1667aee37e38cc37f9d9ca69a796124a47636c13db6576c7c4b2b38bcbac649" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", + "kind": "fail", + "level": "note", + "message": { + "text": "Some values of the enum are not processed inside switch: OnBlackscreen, OnWarp", + "markdown": "Some values of the enum are not processed inside switch: OnBlackscreen, OnWarp" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/ArmoredCore6Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 104, + "startColumn": 9, + "charOffset": 3413, + "charLength": 6, + "snippet": { + "text": "switch" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 102, + "startColumn": 1, + "charOffset": 3352, + "charLength": 116, + "snippet": { + "text": " private void ResolveSplitTiming(Split s)\r\n {\r\n switch (s.TimingType)\r\n {\r\n default:\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d45f65a12bb931ae", + "equalIndicator/v1": "b2eb28320c6ab701b0c0ba0ef2b22acc1019f3a20d280aa45a0ba3b15ca5f8ea" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", + "kind": "fail", + "level": "note", + "message": { + "text": "Some values of the enum are not processed inside switch: KnownFlag, Item, Credits", + "markdown": "Some values of the enum are not processed inside switch: KnownFlag, Item, Credits" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls3Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 220, + "startColumn": 21, + "charOffset": 6557, + "charLength": 6, + "snippet": { + "text": "switch" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 218, + "startColumn": 1, + "charOffset": 6475, + "charLength": 160, + "snippet": { + "text": " if (!s.SplitConditionMet)\r\n {\r\n switch (s.SplitType)\r\n {\r\n default:\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4ea91a9a1da6243b", + "equalIndicator/v1": "ca34b7415716050cf92bde38b90f24339dc1f40fabc2b08552eccccf4241446f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", + "kind": "fail", + "level": "note", + "message": { + "text": "Some values of the enum are not processed inside switch: Pointer", + "markdown": "Some values of the enum are not processed inside switch: Pointer" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerTreeBuilder.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 73, + "startColumn": 13, + "charOffset": 2746, + "charLength": 6, + "snippet": { + "text": "switch" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 71, + "startColumn": 1, + "charOffset": 2665, + "charLength": 152, + "snippet": { + "text": " long scanResult = 0;\r\n bool success = false;\r\n switch (node.PointerNodeType)\r\n {\r\n default:\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b4b851d9948188df", + "equalIndicator/v1": "d7663d114e83fd7ec0b2e2ee086354d6c12ee169ea2e1809ea2d1942fd098c32" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", + "kind": "fail", + "level": "note", + "message": { + "text": "Some cases are not processed: default", + "markdown": "Some cases are not processed: default" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/FlagTrackerViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 131, + "startColumn": 9, + "charOffset": 4259, + "charLength": 6, + "snippet": { + "text": "switch" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 129, + "startColumn": 1, + "charOffset": 4221, + "charLength": 128, + "snippet": { + "text": " _currentIndex = 0;\r\n\r\n switch (DisplayMode)\r\n {\r\n case EventFlagTrackerDisplayMode.Percentage:\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e57c0e8955fef102", + "equalIndicator/v1": "d9b301fdc05aa2c97a659e232cd2f781a62f294d18d716859893e4633ff85916" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", + "kind": "fail", + "level": "note", + "message": { + "text": "Some cases are not processed: default", + "markdown": "Some cases are not processed: default" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls3Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 131, + "startColumn": 9, + "charOffset": 3787, + "charLength": 6, + "snippet": { + "text": "switch" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 129, + "startColumn": 1, + "charOffset": 3739, + "charLength": 123, + "snippet": { + "text": " private void UpdateTimer()\r\n {\r\n switch (_timerState)\r\n {\r\n case TimerState.WaitForStart:\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "08007d9747e60ba8", + "equalIndicator/v1": "dbbf205ab7d633613d720a5de499c5611a11b3e9ef3ec696f8c88c3285daccfd" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", + "kind": "fail", + "level": "note", + "message": { + "text": "Some values of the enum are not processed inside switch: OnBlackscreen, OnWarp", + "markdown": "Some values of the enum are not processed inside switch: OnBlackscreen, OnWarp" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls3Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 263, + "startColumn": 9, + "charOffset": 8572, + "charLength": 6, + "snippet": { + "text": "switch" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 261, + "startColumn": 1, + "charOffset": 8511, + "charLength": 116, + "snippet": { + "text": " private void ResolveSplitTiming(Split s)\r\n {\r\n switch (s.TimingType)\r\n {\r\n default:\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "53ebbb29754910c8", + "equalIndicator/v1": "dc95837f0c2d48cfaf7580bf16073b680da95107a411119670f532e4af05f9e6" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", + "kind": "fail", + "level": "note", + "message": { + "text": "Some values of the enum are not processed inside switch: KnownFlag, Item, Credits", + "markdown": "Some values of the enum are not processed inside switch: KnownFlag, Item, Credits" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splits/DarkSouls3/Split.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 30, + "startColumn": 9, + "charOffset": 1135, + "charLength": 6, + "snippet": { + "text": "switch" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 28, + "startColumn": 1, + "charOffset": 1083, + "charLength": 104, + "snippet": { + "text": " SplitType = darkSouls3SplitType;\r\n\r\n switch (SplitType)\r\n {\r\n default:\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "19f73755f527e3c1", + "equalIndicator/v1": "df6579c377388a7b5e833051d03aaa98c1d2e189a9c3b7f81d08c244a9bd50c2" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", + "kind": "fail", + "level": "note", + "message": { + "text": "Some values of the enum are not processed inside switch: Pointer", + "markdown": "Some values of the enum are not processed inside switch: Pointer" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Memory/MemoryScanner.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 57, + "startColumn": 13, + "charOffset": 2420, + "charLength": 6, + "snippet": { + "text": "switch" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 55, + "startColumn": 1, + "charOffset": 2339, + "charLength": 145, + "snippet": { + "text": " long scanResult = 0;\r\n bool success = false;\r\n switch (node.NodeType)\r\n {\r\n default:\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "5b39a1adcdb791e4", + "equalIndicator/v1": "f17591bff6f195da33bad536d88077c45dc5b17b86daa0606386d2382545ba5e" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", + "kind": "fail", + "level": "note", + "message": { + "text": "Some values of the enum are not processed inside switch: None, Cancel, Back...", + "markdown": "Some values of the enum are not processed inside switch: None, Cancel, Back..." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/FilteredComboBox.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 58, + "startColumn": 9, + "charOffset": 2073, + "charLength": 6, + "snippet": { + "text": "switch" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 56, + "startColumn": 1, + "charOffset": 1996, + "charLength": 130, + "snippet": { + "text": " protected override void OnPreviewKeyDown(KeyEventArgs e)\r\n {\r\n switch (e.Key)\r\n {\r\n case Key.Tab:\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e37a0be33a7953fb", + "equalIndicator/v1": "f42b1062130a523bcc8d49f023bbca688e3c7a3839e7469320410986003d5f56" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "SwitchStatementMissingSomeEnumCasesNoDefault", + "kind": "fail", + "level": "note", + "message": { + "text": "Some values of the enum are not processed inside switch: Boss, KnownFlag, ItemPickup...", + "markdown": "Some values of the enum are not processed inside switch: Boss, KnownFlag, ItemPickup..." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 130, + "startColumn": 13, + "charOffset": 4543, + "charLength": 6, + "snippet": { + "text": "switch" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 128, + "startColumn": 1, + "charOffset": 4475, + "charLength": 148, + "snippet": { + "text": " this.SetField(ref _newSplitType, value);\r\n\r\n switch (NewSplitType)\r\n {\r\n case SplitType.Attribute:\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "fa1589ec498a4758", + "equalIndicator/v1": "40574916d9fca1de476aead759853ddbf4a69c4f047429cca3f067fa1bdc7cfd" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "SwitchStatementMissingSomeEnumCasesNoDefault", + "kind": "fail", + "level": "note", + "message": { + "text": "Some values of the enum are not processed inside switch: Bonfire, Boss, KnownFlag...", + "markdown": "Some values of the enum are not processed inside switch: Bonfire, Boss, KnownFlag..." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/BaseViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 48, + "startColumn": 13, + "charOffset": 1817, + "charLength": 6, + "snippet": { + "text": "switch" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 46, + "startColumn": 1, + "charOffset": 1749, + "charLength": 147, + "snippet": { + "text": " this.SetField(ref _newSplitType, value);\r\n\r\n switch (NewSplitType)\r\n {\r\n case SplitType.Position:\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e87edade2f1b39f8", + "equalIndicator/v1": "d8a30d775056879e2cfb767777b7fdd1c1d5401e633fbd48e79d8f3cda33199d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "SwitchStatementMissingSomeEnumCasesNoDefault", + "kind": "fail", + "level": "note", + "message": { + "text": "Some values of the enum are not processed inside switch: WaitForStart, default", + "markdown": "Some values of the enum are not processed inside switch: WaitForStart, default" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/ArmoredCore6Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 45, + "startColumn": 9, + "charOffset": 1710, + "charLength": 6, + "snippet": { + "text": "switch" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 43, + "startColumn": 1, + "charOffset": 1639, + "charLength": 141, + "snippet": { + "text": " public override ResultErr OnUpdate()\r\n {\r\n switch (_timerState)\r\n {\r\n case TimerState.Running:\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c6926fb28f178ff7", + "equalIndicator/v1": "e3075aff351ea6be3990a0859ebe508066464b40eef7349c80faa1dcc246c6c9" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "TooWideLocalVariableScope", + "kind": "fail", + "level": "note", + "message": { + "text": "Local variable 'logoCodeBytesPointFive' can be declared in inner scope", + "markdown": "Local variable 'logoCodeBytesPointFive' can be declared in inner scope" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Sekiro/Sekiro.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 502, + "startColumn": 14, + "charOffset": 18503, + "charLength": 22, + "snippet": { + "text": "logoCodeBytesPointFive" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 500, + "startColumn": 1, + "charOffset": 18463, + "charLength": 111, + "snippet": { + "text": " string version;\r\n\r\n uint logoCodeBytesPointFive = 0;\r\n uint logoCodeBytesPointSix = 0;\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d4f83893ee4eebe5", + "equalIndicator/v1": "52339b65d811cc46a6685ca38ccdd7dae0fb8209ea8086c00a446b581047de6b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "TooWideLocalVariableScope", + "kind": "fail", + "level": "note", + "message": { + "text": "Local variable 'logoCodeBytesPointSix' can be declared in inner scope", + "markdown": "Local variable 'logoCodeBytesPointSix' can be declared in inner scope" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Sekiro/Sekiro.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 503, + "startColumn": 14, + "charOffset": 18545, + "charLength": 21, + "snippet": { + "text": "logoCodeBytesPointSix" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 501, + "startColumn": 1, + "charOffset": 18488, + "charLength": 88, + "snippet": { + "text": "\r\n uint logoCodeBytesPointFive = 0;\r\n uint logoCodeBytesPointSix = 0;\r\n\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a7e6617a2e486354", + "equalIndicator/v1": "e6c4f44411c1b9f99439eb30f2fbbb471e874115ac075c1671b5e9504c61ac18" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "UnusedMember.Local", + "kind": "fail", + "level": "warning", + "message": { + "text": "Enum member 'V131' is never used", + "markdown": "Enum member 'V131' is never used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 84, + "startColumn": 9, + "charOffset": 3505, + "charLength": 4, + "snippet": { + "text": "V131" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 82, + "startColumn": 1, + "charOffset": 3452, + "charLength": 106, + "snippet": { + "text": " V130,\r\n [Version(\"1.3.1.0\")]\r\n V131,\r\n [Version(\"unknown\")]\r\n Unknown\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "fed09c8da7466326", + "equalIndicator/v1": "1d21028ef7d88db1aaf2a4759caaf724280f83a21b01a1078d631e89b9aa372b" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "UnusedMember.Local", + "kind": "fail", + "level": "warning", + "message": { + "text": "Enum member 'V130' is never used", + "markdown": "Enum member 'V130' is never used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 82, + "startColumn": 9, + "charOffset": 3460, + "charLength": 4, + "snippet": { + "text": "V130" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 80, + "startColumn": 1, + "charOffset": 3407, + "charLength": 104, + "snippet": { + "text": " V101,\r\n [Version(\"1.3.0.0\")]\r\n V130,\r\n [Version(\"1.3.1.0\")]\r\n V131,\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7b9588ce62b5fb57", + "equalIndicator/v1": "32bc7577222ed057942a970535cf94ceec52d2f31a54a89e691d671c76766420" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "UnusedMember.Local", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'SetBitBlt' is never used", + "markdown": "Method 'SetBitBlt' is never used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/SoulComponent.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 107, + "startColumn": 18, + "charOffset": 3656, + "charLength": 9, + "snippet": { + "text": "SetBitBlt" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 105, + "startColumn": 1, + "charOffset": 3630, + "charLength": 100, + "snippet": { + "text": " }\r\n\r\n private void SetBitBlt()\r\n {\r\n if (_game is SoulMemory.Sekiro.Sekiro sekiro)\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "55ea6fafd3e8efae", + "equalIndicator/v1": "ac578c6ecb4ca6c0d26551d179017d705e20472bdd2e435f483cdbf6f5115f67" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "UnusedMember.Local", + "kind": "fail", + "level": "warning", + "message": { + "text": "Field '_files' is never used", + "markdown": "Field '_files' is never used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Sekiro/Sekiro.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 415, + "startColumn": 35, + "charOffset": 14887, + "charLength": 6, + "snippet": { + "text": "_files" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 413, + "startColumn": 1, + "charOffset": 14801, + "charLength": 187, + "snippet": { + "text": " private readonly object _bitBltLock = new();\r\n\r\n private readonly List _files =\r\n [\"sekiro.exe\", \"data1.bdt\", \"data2.bdt\", \"data3.bdt\", \"data4.bdt\", \"data5.bdt\"];\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "be174ec10fa535fc", + "equalIndicator/v1": "baa98d0b6c66dfd72aa5268e1defaab01d1686b01d0fb0c57681c01045fb427d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "UnusedMember.Local", + "kind": "fail", + "level": "warning", + "message": { + "text": "Field '_bitBltValues' is never used", + "markdown": "Field '_bitBltValues' is never used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Sekiro/Sekiro.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 418, + "startColumn": 35, + "charOffset": 15023, + "charLength": 13, + "snippet": { + "text": "_bitBltValues" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 416, + "startColumn": 1, + "charOffset": 14897, + "charLength": 209, + "snippet": { + "text": " [\"sekiro.exe\", \"data1.bdt\", \"data2.bdt\", \"data3.bdt\", \"data4.bdt\", \"data5.bdt\"];\r\n\r\n private readonly List _bitBltValues =\r\n [\r\n \"0E 0A 84 07 C7 8E 89 6A 73 D8 F2 7D A3 D4 C0 CC\",\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "cb43fbe627b3fa92", + "equalIndicator/v1": "cab5f644fe65a51ca1ccf609a4b8038319b91dc14c74cc3c81eb724a25c70e5c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "UnusedMember.Local", + "kind": "fail", + "level": "warning", + "message": { + "text": "Method 'OverwriteFile' is never used", + "markdown": "Method 'OverwriteFile' is never used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/soulmods/Soulmods.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 114, + "startColumn": 25, + "charOffset": 4133, + "charLength": 13, + "snippet": { + "text": "OverwriteFile" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 112, + "startColumn": 1, + "charOffset": 4100, + "charLength": 200, + "snippet": { + "text": " }\r\n\r\n private static void OverwriteFile(string manifestResourceName, string path)\r\n {\r\n using var stream = typeof(Soulmods).Assembly.GetManifestResourceStream(manifestResourceName)!;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e5f398f50385e576", + "equalIndicator/v1": "d22afda58b27d87856d76a91ff784781613f0c6163642c5f76769295017b7e7c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "UnusedVariable", + "kind": "fail", + "level": "warning", + "message": { + "text": "Local variable 'len' is never used", + "markdown": "Local variable 'len' is never used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Native/Kernel32.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 268, + "startColumn": 13, + "charOffset": 10406, + "charLength": 3, + "snippet": { + "text": "len" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 266, + "startColumn": 1, + "charOffset": 10381, + "charLength": 128, + "snippet": { + "text": " }\r\n\r\n var len = bytesCopied / IntPtr.Size;\r\n return (List: processMods, Length: bytesCopied >> 2);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "513431177596a8c2", + "equalIndicator/v1": "248e8ce2a44b45f8f508d63e67a899c7571c7b41a33192dcb0a5884443d0adb5" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "UnusedVariable", + "kind": "fail", + "level": "warning", + "message": { + "text": "Local variable 'EATPtr' is never used", + "markdown": "Local variable 'EATPtr' is never used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Native/Kernel32.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 355, + "startColumn": 17, + "charOffset": 13798, + "charLength": 6, + "snippet": { + "text": "EATPtr" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 353, + "startColumn": 1, + "charOffset": 13694, + "charLength": 193, + "snippet": { + "text": " var EAT = module.modBaseAddr.ToInt64() + exportTable.AddressOfFunctions;\r\n\r\n var EATPtr = (IntPtr)EAT;\r\n\r\n //Function name offset is an array of 4byte numbers\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "81a70e687ff8eba0", + "equalIndicator/v1": "3c6c29a2690e15a949dc2b664b7f19ef926d19868044c7d82448751e90b512f6" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "UnusedVariable", + "kind": "fail", + "level": "warning", + "message": { + "text": "Local variable 'u' is never used", + "markdown": "Local variable 'u' is never used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Validation/TextToNumberValidation.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 77, + "startColumn": 50, + "charOffset": 2444, + "charLength": 1, + "snippet": { + "text": "u" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 75, + "startColumn": 1, + "charOffset": 2357, + "charLength": 207, + "snippet": { + "text": "\r\n case NumericType.Uint:\r\n if (!uint.TryParse(text, out var u))\r\n {\r\n return new ValidationResult(false, \"Input is not a valid positive number\");\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f05fcb266ce01960", + "equalIndicator/v1": "5cf5bac44d39aca8d954c1bd184ab30821d755e4417d70026c52ca41c3431650" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "UnusedVariable", + "kind": "fail", + "level": "warning", + "message": { + "text": "Local variable 'ordinal' is never used", + "markdown": "Local variable 'ordinal' is never used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Native/Kernel32.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 362, + "startColumn": 17, + "charOffset": 14167, + "charLength": 7, + "snippet": { + "text": "ordinal" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 360, + "startColumn": 1, + "charOffset": 14105, + "charLength": 212, + "snippet": { + "text": "\r\n //Ordinal seems to be an index\r\n var ordinal = process.ReadMemory(ordinalTable + i * sizeof(ushort)).Unwrap();\r\n\r\n //Function offset table is an array of 4byte numbers\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7e3160ed9444edcb", + "equalIndicator/v1": "5eb4a43b9c00b28eeb0f528f57f1770cdbc4adc0284be915171005d0b05d865c" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "UnusedVariable", + "kind": "fail", + "level": "warning", + "message": { + "text": "Local variable 'process' is never used", + "markdown": "Local variable 'process' is never used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls1Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 375, + "startColumn": 13, + "charOffset": 12829, + "charLength": 7, + "snippet": { + "text": "process" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 373, + "startColumn": 1, + "charOffset": 12776, + "charLength": 101, + "snippet": { + "text": " private void UpdateDropMod()\r\n {\r\n var process = _darkSouls1.GetProcess();\r\n \r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "6cd5b5df9f7e9b67", + "equalIndicator/v1": "6bb8b8915054bc7f3ec8160bc71b5aa314309ad0ea0affffd14d54b5978348f5" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "UnusedVariable", + "kind": "fail", + "level": "warning", + "message": { + "text": "Local variable 'data' is never used", + "markdown": "Local variable 'data' is never used" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/soulmods/Soulmods.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 109, + "startColumn": 17, + "charOffset": 3981, + "charLength": 4, + "snippet": { + "text": "data" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 107, + "startColumn": 1, + "charOffset": 3911, + "charLength": 188, + "snippet": { + "text": " process.Execute((IntPtr)func, buffer);\r\n\r\n var data = process.ReadProcessMemory(buffer.ToInt64(), totalSize).Unwrap();\r\n process.Free(buffer);\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "dc66fac85d44bbd6", + "equalIndicator/v1": "e06fe001acdb6ef789715bba3373ac11cdf4c602d3a7608b64d943443b03c5f3" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "UseCollectionCountProperty", + "kind": "fail", + "level": "note", + "message": { + "text": "Replace 'Enumerable.Count()' invocation with collection count property access", + "markdown": "Replace 'Enumerable.Count()' invocation with collection count property access" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Logger.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 60, + "startColumn": 72, + "charOffset": 2163, + "charLength": 2, + "snippet": { + "text": "()" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 58, + "startColumn": 1, + "charOffset": 1986, + "charLength": 208, + "snippet": { + "text": " var lines = File.ReadAllLines(filePath);\r\n File.Delete(filePath);\r\n File.WriteAllLines(filePath, lines.Skip(lines.Count() / 2));\r\n }\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e70a6bed73f1a6a5", + "equalIndicator/v1": "c25ab75aa503b9194125553ceaba490a4ce9f37e85f1495b1d62924210928908" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "UseNullPropagation", + "kind": "fail", + "level": "note", + "message": { + "text": "Use null propagation", + "markdown": "Use null propagation" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/SoulComponent.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 221, + "startColumn": 23, + "charOffset": 8080, + "charLength": 7, + "snippet": { + "text": "!= null" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 219, + "startColumn": 1, + "charOffset": 7999, + "charLength": 135, + "snippet": { + "text": " protected virtual void Dispose(bool disposing)\r\n {\r\n if (_splitter != null)\r\n {\r\n _splitter.Dispose();\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "baa09f62f1cde59a", + "equalIndicator/v1": "8e27018d1b3ac30aca0d73c5749ac476cace5554cb482576e95f62160e25a323" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "UseObjectOrCollectionInitializer", + "kind": "fail", + "level": "note", + "message": { + "text": "Use object initializer", + "markdown": "Use object initializer" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/BaseSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 42, + "startColumn": 23, + "charOffset": 1576, + "charLength": 3, + "snippet": { + "text": "new" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 40, + "startColumn": 1, + "charOffset": 1529, + "charLength": 115, + "snippet": { + "text": " _game = game;\r\n\r\n _timerModel = new TimerModel();\r\n _timerModel.CurrentState = state;\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "294a4918633339af", + "equalIndicator/v1": "3e6226f1d86d827f770dca6b203e5b7803c0ccbe3e9d27383474a791c6414210" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "UseObjectOrCollectionInitializer", + "kind": "fail", + "level": "note", + "message": { + "text": "Use object initializer", + "markdown": "Use object initializer" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/ItemReader.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 79, + "startColumn": 36, + "charOffset": 3302, + "charLength": 3, + "snippet": { + "text": "new" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 77, + "startColumn": 1, + "charOffset": 3154, + "charLength": 381, + "snippet": { + "text": " {\r\n var estus = Item.AllItems.First(j => j.ItemType == ItemType.EstusFlask);\r\n var instance = new Item(estus.Name, estus.Id, estus.ItemType, estus.Category, estus.StackLimit, estus.Upgrade);\r\n\r\n //Item ID is both the item + reinforcement. Level field does not change in the games memory for the estus flask.\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c1044b317d9167ea", + "equalIndicator/v1": "6df0d484d1ea403267aecde5bd29aa9c8f57bf023f738b94eefe676d0f872bb5" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "UseObjectOrCollectionInitializer", + "kind": "fail", + "level": "note", + "message": { + "text": "Use object initializer", + "markdown": "Use object initializer" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/MainViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 364, + "startColumn": 34, + "charOffset": 11303, + "charLength": 3, + "snippet": { + "text": "new" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 362, + "startColumn": 1, + "charOffset": 11226, + "charLength": 237, + "snippet": { + "text": " TryAndHandleError(() =>\r\n {\r\n var openFileDialog = new Microsoft.Win32.OpenFileDialog();\r\n openFileDialog.Filter = \"XML-File | *.xml|All files (*.*)|*.*\";\r\n openFileDialog.FilterIndex = 0;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "796742c8f383b743", + "equalIndicator/v1": "7d03177ed268eec661ffea2fed818e697be023d13b4aaee07fa435d3fec6a053" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "UseObjectOrCollectionInitializer", + "kind": "fail", + "level": "note", + "message": { + "text": "Use object initializer", + "markdown": "Use object initializer" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Hotkeys/GlobalHotKey.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 37, + "startColumn": 33, + "charOffset": 1443, + "charLength": 3, + "snippet": { + "text": "new" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 35, + "startColumn": 1, + "charOffset": 1377, + "charLength": 164, + "snippet": { + "text": " static GlobalHotKey()\r\n {\r\n var messageLoopThread = new Thread(delegate ()\r\n {\r\n Application.Run(new HotkeyForm(WindowReadyEvent));\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "3fda92da5dd0c111", + "equalIndicator/v1": "7e4902dc3bd23e3719a1f01dac9d251e6f4146fd0954c9e0afce514c81cc3239" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "UseObjectOrCollectionInitializer", + "kind": "fail", + "level": "note", + "message": { + "text": "Use object initializer", + "markdown": "Use object initializer" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/Generic/FlagTrackerViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 74, + "startColumn": 24, + "charOffset": 2491, + "charLength": 3, + "snippet": { + "text": "new" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 72, + "startColumn": 1, + "charOffset": 2427, + "charLength": 199, + "snippet": { + "text": " if(category == null)\r\n {\r\n category = new FlagTrackerCategoryViewModel();\r\n category.CategoryName = CategoryName;\r\n EventFlagCategories.Add(category);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "20062b4f8b8bdd0c", + "equalIndicator/v1": "7ef84d3082ae4f98b9b9dbbd29827bdccc46450ebfa5e0e9713072f7318e98f7" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "UseObjectOrCollectionInitializer", + "kind": "fail", + "level": "note", + "message": { + "text": "Use object initializer", + "markdown": "Use object initializer" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/Native/Kernel32.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 290, + "startColumn": 40, + "charOffset": 11067, + "charLength": 3, + "snippet": { + "text": "new" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 288, + "startColumn": 1, + "charOffset": 11004, + "charLength": 314, + "snippet": { + "text": " try\r\n {\r\n MODULEENTRY32W procEntry = new MODULEENTRY32W();\r\n procEntry.dwSize = (UInt32)Marshal.SizeOf(typeof(MODULEENTRY32W));\r\n handleToSnapshot = NativeMethods.CreateToolhelp32Snapshot((uint)SnapshotFlags.Module | (uint)SnapshotFlags.Module32, (uint)process.Id);\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9ea1e73d9acded92", + "equalIndicator/v1": "b186f5755c13e3177bb57c6a26b88910e8b4ef7185f53ade8cdc70a6aa0797c0" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "UseObjectOrCollectionInitializer", + "kind": "fail", + "level": "note", + "message": { + "text": "Use object initializer", + "markdown": "Use object initializer" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulMemory/DarkSouls1/ItemReader.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 122, + "startColumn": 36, + "charOffset": 5192, + "charLength": 3, + "snippet": { + "text": "new" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 120, + "startColumn": 1, + "charOffset": 5097, + "charLength": 324, + "snippet": { + "text": " if (lookupItem != null)\r\n {\r\n var instance = new Item(lookupItem.Name, lookupItem.Id, lookupItem.ItemType, lookupItem.Category, lookupItem.StackLimit, lookupItem.Upgrade);\r\n instance.Quantity = quantity;\r\n instance.Infusion = infusion;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulMemory", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e136ec9ad6525215", + "equalIndicator/v1": "bfd06a60c4b16d9097ed76eabfa641a5aa9c3f40068355c21384464e0d158f45" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETStandard 2.0" + ] + } + }, + { + "ruleId": "UseObjectOrCollectionInitializer", + "kind": "fail", + "level": "note", + "message": { + "text": "Use object initializer", + "markdown": "Use object initializer" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/DarkSouls2Splitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 45, + "startColumn": 23, + "charOffset": 1703, + "charLength": 3, + "snippet": { + "text": "new" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 43, + "startColumn": 1, + "charOffset": 1629, + "charLength": 142, + "snippet": { + "text": " _liveSplitState.IsGameTimePaused = true;\r\n\r\n _timerModel = new TimerModel();\r\n _timerModel.CurrentState = state;\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ef6de35de0158d8d", + "equalIndicator/v1": "ca8dd3d104a214be5dc45e67b00fc8500ae65a2acde114e41cf0fd03496b551f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "UseObjectOrCollectionInitializer", + "kind": "fail", + "level": "note", + "message": { + "text": "Use object initializer", + "markdown": "Use object initializer" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/MainViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 391, + "startColumn": 34, + "charOffset": 12163, + "charLength": 3, + "snippet": { + "text": "new" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 389, + "startColumn": 1, + "charOffset": 12086, + "charLength": 237, + "snippet": { + "text": " TryAndHandleError(() =>\r\n {\r\n var saveFileDialog = new Microsoft.Win32.SaveFileDialog();\r\n saveFileDialog.Filter = \"XML-File | *.xml|All files (*.*)|*.*\";\r\n saveFileDialog.FilterIndex = 0;\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "2622c4eac7e34e8d", + "equalIndicator/v1": "cc0d9f1e10c29ffc5651af430e488f1b30bc093cc56176ae18e22bed674e056d" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "UseObjectOrCollectionInitializer", + "kind": "fail", + "level": "note", + "message": { + "text": "Use object initializer", + "markdown": "Use object initializer" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/MainViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 233, + "startColumn": 28, + "charOffset": 7471, + "charLength": 3, + "snippet": { + "text": "new" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 231, + "startColumn": 1, + "charOffset": 7399, + "charLength": 186, + "snippet": { + "text": " if(_errorWindow == null)\r\n {\r\n _errorWindow = new ErrorWindow();\r\n _errorWindow.DataContext = this;\r\n _errorWindow.Closing += (_, arg) =>\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a008338b7f5f45bf", + "equalIndicator/v1": "da913a27867b8534e05413724a993a7bfdc968aac2081d3de221f48346fd2583" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "UseObjectOrCollectionInitializer", + "kind": "fail", + "level": "note", + "message": { + "text": "Use object initializer", + "markdown": "Use object initializer" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/SekiroSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 45, + "startColumn": 23, + "charOffset": 1647, + "charLength": 3, + "snippet": { + "text": "new" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 43, + "startColumn": 1, + "charOffset": 1573, + "charLength": 142, + "snippet": { + "text": " _liveSplitState.IsGameTimePaused = true;\r\n\r\n _timerModel = new TimerModel();\r\n _timerModel.CurrentState = state;\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "de354a6423423f59", + "equalIndicator/v1": "de46961980fc8fd777e0b058c23e37fb1393d52310016e2bf724dc46a4afbe8f" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "UseObjectOrCollectionInitializer", + "kind": "fail", + "level": "note", + "message": { + "text": "Use object initializer", + "markdown": "Use object initializer" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/Splitters/EldenRingSplitter.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 46, + "startColumn": 23, + "charOffset": 1689, + "charLength": 3, + "snippet": { + "text": "new" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 44, + "startColumn": 1, + "charOffset": 1615, + "charLength": 142, + "snippet": { + "text": " _liveSplitState.IsGameTimePaused = true;\r\n\r\n _timerModel = new TimerModel();\r\n _timerModel.CurrentState = state;\r\n }\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d6ecdf47d7b40ed7", + "equalIndicator/v1": "f0b00639305e0fa05f9a7b1187e3010e5369f73b71f4224d3119f599ab39fb9a" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + }, + { + "ruleId": "UseSymbolAlias", + "kind": "fail", + "level": "note", + "message": { + "text": "Use type alias 'Attribute'", + "markdown": "Use type alias 'Attribute'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 182, + "startColumn": 41, + "charOffset": 6920, + "charLength": 27, + "snippet": { + "text": "Splits.DarkSouls2.Attribute" + }, + "sourceLanguage": "C#" + }, + "contextRegion": { + "startLine": 180, + "startColumn": 1, + "charOffset": 6773, + "charLength": 208, + "snippet": { + "text": " case DarkSouls2SplitType.Attribute:\r\n NewSplitAttributeEnabled = true;\r\n NewSplitValue = new Splits.DarkSouls2.Attribute();\r\n break;\r\n\r" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "SoulSplitter", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "73b9ea73ae7386d8", + "equalIndicator/v1": "906e29fb7550f659fe57702fa214e69be65cb2dd69476877d4489b9026699de9" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NETFramework 4.8.1" + ] + } + } + ], + "automationDetails": { + "id": "SoulSplitter/qodana/2025-01-24", + "guid": "a595cf07-dfab-4ad0-89f9-724c82d2bff5", + "properties": { + "jobUrl": "https://github.com/FrankvdStam/SoulSplitter/actions/runs/12956699028" + } + }, + "newlineSequences": [ + "\r\n", + "\n" + ], + "properties": { + "qodanaFailureConditions": { + "severityThresholds": { + "any": 0 + }, + "testCoverageThresholds": { + "totalCoverage": 20, + "freshCoverage": 50 + } + }, + "coverage": { + "totalCoverage": 21, + "totalLines": 7601, + "totalCoveredLines": 1601 + }, + "configProfile": "recommended", + "deviceId": "200820300000000-50b2-0b80-867f-20af431df407", + "qodanaNewResultSummary": { + "high": 166, + "total": 166 + } + } + } + ] +} \ No newline at end of file diff --git a/qodana.yaml b/qodana.yaml index 329902e..b24c335 100644 --- a/qodana.yaml +++ b/qodana.yaml @@ -27,6 +27,8 @@ dependencyOverrides: - key: "MIT" url: "https://nuget.info/packages/NETStandard.Library/2.0.3" +fixesStrategy: cleanup + failureConditions: severityThresholds: any: 0 From f7883971c87fefd2c063431e5a711f37fe14bd63 Mon Sep 17 00:00:00 2001 From: Frank van der Stam Date: Fri, 24 Jan 2025 22:09:38 +0100 Subject: [PATCH 19/28] Remove sonar badges --- README.md | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/README.md b/README.md index c009621..481a784 100644 --- a/README.md +++ b/README.md @@ -17,19 +17,6 @@

- - - - - - - - - - - - -
From 8c2768b82b24bc3d5696fa86c057e2487d772bca Mon Sep 17 00:00:00 2001 From: Frank van der Stam Date: Fri, 24 Jan 2025 22:16:01 +0100 Subject: [PATCH 20/28] remove fixes since it seems to have some errors in the qodana servers --- qodana.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/qodana.yaml b/qodana.yaml index b24c335..329902e 100644 --- a/qodana.yaml +++ b/qodana.yaml @@ -27,8 +27,6 @@ dependencyOverrides: - key: "MIT" url: "https://nuget.info/packages/NETStandard.Library/2.0.3" -fixesStrategy: cleanup - failureConditions: severityThresholds: any: 0 From 7aaa3f703796d95d5d0700cf7483e5708d890bc1 Mon Sep 17 00:00:00 2001 From: Frank van der Stam Date: Sat, 25 Jan 2025 10:45:55 +0100 Subject: [PATCH 21/28] Add baseline path, add github code scanning --- .github/workflows/build.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e7c4da3..7cd043b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -45,8 +45,15 @@ jobs: - name: Qodana Scan if: ${{ !github.event.pull_request.head.repo.fork }} uses: JetBrains/qodana-action@v2024.1 + with: + args: --baseline,qodana.sarif.json env: QODANA_TOKEN: ${{ secrets.QODANA_TOKEN }} + + - name: upload to github code scanning + uses: github/codeql-action/upload-sarif@v2 + with: + sarif_file: ${{ runner.temp }}/qodana/results/qodana.sarif.json #Collect all the artifacts and publish them - name: collect artifacts From 1389f6ae593be228d321975040896b7b615f34a2 Mon Sep 17 00:00:00 2001 From: Frank van der Stam Date: Sat, 25 Jan 2025 11:01:15 +0100 Subject: [PATCH 22/28] Regenerate baseline json --- .github/workflows/build.yml | 1 + qodana.sarif.json | 78 ++++++++++++++++++------------------- 2 files changed, 40 insertions(+), 39 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7cd043b..da858bb 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -47,6 +47,7 @@ jobs: uses: JetBrains/qodana-action@v2024.1 with: args: --baseline,qodana.sarif.json + push-fixes: pull-request env: QODANA_TOKEN: ${{ secrets.QODANA_TOKEN }} diff --git a/qodana.sarif.json b/qodana.sarif.json index b6cc257..cbd243e 100644 --- a/qodana.sarif.json +++ b/qodana.sarif.json @@ -117381,19 +117381,19 @@ ] }, { - "id": "JSValidateJSDoc", + "id": "NonBlockStatementBodyJS", "shortDescription": { - "text": "Syntax errors and unresolved references in JSDoc" + "text": "Statement body without braces" }, "fullDescription": { - "text": "Reports a syntax discrepancy in a documentation comment.", - "markdown": "Reports a syntax discrepancy in a documentation comment." + "text": "Reports a 'if', 'while', 'for', or 'with' statements whose body is not a block statement. Using code block in statement bodies is usually safer for downstream maintenance.", + "markdown": "Reports a `if`, `while`, `for`, or `with` statements whose body is not a block statement. Using code block in statement bodies is usually safer for downstream maintenance." }, "defaultConfiguration": { "enabled": false, "level": "warning", "parameters": { - "suppressToolId": "JSValidateJSDoc", + "suppressToolId": "NonBlockStatementBodyJS", "ideaSeverity": "WARNING", "qodanaSeverity": "High" } @@ -117401,8 +117401,8 @@ "relationships": [ { "target": { - "id": "JavaScript and TypeScript/General", - "index": 18, + "id": "JavaScript and TypeScript/Code style issues", + "index": 72, "toolComponent": { "name": "QDNET" } @@ -117414,19 +117414,19 @@ ] }, { - "id": "NonBlockStatementBodyJS", + "id": "JSValidateJSDoc", "shortDescription": { - "text": "Statement body without braces" + "text": "Syntax errors and unresolved references in JSDoc" }, "fullDescription": { - "text": "Reports a 'if', 'while', 'for', or 'with' statements whose body is not a block statement. Using code block in statement bodies is usually safer for downstream maintenance.", - "markdown": "Reports a `if`, `while`, `for`, or `with` statements whose body is not a block statement. Using code block in statement bodies is usually safer for downstream maintenance." + "text": "Reports a syntax discrepancy in a documentation comment.", + "markdown": "Reports a syntax discrepancy in a documentation comment." }, "defaultConfiguration": { "enabled": false, "level": "warning", "parameters": { - "suppressToolId": "NonBlockStatementBodyJS", + "suppressToolId": "JSValidateJSDoc", "ideaSeverity": "WARNING", "qodanaSeverity": "High" } @@ -117434,8 +117434,8 @@ "relationships": [ { "target": { - "id": "JavaScript and TypeScript/Code style issues", - "index": 72, + "id": "JavaScript and TypeScript/General", + "index": 18, "toolComponent": { "name": "QDNET" } @@ -124314,28 +124314,28 @@ ] }, { - "id": "SqlCallNotationInspection", + "id": "MysqlParsingInspection", "shortDescription": { - "text": "Using of named and positional arguments" + "text": "Unsupported syntax in pre-8.0 versions" }, "fullDescription": { - "text": "Reports calls in which positional arguments go after the named ones. Works in PostgreSQL, Oracle, and Db2. Example (In PostgreSQL): 'CREATE FUNCTION foo(a int, b int, c int) RETURNS int\n LANGUAGE plpgsql AS\n$$\nBEGIN\n RETURN a + b + c;\nEND\n$$;\nSELECT foo(a => 1, b => 2, c => 3);\n -- `3` goes after the named argument\nSELECT foo(1, b => 2, 3);\n -- `1` and `3` go after the named argument\nSELECT foo(b => 2, 1, 3);'", - "markdown": "Reports calls in which positional arguments go after the named ones. Works in PostgreSQL, Oracle, and Db2.\n\nExample (In PostgreSQL):\n\n CREATE FUNCTION foo(a int, b int, c int) RETURNS int\n LANGUAGE plpgsql AS\n $$\n BEGIN\n RETURN a + b + c;\n END\n $$;\n SELECT foo(a => 1, b => 2, c => 3);\n -- `3` goes after the named argument\n SELECT foo(1, b => 2, 3);\n -- `1` and `3` go after the named argument\n SELECT foo(b => 2, 1, 3);\n" + "text": "Reports invalid usages of UNION in queries. The inspection works in MySQL versions that are earlier than 8.0. Example (MySQL): 'SELECT * FROM (SELECT 1 UNION (SELECT 1 UNION SELECT 2)) a;'", + "markdown": "Reports invalid usages of UNION in queries.\n\nThe inspection works in MySQL versions that are earlier than 8.0.\n\nExample (MySQL):\n\n\n SELECT * FROM (SELECT 1 UNION (SELECT 1 UNION SELECT 2)) a;\n" }, "defaultConfiguration": { "enabled": true, - "level": "error", + "level": "warning", "parameters": { - "suppressToolId": "SqlCallNotation", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "suppressToolId": "MysqlParsing", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" } }, "relationships": [ { "target": { - "id": "SQL", - "index": 25, + "id": "MySQL", + "index": 120, "toolComponent": { "name": "QDNET" } @@ -124347,28 +124347,28 @@ ] }, { - "id": "MysqlParsingInspection", + "id": "SqlCallNotationInspection", "shortDescription": { - "text": "Unsupported syntax in pre-8.0 versions" + "text": "Using of named and positional arguments" }, "fullDescription": { - "text": "Reports invalid usages of UNION in queries. The inspection works in MySQL versions that are earlier than 8.0. Example (MySQL): 'SELECT * FROM (SELECT 1 UNION (SELECT 1 UNION SELECT 2)) a;'", - "markdown": "Reports invalid usages of UNION in queries.\n\nThe inspection works in MySQL versions that are earlier than 8.0.\n\nExample (MySQL):\n\n\n SELECT * FROM (SELECT 1 UNION (SELECT 1 UNION SELECT 2)) a;\n" + "text": "Reports calls in which positional arguments go after the named ones. Works in PostgreSQL, Oracle, and Db2. Example (In PostgreSQL): 'CREATE FUNCTION foo(a int, b int, c int) RETURNS int\n LANGUAGE plpgsql AS\n$$\nBEGIN\n RETURN a + b + c;\nEND\n$$;\nSELECT foo(a => 1, b => 2, c => 3);\n -- `3` goes after the named argument\nSELECT foo(1, b => 2, 3);\n -- `1` and `3` go after the named argument\nSELECT foo(b => 2, 1, 3);'", + "markdown": "Reports calls in which positional arguments go after the named ones. Works in PostgreSQL, Oracle, and Db2.\n\nExample (In PostgreSQL):\n\n CREATE FUNCTION foo(a int, b int, c int) RETURNS int\n LANGUAGE plpgsql AS\n $$\n BEGIN\n RETURN a + b + c;\n END\n $$;\n SELECT foo(a => 1, b => 2, c => 3);\n -- `3` goes after the named argument\n SELECT foo(1, b => 2, 3);\n -- `1` and `3` go after the named argument\n SELECT foo(b => 2, 1, 3);\n" }, "defaultConfiguration": { "enabled": true, - "level": "warning", + "level": "error", "parameters": { - "suppressToolId": "MysqlParsing", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "suppressToolId": "SqlCallNotation", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" } }, "relationships": [ { "target": { - "id": "MySQL", - "index": 120, + "id": "SQL", + "index": 25, "toolComponent": { "name": "QDNET" } @@ -128516,7 +128516,7 @@ }, "invocations": [ { - "startTimeUtc": "2025-01-24T20:30:24.7105146Z", + "startTimeUtc": "2025-01-24T20:13:50.8382627Z", "exitCode": 255, "exitCodeDescription": "Failure condition triggered:\n- Detected 166 problems across all severities, fail threshold: 0", "executionSuccessful": true @@ -218266,7 +218266,7 @@ ], "automationDetails": { "id": "SoulSplitter/qodana/2025-01-24", - "guid": "a595cf07-dfab-4ad0-89f9-724c82d2bff5", + "guid": "26c65a0e-ccc1-4bea-a13b-5a2833d144aa", "properties": { "jobUrl": "https://github.com/FrankvdStam/SoulSplitter/actions/runs/12956699028" } @@ -218286,9 +218286,9 @@ } }, "coverage": { - "totalCoverage": 21, - "totalLines": 7601, - "totalCoveredLines": 1601 + "totalCoverage": 20, + "totalLines": 7796, + "totalCoveredLines": 1617 }, "configProfile": "recommended", "deviceId": "200820300000000-50b2-0b80-867f-20af431df407", From c3fd6f24473a1112679dcffaacb2381ab241fbdc Mon Sep 17 00:00:00 2001 From: Frank van der Stam Date: Sat, 25 Jan 2025 11:23:22 +0100 Subject: [PATCH 23/28] Remove push fixes & add linter --- .github/workflows/build.yml | 1 - qodana.yaml | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index da858bb..7cd043b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -47,7 +47,6 @@ jobs: uses: JetBrains/qodana-action@v2024.1 with: args: --baseline,qodana.sarif.json - push-fixes: pull-request env: QODANA_TOKEN: ${{ secrets.QODANA_TOKEN }} diff --git a/qodana.yaml b/qodana.yaml index 329902e..27c384f 100644 --- a/qodana.yaml +++ b/qodana.yaml @@ -19,6 +19,8 @@ exclude: - tests - src/Cli +linter: jetbrains/qodana-dotnet:2024.3 + dependencyOverrides: #this unfortunately does not get detected automatically by qodana - name: "NETStandard.Library" From d50d882dbfddd162354d8f18f9a1f805e556d5c2 Mon Sep 17 00:00:00 2001 From: Frank van der Stam Date: Sat, 25 Jan 2025 11:24:59 +0100 Subject: [PATCH 24/28] Regenerate qodana baseline again... --- qodana.sarif.json | 56 +++++++++++++++++++++++------------------------ 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/qodana.sarif.json b/qodana.sarif.json index cbd243e..da488b0 100644 --- a/qodana.sarif.json +++ b/qodana.sarif.json @@ -124314,28 +124314,28 @@ ] }, { - "id": "MysqlParsingInspection", + "id": "SqlCallNotationInspection", "shortDescription": { - "text": "Unsupported syntax in pre-8.0 versions" + "text": "Using of named and positional arguments" }, "fullDescription": { - "text": "Reports invalid usages of UNION in queries. The inspection works in MySQL versions that are earlier than 8.0. Example (MySQL): 'SELECT * FROM (SELECT 1 UNION (SELECT 1 UNION SELECT 2)) a;'", - "markdown": "Reports invalid usages of UNION in queries.\n\nThe inspection works in MySQL versions that are earlier than 8.0.\n\nExample (MySQL):\n\n\n SELECT * FROM (SELECT 1 UNION (SELECT 1 UNION SELECT 2)) a;\n" + "text": "Reports calls in which positional arguments go after the named ones. Works in PostgreSQL, Oracle, and Db2. Example (In PostgreSQL): 'CREATE FUNCTION foo(a int, b int, c int) RETURNS int\n LANGUAGE plpgsql AS\n$$\nBEGIN\n RETURN a + b + c;\nEND\n$$;\nSELECT foo(a => 1, b => 2, c => 3);\n -- `3` goes after the named argument\nSELECT foo(1, b => 2, 3);\n -- `1` and `3` go after the named argument\nSELECT foo(b => 2, 1, 3);'", + "markdown": "Reports calls in which positional arguments go after the named ones. Works in PostgreSQL, Oracle, and Db2.\n\nExample (In PostgreSQL):\n\n CREATE FUNCTION foo(a int, b int, c int) RETURNS int\n LANGUAGE plpgsql AS\n $$\n BEGIN\n RETURN a + b + c;\n END\n $$;\n SELECT foo(a => 1, b => 2, c => 3);\n -- `3` goes after the named argument\n SELECT foo(1, b => 2, 3);\n -- `1` and `3` go after the named argument\n SELECT foo(b => 2, 1, 3);\n" }, "defaultConfiguration": { "enabled": true, - "level": "warning", + "level": "error", "parameters": { - "suppressToolId": "MysqlParsing", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "suppressToolId": "SqlCallNotation", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" } }, "relationships": [ { "target": { - "id": "MySQL", - "index": 120, + "id": "SQL", + "index": 25, "toolComponent": { "name": "QDNET" } @@ -124347,28 +124347,28 @@ ] }, { - "id": "SqlCallNotationInspection", + "id": "MysqlParsingInspection", "shortDescription": { - "text": "Using of named and positional arguments" + "text": "Unsupported syntax in pre-8.0 versions" }, "fullDescription": { - "text": "Reports calls in which positional arguments go after the named ones. Works in PostgreSQL, Oracle, and Db2. Example (In PostgreSQL): 'CREATE FUNCTION foo(a int, b int, c int) RETURNS int\n LANGUAGE plpgsql AS\n$$\nBEGIN\n RETURN a + b + c;\nEND\n$$;\nSELECT foo(a => 1, b => 2, c => 3);\n -- `3` goes after the named argument\nSELECT foo(1, b => 2, 3);\n -- `1` and `3` go after the named argument\nSELECT foo(b => 2, 1, 3);'", - "markdown": "Reports calls in which positional arguments go after the named ones. Works in PostgreSQL, Oracle, and Db2.\n\nExample (In PostgreSQL):\n\n CREATE FUNCTION foo(a int, b int, c int) RETURNS int\n LANGUAGE plpgsql AS\n $$\n BEGIN\n RETURN a + b + c;\n END\n $$;\n SELECT foo(a => 1, b => 2, c => 3);\n -- `3` goes after the named argument\n SELECT foo(1, b => 2, 3);\n -- `1` and `3` go after the named argument\n SELECT foo(b => 2, 1, 3);\n" + "text": "Reports invalid usages of UNION in queries. The inspection works in MySQL versions that are earlier than 8.0. Example (MySQL): 'SELECT * FROM (SELECT 1 UNION (SELECT 1 UNION SELECT 2)) a;'", + "markdown": "Reports invalid usages of UNION in queries.\n\nThe inspection works in MySQL versions that are earlier than 8.0.\n\nExample (MySQL):\n\n\n SELECT * FROM (SELECT 1 UNION (SELECT 1 UNION SELECT 2)) a;\n" }, "defaultConfiguration": { "enabled": true, - "level": "error", + "level": "warning", "parameters": { - "suppressToolId": "SqlCallNotation", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "suppressToolId": "MysqlParsing", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" } }, "relationships": [ { "target": { - "id": "SQL", - "index": 25, + "id": "MySQL", + "index": 120, "toolComponent": { "name": "QDNET" } @@ -128516,7 +128516,7 @@ }, "invocations": [ { - "startTimeUtc": "2025-01-24T20:13:50.8382627Z", + "startTimeUtc": "2025-01-25T09:58:04.0186602Z", "exitCode": 255, "exitCodeDescription": "Failure condition triggered:\n- Detected 166 problems across all severities, fail threshold: 0", "executionSuccessful": true @@ -128526,7 +128526,7 @@ "versionControlProvenance": [ { "repositoryUri": "https://github.com/FrankvdStam/SoulSplitter.git", - "revisionId": "4e37a0041a6b19b726c679d938440f9db4280153", + "revisionId": "0dcb241e7f62cac15be1512024c02024f623eb4e", "branch": "feature/langversion-13", "properties": { "repoUrl": "https://github.com/FrankvdStam/SoulSplitter.git", @@ -218265,10 +218265,10 @@ } ], "automationDetails": { - "id": "SoulSplitter/qodana/2025-01-24", - "guid": "26c65a0e-ccc1-4bea-a13b-5a2833d144aa", + "id": "SoulSplitter/qodana/2025-01-25", + "guid": "2ae5ad0f-924a-4e7e-a24e-3c417f15474e", "properties": { - "jobUrl": "https://github.com/FrankvdStam/SoulSplitter/actions/runs/12956699028" + "jobUrl": "https://github.com/FrankvdStam/SoulSplitter/actions/runs/12963875323" } }, "newlineSequences": [ @@ -218286,9 +218286,9 @@ } }, "coverage": { - "totalCoverage": 20, - "totalLines": 7796, - "totalCoveredLines": 1617 + "totalCoverage": 21, + "totalLines": 7601, + "totalCoveredLines": 1601 }, "configProfile": "recommended", "deviceId": "200820300000000-50b2-0b80-867f-20af431df407", From 48472a6fea6946ec8b6d10099b42951d3871cc43 Mon Sep 17 00:00:00 2001 From: Frank van der Stam Date: Sat, 25 Jan 2025 11:39:17 +0100 Subject: [PATCH 25/28] Bump qodana action version --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7cd043b..38c95ac 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -44,7 +44,7 @@ jobs: - name: Qodana Scan if: ${{ !github.event.pull_request.head.repo.fork }} - uses: JetBrains/qodana-action@v2024.1 + uses: JetBrains/qodana-action@v2024.3 with: args: --baseline,qodana.sarif.json env: From a22726a557b26868c2fc4d91e5262b5e5f2c10c5 Mon Sep 17 00:00:00 2001 From: Frank van der Stam Date: Sat, 25 Jan 2025 11:56:37 +0100 Subject: [PATCH 26/28] Remove linter --- qodana.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/qodana.yaml b/qodana.yaml index 27c384f..329902e 100644 --- a/qodana.yaml +++ b/qodana.yaml @@ -19,8 +19,6 @@ exclude: - tests - src/Cli -linter: jetbrains/qodana-dotnet:2024.3 - dependencyOverrides: #this unfortunately does not get detected automatically by qodana - name: "NETStandard.Library" From 9034c6ac007ef4359fb3ddf2d8f5a8db72217f44 Mon Sep 17 00:00:00 2001 From: Frank van der Stam Date: Sat, 25 Jan 2025 12:21:23 +0100 Subject: [PATCH 27/28] continue on error, new baseline json --- .github/workflows/build.yml | 1 + qodana.sarif.json | 122641 ++++++--------------------------- 2 files changed, 22269 insertions(+), 100373 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 38c95ac..a215523 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -44,6 +44,7 @@ jobs: - name: Qodana Scan if: ${{ !github.event.pull_request.head.repo.fork }} + continue-on-error: true uses: JetBrains/qodana-action@v2024.3 with: args: --baseline,qodana.sarif.json diff --git a/qodana.sarif.json b/qodana.sarif.json index da488b0..79d6df1 100644 --- a/qodana.sarif.json +++ b/qodana.sarif.json @@ -7,7 +7,7 @@ "driver": { "name": "QDNET", "fullName": "Qodana for .NET", - "version": "241.16914.127", + "version": "243.24609", "rules": [], "taxa": [ { @@ -33,16 +33,16 @@ ] }, { - "id": "C++", - "name": "C++" + "id": "C_C++", + "name": "C/C++" }, { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "name": "Clang Diagnostics", "relationships": [ { "target": { - "id": "C++", + "id": "C_C++", "index": 2, "toolComponent": { "name": "QDNET" @@ -77,12 +77,12 @@ ] }, { - "id": "C++/Unreal Engine", + "id": "C_C++/Unreal Engine", "name": "Unreal Engine", "relationships": [ { "target": { - "id": "C++", + "id": "C_C++", "index": 2, "toolComponent": { "name": "QDNET" @@ -113,12 +113,12 @@ ] }, { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "name": "Clang-Tidy Checks", "relationships": [ { "target": { - "id": "C++", + "id": "C_C++", "index": 2, "toolComponent": { "name": "QDNET" @@ -131,12 +131,12 @@ ] }, { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "name": "Potential Code Quality Issues", "relationships": [ { "target": { - "id": "C++", + "id": "C_C++", "index": 2, "toolComponent": { "name": "QDNET" @@ -156,28 +156,6 @@ "id": "HTML", "name": "HTML" }, - { - "id": "JavaScript and TypeScript", - "name": "JavaScript and TypeScript" - }, - { - "id": "JavaScript and TypeScript/Flow type checker", - "name": "Flow type checker", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, { "id": "C#/Common Practices and Code Improvements", "name": "Common Practices and Code Improvements", @@ -200,6 +178,10 @@ "id": "PostCSS", "name": "PostCSS" }, + { + "id": "JavaScript and TypeScript", + "name": "JavaScript and TypeScript" + }, { "id": "JavaScript and TypeScript/Bitwise operation issues", "name": "Bitwise operation issues", @@ -207,7 +189,7 @@ { "target": { "id": "JavaScript and TypeScript", - "index": 12, + "index": 14, "toolComponent": { "name": "QDNET" } @@ -219,12 +201,12 @@ ] }, { - "id": "C++/Common Practices and Code Improvements", + "id": "C_C++/Common Practices and Code Improvements", "name": "Common Practices and Code Improvements", "relationships": [ { "target": { - "id": "C++", + "id": "C_C++", "index": 2, "toolComponent": { "name": "QDNET" @@ -243,7 +225,7 @@ { "target": { "id": "JavaScript and TypeScript", - "index": 12, + "index": 14, "toolComponent": { "name": "QDNET" } @@ -272,6 +254,10 @@ } ] }, + { + "id": "HTTP Client", + "name": "HTTP Client" + }, { "id": "EditorConfig", "name": "EditorConfig" @@ -301,7 +287,7 @@ { "target": { "id": "JavaScript and TypeScript", - "index": 12, + "index": 14, "toolComponent": { "name": "QDNET" } @@ -389,12 +375,12 @@ ] }, { - "id": "C++/Formatting", + "id": "C_C++/Formatting", "name": "Formatting", "relationships": [ { "target": { - "id": "C++", + "id": "C_C++", "index": 2, "toolComponent": { "name": "QDNET" @@ -435,7 +421,7 @@ { "target": { "id": "JavaScript and TypeScript", - "index": 12, + "index": 14, "toolComponent": { "name": "QDNET" } @@ -447,12 +433,12 @@ ] }, { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "name": "Clang Static Analyzer Checks", "relationships": [ { "target": { - "id": "C++", + "id": "C_C++", "index": 2, "toolComponent": { "name": "QDNET" @@ -465,16 +451,16 @@ ] }, { - "id": "HTTP Client", - "name": "HTTP Client" + "id": "Kubernetes", + "name": "Kubernetes" }, { - "id": "C++/Redundancies in Code", + "id": "C_C++/Redundancies in Code", "name": "Redundancies in Code", "relationships": [ { "target": { - "id": "C++", + "id": "C_C++", "index": 2, "toolComponent": { "name": "QDNET" @@ -592,6 +578,10 @@ "id": "XSLT", "name": "XSLT" }, + { + "id": "Dockerfile", + "name": "Dockerfile" + }, { "id": "XAML/Potential Code Quality Issues", "name": "Potential Code Quality Issues", @@ -625,7 +615,7 @@ { "target": { "id": "ASP.NET route templates", - "index": 46, + "index": 47, "toolComponent": { "name": "QDNET" } @@ -643,7 +633,25 @@ { "target": { "id": "JavaScript and TypeScript", - "index": 12, + "index": 14, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "C#/Godot", + "name": "Godot", + "relationships": [ + { + "target": { + "id": "C#", + "index": 0, "toolComponent": { "name": "QDNET" } @@ -661,7 +669,25 @@ { "target": { "id": "JavaScript and TypeScript", - "index": 12, + "index": 14, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "C#/Non configurable", + "name": "Non configurable", + "relationships": [ + { + "target": { + "id": "C#", + "index": 0, "toolComponent": { "name": "QDNET" } @@ -701,7 +727,7 @@ { "target": { "id": "JavaScript and TypeScript", - "index": 12, + "index": 14, "toolComponent": { "name": "QDNET" } @@ -738,6 +764,10 @@ "id": "RegExp", "name": "RegExp" }, + { + "id": "Angular", + "name": "Angular" + }, { "id": "XAML/Compiler Warnings", "name": "Compiler Warnings", @@ -763,7 +793,7 @@ { "target": { "id": "JavaScript and TypeScript", - "index": 12, + "index": 14, "toolComponent": { "name": "QDNET" } @@ -803,7 +833,7 @@ { "target": { "id": "Aspx", - "index": 59, + "index": 63, "toolComponent": { "name": "QDNET" } @@ -821,7 +851,7 @@ { "target": { "id": "JavaScript and TypeScript", - "index": 12, + "index": 14, "toolComponent": { "name": "QDNET" } @@ -832,6 +862,10 @@ } ] }, + { + "id": "OpenAPI specifications", + "name": "OpenAPI specifications" + }, { "id": "ResX", "name": "ResX" @@ -843,7 +877,7 @@ { "target": { "id": "ResX", - "index": 62, + "index": 67, "toolComponent": { "name": "QDNET" } @@ -861,7 +895,7 @@ { "target": { "id": "JavaScript and TypeScript", - "index": 12, + "index": 14, "toolComponent": { "name": "QDNET" } @@ -872,6 +906,10 @@ } ] }, + { + "id": "GitHub actions", + "name": "GitHub actions" + }, { "id": "Pug_Jade", "name": "Pug/Jade" @@ -887,7 +925,7 @@ { "target": { "id": "F#", - "index": 66, + "index": 72, "toolComponent": { "name": "QDNET" } @@ -917,12 +955,12 @@ ] }, { - "id": "C++/Compiler Warnings", + "id": "C_C++/Compiler Warnings", "name": "Compiler Warnings", "relationships": [ { "target": { - "id": "C++", + "id": "C_C++", "index": 2, "toolComponent": { "name": "QDNET" @@ -941,7 +979,7 @@ { "target": { "id": "JavaScript and TypeScript", - "index": 12, + "index": 14, "toolComponent": { "name": "QDNET" } @@ -970,6 +1008,10 @@ } ] }, + { + "id": "JSONPath", + "name": "JSONPath" + }, { "id": "JavaScript and TypeScript/Code style issues", "name": "Code style issues", @@ -977,7 +1019,7 @@ { "target": { "id": "JavaScript and TypeScript", - "index": 12, + "index": 14, "toolComponent": { "name": "QDNET" } @@ -1017,7 +1059,7 @@ { "target": { "id": "Web.Config", - "index": 74, + "index": 81, "toolComponent": { "name": "QDNET" } @@ -1061,7 +1103,7 @@ { "target": { "id": "JavaScript and TypeScript", - "index": 12, + "index": 14, "toolComponent": { "name": "QDNET" } @@ -1099,12 +1141,16 @@ "name": "MongoJS" }, { - "id": "C++/Syntax Style", + "id": "Markdown", + "name": "Markdown" + }, + { + "id": "C_C++/Syntax Style", "name": "Syntax Style", "relationships": [ { "target": { - "id": "C++", + "id": "C_C++", "index": 2, "toolComponent": { "name": "QDNET" @@ -1127,7 +1173,7 @@ { "target": { "id": "Razor", - "index": 84, + "index": 92, "toolComponent": { "name": "QDNET" } @@ -1145,7 +1191,7 @@ { "target": { "id": "Web.Config", - "index": 74, + "index": 81, "toolComponent": { "name": "QDNET" } @@ -1185,7 +1231,7 @@ { "target": { "id": "JavaScript and TypeScript", - "index": 12, + "index": 14, "toolComponent": { "name": "QDNET" } @@ -1203,7 +1249,7 @@ { "target": { "id": "Web.Config", - "index": 74, + "index": 81, "toolComponent": { "name": "QDNET" } @@ -1221,7 +1267,7 @@ { "target": { "id": "ResX", - "index": 62, + "index": 67, "toolComponent": { "name": "QDNET" } @@ -1243,7 +1289,7 @@ { "target": { "id": "HttpHandler or WebService", - "index": 92, + "index": 100, "toolComponent": { "name": "QDNET" } @@ -1265,7 +1311,7 @@ { "target": { "id": "JavaScript and TypeScript", - "index": 12, + "index": 14, "toolComponent": { "name": "QDNET" } @@ -1283,7 +1329,7 @@ { "target": { "id": "JavaScript and TypeScript", - "index": 12, + "index": 14, "toolComponent": { "name": "QDNET" } @@ -1298,6 +1344,28 @@ "id": "Dependency analysis", "name": "Dependency analysis" }, + { + "id": "Inappropriate gRPC request scheme", + "name": "Inappropriate gRPC request scheme" + }, + { + "id": "Razor/Non configurable", + "name": "Non configurable", + "relationships": [ + { + "target": { + "id": "Razor", + "index": 92, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "JavaScript and TypeScript/Assignment issues", "name": "Assignment issues", @@ -1305,7 +1373,7 @@ { "target": { "id": "JavaScript and TypeScript", - "index": 12, + "index": 14, "toolComponent": { "name": "QDNET" } @@ -1323,7 +1391,7 @@ { "target": { "id": "JavaScript and TypeScript", - "index": 12, + "index": 14, "toolComponent": { "name": "QDNET" } @@ -1363,7 +1431,7 @@ { "target": { "id": "JavaScript and TypeScript", - "index": 12, + "index": 14, "toolComponent": { "name": "QDNET" } @@ -1375,12 +1443,12 @@ ] }, { - "id": "C++/UnrealHeaderTool", + "id": "C_C++/UnrealHeaderTool", "name": "UnrealHeaderTool", "relationships": [ { "target": { - "id": "C++", + "id": "C_C++", "index": 2, "toolComponent": { "name": "QDNET" @@ -1421,7 +1489,7 @@ { "target": { "id": "T4", - "index": 105, + "index": 115, "toolComponent": { "name": "QDNET" } @@ -1439,7 +1507,25 @@ { "target": { "id": "JavaScript and TypeScript", - "index": 12, + "index": 14, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "JavaScript and TypeScript/Flow type checker", + "name": "Flow type checker", + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript", + "index": 14, "toolComponent": { "name": "QDNET" } @@ -1457,7 +1543,7 @@ { "target": { "id": "Aspx", - "index": 59, + "index": 63, "toolComponent": { "name": "QDNET" } @@ -1475,7 +1561,7 @@ { "target": { "id": "JavaScript and TypeScript", - "index": 12, + "index": 14, "toolComponent": { "name": "QDNET" } @@ -1502,10 +1588,46 @@ "id": "Internationalization", "name": "Internationalization" }, + { + "id": "T4/Non configurable", + "name": "Non configurable", + "relationships": [ + { + "target": { + "id": "T4", + "index": 115, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "Unreal Engine", "name": "Unreal Engine" }, + { + "id": "C_C++/Non configurable", + "name": "Non configurable", + "relationships": [ + { + "target": { + "id": "C_C++", + "index": 2, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "C#/Unity Performance Inspections", "name": "Unity Performance Inspections", @@ -1524,17 +1646,119 @@ } ] }, + { + "id": "CSS/Code quality tools", + "name": "Code quality tools", + "relationships": [ + { + "target": { + "id": "CSS", + "index": 29, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "XAML/Non configurable", + "name": "Non configurable", + "relationships": [ + { + "target": { + "id": "XAML", + "index": 4, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Security", + "name": "Security" + }, + { + "id": "Aspx/Non configurable", + "name": "Non configurable", + "relationships": [ + { + "target": { + "id": "Aspx", + "index": 63, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Assembler", + "name": "Assembler" + }, + { + "id": "Assembler/Non configurable", + "name": "Non configurable", + "relationships": [ + { + "target": { + "id": "Assembler", + "index": 133, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Docker-compose", + "name": "Docker-compose" + }, { "id": "RELAX NG", "name": "RELAX NG" }, { - "id": "C++/Constraints Violations", + "id": "Web.Config/Non configurable", + "name": "Non configurable", + "relationships": [ + { + "target": { + "id": "Web.Config", + "index": 81, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "C_C++/Constraints Violations", "name": "Constraints Violations", "relationships": [ { "target": { - "id": "C++", + "id": "C_C++", "index": 2, "toolComponent": { "name": "QDNET" @@ -1546,6 +1770,24 @@ } ] }, + { + "id": "VB.NET/Non configurable", + "name": "Non configurable", + "relationships": [ + { + "target": { + "id": "VB.NET", + "index": 39, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "JavaScript and TypeScript/Unit testing", "name": "Unit testing", @@ -1553,7 +1795,7 @@ { "target": { "id": "JavaScript and TypeScript", - "index": 12, + "index": 14, "toolComponent": { "name": "QDNET" } @@ -1597,7 +1839,7 @@ { "target": { "id": "Angular 2 HTML", - "index": 121, + "index": 143, "toolComponent": { "name": "QDNET" } @@ -1609,12 +1851,12 @@ ] }, { - "id": "C++/.NET Core", + "id": "C_C++/.NET Core", "name": ".NET Core", "relationships": [ { "target": { - "id": "C++", + "id": "C_C++", "index": 2, "toolComponent": { "name": "QDNET" @@ -1648,22 +1890,22 @@ "id": "Ini files", "name": "Ini files" }, - { - "id": "Security", - "name": "Security" - }, { "id": "Version control", "name": "Version control" }, { - "id": "Aspx/Common Practices and Code Improvements", - "name": "Common Practices and Code Improvements", + "id": "ShaderLab", + "name": "ShaderLab" + }, + { + "id": "ShaderLab/Non configurable", + "name": "Non configurable", "relationships": [ { "target": { - "id": "Aspx", - "index": 59, + "id": "ShaderLab", + "index": 149, "toolComponent": { "name": "QDNET" } @@ -1675,13 +1917,13 @@ ] }, { - "id": "CSS/Code quality tools", - "name": "Code quality tools", + "id": "Aspx/Common Practices and Code Improvements", + "name": "Common Practices and Code Improvements", "relationships": [ { "target": { - "id": "CSS", - "index": 29, + "id": "Aspx", + "index": 63, "toolComponent": { "name": "QDNET" } @@ -1697,8 +1939,8 @@ "name": "PostgreSQL" }, { - "id": "Qodana", - "name": "Qodana" + "id": "Dev Container", + "name": "Dev Container" }, { "id": "File Watchers", @@ -1715,7 +1957,7 @@ { "target": { "id": "Rider", - "index": 133, + "index": 155, "toolComponent": { "name": "QDNET" } @@ -1751,7 +1993,25 @@ { "target": { "id": "JavaScript and TypeScript", - "index": 12, + "index": 14, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "HTML/Non configurable", + "name": "Non configurable", + "relationships": [ + { + "target": { + "id": "HTML", + "index": 11, "toolComponent": { "name": "QDNET" } @@ -1780,6 +2040,50 @@ } ] }, + { + "id": "RegExpBase", + "name": "RegExpBase" + }, + { + "id": "RegExpBase/Non configurable", + "name": "Non configurable", + "relationships": [ + { + "target": { + "id": "RegExpBase", + "index": 161, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "YAML/Non configurable", + "name": "Non configurable", + "relationships": [ + { + "target": { + "id": "YAML", + "index": 95, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "Protocol Buffers", + "name": "Protocol Buffers" + }, { "id": "MSBuild", "name": "MSBuild" @@ -1803,8 +2107,40 @@ ] }, { - "id": "RegExpBase", - "name": "RegExpBase" + "id": "HttpHandler or WebService/Non configurable", + "name": "Non configurable", + "relationships": [ + { + "target": { + "id": "HttpHandler or WebService", + "index": 100, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "XML/Non configurable", + "name": "Non configurable", + "relationships": [ + { + "target": { + "id": "XML", + "index": 56, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] }, { "id": "RegExpBase/Language Usage Opportunities", @@ -1813,7 +2149,7 @@ { "target": { "id": "RegExpBase", - "index": 140, + "index": 161, "toolComponent": { "name": "QDNET" } @@ -1828,6 +2164,24 @@ "id": "Handlebars_Mustache", "name": "Handlebars/Mustache" }, + { + "id": "F#/Non configurable", + "name": "Non configurable", + "relationships": [ + { + "target": { + "id": "F#", + "index": 72, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "JavaScript and TypeScript/Node.js", "name": "Node.js", @@ -1835,7 +2189,7 @@ { "target": { "id": "JavaScript and TypeScript", - "index": 12, + "index": 14, "toolComponent": { "name": "QDNET" } @@ -1863,6 +2217,10 @@ ] } ] + }, + { + "id": "Qodana", + "name": "Qodana" } ], "language": "en-US", @@ -1875,7 +2233,7 @@ "extensions": [ { "name": "rider.intellij.plugin.appender", - "version": "241.16914", + "version": "243.24609", "rules": [ { "id": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", @@ -1892,7 +2250,8 @@ "parameters": { "suppressToolId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -1917,7 +2276,7 @@ }, "fullDescription": { "text": "-Wc++98-c++11-c++14-compat-pedantic clang diagnostic · Learn more", - "markdown": "-Wc++98-c++11-c++14-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-98-c-11-c-14-compat-pedantic)" + "markdown": "-Wc++98-c++11-c++14-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-98-c-11-c-14-compat-pedantic)" }, "defaultConfiguration": { "enabled": false, @@ -1925,13 +2284,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCpp98Cpp11Cpp14CompatPedantic", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -1958,7 +2318,8 @@ "parameters": { "suppressToolId": "Xaml.InvalidDynamicResourceType", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -1991,13 +2352,14 @@ "parameters": { "suppressToolId": "CppUEBlueprintImplementableEventNotImplemented", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Unreal Engine", + "id": "C_C++/Unreal Engine", "index": 6, "toolComponent": { "name": "QDNET" @@ -2024,7 +2386,8 @@ "parameters": { "suppressToolId": "ConvertToCompoundAssignment", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -2057,7 +2420,8 @@ "parameters": { "suppressToolId": "UseConfigureAwaitFalseForAsyncDisposable", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -2082,7 +2446,7 @@ }, "fullDescription": { "text": "cppcoreguidelines-pro-type-reinterpret-cast clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-pro-type-reinterpret-cast clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/pro-type-reinterpret-cast.html)" + "markdown": "cppcoreguidelines-pro-type-reinterpret-cast clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/pro-type-reinterpret-cast.html)" }, "defaultConfiguration": { "enabled": false, @@ -2090,13 +2454,14 @@ "parameters": { "suppressToolId": "CppClangTidyCppcoreguidelinesProTypeReinterpretCast", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -2115,7 +2480,7 @@ }, "fullDescription": { "text": "-Wenum-conversion clang diagnostic · Learn more", - "markdown": "-Wenum-conversion clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wenum-conversion)" + "markdown": "-Wenum-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wenum-conversion)" }, "defaultConfiguration": { "enabled": true, @@ -2123,13 +2488,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticEnumConversion", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -2148,7 +2514,7 @@ }, "fullDescription": { "text": "-Wcompare-distinct-pointer-types clang diagnostic · Learn more", - "markdown": "-Wcompare-distinct-pointer-types clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wcompare-distinct-pointer-types)" + "markdown": "-Wcompare-distinct-pointer-types clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcompare-distinct-pointer-types)" }, "defaultConfiguration": { "enabled": true, @@ -2156,13 +2522,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCompareDistinctPointerTypes", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -2189,13 +2556,14 @@ "parameters": { "suppressToolId": "CppAssignedValueIsNeverUsed", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -2222,13 +2590,14 @@ "parameters": { "suppressToolId": "CppCVQualifierCanNotBeAppliedToReference", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -2255,13 +2624,14 @@ "parameters": { "suppressToolId": "CppBoundToDelegateMethodIsNotMarkedAsUFunction", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Unreal Engine", + "id": "C_C++/Unreal Engine", "index": 6, "toolComponent": { "name": "QDNET" @@ -2280,7 +2650,7 @@ }, "fullDescription": { "text": "bugprone-empty-catch clang-tidy check · Learn more", - "markdown": "bugprone-empty-catch clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/empty-catch.html)" + "markdown": "bugprone-empty-catch clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/empty-catch.html)" }, "defaultConfiguration": { "enabled": true, @@ -2288,13 +2658,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneEmptyCatch", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -2313,7 +2684,7 @@ }, "fullDescription": { "text": "-Wpre-openmp-51-compat clang diagnostic · Learn more", - "markdown": "-Wpre-openmp-51-compat clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpre-openmp-51-compat)" + "markdown": "-Wpre-openmp-51-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpre-openmp-51-compat)" }, "defaultConfiguration": { "enabled": false, @@ -2321,13 +2692,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticPreOpenmp51Compat", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -2346,7 +2718,7 @@ }, "fullDescription": { "text": "-Wincompatible-pointer-types clang diagnostic · Learn more", - "markdown": "-Wincompatible-pointer-types clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wincompatible-pointer-types)" + "markdown": "-Wincompatible-pointer-types clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wincompatible-pointer-types)" }, "defaultConfiguration": { "enabled": true, @@ -2354,13 +2726,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticIncompatiblePointerTypes", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -2379,7 +2752,7 @@ }, "fullDescription": { "text": "-Winitializer-overrides clang diagnostic · Learn more", - "markdown": "-Winitializer-overrides clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#winitializer-overrides)" + "markdown": "-Winitializer-overrides clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winitializer-overrides)" }, "defaultConfiguration": { "enabled": true, @@ -2387,13 +2760,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticInitializerOverrides", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -2412,7 +2786,7 @@ }, "fullDescription": { "text": "-Wstdlibcxx-not-found clang diagnostic · Learn more", - "markdown": "-Wstdlibcxx-not-found clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wstdlibcxx-not-found)" + "markdown": "-Wstdlibcxx-not-found clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wstdlibcxx-not-found)" }, "defaultConfiguration": { "enabled": false, @@ -2420,13 +2794,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticStdlibcxxNotFound", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -2445,7 +2820,7 @@ }, "fullDescription": { "text": "-Wtautological-unsigned-enum-zero-compare clang diagnostic · Learn more", - "markdown": "-Wtautological-unsigned-enum-zero-compare clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wtautological-unsigned-enum-zero-compare)" + "markdown": "-Wtautological-unsigned-enum-zero-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtautological-unsigned-enum-zero-compare)" }, "defaultConfiguration": { "enabled": true, @@ -2453,13 +2828,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticTautologicalUnsignedEnumZeroCompare", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -2486,13 +2862,14 @@ "parameters": { "suppressToolId": "CppClassNeedsConstructorBecauseOfUninitializedMember", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -2511,7 +2888,7 @@ }, "fullDescription": { "text": "-Wtarget-clones-mixed-specifiers clang diagnostic · Learn more", - "markdown": "-Wtarget-clones-mixed-specifiers clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wtarget-clones-mixed-specifiers)" + "markdown": "-Wtarget-clones-mixed-specifiers clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtarget-clones-mixed-specifiers)" }, "defaultConfiguration": { "enabled": false, @@ -2519,13 +2896,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticTargetClonesMixedSpecifiers", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -2544,7 +2922,7 @@ }, "fullDescription": { "text": "-Wmicrosoft-exists clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-exists clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-exists)" + "markdown": "-Wmicrosoft-exists clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-exists)" }, "defaultConfiguration": { "enabled": true, @@ -2552,13 +2930,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftExists", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -2577,7 +2956,7 @@ }, "fullDescription": { "text": "android-cloexec-accept clang-tidy check · Learn more", - "markdown": "android-cloexec-accept clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-accept.html)" + "markdown": "android-cloexec-accept clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-accept.html)" }, "defaultConfiguration": { "enabled": false, @@ -2585,13 +2964,14 @@ "parameters": { "suppressToolId": "CppClangTidyAndroidCloexecAccept", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -2618,7 +2998,8 @@ "parameters": { "suppressToolId": "CoVariantArrayConversion", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -2651,14 +3032,15 @@ "parameters": { "suppressToolId": "MemberCanBeMadeStatic.Global", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -2684,14 +3066,15 @@ "parameters": { "suppressToolId": "CppUseElementsView", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Common Practices and Code Improvements", - "index": 17, + "id": "C_C++/Common Practices and Code Improvements", + "index": 16, "toolComponent": { "name": "QDNET" } @@ -2705,7 +3088,7 @@ { "id": "Unity.Entities.SingletonMustBeRequested", "shortDescription": { - "text": "To use the result of a 'GetSingleton<{0}>' call in the function, 'OnCreate' must include a 'RequireForUpdate' call" + "text": "To use the result of a 'GetSingleton' call in the function, 'OnCreate' must include a 'RequireForUpdate' call" }, "fullDescription": { "text": "To use the result of a 'GetSingleton<{0}>' call in the function, 'OnCreate' must include a 'RequireForUpdate' call", @@ -2717,14 +3100,15 @@ "parameters": { "suppressToolId": "Unity.Entities.SingletonMustBeRequested", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity", - "index": 19, + "index": 18, "toolComponent": { "name": "QDNET" } @@ -2750,7 +3134,8 @@ "parameters": { "suppressToolId": "CollectionNeverUpdated.Global", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -2775,7 +3160,7 @@ }, "fullDescription": { "text": "-Wc++98-c++11-compat-pedantic clang diagnostic · Learn more", - "markdown": "-Wc++98-c++11-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-98-c-11-compat-pedantic)" + "markdown": "-Wc++98-c++11-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-98-c-11-compat-pedantic)" }, "defaultConfiguration": { "enabled": false, @@ -2783,13 +3168,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCpp98Cpp11CompatPedantic", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -2808,7 +3194,7 @@ }, "fullDescription": { "text": "-Wignored-pragma-intrinsic clang diagnostic · Learn more", - "markdown": "-Wignored-pragma-intrinsic clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wignored-pragma-intrinsic)" + "markdown": "-Wignored-pragma-intrinsic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wignored-pragma-intrinsic)" }, "defaultConfiguration": { "enabled": true, @@ -2816,13 +3202,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticIgnoredPragmaIntrinsic", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -2849,7 +3236,8 @@ "parameters": { "suppressToolId": "ArrangeModifiersOrder", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -2882,14 +3270,15 @@ "parameters": { "suppressToolId": "Unity.UnknownLayer", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity", - "index": 19, + "index": 18, "toolComponent": { "name": "QDNET" } @@ -2915,7 +3304,8 @@ "parameters": { "suppressToolId": "RedundantDelegateCreation", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -2948,7 +3338,8 @@ "parameters": { "suppressToolId": "BadSemicolonSpaces", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -2973,7 +3364,7 @@ }, "fullDescription": { "text": "-Wvarargs clang diagnostic · Learn more", - "markdown": "-Wvarargs clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wvarargs)" + "markdown": "-Wvarargs clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wvarargs)" }, "defaultConfiguration": { "enabled": true, @@ -2981,13 +3372,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticVarargs", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -3014,14 +3406,49 @@ "parameters": { "suppressToolId": "Unity.IncorrectScriptableObjectInstantiation", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity", - "index": 19, + "index": 18, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticFormatTruncation", + "shortDescription": { + "text": "format-truncation clang diagnostic" + }, + "fullDescription": { + "text": "-Wformat-truncation clang diagnostic · Learn more", + "markdown": "-Wformat-truncation clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wformat-truncation)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticFormatTruncation", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, "toolComponent": { "name": "QDNET" } @@ -3047,13 +3474,14 @@ "parameters": { "suppressToolId": "CppFunctionDoesntReturnValue", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -3072,7 +3500,7 @@ }, "fullDescription": { "text": "-Wpointer-arith clang diagnostic · Learn more", - "markdown": "-Wpointer-arith clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpointer-arith)" + "markdown": "-Wpointer-arith clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpointer-arith)" }, "defaultConfiguration": { "enabled": true, @@ -3080,13 +3508,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticPointerArith", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -3105,7 +3534,7 @@ }, "fullDescription": { "text": "-Wmax-unsigned-zero clang diagnostic · Learn more", - "markdown": "-Wmax-unsigned-zero clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmax-unsigned-zero)" + "markdown": "-Wmax-unsigned-zero clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmax-unsigned-zero)" }, "defaultConfiguration": { "enabled": true, @@ -3113,13 +3542,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMaxUnsignedZero", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -3138,7 +3568,7 @@ }, "fullDescription": { "text": "modernize-replace-random-shuffle clang-tidy check · Learn more", - "markdown": "modernize-replace-random-shuffle clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/replace-random-shuffle.html)" + "markdown": "modernize-replace-random-shuffle clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/replace-random-shuffle.html)" }, "defaultConfiguration": { "enabled": true, @@ -3146,13 +3576,14 @@ "parameters": { "suppressToolId": "CppClangTidyModernizeReplaceRandomShuffle", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -3171,7 +3602,7 @@ }, "fullDescription": { "text": "-Wspirv-compat clang diagnostic · Learn more", - "markdown": "-Wspirv-compat clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wspirv-compat)" + "markdown": "-Wspirv-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wspirv-compat)" }, "defaultConfiguration": { "enabled": false, @@ -3179,13 +3610,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticSpirvCompat", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -3212,7 +3644,8 @@ "parameters": { "suppressToolId": "CompareNonConstrainedGenericWithNull", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -3245,7 +3678,8 @@ "parameters": { "suppressToolId": "NUnit.ImplicitUnspecifiedNullValues", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -3278,13 +3712,14 @@ "parameters": { "suppressToolId": "CppFunctionResultShouldBeUsed", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -3297,28 +3732,29 @@ ] }, { - "id": "CSharpWarnings__CS4014", + "id": "CppClangTidyClangDiagnosticDanglingAssignmentGsl", "shortDescription": { - "text": "Async method invocation without await expression" + "text": "dangling-assignment-gsl clang diagnostic" }, "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/hh873131.aspx)" + "text": "-Wdangling-assignment-gsl clang diagnostic · Learn more", + "markdown": "-Wdangling-assignment-gsl clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdangling-assignment-gsl)" }, "defaultConfiguration": { "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "CSharpWarnings__CS4014", + "suppressToolId": "CppClangTidyClangDiagnosticDanglingAssignmentGsl", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C#/Compiler Warnings", - "index": 27, + "id": "C_C++/Clang Diagnostics", + "index": 3, "toolComponent": { "name": "QDNET" } @@ -3344,13 +3780,14 @@ "parameters": { "suppressToolId": "CppDoxygenUndocumentedParameter", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -3362,6 +3799,40 @@ } ] }, + { + "id": "CSharpWarnings__CS4014", + "shortDescription": { + "text": "Async method invocation without await expression" + }, + "fullDescription": { + "text": "Learn more...", + "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/hh873131.aspx)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CSharpWarnings__CS4014", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Compiler Warnings", + "index": 27, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppBadSwitchBracesIndent", "shortDescription": { @@ -3377,13 +3848,14 @@ "parameters": { "suppressToolId": "CppBadSwitchBracesIndent", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Formatting", + "id": "C_C++/Formatting", "index": 28, "toolComponent": { "name": "QDNET" @@ -3402,7 +3874,7 @@ }, "fullDescription": { "text": "-Wimplicit-const-int-float-conversion clang diagnostic · Learn more", - "markdown": "-Wimplicit-const-int-float-conversion clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wimplicit-const-int-float-conversion)" + "markdown": "-Wimplicit-const-int-float-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wimplicit-const-int-float-conversion)" }, "defaultConfiguration": { "enabled": true, @@ -3410,13 +3882,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticImplicitConstIntFloatConversion", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -3435,7 +3908,7 @@ }, "fullDescription": { "text": "google-explicit-constructor clang-tidy check · Learn more", - "markdown": "google-explicit-constructor clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/google/explicit-constructor.html)" + "markdown": "google-explicit-constructor clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/explicit-constructor.html)" }, "defaultConfiguration": { "enabled": false, @@ -3443,13 +3916,14 @@ "parameters": { "suppressToolId": "CppClangTidyGoogleExplicitConstructor", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -3468,7 +3942,7 @@ }, "fullDescription": { "text": "-Wshadow-uncaptured-local clang diagnostic · Learn more", - "markdown": "-Wshadow-uncaptured-local clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wshadow-uncaptured-local)" + "markdown": "-Wshadow-uncaptured-local clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wshadow-uncaptured-local)" }, "defaultConfiguration": { "enabled": false, @@ -3476,13 +3950,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticShadowUncapturedLocal", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -3494,72 +3969,6 @@ } ] }, - { - "id": "UseIsOperator.1", - "shortDescription": { - "text": "Use 'is' operator" - }, - "fullDescription": { - "text": "typeof($T$).IsAssignableFrom($expr$.GetType())", - "markdown": "typeof($T$).IsAssignableFrom($expr$.GetType())" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "UseIsOperator.1", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseIsOperator.2", - "shortDescription": { - "text": "Use 'is' operator" - }, - "fullDescription": { - "text": "typeof($T$).IsInstanceOfType($expr$)", - "markdown": "typeof($T$).IsInstanceOfType($expr$)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "UseIsOperator.2", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, { "id": "CppClangTidyClangAnalyzerCplusplusSmartPtrModeling", "shortDescription": { @@ -3575,13 +3984,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerCplusplusSmartPtrModeling", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -3600,7 +4010,7 @@ }, "fullDescription": { "text": "-Wgnu-complex-integer clang diagnostic · Learn more", - "markdown": "-Wgnu-complex-integer clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wgnu-complex-integer)" + "markdown": "-Wgnu-complex-integer clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-complex-integer)" }, "defaultConfiguration": { "enabled": true, @@ -3608,13 +4018,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticGnuComplexInteger", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -3641,14 +4052,15 @@ "parameters": { "suppressToolId": "ReplaceWithOfType.Single.1", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -3674,14 +4086,15 @@ "parameters": { "suppressToolId": "ReplaceWithOfType.Single.2", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -3699,7 +4112,7 @@ }, "fullDescription": { "text": "abseil-time-subtraction clang-tidy check · Learn more", - "markdown": "abseil-time-subtraction clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/time-subtraction.html)" + "markdown": "abseil-time-subtraction clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/time-subtraction.html)" }, "defaultConfiguration": { "enabled": false, @@ -3707,13 +4120,14 @@ "parameters": { "suppressToolId": "CppClangTidyAbseilTimeSubtraction", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -3732,7 +4146,7 @@ }, "fullDescription": { "text": "-Wdealloc-in-category clang diagnostic · Learn more", - "markdown": "-Wdealloc-in-category clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdealloc-in-category)" + "markdown": "-Wdealloc-in-category clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdealloc-in-category)" }, "defaultConfiguration": { "enabled": true, @@ -3740,13 +4154,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDeallocInCategory", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -3765,7 +4180,7 @@ }, "fullDescription": { "text": "-Wc++20-compat clang diagnostic · Learn more", - "markdown": "-Wc++20-compat clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-20-compat)" + "markdown": "-Wc++20-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-20-compat)" }, "defaultConfiguration": { "enabled": false, @@ -3773,13 +4188,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCpp20Compat", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -3798,7 +4214,7 @@ }, "fullDescription": { "text": "-Wdelete-incomplete clang diagnostic · Learn more", - "markdown": "-Wdelete-incomplete clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdelete-incomplete)" + "markdown": "-Wdelete-incomplete clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdelete-incomplete)" }, "defaultConfiguration": { "enabled": true, @@ -3806,13 +4222,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDeleteIncomplete", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -3831,7 +4248,7 @@ }, "fullDescription": { "text": "-Wthread-safety-analysis clang diagnostic · Learn more", - "markdown": "-Wthread-safety-analysis clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wthread-safety-analysis)" + "markdown": "-Wthread-safety-analysis clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wthread-safety-analysis)" }, "defaultConfiguration": { "enabled": true, @@ -3839,13 +4256,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticThreadSafetyAnalysis", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -3864,7 +4282,7 @@ }, "fullDescription": { "text": "misc-no-recursion clang-tidy check · Learn more", - "markdown": "misc-no-recursion clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/misc/no-recursion.html)" + "markdown": "misc-no-recursion clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/no-recursion.html)" }, "defaultConfiguration": { "enabled": false, @@ -3872,13 +4290,14 @@ "parameters": { "suppressToolId": "CppClangTidyMiscNoRecursion", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -3905,7 +4324,8 @@ "parameters": { "suppressToolId": "EventUnsubscriptionViaAnonymousDelegate", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -3938,13 +4358,14 @@ "parameters": { "suppressToolId": "CppRedundantConstSpecifier", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Redundancies in Code", + "id": "C_C++/Redundancies in Code", "index": 34, "toolComponent": { "name": "QDNET" @@ -3971,7 +4392,8 @@ "parameters": { "suppressToolId": "CA3147", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -4004,7 +4426,8 @@ "parameters": { "suppressToolId": "UseNullableAnnotationInsteadOfAttribute", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -4029,7 +4452,7 @@ }, "fullDescription": { "text": "-Wc++14-compat-pedantic clang diagnostic · Learn more", - "markdown": "-Wc++14-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-14-compat-pedantic)" + "markdown": "-Wc++14-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-14-compat-pedantic)" }, "defaultConfiguration": { "enabled": false, @@ -4037,13 +4460,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCpp14CompatPedantic", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -4061,8 +4485,8 @@ "text": "Missing include guard" }, "fullDescription": { - "text": "Include guard is not found at the beginning of a header file", - "markdown": "Include guard is not found at the beginning of a header file" + "text": "Include guard is not found at the beginning of a header file Learn more...", + "markdown": "Include guard is not found at the beginning of a header file [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rs-guards)" }, "defaultConfiguration": { "enabled": true, @@ -4070,13 +4494,14 @@ "parameters": { "suppressToolId": "CppMissingIncludeGuard", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -4103,7 +4528,8 @@ "parameters": { "suppressToolId": "UnusedTupleComponentInReturnValue", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -4128,7 +4554,7 @@ }, "fullDescription": { "text": "-Wmacro-redefined clang diagnostic · Learn more", - "markdown": "-Wmacro-redefined clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmacro-redefined)" + "markdown": "-Wmacro-redefined clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmacro-redefined)" }, "defaultConfiguration": { "enabled": true, @@ -4136,13 +4562,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMacroRedefined", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -4161,7 +4588,7 @@ }, "fullDescription": { "text": "-Wretained-language-linkage clang diagnostic · Learn more", - "markdown": "-Wretained-language-linkage clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wretained-language-linkage)" + "markdown": "-Wretained-language-linkage clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wretained-language-linkage)" }, "defaultConfiguration": { "enabled": true, @@ -4169,13 +4596,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticRetainedLanguageLinkage", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -4202,7 +4630,8 @@ "parameters": { "suppressToolId": "EntityFramework.UnsupportedServerSideFunctionCall", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -4227,7 +4656,7 @@ }, "fullDescription": { "text": "-Wkeyword-macro clang diagnostic · Learn more", - "markdown": "-Wkeyword-macro clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wkeyword-macro)" + "markdown": "-Wkeyword-macro clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wkeyword-macro)" }, "defaultConfiguration": { "enabled": true, @@ -4235,13 +4664,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticKeywordMacro", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -4260,7 +4690,7 @@ }, "fullDescription": { "text": "readability-use-anyofallof clang-tidy check · Learn more", - "markdown": "readability-use-anyofallof clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/use-anyofallof.html)" + "markdown": "readability-use-anyofallof clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/use-anyofallof.html)" }, "defaultConfiguration": { "enabled": true, @@ -4268,13 +4698,14 @@ "parameters": { "suppressToolId": "CppClangTidyReadabilityUseAnyofallof", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -4293,7 +4724,7 @@ }, "fullDescription": { "text": "-Wreadonly-iboutlet-property clang diagnostic · Learn more", - "markdown": "-Wreadonly-iboutlet-property clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wreadonly-iboutlet-property)" + "markdown": "-Wreadonly-iboutlet-property clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wreadonly-iboutlet-property)" }, "defaultConfiguration": { "enabled": true, @@ -4301,13 +4732,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticReadonlyIboutletProperty", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -4334,7 +4766,8 @@ "parameters": { "suppressToolId": "CA1311", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -4367,7 +4800,8 @@ "parameters": { "suppressToolId": "CA1310", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -4392,7 +4826,7 @@ }, "fullDescription": { "text": "-Wgcc-compat clang diagnostic · Learn more", - "markdown": "-Wgcc-compat clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wgcc-compat)" + "markdown": "-Wgcc-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgcc-compat)" }, "defaultConfiguration": { "enabled": false, @@ -4400,13 +4834,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticGccCompat", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -4433,13 +4868,14 @@ "parameters": { "suppressToolId": "CppDeprecatedRegisterStorageClassSpecifier", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -4458,7 +4894,7 @@ }, "fullDescription": { "text": "-Wmemsize-comparison clang diagnostic · Learn more", - "markdown": "-Wmemsize-comparison clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmemsize-comparison)" + "markdown": "-Wmemsize-comparison clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmemsize-comparison)" }, "defaultConfiguration": { "enabled": true, @@ -4466,13 +4902,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMemsizeComparison", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -4499,7 +4936,8 @@ "parameters": { "suppressToolId": "UseNegatedPatternInIsExpression", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -4524,7 +4962,7 @@ }, "fullDescription": { "text": "hicpp-avoid-c-arrays clang-tidy check · Learn more", - "markdown": "hicpp-avoid-c-arrays clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/avoid-c-arrays.html)" + "markdown": "hicpp-avoid-c-arrays clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/avoid-c-arrays.html)" }, "defaultConfiguration": { "enabled": false, @@ -4532,13 +4970,14 @@ "parameters": { "suppressToolId": "CppClangTidyHicppAvoidCArrays", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -4565,7 +5004,8 @@ "parameters": { "suppressToolId": "VBReplaceWithSingleCallToLast", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -4590,7 +5030,7 @@ }, "fullDescription": { "text": "cppcoreguidelines-noexcept-move-operations clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-noexcept-move-operations clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/noexcept-move-operations.html)" + "markdown": "cppcoreguidelines-noexcept-move-operations clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/noexcept-move-operations.html)" }, "defaultConfiguration": { "enabled": true, @@ -4598,13 +5038,14 @@ "parameters": { "suppressToolId": "CppClangTidyCppcoreguidelinesNoexceptMoveOperations", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -4631,7 +5072,8 @@ "parameters": { "suppressToolId": "Blazor.EditorRequired", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -4649,6 +5091,40 @@ } ] }, + { + "id": "TypeWithSuspiciousEqualityIsUsedInRecord.Local", + "shortDescription": { + "text": "Type with suspicious equality is used in a record (private accessibility)" + }, + "fullDescription": { + "text": "Type with suspicious equality is used as a member of a record type. This inspection only triggers when the record type is actually used for equality comparisons in the solution. Learn more...", + "markdown": "Type with suspicious equality is used as a member of a record type. This inspection only triggers when the record type is actually used for equality comparisons in the solution. [Learn more...](https://www.jetbrains.com/help/rider/TypeWithSuspiciousEqualityIsUsedInRecord.Local.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "TypeWithSuspiciousEqualityIsUsedInRecord.Local", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 12, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppClangTidyClangDiagnosticBackslashNewlineEscape", "shortDescription": { @@ -4656,7 +5132,7 @@ }, "fullDescription": { "text": "-Wbackslash-newline-escape clang diagnostic · Learn more", - "markdown": "-Wbackslash-newline-escape clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wbackslash-newline-escape)" + "markdown": "-Wbackslash-newline-escape clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wbackslash-newline-escape)" }, "defaultConfiguration": { "enabled": true, @@ -4664,13 +5140,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticBackslashNewlineEscape", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -4697,7 +5174,8 @@ "parameters": { "suppressToolId": "CA1309", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -4730,7 +5208,8 @@ "parameters": { "suppressToolId": "CA1308", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -4763,7 +5242,8 @@ "parameters": { "suppressToolId": "CA1307", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -4788,7 +5268,7 @@ }, "fullDescription": { "text": "bugprone-sizeof-expression clang-tidy check · Learn more", - "markdown": "bugprone-sizeof-expression clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/sizeof-expression.html)" + "markdown": "bugprone-sizeof-expression clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/sizeof-expression.html)" }, "defaultConfiguration": { "enabled": true, @@ -4796,13 +5276,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneSizeofExpression", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -4829,7 +5310,8 @@ "parameters": { "suppressToolId": "CA1305", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -4862,7 +5344,8 @@ "parameters": { "suppressToolId": "CA1304", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -4895,7 +5378,8 @@ "parameters": { "suppressToolId": "CA1303", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -4928,7 +5412,8 @@ "parameters": { "suppressToolId": "NUnit.TestCaseSourceShouldImplementIEnumerable", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -4961,7 +5446,8 @@ "parameters": { "suppressToolId": "CollectionNeverUpdated.Local", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -4979,105 +5465,6 @@ } ] }, - { - "id": "ENC0019", - "shortDescription": { - "text": "RoslynAnalyzers Updating the alias of Declare statement requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0019", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC0018", - "shortDescription": { - "text": "RoslynAnalyzers Updating the library name of Declare statement requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0018", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC0026", - "shortDescription": { - "text": "RoslynAnalyzers Adding a user defined {0} requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0026", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, { "id": "CppClangTidyClangDiagnosticOpenmp51Extensions", "shortDescription": { @@ -5085,7 +5472,7 @@ }, "fullDescription": { "text": "-Wopenmp-51-extensions clang diagnostic · Learn more", - "markdown": "-Wopenmp-51-extensions clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wopenmp-51-extensions)" + "markdown": "-Wopenmp-51-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wopenmp-51-extensions)" }, "defaultConfiguration": { "enabled": true, @@ -5093,13 +5480,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticOpenmp51Extensions", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -5126,13 +5514,14 @@ "parameters": { "suppressToolId": "CppBadColonSpaces", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Formatting", + "id": "C_C++/Formatting", "index": 28, "toolComponent": { "name": "QDNET" @@ -5144,138 +5533,6 @@ } ] }, - { - "id": "ENC0024", - "shortDescription": { - "text": "RoslynAnalyzers Adding a MustOverride {0} or overriding an inherited {0} requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0024", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC0025", - "shortDescription": { - "text": "RoslynAnalyzers Adding an extern {0} requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0025", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC0023", - "shortDescription": { - "text": "RoslynAnalyzers Adding an abstract {0} or overriding an inherited {0} requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0023", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC0020", - "shortDescription": { - "text": "RoslynAnalyzers Renaming {0} requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0020", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, { "id": "MergeNestedPropertyPatterns", "shortDescription": { @@ -5291,7 +5548,8 @@ "parameters": { "suppressToolId": "MergeNestedPropertyPatterns", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -5309,39 +5567,6 @@ } ] }, - { - "id": "ENC0021", - "shortDescription": { - "text": "RoslynAnalyzers Adding {0} requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0021", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, { "id": "CppClangTidyClangDiagnosticStrictPrototypes", "shortDescription": { @@ -5349,7 +5574,7 @@ }, "fullDescription": { "text": "-Wstrict-prototypes clang diagnostic · Learn more", - "markdown": "-Wstrict-prototypes clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wstrict-prototypes)" + "markdown": "-Wstrict-prototypes clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wstrict-prototypes)" }, "defaultConfiguration": { "enabled": true, @@ -5357,13 +5582,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticStrictPrototypes", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -5390,14 +5616,15 @@ "parameters": { "suppressToolId": "Xaml.XKeyAttributeDisallowed", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "XAML/Potential Code Quality Issues", - "index": 44, + "index": 45, "toolComponent": { "name": "QDNET" } @@ -5423,7 +5650,8 @@ "parameters": { "suppressToolId": "PatternIsRedundant", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -5448,7 +5676,7 @@ }, "fullDescription": { "text": "cppcoreguidelines-missing-std-forward clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-missing-std-forward clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/missing-std-forward.html)" + "markdown": "cppcoreguidelines-missing-std-forward clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/missing-std-forward.html)" }, "defaultConfiguration": { "enabled": true, @@ -5456,13 +5684,14 @@ "parameters": { "suppressToolId": "CppClangTidyCppcoreguidelinesMissingStdForward", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -5489,7 +5718,8 @@ "parameters": { "suppressToolId": "JoinNullCheckWithUsage", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -5514,7 +5744,7 @@ }, "fullDescription": { "text": "-Wsingle-bit-bitfield-constant-conversion clang diagnostic · Learn more", - "markdown": "-Wsingle-bit-bitfield-constant-conversion clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wsingle-bit-bitfield-constant-conversion)" + "markdown": "-Wsingle-bit-bitfield-constant-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wsingle-bit-bitfield-constant-conversion)" }, "defaultConfiguration": { "enabled": true, @@ -5522,13 +5752,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticSingleBitBitfieldConstantConversion", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -5547,7 +5778,7 @@ }, "fullDescription": { "text": "-Wreceiver-expr clang diagnostic · Learn more", - "markdown": "-Wreceiver-expr clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wreceiver-expr)" + "markdown": "-Wreceiver-expr clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wreceiver-expr)" }, "defaultConfiguration": { "enabled": true, @@ -5555,13 +5786,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticReceiverExpr", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -5574,28 +5806,29 @@ ] }, { - "id": "ENC0008", + "id": "CppClangTidyModernizeUseDesignatedInitializers", "shortDescription": { - "text": "RoslynAnalyzers Changing a field to an event or vice versa requires restarting the application." + "text": "modernize-use-designated-initializers clang-tidy check" }, "fullDescription": { - "text": "", - "markdown": "" + "text": "modernize-use-designated-initializers clang-tidy check · Learn more", + "markdown": "modernize-use-designated-initializers clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-designated-initializers.html)" }, "defaultConfiguration": { - "enabled": false, + "enabled": true, "level": "note", "parameters": { - "suppressToolId": "ENC0008", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "suppressToolId": "CppClangTidyModernizeUseDesignatedInitializers", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, + "id": "C_C++/Clang-Tidy Checks", + "index": 8, "toolComponent": { "name": "QDNET" } @@ -5621,7 +5854,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS1574,CS1584,CS1581,CS1580", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -5654,179 +5888,15 @@ "parameters": { "suppressToolId": "Unity.LoadSceneUnexistingScene", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity", - "index": 19, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC0009", - "shortDescription": { - "text": "RoslynAnalyzers Updating the type of {0} requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0009", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC0006", - "shortDescription": { - "text": "RoslynAnalyzers Updating the Implements clause of a {0} requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0006", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC0007", - "shortDescription": { - "text": "RoslynAnalyzers Updating the variance of {0} requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0007", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC0015", - "shortDescription": { - "text": "RoslynAnalyzers Updating the kind of a type requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0015", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC0016", - "shortDescription": { - "text": "RoslynAnalyzers Updating the kind of a property/event accessor requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0016", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, + "index": 18, "toolComponent": { "name": "QDNET" } @@ -5852,7 +5922,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8425", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -5870,39 +5941,6 @@ } ] }, - { - "id": "ENC0013", - "shortDescription": { - "text": "RoslynAnalyzers Updating the underlying type of {0} requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0013", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, { "id": "CSharpWarnings__CS8424", "shortDescription": { @@ -5918,7 +5956,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8424", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -5936,105 +5975,6 @@ } ] }, - { - "id": "ENC0014", - "shortDescription": { - "text": "RoslynAnalyzers Updating the base class and/or base interface(s) of {0} requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0014", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC0011", - "shortDescription": { - "text": "RoslynAnalyzers Updating the initializer of {0} requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0011", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC0012", - "shortDescription": { - "text": "RoslynAnalyzers Updating the size of a {0} requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0012", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, { "id": "CppClangTidyClangDiagnosticUnsafeBufferUsage", "shortDescription": { @@ -6042,7 +5982,7 @@ }, "fullDescription": { "text": "-Wunsafe-buffer-usage clang diagnostic · Learn more", - "markdown": "-Wunsafe-buffer-usage clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunsafe-buffer-usage)" + "markdown": "-Wunsafe-buffer-usage clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunsafe-buffer-usage)" }, "defaultConfiguration": { "enabled": false, @@ -6050,13 +5990,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnsafeBufferUsage", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -6083,13 +6024,14 @@ "parameters": { "suppressToolId": "CppDeletingVoidPointer", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -6108,7 +6050,7 @@ }, "fullDescription": { "text": "-Wstrict-selector-match clang diagnostic · Learn more", - "markdown": "-Wstrict-selector-match clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wstrict-selector-match)" + "markdown": "-Wstrict-selector-match clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wstrict-selector-match)" }, "defaultConfiguration": { "enabled": true, @@ -6116,13 +6058,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticStrictSelectorMatch", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -6135,61 +6078,29 @@ ] }, { - "id": "CppClangTidyClangDiagnosticNullableToNonnullConversion", + "id": "CppClangTidyClangAnalyzerCplusplusArrayDelete", "shortDescription": { - "text": "nullable-to-nonnull-conversion clang diagnostic" + "text": "cplusplus.ArrayDelete clang static analyzer check" }, "fullDescription": { - "text": "-Wnullable-to-nonnull-conversion clang diagnostic · Learn more", - "markdown": "-Wnullable-to-nonnull-conversion clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wnullable-to-nonnull-conversion)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticNullableToNonnullConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" - } - }, - "relationships": [ - { - "target": { - "id": "C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC0004", - "shortDescription": { - "text": "RoslynAnalyzers Updating the modifiers of {0} requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" + "text": "cplusplus.ArrayDelete clang static analyzer check · Learn more", + "markdown": "cplusplus.ArrayDelete clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" }, "defaultConfiguration": { "enabled": false, "level": "note", "parameters": { - "suppressToolId": "ENC0004", + "suppressToolId": "CppClangTidyClangAnalyzerCplusplusArrayDelete", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, + "id": "C_C++/Clang Static Analyzer Checks", + "index": 32, "toolComponent": { "name": "QDNET" } @@ -6201,28 +6112,29 @@ ] }, { - "id": "ENC0005", + "id": "CppClangTidyClangDiagnosticNullableToNonnullConversion", "shortDescription": { - "text": "RoslynAnalyzers Updating the Handles clause of {0} requires restarting the application." + "text": "nullable-to-nonnull-conversion clang diagnostic" }, "fullDescription": { - "text": "", - "markdown": "" + "text": "-Wnullable-to-nonnull-conversion clang diagnostic · Learn more", + "markdown": "-Wnullable-to-nonnull-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnullable-to-nonnull-conversion)" }, "defaultConfiguration": { - "enabled": false, - "level": "note", + "enabled": true, + "level": "warning", "parameters": { - "suppressToolId": "ENC0005", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "suppressToolId": "CppClangTidyClangDiagnosticNullableToNonnullConversion", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, + "id": "C_C++/Clang Diagnostics", + "index": 3, "toolComponent": { "name": "QDNET" } @@ -6234,28 +6146,29 @@ ] }, { - "id": "ENC0002", + "id": "RouteTemplates.ParameterConstraintCanBeSpecified", "shortDescription": { - "text": "RoslynAnalyzers Removing {0} that contains an active statement requires restarting the application." + "text": "Route parameter constraint can be added due to type of method argument" }, "fullDescription": { - "text": "", - "markdown": "" + "text": "Route parameter constraint can be added due to type of method argument", + "markdown": "Route parameter constraint can be added due to type of method argument" }, "defaultConfiguration": { - "enabled": false, + "enabled": true, "level": "note", "parameters": { - "suppressToolId": "ENC0002", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "suppressToolId": "RouteTemplates.ParameterConstraintCanBeSpecified", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, + "id": "ASP.NET route templates/Code Notification", + "index": 48, "toolComponent": { "name": "QDNET" } @@ -6267,28 +6180,29 @@ ] }, { - "id": "RouteTemplates.ParameterConstraintCanBeSpecified", + "id": "CppClangTidyClangDiagnosticMicrosoftCommentPaste", "shortDescription": { - "text": "Route parameter constraint can be added due to type of method argument" + "text": "microsoft-comment-paste clang diagnostic" }, "fullDescription": { - "text": "Route parameter constraint can be added due to type of method argument", - "markdown": "Route parameter constraint can be added due to type of method argument" + "text": "-Wmicrosoft-comment-paste clang diagnostic · Learn more", + "markdown": "-Wmicrosoft-comment-paste clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-comment-paste)" }, "defaultConfiguration": { "enabled": true, - "level": "note", + "level": "warning", "parameters": { - "suppressToolId": "RouteTemplates.ParameterConstraintCanBeSpecified", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftCommentPaste", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "ASP.NET route templates/Code Notification", - "index": 47, + "id": "C_C++/Clang Diagnostics", + "index": 3, "toolComponent": { "name": "QDNET" } @@ -6300,28 +6214,29 @@ ] }, { - "id": "ENC0003", + "id": "CppThrowExpressionCanBeReplacedWithRethrow", "shortDescription": { - "text": "RoslynAnalyzers Updating '{0}' requires restarting the application." + "text": "Throw expression can be replaced with a rethrow expression" }, "fullDescription": { - "text": "", - "markdown": "" + "text": "Throw expression can be replaced with a rethrow expression", + "markdown": "Throw expression can be replaced with a rethrow expression" }, "defaultConfiguration": { - "enabled": false, - "level": "note", + "enabled": true, + "level": "warning", "parameters": { - "suppressToolId": "ENC0003", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "suppressToolId": "CppThrowExpressionCanBeReplacedWithRethrow", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, + "id": "C_C++/Common Practices and Code Improvements", + "index": 16, "toolComponent": { "name": "QDNET" } @@ -6333,28 +6248,29 @@ ] }, { - "id": "CppClangTidyClangDiagnosticMicrosoftCommentPaste", + "id": "Godot.MissingParameterlessConstructor", "shortDescription": { - "text": "microsoft-comment-paste clang diagnostic" + "text": "Parameterless constructor required" }, "fullDescription": { - "text": "-Wmicrosoft-comment-paste clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-comment-paste clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-comment-paste)" + "text": "Consider adding a parameterless constructor for the GodotEngine to initialize a script/game object", + "markdown": "Consider adding a parameterless constructor for the GodotEngine to initialize a script/game object" }, "defaultConfiguration": { "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftCommentPaste", + "suppressToolId": "Godot.MissingParameterlessConstructor", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", - "index": 3, + "id": "C#/Godot", + "index": 50, "toolComponent": { "name": "QDNET" } @@ -6366,28 +6282,29 @@ ] }, { - "id": "ENC0001", + "id": "Xaml.XamlMismatchedDeviceFamilyViewClrNameHighlighting", "shortDescription": { - "text": "RoslynAnalyzers Updating an active statement requires restarting the application." + "text": "DeviceFamily-specific view type name does not match generic type name" }, "fullDescription": { - "text": "", - "markdown": "" + "text": "DeviceFamily-specific view type name does not match generic type name", + "markdown": "DeviceFamily-specific view type name does not match generic type name" }, "defaultConfiguration": { - "enabled": false, - "level": "note", + "enabled": true, + "level": "warning", "parameters": { - "suppressToolId": "ENC0001", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "suppressToolId": "Xaml.XamlMismatchedDeviceFamilyViewClrNameHighlighting", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, + "id": "XAML/Potential Code Quality Issues", + "index": 45, "toolComponent": { "name": "QDNET" } @@ -6399,28 +6316,29 @@ ] }, { - "id": "CppThrowExpressionCanBeReplacedWithRethrow", + "id": "CppClangTidyClangDiagnosticCpp98Cpp11Cpp14Compat", "shortDescription": { - "text": "Throw expression can be replaced with a rethrow expression" + "text": "c++98-c++11-c++14-compat clang diagnostic" }, "fullDescription": { - "text": "Throw expression can be replaced with a rethrow expression", - "markdown": "Throw expression can be replaced with a rethrow expression" + "text": "-Wc++98-c++11-c++14-compat clang diagnostic · Learn more", + "markdown": "-Wc++98-c++11-c++14-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-98-c-11-c-14-compat)" }, "defaultConfiguration": { - "enabled": true, - "level": "warning", + "enabled": false, + "level": "note", "parameters": { - "suppressToolId": "CppThrowExpressionCanBeReplacedWithRethrow", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "suppressToolId": "CppClangTidyClangDiagnosticCpp98Cpp11Cpp14Compat", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Common Practices and Code Improvements", - "index": 17, + "id": "C_C++/Clang Diagnostics", + "index": 3, "toolComponent": { "name": "QDNET" } @@ -6432,28 +6350,29 @@ ] }, { - "id": "Xaml.XamlMismatchedDeviceFamilyViewClrNameHighlighting", + "id": "CppClangTidyBugproneChainedComparison", "shortDescription": { - "text": "DeviceFamily-specific view type name does not match generic type name" + "text": "bugprone-chained-comparison clang-tidy check" }, "fullDescription": { - "text": "DeviceFamily-specific view type name does not match generic type name", - "markdown": "DeviceFamily-specific view type name does not match generic type name" + "text": "bugprone-chained-comparison clang-tidy check · Learn more", + "markdown": "bugprone-chained-comparison clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/chained-comparison.html)" }, "defaultConfiguration": { "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "Xaml.XamlMismatchedDeviceFamilyViewClrNameHighlighting", + "suppressToolId": "CppClangTidyBugproneChainedComparison", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "XAML/Potential Code Quality Issues", - "index": 44, + "id": "C_C++/Clang-Tidy Checks", + "index": 8, "toolComponent": { "name": "QDNET" } @@ -6465,28 +6384,29 @@ ] }, { - "id": "CppClangTidyClangDiagnosticCpp98Cpp11Cpp14Compat", + "id": "CppClangTidyBugproneSwitchMissingDefaultCase", "shortDescription": { - "text": "c++98-c++11-c++14-compat clang diagnostic" + "text": "bugprone-switch-missing-default-case clang-tidy check" }, "fullDescription": { - "text": "-Wc++98-c++11-c++14-compat clang diagnostic · Learn more", - "markdown": "-Wc++98-c++11-c++14-compat clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-98-c-11-c-14-compat)" + "text": "bugprone-switch-missing-default-case clang-tidy check · Learn more", + "markdown": "bugprone-switch-missing-default-case clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/switch-missing-default-case.html)" }, "defaultConfiguration": { "enabled": false, "level": "note", "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp98Cpp11Cpp14Compat", + "suppressToolId": "CppClangTidyBugproneSwitchMissingDefaultCase", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", - "index": 3, + "id": "C_C++/Clang-Tidy Checks", + "index": 8, "toolComponent": { "name": "QDNET" } @@ -6498,28 +6418,29 @@ ] }, { - "id": "CppClangTidyBugproneSwitchMissingDefaultCase", + "id": "CppClangTidyClangDiagnosticPreCpp14CompatPedantic", "shortDescription": { - "text": "bugprone-switch-missing-default-case clang-tidy check" + "text": "pre-c++14-compat-pedantic clang diagnostic" }, "fullDescription": { - "text": "bugprone-switch-missing-default-case clang-tidy check · Learn more", - "markdown": "bugprone-switch-missing-default-case clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/switch-missing-default-case.html)" + "text": "-Wpre-c++14-compat-pedantic clang diagnostic · Learn more", + "markdown": "-Wpre-c++14-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpre-c-14-compat-pedantic)" }, "defaultConfiguration": { "enabled": false, "level": "note", "parameters": { - "suppressToolId": "CppClangTidyBugproneSwitchMissingDefaultCase", + "suppressToolId": "CppClangTidyClangDiagnosticPreCpp14CompatPedantic", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", - "index": 8, + "id": "C_C++/Clang Diagnostics", + "index": 3, "toolComponent": { "name": "QDNET" } @@ -6531,28 +6452,29 @@ ] }, { - "id": "CppClangTidyClangDiagnosticPreCpp14CompatPedantic", + "id": "AsmDefWarnings", "shortDescription": { - "text": "pre-c++14-compat-pedantic clang diagnostic" + "text": "AsmDef Warnings" }, "fullDescription": { - "text": "-Wpre-c++14-compat-pedantic clang diagnostic · Learn more", - "markdown": "-Wpre-c++14-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpre-c-14-compat-pedantic)" + "text": "AsmDef Warnings", + "markdown": "AsmDef Warnings" }, "defaultConfiguration": { - "enabled": false, - "level": "note", + "enabled": true, + "level": "warning", "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPreCpp14CompatPedantic", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "suppressToolId": "AsmDefWarnings", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", - "index": 3, + "id": "C#/Non configurable", + "index": 52, "toolComponent": { "name": "QDNET" } @@ -6570,7 +6492,7 @@ }, "fullDescription": { "text": "-Wdeprecated-copy-with-user-provided-copy clang diagnostic · Learn more", - "markdown": "-Wdeprecated-copy-with-user-provided-copy clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdeprecated-copy-with-user-provided-copy)" + "markdown": "-Wdeprecated-copy-with-user-provided-copy clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-copy-with-user-provided-copy)" }, "defaultConfiguration": { "enabled": true, @@ -6578,13 +6500,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedCopyWithUserProvidedCopy", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -6611,13 +6534,14 @@ "parameters": { "suppressToolId": "CppRangeBasedForIncompatibleReference", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -6636,7 +6560,7 @@ }, "fullDescription": { "text": "-Watomic-access clang diagnostic · Learn more", - "markdown": "-Watomic-access clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#watomic-access)" + "markdown": "-Watomic-access clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#watomic-access)" }, "defaultConfiguration": { "enabled": true, @@ -6644,13 +6568,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticAtomicAccess", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -6669,7 +6594,7 @@ }, "fullDescription": { "text": "-Wtautological-type-limit-compare clang diagnostic · Learn more", - "markdown": "-Wtautological-type-limit-compare clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wtautological-type-limit-compare)" + "markdown": "-Wtautological-type-limit-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtautological-type-limit-compare)" }, "defaultConfiguration": { "enabled": true, @@ -6677,13 +6602,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticTautologicalTypeLimitCompare", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -6702,7 +6628,7 @@ }, "fullDescription": { "text": "cert-con36-c clang-tidy check · Learn more", - "markdown": "cert-con36-c clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cert/con36-c.html)" + "markdown": "cert-con36-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/con36-c.html)" }, "defaultConfiguration": { "enabled": false, @@ -6710,13 +6636,14 @@ "parameters": { "suppressToolId": "CppClangTidyCertCon36C", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -6735,7 +6662,7 @@ }, "fullDescription": { "text": "-Wmicrosoft-union-member-reference clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-union-member-reference clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-union-member-reference)" + "markdown": "-Wmicrosoft-union-member-reference clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-union-member-reference)" }, "defaultConfiguration": { "enabled": true, @@ -6743,13 +6670,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftUnionMemberReference", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -6776,7 +6704,8 @@ "parameters": { "suppressToolId": "ConvertToLocalFunction", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -6801,7 +6730,7 @@ }, "fullDescription": { "text": "-Wnon-modular-include-in-module clang diagnostic · Learn more", - "markdown": "-Wnon-modular-include-in-module clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wnon-modular-include-in-module)" + "markdown": "-Wnon-modular-include-in-module clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnon-modular-include-in-module)" }, "defaultConfiguration": { "enabled": true, @@ -6809,46 +6738,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticNonModularIncludeInModule", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" - } - }, - "relationships": [ - { - "target": { - "id": "C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticReadModulesImplicitly", - "shortDescription": { - "text": "read-modules-implicitly clang diagnostic" - }, - "fullDescription": { - "text": "-Wread-modules-implicitly clang diagnostic · Learn more", - "markdown": "-Wread-modules-implicitly clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wread-modules-implicitly)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticReadModulesImplicitly", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -6867,7 +6764,7 @@ }, "fullDescription": { "text": "performance-noexcept-destructor clang-tidy check · Learn more", - "markdown": "performance-noexcept-destructor clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/performance/noexcept-destructor.html)" + "markdown": "performance-noexcept-destructor clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance/noexcept-destructor.html)" }, "defaultConfiguration": { "enabled": true, @@ -6875,13 +6772,14 @@ "parameters": { "suppressToolId": "CppClangTidyPerformanceNoexceptDestructor", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -6900,7 +6798,7 @@ }, "fullDescription": { "text": "-Wincompatible-ms-struct clang diagnostic · Learn more", - "markdown": "-Wincompatible-ms-struct clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wincompatible-ms-struct)" + "markdown": "-Wincompatible-ms-struct clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wincompatible-ms-struct)" }, "defaultConfiguration": { "enabled": true, @@ -6908,13 +6806,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticIncompatibleMsStruct", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -6933,7 +6832,7 @@ }, "fullDescription": { "text": "hicpp-no-array-decay clang-tidy check · Learn more", - "markdown": "hicpp-no-array-decay clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/no-array-decay.html)" + "markdown": "hicpp-no-array-decay clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/no-array-decay.html)" }, "defaultConfiguration": { "enabled": false, @@ -6941,13 +6840,14 @@ "parameters": { "suppressToolId": "CppClangTidyHicppNoArrayDecay", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -6974,13 +6874,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerOsxNSOrCFErrorDerefChecker", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -6999,7 +6900,7 @@ }, "fullDescription": { "text": "-Wpointer-integer-compare clang diagnostic · Learn more", - "markdown": "-Wpointer-integer-compare clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpointer-integer-compare)" + "markdown": "-Wpointer-integer-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpointer-integer-compare)" }, "defaultConfiguration": { "enabled": true, @@ -7007,13 +6908,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticPointerIntegerCompare", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -7040,13 +6942,14 @@ "parameters": { "suppressToolId": "CppMissingIndent", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Formatting", + "id": "C_C++/Formatting", "index": 28, "toolComponent": { "name": "QDNET" @@ -7065,7 +6968,7 @@ }, "fullDescription": { "text": "-Wincompatible-function-pointer-types-strict clang diagnostic · Learn more", - "markdown": "-Wincompatible-function-pointer-types-strict clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wincompatible-function-pointer-types-strict)" + "markdown": "-Wincompatible-function-pointer-types-strict clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wincompatible-function-pointer-types-strict)" }, "defaultConfiguration": { "enabled": true, @@ -7073,13 +6976,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticIncompatibleFunctionPointerTypesStrict", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -7106,14 +7010,15 @@ "parameters": { "suppressToolId": "Html.AttributeValueNotResolved", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "HTML/Potential Code Quality Issues", - "index": 51, + "index": 54, "toolComponent": { "name": "QDNET" } @@ -7139,13 +7044,14 @@ "parameters": { "suppressToolId": "CppPrintfExtraArg", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -7164,7 +7070,7 @@ }, "fullDescription": { "text": "readability-else-after-return clang-tidy check · Learn more", - "markdown": "readability-else-after-return clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/else-after-return.html)" + "markdown": "readability-else-after-return clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/else-after-return.html)" }, "defaultConfiguration": { "enabled": false, @@ -7172,13 +7078,14 @@ "parameters": { "suppressToolId": "CppClangTidyReadabilityElseAfterReturn", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -7197,7 +7104,7 @@ }, "fullDescription": { "text": "-Wpragma-clang-attribute clang diagnostic · Learn more", - "markdown": "-Wpragma-clang-attribute clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpragma-clang-attribute)" + "markdown": "-Wpragma-clang-attribute clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpragma-clang-attribute)" }, "defaultConfiguration": { "enabled": true, @@ -7205,13 +7112,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticPragmaClangAttribute", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -7230,7 +7138,7 @@ }, "fullDescription": { "text": "cppcoreguidelines-pro-bounds-pointer-arithmetic clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-pro-bounds-pointer-arithmetic clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/pro-bounds-pointer-arithmetic.html)" + "markdown": "cppcoreguidelines-pro-bounds-pointer-arithmetic clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/pro-bounds-pointer-arithmetic.html)" }, "defaultConfiguration": { "enabled": false, @@ -7238,13 +7146,14 @@ "parameters": { "suppressToolId": "CppClangTidyCppcoreguidelinesProBoundsPointerArithmetic", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -7263,7 +7172,7 @@ }, "fullDescription": { "text": "-Wextern-initializer clang diagnostic · Learn more", - "markdown": "-Wextern-initializer clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wextern-initializer)" + "markdown": "-Wextern-initializer clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wextern-initializer)" }, "defaultConfiguration": { "enabled": true, @@ -7271,13 +7180,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticExternInitializer", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -7296,7 +7206,7 @@ }, "fullDescription": { "text": "cppcoreguidelines-avoid-magic-numbers clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-avoid-magic-numbers clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/avoid-magic-numbers.html)" + "markdown": "cppcoreguidelines-avoid-magic-numbers clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/avoid-magic-numbers.html)" }, "defaultConfiguration": { "enabled": false, @@ -7304,13 +7214,14 @@ "parameters": { "suppressToolId": "CppClangTidyCppcoreguidelinesAvoidMagicNumbers", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -7328,8 +7239,8 @@ "text": "Overridden GetHashCode calls base 'Object.GetHashCode()'" }, "fullDescription": { - "text": "Overridden GetHashCode calls base 'Object.GetHashCode()'", - "markdown": "Overridden GetHashCode calls base 'Object.GetHashCode()'" + "text": "Overridden GetHashCode calls base 'Object.GetHashCode()' Learn more...", + "markdown": "Overridden GetHashCode calls base 'Object.GetHashCode()' [Learn more...](https://www.jetbrains.com/help/rider/BaseObjectGetHashCodeCallInGetHashCode.html)" }, "defaultConfiguration": { "enabled": true, @@ -7337,7 +7248,8 @@ "parameters": { "suppressToolId": "BaseObjectGetHashCodeCallInGetHashCode", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -7362,7 +7274,7 @@ }, "fullDescription": { "text": "-Wdeprecated-literal-operator clang diagnostic · Learn more", - "markdown": "-Wdeprecated-literal-operator clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdeprecated-literal-operator)" + "markdown": "-Wdeprecated-literal-operator clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-literal-operator)" }, "defaultConfiguration": { "enabled": true, @@ -7370,13 +7282,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedLiteralOperator", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -7395,7 +7308,7 @@ }, "fullDescription": { "text": "readability-uppercase-literal-suffix clang-tidy check · Learn more", - "markdown": "readability-uppercase-literal-suffix clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/uppercase-literal-suffix.html)" + "markdown": "readability-uppercase-literal-suffix clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/uppercase-literal-suffix.html)" }, "defaultConfiguration": { "enabled": false, @@ -7403,13 +7316,14 @@ "parameters": { "suppressToolId": "CppClangTidyReadabilityUppercaseLiteralSuffix", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -7428,7 +7342,7 @@ }, "fullDescription": { "text": "-Wdirect-ivar-access clang diagnostic · Learn more", - "markdown": "-Wdirect-ivar-access clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdirect-ivar-access)" + "markdown": "-Wdirect-ivar-access clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdirect-ivar-access)" }, "defaultConfiguration": { "enabled": true, @@ -7436,13 +7350,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDirectIvarAccess", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -7469,13 +7384,14 @@ "parameters": { "suppressToolId": "CppIdenticalOperandsInBinaryExpression", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -7494,7 +7410,7 @@ }, "fullDescription": { "text": "-Wdeprecated-register clang diagnostic · Learn more", - "markdown": "-Wdeprecated-register clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdeprecated-register)" + "markdown": "-Wdeprecated-register clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-register)" }, "defaultConfiguration": { "enabled": true, @@ -7502,13 +7418,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedRegister", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -7527,7 +7444,7 @@ }, "fullDescription": { "text": "-Wmismatched-new-delete clang diagnostic · Learn more", - "markdown": "-Wmismatched-new-delete clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmismatched-new-delete)" + "markdown": "-Wmismatched-new-delete clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmismatched-new-delete)" }, "defaultConfiguration": { "enabled": true, @@ -7535,13 +7452,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMismatchedNewDelete", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -7568,14 +7486,15 @@ "parameters": { "suppressToolId": "Unity.BurstAccessingManagedMethod", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity Burst Compiler Warnings", - "index": 54, + "index": 57, "toolComponent": { "name": "QDNET" } @@ -7601,7 +7520,8 @@ "parameters": { "suppressToolId": "ShiftExpressionResultEqualsZero", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -7626,7 +7546,7 @@ }, "fullDescription": { "text": "readability-redundant-string-init clang-tidy check · Learn more", - "markdown": "readability-redundant-string-init clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/redundant-string-init.html)" + "markdown": "readability-redundant-string-init clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/redundant-string-init.html)" }, "defaultConfiguration": { "enabled": true, @@ -7634,13 +7554,14 @@ "parameters": { "suppressToolId": "CppClangTidyReadabilityRedundantStringInit", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -7659,7 +7580,7 @@ }, "fullDescription": { "text": "-Wunsupported-target-opt clang diagnostic · Learn more", - "markdown": "-Wunsupported-target-opt clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunsupported-target-opt)" + "markdown": "-Wunsupported-target-opt clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunsupported-target-opt)" }, "defaultConfiguration": { "enabled": false, @@ -7667,13 +7588,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnsupportedTargetOpt", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -7692,7 +7614,7 @@ }, "fullDescription": { "text": "-Wtautological-constant-in-range-compare clang diagnostic · Learn more", - "markdown": "-Wtautological-constant-in-range-compare clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wtautological-constant-in-range-compare)" + "markdown": "-Wtautological-constant-in-range-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtautological-constant-in-range-compare)" }, "defaultConfiguration": { "enabled": true, @@ -7700,13 +7622,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticTautologicalConstantInRangeCompare", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -7725,7 +7648,7 @@ }, "fullDescription": { "text": "-Wunknown-escape-sequence clang diagnostic · Learn more", - "markdown": "-Wunknown-escape-sequence clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunknown-escape-sequence)" + "markdown": "-Wunknown-escape-sequence clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunknown-escape-sequence)" }, "defaultConfiguration": { "enabled": true, @@ -7733,13 +7656,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnknownEscapeSequence", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -7751,6 +7675,40 @@ } ] }, + { + "id": "CppClangTidyHicppIgnoredRemoveResult", + "shortDescription": { + "text": "hicpp-ignored-remove-result clang-tidy check" + }, + "fullDescription": { + "text": "hicpp-ignored-remove-result clang-tidy check · Learn more", + "markdown": "hicpp-ignored-remove-result clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/ignored-remove-result.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyHicppIgnoredRemoveResult", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "UseArrayEmptyMethod", "shortDescription": { @@ -7766,14 +7724,15 @@ "parameters": { "suppressToolId": "UseArrayEmptyMethod", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -7799,13 +7758,14 @@ "parameters": { "suppressToolId": "CppBadCommaSpaces", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Formatting", + "id": "C_C++/Formatting", "index": 28, "toolComponent": { "name": "QDNET" @@ -7832,13 +7792,14 @@ "parameters": { "suppressToolId": "CppAbstractClassWithoutSpecifier", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -7865,7 +7826,8 @@ "parameters": { "suppressToolId": "VBReplaceWithOfType.Single.2", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -7898,7 +7860,8 @@ "parameters": { "suppressToolId": "VBReplaceWithOfType.Single.1", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -7923,7 +7886,7 @@ }, "fullDescription": { "text": "-Wformat-security clang diagnostic · Learn more", - "markdown": "-Wformat-security clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wformat-security)" + "markdown": "-Wformat-security clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wformat-security)" }, "defaultConfiguration": { "enabled": true, @@ -7931,13 +7894,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticFormatSecurity", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -7964,13 +7928,14 @@ "parameters": { "suppressToolId": "CppBoostFormatBadCode", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -7982,6 +7947,40 @@ } ] }, + { + "id": "CppClangTidyClangDiagnosticCpp23LambdaAttributes", + "shortDescription": { + "text": "c++23-lambda-attributes clang diagnostic" + }, + "fullDescription": { + "text": "-Wc++23-lambda-attributes clang diagnostic · Learn more", + "markdown": "-Wc++23-lambda-attributes clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-23-lambda-attributes)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticCpp23LambdaAttributes", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppBadParensSpaces", "shortDescription": { @@ -7997,13 +7996,14 @@ "parameters": { "suppressToolId": "CppBadParensSpaces", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Formatting", + "id": "C_C++/Formatting", "index": 28, "toolComponent": { "name": "QDNET" @@ -8030,7 +8030,8 @@ "parameters": { "suppressToolId": "PossibleInterfaceMemberAmbiguity", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -8055,7 +8056,7 @@ }, "fullDescription": { "text": "-Wpessimizing-move clang diagnostic · Learn more", - "markdown": "-Wpessimizing-move clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpessimizing-move)" + "markdown": "-Wpessimizing-move clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpessimizing-move)" }, "defaultConfiguration": { "enabled": true, @@ -8063,13 +8064,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticPessimizingMove", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -8096,14 +8098,15 @@ "parameters": { "suppressToolId": "MethodHasAsyncOverloadWithCancellation", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -8121,7 +8124,7 @@ }, "fullDescription": { "text": "-Wincompatible-function-pointer-types clang diagnostic · Learn more", - "markdown": "-Wincompatible-function-pointer-types clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wincompatible-function-pointer-types)" + "markdown": "-Wincompatible-function-pointer-types clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wincompatible-function-pointer-types)" }, "defaultConfiguration": { "enabled": true, @@ -8129,13 +8132,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticIncompatibleFunctionPointerTypes", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -8154,7 +8158,7 @@ }, "fullDescription": { "text": "-Wdelete-non-abstract-non-virtual-dtor clang diagnostic · Learn more", - "markdown": "-Wdelete-non-abstract-non-virtual-dtor clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdelete-non-abstract-non-virtual-dtor)" + "markdown": "-Wdelete-non-abstract-non-virtual-dtor clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdelete-non-abstract-non-virtual-dtor)" }, "defaultConfiguration": { "enabled": true, @@ -8162,13 +8166,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDeleteNonAbstractNonVirtualDtor", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -8195,13 +8200,14 @@ "parameters": { "suppressToolId": "CppPrivateSpecialMemberFunctionIsNotImplemented", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -8220,7 +8226,7 @@ }, "fullDescription": { "text": "cppcoreguidelines-avoid-goto clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-avoid-goto clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/avoid-goto.html)" + "markdown": "cppcoreguidelines-avoid-goto clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/avoid-goto.html)" }, "defaultConfiguration": { "enabled": true, @@ -8228,13 +8234,14 @@ "parameters": { "suppressToolId": "CppClangTidyCppcoreguidelinesAvoidGoto", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -8253,7 +8260,7 @@ }, "fullDescription": { "text": "-Wundef-prefix clang diagnostic · Learn more", - "markdown": "-Wundef-prefix clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wundef-prefix)" + "markdown": "-Wundef-prefix clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wundef-prefix)" }, "defaultConfiguration": { "enabled": true, @@ -8261,13 +8268,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUndefPrefix", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -8286,7 +8294,7 @@ }, "fullDescription": { "text": "readability-inconsistent-declaration-parameter-name clang-tidy check · Learn more", - "markdown": "readability-inconsistent-declaration-parameter-name clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/inconsistent-declaration-parameter-name.html)" + "markdown": "readability-inconsistent-declaration-parameter-name clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/inconsistent-declaration-parameter-name.html)" }, "defaultConfiguration": { "enabled": true, @@ -8294,13 +8302,14 @@ "parameters": { "suppressToolId": "CppClangTidyReadabilityInconsistentDeclarationParameterName", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -8327,14 +8336,15 @@ "parameters": { "suppressToolId": "ObsoleteElementError", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "XAML/Compiler Warnings", - "index": 56, + "index": 60, "toolComponent": { "name": "QDNET" } @@ -8351,8 +8361,8 @@ "text": "Convert constructor into member initializers" }, "fullDescription": { - "text": "Replace constructor with members initialized inline", - "markdown": "Replace constructor with members initialized inline" + "text": "Replace constructor with members initialized inline Learn more...", + "markdown": "Replace constructor with members initialized inline [Learn more...](https://www.jetbrains.com/help/rider/ConvertConstructorToMemberInitializers.html)" }, "defaultConfiguration": { "enabled": true, @@ -8360,7 +8370,8 @@ "parameters": { "suppressToolId": "ConvertConstructorToMemberInitializers", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -8393,14 +8404,15 @@ "parameters": { "suppressToolId": "Unity.DuplicateShortcut", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity", - "index": 19, + "index": 18, "toolComponent": { "name": "QDNET" } @@ -8418,7 +8430,7 @@ }, "fullDescription": { "text": "bugprone-unhandled-exception-at-new clang-tidy check · Learn more", - "markdown": "bugprone-unhandled-exception-at-new clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/unhandled-exception-at-new.html)" + "markdown": "bugprone-unhandled-exception-at-new clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/unhandled-exception-at-new.html)" }, "defaultConfiguration": { "enabled": false, @@ -8426,13 +8438,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneUnhandledExceptionAtNew", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -8451,7 +8464,7 @@ }, "fullDescription": { "text": "-Wdllexport-explicit-instantiation-decl clang diagnostic · Learn more", - "markdown": "-Wdllexport-explicit-instantiation-decl clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdllexport-explicit-instantiation-decl)" + "markdown": "-Wdllexport-explicit-instantiation-decl clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdllexport-explicit-instantiation-decl)" }, "defaultConfiguration": { "enabled": true, @@ -8459,13 +8472,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDllexportExplicitInstantiationDecl", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -8492,13 +8506,14 @@ "parameters": { "suppressToolId": "CppIntegralToPointerConversion", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -8525,7 +8540,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS0420", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -8550,7 +8566,7 @@ }, "fullDescription": { "text": "-Wfour-char-constants clang diagnostic · Learn more", - "markdown": "-Wfour-char-constants clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wfour-char-constants)" + "markdown": "-Wfour-char-constants clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wfour-char-constants)" }, "defaultConfiguration": { "enabled": true, @@ -8558,13 +8574,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticFourCharConstants", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -8591,7 +8608,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8383", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -8624,14 +8642,15 @@ "parameters": { "suppressToolId": "Xaml.XamlRelativeSourceDefaultModeWarningHighlighting", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "XAML/Potential Code Quality Issues", - "index": 44, + "index": 45, "toolComponent": { "name": "QDNET" } @@ -8657,7 +8676,8 @@ "parameters": { "suppressToolId": "NUnit.RangeAttributeBoundsAreOutOfRange", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -8682,7 +8702,7 @@ }, "fullDescription": { "text": "fuchsia-virtual-inheritance clang-tidy check · Learn more", - "markdown": "fuchsia-virtual-inheritance clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/fuchsia/virtual-inheritance.html)" + "markdown": "fuchsia-virtual-inheritance clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/fuchsia/virtual-inheritance.html)" }, "defaultConfiguration": { "enabled": false, @@ -8690,13 +8710,14 @@ "parameters": { "suppressToolId": "CppClangTidyFuchsiaVirtualInheritance", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -8715,7 +8736,7 @@ }, "fullDescription": { "text": "-Wgnu-pointer-arith clang diagnostic · Learn more", - "markdown": "-Wgnu-pointer-arith clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wgnu-pointer-arith)" + "markdown": "-Wgnu-pointer-arith clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-pointer-arith)" }, "defaultConfiguration": { "enabled": true, @@ -8723,13 +8744,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticGnuPointerArith", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -8748,7 +8770,7 @@ }, "fullDescription": { "text": "cert-msc33-c clang-tidy check · Learn more", - "markdown": "cert-msc33-c clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cert/msc33-c.html)" + "markdown": "cert-msc33-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/msc33-c.html)" }, "defaultConfiguration": { "enabled": false, @@ -8756,13 +8778,14 @@ "parameters": { "suppressToolId": "CppClangTidyCertMsc33C", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -8789,7 +8812,8 @@ "parameters": { "suppressToolId": "BadIndent", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -8814,7 +8838,7 @@ }, "fullDescription": { "text": "cert-con54-cpp clang-tidy check · Learn more", - "markdown": "cert-con54-cpp clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cert/con54-cpp.html)" + "markdown": "cert-con54-cpp clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/con54-cpp.html)" }, "defaultConfiguration": { "enabled": false, @@ -8822,13 +8846,14 @@ "parameters": { "suppressToolId": "CppClangTidyCertCon54Cpp", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -8855,14 +8880,15 @@ "parameters": { "suppressToolId": "NotAssignedOutParameter", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "VB.NET/Potential Code Quality Issues", - "index": 58, + "index": 62, "toolComponent": { "name": "QDNET" } @@ -8880,7 +8906,7 @@ }, "fullDescription": { "text": "-Winvalid-pp-token clang diagnostic · Learn more", - "markdown": "-Winvalid-pp-token clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#winvalid-pp-token)" + "markdown": "-Winvalid-pp-token clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winvalid-pp-token)" }, "defaultConfiguration": { "enabled": true, @@ -8888,13 +8914,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticInvalidPpToken", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -8921,7 +8948,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS1723", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -8954,7 +8982,8 @@ "parameters": { "suppressToolId": "NUnit.RedundantExpectedResultInTestCaseAttribute", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -8987,14 +9016,15 @@ "parameters": { "suppressToolId": "Unity.UnknownTag", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity", - "index": 19, + "index": 18, "toolComponent": { "name": "QDNET" } @@ -9008,11 +9038,11 @@ { "id": "RedundantExplicitParamsArrayCreation", "shortDescription": { - "text": "Redundant explicit array creation in argument of 'params' parameter" + "text": "Redundant explicit collection creation in argument of 'params' parameter" }, "fullDescription": { - "text": "Array creation in argument passed to 'params' parameter is redundant", - "markdown": "Array creation in argument passed to 'params' parameter is redundant" + "text": "Explicit collection creation in an argument passed to the 'params' parameter is redundant Learn more...", + "markdown": "Explicit collection creation in an argument passed to the 'params' parameter is redundant [Learn more...](https://www.jetbrains.com/help/rider/RedundantExplicitParamsArrayCreation.html)" }, "defaultConfiguration": { "enabled": true, @@ -9020,7 +9050,8 @@ "parameters": { "suppressToolId": "RedundantExplicitParamsArrayCreation", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -9045,7 +9076,7 @@ }, "fullDescription": { "text": "google-objc-function-naming clang-tidy check · Learn more", - "markdown": "google-objc-function-naming clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/google/objc-function-naming.html)" + "markdown": "google-objc-function-naming clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/objc-function-naming.html)" }, "defaultConfiguration": { "enabled": false, @@ -9053,13 +9084,14 @@ "parameters": { "suppressToolId": "CppClangTidyGoogleObjcFunctionNaming", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -9086,13 +9118,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerOptinPerformancePadding", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -9119,7 +9152,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS7023", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -9152,14 +9186,15 @@ "parameters": { "suppressToolId": "Asp.Warning", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "Aspx/Potential Code Quality Issues", - "index": 60, + "index": 64, "toolComponent": { "name": "QDNET" } @@ -9185,7 +9220,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS7022", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -9210,7 +9246,7 @@ }, "fullDescription": { "text": "bugprone-multiple-new-in-one-expression clang-tidy check · Learn more", - "markdown": "bugprone-multiple-new-in-one-expression clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/multiple-new-in-one-expression.html)" + "markdown": "bugprone-multiple-new-in-one-expression clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/multiple-new-in-one-expression.html)" }, "defaultConfiguration": { "enabled": true, @@ -9218,13 +9254,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneMultipleNewInOneExpression", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -9251,13 +9288,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerCoreUninitializedArraySubscript", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -9284,7 +9322,8 @@ "parameters": { "suppressToolId": "UseIndexFromEndExpression", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -9317,14 +9356,15 @@ "parameters": { "suppressToolId": "RouteTemplates.ParameterTypeAndConstraintsMismatch", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "ASP.NET route templates/Code Notification", - "index": 47, + "index": 48, "toolComponent": { "name": "QDNET" } @@ -9342,7 +9382,7 @@ }, "fullDescription": { "text": "cert-msc32-c clang-tidy check · Learn more", - "markdown": "cert-msc32-c clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cert/msc32-c.html)" + "markdown": "cert-msc32-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/msc32-c.html)" }, "defaultConfiguration": { "enabled": false, @@ -9350,13 +9390,14 @@ "parameters": { "suppressToolId": "CppClangTidyCertMsc32C", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -9375,7 +9416,7 @@ }, "fullDescription": { "text": "-Wgnu-binary-literal clang diagnostic · Learn more", - "markdown": "-Wgnu-binary-literal clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wgnu-binary-literal)" + "markdown": "-Wgnu-binary-literal clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-binary-literal)" }, "defaultConfiguration": { "enabled": true, @@ -9383,13 +9424,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticGnuBinaryLiteral", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -9407,8 +9449,8 @@ "text": "Use null check instead of a type check succeeding on any not-null value" }, "fullDescription": { - "text": "The expression of 'is' operator matches the provided type on any non-null value. Consider comparing with 'null' instead.", - "markdown": "The expression of 'is' operator matches the provided type on any non-null value. Consider comparing with 'null' instead." + "text": "The expression of 'is' operator matches the provided type on any non-null value. Consider comparing with 'null' instead. Learn more...", + "markdown": "The expression of 'is' operator matches the provided type on any non-null value. Consider comparing with 'null' instead. [Learn more...](https://www.jetbrains.com/help/rider/ConvertTypeCheckToNullCheck.html)" }, "defaultConfiguration": { "enabled": true, @@ -9416,7 +9458,8 @@ "parameters": { "suppressToolId": "ConvertTypeCheckToNullCheck", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -9441,7 +9484,7 @@ }, "fullDescription": { "text": "hicpp-use-equals-default clang-tidy check · Learn more", - "markdown": "hicpp-use-equals-default clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/use-equals-default.html)" + "markdown": "hicpp-use-equals-default clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/use-equals-default.html)" }, "defaultConfiguration": { "enabled": false, @@ -9449,13 +9492,14 @@ "parameters": { "suppressToolId": "CppClangTidyHicppUseEqualsDefault", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -9482,7 +9526,8 @@ "parameters": { "suppressToolId": "NUnit.IgnoredParameterAttribute", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -9507,7 +9552,7 @@ }, "fullDescription": { "text": "modernize-use-transparent-functors clang-tidy check · Learn more", - "markdown": "modernize-use-transparent-functors clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-transparent-functors.html)" + "markdown": "modernize-use-transparent-functors clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-transparent-functors.html)" }, "defaultConfiguration": { "enabled": true, @@ -9515,13 +9560,14 @@ "parameters": { "suppressToolId": "CppClangTidyModernizeUseTransparentFunctors", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -9548,7 +9594,8 @@ "parameters": { "suppressToolId": "MeaninglessDefaultParameterValue", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -9573,21 +9620,22 @@ }, "fullDescription": { "text": "-Wunneeded-internal-declaration clang diagnostic · Learn more", - "markdown": "-Wunneeded-internal-declaration clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunneeded-internal-declaration)" + "markdown": "-Wunneeded-internal-declaration clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunneeded-internal-declaration)" }, "defaultConfiguration": { - "enabled": true, - "level": "warning", + "enabled": false, + "level": "note", "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnneededInternalDeclaration", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -9614,14 +9662,15 @@ "parameters": { "suppressToolId": "Unity.BurstCreatingManagedType", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity Burst Compiler Warnings", - "index": 54, + "index": 57, "toolComponent": { "name": "QDNET" } @@ -9639,7 +9688,7 @@ }, "fullDescription": { "text": "-Wdangling clang diagnostic · Learn more", - "markdown": "-Wdangling clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdangling)" + "markdown": "-Wdangling clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdangling)" }, "defaultConfiguration": { "enabled": true, @@ -9647,13 +9696,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDangling", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -9672,7 +9722,7 @@ }, "fullDescription": { "text": "-Wweak-vtables clang diagnostic · Learn more", - "markdown": "-Wweak-vtables clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wweak-vtables)" + "markdown": "-Wweak-vtables clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wweak-vtables)" }, "defaultConfiguration": { "enabled": true, @@ -9680,13 +9730,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticWeakVtables", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -9705,7 +9756,7 @@ }, "fullDescription": { "text": "-Wmissing-noreturn clang diagnostic · Learn more", - "markdown": "-Wmissing-noreturn clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmissing-noreturn)" + "markdown": "-Wmissing-noreturn clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmissing-noreturn)" }, "defaultConfiguration": { "enabled": true, @@ -9713,13 +9764,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMissingNoreturn", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -9746,14 +9798,15 @@ "parameters": { "suppressToolId": "CppIfCanBeReplacedByConstexprIf", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Common Practices and Code Improvements", - "index": 17, + "id": "C_C++/Common Practices and Code Improvements", + "index": 16, "toolComponent": { "name": "QDNET" } @@ -9771,7 +9824,7 @@ }, "fullDescription": { "text": "hicpp-use-noexcept clang-tidy check · Learn more", - "markdown": "hicpp-use-noexcept clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/use-noexcept.html)" + "markdown": "hicpp-use-noexcept clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/use-noexcept.html)" }, "defaultConfiguration": { "enabled": false, @@ -9779,13 +9832,14 @@ "parameters": { "suppressToolId": "CppClangTidyHicppUseNoexcept", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -9812,7 +9866,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS0458", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -9837,7 +9892,7 @@ }, "fullDescription": { "text": "-Wunused-but-set-parameter clang diagnostic · Learn more", - "markdown": "-Wunused-but-set-parameter clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunused-but-set-parameter)" + "markdown": "-Wunused-but-set-parameter clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunused-but-set-parameter)" }, "defaultConfiguration": { "enabled": false, @@ -9845,13 +9900,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnusedButSetParameter", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -9878,13 +9934,14 @@ "parameters": { "suppressToolId": "CppDefaultCaseNotHandledInSwitchStatement", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -9903,7 +9960,7 @@ }, "fullDescription": { "text": "-Wshadow-field-in-constructor-modified clang diagnostic · Learn more", - "markdown": "-Wshadow-field-in-constructor-modified clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wshadow-field-in-constructor-modified)" + "markdown": "-Wshadow-field-in-constructor-modified clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wshadow-field-in-constructor-modified)" }, "defaultConfiguration": { "enabled": false, @@ -9911,13 +9968,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticShadowFieldInConstructorModified", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -9944,14 +10002,15 @@ "parameters": { "suppressToolId": "NotOverriddenInSpecificCulture", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "ResX/Potential Code Quality Issues", - "index": 63, + "index": 68, "toolComponent": { "name": "QDNET" } @@ -9977,7 +10036,8 @@ "parameters": { "suppressToolId": "NonReadonlyMemberInGetHashCode", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -10002,7 +10062,7 @@ }, "fullDescription": { "text": "misc-confusable-identifiers clang-tidy check · Learn more", - "markdown": "misc-confusable-identifiers clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/misc/confusable-identifiers.html)" + "markdown": "misc-confusable-identifiers clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/confusable-identifiers.html)" }, "defaultConfiguration": { "enabled": true, @@ -10010,13 +10070,14 @@ "parameters": { "suppressToolId": "CppClangTidyMiscConfusableIdentifiers", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -10035,7 +10096,7 @@ }, "fullDescription": { "text": "-Wnonportable-system-include-path clang diagnostic · Learn more", - "markdown": "-Wnonportable-system-include-path clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wnonportable-system-include-path)" + "markdown": "-Wnonportable-system-include-path clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnonportable-system-include-path)" }, "defaultConfiguration": { "enabled": false, @@ -10043,13 +10104,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticNonportableSystemIncludePath", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -10068,7 +10130,7 @@ }, "fullDescription": { "text": "cert-msc30-c clang-tidy check · Learn more", - "markdown": "cert-msc30-c clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cert/msc30-c.html)" + "markdown": "cert-msc30-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/msc30-c.html)" }, "defaultConfiguration": { "enabled": false, @@ -10076,13 +10138,14 @@ "parameters": { "suppressToolId": "CppClangTidyCertMsc30C", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -10101,7 +10164,7 @@ }, "fullDescription": { "text": "-Wpragma-once-outside-header clang diagnostic · Learn more", - "markdown": "-Wpragma-once-outside-header clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpragma-once-outside-header)" + "markdown": "-Wpragma-once-outside-header clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpragma-once-outside-header)" }, "defaultConfiguration": { "enabled": true, @@ -10109,13 +10172,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticPragmaOnceOutsideHeader", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -10134,7 +10198,7 @@ }, "fullDescription": { "text": "-Watomic-alignment clang diagnostic · Learn more", - "markdown": "-Watomic-alignment clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#watomic-alignment)" + "markdown": "-Watomic-alignment clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#watomic-alignment)" }, "defaultConfiguration": { "enabled": true, @@ -10142,13 +10206,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticAtomicAlignment", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -10175,7 +10240,8 @@ "parameters": { "suppressToolId": "UnusedAnonymousMethodSignature", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -10208,7 +10274,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS0469", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -10233,7 +10300,7 @@ }, "fullDescription": { "text": "-Wmissing-exception-spec clang diagnostic · Learn more", - "markdown": "-Wmissing-exception-spec clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmissing-exception-spec)" + "markdown": "-Wmissing-exception-spec clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmissing-exception-spec)" }, "defaultConfiguration": { "enabled": true, @@ -10241,13 +10308,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMissingExceptionSpec", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -10266,7 +10334,7 @@ }, "fullDescription": { "text": "-Wpoison-system-directories clang diagnostic · Learn more", - "markdown": "-Wpoison-system-directories clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpoison-system-directories)" + "markdown": "-Wpoison-system-directories clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpoison-system-directories)" }, "defaultConfiguration": { "enabled": true, @@ -10274,13 +10342,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticPoisonSystemDirectories", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -10307,7 +10376,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS0464", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -10340,7 +10410,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS0465", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -10365,7 +10436,7 @@ }, "fullDescription": { "text": "-Wunused-lambda-capture clang diagnostic · Learn more", - "markdown": "-Wunused-lambda-capture clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunused-lambda-capture)" + "markdown": "-Wunused-lambda-capture clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunused-lambda-capture)" }, "defaultConfiguration": { "enabled": false, @@ -10373,13 +10444,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnusedLambdaCapture", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -10398,7 +10470,7 @@ }, "fullDescription": { "text": "-Wformat clang diagnostic · Learn more", - "markdown": "-Wformat clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wformat)" + "markdown": "-Wformat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wformat)" }, "defaultConfiguration": { "enabled": true, @@ -10406,13 +10478,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticFormat", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -10431,7 +10504,7 @@ }, "fullDescription": { "text": "-Wignored-reference-qualifiers clang diagnostic · Learn more", - "markdown": "-Wignored-reference-qualifiers clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wignored-reference-qualifiers)" + "markdown": "-Wignored-reference-qualifiers clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wignored-reference-qualifiers)" }, "defaultConfiguration": { "enabled": true, @@ -10439,13 +10512,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticIgnoredReferenceQualifiers", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -10464,7 +10538,7 @@ }, "fullDescription": { "text": "-Wpre-c++2c-compat-pedantic clang diagnostic · Learn more", - "markdown": "-Wpre-c++2c-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpre-c-2c-compat-pedantic)" + "markdown": "-Wpre-c++2c-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpre-c-2c-compat-pedantic)" }, "defaultConfiguration": { "enabled": false, @@ -10472,13 +10546,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticPreCpp2cCompatPedantic", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -10505,7 +10580,8 @@ "parameters": { "suppressToolId": "Xaml.EmptyGridLengthDefinition", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -10538,7 +10614,8 @@ "parameters": { "suppressToolId": "VBUseMethodAny.1", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -10571,7 +10648,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS7095", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -10604,7 +10682,8 @@ "parameters": { "suppressToolId": "VBUseMethodAny.2", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -10637,7 +10716,8 @@ "parameters": { "suppressToolId": "VBUseMethodAny.3", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -10670,7 +10750,8 @@ "parameters": { "suppressToolId": "VBUseMethodAny.4", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -10703,7 +10784,8 @@ "parameters": { "suppressToolId": "VBUseMethodAny.5", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -10728,7 +10810,7 @@ }, "fullDescription": { "text": "-Wused-but-marked-unused clang diagnostic · Learn more", - "markdown": "-Wused-but-marked-unused clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wused-but-marked-unused)" + "markdown": "-Wused-but-marked-unused clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wused-but-marked-unused)" }, "defaultConfiguration": { "enabled": true, @@ -10736,13 +10818,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUsedButMarkedUnused", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -10761,7 +10844,7 @@ }, "fullDescription": { "text": "-Woverloaded-shift-op-parentheses clang diagnostic · Learn more", - "markdown": "-Woverloaded-shift-op-parentheses clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#woverloaded-shift-op-parentheses)" + "markdown": "-Woverloaded-shift-op-parentheses clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#woverloaded-shift-op-parentheses)" }, "defaultConfiguration": { "enabled": true, @@ -10769,13 +10852,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticOverloadedShiftOpParentheses", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -10802,14 +10886,15 @@ "parameters": { "suppressToolId": "FSharpInterpolatedString", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "F#/Redundancies in Code", - "index": 67, + "index": 73, "toolComponent": { "name": "QDNET" } @@ -10835,7 +10920,8 @@ "parameters": { "suppressToolId": "ReplaceWithFieldKeyword", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -10868,7 +10954,8 @@ "parameters": { "suppressToolId": "ArrangeTypeModifiers", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -10893,7 +10980,7 @@ }, "fullDescription": { "text": "-Wnon-modular-include-in-framework-module clang diagnostic · Learn more", - "markdown": "-Wnon-modular-include-in-framework-module clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wnon-modular-include-in-framework-module)" + "markdown": "-Wnon-modular-include-in-framework-module clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnon-modular-include-in-framework-module)" }, "defaultConfiguration": { "enabled": true, @@ -10901,13 +10988,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticNonModularIncludeInFrameworkModule", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -10934,7 +11022,8 @@ "parameters": { "suppressToolId": "LocalFunctionHidesMethod", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -10967,14 +11056,15 @@ "parameters": { "suppressToolId": "Unity.LoadSceneAmbiguousSceneName", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity", - "index": 19, + "index": 18, "toolComponent": { "name": "QDNET" } @@ -11000,14 +11090,15 @@ "parameters": { "suppressToolId": "Unity.LoadSceneDisabledSceneName", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity", - "index": 19, + "index": 18, "toolComponent": { "name": "QDNET" } @@ -11033,14 +11124,15 @@ "parameters": { "suppressToolId": "Unity.BurstStringFormatInvalidArgument", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity Burst Compiler Warnings", - "index": 54, + "index": 57, "toolComponent": { "name": "QDNET" } @@ -11054,7 +11146,7 @@ { "id": "ReturnTypeCanBeNotNullable", "shortDescription": { - "text": "Return type of a function can be non-nullable" + "text": "Return type of a function can be made non-nullable" }, "fullDescription": { "text": "Function's return type is declared as nullable but it never returns nullable values", @@ -11066,7 +11158,8 @@ "parameters": { "suppressToolId": "ReturnTypeCanBeNotNullable", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -11091,7 +11184,7 @@ }, "fullDescription": { "text": "-Wdefaulted-function-deleted clang diagnostic · Learn more", - "markdown": "-Wdefaulted-function-deleted clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdefaulted-function-deleted)" + "markdown": "-Wdefaulted-function-deleted clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdefaulted-function-deleted)" }, "defaultConfiguration": { "enabled": false, @@ -11099,13 +11192,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDefaultedFunctionDeleted", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -11132,14 +11226,15 @@ "parameters": { "suppressToolId": "MissingBodyTag", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "HTML/Common Practices and Code Improvements", - "index": 68, + "index": 74, "toolComponent": { "name": "QDNET" } @@ -11165,14 +11260,15 @@ "parameters": { "suppressToolId": "CppOutParameterMustBeWritten", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Compiler Warnings", - "index": 69, + "id": "C_C++/Compiler Warnings", + "index": 75, "toolComponent": { "name": "QDNET" } @@ -11198,7 +11294,8 @@ "parameters": { "suppressToolId": "Xaml.BindingWithContextNotResolved", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -11231,14 +11328,15 @@ "parameters": { "suppressToolId": "CppWarningDirective", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Compiler Warnings", - "index": 69, + "id": "C_C++/Compiler Warnings", + "index": 75, "toolComponent": { "name": "QDNET" } @@ -11256,7 +11354,7 @@ }, "fullDescription": { "text": "-Wout-of-scope-function clang diagnostic · Learn more", - "markdown": "-Wout-of-scope-function clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wout-of-scope-function)" + "markdown": "-Wout-of-scope-function clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wout-of-scope-function)" }, "defaultConfiguration": { "enabled": true, @@ -11264,13 +11362,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticOutOfScopeFunction", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -11297,7 +11396,8 @@ "parameters": { "suppressToolId": "ArrangeConstructorOrDestructorBody", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -11330,14 +11430,15 @@ "parameters": { "suppressToolId": "Html.TagShouldNotBeSelfClosed", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "HTML/Potential Code Quality Issues", - "index": 51, + "index": 54, "toolComponent": { "name": "QDNET" } @@ -11355,7 +11456,7 @@ }, "fullDescription": { "text": "-Wmodule-conflict clang diagnostic · Learn more", - "markdown": "-Wmodule-conflict clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmodule-conflict)" + "markdown": "-Wmodule-conflict clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmodule-conflict)" }, "defaultConfiguration": { "enabled": true, @@ -11363,13 +11464,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticModuleConflict", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -11396,7 +11498,8 @@ "parameters": { "suppressToolId": "RedundantExtendsListEntry", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -11429,7 +11532,8 @@ "parameters": { "suppressToolId": "ReturnValueOfPureMethodIsNotUsed", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -11447,6 +11551,40 @@ } ] }, + { + "id": "CppClangTidyClangDiagnosticFormatOverflowNonKprintf", + "shortDescription": { + "text": "format-overflow-non-kprintf clang diagnostic" + }, + "fullDescription": { + "text": "-Wformat-overflow-non-kprintf clang diagnostic · Learn more", + "markdown": "-Wformat-overflow-non-kprintf clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wformat-overflow-non-kprintf)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticFormatOverflowNonKprintf", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppClangTidyClangDiagnosticConfigMacros", "shortDescription": { @@ -11454,7 +11592,7 @@ }, "fullDescription": { "text": "-Wconfig-macros clang diagnostic · Learn more", - "markdown": "-Wconfig-macros clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wconfig-macros)" + "markdown": "-Wconfig-macros clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wconfig-macros)" }, "defaultConfiguration": { "enabled": true, @@ -11462,13 +11600,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticConfigMacros", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -11487,7 +11626,7 @@ }, "fullDescription": { "text": "-Wdocumentation-unknown-command clang diagnostic · Learn more", - "markdown": "-Wdocumentation-unknown-command clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdocumentation-unknown-command)" + "markdown": "-Wdocumentation-unknown-command clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdocumentation-unknown-command)" }, "defaultConfiguration": { "enabled": false, @@ -11495,13 +11634,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDocumentationUnknownCommand", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -11528,14 +11668,15 @@ "parameters": { "suppressToolId": "EmptyStatement", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -11561,7 +11702,8 @@ "parameters": { "suppressToolId": "NotAccessedPositionalProperty.Local", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -11579,6 +11721,40 @@ } ] }, + { + "id": "CppClangTidyClangDiagnosticAliasTemplateInDeclarationName", + "shortDescription": { + "text": "alias-template-in-declaration-name clang diagnostic" + }, + "fullDescription": { + "text": "-Walias-template-in-declaration-name clang diagnostic · Learn more", + "markdown": "-Walias-template-in-declaration-name clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#walias-template-in-declaration-name)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticAliasTemplateInDeclarationName", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "Unity.IncorrectMethodSignatureInStringLiteral", "shortDescription": { @@ -11594,14 +11770,15 @@ "parameters": { "suppressToolId": "Unity.IncorrectMethodSignatureInStringLiteral", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity", - "index": 19, + "index": 18, "toolComponent": { "name": "QDNET" } @@ -11627,14 +11804,15 @@ "parameters": { "suppressToolId": "Xaml.RedundantFreezeAttribute", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "XAML/Redundancies in Code", - "index": 71, + "index": 77, "toolComponent": { "name": "QDNET" } @@ -11651,8 +11829,8 @@ "text": "Get-only auto-property is never assigned" }, "fullDescription": { - "text": "Auto-property without setter has no initializer or is never assigned in constructor", - "markdown": "Auto-property without setter has no initializer or is never assigned in constructor" + "text": "Auto-property without setter has no initializer or is never assigned in constructor Learn more...", + "markdown": "Auto-property without setter has no initializer or is never assigned in constructor [Learn more...](https://www.jetbrains.com/help/rider/UnassignedGetOnlyAutoProperty.html)" }, "defaultConfiguration": { "enabled": true, @@ -11660,14 +11838,49 @@ "parameters": { "suppressToolId": "UnassignedGetOnlyAutoProperty", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "StringSpanComparison", + "shortDescription": { + "text": "Possibly wrong string comparison: spans are only equal when pointing to the same memory location" + }, + "fullDescription": { + "text": "Possibly wrong string comparison: spans are only equal when pointing to the same memory location. Spans from freshly created or static strings are unlikely to be equal to other spans, probably you want to compare chars/bytes instead. Learn more...", + "markdown": "Possibly wrong string comparison: spans are only equal when pointing to the same memory location. Spans from freshly created or static strings are unlikely to be equal to other spans, probably you want to compare chars/bytes instead. [Learn more...](https://www.jetbrains.com/help/rider/StringSpanComparison.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "StringSpanComparison", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, "toolComponent": { "name": "QDNET" } @@ -11693,13 +11906,14 @@ "parameters": { "suppressToolId": "CppUE4BlueprintCallableFunctionMayBeStatic", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Unreal Engine", + "id": "C_C++/Unreal Engine", "index": 6, "toolComponent": { "name": "QDNET" @@ -11718,7 +11932,7 @@ }, "fullDescription": { "text": "bugprone-unhandled-self-assignment clang-tidy check · Learn more", - "markdown": "bugprone-unhandled-self-assignment clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/unhandled-self-assignment.html)" + "markdown": "bugprone-unhandled-self-assignment clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/unhandled-self-assignment.html)" }, "defaultConfiguration": { "enabled": true, @@ -11726,13 +11940,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneUnhandledSelfAssignment", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -11751,7 +11966,7 @@ }, "fullDescription": { "text": "bugprone-suspicious-memory-comparison clang-tidy check · Learn more", - "markdown": "bugprone-suspicious-memory-comparison clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/suspicious-memory-comparison.html)" + "markdown": "bugprone-suspicious-memory-comparison clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/suspicious-memory-comparison.html)" }, "defaultConfiguration": { "enabled": true, @@ -11759,13 +11974,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneSuspiciousMemoryComparison", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -11792,14 +12008,15 @@ "parameters": { "suppressToolId": "AssignNullToNotNullAttribute", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Constraints Violations", - "index": 73, + "index": 80, "toolComponent": { "name": "QDNET" } @@ -11817,7 +12034,7 @@ }, "fullDescription": { "text": "modernize-use-std-print clang-tidy check · Learn more", - "markdown": "modernize-use-std-print clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-std-print.html)" + "markdown": "modernize-use-std-print clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-std-print.html)" }, "defaultConfiguration": { "enabled": true, @@ -11825,13 +12042,48 @@ "parameters": { "suppressToolId": "CppClangTidyModernizeUseStdPrint", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyBugproneIncorrectEnableIf", + "shortDescription": { + "text": "bugprone-incorrect-enable-if clang-tidy check" + }, + "fullDescription": { + "text": "bugprone-incorrect-enable-if clang-tidy check · Learn more", + "markdown": "bugprone-incorrect-enable-if clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/incorrect-enable-if.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyBugproneIncorrectEnableIf", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -11858,13 +12110,14 @@ "parameters": { "suppressToolId": "CppDeclarationSpecifierWithoutDeclarators", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -11883,7 +12136,7 @@ }, "fullDescription": { "text": "-Wduplicate-method-arg clang diagnostic · Learn more", - "markdown": "-Wduplicate-method-arg clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wduplicate-method-arg)" + "markdown": "-Wduplicate-method-arg clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wduplicate-method-arg)" }, "defaultConfiguration": { "enabled": true, @@ -11891,13 +12144,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDuplicateMethodArg", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -11924,14 +12178,15 @@ "parameters": { "suppressToolId": "WebConfig.ModuleQualificationResolve", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "Web.Config/Potential Code Quality Issues", - "index": 75, + "index": 82, "toolComponent": { "name": "QDNET" } @@ -11949,7 +12204,7 @@ }, "fullDescription": { "text": "cppcoreguidelines-non-private-member-variables-in-classes clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-non-private-member-variables-in-classes clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/non-private-member-variables-in-classes.html)" + "markdown": "cppcoreguidelines-non-private-member-variables-in-classes clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/non-private-member-variables-in-classes.html)" }, "defaultConfiguration": { "enabled": false, @@ -11957,13 +12212,14 @@ "parameters": { "suppressToolId": "CppClangTidyCppcoreguidelinesNonPrivateMemberVariablesInClasses", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -11990,13 +12246,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaSelfInit", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -12014,8 +12271,8 @@ "text": "Introduce optional parameters (non-private accessibility)" }, "fullDescription": { - "text": "Introduce optional parameters to overload method", - "markdown": "Introduce optional parameters to overload method" + "text": "Introduce optional parameters to overload method Learn more...", + "markdown": "Introduce optional parameters to overload method [Learn more...](https://www.jetbrains.com/help/rider/IntroduceOptionalParameters.Global.html)" }, "defaultConfiguration": { "enabled": true, @@ -12023,7 +12280,8 @@ "parameters": { "suppressToolId": "IntroduceOptionalParameters.Global", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -12048,7 +12306,7 @@ }, "fullDescription": { "text": "cppcoreguidelines-noexcept-swap clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-noexcept-swap clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/noexcept-swap.html)" + "markdown": "cppcoreguidelines-noexcept-swap clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/noexcept-swap.html)" }, "defaultConfiguration": { "enabled": true, @@ -12056,13 +12314,14 @@ "parameters": { "suppressToolId": "CppClangTidyCppcoreguidelinesNoexceptSwap", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -12089,7 +12348,8 @@ "parameters": { "suppressToolId": "DoubleNegationOperator", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -12114,7 +12374,7 @@ }, "fullDescription": { "text": "google-build-namespaces clang-tidy check · Learn more", - "markdown": "google-build-namespaces clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/google/build-namespaces.html)" + "markdown": "google-build-namespaces clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/build-namespaces.html)" }, "defaultConfiguration": { "enabled": false, @@ -12122,13 +12382,14 @@ "parameters": { "suppressToolId": "CppClangTidyGoogleBuildNamespaces", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -12147,7 +12408,7 @@ }, "fullDescription": { "text": "bugprone-forwarding-reference-overload clang-tidy check · Learn more", - "markdown": "bugprone-forwarding-reference-overload clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/forwarding-reference-overload.html)" + "markdown": "bugprone-forwarding-reference-overload clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/forwarding-reference-overload.html)" }, "defaultConfiguration": { "enabled": true, @@ -12155,13 +12416,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneForwardingReferenceOverload", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -12180,7 +12442,7 @@ }, "fullDescription": { "text": "modernize-use-nullptr clang-tidy check · Learn more", - "markdown": "modernize-use-nullptr clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-nullptr.html)" + "markdown": "modernize-use-nullptr clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-nullptr.html)" }, "defaultConfiguration": { "enabled": false, @@ -12188,13 +12450,14 @@ "parameters": { "suppressToolId": "CppClangTidyModernizeUseNullptr", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -12221,14 +12484,15 @@ "parameters": { "suppressToolId": "ReplaceWithSingleCallToSingle", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -12246,7 +12510,7 @@ }, "fullDescription": { "text": "modernize-pass-by-value clang-tidy check · Learn more", - "markdown": "modernize-pass-by-value clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/pass-by-value.html)" + "markdown": "modernize-pass-by-value clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/pass-by-value.html)" }, "defaultConfiguration": { "enabled": true, @@ -12254,13 +12518,14 @@ "parameters": { "suppressToolId": "CppClangTidyModernizePassByValue", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -12279,7 +12544,7 @@ }, "fullDescription": { "text": "-Wregister clang diagnostic · Learn more", - "markdown": "-Wregister clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wregister)" + "markdown": "-Wregister clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wregister)" }, "defaultConfiguration": { "enabled": true, @@ -12287,13 +12552,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticRegister", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -12320,7 +12586,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS0472", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -12353,14 +12620,15 @@ "parameters": { "suppressToolId": "Unity.BurstFunctionSignatureContainsManagedTypes", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity Burst Compiler Warnings", - "index": 54, + "index": 57, "toolComponent": { "name": "QDNET" } @@ -12378,7 +12646,7 @@ }, "fullDescription": { "text": "-Wgnu-conditional-omitted-operand clang diagnostic · Learn more", - "markdown": "-Wgnu-conditional-omitted-operand clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wgnu-conditional-omitted-operand)" + "markdown": "-Wgnu-conditional-omitted-operand clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-conditional-omitted-operand)" }, "defaultConfiguration": { "enabled": true, @@ -12386,13 +12654,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticGnuConditionalOmittedOperand", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -12411,7 +12680,7 @@ }, "fullDescription": { "text": "-Wclass-varargs clang diagnostic · Learn more", - "markdown": "-Wclass-varargs clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wclass-varargs)" + "markdown": "-Wclass-varargs clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wclass-varargs)" }, "defaultConfiguration": { "enabled": true, @@ -12419,13 +12688,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticClassVarargs", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -12444,7 +12714,7 @@ }, "fullDescription": { "text": "-Wcast-function-type clang diagnostic · Learn more", - "markdown": "-Wcast-function-type clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wcast-function-type)" + "markdown": "-Wcast-function-type clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcast-function-type)" }, "defaultConfiguration": { "enabled": true, @@ -12452,13 +12722,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCastFunctionType", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -12485,13 +12756,14 @@ "parameters": { "suppressToolId": "CppWrongIndentSize", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Formatting", + "id": "C_C++/Formatting", "index": 28, "toolComponent": { "name": "QDNET" @@ -12518,7 +12790,8 @@ "parameters": { "suppressToolId": "ArrangeRedundantParentheses", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -12551,7 +12824,8 @@ "parameters": { "suppressToolId": "Xaml.ResourceFilePathCaseMismatch", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -12584,14 +12858,15 @@ "parameters": { "suppressToolId": "ReplaceWithLastOrDefault.2", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -12603,28 +12878,29 @@ ] }, { - "id": "CppClangTidyClangDiagnosticMissingPrototypes", + "id": "ReplaceWithLastOrDefault.3", "shortDescription": { - "text": "missing-prototypes clang diagnostic" + "text": "Replace with LastOrDefault($args$)" }, "fullDescription": { - "text": "-Wmissing-prototypes clang diagnostic · Learn more", - "markdown": "-Wmissing-prototypes clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmissing-prototypes)" + "text": "$seq$.Any($args$) ? $seq$.Last($args$) : default($T$)", + "markdown": "$seq$.Any($args$) ? $seq$.Last($args$) : default($T$)" }, "defaultConfiguration": { - "enabled": false, + "enabled": true, "level": "note", "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMissingPrototypes", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "suppressToolId": "ReplaceWithLastOrDefault.3", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", - "index": 3, + "id": "C#/Common Practices and Code Improvements", + "index": 12, "toolComponent": { "name": "QDNET" } @@ -12636,28 +12912,29 @@ ] }, { - "id": "ReplaceWithLastOrDefault.3", + "id": "PossibleInvalidCastExceptionInForeachLoop", "shortDescription": { - "text": "Replace with LastOrDefault($args$)" + "text": "Possible 'System.InvalidCastException' in foreach loop" }, "fullDescription": { - "text": "$seq$.Any($args$) ? $seq$.Last($args$) : default($T$)", - "markdown": "$seq$.Any($args$) ? $seq$.Last($args$) : default($T$)" + "text": "Possible cast expression of incompatible type Learn more...", + "markdown": "Possible cast expression of incompatible type [Learn more...](https://www.jetbrains.com/help/rider/PossibleInvalidCastExceptionInForeachLoop.html)" }, "defaultConfiguration": { "enabled": true, - "level": "note", + "level": "warning", "parameters": { - "suppressToolId": "ReplaceWithLastOrDefault.3", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "suppressToolId": "PossibleInvalidCastExceptionInForeachLoop", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 14, + "id": "C#/Potential Code Quality Issues", + "index": 1, "toolComponent": { "name": "QDNET" } @@ -12669,28 +12946,29 @@ ] }, { - "id": "PossibleInvalidCastExceptionInForeachLoop", + "id": "CppClangTidyClangDiagnosticMissingPrototypes", "shortDescription": { - "text": "Possible 'System.InvalidCastException' in foreach loop" + "text": "missing-prototypes clang diagnostic" }, "fullDescription": { - "text": "Possible cast expression of incompatible type Learn more...", - "markdown": "Possible cast expression of incompatible type [Learn more...](https://www.jetbrains.com/help/rider/PossibleInvalidCastExceptionInForeachLoop.html)" + "text": "-Wmissing-prototypes clang diagnostic · Learn more", + "markdown": "-Wmissing-prototypes clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmissing-prototypes)" }, "defaultConfiguration": { - "enabled": true, - "level": "warning", + "enabled": false, + "level": "note", "parameters": { - "suppressToolId": "PossibleInvalidCastExceptionInForeachLoop", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "suppressToolId": "CppClangTidyClangDiagnosticMissingPrototypes", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, + "id": "C_C++/Clang Diagnostics", + "index": 3, "toolComponent": { "name": "QDNET" } @@ -12716,14 +12994,15 @@ "parameters": { "suppressToolId": "ReplaceWithLastOrDefault.1", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -12749,7 +13028,8 @@ "parameters": { "suppressToolId": "PossiblyImpureMethodCallOnReadonlyVariable", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -12774,7 +13054,7 @@ }, "fullDescription": { "text": "android-cloexec-pipe2 clang-tidy check · Learn more", - "markdown": "android-cloexec-pipe2 clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-pipe2.html)" + "markdown": "android-cloexec-pipe2 clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-pipe2.html)" }, "defaultConfiguration": { "enabled": false, @@ -12782,13 +13062,14 @@ "parameters": { "suppressToolId": "CppClangTidyAndroidCloexecPipe2", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -12815,14 +13096,15 @@ "parameters": { "suppressToolId": "ReplaceWithLastOrDefault.4", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -12848,13 +13130,14 @@ "parameters": { "suppressToolId": "CppUE4CodingStandardUClassNamingViolationError", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Unreal Engine", + "id": "C_C++/Unreal Engine", "index": 6, "toolComponent": { "name": "QDNET" @@ -12873,7 +13156,7 @@ }, "fullDescription": { "text": "-Wmicrosoft-template clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-template clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-template)" + "markdown": "-Wmicrosoft-template clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-template)" }, "defaultConfiguration": { "enabled": true, @@ -12881,13 +13164,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftTemplate", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -12914,14 +13198,15 @@ "parameters": { "suppressToolId": "Unity.BurstTryNotSupported", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity Burst Compiler Warnings", - "index": 54, + "index": 57, "toolComponent": { "name": "QDNET" } @@ -12947,7 +13232,8 @@ "parameters": { "suppressToolId": "RedundantEnumCaseLabelForDefaultSection", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -12980,13 +13266,14 @@ "parameters": { "suppressToolId": "CppBadParensLineBreaks", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Formatting", + "id": "C_C++/Formatting", "index": 28, "toolComponent": { "name": "QDNET" @@ -13005,7 +13292,7 @@ }, "fullDescription": { "text": "performance-type-promotion-in-math-fn clang-tidy check · Learn more", - "markdown": "performance-type-promotion-in-math-fn clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/performance/type-promotion-in-math-fn.html)" + "markdown": "performance-type-promotion-in-math-fn clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance/type-promotion-in-math-fn.html)" }, "defaultConfiguration": { "enabled": true, @@ -13013,13 +13300,14 @@ "parameters": { "suppressToolId": "CppClangTidyPerformanceTypePromotionInMathFn", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -13038,7 +13326,7 @@ }, "fullDescription": { "text": "-Wunsequenced clang diagnostic · Learn more", - "markdown": "-Wunsequenced clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunsequenced)" + "markdown": "-Wunsequenced clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunsequenced)" }, "defaultConfiguration": { "enabled": true, @@ -13046,13 +13334,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnsequenced", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -13071,7 +13360,7 @@ }, "fullDescription": { "text": "-Wduplicate-decl-specifier clang diagnostic · Learn more", - "markdown": "-Wduplicate-decl-specifier clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wduplicate-decl-specifier)" + "markdown": "-Wduplicate-decl-specifier clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wduplicate-decl-specifier)" }, "defaultConfiguration": { "enabled": true, @@ -13079,13 +13368,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDuplicateDeclSpecifier", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -13112,13 +13402,14 @@ "parameters": { "suppressToolId": "CppBadSymbolSpaces", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Formatting", + "id": "C_C++/Formatting", "index": 28, "toolComponent": { "name": "QDNET" @@ -13137,7 +13428,7 @@ }, "fullDescription": { "text": "cppcoreguidelines-explicit-virtual-functions clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-explicit-virtual-functions clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/explicit-virtual-functions.html)" + "markdown": "cppcoreguidelines-explicit-virtual-functions clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/explicit-virtual-functions.html)" }, "defaultConfiguration": { "enabled": false, @@ -13145,13 +13436,14 @@ "parameters": { "suppressToolId": "CppClangTidyCppcoreguidelinesExplicitVirtualFunctions", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -13178,14 +13470,15 @@ "parameters": { "suppressToolId": "ReplaceWithOfType.Any.2", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -13211,14 +13504,15 @@ "parameters": { "suppressToolId": "VulnerableApi", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Security", - "index": 80, + "index": 87, "toolComponent": { "name": "QDNET" } @@ -13244,14 +13538,15 @@ "parameters": { "suppressToolId": "ReplaceWithOfType.Any.1", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -13277,7 +13572,8 @@ "parameters": { "suppressToolId": "PossibleInvalidOperationException", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -13295,6 +13591,40 @@ } ] }, + { + "id": "CppClangTidyClangDiagnosticCpp11NarrowingConstReference", + "shortDescription": { + "text": "c++11-narrowing-const-reference clang diagnostic" + }, + "fullDescription": { + "text": "-Wc++11-narrowing-const-reference clang diagnostic · Learn more", + "markdown": "-Wc++11-narrowing-const-reference clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-11-narrowing-const-reference)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticCpp11NarrowingConstReference", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppClangTidyClangDiagnosticIndependentClassAttribute", "shortDescription": { @@ -13302,7 +13632,7 @@ }, "fullDescription": { "text": "-WIndependentClass-attribute clang diagnostic · Learn more", - "markdown": "-WIndependentClass-attribute clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wIndependentClass-attribute)" + "markdown": "-WIndependentClass-attribute clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wIndependentClass-attribute)" }, "defaultConfiguration": { "enabled": true, @@ -13310,13 +13640,48 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticIndependentClassAttribute", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticDeprecatedOfast", + "shortDescription": { + "text": "deprecated-ofast clang diagnostic" + }, + "fullDescription": { + "text": "-Wdeprecated-ofast clang diagnostic · Learn more", + "markdown": "-Wdeprecated-ofast clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-ofast)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedOfast", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -13335,7 +13700,7 @@ }, "fullDescription": { "text": "-Wsigned-enum-bitfield clang diagnostic · Learn more", - "markdown": "-Wsigned-enum-bitfield clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wsigned-enum-bitfield)" + "markdown": "-Wsigned-enum-bitfield clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wsigned-enum-bitfield)" }, "defaultConfiguration": { "enabled": true, @@ -13343,13 +13708,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticSignedEnumBitfield", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -13376,7 +13742,8 @@ "parameters": { "suppressToolId": "ArrangeVarKeywordsInDeconstructingDeclaration", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -13409,13 +13776,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerApiModelingTrustReturnsNonnull", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -13442,14 +13810,15 @@ "parameters": { "suppressToolId": "Unity.InstantiateWithoutParent", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity", - "index": 19, + "index": 18, "toolComponent": { "name": "QDNET" } @@ -13467,7 +13836,7 @@ }, "fullDescription": { "text": "-Wshift-sign-overflow clang diagnostic · Learn more", - "markdown": "-Wshift-sign-overflow clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wshift-sign-overflow)" + "markdown": "-Wshift-sign-overflow clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wshift-sign-overflow)" }, "defaultConfiguration": { "enabled": true, @@ -13475,13 +13844,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticShiftSignOverflow", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -13500,7 +13870,7 @@ }, "fullDescription": { "text": "-Wshadow-field-in-constructor clang diagnostic · Learn more", - "markdown": "-Wshadow-field-in-constructor clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wshadow-field-in-constructor)" + "markdown": "-Wshadow-field-in-constructor clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wshadow-field-in-constructor)" }, "defaultConfiguration": { "enabled": false, @@ -13508,13 +13878,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticShadowFieldInConstructor", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -13541,7 +13912,8 @@ "parameters": { "suppressToolId": "UseObjectOrCollectionInitializer", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -13574,14 +13946,15 @@ "parameters": { "suppressToolId": "MemberCanBePrivate.Global", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -13607,14 +13980,49 @@ "parameters": { "suppressToolId": "CppDiscardedPostfixOperatorResult", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Common Practices and Code Improvements", - "index": 17, + "id": "C_C++/Common Practices and Code Improvements", + "index": 16, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyCertInt09C", + "shortDescription": { + "text": "cert-int09-c clang-tidy check" + }, + "fullDescription": { + "text": "cert-int09-c clang-tidy check · Learn more", + "markdown": "cert-int09-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/int09-c.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyCertInt09C", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang-Tidy Checks", + "index": 8, "toolComponent": { "name": "QDNET" } @@ -13640,7 +14048,8 @@ "parameters": { "suppressToolId": "UseCollectionCountProperty", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -13665,7 +14074,7 @@ }, "fullDescription": { "text": "-Wpragma-pack clang diagnostic · Learn more", - "markdown": "-Wpragma-pack clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpragma-pack)" + "markdown": "-Wpragma-pack clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpragma-pack)" }, "defaultConfiguration": { "enabled": true, @@ -13673,13 +14082,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticPragmaPack", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -13698,7 +14108,7 @@ }, "fullDescription": { "text": "google-readability-todo clang-tidy check · Learn more", - "markdown": "google-readability-todo clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/google/readability-todo.html)" + "markdown": "google-readability-todo clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/readability-todo.html)" }, "defaultConfiguration": { "enabled": false, @@ -13706,13 +14116,14 @@ "parameters": { "suppressToolId": "CppClangTidyGoogleReadabilityTodo", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -13731,7 +14142,7 @@ }, "fullDescription": { "text": "-Wdeprecated-type clang diagnostic · Learn more", - "markdown": "-Wdeprecated-type clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdeprecated-type)" + "markdown": "-Wdeprecated-type clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-type)" }, "defaultConfiguration": { "enabled": true, @@ -13739,13 +14150,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedType", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -13772,13 +14184,14 @@ "parameters": { "suppressToolId": "CppEmptyDeclaration", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -13790,6 +14203,40 @@ } ] }, + { + "id": "CppClangTidyClangDiagnosticStrictPrimaryTemplateShadow", + "shortDescription": { + "text": "strict-primary-template-shadow clang diagnostic" + }, + "fullDescription": { + "text": "-Wstrict-primary-template-shadow clang diagnostic · Learn more", + "markdown": "-Wstrict-primary-template-shadow clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wstrict-primary-template-shadow)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticStrictPrimaryTemplateShadow", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppIncompatiblePointerConversion", "shortDescription": { @@ -13805,13 +14252,14 @@ "parameters": { "suppressToolId": "CppIncompatiblePointerConversion", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -13838,13 +14286,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerCoreUninitializedCapturedBlockVariable", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -13863,7 +14312,7 @@ }, "fullDescription": { "text": "misc-include-cleaner clang-tidy check · Learn more", - "markdown": "misc-include-cleaner clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/misc/include-cleaner.html)" + "markdown": "misc-include-cleaner clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/include-cleaner.html)" }, "defaultConfiguration": { "enabled": false, @@ -13871,13 +14320,48 @@ "parameters": { "suppressToolId": "CppClangTidyMiscIncludeCleaner", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyReadabilityAvoidNestedConditionalOperator", + "shortDescription": { + "text": "readability-avoid-nested-conditional-operator clang-tidy check" + }, + "fullDescription": { + "text": "readability-avoid-nested-conditional-operator clang-tidy check · Learn more", + "markdown": "readability-avoid-nested-conditional-operator clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/avoid-nested-conditional-operator.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyReadabilityAvoidNestedConditionalOperator", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -13896,7 +14380,7 @@ }, "fullDescription": { "text": "-Wstring-conversion clang diagnostic · Learn more", - "markdown": "-Wstring-conversion clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wstring-conversion)" + "markdown": "-Wstring-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wstring-conversion)" }, "defaultConfiguration": { "enabled": true, @@ -13904,13 +14388,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticStringConversion", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -13922,6 +14407,40 @@ } ] }, + { + "id": "CppClangTidyClangAnalyzerUnixStream", + "shortDescription": { + "text": "unix.Stream clang static analyzer check" + }, + "fullDescription": { + "text": "unix.Stream clang static analyzer check · Learn more", + "markdown": "unix.Stream clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangAnalyzerUnixStream", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Static Analyzer Checks", + "index": 32, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "NotNullOrRequiredMemberIsNotInitialized", "shortDescription": { @@ -13937,14 +14456,15 @@ "parameters": { "suppressToolId": "NotNullOrRequiredMemberIsNotInitialized", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Constraints Violations", - "index": 73, + "index": 80, "toolComponent": { "name": "QDNET" } @@ -13961,8 +14481,8 @@ "text": "Use unsigned right shift operator '>>>'" }, "fullDescription": { - "text": "Use unsigned right shift operator '>>>' instead of manual casting and shifting", - "markdown": "Use unsigned right shift operator '\\>\\>\\>' instead of manual casting and shifting" + "text": "Use unsigned right shift operator '>>>' instead of manual casting and shifting Learn more...", + "markdown": "Use unsigned right shift operator '\\>\\>\\>' instead of manual casting and shifting [Learn more...](https://www.jetbrains.com/help/rider/UseUnsignedRightShiftOperator.html)" }, "defaultConfiguration": { "enabled": true, @@ -13970,7 +14490,8 @@ "parameters": { "suppressToolId": "UseUnsignedRightShiftOperator", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -13995,7 +14516,7 @@ }, "fullDescription": { "text": "-Wdeprecated-declarations clang diagnostic · Learn more", - "markdown": "-Wdeprecated-declarations clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdeprecated-declarations)" + "markdown": "-Wdeprecated-declarations clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-declarations)" }, "defaultConfiguration": { "enabled": true, @@ -14003,13 +14524,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedDeclarations", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -14028,7 +14550,7 @@ }, "fullDescription": { "text": "-Wunreachable-code-loop-increment clang diagnostic · Learn more", - "markdown": "-Wunreachable-code-loop-increment clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunreachable-code-loop-increment)" + "markdown": "-Wunreachable-code-loop-increment clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunreachable-code-loop-increment)" }, "defaultConfiguration": { "enabled": true, @@ -14036,13 +14558,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnreachableCodeLoopIncrement", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -14069,7 +14592,8 @@ "parameters": { "suppressToolId": "VBReplaceWithOfType.Last.1", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -14102,7 +14626,8 @@ "parameters": { "suppressToolId": "OneWayOperationContractWithReturnType", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -14135,7 +14660,8 @@ "parameters": { "suppressToolId": "VBReplaceWithOfType.Last.2", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -14168,14 +14694,15 @@ "parameters": { "suppressToolId": "AnnotateCanBeNullTypeMember", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -14201,14 +14728,15 @@ "parameters": { "suppressToolId": "UseThrowIfNullMethod", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -14234,7 +14762,8 @@ "parameters": { "suppressToolId": "ConvertToAutoPropertyWhenPossible", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -14258,8 +14787,8 @@ "text": "Use format specifier in interpolated strings" }, "fullDescription": { - "text": "'.ToString()' call could be replaced with a format specifier", - "markdown": "'.ToString()' call could be replaced with a format specifier" + "text": "'.ToString()' call could be replaced with a format specifier Learn more...", + "markdown": "'.ToString()' call could be replaced with a format specifier [Learn more...](https://www.jetbrains.com/help/rider/SimplifyStringInterpolation.html)" }, "defaultConfiguration": { "enabled": true, @@ -14267,7 +14796,8 @@ "parameters": { "suppressToolId": "SimplifyStringInterpolation", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -14300,7 +14830,8 @@ "parameters": { "suppressToolId": "MoveVariableDeclarationInsideLoopCondition", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -14325,7 +14856,7 @@ }, "fullDescription": { "text": "-Wgnu-include-next clang diagnostic · Learn more", - "markdown": "-Wgnu-include-next clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wgnu-include-next)" + "markdown": "-Wgnu-include-next clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-include-next)" }, "defaultConfiguration": { "enabled": true, @@ -14333,13 +14864,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticGnuIncludeNext", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -14366,7 +14898,8 @@ "parameters": { "suppressToolId": "ReferenceEqualsWithValueType", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -14399,14 +14932,15 @@ "parameters": { "suppressToolId": "SimplifyConditionalTernaryExpression", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -14424,7 +14958,7 @@ }, "fullDescription": { "text": "-Wembedded-directive clang diagnostic · Learn more", - "markdown": "-Wembedded-directive clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wembedded-directive)" + "markdown": "-Wembedded-directive clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wembedded-directive)" }, "defaultConfiguration": { "enabled": true, @@ -14432,13 +14966,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticEmbeddedDirective", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -14465,13 +15000,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerOptinOsxOSObjectCStyleCast", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -14498,7 +15034,8 @@ "parameters": { "suppressToolId": "BadAttributeBracketsSpaces", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -14531,14 +15068,15 @@ "parameters": { "suppressToolId": "Mvc.AreaNotResolved", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "Aspx/Potential Code Quality Issues", - "index": 60, + "index": 64, "toolComponent": { "name": "QDNET" } @@ -14556,7 +15094,7 @@ }, "fullDescription": { "text": "performance-implicit-conversion-in-loop clang-tidy check · Learn more", - "markdown": "performance-implicit-conversion-in-loop clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/performance/implicit-conversion-in-loop.html)" + "markdown": "performance-implicit-conversion-in-loop clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance/implicit-conversion-in-loop.html)" }, "defaultConfiguration": { "enabled": true, @@ -14564,13 +15102,14 @@ "parameters": { "suppressToolId": "CppClangTidyPerformanceImplicitConversionInLoop", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -14597,14 +15136,15 @@ "parameters": { "suppressToolId": "Asp.ResolveWarning", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "Aspx/Potential Code Quality Issues", - "index": 60, + "index": 64, "toolComponent": { "name": "QDNET" } @@ -14616,28 +15156,29 @@ ] }, { - "id": "CppClangTidyClangDiagnosticMalformedWarningCheck", + "id": "CppClangTidyReadabilitySimplifyBooleanExpr", "shortDescription": { - "text": "malformed-warning-check clang diagnostic" + "text": "readability-simplify-boolean-expr clang-tidy check" }, "fullDescription": { - "text": "-Wmalformed-warning-check clang diagnostic · Learn more", - "markdown": "-Wmalformed-warning-check clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmalformed-warning-check)" + "text": "readability-simplify-boolean-expr clang-tidy check · Learn more", + "markdown": "readability-simplify-boolean-expr clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/simplify-boolean-expr.html)" }, "defaultConfiguration": { - "enabled": true, - "level": "warning", + "enabled": false, + "level": "note", "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMalformedWarningCheck", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "suppressToolId": "CppClangTidyReadabilitySimplifyBooleanExpr", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", - "index": 3, + "id": "C_C++/Clang-Tidy Checks", + "index": 8, "toolComponent": { "name": "QDNET" } @@ -14649,28 +15190,29 @@ ] }, { - "id": "CppClangTidyReadabilitySimplifyBooleanExpr", + "id": "CppClangTidyClangDiagnosticMalformedWarningCheck", "shortDescription": { - "text": "readability-simplify-boolean-expr clang-tidy check" + "text": "malformed-warning-check clang diagnostic" }, "fullDescription": { - "text": "readability-simplify-boolean-expr clang-tidy check · Learn more", - "markdown": "readability-simplify-boolean-expr clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/simplify-boolean-expr.html)" + "text": "-Wmalformed-warning-check clang diagnostic · Learn more", + "markdown": "-Wmalformed-warning-check clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmalformed-warning-check)" }, "defaultConfiguration": { - "enabled": false, - "level": "note", + "enabled": true, + "level": "warning", "parameters": { - "suppressToolId": "CppClangTidyReadabilitySimplifyBooleanExpr", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "suppressToolId": "CppClangTidyClangDiagnosticMalformedWarningCheck", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", - "index": 8, + "id": "C_C++/Clang Diagnostics", + "index": 3, "toolComponent": { "name": "QDNET" } @@ -14688,7 +15230,7 @@ }, "fullDescription": { "text": "-Wdeprecated-altivec-src-compat clang diagnostic · Learn more", - "markdown": "-Wdeprecated-altivec-src-compat clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdeprecated-altivec-src-compat)" + "markdown": "-Wdeprecated-altivec-src-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-altivec-src-compat)" }, "defaultConfiguration": { "enabled": true, @@ -14696,13 +15238,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedAltivecSrcCompat", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -14721,7 +15264,7 @@ }, "fullDescription": { "text": "-Wextra-semi-stmt clang diagnostic · Learn more", - "markdown": "-Wextra-semi-stmt clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wextra-semi-stmt)" + "markdown": "-Wextra-semi-stmt clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wextra-semi-stmt)" }, "defaultConfiguration": { "enabled": true, @@ -14729,13 +15272,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticExtraSemiStmt", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -14762,14 +15306,15 @@ "parameters": { "suppressToolId": "InternalOrPrivateMemberNotDocumented", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -14787,7 +15332,7 @@ }, "fullDescription": { "text": "-Wunused-const-variable clang diagnostic · Learn more", - "markdown": "-Wunused-const-variable clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunused-const-variable)" + "markdown": "-Wunused-const-variable clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunused-const-variable)" }, "defaultConfiguration": { "enabled": true, @@ -14795,13 +15340,82 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnusedConstVariable", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CanSimplifyIsAssignableFrom", + "shortDescription": { + "text": "Simplify 'IsInstanceOfType()' invocation" + }, + "fullDescription": { + "text": "IsInstanceOfType() invocation can be simplified with 'is' operator Learn more...", + "markdown": "IsInstanceOfType() invocation can be simplified with 'is' operator [Learn more...](https://www.jetbrains.com/help/rider/CanSimplifyIsAssignableFrom.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "CanSimplifyIsAssignableFrom", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 12, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticPreC11Compat", + "shortDescription": { + "text": "pre-c11-compat clang diagnostic" + }, + "fullDescription": { + "text": "-Wpre-c11-compat clang diagnostic · Learn more", + "markdown": "-Wpre-c11-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpre-c11-compat)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticPreC11Compat", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -14828,7 +15442,8 @@ "parameters": { "suppressToolId": "IsExpressionAlwaysFalse", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -14853,7 +15468,7 @@ }, "fullDescription": { "text": "-Wdll-attribute-on-redeclaration clang diagnostic · Learn more", - "markdown": "-Wdll-attribute-on-redeclaration clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdll-attribute-on-redeclaration)" + "markdown": "-Wdll-attribute-on-redeclaration clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdll-attribute-on-redeclaration)" }, "defaultConfiguration": { "enabled": true, @@ -14861,13 +15476,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDllAttributeOnRedeclaration", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -14894,13 +15510,14 @@ "parameters": { "suppressToolId": "CppUENonExistentInputAction", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Unreal Engine", + "id": "C_C++/Unreal Engine", "index": 6, "toolComponent": { "name": "QDNET" @@ -14919,7 +15536,7 @@ }, "fullDescription": { "text": "-Warc-performSelector-leaks clang diagnostic · Learn more", - "markdown": "-Warc-performSelector-leaks clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#warc-performSelector-leaks)" + "markdown": "-Warc-performSelector-leaks clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#warc-performSelector-leaks)" }, "defaultConfiguration": { "enabled": true, @@ -14927,13 +15544,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticArcPerformSelectorLeaks", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -14952,7 +15570,7 @@ }, "fullDescription": { "text": "modernize-avoid-c-arrays clang-tidy check · Learn more", - "markdown": "modernize-avoid-c-arrays clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/avoid-c-arrays.html)" + "markdown": "modernize-avoid-c-arrays clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/avoid-c-arrays.html)" }, "defaultConfiguration": { "enabled": false, @@ -14960,13 +15578,14 @@ "parameters": { "suppressToolId": "CppClangTidyModernizeAvoidCArrays", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -14993,13 +15612,14 @@ "parameters": { "suppressToolId": "CppBadControlBracesIndent", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Formatting", + "id": "C_C++/Formatting", "index": 28, "toolComponent": { "name": "QDNET" @@ -15018,7 +15638,7 @@ }, "fullDescription": { "text": "-Wanon-enum-enum-conversion clang diagnostic · Learn more", - "markdown": "-Wanon-enum-enum-conversion clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wanon-enum-enum-conversion)" + "markdown": "-Wanon-enum-enum-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wanon-enum-enum-conversion)" }, "defaultConfiguration": { "enabled": true, @@ -15026,13 +15646,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticAnonEnumEnumConversion", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -15059,14 +15680,15 @@ "parameters": { "suppressToolId": "CppCoroutineCallResolveError", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Compiler Warnings", - "index": 69, + "id": "C_C++/Compiler Warnings", + "index": 75, "toolComponent": { "name": "QDNET" } @@ -15092,14 +15714,15 @@ "parameters": { "suppressToolId": "CppRemoveRedundantBraces", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Syntax Style", - "index": 83, + "id": "C_C++/Syntax Style", + "index": 91, "toolComponent": { "name": "QDNET" } @@ -15125,13 +15748,14 @@ "parameters": { "suppressToolId": "CppDefaultIsUsedAsIdentifier", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -15150,7 +15774,7 @@ }, "fullDescription": { "text": "-Wincomplete-umbrella clang diagnostic · Learn more", - "markdown": "-Wincomplete-umbrella clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wincomplete-umbrella)" + "markdown": "-Wincomplete-umbrella clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wincomplete-umbrella)" }, "defaultConfiguration": { "enabled": true, @@ -15158,13 +15782,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticIncompleteUmbrella", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -15191,7 +15816,8 @@ "parameters": { "suppressToolId": "ArgumentsStyleOther", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -15224,7 +15850,8 @@ "parameters": { "suppressToolId": "RedundantDefaultMemberInitializer", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -15257,14 +15884,15 @@ "parameters": { "suppressToolId": "Xaml.RedundantXamarinFormsClassDeclaration", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "XAML/Potential Code Quality Issues", - "index": 44, + "index": 45, "toolComponent": { "name": "QDNET" } @@ -15290,7 +15918,8 @@ "parameters": { "suppressToolId": "UnusedLabel", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -15315,7 +15944,7 @@ }, "fullDescription": { "text": "-Wdeprecated-copy clang diagnostic · Learn more", - "markdown": "-Wdeprecated-copy clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdeprecated-copy)" + "markdown": "-Wdeprecated-copy clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-copy)" }, "defaultConfiguration": { "enabled": true, @@ -15323,13 +15952,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedCopy", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -15344,7 +15974,7 @@ { "id": "CppUESourceFileWithoutStandardLibrary", "shortDescription": { - "text": "C++ standard library headers not found" + "text": "C/C++ standard library headers not found" }, "fullDescription": { "text": "C++ standard library headers cannot be resolved in an Unreal Engine source file. You might need to regenerate the project files.", @@ -15356,13 +15986,14 @@ "parameters": { "suppressToolId": "CppUESourceFileWithoutStandardLibrary", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Unreal Engine", + "id": "C_C++/Unreal Engine", "index": 6, "toolComponent": { "name": "QDNET" @@ -15374,6 +16005,40 @@ } ] }, + { + "id": "CppClangTidyClangDiagnosticHigherPrecisionFp", + "shortDescription": { + "text": "higher-precision-fp clang diagnostic" + }, + "fullDescription": { + "text": "-Whigher-precision-fp clang diagnostic · Learn more", + "markdown": "-Whigher-precision-fp clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#whigher-precision-fp)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticHigherPrecisionFp", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppClangTidyClangDiagnosticDelegatingCtorCycles", "shortDescription": { @@ -15381,7 +16046,7 @@ }, "fullDescription": { "text": "-Wdelegating-ctor-cycles clang diagnostic · Learn more", - "markdown": "-Wdelegating-ctor-cycles clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdelegating-ctor-cycles)" + "markdown": "-Wdelegating-ctor-cycles clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdelegating-ctor-cycles)" }, "defaultConfiguration": { "enabled": true, @@ -15389,13 +16054,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDelegatingCtorCycles", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -15422,14 +16088,15 @@ "parameters": { "suppressToolId": "Razor.AssemblyNotResolved", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "Razor/Potential Code Quality Issues", - "index": 85, + "index": 93, "toolComponent": { "name": "QDNET" } @@ -15447,7 +16114,7 @@ }, "fullDescription": { "text": "modernize-make-shared clang-tidy check · Learn more", - "markdown": "modernize-make-shared clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/make-shared.html)" + "markdown": "modernize-make-shared clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/make-shared.html)" }, "defaultConfiguration": { "enabled": false, @@ -15455,13 +16122,14 @@ "parameters": { "suppressToolId": "CppClangTidyModernizeMakeShared", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -15480,7 +16148,7 @@ }, "fullDescription": { "text": "-Wcompound-token-split-by-space clang diagnostic · Learn more", - "markdown": "-Wcompound-token-split-by-space clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wcompound-token-split-by-space)" + "markdown": "-Wcompound-token-split-by-space clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcompound-token-split-by-space)" }, "defaultConfiguration": { "enabled": true, @@ -15488,13 +16156,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCompoundTokenSplitBySpace", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -15513,7 +16182,7 @@ }, "fullDescription": { "text": "-Wabstract-final-class clang diagnostic · Learn more", - "markdown": "-Wabstract-final-class clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wabstract-final-class)" + "markdown": "-Wabstract-final-class clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wabstract-final-class)" }, "defaultConfiguration": { "enabled": false, @@ -15521,13 +16190,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticAbstractFinalClass", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -15554,14 +16224,15 @@ "parameters": { "suppressToolId": "NestedStringInterpolation", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -15587,7 +16258,8 @@ "parameters": { "suppressToolId": "ReadAccessInDoubleCheckLocking", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -15612,7 +16284,7 @@ }, "fullDescription": { "text": "cert-msc50-cpp clang-tidy check · Learn more", - "markdown": "cert-msc50-cpp clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cert/msc50-cpp.html)" + "markdown": "cert-msc50-cpp clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/msc50-cpp.html)" }, "defaultConfiguration": { "enabled": false, @@ -15620,13 +16292,14 @@ "parameters": { "suppressToolId": "CppClangTidyCertMsc50Cpp", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -15645,7 +16318,7 @@ }, "fullDescription": { "text": "-Wliteral-range clang diagnostic · Learn more", - "markdown": "-Wliteral-range clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wliteral-range)" + "markdown": "-Wliteral-range clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wliteral-range)" }, "defaultConfiguration": { "enabled": true, @@ -15653,13 +16326,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticLiteralRange", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -15686,14 +16360,15 @@ "parameters": { "suppressToolId": "TooWideLocalVariableScope", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -15719,13 +16394,14 @@ "parameters": { "suppressToolId": "CppUnmatchedPragmaEndRegionDirective", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -15752,14 +16428,15 @@ "parameters": { "suppressToolId": "AspOdsMethodReferenceResolveError", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "Aspx/Potential Code Quality Issues", - "index": 60, + "index": 64, "toolComponent": { "name": "QDNET" } @@ -15785,7 +16462,8 @@ "parameters": { "suppressToolId": "NUnit.RangeToValueIsNotReachable", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -15810,7 +16488,7 @@ }, "fullDescription": { "text": "-Wqualified-void-return-type clang diagnostic · Learn more", - "markdown": "-Wqualified-void-return-type clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wqualified-void-return-type)" + "markdown": "-Wqualified-void-return-type clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wqualified-void-return-type)" }, "defaultConfiguration": { "enabled": true, @@ -15818,13 +16496,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticQualifiedVoidReturnType", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -15851,7 +16530,8 @@ "parameters": { "suppressToolId": "CA3001", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -15884,7 +16564,8 @@ "parameters": { "suppressToolId": "CA3002", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -15909,7 +16590,7 @@ }, "fullDescription": { "text": "-Wstatic-float-init clang diagnostic · Learn more", - "markdown": "-Wstatic-float-init clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wstatic-float-init)" + "markdown": "-Wstatic-float-init clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wstatic-float-init)" }, "defaultConfiguration": { "enabled": true, @@ -15917,13 +16598,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticStaticFloatInit", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -15950,7 +16632,8 @@ "parameters": { "suppressToolId": "CA3003", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -15983,14 +16666,15 @@ "parameters": { "suppressToolId": "Web.MappedPath", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "Web.Config/Code Notification", - "index": 86, + "index": 94, "toolComponent": { "name": "QDNET" } @@ -16016,7 +16700,8 @@ "parameters": { "suppressToolId": "CA3004", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -16049,7 +16734,8 @@ "parameters": { "suppressToolId": "CA3005", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -16082,7 +16768,8 @@ "parameters": { "suppressToolId": "CA3006", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -16115,7 +16802,8 @@ "parameters": { "suppressToolId": "CA3007", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -16140,7 +16828,7 @@ }, "fullDescription": { "text": "cert-err33-c clang-tidy check · Learn more", - "markdown": "cert-err33-c clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cert/err33-c.html)" + "markdown": "cert-err33-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/err33-c.html)" }, "defaultConfiguration": { "enabled": true, @@ -16148,13 +16836,14 @@ "parameters": { "suppressToolId": "CppClangTidyCertErr33C", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -16181,7 +16870,8 @@ "parameters": { "suppressToolId": "CA3008", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -16206,7 +16896,7 @@ }, "fullDescription": { "text": "bugprone-narrowing-conversions clang-tidy check · Learn more", - "markdown": "bugprone-narrowing-conversions clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/narrowing-conversions.html)" + "markdown": "bugprone-narrowing-conversions clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/narrowing-conversions.html)" }, "defaultConfiguration": { "enabled": true, @@ -16214,13 +16904,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneNarrowingConversions", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -16247,7 +16938,8 @@ "parameters": { "suppressToolId": "CA3009", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -16280,7 +16972,8 @@ "parameters": { "suppressToolId": "BadBracesSpaces", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -16305,7 +16998,7 @@ }, "fullDescription": { "text": "cert-err60-cpp clang-tidy check · Learn more", - "markdown": "cert-err60-cpp clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cert/err60-cpp.html)" + "markdown": "cert-err60-cpp clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/err60-cpp.html)" }, "defaultConfiguration": { "enabled": true, @@ -16313,13 +17006,14 @@ "parameters": { "suppressToolId": "CppClangTidyCertErr60Cpp", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -16331,6 +17025,40 @@ } ] }, + { + "id": "CanReplaceCastWithTypeArgument", + "shortDescription": { + "text": "Cast expression can be replaced with explicit type arguments" + }, + "fullDescription": { + "text": "Replace cast expression with explicit type arguments to enhance compile-time safety Learn more...", + "markdown": "Replace cast expression with explicit type arguments to enhance compile-time safety [Learn more...](https://www.jetbrains.com/help/rider/CanReplaceCastWithTypeArgument.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "CanReplaceCastWithTypeArgument", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 12, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "ReplaceSliceWithRangeIndexer", "shortDescription": { @@ -16346,7 +17074,8 @@ "parameters": { "suppressToolId": "ReplaceSliceWithRangeIndexer", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -16379,7 +17108,8 @@ "parameters": { "suppressToolId": "CA3010", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -16412,7 +17142,8 @@ "parameters": { "suppressToolId": "CA3011", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -16445,7 +17176,8 @@ "parameters": { "suppressToolId": "CA3012", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -16478,7 +17210,8 @@ "parameters": { "suppressToolId": "RedundantPropertyPatternClause", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -16511,13 +17244,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerUnixCstringBadSizeArg", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -16536,7 +17270,7 @@ }, "fullDescription": { "text": "-Wmicrosoft-mutable-reference clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-mutable-reference clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-mutable-reference)" + "markdown": "-Wmicrosoft-mutable-reference clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-mutable-reference)" }, "defaultConfiguration": { "enabled": false, @@ -16544,13 +17278,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftMutableReference", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -16569,7 +17304,7 @@ }, "fullDescription": { "text": "-Wrewrite-not-bool clang diagnostic · Learn more", - "markdown": "-Wrewrite-not-bool clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wrewrite-not-bool)" + "markdown": "-Wrewrite-not-bool clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wrewrite-not-bool)" }, "defaultConfiguration": { "enabled": true, @@ -16577,13 +17312,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticRewriteNotBool", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -16601,8 +17337,8 @@ "text": "Parameter can be made const" }, "fullDescription": { - "text": "Parameter can be made const", - "markdown": "Parameter can be made const" + "text": "Parameter can be made const Learn more...", + "markdown": "Parameter can be made const [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rconst-immutable)" }, "defaultConfiguration": { "enabled": true, @@ -16610,14 +17346,15 @@ "parameters": { "suppressToolId": "CppParameterMayBeConst", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Common Practices and Code Improvements", - "index": 17, + "id": "C_C++/Common Practices and Code Improvements", + "index": 16, "toolComponent": { "name": "QDNET" } @@ -16643,7 +17380,8 @@ "parameters": { "suppressToolId": "BadParensLineBreaks", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -16661,6 +17399,40 @@ } ] }, + { + "id": "CppClangTidyClangDiagnosticPaddedBitfield", + "shortDescription": { + "text": "padded-bitfield clang diagnostic" + }, + "fullDescription": { + "text": "-Wpadded-bitfield clang diagnostic · Learn more", + "markdown": "-Wpadded-bitfield clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpadded-bitfield)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticPaddedBitfield", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppClangTidyReadabilityFunctionCognitiveComplexity", "shortDescription": { @@ -16668,7 +17440,7 @@ }, "fullDescription": { "text": "readability-function-cognitive-complexity clang-tidy check · Learn more", - "markdown": "readability-function-cognitive-complexity clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/function-cognitive-complexity.html)" + "markdown": "readability-function-cognitive-complexity clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/function-cognitive-complexity.html)" }, "defaultConfiguration": { "enabled": false, @@ -16676,13 +17448,14 @@ "parameters": { "suppressToolId": "CppClangTidyReadabilityFunctionCognitiveComplexity", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -16709,13 +17482,14 @@ "parameters": { "suppressToolId": "CppIncompleteSwitchStatement", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -16734,7 +17508,7 @@ }, "fullDescription": { "text": "portability-restrict-system-includes clang-tidy check · Learn more", - "markdown": "portability-restrict-system-includes clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/portability/restrict-system-includes.html)" + "markdown": "portability-restrict-system-includes clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/portability/restrict-system-includes.html)" }, "defaultConfiguration": { "enabled": false, @@ -16742,13 +17516,14 @@ "parameters": { "suppressToolId": "CppClangTidyPortabilityRestrictSystemIncludes", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -16775,7 +17550,8 @@ "parameters": { "suppressToolId": "AssignmentInConditionalExpression", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -16808,14 +17584,15 @@ "parameters": { "suppressToolId": "WebConfig.TypeNotResolved", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "Web.Config/Potential Code Quality Issues", - "index": 75, + "index": 82, "toolComponent": { "name": "QDNET" } @@ -16841,13 +17618,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerNullabilityNullableReturnedFromNonnull", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -16874,7 +17652,8 @@ "parameters": { "suppressToolId": "CA1200", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -16899,7 +17678,7 @@ }, "fullDescription": { "text": "-Wkeyword-compat clang diagnostic · Learn more", - "markdown": "-Wkeyword-compat clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wkeyword-compat)" + "markdown": "-Wkeyword-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wkeyword-compat)" }, "defaultConfiguration": { "enabled": false, @@ -16907,13 +17686,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticKeywordCompat", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -16932,7 +17712,7 @@ }, "fullDescription": { "text": "-Winteger-overflow clang diagnostic · Learn more", - "markdown": "-Winteger-overflow clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#winteger-overflow)" + "markdown": "-Winteger-overflow clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winteger-overflow)" }, "defaultConfiguration": { "enabled": true, @@ -16940,13 +17720,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticIntegerOverflow", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -16965,7 +17746,7 @@ }, "fullDescription": { "text": "-Wdocumentation-deprecated-sync clang diagnostic · Learn more", - "markdown": "-Wdocumentation-deprecated-sync clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdocumentation-deprecated-sync)" + "markdown": "-Wdocumentation-deprecated-sync clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdocumentation-deprecated-sync)" }, "defaultConfiguration": { "enabled": false, @@ -16973,13 +17754,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDocumentationDeprecatedSync", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -16998,7 +17780,7 @@ }, "fullDescription": { "text": "-Wexpansion-to-defined clang diagnostic · Learn more", - "markdown": "-Wexpansion-to-defined clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wexpansion-to-defined)" + "markdown": "-Wexpansion-to-defined clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wexpansion-to-defined)" }, "defaultConfiguration": { "enabled": true, @@ -17006,13 +17788,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticExpansionToDefined", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -17031,7 +17814,7 @@ }, "fullDescription": { "text": "-Wdllimport-static-field-def clang diagnostic · Learn more", - "markdown": "-Wdllimport-static-field-def clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdllimport-static-field-def)" + "markdown": "-Wdllimport-static-field-def clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdllimport-static-field-def)" }, "defaultConfiguration": { "enabled": true, @@ -17039,13 +17822,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDllimportStaticFieldDef", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -17072,14 +17856,15 @@ "parameters": { "suppressToolId": "Unity.ExpectedComponent", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity", - "index": 19, + "index": 18, "toolComponent": { "name": "QDNET" } @@ -17105,14 +17890,15 @@ "parameters": { "suppressToolId": "FSharpRedundantNew", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "F#/Redundancies in Code", - "index": 67, + "index": 73, "toolComponent": { "name": "QDNET" } @@ -17138,7 +17924,8 @@ "parameters": { "suppressToolId": "SwapViaDeconstruction", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -17171,14 +17958,15 @@ "parameters": { "suppressToolId": "RemoveConstructorInvocation", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -17204,7 +17992,8 @@ "parameters": { "suppressToolId": "Xaml.CompiledBindingMissingDataTypeErrorHighlighting", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -17228,8 +18017,8 @@ "text": "Inline 'out' variable declaration" }, "fullDescription": { - "text": "Replace ordinary variable declaration with inline variable declaration under 'out' argument", - "markdown": "Replace ordinary variable declaration with inline variable declaration under 'out' argument" + "text": "Replace ordinary variable declaration with inline variable declaration under 'out' argument Learn more...", + "markdown": "Replace ordinary variable declaration with inline variable declaration under 'out' argument [Learn more...](https://www.jetbrains.com/help/rider/InlineOutVariableDeclaration.html)" }, "defaultConfiguration": { "enabled": true, @@ -17237,7 +18026,8 @@ "parameters": { "suppressToolId": "InlineOutVariableDeclaration", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -17262,7 +18052,7 @@ }, "fullDescription": { "text": "cert-err34-c clang-tidy check · Learn more", - "markdown": "cert-err34-c clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cert/err34-c.html)" + "markdown": "cert-err34-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/err34-c.html)" }, "defaultConfiguration": { "enabled": true, @@ -17270,13 +18060,14 @@ "parameters": { "suppressToolId": "CppClangTidyCertErr34C", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -17303,7 +18094,8 @@ "parameters": { "suppressToolId": "VBReplaceWithSingleCallToFirstOrDefault", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -17336,7 +18128,8 @@ "parameters": { "suppressToolId": "VirtualMemberCallInConstructor", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -17361,7 +18154,7 @@ }, "fullDescription": { "text": "-Wc++98-c++11-compat clang diagnostic · Learn more", - "markdown": "-Wc++98-c++11-compat clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-98-c-11-compat)" + "markdown": "-Wc++98-c++11-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-98-c-11-compat)" }, "defaultConfiguration": { "enabled": false, @@ -17369,13 +18162,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCpp98Cpp11Compat", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -17394,7 +18188,7 @@ }, "fullDescription": { "text": "-Wunreachable-code-break clang diagnostic · Learn more", - "markdown": "-Wunreachable-code-break clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunreachable-code-break)" + "markdown": "-Wunreachable-code-break clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunreachable-code-break)" }, "defaultConfiguration": { "enabled": true, @@ -17402,13 +18196,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnreachableCodeBreak", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -17435,14 +18230,15 @@ "parameters": { "suppressToolId": "FSharpDotLambdaCanBeUsed", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "F#/Redundancies in Code", - "index": 67, + "index": 73, "toolComponent": { "name": "QDNET" } @@ -17468,7 +18264,8 @@ "parameters": { "suppressToolId": "AddressOfMarshalByRefObject", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -17501,14 +18298,15 @@ "parameters": { "suppressToolId": "AnnotationRedundancyAtValueType", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -17534,14 +18332,15 @@ "parameters": { "suppressToolId": "ClearAttributeIsObsolete", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "HTML/Common Practices and Code Improvements", - "index": 68, + "index": 74, "toolComponent": { "name": "QDNET" } @@ -17567,7 +18366,8 @@ "parameters": { "suppressToolId": "RedundantExplicitPositionalPropertyDeclaration", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -17600,7 +18400,8 @@ "parameters": { "suppressToolId": "OperationContractWithoutServiceContract", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -17633,7 +18434,8 @@ "parameters": { "suppressToolId": "BadSquareBracketsSpaces", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -17657,8 +18459,8 @@ "text": "Method return value is never used (non-private accessibility)" }, "fullDescription": { - "text": "Method return value is never used", - "markdown": "Method return value is never used" + "text": "Method return value is never used Learn more...", + "markdown": "Method return value is never used [Learn more...](https://www.jetbrains.com/help/rider/UnusedMethodReturnValue.Global.html)" }, "defaultConfiguration": { "enabled": true, @@ -17666,7 +18468,8 @@ "parameters": { "suppressToolId": "UnusedMethodReturnValue.Global", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -17699,7 +18502,8 @@ "parameters": { "suppressToolId": "MSTEST0030", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -17732,7 +18536,8 @@ "parameters": { "suppressToolId": "MSTEST0031", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -17765,7 +18570,8 @@ "parameters": { "suppressToolId": "MSTEST0032", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -17783,6 +18589,40 @@ } ] }, + { + "id": "CppClangTidyClangDiagnosticFormatTruncationNonKprintf", + "shortDescription": { + "text": "format-truncation-non-kprintf clang diagnostic" + }, + "fullDescription": { + "text": "-Wformat-truncation-non-kprintf clang diagnostic · Learn more", + "markdown": "-Wformat-truncation-non-kprintf clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wformat-truncation-non-kprintf)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticFormatTruncationNonKprintf", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "MSTEST0034", "shortDescription": { @@ -17798,7 +18638,8 @@ "parameters": { "suppressToolId": "MSTEST0034", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -17831,7 +18672,8 @@ "parameters": { "suppressToolId": "MSTEST0035", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -17856,7 +18698,7 @@ }, "fullDescription": { "text": "-Winvalid-constexpr clang diagnostic · Learn more", - "markdown": "-Winvalid-constexpr clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#winvalid-constexpr)" + "markdown": "-Winvalid-constexpr clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winvalid-constexpr)" }, "defaultConfiguration": { "enabled": true, @@ -17864,13 +18706,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticInvalidConstexpr", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -17897,7 +18740,8 @@ "parameters": { "suppressToolId": "MSTEST0036", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -17930,7 +18774,8 @@ "parameters": { "suppressToolId": "MSTEST0037", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -17963,14 +18808,15 @@ "parameters": { "suppressToolId": "ClearAttributeIsObsolete.All", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "HTML/Common Practices and Code Improvements", - "index": 68, + "index": 74, "toolComponent": { "name": "QDNET" } @@ -17988,7 +18834,7 @@ }, "fullDescription": { "text": "objc-missing-hash clang-tidy check · Learn more", - "markdown": "objc-missing-hash clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/objc/missing-hash.html)" + "markdown": "objc-missing-hash clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/objc/missing-hash.html)" }, "defaultConfiguration": { "enabled": true, @@ -17996,13 +18842,14 @@ "parameters": { "suppressToolId": "CppClangTidyObjcMissingHash", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -18029,7 +18876,8 @@ "parameters": { "suppressToolId": "UnreachableSwitchArmDueToIntegerAnalysis", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -18054,7 +18902,7 @@ }, "fullDescription": { "text": "-Wmissing-declarations clang diagnostic · Learn more", - "markdown": "-Wmissing-declarations clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmissing-declarations)" + "markdown": "-Wmissing-declarations clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmissing-declarations)" }, "defaultConfiguration": { "enabled": true, @@ -18062,13 +18910,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMissingDeclarations", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -18095,7 +18944,8 @@ "parameters": { "suppressToolId": "EnforceDoWhileStatementBraces", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -18128,14 +18978,15 @@ "parameters": { "suppressToolId": "CppWrongSlashesInIncludeDirective", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Syntax Style", - "index": 83, + "id": "C_C++/Syntax Style", + "index": 91, "toolComponent": { "name": "QDNET" } @@ -18152,8 +19003,8 @@ "text": "Property can be made init-only (non-private accessibility)" }, "fullDescription": { - "text": "Property setter can be replaced with 'init' accessor to enforce property immutability", - "markdown": "Property setter can be replaced with 'init' accessor to enforce property immutability" + "text": "Property setter can be replaced with 'init' accessor to enforce property immutability Learn more...", + "markdown": "Property setter can be replaced with 'init' accessor to enforce property immutability [Learn more...](https://www.jetbrains.com/help/rider/PropertyCanBeMadeInitOnly.Global.html)" }, "defaultConfiguration": { "enabled": true, @@ -18161,14 +19012,15 @@ "parameters": { "suppressToolId": "PropertyCanBeMadeInitOnly.Global", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -18194,7 +19046,8 @@ "parameters": { "suppressToolId": "UseWithExpressionToCopyTuple", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -18219,7 +19072,7 @@ }, "fullDescription": { "text": "readability-redundant-preprocessor clang-tidy check · Learn more", - "markdown": "readability-redundant-preprocessor clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/redundant-preprocessor.html)" + "markdown": "readability-redundant-preprocessor clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/redundant-preprocessor.html)" }, "defaultConfiguration": { "enabled": true, @@ -18227,13 +19080,14 @@ "parameters": { "suppressToolId": "CppClangTidyReadabilityRedundantPreprocessor", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -18260,7 +19114,8 @@ "parameters": { "suppressToolId": "SuggestVarOrType_SimpleTypes", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -18293,7 +19148,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8305", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -18326,7 +19182,8 @@ "parameters": { "suppressToolId": "InParameterWithMustDisposeResourceAttribute", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -18359,14 +19216,15 @@ "parameters": { "suppressToolId": "RedundantQualifier", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "VB.NET/Redundancies in Code", - "index": 88, + "index": 96, "toolComponent": { "name": "QDNET" } @@ -18392,7 +19250,8 @@ "parameters": { "suppressToolId": "CA3061", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -18425,14 +19284,15 @@ "parameters": { "suppressToolId": "Xaml.RedundantGridSpan", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "XAML/Redundancies in Code", - "index": 71, + "index": 77, "toolComponent": { "name": "QDNET" } @@ -18458,14 +19318,15 @@ "parameters": { "suppressToolId": "CppEnforceOverridingFunctionStyle", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Syntax Style", - "index": 83, + "id": "C_C++/Syntax Style", + "index": 91, "toolComponent": { "name": "QDNET" } @@ -18491,13 +19352,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerDeadcodeDeadStores", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -18516,7 +19378,7 @@ }, "fullDescription": { "text": "-Wctad-maybe-unsupported clang diagnostic · Learn more", - "markdown": "-Wctad-maybe-unsupported clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wctad-maybe-unsupported)" + "markdown": "-Wctad-maybe-unsupported clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wctad-maybe-unsupported)" }, "defaultConfiguration": { "enabled": false, @@ -18524,13 +19386,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCtadMaybeUnsupported", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -18549,7 +19412,7 @@ }, "fullDescription": { "text": "-Winline-asm clang diagnostic · Learn more", - "markdown": "-Winline-asm clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#winline-asm)" + "markdown": "-Winline-asm clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winline-asm)" }, "defaultConfiguration": { "enabled": true, @@ -18557,13 +19420,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticInlineAsm", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -18590,14 +19454,15 @@ "parameters": { "suppressToolId": "AnnotateNotNullParameter", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -18623,7 +19488,8 @@ "parameters": { "suppressToolId": "ArrangeThisQualifier", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -18648,7 +19514,7 @@ }, "fullDescription": { "text": "-Warc-retain-cycles clang diagnostic · Learn more", - "markdown": "-Warc-retain-cycles clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#warc-retain-cycles)" + "markdown": "-Warc-retain-cycles clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#warc-retain-cycles)" }, "defaultConfiguration": { "enabled": true, @@ -18656,13 +19522,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticArcRetainCycles", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -18681,7 +19548,7 @@ }, "fullDescription": { "text": "hicpp-new-delete-operators clang-tidy check · Learn more", - "markdown": "hicpp-new-delete-operators clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/new-delete-operators.html)" + "markdown": "hicpp-new-delete-operators clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/new-delete-operators.html)" }, "defaultConfiguration": { "enabled": false, @@ -18689,13 +19556,14 @@ "parameters": { "suppressToolId": "CppClangTidyHicppNewDeleteOperators", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -18707,6 +19575,40 @@ } ] }, + { + "id": "CppClangTidyClangAnalyzerSecurityPutenvStackArray", + "shortDescription": { + "text": "security.PutenvStackArray clang static analyzer check" + }, + "fullDescription": { + "text": "security.PutenvStackArray clang static analyzer check · Learn more", + "markdown": "security.PutenvStackArray clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangAnalyzerSecurityPutenvStackArray", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Static Analyzer Checks", + "index": 32, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppClangTidyModernizeUseUsing", "shortDescription": { @@ -18714,7 +19616,7 @@ }, "fullDescription": { "text": "modernize-use-using clang-tidy check · Learn more", - "markdown": "modernize-use-using clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-using.html)" + "markdown": "modernize-use-using clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-using.html)" }, "defaultConfiguration": { "enabled": false, @@ -18722,13 +19624,14 @@ "parameters": { "suppressToolId": "CppClangTidyModernizeUseUsing", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -18747,7 +19650,7 @@ }, "fullDescription": { "text": "bugprone-too-small-loop-variable clang-tidy check · Learn more", - "markdown": "bugprone-too-small-loop-variable clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/too-small-loop-variable.html)" + "markdown": "bugprone-too-small-loop-variable clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/too-small-loop-variable.html)" }, "defaultConfiguration": { "enabled": true, @@ -18755,13 +19658,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneTooSmallLoopVariable", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -18780,7 +19684,7 @@ }, "fullDescription": { "text": "misc-non-private-member-variables-in-classes clang-tidy check · Learn more", - "markdown": "misc-non-private-member-variables-in-classes clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/misc/non-private-member-variables-in-classes.html)" + "markdown": "misc-non-private-member-variables-in-classes clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/non-private-member-variables-in-classes.html)" }, "defaultConfiguration": { "enabled": false, @@ -18788,13 +19692,14 @@ "parameters": { "suppressToolId": "CppClangTidyMiscNonPrivateMemberVariablesInClasses", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -18807,28 +19712,29 @@ ] }, { - "id": "ENC0116", + "id": "CppClangTidyClangDiagnosticXorUsedAsPow", "shortDescription": { - "text": "RoslynAnalyzers Changing attribute '{0}' requires restarting the application." + "text": "xor-used-as-pow clang diagnostic" }, "fullDescription": { - "text": "", - "markdown": "" + "text": "-Wxor-used-as-pow clang diagnostic · Learn more", + "markdown": "-Wxor-used-as-pow clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wxor-used-as-pow)" }, "defaultConfiguration": { - "enabled": false, - "level": "note", + "enabled": true, + "level": "warning", "parameters": { - "suppressToolId": "ENC0116", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "suppressToolId": "CppClangTidyClangDiagnosticXorUsedAsPow", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, + "id": "C_C++/Clang Diagnostics", + "index": 3, "toolComponent": { "name": "QDNET" } @@ -18840,28 +19746,29 @@ ] }, { - "id": "ENC0117", + "id": "CppClangTidyReadabilityIdentifierLength", "shortDescription": { - "text": "RoslynAnalyzers Changing attribute '{0}' requires restarting the application." + "text": "readability-identifier-length clang-tidy check" }, "fullDescription": { - "text": "", - "markdown": "" + "text": "readability-identifier-length clang-tidy check · Learn more", + "markdown": "readability-identifier-length clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/identifier-length.html)" }, "defaultConfiguration": { "enabled": false, "level": "note", "parameters": { - "suppressToolId": "ENC0117", + "suppressToolId": "CppClangTidyReadabilityIdentifierLength", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, + "id": "C_C++/Clang-Tidy Checks", + "index": 8, "toolComponent": { "name": "QDNET" } @@ -18873,27 +19780,28 @@ ] }, { - "id": "CppClangTidyClangDiagnosticXorUsedAsPow", + "id": "CppClangTidyClangDiagnosticMicrosoftRedeclareStatic", "shortDescription": { - "text": "xor-used-as-pow clang diagnostic" + "text": "microsoft-redeclare-static clang diagnostic" }, "fullDescription": { - "text": "-Wxor-used-as-pow clang diagnostic · Learn more", - "markdown": "-Wxor-used-as-pow clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wxor-used-as-pow)" + "text": "-Wmicrosoft-redeclare-static clang diagnostic · Learn more", + "markdown": "-Wmicrosoft-redeclare-static clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-redeclare-static)" }, "defaultConfiguration": { "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticXorUsedAsPow", + "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftRedeclareStatic", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -18906,28 +19814,29 @@ ] }, { - "id": "CppClangTidyReadabilityIdentifierLength", + "id": "RedundantExplicitArraySize", "shortDescription": { - "text": "readability-identifier-length clang-tidy check" + "text": "Redundant explicit size specification in array creation" }, "fullDescription": { - "text": "readability-identifier-length clang-tidy check · Learn more", - "markdown": "readability-identifier-length clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/identifier-length.html)" + "text": "When array initializer has the same number of elements as specified in size expression, explicit size specification is redundant Learn more...", + "markdown": "When array initializer has the same number of elements as specified in size expression, explicit size specification is redundant [Learn more...](https://www.jetbrains.com/help/rider/RedundantExplicitArraySize.html)" }, "defaultConfiguration": { - "enabled": false, - "level": "note", + "enabled": true, + "level": "warning", "parameters": { - "suppressToolId": "CppClangTidyReadabilityIdentifierLength", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "suppressToolId": "RedundantExplicitArraySize", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", - "index": 8, + "id": "C#/Redundancies in Code", + "index": 23, "toolComponent": { "name": "QDNET" } @@ -18939,28 +19848,29 @@ ] }, { - "id": "CppClangTidyClangDiagnosticMicrosoftRedeclareStatic", + "id": "CppClangTidyReadabilityAvoidReturnWithVoidValue", "shortDescription": { - "text": "microsoft-redeclare-static clang diagnostic" + "text": "readability-avoid-return-with-void-value clang-tidy check" }, "fullDescription": { - "text": "-Wmicrosoft-redeclare-static clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-redeclare-static clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-redeclare-static)" + "text": "readability-avoid-return-with-void-value clang-tidy check · Learn more", + "markdown": "readability-avoid-return-with-void-value clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/avoid-return-with-void-value.html)" }, "defaultConfiguration": { - "enabled": true, - "level": "warning", + "enabled": false, + "level": "note", "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftRedeclareStatic", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "suppressToolId": "CppClangTidyReadabilityAvoidReturnWithVoidValue", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", - "index": 3, + "id": "C_C++/Clang-Tidy Checks", + "index": 8, "toolComponent": { "name": "QDNET" } @@ -18972,28 +19882,29 @@ ] }, { - "id": "RedundantExplicitArraySize", + "id": "CppClangTidyClangDiagnosticNonPowerOfTwoAlignment", "shortDescription": { - "text": "Redundant explicit size specification in array creation" + "text": "non-power-of-two-alignment clang diagnostic" }, "fullDescription": { - "text": "When array initializer has the same number of elements as specified in size expression, explicit size specification is redundant Learn more...", - "markdown": "When array initializer has the same number of elements as specified in size expression, explicit size specification is redundant [Learn more...](https://www.jetbrains.com/help/rider/RedundantExplicitArraySize.html)" + "text": "-Wnon-power-of-two-alignment clang diagnostic · Learn more", + "markdown": "-Wnon-power-of-two-alignment clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnon-power-of-two-alignment)" }, "defaultConfiguration": { "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "RedundantExplicitArraySize", + "suppressToolId": "CppClangTidyClangDiagnosticNonPowerOfTwoAlignment", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C#/Redundancies in Code", - "index": 23, + "id": "C_C++/Clang Diagnostics", + "index": 3, "toolComponent": { "name": "QDNET" } @@ -19005,28 +19916,29 @@ ] }, { - "id": "CppClangTidyClangDiagnosticNonPowerOfTwoAlignment", + "id": "CanReplaceCastWithShorterTypeArgument", "shortDescription": { - "text": "non-power-of-two-alignment clang diagnostic" + "text": "Cast expression can be replaced with simplified type arguments" }, "fullDescription": { - "text": "-Wnon-power-of-two-alignment clang diagnostic · Learn more", - "markdown": "-Wnon-power-of-two-alignment clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wnon-power-of-two-alignment)" + "text": "Replace cast expression with simplified type arguments to enhance compile-time safety and code conciseness Learn more...", + "markdown": "Replace cast expression with simplified type arguments to enhance compile-time safety and code conciseness [Learn more...](https://www.jetbrains.com/help/rider/CanReplaceCastWithShorterTypeArgument.html)" }, "defaultConfiguration": { "enabled": true, - "level": "warning", + "level": "note", "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticNonPowerOfTwoAlignment", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "suppressToolId": "CanReplaceCastWithShorterTypeArgument", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", - "index": 3, + "id": "C#/Common Practices and Code Improvements", + "index": 12, "toolComponent": { "name": "QDNET" } @@ -19052,7 +19964,8 @@ "parameters": { "suppressToolId": "FunctionComplexityOverflow", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -19077,7 +19990,7 @@ }, "fullDescription": { "text": "-Wdouble-promotion clang diagnostic · Learn more", - "markdown": "-Wdouble-promotion clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdouble-promotion)" + "markdown": "-Wdouble-promotion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdouble-promotion)" }, "defaultConfiguration": { "enabled": false, @@ -19085,13 +19998,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDoublePromotion", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -19118,7 +20032,8 @@ "parameters": { "suppressToolId": "CA3075", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -19151,7 +20066,8 @@ "parameters": { "suppressToolId": "CA3076", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -19184,7 +20100,8 @@ "parameters": { "suppressToolId": "CA3077", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -19209,21 +20126,22 @@ }, "fullDescription": { "text": "-Wreorder-ctor clang diagnostic · Learn more", - "markdown": "-Wreorder-ctor clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wreorder-ctor)" + "markdown": "-Wreorder-ctor clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wreorder-ctor)" }, "defaultConfiguration": { - "enabled": true, - "level": "warning", + "enabled": false, + "level": "note", "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticReorderCtor", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -19250,7 +20168,8 @@ "parameters": { "suppressToolId": "PolymorphicFieldLikeEventInvocation", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -19283,13 +20202,14 @@ "parameters": { "suppressToolId": "CppBadEmptyBracesLineBreaks", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Formatting", + "id": "C_C++/Formatting", "index": 28, "toolComponent": { "name": "QDNET" @@ -19301,6 +20221,40 @@ } ] }, + { + "id": "CppClangTidyClangAnalyzerOptinTaintTaintedAlloc", + "shortDescription": { + "text": "optin.taint.TaintedAlloc clang static analyzer check" + }, + "fullDescription": { + "text": "optin.taint.TaintedAlloc clang static analyzer check · Learn more", + "markdown": "optin.taint.TaintedAlloc clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangAnalyzerOptinTaintTaintedAlloc", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Static Analyzer Checks", + "index": 32, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "RedundantCast", "shortDescription": { @@ -19316,7 +20270,8 @@ "parameters": { "suppressToolId": "RedundantCast", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -19349,13 +20304,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerApiModelingLlvmCastValue", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -19367,39 +20323,6 @@ } ] }, - { - "id": "ENC0109", - "shortDescription": { - "text": "RoslynAnalyzers Changing the containing namespace of '{0}' from '{1}' to '{2}' requires restarting the application" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0109", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, { "id": "StringLiteralAsInterpolationArgument", "shortDescription": { @@ -19415,344 +20338,15 @@ "parameters": { "suppressToolId": "StringLiteralAsInterpolationArgument", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC0107", - "shortDescription": { - "text": "RoslynAnalyzers Renaming {0} requires restarting the application because it is not supported by the runtime." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0107", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC0108", - "shortDescription": { - "text": "RoslynAnalyzers Changing pseudo-custom attribute '{0}' of {1} requires restarting the application" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0108", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeprecatedStaticAnalyzerFlag", - "shortDescription": { - "text": "deprecated-static-analyzer-flag clang diagnostic" - }, - "fullDescription": { - "text": "-Wdeprecated-static-analyzer-flag clang diagnostic · Learn more", - "markdown": "-Wdeprecated-static-analyzer-flag clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdeprecated-static-analyzer-flag)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedStaticAnalyzerFlag", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" - } - }, - "relationships": [ - { - "target": { - "id": "C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC0105", - "shortDescription": { - "text": "RoslynAnalyzers Changing constraints of {0} requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0105", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC0106", - "shortDescription": { - "text": "RoslynAnalyzers Updating a reloadable type (marked by {0}) or its member requires restarting the application because is not supported by the runtime." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0106", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC0114", - "shortDescription": { - "text": "RoslynAnalyzers Capturing primary constructor parameter '{0}' that hasn't been capture before requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0114", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC0115", - "shortDescription": { - "text": "RoslynAnalyzers Ceasing to capture primary constructor parameter '{0}' of '{1}' requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0115", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC0112", - "shortDescription": { - "text": "RoslynAnalyzers Updating async or iterator requires restarting the application because is not supported by the runtime." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0112", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC0113", - "shortDescription": { - "text": "RoslynAnalyzers Updating {0} within generic type or method requires restarting the application because is not supported by the runtime." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0113", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC0110", - "shortDescription": { - "text": "RoslynAnalyzers Changing the signature of {0} requires restarting the application because is not supported by the runtime." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0110", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -19778,13 +20372,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerFuchsiaHandleChecker", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -19796,39 +20391,6 @@ } ] }, - { - "id": "ENC0111", - "shortDescription": { - "text": "RoslynAnalyzers Deleting {0} requires restarting the application because is not supported by the runtime." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0111", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, { "id": "CppClangTidyClangDiagnosticShadowField", "shortDescription": { @@ -19836,7 +20398,7 @@ }, "fullDescription": { "text": "-Wshadow-field clang diagnostic · Learn more", - "markdown": "-Wshadow-field clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wshadow-field)" + "markdown": "-Wshadow-field clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wshadow-field)" }, "defaultConfiguration": { "enabled": true, @@ -19844,13 +20406,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticShadowField", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -19877,7 +20440,8 @@ "parameters": { "suppressToolId": "RedundantWithExpression", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -19902,7 +20466,7 @@ }, "fullDescription": { "text": "-Wextra-qualification clang diagnostic · Learn more", - "markdown": "-Wextra-qualification clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wextra-qualification)" + "markdown": "-Wextra-qualification clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wextra-qualification)" }, "defaultConfiguration": { "enabled": true, @@ -19910,13 +20474,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticExtraQualification", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -19943,7 +20508,8 @@ "parameters": { "suppressToolId": "ConvertToVbAutoPropertyWhenPossible", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -19968,7 +20534,7 @@ }, "fullDescription": { "text": "hicpp-noexcept-move clang-tidy check · Learn more", - "markdown": "hicpp-noexcept-move clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/noexcept-move.html)" + "markdown": "hicpp-noexcept-move clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/noexcept-move.html)" }, "defaultConfiguration": { "enabled": false, @@ -19976,13 +20542,14 @@ "parameters": { "suppressToolId": "CppClangTidyHicppNoexceptMove", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -20001,7 +20568,7 @@ }, "fullDescription": { "text": "-Wauto-storage-class clang diagnostic · Learn more", - "markdown": "-Wauto-storage-class clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wauto-storage-class)" + "markdown": "-Wauto-storage-class clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wauto-storage-class)" }, "defaultConfiguration": { "enabled": true, @@ -20009,13 +20576,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticAutoStorageClass", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -20042,14 +20610,15 @@ "parameters": { "suppressToolId": "WebConfig.UnusedElementDueToConfigSourceAttribute", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "Web.Config/Redundancies in Code", - "index": 90, + "index": 98, "toolComponent": { "name": "QDNET" } @@ -20075,13 +20644,14 @@ "parameters": { "suppressToolId": "CppConceptNeverUsed", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -20108,7 +20678,8 @@ "parameters": { "suppressToolId": "BadExpressionBracesLineBreaks", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -20133,7 +20704,7 @@ }, "fullDescription": { "text": "-Wincomplete-module clang diagnostic · Learn more", - "markdown": "-Wincomplete-module clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wincomplete-module)" + "markdown": "-Wincomplete-module clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wincomplete-module)" }, "defaultConfiguration": { "enabled": true, @@ -20141,13 +20712,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticIncompleteModule", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -20174,13 +20746,14 @@ "parameters": { "suppressToolId": "CppMissingKeywordThrow", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -20192,146 +20765,14 @@ } ] }, - { - "id": "ENC0103", - "shortDescription": { - "text": "RoslynAnalyzers Changing parameter types of {0} requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0103", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC0104", - "shortDescription": { - "text": "RoslynAnalyzers Changing type parameters of {0} requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0104", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC0101", - "shortDescription": { - "text": "RoslynAnalyzers Updating the attributes of {0} requires restarting the application because it is not supported by the runtime." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0101", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC0102", - "shortDescription": { - "text": "RoslynAnalyzers An update that causes the return type of the implicit Main method to change requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0102", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, { "id": "CppNonInlineFunctionDefinitionInHeaderFile", "shortDescription": { "text": "Non-inline function definition in a header file" }, "fullDescription": { - "text": "A function definition in a header file that will lead to a multiple definition linkage error", - "markdown": "A function definition in a header file that will lead to a multiple definition linkage error" + "text": "A function definition in a header file that will lead to a multiple definition linkage error Learn more...", + "markdown": "A function definition in a header file that will lead to a multiple definition linkage error [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rs-inline)" }, "defaultConfiguration": { "enabled": true, @@ -20339,13 +20780,14 @@ "parameters": { "suppressToolId": "CppNonInlineFunctionDefinitionInHeaderFile", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -20357,39 +20799,6 @@ } ] }, - { - "id": "ENC0100", - "shortDescription": { - "text": "RoslynAnalyzers Adding {0} requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0100", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, { "id": "UnusedMemberHierarchy.Local", "shortDescription": { @@ -20405,7 +20814,8 @@ "parameters": { "suppressToolId": "UnusedMemberHierarchy.Local", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -20430,7 +20840,7 @@ }, "fullDescription": { "text": "-Wgnu-static-float-init clang diagnostic · Learn more", - "markdown": "-Wgnu-static-float-init clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wgnu-static-float-init)" + "markdown": "-Wgnu-static-float-init clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-static-float-init)" }, "defaultConfiguration": { "enabled": true, @@ -20438,13 +20848,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticGnuStaticFloatInit", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -20462,8 +20873,8 @@ "text": "Possible unintended bypass of lifetime check of underlying Unity engine object (pattern matching null checks on a type deriving from 'UnityEngine.Object' bypasses the lifetime check on the underlying Unity engine object)" }, "fullDescription": { - "text": "Pattern matching null checks operators do not call the custom equality operators defined on 'UnityEngine.Object', which will check to see if the underlying Unity engine object has been destroyed. Prefer an explicit null comparison or implicit bool comparison if the lifetime check is intended, or explicitly use 'object.ReferenceEquals()' for a standard (and quicker) CLR null check. Learn more...", - "markdown": "Pattern matching null checks operators do not call the custom equality operators defined on 'UnityEngine.Object', which will check to see if the underlying Unity engine object has been destroyed. Prefer an explicit null comparison or implicit bool comparison if the lifetime check is intended, or explicitly use 'object.ReferenceEquals()' for a standard (and quicker) CLR null check. [Learn more...](https://github.com/JetBrains/resharper-unity/wiki/Possible-unintended-bypass-of-lifetime-check-of-underlying-Unity-engine-object)" + "text": "Pattern matching null checks operators do not call custom equality operators defined on 'UnityEngine.Object'. These operators check if the underlying Unity engine object has been destroyed. Prefer an explicit null comparison or implicit bool comparison if the lifetime check is intended, or explicitly use 'object.ReferenceEquals()' for a standard (and quicker) CLR null check. Learn more...", + "markdown": "Pattern matching null checks operators do not call custom equality operators defined on 'UnityEngine.Object'. These operators check if the underlying Unity engine object has been destroyed. Prefer an explicit null comparison or implicit bool comparison if the lifetime check is intended, or explicitly use 'object.ReferenceEquals()' for a standard (and quicker) CLR null check. [Learn more...](https://github.com/JetBrains/resharper-unity/wiki/Possible-unintended-bypass-of-lifetime-check-of-underlying-Unity-engine-object)" }, "defaultConfiguration": { "enabled": false, @@ -20471,14 +20882,15 @@ "parameters": { "suppressToolId": "Unity.NoNullPatternMatching", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity", - "index": 19, + "index": 18, "toolComponent": { "name": "QDNET" } @@ -20496,7 +20908,7 @@ }, "fullDescription": { "text": "-Wassume clang diagnostic · Learn more", - "markdown": "-Wassume clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wassume)" + "markdown": "-Wassume clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wassume)" }, "defaultConfiguration": { "enabled": true, @@ -20504,13 +20916,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticAssume", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -20529,7 +20942,7 @@ }, "fullDescription": { "text": "-Wc++98-compat-unnamed-type-template-args clang diagnostic · Learn more", - "markdown": "-Wc++98-compat-unnamed-type-template-args clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-98-compat-unnamed-type-template-args)" + "markdown": "-Wc++98-compat-unnamed-type-template-args clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-98-compat-unnamed-type-template-args)" }, "defaultConfiguration": { "enabled": false, @@ -20537,13 +20950,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCpp98CompatUnnamedTypeTemplateArgs", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -20555,6 +20969,40 @@ } ] }, + { + "id": "DefaultStructEqualityIsUsed.Global", + "shortDescription": { + "text": "Struct with default equality members is used for comparison (non-private accessibility)" + }, + "fullDescription": { + "text": "Default implementations of the 'Equals' and 'GetHashCode' methods of a struct are based on reflection and perform poorly. To prevent boxing and improve performance, overriding the equality members is recommended. This inspection only triggers if the struct or its containing type (such as record) is actually used for equality comparisons in the solution. Learn more...", + "markdown": "Default implementations of the 'Equals' and 'GetHashCode' methods of a struct are based on reflection and perform poorly. To prevent boxing and improve performance, overriding the equality members is recommended. This inspection only triggers if the struct or its containing type (such as record) is actually used for equality comparisons in the solution. [Learn more...](https://www.jetbrains.com/help/rider/DefaultStructEqualityIsUsed.Global.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "DefaultStructEqualityIsUsed.Global", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 12, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CSharpWarnings__CS1717", "shortDescription": { @@ -20570,7 +21018,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS1717", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -20603,7 +21052,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS1711", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -20636,7 +21086,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS1712", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -20669,7 +21120,8 @@ "parameters": { "suppressToolId": "MSTEST0001", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -20702,7 +21154,8 @@ "parameters": { "suppressToolId": "MSTEST0002", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -20735,7 +21188,8 @@ "parameters": { "suppressToolId": "MSTEST0003", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -20768,7 +21222,8 @@ "parameters": { "suppressToolId": "MSTEST0004", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -20801,14 +21256,15 @@ "parameters": { "suppressToolId": "ReplaceWithSimpleAssignment.False", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -20834,7 +21290,8 @@ "parameters": { "suppressToolId": "MSTEST0005", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -20867,7 +21324,8 @@ "parameters": { "suppressToolId": "MSTEST0006", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -20900,7 +21358,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS1710", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -20925,7 +21384,7 @@ }, "fullDescription": { "text": "android-comparison-in-temp-failure-retry clang-tidy check · Learn more", - "markdown": "android-comparison-in-temp-failure-retry clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/android/comparison-in-temp-failure-retry.html)" + "markdown": "android-comparison-in-temp-failure-retry clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/android/comparison-in-temp-failure-retry.html)" }, "defaultConfiguration": { "enabled": false, @@ -20933,13 +21392,14 @@ "parameters": { "suppressToolId": "CppClangTidyAndroidComparisonInTempFailureRetry", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -20966,7 +21426,8 @@ "parameters": { "suppressToolId": "MSTEST0007", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -20991,7 +21452,7 @@ }, "fullDescription": { "text": "-Wc++20-compat-pedantic clang diagnostic · Learn more", - "markdown": "-Wc++20-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-20-compat-pedantic)" + "markdown": "-Wc++20-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-20-compat-pedantic)" }, "defaultConfiguration": { "enabled": false, @@ -20999,13 +21460,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCpp20CompatPedantic", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -21023,8 +21485,8 @@ "text": "Class with virtual (overridable) members never inherited (private accessibility)" }, "fullDescription": { - "text": "Non-abstract class has virtual (overridable) members but has no inheritors", - "markdown": "Non-abstract class has virtual (overridable) members but has no inheritors" + "text": "Non-abstract class has virtual (overridable) members but has no inheritors Learn more...", + "markdown": "Non-abstract class has virtual (overridable) members but has no inheritors [Learn more...](https://www.jetbrains.com/help/rider/ClassWithVirtualMembersNeverInherited.Local.html)" }, "defaultConfiguration": { "enabled": true, @@ -21032,7 +21494,8 @@ "parameters": { "suppressToolId": "ClassWithVirtualMembersNeverInherited.Local", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -21057,7 +21520,7 @@ }, "fullDescription": { "text": "cert-oop57-cpp clang-tidy check · Learn more", - "markdown": "cert-oop57-cpp clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cert/oop57-cpp.html)" + "markdown": "cert-oop57-cpp clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/oop57-cpp.html)" }, "defaultConfiguration": { "enabled": true, @@ -21065,13 +21528,14 @@ "parameters": { "suppressToolId": "CppClangTidyCertOop57Cpp", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -21098,7 +21562,8 @@ "parameters": { "suppressToolId": "NUnit.TestCaseResultPropertyIsObsolete", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -21131,7 +21596,8 @@ "parameters": { "suppressToolId": "MSTEST0010", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -21164,7 +21630,8 @@ "parameters": { "suppressToolId": "MSTEST0011", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -21182,39 +21649,6 @@ } ] }, - { - "id": "CppClangTidyCertDcl21Cpp", - "shortDescription": { - "text": "cert-dcl21-cpp clang-tidy check" - }, - "fullDescription": { - "text": "cert-dcl21-cpp clang-tidy check · Learn more", - "markdown": "cert-dcl21-cpp clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cert/dcl21-cpp.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCertDcl21Cpp", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, { "id": "MSTEST0012", "shortDescription": { @@ -21230,7 +21664,8 @@ "parameters": { "suppressToolId": "MSTEST0012", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -21263,13 +21698,14 @@ "parameters": { "suppressToolId": "CppUE4ProbableMemoryIssuesWithUObjectsInContainer", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Unreal Engine", + "id": "C_C++/Unreal Engine", "index": 6, "toolComponent": { "name": "QDNET" @@ -21296,7 +21732,8 @@ "parameters": { "suppressToolId": "MSTEST0013", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -21329,7 +21766,8 @@ "parameters": { "suppressToolId": "MSTEST0014", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -21362,7 +21800,8 @@ "parameters": { "suppressToolId": "MSTEST0015", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -21395,13 +21834,14 @@ "parameters": { "suppressToolId": "CppPrintfRiskyFormat", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -21428,7 +21868,8 @@ "parameters": { "suppressToolId": "MSTEST0016", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -21461,7 +21902,8 @@ "parameters": { "suppressToolId": "MSTEST0017", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -21494,7 +21936,8 @@ "parameters": { "suppressToolId": "MSTEST0018", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -21527,7 +21970,8 @@ "parameters": { "suppressToolId": "MSTEST0008", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -21560,7 +22004,8 @@ "parameters": { "suppressToolId": "MSTEST0009", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -21593,7 +22038,8 @@ "parameters": { "suppressToolId": "UsePositionalDeconstructionPattern", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -21626,14 +22072,15 @@ "parameters": { "suppressToolId": "Unity.SharedStaticUnmanagedType", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity Burst Compiler Warnings", - "index": 54, + "index": 57, "toolComponent": { "name": "QDNET" } @@ -21651,7 +22098,7 @@ }, "fullDescription": { "text": "-Wpadded clang diagnostic · Learn more", - "markdown": "-Wpadded clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpadded)" + "markdown": "-Wpadded clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpadded)" }, "defaultConfiguration": { "enabled": true, @@ -21659,13 +22106,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticPadded", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -21692,7 +22140,8 @@ "parameters": { "suppressToolId": "RedundantLogicalConditionalExpressionOperand", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -21717,7 +22166,7 @@ }, "fullDescription": { "text": "-Wlanguage-extension-token clang diagnostic · Learn more", - "markdown": "-Wlanguage-extension-token clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wlanguage-extension-token)" + "markdown": "-Wlanguage-extension-token clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wlanguage-extension-token)" }, "defaultConfiguration": { "enabled": true, @@ -21725,13 +22174,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticLanguageExtensionToken", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -21758,7 +22208,8 @@ "parameters": { "suppressToolId": "NonAtomicCompoundOperator", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -21791,7 +22242,8 @@ "parameters": { "suppressToolId": "MSTEST0020", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -21824,7 +22276,8 @@ "parameters": { "suppressToolId": "MSTEST0021", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -21857,7 +22310,8 @@ "parameters": { "suppressToolId": "MSTEST0022", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -21890,7 +22344,8 @@ "parameters": { "suppressToolId": "MSTEST0023", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -21923,13 +22378,14 @@ "parameters": { "suppressToolId": "CppClangTidyHighlighting", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -21956,7 +22412,8 @@ "parameters": { "suppressToolId": "MSTEST0024", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -21989,7 +22446,8 @@ "parameters": { "suppressToolId": "MSTEST0025", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -22022,7 +22480,8 @@ "parameters": { "suppressToolId": "MSTEST0026", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -22055,7 +22514,8 @@ "parameters": { "suppressToolId": "MSTEST0029", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -22088,7 +22548,8 @@ "parameters": { "suppressToolId": "MSTEST0019", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -22113,7 +22574,7 @@ }, "fullDescription": { "text": "-Wunused-but-set-variable clang diagnostic · Learn more", - "markdown": "-Wunused-but-set-variable clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunused-but-set-variable)" + "markdown": "-Wunused-but-set-variable clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunused-but-set-variable)" }, "defaultConfiguration": { "enabled": false, @@ -22121,13 +22582,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnusedButSetVariable", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -22146,7 +22608,7 @@ }, "fullDescription": { "text": "-Wtautological-objc-bool-compare clang diagnostic · Learn more", - "markdown": "-Wtautological-objc-bool-compare clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wtautological-objc-bool-compare)" + "markdown": "-Wtautological-objc-bool-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtautological-objc-bool-compare)" }, "defaultConfiguration": { "enabled": true, @@ -22154,13 +22616,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticTautologicalObjcBoolCompare", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -22187,14 +22650,15 @@ "parameters": { "suppressToolId": "OverriddenWithSameValue", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "ResX/Redundancies in Code", - "index": 91, + "index": 99, "toolComponent": { "name": "QDNET" } @@ -22220,14 +22684,15 @@ "parameters": { "suppressToolId": "Asxx.PathError", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "HttpHandler or WebService/Potential Code Quality Issues", - "index": 93, + "index": 101, "toolComponent": { "name": "QDNET" } @@ -22245,7 +22710,7 @@ }, "fullDescription": { "text": "-Wmisspelled-assumption clang diagnostic · Learn more", - "markdown": "-Wmisspelled-assumption clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmisspelled-assumption)" + "markdown": "-Wmisspelled-assumption clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmisspelled-assumption)" }, "defaultConfiguration": { "enabled": true, @@ -22253,13 +22718,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMisspelledAssumption", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -22286,7 +22752,8 @@ "parameters": { "suppressToolId": "ArrangeNamespaceBody", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -22311,7 +22778,7 @@ }, "fullDescription": { "text": "modernize-use-trailing-return-type clang-tidy check · Learn more", - "markdown": "modernize-use-trailing-return-type clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-trailing-return-type.html)" + "markdown": "modernize-use-trailing-return-type clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-trailing-return-type.html)" }, "defaultConfiguration": { "enabled": false, @@ -22319,13 +22786,14 @@ "parameters": { "suppressToolId": "CppClangTidyModernizeUseTrailingReturnType", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -22344,7 +22812,7 @@ }, "fullDescription": { "text": "-Wmicrosoft-static-assert clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-static-assert clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-static-assert)" + "markdown": "-Wmicrosoft-static-assert clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-static-assert)" }, "defaultConfiguration": { "enabled": false, @@ -22352,13 +22820,48 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftStaticAssert", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticMissingTemplateArgListAfterTemplateKw", + "shortDescription": { + "text": "missing-template-arg-list-after-template-kw clang diagnostic" + }, + "fullDescription": { + "text": "-Wmissing-template-arg-list-after-template-kw clang diagnostic · Learn more", + "markdown": "-Wmissing-template-arg-list-after-template-kw clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmissing-template-arg-list-after-template-kw)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticMissingTemplateArgListAfterTemplateKw", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -22376,8 +22879,8 @@ "text": "Property can be made init-only (private accessibility)" }, "fullDescription": { - "text": "Property setter can be replaced with 'init' accessor to enforce property immutability", - "markdown": "Property setter can be replaced with 'init' accessor to enforce property immutability" + "text": "Property setter can be replaced with 'init' accessor to enforce property immutability Learn more...", + "markdown": "Property setter can be replaced with 'init' accessor to enforce property immutability [Learn more...](https://www.jetbrains.com/help/rider/PropertyCanBeMadeInitOnly.Local.html)" }, "defaultConfiguration": { "enabled": true, @@ -22385,14 +22888,15 @@ "parameters": { "suppressToolId": "PropertyCanBeMadeInitOnly.Local", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -22410,7 +22914,7 @@ }, "fullDescription": { "text": "-Wcast-qual clang diagnostic · Learn more", - "markdown": "-Wcast-qual clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wcast-qual)" + "markdown": "-Wcast-qual clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcast-qual)" }, "defaultConfiguration": { "enabled": true, @@ -22418,13 +22922,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCastQual", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -22443,7 +22948,7 @@ }, "fullDescription": { "text": "-Wc++11-compat clang diagnostic · Learn more", - "markdown": "-Wc++11-compat clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-11-compat)" + "markdown": "-Wc++11-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-11-compat)" }, "defaultConfiguration": { "enabled": false, @@ -22451,13 +22956,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCpp11Compat", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -22476,7 +22982,7 @@ }, "fullDescription": { "text": "-Wmicrosoft-enum-value clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-enum-value clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-enum-value)" + "markdown": "-Wmicrosoft-enum-value clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-enum-value)" }, "defaultConfiguration": { "enabled": true, @@ -22484,13 +22990,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftEnumValue", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -22509,7 +23016,7 @@ }, "fullDescription": { "text": "bugprone-unused-raii clang-tidy check · Learn more", - "markdown": "bugprone-unused-raii clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/unused-raii.html)" + "markdown": "bugprone-unused-raii clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/unused-raii.html)" }, "defaultConfiguration": { "enabled": true, @@ -22517,13 +23024,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneUnusedRaii", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -22542,7 +23050,7 @@ }, "fullDescription": { "text": "bugprone-misplaced-operator-in-strlen-in-alloc clang-tidy check · Learn more", - "markdown": "bugprone-misplaced-operator-in-strlen-in-alloc clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/misplaced-operator-in-strlen-in-alloc.html)" + "markdown": "bugprone-misplaced-operator-in-strlen-in-alloc clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/misplaced-operator-in-strlen-in-alloc.html)" }, "defaultConfiguration": { "enabled": true, @@ -22550,13 +23058,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneMisplacedOperatorInStrlenInAlloc", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -22575,7 +23084,7 @@ }, "fullDescription": { "text": "-Wshorten-64-to-32 clang diagnostic · Learn more", - "markdown": "-Wshorten-64-to-32 clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wshorten-64-to-32)" + "markdown": "-Wshorten-64-to-32 clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wshorten-64-to-32)" }, "defaultConfiguration": { "enabled": true, @@ -22583,13 +23092,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticShorten64To32", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -22616,14 +23126,15 @@ "parameters": { "suppressToolId": "Html.EventNotResolved", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "HTML/Potential Code Quality Issues", - "index": 51, + "index": 54, "toolComponent": { "name": "QDNET" } @@ -22641,7 +23152,7 @@ }, "fullDescription": { "text": "android-cloexec-epoll-create clang-tidy check · Learn more", - "markdown": "android-cloexec-epoll-create clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-epoll-create.html)" + "markdown": "android-cloexec-epoll-create clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-epoll-create.html)" }, "defaultConfiguration": { "enabled": false, @@ -22649,13 +23160,14 @@ "parameters": { "suppressToolId": "CppClangTidyAndroidCloexecEpollCreate", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -22674,7 +23186,7 @@ }, "fullDescription": { "text": "readability-avoid-unconditional-preprocessor-if clang-tidy check · Learn more", - "markdown": "readability-avoid-unconditional-preprocessor-if clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/avoid-unconditional-preprocessor-if.html)" + "markdown": "readability-avoid-unconditional-preprocessor-if clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/avoid-unconditional-preprocessor-if.html)" }, "defaultConfiguration": { "enabled": true, @@ -22682,13 +23194,14 @@ "parameters": { "suppressToolId": "CppClangTidyReadabilityAvoidUnconditionalPreprocessorIf", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -22715,14 +23228,15 @@ "parameters": { "suppressToolId": "CppUninitializedDependentBaseClass", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Compiler Warnings", - "index": 69, + "id": "C_C++/Compiler Warnings", + "index": 75, "toolComponent": { "name": "QDNET" } @@ -22740,7 +23254,7 @@ }, "fullDescription": { "text": "-Wparentheses-equality clang diagnostic · Learn more", - "markdown": "-Wparentheses-equality clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wparentheses-equality)" + "markdown": "-Wparentheses-equality clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wparentheses-equality)" }, "defaultConfiguration": { "enabled": false, @@ -22748,13 +23262,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticParenthesesEquality", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -22766,39 +23281,6 @@ } ] }, - { - "id": "SimplifyLinqExpressionUseMinByAndMaxBy", - "shortDescription": { - "text": "Use 'MinBy' or 'MaxBy' instead of ordering and taking 'First' or 'Last'" - }, - "fullDescription": { - "text": "Replace ordering and taking 'First' or 'Last' with 'MinBy' or 'MaxBy' invocation", - "markdown": "Replace ordering and taking 'First' or 'Last' with 'MinBy' or 'MaxBy' invocation" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "SimplifyLinqExpressionUseMinByAndMaxBy", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, { "id": "CppUseAutoForNumeric", "shortDescription": { @@ -22814,14 +23296,15 @@ "parameters": { "suppressToolId": "CppUseAutoForNumeric", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Syntax Style", - "index": 83, + "id": "C_C++/Syntax Style", + "index": 91, "toolComponent": { "name": "QDNET" } @@ -22847,7 +23330,8 @@ "parameters": { "suppressToolId": "VBReplaceWithSingleAssignment.1", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -22880,7 +23364,8 @@ "parameters": { "suppressToolId": "VBReplaceWithSingleAssignment.2", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -22913,13 +23398,14 @@ "parameters": { "suppressToolId": "CppTypeAliasNeverUsed", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -22946,7 +23432,8 @@ "parameters": { "suppressToolId": "RedundantReadonlyModifier", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -22971,7 +23458,7 @@ }, "fullDescription": { "text": "-Wself-assign-field clang diagnostic · Learn more", - "markdown": "-Wself-assign-field clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wself-assign-field)" + "markdown": "-Wself-assign-field clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wself-assign-field)" }, "defaultConfiguration": { "enabled": true, @@ -22979,13 +23466,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticSelfAssignField", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -23003,8 +23491,8 @@ "text": "Pass value parameters by const reference" }, "fullDescription": { - "text": "Parameter of a type that is expensive to copy is passed by value, but it can be passed by const reference instead", - "markdown": "Parameter of a type that is expensive to copy is passed by value, but it can be passed by const reference instead" + "text": "Parameter of a type that is expensive to copy is passed by value, but it can be passed by const reference instead Learn more...", + "markdown": "Parameter of a type that is expensive to copy is passed by value, but it can be passed by const reference instead [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rf-in)" }, "defaultConfiguration": { "enabled": true, @@ -23012,14 +23500,15 @@ "parameters": { "suppressToolId": "CppPassValueParameterByConstReference", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Common Practices and Code Improvements", - "index": 17, + "id": "C_C++/Common Practices and Code Improvements", + "index": 16, "toolComponent": { "name": "QDNET" } @@ -23037,7 +23526,7 @@ }, "fullDescription": { "text": "-Wconditional-type-mismatch clang diagnostic · Learn more", - "markdown": "-Wconditional-type-mismatch clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wconditional-type-mismatch)" + "markdown": "-Wconditional-type-mismatch clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wconditional-type-mismatch)" }, "defaultConfiguration": { "enabled": true, @@ -23045,13 +23534,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticConditionalTypeMismatch", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -23078,47 +23568,15 @@ "parameters": { "suppressToolId": "RedundantArrayLowerBoundSpecification", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "VB.NET/Redundancies in Code", - "index": 88, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC0099", - "shortDescription": { - "text": "RoslynAnalyzers Making a method an iterator requires restarting the application because is not supported by the runtime." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0099", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, + "index": 96, "toolComponent": { "name": "QDNET" } @@ -23136,7 +23594,7 @@ }, "fullDescription": { "text": "boost-use-to-string clang-tidy check · Learn more", - "markdown": "boost-use-to-string clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/boost/use-to-string.html)" + "markdown": "boost-use-to-string clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/boost/use-to-string.html)" }, "defaultConfiguration": { "enabled": true, @@ -23144,13 +23602,14 @@ "parameters": { "suppressToolId": "CppClangTidyBoostUseToString", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -23162,72 +23621,6 @@ } ] }, - { - "id": "ENC0097", - "shortDescription": { - "text": "RoslynAnalyzers Applying source changes while the application is running is not supported by the runtime." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0097", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC0098", - "shortDescription": { - "text": "RoslynAnalyzers Making a method asynchronous requires restarting the application because is not supported by the runtime." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0098", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, { "id": "JoinDeclarationAndInitializer", "shortDescription": { @@ -23243,14 +23636,15 @@ "parameters": { "suppressToolId": "JoinDeclarationAndInitializer", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -23276,14 +23670,15 @@ "parameters": { "suppressToolId": "RouteTemplates.SyntaxError", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "ASP.NET route templates/Code Notification", - "index": 47, + "index": 48, "toolComponent": { "name": "QDNET" } @@ -23309,7 +23704,8 @@ "parameters": { "suppressToolId": "SwitchStatementMissingSomeEnumCasesNoDefault", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -23334,7 +23730,7 @@ }, "fullDescription": { "text": "bugprone-throw-keyword-missing clang-tidy check · Learn more", - "markdown": "bugprone-throw-keyword-missing clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/throw-keyword-missing.html)" + "markdown": "bugprone-throw-keyword-missing clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/throw-keyword-missing.html)" }, "defaultConfiguration": { "enabled": true, @@ -23342,13 +23738,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneThrowKeywordMissing", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -23360,39 +23757,6 @@ } ] }, - { - "id": "ENC0090", - "shortDescription": { - "text": "RoslynAnalyzers Modifying the body of {0} requires restarting the application because the body has too many statements." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0090", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, { "id": "ConstructorWithMustDisposeResourceAttributeBaseIsNotAnnotated", "shortDescription": { @@ -23408,7 +23772,8 @@ "parameters": { "suppressToolId": "ConstructorWithMustDisposeResourceAttributeBaseIsNotAnnotated", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -23441,7 +23806,8 @@ "parameters": { "suppressToolId": "RedundantPatternParentheses", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -23465,8 +23831,8 @@ "text": "Convert constructor into primary constructor" }, "fullDescription": { - "text": "Replace ordinary constructor with primary constructor", - "markdown": "Replace ordinary constructor with primary constructor" + "text": "Replace ordinary constructor with primary constructor Learn more...", + "markdown": "Replace ordinary constructor with primary constructor [Learn more...](https://www.jetbrains.com/help/rider/ConvertToPrimaryConstructor.html)" }, "defaultConfiguration": { "enabled": true, @@ -23474,7 +23840,8 @@ "parameters": { "suppressToolId": "ConvertToPrimaryConstructor", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -23507,13 +23874,14 @@ "parameters": { "suppressToolId": "CppRedundantLinebreak", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Formatting", + "id": "C_C++/Formatting", "index": 28, "toolComponent": { "name": "QDNET" @@ -23532,7 +23900,7 @@ }, "fullDescription": { "text": "zircon-temporary-objects clang-tidy check · Learn more", - "markdown": "zircon-temporary-objects clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/zircon/temporary-objects.html)" + "markdown": "zircon-temporary-objects clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/zircon/temporary-objects.html)" }, "defaultConfiguration": { "enabled": false, @@ -23540,13 +23908,14 @@ "parameters": { "suppressToolId": "CppClangTidyZirconTemporaryObjects", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -23565,7 +23934,7 @@ }, "fullDescription": { "text": "-Wglobal-constructors clang diagnostic · Learn more", - "markdown": "-Wglobal-constructors clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wglobal-constructors)" + "markdown": "-Wglobal-constructors clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wglobal-constructors)" }, "defaultConfiguration": { "enabled": false, @@ -23573,13 +23942,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticGlobalConstructors", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -23606,13 +23976,14 @@ "parameters": { "suppressToolId": "CppRedundantTypenameKeyword", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Redundancies in Code", + "id": "C_C++/Redundancies in Code", "index": 34, "toolComponent": { "name": "QDNET" @@ -23639,13 +24010,14 @@ "parameters": { "suppressToolId": "CppDoxygenSyntaxError", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -23657,39 +24029,6 @@ } ] }, - { - "id": "ENC0088", - "shortDescription": { - "text": "RoslynAnalyzers Modifying the body of {0} requires restarting the application due to internal error: {1}" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0088", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, { "id": "UselessComparisonToIntegralConstant", "shortDescription": { @@ -23705,7 +24044,8 @@ "parameters": { "suppressToolId": "UselessComparisonToIntegralConstant", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -23723,39 +24063,6 @@ } ] }, - { - "id": "ENC0089", - "shortDescription": { - "text": "RoslynAnalyzers Modifying source file '{0}' requires restarting the application because the file is too big." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0089", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, { "id": "CppRedundantElseKeyword", "shortDescription": { @@ -23771,13 +24078,14 @@ "parameters": { "suppressToolId": "CppRedundantElseKeyword", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Redundancies in Code", + "id": "C_C++/Redundancies in Code", "index": 34, "toolComponent": { "name": "QDNET" @@ -23789,39 +24097,6 @@ } ] }, - { - "id": "ENC0086", - "shortDescription": { - "text": "RoslynAnalyzers Changing '{0}' to '{1}' requires restarting the application because it changes the shape of the state machine." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0086", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, { "id": "CppClangTidyClangDiagnosticPackedNonPod", "shortDescription": { @@ -23829,7 +24104,7 @@ }, "fullDescription": { "text": "-Wpacked-non-pod clang diagnostic · Learn more", - "markdown": "-Wpacked-non-pod clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpacked-non-pod)" + "markdown": "-Wpacked-non-pod clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpacked-non-pod)" }, "defaultConfiguration": { "enabled": true, @@ -23837,13 +24112,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticPackedNonPod", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -23855,39 +24131,6 @@ } ] }, - { - "id": "ENC0087", - "shortDescription": { - "text": "RoslynAnalyzers Modifying {0} which contains an Aggregate, Group By, or Join query clauses requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0087", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, { "id": "CppClangTidyCppcoreguidelinesSpecialMemberFunctions", "shortDescription": { @@ -23895,7 +24138,7 @@ }, "fullDescription": { "text": "cppcoreguidelines-special-member-functions clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-special-member-functions clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/special-member-functions.html)" + "markdown": "cppcoreguidelines-special-member-functions clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/special-member-functions.html)" }, "defaultConfiguration": { "enabled": true, @@ -23903,13 +24146,14 @@ "parameters": { "suppressToolId": "CppClangTidyCppcoreguidelinesSpecialMemberFunctions", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -23921,39 +24165,6 @@ } ] }, - { - "id": "ENC0085", - "shortDescription": { - "text": "RoslynAnalyzers Changing {0} from asynchronous to synchronous requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0085", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, { "id": "EmptyConstructor", "shortDescription": { @@ -23969,7 +24180,8 @@ "parameters": { "suppressToolId": "EmptyConstructor", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -23987,72 +24199,6 @@ } ] }, - { - "id": "ENC0082", - "shortDescription": { - "text": "RoslynAnalyzers Adding {0} into an interface requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0082", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC0083", - "shortDescription": { - "text": "RoslynAnalyzers Adding {0} into an interface method requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0083", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, { "id": "StringIndexOfIsCultureSpecific.2", "shortDescription": { @@ -24068,14 +24214,15 @@ "parameters": { "suppressToolId": "StringIndexOfIsCultureSpecific.2", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -24093,7 +24240,7 @@ }, "fullDescription": { "text": "bugprone-unsafe-functions clang-tidy check · Learn more", - "markdown": "bugprone-unsafe-functions clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/unsafe-functions.html)" + "markdown": "bugprone-unsafe-functions clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/unsafe-functions.html)" }, "defaultConfiguration": { "enabled": true, @@ -24101,13 +24248,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneUnsafeFunctions", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -24119,39 +24267,6 @@ } ] }, - { - "id": "ENC0080", - "shortDescription": { - "text": "RoslynAnalyzers Modifying source file '{0}' requires restarting the application due to internal error: {1}" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0080", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, { "id": "CppClangTidyCppcoreguidelinesSlicing", "shortDescription": { @@ -24159,7 +24274,7 @@ }, "fullDescription": { "text": "cppcoreguidelines-slicing clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-slicing clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/slicing.html)" + "markdown": "cppcoreguidelines-slicing clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/slicing.html)" }, "defaultConfiguration": { "enabled": false, @@ -24167,13 +24282,14 @@ "parameters": { "suppressToolId": "CppClangTidyCppcoreguidelinesSlicing", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -24200,14 +24316,15 @@ "parameters": { "suppressToolId": "StringIndexOfIsCultureSpecific.3", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -24219,28 +24336,29 @@ ] }, { - "id": "ENC0081", + "id": "CppClangTidyClangDiagnosticMixPackoffset", "shortDescription": { - "text": "RoslynAnalyzers Adding a method with an explicit interface specifier requires restarting the application." + "text": "mix-packoffset clang diagnostic" }, "fullDescription": { - "text": "", - "markdown": "" + "text": "-Wmix-packoffset clang diagnostic · Learn more", + "markdown": "-Wmix-packoffset clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmix-packoffset)" }, "defaultConfiguration": { - "enabled": false, - "level": "note", + "enabled": true, + "level": "warning", "parameters": { - "suppressToolId": "ENC0081", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "suppressToolId": "CppClangTidyClangDiagnosticMixPackoffset", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, + "id": "C_C++/Clang Diagnostics", + "index": 3, "toolComponent": { "name": "QDNET" } @@ -24266,14 +24384,15 @@ "parameters": { "suppressToolId": "StringIndexOfIsCultureSpecific.1", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -24291,7 +24410,7 @@ }, "fullDescription": { "text": "misc-misleading-bidirectional clang-tidy check · Learn more", - "markdown": "misc-misleading-bidirectional clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/misc/misleading-bidirectional.html)" + "markdown": "misc-misleading-bidirectional clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/misleading-bidirectional.html)" }, "defaultConfiguration": { "enabled": true, @@ -24299,13 +24418,14 @@ "parameters": { "suppressToolId": "CppClangTidyMiscMisleadingBidirectional", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -24324,7 +24444,7 @@ }, "fullDescription": { "text": "readability-convert-member-functions-to-static clang-tidy check · Learn more", - "markdown": "readability-convert-member-functions-to-static clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/convert-member-functions-to-static.html)" + "markdown": "readability-convert-member-functions-to-static clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/convert-member-functions-to-static.html)" }, "defaultConfiguration": { "enabled": false, @@ -24332,13 +24452,14 @@ "parameters": { "suppressToolId": "CppClangTidyReadabilityConvertMemberFunctionsToStatic", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -24365,7 +24486,8 @@ "parameters": { "suppressToolId": "StaticMemberInGenericType", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -24384,27 +24506,28 @@ ] }, { - "id": "CppClangTidyClangDiagnosticReservedMacroIdentifier", + "id": "CppClangTidyClangDiagnosticUndefinedArmZa", "shortDescription": { - "text": "reserved-macro-identifier clang diagnostic" + "text": "undefined-arm-za clang diagnostic" }, "fullDescription": { - "text": "-Wreserved-macro-identifier clang diagnostic · Learn more", - "markdown": "-Wreserved-macro-identifier clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wreserved-macro-identifier)" + "text": "-Wundefined-arm-za clang diagnostic · Learn more", + "markdown": "-Wundefined-arm-za clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wundefined-arm-za)" }, "defaultConfiguration": { "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticReservedMacroIdentifier", + "suppressToolId": "CppClangTidyClangDiagnosticUndefinedArmZa", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -24417,28 +24540,29 @@ ] }, { - "id": "CppClangTidyHicppVararg", + "id": "CppClangTidyClangDiagnosticReservedMacroIdentifier", "shortDescription": { - "text": "hicpp-vararg clang-tidy check" + "text": "reserved-macro-identifier clang diagnostic" }, "fullDescription": { - "text": "hicpp-vararg clang-tidy check · Learn more", - "markdown": "hicpp-vararg clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/vararg.html)" + "text": "-Wreserved-macro-identifier clang diagnostic · Learn more", + "markdown": "-Wreserved-macro-identifier clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wreserved-macro-identifier)" }, "defaultConfiguration": { - "enabled": false, - "level": "note", + "enabled": true, + "level": "warning", "parameters": { - "suppressToolId": "CppClangTidyHicppVararg", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "suppressToolId": "CppClangTidyClangDiagnosticReservedMacroIdentifier", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", - "index": 8, + "id": "C_C++/Clang Diagnostics", + "index": 3, "toolComponent": { "name": "QDNET" } @@ -24450,28 +24574,29 @@ ] }, { - "id": "ENC0075", + "id": "CppClangTidyHicppVararg", "shortDescription": { - "text": "RoslynAnalyzers Attribute '{0}' is missing. Updating an async method or an iterator requires restarting the application." + "text": "hicpp-vararg clang-tidy check" }, "fullDescription": { - "text": "", - "markdown": "" + "text": "hicpp-vararg clang-tidy check · Learn more", + "markdown": "hicpp-vararg clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/vararg.html)" }, "defaultConfiguration": { "enabled": false, "level": "note", "parameters": { - "suppressToolId": "ENC0075", + "suppressToolId": "CppClangTidyHicppVararg", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, + "id": "C_C++/Clang-Tidy Checks", + "index": 8, "toolComponent": { "name": "QDNET" } @@ -24489,7 +24614,7 @@ }, "fullDescription": { "text": "misc-definitions-in-headers clang-tidy check · Learn more", - "markdown": "misc-definitions-in-headers clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/misc/definitions-in-headers.html)" + "markdown": "misc-definitions-in-headers clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/definitions-in-headers.html)" }, "defaultConfiguration": { "enabled": false, @@ -24497,13 +24622,14 @@ "parameters": { "suppressToolId": "CppClangTidyMiscDefinitionsInHeaders", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -24515,146 +24641,14 @@ } ] }, - { - "id": "ENC0076", - "shortDescription": { - "text": "RoslynAnalyzers Switching between a lambda and a local function requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0076", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC0073", - "shortDescription": { - "text": "RoslynAnalyzers Removing {0} that contains an active statement requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0073", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC0074", - "shortDescription": { - "text": "RoslynAnalyzers Updating async or iterator modifier around an active statement requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0074", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC0071", - "shortDescription": { - "text": "RoslynAnalyzers Adding a new file requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0071", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, { "id": "RedundantUsingDirective.Global", "shortDescription": { "text": "Redundant global using directive" }, "fullDescription": { - "text": "Global using directive is not required by the code and can be safely removed", - "markdown": "Global using directive is not required by the code and can be safely removed" + "text": "Global using directive is not required by the code and can be safely removed Learn more...", + "markdown": "Global using directive is not required by the code and can be safely removed [Learn more...](https://www.jetbrains.com/help/rider/RedundantUsingDirective.Global.html)" }, "defaultConfiguration": { "enabled": true, @@ -24662,7 +24656,8 @@ "parameters": { "suppressToolId": "RedundantUsingDirective.Global", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -24680,72 +24675,6 @@ } ] }, - { - "id": "ENC0072", - "shortDescription": { - "text": "RoslynAnalyzers Updating an active statement requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0072", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC0070", - "shortDescription": { - "text": "RoslynAnalyzers Adding {0} with the Handles clause requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0070", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, { "id": "UseIndexedProperty", "shortDescription": { @@ -24761,14 +24690,15 @@ "parameters": { "suppressToolId": "UseIndexedProperty", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -24786,7 +24716,7 @@ }, "fullDescription": { "text": "misc-new-delete-overloads clang-tidy check · Learn more", - "markdown": "misc-new-delete-overloads clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/misc/new-delete-overloads.html)" + "markdown": "misc-new-delete-overloads clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/new-delete-overloads.html)" }, "defaultConfiguration": { "enabled": true, @@ -24794,13 +24724,14 @@ "parameters": { "suppressToolId": "CppClangTidyMiscNewDeleteOverloads", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -24819,7 +24750,7 @@ }, "fullDescription": { "text": "-Wdeprecated-enum-float-conversion clang diagnostic · Learn more", - "markdown": "-Wdeprecated-enum-float-conversion clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdeprecated-enum-float-conversion)" + "markdown": "-Wdeprecated-enum-float-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-enum-float-conversion)" }, "defaultConfiguration": { "enabled": true, @@ -24827,13 +24758,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedEnumFloatConversion", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -24860,13 +24792,14 @@ "parameters": { "suppressToolId": "CppRedundantComplexityInComparison", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -24885,7 +24818,7 @@ }, "fullDescription": { "text": "-Wrange-loop-bind-reference clang diagnostic · Learn more", - "markdown": "-Wrange-loop-bind-reference clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wrange-loop-bind-reference)" + "markdown": "-Wrange-loop-bind-reference clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wrange-loop-bind-reference)" }, "defaultConfiguration": { "enabled": true, @@ -24893,13 +24826,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticRangeLoopBindReference", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -24926,14 +24860,15 @@ "parameters": { "suppressToolId": "Unity.LoadSceneWrongIndex", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity", - "index": 19, + "index": 18, "toolComponent": { "name": "QDNET" } @@ -24951,7 +24886,7 @@ }, "fullDescription": { "text": "bugprone-suspicious-realloc-usage clang-tidy check · Learn more", - "markdown": "bugprone-suspicious-realloc-usage clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/suspicious-realloc-usage.html)" + "markdown": "bugprone-suspicious-realloc-usage clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/suspicious-realloc-usage.html)" }, "defaultConfiguration": { "enabled": true, @@ -24959,13 +24894,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneSuspiciousReallocUsage", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -24992,14 +24928,15 @@ "parameters": { "suppressToolId": "StringCompareToIsCultureSpecific", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -25025,7 +24962,8 @@ "parameters": { "suppressToolId": "EventNeverInvoked", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -25058,13 +24996,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaNSAutoreleasePool", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -25076,72 +25015,6 @@ } ] }, - { - "id": "ENC0068", - "shortDescription": { - "text": "RoslynAnalyzers Adding a constructor to a type with a field or property initializer that contains an anonymous function requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0068", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC0069", - "shortDescription": { - "text": "RoslynAnalyzers Renaming a captured variable, from '{0}' to '{1}' requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0069", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, { "id": "CppClangTidyClangDiagnosticOverridingMethodMismatch", "shortDescription": { @@ -25149,7 +25022,7 @@ }, "fullDescription": { "text": "-Woverriding-method-mismatch clang diagnostic · Learn more", - "markdown": "-Woverriding-method-mismatch clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#woverriding-method-mismatch)" + "markdown": "-Woverriding-method-mismatch clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#woverriding-method-mismatch)" }, "defaultConfiguration": { "enabled": true, @@ -25157,13 +25030,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticOverridingMethodMismatch", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -25175,39 +25049,6 @@ } ] }, - { - "id": "ENC0066", - "shortDescription": { - "text": "RoslynAnalyzers Modifying a catch handler around an active statement requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0066", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, { "id": "ArrangeObjectCreationWhenTypeNotEvident", "shortDescription": { @@ -25223,7 +25064,8 @@ "parameters": { "suppressToolId": "ArrangeObjectCreationWhenTypeNotEvident", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -25241,138 +25083,6 @@ } ] }, - { - "id": "ENC0067", - "shortDescription": { - "text": "RoslynAnalyzers Modifying {0} which contains a static variable requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0067", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC0064", - "shortDescription": { - "text": "RoslynAnalyzers Modifying a catch/finally handler with an active statement in the try block requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0064", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC0065", - "shortDescription": { - "text": "RoslynAnalyzers Modifying a try/catch/finally statement when the finally block is active requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0065", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC0062", - "shortDescription": { - "text": "RoslynAnalyzers Removing {0} that contains an active statement requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0062", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, { "id": "EmptyForStatement", "shortDescription": { @@ -25388,7 +25098,8 @@ "parameters": { "suppressToolId": "EmptyForStatement", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -25406,39 +25117,6 @@ } ] }, - { - "id": "ENC0063", - "shortDescription": { - "text": "RoslynAnalyzers Updating a {0} around an active statement requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0063", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, { "id": "Asp.NotResolved", "shortDescription": { @@ -25454,47 +25132,15 @@ "parameters": { "suppressToolId": "Asp.NotResolved", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "Aspx/Potential Code Quality Issues", - "index": 60, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC0060", - "shortDescription": { - "text": "RoslynAnalyzers Adding {0} around an active statement requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0060", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, + "index": 64, "toolComponent": { "name": "QDNET" } @@ -25512,7 +25158,7 @@ }, "fullDescription": { "text": "-Wunsupported-friend clang diagnostic · Learn more", - "markdown": "-Wunsupported-friend clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunsupported-friend)" + "markdown": "-Wunsupported-friend clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunsupported-friend)" }, "defaultConfiguration": { "enabled": true, @@ -25520,13 +25166,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnsupportedFriend", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -25538,39 +25185,6 @@ } ] }, - { - "id": "ENC0061", - "shortDescription": { - "text": "RoslynAnalyzers Deleting {0} around an active statement requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0061", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, { "id": "CppClangTidyBugproneSpuriouslyWakeUpFunctions", "shortDescription": { @@ -25578,7 +25192,7 @@ }, "fullDescription": { "text": "bugprone-spuriously-wake-up-functions clang-tidy check · Learn more", - "markdown": "bugprone-spuriously-wake-up-functions clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/spuriously-wake-up-functions.html)" + "markdown": "bugprone-spuriously-wake-up-functions clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/spuriously-wake-up-functions.html)" }, "defaultConfiguration": { "enabled": true, @@ -25586,13 +25200,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneSpuriouslyWakeUpFunctions", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -25611,7 +25226,7 @@ }, "fullDescription": { "text": "android-cloexec-accept4 clang-tidy check · Learn more", - "markdown": "android-cloexec-accept4 clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-accept4.html)" + "markdown": "android-cloexec-accept4 clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-accept4.html)" }, "defaultConfiguration": { "enabled": false, @@ -25619,13 +25234,14 @@ "parameters": { "suppressToolId": "CppClangTidyAndroidCloexecAccept4", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -25652,13 +25268,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaDealloc", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -25685,7 +25302,8 @@ "parameters": { "suppressToolId": "IntDivisionByZero", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -25710,7 +25328,7 @@ }, "fullDescription": { "text": "-Wenum-too-large clang diagnostic · Learn more", - "markdown": "-Wenum-too-large clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wenum-too-large)" + "markdown": "-Wenum-too-large clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wenum-too-large)" }, "defaultConfiguration": { "enabled": true, @@ -25718,13 +25336,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticEnumTooLarge", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -25743,7 +25362,7 @@ }, "fullDescription": { "text": "-Wprofile-instr-unprofiled clang diagnostic · Learn more", - "markdown": "-Wprofile-instr-unprofiled clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wprofile-instr-unprofiled)" + "markdown": "-Wprofile-instr-unprofiled clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wprofile-instr-unprofiled)" }, "defaultConfiguration": { "enabled": true, @@ -25751,13 +25370,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticProfileInstrUnprofiled", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -25769,39 +25389,6 @@ } ] }, - { - "id": "ENC0059", - "shortDescription": { - "text": "RoslynAnalyzers Changing the signature of {0} requires restarting the application because is not supported by the runtime." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0059", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, { "id": "CppClangTidyClangAnalyzerCoreUninitializedBranch", "shortDescription": { @@ -25817,13 +25404,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerCoreUninitializedBranch", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -25835,138 +25423,6 @@ } ] }, - { - "id": "ENC0053", - "shortDescription": { - "text": "RoslynAnalyzers Changing the parameters of {0} requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0053", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC0054", - "shortDescription": { - "text": "RoslynAnalyzers Changing the return type of {0} requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0054", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC0051", - "shortDescription": { - "text": "RoslynAnalyzers Changing the type of a captured variable '{0}' previously of type '{1}' requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0051", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC0052", - "shortDescription": { - "text": "RoslynAnalyzers Changing the declaration scope of a captured variable '{0}' requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0052", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, { "id": "CppClangTidyClangAnalyzerOsxCocoaVariadicMethodTypes", "shortDescription": { @@ -25982,13 +25438,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaVariadicMethodTypes", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -26007,7 +25464,7 @@ }, "fullDescription": { "text": "llvmlibc-callee-namespace clang-tidy check · Learn more", - "markdown": "llvmlibc-callee-namespace clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/llvmlibc/callee-namespace.html)" + "markdown": "llvmlibc-callee-namespace clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/llvmlibc/callee-namespace.html)" }, "defaultConfiguration": { "enabled": false, @@ -26015,13 +25472,14 @@ "parameters": { "suppressToolId": "CppClangTidyLlvmlibcCalleeNamespace", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -26040,7 +25498,7 @@ }, "fullDescription": { "text": "abseil-duration-comparison clang-tidy check · Learn more", - "markdown": "abseil-duration-comparison clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/duration-comparison.html)" + "markdown": "abseil-duration-comparison clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/duration-comparison.html)" }, "defaultConfiguration": { "enabled": false, @@ -26048,13 +25506,14 @@ "parameters": { "suppressToolId": "CppClangTidyAbseilDurationComparison", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -26073,7 +25532,7 @@ }, "fullDescription": { "text": "-Wauto-var-id clang diagnostic · Learn more", - "markdown": "-Wauto-var-id clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wauto-var-id)" + "markdown": "-Wauto-var-id clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wauto-var-id)" }, "defaultConfiguration": { "enabled": true, @@ -26081,13 +25540,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticAutoVarId", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -26114,7 +25574,8 @@ "parameters": { "suppressToolId": "UseCollectionExpression", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -26132,138 +25593,6 @@ } ] }, - { - "id": "ENC0046", - "shortDescription": { - "text": "RoslynAnalyzers Updating a complex statement containing an await expression requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0046", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC0047", - "shortDescription": { - "text": "RoslynAnalyzers Changing visibility of {0} requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0047", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC0044", - "shortDescription": { - "text": "RoslynAnalyzers Modifying {0} which contains the stackalloc operator requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0044", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC0045", - "shortDescription": { - "text": "RoslynAnalyzers Modifying source with experimental language features enabled requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0045", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, { "id": "CppUnmatchedPragmaRegionDirective", "shortDescription": { @@ -26279,13 +25608,14 @@ "parameters": { "suppressToolId": "CppUnmatchedPragmaRegionDirective", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -26312,14 +25642,15 @@ "parameters": { "suppressToolId": "ReplaceWithSingleOrDefault.4", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -26345,14 +25676,15 @@ "parameters": { "suppressToolId": "ReplaceWithSingleOrDefault.2", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -26378,14 +25710,15 @@ "parameters": { "suppressToolId": "ReplaceWithSingleOrDefault.3", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -26403,7 +25736,7 @@ }, "fullDescription": { "text": "-Wmodule-file-extension clang diagnostic · Learn more", - "markdown": "-Wmodule-file-extension clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmodule-file-extension)" + "markdown": "-Wmodule-file-extension clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmodule-file-extension)" }, "defaultConfiguration": { "enabled": true, @@ -26411,13 +25744,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticModuleFileExtension", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -26444,14 +25778,15 @@ "parameters": { "suppressToolId": "Unity.BurstLoadingManagedType", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity Burst Compiler Warnings", - "index": 54, + "index": 57, "toolComponent": { "name": "QDNET" } @@ -26469,7 +25804,7 @@ }, "fullDescription": { "text": "hicpp-function-size clang-tidy check · Learn more", - "markdown": "hicpp-function-size clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/function-size.html)" + "markdown": "hicpp-function-size clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/function-size.html)" }, "defaultConfiguration": { "enabled": false, @@ -26477,13 +25812,14 @@ "parameters": { "suppressToolId": "CppClangTidyHicppFunctionSize", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -26510,14 +25846,15 @@ "parameters": { "suppressToolId": "ReturnTypeCanBeEnumerable.Local", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -26535,7 +25872,7 @@ }, "fullDescription": { "text": "-Wunused-member-function clang diagnostic · Learn more", - "markdown": "-Wunused-member-function clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunused-member-function)" + "markdown": "-Wunused-member-function clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunused-member-function)" }, "defaultConfiguration": { "enabled": true, @@ -26543,13 +25880,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnusedMemberFunction", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -26568,7 +25906,7 @@ }, "fullDescription": { "text": "-Wextra-tokens clang diagnostic · Learn more", - "markdown": "-Wextra-tokens clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wextra-tokens)" + "markdown": "-Wextra-tokens clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wextra-tokens)" }, "defaultConfiguration": { "enabled": true, @@ -26576,13 +25914,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticExtraTokens", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -26609,14 +25948,15 @@ "parameters": { "suppressToolId": "ReplaceWithSingleOrDefault.1", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -26642,7 +25982,8 @@ "parameters": { "suppressToolId": "StaticProblemInText", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -26675,14 +26016,15 @@ "parameters": { "suppressToolId": "RouteTemplates.ActionRoutePrefixCanBeExtractedToControllerRoute", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "ASP.NET route templates/Code Notification", - "index": 47, + "index": 48, "toolComponent": { "name": "QDNET" } @@ -26700,7 +26042,7 @@ }, "fullDescription": { "text": "-Waix-compat clang diagnostic · Learn more", - "markdown": "-Waix-compat clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#waix-compat)" + "markdown": "-Waix-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#waix-compat)" }, "defaultConfiguration": { "enabled": false, @@ -26708,13 +26050,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticAixCompat", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -26741,7 +26084,8 @@ "parameters": { "suppressToolId": "InterpolatedStringExpressionIsNotIFormattable", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -26759,72 +26103,6 @@ } ] }, - { - "id": "CppClangTidyClangDiagnosticOverridingTOption", - "shortDescription": { - "text": "overriding-t-option clang diagnostic" - }, - "fullDescription": { - "text": "-Woverriding-t-option clang diagnostic · Learn more", - "markdown": "-Woverriding-t-option clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#woverriding-t-option)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticOverridingTOption", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" - } - }, - "relationships": [ - { - "target": { - "id": "C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC0029", - "shortDescription": { - "text": "RoslynAnalyzers Adding an imported method requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0029", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, { "id": "InvertIf", "shortDescription": { @@ -26840,7 +26118,8 @@ "parameters": { "suppressToolId": "InvertIf", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -26858,146 +26137,14 @@ } ] }, - { - "id": "ENC0038", - "shortDescription": { - "text": "RoslynAnalyzers Modifying a method inside the context of a generic type requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0038", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC0036", - "shortDescription": { - "text": "RoslynAnalyzers Modifying a generic method requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0036", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC0033", - "shortDescription": { - "text": "RoslynAnalyzers Deleting {0} requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0033", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC0031", - "shortDescription": { - "text": "RoslynAnalyzers Adding {0} into a class with explicit or sequential layout requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0031", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, { "id": "UnusedField.Compiler", "shortDescription": { "text": "Field is never used" }, "fullDescription": { - "text": "Field is never used (compiler warning)", - "markdown": "Field is never used (compiler warning)" + "text": "Field is never used (compiler warning) Learn more...", + "markdown": "Field is never used (compiler warning) [Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/misc/cs0169)" }, "defaultConfiguration": { "enabled": true, @@ -27005,7 +26152,8 @@ "parameters": { "suppressToolId": "UnusedField.Compiler", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -27024,61 +26172,29 @@ ] }, { - "id": "ENC0032", + "id": "CppClangTidyClangDiagnosticMicrosoftStringLiteralFromPredefined", "shortDescription": { - "text": "RoslynAnalyzers Moving {0} requires restarting the application." + "text": "microsoft-string-literal-from-predefined clang diagnostic" }, "fullDescription": { - "text": "", - "markdown": "" + "text": "-Wmicrosoft-string-literal-from-predefined clang diagnostic · Learn more", + "markdown": "-Wmicrosoft-string-literal-from-predefined clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-string-literal-from-predefined)" }, "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC0032", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC0030", - "shortDescription": { - "text": "RoslynAnalyzers Adding {0} into a {1} requires restarting the application." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", + "enabled": true, + "level": "warning", "parameters": { - "suppressToolId": "ENC0030", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftStringLiteralFromPredefined", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, + "id": "C_C++/Clang Diagnostics", + "index": 3, "toolComponent": { "name": "QDNET" } @@ -27096,7 +26212,7 @@ }, "fullDescription": { "text": "fuchsia-overloaded-operator clang-tidy check · Learn more", - "markdown": "fuchsia-overloaded-operator clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/fuchsia/overloaded-operator.html)" + "markdown": "fuchsia-overloaded-operator clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/fuchsia/overloaded-operator.html)" }, "defaultConfiguration": { "enabled": false, @@ -27104,13 +26220,14 @@ "parameters": { "suppressToolId": "CppClangTidyFuchsiaOverloadedOperator", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -27129,7 +26246,7 @@ }, "fullDescription": { "text": "-Wcast-of-sel-type clang diagnostic · Learn more", - "markdown": "-Wcast-of-sel-type clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wcast-of-sel-type)" + "markdown": "-Wcast-of-sel-type clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcast-of-sel-type)" }, "defaultConfiguration": { "enabled": true, @@ -27137,13 +26254,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCastOfSelType", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -27170,7 +26288,8 @@ "parameters": { "suppressToolId": "IntVariableOverflowInUncheckedContext", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -27203,7 +26322,8 @@ "parameters": { "suppressToolId": "ObjectCreationAsStatement", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -27236,7 +26356,8 @@ "parameters": { "suppressToolId": "RedundantNullnessAttributeWithNullableReferenceTypes", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -27269,13 +26390,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerCoreUninitializedNewArraySize", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -27287,6 +26409,40 @@ } ] }, + { + "id": "StreamReadReturnValueIgnored", + "shortDescription": { + "text": "Actual number of bytes read by 'Stream.Read()' is ignored" + }, + "fullDescription": { + "text": "Use 'Stream.ReadExactly()' instead of 'Read()' to ensure that the number of bytes read from the stream is equal to the expected value", + "markdown": "Use 'Stream.ReadExactly()' instead of 'Read()' to ensure that the number of bytes read from the stream is equal to the expected value" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "StreamReadReturnValueIgnored", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 12, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppRedundantExportKeyword", "shortDescription": { @@ -27302,13 +26458,14 @@ "parameters": { "suppressToolId": "CppRedundantExportKeyword", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Redundancies in Code", + "id": "C_C++/Redundancies in Code", "index": 34, "toolComponent": { "name": "QDNET" @@ -27335,14 +26492,15 @@ "parameters": { "suppressToolId": "Xaml.PathError", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "XAML/Potential Code Quality Issues", - "index": 44, + "index": 45, "toolComponent": { "name": "QDNET" } @@ -27360,7 +26518,7 @@ }, "fullDescription": { "text": "-Wc2x-compat clang diagnostic · Learn more", - "markdown": "-Wc2x-compat clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc2x-compat)" + "markdown": "-Wc2x-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc2x-compat)" }, "defaultConfiguration": { "enabled": true, @@ -27368,13 +26526,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticC2xCompat", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -27393,7 +26552,7 @@ }, "fullDescription": { "text": "performance-faster-string-find clang-tidy check · Learn more", - "markdown": "performance-faster-string-find clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/performance/faster-string-find.html)" + "markdown": "performance-faster-string-find clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance/faster-string-find.html)" }, "defaultConfiguration": { "enabled": true, @@ -27401,13 +26560,14 @@ "parameters": { "suppressToolId": "CppClangTidyPerformanceFasterStringFind", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -27434,7 +26594,8 @@ "parameters": { "suppressToolId": "ConditionIsAlwaysTrueOrFalse", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -27459,7 +26620,7 @@ }, "fullDescription": { "text": "-Wstring-plus-int clang diagnostic · Learn more", - "markdown": "-Wstring-plus-int clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wstring-plus-int)" + "markdown": "-Wstring-plus-int clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wstring-plus-int)" }, "defaultConfiguration": { "enabled": true, @@ -27467,13 +26628,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticStringPlusInt", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -27500,7 +26662,8 @@ "parameters": { "suppressToolId": "ConstructorInitializerLoop", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -27533,7 +26696,8 @@ "parameters": { "suppressToolId": "VBReplaceWithFirstOrDefault", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -27566,14 +26730,15 @@ "parameters": { "suppressToolId": "CppUseAssociativeContains", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Common Practices and Code Improvements", - "index": 17, + "id": "C_C++/Common Practices and Code Improvements", + "index": 16, "toolComponent": { "name": "QDNET" } @@ -27591,7 +26756,7 @@ }, "fullDescription": { "text": "-Wmultichar clang diagnostic · Learn more", - "markdown": "-Wmultichar clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmultichar)" + "markdown": "-Wmultichar clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmultichar)" }, "defaultConfiguration": { "enabled": false, @@ -27599,13 +26764,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMultichar", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -27624,7 +26790,7 @@ }, "fullDescription": { "text": "hicpp-member-init clang-tidy check · Learn more", - "markdown": "hicpp-member-init clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/member-init.html)" + "markdown": "hicpp-member-init clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/member-init.html)" }, "defaultConfiguration": { "enabled": false, @@ -27632,13 +26798,14 @@ "parameters": { "suppressToolId": "CppClangTidyHicppMemberInit", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -27665,7 +26832,8 @@ "parameters": { "suppressToolId": "VBSimplifyLinqExpression.9", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -27690,7 +26858,7 @@ }, "fullDescription": { "text": "readability-redundant-access-specifiers clang-tidy check · Learn more", - "markdown": "readability-redundant-access-specifiers clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/redundant-access-specifiers.html)" + "markdown": "readability-redundant-access-specifiers clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/redundant-access-specifiers.html)" }, "defaultConfiguration": { "enabled": false, @@ -27698,13 +26866,14 @@ "parameters": { "suppressToolId": "CppClangTidyReadabilityRedundantAccessSpecifiers", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -27723,7 +26892,7 @@ }, "fullDescription": { "text": "-Winvalid-offsetof clang diagnostic · Learn more", - "markdown": "-Winvalid-offsetof clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#winvalid-offsetof)" + "markdown": "-Winvalid-offsetof clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winvalid-offsetof)" }, "defaultConfiguration": { "enabled": true, @@ -27731,13 +26900,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticInvalidOffsetof", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -27756,7 +26926,7 @@ }, "fullDescription": { "text": "-Wprivate-extern clang diagnostic · Learn more", - "markdown": "-Wprivate-extern clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wprivate-extern)" + "markdown": "-Wprivate-extern clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wprivate-extern)" }, "defaultConfiguration": { "enabled": true, @@ -27764,13 +26934,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticPrivateExtern", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -27797,7 +26968,8 @@ "parameters": { "suppressToolId": "VBSimplifyLinqExpression.1", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -27830,7 +27002,8 @@ "parameters": { "suppressToolId": "VBSimplifyLinqExpression.2", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -27863,7 +27036,8 @@ "parameters": { "suppressToolId": "VBSimplifyLinqExpression.3", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -27896,7 +27070,8 @@ "parameters": { "suppressToolId": "VBSimplifyLinqExpression.4", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -27914,6 +27089,40 @@ } ] }, + { + "id": "RazorErrors", + "shortDescription": { + "text": "Razor Errors" + }, + "fullDescription": { + "text": "Razor Errors", + "markdown": "Razor Errors" + }, + "defaultConfiguration": { + "enabled": false, + "level": "error", + "parameters": { + "suppressToolId": "RazorErrors", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "Razor/Non configurable", + "index": 107, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "VBSimplifyLinqExpression.5", "shortDescription": { @@ -27929,7 +27138,8 @@ "parameters": { "suppressToolId": "VBSimplifyLinqExpression.5", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -27962,7 +27172,8 @@ "parameters": { "suppressToolId": "VBSimplifyLinqExpression.6", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -27987,7 +27198,7 @@ }, "fullDescription": { "text": "-Wstatic-local-in-inline clang diagnostic · Learn more", - "markdown": "-Wstatic-local-in-inline clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wstatic-local-in-inline)" + "markdown": "-Wstatic-local-in-inline clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wstatic-local-in-inline)" }, "defaultConfiguration": { "enabled": true, @@ -27995,13 +27206,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticStaticLocalInInline", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -28028,7 +27240,8 @@ "parameters": { "suppressToolId": "VBSimplifyLinqExpression.7", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -28061,7 +27274,8 @@ "parameters": { "suppressToolId": "VBSimplifyLinqExpression.8", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -28094,7 +27308,8 @@ "parameters": { "suppressToolId": "AccessRightsInText", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -28119,7 +27334,7 @@ }, "fullDescription": { "text": "-Warc-non-pod-memaccess clang diagnostic · Learn more", - "markdown": "-Warc-non-pod-memaccess clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#warc-non-pod-memaccess)" + "markdown": "-Warc-non-pod-memaccess clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#warc-non-pod-memaccess)" }, "defaultConfiguration": { "enabled": true, @@ -28127,13 +27342,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticArcNonPodMemaccess", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -28145,6 +27361,40 @@ } ] }, + { + "id": "CppClangTidyClangAnalyzerSecuritySetgidSetuidOrder", + "shortDescription": { + "text": "security.SetgidSetuidOrder clang static analyzer check" + }, + "fullDescription": { + "text": "security.SetgidSetuidOrder clang static analyzer check · Learn more", + "markdown": "security.SetgidSetuidOrder clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangAnalyzerSecuritySetgidSetuidOrder", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Static Analyzer Checks", + "index": 32, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "WebConfig.RedundantAddNamespaceTag", "shortDescription": { @@ -28160,14 +27410,15 @@ "parameters": { "suppressToolId": "WebConfig.RedundantAddNamespaceTag", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "Web.Config/Redundancies in Code", - "index": 90, + "index": 98, "toolComponent": { "name": "QDNET" } @@ -28185,7 +27436,7 @@ }, "fullDescription": { "text": "-Wc++11-inline-namespace clang diagnostic · Learn more", - "markdown": "-Wc++11-inline-namespace clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-11-inline-namespace)" + "markdown": "-Wc++11-inline-namespace clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-11-inline-namespace)" }, "defaultConfiguration": { "enabled": true, @@ -28193,13 +27444,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCpp11InlineNamespace", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -28226,7 +27478,8 @@ "parameters": { "suppressToolId": "EntityFramework.ClientSideDbFunctionCall", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -28251,7 +27504,7 @@ }, "fullDescription": { "text": "modernize-make-unique clang-tidy check · Learn more", - "markdown": "modernize-make-unique clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/make-unique.html)" + "markdown": "modernize-make-unique clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/make-unique.html)" }, "defaultConfiguration": { "enabled": false, @@ -28259,13 +27512,14 @@ "parameters": { "suppressToolId": "CppClangTidyModernizeMakeUnique", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -28283,8 +27537,8 @@ "text": "Non-explicit converting constructor" }, "fullDescription": { - "text": "Non-explicit converting constructor", - "markdown": "Non-explicit converting constructor" + "text": "Non-explicit converting constructor Learn more...", + "markdown": "Non-explicit converting constructor [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rc-explicit)" }, "defaultConfiguration": { "enabled": true, @@ -28292,14 +27546,15 @@ "parameters": { "suppressToolId": "CppNonExplicitConvertingConstructor", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Common Practices and Code Improvements", - "index": 17, + "id": "C_C++/Common Practices and Code Improvements", + "index": 16, "toolComponent": { "name": "QDNET" } @@ -28317,7 +27572,7 @@ }, "fullDescription": { "text": "google-build-using-namespace clang-tidy check · Learn more", - "markdown": "google-build-using-namespace clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/google/build-using-namespace.html)" + "markdown": "google-build-using-namespace clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/build-using-namespace.html)" }, "defaultConfiguration": { "enabled": false, @@ -28325,13 +27580,14 @@ "parameters": { "suppressToolId": "CppClangTidyGoogleBuildUsingNamespace", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -28349,8 +27605,8 @@ "text": "Use discard assignment" }, "fullDescription": { - "text": "Replace intentionally ignored variable declaration 'var _ = ...' with discard assignment '_ = ...'.", - "markdown": "Replace intentionally ignored variable declaration 'var _ = ...' with discard assignment '_ = ...'." + "text": "Replace intentionally ignored variable declaration 'var _ = ...' with discard assignment '_ = ...'. Learn more...", + "markdown": "Replace intentionally ignored variable declaration 'var _ = ...' with discard assignment '_ = ...'. [Learn more...](https://www.jetbrains.com/help/rider/UseDiscardAssignment.html)" }, "defaultConfiguration": { "enabled": true, @@ -28358,7 +27614,8 @@ "parameters": { "suppressToolId": "UseDiscardAssignment", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -28383,7 +27640,7 @@ }, "fullDescription": { "text": "google-runtime-int clang-tidy check · Learn more", - "markdown": "google-runtime-int clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/google/runtime-int.html)" + "markdown": "google-runtime-int clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/runtime-int.html)" }, "defaultConfiguration": { "enabled": false, @@ -28391,13 +27648,14 @@ "parameters": { "suppressToolId": "CppClangTidyGoogleRuntimeInt", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -28424,14 +27682,15 @@ "parameters": { "suppressToolId": "ContractAnnotationNotParsed", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Constraints Violations", - "index": 73, + "index": 80, "toolComponent": { "name": "QDNET" } @@ -28457,13 +27716,14 @@ "parameters": { "suppressToolId": "CppRedundantDereferencingAndTakingAddress", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Redundancies in Code", + "id": "C_C++/Redundancies in Code", "index": 34, "toolComponent": { "name": "QDNET" @@ -28482,7 +27742,7 @@ }, "fullDescription": { "text": "-Wtautological-bitwise-compare clang diagnostic · Learn more", - "markdown": "-Wtautological-bitwise-compare clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wtautological-bitwise-compare)" + "markdown": "-Wtautological-bitwise-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtautological-bitwise-compare)" }, "defaultConfiguration": { "enabled": true, @@ -28490,13 +27750,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticTautologicalBitwiseCompare", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -28523,7 +27784,8 @@ "parameters": { "suppressToolId": "VBReplaceWithLastOrDefault", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -28556,7 +27818,8 @@ "parameters": { "suppressToolId": "WithExpressionInsteadOfInitializer", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -28581,7 +27844,7 @@ }, "fullDescription": { "text": "-Wexperimental-header-units clang diagnostic · Learn more", - "markdown": "-Wexperimental-header-units clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wexperimental-header-units)" + "markdown": "-Wexperimental-header-units clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wexperimental-header-units)" }, "defaultConfiguration": { "enabled": false, @@ -28589,13 +27852,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticExperimentalHeaderUnits", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -28614,7 +27878,7 @@ }, "fullDescription": { "text": "-Wnull-pointer-subtraction clang diagnostic · Learn more", - "markdown": "-Wnull-pointer-subtraction clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wnull-pointer-subtraction)" + "markdown": "-Wnull-pointer-subtraction clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnull-pointer-subtraction)" }, "defaultConfiguration": { "enabled": true, @@ -28622,13 +27886,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticNullPointerSubtraction", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -28655,7 +27920,8 @@ "parameters": { "suppressToolId": "ReplaceObjectPatternWithVarPattern", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -28688,7 +27954,8 @@ "parameters": { "suppressToolId": "RedundantExplicitArrayCreation", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -28721,7 +27988,8 @@ "parameters": { "suppressToolId": "SimplifyIIf", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -28754,7 +28022,8 @@ "parameters": { "suppressToolId": "PartialTypeWithSinglePart", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -28787,7 +28056,8 @@ "parameters": { "suppressToolId": "PossibleInvalidOperationExceptionCollectionWasModified", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -28812,7 +28082,7 @@ }, "fullDescription": { "text": "-Wunknown-pragmas clang diagnostic · Learn more", - "markdown": "-Wunknown-pragmas clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunknown-pragmas)" + "markdown": "-Wunknown-pragmas clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunknown-pragmas)" }, "defaultConfiguration": { "enabled": false, @@ -28820,13 +28090,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnknownPragmas", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -28853,14 +28124,15 @@ "parameters": { "suppressToolId": "MemberCanBeInternal", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -28878,7 +28150,7 @@ }, "fullDescription": { "text": "-Wdisabled-macro-expansion clang diagnostic · Learn more", - "markdown": "-Wdisabled-macro-expansion clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdisabled-macro-expansion)" + "markdown": "-Wdisabled-macro-expansion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdisabled-macro-expansion)" }, "defaultConfiguration": { "enabled": true, @@ -28886,13 +28158,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDisabledMacroExpansion", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -28911,7 +28184,7 @@ }, "fullDescription": { "text": "bugprone-shared-ptr-array-mismatch clang-tidy check · Learn more", - "markdown": "bugprone-shared-ptr-array-mismatch clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/shared-ptr-array-mismatch.html)" + "markdown": "bugprone-shared-ptr-array-mismatch clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/shared-ptr-array-mismatch.html)" }, "defaultConfiguration": { "enabled": true, @@ -28919,13 +28192,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneSharedPtrArrayMismatch", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -28944,7 +28218,7 @@ }, "fullDescription": { "text": "hicpp-named-parameter clang-tidy check · Learn more", - "markdown": "hicpp-named-parameter clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/named-parameter.html)" + "markdown": "hicpp-named-parameter clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/named-parameter.html)" }, "defaultConfiguration": { "enabled": false, @@ -28952,13 +28226,14 @@ "parameters": { "suppressToolId": "CppClangTidyHicppNamedParameter", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -28976,8 +28251,8 @@ "text": "Use format specifier in format strings" }, "fullDescription": { - "text": "'.ToString()' call can be replaced with format specifier", - "markdown": "'.ToString()' call can be replaced with format specifier" + "text": "'.ToString()' call can be replaced with format specifier Learn more...", + "markdown": "'.ToString()' call can be replaced with format specifier [Learn more...](https://www.jetbrains.com/help/rider/UseFormatSpecifierInFormatString.html)" }, "defaultConfiguration": { "enabled": true, @@ -28985,7 +28260,8 @@ "parameters": { "suppressToolId": "UseFormatSpecifierInFormatString", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -29018,7 +28294,8 @@ "parameters": { "suppressToolId": "MissingSpace", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -29051,7 +28328,8 @@ "parameters": { "suppressToolId": "ForeachCanBeConvertedToQueryUsingAnotherGetEnumerator", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -29084,13 +28362,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaMissingSuperCall", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -29108,8 +28387,8 @@ "text": "Heuristically unreachable code" }, "fullDescription": { - "text": "Heuristically unreachable code detected", - "markdown": "Heuristically unreachable code detected" + "text": "Heuristically unreachable code detected Learn more...", + "markdown": "Heuristically unreachable code detected [Learn more...](https://www.jetbrains.com/help/rider/HeuristicUnreachableCode.html)" }, "defaultConfiguration": { "enabled": true, @@ -29117,7 +28396,8 @@ "parameters": { "suppressToolId": "HeuristicUnreachableCode", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -29141,8 +28421,8 @@ "text": "Redundant nullable warning suppression expression" }, "fullDescription": { - "text": "Nullable warning suppression expression does not suppress any warnings and is applied to an already non-nullable operand", - "markdown": "Nullable warning suppression expression does not suppress any warnings and is applied to an already non-nullable operand" + "text": "Nullable warning suppression expression does not suppress any warnings and is applied to an already non-nullable operand Learn more...", + "markdown": "Nullable warning suppression expression does not suppress any warnings and is applied to an already non-nullable operand [Learn more...](https://www.jetbrains.com/help/rider/RedundantSuppressNullableWarningExpression.html)" }, "defaultConfiguration": { "enabled": true, @@ -29150,7 +28430,8 @@ "parameters": { "suppressToolId": "RedundantSuppressNullableWarningExpression", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -29175,7 +28456,7 @@ }, "fullDescription": { "text": "bugprone-parent-virtual-call clang-tidy check · Learn more", - "markdown": "bugprone-parent-virtual-call clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/parent-virtual-call.html)" + "markdown": "bugprone-parent-virtual-call clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/parent-virtual-call.html)" }, "defaultConfiguration": { "enabled": true, @@ -29183,13 +28464,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneParentVirtualCall", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -29216,7 +28498,8 @@ "parameters": { "suppressToolId": "ArrangeAccessorOwnerBody", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -29249,7 +28532,8 @@ "parameters": { "suppressToolId": "NotAccessedPositionalProperty.Global", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -29274,7 +28558,7 @@ }, "fullDescription": { "text": "-Wincompatible-property-type clang diagnostic · Learn more", - "markdown": "-Wincompatible-property-type clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wincompatible-property-type)" + "markdown": "-Wincompatible-property-type clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wincompatible-property-type)" }, "defaultConfiguration": { "enabled": true, @@ -29282,13 +28566,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticIncompatiblePropertyType", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -29315,14 +28600,15 @@ "parameters": { "suppressToolId": "Mvc.ViewNotResolved", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "Aspx/Potential Code Quality Issues", - "index": 60, + "index": 64, "toolComponent": { "name": "QDNET" } @@ -29348,13 +28634,14 @@ "parameters": { "suppressToolId": "CppBadAngleBracketsSpaces", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Formatting", + "id": "C_C++/Formatting", "index": 28, "toolComponent": { "name": "QDNET" @@ -29373,7 +28660,7 @@ }, "fullDescription": { "text": "google-readability-avoid-underscore-in-googletest-name clang-tidy check · Learn more", - "markdown": "google-readability-avoid-underscore-in-googletest-name clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/google/readability-avoid-underscore-in-googletest-name.html)" + "markdown": "google-readability-avoid-underscore-in-googletest-name clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/readability-avoid-underscore-in-googletest-name.html)" }, "defaultConfiguration": { "enabled": false, @@ -29381,13 +28668,14 @@ "parameters": { "suppressToolId": "CppClangTidyGoogleReadabilityAvoidUnderscoreInGoogletestName", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -29414,13 +28702,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerCplusplusPureVirtualCall", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -29447,13 +28736,14 @@ "parameters": { "suppressToolId": "CppBoostFormatMixedArgs", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -29480,14 +28770,15 @@ "parameters": { "suppressToolId": "CppEnforceFunctionDeclarationStyle", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Syntax Style", - "index": 83, + "id": "C_C++/Syntax Style", + "index": 91, "toolComponent": { "name": "QDNET" } @@ -29505,7 +28796,7 @@ }, "fullDescription": { "text": "-Wnull-conversion clang diagnostic · Learn more", - "markdown": "-Wnull-conversion clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wnull-conversion)" + "markdown": "-Wnull-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnull-conversion)" }, "defaultConfiguration": { "enabled": true, @@ -29513,13 +28804,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticNullConversion", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -29538,7 +28830,7 @@ }, "fullDescription": { "text": "-Wpedantic-core-features clang diagnostic · Learn more", - "markdown": "-Wpedantic-core-features clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpedantic-core-features)" + "markdown": "-Wpedantic-core-features clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpedantic-core-features)" }, "defaultConfiguration": { "enabled": true, @@ -29546,13 +28838,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticPedanticCoreFeatures", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -29571,7 +28864,7 @@ }, "fullDescription": { "text": "performance-no-automatic-move clang-tidy check · Learn more", - "markdown": "performance-no-automatic-move clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/performance/no-automatic-move.html)" + "markdown": "performance-no-automatic-move clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance/no-automatic-move.html)" }, "defaultConfiguration": { "enabled": true, @@ -29579,13 +28872,14 @@ "parameters": { "suppressToolId": "CppClangTidyPerformanceNoAutomaticMove", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -29604,7 +28898,7 @@ }, "fullDescription": { "text": "-Wvexing-parse clang diagnostic · Learn more", - "markdown": "-Wvexing-parse clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wvexing-parse)" + "markdown": "-Wvexing-parse clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wvexing-parse)" }, "defaultConfiguration": { "enabled": true, @@ -29612,13 +28906,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticVexingParse", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -29645,14 +28940,15 @@ "parameters": { "suppressToolId": "VBWarnings__BC42505", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "VB.NET/Compiler Warnings", - "index": 100, + "index": 110, "toolComponent": { "name": "QDNET" } @@ -29678,13 +28974,14 @@ "parameters": { "suppressToolId": "CppMsExtReinterpretCastFromNullptr", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -29711,7 +29008,8 @@ "parameters": { "suppressToolId": "UnreachableSwitchCaseDueToIntegerAnalysis", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -29736,7 +29034,7 @@ }, "fullDescription": { "text": "cppcoreguidelines-interfaces-global-init clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-interfaces-global-init clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/interfaces-global-init.html)" + "markdown": "cppcoreguidelines-interfaces-global-init clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/interfaces-global-init.html)" }, "defaultConfiguration": { "enabled": true, @@ -29744,13 +29042,14 @@ "parameters": { "suppressToolId": "CppClangTidyCppcoreguidelinesInterfacesGlobalInit", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -29777,14 +29076,49 @@ "parameters": { "suppressToolId": "VBWarnings__BC42504", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "VB.NET/Compiler Warnings", - "index": 100, + "index": 110, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticBoundsSafetyCountedByEltTypeUnknownSize", + "shortDescription": { + "text": "bounds-safety-counted-by-elt-type-unknown-size clang diagnostic" + }, + "fullDescription": { + "text": "-Wbounds-safety-counted-by-elt-type-unknown-size clang diagnostic · Learn more", + "markdown": "-Wbounds-safety-counted-by-elt-type-unknown-size clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wbounds-safety-counted-by-elt-type-unknown-size)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticBoundsSafetyCountedByEltTypeUnknownSize", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, "toolComponent": { "name": "QDNET" } @@ -29810,14 +29144,15 @@ "parameters": { "suppressToolId": "ConvertToConstant.Local", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -29835,7 +29170,7 @@ }, "fullDescription": { "text": "-Wgnu-offsetof-extensions clang diagnostic · Learn more", - "markdown": "-Wgnu-offsetof-extensions clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wgnu-offsetof-extensions)" + "markdown": "-Wgnu-offsetof-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-offsetof-extensions)" }, "defaultConfiguration": { "enabled": true, @@ -29843,13 +29178,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticGnuOffsetofExtensions", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -29876,14 +29212,15 @@ "parameters": { "suppressToolId": "OtherTagsInsideScript1", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "HTML/Potential Code Quality Issues", - "index": 51, + "index": 54, "toolComponent": { "name": "QDNET" } @@ -29901,7 +29238,7 @@ }, "fullDescription": { "text": "-Wrange-loop-construct clang diagnostic · Learn more", - "markdown": "-Wrange-loop-construct clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wrange-loop-construct)" + "markdown": "-Wrange-loop-construct clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wrange-loop-construct)" }, "defaultConfiguration": { "enabled": true, @@ -29909,13 +29246,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticRangeLoopConstruct", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -29942,14 +29280,15 @@ "parameters": { "suppressToolId": "TypeParameterCanBeVariant", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -29975,14 +29314,15 @@ "parameters": { "suppressToolId": "OtherTagsInsideScript2", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "HTML/Potential Code Quality Issues", - "index": 51, + "index": 54, "toolComponent": { "name": "QDNET" } @@ -30008,7 +29348,8 @@ "parameters": { "suppressToolId": "CA2000", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -30041,7 +29382,8 @@ "parameters": { "suppressToolId": "CA2002", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -30066,7 +29408,7 @@ }, "fullDescription": { "text": "bugprone-string-constructor clang-tidy check · Learn more", - "markdown": "bugprone-string-constructor clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/string-constructor.html)" + "markdown": "bugprone-string-constructor clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/string-constructor.html)" }, "defaultConfiguration": { "enabled": true, @@ -30074,13 +29416,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneStringConstructor", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -30107,7 +29450,8 @@ "parameters": { "suppressToolId": "CA2007", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -30140,7 +29484,8 @@ "parameters": { "suppressToolId": "CA2008", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -30173,7 +29518,8 @@ "parameters": { "suppressToolId": "CA2009", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -30198,7 +29544,7 @@ }, "fullDescription": { "text": "-Wdeprecated-objc-isa-usage clang diagnostic · Learn more", - "markdown": "-Wdeprecated-objc-isa-usage clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdeprecated-objc-isa-usage)" + "markdown": "-Wdeprecated-objc-isa-usage clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-objc-isa-usage)" }, "defaultConfiguration": { "enabled": true, @@ -30206,13 +29552,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedObjcIsaUsage", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -30231,7 +29578,7 @@ }, "fullDescription": { "text": "-Wargument-outside-range clang diagnostic · Learn more", - "markdown": "-Wargument-outside-range clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wargument-outside-range)" + "markdown": "-Wargument-outside-range clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wargument-outside-range)" }, "defaultConfiguration": { "enabled": true, @@ -30239,13 +29586,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticArgumentOutsideRange", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -30272,7 +29620,8 @@ "parameters": { "suppressToolId": "ConvertToVbAutoProperty", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -30297,7 +29646,7 @@ }, "fullDescription": { "text": "cert-env33-c clang-tidy check · Learn more", - "markdown": "cert-env33-c clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cert/env33-c.html)" + "markdown": "cert-env33-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/env33-c.html)" }, "defaultConfiguration": { "enabled": false, @@ -30305,13 +29654,14 @@ "parameters": { "suppressToolId": "CppClangTidyCertEnv33C", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -30330,7 +29680,7 @@ }, "fullDescription": { "text": "modernize-use-equals-default clang-tidy check · Learn more", - "markdown": "modernize-use-equals-default clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-equals-default.html)" + "markdown": "modernize-use-equals-default clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-equals-default.html)" }, "defaultConfiguration": { "enabled": true, @@ -30338,13 +29688,14 @@ "parameters": { "suppressToolId": "CppClangTidyModernizeUseEqualsDefault", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -30363,7 +29714,7 @@ }, "fullDescription": { "text": "-Wsentinel clang diagnostic · Learn more", - "markdown": "-Wsentinel clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wsentinel)" + "markdown": "-Wsentinel clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wsentinel)" }, "defaultConfiguration": { "enabled": true, @@ -30371,13 +29722,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticSentinel", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -30396,7 +29748,7 @@ }, "fullDescription": { "text": "readability-named-parameter clang-tidy check · Learn more", - "markdown": "readability-named-parameter clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/named-parameter.html)" + "markdown": "readability-named-parameter clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/named-parameter.html)" }, "defaultConfiguration": { "enabled": false, @@ -30404,13 +29756,14 @@ "parameters": { "suppressToolId": "CppClangTidyReadabilityNamedParameter", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -30429,7 +29782,7 @@ }, "fullDescription": { "text": "cert-err58-cpp clang-tidy check · Learn more", - "markdown": "cert-err58-cpp clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cert/err58-cpp.html)" + "markdown": "cert-err58-cpp clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/err58-cpp.html)" }, "defaultConfiguration": { "enabled": false, @@ -30437,13 +29790,14 @@ "parameters": { "suppressToolId": "CppClangTidyCertErr58Cpp", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -30462,7 +29816,7 @@ }, "fullDescription": { "text": "-Wself-assign clang diagnostic · Learn more", - "markdown": "-Wself-assign clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wself-assign)" + "markdown": "-Wself-assign clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wself-assign)" }, "defaultConfiguration": { "enabled": true, @@ -30470,13 +29824,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticSelfAssign", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -30503,7 +29858,8 @@ "parameters": { "suppressToolId": "MathAbsMethodIsRedundant", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -30528,7 +29884,7 @@ }, "fullDescription": { "text": "-Wgnu-statement-expression clang diagnostic · Learn more", - "markdown": "-Wgnu-statement-expression clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wgnu-statement-expression)" + "markdown": "-Wgnu-statement-expression clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-statement-expression)" }, "defaultConfiguration": { "enabled": true, @@ -30536,13 +29892,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticGnuStatementExpression", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -30560,8 +29917,8 @@ "text": "Class with virtual (overridable) members never inherited (non-private accessibility)" }, "fullDescription": { - "text": "Non-abstract class has virtual (overridable) members but has no inheritors", - "markdown": "Non-abstract class has virtual (overridable) members but has no inheritors" + "text": "Non-abstract class has virtual (overridable) members but has no inheritors Learn more...", + "markdown": "Non-abstract class has virtual (overridable) members but has no inheritors [Learn more...](https://www.jetbrains.com/help/rider/ClassWithVirtualMembersNeverInherited.Global.html)" }, "defaultConfiguration": { "enabled": true, @@ -30569,7 +29926,8 @@ "parameters": { "suppressToolId": "ClassWithVirtualMembersNeverInherited.Global", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -30602,7 +29960,8 @@ "parameters": { "suppressToolId": "CA2011", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -30635,7 +29994,8 @@ "parameters": { "suppressToolId": "CA2012", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -30668,13 +30028,14 @@ "parameters": { "suppressToolId": "CppUninitializedNonStaticDataMember", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -30701,7 +30062,8 @@ "parameters": { "suppressToolId": "CA2013", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -30726,7 +30088,7 @@ }, "fullDescription": { "text": "-Wsuper-class-method-mismatch clang diagnostic · Learn more", - "markdown": "-Wsuper-class-method-mismatch clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wsuper-class-method-mismatch)" + "markdown": "-Wsuper-class-method-mismatch clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wsuper-class-method-mismatch)" }, "defaultConfiguration": { "enabled": true, @@ -30734,13 +30096,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticSuperClassMethodMismatch", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -30767,7 +30130,8 @@ "parameters": { "suppressToolId": "CA2014", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -30800,7 +30164,8 @@ "parameters": { "suppressToolId": "CA2015", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -30825,7 +30190,7 @@ }, "fullDescription": { "text": "misc-header-include-cycle clang-tidy check · Learn more", - "markdown": "misc-header-include-cycle clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/misc/header-include-cycle.html)" + "markdown": "misc-header-include-cycle clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/header-include-cycle.html)" }, "defaultConfiguration": { "enabled": true, @@ -30833,13 +30198,14 @@ "parameters": { "suppressToolId": "CppClangTidyMiscHeaderIncludeCycle", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -30866,13 +30232,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaClassRelease", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -30899,7 +30266,8 @@ "parameters": { "suppressToolId": "CA2016", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -30932,7 +30300,8 @@ "parameters": { "suppressToolId": "CA2017", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -30965,7 +30334,8 @@ "parameters": { "suppressToolId": "CA2018", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -30998,7 +30368,8 @@ "parameters": { "suppressToolId": "CA2019", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -31023,7 +30394,7 @@ }, "fullDescription": { "text": "abseil-duration-factory-float clang-tidy check · Learn more", - "markdown": "abseil-duration-factory-float clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/duration-factory-float.html)" + "markdown": "abseil-duration-factory-float clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/duration-factory-float.html)" }, "defaultConfiguration": { "enabled": false, @@ -31031,13 +30402,14 @@ "parameters": { "suppressToolId": "CppClangTidyAbseilDurationFactoryFloat", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -31056,7 +30428,7 @@ }, "fullDescription": { "text": "google-readability-casting clang-tidy check · Learn more", - "markdown": "google-readability-casting clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/google/readability-casting.html)" + "markdown": "google-readability-casting clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/readability-casting.html)" }, "defaultConfiguration": { "enabled": false, @@ -31064,13 +30436,14 @@ "parameters": { "suppressToolId": "CppClangTidyGoogleReadabilityCasting", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -31097,7 +30470,8 @@ "parameters": { "suppressToolId": "VBReplaceWithOfType.Where", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -31130,14 +30504,15 @@ "parameters": { "suppressToolId": "ReplaceWithSingleCallToFirstOrDefault", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -31163,7 +30538,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__WME006", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -31188,7 +30564,7 @@ }, "fullDescription": { "text": "-Wdangling-field clang diagnostic · Learn more", - "markdown": "-Wdangling-field clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdangling-field)" + "markdown": "-Wdangling-field clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdangling-field)" }, "defaultConfiguration": { "enabled": true, @@ -31196,13 +30572,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDanglingField", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -31229,7 +30606,8 @@ "parameters": { "suppressToolId": "CA2020", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -31262,14 +30640,15 @@ "parameters": { "suppressToolId": "RequiredBaseTypesConflict", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Constraints Violations", - "index": 73, + "index": 80, "toolComponent": { "name": "QDNET" } @@ -31295,7 +30674,8 @@ "parameters": { "suppressToolId": "CA2021", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -31320,7 +30700,7 @@ }, "fullDescription": { "text": "-Wavailability clang diagnostic · Learn more", - "markdown": "-Wavailability clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wavailability)" + "markdown": "-Wavailability clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wavailability)" }, "defaultConfiguration": { "enabled": true, @@ -31328,13 +30708,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticAvailability", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -31353,7 +30734,7 @@ }, "fullDescription": { "text": "-Wc++2c-extensions clang diagnostic · Learn more", - "markdown": "-Wc++2c-extensions clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-2c-extensions)" + "markdown": "-Wc++2c-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-2c-extensions)" }, "defaultConfiguration": { "enabled": true, @@ -31361,13 +30742,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCpp2cExtensions", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -31386,7 +30768,7 @@ }, "fullDescription": { "text": "-Wconversion clang diagnostic · Learn more", - "markdown": "-Wconversion clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wconversion)" + "markdown": "-Wconversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wconversion)" }, "defaultConfiguration": { "enabled": true, @@ -31394,13 +30776,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticConversion", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -31427,7 +30810,8 @@ "parameters": { "suppressToolId": "CA2022", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -31460,7 +30844,8 @@ "parameters": { "suppressToolId": "SuggestDiscardDeclarationVarStyle", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -31485,7 +30870,7 @@ }, "fullDescription": { "text": "-Wdocumentation-pedantic clang diagnostic · Learn more", - "markdown": "-Wdocumentation-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdocumentation-pedantic)" + "markdown": "-Wdocumentation-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdocumentation-pedantic)" }, "defaultConfiguration": { "enabled": false, @@ -31493,13 +30878,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDocumentationPedantic", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -31517,8 +30903,8 @@ "text": "Unnecessary whitespace at the end of line" }, "fullDescription": { - "text": "Remove unnecessary whitespace at the end of line", - "markdown": "Remove unnecessary whitespace at the end of line" + "text": "Remove unnecessary whitespace at the end of line Learn more...", + "markdown": "Remove unnecessary whitespace at the end of line [Learn more...](https://www.jetbrains.com/help/rider/UnnecessaryWhitespace.html)" }, "defaultConfiguration": { "enabled": false, @@ -31526,7 +30912,8 @@ "parameters": { "suppressToolId": "UnnecessaryWhitespace", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -31551,7 +30938,7 @@ }, "fullDescription": { "text": "-Wint-conversion clang diagnostic · Learn more", - "markdown": "-Wint-conversion clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wint-conversion)" + "markdown": "-Wint-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wint-conversion)" }, "defaultConfiguration": { "enabled": true, @@ -31559,13 +30946,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticIntConversion", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -31583,8 +30971,8 @@ "text": "Unused parameter (private accessibility)" }, "fullDescription": { - "text": "Parameter is never used", - "markdown": "Parameter is never used" + "text": "Parameter is never used Learn more...", + "markdown": "Parameter is never used [Learn more...](https://www.jetbrains.com/help/rider/UnusedParameter.Local.html)" }, "defaultConfiguration": { "enabled": true, @@ -31592,7 +30980,8 @@ "parameters": { "suppressToolId": "UnusedParameter.Local", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -31625,7 +31014,8 @@ "parameters": { "suppressToolId": "ReturnOfTaskProducedByUsingVariable", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -31644,28 +31034,29 @@ ] }, { - "id": "UseWithExpressionToCopyRecord", + "id": "CppClangTidyClangDiagnosticDanglingAssignment", "shortDescription": { - "text": "Use 'with' expression to copy record" + "text": "dangling-assignment clang diagnostic" }, "fullDescription": { - "text": "Use 'with' expression to create a modified instance of a record", - "markdown": "Use 'with' expression to create a modified instance of a record" + "text": "-Wdangling-assignment clang diagnostic · Learn more", + "markdown": "-Wdangling-assignment clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdangling-assignment)" }, "defaultConfiguration": { "enabled": true, - "level": "note", + "level": "warning", "parameters": { - "suppressToolId": "UseWithExpressionToCopyRecord", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "suppressToolId": "CppClangTidyClangDiagnosticDanglingAssignment", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, + "id": "C_C++/Clang Diagnostics", + "index": 3, "toolComponent": { "name": "QDNET" } @@ -31677,28 +31068,29 @@ ] }, { - "id": "EnumUnderlyingTypeIsInt", + "id": "UseWithExpressionToCopyRecord", "shortDescription": { - "text": "Underlying type of enum is 'int'" + "text": "Use 'with' expression to copy record" }, "fullDescription": { - "text": "'int' is default underlying type of enum, so it is not necessary to specify it explicitly Learn more...", - "markdown": "'int' is default underlying type of enum, so it is not necessary to specify it explicitly [Learn more...](https://www.jetbrains.com/help/rider/EnumUnderlyingTypeIsInt.html)" + "text": "Use 'with' expression to create a modified instance of a record", + "markdown": "Use 'with' expression to create a modified instance of a record" }, "defaultConfiguration": { "enabled": true, - "level": "warning", + "level": "note", "parameters": { - "suppressToolId": "EnumUnderlyingTypeIsInt", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "suppressToolId": "UseWithExpressionToCopyRecord", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, + "id": "C#/Language Usage Opportunities", + "index": 7, "toolComponent": { "name": "QDNET" } @@ -31710,28 +31102,29 @@ ] }, { - "id": "PossibleMistakenArgument", + "id": "EnumUnderlyingTypeIsInt", "shortDescription": { - "text": "Possible mistaken argument" + "text": "Underlying type of enum is 'int'" }, "fullDescription": { - "text": "$type$.IsInstanceOfType($type$)", - "markdown": "$type$.IsInstanceOfType($type$)" + "text": "'int' is default underlying type of enum, so it is not necessary to specify it explicitly Learn more...", + "markdown": "'int' is default underlying type of enum, so it is not necessary to specify it explicitly [Learn more...](https://www.jetbrains.com/help/rider/EnumUnderlyingTypeIsInt.html)" }, "defaultConfiguration": { "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "PossibleMistakenArgument", + "suppressToolId": "EnumUnderlyingTypeIsInt", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 14, + "id": "C#/Redundancies in Symbol Declarations", + "index": 36, "toolComponent": { "name": "QDNET" } @@ -31749,7 +31142,7 @@ }, "fullDescription": { "text": "-Wgnu-designator clang diagnostic · Learn more", - "markdown": "-Wgnu-designator clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wgnu-designator)" + "markdown": "-Wgnu-designator clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-designator)" }, "defaultConfiguration": { "enabled": true, @@ -31757,13 +31150,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticGnuDesignator", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -31782,7 +31176,7 @@ }, "fullDescription": { "text": "-Wtautological-overlap-compare clang diagnostic · Learn more", - "markdown": "-Wtautological-overlap-compare clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wtautological-overlap-compare)" + "markdown": "-Wtautological-overlap-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtautological-overlap-compare)" }, "defaultConfiguration": { "enabled": true, @@ -31790,13 +31184,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticTautologicalOverlapCompare", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -31815,7 +31210,7 @@ }, "fullDescription": { "text": "-Wc++26-extensions clang diagnostic · Learn more", - "markdown": "-Wc++26-extensions clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-26-extensions)" + "markdown": "-Wc++26-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-26-extensions)" }, "defaultConfiguration": { "enabled": true, @@ -31823,13 +31218,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCpp26Extensions", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -31856,14 +31252,15 @@ "parameters": { "suppressToolId": "NetCoverageInspection", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "Code Coverage", - "index": 50, + "index": 53, "toolComponent": { "name": "QDNET" } @@ -31881,7 +31278,7 @@ }, "fullDescription": { "text": "abseil-duration-conversion-cast clang-tidy check · Learn more", - "markdown": "abseil-duration-conversion-cast clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/duration-conversion-cast.html)" + "markdown": "abseil-duration-conversion-cast clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/duration-conversion-cast.html)" }, "defaultConfiguration": { "enabled": false, @@ -31889,13 +31286,14 @@ "parameters": { "suppressToolId": "CppClangTidyAbseilDurationConversionCast", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -31914,7 +31312,7 @@ }, "fullDescription": { "text": "cert-oop54-cpp clang-tidy check · Learn more", - "markdown": "cert-oop54-cpp clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cert/oop54-cpp.html)" + "markdown": "cert-oop54-cpp clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/oop54-cpp.html)" }, "defaultConfiguration": { "enabled": false, @@ -31922,13 +31320,14 @@ "parameters": { "suppressToolId": "CppClangTidyCertOop54Cpp", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -31940,6 +31339,40 @@ } ] }, + { + "id": "RazorWarnings", + "shortDescription": { + "text": "Razor Warnings" + }, + "fullDescription": { + "text": "Razor Warnings", + "markdown": "Razor Warnings" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "RazorWarnings", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "Razor/Non configurable", + "index": 107, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppClangTidyReadabilityMakeMemberFunctionConst", "shortDescription": { @@ -31947,7 +31380,7 @@ }, "fullDescription": { "text": "readability-make-member-function-const clang-tidy check · Learn more", - "markdown": "readability-make-member-function-const clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/make-member-function-const.html)" + "markdown": "readability-make-member-function-const clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/make-member-function-const.html)" }, "defaultConfiguration": { "enabled": false, @@ -31955,13 +31388,14 @@ "parameters": { "suppressToolId": "CppClangTidyReadabilityMakeMemberFunctionConst", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -31980,7 +31414,7 @@ }, "fullDescription": { "text": "-Wprotocol-property-synthesis-ambiguity clang diagnostic · Learn more", - "markdown": "-Wprotocol-property-synthesis-ambiguity clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wprotocol-property-synthesis-ambiguity)" + "markdown": "-Wprotocol-property-synthesis-ambiguity clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wprotocol-property-synthesis-ambiguity)" }, "defaultConfiguration": { "enabled": true, @@ -31988,13 +31422,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticProtocolPropertySynthesisAmbiguity", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -32013,7 +31448,7 @@ }, "fullDescription": { "text": "-Wunknown-attributes clang diagnostic · Learn more", - "markdown": "-Wunknown-attributes clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunknown-attributes)" + "markdown": "-Wunknown-attributes clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunknown-attributes)" }, "defaultConfiguration": { "enabled": false, @@ -32021,13 +31456,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnknownAttributes", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -32045,8 +31481,8 @@ "text": "Invalid XML documentation comment" }, "fullDescription": { - "text": "Invalid XML documentation comment", - "markdown": "Invalid XML documentation comment" + "text": "Invalid XML documentation comment Learn more...", + "markdown": "Invalid XML documentation comment [Learn more...](https://www.jetbrains.com/help/rider/InvalidXmlDocComment.html)" }, "defaultConfiguration": { "enabled": true, @@ -32054,7 +31490,8 @@ "parameters": { "suppressToolId": "InvalidXmlDocComment", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -32087,7 +31524,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8619", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -32120,7 +31558,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8618", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -32153,7 +31592,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8617", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -32186,7 +31626,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8616", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -32219,7 +31660,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8615", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -32252,7 +31694,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8614", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -32285,7 +31728,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8613", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -32304,28 +31748,29 @@ ] }, { - "id": "CppClangTidyClangDiagnosticFortifySource", + "id": "CSharpWarnings__CS8612", "shortDescription": { - "text": "fortify-source clang diagnostic" + "text": "Nullability of reference types in type doesn't match implicitly implemented member." }, "fullDescription": { - "text": "-Wfortify-source clang diagnostic · Learn more", - "markdown": "-Wfortify-source clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wfortify-source)" + "text": "Learn more...", + "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#mismatch-in-nullability-declaration)" }, "defaultConfiguration": { "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticFortifySource", + "suppressToolId": "CSharpWarnings__CS8612", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", - "index": 3, + "id": "C#/Compiler Warnings", + "index": 27, "toolComponent": { "name": "QDNET" } @@ -32337,28 +31782,29 @@ ] }, { - "id": "CSharpWarnings__CS8612", + "id": "CppClangTidyClangDiagnosticFortifySource", "shortDescription": { - "text": "Nullability of reference types in type doesn't match implicitly implemented member." + "text": "fortify-source clang diagnostic" }, "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#mismatch-in-nullability-declaration)" + "text": "-Wfortify-source clang diagnostic · Learn more", + "markdown": "-Wfortify-source clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wfortify-source)" }, "defaultConfiguration": { "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "CSharpWarnings__CS8612", + "suppressToolId": "CppClangTidyClangDiagnosticFortifySource", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C#/Compiler Warnings", - "index": 27, + "id": "C_C++/Clang Diagnostics", + "index": 3, "toolComponent": { "name": "QDNET" } @@ -32372,7 +31818,7 @@ { "id": "CSharpWarnings__CS8611", "shortDescription": { - "text": "Nullability of reference types in type of parameter doesn't match partial method declaration." + "text": "Nullability of reference types in type of parameter doesn't match partial member declaration." }, "fullDescription": { "text": "Learn more...", @@ -32384,7 +31830,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8611", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -32417,7 +31864,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8610", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -32450,7 +31898,8 @@ "parameters": { "suppressToolId": "TailRecursiveCall", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -32483,7 +31932,8 @@ "parameters": { "suppressToolId": "VBUseTypeOfIsOperator.1", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -32516,7 +31966,8 @@ "parameters": { "suppressToolId": "VBUseTypeOfIsOperator.2", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -32541,7 +31992,7 @@ }, "fullDescription": { "text": "-Wincrement-bool clang diagnostic · Learn more", - "markdown": "-Wincrement-bool clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wincrement-bool)" + "markdown": "-Wincrement-bool clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wincrement-bool)" }, "defaultConfiguration": { "enabled": true, @@ -32549,13 +32000,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticIncrementBool", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -32582,7 +32034,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8629", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -32615,7 +32068,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8625", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -32648,14 +32102,15 @@ "parameters": { "suppressToolId": "UnrealHeaderToolWarning", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/UnrealHeaderTool", - "index": 103, + "id": "C_C++/UnrealHeaderTool", + "index": 113, "toolComponent": { "name": "QDNET" } @@ -32681,7 +32136,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8624", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -32714,7 +32170,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8622", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -32747,7 +32204,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8621", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -32780,7 +32238,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8620", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -32805,7 +32264,7 @@ }, "fullDescription": { "text": "-Wunused-comparison clang diagnostic · Learn more", - "markdown": "-Wunused-comparison clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunused-comparison)" + "markdown": "-Wunused-comparison clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunused-comparison)" }, "defaultConfiguration": { "enabled": true, @@ -32813,13 +32272,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnusedComparison", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -32846,13 +32306,14 @@ "parameters": { "suppressToolId": "CppBadExpressionBracesIndent", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Formatting", + "id": "C_C++/Formatting", "index": 28, "toolComponent": { "name": "QDNET" @@ -32879,7 +32340,8 @@ "parameters": { "suppressToolId": "OptionalParameterRefOut", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -32912,14 +32374,49 @@ "parameters": { "suppressToolId": "Unity.RedundantSerializeFieldAttribute", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity", - "index": 19, + "index": 18, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ShaderLabShaderReferenceNotResolved", + "shortDescription": { + "text": "Unresolved Shader name" + }, + "fullDescription": { + "text": "Reference.GetName()", + "markdown": "Reference.GetName()" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "ShaderLabShaderReferenceNotResolved", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Compiler Warnings", + "index": 27, "toolComponent": { "name": "QDNET" } @@ -32945,7 +32442,8 @@ "parameters": { "suppressToolId": "UseWithExpressionToCopyAnonymousObject", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -32963,6 +32461,40 @@ } ] }, + { + "id": "CppClangTidyClangDiagnosticOpenaccDeprecatedClauseAlias", + "shortDescription": { + "text": "openacc-deprecated-clause-alias clang diagnostic" + }, + "fullDescription": { + "text": "-Wopenacc-deprecated-clause-alias clang diagnostic · Learn more", + "markdown": "-Wopenacc-deprecated-clause-alias clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wopenacc-deprecated-clause-alias)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticOpenaccDeprecatedClauseAlias", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "VBReplaceWithSingleCallToAny", "shortDescription": { @@ -32978,7 +32510,8 @@ "parameters": { "suppressToolId": "VBReplaceWithSingleCallToAny", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -33003,7 +32536,7 @@ }, "fullDescription": { "text": "readability-redundant-control-flow clang-tidy check · Learn more", - "markdown": "readability-redundant-control-flow clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/redundant-control-flow.html)" + "markdown": "readability-redundant-control-flow clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/redundant-control-flow.html)" }, "defaultConfiguration": { "enabled": false, @@ -33011,13 +32544,14 @@ "parameters": { "suppressToolId": "CppClangTidyReadabilityRedundantControlFlow", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -33036,7 +32570,7 @@ }, "fullDescription": { "text": "-Wreturn-std-move clang diagnostic · Learn more", - "markdown": "-Wreturn-std-move clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wreturn-std-move)" + "markdown": "-Wreturn-std-move clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wreturn-std-move)" }, "defaultConfiguration": { "enabled": true, @@ -33044,13 +32578,48 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticReturnStdMove", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticOpenmpExtensions", + "shortDescription": { + "text": "openmp-extensions clang diagnostic" + }, + "fullDescription": { + "text": "-Wopenmp-extensions clang diagnostic · Learn more", + "markdown": "-Wopenmp-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wopenmp-extensions)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticOpenmpExtensions", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -33077,7 +32646,8 @@ "parameters": { "suppressToolId": "NUnit.NonPublicMethodWithTestAttribute", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -33110,14 +32680,15 @@ "parameters": { "suppressToolId": "CppForLoopCanBeReplacedWithWhile", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Common Practices and Code Improvements", - "index": 17, + "id": "C_C++/Common Practices and Code Improvements", + "index": 16, "toolComponent": { "name": "QDNET" } @@ -33143,14 +32714,15 @@ "parameters": { "suppressToolId": "AnnotateNotNullTypeMember", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -33176,7 +32748,8 @@ "parameters": { "suppressToolId": "UseVerbatimString", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -33201,7 +32774,7 @@ }, "fullDescription": { "text": "-Wuser-defined-warnings clang diagnostic · Learn more", - "markdown": "-Wuser-defined-warnings clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wuser-defined-warnings)" + "markdown": "-Wuser-defined-warnings clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wuser-defined-warnings)" }, "defaultConfiguration": { "enabled": true, @@ -33209,13 +32782,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUserDefinedWarnings", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -33242,7 +32816,8 @@ "parameters": { "suppressToolId": "VBReplaceWithOfType.SingleOrDefault.2", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -33275,7 +32850,8 @@ "parameters": { "suppressToolId": "VBReplaceWithOfType.SingleOrDefault.1", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -33300,7 +32876,7 @@ }, "fullDescription": { "text": "-Wc++17-extensions clang diagnostic · Learn more", - "markdown": "-Wc++17-extensions clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-17-extensions)" + "markdown": "-Wc++17-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-17-extensions)" }, "defaultConfiguration": { "enabled": true, @@ -33308,13 +32884,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCpp17Extensions", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -33341,7 +32918,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8609", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -33374,7 +32952,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8608", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -33393,28 +32972,29 @@ ] }, { - "id": "CppClangTidyObjcAvoidNserrorInit", + "id": "CSharpWarnings__CS8607", "shortDescription": { - "text": "objc-avoid-nserror-init clang-tidy check" + "text": "A possible null value may not be used for a type marked with [NotNull] or [DisallowNull]." }, "fullDescription": { - "text": "objc-avoid-nserror-init clang-tidy check · Learn more", - "markdown": "objc-avoid-nserror-init clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/objc/avoid-nserror-init.html)" + "text": "Learn more...", + "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#code-doesnt-match-attribute-declaration)" }, "defaultConfiguration": { "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "CppClangTidyObjcAvoidNserrorInit", + "suppressToolId": "CSharpWarnings__CS8607", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", - "index": 8, + "id": "C#/Compiler Warnings", + "index": 27, "toolComponent": { "name": "QDNET" } @@ -33426,28 +33006,29 @@ ] }, { - "id": "CSharpWarnings__CS8607", + "id": "CppClangTidyObjcAvoidNserrorInit", "shortDescription": { - "text": "A possible null value may not be used for a type marked with [NotNull] or [DisallowNull]." + "text": "objc-avoid-nserror-init clang-tidy check" }, "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings#code-doesnt-match-attribute-declaration)" + "text": "objc-avoid-nserror-init clang-tidy check · Learn more", + "markdown": "objc-avoid-nserror-init clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/objc/avoid-nserror-init.html)" }, "defaultConfiguration": { "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "CSharpWarnings__CS8607", + "suppressToolId": "CppClangTidyObjcAvoidNserrorInit", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C#/Compiler Warnings", - "index": 27, + "id": "C_C++/Clang-Tidy Checks", + "index": 8, "toolComponent": { "name": "QDNET" } @@ -33473,13 +33054,14 @@ "parameters": { "suppressToolId": "CppUnusedIncludeDirective", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -33506,7 +33088,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8605", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -33539,13 +33122,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerSecurityInsecureAPIMktemp", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -33572,7 +33156,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8604", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -33597,7 +33182,7 @@ }, "fullDescription": { "text": "-Wreturn-type-c-linkage clang diagnostic · Learn more", - "markdown": "-Wreturn-type-c-linkage clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wreturn-type-c-linkage)" + "markdown": "-Wreturn-type-c-linkage clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wreturn-type-c-linkage)" }, "defaultConfiguration": { "enabled": true, @@ -33605,13 +33190,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticReturnTypeCLinkage", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -33638,7 +33224,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8603", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -33671,7 +33258,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8602", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -33704,7 +33292,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8601", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -33737,7 +33326,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8600", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -33761,8 +33351,8 @@ "text": "Non-accessed local variable" }, "fullDescription": { - "text": "Local variable is assigned but its value is never used (compiler warning)", - "markdown": "Local variable is assigned but its value is never used (compiler warning)" + "text": "Local variable is assigned but its value is never used (compiler warning) Learn more...", + "markdown": "Local variable is assigned but its value is never used (compiler warning) [Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/misc/cs0219)" }, "defaultConfiguration": { "enabled": true, @@ -33770,7 +33360,8 @@ "parameters": { "suppressToolId": "NotAccessedVariable.Compiler", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -33795,7 +33386,7 @@ }, "fullDescription": { "text": "-Wc++17-compat clang diagnostic · Learn more", - "markdown": "-Wc++17-compat clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-17-compat)" + "markdown": "-Wc++17-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-17-compat)" }, "defaultConfiguration": { "enabled": false, @@ -33803,13 +33394,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCpp17Compat", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -33828,7 +33420,7 @@ }, "fullDescription": { "text": "-Wpre-c2x-compat-pedantic clang diagnostic · Learn more", - "markdown": "-Wpre-c2x-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpre-c2x-compat-pedantic)" + "markdown": "-Wpre-c2x-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpre-c2x-compat-pedantic)" }, "defaultConfiguration": { "enabled": false, @@ -33836,13 +33428,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticPreC2xCompatPedantic", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -33869,13 +33462,14 @@ "parameters": { "suppressToolId": "CppBooleanIncrementExpression", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -33894,7 +33488,7 @@ }, "fullDescription": { "text": "-Wweak-template-vtables clang diagnostic · Learn more", - "markdown": "-Wweak-template-vtables clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wweak-template-vtables)" + "markdown": "-Wweak-template-vtables clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wweak-template-vtables)" }, "defaultConfiguration": { "enabled": true, @@ -33902,13 +33496,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticWeakTemplateVtables", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -33927,7 +33522,7 @@ }, "fullDescription": { "text": "-Wcall-to-pure-virtual-from-ctor-dtor clang diagnostic · Learn more", - "markdown": "-Wcall-to-pure-virtual-from-ctor-dtor clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wcall-to-pure-virtual-from-ctor-dtor)" + "markdown": "-Wcall-to-pure-virtual-from-ctor-dtor clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcall-to-pure-virtual-from-ctor-dtor)" }, "defaultConfiguration": { "enabled": true, @@ -33935,13 +33530,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCallToPureVirtualFromCtorDtor", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -33968,7 +33564,8 @@ "parameters": { "suppressToolId": "RedundantEmptyFinallyBlock", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -33986,6 +33583,40 @@ } ] }, + { + "id": "CppUEMissingSuperCall", + "shortDescription": { + "text": "Missing call to a function from the Super class" + }, + "fullDescription": { + "text": "Missing call to a function from the Super class", + "markdown": "Missing call to a function from the Super class" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppUEMissingSuperCall", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Unreal Engine", + "index": 6, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CSharpWarnings__CS8656", "shortDescription": { @@ -34001,7 +33632,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8656", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -34034,7 +33666,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8655", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -34067,7 +33700,8 @@ "parameters": { "suppressToolId": "FunctionNeverReturns", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -34092,7 +33726,7 @@ }, "fullDescription": { "text": "bugprone-assignment-in-if-condition clang-tidy check · Learn more", - "markdown": "bugprone-assignment-in-if-condition clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/assignment-in-if-condition.html)" + "markdown": "bugprone-assignment-in-if-condition clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/assignment-in-if-condition.html)" }, "defaultConfiguration": { "enabled": false, @@ -34100,13 +33734,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneAssignmentInIfCondition", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -34124,8 +33759,8 @@ "text": "C-style cast is used instead of a C++ cast" }, "fullDescription": { - "text": "C-style cast is used instead of a C++ cast", - "markdown": "C-style cast is used instead of a C++ cast" + "text": "C-style cast is used instead of a C++ cast Learn more...", + "markdown": "C-style cast is used instead of a C++ cast [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Res-casts-named)" }, "defaultConfiguration": { "enabled": true, @@ -34133,14 +33768,15 @@ "parameters": { "suppressToolId": "CppCStyleCast", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Common Practices and Code Improvements", - "index": 17, + "id": "C_C++/Common Practices and Code Improvements", + "index": 16, "toolComponent": { "name": "QDNET" } @@ -34158,7 +33794,7 @@ }, "fullDescription": { "text": "-Wc++14-attribute-extensions clang diagnostic · Learn more", - "markdown": "-Wc++14-attribute-extensions clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-14-attribute-extensions)" + "markdown": "-Wc++14-attribute-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-14-attribute-extensions)" }, "defaultConfiguration": { "enabled": true, @@ -34166,13 +33802,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCpp14AttributeExtensions", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -34199,7 +33836,8 @@ "parameters": { "suppressToolId": "UseSymbolAlias", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -34224,7 +33862,7 @@ }, "fullDescription": { "text": "cert-err09-cpp clang-tidy check · Learn more", - "markdown": "cert-err09-cpp clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cert/err09-cpp.html)" + "markdown": "cert-err09-cpp clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/err09-cpp.html)" }, "defaultConfiguration": { "enabled": false, @@ -34232,13 +33870,14 @@ "parameters": { "suppressToolId": "CppClangTidyCertErr09Cpp", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -34256,8 +33895,8 @@ "text": "Parameter is never used" }, "fullDescription": { - "text": "Function parameter is never used", - "markdown": "Function parameter is never used" + "text": "Function parameter is never used Learn more...", + "markdown": "Function parameter is never used [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rf-unused)" }, "defaultConfiguration": { "enabled": true, @@ -34265,13 +33904,14 @@ "parameters": { "suppressToolId": "CppParameterNeverUsed", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -34298,7 +33938,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8669", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -34331,7 +33972,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8667", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -34356,7 +33998,7 @@ }, "fullDescription": { "text": "-Wshadow-ivar clang diagnostic · Learn more", - "markdown": "-Wshadow-ivar clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wshadow-ivar)" + "markdown": "-Wshadow-ivar clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wshadow-ivar)" }, "defaultConfiguration": { "enabled": true, @@ -34364,13 +34006,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticShadowIvar", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -34389,7 +34032,7 @@ }, "fullDescription": { "text": "-Wformat-pedantic clang diagnostic · Learn more", - "markdown": "-Wformat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wformat-pedantic)" + "markdown": "-Wformat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wformat-pedantic)" }, "defaultConfiguration": { "enabled": true, @@ -34397,13 +34040,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticFormatPedantic", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -34422,7 +34066,7 @@ }, "fullDescription": { "text": "bugprone-suspicious-missing-comma clang-tidy check · Learn more", - "markdown": "bugprone-suspicious-missing-comma clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/suspicious-missing-comma.html)" + "markdown": "bugprone-suspicious-missing-comma clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/suspicious-missing-comma.html)" }, "defaultConfiguration": { "enabled": true, @@ -34430,13 +34074,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneSuspiciousMissingComma", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -34463,7 +34108,8 @@ "parameters": { "suppressToolId": "ReplaceSubstringWithRangeIndexer", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -34488,7 +34134,7 @@ }, "fullDescription": { "text": "google-objc-avoid-throwing-exception clang-tidy check · Learn more", - "markdown": "google-objc-avoid-throwing-exception clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/google/objc-avoid-throwing-exception.html)" + "markdown": "google-objc-avoid-throwing-exception clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/objc-avoid-throwing-exception.html)" }, "defaultConfiguration": { "enabled": false, @@ -34496,13 +34142,14 @@ "parameters": { "suppressToolId": "CppClangTidyGoogleObjcAvoidThrowingException", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -34514,6 +34161,40 @@ } ] }, + { + "id": "CppClangTidyClangDiagnosticAarch64SmeAttributes", + "shortDescription": { + "text": "aarch64-sme-attributes clang diagnostic" + }, + "fullDescription": { + "text": "-Waarch64-sme-attributes clang diagnostic · Learn more", + "markdown": "-Waarch64-sme-attributes clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#waarch64-sme-attributes)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticAarch64SmeAttributes", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppClangTidyClangDiagnosticInconsistentMissingDestructorOverride", "shortDescription": { @@ -34521,7 +34202,7 @@ }, "fullDescription": { "text": "-Winconsistent-missing-destructor-override clang diagnostic · Learn more", - "markdown": "-Winconsistent-missing-destructor-override clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#winconsistent-missing-destructor-override)" + "markdown": "-Winconsistent-missing-destructor-override clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winconsistent-missing-destructor-override)" }, "defaultConfiguration": { "enabled": true, @@ -34529,13 +34210,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticInconsistentMissingDestructorOverride", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -34554,7 +34236,7 @@ }, "fullDescription": { "text": "-Wpragmas clang diagnostic · Learn more", - "markdown": "-Wpragmas clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpragmas)" + "markdown": "-Wpragmas clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpragmas)" }, "defaultConfiguration": { "enabled": true, @@ -34562,13 +34244,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticPragmas", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -34595,7 +34278,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8634", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -34628,7 +34312,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8633", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -34661,7 +34346,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8632", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -34694,7 +34380,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8631", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -34719,7 +34406,7 @@ }, "fullDescription": { "text": "misc-redundant-expression clang-tidy check · Learn more", - "markdown": "misc-redundant-expression clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/misc/redundant-expression.html)" + "markdown": "misc-redundant-expression clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/redundant-expression.html)" }, "defaultConfiguration": { "enabled": true, @@ -34727,13 +34414,14 @@ "parameters": { "suppressToolId": "CppClangTidyMiscRedundantExpression", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -34752,7 +34440,7 @@ }, "fullDescription": { "text": "-Wtypename-missing clang diagnostic · Learn more", - "markdown": "-Wtypename-missing clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wtypename-missing)" + "markdown": "-Wtypename-missing clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtypename-missing)" }, "defaultConfiguration": { "enabled": true, @@ -34760,13 +34448,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticTypenameMissing", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -34793,13 +34482,14 @@ "parameters": { "suppressToolId": "CppLocalVariableMightNotBeInitialized", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -34826,7 +34516,8 @@ "parameters": { "suppressToolId": "CA1515", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -34851,7 +34542,7 @@ }, "fullDescription": { "text": "-Wthread-safety-verbose clang diagnostic · Learn more", - "markdown": "-Wthread-safety-verbose clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wthread-safety-verbose)" + "markdown": "-Wthread-safety-verbose clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wthread-safety-verbose)" }, "defaultConfiguration": { "enabled": true, @@ -34859,13 +34550,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticThreadSafetyVerbose", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -34892,7 +34584,8 @@ "parameters": { "suppressToolId": "CA1514", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -34925,7 +34618,8 @@ "parameters": { "suppressToolId": "PrivateFieldCanBeConvertedToLocalVariable", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -34958,7 +34652,8 @@ "parameters": { "suppressToolId": "CA1513", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -34991,7 +34686,8 @@ "parameters": { "suppressToolId": "CA1512", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -35024,7 +34720,8 @@ "parameters": { "suppressToolId": "CA1511", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -35057,7 +34754,8 @@ "parameters": { "suppressToolId": "CA1510", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -35090,14 +34788,15 @@ "parameters": { "suppressToolId": "UnexpectedAttribute", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "T4/T4", - "index": 106, + "index": 116, "toolComponent": { "name": "QDNET" } @@ -35114,8 +34813,8 @@ "text": "Local variable can be made const" }, "fullDescription": { - "text": "Local variable can be made const", - "markdown": "Local variable can be made const" + "text": "Local variable can be made const Learn more...", + "markdown": "Local variable can be made const [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rconst-const)" }, "defaultConfiguration": { "enabled": true, @@ -35123,14 +34822,15 @@ "parameters": { "suppressToolId": "CppLocalVariableMayBeConst", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Common Practices and Code Improvements", - "index": 17, + "id": "C_C++/Common Practices and Code Improvements", + "index": 16, "toolComponent": { "name": "QDNET" } @@ -35156,14 +34856,15 @@ "parameters": { "suppressToolId": "UnrealHeaderToolError", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/UnrealHeaderTool", - "index": 103, + "id": "C_C++/UnrealHeaderTool", + "index": 113, "toolComponent": { "name": "QDNET" } @@ -35181,7 +34882,7 @@ }, "fullDescription": { "text": "hicpp-use-auto clang-tidy check · Learn more", - "markdown": "hicpp-use-auto clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/use-auto.html)" + "markdown": "hicpp-use-auto clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/use-auto.html)" }, "defaultConfiguration": { "enabled": false, @@ -35189,13 +34890,14 @@ "parameters": { "suppressToolId": "CppClangTidyHicppUseAuto", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -35214,7 +34916,7 @@ }, "fullDescription": { "text": "abseil-no-internal-dependencies clang-tidy check · Learn more", - "markdown": "abseil-no-internal-dependencies clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/no-internal-dependencies.html)" + "markdown": "abseil-no-internal-dependencies clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/no-internal-dependencies.html)" }, "defaultConfiguration": { "enabled": false, @@ -35222,13 +34924,14 @@ "parameters": { "suppressToolId": "CppClangTidyAbseilNoInternalDependencies", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -35247,7 +34950,7 @@ }, "fullDescription": { "text": "bugprone-reserved-identifier clang-tidy check · Learn more", - "markdown": "bugprone-reserved-identifier clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/reserved-identifier.html)" + "markdown": "bugprone-reserved-identifier clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/reserved-identifier.html)" }, "defaultConfiguration": { "enabled": true, @@ -35255,13 +34958,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneReservedIdentifier", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -35273,6 +34977,40 @@ } ] }, + { + "id": "CppClangTidyClangDiagnosticPreC2yCompatPedantic", + "shortDescription": { + "text": "pre-c2y-compat-pedantic clang diagnostic" + }, + "fullDescription": { + "text": "-Wpre-c2y-compat-pedantic clang diagnostic · Learn more", + "markdown": "-Wpre-c2y-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpre-c2y-compat-pedantic)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticPreC2yCompatPedantic", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppInvalidLineContinuation", "shortDescription": { @@ -35288,13 +35026,14 @@ "parameters": { "suppressToolId": "CppInvalidLineContinuation", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -35313,7 +35052,7 @@ }, "fullDescription": { "text": "-Wundeclared-selector clang diagnostic · Learn more", - "markdown": "-Wundeclared-selector clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wundeclared-selector)" + "markdown": "-Wundeclared-selector clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wundeclared-selector)" }, "defaultConfiguration": { "enabled": true, @@ -35321,13 +35060,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUndeclaredSelector", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -35346,7 +35086,7 @@ }, "fullDescription": { "text": "-Wstring-compare clang diagnostic · Learn more", - "markdown": "-Wstring-compare clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wstring-compare)" + "markdown": "-Wstring-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wstring-compare)" }, "defaultConfiguration": { "enabled": true, @@ -35354,13 +35094,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticStringCompare", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -35387,7 +35128,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8645", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -35412,7 +35154,7 @@ }, "fullDescription": { "text": "-Wpointer-bool-conversion clang diagnostic · Learn more", - "markdown": "-Wpointer-bool-conversion clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpointer-bool-conversion)" + "markdown": "-Wpointer-bool-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpointer-bool-conversion)" }, "defaultConfiguration": { "enabled": true, @@ -35420,13 +35162,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticPointerBoolConversion", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -35453,7 +35196,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8644", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -35486,7 +35230,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8643", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -35519,7 +35264,8 @@ "parameters": { "suppressToolId": "UnusedLocalFunctionReturnValue", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -35552,7 +35298,8 @@ "parameters": { "suppressToolId": "CA1509", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -35585,7 +35332,8 @@ "parameters": { "suppressToolId": "CA1508", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -35618,13 +35366,14 @@ "parameters": { "suppressToolId": "CppMsExtBindingRValueToLvalueReference", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -35651,7 +35400,8 @@ "parameters": { "suppressToolId": "CA1507", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -35684,7 +35434,8 @@ "parameters": { "suppressToolId": "CA1506", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -35717,14 +35468,15 @@ "parameters": { "suppressToolId": "Xaml.RedundantModifiersAttribute", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "XAML/Redundancies in Code", - "index": 71, + "index": 77, "toolComponent": { "name": "QDNET" } @@ -35750,7 +35502,8 @@ "parameters": { "suppressToolId": "CA1505", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -35775,7 +35528,7 @@ }, "fullDescription": { "text": "readability-container-size-empty clang-tidy check · Learn more", - "markdown": "readability-container-size-empty clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/container-size-empty.html)" + "markdown": "readability-container-size-empty clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/container-size-empty.html)" }, "defaultConfiguration": { "enabled": true, @@ -35783,13 +35536,14 @@ "parameters": { "suppressToolId": "CppClangTidyReadabilityContainerSizeEmpty", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -35816,7 +35570,8 @@ "parameters": { "suppressToolId": "InconsistentlySynchronizedField", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -35849,7 +35604,8 @@ "parameters": { "suppressToolId": "CA1502", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -35882,7 +35638,8 @@ "parameters": { "suppressToolId": "CA1501", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -35907,7 +35664,7 @@ }, "fullDescription": { "text": "-Warc-repeated-use-of-weak clang diagnostic · Learn more", - "markdown": "-Warc-repeated-use-of-weak clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#warc-repeated-use-of-weak)" + "markdown": "-Warc-repeated-use-of-weak clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#warc-repeated-use-of-weak)" }, "defaultConfiguration": { "enabled": true, @@ -35915,13 +35672,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticArcRepeatedUseOfWeak", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -35948,14 +35706,15 @@ "parameters": { "suppressToolId": "StructCanBeMadeReadOnly", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -35981,7 +35740,8 @@ "parameters": { "suppressToolId": "UseConfigureAwaitFalse", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -35999,6 +35759,40 @@ } ] }, + { + "id": "UnityErrors", + "shortDescription": { + "text": "Unity Errors" + }, + "fullDescription": { + "text": "Unity Errors", + "markdown": "Unity Errors" + }, + "defaultConfiguration": { + "enabled": false, + "level": "error", + "parameters": { + "suppressToolId": "UnityErrors", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Non configurable", + "index": 52, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppClangTidyGoogleBuildExplicitMakePair", "shortDescription": { @@ -36006,7 +35800,7 @@ }, "fullDescription": { "text": "google-build-explicit-make-pair clang-tidy check · Learn more", - "markdown": "google-build-explicit-make-pair clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/google/build-explicit-make-pair.html)" + "markdown": "google-build-explicit-make-pair clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/build-explicit-make-pair.html)" }, "defaultConfiguration": { "enabled": false, @@ -36014,13 +35808,14 @@ "parameters": { "suppressToolId": "CppClangTidyGoogleBuildExplicitMakePair", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -36047,14 +35842,15 @@ "parameters": { "suppressToolId": "SuggestBaseTypeForParameter", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -36080,13 +35876,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaRetainCount", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -36113,13 +35910,14 @@ "parameters": { "suppressToolId": "CppIncorrectBlankLinesNearBraces", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Formatting", + "id": "C_C++/Formatting", "index": 28, "toolComponent": { "name": "QDNET" @@ -36138,7 +35936,7 @@ }, "fullDescription": { "text": "-Warray-parameter clang diagnostic · Learn more", - "markdown": "-Warray-parameter clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#warray-parameter)" + "markdown": "-Warray-parameter clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#warray-parameter)" }, "defaultConfiguration": { "enabled": true, @@ -36146,13 +35944,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticArrayParameter", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -36171,7 +35970,7 @@ }, "fullDescription": { "text": "-Wnull-pointer-arithmetic clang diagnostic · Learn more", - "markdown": "-Wnull-pointer-arithmetic clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wnull-pointer-arithmetic)" + "markdown": "-Wnull-pointer-arithmetic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnull-pointer-arithmetic)" }, "defaultConfiguration": { "enabled": true, @@ -36179,13 +35978,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticNullPointerArithmetic", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -36212,14 +36012,15 @@ "parameters": { "suppressToolId": "RouteTemplates.RouteParameterConstraintNotResolved", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "ASP.NET route templates/Code Notification", - "index": 47, + "index": 48, "toolComponent": { "name": "QDNET" } @@ -36237,7 +36038,7 @@ }, "fullDescription": { "text": "bugprone-assert-side-effect clang-tidy check · Learn more", - "markdown": "bugprone-assert-side-effect clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/assert-side-effect.html)" + "markdown": "bugprone-assert-side-effect clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/assert-side-effect.html)" }, "defaultConfiguration": { "enabled": true, @@ -36245,13 +36046,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneAssertSideEffect", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -36278,13 +36080,14 @@ "parameters": { "suppressToolId": "CppImplicitDefaultConstructorNotAvailable", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -36311,7 +36114,8 @@ "parameters": { "suppressToolId": "UnusedMemberHierarchy.Global", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -36344,14 +36148,15 @@ "parameters": { "suppressToolId": "ReplaceWithOfType.FirstOrDefault.1", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -36377,14 +36182,49 @@ "parameters": { "suppressToolId": "ReplaceWithOfType.FirstOrDefault.2", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyBugproneCastingThroughVoid", + "shortDescription": { + "text": "bugprone-casting-through-void clang-tidy check" + }, + "fullDescription": { + "text": "bugprone-casting-through-void clang-tidy check · Learn more", + "markdown": "bugprone-casting-through-void clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/casting-through-void.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyBugproneCastingThroughVoid", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang-Tidy Checks", + "index": 8, "toolComponent": { "name": "QDNET" } @@ -36402,7 +36242,7 @@ }, "fullDescription": { "text": "hicpp-deprecated-headers clang-tidy check · Learn more", - "markdown": "hicpp-deprecated-headers clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/deprecated-headers.html)" + "markdown": "hicpp-deprecated-headers clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/deprecated-headers.html)" }, "defaultConfiguration": { "enabled": false, @@ -36410,13 +36250,14 @@ "parameters": { "suppressToolId": "CppClangTidyHicppDeprecatedHeaders", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -36443,7 +36284,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS0252,CS0253", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -36476,13 +36318,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerSecurityInsecureAPIUncheckedReturn", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -36501,7 +36344,7 @@ }, "fullDescription": { "text": "-Wtentative-definition-incomplete-type clang diagnostic · Learn more", - "markdown": "-Wtentative-definition-incomplete-type clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wtentative-definition-incomplete-type)" + "markdown": "-Wtentative-definition-incomplete-type clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtentative-definition-incomplete-type)" }, "defaultConfiguration": { "enabled": true, @@ -36509,13 +36352,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticTentativeDefinitionIncompleteType", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -36534,7 +36378,7 @@ }, "fullDescription": { "text": "-Wincompatible-pointer-types-discards-qualifiers clang diagnostic · Learn more", - "markdown": "-Wincompatible-pointer-types-discards-qualifiers clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wincompatible-pointer-types-discards-qualifiers)" + "markdown": "-Wincompatible-pointer-types-discards-qualifiers clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wincompatible-pointer-types-discards-qualifiers)" }, "defaultConfiguration": { "enabled": true, @@ -36542,13 +36386,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticIncompatiblePointerTypesDiscardsQualifiers", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -36575,13 +36420,14 @@ "parameters": { "suppressToolId": "CppMustBePublicVirtualToImplementInterface", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -36600,7 +36446,7 @@ }, "fullDescription": { "text": "-Wimplicit-float-conversion clang diagnostic · Learn more", - "markdown": "-Wimplicit-float-conversion clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wimplicit-float-conversion)" + "markdown": "-Wimplicit-float-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wimplicit-float-conversion)" }, "defaultConfiguration": { "enabled": true, @@ -36608,13 +36454,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticImplicitFloatConversion", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -36641,14 +36488,15 @@ "parameters": { "suppressToolId": "AspUnusedRegisterDirectiveHighlighting", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "Aspx/Redundancies in Code", - "index": 108, + "index": 119, "toolComponent": { "name": "QDNET" } @@ -36665,8 +36513,8 @@ "text": "Redundant type declaration body" }, "fullDescription": { - "text": "Empty type declaration body can be replaced with semicolon", - "markdown": "Empty type declaration body can be replaced with semicolon" + "text": "Empty type declaration body can be replaced with semicolon Learn more...", + "markdown": "Empty type declaration body can be replaced with semicolon [Learn more...](https://www.jetbrains.com/help/rider/RedundantTypeDeclarationBody.html)" }, "defaultConfiguration": { "enabled": true, @@ -36674,7 +36522,8 @@ "parameters": { "suppressToolId": "RedundantTypeDeclarationBody", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -36699,7 +36548,7 @@ }, "fullDescription": { "text": "-Wshift-count-negative clang diagnostic · Learn more", - "markdown": "-Wshift-count-negative clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wshift-count-negative)" + "markdown": "-Wshift-count-negative clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wshift-count-negative)" }, "defaultConfiguration": { "enabled": true, @@ -36707,13 +36556,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticShiftCountNegative", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -36732,7 +36582,7 @@ }, "fullDescription": { "text": "-Wthread-safety-precise clang diagnostic · Learn more", - "markdown": "-Wthread-safety-precise clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wthread-safety-precise)" + "markdown": "-Wthread-safety-precise clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wthread-safety-precise)" }, "defaultConfiguration": { "enabled": true, @@ -36740,13 +36590,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticThreadSafetyPrecise", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -36765,7 +36616,7 @@ }, "fullDescription": { "text": "bugprone-signal-handler clang-tidy check · Learn more", - "markdown": "bugprone-signal-handler clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/signal-handler.html)" + "markdown": "bugprone-signal-handler clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/signal-handler.html)" }, "defaultConfiguration": { "enabled": true, @@ -36773,13 +36624,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneSignalHandler", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -36806,14 +36658,15 @@ "parameters": { "suppressToolId": "RouteTemplates.AmbiguousMatchingConstraintConstructor", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "ASP.NET route templates/Code Notification", - "index": 47, + "index": 48, "toolComponent": { "name": "QDNET" } @@ -36839,7 +36692,8 @@ "parameters": { "suppressToolId": "RedundantNotNullConstraint", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -36872,14 +36726,15 @@ "parameters": { "suppressToolId": "UnsupportedRequiredBaseType", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Constraints Violations", - "index": 73, + "index": 80, "toolComponent": { "name": "QDNET" } @@ -36905,14 +36760,15 @@ "parameters": { "suppressToolId": "CppClassCanBeFinal", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Common Practices and Code Improvements", - "index": 17, + "id": "C_C++/Common Practices and Code Improvements", + "index": 16, "toolComponent": { "name": "QDNET" } @@ -36938,14 +36794,15 @@ "parameters": { "suppressToolId": "Unity.InefficientPropertyAccess", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity", - "index": 19, + "index": 18, "toolComponent": { "name": "QDNET" } @@ -36971,7 +36828,8 @@ "parameters": { "suppressToolId": "TabsAndSpacesMismatch", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -37004,14 +36862,15 @@ "parameters": { "suppressToolId": "Unity.DuplicateEventFunction", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity", - "index": 19, + "index": 18, "toolComponent": { "name": "QDNET" } @@ -37029,7 +36888,7 @@ }, "fullDescription": { "text": "-Wdeprecated-volatile clang diagnostic · Learn more", - "markdown": "-Wdeprecated-volatile clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdeprecated-volatile)" + "markdown": "-Wdeprecated-volatile clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-volatile)" }, "defaultConfiguration": { "enabled": true, @@ -37037,13 +36896,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedVolatile", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -37062,7 +36922,7 @@ }, "fullDescription": { "text": "-Wc++98-compat-local-type-template-args clang diagnostic · Learn more", - "markdown": "-Wc++98-compat-local-type-template-args clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-98-compat-local-type-template-args)" + "markdown": "-Wc++98-compat-local-type-template-args clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-98-compat-local-type-template-args)" }, "defaultConfiguration": { "enabled": false, @@ -37070,13 +36930,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCpp98CompatLocalTypeTemplateArgs", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -37103,7 +36964,8 @@ "parameters": { "suppressToolId": "ReplaceAutoPropertyWithComputedProperty", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -37136,7 +36998,8 @@ "parameters": { "suppressToolId": "EnforceLockStatementBraces", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -37161,7 +37024,7 @@ }, "fullDescription": { "text": "-Wmicrosoft-pure-definition clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-pure-definition clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-pure-definition)" + "markdown": "-Wmicrosoft-pure-definition clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-pure-definition)" }, "defaultConfiguration": { "enabled": true, @@ -37169,13 +37032,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftPureDefinition", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -37202,13 +37066,14 @@ "parameters": { "suppressToolId": "CppUESourceFileWithoutPredefinedMacros", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Unreal Engine", + "id": "C_C++/Unreal Engine", "index": 6, "toolComponent": { "name": "QDNET" @@ -37227,7 +37092,7 @@ }, "fullDescription": { "text": "performance-inefficient-algorithm clang-tidy check · Learn more", - "markdown": "performance-inefficient-algorithm clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/performance/inefficient-algorithm.html)" + "markdown": "performance-inefficient-algorithm clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance/inefficient-algorithm.html)" }, "defaultConfiguration": { "enabled": true, @@ -37235,13 +37100,14 @@ "parameters": { "suppressToolId": "CppClangTidyPerformanceInefficientAlgorithm", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -37256,19 +37122,20 @@ { "id": "NotDisposedResourceIsReturned", "shortDescription": { - "text": "Return value must be disposed but the method or function is not annotated with [MustDisposeResource]" + "text": "Return value should be disposed but the method or function is not annotated with [MustDisposeResource]" }, "fullDescription": { - "text": "Return value must be disposed but the method or function is not annotated with [MustDisposeResource] Learn more...", - "markdown": "Return value must be disposed but the method or function is not annotated with \\[MustDisposeResource\\] [Learn more...](https://www.jetbrains.com/help/rider/NotDisposedResourceIsReturned.html)" + "text": "Return value should be disposed but the method or function is not annotated with [MustDisposeResource] Learn more...", + "markdown": "Return value should be disposed but the method or function is not annotated with \\[MustDisposeResource\\] [Learn more...](https://www.jetbrains.com/help/rider/NotDisposedResourceIsReturned.html)" }, "defaultConfiguration": { "enabled": true, - "level": "warning", + "level": "note", "parameters": { "suppressToolId": "NotDisposedResourceIsReturned", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -37301,7 +37168,8 @@ "parameters": { "suppressToolId": "NullnessAnnotationConflictWithJetBrainsAnnotations", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -37334,14 +37202,15 @@ "parameters": { "suppressToolId": "FSharpRedundantUnionCaseFieldPatterns", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "F#/Redundancies in Code", - "index": 67, + "index": 73, "toolComponent": { "name": "QDNET" } @@ -37367,7 +37236,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8670", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -37400,13 +37270,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerCoreNonnilStringConstants", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -37425,7 +37296,7 @@ }, "fullDescription": { "text": "cppcoreguidelines-pro-type-cstyle-cast clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-pro-type-cstyle-cast clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/pro-type-cstyle-cast.html)" + "markdown": "cppcoreguidelines-pro-type-cstyle-cast clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/pro-type-cstyle-cast.html)" }, "defaultConfiguration": { "enabled": false, @@ -37433,13 +37304,14 @@ "parameters": { "suppressToolId": "CppClangTidyCppcoreguidelinesProTypeCstyleCast", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -37458,7 +37330,7 @@ }, "fullDescription": { "text": "-Wprofile-instr-missing clang diagnostic · Learn more", - "markdown": "-Wprofile-instr-missing clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wprofile-instr-missing)" + "markdown": "-Wprofile-instr-missing clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wprofile-instr-missing)" }, "defaultConfiguration": { "enabled": true, @@ -37466,13 +37338,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticProfileInstrMissing", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -37499,7 +37372,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS0728", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -37524,7 +37398,7 @@ }, "fullDescription": { "text": "-Wpre-c++2c-compat clang diagnostic · Learn more", - "markdown": "-Wpre-c++2c-compat clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpre-c-2c-compat)" + "markdown": "-Wpre-c++2c-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpre-c-2c-compat)" }, "defaultConfiguration": { "enabled": false, @@ -37532,13 +37406,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticPreCpp2cCompat", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -37565,14 +37440,15 @@ "parameters": { "suppressToolId": "Unity.BurstBoxingNotSupported", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity Burst Compiler Warnings", - "index": 54, + "index": 57, "toolComponent": { "name": "QDNET" } @@ -37598,13 +37474,14 @@ "parameters": { "suppressToolId": "CppDeclaratorNeverUsed", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -37631,7 +37508,8 @@ "parameters": { "suppressToolId": "RedundantDiscardDesignation", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -37656,7 +37534,7 @@ }, "fullDescription": { "text": "-Wimplicit-atomic-properties clang diagnostic · Learn more", - "markdown": "-Wimplicit-atomic-properties clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wimplicit-atomic-properties)" + "markdown": "-Wimplicit-atomic-properties clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wimplicit-atomic-properties)" }, "defaultConfiguration": { "enabled": true, @@ -37664,13 +37542,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticImplicitAtomicProperties", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -37689,7 +37568,7 @@ }, "fullDescription": { "text": "-Wrequires-super-attribute clang diagnostic · Learn more", - "markdown": "-Wrequires-super-attribute clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wrequires-super-attribute)" + "markdown": "-Wrequires-super-attribute clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wrequires-super-attribute)" }, "defaultConfiguration": { "enabled": true, @@ -37697,13 +37576,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticRequiresSuperAttribute", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -37730,14 +37610,15 @@ "parameters": { "suppressToolId": "FSharpRedundantRequireQualifiedAccessAttribute", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "F#/Redundancies in Code", - "index": 67, + "index": 73, "toolComponent": { "name": "QDNET" } @@ -37763,7 +37644,8 @@ "parameters": { "suppressToolId": "UnusedLocalFunction.Compiler", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -37788,7 +37670,7 @@ }, "fullDescription": { "text": "-Wdxil-validation clang diagnostic · Learn more", - "markdown": "-Wdxil-validation clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdxil-validation)" + "markdown": "-Wdxil-validation clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdxil-validation)" }, "defaultConfiguration": { "enabled": true, @@ -37796,13 +37678,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDxilValidation", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -37829,13 +37712,14 @@ "parameters": { "suppressToolId": "CppRedundantMemberInitializer", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Redundancies in Code", + "id": "C_C++/Redundancies in Code", "index": 34, "toolComponent": { "name": "QDNET" @@ -37862,7 +37746,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS0659", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -37895,13 +37780,14 @@ "parameters": { "suppressToolId": "CppUEVersionFileDoesntExist", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Unreal Engine", + "id": "C_C++/Unreal Engine", "index": 6, "toolComponent": { "name": "QDNET" @@ -37928,7 +37814,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS0657", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -37961,7 +37848,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS0658", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -37994,7 +37882,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS0652", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -38027,7 +37916,8 @@ "parameters": { "suppressToolId": "VBReplaceWithSingleCallToFirst", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -38060,7 +37950,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS1981", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -38093,13 +37984,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerSecurityInsecureAPIDeprecatedOrUnsafeBufferHandling", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -38126,7 +38018,8 @@ "parameters": { "suppressToolId": "RemoveRedundantBraces", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -38159,7 +38052,8 @@ "parameters": { "suppressToolId": "ArrangeStaticMemberQualifier", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -38192,13 +38086,14 @@ "parameters": { "suppressToolId": "CppPossiblyErroneousEmptyStatements", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -38225,7 +38120,8 @@ "parameters": { "suppressToolId": "VBStringCompareToIsCultureSpecific", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -38258,14 +38154,15 @@ "parameters": { "suppressToolId": "CppClassIsIncomplete", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Compiler Warnings", - "index": 69, + "id": "C_C++/Compiler Warnings", + "index": 75, "toolComponent": { "name": "QDNET" } @@ -38291,7 +38188,8 @@ "parameters": { "suppressToolId": "EnforceUsingStatementBraces", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -38316,7 +38214,7 @@ }, "fullDescription": { "text": "cert-dcl58-cpp clang-tidy check · Learn more", - "markdown": "cert-dcl58-cpp clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cert/dcl58-cpp.html)" + "markdown": "cert-dcl58-cpp clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/dcl58-cpp.html)" }, "defaultConfiguration": { "enabled": true, @@ -38324,13 +38222,14 @@ "parameters": { "suppressToolId": "CppClangTidyCertDcl58Cpp", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -38357,7 +38256,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS1998", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -38382,7 +38282,7 @@ }, "fullDescription": { "text": "-Wredundant-parens clang diagnostic · Learn more", - "markdown": "-Wredundant-parens clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wredundant-parens)" + "markdown": "-Wredundant-parens clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wredundant-parens)" }, "defaultConfiguration": { "enabled": true, @@ -38390,13 +38290,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticRedundantParens", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -38415,7 +38316,7 @@ }, "fullDescription": { "text": "bugprone-undelegated-constructor clang-tidy check · Learn more", - "markdown": "bugprone-undelegated-constructor clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/undelegated-constructor.html)" + "markdown": "bugprone-undelegated-constructor clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/undelegated-constructor.html)" }, "defaultConfiguration": { "enabled": true, @@ -38423,13 +38324,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneUndelegatedConstructor", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -38448,7 +38350,7 @@ }, "fullDescription": { "text": "cppcoreguidelines-avoid-reference-coroutine-parameters clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-avoid-reference-coroutine-parameters clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/avoid-reference-coroutine-parameters.html)" + "markdown": "cppcoreguidelines-avoid-reference-coroutine-parameters clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/avoid-reference-coroutine-parameters.html)" }, "defaultConfiguration": { "enabled": false, @@ -38456,13 +38358,14 @@ "parameters": { "suppressToolId": "CppClangTidyCppcoreguidelinesAvoidReferenceCoroutineParameters", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -38489,13 +38392,14 @@ "parameters": { "suppressToolId": "CppRedundantEmptyDeclaration", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Redundancies in Code", + "id": "C_C++/Redundancies in Code", "index": 34, "toolComponent": { "name": "QDNET" @@ -38522,7 +38426,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS0665", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -38555,14 +38460,15 @@ "parameters": { "suppressToolId": "Asp.SkinNotResolved", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "Aspx/Potential Code Quality Issues", - "index": 60, + "index": 64, "toolComponent": { "name": "QDNET" } @@ -38588,14 +38494,15 @@ "parameters": { "suppressToolId": "FSharpUseWildSelfId", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "F#/Redundancies in Code", - "index": 67, + "index": 73, "toolComponent": { "name": "QDNET" } @@ -38621,7 +38528,8 @@ "parameters": { "suppressToolId": "ConfusingCharAsIntegerInConstructor", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -38654,7 +38562,8 @@ "parameters": { "suppressToolId": "PossibleUnintendedQueryableAsEnumerable", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -38679,7 +38588,7 @@ }, "fullDescription": { "text": "-Wheader-guard clang diagnostic · Learn more", - "markdown": "-Wheader-guard clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wheader-guard)" + "markdown": "-Wheader-guard clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wheader-guard)" }, "defaultConfiguration": { "enabled": true, @@ -38687,13 +38596,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticHeaderGuard", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -38712,7 +38622,7 @@ }, "fullDescription": { "text": "-Wunused-parameter clang diagnostic · Learn more", - "markdown": "-Wunused-parameter clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunused-parameter)" + "markdown": "-Wunused-parameter clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunused-parameter)" }, "defaultConfiguration": { "enabled": false, @@ -38720,13 +38630,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnusedParameter", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -38753,14 +38664,15 @@ "parameters": { "suppressToolId": "Html.TagShouldBeSelfClosed", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "HTML/Potential Code Quality Issues", - "index": 51, + "index": 54, "toolComponent": { "name": "QDNET" } @@ -38786,7 +38698,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8597", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -38819,7 +38732,8 @@ "parameters": { "suppressToolId": "VBReplaceWithSingleOrDefault", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -38844,7 +38758,7 @@ }, "fullDescription": { "text": "-Wdeprecated-coroutine clang diagnostic · Learn more", - "markdown": "-Wdeprecated-coroutine clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdeprecated-coroutine)" + "markdown": "-Wdeprecated-coroutine clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-coroutine)" }, "defaultConfiguration": { "enabled": true, @@ -38852,13 +38766,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedCoroutine", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -38877,7 +38792,7 @@ }, "fullDescription": { "text": "-Wblock-capture-autoreleasing clang diagnostic · Learn more", - "markdown": "-Wblock-capture-autoreleasing clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wblock-capture-autoreleasing)" + "markdown": "-Wblock-capture-autoreleasing clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wblock-capture-autoreleasing)" }, "defaultConfiguration": { "enabled": true, @@ -38885,13 +38800,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticBlockCaptureAutoreleasing", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -38918,7 +38834,8 @@ "parameters": { "suppressToolId": "SimilarAnonymousTypeNearby", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -38943,7 +38860,7 @@ }, "fullDescription": { "text": "modernize-loop-convert clang-tidy check · Learn more", - "markdown": "modernize-loop-convert clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/loop-convert.html)" + "markdown": "modernize-loop-convert clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/loop-convert.html)" }, "defaultConfiguration": { "enabled": true, @@ -38951,13 +38868,14 @@ "parameters": { "suppressToolId": "CppClangTidyModernizeLoopConvert", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -38984,13 +38902,14 @@ "parameters": { "suppressToolId": "CppRedundantZeroInitializerInAggregateInitialization", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Redundancies in Code", + "id": "C_C++/Redundancies in Code", "index": 34, "toolComponent": { "name": "QDNET" @@ -39008,8 +38927,8 @@ "text": "Non-accessed field (non-private accessibility)" }, "fullDescription": { - "text": "Field is assigned but its value is never used", - "markdown": "Field is assigned but its value is never used" + "text": "Field is assigned but its value is never used Learn more...", + "markdown": "Field is assigned but its value is never used [Learn more...](https://www.jetbrains.com/help/rider/NotAccessedField.Global.html)" }, "defaultConfiguration": { "enabled": true, @@ -39017,7 +38936,8 @@ "parameters": { "suppressToolId": "NotAccessedField.Global", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -39050,14 +38970,15 @@ "parameters": { "suppressToolId": "Unity.RedundantHideInInspectorAttribute", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity", - "index": 19, + "index": 18, "toolComponent": { "name": "QDNET" } @@ -39083,13 +39004,14 @@ "parameters": { "suppressToolId": "CppUnnecessaryWhitespace", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Formatting", + "id": "C_C++/Formatting", "index": 28, "toolComponent": { "name": "QDNET" @@ -39108,7 +39030,7 @@ }, "fullDescription": { "text": "bugprone-misplaced-pointer-arithmetic-in-alloc clang-tidy check · Learn more", - "markdown": "bugprone-misplaced-pointer-arithmetic-in-alloc clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/misplaced-pointer-arithmetic-in-alloc.html)" + "markdown": "bugprone-misplaced-pointer-arithmetic-in-alloc clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/misplaced-pointer-arithmetic-in-alloc.html)" }, "defaultConfiguration": { "enabled": true, @@ -39116,13 +39038,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneMisplacedPointerArithmeticInAlloc", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -39149,14 +39072,15 @@ "parameters": { "suppressToolId": "Unity.LoadSceneUnknownSceneName", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity", - "index": 19, + "index": 18, "toolComponent": { "name": "QDNET" } @@ -39182,14 +39106,15 @@ "parameters": { "suppressToolId": "ReplaceWithOfType.LastOrDefault.2", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -39215,14 +39140,15 @@ "parameters": { "suppressToolId": "ReplaceWithOfType.LastOrDefault.1", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -39239,8 +39165,8 @@ "text": "Non-accessed local variable" }, "fullDescription": { - "text": "Local variable is assigned but its value is never used", - "markdown": "Local variable is assigned but its value is never used" + "text": "Local variable is assigned but its value is never used Learn more...", + "markdown": "Local variable is assigned but its value is never used [Learn more...](https://www.jetbrains.com/help/rider/NotAccessedVariable.html)" }, "defaultConfiguration": { "enabled": true, @@ -39248,7 +39174,8 @@ "parameters": { "suppressToolId": "NotAccessedVariable", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -39281,7 +39208,8 @@ "parameters": { "suppressToolId": "OutParameterValueIsAlwaysDiscarded.Local", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -39314,7 +39242,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS0642", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -39339,7 +39268,7 @@ }, "fullDescription": { "text": "bugprone-move-forwarding-reference clang-tidy check · Learn more", - "markdown": "bugprone-move-forwarding-reference clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/move-forwarding-reference.html)" + "markdown": "bugprone-move-forwarding-reference clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/move-forwarding-reference.html)" }, "defaultConfiguration": { "enabled": true, @@ -39347,13 +39276,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneMoveForwardingReference", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -39380,14 +39310,15 @@ "parameters": { "suppressToolId": "WebConfig.ModuleNotResolved", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "Web.Config/Potential Code Quality Issues", - "index": 75, + "index": 82, "toolComponent": { "name": "QDNET" } @@ -39413,7 +39344,8 @@ "parameters": { "suppressToolId": "VBStringEndsWithIsCultureSpecific", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -39446,7 +39378,8 @@ "parameters": { "suppressToolId": "ConditionalTernaryEqualBranch", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -39471,7 +39404,7 @@ }, "fullDescription": { "text": "hicpp-avoid-goto clang-tidy check · Learn more", - "markdown": "hicpp-avoid-goto clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/avoid-goto.html)" + "markdown": "hicpp-avoid-goto clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/avoid-goto.html)" }, "defaultConfiguration": { "enabled": true, @@ -39479,13 +39412,14 @@ "parameters": { "suppressToolId": "CppClangTidyHicppAvoidGoto", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -39500,7 +39434,7 @@ { "id": "Unity.Entities.InconsistentModifiersForDotsInheritor", "shortDescription": { - "text": "{0}'s inheritor '{1}' must be '{2}{3}{4}'" + "text": "DOTS: Inconsistent type keywords" }, "fullDescription": { "text": "{0}'s inheritor '{1}' must be '{2}{3}{4}'", @@ -39512,14 +39446,15 @@ "parameters": { "suppressToolId": "Unity.Entities.InconsistentModifiersForDotsInheritor", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity", - "index": 19, + "index": 18, "toolComponent": { "name": "QDNET" } @@ -39537,7 +39472,7 @@ }, "fullDescription": { "text": "-Wdeprecated-objc-pointer-introspection clang diagnostic · Learn more", - "markdown": "-Wdeprecated-objc-pointer-introspection clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdeprecated-objc-pointer-introspection)" + "markdown": "-Wdeprecated-objc-pointer-introspection clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-objc-pointer-introspection)" }, "defaultConfiguration": { "enabled": true, @@ -39545,13 +39480,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedObjcPointerIntrospection", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -39570,7 +39506,7 @@ }, "fullDescription": { "text": "cppcoreguidelines-owning-memory clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-owning-memory clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/owning-memory.html)" + "markdown": "cppcoreguidelines-owning-memory clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/owning-memory.html)" }, "defaultConfiguration": { "enabled": false, @@ -39578,13 +39514,14 @@ "parameters": { "suppressToolId": "CppClangTidyCppcoreguidelinesOwningMemory", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -39603,7 +39540,7 @@ }, "fullDescription": { "text": "-Wsemicolon-before-method-body clang diagnostic · Learn more", - "markdown": "-Wsemicolon-before-method-body clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wsemicolon-before-method-body)" + "markdown": "-Wsemicolon-before-method-body clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wsemicolon-before-method-body)" }, "defaultConfiguration": { "enabled": true, @@ -39611,13 +39548,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticSemicolonBeforeMethodBody", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -39644,13 +39582,14 @@ "parameters": { "suppressToolId": "CppDeprecatedEntity", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -39669,7 +39608,7 @@ }, "fullDescription": { "text": "-Wenum-compare-switch clang diagnostic · Learn more", - "markdown": "-Wenum-compare-switch clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wenum-compare-switch)" + "markdown": "-Wenum-compare-switch clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wenum-compare-switch)" }, "defaultConfiguration": { "enabled": true, @@ -39677,13 +39616,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticEnumCompareSwitch", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -39702,7 +39642,7 @@ }, "fullDescription": { "text": "-Wunused-private-field clang diagnostic · Learn more", - "markdown": "-Wunused-private-field clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunused-private-field)" + "markdown": "-Wunused-private-field clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunused-private-field)" }, "defaultConfiguration": { "enabled": true, @@ -39710,13 +39650,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnusedPrivateField", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -39743,7 +39684,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS0693", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -39768,7 +39710,7 @@ }, "fullDescription": { "text": "hicpp-braces-around-statements clang-tidy check · Learn more", - "markdown": "hicpp-braces-around-statements clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/braces-around-statements.html)" + "markdown": "hicpp-braces-around-statements clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/braces-around-statements.html)" }, "defaultConfiguration": { "enabled": false, @@ -39776,13 +39718,14 @@ "parameters": { "suppressToolId": "CppClangTidyHicppBracesAroundStatements", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -39801,7 +39744,7 @@ }, "fullDescription": { "text": "modernize-replace-disallow-copy-and-assign-macro clang-tidy check · Learn more", - "markdown": "modernize-replace-disallow-copy-and-assign-macro clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/replace-disallow-copy-and-assign-macro.html)" + "markdown": "modernize-replace-disallow-copy-and-assign-macro clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/replace-disallow-copy-and-assign-macro.html)" }, "defaultConfiguration": { "enabled": true, @@ -39809,13 +39752,14 @@ "parameters": { "suppressToolId": "CppClangTidyModernizeReplaceDisallowCopyAndAssignMacro", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -39834,7 +39778,7 @@ }, "fullDescription": { "text": "-Wunicode-whitespace clang diagnostic · Learn more", - "markdown": "-Wunicode-whitespace clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunicode-whitespace)" + "markdown": "-Wunicode-whitespace clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunicode-whitespace)" }, "defaultConfiguration": { "enabled": true, @@ -39842,13 +39786,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnicodeWhitespace", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -39875,14 +39820,15 @@ "parameters": { "suppressToolId": "Asp.InvalidControlType", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "Aspx/Potential Code Quality Issues", - "index": 60, + "index": 64, "toolComponent": { "name": "QDNET" } @@ -39908,7 +39854,8 @@ "parameters": { "suppressToolId": "OutParameterValueIsAlwaysDiscarded.Global", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -39941,14 +39888,15 @@ "parameters": { "suppressToolId": "VBWarnings__BC42353,BC42354,BC42355", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "VB.NET/Compiler Warnings", - "index": 100, + "index": 110, "toolComponent": { "name": "QDNET" } @@ -39974,7 +39922,8 @@ "parameters": { "suppressToolId": "ArrangeMethodOrOperatorBody", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -40007,7 +39956,8 @@ "parameters": { "suppressToolId": "NUnit.TestCaseSourceMustBeFieldPropertyMethod", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -40032,7 +39982,7 @@ }, "fullDescription": { "text": "-Wpragma-pack-suspicious-include clang diagnostic · Learn more", - "markdown": "-Wpragma-pack-suspicious-include clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpragma-pack-suspicious-include)" + "markdown": "-Wpragma-pack-suspicious-include clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpragma-pack-suspicious-include)" }, "defaultConfiguration": { "enabled": true, @@ -40040,13 +39990,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticPragmaPackSuspiciousInclude", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -40073,7 +40024,8 @@ "parameters": { "suppressToolId": "RedundantOverload.Global", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -40098,7 +40050,7 @@ }, "fullDescription": { "text": "-Wc++98-compat clang diagnostic · Learn more", - "markdown": "-Wc++98-compat clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-98-compat)" + "markdown": "-Wc++98-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-98-compat)" }, "defaultConfiguration": { "enabled": false, @@ -40106,13 +40058,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCpp98Compat", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -40131,7 +40084,7 @@ }, "fullDescription": { "text": "-Wgnu-case-range clang diagnostic · Learn more", - "markdown": "-Wgnu-case-range clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wgnu-case-range)" + "markdown": "-Wgnu-case-range clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-case-range)" }, "defaultConfiguration": { "enabled": true, @@ -40139,13 +40092,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticGnuCaseRange", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -40172,7 +40126,8 @@ "parameters": { "suppressToolId": "PossibleIntendedRethrow", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -40197,7 +40152,7 @@ }, "fullDescription": { "text": "-Watimport-in-framework-header clang diagnostic · Learn more", - "markdown": "-Watimport-in-framework-header clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#watimport-in-framework-header)" + "markdown": "-Watimport-in-framework-header clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#watimport-in-framework-header)" }, "defaultConfiguration": { "enabled": true, @@ -40205,13 +40160,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticAtimportInFrameworkHeader", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -40238,7 +40194,8 @@ "parameters": { "suppressToolId": "Xaml.IgnoredPathHighlighting", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -40271,14 +40228,15 @@ "parameters": { "suppressToolId": "CppEnforceForStatementBraces", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Syntax Style", - "index": 83, + "id": "C_C++/Syntax Style", + "index": 91, "toolComponent": { "name": "QDNET" } @@ -40304,7 +40262,8 @@ "parameters": { "suppressToolId": "ForCanBeConvertedToForeach", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -40322,6 +40281,40 @@ } ] }, + { + "id": "CppClangTidyClangDiagnosticExplicitSpecializationStorageClass", + "shortDescription": { + "text": "explicit-specialization-storage-class clang diagnostic" + }, + "fullDescription": { + "text": "-Wexplicit-specialization-storage-class clang diagnostic · Learn more", + "markdown": "-Wexplicit-specialization-storage-class clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wexplicit-specialization-storage-class)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticExplicitSpecializationStorageClass", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "FSharpRedundantNameQualifier", "shortDescription": { @@ -40337,14 +40330,15 @@ "parameters": { "suppressToolId": "FSharpRedundantNameQualifier", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "F#/Redundancies in Code", - "index": 67, + "index": 73, "toolComponent": { "name": "QDNET" } @@ -40362,7 +40356,7 @@ }, "fullDescription": { "text": "-Wmissing-braces clang diagnostic · Learn more", - "markdown": "-Wmissing-braces clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmissing-braces)" + "markdown": "-Wmissing-braces clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmissing-braces)" }, "defaultConfiguration": { "enabled": true, @@ -40370,13 +40364,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMissingBraces", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -40403,14 +40398,15 @@ "parameters": { "suppressToolId": "Mvc.TemplateNotResolved", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "Aspx/Potential Code Quality Issues", - "index": 60, + "index": 64, "toolComponent": { "name": "QDNET" } @@ -40436,14 +40432,15 @@ "parameters": { "suppressToolId": "Xaml.IndexOutOfGridDefinition", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "XAML/Potential Code Quality Issues", - "index": 44, + "index": 45, "toolComponent": { "name": "QDNET" } @@ -40461,7 +40458,7 @@ }, "fullDescription": { "text": "bugprone-stringview-nullptr clang-tidy check · Learn more", - "markdown": "bugprone-stringview-nullptr clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/stringview-nullptr.html)" + "markdown": "bugprone-stringview-nullptr clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/stringview-nullptr.html)" }, "defaultConfiguration": { "enabled": true, @@ -40469,13 +40466,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneStringviewNullptr", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -40494,7 +40492,7 @@ }, "fullDescription": { "text": "-Wundefined-bool-conversion clang diagnostic · Learn more", - "markdown": "-Wundefined-bool-conversion clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wundefined-bool-conversion)" + "markdown": "-Wundefined-bool-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wundefined-bool-conversion)" }, "defaultConfiguration": { "enabled": true, @@ -40502,13 +40500,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUndefinedBoolConversion", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -40535,14 +40534,49 @@ "parameters": { "suppressToolId": "CppUseRangeAlgorithm", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Common Practices and Code Improvements", - "index": 17, + "id": "C_C++/Common Practices and Code Improvements", + "index": 16, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticOpenmpTargetException", + "shortDescription": { + "text": "openmp-target-exception clang diagnostic" + }, + "fullDescription": { + "text": "-Wopenmp-target-exception clang diagnostic · Learn more", + "markdown": "-Wopenmp-target-exception clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wopenmp-target-exception)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticOpenmpTargetException", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, "toolComponent": { "name": "QDNET" } @@ -40560,7 +40594,7 @@ }, "fullDescription": { "text": "-Wparentheses clang diagnostic · Learn more", - "markdown": "-Wparentheses clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wparentheses)" + "markdown": "-Wparentheses clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wparentheses)" }, "defaultConfiguration": { "enabled": true, @@ -40568,13 +40602,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticParentheses", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -40601,7 +40636,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS0675", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -40634,13 +40670,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerSecurityInsecureAPIMkstemp", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -40652,39 +40689,6 @@ } ] }, - { - "id": "ENC1007", - "shortDescription": { - "text": "RoslynAnalyzers One or more changes result in a new type being created by the compiler, which requires restarting the application because it is not supported by the runtime" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC1007", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, { "id": "MissingIndent", "shortDescription": { @@ -40700,7 +40704,8 @@ "parameters": { "suppressToolId": "MissingIndent", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -40733,7 +40738,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS0672", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -40766,14 +40772,15 @@ "parameters": { "suppressToolId": "Html.TagNotResolved", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "HTML/Potential Code Quality Issues", - "index": 51, + "index": 54, "toolComponent": { "name": "QDNET" } @@ -40799,7 +40806,8 @@ "parameters": { "suppressToolId": "ArrangeAttributes", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -40832,7 +40840,8 @@ "parameters": { "suppressToolId": "RedundantDeclarationSemicolon", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -40857,7 +40866,7 @@ }, "fullDescription": { "text": "misc-throw-by-value-catch-by-reference clang-tidy check · Learn more", - "markdown": "misc-throw-by-value-catch-by-reference clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/misc/throw-by-value-catch-by-reference.html)" + "markdown": "misc-throw-by-value-catch-by-reference clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/throw-by-value-catch-by-reference.html)" }, "defaultConfiguration": { "enabled": true, @@ -40865,13 +40874,14 @@ "parameters": { "suppressToolId": "CppClangTidyMiscThrowByValueCatchByReference", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -40890,7 +40900,7 @@ }, "fullDescription": { "text": "modernize-use-equals-delete clang-tidy check · Learn more", - "markdown": "modernize-use-equals-delete clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-equals-delete.html)" + "markdown": "modernize-use-equals-delete clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-equals-delete.html)" }, "defaultConfiguration": { "enabled": true, @@ -40898,13 +40908,14 @@ "parameters": { "suppressToolId": "CppClangTidyModernizeUseEqualsDelete", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -40923,7 +40934,7 @@ }, "fullDescription": { "text": "-Wbuiltin-macro-redefined clang diagnostic · Learn more", - "markdown": "-Wbuiltin-macro-redefined clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wbuiltin-macro-redefined)" + "markdown": "-Wbuiltin-macro-redefined clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wbuiltin-macro-redefined)" }, "defaultConfiguration": { "enabled": true, @@ -40931,13 +40942,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticBuiltinMacroRedefined", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -40964,14 +40976,15 @@ "parameters": { "suppressToolId": "ReplaceWithSingleAssignment.False", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -40997,14 +41010,15 @@ "parameters": { "suppressToolId": "MissingAltAttributeInImgTag", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "HTML/Common Practices and Code Improvements", - "index": 68, + "index": 74, "toolComponent": { "name": "QDNET" } @@ -41030,13 +41044,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerUnixDynamicMemoryModeling", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -41063,7 +41078,8 @@ "parameters": { "suppressToolId": "InheritdocConsiderUsage", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -41096,7 +41112,8 @@ "parameters": { "suppressToolId": "UnusedParameterInPartialMethod", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -41114,72 +41131,6 @@ } ] }, - { - "id": "ENC1006", - "shortDescription": { - "text": "RoslynAnalyzers Unable to read source file '{0}' or the PDB built for the containing project. Any changes made to this file while debugging won't be applied until its content matches the built source." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC1006", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC1005", - "shortDescription": { - "text": "RoslynAnalyzers The current content of source file '{0}' does not match the built source. Any changes made to this file while debugging won't be applied until its content matches the built source." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC1005", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, { "id": "CppClangTidyFuchsiaStaticallyConstructedObjects", "shortDescription": { @@ -41187,7 +41138,7 @@ }, "fullDescription": { "text": "fuchsia-statically-constructed-objects clang-tidy check · Learn more", - "markdown": "fuchsia-statically-constructed-objects clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/fuchsia/statically-constructed-objects.html)" + "markdown": "fuchsia-statically-constructed-objects clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/fuchsia/statically-constructed-objects.html)" }, "defaultConfiguration": { "enabled": false, @@ -41195,13 +41146,14 @@ "parameters": { "suppressToolId": "CppClangTidyFuchsiaStaticallyConstructedObjects", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -41213,105 +41165,6 @@ } ] }, - { - "id": "ENC1004", - "shortDescription": { - "text": "RoslynAnalyzers Changes are not allowed while stopped at exception" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC1004", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC1002", - "shortDescription": { - "text": "RoslynAnalyzers Cannot apply changes -- unexpected error: '{0}'" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC1002", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ENC1001", - "shortDescription": { - "text": "RoslynAnalyzers Error while reading file '{0}': {1}" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ENC1001", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, { "id": "CSharpWarnings__CS9073", "shortDescription": { @@ -41327,7 +41180,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS9073", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -41360,7 +41214,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS9074", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -41393,7 +41248,8 @@ "parameters": { "suppressToolId": "BuiltInTypeReferenceStyle", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -41426,14 +41282,15 @@ "parameters": { "suppressToolId": "Unity.Entities.NotUpdatedComponentLookup", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity", - "index": 19, + "index": 18, "toolComponent": { "name": "QDNET" } @@ -41459,7 +41316,8 @@ "parameters": { "suppressToolId": "PropertyFieldKeywordIsNeverAssigned", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -41484,7 +41342,7 @@ }, "fullDescription": { "text": "-Weager-load-cxx-named-modules clang diagnostic · Learn more", - "markdown": "-Weager-load-cxx-named-modules clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#weager-load-cxx-named-modules)" + "markdown": "-Weager-load-cxx-named-modules clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#weager-load-cxx-named-modules)" }, "defaultConfiguration": { "enabled": true, @@ -41492,13 +41350,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticEagerLoadCxxNamedModules", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -41517,7 +41376,7 @@ }, "fullDescription": { "text": "cppcoreguidelines-avoid-const-or-ref-data-members clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-avoid-const-or-ref-data-members clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/avoid-const-or-ref-data-members.html)" + "markdown": "cppcoreguidelines-avoid-const-or-ref-data-members clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/avoid-const-or-ref-data-members.html)" }, "defaultConfiguration": { "enabled": true, @@ -41525,13 +41384,14 @@ "parameters": { "suppressToolId": "CppClangTidyCppcoreguidelinesAvoidConstOrRefDataMembers", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -41558,14 +41418,15 @@ "parameters": { "suppressToolId": "StructMemberCanBeMadeReadOnly", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -41583,7 +41444,7 @@ }, "fullDescription": { "text": "modernize-use-noexcept clang-tidy check · Learn more", - "markdown": "modernize-use-noexcept clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-noexcept.html)" + "markdown": "modernize-use-noexcept clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-noexcept.html)" }, "defaultConfiguration": { "enabled": true, @@ -41591,13 +41452,14 @@ "parameters": { "suppressToolId": "CppClangTidyModernizeUseNoexcept", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -41624,7 +41486,8 @@ "parameters": { "suppressToolId": "AccessToDisposedClosure", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -41657,13 +41520,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaAtSync", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -41690,7 +41554,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS9080", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -41715,7 +41580,7 @@ }, "fullDescription": { "text": "-Wspir-compat clang diagnostic · Learn more", - "markdown": "-Wspir-compat clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wspir-compat)" + "markdown": "-Wspir-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wspir-compat)" }, "defaultConfiguration": { "enabled": false, @@ -41723,13 +41588,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticSpirCompat", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -41756,7 +41622,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS9081", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -41781,7 +41648,7 @@ }, "fullDescription": { "text": "-Wmathematical-notation-identifier-extension clang diagnostic · Learn more", - "markdown": "-Wmathematical-notation-identifier-extension clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmathematical-notation-identifier-extension)" + "markdown": "-Wmathematical-notation-identifier-extension clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmathematical-notation-identifier-extension)" }, "defaultConfiguration": { "enabled": true, @@ -41789,13 +41656,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMathematicalNotationIdentifierExtension", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -41822,7 +41690,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS9082", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -41847,7 +41716,7 @@ }, "fullDescription": { "text": "-Wslh-asm-goto clang diagnostic · Learn more", - "markdown": "-Wslh-asm-goto clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wslh-asm-goto)" + "markdown": "-Wslh-asm-goto clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wslh-asm-goto)" }, "defaultConfiguration": { "enabled": false, @@ -41855,13 +41724,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticSlhAsmGoto", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -41879,8 +41749,8 @@ "text": "Use preferred initialization style (order of member initializers does not match the initialization order)" }, "fullDescription": { - "text": "Order of member initializers does not match the initialization order", - "markdown": "Order of member initializers does not match the initialization order" + "text": "Order of member initializers does not match the initialization order Learn more...", + "markdown": "Order of member initializers does not match the initialization order [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rc-order)" }, "defaultConfiguration": { "enabled": true, @@ -41888,14 +41758,15 @@ "parameters": { "suppressToolId": "CppMemberInitializersOrder", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Syntax Style", - "index": 83, + "id": "C_C++/Syntax Style", + "index": 91, "toolComponent": { "name": "QDNET" } @@ -41921,7 +41792,8 @@ "parameters": { "suppressToolId": "EntityFramework.NPlusOne.IncompleteDataUsage", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -41954,13 +41826,14 @@ "parameters": { "suppressToolId": "CppFunctionIsNotImplemented", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -41979,7 +41852,7 @@ }, "fullDescription": { "text": "-Wincomplete-framework-module-declaration clang diagnostic · Learn more", - "markdown": "-Wincomplete-framework-module-declaration clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wincomplete-framework-module-declaration)" + "markdown": "-Wincomplete-framework-module-declaration clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wincomplete-framework-module-declaration)" }, "defaultConfiguration": { "enabled": true, @@ -41987,13 +41860,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticIncompleteFrameworkModuleDeclaration", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -42020,7 +41894,8 @@ "parameters": { "suppressToolId": "ReplaceConditionalExpressionWithNullCoalescing", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -42045,7 +41920,7 @@ }, "fullDescription": { "text": "performance-noexcept-move-constructor clang-tidy check · Learn more", - "markdown": "performance-noexcept-move-constructor clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/performance/noexcept-move-constructor.html)" + "markdown": "performance-noexcept-move-constructor clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance/noexcept-move-constructor.html)" }, "defaultConfiguration": { "enabled": true, @@ -42053,13 +41928,14 @@ "parameters": { "suppressToolId": "CppClangTidyPerformanceNoexceptMoveConstructor", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -42086,14 +41962,15 @@ "parameters": { "suppressToolId": "RedundantEmptyCaseElse", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "VB.NET/Redundancies in Code", - "index": 88, + "index": 96, "toolComponent": { "name": "QDNET" } @@ -42111,7 +41988,7 @@ }, "fullDescription": { "text": "bugprone-exception-escape clang-tidy check · Learn more", - "markdown": "bugprone-exception-escape clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/exception-escape.html)" + "markdown": "bugprone-exception-escape clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/exception-escape.html)" }, "defaultConfiguration": { "enabled": false, @@ -42119,13 +41996,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneExceptionEscape", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -42144,7 +42022,7 @@ }, "fullDescription": { "text": "-Wunqualified-std-cast-call clang diagnostic · Learn more", - "markdown": "-Wunqualified-std-cast-call clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunqualified-std-cast-call)" + "markdown": "-Wunqualified-std-cast-call clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunqualified-std-cast-call)" }, "defaultConfiguration": { "enabled": true, @@ -42152,13 +42030,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnqualifiedStdCastCall", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -42170,6 +42049,40 @@ } ] }, + { + "id": "CapturedPrimaryConstructorParameterIsMutable", + "shortDescription": { + "text": "Captured primary constructor parameter is mutable" + }, + "fullDescription": { + "text": "Primary constructor parameter is captured and mutated by instance member(s), consider using explicit non-readonly field instead Learn more...", + "markdown": "Primary constructor parameter is captured and mutated by instance member(s), consider using explicit non-readonly field instead [Learn more...](https://www.jetbrains.com/help/rider/CapturedPrimaryConstructorParameterIsMutable.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CapturedPrimaryConstructorParameterIsMutable", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppClangTidyClangAnalyzerOptinMpiMPIChecker", "shortDescription": { @@ -42185,13 +42098,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerOptinMpiMPIChecker", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -42210,7 +42124,7 @@ }, "fullDescription": { "text": "-Wvoid-pointer-to-enum-cast clang diagnostic · Learn more", - "markdown": "-Wvoid-pointer-to-enum-cast clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wvoid-pointer-to-enum-cast)" + "markdown": "-Wvoid-pointer-to-enum-cast clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wvoid-pointer-to-enum-cast)" }, "defaultConfiguration": { "enabled": true, @@ -42218,13 +42132,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticVoidPointerToEnumCast", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -42243,7 +42158,7 @@ }, "fullDescription": { "text": "performance-inefficient-vector-operation clang-tidy check · Learn more", - "markdown": "performance-inefficient-vector-operation clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/performance/inefficient-vector-operation.html)" + "markdown": "performance-inefficient-vector-operation clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance/inefficient-vector-operation.html)" }, "defaultConfiguration": { "enabled": true, @@ -42251,13 +42166,14 @@ "parameters": { "suppressToolId": "CppClangTidyPerformanceInefficientVectorOperation", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -42276,7 +42192,7 @@ }, "fullDescription": { "text": "-Wcast-calling-convention clang diagnostic · Learn more", - "markdown": "-Wcast-calling-convention clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wcast-calling-convention)" + "markdown": "-Wcast-calling-convention clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcast-calling-convention)" }, "defaultConfiguration": { "enabled": true, @@ -42284,13 +42200,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCastCallingConvention", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -42317,14 +42234,15 @@ "parameters": { "suppressToolId": "Xaml.RedundantStyledValue", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "XAML/Redundancies in Code", - "index": 71, + "index": 77, "toolComponent": { "name": "QDNET" } @@ -42350,7 +42268,8 @@ "parameters": { "suppressToolId": "RedundantCheckBeforeAssignment", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -42375,7 +42294,7 @@ }, "fullDescription": { "text": "llvm-prefer-isa-or-dyn-cast-in-conditionals clang-tidy check · Learn more", - "markdown": "llvm-prefer-isa-or-dyn-cast-in-conditionals clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/llvm/prefer-isa-or-dyn-cast-in-conditionals.html)" + "markdown": "llvm-prefer-isa-or-dyn-cast-in-conditionals clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/llvm/prefer-isa-or-dyn-cast-in-conditionals.html)" }, "defaultConfiguration": { "enabled": false, @@ -42383,13 +42302,14 @@ "parameters": { "suppressToolId": "CppClangTidyLlvmPreferIsaOrDynCastInConditionals", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -42416,13 +42336,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerNullabilityNullReturnedFromNonnull", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -42449,13 +42370,14 @@ "parameters": { "suppressToolId": "CppRedundantParentheses", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Redundancies in Code", + "id": "C_C++/Redundancies in Code", "index": 34, "toolComponent": { "name": "QDNET" @@ -42482,7 +42404,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS9042", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -42515,13 +42438,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerNullabilityNullabilityBase", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -42548,13 +42472,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerValistValistBase", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -42581,14 +42506,15 @@ "parameters": { "suppressToolId": "RemoveRedundantOrStatement.False", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -42606,7 +42532,7 @@ }, "fullDescription": { "text": "readability-redundant-function-ptr-dereference clang-tidy check · Learn more", - "markdown": "readability-redundant-function-ptr-dereference clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/redundant-function-ptr-dereference.html)" + "markdown": "readability-redundant-function-ptr-dereference clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/redundant-function-ptr-dereference.html)" }, "defaultConfiguration": { "enabled": true, @@ -42614,13 +42540,14 @@ "parameters": { "suppressToolId": "CppClangTidyReadabilityRedundantFunctionPtrDereference", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -42647,14 +42574,15 @@ "parameters": { "suppressToolId": "UseMethodAny.0", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -42680,47 +42608,15 @@ "parameters": { "suppressToolId": "UseMethodAny.1", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticGenericTypeExtension", - "shortDescription": { - "text": "generic-type-extension clang diagnostic" - }, - "fullDescription": { - "text": "-Wgeneric-type-extension clang diagnostic · Learn more", - "markdown": "-Wgeneric-type-extension clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wgeneric-type-extension)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticGenericTypeExtension", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" - } - }, - "relationships": [ - { - "target": { - "id": "C++/Clang Diagnostics", - "index": 3, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -42737,8 +42633,8 @@ "text": "Hiding local declaration" }, "fullDescription": { - "text": "A local declaration hides another local declaration", - "markdown": "A local declaration hides another local declaration" + "text": "A local declaration hides another local declaration Learn more...", + "markdown": "A local declaration hides another local declaration [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Res-reuse)" }, "defaultConfiguration": { "enabled": true, @@ -42746,13 +42642,14 @@ "parameters": { "suppressToolId": "CppDeclarationHidesLocal", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -42779,14 +42676,15 @@ "parameters": { "suppressToolId": "UseMethodAny.4", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -42812,14 +42710,15 @@ "parameters": { "suppressToolId": "UseMethodAny.2", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -42837,7 +42736,7 @@ }, "fullDescription": { "text": "-Wtrigraphs clang diagnostic · Learn more", - "markdown": "-Wtrigraphs clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wtrigraphs)" + "markdown": "-Wtrigraphs clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtrigraphs)" }, "defaultConfiguration": { "enabled": true, @@ -42845,13 +42744,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticTrigraphs", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -42878,14 +42778,15 @@ "parameters": { "suppressToolId": "UseMethodAny.3", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -42903,7 +42804,7 @@ }, "fullDescription": { "text": "-Wundefined-func-template clang diagnostic · Learn more", - "markdown": "-Wundefined-func-template clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wundefined-func-template)" + "markdown": "-Wundefined-func-template clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wundefined-func-template)" }, "defaultConfiguration": { "enabled": true, @@ -42911,13 +42812,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUndefinedFuncTemplate", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -42935,8 +42837,8 @@ "text": "String formatting method problems" }, "fullDescription": { - "text": "Format string syntax errors (unescaped braces, invalid indices/alignments, unused arguments etc.) and other formatting method invocation problems", - "markdown": "Format string syntax errors (unescaped braces, invalid indices/alignments, unused arguments etc.) and other formatting method invocation problems" + "text": "Format string syntax errors (unescaped braces, invalid indices/alignments, unused arguments etc.) and other formatting method invocation problems Learn more...", + "markdown": "Format string syntax errors (unescaped braces, invalid indices/alignments, unused arguments etc.) and other formatting method invocation problems [Learn more...](https://www.jetbrains.com/help/rider/FormatStringProblem.html)" }, "defaultConfiguration": { "enabled": true, @@ -42944,7 +42846,8 @@ "parameters": { "suppressToolId": "FormatStringProblem", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -42969,7 +42872,7 @@ }, "fullDescription": { "text": "-Wframe-larger-than clang diagnostic · Learn more", - "markdown": "-Wframe-larger-than clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wframe-larger-than)" + "markdown": "-Wframe-larger-than clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wframe-larger-than)" }, "defaultConfiguration": { "enabled": true, @@ -42977,13 +42880,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticFrameLargerThan", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -43010,7 +42914,8 @@ "parameters": { "suppressToolId": "VBReplaceWithSingleCallToCount", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -43028,6 +42933,40 @@ } ] }, + { + "id": "CppClangTidyClangDiagnosticAndroidUnversionedFallback", + "shortDescription": { + "text": "android-unversioned-fallback clang diagnostic" + }, + "fullDescription": { + "text": "-Wandroid-unversioned-fallback clang diagnostic · Learn more", + "markdown": "-Wandroid-unversioned-fallback clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wandroid-unversioned-fallback)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticAndroidUnversionedFallback", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "NUnit.AutoFixture.IncorrectArgumentType", "shortDescription": { @@ -43043,7 +42982,8 @@ "parameters": { "suppressToolId": "NUnit.AutoFixture.IncorrectArgumentType", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -43061,6 +43001,40 @@ } ] }, + { + "id": "CppClangTidyBugproneComparePointerToMemberVirtualFunction", + "shortDescription": { + "text": "bugprone-compare-pointer-to-member-virtual-function clang-tidy check" + }, + "fullDescription": { + "text": "bugprone-compare-pointer-to-member-virtual-function clang-tidy check · Learn more", + "markdown": "bugprone-compare-pointer-to-member-virtual-function clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/compare-pointer-to-member-virtual-function.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyBugproneComparePointerToMemberVirtualFunction", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CheckForReferenceEqualityInstead.1", "shortDescription": { @@ -43076,14 +43050,15 @@ "parameters": { "suppressToolId": "CheckForReferenceEqualityInstead.1", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -43101,7 +43076,7 @@ }, "fullDescription": { "text": "modernize-avoid-bind clang-tidy check · Learn more", - "markdown": "modernize-avoid-bind clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/avoid-bind.html)" + "markdown": "modernize-avoid-bind clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/avoid-bind.html)" }, "defaultConfiguration": { "enabled": true, @@ -43109,13 +43084,14 @@ "parameters": { "suppressToolId": "CppClangTidyModernizeAvoidBind", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -43142,14 +43118,15 @@ "parameters": { "suppressToolId": "CheckForReferenceEqualityInstead.3", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -43175,14 +43152,15 @@ "parameters": { "suppressToolId": "CheckForReferenceEqualityInstead.2", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -43208,14 +43186,15 @@ "parameters": { "suppressToolId": "CheckForReferenceEqualityInstead.4", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -43241,7 +43220,8 @@ "parameters": { "suppressToolId": "UseRawString", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -43266,7 +43246,7 @@ }, "fullDescription": { "text": "readability-static-accessed-through-instance clang-tidy check · Learn more", - "markdown": "readability-static-accessed-through-instance clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/static-accessed-through-instance.html)" + "markdown": "readability-static-accessed-through-instance clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/static-accessed-through-instance.html)" }, "defaultConfiguration": { "enabled": true, @@ -43274,13 +43254,14 @@ "parameters": { "suppressToolId": "CppClangTidyReadabilityStaticAccessedThroughInstance", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -43292,6 +43273,40 @@ } ] }, + { + "id": "CppClangTidyClangDiagnosticFunctionEffects", + "shortDescription": { + "text": "function-effects clang diagnostic" + }, + "fullDescription": { + "text": "-Wfunction-effects clang diagnostic · Learn more", + "markdown": "-Wfunction-effects clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wfunction-effects)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticFunctionEffects", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppClangTidyClangDiagnosticMicrosoftEndOfFile", "shortDescription": { @@ -43299,7 +43314,7 @@ }, "fullDescription": { "text": "-Wmicrosoft-end-of-file clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-end-of-file clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-end-of-file)" + "markdown": "-Wmicrosoft-end-of-file clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-end-of-file)" }, "defaultConfiguration": { "enabled": true, @@ -43307,13 +43322,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftEndOfFile", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -43340,7 +43356,8 @@ "parameters": { "suppressToolId": "UseNameofExpression", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -43365,7 +43382,7 @@ }, "fullDescription": { "text": "-Wopenmp-loop-form clang diagnostic · Learn more", - "markdown": "-Wopenmp-loop-form clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wopenmp-loop-form)" + "markdown": "-Wopenmp-loop-form clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wopenmp-loop-form)" }, "defaultConfiguration": { "enabled": true, @@ -43373,13 +43390,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticOpenmpLoopForm", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -43406,13 +43424,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerCplusplusNewDelete", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -43439,7 +43458,8 @@ "parameters": { "suppressToolId": "UnusedMember.Local", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -43472,13 +43492,14 @@ "parameters": { "suppressToolId": "CppMismatchedClassTags", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -43497,7 +43518,7 @@ }, "fullDescription": { "text": "cert-mem57-cpp clang-tidy check · Learn more", - "markdown": "cert-mem57-cpp clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cert/mem57-cpp.html)" + "markdown": "cert-mem57-cpp clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/mem57-cpp.html)" }, "defaultConfiguration": { "enabled": true, @@ -43505,13 +43526,14 @@ "parameters": { "suppressToolId": "CppClangTidyCertMem57Cpp", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -43538,7 +43560,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS9094", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -43571,7 +43594,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS9095", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -43604,7 +43628,8 @@ "parameters": { "suppressToolId": "EnumerableSumInExplicitUncheckedContext", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -43637,7 +43662,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS9097", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -43670,7 +43696,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS9099", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -43695,7 +43722,7 @@ }, "fullDescription": { "text": "-Wprivate-module clang diagnostic · Learn more", - "markdown": "-Wprivate-module clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wprivate-module)" + "markdown": "-Wprivate-module clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wprivate-module)" }, "defaultConfiguration": { "enabled": true, @@ -43703,13 +43730,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticPrivateModule", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -43736,7 +43764,8 @@ "parameters": { "suppressToolId": "MathClampMinGreaterThanMax", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -43754,6 +43783,40 @@ } ] }, + { + "id": "CSharpWarnings__CS8618,CS9264", + "shortDescription": { + "text": "Non-nullable member is uninitialized." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CSharpWarnings__CS8618,CS9264", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Compiler Warnings", + "index": 27, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "Unity.IncorrectMonoBehaviourInstantiation", "shortDescription": { @@ -43769,14 +43832,15 @@ "parameters": { "suppressToolId": "Unity.IncorrectMonoBehaviourInstantiation", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity", - "index": 19, + "index": 18, "toolComponent": { "name": "QDNET" } @@ -43802,7 +43866,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS9083", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -43835,7 +43900,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS9084", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -43868,7 +43934,8 @@ "parameters": { "suppressToolId": "MergeIntoNegatedPattern", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -43901,7 +43968,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS9085", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -43934,7 +44002,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS9086", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -43967,7 +44036,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS9087", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -43992,7 +44062,7 @@ }, "fullDescription": { "text": "readability-redundant-string-cstr clang-tidy check · Learn more", - "markdown": "readability-redundant-string-cstr clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/redundant-string-cstr.html)" + "markdown": "readability-redundant-string-cstr clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/redundant-string-cstr.html)" }, "defaultConfiguration": { "enabled": true, @@ -44000,13 +44070,14 @@ "parameters": { "suppressToolId": "CppClangTidyReadabilityRedundantStringCstr", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -44033,7 +44104,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS9088", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -44066,7 +44138,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS9089", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -44091,7 +44164,7 @@ }, "fullDescription": { "text": "-Wlocal-type-template-args clang diagnostic · Learn more", - "markdown": "-Wlocal-type-template-args clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wlocal-type-template-args)" + "markdown": "-Wlocal-type-template-args clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wlocal-type-template-args)" }, "defaultConfiguration": { "enabled": true, @@ -44099,13 +44172,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticLocalTypeTemplateArgs", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -44132,14 +44206,15 @@ "parameters": { "suppressToolId": "LocalFunctionCanBeMadeStatic", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -44156,8 +44231,8 @@ "text": "Unassigned field (non-private accessibility)" }, "fullDescription": { - "text": "Field is never assigned", - "markdown": "Field is never assigned" + "text": "Field is never assigned Learn more...", + "markdown": "Field is never assigned [Learn more...](https://www.jetbrains.com/help/rider/UnassignedField.Global.html)" }, "defaultConfiguration": { "enabled": true, @@ -44165,7 +44240,8 @@ "parameters": { "suppressToolId": "UnassignedField.Global", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -44198,14 +44274,15 @@ "parameters": { "suppressToolId": "RouteTemplates.ConstraintArgumentCannotBeConverted", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "ASP.NET route templates/Code Notification", - "index": 47, + "index": 48, "toolComponent": { "name": "QDNET" } @@ -44231,7 +44308,8 @@ "parameters": { "suppressToolId": "VBRemoveToList.2", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -44264,13 +44342,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerUnixCstringNullArg", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -44289,7 +44368,7 @@ }, "fullDescription": { "text": "-Wgnu-alignof-expression clang diagnostic · Learn more", - "markdown": "-Wgnu-alignof-expression clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wgnu-alignof-expression)" + "markdown": "-Wgnu-alignof-expression clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-alignof-expression)" }, "defaultConfiguration": { "enabled": true, @@ -44297,13 +44376,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticGnuAlignofExpression", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -44330,7 +44410,8 @@ "parameters": { "suppressToolId": "VBRemoveToList.1", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -44355,7 +44436,7 @@ }, "fullDescription": { "text": "-Wcoro-non-aligned-allocation-function clang diagnostic · Learn more", - "markdown": "-Wcoro-non-aligned-allocation-function clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wcoro-non-aligned-allocation-function)" + "markdown": "-Wcoro-non-aligned-allocation-function clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcoro-non-aligned-allocation-function)" }, "defaultConfiguration": { "enabled": true, @@ -44363,13 +44444,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCoroNonAlignedAllocationFunction", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -44388,7 +44470,7 @@ }, "fullDescription": { "text": "cppcoreguidelines-prefer-member-initializer clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-prefer-member-initializer clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/prefer-member-initializer.html)" + "markdown": "cppcoreguidelines-prefer-member-initializer clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/prefer-member-initializer.html)" }, "defaultConfiguration": { "enabled": false, @@ -44396,13 +44478,14 @@ "parameters": { "suppressToolId": "CppClangTidyCppcoreguidelinesPreferMemberInitializer", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -44421,7 +44504,7 @@ }, "fullDescription": { "text": "-Wmicrosoft-cast clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-cast clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-cast)" + "markdown": "-Wmicrosoft-cast clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-cast)" }, "defaultConfiguration": { "enabled": true, @@ -44429,13 +44512,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftCast", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -44454,7 +44538,7 @@ }, "fullDescription": { "text": "bugprone-macro-parentheses clang-tidy check · Learn more", - "markdown": "bugprone-macro-parentheses clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/macro-parentheses.html)" + "markdown": "bugprone-macro-parentheses clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/macro-parentheses.html)" }, "defaultConfiguration": { "enabled": true, @@ -44462,13 +44546,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneMacroParentheses", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -44495,7 +44580,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS9090", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -44528,7 +44614,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS9091", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -44561,7 +44648,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS9092", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -44580,28 +44668,29 @@ ] }, { - "id": "CppClangTidyClangDiagnosticHipOmpTargetDirectives", + "id": "CSharpWarnings__CS9093", "shortDescription": { - "text": "hip-omp-target-directives clang diagnostic" + "text": "This ref-assigns a value that can only escape the current method through a return statement." }, "fullDescription": { - "text": "-Whip-omp-target-directives clang diagnostic · Learn more", - "markdown": "-Whip-omp-target-directives clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#whip-omp-target-directives)" + "text": "Learn more...", + "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/ref-modifiers-errors#ref-safety-violations)" }, "defaultConfiguration": { "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticHipOmpTargetDirectives", + "suppressToolId": "CSharpWarnings__CS9093", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", - "index": 3, + "id": "C#/Compiler Warnings", + "index": 27, "toolComponent": { "name": "QDNET" } @@ -44613,28 +44702,29 @@ ] }, { - "id": "CSharpWarnings__CS9093", + "id": "CppClangTidyClangDiagnosticHipOmpTargetDirectives", "shortDescription": { - "text": "This ref-assigns a value that can only escape the current method through a return statement." + "text": "hip-omp-target-directives clang diagnostic" }, "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/ref-modifiers-errors#ref-safety-violations)" + "text": "-Whip-omp-target-directives clang diagnostic · Learn more", + "markdown": "-Whip-omp-target-directives clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#whip-omp-target-directives)" }, "defaultConfiguration": { "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "CSharpWarnings__CS9093", + "suppressToolId": "CppClangTidyClangDiagnosticHipOmpTargetDirectives", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C#/Compiler Warnings", - "index": 27, + "id": "C_C++/Clang Diagnostics", + "index": 3, "toolComponent": { "name": "QDNET" } @@ -44660,14 +44750,15 @@ "parameters": { "suppressToolId": "ReplaceWithOfType.SingleOrDefault.2", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -44693,14 +44784,15 @@ "parameters": { "suppressToolId": "ReplaceWithOfType.SingleOrDefault.1", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -44718,7 +44810,7 @@ }, "fullDescription": { "text": "-Watomic-memory-ordering clang diagnostic · Learn more", - "markdown": "-Watomic-memory-ordering clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#watomic-memory-ordering)" + "markdown": "-Watomic-memory-ordering clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#watomic-memory-ordering)" }, "defaultConfiguration": { "enabled": true, @@ -44726,13 +44818,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticAtomicMemoryOrdering", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -44751,7 +44844,7 @@ }, "fullDescription": { "text": "-Wnsreturns-mismatch clang diagnostic · Learn more", - "markdown": "-Wnsreturns-mismatch clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wnsreturns-mismatch)" + "markdown": "-Wnsreturns-mismatch clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnsreturns-mismatch)" }, "defaultConfiguration": { "enabled": true, @@ -44759,13 +44852,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticNsreturnsMismatch", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -44784,7 +44878,7 @@ }, "fullDescription": { "text": "-Wdeprecated clang diagnostic · Learn more", - "markdown": "-Wdeprecated clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdeprecated)" + "markdown": "-Wdeprecated clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated)" }, "defaultConfiguration": { "enabled": true, @@ -44792,13 +44886,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDeprecated", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -44825,7 +44920,8 @@ "parameters": { "suppressToolId": "RedundantBlankLines", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -44850,7 +44946,7 @@ }, "fullDescription": { "text": "-Wmicrosoft-goto clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-goto clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-goto)" + "markdown": "-Wmicrosoft-goto clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-goto)" }, "defaultConfiguration": { "enabled": true, @@ -44858,13 +44954,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftGoto", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -44883,7 +44980,7 @@ }, "fullDescription": { "text": "-Wcomplex-component-init clang diagnostic · Learn more", - "markdown": "-Wcomplex-component-init clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wcomplex-component-init)" + "markdown": "-Wcomplex-component-init clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcomplex-component-init)" }, "defaultConfiguration": { "enabled": true, @@ -44891,13 +44988,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticComplexComponentInit", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -44924,7 +45022,8 @@ "parameters": { "suppressToolId": "ArrangeTrailingCommaInSinglelineLists", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -44957,7 +45056,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS1066", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -44990,13 +45090,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerOptinPerformanceGCDAntipattern", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -45015,7 +45116,7 @@ }, "fullDescription": { "text": "google-readability-function-size clang-tidy check · Learn more", - "markdown": "google-readability-function-size clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/google/readability-function-size.html)" + "markdown": "google-readability-function-size clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/readability-function-size.html)" }, "defaultConfiguration": { "enabled": false, @@ -45023,13 +45124,14 @@ "parameters": { "suppressToolId": "CppClangTidyGoogleReadabilityFunctionSize", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -45048,7 +45150,7 @@ }, "fullDescription": { "text": "-Wstrlcpy-strlcat-size clang diagnostic · Learn more", - "markdown": "-Wstrlcpy-strlcat-size clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wstrlcpy-strlcat-size)" + "markdown": "-Wstrlcpy-strlcat-size clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wstrlcpy-strlcat-size)" }, "defaultConfiguration": { "enabled": true, @@ -45056,13 +45158,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticStrlcpyStrlcatSize", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -45089,14 +45192,15 @@ "parameters": { "suppressToolId": "VBWarnings__BC400005", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "VB.NET/Compiler Warnings", - "index": 100, + "index": 110, "toolComponent": { "name": "QDNET" } @@ -45122,14 +45226,15 @@ "parameters": { "suppressToolId": "DuplicateResource", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "ResX/Potential Code Quality Issues", - "index": 63, + "index": 68, "toolComponent": { "name": "QDNET" } @@ -45147,7 +45252,7 @@ }, "fullDescription": { "text": "abseil-time-comparison clang-tidy check · Learn more", - "markdown": "abseil-time-comparison clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/time-comparison.html)" + "markdown": "abseil-time-comparison clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/time-comparison.html)" }, "defaultConfiguration": { "enabled": false, @@ -45155,13 +45260,14 @@ "parameters": { "suppressToolId": "CppClangTidyAbseilTimeComparison", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -45188,13 +45294,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaNonNilReturnValue", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -45206,6 +45313,40 @@ } ] }, + { + "id": "CSharpHints", + "shortDescription": { + "text": "C# Language Hints" + }, + "fullDescription": { + "text": "C# Language Hints", + "markdown": "C# Language Hints" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CSharpHints", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Non configurable", + "index": 52, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppClangTidyClangDiagnosticSometimesUninitialized", "shortDescription": { @@ -45213,7 +45354,7 @@ }, "fullDescription": { "text": "-Wsometimes-uninitialized clang diagnostic · Learn more", - "markdown": "-Wsometimes-uninitialized clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wsometimes-uninitialized)" + "markdown": "-Wsometimes-uninitialized clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wsometimes-uninitialized)" }, "defaultConfiguration": { "enabled": true, @@ -45221,13 +45362,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticSometimesUninitialized", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -45254,14 +45396,15 @@ "parameters": { "suppressToolId": "SeparateLocalFunctionsWithJumpStatement", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -45279,7 +45422,7 @@ }, "fullDescription": { "text": "-Wmsvc-not-found clang diagnostic · Learn more", - "markdown": "-Wmsvc-not-found clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmsvc-not-found)" + "markdown": "-Wmsvc-not-found clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmsvc-not-found)" }, "defaultConfiguration": { "enabled": true, @@ -45287,13 +45430,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMsvcNotFound", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -45311,8 +45455,8 @@ "text": "Event is never subscribed to (private accessibility)" }, "fullDescription": { - "text": "Event is never subscribed to", - "markdown": "Event is never subscribed to" + "text": "Event is never subscribed to Learn more...", + "markdown": "Event is never subscribed to [Learn more...](https://www.jetbrains.com/help/rider/EventNeverSubscribedTo.Local.html)" }, "defaultConfiguration": { "enabled": true, @@ -45320,7 +45464,8 @@ "parameters": { "suppressToolId": "EventNeverSubscribedTo.Local", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -45353,14 +45498,15 @@ "parameters": { "suppressToolId": "Unity.ExpectedScriptableObject", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity", - "index": 19, + "index": 18, "toolComponent": { "name": "QDNET" } @@ -45378,7 +45524,7 @@ }, "fullDescription": { "text": "concurrency-mt-unsafe clang-tidy check · Learn more", - "markdown": "concurrency-mt-unsafe clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/concurrency/mt-unsafe.html)" + "markdown": "concurrency-mt-unsafe clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/concurrency/mt-unsafe.html)" }, "defaultConfiguration": { "enabled": true, @@ -45386,13 +45532,14 @@ "parameters": { "suppressToolId": "CppClangTidyConcurrencyMtUnsafe", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -45419,14 +45566,15 @@ "parameters": { "suppressToolId": "NegationOfRelationalPattern", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -45452,14 +45600,15 @@ "parameters": { "suppressToolId": "TryStatementsCanBeMerged", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -45477,7 +45626,7 @@ }, "fullDescription": { "text": "-Wunused-template clang diagnostic · Learn more", - "markdown": "-Wunused-template clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunused-template)" + "markdown": "-Wunused-template clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunused-template)" }, "defaultConfiguration": { "enabled": false, @@ -45485,13 +45634,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnusedTemplate", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -45518,14 +45668,15 @@ "parameters": { "suppressToolId": "EmptyTitleTag", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "HTML/Common Practices and Code Improvements", - "index": 68, + "index": 74, "toolComponent": { "name": "QDNET" } @@ -45551,13 +45702,14 @@ "parameters": { "suppressToolId": "CppRedundantEmptyStatement", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Redundancies in Code", + "id": "C_C++/Redundancies in Code", "index": 34, "toolComponent": { "name": "QDNET" @@ -45584,7 +45736,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS1058", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -45609,7 +45762,7 @@ }, "fullDescription": { "text": "abseil-string-find-str-contains clang-tidy check · Learn more", - "markdown": "abseil-string-find-str-contains clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/string-find-str-contains.html)" + "markdown": "abseil-string-find-str-contains clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/string-find-str-contains.html)" }, "defaultConfiguration": { "enabled": false, @@ -45617,13 +45770,14 @@ "parameters": { "suppressToolId": "CppClangTidyAbseilStringFindStrContains", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -45650,13 +45804,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticError", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -45683,7 +45838,8 @@ "parameters": { "suppressToolId": "PossiblyMissingIndexerInitializerComma", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -45716,13 +45872,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerOsxSecKeychainAPI", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -45749,7 +45906,8 @@ "parameters": { "suppressToolId": "MultipleTypeMembersOnOneLine", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -45774,7 +45932,7 @@ }, "fullDescription": { "text": "-Wmodules-import-nested-redundant clang diagnostic · Learn more", - "markdown": "-Wmodules-import-nested-redundant clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmodules-import-nested-redundant)" + "markdown": "-Wmodules-import-nested-redundant clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmodules-import-nested-redundant)" }, "defaultConfiguration": { "enabled": true, @@ -45782,13 +45940,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticModulesImportNestedRedundant", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -45807,7 +45966,7 @@ }, "fullDescription": { "text": "-Wattribute-packed-for-bitfield clang diagnostic · Learn more", - "markdown": "-Wattribute-packed-for-bitfield clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wattribute-packed-for-bitfield)" + "markdown": "-Wattribute-packed-for-bitfield clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wattribute-packed-for-bitfield)" }, "defaultConfiguration": { "enabled": true, @@ -45815,13 +45974,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticAttributePackedForBitfield", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -45839,8 +45999,8 @@ "text": "Resource overrides base resource with empty value" }, "fullDescription": { - "text": "Base resource contains a non-empty value while this resource is empty", - "markdown": "Base resource contains a non-empty value while this resource is empty" + "text": "Base resource contains a non-empty value while this resource is empty Learn more...", + "markdown": "Base resource contains a non-empty value while this resource is empty [Learn more...](https://www.jetbrains.com/help/rider/OverriddenWithEmptyValue.html)" }, "defaultConfiguration": { "enabled": true, @@ -45848,14 +46008,15 @@ "parameters": { "suppressToolId": "OverriddenWithEmptyValue", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "ResX/Potential Code Quality Issues", - "index": 63, + "index": 68, "toolComponent": { "name": "QDNET" } @@ -45873,7 +46034,7 @@ }, "fullDescription": { "text": "-Wunused-local-typedef clang diagnostic · Learn more", - "markdown": "-Wunused-local-typedef clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunused-local-typedef)" + "markdown": "-Wunused-local-typedef clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunused-local-typedef)" }, "defaultConfiguration": { "enabled": false, @@ -45881,13 +46042,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnusedLocalTypedef", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -45914,13 +46076,14 @@ "parameters": { "suppressToolId": "CppBadSquareBracketsSpaces", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Formatting", + "id": "C_C++/Formatting", "index": 28, "toolComponent": { "name": "QDNET" @@ -45947,14 +46110,15 @@ "parameters": { "suppressToolId": "Xaml.RedundantPropertyTypeQualifier", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "XAML/Redundancies in Code", - "index": 71, + "index": 77, "toolComponent": { "name": "QDNET" } @@ -45980,14 +46144,15 @@ "parameters": { "suppressToolId": "NotDeclaredInParentCulture", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "ResX/Potential Code Quality Issues", - "index": 63, + "index": 68, "toolComponent": { "name": "QDNET" } @@ -46005,7 +46170,7 @@ }, "fullDescription": { "text": "-Wc++11-compat-reserved-user-defined-literal clang diagnostic · Learn more", - "markdown": "-Wc++11-compat-reserved-user-defined-literal clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-11-compat-reserved-user-defined-literal)" + "markdown": "-Wc++11-compat-reserved-user-defined-literal clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-11-compat-reserved-user-defined-literal)" }, "defaultConfiguration": { "enabled": false, @@ -46013,13 +46178,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCpp11CompatReservedUserDefinedLiteral", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -46037,8 +46203,8 @@ "text": "Convert 'if' statement into 'switch'" }, "fullDescription": { - "text": "Convert series of 'if' statements into single 'switch'", - "markdown": "Convert series of 'if' statements into single 'switch'" + "text": "Convert series of 'if' statements into single 'switch' Learn more...", + "markdown": "Convert series of 'if' statements into single 'switch' [Learn more...](https://www.jetbrains.com/help/rider/ConvertIfStatementToSwitchStatement.html)" }, "defaultConfiguration": { "enabled": true, @@ -46046,7 +46212,8 @@ "parameters": { "suppressToolId": "ConvertIfStatementToSwitchStatement", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -46071,7 +46238,7 @@ }, "fullDescription": { "text": "-Wprotocol clang diagnostic · Learn more", - "markdown": "-Wprotocol clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wprotocol)" + "markdown": "-Wprotocol clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wprotocol)" }, "defaultConfiguration": { "enabled": true, @@ -46079,13 +46246,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticProtocol", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -46104,7 +46272,7 @@ }, "fullDescription": { "text": "-Wpch-date-time clang diagnostic · Learn more", - "markdown": "-Wpch-date-time clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpch-date-time)" + "markdown": "-Wpch-date-time clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpch-date-time)" }, "defaultConfiguration": { "enabled": true, @@ -46112,13 +46280,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticPchDateTime", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -46145,14 +46314,15 @@ "parameters": { "suppressToolId": "Unity.BurstWriteStaticField", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity Burst Compiler Warnings", - "index": 54, + "index": 57, "toolComponent": { "name": "QDNET" } @@ -46178,7 +46348,8 @@ "parameters": { "suppressToolId": "RedundantScopedParameterModifier", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -46203,7 +46374,7 @@ }, "fullDescription": { "text": "-Wredundant-consteval-if clang diagnostic · Learn more", - "markdown": "-Wredundant-consteval-if clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wredundant-consteval-if)" + "markdown": "-Wredundant-consteval-if clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wredundant-consteval-if)" }, "defaultConfiguration": { "enabled": true, @@ -46211,13 +46382,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticRedundantConstevalIf", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -46244,7 +46416,8 @@ "parameters": { "suppressToolId": "RedundantNullableAnnotationOnTypeConstraintHasNonNullableBaseType", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -46269,7 +46442,7 @@ }, "fullDescription": { "text": "-Wnon-c-typedef-for-linkage clang diagnostic · Learn more", - "markdown": "-Wnon-c-typedef-for-linkage clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wnon-c-typedef-for-linkage)" + "markdown": "-Wnon-c-typedef-for-linkage clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnon-c-typedef-for-linkage)" }, "defaultConfiguration": { "enabled": true, @@ -46277,13 +46450,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticNonCTypedefForLinkage", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -46302,7 +46476,7 @@ }, "fullDescription": { "text": "-Wgnu-redeclared-enum clang diagnostic · Learn more", - "markdown": "-Wgnu-redeclared-enum clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wgnu-redeclared-enum)" + "markdown": "-Wgnu-redeclared-enum clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-redeclared-enum)" }, "defaultConfiguration": { "enabled": true, @@ -46310,13 +46484,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticGnuRedeclaredEnum", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -46343,14 +46518,15 @@ "parameters": { "suppressToolId": "Xaml.RedundantResource", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "XAML/Redundancies in Code", - "index": 71, + "index": 77, "toolComponent": { "name": "QDNET" } @@ -46376,13 +46552,14 @@ "parameters": { "suppressToolId": "CppVolatileParameterInDeclaration", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Redundancies in Code", + "id": "C_C++/Redundancies in Code", "index": 34, "toolComponent": { "name": "QDNET" @@ -46401,7 +46578,7 @@ }, "fullDescription": { "text": "-Wcxx-attribute-extension clang diagnostic · Learn more", - "markdown": "-Wcxx-attribute-extension clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wcxx-attribute-extension)" + "markdown": "-Wcxx-attribute-extension clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcxx-attribute-extension)" }, "defaultConfiguration": { "enabled": true, @@ -46409,13 +46586,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCxxAttributeExtension", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -46434,7 +46612,7 @@ }, "fullDescription": { "text": "performance-move-const-arg clang-tidy check · Learn more", - "markdown": "performance-move-const-arg clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/performance/move-const-arg.html)" + "markdown": "performance-move-const-arg clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance/move-const-arg.html)" }, "defaultConfiguration": { "enabled": true, @@ -46442,13 +46620,14 @@ "parameters": { "suppressToolId": "CppClangTidyPerformanceMoveConstArg", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -46475,14 +46654,15 @@ "parameters": { "suppressToolId": "Mvc.MasterpageNotResolved", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "Aspx/Potential Code Quality Issues", - "index": 60, + "index": 64, "toolComponent": { "name": "QDNET" } @@ -46500,7 +46680,7 @@ }, "fullDescription": { "text": "-Wpre-c++26-compat clang diagnostic · Learn more", - "markdown": "-Wpre-c++26-compat clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpre-c-26-compat)" + "markdown": "-Wpre-c++26-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpre-c-26-compat)" }, "defaultConfiguration": { "enabled": false, @@ -46508,13 +46688,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticPreCpp26Compat", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -46541,13 +46722,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerOsxMIG", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -46574,7 +46756,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8509", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -46607,7 +46790,8 @@ "parameters": { "suppressToolId": "VBPossibleMistakenArgument", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -46640,7 +46824,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8500", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -46673,14 +46858,15 @@ "parameters": { "suppressToolId": "RouteTemplates.MatchingConstraintConstructorNotResolved", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "ASP.NET route templates/Code Notification", - "index": 47, + "index": 48, "toolComponent": { "name": "QDNET" } @@ -46706,7 +46892,8 @@ "parameters": { "suppressToolId": "RedundantNullableFlowAttribute", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -46739,14 +46926,15 @@ "parameters": { "suppressToolId": "CppEnforceIfStatementBraces", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Syntax Style", - "index": 83, + "id": "C_C++/Syntax Style", + "index": 91, "toolComponent": { "name": "QDNET" } @@ -46772,7 +46960,8 @@ "parameters": { "suppressToolId": "ServiceContractWithoutOperations", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -46805,14 +46994,15 @@ "parameters": { "suppressToolId": "CppEnforceCVQualifiersOrder", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Syntax Style", - "index": 83, + "id": "C_C++/Syntax Style", + "index": 91, "toolComponent": { "name": "QDNET" } @@ -46830,7 +47020,7 @@ }, "fullDescription": { "text": "-Wdeprecated-enum-enum-conversion clang diagnostic · Learn more", - "markdown": "-Wdeprecated-enum-enum-conversion clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdeprecated-enum-enum-conversion)" + "markdown": "-Wdeprecated-enum-enum-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-enum-enum-conversion)" }, "defaultConfiguration": { "enabled": true, @@ -46838,13 +47028,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedEnumEnumConversion", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -46871,7 +47062,8 @@ "parameters": { "suppressToolId": "BadListLineBreaks", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -46904,13 +47096,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerSecurityInsecureAPIStrcpy", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -46929,7 +47122,7 @@ }, "fullDescription": { "text": "-Wredundant-move clang diagnostic · Learn more", - "markdown": "-Wredundant-move clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wredundant-move)" + "markdown": "-Wredundant-move clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wredundant-move)" }, "defaultConfiguration": { "enabled": true, @@ -46937,13 +47130,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticRedundantMove", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -46962,7 +47156,7 @@ }, "fullDescription": { "text": "-Wnested-anon-types clang diagnostic · Learn more", - "markdown": "-Wnested-anon-types clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wnested-anon-types)" + "markdown": "-Wnested-anon-types clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnested-anon-types)" }, "defaultConfiguration": { "enabled": true, @@ -46970,13 +47164,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticNestedAnonTypes", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -47003,7 +47198,8 @@ "parameters": { "suppressToolId": "SuggestVarOrType_Elsewhere", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -47036,13 +47232,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerOsxCoreFoundationContainersPointerSizedValues", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -47061,7 +47258,7 @@ }, "fullDescription": { "text": "-Wc++98-compat-pedantic clang diagnostic · Learn more", - "markdown": "-Wc++98-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-98-compat-pedantic)" + "markdown": "-Wc++98-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-98-compat-pedantic)" }, "defaultConfiguration": { "enabled": false, @@ -47069,13 +47266,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCpp98CompatPedantic", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -47094,7 +47292,7 @@ }, "fullDescription": { "text": "-Wimplicit-int-conversion clang diagnostic · Learn more", - "markdown": "-Wimplicit-int-conversion clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wimplicit-int-conversion)" + "markdown": "-Wimplicit-int-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wimplicit-int-conversion)" }, "defaultConfiguration": { "enabled": true, @@ -47102,13 +47300,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticImplicitIntConversion", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -47127,7 +47326,7 @@ }, "fullDescription": { "text": "-Wgnu-anonymous-struct clang diagnostic · Learn more", - "markdown": "-Wgnu-anonymous-struct clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wgnu-anonymous-struct)" + "markdown": "-Wgnu-anonymous-struct clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-anonymous-struct)" }, "defaultConfiguration": { "enabled": false, @@ -47135,13 +47334,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticGnuAnonymousStruct", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -47168,13 +47368,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerSecurityInsecureAPIBzero", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -47193,7 +47394,7 @@ }, "fullDescription": { "text": "-Wmicrosoft-const-init clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-const-init clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-const-init)" + "markdown": "-Wmicrosoft-const-init clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-const-init)" }, "defaultConfiguration": { "enabled": true, @@ -47201,13 +47402,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftConstInit", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -47234,7 +47436,8 @@ "parameters": { "suppressToolId": "ConvertIfStatementToConditionalTernaryExpression", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -47252,6 +47455,40 @@ } ] }, + { + "id": "MisleadingBodyLikeStatement", + "shortDescription": { + "text": "Confusing body-like statement" + }, + "fullDescription": { + "text": "Previous statement's body can be overlooked and the next statement can be read as it's body. Improve the visibility by making the actual body more visible or separate the next statement with an empty line.", + "markdown": "Previous statement's body can be overlooked and the next statement can be read as it's body. Improve the visibility by making the actual body more visible or separate the next statement with an empty line." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "MisleadingBodyLikeStatement", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 12, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "RedundantSpace", "shortDescription": { @@ -47267,7 +47504,8 @@ "parameters": { "suppressToolId": "RedundantSpace", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -47300,13 +47538,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerCoreDynamicTypePropagation", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -47333,14 +47572,15 @@ "parameters": { "suppressToolId": "UseEventArgsEmptyField", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -47366,7 +47606,8 @@ "parameters": { "suppressToolId": "PropertyNotResolved", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -47399,14 +47640,15 @@ "parameters": { "suppressToolId": "RequiredBaseTypesIsNotInherited", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Constraints Violations", - "index": 73, + "index": 80, "toolComponent": { "name": "QDNET" } @@ -47424,7 +47666,7 @@ }, "fullDescription": { "text": "-Wvoid-pointer-to-int-cast clang diagnostic · Learn more", - "markdown": "-Wvoid-pointer-to-int-cast clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wvoid-pointer-to-int-cast)" + "markdown": "-Wvoid-pointer-to-int-cast clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wvoid-pointer-to-int-cast)" }, "defaultConfiguration": { "enabled": true, @@ -47432,13 +47674,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticVoidPointerToIntCast", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -47465,13 +47708,14 @@ "parameters": { "suppressToolId": "CppDeclaratorUsedBeforeInitialization", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -47490,7 +47734,7 @@ }, "fullDescription": { "text": "-Wselector-type-mismatch clang diagnostic · Learn more", - "markdown": "-Wselector-type-mismatch clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wselector-type-mismatch)" + "markdown": "-Wselector-type-mismatch clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wselector-type-mismatch)" }, "defaultConfiguration": { "enabled": true, @@ -47498,13 +47742,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticSelectorTypeMismatch", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -47531,13 +47776,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerOsxCoreFoundationContainersOutOfBounds", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -47564,7 +47810,8 @@ "parameters": { "suppressToolId": "ParameterOnlyUsedForPreconditionCheck.Global", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -47589,7 +47836,7 @@ }, "fullDescription": { "text": "-Wgnu-empty-initializer clang diagnostic · Learn more", - "markdown": "-Wgnu-empty-initializer clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wgnu-empty-initializer)" + "markdown": "-Wgnu-empty-initializer clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-empty-initializer)" }, "defaultConfiguration": { "enabled": true, @@ -47597,13 +47844,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticGnuEmptyInitializer", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -47622,7 +47870,7 @@ }, "fullDescription": { "text": "-Wmicrosoft-enum-forward-reference clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-enum-forward-reference clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-enum-forward-reference)" + "markdown": "-Wmicrosoft-enum-forward-reference clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-enum-forward-reference)" }, "defaultConfiguration": { "enabled": true, @@ -47630,13 +47878,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftEnumForwardReference", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -47663,14 +47912,15 @@ "parameters": { "suppressToolId": "Xaml.StyleInvalidTargetType", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "XAML/Potential Code Quality Issues", - "index": 44, + "index": 45, "toolComponent": { "name": "QDNET" } @@ -47688,7 +47938,7 @@ }, "fullDescription": { "text": "llvm-header-guard clang-tidy check · Learn more", - "markdown": "llvm-header-guard clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/llvm/header-guard.html)" + "markdown": "llvm-header-guard clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/llvm/header-guard.html)" }, "defaultConfiguration": { "enabled": false, @@ -47696,13 +47946,14 @@ "parameters": { "suppressToolId": "CppClangTidyLlvmHeaderGuard", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -47721,7 +47972,7 @@ }, "fullDescription": { "text": "misc-misplaced-const clang-tidy check · Learn more", - "markdown": "misc-misplaced-const clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/misc/misplaced-const.html)" + "markdown": "misc-misplaced-const clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/misplaced-const.html)" }, "defaultConfiguration": { "enabled": false, @@ -47729,13 +47980,14 @@ "parameters": { "suppressToolId": "CppClangTidyMiscMisplacedConst", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -47762,13 +48014,14 @@ "parameters": { "suppressToolId": "CppTabsAreDisallowed", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Formatting", + "id": "C_C++/Formatting", "index": 28, "toolComponent": { "name": "QDNET" @@ -47787,7 +48040,7 @@ }, "fullDescription": { "text": "bugprone-integer-division clang-tidy check · Learn more", - "markdown": "bugprone-integer-division clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/integer-division.html)" + "markdown": "bugprone-integer-division clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/integer-division.html)" }, "defaultConfiguration": { "enabled": true, @@ -47795,13 +48048,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneIntegerDivision", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -47820,7 +48074,7 @@ }, "fullDescription": { "text": "-Wbad-function-cast clang diagnostic · Learn more", - "markdown": "-Wbad-function-cast clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wbad-function-cast)" + "markdown": "-Wbad-function-cast clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wbad-function-cast)" }, "defaultConfiguration": { "enabled": true, @@ -47828,13 +48082,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticBadFunctionCast", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -47853,7 +48108,7 @@ }, "fullDescription": { "text": "-Winvalid-source-encoding clang diagnostic · Learn more", - "markdown": "-Winvalid-source-encoding clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#winvalid-source-encoding)" + "markdown": "-Winvalid-source-encoding clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winvalid-source-encoding)" }, "defaultConfiguration": { "enabled": true, @@ -47861,13 +48116,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticInvalidSourceEncoding", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -47894,7 +48150,8 @@ "parameters": { "suppressToolId": "CA1422", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -47927,7 +48184,8 @@ "parameters": { "suppressToolId": "CA1421", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -47960,7 +48218,8 @@ "parameters": { "suppressToolId": "CA1420", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -47993,14 +48252,15 @@ "parameters": { "suppressToolId": "Unity.PossibleMisapplicationOfAttributeToMultipleFields", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity", - "index": 19, + "index": 18, "toolComponent": { "name": "QDNET" } @@ -48018,7 +48278,7 @@ }, "fullDescription": { "text": "cppcoreguidelines-pro-bounds-constant-array-index clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-pro-bounds-constant-array-index clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/pro-bounds-constant-array-index.html)" + "markdown": "cppcoreguidelines-pro-bounds-constant-array-index clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/pro-bounds-constant-array-index.html)" }, "defaultConfiguration": { "enabled": false, @@ -48026,13 +48286,14 @@ "parameters": { "suppressToolId": "CppClangTidyCppcoreguidelinesProBoundsConstantArrayIndex", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -48044,6 +48305,40 @@ } ] }, + { + "id": "T4Errors", + "shortDescription": { + "text": "T4 Errors" + }, + "fullDescription": { + "text": "T4 Errors", + "markdown": "T4 Errors" + }, + "defaultConfiguration": { + "enabled": false, + "level": "error", + "parameters": { + "suppressToolId": "T4Errors", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "T4/Non configurable", + "index": 125, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppClangTidyClangAnalyzerWebkitRefCntblBaseVirtualDtor", "shortDescription": { @@ -48059,13 +48354,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerWebkitRefCntblBaseVirtualDtor", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -48092,14 +48388,15 @@ "parameters": { "suppressToolId": "CppEnforceCVQualifiersPlacement", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Syntax Style", - "index": 83, + "id": "C_C++/Syntax Style", + "index": 91, "toolComponent": { "name": "QDNET" } @@ -48117,7 +48414,7 @@ }, "fullDescription": { "text": "-Wgpu-maybe-wrong-side clang diagnostic · Learn more", - "markdown": "-Wgpu-maybe-wrong-side clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wgpu-maybe-wrong-side)" + "markdown": "-Wgpu-maybe-wrong-side clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgpu-maybe-wrong-side)" }, "defaultConfiguration": { "enabled": true, @@ -48125,13 +48422,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticGpuMaybeWrongSide", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -48158,7 +48456,8 @@ "parameters": { "suppressToolId": "EntityFramework.ModelValidation.UnlimitedStringLength", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -48191,7 +48490,8 @@ "parameters": { "suppressToolId": "CA1419", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -48216,7 +48516,7 @@ }, "fullDescription": { "text": "-Wclass-conversion clang diagnostic · Learn more", - "markdown": "-Wclass-conversion clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wclass-conversion)" + "markdown": "-Wclass-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wclass-conversion)" }, "defaultConfiguration": { "enabled": true, @@ -48224,13 +48524,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticClassConversion", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -48257,7 +48558,8 @@ "parameters": { "suppressToolId": "CA1418", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -48275,6 +48577,40 @@ } ] }, + { + "id": "CppClangTidyClangAnalyzerUnixStdCLibraryFunctions", + "shortDescription": { + "text": "unix.StdCLibraryFunctions clang static analyzer check" + }, + "fullDescription": { + "text": "unix.StdCLibraryFunctions clang static analyzer check · Learn more", + "markdown": "unix.StdCLibraryFunctions clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangAnalyzerUnixStdCLibraryFunctions", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Static Analyzer Checks", + "index": 32, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "NUnit.RedundantArgumentInsteadOfExpectedResult", "shortDescription": { @@ -48290,7 +48626,8 @@ "parameters": { "suppressToolId": "NUnit.RedundantArgumentInsteadOfExpectedResult", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -48323,7 +48660,8 @@ "parameters": { "suppressToolId": "CA1417", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -48356,7 +48694,8 @@ "parameters": { "suppressToolId": "CA1416", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -48389,7 +48728,8 @@ "parameters": { "suppressToolId": "SafeCastIsUsedAsTypeCheck", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -48414,7 +48754,7 @@ }, "fullDescription": { "text": "-Wslash-u-filename clang diagnostic · Learn more", - "markdown": "-Wslash-u-filename clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wslash-u-filename)" + "markdown": "-Wslash-u-filename clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wslash-u-filename)" }, "defaultConfiguration": { "enabled": true, @@ -48422,13 +48762,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticSlashUFilename", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -48447,7 +48788,7 @@ }, "fullDescription": { "text": "llvmlibc-implementation-in-namespace clang-tidy check · Learn more", - "markdown": "llvmlibc-implementation-in-namespace clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/llvmlibc/implementation-in-namespace.html)" + "markdown": "llvmlibc-implementation-in-namespace clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/llvmlibc/implementation-in-namespace.html)" }, "defaultConfiguration": { "enabled": false, @@ -48455,13 +48796,14 @@ "parameters": { "suppressToolId": "CppClangTidyLlvmlibcImplementationInNamespace", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -48479,8 +48821,8 @@ "text": "Redundant nullable directive" }, "fullDescription": { - "text": "A nullable directive does not change a context and can be safely removed", - "markdown": "A nullable directive does not change a context and can be safely removed" + "text": "A nullable directive does not change a context and can be safely removed Learn more...", + "markdown": "A nullable directive does not change a context and can be safely removed [Learn more...](https://www.jetbrains.com/help/rider/RedundantNullableDirective.html)" }, "defaultConfiguration": { "enabled": true, @@ -48488,7 +48830,8 @@ "parameters": { "suppressToolId": "RedundantNullableDirective", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -48513,7 +48856,7 @@ }, "fullDescription": { "text": "-Wsection clang diagnostic · Learn more", - "markdown": "-Wsection clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wsection)" + "markdown": "-Wsection clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wsection)" }, "defaultConfiguration": { "enabled": true, @@ -48521,13 +48864,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticSection", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -48554,7 +48898,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS1911", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -48572,6 +48917,74 @@ } ] }, + { + "id": "CppClangTidyBugpronePointerArithmeticOnPolymorphicObject", + "shortDescription": { + "text": "bugprone-pointer-arithmetic-on-polymorphic-object clang-tidy check" + }, + "fullDescription": { + "text": "bugprone-pointer-arithmetic-on-polymorphic-object clang-tidy check · Learn more", + "markdown": "bugprone-pointer-arithmetic-on-polymorphic-object clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/pointer-arithmetic-on-polymorphic-object.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyBugpronePointerArithmeticOnPolymorphicObject", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "BlockShadersErrors", + "shortDescription": { + "text": "Block Shaders Errors" + }, + "fullDescription": { + "text": "Block Shaders Errors", + "markdown": "Block Shaders Errors" + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "BlockShadersErrors", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Non configurable", + "index": 127, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppClangTidyClangAnalyzerApiModelingTrustNonnull", "shortDescription": { @@ -48587,13 +49000,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerApiModelingTrustNonnull", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -48605,6 +49019,40 @@ } ] }, + { + "id": "CppClangTidyClangDiagnosticNanInfinityDisabled", + "shortDescription": { + "text": "nan-infinity-disabled clang diagnostic" + }, + "fullDescription": { + "text": "-Wnan-infinity-disabled clang diagnostic · Learn more", + "markdown": "-Wnan-infinity-disabled clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnan-infinity-disabled)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticNanInfinityDisabled", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "Unity.BurstLoadingStaticNotReadonly", "shortDescription": { @@ -48620,14 +49068,15 @@ "parameters": { "suppressToolId": "Unity.BurstLoadingStaticNotReadonly", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity Burst Compiler Warnings", - "index": 54, + "index": 57, "toolComponent": { "name": "QDNET" } @@ -48653,13 +49102,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerValistUninitialized", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -48686,7 +49136,8 @@ "parameters": { "suppressToolId": "CA1401", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -48704,6 +49155,74 @@ } ] }, + { + "id": "CppClangTidyClangDiagnosticC23Extensions", + "shortDescription": { + "text": "c23-extensions clang diagnostic" + }, + "fullDescription": { + "text": "-Wc23-extensions clang diagnostic · Learn more", + "markdown": "-Wc23-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc23-extensions)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticC23Extensions", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticVlaExtensionStaticAssert", + "shortDescription": { + "text": "vla-extension-static-assert clang diagnostic" + }, + "fullDescription": { + "text": "-Wvla-extension-static-assert clang diagnostic · Learn more", + "markdown": "-Wvla-extension-static-assert clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wvla-extension-static-assert)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticVlaExtensionStaticAssert", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppClangTidyClangDiagnosticPreCpp20Compat", "shortDescription": { @@ -48711,7 +49230,7 @@ }, "fullDescription": { "text": "-Wpre-c++20-compat clang diagnostic · Learn more", - "markdown": "-Wpre-c++20-compat clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpre-c-20-compat)" + "markdown": "-Wpre-c++20-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpre-c-20-compat)" }, "defaultConfiguration": { "enabled": false, @@ -48719,13 +49238,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticPreCpp20Compat", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -48744,7 +49264,7 @@ }, "fullDescription": { "text": "-Wpre-c++17-compat clang diagnostic · Learn more", - "markdown": "-Wpre-c++17-compat clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpre-c-17-compat)" + "markdown": "-Wpre-c++17-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpre-c-17-compat)" }, "defaultConfiguration": { "enabled": false, @@ -48752,13 +49272,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticPreCpp17Compat", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -48785,14 +49306,15 @@ "parameters": { "suppressToolId": "Unity.RedundantInitializeOnLoadAttribute", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity", - "index": 19, + "index": 18, "toolComponent": { "name": "QDNET" } @@ -48806,7 +49328,7 @@ { "id": "Unity.Entities.AspectWrongFieldsType", "shortDescription": { - "text": "{0}'s field '{1}' must be of type RefRW, RefRO, EnabledRefRW, EnabledRefRO, DynamicBuffer, or Entity" + "text": "DOTS: IAspect fields are required to be one of the following types: RefRW, RefRO, EnabledRefRW, EnabledRefRO, DynamicBuffer, or Entity" }, "fullDescription": { "text": "{0}'s field '{1}' must be of type RefRW, RefRO, EnabledRefRW, EnabledRefRO, DynamicBuffer, or Entity", @@ -48818,14 +49340,15 @@ "parameters": { "suppressToolId": "Unity.Entities.AspectWrongFieldsType", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity", - "index": 19, + "index": 18, "toolComponent": { "name": "QDNET" } @@ -48851,7 +49374,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8519", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -48884,14 +49408,15 @@ "parameters": { "suppressToolId": "InvertCondition.1", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -48909,7 +49434,7 @@ }, "fullDescription": { "text": "-Wmicrosoft-default-arg-redefinition clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-default-arg-redefinition clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-default-arg-redefinition)" + "markdown": "-Wmicrosoft-default-arg-redefinition clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-default-arg-redefinition)" }, "defaultConfiguration": { "enabled": true, @@ -48917,13 +49442,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftDefaultArgRedefinition", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -48942,7 +49468,7 @@ }, "fullDescription": { "text": "-Wredeclared-class-member clang diagnostic · Learn more", - "markdown": "-Wredeclared-class-member clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wredeclared-class-member)" + "markdown": "-Wredeclared-class-member clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wredeclared-class-member)" }, "defaultConfiguration": { "enabled": true, @@ -48950,13 +49476,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticRedeclaredClassMember", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -48968,39 +49495,6 @@ } ] }, - { - "id": "UseMethodIsInstanceOfType", - "shortDescription": { - "text": "Use method IsInstanceOfType(..)" - }, - "fullDescription": { - "text": "$type$.IsAssignableFrom($expr$.GetType())", - "markdown": "$type$.IsAssignableFrom($expr$.GetType())" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "UseMethodIsInstanceOfType", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, { "id": "CppClangTidyBugproneBranchClone", "shortDescription": { @@ -49008,7 +49502,7 @@ }, "fullDescription": { "text": "bugprone-branch-clone clang-tidy check · Learn more", - "markdown": "bugprone-branch-clone clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/branch-clone.html)" + "markdown": "bugprone-branch-clone clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/branch-clone.html)" }, "defaultConfiguration": { "enabled": true, @@ -49016,13 +49510,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneBranchClone", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -49049,13 +49544,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerCplusplusInnerPointer", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -49074,7 +49570,7 @@ }, "fullDescription": { "text": "bugprone-unique-ptr-array-mismatch clang-tidy check · Learn more", - "markdown": "bugprone-unique-ptr-array-mismatch clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/unique-ptr-array-mismatch.html)" + "markdown": "bugprone-unique-ptr-array-mismatch clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/unique-ptr-array-mismatch.html)" }, "defaultConfiguration": { "enabled": true, @@ -49082,13 +49578,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneUniquePtrArrayMismatch", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -49115,13 +49612,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerCoreUninitializedUndefReturn", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -49140,7 +49638,7 @@ }, "fullDescription": { "text": "-Wreinterpret-base-class clang diagnostic · Learn more", - "markdown": "-Wreinterpret-base-class clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wreinterpret-base-class)" + "markdown": "-Wreinterpret-base-class clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wreinterpret-base-class)" }, "defaultConfiguration": { "enabled": true, @@ -49148,13 +49646,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticReinterpretBaseClass", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -49166,6 +49665,40 @@ } ] }, + { + "id": "CppClangTidyReadabilityRedundantCasting", + "shortDescription": { + "text": "readability-redundant-casting clang-tidy check" + }, + "fullDescription": { + "text": "readability-redundant-casting clang-tidy check · Learn more", + "markdown": "readability-redundant-casting clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/redundant-casting.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyReadabilityRedundantCasting", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "Unity.PerformanceCriticalCodeInvocation", "shortDescription": { @@ -49181,14 +49714,15 @@ "parameters": { "suppressToolId": "Unity.PerformanceCriticalCodeInvocation", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity Performance Inspections", - "index": 115, + "index": 128, "toolComponent": { "name": "QDNET" } @@ -49206,7 +49740,7 @@ }, "fullDescription": { "text": "-Winvalid-ios-deployment-target clang diagnostic · Learn more", - "markdown": "-Winvalid-ios-deployment-target clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#winvalid-ios-deployment-target)" + "markdown": "-Winvalid-ios-deployment-target clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winvalid-ios-deployment-target)" }, "defaultConfiguration": { "enabled": true, @@ -49214,13 +49748,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticInvalidIosDeploymentTarget", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -49247,7 +49782,8 @@ "parameters": { "suppressToolId": "InconsistentOrderOfLocks", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -49272,7 +49808,7 @@ }, "fullDescription": { "text": "bugprone-easily-swappable-parameters clang-tidy check · Learn more", - "markdown": "bugprone-easily-swappable-parameters clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/easily-swappable-parameters.html)" + "markdown": "bugprone-easily-swappable-parameters clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/easily-swappable-parameters.html)" }, "defaultConfiguration": { "enabled": false, @@ -49280,13 +49816,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneEasilySwappableParameters", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -49298,6 +49835,40 @@ } ] }, + { + "id": "CppClangTidyClangDiagnosticCpp2cCompat", + "shortDescription": { + "text": "c++2c-compat clang diagnostic" + }, + "fullDescription": { + "text": "-Wc++2c-compat clang diagnostic · Learn more", + "markdown": "-Wc++2c-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-2c-compat)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticCpp2cCompat", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppClangTidyClangDiagnosticOpenmpMapping", "shortDescription": { @@ -49305,7 +49876,7 @@ }, "fullDescription": { "text": "-Wopenmp-mapping clang diagnostic · Learn more", - "markdown": "-Wopenmp-mapping clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wopenmp-mapping)" + "markdown": "-Wopenmp-mapping clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wopenmp-mapping)" }, "defaultConfiguration": { "enabled": true, @@ -49313,13 +49884,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticOpenmpMapping", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -49346,7 +49918,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8524", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -49379,7 +49952,8 @@ "parameters": { "suppressToolId": "ArgumentsStyleLiteral", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -49412,7 +49986,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8520", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -49437,7 +50012,7 @@ }, "fullDescription": { "text": "mpi-type-mismatch clang-tidy check · Learn more", - "markdown": "mpi-type-mismatch clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/mpi/type-mismatch.html)" + "markdown": "mpi-type-mismatch clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/mpi/type-mismatch.html)" }, "defaultConfiguration": { "enabled": true, @@ -49445,13 +50020,14 @@ "parameters": { "suppressToolId": "CppClangTidyMpiTypeMismatch", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -49478,14 +50054,15 @@ "parameters": { "suppressToolId": "FSharpRedundantParens", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "F#/Redundancies in Code", - "index": 67, + "index": 73, "toolComponent": { "name": "QDNET" } @@ -49503,7 +50080,7 @@ }, "fullDescription": { "text": "cert-pos47-c clang-tidy check · Learn more", - "markdown": "cert-pos47-c clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cert/pos47-c.html)" + "markdown": "cert-pos47-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/pos47-c.html)" }, "defaultConfiguration": { "enabled": false, @@ -49511,13 +50088,14 @@ "parameters": { "suppressToolId": "CppClangTidyCertPos47C", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -49544,14 +50122,15 @@ "parameters": { "suppressToolId": "MemberCanBeMadeStatic.Local", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -49577,14 +50156,15 @@ "parameters": { "suppressToolId": "RouteTemplates.OptionalParameterCanBePrecededOnlyBySinglePeriod", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "ASP.NET route templates/Code Notification", - "index": 47, + "index": 48, "toolComponent": { "name": "QDNET" } @@ -49610,13 +50190,14 @@ "parameters": { "suppressToolId": "CppEnumeratorNeverUsed", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -49635,7 +50216,7 @@ }, "fullDescription": { "text": "-Winconsistent-dllimport clang diagnostic · Learn more", - "markdown": "-Winconsistent-dllimport clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#winconsistent-dllimport)" + "markdown": "-Winconsistent-dllimport clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winconsistent-dllimport)" }, "defaultConfiguration": { "enabled": true, @@ -49643,13 +50224,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticInconsistentDllimport", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -49668,7 +50250,7 @@ }, "fullDescription": { "text": "-Wchar-subscripts clang diagnostic · Learn more", - "markdown": "-Wchar-subscripts clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wchar-subscripts)" + "markdown": "-Wchar-subscripts clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wchar-subscripts)" }, "defaultConfiguration": { "enabled": true, @@ -49676,13 +50258,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCharSubscripts", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -49709,14 +50292,15 @@ "parameters": { "suppressToolId": "UseCancellationTokenForIAsyncEnumerable", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -49742,14 +50326,15 @@ "parameters": { "suppressToolId": "MemberCanBeFileLocal", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -49775,7 +50360,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS0618", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -49808,7 +50394,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS0612", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -49841,14 +50428,15 @@ "parameters": { "suppressToolId": "RouteTemplates.MethodMissingRouteParameters", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "ASP.NET route templates/Code Notification", - "index": 47, + "index": 48, "toolComponent": { "name": "QDNET" } @@ -49874,7 +50462,8 @@ "parameters": { "suppressToolId": "RedundantUnsafeContext", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -49892,6 +50481,40 @@ } ] }, + { + "id": "CppClangTidyClangAnalyzerUnixErrno", + "shortDescription": { + "text": "unix.Errno clang static analyzer check" + }, + "fullDescription": { + "text": "unix.Errno clang static analyzer check · Learn more", + "markdown": "unix.Errno clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangAnalyzerUnixErrno", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Static Analyzer Checks", + "index": 32, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppClangTidyClangDiagnosticUndefinedInline", "shortDescription": { @@ -49899,7 +50522,7 @@ }, "fullDescription": { "text": "-Wundefined-inline clang diagnostic · Learn more", - "markdown": "-Wundefined-inline clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wundefined-inline)" + "markdown": "-Wundefined-inline clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wundefined-inline)" }, "defaultConfiguration": { "enabled": true, @@ -49907,13 +50530,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUndefinedInline", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -49932,7 +50556,7 @@ }, "fullDescription": { "text": "-Wnonportable-include-path clang diagnostic · Learn more", - "markdown": "-Wnonportable-include-path clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wnonportable-include-path)" + "markdown": "-Wnonportable-include-path clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnonportable-include-path)" }, "defaultConfiguration": { "enabled": false, @@ -49940,13 +50564,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticNonportableIncludePath", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -49973,7 +50598,8 @@ "parameters": { "suppressToolId": "MoveToExistingPositionalDeconstructionPattern", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -49998,7 +50624,7 @@ }, "fullDescription": { "text": "-Woverride-init clang diagnostic · Learn more", - "markdown": "-Woverride-init clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#woverride-init)" + "markdown": "-Woverride-init clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#woverride-init)" }, "defaultConfiguration": { "enabled": true, @@ -50006,13 +50632,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticOverrideInit", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -50031,7 +50658,7 @@ }, "fullDescription": { "text": "cert-pos44-c clang-tidy check · Learn more", - "markdown": "cert-pos44-c clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cert/pos44-c.html)" + "markdown": "cert-pos44-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/pos44-c.html)" }, "defaultConfiguration": { "enabled": false, @@ -50039,13 +50666,14 @@ "parameters": { "suppressToolId": "CppClangTidyCertPos44C", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -50072,7 +50700,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS1957", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -50105,7 +50734,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS0628", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -50138,13 +50768,14 @@ "parameters": { "suppressToolId": "CppSomeObjectMembersMightNotBeInitialized", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -50171,7 +50802,8 @@ "parameters": { "suppressToolId": "NotAccessedPrimaryConstructorParameterCompiler", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -50204,14 +50836,15 @@ "parameters": { "suppressToolId": "ReplaceWithOfType.Count.1", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -50228,8 +50861,8 @@ "text": "Non-virtual class member function hidden in a derived class" }, "fullDescription": { - "text": "Non-virtual class member function is hidden in a derived class", - "markdown": "Non-virtual class member function is hidden in a derived class" + "text": "Non-virtual class member function is hidden in a derived class Learn more...", + "markdown": "Non-virtual class member function is hidden in a derived class [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Res-reuse)" }, "defaultConfiguration": { "enabled": true, @@ -50237,13 +50870,14 @@ "parameters": { "suppressToolId": "CppHiddenFunction", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -50270,13 +50904,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerApiModelingGoogleGTest", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -50295,7 +50930,7 @@ }, "fullDescription": { "text": "-Walloca-with-align-alignof clang diagnostic · Learn more", - "markdown": "-Walloca-with-align-alignof clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#walloca-with-align-alignof)" + "markdown": "-Walloca-with-align-alignof clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#walloca-with-align-alignof)" }, "defaultConfiguration": { "enabled": true, @@ -50303,13 +50938,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticAllocaWithAlignAlignof", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -50336,14 +50972,15 @@ "parameters": { "suppressToolId": "ReplaceWithOfType.Count.2", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -50369,7 +51006,8 @@ "parameters": { "suppressToolId": "MemberHidesStaticFromOuterClass", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -50402,14 +51040,15 @@ "parameters": { "suppressToolId": "CppEnforceTypeAliasCodeStyle", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Syntax Style", - "index": 83, + "id": "C_C++/Syntax Style", + "index": 91, "toolComponent": { "name": "QDNET" } @@ -50427,7 +51066,7 @@ }, "fullDescription": { "text": "cert-oop11-cpp clang-tidy check · Learn more", - "markdown": "cert-oop11-cpp clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cert/oop11-cpp.html)" + "markdown": "cert-oop11-cpp clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/oop11-cpp.html)" }, "defaultConfiguration": { "enabled": false, @@ -50435,13 +51074,14 @@ "parameters": { "suppressToolId": "CppClangTidyCertOop11Cpp", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -50460,7 +51100,7 @@ }, "fullDescription": { "text": "-Wpre-c++26-compat-pedantic clang diagnostic · Learn more", - "markdown": "-Wpre-c++26-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpre-c-26-compat-pedantic)" + "markdown": "-Wpre-c++26-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpre-c-26-compat-pedantic)" }, "defaultConfiguration": { "enabled": false, @@ -50468,13 +51108,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticPreCpp26CompatPedantic", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -50501,14 +51142,15 @@ "parameters": { "suppressToolId": "CppMemberFunctionMayBeStatic", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Common Practices and Code Improvements", - "index": 17, + "id": "C_C++/Common Practices and Code Improvements", + "index": 16, "toolComponent": { "name": "QDNET" } @@ -50526,7 +51168,7 @@ }, "fullDescription": { "text": "objc-nsinvocation-argument-lifetime clang-tidy check · Learn more", - "markdown": "objc-nsinvocation-argument-lifetime clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/objc/nsinvocation-argument-lifetime.html)" + "markdown": "objc-nsinvocation-argument-lifetime clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/objc/nsinvocation-argument-lifetime.html)" }, "defaultConfiguration": { "enabled": true, @@ -50534,13 +51176,14 @@ "parameters": { "suppressToolId": "CppClangTidyObjcNsinvocationArgumentLifetime", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -50567,13 +51210,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerSecurityInsecureAPIGets", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -50600,14 +51244,49 @@ "parameters": { "suppressToolId": "WebConfig.WrongModule", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "Web.Config/Potential Code Quality Issues", - "index": 75, + "index": 82, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangAnalyzerSecurityCertEnvInvalidPtr", + "shortDescription": { + "text": "security.cert.env.InvalidPtr clang static analyzer check" + }, + "fullDescription": { + "text": "security.cert.env.InvalidPtr clang static analyzer check · Learn more", + "markdown": "security.cert.env.InvalidPtr clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangAnalyzerSecurityCertEnvInvalidPtr", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Static Analyzer Checks", + "index": 32, "toolComponent": { "name": "QDNET" } @@ -50625,7 +51304,7 @@ }, "fullDescription": { "text": "readability-delete-null-pointer clang-tidy check · Learn more", - "markdown": "readability-delete-null-pointer clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/delete-null-pointer.html)" + "markdown": "readability-delete-null-pointer clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/delete-null-pointer.html)" }, "defaultConfiguration": { "enabled": true, @@ -50633,13 +51312,14 @@ "parameters": { "suppressToolId": "CppClangTidyReadabilityDeleteNullPointer", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -50666,7 +51346,8 @@ "parameters": { "suppressToolId": "UseSwitchCasePatternVariable", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -50691,7 +51372,7 @@ }, "fullDescription": { "text": "cppcoreguidelines-narrowing-conversions clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-narrowing-conversions clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/narrowing-conversions.html)" + "markdown": "cppcoreguidelines-narrowing-conversions clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/narrowing-conversions.html)" }, "defaultConfiguration": { "enabled": true, @@ -50699,13 +51380,14 @@ "parameters": { "suppressToolId": "CppClangTidyCppcoreguidelinesNarrowingConversions", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -50732,7 +51414,8 @@ "parameters": { "suppressToolId": "RedundantVirtualModifier", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -50765,13 +51448,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerNullabilityNullablePassedToNonnull", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -50790,7 +51474,7 @@ }, "fullDescription": { "text": "-Wgnu-inline-cpp-without-extern clang diagnostic · Learn more", - "markdown": "-Wgnu-inline-cpp-without-extern clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wgnu-inline-cpp-without-extern)" + "markdown": "-Wgnu-inline-cpp-without-extern clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-inline-cpp-without-extern)" }, "defaultConfiguration": { "enabled": true, @@ -50798,13 +51482,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticGnuInlineCppWithoutExtern", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -50823,7 +51508,7 @@ }, "fullDescription": { "text": "-Wunaligned-qualifier-implicit-cast clang diagnostic · Learn more", - "markdown": "-Wunaligned-qualifier-implicit-cast clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunaligned-qualifier-implicit-cast)" + "markdown": "-Wunaligned-qualifier-implicit-cast clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunaligned-qualifier-implicit-cast)" }, "defaultConfiguration": { "enabled": true, @@ -50831,13 +51516,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnalignedQualifierImplicitCast", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -50864,14 +51550,15 @@ "parameters": { "suppressToolId": "Unity.UnknownResource", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity", - "index": 19, + "index": 18, "toolComponent": { "name": "QDNET" } @@ -50897,7 +51584,8 @@ "parameters": { "suppressToolId": "VBReplaceWithOfType.First.2", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -50930,7 +51618,8 @@ "parameters": { "suppressToolId": "VBReplaceWithOfType.First.1", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -50963,7 +51652,8 @@ "parameters": { "suppressToolId": "NUnit.RedundantArgumentInTestCaseAttribute", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -50981,6 +51671,40 @@ } ] }, + { + "id": "CppClangTidyClangDiagnosticThreadSafetyReferenceReturn", + "shortDescription": { + "text": "thread-safety-reference-return clang diagnostic" + }, + "fullDescription": { + "text": "-Wthread-safety-reference-return clang diagnostic · Learn more", + "markdown": "-Wthread-safety-reference-return clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wthread-safety-reference-return)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticThreadSafetyReferenceReturn", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "FormatStringPlaceholdersMismatch", "shortDescription": { @@ -50996,14 +51720,15 @@ "parameters": { "suppressToolId": "FormatStringPlaceholdersMismatch", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "ResX/Potential Code Quality Issues", - "index": 63, + "index": 68, "toolComponent": { "name": "QDNET" } @@ -51021,7 +51746,7 @@ }, "fullDescription": { "text": "-Wvariadic-macros clang diagnostic · Learn more", - "markdown": "-Wvariadic-macros clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wvariadic-macros)" + "markdown": "-Wvariadic-macros clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wvariadic-macros)" }, "defaultConfiguration": { "enabled": true, @@ -51029,13 +51754,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticVariadicMacros", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -51054,7 +51780,7 @@ }, "fullDescription": { "text": "-Wreserved-module-identifier clang diagnostic · Learn more", - "markdown": "-Wreserved-module-identifier clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wreserved-module-identifier)" + "markdown": "-Wreserved-module-identifier clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wreserved-module-identifier)" }, "defaultConfiguration": { "enabled": true, @@ -51062,13 +51788,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticReservedModuleIdentifier", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -51095,13 +51822,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerSecurityInsecureAPIDecodeValueOfObjCType", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -51120,7 +51848,7 @@ }, "fullDescription": { "text": "llvm-include-order clang-tidy check · Learn more", - "markdown": "llvm-include-order clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/llvm/include-order.html)" + "markdown": "llvm-include-order clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/llvm/include-order.html)" }, "defaultConfiguration": { "enabled": false, @@ -51128,13 +51856,14 @@ "parameters": { "suppressToolId": "CppClangTidyLlvmIncludeOrder", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -51161,13 +51890,14 @@ "parameters": { "suppressToolId": "CppDoxygenUnresolvedReference", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -51194,14 +51924,15 @@ "parameters": { "suppressToolId": "VBWarnings__BC42356", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "VB.NET/Compiler Warnings", - "index": 100, + "index": 110, "toolComponent": { "name": "QDNET" } @@ -51227,14 +51958,15 @@ "parameters": { "suppressToolId": "VBWarnings__BC42358", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "VB.NET/Compiler Warnings", - "index": 100, + "index": 110, "toolComponent": { "name": "QDNET" } @@ -51252,7 +51984,7 @@ }, "fullDescription": { "text": "-Walloca clang diagnostic · Learn more", - "markdown": "-Walloca clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#walloca)" + "markdown": "-Walloca clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#walloca)" }, "defaultConfiguration": { "enabled": true, @@ -51260,13 +51992,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticAlloca", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -51293,13 +52026,14 @@ "parameters": { "suppressToolId": "CppRedundantCastExpression", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Redundancies in Code", + "id": "C_C++/Redundancies in Code", "index": 34, "toolComponent": { "name": "QDNET" @@ -51326,14 +52060,15 @@ "parameters": { "suppressToolId": "RedundantIfStatementThenKeyword", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "VB.NET/Redundancies in Code", - "index": 88, + "index": 96, "toolComponent": { "name": "QDNET" } @@ -51359,7 +52094,8 @@ "parameters": { "suppressToolId": "VBReplaceWithSingleCallToLastOrDefault", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -51392,7 +52128,8 @@ "parameters": { "suppressToolId": "PartialMethodWithSinglePart", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -51417,7 +52154,7 @@ }, "fullDescription": { "text": "misc-use-anonymous-namespace clang-tidy check · Learn more", - "markdown": "misc-use-anonymous-namespace clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/misc/use-anonymous-namespace.html)" + "markdown": "misc-use-anonymous-namespace clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/use-anonymous-namespace.html)" }, "defaultConfiguration": { "enabled": true, @@ -51425,13 +52162,14 @@ "parameters": { "suppressToolId": "CppClangTidyMiscUseAnonymousNamespace", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -51450,7 +52188,7 @@ }, "fullDescription": { "text": "-Wunsupported-nan clang diagnostic · Learn more", - "markdown": "-Wunsupported-nan clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunsupported-nan)" + "markdown": "-Wunsupported-nan clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunsupported-nan)" }, "defaultConfiguration": { "enabled": true, @@ -51458,13 +52196,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnsupportedNan", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -51491,13 +52230,14 @@ "parameters": { "suppressToolId": "CppParameterValueIsReassigned", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -51509,14 +52249,48 @@ } ] }, + { + "id": "XAMLErrors", + "shortDescription": { + "text": "XAML Errors" + }, + "fullDescription": { + "text": "XAML Errors", + "markdown": "XAML Errors" + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "XAMLErrors", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "XAML/Non configurable", + "index": 130, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppZeroValuedExpressionUsedAsNullPointer", "shortDescription": { "text": "Expression that evaluates to zero is used as a null pointer constant" }, "fullDescription": { - "text": "Expression that evaluates to zero is used as a null pointer constant", - "markdown": "Expression that evaluates to zero is used as a null pointer constant" + "text": "Expression that evaluates to zero is used as a null pointer constant Learn more...", + "markdown": "Expression that evaluates to zero is used as a null pointer constant [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Res-nullptr)" }, "defaultConfiguration": { "enabled": true, @@ -51524,13 +52298,14 @@ "parameters": { "suppressToolId": "CppZeroValuedExpressionUsedAsNullPointer", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -51557,14 +52332,15 @@ "parameters": { "suppressToolId": "FSharpRedundantDotInIndexer", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "F#/Redundancies in Code", - "index": 67, + "index": 73, "toolComponent": { "name": "QDNET" } @@ -51582,7 +52358,7 @@ }, "fullDescription": { "text": "-Wquoted-include-in-framework-header clang diagnostic · Learn more", - "markdown": "-Wquoted-include-in-framework-header clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wquoted-include-in-framework-header)" + "markdown": "-Wquoted-include-in-framework-header clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wquoted-include-in-framework-header)" }, "defaultConfiguration": { "enabled": true, @@ -51590,13 +52366,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticQuotedIncludeInFrameworkHeader", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -51614,8 +52391,8 @@ "text": "Non-accessed field" }, "fullDescription": { - "text": "Field is assigned but its value is never used (compiler warning)", - "markdown": "Field is assigned but its value is never used (compiler warning)" + "text": "Field is assigned but its value is never used (compiler warning) Learn more...", + "markdown": "Field is assigned but its value is never used (compiler warning) [Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/misc/cs0414)" }, "defaultConfiguration": { "enabled": true, @@ -51623,7 +52400,8 @@ "parameters": { "suppressToolId": "NotAccessedField.Compiler", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -51648,7 +52426,7 @@ }, "fullDescription": { "text": "cppcoreguidelines-avoid-do-while clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-avoid-do-while clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/avoid-do-while.html)" + "markdown": "cppcoreguidelines-avoid-do-while clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/avoid-do-while.html)" }, "defaultConfiguration": { "enabled": false, @@ -51656,13 +52434,14 @@ "parameters": { "suppressToolId": "CppClangTidyCppcoreguidelinesAvoidDoWhile", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -51689,7 +52468,8 @@ "parameters": { "suppressToolId": "SuggestVarOrType_DeconstructionDeclarations", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -51714,7 +52494,7 @@ }, "fullDescription": { "text": "-Wgnu-label-as-value clang diagnostic · Learn more", - "markdown": "-Wgnu-label-as-value clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wgnu-label-as-value)" + "markdown": "-Wgnu-label-as-value clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-label-as-value)" }, "defaultConfiguration": { "enabled": true, @@ -51722,13 +52502,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticGnuLabelAsValue", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -51740,14 +52521,48 @@ } ] }, + { + "id": "RazorNullConditionalOperatorHighlighting", + "shortDescription": { + "text": "Null-Conditional operator is not supported in this version of Razor" + }, + "fullDescription": { + "text": "Unknown HTML tag, may be a component", + "markdown": "Unknown HTML tag, may be a component" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "RazorNullConditionalOperatorHighlighting", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "Razor/Potential Code Quality Issues", + "index": 93, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "UnassignedField.Compiler", "shortDescription": { "text": "Unassigned field" }, "fullDescription": { - "text": "Field is never assigned (compiler warning)", - "markdown": "Field is never assigned (compiler warning)" + "text": "Field is never assigned (compiler warning) Learn more...", + "markdown": "Field is never assigned (compiler warning) [Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/misc/cs0649)" }, "defaultConfiguration": { "enabled": true, @@ -51755,7 +52570,8 @@ "parameters": { "suppressToolId": "UnassignedField.Compiler", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -51788,13 +52604,14 @@ "parameters": { "suppressToolId": "CppObjectMemberMightNotBeInitialized", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -51821,14 +52638,15 @@ "parameters": { "suppressToolId": "Unity.ParameterNotDerivedFromComponent", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity", - "index": 19, + "index": 18, "toolComponent": { "name": "QDNET" } @@ -51854,14 +52672,15 @@ "parameters": { "suppressToolId": "UseArrayCreationExpression.2", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -51879,7 +52698,7 @@ }, "fullDescription": { "text": "-Wnon-pod-varargs clang diagnostic · Learn more", - "markdown": "-Wnon-pod-varargs clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wnon-pod-varargs)" + "markdown": "-Wnon-pod-varargs clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnon-pod-varargs)" }, "defaultConfiguration": { "enabled": true, @@ -51887,13 +52706,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticNonPodVarargs", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -51920,14 +52740,15 @@ "parameters": { "suppressToolId": "UseArrayCreationExpression.1", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -51945,7 +52766,7 @@ }, "fullDescription": { "text": "-Wmany-braces-around-scalar-init clang diagnostic · Learn more", - "markdown": "-Wmany-braces-around-scalar-init clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmany-braces-around-scalar-init)" + "markdown": "-Wmany-braces-around-scalar-init clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmany-braces-around-scalar-init)" }, "defaultConfiguration": { "enabled": true, @@ -51953,13 +52774,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticManyBracesAroundScalarInit", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -51971,6 +52793,74 @@ } ] }, + { + "id": "CppClangTidyBoostUseRanges", + "shortDescription": { + "text": "boost-use-ranges clang-tidy check" + }, + "fullDescription": { + "text": "boost-use-ranges clang-tidy check · Learn more", + "markdown": "boost-use-ranges clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/boost/use-ranges.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyBoostUseRanges", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "VBWarnings__BC42380", + "shortDescription": { + "text": "Type is for evaluation purposes only and is subject to change or removal in future updates. Suppress this diagnostic to proceed." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "VBWarnings__BC42380", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "VB.NET/Compiler Warnings", + "index": 110, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "Html.IdDuplication", "shortDescription": { @@ -51986,14 +52876,15 @@ "parameters": { "suppressToolId": "Html.IdDuplication", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "HTML/Potential Code Quality Issues", - "index": 51, + "index": 54, "toolComponent": { "name": "QDNET" } @@ -52019,14 +52910,15 @@ "parameters": { "suppressToolId": "Unity.UnknownAnimatorStateName", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity", - "index": 19, + "index": 18, "toolComponent": { "name": "QDNET" } @@ -52052,14 +52944,15 @@ "parameters": { "suppressToolId": "UseImplicitlyTypedVariableEvident", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "VB.NET/Redundancies in Code", - "index": 88, + "index": 96, "toolComponent": { "name": "QDNET" } @@ -52077,7 +52970,7 @@ }, "fullDescription": { "text": "-Wdeprecated-copy-with-user-provided-dtor clang diagnostic · Learn more", - "markdown": "-Wdeprecated-copy-with-user-provided-dtor clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdeprecated-copy-with-user-provided-dtor)" + "markdown": "-Wdeprecated-copy-with-user-provided-dtor clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-copy-with-user-provided-dtor)" }, "defaultConfiguration": { "enabled": true, @@ -52085,13 +52978,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedCopyWithUserProvidedDtor", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -52118,14 +53012,15 @@ "parameters": { "suppressToolId": "FSharpRedundantApplication", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "F#/Redundancies in Code", - "index": 67, + "index": 73, "toolComponent": { "name": "QDNET" } @@ -52143,7 +53038,7 @@ }, "fullDescription": { "text": "-Wgnu-empty-struct clang diagnostic · Learn more", - "markdown": "-Wgnu-empty-struct clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wgnu-empty-struct)" + "markdown": "-Wgnu-empty-struct clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-empty-struct)" }, "defaultConfiguration": { "enabled": true, @@ -52151,13 +53046,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticGnuEmptyStruct", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -52184,14 +53080,15 @@ "parameters": { "suppressToolId": "AccessToStaticMemberViaDerivedType", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -52209,7 +53106,7 @@ }, "fullDescription": { "text": "-Wtautological-constant-out-of-range-compare clang diagnostic · Learn more", - "markdown": "-Wtautological-constant-out-of-range-compare clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wtautological-constant-out-of-range-compare)" + "markdown": "-Wtautological-constant-out-of-range-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtautological-constant-out-of-range-compare)" }, "defaultConfiguration": { "enabled": true, @@ -52217,13 +53114,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticTautologicalConstantOutOfRangeCompare", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -52242,7 +53140,7 @@ }, "fullDescription": { "text": "-Winclude-next-absolute-path clang diagnostic · Learn more", - "markdown": "-Winclude-next-absolute-path clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#winclude-next-absolute-path)" + "markdown": "-Winclude-next-absolute-path clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winclude-next-absolute-path)" }, "defaultConfiguration": { "enabled": true, @@ -52250,13 +53148,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticIncludeNextAbsolutePath", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -52283,13 +53182,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerApiModelingLlvmReturnValue", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -52301,6 +53201,40 @@ } ] }, + { + "id": "CppClangTidyClangDiagnosticWarning", + "shortDescription": { + "text": "warning clang diagnostic" + }, + "fullDescription": { + "text": "Clang warning", + "markdown": "Clang warning" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticWarning", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppClangTidyClangDiagnosticCpp98Cpp11Cpp14Cpp17CompatPedantic", "shortDescription": { @@ -52308,7 +53242,7 @@ }, "fullDescription": { "text": "-Wc++98-c++11-c++14-c++17-compat-pedantic clang diagnostic · Learn more", - "markdown": "-Wc++98-c++11-c++14-c++17-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-98-c-11-c-14-c-17-compat-pedantic)" + "markdown": "-Wc++98-c++11-c++14-c++17-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-98-c-11-c-14-c-17-compat-pedantic)" }, "defaultConfiguration": { "enabled": false, @@ -52316,13 +53250,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCpp98Cpp11Cpp14Cpp17CompatPedantic", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -52341,7 +53276,7 @@ }, "fullDescription": { "text": "-W#pragma-messages clang diagnostic · Learn more", - "markdown": "-W#pragma-messages clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#w-pragma-messages)" + "markdown": "-W#pragma-messages clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#w-pragma-messages)" }, "defaultConfiguration": { "enabled": true, @@ -52349,13 +53284,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticPragmaMessages", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -52382,13 +53318,14 @@ "parameters": { "suppressToolId": "CppBoostFormatTooFewArgs", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -52407,7 +53344,7 @@ }, "fullDescription": { "text": "-Wignored-availability-without-sdk-settings clang diagnostic · Learn more", - "markdown": "-Wignored-availability-without-sdk-settings clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wignored-availability-without-sdk-settings)" + "markdown": "-Wignored-availability-without-sdk-settings clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wignored-availability-without-sdk-settings)" }, "defaultConfiguration": { "enabled": false, @@ -52415,13 +53352,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticIgnoredAvailabilityWithoutSdkSettings", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -52439,8 +53377,8 @@ "text": "Use UTF-8 string literal" }, "fullDescription": { - "text": "Byte array can be converted to a UTF-8 string literal", - "markdown": "Byte array can be converted to a UTF-8 string literal" + "text": "Byte array can be converted to a UTF-8 string literal Learn more...", + "markdown": "Byte array can be converted to a UTF-8 string literal [Learn more...](https://www.jetbrains.com/help/rider/UseUtf8StringLiteral.html)" }, "defaultConfiguration": { "enabled": true, @@ -52448,7 +53386,8 @@ "parameters": { "suppressToolId": "UseUtf8StringLiteral", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -52481,14 +53420,15 @@ "parameters": { "suppressToolId": "Unity.UnknownInputAxes", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity", - "index": 19, + "index": 18, "toolComponent": { "name": "QDNET" } @@ -52514,7 +53454,8 @@ "parameters": { "suppressToolId": "Xaml.ElementNameReferenceNotResolved", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -52539,7 +53480,7 @@ }, "fullDescription": { "text": "abseil-duration-factory-scale clang-tidy check · Learn more", - "markdown": "abseil-duration-factory-scale clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/duration-factory-scale.html)" + "markdown": "abseil-duration-factory-scale clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/duration-factory-scale.html)" }, "defaultConfiguration": { "enabled": false, @@ -52547,13 +53488,14 @@ "parameters": { "suppressToolId": "CppClangTidyAbseilDurationFactoryScale", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -52580,13 +53522,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerCplusplusStringChecker", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -52598,6 +53541,40 @@ } ] }, + { + "id": "PrimaryConstructorParameterCaptureDisallowed", + "shortDescription": { + "text": "Primary constructor parameter capturing is disallowed" + }, + "fullDescription": { + "text": "Capturing of a primary constructor parameter by an instance member results in an implicit type layout. Use this inspection if you want to disallow primary parameter capturing. Learn more...", + "markdown": "Capturing of a primary constructor parameter by an instance member results in an implicit type layout. Use this inspection if you want to disallow primary parameter capturing. [Learn more...](https://www.jetbrains.com/help/rider/PrimaryConstructorParameterCaptureDisallowed.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "PrimaryConstructorParameterCaptureDisallowed", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "SpecifyACultureInStringConversionExplicitly", "shortDescription": { @@ -52613,14 +53590,15 @@ "parameters": { "suppressToolId": "SpecifyACultureInStringConversionExplicitly", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -52638,7 +53616,7 @@ }, "fullDescription": { "text": "google-upgrade-googletest-case clang-tidy check · Learn more", - "markdown": "google-upgrade-googletest-case clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/google/upgrade-googletest-case.html)" + "markdown": "google-upgrade-googletest-case clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/upgrade-googletest-case.html)" }, "defaultConfiguration": { "enabled": true, @@ -52646,13 +53624,14 @@ "parameters": { "suppressToolId": "CppClangTidyGoogleUpgradeGoogletestCase", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -52665,28 +53644,29 @@ ] }, { - "id": "CppClangTidyClangDiagnosticCpp23DefaultCompRelaxedConstexpr", + "id": "NUnit.ParameterTypeIsNotCompatibleWithAttribute", "shortDescription": { - "text": "c++23-default-comp-relaxed-constexpr clang diagnostic" + "text": "NUnit. Specified values are not compatible with the test parameter type." }, "fullDescription": { - "text": "-Wc++23-default-comp-relaxed-constexpr clang diagnostic · Learn more", - "markdown": "-Wc++23-default-comp-relaxed-constexpr clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-23-default-comp-relaxed-constexpr)" + "text": "NUnit. Values specified in the attribute are not compatible with the corresponding test parameter type. Learn more...", + "markdown": "NUnit. Values specified in the attribute are not compatible with the corresponding test parameter type. [Learn more...](https://www.jetbrains.com/help/rider/NUnit.ParameterTypeIsNotCompatibleWithAttribute.html)" }, "defaultConfiguration": { "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp23DefaultCompRelaxedConstexpr", + "suppressToolId": "NUnit.ParameterTypeIsNotCompatibleWithAttribute", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", - "index": 3, + "id": "C#/NUnit", + "index": 26, "toolComponent": { "name": "QDNET" } @@ -52698,28 +53678,29 @@ ] }, { - "id": "NUnit.ParameterTypeIsNotCompatibleWithAttribute", + "id": "UnityPerformanceHighlighting", "shortDescription": { - "text": "NUnit. Specified values are not compatible with the test parameter type." + "text": "Unity Performance Hints" }, "fullDescription": { - "text": "NUnit. Values specified in the attribute are not compatible with the corresponding test parameter type. Learn more...", - "markdown": "NUnit. Values specified in the attribute are not compatible with the corresponding test parameter type. [Learn more...](https://www.jetbrains.com/help/rider/NUnit.ParameterTypeIsNotCompatibleWithAttribute.html)" + "text": "Unity Performance Hints", + "markdown": "Unity Performance Hints" }, "defaultConfiguration": { "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "NUnit.ParameterTypeIsNotCompatibleWithAttribute", + "suppressToolId": "UnityPerformanceHighlighting", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C#/NUnit", - "index": 26, + "id": "C#/Non configurable", + "index": 52, "toolComponent": { "name": "QDNET" } @@ -52737,7 +53718,7 @@ }, "fullDescription": { "text": "bugprone-string-literal-with-embedded-nul clang-tidy check · Learn more", - "markdown": "bugprone-string-literal-with-embedded-nul clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/string-literal-with-embedded-nul.html)" + "markdown": "bugprone-string-literal-with-embedded-nul clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/string-literal-with-embedded-nul.html)" }, "defaultConfiguration": { "enabled": true, @@ -52745,13 +53726,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneStringLiteralWithEmbeddedNul", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -52770,7 +53752,7 @@ }, "fullDescription": { "text": "-Wreturn-local-addr clang diagnostic · Learn more", - "markdown": "-Wreturn-local-addr clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wreturn-local-addr)" + "markdown": "-Wreturn-local-addr clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wreturn-local-addr)" }, "defaultConfiguration": { "enabled": true, @@ -52778,13 +53760,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticReturnLocalAddr", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -52811,14 +53794,15 @@ "parameters": { "suppressToolId": "Xaml.RedundantAttachedProperty", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "XAML/Redundancies in Code", - "index": 71, + "index": 77, "toolComponent": { "name": "QDNET" } @@ -52844,7 +53828,8 @@ "parameters": { "suppressToolId": "NotAccessedField.Local", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -52869,7 +53854,7 @@ }, "fullDescription": { "text": "-Wnoderef clang diagnostic · Learn more", - "markdown": "-Wnoderef clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wnoderef)" + "markdown": "-Wnoderef clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnoderef)" }, "defaultConfiguration": { "enabled": true, @@ -52877,13 +53862,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticNoderef", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -52910,13 +53896,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerCoreVLASize", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -52935,7 +53922,7 @@ }, "fullDescription": { "text": "-Wc++20-designator clang diagnostic · Learn more", - "markdown": "-Wc++20-designator clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-20-designator)" + "markdown": "-Wc++20-designator clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-20-designator)" }, "defaultConfiguration": { "enabled": true, @@ -52943,13 +53930,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCpp20Designator", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -52976,7 +53964,8 @@ "parameters": { "suppressToolId": "LambdaExpressionCanBeMadeStatic", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -53000,8 +53989,8 @@ "text": "Runtime errors are likely to occur when converting X to Y" }, "fullDescription": { - "text": "", - "markdown": "" + "text": "Learn more...", + "markdown": "[Learn more...](https://docs.microsoft.com/en-us/dotnet/visual-basic/misc/bc42322)" }, "defaultConfiguration": { "enabled": true, @@ -53009,14 +53998,15 @@ "parameters": { "suppressToolId": "VBWarnings__BC42322", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "VB.NET/Compiler Warnings", - "index": 100, + "index": 110, "toolComponent": { "name": "QDNET" } @@ -53042,14 +54032,15 @@ "parameters": { "suppressToolId": "StringEndsWithIsCultureSpecific", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -53067,7 +54058,7 @@ }, "fullDescription": { "text": "-Watomic-property-with-user-defined-accessor clang diagnostic · Learn more", - "markdown": "-Watomic-property-with-user-defined-accessor clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#watomic-property-with-user-defined-accessor)" + "markdown": "-Watomic-property-with-user-defined-accessor clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#watomic-property-with-user-defined-accessor)" }, "defaultConfiguration": { "enabled": true, @@ -53075,13 +54066,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticAtomicPropertyWithUserDefinedAccessor", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -53100,7 +54092,7 @@ }, "fullDescription": { "text": "-Wint-in-bool-context clang diagnostic · Learn more", - "markdown": "-Wint-in-bool-context clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wint-in-bool-context)" + "markdown": "-Wint-in-bool-context clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wint-in-bool-context)" }, "defaultConfiguration": { "enabled": true, @@ -53108,13 +54100,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticIntInBoolContext", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -53141,13 +54134,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerCoreBuiltinBuiltinFunctions", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -53166,7 +54160,7 @@ }, "fullDescription": { "text": "cppcoreguidelines-avoid-c-arrays clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-avoid-c-arrays clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/avoid-c-arrays.html)" + "markdown": "cppcoreguidelines-avoid-c-arrays clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/avoid-c-arrays.html)" }, "defaultConfiguration": { "enabled": false, @@ -53174,13 +54168,14 @@ "parameters": { "suppressToolId": "CppClangTidyCppcoreguidelinesAvoidCArrays", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -53199,7 +54194,7 @@ }, "fullDescription": { "text": "bugprone-bad-signal-to-kill-thread clang-tidy check · Learn more", - "markdown": "bugprone-bad-signal-to-kill-thread clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/bad-signal-to-kill-thread.html)" + "markdown": "bugprone-bad-signal-to-kill-thread clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/bad-signal-to-kill-thread.html)" }, "defaultConfiguration": { "enabled": true, @@ -53207,13 +54202,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneBadSignalToKillThread", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -53232,7 +54228,7 @@ }, "fullDescription": { "text": "bugprone-bool-pointer-implicit-conversion clang-tidy check · Learn more", - "markdown": "bugprone-bool-pointer-implicit-conversion clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/bool-pointer-implicit-conversion.html)" + "markdown": "bugprone-bool-pointer-implicit-conversion clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/bool-pointer-implicit-conversion.html)" }, "defaultConfiguration": { "enabled": false, @@ -53240,13 +54236,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneBoolPointerImplicitConversion", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -53273,14 +54270,15 @@ "parameters": { "suppressToolId": "WebConfig.TagPrefixRedundand", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "Web.Config/Redundancies in Code", - "index": 90, + "index": 98, "toolComponent": { "name": "QDNET" } @@ -53298,7 +54296,7 @@ }, "fullDescription": { "text": "-Wwritable-strings clang diagnostic · Learn more", - "markdown": "-Wwritable-strings clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wwritable-strings)" + "markdown": "-Wwritable-strings clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wwritable-strings)" }, "defaultConfiguration": { "enabled": true, @@ -53306,13 +54304,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticWritableStrings", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -53331,7 +54330,7 @@ }, "fullDescription": { "text": "-Wconditional-uninitialized clang diagnostic · Learn more", - "markdown": "-Wconditional-uninitialized clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wconditional-uninitialized)" + "markdown": "-Wconditional-uninitialized clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wconditional-uninitialized)" }, "defaultConfiguration": { "enabled": true, @@ -53339,13 +54338,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticConditionalUninitialized", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -53364,7 +54364,7 @@ }, "fullDescription": { "text": "-Wdeprecated-comma-subscript clang diagnostic · Learn more", - "markdown": "-Wdeprecated-comma-subscript clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdeprecated-comma-subscript)" + "markdown": "-Wdeprecated-comma-subscript clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-comma-subscript)" }, "defaultConfiguration": { "enabled": true, @@ -53372,13 +54372,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedCommaSubscript", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -53405,7 +54406,8 @@ "parameters": { "suppressToolId": "RedundantOverflowCheckingContext", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -53438,7 +54440,8 @@ "parameters": { "suppressToolId": "WrongIndentSize", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -53471,7 +54474,8 @@ "parameters": { "suppressToolId": "EventNeverInvoked.Global", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -53496,7 +54500,7 @@ }, "fullDescription": { "text": "-Wstatic-in-inline clang diagnostic · Learn more", - "markdown": "-Wstatic-in-inline clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wstatic-in-inline)" + "markdown": "-Wstatic-in-inline clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wstatic-in-inline)" }, "defaultConfiguration": { "enabled": true, @@ -53504,13 +54508,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticStaticInInline", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -53537,7 +54542,8 @@ "parameters": { "suppressToolId": "NUnit.TestCaseAttributeRequiresExpectedResult", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -53570,7 +54576,8 @@ "parameters": { "suppressToolId": "CollectionNeverQueried.Local", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -53603,14 +54610,49 @@ "parameters": { "suppressToolId": "Unity.IncorrectMethodSignature", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity", - "index": 19, + "index": 18, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CanSimplifyStringEscapeSequence", + "shortDescription": { + "text": "Escape sequence can be simplified" + }, + "fullDescription": { + "text": "Escape sequence can be simplified Learn more...", + "markdown": "Escape sequence can be simplified [Learn more...](https://www.jetbrains.com/help/rider/CanSimplifyStringEscapeSequence.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "CanSimplifyStringEscapeSequence", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, "toolComponent": { "name": "QDNET" } @@ -53628,7 +54670,7 @@ }, "fullDescription": { "text": "-Winvalid-no-builtin-names clang diagnostic · Learn more", - "markdown": "-Winvalid-no-builtin-names clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#winvalid-no-builtin-names)" + "markdown": "-Winvalid-no-builtin-names clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winvalid-no-builtin-names)" }, "defaultConfiguration": { "enabled": true, @@ -53636,13 +54678,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticInvalidNoBuiltinNames", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -53661,7 +54704,7 @@ }, "fullDescription": { "text": "-Wformat-type-confusion clang diagnostic · Learn more", - "markdown": "-Wformat-type-confusion clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wformat-type-confusion)" + "markdown": "-Wformat-type-confusion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wformat-type-confusion)" }, "defaultConfiguration": { "enabled": true, @@ -53669,13 +54712,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticFormatTypeConfusion", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -53702,7 +54746,8 @@ "parameters": { "suppressToolId": "VoidMethodWithMustDisposeResourceAttribute", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -53735,7 +54780,8 @@ "parameters": { "suppressToolId": "NUnit.MissingArgumentsInTestCaseAttribute", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -53753,6 +54799,40 @@ } ] }, + { + "id": "PossibleMistakenSystemTypeArgument", + "shortDescription": { + "text": "Possible mistaken argument of type 'System.Type'" + }, + "fullDescription": { + "text": "Possibly mistaken argument of type 'System.Type' is used where an object for type checking is expected Learn more...", + "markdown": "Possibly mistaken argument of type 'System.Type' is used where an object for type checking is expected [Learn more...](https://www.jetbrains.com/help/rider/PossibleMistakenSystemTypeArgument.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "PossibleMistakenSystemTypeArgument", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "RemoveRedundantOrStatement.True", "shortDescription": { @@ -53768,14 +54848,15 @@ "parameters": { "suppressToolId": "RemoveRedundantOrStatement.True", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -53793,7 +54874,7 @@ }, "fullDescription": { "text": "-Wbitfield-width clang diagnostic · Learn more", - "markdown": "-Wbitfield-width clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wbitfield-width)" + "markdown": "-Wbitfield-width clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wbitfield-width)" }, "defaultConfiguration": { "enabled": true, @@ -53801,13 +54882,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticBitfieldWidth", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -53834,14 +54916,15 @@ "parameters": { "suppressToolId": "VBWarnings__BC42349", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "VB.NET/Compiler Warnings", - "index": 100, + "index": 110, "toolComponent": { "name": "QDNET" } @@ -53859,7 +54942,7 @@ }, "fullDescription": { "text": "-Wincompatible-sysroot clang diagnostic · Learn more", - "markdown": "-Wincompatible-sysroot clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wincompatible-sysroot)" + "markdown": "-Wincompatible-sysroot clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wincompatible-sysroot)" }, "defaultConfiguration": { "enabled": true, @@ -53867,13 +54950,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticIncompatibleSysroot", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -53892,7 +54976,7 @@ }, "fullDescription": { "text": "-Wshift-op-parentheses clang diagnostic · Learn more", - "markdown": "-Wshift-op-parentheses clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wshift-op-parentheses)" + "markdown": "-Wshift-op-parentheses clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wshift-op-parentheses)" }, "defaultConfiguration": { "enabled": true, @@ -53900,13 +54984,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticShiftOpParentheses", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -53924,8 +55009,8 @@ "text": "Suspicious type conversion or check" }, "fullDescription": { - "text": "A type is converted into another one but there is no type in the solution which is inherited from both. This also applies to 'is' operator and '==' and '!=' comparisons.", - "markdown": "A type is converted into another one but there is no type in the solution which is inherited from both. This also applies to 'is' operator and '==' and '!=' comparisons." + "text": "A type is converted into another one but there is no type in the solution which is inherited from both. This also applies to 'is' operator and '==' and '!=' comparisons. Learn more...", + "markdown": "A type is converted into another one but there is no type in the solution which is inherited from both. This also applies to 'is' operator and '==' and '!=' comparisons. [Learn more...](https://www.jetbrains.com/help/rider/SuspiciousTypeConversion.Global.html)" }, "defaultConfiguration": { "enabled": true, @@ -53933,7 +55018,8 @@ "parameters": { "suppressToolId": "SuspiciousTypeConversion.Global", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -53958,7 +55044,7 @@ }, "fullDescription": { "text": "-Wc++11-long-long clang diagnostic · Learn more", - "markdown": "-Wc++11-long-long clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-11-long-long)" + "markdown": "-Wc++11-long-long clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-11-long-long)" }, "defaultConfiguration": { "enabled": true, @@ -53966,13 +55052,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCpp11LongLong", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -53984,6 +55071,40 @@ } ] }, + { + "id": "AspErrors", + "shortDescription": { + "text": "ASP Errors" + }, + "fullDescription": { + "text": "ASP Errors", + "markdown": "ASP Errors" + }, + "defaultConfiguration": { + "enabled": false, + "level": "error", + "parameters": { + "suppressToolId": "AspErrors", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "Aspx/Non configurable", + "index": 132, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppClangTidyConcurrencyThreadCanceltypeAsynchronous", "shortDescription": { @@ -53991,7 +55112,7 @@ }, "fullDescription": { "text": "concurrency-thread-canceltype-asynchronous clang-tidy check · Learn more", - "markdown": "concurrency-thread-canceltype-asynchronous clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/concurrency/thread-canceltype-asynchronous.html)" + "markdown": "concurrency-thread-canceltype-asynchronous clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/concurrency/thread-canceltype-asynchronous.html)" }, "defaultConfiguration": { "enabled": true, @@ -53999,13 +55120,14 @@ "parameters": { "suppressToolId": "CppClangTidyConcurrencyThreadCanceltypeAsynchronous", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -54024,7 +55146,7 @@ }, "fullDescription": { "text": "-Winconsistent-missing-override clang diagnostic · Learn more", - "markdown": "-Winconsistent-missing-override clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#winconsistent-missing-override)" + "markdown": "-Winconsistent-missing-override clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winconsistent-missing-override)" }, "defaultConfiguration": { "enabled": true, @@ -54032,13 +55154,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticInconsistentMissingOverride", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -54057,7 +55180,7 @@ }, "fullDescription": { "text": "-Wduplicate-protocol clang diagnostic · Learn more", - "markdown": "-Wduplicate-protocol clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wduplicate-protocol)" + "markdown": "-Wduplicate-protocol clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wduplicate-protocol)" }, "defaultConfiguration": { "enabled": true, @@ -54065,13 +55188,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDuplicateProtocol", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -54090,7 +55214,7 @@ }, "fullDescription": { "text": "-Wmismatched-tags clang diagnostic · Learn more", - "markdown": "-Wmismatched-tags clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmismatched-tags)" + "markdown": "-Wmismatched-tags clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmismatched-tags)" }, "defaultConfiguration": { "enabled": true, @@ -54098,13 +55222,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMismatchedTags", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -54116,6 +55241,40 @@ } ] }, + { + "id": "AsmCompilerErrorGroup", + "shortDescription": { + "text": "Assembler Errors" + }, + "fullDescription": { + "text": "Assembler Errors", + "markdown": "Assembler Errors" + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "AsmCompilerErrorGroup", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "Assembler/Non configurable", + "index": 134, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppDependentTemplateWithoutTemplateKeyword", "shortDescription": { @@ -54131,13 +55290,14 @@ "parameters": { "suppressToolId": "CppDependentTemplateWithoutTemplateKeyword", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -54156,7 +55316,7 @@ }, "fullDescription": { "text": "-Winvalid-partial-specialization clang diagnostic · Learn more", - "markdown": "-Winvalid-partial-specialization clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#winvalid-partial-specialization)" + "markdown": "-Winvalid-partial-specialization clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winvalid-partial-specialization)" }, "defaultConfiguration": { "enabled": true, @@ -54164,13 +55324,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticInvalidPartialSpecialization", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -54189,7 +55350,7 @@ }, "fullDescription": { "text": "objc-property-declaration clang-tidy check · Learn more", - "markdown": "objc-property-declaration clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/objc/property-declaration.html)" + "markdown": "objc-property-declaration clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/objc/property-declaration.html)" }, "defaultConfiguration": { "enabled": true, @@ -54197,13 +55358,14 @@ "parameters": { "suppressToolId": "CppClangTidyObjcPropertyDeclaration", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -54230,13 +55392,14 @@ "parameters": { "suppressToolId": "CppUEIncorrectEngineDirectory", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Unreal Engine", + "id": "C_C++/Unreal Engine", "index": 6, "toolComponent": { "name": "QDNET" @@ -54254,8 +55417,8 @@ "text": "Unassigned readonly field" }, "fullDescription": { - "text": "Readonly field is never assigned (compiler warning)", - "markdown": "Readonly field is never assigned (compiler warning)" + "text": "Readonly field is never assigned (compiler warning) Learn more...", + "markdown": "Readonly field is never assigned (compiler warning) [Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/misc/cs0649)" }, "defaultConfiguration": { "enabled": true, @@ -54263,7 +55426,8 @@ "parameters": { "suppressToolId": "UnassignedReadonlyField.Compiler", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -54288,7 +55452,7 @@ }, "fullDescription": { "text": "-Wreserved-identifier clang diagnostic · Learn more", - "markdown": "-Wreserved-identifier clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wreserved-identifier)" + "markdown": "-Wreserved-identifier clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wreserved-identifier)" }, "defaultConfiguration": { "enabled": true, @@ -54296,13 +55460,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticReservedIdentifier", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -54321,7 +55486,7 @@ }, "fullDescription": { "text": "-Wframe-address clang diagnostic · Learn more", - "markdown": "-Wframe-address clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wframe-address)" + "markdown": "-Wframe-address clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wframe-address)" }, "defaultConfiguration": { "enabled": true, @@ -54329,13 +55494,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticFrameAddress", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -54362,7 +55528,8 @@ "parameters": { "suppressToolId": "NUnit.DuplicateValues", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -54395,7 +55562,8 @@ "parameters": { "suppressToolId": "UseDeconstruction", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -54420,7 +55588,7 @@ }, "fullDescription": { "text": "-Wprofile-instr-out-of-date clang diagnostic · Learn more", - "markdown": "-Wprofile-instr-out-of-date clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wprofile-instr-out-of-date)" + "markdown": "-Wprofile-instr-out-of-date clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wprofile-instr-out-of-date)" }, "defaultConfiguration": { "enabled": true, @@ -54428,13 +55596,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticProfileInstrOutOfDate", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -54453,7 +55622,7 @@ }, "fullDescription": { "text": "-Wmicrosoft-inaccessible-base clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-inaccessible-base clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-inaccessible-base)" + "markdown": "-Wmicrosoft-inaccessible-base clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-inaccessible-base)" }, "defaultConfiguration": { "enabled": true, @@ -54461,13 +55630,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftInaccessibleBase", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -54494,13 +55664,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerOptinOsxCocoaLocalizabilityEmptyLocalizationContextChecker", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -54519,7 +55690,7 @@ }, "fullDescription": { "text": "readability-suspicious-call-argument clang-tidy check · Learn more", - "markdown": "readability-suspicious-call-argument clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/suspicious-call-argument.html)" + "markdown": "readability-suspicious-call-argument clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/suspicious-call-argument.html)" }, "defaultConfiguration": { "enabled": true, @@ -54527,13 +55698,14 @@ "parameters": { "suppressToolId": "CppClangTidyReadabilitySuspiciousCallArgument", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -54552,7 +55724,7 @@ }, "fullDescription": { "text": "misc-unused-alias-decls clang-tidy check · Learn more", - "markdown": "misc-unused-alias-decls clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/misc/unused-alias-decls.html)" + "markdown": "misc-unused-alias-decls clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/unused-alias-decls.html)" }, "defaultConfiguration": { "enabled": true, @@ -54560,13 +55732,14 @@ "parameters": { "suppressToolId": "CppClangTidyMiscUnusedAliasDecls", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -54585,7 +55758,7 @@ }, "fullDescription": { "text": "-Wbraced-scalar-init clang diagnostic · Learn more", - "markdown": "-Wbraced-scalar-init clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wbraced-scalar-init)" + "markdown": "-Wbraced-scalar-init clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wbraced-scalar-init)" }, "defaultConfiguration": { "enabled": true, @@ -54593,13 +55766,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticBracedScalarInit", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -54626,14 +55800,15 @@ "parameters": { "suppressToolId": "RouteTemplates.RouteParameterIsNotPassedToMethod", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "ASP.NET route templates/Code Notification", - "index": 47, + "index": 48, "toolComponent": { "name": "QDNET" } @@ -54651,7 +55826,7 @@ }, "fullDescription": { "text": "-Wdangling-else clang diagnostic · Learn more", - "markdown": "-Wdangling-else clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdangling-else)" + "markdown": "-Wdangling-else clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdangling-else)" }, "defaultConfiguration": { "enabled": true, @@ -54659,13 +55834,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDanglingElse", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -54684,7 +55860,7 @@ }, "fullDescription": { "text": "-Wtautological-unsigned-char-zero-compare clang diagnostic · Learn more", - "markdown": "-Wtautological-unsigned-char-zero-compare clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wtautological-unsigned-char-zero-compare)" + "markdown": "-Wtautological-unsigned-char-zero-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtautological-unsigned-char-zero-compare)" }, "defaultConfiguration": { "enabled": true, @@ -54692,13 +55868,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticTautologicalUnsignedCharZeroCompare", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -54710,6 +55887,40 @@ } ] }, + { + "id": "WebConfigErrors", + "shortDescription": { + "text": "WebConfig Errors" + }, + "fullDescription": { + "text": "WebConfig Errors", + "markdown": "WebConfig Errors" + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "WebConfigErrors", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "Web.Config/Non configurable", + "index": 137, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppClangTidyCppcoreguidelinesMisleadingCaptureDefaultByValue", "shortDescription": { @@ -54717,7 +55928,7 @@ }, "fullDescription": { "text": "cppcoreguidelines-misleading-capture-default-by-value clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-misleading-capture-default-by-value clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/misleading-capture-default-by-value.html)" + "markdown": "cppcoreguidelines-misleading-capture-default-by-value clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/misleading-capture-default-by-value.html)" }, "defaultConfiguration": { "enabled": true, @@ -54725,13 +55936,14 @@ "parameters": { "suppressToolId": "CppClangTidyCppcoreguidelinesMisleadingCaptureDefaultByValue", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -54743,6 +55955,40 @@ } ] }, + { + "id": "CppClangTidyClangAnalyzerOptinCoreEnumCastOutOfRange", + "shortDescription": { + "text": "optin.core.EnumCastOutOfRange clang static analyzer check" + }, + "fullDescription": { + "text": "optin.core.EnumCastOutOfRange clang static analyzer check · Learn more", + "markdown": "optin.core.EnumCastOutOfRange clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangAnalyzerOptinCoreEnumCastOutOfRange", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Static Analyzer Checks", + "index": 32, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppClangTidyClangDiagnosticMicrosoftInitFromPredefined", "shortDescription": { @@ -54750,7 +55996,7 @@ }, "fullDescription": { "text": "-Wmicrosoft-init-from-predefined clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-init-from-predefined clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-init-from-predefined)" + "markdown": "-Wmicrosoft-init-from-predefined clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-init-from-predefined)" }, "defaultConfiguration": { "enabled": true, @@ -54758,13 +56004,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftInitFromPredefined", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -54791,7 +56038,8 @@ "parameters": { "suppressToolId": "BadSwitchBracesIndent", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -54809,6 +56057,40 @@ } ] }, + { + "id": "DuplicateKeyCollectionInitialization", + "shortDescription": { + "text": "Duplicate keys in dictionary/set initialization" + }, + "fullDescription": { + "text": "A dictionary or a set may only contain one element with a given key. Using the same key more than once during collection initialization is likely a bug, and can result in a runtime exception.", + "markdown": "A dictionary or a set may only contain one element with a given key. Using the same key more than once during collection initialization is likely a bug, and can result in a runtime exception." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "DuplicateKeyCollectionInitialization", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CSharpWarnings__CS0660,CS0661", "shortDescription": { @@ -54824,7 +56106,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS0660,CS0661", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -54849,7 +56132,7 @@ }, "fullDescription": { "text": "-Wat-protocol clang diagnostic · Learn more", - "markdown": "-Wat-protocol clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wat-protocol)" + "markdown": "-Wat-protocol clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wat-protocol)" }, "defaultConfiguration": { "enabled": true, @@ -54857,13 +56140,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticAtProtocol", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -54882,7 +56166,7 @@ }, "fullDescription": { "text": "-Wout-of-line-declaration clang diagnostic · Learn more", - "markdown": "-Wout-of-line-declaration clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wout-of-line-declaration)" + "markdown": "-Wout-of-line-declaration clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wout-of-line-declaration)" }, "defaultConfiguration": { "enabled": true, @@ -54890,13 +56174,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticOutOfLineDeclaration", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -54914,8 +56199,8 @@ "text": "Method return value is never used (private accessibility)" }, "fullDescription": { - "text": "Method return value is never used", - "markdown": "Method return value is never used" + "text": "Method return value is never used Learn more...", + "markdown": "Method return value is never used [Learn more...](https://www.jetbrains.com/help/rider/UnusedMethodReturnValue.Local.html)" }, "defaultConfiguration": { "enabled": true, @@ -54923,7 +56208,8 @@ "parameters": { "suppressToolId": "UnusedMethodReturnValue.Local", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -54956,14 +56242,15 @@ "parameters": { "suppressToolId": "Asp.Image", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "Aspx/Potential Code Quality Issues", - "index": 60, + "index": 64, "toolComponent": { "name": "QDNET" } @@ -54981,7 +56268,7 @@ }, "fullDescription": { "text": "-Wc++17-attribute-extensions clang diagnostic · Learn more", - "markdown": "-Wc++17-attribute-extensions clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-17-attribute-extensions)" + "markdown": "-Wc++17-attribute-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-17-attribute-extensions)" }, "defaultConfiguration": { "enabled": true, @@ -54989,13 +56276,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCpp17AttributeExtensions", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -55022,14 +56310,15 @@ "parameters": { "suppressToolId": "MoveLocalFunctionAfterJumpStatement", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -55047,7 +56336,7 @@ }, "fullDescription": { "text": "-Wthread-safety-beta clang diagnostic · Learn more", - "markdown": "-Wthread-safety-beta clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wthread-safety-beta)" + "markdown": "-Wthread-safety-beta clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wthread-safety-beta)" }, "defaultConfiguration": { "enabled": true, @@ -55055,13 +56344,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticThreadSafetyBeta", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -55088,7 +56378,8 @@ "parameters": { "suppressToolId": "EntityFramework.ModelValidation.CircularDependency", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -55121,7 +56412,8 @@ "parameters": { "suppressToolId": "NullableWarningSuppressionIsUsed", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -55146,7 +56438,7 @@ }, "fullDescription": { "text": "-Wformat-invalid-specifier clang diagnostic · Learn more", - "markdown": "-Wformat-invalid-specifier clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wformat-invalid-specifier)" + "markdown": "-Wformat-invalid-specifier clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wformat-invalid-specifier)" }, "defaultConfiguration": { "enabled": true, @@ -55154,13 +56446,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticFormatInvalidSpecifier", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -55179,7 +56472,7 @@ }, "fullDescription": { "text": "-Woverlength-strings clang diagnostic · Learn more", - "markdown": "-Woverlength-strings clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#woverlength-strings)" + "markdown": "-Woverlength-strings clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#woverlength-strings)" }, "defaultConfiguration": { "enabled": true, @@ -55187,13 +56480,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticOverlengthStrings", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -55212,7 +56506,7 @@ }, "fullDescription": { "text": "-Warray-bounds-pointer-arithmetic clang diagnostic · Learn more", - "markdown": "-Warray-bounds-pointer-arithmetic clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#warray-bounds-pointer-arithmetic)" + "markdown": "-Warray-bounds-pointer-arithmetic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#warray-bounds-pointer-arithmetic)" }, "defaultConfiguration": { "enabled": true, @@ -55220,13 +56514,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticArrayBoundsPointerArithmetic", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -55245,7 +56540,7 @@ }, "fullDescription": { "text": "hicpp-no-malloc clang-tidy check · Learn more", - "markdown": "hicpp-no-malloc clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/no-malloc.html)" + "markdown": "hicpp-no-malloc clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/no-malloc.html)" }, "defaultConfiguration": { "enabled": false, @@ -55253,13 +56548,14 @@ "parameters": { "suppressToolId": "CppClangTidyHicppNoMalloc", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -55286,7 +56582,8 @@ "parameters": { "suppressToolId": "Xaml.ConstructorWarning", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -55304,14 +56601,48 @@ } ] }, + { + "id": "CppClangTidyClangDiagnosticOverridingOption", + "shortDescription": { + "text": "overriding-option clang diagnostic" + }, + "fullDescription": { + "text": "-Woverriding-option clang diagnostic · Learn more", + "markdown": "-Woverriding-option clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#woverriding-option)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticOverridingOption", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "VBWarnings__BC42309", "shortDescription": { "text": "XML comment has a tag with a 'cref' attribute that could not be resolved" }, "fullDescription": { - "text": "", - "markdown": "" + "text": "Learn more...", + "markdown": "[Learn more...](https://docs.microsoft.com/en-us/dotnet/visual-basic/misc/bc42309)" }, "defaultConfiguration": { "enabled": true, @@ -55319,14 +56650,15 @@ "parameters": { "suppressToolId": "VBWarnings__BC42309", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "VB.NET/Compiler Warnings", - "index": 100, + "index": 110, "toolComponent": { "name": "QDNET" } @@ -55344,7 +56676,7 @@ }, "fullDescription": { "text": "-Wgnu-flexible-array-union-member clang diagnostic · Learn more", - "markdown": "-Wgnu-flexible-array-union-member clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wgnu-flexible-array-union-member)" + "markdown": "-Wgnu-flexible-array-union-member clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-flexible-array-union-member)" }, "defaultConfiguration": { "enabled": true, @@ -55352,13 +56684,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticGnuFlexibleArrayUnionMember", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -55377,7 +56710,7 @@ }, "fullDescription": { "text": "-Wmissing-method-return-type clang diagnostic · Learn more", - "markdown": "-Wmissing-method-return-type clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmissing-method-return-type)" + "markdown": "-Wmissing-method-return-type clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmissing-method-return-type)" }, "defaultConfiguration": { "enabled": true, @@ -55385,13 +56718,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMissingMethodReturnType", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -55418,7 +56752,8 @@ "parameters": { "suppressToolId": "NUnit.AutoFixture.MissedTestOrTestFixtureAttribute", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -55443,7 +56778,7 @@ }, "fullDescription": { "text": "-Wflag-enum clang diagnostic · Learn more", - "markdown": "-Wflag-enum clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wflag-enum)" + "markdown": "-Wflag-enum clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wflag-enum)" }, "defaultConfiguration": { "enabled": true, @@ -55451,13 +56786,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticFlagEnum", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -55484,7 +56820,8 @@ "parameters": { "suppressToolId": "UseNameofForDependencyProperty", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -55509,7 +56846,7 @@ }, "fullDescription": { "text": "altera-kernel-name-restriction clang-tidy check · Learn more", - "markdown": "altera-kernel-name-restriction clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/altera/kernel-name-restriction.html)" + "markdown": "altera-kernel-name-restriction clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/altera/kernel-name-restriction.html)" }, "defaultConfiguration": { "enabled": false, @@ -55517,13 +56854,14 @@ "parameters": { "suppressToolId": "CppClangTidyAlteraKernelNameRestriction", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -55550,7 +56888,8 @@ "parameters": { "suppressToolId": "Xaml.InvalidResourceTargetType", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -55574,8 +56913,8 @@ "text": "Syntax error in XML comment" }, "fullDescription": { - "text": "", - "markdown": "" + "text": "Learn more...", + "markdown": "[Learn more...](https://docs.microsoft.com/en-us/dotnet/visual-basic/misc/bc42304)" }, "defaultConfiguration": { "enabled": true, @@ -55583,14 +56922,15 @@ "parameters": { "suppressToolId": "VBWarnings__BC42304", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "VB.NET/Compiler Warnings", - "index": 100, + "index": 110, "toolComponent": { "name": "QDNET" } @@ -55608,7 +56948,7 @@ }, "fullDescription": { "text": "-Winvalid-static-assert-message clang diagnostic · Learn more", - "markdown": "-Winvalid-static-assert-message clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#winvalid-static-assert-message)" + "markdown": "-Winvalid-static-assert-message clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winvalid-static-assert-message)" }, "defaultConfiguration": { "enabled": true, @@ -55616,13 +56956,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticInvalidStaticAssertMessage", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -55640,8 +56981,8 @@ "text": "Redundant argument passed to caller argument expression parameter" }, "fullDescription": { - "text": "Corresponding parameter has 'CallerArgumentExpression' attribute applied, so argument could be omitted", - "markdown": "Corresponding parameter has 'CallerArgumentExpression' attribute applied, so argument could be omitted" + "text": "Corresponding parameter has 'CallerArgumentExpression' attribute applied, so argument could be omitted Learn more...", + "markdown": "Corresponding parameter has 'CallerArgumentExpression' attribute applied, so argument could be omitted [Learn more...](https://www.jetbrains.com/help/rider/RedundantCallerArgumentExpressionDefaultValue.html)" }, "defaultConfiguration": { "enabled": true, @@ -55649,7 +56990,8 @@ "parameters": { "suppressToolId": "RedundantCallerArgumentExpressionDefaultValue", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -55682,13 +57024,14 @@ "parameters": { "suppressToolId": "CppRedundantVoidArgumentList", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Redundancies in Code", + "id": "C_C++/Redundancies in Code", "index": 34, "toolComponent": { "name": "QDNET" @@ -55707,7 +57050,7 @@ }, "fullDescription": { "text": "-Wnullability-declspec clang diagnostic · Learn more", - "markdown": "-Wnullability-declspec clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wnullability-declspec)" + "markdown": "-Wnullability-declspec clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnullability-declspec)" }, "defaultConfiguration": { "enabled": true, @@ -55715,13 +57058,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticNullabilityDeclspec", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -55748,14 +57092,15 @@ "parameters": { "suppressToolId": "CppInconsistentNaming", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Constraints Violations", - "index": 117, + "id": "C_C++/Constraints Violations", + "index": 138, "toolComponent": { "name": "QDNET" } @@ -55773,7 +57118,7 @@ }, "fullDescription": { "text": "-Wmicrosoft-explicit-constructor-call clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-explicit-constructor-call clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-explicit-constructor-call)" + "markdown": "-Wmicrosoft-explicit-constructor-call clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-explicit-constructor-call)" }, "defaultConfiguration": { "enabled": true, @@ -55781,13 +57126,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftExplicitConstructorCall", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -55806,7 +57152,7 @@ }, "fullDescription": { "text": "-Wold-style-cast clang diagnostic · Learn more", - "markdown": "-Wold-style-cast clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wold-style-cast)" + "markdown": "-Wold-style-cast clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wold-style-cast)" }, "defaultConfiguration": { "enabled": false, @@ -55814,13 +57160,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticOldStyleCast", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -55839,7 +57186,7 @@ }, "fullDescription": { "text": "-Wuser-defined-literals clang diagnostic · Learn more", - "markdown": "-Wuser-defined-literals clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wuser-defined-literals)" + "markdown": "-Wuser-defined-literals clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wuser-defined-literals)" }, "defaultConfiguration": { "enabled": false, @@ -55847,13 +57194,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUserDefinedLiterals", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -55880,7 +57228,8 @@ "parameters": { "suppressToolId": "ConvertIfStatementToNullCoalescingAssignment", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -55913,7 +57262,8 @@ "parameters": { "suppressToolId": "MergeConditionalExpression", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -55946,14 +57296,15 @@ "parameters": { "suppressToolId": "ReplaceWithOfType.2", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -55979,14 +57330,15 @@ "parameters": { "suppressToolId": "ReplaceWithOfType.1", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -56004,7 +57356,7 @@ }, "fullDescription": { "text": "-Wunsupported-dll-base-class-template clang diagnostic · Learn more", - "markdown": "-Wunsupported-dll-base-class-template clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunsupported-dll-base-class-template)" + "markdown": "-Wunsupported-dll-base-class-template clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunsupported-dll-base-class-template)" }, "defaultConfiguration": { "enabled": true, @@ -56012,13 +57364,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnsupportedDllBaseClassTemplate", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -56037,7 +57390,7 @@ }, "fullDescription": { "text": "-Wundefined-reinterpret-cast clang diagnostic · Learn more", - "markdown": "-Wundefined-reinterpret-cast clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wundefined-reinterpret-cast)" + "markdown": "-Wundefined-reinterpret-cast clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wundefined-reinterpret-cast)" }, "defaultConfiguration": { "enabled": true, @@ -56045,13 +57398,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUndefinedReinterpretCast", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -56069,8 +57423,8 @@ "text": "Redundant name qualifier" }, "fullDescription": { - "text": "Redundant use of qualifier for a type name or static member usage", - "markdown": "Redundant use of qualifier for a type name or static member usage" + "text": "Redundant use of qualifier for a type name or static member usage Learn more...", + "markdown": "Redundant use of qualifier for a type name or static member usage [Learn more...](https://www.jetbrains.com/help/rider/RedundantNameQualifier.html)" }, "defaultConfiguration": { "enabled": true, @@ -56078,7 +57432,8 @@ "parameters": { "suppressToolId": "RedundantNameQualifier", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -56111,14 +57466,15 @@ "parameters": { "suppressToolId": "ReplaceWithOfType.3", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -56136,7 +57492,7 @@ }, "fullDescription": { "text": "-Wunicode-homoglyph clang diagnostic · Learn more", - "markdown": "-Wunicode-homoglyph clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunicode-homoglyph)" + "markdown": "-Wunicode-homoglyph clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunicode-homoglyph)" }, "defaultConfiguration": { "enabled": true, @@ -56144,13 +57500,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnicodeHomoglyph", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -56177,7 +57534,8 @@ "parameters": { "suppressToolId": "NUnit.RangeStepValueMustNotBeZero", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -56202,7 +57560,7 @@ }, "fullDescription": { "text": "hicpp-explicit-conversions clang-tidy check · Learn more", - "markdown": "hicpp-explicit-conversions clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/explicit-conversions.html)" + "markdown": "hicpp-explicit-conversions clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/explicit-conversions.html)" }, "defaultConfiguration": { "enabled": false, @@ -56210,13 +57568,14 @@ "parameters": { "suppressToolId": "CppClangTidyHicppExplicitConversions", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -56235,7 +57594,7 @@ }, "fullDescription": { "text": "bugprone-macro-repeated-side-effects clang-tidy check · Learn more", - "markdown": "bugprone-macro-repeated-side-effects clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/macro-repeated-side-effects.html)" + "markdown": "bugprone-macro-repeated-side-effects clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/macro-repeated-side-effects.html)" }, "defaultConfiguration": { "enabled": true, @@ -56243,13 +57602,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneMacroRepeatedSideEffects", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -56268,7 +57628,7 @@ }, "fullDescription": { "text": "readability-misleading-indentation clang-tidy check · Learn more", - "markdown": "readability-misleading-indentation clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/misleading-indentation.html)" + "markdown": "readability-misleading-indentation clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/misleading-indentation.html)" }, "defaultConfiguration": { "enabled": false, @@ -56276,13 +57636,14 @@ "parameters": { "suppressToolId": "CppClangTidyReadabilityMisleadingIndentation", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -56309,14 +57670,15 @@ "parameters": { "suppressToolId": "FieldCanBeMadeReadOnly.Global", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -56342,7 +57704,8 @@ "parameters": { "suppressToolId": "RedundantConfigureAwait", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -56375,7 +57738,8 @@ "parameters": { "suppressToolId": "BadNamespaceBracesIndent", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -56408,7 +57772,8 @@ "parameters": { "suppressToolId": "ParameterHidesPrimaryConstructorParameter", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -56441,7 +57806,8 @@ "parameters": { "suppressToolId": "FieldHidesInterfacePropertyWithDefaultImplementation", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -56474,7 +57840,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS1030", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -56498,8 +57865,8 @@ "text": "Implicit check for Unity object lifetime" }, "fullDescription": { - "text": "Calls the custom equality operator defined on 'UnityEngine.Object', which will check to see if the underlying Unity engine object has been destroyed. Prefer implicit bool comparison if the lifetime check is intended, or explicitly use 'is' operator or 'object.ReferenceEquals()' for a standard (and quicker) CLR null check. Learn more...", - "markdown": "Calls the custom equality operator defined on 'UnityEngine.Object', which will check to see if the underlying Unity engine object has been destroyed. Prefer implicit bool comparison if the lifetime check is intended, or explicitly use 'is' operator or 'object.ReferenceEquals()' for a standard (and quicker) CLR null check. [Learn more...](https://github.com/JetBrains/resharper-unity/wiki/Possible-unintended-lifetime-check-of-underlying-Unity-engine-object)" + "text": "Calls the custom equality operator defined on 'UnityEngine.Object'. This operator checks if the underlying Unity engine object has been destroyed. Prefer implicit bool comparison if the lifetime check is intended, or explicitly use 'is' operator or 'object.ReferenceEquals()' for a standard (and quicker) CLR null check. Learn more...", + "markdown": "Calls the custom equality operator defined on 'UnityEngine.Object'. This operator checks if the underlying Unity engine object has been destroyed. Prefer implicit bool comparison if the lifetime check is intended, or explicitly use 'is' operator or 'object.ReferenceEquals()' for a standard (and quicker) CLR null check. [Learn more...](https://github.com/JetBrains/resharper-unity/wiki/Possible-unintended-lifetime-check-of-underlying-Unity-engine-object)" }, "defaultConfiguration": { "enabled": true, @@ -56507,14 +57874,15 @@ "parameters": { "suppressToolId": "Unity.UnityObjectNullComparison", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity", - "index": 19, + "index": 18, "toolComponent": { "name": "QDNET" } @@ -56532,7 +57900,7 @@ }, "fullDescription": { "text": "llvm-qualified-auto clang-tidy check · Learn more", - "markdown": "llvm-qualified-auto clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/llvm/qualified-auto.html)" + "markdown": "llvm-qualified-auto clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/llvm/qualified-auto.html)" }, "defaultConfiguration": { "enabled": false, @@ -56540,13 +57908,14 @@ "parameters": { "suppressToolId": "CppClangTidyLlvmQualifiedAuto", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -56573,7 +57942,8 @@ "parameters": { "suppressToolId": "ResourceItemNotResolved", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -56606,7 +57976,8 @@ "parameters": { "suppressToolId": "InheritdocInvalidUsage", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -56639,13 +58010,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaRunLoopAutoreleaseLeak", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -56664,7 +58036,7 @@ }, "fullDescription": { "text": "-Wcomma clang diagnostic · Learn more", - "markdown": "-Wcomma clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wcomma)" + "markdown": "-Wcomma clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcomma)" }, "defaultConfiguration": { "enabled": true, @@ -56672,13 +58044,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticComma", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -56705,7 +58078,8 @@ "parameters": { "suppressToolId": "VirtualMemberNeverOverridden.Local", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -56738,7 +58112,8 @@ "parameters": { "suppressToolId": "RedundantAlwaysMatchSubpattern", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -56763,7 +58138,7 @@ }, "fullDescription": { "text": "-Wambiguous-macro clang diagnostic · Learn more", - "markdown": "-Wambiguous-macro clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wambiguous-macro)" + "markdown": "-Wambiguous-macro clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wambiguous-macro)" }, "defaultConfiguration": { "enabled": true, @@ -56771,13 +58146,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticAmbiguousMacro", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -56804,7 +58180,8 @@ "parameters": { "suppressToolId": "Xaml.DependencyPropertyResolveError", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -56837,14 +58214,15 @@ "parameters": { "suppressToolId": "ParameterTypeCanBeEnumerable.Local", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -56870,7 +58248,8 @@ "parameters": { "suppressToolId": "RedundantAssignment", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -56895,7 +58274,7 @@ }, "fullDescription": { "text": "cppcoreguidelines-use-default-member-init clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-use-default-member-init clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/use-default-member-init.html)" + "markdown": "cppcoreguidelines-use-default-member-init clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/use-default-member-init.html)" }, "defaultConfiguration": { "enabled": false, @@ -56903,13 +58282,14 @@ "parameters": { "suppressToolId": "CppClangTidyCppcoreguidelinesUseDefaultMemberInit", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -56928,7 +58308,7 @@ }, "fullDescription": { "text": "modernize-concat-nested-namespaces clang-tidy check · Learn more", - "markdown": "modernize-concat-nested-namespaces clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/concat-nested-namespaces.html)" + "markdown": "modernize-concat-nested-namespaces clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/concat-nested-namespaces.html)" }, "defaultConfiguration": { "enabled": false, @@ -56936,13 +58316,14 @@ "parameters": { "suppressToolId": "CppClangTidyModernizeConcatNestedNamespaces", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -56961,7 +58342,7 @@ }, "fullDescription": { "text": "-Wc99-compat clang diagnostic · Learn more", - "markdown": "-Wc99-compat clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc99-compat)" + "markdown": "-Wc99-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc99-compat)" }, "defaultConfiguration": { "enabled": false, @@ -56969,13 +58350,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticC99Compat", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -56994,7 +58376,7 @@ }, "fullDescription": { "text": "cert-msc24-c clang-tidy check · Learn more", - "markdown": "cert-msc24-c clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cert/msc24-c.html)" + "markdown": "cert-msc24-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/msc24-c.html)" }, "defaultConfiguration": { "enabled": false, @@ -57002,13 +58384,14 @@ "parameters": { "suppressToolId": "CppClangTidyCertMsc24C", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -57027,7 +58410,7 @@ }, "fullDescription": { "text": "-Wmicrosoft-using-decl clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-using-decl clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-using-decl)" + "markdown": "-Wmicrosoft-using-decl clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-using-decl)" }, "defaultConfiguration": { "enabled": true, @@ -57035,13 +58418,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftUsingDecl", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -57060,7 +58444,7 @@ }, "fullDescription": { "text": "abseil-redundant-strcat-calls clang-tidy check · Learn more", - "markdown": "abseil-redundant-strcat-calls clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/redundant-strcat-calls.html)" + "markdown": "abseil-redundant-strcat-calls clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/redundant-strcat-calls.html)" }, "defaultConfiguration": { "enabled": false, @@ -57068,13 +58452,14 @@ "parameters": { "suppressToolId": "CppClangTidyAbseilRedundantStrcatCalls", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -57093,7 +58478,7 @@ }, "fullDescription": { "text": "-Wuninitialized clang diagnostic · Learn more", - "markdown": "-Wuninitialized clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wuninitialized)" + "markdown": "-Wuninitialized clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wuninitialized)" }, "defaultConfiguration": { "enabled": true, @@ -57101,13 +58486,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUninitialized", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -57134,14 +58520,15 @@ "parameters": { "suppressToolId": "Unity.BurstForeachNotSupported", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity Burst Compiler Warnings", - "index": 54, + "index": 57, "toolComponent": { "name": "QDNET" } @@ -57167,14 +58554,15 @@ "parameters": { "suppressToolId": "Html.PathError", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "HTML/Potential Code Quality Issues", - "index": 51, + "index": 54, "toolComponent": { "name": "QDNET" } @@ -57192,7 +58580,7 @@ }, "fullDescription": { "text": "-Wpacked clang diagnostic · Learn more", - "markdown": "-Wpacked clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpacked)" + "markdown": "-Wpacked clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpacked)" }, "defaultConfiguration": { "enabled": true, @@ -57200,13 +58588,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticPacked", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -57233,7 +58622,8 @@ "parameters": { "suppressToolId": "ExplicitCallerInfoArgument", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -57251,6 +58641,40 @@ } ] }, + { + "id": "CppClangTidyReadabilityRedundantInlineSpecifier", + "shortDescription": { + "text": "readability-redundant-inline-specifier clang-tidy check" + }, + "fullDescription": { + "text": "readability-redundant-inline-specifier clang-tidy check · Learn more", + "markdown": "readability-redundant-inline-specifier clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/redundant-inline-specifier.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyReadabilityRedundantInlineSpecifier", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CA2235", "shortDescription": { @@ -57266,7 +58690,8 @@ "parameters": { "suppressToolId": "CA2235", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -57299,7 +58724,8 @@ "parameters": { "suppressToolId": "CA2237", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -57332,13 +58758,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerOptinCplusplusUninitializedObject", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -57357,7 +58784,7 @@ }, "fullDescription": { "text": "-Wdelimited-escape-sequence-extension clang diagnostic · Learn more", - "markdown": "-Wdelimited-escape-sequence-extension clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdelimited-escape-sequence-extension)" + "markdown": "-Wdelimited-escape-sequence-extension clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdelimited-escape-sequence-extension)" }, "defaultConfiguration": { "enabled": true, @@ -57365,13 +58792,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDelimitedEscapeSequenceExtension", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -57398,7 +58826,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8819", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -57422,8 +58851,8 @@ "text": "Class member function hiding a non-virtual function from a base class" }, "fullDescription": { - "text": "Class member function hides a non-virtual function from a base class", - "markdown": "Class member function hides a non-virtual function from a base class" + "text": "Class member function hides a non-virtual function from a base class Learn more...", + "markdown": "Class member function hides a non-virtual function from a base class [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Res-reuse)" }, "defaultConfiguration": { "enabled": true, @@ -57431,13 +58860,14 @@ "parameters": { "suppressToolId": "CppHidingFunction", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -57449,6 +58879,40 @@ } ] }, + { + "id": "VBErrors", + "shortDescription": { + "text": "VB Compiler Errors" + }, + "fullDescription": { + "text": "VB Compiler Errors", + "markdown": "VB Compiler Errors" + }, + "defaultConfiguration": { + "enabled": false, + "level": "error", + "parameters": { + "suppressToolId": "VBErrors", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "VB.NET/Non configurable", + "index": 139, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "LoopCanBeConvertedToQuery", "shortDescription": { @@ -57464,7 +58928,8 @@ "parameters": { "suppressToolId": "LoopCanBeConvertedToQuery", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -57489,7 +58954,7 @@ }, "fullDescription": { "text": "cert-msc51-cpp clang-tidy check · Learn more", - "markdown": "cert-msc51-cpp clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cert/msc51-cpp.html)" + "markdown": "cert-msc51-cpp clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/msc51-cpp.html)" }, "defaultConfiguration": { "enabled": true, @@ -57497,13 +58962,14 @@ "parameters": { "suppressToolId": "CppClangTidyCertMsc51Cpp", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -57530,7 +58996,8 @@ "parameters": { "suppressToolId": "SymbolFromNotCopiedLocallyReferenceUsedWarning", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -57555,7 +59022,7 @@ }, "fullDescription": { "text": "-Wmax-tokens clang diagnostic · Learn more", - "markdown": "-Wmax-tokens clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmax-tokens)" + "markdown": "-Wmax-tokens clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmax-tokens)" }, "defaultConfiguration": { "enabled": false, @@ -57563,13 +59030,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMaxTokens", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -57588,7 +59056,7 @@ }, "fullDescription": { "text": "-Wmodule-file-config-mismatch clang diagnostic · Learn more", - "markdown": "-Wmodule-file-config-mismatch clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmodule-file-config-mismatch)" + "markdown": "-Wmodule-file-config-mismatch clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmodule-file-config-mismatch)" }, "defaultConfiguration": { "enabled": true, @@ -57596,13 +59064,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticModuleFileConfigMismatch", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -57620,8 +59089,8 @@ "text": "Call to a virtual function inside a constructor/destructor is resolved at compile time" }, "fullDescription": { - "text": "Call to a virtual function inside a constructor/destructor is resolved at compile time", - "markdown": "Call to a virtual function inside a constructor/destructor is resolved at compile time" + "text": "Call to a virtual function inside a constructor/destructor is resolved at compile time Learn more...", + "markdown": "Call to a virtual function inside a constructor/destructor is resolved at compile time [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rc-ctor-virtual)" }, "defaultConfiguration": { "enabled": true, @@ -57629,13 +59098,14 @@ "parameters": { "suppressToolId": "CppVirtualFunctionCallInsideCtor", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -57654,7 +59124,7 @@ }, "fullDescription": { "text": "-Wvoid-ptr-dereference clang diagnostic · Learn more", - "markdown": "-Wvoid-ptr-dereference clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wvoid-ptr-dereference)" + "markdown": "-Wvoid-ptr-dereference clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wvoid-ptr-dereference)" }, "defaultConfiguration": { "enabled": true, @@ -57662,13 +59132,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticVoidPtrDereference", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -57695,7 +59166,8 @@ "parameters": { "suppressToolId": "CA2241", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -57728,14 +59200,15 @@ "parameters": { "suppressToolId": "Unity.PropertyDrawerOnGUIBase", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity", - "index": 19, + "index": 18, "toolComponent": { "name": "QDNET" } @@ -57761,7 +59234,8 @@ "parameters": { "suppressToolId": "CA2242", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -57786,7 +59260,7 @@ }, "fullDescription": { "text": "readability-container-contains clang-tidy check · Learn more", - "markdown": "readability-container-contains clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/container-contains.html)" + "markdown": "readability-container-contains clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/container-contains.html)" }, "defaultConfiguration": { "enabled": false, @@ -57794,13 +59268,14 @@ "parameters": { "suppressToolId": "CppClangTidyReadabilityContainerContains", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -57827,7 +59302,8 @@ "parameters": { "suppressToolId": "CA2243", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -57852,7 +59328,7 @@ }, "fullDescription": { "text": "android-cloexec-inotify-init clang-tidy check · Learn more", - "markdown": "android-cloexec-inotify-init clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-inotify-init.html)" + "markdown": "android-cloexec-inotify-init clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-inotify-init.html)" }, "defaultConfiguration": { "enabled": false, @@ -57860,13 +59336,14 @@ "parameters": { "suppressToolId": "CppClangTidyAndroidCloexecInotifyInit", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -57893,7 +59370,8 @@ "parameters": { "suppressToolId": "CA2244", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -57926,7 +59404,8 @@ "parameters": { "suppressToolId": "CA2245", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -57951,7 +59430,7 @@ }, "fullDescription": { "text": "-Winline-new-delete clang diagnostic · Learn more", - "markdown": "-Winline-new-delete clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#winline-new-delete)" + "markdown": "-Winline-new-delete clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winline-new-delete)" }, "defaultConfiguration": { "enabled": true, @@ -57959,13 +59438,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticInlineNewDelete", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -57992,7 +59472,8 @@ "parameters": { "suppressToolId": "CA2246", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -58025,7 +59506,8 @@ "parameters": { "suppressToolId": "PossibleStructMemberModificationOfNonVariableStruct", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -58058,7 +59540,8 @@ "parameters": { "suppressToolId": "CA2247", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -58083,7 +59566,7 @@ }, "fullDescription": { "text": "hicpp-invalid-access-moved clang-tidy check · Learn more", - "markdown": "hicpp-invalid-access-moved clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/invalid-access-moved.html)" + "markdown": "hicpp-invalid-access-moved clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/invalid-access-moved.html)" }, "defaultConfiguration": { "enabled": false, @@ -58091,13 +59574,14 @@ "parameters": { "suppressToolId": "CppClangTidyHicppInvalidAccessMoved", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -58124,7 +59608,8 @@ "parameters": { "suppressToolId": "CA2248", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -58157,7 +59642,8 @@ "parameters": { "suppressToolId": "BadControlBracesLineBreaks", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -58190,7 +59676,8 @@ "parameters": { "suppressToolId": "CA2249", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -58215,7 +59702,7 @@ }, "fullDescription": { "text": "-Winaccessible-base clang diagnostic · Learn more", - "markdown": "-Winaccessible-base clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#winaccessible-base)" + "markdown": "-Winaccessible-base clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winaccessible-base)" }, "defaultConfiguration": { "enabled": true, @@ -58223,13 +59710,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticInaccessibleBase", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -58256,14 +59744,15 @@ "parameters": { "suppressToolId": "CSharpMissingPluginDependency", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unreal Build System", - "index": 119, + "index": 141, "toolComponent": { "name": "QDNET" } @@ -58280,8 +59769,8 @@ "text": "Function returns by const value" }, "fullDescription": { - "text": "Returning from a function by const value is usually not beneficial. Consider returning values as non-const to take advantage of move semantics.", - "markdown": "Returning from a function by const value is usually not beneficial. Consider returning values as non-const to take advantage of move semantics." + "text": "Returning from a function by const value is usually not beneficial. Consider returning values as non-const to take advantage of move semantics. Learn more...", + "markdown": "Returning from a function by const value is usually not beneficial. Consider returning values as non-const to take advantage of move semantics. [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rf-return-const)" }, "defaultConfiguration": { "enabled": true, @@ -58289,14 +59778,15 @@ "parameters": { "suppressToolId": "CppConstValueFunctionReturnType", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Common Practices and Code Improvements", - "index": 17, + "id": "C_C++/Common Practices and Code Improvements", + "index": 16, "toolComponent": { "name": "QDNET" } @@ -58313,8 +59803,8 @@ "text": "Redundant 'Attribute' suffix" }, "fullDescription": { - "text": "Redundant 'Attribute' suffix can be omitted when referencing attribute type", - "markdown": "Redundant 'Attribute' suffix can be omitted when referencing attribute type" + "text": "Redundant 'Attribute' suffix can be omitted when referencing attribute type Learn more...", + "markdown": "Redundant 'Attribute' suffix can be omitted when referencing attribute type [Learn more...](https://www.jetbrains.com/help/rider/RedundantAttributeSuffix.html)" }, "defaultConfiguration": { "enabled": true, @@ -58322,7 +59812,8 @@ "parameters": { "suppressToolId": "RedundantAttributeSuffix", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -58355,7 +59846,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8825", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -58388,7 +59880,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8824", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -58421,13 +59914,14 @@ "parameters": { "suppressToolId": "CppNonExceptionSafeResourceAcquisition", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -58454,13 +59948,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerCplusplusPlacementNew", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -58487,7 +59982,8 @@ "parameters": { "suppressToolId": "ConstantConditionalAccessQualifier", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -58520,13 +60016,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerCoreStackAddressEscape", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -58545,7 +60042,7 @@ }, "fullDescription": { "text": "performance-trivially-destructible clang-tidy check · Learn more", - "markdown": "performance-trivially-destructible clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/performance/trivially-destructible.html)" + "markdown": "performance-trivially-destructible clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance/trivially-destructible.html)" }, "defaultConfiguration": { "enabled": true, @@ -58553,13 +60050,14 @@ "parameters": { "suppressToolId": "CppClangTidyPerformanceTriviallyDestructible", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -58586,7 +60084,8 @@ "parameters": { "suppressToolId": "CA2250", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -58619,7 +60118,8 @@ "parameters": { "suppressToolId": "CA2251", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -58652,7 +60152,8 @@ "parameters": { "suppressToolId": "CA2252", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -58685,7 +60186,8 @@ "parameters": { "suppressToolId": "RedundantLambdaSignatureParentheses", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -58718,7 +60220,8 @@ "parameters": { "suppressToolId": "CA2253", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -58742,8 +60245,8 @@ "text": "Variable can be moved to init statement" }, "fullDescription": { - "text": "Don't introduce a variable before you need to use it", - "markdown": "Don't introduce a variable before you need to use it" + "text": "Don't introduce a variable before you need to use it Learn more...", + "markdown": "Don't introduce a variable before you need to use it [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Res-introduce)" }, "defaultConfiguration": { "enabled": true, @@ -58751,14 +60254,15 @@ "parameters": { "suppressToolId": "CppTooWideScopeInitStatement", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Common Practices and Code Improvements", - "index": 17, + "id": "C_C++/Common Practices and Code Improvements", + "index": 16, "toolComponent": { "name": "QDNET" } @@ -58784,7 +60288,8 @@ "parameters": { "suppressToolId": "CA2254", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -58817,7 +60322,8 @@ "parameters": { "suppressToolId": "CA2255", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -58842,7 +60348,7 @@ }, "fullDescription": { "text": "bugprone-implicit-widening-of-multiplication-result clang-tidy check · Learn more", - "markdown": "bugprone-implicit-widening-of-multiplication-result clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/implicit-widening-of-multiplication-result.html)" + "markdown": "bugprone-implicit-widening-of-multiplication-result clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/implicit-widening-of-multiplication-result.html)" }, "defaultConfiguration": { "enabled": true, @@ -58850,13 +60356,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneImplicitWideningOfMultiplicationResult", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -58883,7 +60390,8 @@ "parameters": { "suppressToolId": "CA2256", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -58916,7 +60424,8 @@ "parameters": { "suppressToolId": "CA2257", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -58941,7 +60450,7 @@ }, "fullDescription": { "text": "hicpp-multiway-paths-covered clang-tidy check · Learn more", - "markdown": "hicpp-multiway-paths-covered clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/multiway-paths-covered.html)" + "markdown": "hicpp-multiway-paths-covered clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/multiway-paths-covered.html)" }, "defaultConfiguration": { "enabled": true, @@ -58949,13 +60458,14 @@ "parameters": { "suppressToolId": "CppClangTidyHicppMultiwayPathsCovered", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -58982,7 +60492,8 @@ "parameters": { "suppressToolId": "CA2258", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -59015,7 +60526,8 @@ "parameters": { "suppressToolId": "CA2259", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -59040,7 +60552,7 @@ }, "fullDescription": { "text": "-Wnullability-completeness clang diagnostic · Learn more", - "markdown": "-Wnullability-completeness clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wnullability-completeness)" + "markdown": "-Wnullability-completeness clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnullability-completeness)" }, "defaultConfiguration": { "enabled": true, @@ -59048,13 +60560,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticNullabilityCompleteness", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -59081,14 +60594,15 @@ "parameters": { "suppressToolId": "CanSimplifyDictionaryLookupWithTryAdd", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -59114,13 +60628,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerCplusplusMove", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -59139,7 +60654,7 @@ }, "fullDescription": { "text": "-Warc-maybe-repeated-use-of-weak clang diagnostic · Learn more", - "markdown": "-Warc-maybe-repeated-use-of-weak clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#warc-maybe-repeated-use-of-weak)" + "markdown": "-Warc-maybe-repeated-use-of-weak clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#warc-maybe-repeated-use-of-weak)" }, "defaultConfiguration": { "enabled": true, @@ -59147,13 +60662,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticArcMaybeRepeatedUseOfWeak", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -59180,14 +60696,15 @@ "parameters": { "suppressToolId": "RequiredBaseTypesDirectConflict", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Constraints Violations", - "index": 73, + "index": 80, "toolComponent": { "name": "QDNET" } @@ -59213,7 +60730,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS0078", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -59246,7 +60764,8 @@ "parameters": { "suppressToolId": "CA2260", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -59279,14 +60798,15 @@ "parameters": { "suppressToolId": "CppUnionMemberOfReferenceType", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Compiler Warnings", - "index": 69, + "id": "C_C++/Compiler Warnings", + "index": 75, "toolComponent": { "name": "QDNET" } @@ -59312,7 +60832,8 @@ "parameters": { "suppressToolId": "CA2261", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -59337,7 +60858,7 @@ }, "fullDescription": { "text": "-Wunneeded-member-function clang diagnostic · Learn more", - "markdown": "-Wunneeded-member-function clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunneeded-member-function)" + "markdown": "-Wunneeded-member-function clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunneeded-member-function)" }, "defaultConfiguration": { "enabled": true, @@ -59345,13 +60866,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnneededMemberFunction", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -59378,7 +60900,8 @@ "parameters": { "suppressToolId": "CA2262", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -59411,7 +60934,8 @@ "parameters": { "suppressToolId": "CA2263", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -59444,7 +60968,8 @@ "parameters": { "suppressToolId": "CA2264", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -59477,7 +61002,8 @@ "parameters": { "suppressToolId": "CA2265", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -59510,14 +61036,15 @@ "parameters": { "suppressToolId": "CppUseStdSize", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Common Practices and Code Improvements", - "index": 17, + "id": "C_C++/Common Practices and Code Improvements", + "index": 16, "toolComponent": { "name": "QDNET" } @@ -59535,7 +61062,7 @@ }, "fullDescription": { "text": "-Wexplicit-ownership-type clang diagnostic · Learn more", - "markdown": "-Wexplicit-ownership-type clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wexplicit-ownership-type)" + "markdown": "-Wexplicit-ownership-type clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wexplicit-ownership-type)" }, "defaultConfiguration": { "enabled": true, @@ -59543,13 +61070,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticExplicitOwnershipType", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -59568,7 +61096,7 @@ }, "fullDescription": { "text": "-Wgnu-array-member-paren-init clang diagnostic · Learn more", - "markdown": "-Wgnu-array-member-paren-init clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wgnu-array-member-paren-init)" + "markdown": "-Wgnu-array-member-paren-init clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-array-member-paren-init)" }, "defaultConfiguration": { "enabled": true, @@ -59576,13 +61104,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticGnuArrayMemberParenInit", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -59609,7 +61138,8 @@ "parameters": { "suppressToolId": "VBStringLastIndexOfIsCultureSpecific.1", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -59642,7 +61172,8 @@ "parameters": { "suppressToolId": "VBStringLastIndexOfIsCultureSpecific.2", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -59675,14 +61206,15 @@ "parameters": { "suppressToolId": "RedundantMyClassQualifier", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "VB.NET/Redundancies in Code", - "index": 88, + "index": 96, "toolComponent": { "name": "QDNET" } @@ -59708,7 +61240,8 @@ "parameters": { "suppressToolId": "VBStringLastIndexOfIsCultureSpecific.3", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -59733,7 +61266,7 @@ }, "fullDescription": { "text": "readability-avoid-const-params-in-decls clang-tidy check · Learn more", - "markdown": "readability-avoid-const-params-in-decls clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/avoid-const-params-in-decls.html)" + "markdown": "readability-avoid-const-params-in-decls clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/avoid-const-params-in-decls.html)" }, "defaultConfiguration": { "enabled": false, @@ -59741,13 +61274,14 @@ "parameters": { "suppressToolId": "CppClangTidyReadabilityAvoidConstParamsInDecls", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -59766,7 +61300,7 @@ }, "fullDescription": { "text": "-Wcompound-token-split clang diagnostic · Learn more", - "markdown": "-Wcompound-token-split clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wcompound-token-split)" + "markdown": "-Wcompound-token-split clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcompound-token-split)" }, "defaultConfiguration": { "enabled": true, @@ -59774,13 +61308,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCompoundTokenSplit", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -59792,6 +61327,40 @@ } ] }, + { + "id": "DuplicatedSwitchSectionBodies", + "shortDescription": { + "text": "Duplicated switch section bodies" + }, + "fullDescription": { + "text": "Duplicated switch section bodies. Consider merging them into a single section to improve readability and reduce code duplication.", + "markdown": "Duplicated switch section bodies. Consider merging them into a single section to improve readability and reduce code duplication." + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "DuplicatedSwitchSectionBodies", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppMsExtDoubleUserConversionInCopyInit", "shortDescription": { @@ -59807,13 +61376,14 @@ "parameters": { "suppressToolId": "CppMsExtDoubleUserConversionInCopyInit", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -59840,13 +61410,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerCplusplusNewDeleteLeaks", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -59873,13 +61444,14 @@ "parameters": { "suppressToolId": "CppMultipleSpaces", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Formatting", + "id": "C_C++/Formatting", "index": 28, "toolComponent": { "name": "QDNET" @@ -59898,7 +61470,7 @@ }, "fullDescription": { "text": "-Wambiguous-member-template clang diagnostic · Learn more", - "markdown": "-Wambiguous-member-template clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wambiguous-member-template)" + "markdown": "-Wambiguous-member-template clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wambiguous-member-template)" }, "defaultConfiguration": { "enabled": true, @@ -59906,13 +61478,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticAmbiguousMemberTemplate", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -59939,14 +61512,15 @@ "parameters": { "suppressToolId": "AngularHtml.Banana", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "Angular 2 HTML/Potential Code Quality Issues", - "index": 122, + "index": 144, "toolComponent": { "name": "QDNET" } @@ -59972,13 +61546,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerOsxAPI", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -59997,7 +61572,7 @@ }, "fullDescription": { "text": "-Wmodules-ambiguous-internal-linkage clang diagnostic · Learn more", - "markdown": "-Wmodules-ambiguous-internal-linkage clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmodules-ambiguous-internal-linkage)" + "markdown": "-Wmodules-ambiguous-internal-linkage clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmodules-ambiguous-internal-linkage)" }, "defaultConfiguration": { "enabled": true, @@ -60005,13 +61580,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticModulesAmbiguousInternalLinkage", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -60038,14 +61614,15 @@ "parameters": { "suppressToolId": "UnexpectedDirective", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "T4/T4", - "index": 106, + "index": 116, "toolComponent": { "name": "QDNET" } @@ -60071,7 +61648,8 @@ "parameters": { "suppressToolId": "ConstantNullCoalescingCondition", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -60104,7 +61682,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8851", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -60129,7 +61708,7 @@ }, "fullDescription": { "text": "-Wnull-arithmetic clang diagnostic · Learn more", - "markdown": "-Wnull-arithmetic clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wnull-arithmetic)" + "markdown": "-Wnull-arithmetic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnull-arithmetic)" }, "defaultConfiguration": { "enabled": true, @@ -60137,13 +61716,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticNullArithmetic", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -60162,7 +61742,7 @@ }, "fullDescription": { "text": "bugprone-sizeof-container clang-tidy check · Learn more", - "markdown": "bugprone-sizeof-container clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/sizeof-container.html)" + "markdown": "bugprone-sizeof-container clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/sizeof-container.html)" }, "defaultConfiguration": { "enabled": true, @@ -60170,13 +61750,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneSizeofContainer", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -60203,7 +61784,8 @@ "parameters": { "suppressToolId": "NUnit.AttributeProducesTooManyTests", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -60236,14 +61818,49 @@ "parameters": { "suppressToolId": "Html.DeadCode", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "HTML/Potential Code Quality Issues", - "index": 51, + "index": 54, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticPreC11CompatPedantic", + "shortDescription": { + "text": "pre-c11-compat-pedantic clang diagnostic" + }, + "fullDescription": { + "text": "-Wpre-c11-compat-pedantic clang diagnostic · Learn more", + "markdown": "-Wpre-c11-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpre-c11-compat-pedantic)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticPreC11CompatPedantic", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, "toolComponent": { "name": "QDNET" } @@ -60269,13 +61886,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerNullabilityNullableDereferenced", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -60302,7 +61920,8 @@ "parameters": { "suppressToolId": "IteratorMethodResultIsIgnored", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -60335,7 +61954,8 @@ "parameters": { "suppressToolId": "VBUseMethodIsInstanceOfType", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -60368,13 +61988,14 @@ "parameters": { "suppressToolId": "CppBadIndent", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Formatting", + "id": "C_C++/Formatting", "index": 28, "toolComponent": { "name": "QDNET" @@ -60401,7 +62022,8 @@ "parameters": { "suppressToolId": "Xaml.BindingWithoutContextNotResolved", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -60434,7 +62056,8 @@ "parameters": { "suppressToolId": "BadDeclarationBracesLineBreaks", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -60459,7 +62082,7 @@ }, "fullDescription": { "text": "-Wmicrosoft-abstract clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-abstract clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-abstract)" + "markdown": "-Wmicrosoft-abstract clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-abstract)" }, "defaultConfiguration": { "enabled": true, @@ -60467,13 +62090,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftAbstract", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -60500,7 +62124,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8860", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -60533,7 +62158,8 @@ "parameters": { "suppressToolId": "EntityFramework.NPlusOne.IncompleteDataQuery", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -60566,14 +62192,15 @@ "parameters": { "suppressToolId": "VbUnreachableCode", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "VB.NET/Redundancies in Code", - "index": 88, + "index": 96, "toolComponent": { "name": "QDNET" } @@ -60591,7 +62218,7 @@ }, "fullDescription": { "text": "-Wmicrosoft-extra-qualification clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-extra-qualification clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-extra-qualification)" + "markdown": "-Wmicrosoft-extra-qualification clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-extra-qualification)" }, "defaultConfiguration": { "enabled": true, @@ -60599,13 +62226,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftExtraQualification", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -60632,13 +62260,14 @@ "parameters": { "suppressToolId": "CppUseOfUndeclaredClass", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Unreal Engine", + "id": "C_C++/Unreal Engine", "index": 6, "toolComponent": { "name": "QDNET" @@ -60665,14 +62294,15 @@ "parameters": { "suppressToolId": "RemoveToList.2", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -60698,14 +62328,15 @@ "parameters": { "suppressToolId": "RemoveToList.1", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -60723,7 +62354,7 @@ }, "fullDescription": { "text": "-Wenum-compare clang diagnostic · Learn more", - "markdown": "-Wenum-compare clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wenum-compare)" + "markdown": "-Wenum-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wenum-compare)" }, "defaultConfiguration": { "enabled": true, @@ -60731,13 +62362,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticEnumCompare", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -60755,8 +62387,8 @@ "text": "Variable can be moved to inner scope" }, "fullDescription": { - "text": "Don't introduce a variable before you need to use it", - "markdown": "Don't introduce a variable before you need to use it" + "text": "Don't introduce a variable before you need to use it Learn more...", + "markdown": "Don't introduce a variable before you need to use it [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Res-introduce)" }, "defaultConfiguration": { "enabled": true, @@ -60764,14 +62396,15 @@ "parameters": { "suppressToolId": "CppTooWideScope", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Common Practices and Code Improvements", - "index": 17, + "id": "C_C++/Common Practices and Code Improvements", + "index": 16, "toolComponent": { "name": "QDNET" } @@ -60797,7 +62430,8 @@ "parameters": { "suppressToolId": "EntityNameCapturedOnly.Local", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -60830,7 +62464,8 @@ "parameters": { "suppressToolId": "PossibleInfiniteInheritance", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -60855,7 +62490,7 @@ }, "fullDescription": { "text": "-Wfree-nonheap-object clang diagnostic · Learn more", - "markdown": "-Wfree-nonheap-object clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wfree-nonheap-object)" + "markdown": "-Wfree-nonheap-object clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wfree-nonheap-object)" }, "defaultConfiguration": { "enabled": true, @@ -60863,13 +62498,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticFreeNonheapObject", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -60888,7 +62524,7 @@ }, "fullDescription": { "text": "-Wpre-c++17-compat-pedantic clang diagnostic · Learn more", - "markdown": "-Wpre-c++17-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpre-c-17-compat-pedantic)" + "markdown": "-Wpre-c++17-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpre-c-17-compat-pedantic)" }, "defaultConfiguration": { "enabled": false, @@ -60896,13 +62532,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticPreCpp17CompatPedantic", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -60929,7 +62566,8 @@ "parameters": { "suppressToolId": "ShiftExpressionZeroLeftOperand", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -60954,7 +62592,7 @@ }, "fullDescription": { "text": "cert-err61-cpp clang-tidy check · Learn more", - "markdown": "cert-err61-cpp clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cert/err61-cpp.html)" + "markdown": "cert-err61-cpp clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/err61-cpp.html)" }, "defaultConfiguration": { "enabled": false, @@ -60962,13 +62600,14 @@ "parameters": { "suppressToolId": "CppClangTidyCertErr61Cpp", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -60987,7 +62626,7 @@ }, "fullDescription": { "text": "-Wexit-time-destructors clang diagnostic · Learn more", - "markdown": "-Wexit-time-destructors clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wexit-time-destructors)" + "markdown": "-Wexit-time-destructors clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wexit-time-destructors)" }, "defaultConfiguration": { "enabled": false, @@ -60995,13 +62634,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticExitTimeDestructors", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -61020,7 +62660,7 @@ }, "fullDescription": { "text": "-Wdebug-compression-unavailable clang diagnostic · Learn more", - "markdown": "-Wdebug-compression-unavailable clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdebug-compression-unavailable)" + "markdown": "-Wdebug-compression-unavailable clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdebug-compression-unavailable)" }, "defaultConfiguration": { "enabled": true, @@ -61028,13 +62668,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDebugCompressionUnavailable", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -61053,7 +62694,7 @@ }, "fullDescription": { "text": "-Wencode-type clang diagnostic · Learn more", - "markdown": "-Wencode-type clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wencode-type)" + "markdown": "-Wencode-type clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wencode-type)" }, "defaultConfiguration": { "enabled": true, @@ -61061,13 +62702,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticEncodeType", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -61086,7 +62728,7 @@ }, "fullDescription": { "text": "-Wgnu-string-literal-operator-template clang diagnostic · Learn more", - "markdown": "-Wgnu-string-literal-operator-template clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wgnu-string-literal-operator-template)" + "markdown": "-Wgnu-string-literal-operator-template clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-string-literal-operator-template)" }, "defaultConfiguration": { "enabled": true, @@ -61094,13 +62736,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticGnuStringLiteralOperatorTemplate", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -61118,8 +62761,8 @@ "text": "Functional-style cast is used instead of a C++ cast" }, "fullDescription": { - "text": "Functional-style cast is used instead of a C++ cast", - "markdown": "Functional-style cast is used instead of a C++ cast" + "text": "Functional-style cast is used instead of a C++ cast Learn more...", + "markdown": "Functional-style cast is used instead of a C++ cast [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Res-casts-named)" }, "defaultConfiguration": { "enabled": true, @@ -61127,14 +62770,15 @@ "parameters": { "suppressToolId": "CppFunctionalStyleCast", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Common Practices and Code Improvements", - "index": 17, + "id": "C_C++/Common Practices and Code Improvements", + "index": 16, "toolComponent": { "name": "QDNET" } @@ -61160,14 +62804,15 @@ "parameters": { "suppressToolId": "MethodHasAsyncOverload", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -61193,14 +62838,15 @@ "parameters": { "suppressToolId": "StringStartsWithIsCultureSpecific", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -61218,7 +62864,7 @@ }, "fullDescription": { "text": "abseil-str-cat-append clang-tidy check · Learn more", - "markdown": "abseil-str-cat-append clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/str-cat-append.html)" + "markdown": "abseil-str-cat-append clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/str-cat-append.html)" }, "defaultConfiguration": { "enabled": false, @@ -61226,13 +62872,14 @@ "parameters": { "suppressToolId": "CppClangTidyAbseilStrCatAppend", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -61259,7 +62906,8 @@ "parameters": { "suppressToolId": "RedundantExplicitNullableCreation", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -61284,7 +62932,7 @@ }, "fullDescription": { "text": "hicpp-exception-baseclass clang-tidy check · Learn more", - "markdown": "hicpp-exception-baseclass clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/exception-baseclass.html)" + "markdown": "hicpp-exception-baseclass clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/exception-baseclass.html)" }, "defaultConfiguration": { "enabled": true, @@ -61292,13 +62940,14 @@ "parameters": { "suppressToolId": "CppClangTidyHicppExceptionBaseclass", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -61325,7 +62974,8 @@ "parameters": { "suppressToolId": "InvokeAsExtensionMethod", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -61350,7 +63000,7 @@ }, "fullDescription": { "text": "-Wgnu-union-cast clang diagnostic · Learn more", - "markdown": "-Wgnu-union-cast clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wgnu-union-cast)" + "markdown": "-Wgnu-union-cast clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-union-cast)" }, "defaultConfiguration": { "enabled": true, @@ -61358,13 +63008,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticGnuUnionCast", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -61391,7 +63042,8 @@ "parameters": { "suppressToolId": "AsyncIteratorInvocationWithoutAwaitForeach", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -61424,7 +63076,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8847", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -61457,7 +63110,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8846", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -61482,7 +63136,7 @@ }, "fullDescription": { "text": "-Wempty-init-stmt clang diagnostic · Learn more", - "markdown": "-Wempty-init-stmt clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wempty-init-stmt)" + "markdown": "-Wempty-init-stmt clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wempty-init-stmt)" }, "defaultConfiguration": { "enabled": true, @@ -61490,13 +63144,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticEmptyInitStmt", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -61523,7 +63178,8 @@ "parameters": { "suppressToolId": "UseNullPropagation", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -61547,8 +63203,8 @@ "text": "Return value of [MustUseReturnValue] annotated method is not used" }, "fullDescription": { - "text": "Return value of method annotated with [MustUseReturnValue] attribute is not used", - "markdown": "Return value of method annotated with \\[MustUseReturnValue\\] attribute is not used" + "text": "Return value of method annotated with [{0}] attribute is not used Learn more...", + "markdown": "Return value of method annotated with \\[{0}\\] attribute is not used [Learn more...](https://www.jetbrains.com/help/rider/MustUseReturnValue.html)" }, "defaultConfiguration": { "enabled": true, @@ -61556,7 +63212,8 @@ "parameters": { "suppressToolId": "MustUseReturnValue", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -61589,7 +63246,8 @@ "parameters": { "suppressToolId": "VBReplaceWithOfType.2", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -61622,7 +63280,8 @@ "parameters": { "suppressToolId": "VBReplaceWithOfType.1", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -61647,7 +63306,7 @@ }, "fullDescription": { "text": "objc-dealloc-in-category clang-tidy check · Learn more", - "markdown": "objc-dealloc-in-category clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/objc/dealloc-in-category.html)" + "markdown": "objc-dealloc-in-category clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/objc/dealloc-in-category.html)" }, "defaultConfiguration": { "enabled": true, @@ -61655,13 +63314,14 @@ "parameters": { "suppressToolId": "CppClangTidyObjcDeallocInCategory", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -61680,7 +63340,7 @@ }, "fullDescription": { "text": "-Wunguarded-availability clang diagnostic · Learn more", - "markdown": "-Wunguarded-availability clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunguarded-availability)" + "markdown": "-Wunguarded-availability clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunguarded-availability)" }, "defaultConfiguration": { "enabled": true, @@ -61688,13 +63348,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnguardedAvailability", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -61713,7 +63374,7 @@ }, "fullDescription": { "text": "bugprone-incorrect-roundings clang-tidy check · Learn more", - "markdown": "bugprone-incorrect-roundings clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/incorrect-roundings.html)" + "markdown": "bugprone-incorrect-roundings clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/incorrect-roundings.html)" }, "defaultConfiguration": { "enabled": true, @@ -61721,13 +63382,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneIncorrectRoundings", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -61746,7 +63408,7 @@ }, "fullDescription": { "text": "-Wnewline-eof clang diagnostic · Learn more", - "markdown": "-Wnewline-eof clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wnewline-eof)" + "markdown": "-Wnewline-eof clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnewline-eof)" }, "defaultConfiguration": { "enabled": true, @@ -61754,13 +63416,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticNewlineEof", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -61787,7 +63450,8 @@ "parameters": { "suppressToolId": "Xaml.RoutedEventResolveError", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -61812,7 +63476,7 @@ }, "fullDescription": { "text": "readability-magic-numbers clang-tidy check · Learn more", - "markdown": "readability-magic-numbers clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/magic-numbers.html)" + "markdown": "readability-magic-numbers clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/magic-numbers.html)" }, "defaultConfiguration": { "enabled": false, @@ -61820,13 +63484,14 @@ "parameters": { "suppressToolId": "CppClangTidyReadabilityMagicNumbers", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -61853,7 +63518,8 @@ "parameters": { "suppressToolId": "CA5350", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -61886,14 +63552,15 @@ "parameters": { "suppressToolId": "AnnotationRedundancyInHierarchy", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -61919,7 +63586,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8892", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -61952,7 +63620,8 @@ "parameters": { "suppressToolId": "CA5351", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -61977,7 +63646,7 @@ }, "fullDescription": { "text": "-Wtautological-undefined-compare clang diagnostic · Learn more", - "markdown": "-Wtautological-undefined-compare clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wtautological-undefined-compare)" + "markdown": "-Wtautological-undefined-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtautological-undefined-compare)" }, "defaultConfiguration": { "enabled": true, @@ -61985,13 +63654,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticTautologicalUndefinedCompare", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -62018,7 +63688,8 @@ "parameters": { "suppressToolId": "BaseMethodCallWithDefaultParameter", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -62051,7 +63722,8 @@ "parameters": { "suppressToolId": "CA5358", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -62084,7 +63756,8 @@ "parameters": { "suppressToolId": "AsyncVoidLambda", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -62117,14 +63790,15 @@ "parameters": { "suppressToolId": "Unity.BurstTypeofExpression", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity Burst Compiler Warnings", - "index": 54, + "index": 57, "toolComponent": { "name": "QDNET" } @@ -62150,14 +63824,15 @@ "parameters": { "suppressToolId": "Xaml.RedundantUpdateSourceTriggerAttribute", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "XAML/Redundancies in Code", - "index": 71, + "index": 77, "toolComponent": { "name": "QDNET" } @@ -62183,7 +63858,8 @@ "parameters": { "suppressToolId": "CA5359", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -62216,7 +63892,8 @@ "parameters": { "suppressToolId": "ThreadStaticAtInstanceField", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -62249,14 +63926,15 @@ "parameters": { "suppressToolId": "Html.TagNotClosed", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "HTML/Potential Code Quality Issues", - "index": 51, + "index": 54, "toolComponent": { "name": "QDNET" } @@ -62268,28 +63946,29 @@ ] }, { - "id": "CppClangTidyReadabilityIsolateDeclaration", + "id": "CppThisArgMemberFuncDelegateCtorIsUnsuportedByDotNetCore", "shortDescription": { - "text": "readability-isolate-declaration clang-tidy check" + "text": "Delegate constructors with a member pointer parameter are unsupported by .NET Core" }, "fullDescription": { - "text": "readability-isolate-declaration clang-tidy check · Learn more", - "markdown": "readability-isolate-declaration clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/isolate-declaration.html)" + "text": "Delegate constructors with a member pointer parameter are unsupported by .NET Core. Use a pointer to e.g. static function instead.", + "markdown": "Delegate constructors with a member pointer parameter are unsupported by .NET Core. Use a pointer to e.g. static function instead." }, "defaultConfiguration": { "enabled": false, "level": "note", "parameters": { - "suppressToolId": "CppClangTidyReadabilityIsolateDeclaration", + "suppressToolId": "CppThisArgMemberFuncDelegateCtorIsUnsuportedByDotNetCore", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", - "index": 8, + "id": "C_C++/.NET Core", + "index": 145, "toolComponent": { "name": "QDNET" } @@ -62301,28 +63980,29 @@ ] }, { - "id": "CppThisArgMemberFuncDelegateCtorIsUnsuportedByDotNetCore", + "id": "CppClangTidyReadabilityIsolateDeclaration", "shortDescription": { - "text": "Delegate constructors with a member pointer parameter are unsupported by .NET Core" + "text": "readability-isolate-declaration clang-tidy check" }, "fullDescription": { - "text": "Delegate constructors with a member pointer parameter are unsupported by .NET Core. Use a pointer to e.g. static function instead.", - "markdown": "Delegate constructors with a member pointer parameter are unsupported by .NET Core. Use a pointer to e.g. static function instead." + "text": "readability-isolate-declaration clang-tidy check · Learn more", + "markdown": "readability-isolate-declaration clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/isolate-declaration.html)" }, "defaultConfiguration": { "enabled": false, "level": "note", "parameters": { - "suppressToolId": "CppThisArgMemberFuncDelegateCtorIsUnsuportedByDotNetCore", + "suppressToolId": "CppClangTidyReadabilityIsolateDeclaration", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/.NET Core", - "index": 123, + "id": "C_C++/Clang-Tidy Checks", + "index": 8, "toolComponent": { "name": "QDNET" } @@ -62340,7 +64020,7 @@ }, "fullDescription": { "text": "misc-non-copyable-objects clang-tidy check · Learn more", - "markdown": "misc-non-copyable-objects clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/misc/non-copyable-objects.html)" + "markdown": "misc-non-copyable-objects clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/non-copyable-objects.html)" }, "defaultConfiguration": { "enabled": true, @@ -62348,13 +64028,14 @@ "parameters": { "suppressToolId": "CppClangTidyMiscNonCopyableObjects", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -62373,7 +64054,7 @@ }, "fullDescription": { "text": "-Wtautological-unsigned-zero-compare clang diagnostic · Learn more", - "markdown": "-Wtautological-unsigned-zero-compare clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wtautological-unsigned-zero-compare)" + "markdown": "-Wtautological-unsigned-zero-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtautological-unsigned-zero-compare)" }, "defaultConfiguration": { "enabled": false, @@ -62381,13 +64062,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticTautologicalUnsignedZeroCompare", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -62406,7 +64088,7 @@ }, "fullDescription": { "text": "-Wattribute-warning clang diagnostic · Learn more", - "markdown": "-Wattribute-warning clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wattribute-warning)" + "markdown": "-Wattribute-warning clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wattribute-warning)" }, "defaultConfiguration": { "enabled": true, @@ -62414,13 +64096,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticAttributeWarning", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -62439,7 +64122,7 @@ }, "fullDescription": { "text": "llvmlibc-restrict-system-libc-headers clang-tidy check · Learn more", - "markdown": "llvmlibc-restrict-system-libc-headers clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/llvmlibc/restrict-system-libc-headers.html)" + "markdown": "llvmlibc-restrict-system-libc-headers clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/llvmlibc/restrict-system-libc-headers.html)" }, "defaultConfiguration": { "enabled": false, @@ -62447,13 +64130,14 @@ "parameters": { "suppressToolId": "CppClangTidyLlvmlibcRestrictSystemLibcHeaders", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -62480,7 +64164,8 @@ "parameters": { "suppressToolId": "RedundantBaseQualifier", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -62505,7 +64190,7 @@ }, "fullDescription": { "text": "misc-uniqueptr-reset-release clang-tidy check · Learn more", - "markdown": "misc-uniqueptr-reset-release clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/misc/uniqueptr-reset-release.html)" + "markdown": "misc-uniqueptr-reset-release clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/uniqueptr-reset-release.html)" }, "defaultConfiguration": { "enabled": true, @@ -62513,13 +64198,14 @@ "parameters": { "suppressToolId": "CppClangTidyMiscUniqueptrResetRelease", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -62546,13 +64232,14 @@ "parameters": { "suppressToolId": "CppPointerConversionDropsQualifiers", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -62579,7 +64266,8 @@ "parameters": { "suppressToolId": "CA5361", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -62612,7 +64300,8 @@ "parameters": { "suppressToolId": "RedundantAttributeUsageProperty", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -62637,7 +64326,7 @@ }, "fullDescription": { "text": "-Wfunction-def-in-objc-container clang diagnostic · Learn more", - "markdown": "-Wfunction-def-in-objc-container clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wfunction-def-in-objc-container)" + "markdown": "-Wfunction-def-in-objc-container clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wfunction-def-in-objc-container)" }, "defaultConfiguration": { "enabled": true, @@ -62645,13 +64334,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticFunctionDefInObjcContainer", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -62678,7 +64368,8 @@ "parameters": { "suppressToolId": "CA5360", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -62711,7 +64402,8 @@ "parameters": { "suppressToolId": "CA5363", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -62744,7 +64436,8 @@ "parameters": { "suppressToolId": "CA5362", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -62777,7 +64470,8 @@ "parameters": { "suppressToolId": "CA5365", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -62810,7 +64504,8 @@ "parameters": { "suppressToolId": "CA5364", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -62843,13 +64538,14 @@ "parameters": { "suppressToolId": "CppRedundantBlankLines", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Formatting", + "id": "C_C++/Formatting", "index": 28, "toolComponent": { "name": "QDNET" @@ -62876,7 +64572,8 @@ "parameters": { "suppressToolId": "CA5367", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -62909,7 +64606,8 @@ "parameters": { "suppressToolId": "CA5366", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -62942,7 +64640,8 @@ "parameters": { "suppressToolId": "CA5369", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -62975,7 +64674,8 @@ "parameters": { "suppressToolId": "CA5368", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -63008,14 +64708,15 @@ "parameters": { "suppressToolId": "FSharpRedundantOpen", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "F#/Redundancies in Code", - "index": 67, + "index": 73, "toolComponent": { "name": "QDNET" } @@ -63033,7 +64734,7 @@ }, "fullDescription": { "text": "modernize-use-default-member-init clang-tidy check · Learn more", - "markdown": "modernize-use-default-member-init clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-default-member-init.html)" + "markdown": "modernize-use-default-member-init clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-default-member-init.html)" }, "defaultConfiguration": { "enabled": false, @@ -63041,13 +64742,14 @@ "parameters": { "suppressToolId": "CppClangTidyModernizeUseDefaultMemberInit", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -63074,14 +64776,15 @@ "parameters": { "suppressToolId": "RedundantIsBeforeRelationalPattern", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -63107,13 +64810,14 @@ "parameters": { "suppressToolId": "CppRedundantSpace", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Formatting", + "id": "C_C++/Formatting", "index": 28, "toolComponent": { "name": "QDNET" @@ -63140,14 +64844,15 @@ "parameters": { "suppressToolId": "Unity.BurstAccessingManagedIndexer", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity Burst Compiler Warnings", - "index": 54, + "index": 57, "toolComponent": { "name": "QDNET" } @@ -63173,7 +64878,8 @@ "parameters": { "suppressToolId": "CA5370", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -63206,14 +64912,15 @@ "parameters": { "suppressToolId": "Xaml.MissingGridIndex", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "XAML/Potential Code Quality Issues", - "index": 44, + "index": 45, "toolComponent": { "name": "QDNET" } @@ -63239,7 +64946,8 @@ "parameters": { "suppressToolId": "CA5372", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -63272,7 +64980,8 @@ "parameters": { "suppressToolId": "CA5371", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -63305,7 +65014,8 @@ "parameters": { "suppressToolId": "CA5374", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -63338,7 +65048,8 @@ "parameters": { "suppressToolId": "CA5373", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -63371,7 +65082,8 @@ "parameters": { "suppressToolId": "CA5376", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -63404,7 +65116,8 @@ "parameters": { "suppressToolId": "CA5375", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -63437,7 +65150,8 @@ "parameters": { "suppressToolId": "CA5378", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -63470,7 +65184,8 @@ "parameters": { "suppressToolId": "CA5377", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -63503,7 +65218,8 @@ "parameters": { "suppressToolId": "CA5379", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -63536,14 +65252,15 @@ "parameters": { "suppressToolId": "MemberCanBeProtected.Global", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -63569,7 +65286,8 @@ "parameters": { "suppressToolId": "NUnit.TestCaseResultPropertyDuplicatesExpectedResult", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -63594,7 +65312,7 @@ }, "fullDescription": { "text": "-Wctu clang diagnostic · Learn more", - "markdown": "-Wctu clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wctu)" + "markdown": "-Wctu clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wctu)" }, "defaultConfiguration": { "enabled": false, @@ -63602,13 +65320,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCtu", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -63627,7 +65346,7 @@ }, "fullDescription": { "text": "-Wuninitialized-const-reference clang diagnostic · Learn more", - "markdown": "-Wuninitialized-const-reference clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wuninitialized-const-reference)" + "markdown": "-Wuninitialized-const-reference clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wuninitialized-const-reference)" }, "defaultConfiguration": { "enabled": true, @@ -63635,13 +65354,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUninitializedConstReference", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -63668,7 +65388,8 @@ "parameters": { "suppressToolId": "MissingLinebreak", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -63693,7 +65414,7 @@ }, "fullDescription": { "text": "cppcoreguidelines-c-copy-assignment-signature clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-c-copy-assignment-signature clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/c-copy-assignment-signature.html)" + "markdown": "cppcoreguidelines-c-copy-assignment-signature clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/c-copy-assignment-signature.html)" }, "defaultConfiguration": { "enabled": false, @@ -63701,13 +65422,14 @@ "parameters": { "suppressToolId": "CppClangTidyCppcoreguidelinesCCopyAssignmentSignature", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -63725,8 +65447,8 @@ "text": "Event is never subscribed to (non-private accessibility)" }, "fullDescription": { - "text": "Event is never subscribed to", - "markdown": "Event is never subscribed to" + "text": "Event is never subscribed to Learn more...", + "markdown": "Event is never subscribed to [Learn more...](https://www.jetbrains.com/help/rider/EventNeverSubscribedTo.Global.html)" }, "defaultConfiguration": { "enabled": true, @@ -63734,7 +65456,8 @@ "parameters": { "suppressToolId": "EventNeverSubscribedTo.Global", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -63767,7 +65490,8 @@ "parameters": { "suppressToolId": "CA5381", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -63792,7 +65516,7 @@ }, "fullDescription": { "text": "-Wlinker-warnings clang diagnostic · Learn more", - "markdown": "-Wlinker-warnings clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wlinker-warnings)" + "markdown": "-Wlinker-warnings clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wlinker-warnings)" }, "defaultConfiguration": { "enabled": true, @@ -63800,13 +65524,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticLinkerWarnings", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -63833,7 +65558,8 @@ "parameters": { "suppressToolId": "CA5380", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -63866,7 +65592,8 @@ "parameters": { "suppressToolId": "CA5383", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -63899,7 +65626,8 @@ "parameters": { "suppressToolId": "CA5382", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -63932,7 +65660,8 @@ "parameters": { "suppressToolId": "CA5385", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -63965,13 +65694,14 @@ "parameters": { "suppressToolId": "CppBoostFormatTooManyArgs", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -63998,7 +65728,8 @@ "parameters": { "suppressToolId": "CA5384", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -64031,7 +65762,8 @@ "parameters": { "suppressToolId": "CA5387", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -64056,7 +65788,7 @@ }, "fullDescription": { "text": "-Wmulti-gpu clang diagnostic · Learn more", - "markdown": "-Wmulti-gpu clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmulti-gpu)" + "markdown": "-Wmulti-gpu clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmulti-gpu)" }, "defaultConfiguration": { "enabled": true, @@ -64064,13 +65796,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMultiGpu", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -64097,7 +65830,8 @@ "parameters": { "suppressToolId": "CA5386", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -64130,7 +65864,8 @@ "parameters": { "suppressToolId": "CA5389", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -64154,8 +65889,8 @@ "text": "Unused parameter (non-private accessibility)" }, "fullDescription": { - "text": "Parameter is never used", - "markdown": "Parameter is never used" + "text": "Parameter is never used Learn more...", + "markdown": "Parameter is never used [Learn more...](https://www.jetbrains.com/help/rider/UnusedParameter.Global.html)" }, "defaultConfiguration": { "enabled": true, @@ -64163,7 +65898,8 @@ "parameters": { "suppressToolId": "UnusedParameter.Global", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -64196,7 +65932,8 @@ "parameters": { "suppressToolId": "CA5388", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -64229,7 +65966,8 @@ "parameters": { "suppressToolId": "CA5390", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -64254,7 +65992,7 @@ }, "fullDescription": { "text": "-Wpredefined-identifier-outside-function clang diagnostic · Learn more", - "markdown": "-Wpredefined-identifier-outside-function clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpredefined-identifier-outside-function)" + "markdown": "-Wpredefined-identifier-outside-function clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpredefined-identifier-outside-function)" }, "defaultConfiguration": { "enabled": true, @@ -64262,13 +66000,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticPredefinedIdentifierOutsideFunction", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -64295,7 +66034,8 @@ "parameters": { "suppressToolId": "CA5392", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -64328,7 +66068,8 @@ "parameters": { "suppressToolId": "CA5391", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -64361,7 +66102,8 @@ "parameters": { "suppressToolId": "CA5394", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -64394,7 +66136,8 @@ "parameters": { "suppressToolId": "CA5393", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -64427,7 +66170,8 @@ "parameters": { "suppressToolId": "ConditionIsAlwaysTrueOrFalseAccordingToNullableAPIContract", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -64460,7 +66204,8 @@ "parameters": { "suppressToolId": "CA5396", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -64493,7 +66238,8 @@ "parameters": { "suppressToolId": "CA5395", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -64526,7 +66272,8 @@ "parameters": { "suppressToolId": "CA5398", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -64559,7 +66306,8 @@ "parameters": { "suppressToolId": "RedundantLambdaParameterType", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -64592,7 +66340,8 @@ "parameters": { "suppressToolId": "CA5397", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -64625,7 +66374,8 @@ "parameters": { "suppressToolId": "CA5399", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -64650,7 +66400,7 @@ }, "fullDescription": { "text": "-Warc-unsafe-retained-assign clang diagnostic · Learn more", - "markdown": "-Warc-unsafe-retained-assign clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#warc-unsafe-retained-assign)" + "markdown": "-Warc-unsafe-retained-assign clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#warc-unsafe-retained-assign)" }, "defaultConfiguration": { "enabled": true, @@ -64658,13 +66408,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticArcUnsafeRetainedAssign", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -64683,7 +66434,7 @@ }, "fullDescription": { "text": "-Wc11-extensions clang diagnostic · Learn more", - "markdown": "-Wc11-extensions clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc11-extensions)" + "markdown": "-Wc11-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc11-extensions)" }, "defaultConfiguration": { "enabled": true, @@ -64691,13 +66442,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticC11Extensions", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -64724,7 +66476,8 @@ "parameters": { "suppressToolId": "LoopVariableIsNeverChangedInsideLoop", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -64757,7 +66510,8 @@ "parameters": { "suppressToolId": "EntityFramework.NPlusOne.Query", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -64775,6 +66529,40 @@ } ] }, + { + "id": "CppClangTidyClangDiagnosticC23Compat", + "shortDescription": { + "text": "c23-compat clang diagnostic" + }, + "fullDescription": { + "text": "-Wc23-compat clang diagnostic · Learn more", + "markdown": "-Wc23-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc23-compat)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticC23Compat", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CA1727", "shortDescription": { @@ -64790,7 +66578,8 @@ "parameters": { "suppressToolId": "CA1727", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -64815,7 +66604,7 @@ }, "fullDescription": { "text": "-Wnull-character clang diagnostic · Learn more", - "markdown": "-Wnull-character clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wnull-character)" + "markdown": "-Wnull-character clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnull-character)" }, "defaultConfiguration": { "enabled": true, @@ -64823,13 +66612,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticNullCharacter", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -64856,7 +66646,8 @@ "parameters": { "suppressToolId": "VBPossibleMistakenCallToGetType.1", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -64881,7 +66672,7 @@ }, "fullDescription": { "text": "-Wtautological-compare clang diagnostic · Learn more", - "markdown": "-Wtautological-compare clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wtautological-compare)" + "markdown": "-Wtautological-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtautological-compare)" }, "defaultConfiguration": { "enabled": true, @@ -64889,13 +66680,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticTautologicalCompare", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -64922,7 +66714,8 @@ "parameters": { "suppressToolId": "CA1725", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -64955,7 +66748,8 @@ "parameters": { "suppressToolId": "CA1724", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -64988,13 +66782,14 @@ "parameters": { "suppressToolId": "CppUEBlueprintCallableFunctionUnused", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Unreal Engine", + "id": "C_C++/Unreal Engine", "index": 6, "toolComponent": { "name": "QDNET" @@ -65021,7 +66816,8 @@ "parameters": { "suppressToolId": "VBPossibleMistakenCallToGetType.2", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -65054,7 +66850,8 @@ "parameters": { "suppressToolId": "CA1721", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -65087,7 +66884,8 @@ "parameters": { "suppressToolId": "CA1720", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -65112,7 +66910,7 @@ }, "fullDescription": { "text": "-Wmodule-import-in-extern-c clang diagnostic · Learn more", - "markdown": "-Wmodule-import-in-extern-c clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmodule-import-in-extern-c)" + "markdown": "-Wmodule-import-in-extern-c clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmodule-import-in-extern-c)" }, "defaultConfiguration": { "enabled": true, @@ -65120,13 +66918,48 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticModuleImportInExternC", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticOpenaccSelfIfPotentialConflict", + "shortDescription": { + "text": "openacc-self-if-potential-conflict clang diagnostic" + }, + "fullDescription": { + "text": "-Wopenacc-self-if-potential-conflict clang diagnostic · Learn more", + "markdown": "-Wopenacc-self-if-potential-conflict clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wopenacc-self-if-potential-conflict)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticOpenaccSelfIfPotentialConflict", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -65153,14 +66986,15 @@ "parameters": { "suppressToolId": "MissingHeadTag", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "HTML/Common Practices and Code Improvements", - "index": 68, + "index": 74, "toolComponent": { "name": "QDNET" } @@ -65186,7 +67020,8 @@ "parameters": { "suppressToolId": "ArrangeDefaultValueWhenTypeEvident", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -65219,14 +67054,15 @@ "parameters": { "suppressToolId": "ReplaceAsyncWithTaskReturn", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -65252,13 +67088,14 @@ "parameters": { "suppressToolId": "CppRedundantInlineSpecifier", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Redundancies in Code", + "id": "C_C++/Redundancies in Code", "index": 34, "toolComponent": { "name": "QDNET" @@ -65285,13 +67122,14 @@ "parameters": { "suppressToolId": "CppUE4ProbableMemoryIssuesWithUObject", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Unreal Engine", + "id": "C_C++/Unreal Engine", "index": 6, "toolComponent": { "name": "QDNET" @@ -65310,7 +67148,7 @@ }, "fullDescription": { "text": "misc-unconventional-assign-operator clang-tidy check · Learn more", - "markdown": "misc-unconventional-assign-operator clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/misc/unconventional-assign-operator.html)" + "markdown": "misc-unconventional-assign-operator clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/unconventional-assign-operator.html)" }, "defaultConfiguration": { "enabled": true, @@ -65318,13 +67156,14 @@ "parameters": { "suppressToolId": "CppClangTidyMiscUnconventionalAssignOperator", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -65351,13 +67190,14 @@ "parameters": { "suppressToolId": "CppRedundantElseKeywordInsideCompoundStatement", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Redundancies in Code", + "id": "C_C++/Redundancies in Code", "index": 34, "toolComponent": { "name": "QDNET" @@ -65376,7 +67216,7 @@ }, "fullDescription": { "text": "-WCFString-literal clang diagnostic · Learn more", - "markdown": "-WCFString-literal clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wCFString-literal)" + "markdown": "-WCFString-literal clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wCFString-literal)" }, "defaultConfiguration": { "enabled": true, @@ -65384,13 +67224,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCFStringLiteral", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -65417,7 +67258,8 @@ "parameters": { "suppressToolId": "CA1716", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -65450,7 +67292,8 @@ "parameters": { "suppressToolId": "NUnit.IncorrectArgumentType", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -65483,7 +67326,8 @@ "parameters": { "suppressToolId": "CA1715", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -65516,7 +67360,8 @@ "parameters": { "suppressToolId": "CA1713", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -65549,7 +67394,8 @@ "parameters": { "suppressToolId": "CA1712", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -65582,7 +67428,8 @@ "parameters": { "suppressToolId": "CA1711", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -65615,7 +67462,8 @@ "parameters": { "suppressToolId": "CA1710", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -65648,7 +67496,8 @@ "parameters": { "suppressToolId": "UsePatternMatching", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -65681,14 +67530,15 @@ "parameters": { "suppressToolId": "CppTemplateParameterShadowing", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Compiler Warnings", - "index": 69, + "id": "C_C++/Compiler Warnings", + "index": 75, "toolComponent": { "name": "QDNET" } @@ -65706,7 +67556,7 @@ }, "fullDescription": { "text": "-Wzero-length-array clang diagnostic · Learn more", - "markdown": "-Wzero-length-array clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wzero-length-array)" + "markdown": "-Wzero-length-array clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wzero-length-array)" }, "defaultConfiguration": { "enabled": true, @@ -65714,13 +67564,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticZeroLengthArray", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -65739,7 +67590,7 @@ }, "fullDescription": { "text": "readability-redundant-member-init clang-tidy check · Learn more", - "markdown": "readability-redundant-member-init clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/redundant-member-init.html)" + "markdown": "readability-redundant-member-init clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/redundant-member-init.html)" }, "defaultConfiguration": { "enabled": false, @@ -65747,13 +67598,14 @@ "parameters": { "suppressToolId": "CppClangTidyReadabilityRedundantMemberInit", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -65780,7 +67632,8 @@ "parameters": { "suppressToolId": "CA1708", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -65813,7 +67666,8 @@ "parameters": { "suppressToolId": "CA1707", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -65838,7 +67692,7 @@ }, "fullDescription": { "text": "bugprone-fold-init-type clang-tidy check · Learn more", - "markdown": "bugprone-fold-init-type clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/fold-init-type.html)" + "markdown": "bugprone-fold-init-type clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/fold-init-type.html)" }, "defaultConfiguration": { "enabled": true, @@ -65846,13 +67700,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneFoldInitType", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -65879,7 +67734,8 @@ "parameters": { "suppressToolId": "NUnit.AsyncMethodMustBeTask", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -65912,7 +67768,8 @@ "parameters": { "suppressToolId": "CA1700", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -65937,7 +67794,7 @@ }, "fullDescription": { "text": "readability-static-definition-in-anonymous-namespace clang-tidy check · Learn more", - "markdown": "readability-static-definition-in-anonymous-namespace clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/static-definition-in-anonymous-namespace.html)" + "markdown": "readability-static-definition-in-anonymous-namespace clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/static-definition-in-anonymous-namespace.html)" }, "defaultConfiguration": { "enabled": false, @@ -65945,13 +67802,14 @@ "parameters": { "suppressToolId": "CppClangTidyReadabilityStaticDefinitionInAnonymousNamespace", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -65970,7 +67828,7 @@ }, "fullDescription": { "text": "bugprone-inaccurate-erase clang-tidy check · Learn more", - "markdown": "bugprone-inaccurate-erase clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/inaccurate-erase.html)" + "markdown": "bugprone-inaccurate-erase clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/inaccurate-erase.html)" }, "defaultConfiguration": { "enabled": true, @@ -65978,13 +67836,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneInaccurateErase", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -65996,6 +67855,40 @@ } ] }, + { + "id": "CppClangTidyClangDiagnosticAutoDeclExtensions", + "shortDescription": { + "text": "auto-decl-extensions clang diagnostic" + }, + "fullDescription": { + "text": "-Wauto-decl-extensions clang diagnostic · Learn more", + "markdown": "-Wauto-decl-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wauto-decl-extensions)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticAutoDeclExtensions", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppClangTidyClangDiagnosticMismatchedReturnTypes", "shortDescription": { @@ -66003,7 +67896,7 @@ }, "fullDescription": { "text": "-Wmismatched-return-types clang diagnostic · Learn more", - "markdown": "-Wmismatched-return-types clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmismatched-return-types)" + "markdown": "-Wmismatched-return-types clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmismatched-return-types)" }, "defaultConfiguration": { "enabled": true, @@ -66011,13 +67904,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMismatchedReturnTypes", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -66036,7 +67930,7 @@ }, "fullDescription": { "text": "-Widiomatic-parentheses clang diagnostic · Learn more", - "markdown": "-Widiomatic-parentheses clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#widiomatic-parentheses)" + "markdown": "-Widiomatic-parentheses clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#widiomatic-parentheses)" }, "defaultConfiguration": { "enabled": true, @@ -66044,13 +67938,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticIdiomaticParentheses", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -66062,6 +67957,40 @@ } ] }, + { + "id": "CppClangTidyClangAnalyzerCoreBitwiseShift", + "shortDescription": { + "text": "core.BitwiseShift clang static analyzer check" + }, + "fullDescription": { + "text": "core.BitwiseShift clang static analyzer check · Learn more", + "markdown": "core.BitwiseShift clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangAnalyzerCoreBitwiseShift", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Static Analyzer Checks", + "index": 32, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppTemplateParameterNeverUsed", "shortDescription": { @@ -66077,13 +68006,14 @@ "parameters": { "suppressToolId": "CppTemplateParameterNeverUsed", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -66110,7 +68040,8 @@ "parameters": { "suppressToolId": "CA1819", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -66135,7 +68066,7 @@ }, "fullDescription": { "text": "-Wlarge-by-value-copy clang diagnostic · Learn more", - "markdown": "-Wlarge-by-value-copy clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wlarge-by-value-copy)" + "markdown": "-Wlarge-by-value-copy clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wlarge-by-value-copy)" }, "defaultConfiguration": { "enabled": true, @@ -66143,13 +68074,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticLargeByValueCopy", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -66176,7 +68108,8 @@ "parameters": { "suppressToolId": "CA1816", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -66209,7 +68142,8 @@ "parameters": { "suppressToolId": "CA1815", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -66242,7 +68176,8 @@ "parameters": { "suppressToolId": "CA1814", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -66275,7 +68210,8 @@ "parameters": { "suppressToolId": "CA1813", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -66308,7 +68244,8 @@ "parameters": { "suppressToolId": "CA1812", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -66341,7 +68278,8 @@ "parameters": { "suppressToolId": "CA1810", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -66374,14 +68312,15 @@ "parameters": { "suppressToolId": "InconsistentNaming", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Constraints Violations", - "index": 73, + "index": 80, "toolComponent": { "name": "QDNET" } @@ -66399,7 +68338,7 @@ }, "fullDescription": { "text": "-Wunevaluated-expression clang diagnostic · Learn more", - "markdown": "-Wunevaluated-expression clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunevaluated-expression)" + "markdown": "-Wunevaluated-expression clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunevaluated-expression)" }, "defaultConfiguration": { "enabled": true, @@ -66407,13 +68346,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnevaluatedExpression", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -66440,13 +68380,14 @@ "parameters": { "suppressToolId": "CppMultiCharacterWideLiteral", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -66465,7 +68406,7 @@ }, "fullDescription": { "text": "-Wanalyzer-incompatible-plugin clang diagnostic · Learn more", - "markdown": "-Wanalyzer-incompatible-plugin clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wanalyzer-incompatible-plugin)" + "markdown": "-Wanalyzer-incompatible-plugin clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wanalyzer-incompatible-plugin)" }, "defaultConfiguration": { "enabled": true, @@ -66473,13 +68414,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticAnalyzerIncompatiblePlugin", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -66506,7 +68448,8 @@ "parameters": { "suppressToolId": "VBReplaceWithOfType.LastOrDefault.1", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -66539,7 +68482,8 @@ "parameters": { "suppressToolId": "VBReplaceWithOfType.LastOrDefault.2", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -66564,7 +68508,7 @@ }, "fullDescription": { "text": "-Wproperty-access-dot-syntax clang diagnostic · Learn more", - "markdown": "-Wproperty-access-dot-syntax clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wproperty-access-dot-syntax)" + "markdown": "-Wproperty-access-dot-syntax clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wproperty-access-dot-syntax)" }, "defaultConfiguration": { "enabled": true, @@ -66572,13 +68516,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticPropertyAccessDotSyntax", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -66605,14 +68550,15 @@ "parameters": { "suppressToolId": "Unity.Entities.MustBeSurroundedWithRefRwRo", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity", - "index": 19, + "index": 18, "toolComponent": { "name": "QDNET" } @@ -66638,14 +68584,15 @@ "parameters": { "suppressToolId": "StringLastIndexOfIsCultureSpecific.3", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -66671,7 +68618,8 @@ "parameters": { "suppressToolId": "CA1806", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -66704,14 +68652,15 @@ "parameters": { "suppressToolId": "StringLastIndexOfIsCultureSpecific.2", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -66737,14 +68686,15 @@ "parameters": { "suppressToolId": "Razor.LayoutNotResolved", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "Razor/Potential Code Quality Issues", - "index": 85, + "index": 93, "toolComponent": { "name": "QDNET" } @@ -66770,7 +68720,8 @@ "parameters": { "suppressToolId": "CA1805", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -66803,7 +68754,8 @@ "parameters": { "suppressToolId": "CA1802", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -66836,7 +68788,8 @@ "parameters": { "suppressToolId": "RedundantNullableTypeMark", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -66861,7 +68814,7 @@ }, "fullDescription": { "text": "-Whip-only clang diagnostic · Learn more", - "markdown": "-Whip-only clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#whip-only)" + "markdown": "-Whip-only clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#whip-only)" }, "defaultConfiguration": { "enabled": true, @@ -66869,13 +68822,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticHipOnly", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -66902,14 +68856,15 @@ "parameters": { "suppressToolId": "StringLastIndexOfIsCultureSpecific.1", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -66927,7 +68882,7 @@ }, "fullDescription": { "text": "-Wswitch-bool clang diagnostic · Learn more", - "markdown": "-Wswitch-bool clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wswitch-bool)" + "markdown": "-Wswitch-bool clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wswitch-bool)" }, "defaultConfiguration": { "enabled": true, @@ -66935,13 +68890,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticSwitchBool", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -66968,14 +68924,15 @@ "parameters": { "suppressToolId": "FSharpRedundantAttributeParens", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "F#/Redundancies in Code", - "index": 67, + "index": 73, "toolComponent": { "name": "QDNET" } @@ -66993,7 +68950,7 @@ }, "fullDescription": { "text": "-Wbitwise-instead-of-logical clang diagnostic · Learn more", - "markdown": "-Wbitwise-instead-of-logical clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wbitwise-instead-of-logical)" + "markdown": "-Wbitwise-instead-of-logical clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wbitwise-instead-of-logical)" }, "defaultConfiguration": { "enabled": true, @@ -67001,13 +68958,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticBitwiseInsteadOfLogical", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -67026,7 +68984,7 @@ }, "fullDescription": { "text": "-Wpedantic-macros clang diagnostic · Learn more", - "markdown": "-Wpedantic-macros clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpedantic-macros)" + "markdown": "-Wpedantic-macros clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpedantic-macros)" }, "defaultConfiguration": { "enabled": true, @@ -67034,13 +68992,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticPedanticMacros", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -67059,7 +69018,7 @@ }, "fullDescription": { "text": "hicpp-signed-bitwise clang-tidy check · Learn more", - "markdown": "hicpp-signed-bitwise clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/signed-bitwise.html)" + "markdown": "hicpp-signed-bitwise clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/signed-bitwise.html)" }, "defaultConfiguration": { "enabled": false, @@ -67067,13 +69026,14 @@ "parameters": { "suppressToolId": "CppClangTidyHicppSignedBitwise", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -67092,7 +69052,7 @@ }, "fullDescription": { "text": "-Winvalid-utf8 clang diagnostic · Learn more", - "markdown": "-Winvalid-utf8 clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#winvalid-utf8)" + "markdown": "-Winvalid-utf8 clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winvalid-utf8)" }, "defaultConfiguration": { "enabled": true, @@ -67100,13 +69060,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticInvalidUtf8", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -67124,8 +69085,8 @@ "text": "Non-inline variable definition in a header file" }, "fullDescription": { - "text": "A variable definition in a header file that will lead to a multiple definition linkage error", - "markdown": "A variable definition in a header file that will lead to a multiple definition linkage error" + "text": "A variable definition in a header file that will lead to a multiple definition linkage error Learn more...", + "markdown": "A variable definition in a header file that will lead to a multiple definition linkage error [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rs-inline)" }, "defaultConfiguration": { "enabled": true, @@ -67133,13 +69094,14 @@ "parameters": { "suppressToolId": "CppNonInlineVariableDefinitionInHeaderFile", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -67158,7 +69120,7 @@ }, "fullDescription": { "text": "-Wunused-label clang diagnostic · Learn more", - "markdown": "-Wunused-label clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunused-label)" + "markdown": "-Wunused-label clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunused-label)" }, "defaultConfiguration": { "enabled": true, @@ -67166,13 +69128,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnusedLabel", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -67199,7 +69162,8 @@ "parameters": { "suppressToolId": "Xaml.GridDefinitionsCanBeConvertedToAttribute", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -67217,6 +69181,40 @@ } ] }, + { + "id": "CSharpWarnings__CS9216", + "shortDescription": { + "text": "A value of type 'System.Threading.Lock' converted to a different type will use likely unintended monitor-based locking in 'lock' statement" + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CSharpWarnings__CS9216", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Compiler Warnings", + "index": 27, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppClangTidyClangAnalyzerUnixCstringCStringModeling", "shortDescription": { @@ -67232,13 +69230,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerUnixCstringCStringModeling", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -67257,7 +69256,7 @@ }, "fullDescription": { "text": "-Wimport-preprocessor-directive-pedantic clang diagnostic · Learn more", - "markdown": "-Wimport-preprocessor-directive-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wimport-preprocessor-directive-pedantic)" + "markdown": "-Wimport-preprocessor-directive-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wimport-preprocessor-directive-pedantic)" }, "defaultConfiguration": { "enabled": true, @@ -67265,13 +69264,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticImportPreprocessorDirectivePedantic", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -67298,13 +69298,14 @@ "parameters": { "suppressToolId": "CppMsExtCopyElisionInCopyInitDeclarator", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -67331,7 +69332,8 @@ "parameters": { "suppressToolId": "ResourceNotResolved", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -67364,14 +69366,49 @@ "parameters": { "suppressToolId": "VBWarnings__BC42016", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "VB.NET/Compiler Warnings", - "index": 100, + "index": 110, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyMiscUseInternalLinkage", + "shortDescription": { + "text": "misc-use-internal-linkage clang-tidy check" + }, + "fullDescription": { + "text": "misc-use-internal-linkage clang-tidy check · Learn more", + "markdown": "misc-use-internal-linkage clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/use-internal-linkage.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyMiscUseInternalLinkage", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang-Tidy Checks", + "index": 8, "toolComponent": { "name": "QDNET" } @@ -67389,7 +69426,7 @@ }, "fullDescription": { "text": "-Wconstant-conversion clang diagnostic · Learn more", - "markdown": "-Wconstant-conversion clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wconstant-conversion)" + "markdown": "-Wconstant-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wconstant-conversion)" }, "defaultConfiguration": { "enabled": true, @@ -67397,13 +69434,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticConstantConversion", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -67422,7 +69460,7 @@ }, "fullDescription": { "text": "-Wextern-c-compat clang diagnostic · Learn more", - "markdown": "-Wextern-c-compat clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wextern-c-compat)" + "markdown": "-Wextern-c-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wextern-c-compat)" }, "defaultConfiguration": { "enabled": false, @@ -67430,13 +69468,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticExternCCompat", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -67455,7 +69494,7 @@ }, "fullDescription": { "text": "-Wunguarded-availability-new clang diagnostic · Learn more", - "markdown": "-Wunguarded-availability-new clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunguarded-availability-new)" + "markdown": "-Wunguarded-availability-new clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunguarded-availability-new)" }, "defaultConfiguration": { "enabled": true, @@ -67463,13 +69502,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnguardedAvailabilityNew", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -67496,7 +69536,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS9200", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -67521,7 +69562,7 @@ }, "fullDescription": { "text": "-Wundefined-internal-type clang diagnostic · Learn more", - "markdown": "-Wundefined-internal-type clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wundefined-internal-type)" + "markdown": "-Wundefined-internal-type clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wundefined-internal-type)" }, "defaultConfiguration": { "enabled": true, @@ -67529,13 +69570,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUndefinedInternalType", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -67554,7 +69596,7 @@ }, "fullDescription": { "text": "-Wignored-attributes clang diagnostic · Learn more", - "markdown": "-Wignored-attributes clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wignored-attributes)" + "markdown": "-Wignored-attributes clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wignored-attributes)" }, "defaultConfiguration": { "enabled": false, @@ -67562,13 +69604,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticIgnoredAttributes", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -67587,7 +69630,7 @@ }, "fullDescription": { "text": "llvmlibc-inline-function-decl clang-tidy check · Learn more", - "markdown": "llvmlibc-inline-function-decl clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/llvmlibc/inline-function-decl.html)" + "markdown": "llvmlibc-inline-function-decl clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/llvmlibc/inline-function-decl.html)" }, "defaultConfiguration": { "enabled": false, @@ -67595,13 +69638,14 @@ "parameters": { "suppressToolId": "CppClangTidyLlvmlibcInlineFunctionDecl", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -67628,7 +69672,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS9204", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -67653,7 +69698,7 @@ }, "fullDescription": { "text": "-Wc++23-extensions clang diagnostic · Learn more", - "markdown": "-Wc++23-extensions clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-23-extensions)" + "markdown": "-Wc++23-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-23-extensions)" }, "defaultConfiguration": { "enabled": true, @@ -67661,13 +69706,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCpp23Extensions", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -67685,8 +69731,8 @@ "text": "Override function redefines a default parameter argument" }, "fullDescription": { - "text": "An override function redefines a default parameter argument, previously defined in a base function", - "markdown": "An override function redefines a default parameter argument, previously defined in a base function" + "text": "An override function redefines a default parameter argument, previously defined in a base function Learn more...", + "markdown": "An override function redefines a default parameter argument, previously defined in a base function [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rh-virtual-default-arg)" }, "defaultConfiguration": { "enabled": true, @@ -67694,13 +69740,14 @@ "parameters": { "suppressToolId": "CppRedefinitionOfDefaultArgumentInOverrideFunction", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -67727,7 +69774,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS9208", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -67760,7 +69808,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS9209", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -67793,13 +69842,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerCplusplusVirtualCallModeling", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -67826,13 +69876,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerValistUnterminated", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -67859,14 +69910,15 @@ "parameters": { "suppressToolId": "Asp.ThemeNotResolved", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "Aspx/Potential Code Quality Issues", - "index": 60, + "index": 64, "toolComponent": { "name": "QDNET" } @@ -67892,13 +69944,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerValistCopyToSelf", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -67925,14 +69978,15 @@ "parameters": { "suppressToolId": "VBWarnings__BC42025", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "VB.NET/Compiler Warnings", - "index": 100, + "index": 110, "toolComponent": { "name": "QDNET" } @@ -67950,21 +70004,22 @@ }, "fullDescription": { "text": "-Wnon-virtual-dtor clang diagnostic · Learn more", - "markdown": "-Wnon-virtual-dtor clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wnon-virtual-dtor)" + "markdown": "-Wnon-virtual-dtor clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnon-virtual-dtor)" }, "defaultConfiguration": { - "enabled": true, - "level": "warning", + "enabled": false, + "level": "note", "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticNonVirtualDtor", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -67983,7 +70038,7 @@ }, "fullDescription": { "text": "-Wfixed-point-overflow clang diagnostic · Learn more", - "markdown": "-Wfixed-point-overflow clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wfixed-point-overflow)" + "markdown": "-Wfixed-point-overflow clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wfixed-point-overflow)" }, "defaultConfiguration": { "enabled": true, @@ -67991,13 +70046,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticFixedPointOverflow", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -68009,6 +70065,40 @@ } ] }, + { + "id": "CppClangTidyClangAnalyzerUnixBlockInCriticalSection", + "shortDescription": { + "text": "unix.BlockInCriticalSection clang static analyzer check" + }, + "fullDescription": { + "text": "unix.BlockInCriticalSection clang static analyzer check · Learn more", + "markdown": "unix.BlockInCriticalSection clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangAnalyzerUnixBlockInCriticalSection", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Static Analyzer Checks", + "index": 32, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppClangTidyObjcAssertEquals", "shortDescription": { @@ -68016,7 +70106,7 @@ }, "fullDescription": { "text": "objc-assert-equals clang-tidy check · Learn more", - "markdown": "objc-assert-equals clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/objc/assert-equals.html)" + "markdown": "objc-assert-equals clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/objc/assert-equals.html)" }, "defaultConfiguration": { "enabled": true, @@ -68024,13 +70114,14 @@ "parameters": { "suppressToolId": "CppClangTidyObjcAssertEquals", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -68057,13 +70148,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaObjCGenerics", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -68082,7 +70174,7 @@ }, "fullDescription": { "text": "-Wmissing-sysroot clang diagnostic · Learn more", - "markdown": "-Wmissing-sysroot clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmissing-sysroot)" + "markdown": "-Wmissing-sysroot clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmissing-sysroot)" }, "defaultConfiguration": { "enabled": true, @@ -68090,13 +70182,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMissingSysroot", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -68115,7 +70208,7 @@ }, "fullDescription": { "text": "bugprone-no-escape clang-tidy check · Learn more", - "markdown": "bugprone-no-escape clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/no-escape.html)" + "markdown": "bugprone-no-escape clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/no-escape.html)" }, "defaultConfiguration": { "enabled": true, @@ -68123,13 +70216,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneNoEscape", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -68148,7 +70242,7 @@ }, "fullDescription": { "text": "-Wc++11-compat-pedantic clang diagnostic · Learn more", - "markdown": "-Wc++11-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-11-compat-pedantic)" + "markdown": "-Wc++11-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-11-compat-pedantic)" }, "defaultConfiguration": { "enabled": false, @@ -68156,13 +70250,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCpp11CompatPedantic", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -68189,14 +70284,15 @@ "parameters": { "suppressToolId": "Xaml.XamlUnknownDeviceFamilyTypeHighlighting", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "XAML/Potential Code Quality Issues", - "index": 44, + "index": 45, "toolComponent": { "name": "QDNET" } @@ -68214,7 +70310,7 @@ }, "fullDescription": { "text": "-Wreserved-user-defined-literal clang diagnostic · Learn more", - "markdown": "-Wreserved-user-defined-literal clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wreserved-user-defined-literal)" + "markdown": "-Wreserved-user-defined-literal clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wreserved-user-defined-literal)" }, "defaultConfiguration": { "enabled": true, @@ -68222,13 +70318,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticReservedUserDefinedLiteral", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -68255,7 +70352,8 @@ "parameters": { "suppressToolId": "Xaml.DecimalParsingIsCultureDependent", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -68273,6 +70371,40 @@ } ] }, + { + "id": "CSharpWarnings__CS9264", + "shortDescription": { + "text": "Non-nullable backing field is uninitialized." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CSharpWarnings__CS9264", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Compiler Warnings", + "index": 27, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "Xaml.InvalidType", "shortDescription": { @@ -68288,7 +70420,8 @@ "parameters": { "suppressToolId": "Xaml.InvalidType", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -68313,7 +70446,7 @@ }, "fullDescription": { "text": "modernize-use-emplace clang-tidy check · Learn more", - "markdown": "modernize-use-emplace clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-emplace.html)" + "markdown": "modernize-use-emplace clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-emplace.html)" }, "defaultConfiguration": { "enabled": true, @@ -68321,13 +70454,14 @@ "parameters": { "suppressToolId": "CppClangTidyModernizeUseEmplace", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -68346,7 +70480,7 @@ }, "fullDescription": { "text": "-Wbitwise-op-parentheses clang diagnostic · Learn more", - "markdown": "-Wbitwise-op-parentheses clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wbitwise-op-parentheses)" + "markdown": "-Wbitwise-op-parentheses clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wbitwise-op-parentheses)" }, "defaultConfiguration": { "enabled": true, @@ -68354,13 +70488,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticBitwiseOpParentheses", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -68379,7 +70514,7 @@ }, "fullDescription": { "text": "modernize-raw-string-literal clang-tidy check · Learn more", - "markdown": "modernize-raw-string-literal clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/raw-string-literal.html)" + "markdown": "modernize-raw-string-literal clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/raw-string-literal.html)" }, "defaultConfiguration": { "enabled": true, @@ -68387,13 +70522,14 @@ "parameters": { "suppressToolId": "CppClangTidyModernizeRawStringLiteral", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -68420,7 +70556,8 @@ "parameters": { "suppressToolId": "DisposeOnUsingVariable", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -68445,7 +70582,7 @@ }, "fullDescription": { "text": "-Wwasm-exception-spec clang diagnostic · Learn more", - "markdown": "-Wwasm-exception-spec clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wwasm-exception-spec)" + "markdown": "-Wwasm-exception-spec clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wwasm-exception-spec)" }, "defaultConfiguration": { "enabled": true, @@ -68453,13 +70590,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticWasmExceptionSpec", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -68478,7 +70616,7 @@ }, "fullDescription": { "text": "-Wextra-semi clang diagnostic · Learn more", - "markdown": "-Wextra-semi clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wextra-semi)" + "markdown": "-Wextra-semi clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wextra-semi)" }, "defaultConfiguration": { "enabled": true, @@ -68486,13 +70624,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticExtraSemi", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -68519,7 +70658,8 @@ "parameters": { "suppressToolId": "UselessBinaryOperation", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -68537,6 +70677,40 @@ } ] }, + { + "id": "PreferConcreteValueOverDefault", + "shortDescription": { + "text": "Prefer using concrete value over 'default' or 'new()'" + }, + "fullDescription": { + "text": "Prefer using concrete value (such as 'false' or '0') over generic expression like 'default' or 'new()'", + "markdown": "Prefer using concrete value (such as 'false' or '0') over generic expression like 'default' or 'new()'" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "PreferConcreteValueOverDefault", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 12, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppClangTidyClangDiagnosticMismatchedParameterTypes", "shortDescription": { @@ -68544,7 +70718,7 @@ }, "fullDescription": { "text": "-Wmismatched-parameter-types clang diagnostic · Learn more", - "markdown": "-Wmismatched-parameter-types clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmismatched-parameter-types)" + "markdown": "-Wmismatched-parameter-types clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmismatched-parameter-types)" }, "defaultConfiguration": { "enabled": true, @@ -68552,13 +70726,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMismatchedParameterTypes", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -68585,7 +70760,8 @@ "parameters": { "suppressToolId": "WithExpressionModifiesAllMembers", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -68603,6 +70779,74 @@ } ] }, + { + "id": "CSharpWarnings__CS9256", + "shortDescription": { + "text": "Partial property declarations have signature differences." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CSharpWarnings__CS9256", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Compiler Warnings", + "index": 27, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CSharpWarnings__CS9258", + "shortDescription": { + "text": "In language version preview, the 'field' keyword binds to a synthesized backing field for the property" + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CSharpWarnings__CS9258", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Compiler Warnings", + "index": 27, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppBadMemberAccessSpaces", "shortDescription": { @@ -68618,13 +70862,14 @@ "parameters": { "suppressToolId": "CppBadMemberAccessSpaces", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Formatting", + "id": "C_C++/Formatting", "index": 28, "toolComponent": { "name": "QDNET" @@ -68643,7 +70888,7 @@ }, "fullDescription": { "text": "hicpp-move-const-arg clang-tidy check · Learn more", - "markdown": "hicpp-move-const-arg clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/move-const-arg.html)" + "markdown": "hicpp-move-const-arg clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/move-const-arg.html)" }, "defaultConfiguration": { "enabled": false, @@ -68651,13 +70896,14 @@ "parameters": { "suppressToolId": "CppClangTidyHicppMoveConstArg", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -68676,7 +70922,7 @@ }, "fullDescription": { "text": "-Woverloaded-virtual clang diagnostic · Learn more", - "markdown": "-Woverloaded-virtual clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#woverloaded-virtual)" + "markdown": "-Woverloaded-virtual clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#woverloaded-virtual)" }, "defaultConfiguration": { "enabled": true, @@ -68684,13 +70930,48 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticOverloadedVirtual", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticTentativeDefinitionArray", + "shortDescription": { + "text": "tentative-definition-array clang diagnostic" + }, + "fullDescription": { + "text": "-Wtentative-definition-array clang diagnostic · Learn more", + "markdown": "-Wtentative-definition-array clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtentative-definition-array)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticTentativeDefinitionArray", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -68717,13 +70998,14 @@ "parameters": { "suppressToolId": "CppBoostFormatLegacyCode", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -68750,7 +71032,8 @@ "parameters": { "suppressToolId": "NullCoalescingConditionIsAlwaysNotNullAccordingToAPIContract", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -68783,7 +71066,8 @@ "parameters": { "suppressToolId": "Xaml.OverloadsCollision", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -68801,6 +71085,40 @@ } ] }, + { + "id": "CppClangTidyClangDiagnosticCastFunctionTypeMismatch", + "shortDescription": { + "text": "cast-function-type-mismatch clang diagnostic" + }, + "fullDescription": { + "text": "-Wcast-function-type-mismatch clang diagnostic · Learn more", + "markdown": "-Wcast-function-type-mismatch clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcast-function-type-mismatch)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticCastFunctionTypeMismatch", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppClangTidyClangDiagnosticStaticSelfInit", "shortDescription": { @@ -68808,7 +71126,7 @@ }, "fullDescription": { "text": "-Wstatic-self-init clang diagnostic · Learn more", - "markdown": "-Wstatic-self-init clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wstatic-self-init)" + "markdown": "-Wstatic-self-init clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wstatic-self-init)" }, "defaultConfiguration": { "enabled": true, @@ -68816,13 +71134,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticStaticSelfInit", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -68841,7 +71160,7 @@ }, "fullDescription": { "text": "readability-braces-around-statements clang-tidy check · Learn more", - "markdown": "readability-braces-around-statements clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/braces-around-statements.html)" + "markdown": "readability-braces-around-statements clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/braces-around-statements.html)" }, "defaultConfiguration": { "enabled": false, @@ -68849,13 +71168,14 @@ "parameters": { "suppressToolId": "CppClangTidyReadabilityBracesAroundStatements", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -68882,7 +71202,8 @@ "parameters": { "suppressToolId": "VariableHidesOuterVariable", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -68907,7 +71228,7 @@ }, "fullDescription": { "text": "-Wmemset-transposed-args clang diagnostic · Learn more", - "markdown": "-Wmemset-transposed-args clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmemset-transposed-args)" + "markdown": "-Wmemset-transposed-args clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmemset-transposed-args)" }, "defaultConfiguration": { "enabled": true, @@ -68915,13 +71236,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMemsetTransposedArgs", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -68940,7 +71262,7 @@ }, "fullDescription": { "text": "-Wsizeof-array-div clang diagnostic · Learn more", - "markdown": "-Wsizeof-array-div clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wsizeof-array-div)" + "markdown": "-Wsizeof-array-div clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wsizeof-array-div)" }, "defaultConfiguration": { "enabled": true, @@ -68948,13 +71270,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticSizeofArrayDiv", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -68981,13 +71304,14 @@ "parameters": { "suppressToolId": "CppUnreachableCode", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Redundancies in Code", + "id": "C_C++/Redundancies in Code", "index": 34, "toolComponent": { "name": "QDNET" @@ -69006,7 +71330,7 @@ }, "fullDescription": { "text": "hicpp-undelegated-constructor clang-tidy check · Learn more", - "markdown": "hicpp-undelegated-constructor clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/undelegated-constructor.html)" + "markdown": "hicpp-undelegated-constructor clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/undelegated-constructor.html)" }, "defaultConfiguration": { "enabled": false, @@ -69014,13 +71338,14 @@ "parameters": { "suppressToolId": "CppClangTidyHicppUndelegatedConstructor", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -69047,14 +71372,15 @@ "parameters": { "suppressToolId": "Razor.SectionNotResolved", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "Razor/Potential Code Quality Issues", - "index": 85, + "index": 93, "toolComponent": { "name": "QDNET" } @@ -69080,7 +71406,8 @@ "parameters": { "suppressToolId": "Xaml.StaticResourceNotResolved", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -69113,14 +71440,15 @@ "parameters": { "suppressToolId": "Mvc.PartialViewNotResolved", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "Aspx/Potential Code Quality Issues", - "index": 60, + "index": 64, "toolComponent": { "name": "QDNET" } @@ -69146,14 +71474,15 @@ "parameters": { "suppressToolId": "Xaml.UnexpectedElement", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "XAML/Potential Code Quality Issues", - "index": 44, + "index": 45, "toolComponent": { "name": "QDNET" } @@ -69179,7 +71508,8 @@ "parameters": { "suppressToolId": "SuspiciousParameterNameInArgumentNullException", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -69212,7 +71542,8 @@ "parameters": { "suppressToolId": "VBReplaceWithOfType.Count.2", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -69237,7 +71568,7 @@ }, "fullDescription": { "text": "-Wself-assign-overloaded clang diagnostic · Learn more", - "markdown": "-Wself-assign-overloaded clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wself-assign-overloaded)" + "markdown": "-Wself-assign-overloaded clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wself-assign-overloaded)" }, "defaultConfiguration": { "enabled": true, @@ -69245,13 +71576,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticSelfAssignOverloaded", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -69278,7 +71610,8 @@ "parameters": { "suppressToolId": "VBReplaceWithOfType.Count.1", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -69311,13 +71644,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerCoreStackAddrEscapeBase", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -69335,8 +71669,8 @@ "text": "Replace 'SequenceEqual' with constant pattern" }, "fullDescription": { - "text": "Replace 'SequenceEqual' invocation with constant pattern check", - "markdown": "Replace 'SequenceEqual' invocation with constant pattern check" + "text": "Replace 'SequenceEqual' invocation with constant pattern check Learn more...", + "markdown": "Replace 'SequenceEqual' invocation with constant pattern check [Learn more...](https://www.jetbrains.com/help/rider/ReplaceSequenceEqualWithConstantPattern.html)" }, "defaultConfiguration": { "enabled": true, @@ -69344,7 +71678,8 @@ "parameters": { "suppressToolId": "ReplaceSequenceEqualWithConstantPattern", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -69377,14 +71712,15 @@ "parameters": { "suppressToolId": "CppUserDefinedLiteralSuffixDoesNotStartWithUnderscore", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Compiler Warnings", - "index": 69, + "id": "C_C++/Compiler Warnings", + "index": 75, "toolComponent": { "name": "QDNET" } @@ -69402,7 +71738,7 @@ }, "fullDescription": { "text": "modernize-replace-auto-ptr clang-tidy check · Learn more", - "markdown": "modernize-replace-auto-ptr clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/replace-auto-ptr.html)" + "markdown": "modernize-replace-auto-ptr clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/replace-auto-ptr.html)" }, "defaultConfiguration": { "enabled": true, @@ -69410,13 +71746,14 @@ "parameters": { "suppressToolId": "CppClangTidyModernizeReplaceAutoPtr", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -69435,7 +71772,7 @@ }, "fullDescription": { "text": "android-cloexec-fopen clang-tidy check · Learn more", - "markdown": "android-cloexec-fopen clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-fopen.html)" + "markdown": "android-cloexec-fopen clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-fopen.html)" }, "defaultConfiguration": { "enabled": false, @@ -69443,13 +71780,14 @@ "parameters": { "suppressToolId": "CppClangTidyAndroidCloexecFopen", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -69476,7 +71814,8 @@ "parameters": { "suppressToolId": "VBCheckForReferenceEqualityInstead.2", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -69509,7 +71848,8 @@ "parameters": { "suppressToolId": "VBCheckForReferenceEqualityInstead.1", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -69542,13 +71882,14 @@ "parameters": { "suppressToolId": "CppFinalFunctionInFinalClass", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Redundancies in Code", + "id": "C_C++/Redundancies in Code", "index": 34, "toolComponent": { "name": "QDNET" @@ -69567,7 +71908,7 @@ }, "fullDescription": { "text": "-Wincomplete-setjmp-declaration clang diagnostic · Learn more", - "markdown": "-Wincomplete-setjmp-declaration clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wincomplete-setjmp-declaration)" + "markdown": "-Wincomplete-setjmp-declaration clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wincomplete-setjmp-declaration)" }, "defaultConfiguration": { "enabled": true, @@ -69575,13 +71916,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticIncompleteSetjmpDeclaration", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -69600,7 +71942,7 @@ }, "fullDescription": { "text": "-Wsign-conversion clang diagnostic · Learn more", - "markdown": "-Wsign-conversion clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wsign-conversion)" + "markdown": "-Wsign-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wsign-conversion)" }, "defaultConfiguration": { "enabled": false, @@ -69608,13 +71950,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticSignConversion", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -69633,7 +71976,7 @@ }, "fullDescription": { "text": "-Wimplicit-retain-self clang diagnostic · Learn more", - "markdown": "-Wimplicit-retain-self clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wimplicit-retain-self)" + "markdown": "-Wimplicit-retain-self clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wimplicit-retain-self)" }, "defaultConfiguration": { "enabled": true, @@ -69641,13 +71984,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticImplicitRetainSelf", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -69674,7 +72018,8 @@ "parameters": { "suppressToolId": "ParameterHidesMember", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -69699,7 +72044,7 @@ }, "fullDescription": { "text": "cppcoreguidelines-virtual-class-destructor clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-virtual-class-destructor clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/virtual-class-destructor.html)" + "markdown": "cppcoreguidelines-virtual-class-destructor clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/virtual-class-destructor.html)" }, "defaultConfiguration": { "enabled": false, @@ -69707,13 +72052,14 @@ "parameters": { "suppressToolId": "CppClangTidyCppcoreguidelinesVirtualClassDestructor", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -69732,7 +72078,7 @@ }, "fullDescription": { "text": "-Wimplicit-fixed-point-conversion clang diagnostic · Learn more", - "markdown": "-Wimplicit-fixed-point-conversion clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wimplicit-fixed-point-conversion)" + "markdown": "-Wimplicit-fixed-point-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wimplicit-fixed-point-conversion)" }, "defaultConfiguration": { "enabled": true, @@ -69740,13 +72086,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticImplicitFixedPointConversion", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -69765,7 +72112,7 @@ }, "fullDescription": { "text": "-Wunreachable-code-fallthrough clang diagnostic · Learn more", - "markdown": "-Wunreachable-code-fallthrough clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunreachable-code-fallthrough)" + "markdown": "-Wunreachable-code-fallthrough clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunreachable-code-fallthrough)" }, "defaultConfiguration": { "enabled": true, @@ -69773,13 +72120,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnreachableCodeFallthrough", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -69798,7 +72146,7 @@ }, "fullDescription": { "text": "-Wnullability-inferred-on-nested-type clang diagnostic · Learn more", - "markdown": "-Wnullability-inferred-on-nested-type clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wnullability-inferred-on-nested-type)" + "markdown": "-Wnullability-inferred-on-nested-type clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnullability-inferred-on-nested-type)" }, "defaultConfiguration": { "enabled": true, @@ -69806,13 +72154,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticNullabilityInferredOnNestedType", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -69839,7 +72188,8 @@ "parameters": { "suppressToolId": "UnassignedReadonlyField", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -69872,7 +72222,8 @@ "parameters": { "suppressToolId": "ArgumentsStyleAnonymousFunction", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -69897,7 +72248,7 @@ }, "fullDescription": { "text": "bugprone-suspicious-include clang-tidy check · Learn more", - "markdown": "bugprone-suspicious-include clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/suspicious-include.html)" + "markdown": "bugprone-suspicious-include clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/suspicious-include.html)" }, "defaultConfiguration": { "enabled": true, @@ -69905,13 +72256,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneSuspiciousInclude", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -69938,7 +72290,8 @@ "parameters": { "suppressToolId": "RedundantIfElseBlock", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -69963,7 +72316,7 @@ }, "fullDescription": { "text": "misc-misleading-identifier clang-tidy check · Learn more", - "markdown": "misc-misleading-identifier clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/misc/misleading-identifier.html)" + "markdown": "misc-misleading-identifier clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/misleading-identifier.html)" }, "defaultConfiguration": { "enabled": true, @@ -69971,13 +72324,14 @@ "parameters": { "suppressToolId": "CppClangTidyMiscMisleadingIdentifier", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -69996,7 +72350,7 @@ }, "fullDescription": { "text": "-Wgnu-zero-variadic-macro-arguments clang diagnostic · Learn more", - "markdown": "-Wgnu-zero-variadic-macro-arguments clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wgnu-zero-variadic-macro-arguments)" + "markdown": "-Wgnu-zero-variadic-macro-arguments clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-zero-variadic-macro-arguments)" }, "defaultConfiguration": { "enabled": true, @@ -70004,13 +72358,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticGnuZeroVariadicMacroArguments", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -70029,7 +72384,7 @@ }, "fullDescription": { "text": "readability-redundant-declaration clang-tidy check · Learn more", - "markdown": "readability-redundant-declaration clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/redundant-declaration.html)" + "markdown": "readability-redundant-declaration clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/redundant-declaration.html)" }, "defaultConfiguration": { "enabled": true, @@ -70037,13 +72392,14 @@ "parameters": { "suppressToolId": "CppClangTidyReadabilityRedundantDeclaration", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -70070,13 +72426,14 @@ "parameters": { "suppressToolId": "CppPrintfBadFormat", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -70103,14 +72460,15 @@ "parameters": { "suppressToolId": "Xaml.RedundantNameAttribute", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "XAML/Redundancies in Code", - "index": 71, + "index": 77, "toolComponent": { "name": "QDNET" } @@ -70127,8 +72485,8 @@ "text": "Unnamed namespace in a header file" }, "fullDescription": { - "text": "Unnamed namespaces should not be used in header files", - "markdown": "Unnamed namespaces should not be used in header files" + "text": "Unnamed namespaces should not be used in header files Learn more...", + "markdown": "Unnamed namespaces should not be used in header files [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rs-unnamed)" }, "defaultConfiguration": { "enabled": true, @@ -70136,13 +72494,14 @@ "parameters": { "suppressToolId": "CppUnnamedNamespaceInHeaderFile", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -70169,7 +72528,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS0108,CS0114", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -70202,13 +72562,14 @@ "parameters": { "suppressToolId": "CppMsExtNotInitializedStaticConstLocalVar", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -70235,7 +72596,8 @@ "parameters": { "suppressToolId": "BadEmptyBracesLineBreaks", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -70260,7 +72622,7 @@ }, "fullDescription": { "text": "bugprone-redundant-branch-condition clang-tidy check · Learn more", - "markdown": "bugprone-redundant-branch-condition clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/redundant-branch-condition.html)" + "markdown": "bugprone-redundant-branch-condition clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/redundant-branch-condition.html)" }, "defaultConfiguration": { "enabled": true, @@ -70268,13 +72630,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneRedundantBranchCondition", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -70292,8 +72655,8 @@ "text": "Possible unintended bypass of lifetime check of underlying Unity engine object (null propagating on a type deriving from 'UnityEngine.Object' bypasses the lifetime check on the underlying Unity engine object)" }, "fullDescription": { - "text": "The null propagating operator does not call the custom equality operators defined on 'UnityEngine.Object', which will check to see if the underlying Unity engine object has been destroyed. Prefer an explicit null comparison or implicit bool comparison if the lifetime check is intended, or explicitly use 'object.ReferenceEquals()' for a standard (and quicker) CLR null check. Learn more...", - "markdown": "The null propagating operator does not call the custom equality operators defined on 'UnityEngine.Object', which will check to see if the underlying Unity engine object has been destroyed. Prefer an explicit null comparison or implicit bool comparison if the lifetime check is intended, or explicitly use 'object.ReferenceEquals()' for a standard (and quicker) CLR null check. [Learn more...](https://github.com/JetBrains/resharper-unity/wiki/Possible-unintended-bypass-of-lifetime-check-of-underlying-Unity-engine-object)" + "text": "The null propagating operator does not call custom equality operators defined on 'UnityEngine.Object'. These operators check if the underlying Unity engine object has been destroyed. Prefer an explicit null comparison or implicit bool comparison if the lifetime check is intended, or explicitly use 'object.ReferenceEquals()' for a standard (and quicker) CLR null check. Learn more...", + "markdown": "The null propagating operator does not call custom equality operators defined on 'UnityEngine.Object'. These operators check if the underlying Unity engine object has been destroyed. Prefer an explicit null comparison or implicit bool comparison if the lifetime check is intended, or explicitly use 'object.ReferenceEquals()' for a standard (and quicker) CLR null check. [Learn more...](https://github.com/JetBrains/resharper-unity/wiki/Possible-unintended-bypass-of-lifetime-check-of-underlying-Unity-engine-object)" }, "defaultConfiguration": { "enabled": false, @@ -70301,14 +72664,15 @@ "parameters": { "suppressToolId": "Unity.NoNullPropagation", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity", - "index": 19, + "index": 18, "toolComponent": { "name": "QDNET" } @@ -70334,14 +72698,15 @@ "parameters": { "suppressToolId": "PublicConstructorInAbstractClass", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -70367,7 +72732,8 @@ "parameters": { "suppressToolId": "RedundantRangeBound", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -70392,7 +72758,7 @@ }, "fullDescription": { "text": "abseil-duration-unnecessary-conversion clang-tidy check · Learn more", - "markdown": "abseil-duration-unnecessary-conversion clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/duration-unnecessary-conversion.html)" + "markdown": "abseil-duration-unnecessary-conversion clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/duration-unnecessary-conversion.html)" }, "defaultConfiguration": { "enabled": false, @@ -70400,13 +72766,14 @@ "parameters": { "suppressToolId": "CppClangTidyAbseilDurationUnnecessaryConversion", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -70425,7 +72792,7 @@ }, "fullDescription": { "text": "-Wreserved-id-macro clang diagnostic · Learn more", - "markdown": "-Wreserved-id-macro clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wreserved-id-macro)" + "markdown": "-Wreserved-id-macro clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wreserved-id-macro)" }, "defaultConfiguration": { "enabled": true, @@ -70433,13 +72800,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticReservedIdMacro", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -70466,13 +72834,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerCoreCallAndMessageModeling", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -70499,14 +72868,15 @@ "parameters": { "suppressToolId": "Xaml.RedundantGridDefinitions", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "XAML/Redundancies in Code", - "index": 71, + "index": 77, "toolComponent": { "name": "QDNET" } @@ -70524,7 +72894,7 @@ }, "fullDescription": { "text": "-Wc++17-compat-pedantic clang diagnostic · Learn more", - "markdown": "-Wc++17-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-17-compat-pedantic)" + "markdown": "-Wc++17-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-17-compat-pedantic)" }, "defaultConfiguration": { "enabled": false, @@ -70532,13 +72902,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCpp17CompatPedantic", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -70565,7 +72936,8 @@ "parameters": { "suppressToolId": "IndexingByInvalidRange", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -70590,7 +72962,7 @@ }, "fullDescription": { "text": "-Wtautological-constant-compare clang diagnostic · Learn more", - "markdown": "-Wtautological-constant-compare clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wtautological-constant-compare)" + "markdown": "-Wtautological-constant-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtautological-constant-compare)" }, "defaultConfiguration": { "enabled": true, @@ -70598,13 +72970,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticTautologicalConstantCompare", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -70623,7 +72996,7 @@ }, "fullDescription": { "text": "-Waddress-of-temporary clang diagnostic · Learn more", - "markdown": "-Waddress-of-temporary clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#waddress-of-temporary)" + "markdown": "-Waddress-of-temporary clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#waddress-of-temporary)" }, "defaultConfiguration": { "enabled": true, @@ -70631,13 +73004,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticAddressOfTemporary", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -70656,7 +73030,7 @@ }, "fullDescription": { "text": "-Wduplicate-method-match clang diagnostic · Learn more", - "markdown": "-Wduplicate-method-match clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wduplicate-method-match)" + "markdown": "-Wduplicate-method-match clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wduplicate-method-match)" }, "defaultConfiguration": { "enabled": true, @@ -70664,13 +73038,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDuplicateMethodMatch", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -70697,7 +73072,8 @@ "parameters": { "suppressToolId": "UseNegatedPatternMatching", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -70730,7 +73106,8 @@ "parameters": { "suppressToolId": "RedundantToStringCallForValueType", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -70755,7 +73132,7 @@ }, "fullDescription": { "text": "-Wframework-include-private-from-public clang diagnostic · Learn more", - "markdown": "-Wframework-include-private-from-public clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wframework-include-private-from-public)" + "markdown": "-Wframework-include-private-from-public clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wframework-include-private-from-public)" }, "defaultConfiguration": { "enabled": true, @@ -70763,13 +73140,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticFrameworkIncludePrivateFromPublic", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -70796,14 +73174,15 @@ "parameters": { "suppressToolId": "StringCompareIsCultureSpecific.6", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -70829,14 +73208,15 @@ "parameters": { "suppressToolId": "StringCompareIsCultureSpecific.4", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -70862,14 +73242,15 @@ "parameters": { "suppressToolId": "StringCompareIsCultureSpecific.5", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -70895,14 +73276,15 @@ "parameters": { "suppressToolId": "StringCompareIsCultureSpecific.2", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -70928,14 +73310,15 @@ "parameters": { "suppressToolId": "StringCompareIsCultureSpecific.3", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -70953,7 +73336,7 @@ }, "fullDescription": { "text": "bugprone-infinite-loop clang-tidy check · Learn more", - "markdown": "bugprone-infinite-loop clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/infinite-loop.html)" + "markdown": "bugprone-infinite-loop clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/infinite-loop.html)" }, "defaultConfiguration": { "enabled": true, @@ -70961,13 +73344,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneInfiniteLoop", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -70994,14 +73378,15 @@ "parameters": { "suppressToolId": "StringCompareIsCultureSpecific.1", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -71027,14 +73412,15 @@ "parameters": { "suppressToolId": "Xaml.XamlDuplicateDeviceFamilyTypeViewHighlighting", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "XAML/Potential Code Quality Issues", - "index": 44, + "index": 45, "toolComponent": { "name": "QDNET" } @@ -71052,7 +73438,7 @@ }, "fullDescription": { "text": "-Wsuggest-destructor-override clang diagnostic · Learn more", - "markdown": "-Wsuggest-destructor-override clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wsuggest-destructor-override)" + "markdown": "-Wsuggest-destructor-override clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wsuggest-destructor-override)" }, "defaultConfiguration": { "enabled": false, @@ -71060,13 +73446,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticSuggestDestructorOverride", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -71093,14 +73480,15 @@ "parameters": { "suppressToolId": "Unity.InefficientMultiplicationOrder", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity Performance Inspections", - "index": 115, + "index": 128, "toolComponent": { "name": "QDNET" } @@ -71126,7 +73514,8 @@ "parameters": { "suppressToolId": "NUnit.NoValuesProvided", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -71159,13 +73548,14 @@ "parameters": { "suppressToolId": "CppVirtualFunctionInFinalClass", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -71192,7 +73582,8 @@ "parameters": { "suppressToolId": "CA2200", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -71225,7 +73616,8 @@ "parameters": { "suppressToolId": "CA2201", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -71243,6 +73635,40 @@ } ] }, + { + "id": "AsmDefErrors", + "shortDescription": { + "text": "AsmDef Errors" + }, + "fullDescription": { + "text": "AsmDef Errors", + "markdown": "AsmDef Errors" + }, + "defaultConfiguration": { + "enabled": false, + "level": "error", + "parameters": { + "suppressToolId": "AsmDefErrors", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Non configurable", + "index": 52, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "SuggestVarOrType_BuiltInTypes", "shortDescription": { @@ -71258,7 +73684,8 @@ "parameters": { "suppressToolId": "SuggestVarOrType_BuiltInTypes", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -71291,7 +73718,8 @@ "parameters": { "suppressToolId": "CA2207", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -71316,7 +73744,7 @@ }, "fullDescription": { "text": "hicpp-no-assembler clang-tidy check · Learn more", - "markdown": "hicpp-no-assembler clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/no-assembler.html)" + "markdown": "hicpp-no-assembler clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/no-assembler.html)" }, "defaultConfiguration": { "enabled": false, @@ -71324,13 +73752,14 @@ "parameters": { "suppressToolId": "CppClangTidyHicppNoAssembler", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -71357,7 +73786,8 @@ "parameters": { "suppressToolId": "CA2208", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -71390,14 +73820,15 @@ "parameters": { "suppressToolId": "IgnoredDirective", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "T4/T4", - "index": 106, + "index": 116, "toolComponent": { "name": "QDNET" } @@ -71423,14 +73854,15 @@ "parameters": { "suppressToolId": "MultipleNullableAttributesUsage", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -71447,8 +73879,8 @@ "text": "Parameter can be made pointer/reference to const" }, "fullDescription": { - "text": "Parameter can be made pointer/reference to const", - "markdown": "Parameter can be made pointer/reference to const" + "text": "Parameter can be made pointer/reference to const Learn more...", + "markdown": "Parameter can be made pointer/reference to const [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rconst-ref)" }, "defaultConfiguration": { "enabled": true, @@ -71456,14 +73888,15 @@ "parameters": { "suppressToolId": "CppParameterMayBeConstPtrOrRef", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Common Practices and Code Improvements", - "index": 17, + "id": "C_C++/Common Practices and Code Improvements", + "index": 16, "toolComponent": { "name": "QDNET" } @@ -71481,7 +73914,7 @@ }, "fullDescription": { "text": "performance-inefficient-string-concatenation clang-tidy check · Learn more", - "markdown": "performance-inefficient-string-concatenation clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/performance/inefficient-string-concatenation.html)" + "markdown": "performance-inefficient-string-concatenation clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance/inefficient-string-concatenation.html)" }, "defaultConfiguration": { "enabled": true, @@ -71489,13 +73922,14 @@ "parameters": { "suppressToolId": "CppClangTidyPerformanceInefficientStringConcatenation", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -71514,7 +73948,7 @@ }, "fullDescription": { "text": "-Wcast-qual-unrelated clang diagnostic · Learn more", - "markdown": "-Wcast-qual-unrelated clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wcast-qual-unrelated)" + "markdown": "-Wcast-qual-unrelated clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcast-qual-unrelated)" }, "defaultConfiguration": { "enabled": true, @@ -71522,13 +73956,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCastQualUnrelated", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -71547,7 +73982,7 @@ }, "fullDescription": { "text": "-Wreceiver-forward-class clang diagnostic · Learn more", - "markdown": "-Wreceiver-forward-class clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wreceiver-forward-class)" + "markdown": "-Wreceiver-forward-class clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wreceiver-forward-class)" }, "defaultConfiguration": { "enabled": true, @@ -71555,13 +73990,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticReceiverForwardClass", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -71580,7 +74016,7 @@ }, "fullDescription": { "text": "-Wpointer-sign clang diagnostic · Learn more", - "markdown": "-Wpointer-sign clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpointer-sign)" + "markdown": "-Wpointer-sign clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpointer-sign)" }, "defaultConfiguration": { "enabled": true, @@ -71588,13 +74024,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticPointerSign", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -71613,7 +74050,7 @@ }, "fullDescription": { "text": "-Wunused-macros clang diagnostic · Learn more", - "markdown": "-Wunused-macros clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunused-macros)" + "markdown": "-Wunused-macros clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunused-macros)" }, "defaultConfiguration": { "enabled": true, @@ -71621,13 +74058,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnusedMacros", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -71654,7 +74092,8 @@ "parameters": { "suppressToolId": "ConvertClosureToMethodGroup", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -71687,7 +74126,8 @@ "parameters": { "suppressToolId": "CA2211", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -71720,7 +74160,8 @@ "parameters": { "suppressToolId": "CA2213", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -71745,7 +74186,7 @@ }, "fullDescription": { "text": "-Wbit-int-extension clang diagnostic · Learn more", - "markdown": "-Wbit-int-extension clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wbit-int-extension)" + "markdown": "-Wbit-int-extension clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wbit-int-extension)" }, "defaultConfiguration": { "enabled": true, @@ -71753,13 +74194,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticBitIntExtension", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -71786,7 +74228,8 @@ "parameters": { "suppressToolId": "CA2214", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -71819,7 +74262,8 @@ "parameters": { "suppressToolId": "CA2215", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -71852,7 +74296,8 @@ "parameters": { "suppressToolId": "CA2216", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -71877,7 +74322,7 @@ }, "fullDescription": { "text": "-Wbitfield-enum-conversion clang diagnostic · Learn more", - "markdown": "-Wbitfield-enum-conversion clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wbitfield-enum-conversion)" + "markdown": "-Wbitfield-enum-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wbitfield-enum-conversion)" }, "defaultConfiguration": { "enabled": true, @@ -71885,13 +74330,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticBitfieldEnumConversion", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -71918,7 +74364,8 @@ "parameters": { "suppressToolId": "CA2217", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -71951,7 +74398,8 @@ "parameters": { "suppressToolId": "CA2219", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -71976,7 +74424,7 @@ }, "fullDescription": { "text": "misc-static-assert clang-tidy check · Learn more", - "markdown": "misc-static-assert clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/misc/static-assert.html)" + "markdown": "misc-static-assert clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/static-assert.html)" }, "defaultConfiguration": { "enabled": true, @@ -71984,13 +74432,14 @@ "parameters": { "suppressToolId": "CppClangTidyMiscStaticAssert", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -72017,13 +74466,14 @@ "parameters": { "suppressToolId": "CppBadBracesSpaces", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Formatting", + "id": "C_C++/Formatting", "index": 28, "toolComponent": { "name": "QDNET" @@ -72050,7 +74500,8 @@ "parameters": { "suppressToolId": "VBReplaceWithSingleCallToSingle", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -72075,7 +74526,7 @@ }, "fullDescription": { "text": "readability-operators-representation clang-tidy check · Learn more", - "markdown": "readability-operators-representation clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/operators-representation.html)" + "markdown": "readability-operators-representation clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/operators-representation.html)" }, "defaultConfiguration": { "enabled": true, @@ -72083,13 +74534,14 @@ "parameters": { "suppressToolId": "CppClangTidyReadabilityOperatorsRepresentation", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -72108,7 +74560,7 @@ }, "fullDescription": { "text": "-Wimplicit-function-declaration clang diagnostic · Learn more", - "markdown": "-Wimplicit-function-declaration clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wimplicit-function-declaration)" + "markdown": "-Wimplicit-function-declaration clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wimplicit-function-declaration)" }, "defaultConfiguration": { "enabled": true, @@ -72116,13 +74568,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticImplicitFunctionDeclaration", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -72149,7 +74602,8 @@ "parameters": { "suppressToolId": "AppendToCollectionExpression", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -72174,7 +74628,7 @@ }, "fullDescription": { "text": "-Wcuda-compat clang diagnostic · Learn more", - "markdown": "-Wcuda-compat clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wcuda-compat)" + "markdown": "-Wcuda-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcuda-compat)" }, "defaultConfiguration": { "enabled": false, @@ -72182,13 +74636,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCudaCompat", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -72215,14 +74670,15 @@ "parameters": { "suppressToolId": "Xaml.DuplicateStyleSetter", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "XAML/Potential Code Quality Issues", - "index": 44, + "index": 45, "toolComponent": { "name": "QDNET" } @@ -72248,7 +74704,8 @@ "parameters": { "suppressToolId": "BadExpressionBracesIndent", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -72273,7 +74730,7 @@ }, "fullDescription": { "text": "modernize-use-override clang-tidy check · Learn more", - "markdown": "modernize-use-override clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-override.html)" + "markdown": "modernize-use-override clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-override.html)" }, "defaultConfiguration": { "enabled": false, @@ -72281,13 +74738,14 @@ "parameters": { "suppressToolId": "CppClangTidyModernizeUseOverride", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -72314,14 +74772,15 @@ "parameters": { "suppressToolId": "CppEnforceNestedNamespacesStyle", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Syntax Style", - "index": 83, + "id": "C_C++/Syntax Style", + "index": 91, "toolComponent": { "name": "QDNET" } @@ -72339,7 +74798,7 @@ }, "fullDescription": { "text": "-Wempty-body clang diagnostic · Learn more", - "markdown": "-Wempty-body clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wempty-body)" + "markdown": "-Wempty-body clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wempty-body)" }, "defaultConfiguration": { "enabled": true, @@ -72347,13 +74806,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticEmptyBody", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -72372,7 +74832,7 @@ }, "fullDescription": { "text": "-Wpre-c2x-compat clang diagnostic · Learn more", - "markdown": "-Wpre-c2x-compat clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpre-c2x-compat)" + "markdown": "-Wpre-c2x-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpre-c2x-compat)" }, "defaultConfiguration": { "enabled": false, @@ -72380,13 +74840,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticPreC2xCompat", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -72413,7 +74874,8 @@ "parameters": { "suppressToolId": "BadDeclarationBracesIndent", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -72438,7 +74900,7 @@ }, "fullDescription": { "text": "-Winvalid-noreturn clang diagnostic · Learn more", - "markdown": "-Winvalid-noreturn clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#winvalid-noreturn)" + "markdown": "-Winvalid-noreturn clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winvalid-noreturn)" }, "defaultConfiguration": { "enabled": true, @@ -72446,13 +74908,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticInvalidNoreturn", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -72479,7 +74942,8 @@ "parameters": { "suppressToolId": "CA2225", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -72512,7 +74976,8 @@ "parameters": { "suppressToolId": "LocalVariableHidesMember", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -72545,7 +75010,8 @@ "parameters": { "suppressToolId": "RedundantCaseLabel", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -72578,7 +75044,8 @@ "parameters": { "suppressToolId": "CA2226", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -72611,7 +75078,8 @@ "parameters": { "suppressToolId": "CA2227", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -72644,7 +75112,8 @@ "parameters": { "suppressToolId": "PossibleNullReferenceException", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -72677,7 +75146,8 @@ "parameters": { "suppressToolId": "ZeroIndexFromEnd", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -72710,7 +75180,8 @@ "parameters": { "suppressToolId": "ClassNeverInstantiated.Global", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -72743,14 +75214,15 @@ "parameters": { "suppressToolId": "ObsoleteElement", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "XAML/Compiler Warnings", - "index": 56, + "index": 60, "toolComponent": { "name": "QDNET" } @@ -72776,14 +75248,15 @@ "parameters": { "suppressToolId": "CppUseFamiliarTemplateSyntaxForGenericLambdas", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Common Practices and Code Improvements", - "index": 17, + "id": "C_C++/Common Practices and Code Improvements", + "index": 16, "toolComponent": { "name": "QDNET" } @@ -72809,14 +75282,15 @@ "parameters": { "suppressToolId": "Html.AttributesQuotes", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "HTML/Potential Code Quality Issues", - "index": 51, + "index": 54, "toolComponent": { "name": "QDNET" } @@ -72833,8 +75307,8 @@ "text": "Redundant string interpolation" }, "fullDescription": { - "text": "String interpolation expression without arguments is redundant", - "markdown": "String interpolation expression without arguments is redundant" + "text": "String interpolation expression without arguments is redundant Learn more...", + "markdown": "String interpolation expression without arguments is redundant [Learn more...](https://www.jetbrains.com/help/rider/RedundantStringInterpolation.html)" }, "defaultConfiguration": { "enabled": true, @@ -72842,7 +75316,8 @@ "parameters": { "suppressToolId": "RedundantStringInterpolation", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -72875,13 +75350,14 @@ "parameters": { "suppressToolId": "CppMissingSpace", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Formatting", + "id": "C_C++/Formatting", "index": 28, "toolComponent": { "name": "QDNET" @@ -72893,6 +75369,40 @@ } ] }, + { + "id": "CppClangTidyClangDiagnosticPreC2yCompat", + "shortDescription": { + "text": "pre-c2y-compat clang diagnostic" + }, + "fullDescription": { + "text": "-Wpre-c2y-compat clang diagnostic · Learn more", + "markdown": "-Wpre-c2y-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpre-c2y-compat)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticPreC2yCompat", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppClangTidyAbseilUpgradeDurationConversions", "shortDescription": { @@ -72900,7 +75410,7 @@ }, "fullDescription": { "text": "abseil-upgrade-duration-conversions clang-tidy check · Learn more", - "markdown": "abseil-upgrade-duration-conversions clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/upgrade-duration-conversions.html)" + "markdown": "abseil-upgrade-duration-conversions clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/upgrade-duration-conversions.html)" }, "defaultConfiguration": { "enabled": false, @@ -72908,13 +75418,14 @@ "parameters": { "suppressToolId": "CppClangTidyAbseilUpgradeDurationConversions", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -72941,7 +75452,8 @@ "parameters": { "suppressToolId": "SealedMemberInSealedClass", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -72974,13 +75486,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerSecurityInsecureAPIBcmp", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -73007,7 +75520,8 @@ "parameters": { "suppressToolId": "ConvertIfStatementToNullCoalescingExpression", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -73040,13 +75554,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaRetainCountBase", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -73073,7 +75588,8 @@ "parameters": { "suppressToolId": "CA2231", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -73098,7 +75614,7 @@ }, "fullDescription": { "text": "android-cloexec-memfd-create clang-tidy check · Learn more", - "markdown": "android-cloexec-memfd-create clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-memfd-create.html)" + "markdown": "android-cloexec-memfd-create clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-memfd-create.html)" }, "defaultConfiguration": { "enabled": false, @@ -73106,13 +75622,14 @@ "parameters": { "suppressToolId": "CppClangTidyAndroidCloexecMemfdCreate", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -73131,7 +75648,7 @@ }, "fullDescription": { "text": "bugprone-lambda-function-name clang-tidy check · Learn more", - "markdown": "bugprone-lambda-function-name clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/lambda-function-name.html)" + "markdown": "bugprone-lambda-function-name clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/lambda-function-name.html)" }, "defaultConfiguration": { "enabled": true, @@ -73139,13 +75656,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneLambdaFunctionName", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -73172,7 +75690,8 @@ "parameters": { "suppressToolId": "CA2234", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -73205,7 +75724,8 @@ "parameters": { "suppressToolId": "CA2119", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -73238,14 +75758,49 @@ "parameters": { "suppressToolId": "ScriptTagHasBothSrcAndContentAttributes", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "HTML/Potential Code Quality Issues", - "index": 51, + "index": 54, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticVlaCxxExtension", + "shortDescription": { + "text": "vla-cxx-extension clang diagnostic" + }, + "fullDescription": { + "text": "-Wvla-cxx-extension clang diagnostic · Learn more", + "markdown": "-Wvla-cxx-extension clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wvla-cxx-extension)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticVlaCxxExtension", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, "toolComponent": { "name": "QDNET" } @@ -73263,7 +75818,7 @@ }, "fullDescription": { "text": "-Wunicode-zero-width clang diagnostic · Learn more", - "markdown": "-Wunicode-zero-width clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunicode-zero-width)" + "markdown": "-Wunicode-zero-width clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunicode-zero-width)" }, "defaultConfiguration": { "enabled": true, @@ -73271,13 +75826,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnicodeZeroWidth", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -73304,13 +75860,14 @@ "parameters": { "suppressToolId": "CppInitializedValueIsAlwaysRewritten", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -73325,11 +75882,11 @@ { "id": "PartialMethodParameterNameMismatch", "shortDescription": { - "text": "Parameter name differs in partial method declaration" + "text": "Parameter name differs between partial member declarations" }, "fullDescription": { - "text": "Parameter name differs in partial method declaration Learn more...", - "markdown": "Parameter name differs in partial method declaration [Learn more...](https://www.jetbrains.com/help/rider/PartialMethodParameterNameMismatch.html)" + "text": "Parameter name differs between partial member declarations Learn more...", + "markdown": "Parameter name differs between partial member declarations [Learn more...](https://www.jetbrains.com/help/rider/PartialMethodParameterNameMismatch.html)" }, "defaultConfiguration": { "enabled": true, @@ -73337,7 +75894,8 @@ "parameters": { "suppressToolId": "PartialMethodParameterNameMismatch", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -73362,7 +75920,7 @@ }, "fullDescription": { "text": "cert-fio38-c clang-tidy check · Learn more", - "markdown": "cert-fio38-c clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cert/fio38-c.html)" + "markdown": "cert-fio38-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/fio38-c.html)" }, "defaultConfiguration": { "enabled": false, @@ -73370,13 +75928,14 @@ "parameters": { "suppressToolId": "CppClangTidyCertFio38C", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -73395,7 +75954,7 @@ }, "fullDescription": { "text": "-Wanonymous-pack-parens clang diagnostic · Learn more", - "markdown": "-Wanonymous-pack-parens clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wanonymous-pack-parens)" + "markdown": "-Wanonymous-pack-parens clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wanonymous-pack-parens)" }, "defaultConfiguration": { "enabled": true, @@ -73403,13 +75962,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticAnonymousPackParens", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -73421,6 +75981,40 @@ } ] }, + { + "id": "PossibleMistakenCallToGetType", + "shortDescription": { + "text": "Possible mistaken 'GetType()' invocation" + }, + "fullDescription": { + "text": "Possible mistaken 'GetType()' invocation on 'System.Type' instance Learn more...", + "markdown": "Possible mistaken 'GetType()' invocation on 'System.Type' instance [Learn more...](https://www.jetbrains.com/help/rider/PossibleMistakenCallToGetType.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "PossibleMistakenCallToGetType", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppClangTidyClangDiagnosticUnreachableCodeReturn", "shortDescription": { @@ -73428,7 +76022,7 @@ }, "fullDescription": { "text": "-Wunreachable-code-return clang diagnostic · Learn more", - "markdown": "-Wunreachable-code-return clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunreachable-code-return)" + "markdown": "-Wunreachable-code-return clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunreachable-code-return)" }, "defaultConfiguration": { "enabled": true, @@ -73436,13 +76030,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnreachableCodeReturn", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -73469,13 +76064,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaLoops", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -73493,8 +76089,8 @@ "text": "Special function without noexcept specification" }, "fullDescription": { - "text": "Special function does not have any noexcept specification", - "markdown": "Special function does not have any noexcept specification" + "text": "Special function does not have any noexcept specification Learn more...", + "markdown": "Special function does not have any noexcept specification [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rf-noexcept)" }, "defaultConfiguration": { "enabled": true, @@ -73502,13 +76098,14 @@ "parameters": { "suppressToolId": "CppSpecialFunctionWithoutNoexceptSpecification", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -73535,14 +76132,15 @@ "parameters": { "suppressToolId": "CanSimplifyDictionaryRemovingWithSingleCall", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -73560,7 +76158,7 @@ }, "fullDescription": { "text": "misc-unused-using-decls clang-tidy check · Learn more", - "markdown": "misc-unused-using-decls clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/misc/unused-using-decls.html)" + "markdown": "misc-unused-using-decls clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/unused-using-decls.html)" }, "defaultConfiguration": { "enabled": true, @@ -73568,13 +76166,14 @@ "parameters": { "suppressToolId": "CppClangTidyMiscUnusedUsingDecls", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -73601,13 +76200,14 @@ "parameters": { "suppressToolId": "CppStaticDataMemberInUnnamedStruct", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -73626,7 +76226,7 @@ }, "fullDescription": { "text": "-Wauto-disable-vptr-sanitizer clang diagnostic · Learn more", - "markdown": "-Wauto-disable-vptr-sanitizer clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wauto-disable-vptr-sanitizer)" + "markdown": "-Wauto-disable-vptr-sanitizer clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wauto-disable-vptr-sanitizer)" }, "defaultConfiguration": { "enabled": true, @@ -73634,13 +76234,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticAutoDisableVptrSanitizer", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -73659,7 +76260,7 @@ }, "fullDescription": { "text": "-Wsigned-unsigned-wchar clang diagnostic · Learn more", - "markdown": "-Wsigned-unsigned-wchar clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wsigned-unsigned-wchar)" + "markdown": "-Wsigned-unsigned-wchar clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wsigned-unsigned-wchar)" }, "defaultConfiguration": { "enabled": true, @@ -73667,13 +76268,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticSignedUnsignedWchar", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -73700,13 +76302,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerOsxNumberObjectConversion", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -73733,7 +76336,8 @@ "parameters": { "suppressToolId": "OperatorWithoutMatchedCheckedOperator", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -73758,7 +76362,7 @@ }, "fullDescription": { "text": "bugprone-posix-return clang-tidy check · Learn more", - "markdown": "bugprone-posix-return clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/posix-return.html)" + "markdown": "bugprone-posix-return clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/posix-return.html)" }, "defaultConfiguration": { "enabled": true, @@ -73766,13 +76370,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugpronePosixReturn", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -73799,14 +76404,15 @@ "parameters": { "suppressToolId": "SimplifyLinqExpressionUseAll", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -73832,7 +76438,8 @@ "parameters": { "suppressToolId": "ValueParameterNotUsed", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -73865,14 +76472,15 @@ "parameters": { "suppressToolId": "CppMutableSpecifierOnReferenceMember", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Compiler Warnings", - "index": 69, + "id": "C_C++/Compiler Warnings", + "index": 75, "toolComponent": { "name": "QDNET" } @@ -73889,8 +76497,8 @@ "text": "Redundant 'IEnumerable.Cast' or 'IEnumerable.OfType' call" }, "fullDescription": { - "text": "Redundant 'IEnumerable.Cast' or 'IEnumerable.OfType' call", - "markdown": "Redundant 'IEnumerable.Cast' or 'IEnumerable.OfType' call" + "text": "Redundant 'IEnumerable.Cast' or 'IEnumerable.OfType' call Learn more...", + "markdown": "Redundant 'IEnumerable.Cast' or 'IEnumerable.OfType' call [Learn more...](https://www.jetbrains.com/help/rider/RedundantEnumerableCastCall.html)" }, "defaultConfiguration": { "enabled": true, @@ -73898,7 +76506,8 @@ "parameters": { "suppressToolId": "RedundantEnumerableCastCall", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -73931,13 +76540,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerOptinOsxCocoaLocalizabilityNonLocalizedStringChecker", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -73964,14 +76574,15 @@ "parameters": { "suppressToolId": "RedundantMyBaseQualifier", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "VB.NET/Redundancies in Code", - "index": 88, + "index": 96, "toolComponent": { "name": "QDNET" } @@ -73989,7 +76600,7 @@ }, "fullDescription": { "text": "bugprone-forward-declaration-namespace clang-tidy check · Learn more", - "markdown": "bugprone-forward-declaration-namespace clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/forward-declaration-namespace.html)" + "markdown": "bugprone-forward-declaration-namespace clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/forward-declaration-namespace.html)" }, "defaultConfiguration": { "enabled": true, @@ -73997,13 +76608,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneForwardDeclarationNamespace", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -74030,14 +76642,15 @@ "parameters": { "suppressToolId": "Unity.PreferGuidReference", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity", - "index": 19, + "index": 18, "toolComponent": { "name": "QDNET" } @@ -74055,7 +76668,7 @@ }, "fullDescription": { "text": "cert-dcl37-c clang-tidy check · Learn more", - "markdown": "cert-dcl37-c clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cert/dcl37-c.html)" + "markdown": "cert-dcl37-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/dcl37-c.html)" }, "defaultConfiguration": { "enabled": false, @@ -74063,13 +76676,14 @@ "parameters": { "suppressToolId": "CppClangTidyCertDcl37C", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -74088,7 +76702,7 @@ }, "fullDescription": { "text": "-Wundefined-var-template clang diagnostic · Learn more", - "markdown": "-Wundefined-var-template clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wundefined-var-template)" + "markdown": "-Wundefined-var-template clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wundefined-var-template)" }, "defaultConfiguration": { "enabled": true, @@ -74096,13 +76710,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUndefinedVarTemplate", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -74129,14 +76744,15 @@ "parameters": { "suppressToolId": "ReplaceWithFirstOrDefault.1", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -74150,11 +76766,11 @@ { "id": "BitwiseOperatorOnEnumWithoutFlags", "shortDescription": { - "text": "Bitwise operation on enum is not marked by [Flags] attribute" + "text": "Bitwise operation on enum that is not marked by the [Flags] attribute" }, "fullDescription": { - "text": "Bitwise operation on enum is not marked by [Flags] attribute", - "markdown": "Bitwise operation on enum is not marked by \\[Flags\\] attribute" + "text": "Bitwise operation on enum that is not marked by the [Flags] attribute Learn more...", + "markdown": "Bitwise operation on enum that is not marked by the \\[Flags\\] attribute [Learn more...](https://www.jetbrains.com/help/rider/BitwiseOperatorOnEnumWithoutFlags.html)" }, "defaultConfiguration": { "enabled": true, @@ -74162,7 +76778,8 @@ "parameters": { "suppressToolId": "BitwiseOperatorOnEnumWithoutFlags", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -74195,14 +76812,15 @@ "parameters": { "suppressToolId": "Asp.ContentPlaceholderNotResolved", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "Aspx/Potential Code Quality Issues", - "index": 60, + "index": 64, "toolComponent": { "name": "QDNET" } @@ -74228,14 +76846,15 @@ "parameters": { "suppressToolId": "RouteTemplates.OptionalParameterMustBeAtTheEndOfSegment", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "ASP.NET route templates/Code Notification", - "index": 47, + "index": 48, "toolComponent": { "name": "QDNET" } @@ -74261,7 +76880,8 @@ "parameters": { "suppressToolId": "UnusedVariable", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -74294,14 +76914,15 @@ "parameters": { "suppressToolId": "ReplaceWithFirstOrDefault.3", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -74319,7 +76940,7 @@ }, "fullDescription": { "text": "abseil-duration-addition clang-tidy check · Learn more", - "markdown": "abseil-duration-addition clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/duration-addition.html)" + "markdown": "abseil-duration-addition clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/duration-addition.html)" }, "defaultConfiguration": { "enabled": false, @@ -74327,13 +76948,14 @@ "parameters": { "suppressToolId": "CppClangTidyAbseilDurationAddition", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -74360,7 +76982,8 @@ "parameters": { "suppressToolId": "RedundantArgumentDefaultValue", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -74393,14 +77016,15 @@ "parameters": { "suppressToolId": "ReplaceWithFirstOrDefault.2", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -74426,14 +77050,15 @@ "parameters": { "suppressToolId": "ReplaceWithFirstOrDefault.4", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -74459,7 +77084,8 @@ "parameters": { "suppressToolId": "PatternAlwaysMatches", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -74492,7 +77118,8 @@ "parameters": { "suppressToolId": "BadParensSpaces", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -74516,8 +77143,8 @@ "text": "Redundant type arguments of method" }, "fullDescription": { - "text": "Specification of method type arguments is redundant because they are inferred from argument types", - "markdown": "Specification of method type arguments is redundant because they are inferred from argument types" + "text": "Specification of method type arguments is redundant because they are inferred from argument types Learn more...", + "markdown": "Specification of method type arguments is redundant because they are inferred from argument types [Learn more...](https://www.jetbrains.com/help/rider/RedundantTypeArgumentsOfMethod.html)" }, "defaultConfiguration": { "enabled": true, @@ -74525,7 +77152,8 @@ "parameters": { "suppressToolId": "RedundantTypeArgumentsOfMethod", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -74558,13 +77186,14 @@ "parameters": { "suppressToolId": "CppLambdaCaptureNeverUsed", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -74591,13 +77220,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerUnixMallocSizeof", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -74624,7 +77254,8 @@ "parameters": { "suppressToolId": "CA2153", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -74649,7 +77280,7 @@ }, "fullDescription": { "text": "-Wmethod-signatures clang diagnostic · Learn more", - "markdown": "-Wmethod-signatures clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmethod-signatures)" + "markdown": "-Wmethod-signatures clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmethod-signatures)" }, "defaultConfiguration": { "enabled": true, @@ -74657,13 +77288,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMethodSignatures", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -74690,7 +77322,8 @@ "parameters": { "suppressToolId": "SuspiciousMathSignMethod", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -74723,13 +77356,14 @@ "parameters": { "suppressToolId": "CppMsExtAddressOfClassRValue", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -74748,7 +77382,7 @@ }, "fullDescription": { "text": "-Wfuture-attribute-extensions clang diagnostic · Learn more", - "markdown": "-Wfuture-attribute-extensions clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wfuture-attribute-extensions)" + "markdown": "-Wfuture-attribute-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wfuture-attribute-extensions)" }, "defaultConfiguration": { "enabled": true, @@ -74756,13 +77390,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticFutureAttributeExtensions", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -74789,13 +77424,14 @@ "parameters": { "suppressToolId": "CppUENonExistentInputAxis", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Unreal Engine", + "id": "C_C++/Unreal Engine", "index": 6, "toolComponent": { "name": "QDNET" @@ -74807,14 +77443,48 @@ } ] }, + { + "id": "CppClangTidyModernizeUseStartsEndsWith", + "shortDescription": { + "text": "modernize-use-starts-ends-with clang-tidy check" + }, + "fullDescription": { + "text": "modernize-use-starts-ends-with clang-tidy check · Learn more", + "markdown": "modernize-use-starts-ends-with clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-starts-ends-with.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyModernizeUseStartsEndsWith", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "AllUnderscoreLocalParameterName", "shortDescription": { "text": "Potentially misleading parameter name in lambda or local function" }, "fullDescription": { - "text": "A name that consists of the '_' characters can be misleading for parameters that have usages, because such names are typically reserved for unused parameters", - "markdown": "A name that consists of the '_' characters can be misleading for parameters that have usages, because such names are typically reserved for unused parameters" + "text": "A name that consists of the '_' characters can be misleading for parameters that have usages, because such names are typically reserved for unused parameters Learn more...", + "markdown": "A name that consists of the '_' characters can be misleading for parameters that have usages, because such names are typically reserved for unused parameters [Learn more...](https://www.jetbrains.com/help/rider/AllUnderscoreLocalParameterName.html)" }, "defaultConfiguration": { "enabled": true, @@ -74822,7 +77492,8 @@ "parameters": { "suppressToolId": "AllUnderscoreLocalParameterName", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -74840,6 +77511,40 @@ } ] }, + { + "id": "StructLacksIEquatable.Global", + "shortDescription": { + "text": "Struct lacks 'IEquatable' implementation (non-private accessibility)" + }, + "fullDescription": { + "text": "Struct overrides equality members but lacks an 'IEquatable' implementation. To prevent boxing in a generic context, implement 'IEquatable'. This inspection only triggers when the struct or its containing type (such as record) is actually used for equality comparisons in the solution. Learn more...", + "markdown": "Struct overrides equality members but lacks an 'IEquatable' implementation. To prevent boxing in a generic context, implement 'IEquatable'. This inspection only triggers when the struct or its containing type (such as record) is actually used for equality comparisons in the solution. [Learn more...](https://www.jetbrains.com/help/rider/StructLacksIEquatable.Global.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "StructLacksIEquatable.Global", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 12, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppBadNamespaceBracesIndent", "shortDescription": { @@ -74855,13 +77560,14 @@ "parameters": { "suppressToolId": "CppBadNamespaceBracesIndent", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Formatting", + "id": "C_C++/Formatting", "index": 28, "toolComponent": { "name": "QDNET" @@ -74888,7 +77594,8 @@ "parameters": { "suppressToolId": "EnforceWhileStatementBraces", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -74913,7 +77620,7 @@ }, "fullDescription": { "text": "-Wempty-translation-unit clang diagnostic · Learn more", - "markdown": "-Wempty-translation-unit clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wempty-translation-unit)" + "markdown": "-Wempty-translation-unit clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wempty-translation-unit)" }, "defaultConfiguration": { "enabled": true, @@ -74921,13 +77628,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticEmptyTranslationUnit", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -74946,7 +77654,7 @@ }, "fullDescription": { "text": "-Warray-bounds clang diagnostic · Learn more", - "markdown": "-Warray-bounds clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#warray-bounds)" + "markdown": "-Warray-bounds clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#warray-bounds)" }, "defaultConfiguration": { "enabled": true, @@ -74954,13 +77662,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticArrayBounds", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -74979,7 +77688,7 @@ }, "fullDescription": { "text": "-Wmicrosoft-void-pseudo-dtor clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-void-pseudo-dtor clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-void-pseudo-dtor)" + "markdown": "-Wmicrosoft-void-pseudo-dtor clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-void-pseudo-dtor)" }, "defaultConfiguration": { "enabled": true, @@ -74987,13 +77696,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftVoidPseudoDtor", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -75020,7 +77730,8 @@ "parameters": { "suppressToolId": "MergeCastWithTypeCheck", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -75053,7 +77764,8 @@ "parameters": { "suppressToolId": "IntVariableOverflow", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -75086,7 +77798,8 @@ "parameters": { "suppressToolId": "SuspiciousLockOverSynchronizationPrimitive", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -75111,7 +77824,7 @@ }, "fullDescription": { "text": "google-readability-namespace-comments clang-tidy check · Learn more", - "markdown": "google-readability-namespace-comments clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/google/readability-namespace-comments.html)" + "markdown": "google-readability-namespace-comments clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/readability-namespace-comments.html)" }, "defaultConfiguration": { "enabled": false, @@ -75119,13 +77832,14 @@ "parameters": { "suppressToolId": "CppClangTidyGoogleReadabilityNamespaceComments", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -75144,7 +77858,7 @@ }, "fullDescription": { "text": "cert-str34-c clang-tidy check · Learn more", - "markdown": "cert-str34-c clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cert/str34-c.html)" + "markdown": "cert-str34-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/str34-c.html)" }, "defaultConfiguration": { "enabled": false, @@ -75152,13 +77866,14 @@ "parameters": { "suppressToolId": "CppClangTidyCertStr34C", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -75185,7 +77900,8 @@ "parameters": { "suppressToolId": "UnusedTypeParameter", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -75210,7 +77926,7 @@ }, "fullDescription": { "text": "-Wdollar-in-identifier-extension clang diagnostic · Learn more", - "markdown": "-Wdollar-in-identifier-extension clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdollar-in-identifier-extension)" + "markdown": "-Wdollar-in-identifier-extension clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdollar-in-identifier-extension)" }, "defaultConfiguration": { "enabled": true, @@ -75218,13 +77934,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDollarInIdentifierExtension", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -75251,13 +77968,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerOsxCoreFoundationCFError", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -75284,14 +78002,15 @@ "parameters": { "suppressToolId": "ReplaceWithStringIsNullOrEmpty", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -75317,14 +78036,15 @@ "parameters": { "suppressToolId": "NegativeEqualityExpression", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -75350,13 +78070,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerSecurityInsecureAPIGetpw", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -75371,11 +78092,11 @@ { "id": "CppUseStructuredBinding", "shortDescription": { - "text": "Structured binding can be used" + "text": "Structured bindings can be used" }, "fullDescription": { - "text": "Structured binding can be used", - "markdown": "Structured binding can be used" + "text": "Structured bindings can be used", + "markdown": "Structured bindings can be used" }, "defaultConfiguration": { "enabled": true, @@ -75383,14 +78104,15 @@ "parameters": { "suppressToolId": "CppUseStructuredBinding", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Common Practices and Code Improvements", - "index": 17, + "id": "C_C++/Common Practices and Code Improvements", + "index": 16, "toolComponent": { "name": "QDNET" } @@ -75416,14 +78138,15 @@ "parameters": { "suppressToolId": "WebConfig.WebConfigPathWarning", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "Web.Config/Potential Code Quality Issues", - "index": 75, + "index": 82, "toolComponent": { "name": "QDNET" } @@ -75441,7 +78164,7 @@ }, "fullDescription": { "text": "-Wgnu-imaginary-constant clang diagnostic · Learn more", - "markdown": "-Wgnu-imaginary-constant clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wgnu-imaginary-constant)" + "markdown": "-Wgnu-imaginary-constant clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-imaginary-constant)" }, "defaultConfiguration": { "enabled": true, @@ -75449,13 +78172,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticGnuImaginaryConstant", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -75482,7 +78206,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8714", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -75507,7 +78232,7 @@ }, "fullDescription": { "text": "android-cloexec-open clang-tidy check · Learn more", - "markdown": "android-cloexec-open clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-open.html)" + "markdown": "android-cloexec-open clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-open.html)" }, "defaultConfiguration": { "enabled": false, @@ -75515,13 +78240,14 @@ "parameters": { "suppressToolId": "CppClangTidyAndroidCloexecOpen", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -75540,7 +78266,7 @@ }, "fullDescription": { "text": "readability-function-size clang-tidy check · Learn more", - "markdown": "readability-function-size clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/function-size.html)" + "markdown": "readability-function-size clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/function-size.html)" }, "defaultConfiguration": { "enabled": false, @@ -75548,13 +78274,14 @@ "parameters": { "suppressToolId": "CppClangTidyReadabilityFunctionSize", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -75573,7 +78300,7 @@ }, "fullDescription": { "text": "-Wunsupported-gpopt clang diagnostic · Learn more", - "markdown": "-Wunsupported-gpopt clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunsupported-gpopt)" + "markdown": "-Wunsupported-gpopt clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunsupported-gpopt)" }, "defaultConfiguration": { "enabled": true, @@ -75581,13 +78308,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnsupportedGpopt", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -75606,7 +78334,7 @@ }, "fullDescription": { "text": "-Wunused-property-ivar clang diagnostic · Learn more", - "markdown": "-Wunused-property-ivar clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunused-property-ivar)" + "markdown": "-Wunused-property-ivar clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunused-property-ivar)" }, "defaultConfiguration": { "enabled": true, @@ -75614,13 +78342,48 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnusedPropertyIvar", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticCpp23Compat", + "shortDescription": { + "text": "c++23-compat clang diagnostic" + }, + "fullDescription": { + "text": "-Wc++23-compat clang diagnostic · Learn more", + "markdown": "-Wc++23-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-23-compat)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticCpp23Compat", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -75639,7 +78402,7 @@ }, "fullDescription": { "text": "abseil-duration-division clang-tidy check · Learn more", - "markdown": "abseil-duration-division clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/duration-division.html)" + "markdown": "abseil-duration-division clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/duration-division.html)" }, "defaultConfiguration": { "enabled": false, @@ -75647,13 +78410,14 @@ "parameters": { "suppressToolId": "CppClangTidyAbseilDurationDivision", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -75672,7 +78436,7 @@ }, "fullDescription": { "text": "-Wshift-overflow clang diagnostic · Learn more", - "markdown": "-Wshift-overflow clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wshift-overflow)" + "markdown": "-Wshift-overflow clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wshift-overflow)" }, "defaultConfiguration": { "enabled": true, @@ -75680,13 +78444,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticShiftOverflow", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -75713,7 +78478,8 @@ "parameters": { "suppressToolId": "ArrangeLocalFunctionBody", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -75738,7 +78504,7 @@ }, "fullDescription": { "text": "-Wunused-result clang diagnostic · Learn more", - "markdown": "-Wunused-result clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunused-result)" + "markdown": "-Wunused-result clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunused-result)" }, "defaultConfiguration": { "enabled": false, @@ -75746,13 +78512,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnusedResult", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -75764,6 +78531,40 @@ } ] }, + { + "id": "ShaderLabWarnings", + "shortDescription": { + "text": "ShaderLab Warnings" + }, + "fullDescription": { + "text": "ShaderLab Warnings", + "markdown": "ShaderLab Warnings" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "ShaderLabWarnings", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "ShaderLab/Non configurable", + "index": 150, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "NUnit.TestCaseSourceMustBeStatic", "shortDescription": { @@ -75779,7 +78580,8 @@ "parameters": { "suppressToolId": "NUnit.TestCaseSourceMustBeStatic", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -75804,7 +78606,7 @@ }, "fullDescription": { "text": "-Wdocumentation clang diagnostic · Learn more", - "markdown": "-Wdocumentation clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdocumentation)" + "markdown": "-Wdocumentation clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdocumentation)" }, "defaultConfiguration": { "enabled": false, @@ -75812,13 +78614,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDocumentation", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -75845,14 +78648,15 @@ "parameters": { "suppressToolId": "SimplifyLinqExpressionUseAny", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -75878,14 +78682,49 @@ "parameters": { "suppressToolId": "Unity.InefficientMultidimensionalArrayUsage", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity Performance Inspections", - "index": 115, + "index": 128, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticPtrauthNullPointers", + "shortDescription": { + "text": "ptrauth-null-pointers clang diagnostic" + }, + "fullDescription": { + "text": "-Wptrauth-null-pointers clang diagnostic · Learn more", + "markdown": "-Wptrauth-null-pointers clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wptrauth-null-pointers)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticPtrauthNullPointers", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, "toolComponent": { "name": "QDNET" } @@ -75903,7 +78742,7 @@ }, "fullDescription": { "text": "bugprone-use-after-move clang-tidy check · Learn more", - "markdown": "bugprone-use-after-move clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/use-after-move.html)" + "markdown": "bugprone-use-after-move clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/use-after-move.html)" }, "defaultConfiguration": { "enabled": true, @@ -75911,13 +78750,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneUseAfterMove", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -75944,7 +78784,8 @@ "parameters": { "suppressToolId": "ConvertToAutoPropertyWithPrivateSetter", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -75977,7 +78818,8 @@ "parameters": { "suppressToolId": "ConvertToStaticClass", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -76010,14 +78852,15 @@ "parameters": { "suppressToolId": "ReplaceWithSingleCallToLast", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -76035,7 +78878,7 @@ }, "fullDescription": { "text": "-Wc++14-compat clang diagnostic · Learn more", - "markdown": "-Wc++14-compat clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-14-compat)" + "markdown": "-Wc++14-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-14-compat)" }, "defaultConfiguration": { "enabled": false, @@ -76043,13 +78886,48 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCpp14Compat", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticInstallapiViolation", + "shortDescription": { + "text": "installapi-violation clang diagnostic" + }, + "fullDescription": { + "text": "-Winstallapi-violation clang diagnostic · Learn more", + "markdown": "-Winstallapi-violation clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winstallapi-violation)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticInstallapiViolation", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -76076,14 +78954,15 @@ "parameters": { "suppressToolId": "Unity.PerformanceCriticalCodeNullComparison", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity Performance Inspections", - "index": 115, + "index": 128, "toolComponent": { "name": "QDNET" } @@ -76109,7 +78988,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8777", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -76142,7 +79022,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8776", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -76175,7 +79056,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8775", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -76208,7 +79090,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8774", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -76233,7 +79116,7 @@ }, "fullDescription": { "text": "-Wmicrosoft-fixed-enum clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-fixed-enum clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-fixed-enum)" + "markdown": "-Wmicrosoft-fixed-enum clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-fixed-enum)" }, "defaultConfiguration": { "enabled": true, @@ -76241,13 +79124,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftFixedEnum", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -76259,6 +79143,40 @@ } ] }, + { + "id": "CppClangTidyBugproneUnusedLocalNonTrivialVariable", + "shortDescription": { + "text": "bugprone-unused-local-non-trivial-variable clang-tidy check" + }, + "fullDescription": { + "text": "bugprone-unused-local-non-trivial-variable clang-tidy check · Learn more", + "markdown": "bugprone-unused-local-non-trivial-variable clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/unused-local-non-trivial-variable.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyBugproneUnusedLocalNonTrivialVariable", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CSharpWarnings__CS8770", "shortDescription": { @@ -76274,7 +79192,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8770", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -76307,7 +79226,8 @@ "parameters": { "suppressToolId": "BadCommaSpaces", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -76340,7 +79260,8 @@ "parameters": { "suppressToolId": "RedundantAbstractModifier", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -76358,6 +79279,40 @@ } ] }, + { + "id": "CppClangTidyClangDiagnosticCpp23AttributeExtensions", + "shortDescription": { + "text": "c++23-attribute-extensions clang diagnostic" + }, + "fullDescription": { + "text": "-Wc++23-attribute-extensions clang diagnostic · Learn more", + "markdown": "-Wc++23-attribute-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-23-attribute-extensions)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticCpp23AttributeExtensions", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppClangTidyClangDiagnosticBitfieldConstantConversion", "shortDescription": { @@ -76365,7 +79320,7 @@ }, "fullDescription": { "text": "-Wbitfield-constant-conversion clang diagnostic · Learn more", - "markdown": "-Wbitfield-constant-conversion clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wbitfield-constant-conversion)" + "markdown": "-Wbitfield-constant-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wbitfield-constant-conversion)" }, "defaultConfiguration": { "enabled": true, @@ -76373,13 +79328,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticBitfieldConstantConversion", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -76391,6 +79347,40 @@ } ] }, + { + "id": "CppClangTidyBugproneMultiLevelImplicitPointerConversion", + "shortDescription": { + "text": "bugprone-multi-level-implicit-pointer-conversion clang-tidy check" + }, + "fullDescription": { + "text": "bugprone-multi-level-implicit-pointer-conversion clang-tidy check · Learn more", + "markdown": "bugprone-multi-level-implicit-pointer-conversion clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/multi-level-implicit-pointer-conversion.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyBugproneMultiLevelImplicitPointerConversion", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CanSimplifyDictionaryTryGetValueWithGetValueOrDefault", "shortDescription": { @@ -76406,14 +79396,15 @@ "parameters": { "suppressToolId": "CanSimplifyDictionaryTryGetValueWithGetValueOrDefault", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -76439,7 +79430,8 @@ "parameters": { "suppressToolId": "ForeachCanBePartlyConvertedToQueryUsingAnotherGetEnumerator", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -76472,7 +79464,8 @@ "parameters": { "suppressToolId": "MultipleResolveCandidatesInText", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -76505,14 +79498,15 @@ "parameters": { "suppressToolId": "Asp.TagAttributeWithOptionalValue", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "Aspx/Common Practices and Code Improvements", - "index": 128, + "index": 151, "toolComponent": { "name": "QDNET" } @@ -76529,8 +79523,8 @@ "text": "Hiding an uncaptured local declaration" }, "fullDescription": { - "text": "A local declaration inside a lambda hides an uncaptured local declaration", - "markdown": "A local declaration inside a lambda hides an uncaptured local declaration" + "text": "A local declaration inside a lambda hides an uncaptured local declaration Learn more...", + "markdown": "A local declaration inside a lambda hides an uncaptured local declaration [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Res-reuse)" }, "defaultConfiguration": { "enabled": true, @@ -76538,13 +79532,14 @@ "parameters": { "suppressToolId": "CppDeclarationHidesUncapturedLocal", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -76571,14 +79566,49 @@ "parameters": { "suppressToolId": "Xaml.XamlXamarinFormsDataTypeAndBindingContextTypeMismatchedHighlighting", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "XAML/Potential Code Quality Issues", - "index": 44, + "index": 45, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyMiscCoroutineHostileRaii", + "shortDescription": { + "text": "misc-coroutine-hostile-raii clang-tidy check" + }, + "fullDescription": { + "text": "misc-coroutine-hostile-raii clang-tidy check · Learn more", + "markdown": "misc-coroutine-hostile-raii clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/coroutine-hostile-raii.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyMiscCoroutineHostileRaii", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang-Tidy Checks", + "index": 8, "toolComponent": { "name": "QDNET" } @@ -76596,7 +79626,7 @@ }, "fullDescription": { "text": "-Wargument-undefined-behaviour clang diagnostic · Learn more", - "markdown": "-Wargument-undefined-behaviour clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wargument-undefined-behaviour)" + "markdown": "-Wargument-undefined-behaviour clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wargument-undefined-behaviour)" }, "defaultConfiguration": { "enabled": true, @@ -76604,13 +79634,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticArgumentUndefinedBehaviour", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -76629,7 +79660,7 @@ }, "fullDescription": { "text": "-Wtautological-value-range-compare clang diagnostic · Learn more", - "markdown": "-Wtautological-value-range-compare clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wtautological-value-range-compare)" + "markdown": "-Wtautological-value-range-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtautological-value-range-compare)" }, "defaultConfiguration": { "enabled": true, @@ -76637,13 +79668,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticTautologicalValueRangeCompare", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -76670,7 +79702,8 @@ "parameters": { "suppressToolId": "EntityFramework.NPlusOne.Usage", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -76695,7 +79728,7 @@ }, "fullDescription": { "text": "-Wsarif-format-unstable clang diagnostic · Learn more", - "markdown": "-Wsarif-format-unstable clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wsarif-format-unstable)" + "markdown": "-Wsarif-format-unstable clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wsarif-format-unstable)" }, "defaultConfiguration": { "enabled": true, @@ -76703,13 +79736,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticSarifFormatUnstable", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -76728,7 +79762,7 @@ }, "fullDescription": { "text": "bugprone-copy-constructor-init clang-tidy check · Learn more", - "markdown": "bugprone-copy-constructor-init clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/copy-constructor-init.html)" + "markdown": "bugprone-copy-constructor-init clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/copy-constructor-init.html)" }, "defaultConfiguration": { "enabled": true, @@ -76736,13 +79770,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneCopyConstructorInit", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -76754,6 +79789,40 @@ } ] }, + { + "id": "CppClangTidyClangDiagnosticFormatOverflow", + "shortDescription": { + "text": "format-overflow clang diagnostic" + }, + "fullDescription": { + "text": "-Wformat-overflow clang diagnostic · Learn more", + "markdown": "-Wformat-overflow clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wformat-overflow)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticFormatOverflow", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "Web.IgnoredPath", "shortDescription": { @@ -76769,14 +79838,15 @@ "parameters": { "suppressToolId": "Web.IgnoredPath", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "Web.Config/Code Notification", - "index": 86, + "index": 94, "toolComponent": { "name": "QDNET" } @@ -76794,7 +79864,7 @@ }, "fullDescription": { "text": "-Watomic-implicit-seq-cst clang diagnostic · Learn more", - "markdown": "-Watomic-implicit-seq-cst clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#watomic-implicit-seq-cst)" + "markdown": "-Watomic-implicit-seq-cst clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#watomic-implicit-seq-cst)" }, "defaultConfiguration": { "enabled": true, @@ -76802,13 +79872,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticAtomicImplicitSeqCst", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -76835,7 +79906,8 @@ "parameters": { "suppressToolId": "ArgumentsStyleStringLiteral", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -76860,7 +79932,7 @@ }, "fullDescription": { "text": "modernize-return-braced-init-list clang-tidy check · Learn more", - "markdown": "modernize-return-braced-init-list clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/return-braced-init-list.html)" + "markdown": "modernize-return-braced-init-list clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/return-braced-init-list.html)" }, "defaultConfiguration": { "enabled": true, @@ -76868,13 +79940,14 @@ "parameters": { "suppressToolId": "CppClangTidyModernizeReturnBracedInitList", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -76893,7 +79966,7 @@ }, "fullDescription": { "text": "-Wc++20-extensions clang diagnostic · Learn more", - "markdown": "-Wc++20-extensions clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-20-extensions)" + "markdown": "-Wc++20-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-20-extensions)" }, "defaultConfiguration": { "enabled": true, @@ -76901,13 +79974,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCpp20Extensions", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -76926,7 +80000,7 @@ }, "fullDescription": { "text": "cppcoreguidelines-avoid-non-const-global-variables clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-avoid-non-const-global-variables clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/avoid-non-const-global-variables.html)" + "markdown": "cppcoreguidelines-avoid-non-const-global-variables clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/avoid-non-const-global-variables.html)" }, "defaultConfiguration": { "enabled": false, @@ -76934,13 +80008,14 @@ "parameters": { "suppressToolId": "CppClangTidyCppcoreguidelinesAvoidNonConstGlobalVariables", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -76952,6 +80027,40 @@ } ] }, + { + "id": "VariableLengthStringHexEscapeSequence", + "shortDescription": { + "text": "Avoid mixing of variable-length escape sequences and text" + }, + "fullDescription": { + "text": "The '\\x' escape sequence can interpret up to four hexadecimal digits. To prevent confusion when multiple digits follow, consider using a fixed-length sequence, e.g.: '\\u001A' instead of '\\x1A'. Learn more...", + "markdown": "The '\\\\x' escape sequence can interpret up to four hexadecimal digits. To prevent confusion when multiple digits follow, consider using a fixed-length sequence, e.g.: '\\\\u001A' instead of '\\\\x1A'. [Learn more...](https://www.jetbrains.com/help/rider/VariableLengthStringHexEscapeSequence.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "VariableLengthStringHexEscapeSequence", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "RedundantMeQualifier", "shortDescription": { @@ -76967,14 +80076,15 @@ "parameters": { "suppressToolId": "RedundantMeQualifier", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "VB.NET/Redundancies in Code", - "index": 88, + "index": 96, "toolComponent": { "name": "QDNET" } @@ -76992,7 +80102,7 @@ }, "fullDescription": { "text": "-Wcustom-atomic-properties clang diagnostic · Learn more", - "markdown": "-Wcustom-atomic-properties clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wcustom-atomic-properties)" + "markdown": "-Wcustom-atomic-properties clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcustom-atomic-properties)" }, "defaultConfiguration": { "enabled": true, @@ -77000,13 +80110,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCustomAtomicProperties", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -77025,7 +80136,7 @@ }, "fullDescription": { "text": "bugprone-suspicious-string-compare clang-tidy check · Learn more", - "markdown": "bugprone-suspicious-string-compare clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/suspicious-string-compare.html)" + "markdown": "bugprone-suspicious-string-compare clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/suspicious-string-compare.html)" }, "defaultConfiguration": { "enabled": true, @@ -77033,13 +80144,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneSuspiciousStringCompare", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -77066,7 +80178,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS0809", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -77099,7 +80212,8 @@ "parameters": { "suppressToolId": "RedundantCollectionInitializerElementBraces", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -77124,7 +80238,7 @@ }, "fullDescription": { "text": "modernize-shrink-to-fit clang-tidy check · Learn more", - "markdown": "modernize-shrink-to-fit clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/shrink-to-fit.html)" + "markdown": "modernize-shrink-to-fit clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/shrink-to-fit.html)" }, "defaultConfiguration": { "enabled": true, @@ -77132,13 +80246,14 @@ "parameters": { "suppressToolId": "CppClangTidyModernizeShrinkToFit", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -77165,7 +80280,8 @@ "parameters": { "suppressToolId": "UnusedType.Global", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -77198,7 +80314,8 @@ "parameters": { "suppressToolId": "AssignmentIsFullyDiscarded", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -77223,7 +80340,7 @@ }, "fullDescription": { "text": "-Walign-mismatch clang diagnostic · Learn more", - "markdown": "-Walign-mismatch clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#walign-mismatch)" + "markdown": "-Walign-mismatch clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#walign-mismatch)" }, "defaultConfiguration": { "enabled": true, @@ -77231,13 +80348,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticAlignMismatch", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -77264,7 +80382,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8769", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -77297,7 +80416,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8768", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -77330,7 +80450,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8767", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -77355,7 +80476,7 @@ }, "fullDescription": { "text": "bugprone-suspicious-semicolon clang-tidy check · Learn more", - "markdown": "bugprone-suspicious-semicolon clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/suspicious-semicolon.html)" + "markdown": "bugprone-suspicious-semicolon clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/suspicious-semicolon.html)" }, "defaultConfiguration": { "enabled": true, @@ -77363,13 +80484,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneSuspiciousSemicolon", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -77396,7 +80518,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8766", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -77429,7 +80552,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8765", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -77462,7 +80586,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8764", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -77495,7 +80620,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8763", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -77528,7 +80654,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8762", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -77561,13 +80688,14 @@ "parameters": { "suppressToolId": "CppForwardEnumDeclarationWithoutUnderlyingType", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -77586,7 +80714,7 @@ }, "fullDescription": { "text": "-Wpointer-to-int-cast clang diagnostic · Learn more", - "markdown": "-Wpointer-to-int-cast clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpointer-to-int-cast)" + "markdown": "-Wpointer-to-int-cast clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpointer-to-int-cast)" }, "defaultConfiguration": { "enabled": true, @@ -77594,13 +80722,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticPointerToIntCast", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -77627,14 +80756,15 @@ "parameters": { "suppressToolId": "AutoPropertyCanBeMadeGetOnly.Local", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -77660,7 +80790,8 @@ "parameters": { "suppressToolId": "AssignmentInsteadOfDiscard", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -77685,7 +80816,7 @@ }, "fullDescription": { "text": "-Wmain-return-type clang diagnostic · Learn more", - "markdown": "-Wmain-return-type clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmain-return-type)" + "markdown": "-Wmain-return-type clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmain-return-type)" }, "defaultConfiguration": { "enabled": true, @@ -77693,13 +80824,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMainReturnType", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -77726,13 +80858,14 @@ "parameters": { "suppressToolId": "CppRedundantLambdaParameterList", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Redundancies in Code", + "id": "C_C++/Redundancies in Code", "index": 34, "toolComponent": { "name": "QDNET" @@ -77751,7 +80884,7 @@ }, "fullDescription": { "text": "-Wfixed-enum-extension clang diagnostic · Learn more", - "markdown": "-Wfixed-enum-extension clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wfixed-enum-extension)" + "markdown": "-Wfixed-enum-extension clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wfixed-enum-extension)" }, "defaultConfiguration": { "enabled": false, @@ -77759,13 +80892,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticFixedEnumExtension", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -77784,7 +80918,7 @@ }, "fullDescription": { "text": "-Wpre-c++23-compat-pedantic clang diagnostic · Learn more", - "markdown": "-Wpre-c++23-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpre-c-23-compat-pedantic)" + "markdown": "-Wpre-c++23-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpre-c-23-compat-pedantic)" }, "defaultConfiguration": { "enabled": false, @@ -77792,13 +80926,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticPreCpp23CompatPedantic", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -77825,13 +80960,14 @@ "parameters": { "suppressToolId": "CppEqualOperandsInBinaryExpression", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -77849,8 +80985,8 @@ "text": "Declaration and assignment can be joined" }, "fullDescription": { - "text": "Declaration of a variable and assignment to it can be joined", - "markdown": "Declaration of a variable and assignment to it can be joined" + "text": "Declaration of a variable and assignment to it can be joined Learn more...", + "markdown": "Declaration of a variable and assignment to it can be joined [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Res-init)" }, "defaultConfiguration": { "enabled": true, @@ -77858,14 +80994,15 @@ "parameters": { "suppressToolId": "CppJoinDeclarationAndAssignment", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Common Practices and Code Improvements", - "index": 17, + "id": "C_C++/Common Practices and Code Improvements", + "index": 16, "toolComponent": { "name": "QDNET" } @@ -77891,13 +81028,14 @@ "parameters": { "suppressToolId": "CppParameterNamesMismatch", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -77924,13 +81062,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerCoreUndefinedBinaryOperatorResult", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -77957,13 +81096,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaNilArg", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -77990,7 +81130,8 @@ "parameters": { "suppressToolId": "VirtualMemberNeverOverridden.Global", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -78023,13 +81164,14 @@ "parameters": { "suppressToolId": "CppConstParameterInDeclaration", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Redundancies in Code", + "id": "C_C++/Redundancies in Code", "index": 34, "toolComponent": { "name": "QDNET" @@ -78056,13 +81198,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerCplusplusSelfAssignment", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -78089,7 +81232,8 @@ "parameters": { "suppressToolId": "ConvertTypeCheckPatternToNullCheck", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -78122,7 +81266,8 @@ "parameters": { "suppressToolId": "ConvertToVbAutoPropertyWithPrivateSetter", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -78147,7 +81292,7 @@ }, "fullDescription": { "text": "-WNSObject-attribute clang diagnostic · Learn more", - "markdown": "-WNSObject-attribute clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wNSObject-attribute)" + "markdown": "-WNSObject-attribute clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wNSObject-attribute)" }, "defaultConfiguration": { "enabled": true, @@ -78155,13 +81300,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticNSObjectAttribute", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -78176,19 +81322,20 @@ { "id": "AsyncVoidMethod", "shortDescription": { - "text": "Avoid using 'async' methods with the 'void' return type" + "text": "Avoid using 'async' for methods and functions with the 'void' return type" }, "fullDescription": { - "text": "Prefer Task methods over methods returning 'void'", - "markdown": "Prefer Task methods over methods returning 'void'" + "text": "Prefer Task methods over methods returning 'void': any exceptions unhandled by the 'async void' method might lead to the process crash", + "markdown": "Prefer Task methods over methods returning 'void': any exceptions unhandled by the 'async void' method might lead to the process crash" }, "defaultConfiguration": { - "enabled": false, + "enabled": true, "level": "note", "parameters": { "suppressToolId": "AsyncVoidMethod", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -78221,13 +81368,14 @@ "parameters": { "suppressToolId": "CppRedundantBaseClassAccessSpecifier", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Redundancies in Code", + "id": "C_C++/Redundancies in Code", "index": 34, "toolComponent": { "name": "QDNET" @@ -78246,7 +81394,7 @@ }, "fullDescription": { "text": "google-runtime-operator clang-tidy check · Learn more", - "markdown": "google-runtime-operator clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/google/runtime-operator.html)" + "markdown": "google-runtime-operator clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/runtime-operator.html)" }, "defaultConfiguration": { "enabled": true, @@ -78254,13 +81402,14 @@ "parameters": { "suppressToolId": "CppClangTidyGoogleRuntimeOperator", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -78279,7 +81428,7 @@ }, "fullDescription": { "text": "-Wbool-operation clang diagnostic · Learn more", - "markdown": "-Wbool-operation clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wbool-operation)" + "markdown": "-Wbool-operation clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wbool-operation)" }, "defaultConfiguration": { "enabled": true, @@ -78287,13 +81436,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticBoolOperation", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -78312,7 +81462,7 @@ }, "fullDescription": { "text": "-Winclude-next-outside-header clang diagnostic · Learn more", - "markdown": "-Winclude-next-outside-header clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#winclude-next-outside-header)" + "markdown": "-Winclude-next-outside-header clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winclude-next-outside-header)" }, "defaultConfiguration": { "enabled": true, @@ -78320,13 +81470,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticIncludeNextOutsideHeader", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -78353,7 +81504,8 @@ "parameters": { "suppressToolId": "UnusedMember.Global", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -78378,7 +81530,7 @@ }, "fullDescription": { "text": "-Wduplicate-enum clang diagnostic · Learn more", - "markdown": "-Wduplicate-enum clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wduplicate-enum)" + "markdown": "-Wduplicate-enum clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wduplicate-enum)" }, "defaultConfiguration": { "enabled": true, @@ -78386,13 +81538,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDuplicateEnum", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -78410,8 +81563,8 @@ "text": "Polymorphic class with non-virtual public destructor" }, "fullDescription": { - "text": "A polymorphic class with a non-virtual public destructor", - "markdown": "A polymorphic class with a non-virtual public destructor" + "text": "A polymorphic class with a non-virtual public destructor Learn more...", + "markdown": "A polymorphic class with a non-virtual public destructor [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rc-dtor-virtual)" }, "defaultConfiguration": { "enabled": true, @@ -78419,13 +81572,14 @@ "parameters": { "suppressToolId": "CppPolymorphicClassWithNonVirtualPublicDestructor", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -78444,7 +81598,7 @@ }, "fullDescription": { "text": "-Wc++11-compat-deprecated-writable-strings clang diagnostic · Learn more", - "markdown": "-Wc++11-compat-deprecated-writable-strings clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-11-compat-deprecated-writable-strings)" + "markdown": "-Wc++11-compat-deprecated-writable-strings clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-11-compat-deprecated-writable-strings)" }, "defaultConfiguration": { "enabled": false, @@ -78452,13 +81606,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCpp11CompatDeprecatedWritableStrings", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -78485,7 +81640,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8794", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -78518,7 +81674,8 @@ "parameters": { "suppressToolId": "RedundantLinebreak", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -78543,7 +81700,7 @@ }, "fullDescription": { "text": "-Wsync-fetch-and-nand-semantics-changed clang diagnostic · Learn more", - "markdown": "-Wsync-fetch-and-nand-semantics-changed clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wsync-fetch-and-nand-semantics-changed)" + "markdown": "-Wsync-fetch-and-nand-semantics-changed clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wsync-fetch-and-nand-semantics-changed)" }, "defaultConfiguration": { "enabled": true, @@ -78551,13 +81708,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticSyncFetchAndNandSemanticsChanged", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -78584,13 +81742,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerOsxOSObjectRetainCount", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -78617,7 +81776,8 @@ "parameters": { "suppressToolId": "EmptyRegion", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -78650,7 +81810,8 @@ "parameters": { "suppressToolId": "UnusedNullableDirective", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -78683,7 +81844,8 @@ "parameters": { "suppressToolId": "ConvertSwitchStatementToSwitchExpression", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -78708,7 +81870,7 @@ }, "fullDescription": { "text": "-Wunused-function clang diagnostic · Learn more", - "markdown": "-Wunused-function clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunused-function)" + "markdown": "-Wunused-function clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunused-function)" }, "defaultConfiguration": { "enabled": true, @@ -78716,13 +81878,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnusedFunction", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -78749,13 +81912,14 @@ "parameters": { "suppressToolId": "CppRedundantQualifier", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Redundancies in Code", + "id": "C_C++/Redundancies in Code", "index": 34, "toolComponent": { "name": "QDNET" @@ -78782,14 +81946,15 @@ "parameters": { "suppressToolId": "FSharpLambdaCanBeSimplified", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "F#/Redundancies in Code", - "index": 67, + "index": 73, "toolComponent": { "name": "QDNET" } @@ -78807,7 +81972,7 @@ }, "fullDescription": { "text": "-Wread-only-types clang diagnostic · Learn more", - "markdown": "-Wread-only-types clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wread-only-types)" + "markdown": "-Wread-only-types clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wread-only-types)" }, "defaultConfiguration": { "enabled": true, @@ -78815,13 +81980,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticReadOnlyTypes", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -78840,7 +82006,7 @@ }, "fullDescription": { "text": "cert-msc54-cpp clang-tidy check · Learn more", - "markdown": "cert-msc54-cpp clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cert/msc54-cpp.html)" + "markdown": "cert-msc54-cpp clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/msc54-cpp.html)" }, "defaultConfiguration": { "enabled": true, @@ -78848,13 +82014,14 @@ "parameters": { "suppressToolId": "CppClangTidyCertMsc54Cpp", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -78881,14 +82048,15 @@ "parameters": { "suppressToolId": "AnnotateCanBeNullParameter", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -78906,7 +82074,7 @@ }, "fullDescription": { "text": "cert-err52-cpp clang-tidy check · Learn more", - "markdown": "cert-err52-cpp clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cert/err52-cpp.html)" + "markdown": "cert-err52-cpp clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/err52-cpp.html)" }, "defaultConfiguration": { "enabled": false, @@ -78914,13 +82082,14 @@ "parameters": { "suppressToolId": "CppClangTidyCertErr52Cpp", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -78932,6 +82101,40 @@ } ] }, + { + "id": "CppClangTidyClangDiagnosticC2yExtensions", + "shortDescription": { + "text": "c2y-extensions clang diagnostic" + }, + "fullDescription": { + "text": "-Wc2y-extensions clang diagnostic · Learn more", + "markdown": "-Wc2y-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc2y-extensions)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticC2yExtensions", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "MissingHeadAndBodyTags", "shortDescription": { @@ -78947,14 +82150,15 @@ "parameters": { "suppressToolId": "MissingHeadAndBodyTags", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "HTML/Common Practices and Code Improvements", - "index": 68, + "index": 74, "toolComponent": { "name": "QDNET" } @@ -78980,13 +82184,14 @@ "parameters": { "suppressToolId": "CppClassNeverUsed", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -79005,7 +82210,7 @@ }, "fullDescription": { "text": "-Wmissing-prototype-for-cc clang diagnostic · Learn more", - "markdown": "-Wmissing-prototype-for-cc clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmissing-prototype-for-cc)" + "markdown": "-Wmissing-prototype-for-cc clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmissing-prototype-for-cc)" }, "defaultConfiguration": { "enabled": true, @@ -79013,13 +82218,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMissingPrototypeForCc", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -79038,7 +82244,7 @@ }, "fullDescription": { "text": "-Wformat-zero-length clang diagnostic · Learn more", - "markdown": "-Wformat-zero-length clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wformat-zero-length)" + "markdown": "-Wformat-zero-length clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wformat-zero-length)" }, "defaultConfiguration": { "enabled": true, @@ -79046,13 +82252,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticFormatZeroLength", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -79079,14 +82286,15 @@ "parameters": { "suppressToolId": "Xaml.RedundantNamespaceAlias", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "XAML/Redundancies in Code", - "index": 71, + "index": 77, "toolComponent": { "name": "QDNET" } @@ -79104,7 +82312,7 @@ }, "fullDescription": { "text": "-Wavr-rtlib-linking-quirks clang diagnostic · Learn more", - "markdown": "-Wavr-rtlib-linking-quirks clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wavr-rtlib-linking-quirks)" + "markdown": "-Wavr-rtlib-linking-quirks clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wavr-rtlib-linking-quirks)" }, "defaultConfiguration": { "enabled": false, @@ -79112,13 +82320,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticAvrRtlibLinkingQuirks", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -79145,7 +82354,8 @@ "parameters": { "suppressToolId": "VBStringCompareIsCultureSpecific.5", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -79178,7 +82388,8 @@ "parameters": { "suppressToolId": "VBStringCompareIsCultureSpecific.4", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -79211,7 +82422,8 @@ "parameters": { "suppressToolId": "VBStringCompareIsCultureSpecific.6", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -79236,7 +82448,7 @@ }, "fullDescription": { "text": "-Wrestrict-expansion clang diagnostic · Learn more", - "markdown": "-Wrestrict-expansion clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wrestrict-expansion)" + "markdown": "-Wrestrict-expansion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wrestrict-expansion)" }, "defaultConfiguration": { "enabled": true, @@ -79244,13 +82456,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticRestrictExpansion", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -79277,7 +82490,8 @@ "parameters": { "suppressToolId": "VBStringCompareIsCultureSpecific.1", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -79302,7 +82516,7 @@ }, "fullDescription": { "text": "-Wc++98-c++11-compat-binary-literal clang diagnostic · Learn more", - "markdown": "-Wc++98-c++11-compat-binary-literal clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-98-c-11-compat-binary-literal)" + "markdown": "-Wc++98-c++11-compat-binary-literal clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-98-c-11-compat-binary-literal)" }, "defaultConfiguration": { "enabled": false, @@ -79310,13 +82524,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCpp98Cpp11CompatBinaryLiteral", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -79335,7 +82550,7 @@ }, "fullDescription": { "text": "-Wdelete-abstract-non-virtual-dtor clang diagnostic · Learn more", - "markdown": "-Wdelete-abstract-non-virtual-dtor clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdelete-abstract-non-virtual-dtor)" + "markdown": "-Wdelete-abstract-non-virtual-dtor clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdelete-abstract-non-virtual-dtor)" }, "defaultConfiguration": { "enabled": true, @@ -79343,13 +82558,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDeleteAbstractNonVirtualDtor", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -79368,7 +82584,7 @@ }, "fullDescription": { "text": "cppcoreguidelines-macro-usage clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-macro-usage clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/macro-usage.html)" + "markdown": "cppcoreguidelines-macro-usage clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/macro-usage.html)" }, "defaultConfiguration": { "enabled": false, @@ -79376,13 +82592,14 @@ "parameters": { "suppressToolId": "CppClangTidyCppcoreguidelinesMacroUsage", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -79409,7 +82626,8 @@ "parameters": { "suppressToolId": "VBStringCompareIsCultureSpecific.3", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -79442,7 +82660,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS9100", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -79475,7 +82694,8 @@ "parameters": { "suppressToolId": "VBStringCompareIsCultureSpecific.2", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -79500,7 +82720,7 @@ }, "fullDescription": { "text": "-Wcast-align clang diagnostic · Learn more", - "markdown": "-Wcast-align clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wcast-align)" + "markdown": "-Wcast-align clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcast-align)" }, "defaultConfiguration": { "enabled": true, @@ -79508,13 +82728,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCastAlign", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -79533,7 +82754,7 @@ }, "fullDescription": { "text": "-Wunused-variable clang diagnostic · Learn more", - "markdown": "-Wunused-variable clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunused-variable)" + "markdown": "-Wunused-variable clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunused-variable)" }, "defaultConfiguration": { "enabled": false, @@ -79541,13 +82762,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnusedVariable", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -79574,7 +82796,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS9107", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -79607,7 +82830,8 @@ "parameters": { "suppressToolId": "IncorrectBlankLinesNearBraces", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -79632,7 +82856,7 @@ }, "fullDescription": { "text": "-Wdeprecated-objc-pointer-introspection-performSelector clang diagnostic · Learn more", - "markdown": "-Wdeprecated-objc-pointer-introspection-performSelector clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdeprecated-objc-pointer-introspection-performSelector)" + "markdown": "-Wdeprecated-objc-pointer-introspection-performSelector clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-objc-pointer-introspection-performSelector)" }, "defaultConfiguration": { "enabled": true, @@ -79640,13 +82864,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedObjcPointerIntrospectionPerformSelector", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -79665,7 +82890,7 @@ }, "fullDescription": { "text": "cppcoreguidelines-pro-type-member-init clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-pro-type-member-init clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/pro-type-member-init.html)" + "markdown": "cppcoreguidelines-pro-type-member-init clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/pro-type-member-init.html)" }, "defaultConfiguration": { "enabled": false, @@ -79673,13 +82898,14 @@ "parameters": { "suppressToolId": "CppClangTidyCppcoreguidelinesProTypeMemberInit", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -79698,7 +82924,7 @@ }, "fullDescription": { "text": "portability-simd-intrinsics clang-tidy check · Learn more", - "markdown": "portability-simd-intrinsics clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/portability/simd-intrinsics.html)" + "markdown": "portability-simd-intrinsics clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/portability/simd-intrinsics.html)" }, "defaultConfiguration": { "enabled": false, @@ -79706,13 +82932,14 @@ "parameters": { "suppressToolId": "CppClangTidyPortabilitySimdIntrinsics", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -79731,7 +82958,7 @@ }, "fullDescription": { "text": "-Wmissing-multilib clang diagnostic · Learn more", - "markdown": "-Wmissing-multilib clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmissing-multilib)" + "markdown": "-Wmissing-multilib clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmissing-multilib)" }, "defaultConfiguration": { "enabled": true, @@ -79739,13 +82966,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMissingMultilib", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -79764,7 +82992,7 @@ }, "fullDescription": { "text": "portability-std-allocator-const clang-tidy check · Learn more", - "markdown": "portability-std-allocator-const clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/portability/std-allocator-const.html)" + "markdown": "portability-std-allocator-const clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/portability/std-allocator-const.html)" }, "defaultConfiguration": { "enabled": true, @@ -79772,13 +83000,14 @@ "parameters": { "suppressToolId": "CppClangTidyPortabilityStdAllocatorConst", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -79797,7 +83026,7 @@ }, "fullDescription": { "text": "-Wc++98-compat-bind-to-temporary-copy clang diagnostic · Learn more", - "markdown": "-Wc++98-compat-bind-to-temporary-copy clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-98-compat-bind-to-temporary-copy)" + "markdown": "-Wc++98-compat-bind-to-temporary-copy clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-98-compat-bind-to-temporary-copy)" }, "defaultConfiguration": { "enabled": false, @@ -79805,13 +83034,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCpp98CompatBindToTemporaryCopy", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -79838,14 +83068,83 @@ "parameters": { "suppressToolId": "MoreSpecificForeachVariableTypeAvailable", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyModernizeUseStdNumbers", + "shortDescription": { + "text": "modernize-use-std-numbers clang-tidy check" + }, + "fullDescription": { + "text": "modernize-use-std-numbers clang-tidy check · Learn more", + "markdown": "modernize-use-std-numbers clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-std-numbers.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyModernizeUseStdNumbers", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticPreC23Compat", + "shortDescription": { + "text": "pre-c23-compat clang diagnostic" + }, + "fullDescription": { + "text": "-Wpre-c23-compat clang diagnostic · Learn more", + "markdown": "-Wpre-c23-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpre-c23-compat)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticPreC23Compat", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, "toolComponent": { "name": "QDNET" } @@ -79863,7 +83162,7 @@ }, "fullDescription": { "text": "-Wsync-alignment clang diagnostic · Learn more", - "markdown": "-Wsync-alignment clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wsync-alignment)" + "markdown": "-Wsync-alignment clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wsync-alignment)" }, "defaultConfiguration": { "enabled": true, @@ -79871,13 +83170,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticSyncAlignment", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -79896,7 +83196,7 @@ }, "fullDescription": { "text": "-Wsizeof-array-argument clang diagnostic · Learn more", - "markdown": "-Wsizeof-array-argument clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wsizeof-array-argument)" + "markdown": "-Wsizeof-array-argument clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wsizeof-array-argument)" }, "defaultConfiguration": { "enabled": true, @@ -79904,13 +83204,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticSizeofArrayArgument", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -79929,7 +83230,7 @@ }, "fullDescription": { "text": "-Wpointer-type-mismatch clang diagnostic · Learn more", - "markdown": "-Wpointer-type-mismatch clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpointer-type-mismatch)" + "markdown": "-Wpointer-type-mismatch clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpointer-type-mismatch)" }, "defaultConfiguration": { "enabled": true, @@ -79937,13 +83238,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticPointerTypeMismatch", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -79970,14 +83272,49 @@ "parameters": { "suppressToolId": "Mvc.ActionNotResolved", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "Aspx/Potential Code Quality Issues", - "index": 60, + "index": 64, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyReadabilityReferenceToConstructedTemporary", + "shortDescription": { + "text": "readability-reference-to-constructed-temporary clang-tidy check" + }, + "fullDescription": { + "text": "readability-reference-to-constructed-temporary clang-tidy check · Learn more", + "markdown": "readability-reference-to-constructed-temporary clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/reference-to-constructed-temporary.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyReadabilityReferenceToConstructedTemporary", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang-Tidy Checks", + "index": 8, "toolComponent": { "name": "QDNET" } @@ -79995,7 +83332,7 @@ }, "fullDescription": { "text": "-Wexport-unnamed clang diagnostic · Learn more", - "markdown": "-Wexport-unnamed clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wexport-unnamed)" + "markdown": "-Wexport-unnamed clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wexport-unnamed)" }, "defaultConfiguration": { "enabled": true, @@ -80003,13 +83340,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticExportUnnamed", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -80028,7 +83366,7 @@ }, "fullDescription": { "text": "-Wdeclaration-after-statement clang diagnostic · Learn more", - "markdown": "-Wdeclaration-after-statement clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdeclaration-after-statement)" + "markdown": "-Wdeclaration-after-statement clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeclaration-after-statement)" }, "defaultConfiguration": { "enabled": false, @@ -80036,13 +83374,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDeclarationAfterStatement", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -80061,7 +83400,7 @@ }, "fullDescription": { "text": "cppcoreguidelines-pro-type-union-access clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-pro-type-union-access clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/pro-type-union-access.html)" + "markdown": "cppcoreguidelines-pro-type-union-access clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/pro-type-union-access.html)" }, "defaultConfiguration": { "enabled": false, @@ -80069,13 +83408,14 @@ "parameters": { "suppressToolId": "CppClangTidyCppcoreguidelinesProTypeUnionAccess", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -80093,8 +83433,8 @@ "text": "Redundant anonymous type property explicit name" }, "fullDescription": { - "text": "Explicit name specification of anonymous type property is redundant. It is inferred from the initializer expression.", - "markdown": "Explicit name specification of anonymous type property is redundant. It is inferred from the initializer expression." + "text": "Explicit name specification of anonymous type property is redundant. It is inferred from the initializer expression. Learn more...", + "markdown": "Explicit name specification of anonymous type property is redundant. It is inferred from the initializer expression. [Learn more...](https://www.jetbrains.com/help/rider/RedundantAnonymousTypePropertyName.html)" }, "defaultConfiguration": { "enabled": true, @@ -80102,7 +83442,8 @@ "parameters": { "suppressToolId": "RedundantAnonymousTypePropertyName", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -80135,7 +83476,8 @@ "parameters": { "suppressToolId": "RedundantNullableAnnotationOnReferenceTypeConstraint", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -80160,7 +83502,7 @@ }, "fullDescription": { "text": "-Wdeprecated-non-prototype clang diagnostic · Learn more", - "markdown": "-Wdeprecated-non-prototype clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdeprecated-non-prototype)" + "markdown": "-Wdeprecated-non-prototype clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-non-prototype)" }, "defaultConfiguration": { "enabled": true, @@ -80168,13 +83510,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedNonPrototype", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -80201,7 +83544,8 @@ "parameters": { "suppressToolId": "RedundantNullableAnnotationOnTypeConstraintHasNonNullableTypeKind", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -80234,7 +83578,8 @@ "parameters": { "suppressToolId": "VoidMethodWithMustUseReturnValueAttribute", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -80259,7 +83604,7 @@ }, "fullDescription": { "text": "-Wshift-negative-value clang diagnostic · Learn more", - "markdown": "-Wshift-negative-value clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wshift-negative-value)" + "markdown": "-Wshift-negative-value clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wshift-negative-value)" }, "defaultConfiguration": { "enabled": true, @@ -80267,13 +83612,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticShiftNegativeValue", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -80292,7 +83638,7 @@ }, "fullDescription": { "text": "-Wbridge-cast clang diagnostic · Learn more", - "markdown": "-Wbridge-cast clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wbridge-cast)" + "markdown": "-Wbridge-cast clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wbridge-cast)" }, "defaultConfiguration": { "enabled": true, @@ -80300,13 +83646,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticBridgeCast", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -80325,7 +83672,7 @@ }, "fullDescription": { "text": "altera-id-dependent-backward-branch clang-tidy check · Learn more", - "markdown": "altera-id-dependent-backward-branch clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/altera/id-dependent-backward-branch.html)" + "markdown": "altera-id-dependent-backward-branch clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/altera/id-dependent-backward-branch.html)" }, "defaultConfiguration": { "enabled": false, @@ -80333,13 +83680,48 @@ "parameters": { "suppressToolId": "CppClangTidyAlteraIdDependentBackwardBranch", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyModernizeMinMaxUseInitializerList", + "shortDescription": { + "text": "modernize-min-max-use-initializer-list clang-tidy check" + }, + "fullDescription": { + "text": "modernize-min-max-use-initializer-list clang-tidy check · Learn more", + "markdown": "modernize-min-max-use-initializer-list clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/min-max-use-initializer-list.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyModernizeMinMaxUseInitializerList", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -80358,7 +83740,7 @@ }, "fullDescription": { "text": "-Wnullability-completeness-on-arrays clang diagnostic · Learn more", - "markdown": "-Wnullability-completeness-on-arrays clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wnullability-completeness-on-arrays)" + "markdown": "-Wnullability-completeness-on-arrays clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnullability-completeness-on-arrays)" }, "defaultConfiguration": { "enabled": true, @@ -80366,13 +83748,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticNullabilityCompletenessOnArrays", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -80399,7 +83782,8 @@ "parameters": { "suppressToolId": "EnforceFixedStatementBraces", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -80432,7 +83816,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS9154", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -80465,7 +83850,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS9158", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -80490,7 +83876,7 @@ }, "fullDescription": { "text": "-Wstrncat-size clang diagnostic · Learn more", - "markdown": "-Wstrncat-size clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wstrncat-size)" + "markdown": "-Wstrncat-size clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wstrncat-size)" }, "defaultConfiguration": { "enabled": true, @@ -80498,13 +83884,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticStrncatSize", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -80531,13 +83918,14 @@ "parameters": { "suppressToolId": "CppMultiCharacterLiteral", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -80564,7 +83952,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS9159", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -80589,7 +83978,7 @@ }, "fullDescription": { "text": "readability-uniqueptr-delete-release clang-tidy check · Learn more", - "markdown": "readability-uniqueptr-delete-release clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/uniqueptr-delete-release.html)" + "markdown": "readability-uniqueptr-delete-release clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/uniqueptr-delete-release.html)" }, "defaultConfiguration": { "enabled": true, @@ -80597,13 +83986,14 @@ "parameters": { "suppressToolId": "CppClangTidyReadabilityUniqueptrDeleteRelease", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -80622,7 +84012,7 @@ }, "fullDescription": { "text": "-Wknr-promoted-parameter clang diagnostic · Learn more", - "markdown": "-Wknr-promoted-parameter clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wknr-promoted-parameter)" + "markdown": "-Wknr-promoted-parameter clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wknr-promoted-parameter)" }, "defaultConfiguration": { "enabled": true, @@ -80630,13 +84020,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticKnrPromotedParameter", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -80663,7 +84054,8 @@ "parameters": { "suppressToolId": "MethodOverloadWithOptionalParameter", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -80696,7 +84088,8 @@ "parameters": { "suppressToolId": "ThreadStaticFieldHasInitializer", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -80729,7 +84122,8 @@ "parameters": { "suppressToolId": "Xaml.AvaloniaWrongBindingModeForStreamBindingOperator", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -80762,13 +84156,14 @@ "parameters": { "suppressToolId": "CppTabsAndSpacesMismatch", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Formatting", + "id": "C_C++/Formatting", "index": 28, "toolComponent": { "name": "QDNET" @@ -80795,13 +84190,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerSecurityInsecureAPISecuritySyntaxChecker", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -80828,14 +84224,15 @@ "parameters": { "suppressToolId": "Html.IdNotResolved", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "HTML/Potential Code Quality Issues", - "index": 51, + "index": 54, "toolComponent": { "name": "QDNET" } @@ -80853,7 +84250,7 @@ }, "fullDescription": { "text": "-Winjected-class-name clang diagnostic · Learn more", - "markdown": "-Winjected-class-name clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#winjected-class-name)" + "markdown": "-Winjected-class-name clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winjected-class-name)" }, "defaultConfiguration": { "enabled": true, @@ -80861,13 +84258,48 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticInjectedClassName", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticPreC23CompatPedantic", + "shortDescription": { + "text": "pre-c23-compat-pedantic clang diagnostic" + }, + "fullDescription": { + "text": "-Wpre-c23-compat-pedantic clang diagnostic · Learn more", + "markdown": "-Wpre-c23-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpre-c23-compat-pedantic)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticPreC23CompatPedantic", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -80894,7 +84326,8 @@ "parameters": { "suppressToolId": "EmptyDestructor", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -80915,11 +84348,11 @@ { "id": "CppReplaceTieWithStructuredBinding", "shortDescription": { - "text": "Structured binding can be used instead of tie(..)" + "text": "Structured bindings can be used instead of tie(..)" }, "fullDescription": { - "text": "Structured binding can be used instead of tie(..)", - "markdown": "Structured binding can be used instead of tie(..)" + "text": "Structured bindings can be used instead of tie(..)", + "markdown": "Structured bindings can be used instead of tie(..)" }, "defaultConfiguration": { "enabled": true, @@ -80927,14 +84360,15 @@ "parameters": { "suppressToolId": "CppReplaceTieWithStructuredBinding", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Common Practices and Code Improvements", - "index": 17, + "id": "C_C++/Common Practices and Code Improvements", + "index": 16, "toolComponent": { "name": "QDNET" } @@ -80952,7 +84386,7 @@ }, "fullDescription": { "text": "-Wfunction-multiversion clang diagnostic · Learn more", - "markdown": "-Wfunction-multiversion clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wfunction-multiversion)" + "markdown": "-Wfunction-multiversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wfunction-multiversion)" }, "defaultConfiguration": { "enabled": true, @@ -80960,13 +84394,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticFunctionMultiversion", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -80993,14 +84428,15 @@ "parameters": { "suppressToolId": "CppUseEraseAlgorithm", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Common Practices and Code Improvements", - "index": 17, + "id": "C_C++/Common Practices and Code Improvements", + "index": 16, "toolComponent": { "name": "QDNET" } @@ -81026,13 +84462,14 @@ "parameters": { "suppressToolId": "CppDeclaratorDisambiguatedAsFunction", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -81059,13 +84496,14 @@ "parameters": { "suppressToolId": "CppBadDeclarationBracesIndent", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Formatting", + "id": "C_C++/Formatting", "index": 28, "toolComponent": { "name": "QDNET" @@ -81092,7 +84530,8 @@ "parameters": { "suppressToolId": "Xaml.InvalidMemberType", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -81125,7 +84564,8 @@ "parameters": { "suppressToolId": "MergeIntoLogicalPattern", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -81158,7 +84598,8 @@ "parameters": { "suppressToolId": "PatternIsAlwaysTrueOrFalse", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -81191,14 +84632,15 @@ "parameters": { "suppressToolId": "Unity.PreferNonAllocApi", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity", - "index": 19, + "index": 18, "toolComponent": { "name": "QDNET" } @@ -81216,7 +84658,7 @@ }, "fullDescription": { "text": "-Wc++11-narrowing clang diagnostic · Learn more", - "markdown": "-Wc++11-narrowing clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-11-narrowing)" + "markdown": "-Wc++11-narrowing clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-11-narrowing)" }, "defaultConfiguration": { "enabled": true, @@ -81224,13 +84666,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCpp11Narrowing", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -81257,14 +84700,15 @@ "parameters": { "suppressToolId": "RouteTemplates.DuplicatedParameter", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "ASP.NET route templates/Code Notification", - "index": 47, + "index": 48, "toolComponent": { "name": "QDNET" } @@ -81290,7 +84734,8 @@ "parameters": { "suppressToolId": "BadSymbolSpaces", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -81314,8 +84759,8 @@ "text": "Access specifier does not change accessibility level" }, "fullDescription": { - "text": "An access specifier does not change the accessibility level and is redundant", - "markdown": "An access specifier does not change the accessibility level and is redundant" + "text": "An access specifier does not change the accessibility level and is redundant Learn more...", + "markdown": "An access specifier does not change the accessibility level and is redundant [Learn more...](https://www.jetbrains.com/help/rider/CppRedundantAccessSpecifier.html)" }, "defaultConfiguration": { "enabled": true, @@ -81323,13 +84768,14 @@ "parameters": { "suppressToolId": "CppRedundantAccessSpecifier", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Redundancies in Code", + "id": "C_C++/Redundancies in Code", "index": 34, "toolComponent": { "name": "QDNET" @@ -81356,7 +84802,8 @@ "parameters": { "suppressToolId": "RedundantWithCancellation", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -81389,7 +84836,8 @@ "parameters": { "suppressToolId": "UnusedLocalFunction", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -81414,7 +84862,7 @@ }, "fullDescription": { "text": "-Wvector-conversion clang diagnostic · Learn more", - "markdown": "-Wvector-conversion clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wvector-conversion)" + "markdown": "-Wvector-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wvector-conversion)" }, "defaultConfiguration": { "enabled": true, @@ -81422,13 +84870,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticVectorConversion", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -81443,7 +84892,7 @@ { "id": "Unity.Entities.MustBeStructForDotsInheritor", "shortDescription": { - "text": "{0}'s inheritor '{1}' must be struct" + "text": "DOTS: The type specified must be a structure type" }, "fullDescription": { "text": "{0}'s inheritor '{1}' must be struct", @@ -81455,14 +84904,15 @@ "parameters": { "suppressToolId": "Unity.Entities.MustBeStructForDotsInheritor", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity", - "index": 19, + "index": 18, "toolComponent": { "name": "QDNET" } @@ -81488,7 +84938,8 @@ "parameters": { "suppressToolId": "RedundantTypeCheckInPattern", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -81521,7 +84972,8 @@ "parameters": { "suppressToolId": "BadLinqLineBreaks", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -81554,7 +85006,8 @@ "parameters": { "suppressToolId": "ArrangeObjectCreationWhenTypeEvident", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -81572,6 +85025,40 @@ } ] }, + { + "id": "CSharpWarnings__CS9123", + "shortDescription": { + "text": "The '&' operator should not be used on parameters or local variables in async methods." + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CSharpWarnings__CS9123", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Compiler Warnings", + "index": 27, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CSharpWarnings__CS9124", "shortDescription": { @@ -81587,7 +85074,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS9124", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -81612,7 +85100,7 @@ }, "fullDescription": { "text": "cert-sig30-c clang-tidy check · Learn more", - "markdown": "cert-sig30-c clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cert/sig30-c.html)" + "markdown": "cert-sig30-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/sig30-c.html)" }, "defaultConfiguration": { "enabled": false, @@ -81620,13 +85108,14 @@ "parameters": { "suppressToolId": "CppClangTidyCertSig30C", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -81653,14 +85142,15 @@ "parameters": { "suppressToolId": "Xaml.PossibleNullReferenceException", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "XAML/Potential Code Quality Issues", - "index": 44, + "index": 45, "toolComponent": { "name": "QDNET" } @@ -81678,7 +85168,7 @@ }, "fullDescription": { "text": "openmp-use-default-none clang-tidy check · Learn more", - "markdown": "openmp-use-default-none clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/openmp/use-default-none.html)" + "markdown": "openmp-use-default-none clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/openmp/use-default-none.html)" }, "defaultConfiguration": { "enabled": true, @@ -81686,13 +85176,14 @@ "parameters": { "suppressToolId": "CppClangTidyOpenmpUseDefaultNone", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -81705,61 +85196,29 @@ ] }, { - "id": "NUnit.IncorrectRangeBounds", + "id": "CppClangTidyModernizeUseRanges", "shortDescription": { - "text": "NUnit. Incorrect range bounds. 'to' must be greater than or equal to 'from'." + "text": "modernize-use-ranges clang-tidy check" }, "fullDescription": { - "text": "NUnit. Incorrect [Range] bounds. The value of 'to' parameter must be greater than or equal to 'from', or there must be a negative step. Learn more...", - "markdown": "NUnit. Incorrect \\[Range\\] bounds. The value of 'to' parameter must be greater than or equal to 'from', or there must be a negative step. [Learn more...](https://www.jetbrains.com/help/rider/NUnit.IncorrectRangeBounds.html)" + "text": "modernize-use-ranges clang-tidy check · Learn more", + "markdown": "modernize-use-ranges clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-ranges.html)" }, "defaultConfiguration": { "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit.IncorrectRangeBounds", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" - } - }, - "relationships": [ - { - "target": { - "id": "C#/NUnit", - "index": 26, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PossibleMistakenCallToGetType.2", - "shortDescription": { - "text": "Possible mistaken call to GetType()" - }, - "fullDescription": { - "text": "$type$.GetType()", - "markdown": "$type$.GetType()" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", + "level": "note", "parameters": { - "suppressToolId": "PossibleMistakenCallToGetType.2", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "suppressToolId": "CppClangTidyModernizeUseRanges", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 14, + "id": "C_C++/Clang-Tidy Checks", + "index": 8, "toolComponent": { "name": "QDNET" } @@ -81771,28 +85230,29 @@ ] }, { - "id": "PossibleMistakenCallToGetType.1", + "id": "NUnit.IncorrectRangeBounds", "shortDescription": { - "text": "Possible mistaken call to GetType()" + "text": "NUnit. Incorrect range bounds. 'to' must be greater than or equal to 'from'." }, "fullDescription": { - "text": "$type$.IsInstanceOfType($expr$.GetType())", - "markdown": "$type$.IsInstanceOfType($expr$.GetType())" + "text": "NUnit. Incorrect [Range] bounds. The value of 'to' parameter must be greater than or equal to 'from', or there must be a negative step. Learn more...", + "markdown": "NUnit. Incorrect \\[Range\\] bounds. The value of 'to' parameter must be greater than or equal to 'from', or there must be a negative step. [Learn more...](https://www.jetbrains.com/help/rider/NUnit.IncorrectRangeBounds.html)" }, "defaultConfiguration": { "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "PossibleMistakenCallToGetType.1", + "suppressToolId": "NUnit.IncorrectRangeBounds", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 14, + "id": "C#/NUnit", + "index": 26, "toolComponent": { "name": "QDNET" } @@ -81810,7 +85270,7 @@ }, "fullDescription": { "text": "modernize-unary-static-assert clang-tidy check · Learn more", - "markdown": "modernize-unary-static-assert clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/unary-static-assert.html)" + "markdown": "modernize-unary-static-assert clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/unary-static-assert.html)" }, "defaultConfiguration": { "enabled": true, @@ -81818,13 +85278,14 @@ "parameters": { "suppressToolId": "CppClangTidyModernizeUnaryStaticAssert", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -81851,7 +85312,8 @@ "parameters": { "suppressToolId": "PossibleMultipleWriteAccessInDoubleCheckLocking", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -81876,7 +85338,7 @@ }, "fullDescription": { "text": "performance-noexcept-swap clang-tidy check · Learn more", - "markdown": "performance-noexcept-swap clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/performance/noexcept-swap.html)" + "markdown": "performance-noexcept-swap clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance/noexcept-swap.html)" }, "defaultConfiguration": { "enabled": true, @@ -81884,13 +85346,14 @@ "parameters": { "suppressToolId": "CppClangTidyPerformanceNoexceptSwap", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -81917,14 +85380,15 @@ "parameters": { "suppressToolId": "VBWarnings__BC42104", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "VB.NET/Compiler Warnings", - "index": 100, + "index": 110, "toolComponent": { "name": "QDNET" } @@ -81941,8 +85405,8 @@ "text": "Auto-property accessor is never used (private accessibility)" }, "fullDescription": { - "text": "Accessor in auto-property is never used", - "markdown": "Accessor in auto-property is never used" + "text": "Accessor in auto-property is never used Learn more...", + "markdown": "Accessor in auto-property is never used [Learn more...](https://www.jetbrains.com/help/rider/UnusedAutoPropertyAccessor.Local.html)" }, "defaultConfiguration": { "enabled": true, @@ -81950,7 +85414,8 @@ "parameters": { "suppressToolId": "UnusedAutoPropertyAccessor.Local", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -81975,7 +85440,7 @@ }, "fullDescription": { "text": "-Winvalid-iboutlet clang diagnostic · Learn more", - "markdown": "-Winvalid-iboutlet clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#winvalid-iboutlet)" + "markdown": "-Winvalid-iboutlet clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winvalid-iboutlet)" }, "defaultConfiguration": { "enabled": true, @@ -81983,13 +85448,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticInvalidIboutlet", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -82008,7 +85474,7 @@ }, "fullDescription": { "text": "-Wunnamed-type-template-args clang diagnostic · Learn more", - "markdown": "-Wunnamed-type-template-args clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunnamed-type-template-args)" + "markdown": "-Wunnamed-type-template-args clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunnamed-type-template-args)" }, "defaultConfiguration": { "enabled": true, @@ -82016,13 +85482,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnnamedTypeTemplateArgs", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -82049,14 +85516,15 @@ "parameters": { "suppressToolId": "RouteTemplates.ParameterTypeCanBeMadeStricter", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "ASP.NET route templates/Code Notification", - "index": 47, + "index": 48, "toolComponent": { "name": "QDNET" } @@ -82082,7 +85550,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS9193", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -82115,7 +85584,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS9195", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -82148,7 +85618,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS9196", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -82181,7 +85652,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS9197", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -82214,7 +85686,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS9198", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -82247,14 +85720,15 @@ "parameters": { "suppressToolId": "CppUseAlgorithmWithCount", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Common Practices and Code Improvements", - "index": 17, + "id": "C_C++/Common Practices and Code Improvements", + "index": 16, "toolComponent": { "name": "QDNET" } @@ -82272,7 +85746,7 @@ }, "fullDescription": { "text": "-Wcmse-union-leak clang diagnostic · Learn more", - "markdown": "-Wcmse-union-leak clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wcmse-union-leak)" + "markdown": "-Wcmse-union-leak clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcmse-union-leak)" }, "defaultConfiguration": { "enabled": true, @@ -82280,13 +85754,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCmseUnionLeak", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -82305,7 +85780,7 @@ }, "fullDescription": { "text": "-Wpedantic clang diagnostic · Learn more", - "markdown": "-Wpedantic clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpedantic)" + "markdown": "-Wpedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpedantic)" }, "defaultConfiguration": { "enabled": true, @@ -82313,13 +85788,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticPedantic", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -82346,14 +85822,15 @@ "parameters": { "suppressToolId": "ConvertToConstant.Global", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -82379,13 +85856,14 @@ "parameters": { "suppressToolId": "CppBadSemicolonSpaces", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Formatting", + "id": "C_C++/Formatting", "index": 28, "toolComponent": { "name": "QDNET" @@ -82404,7 +85882,7 @@ }, "fullDescription": { "text": "-Wnsconsumed-mismatch clang diagnostic · Learn more", - "markdown": "-Wnsconsumed-mismatch clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wnsconsumed-mismatch)" + "markdown": "-Wnsconsumed-mismatch clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnsconsumed-mismatch)" }, "defaultConfiguration": { "enabled": true, @@ -82412,13 +85890,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticNsconsumedMismatch", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -82445,14 +85924,15 @@ "parameters": { "suppressToolId": "CenterTagIsObsolete", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "HTML/Common Practices and Code Improvements", - "index": 68, + "index": 74, "toolComponent": { "name": "QDNET" } @@ -82470,7 +85950,7 @@ }, "fullDescription": { "text": "android-cloexec-inotify-init1 clang-tidy check · Learn more", - "markdown": "android-cloexec-inotify-init1 clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-inotify-init1.html)" + "markdown": "android-cloexec-inotify-init1 clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-inotify-init1.html)" }, "defaultConfiguration": { "enabled": false, @@ -82478,13 +85958,14 @@ "parameters": { "suppressToolId": "CppClangTidyAndroidCloexecInotifyInit1", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -82503,7 +85984,7 @@ }, "fullDescription": { "text": "abseil-cleanup-ctad clang-tidy check · Learn more", - "markdown": "abseil-cleanup-ctad clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/cleanup-ctad.html)" + "markdown": "abseil-cleanup-ctad clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/cleanup-ctad.html)" }, "defaultConfiguration": { "enabled": false, @@ -82511,13 +85992,14 @@ "parameters": { "suppressToolId": "CppClangTidyAbseilCleanupCtad", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -82536,7 +86018,7 @@ }, "fullDescription": { "text": "-Wc++17-compat-mangling clang diagnostic · Learn more", - "markdown": "-Wc++17-compat-mangling clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-17-compat-mangling)" + "markdown": "-Wc++17-compat-mangling clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-17-compat-mangling)" }, "defaultConfiguration": { "enabled": false, @@ -82544,13 +86026,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCpp17CompatMangling", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -82577,14 +86060,15 @@ "parameters": { "suppressToolId": "RedundantIteratorKeyword", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "VB.NET/Redundancies in Code", - "index": 88, + "index": 96, "toolComponent": { "name": "QDNET" } @@ -82602,7 +86086,7 @@ }, "fullDescription": { "text": "-Wimplicit-exception-spec-mismatch clang diagnostic · Learn more", - "markdown": "-Wimplicit-exception-spec-mismatch clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wimplicit-exception-spec-mismatch)" + "markdown": "-Wimplicit-exception-spec-mismatch clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wimplicit-exception-spec-mismatch)" }, "defaultConfiguration": { "enabled": true, @@ -82610,13 +86094,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticImplicitExceptionSpecMismatch", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -82635,7 +86120,7 @@ }, "fullDescription": { "text": "-Wgnu-variable-sized-type-not-at-end clang diagnostic · Learn more", - "markdown": "-Wgnu-variable-sized-type-not-at-end clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wgnu-variable-sized-type-not-at-end)" + "markdown": "-Wgnu-variable-sized-type-not-at-end clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-variable-sized-type-not-at-end)" }, "defaultConfiguration": { "enabled": true, @@ -82643,13 +86128,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticGnuVariableSizedTypeNotAtEnd", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -82661,6 +86147,40 @@ } ] }, + { + "id": "CppClangTidyCppcoreguidelinesMacroToEnum", + "shortDescription": { + "text": "cppcoreguidelines-macro-to-enum clang-tidy check" + }, + "fullDescription": { + "text": "cppcoreguidelines-macro-to-enum clang-tidy check · Learn more", + "markdown": "cppcoreguidelines-macro-to-enum clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/macro-to-enum.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyCppcoreguidelinesMacroToEnum", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppClangTidyFuchsiaDefaultArgumentsDeclarations", "shortDescription": { @@ -82668,7 +86188,7 @@ }, "fullDescription": { "text": "fuchsia-default-arguments-declarations clang-tidy check · Learn more", - "markdown": "fuchsia-default-arguments-declarations clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/fuchsia/default-arguments-declarations.html)" + "markdown": "fuchsia-default-arguments-declarations clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/fuchsia/default-arguments-declarations.html)" }, "defaultConfiguration": { "enabled": false, @@ -82676,13 +86196,14 @@ "parameters": { "suppressToolId": "CppClangTidyFuchsiaDefaultArgumentsDeclarations", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -82709,7 +86230,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS9182", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -82742,7 +86264,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS9183", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -82766,8 +86289,8 @@ "text": "Class is never instantiated (private accessibility)" }, "fullDescription": { - "text": "Non-static class is never instantiated", - "markdown": "Non-static class is never instantiated" + "text": "Non-static class is never instantiated Learn more...", + "markdown": "Non-static class is never instantiated [Learn more...](https://www.jetbrains.com/help/rider/ClassNeverInstantiated.Local.html)" }, "defaultConfiguration": { "enabled": true, @@ -82775,7 +86298,8 @@ "parameters": { "suppressToolId": "ClassNeverInstantiated.Local", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -82808,7 +86332,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS9184", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -82833,7 +86358,7 @@ }, "fullDescription": { "text": "-Wfor-loop-analysis clang diagnostic · Learn more", - "markdown": "-Wfor-loop-analysis clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wfor-loop-analysis)" + "markdown": "-Wfor-loop-analysis clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wfor-loop-analysis)" }, "defaultConfiguration": { "enabled": true, @@ -82841,13 +86366,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticForLoopAnalysis", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -82866,7 +86392,7 @@ }, "fullDescription": { "text": "-Wbool-conversion clang diagnostic · Learn more", - "markdown": "-Wbool-conversion clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wbool-conversion)" + "markdown": "-Wbool-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wbool-conversion)" }, "defaultConfiguration": { "enabled": true, @@ -82874,13 +86400,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticBoolConversion", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -82899,7 +86426,7 @@ }, "fullDescription": { "text": "-Wcast-function-type-strict clang diagnostic · Learn more", - "markdown": "-Wcast-function-type-strict clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wcast-function-type-strict)" + "markdown": "-Wcast-function-type-strict clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcast-function-type-strict)" }, "defaultConfiguration": { "enabled": true, @@ -82907,13 +86434,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCastFunctionTypeStrict", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -82940,14 +86468,15 @@ "parameters": { "suppressToolId": "Asp.DeadCode", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "Aspx/Potential Code Quality Issues", - "index": 60, + "index": 64, "toolComponent": { "name": "QDNET" } @@ -82959,28 +86488,29 @@ ] }, { - "id": "CppBadControlBracesLineBreaks", + "id": "CppClangTidyCertDcl50Cpp", "shortDescription": { - "text": "Incorrect line breaks (around statement braces)" + "text": "cert-dcl50-cpp clang-tidy check" }, "fullDescription": { - "text": "Around statement braces", - "markdown": "Around statement braces" + "text": "cert-dcl50-cpp clang-tidy check · Learn more", + "markdown": "cert-dcl50-cpp clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/dcl50-cpp.html)" }, "defaultConfiguration": { "enabled": false, "level": "note", "parameters": { - "suppressToolId": "CppBadControlBracesLineBreaks", + "suppressToolId": "CppClangTidyCertDcl50Cpp", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Formatting", - "index": 28, + "id": "C_C++/Clang-Tidy Checks", + "index": 8, "toolComponent": { "name": "QDNET" } @@ -82992,28 +86522,29 @@ ] }, { - "id": "CppClangTidyCertDcl50Cpp", + "id": "CppBadControlBracesLineBreaks", "shortDescription": { - "text": "cert-dcl50-cpp clang-tidy check" + "text": "Incorrect line breaks (around statement braces)" }, "fullDescription": { - "text": "cert-dcl50-cpp clang-tidy check · Learn more", - "markdown": "cert-dcl50-cpp clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cert/dcl50-cpp.html)" + "text": "Around statement braces", + "markdown": "Around statement braces" }, "defaultConfiguration": { "enabled": false, "level": "note", "parameters": { - "suppressToolId": "CppClangTidyCertDcl50Cpp", + "suppressToolId": "CppBadControlBracesLineBreaks", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", - "index": 8, + "id": "C_C++/Formatting", + "index": 28, "toolComponent": { "name": "QDNET" } @@ -83031,7 +86562,7 @@ }, "fullDescription": { "text": "modernize-use-uncaught-exceptions clang-tidy check · Learn more", - "markdown": "modernize-use-uncaught-exceptions clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-uncaught-exceptions.html)" + "markdown": "modernize-use-uncaught-exceptions clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-uncaught-exceptions.html)" }, "defaultConfiguration": { "enabled": true, @@ -83039,13 +86570,14 @@ "parameters": { "suppressToolId": "CppClangTidyModernizeUseUncaughtExceptions", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -83072,7 +86604,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS9191", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -83105,7 +86638,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS9192", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -83138,7 +86672,8 @@ "parameters": { "suppressToolId": "OutdentIsOffPrevLevel", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -83171,7 +86706,8 @@ "parameters": { "suppressToolId": "VBReplaceWithOfType.Any.2", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -83204,7 +86740,8 @@ "parameters": { "suppressToolId": "VBReplaceWithOfType.Any.1", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -83237,14 +86774,15 @@ "parameters": { "suppressToolId": "EscapedKeyword", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "T4/T4", - "index": 106, + "index": 116, "toolComponent": { "name": "QDNET" } @@ -83270,14 +86808,15 @@ "parameters": { "suppressToolId": "UseNullableAttributesSupportedByCompiler", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -83295,7 +86834,7 @@ }, "fullDescription": { "text": "fuchsia-default-arguments-calls clang-tidy check · Learn more", - "markdown": "fuchsia-default-arguments-calls clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/fuchsia/default-arguments-calls.html)" + "markdown": "fuchsia-default-arguments-calls clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/fuchsia/default-arguments-calls.html)" }, "defaultConfiguration": { "enabled": false, @@ -83303,13 +86842,14 @@ "parameters": { "suppressToolId": "CppClangTidyFuchsiaDefaultArgumentsCalls", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -83336,7 +86876,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS9179", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -83361,7 +86902,7 @@ }, "fullDescription": { "text": "-Walways-inline-coroutine clang diagnostic · Learn more", - "markdown": "-Walways-inline-coroutine clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#walways-inline-coroutine)" + "markdown": "-Walways-inline-coroutine clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#walways-inline-coroutine)" }, "defaultConfiguration": { "enabled": false, @@ -83369,13 +86910,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticAlwaysInlineCoroutine", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -83394,7 +86936,7 @@ }, "fullDescription": { "text": "-Wunknown-cuda-version clang diagnostic · Learn more", - "markdown": "-Wunknown-cuda-version clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunknown-cuda-version)" + "markdown": "-Wunknown-cuda-version clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunknown-cuda-version)" }, "defaultConfiguration": { "enabled": false, @@ -83402,13 +86944,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnknownCudaVersion", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -83435,14 +86978,15 @@ "parameters": { "suppressToolId": "Html.Obsolete", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "HTML/Potential Code Quality Issues", - "index": 51, + "index": 54, "toolComponent": { "name": "QDNET" } @@ -83468,7 +87012,8 @@ "parameters": { "suppressToolId": "GCSuppressFinalizeForTypeWithoutDestructor", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -83501,13 +87046,14 @@ "parameters": { "suppressToolId": "CppHeaderHasBeenAlreadyIncluded", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Redundancies in Code", + "id": "C_C++/Redundancies in Code", "index": 34, "toolComponent": { "name": "QDNET" @@ -83534,14 +87080,15 @@ "parameters": { "suppressToolId": "ParameterTypeCanBeEnumerable.Global", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -83567,14 +87114,15 @@ "parameters": { "suppressToolId": "CppPrecompiledHeaderNotFound", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Compiler Warnings", - "index": 69, + "id": "C_C++/Compiler Warnings", + "index": 75, "toolComponent": { "name": "QDNET" } @@ -83600,14 +87148,15 @@ "parameters": { "suppressToolId": "ReplaceWithOfType.LongCount", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -83625,7 +87174,7 @@ }, "fullDescription": { "text": "-Wunicode clang diagnostic · Learn more", - "markdown": "-Wunicode clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunicode)" + "markdown": "-Wunicode clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunicode)" }, "defaultConfiguration": { "enabled": true, @@ -83633,13 +87182,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnicode", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -83666,7 +87216,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS9181", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -83691,7 +87242,7 @@ }, "fullDescription": { "text": "-Wmultiple-move-vbase clang diagnostic · Learn more", - "markdown": "-Wmultiple-move-vbase clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmultiple-move-vbase)" + "markdown": "-Wmultiple-move-vbase clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmultiple-move-vbase)" }, "defaultConfiguration": { "enabled": true, @@ -83699,13 +87250,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMultipleMoveVbase", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -83724,7 +87276,7 @@ }, "fullDescription": { "text": "-Wcstring-format-directive clang diagnostic · Learn more", - "markdown": "-Wcstring-format-directive clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wcstring-format-directive)" + "markdown": "-Wcstring-format-directive clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcstring-format-directive)" }, "defaultConfiguration": { "enabled": true, @@ -83732,13 +87284,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCstringFormatDirective", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -83757,7 +87310,7 @@ }, "fullDescription": { "text": "readability-misplaced-array-index clang-tidy check · Learn more", - "markdown": "readability-misplaced-array-index clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/misplaced-array-index.html)" + "markdown": "readability-misplaced-array-index clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/misplaced-array-index.html)" }, "defaultConfiguration": { "enabled": true, @@ -83765,13 +87318,14 @@ "parameters": { "suppressToolId": "CppClangTidyReadabilityMisplacedArrayIndex", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -83790,7 +87344,7 @@ }, "fullDescription": { "text": "-Wthread-safety-attributes clang diagnostic · Learn more", - "markdown": "-Wthread-safety-attributes clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wthread-safety-attributes)" + "markdown": "-Wthread-safety-attributes clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wthread-safety-attributes)" }, "defaultConfiguration": { "enabled": true, @@ -83798,13 +87352,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticThreadSafetyAttributes", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -83823,7 +87378,7 @@ }, "fullDescription": { "text": "-Wexceptions clang diagnostic · Learn more", - "markdown": "-Wexceptions clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wexceptions)" + "markdown": "-Wexceptions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wexceptions)" }, "defaultConfiguration": { "enabled": true, @@ -83831,13 +87386,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticExceptions", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -83864,14 +87420,15 @@ "parameters": { "suppressToolId": "CppEnforceOverridingDestructorStyle", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Syntax Style", - "index": 83, + "id": "C_C++/Syntax Style", + "index": 91, "toolComponent": { "name": "QDNET" } @@ -83897,7 +87454,8 @@ "parameters": { "suppressToolId": "UseWithExpressionToCopyStruct", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -83915,6 +87473,40 @@ } ] }, + { + "id": "CppUE4BuildErrors", + "shortDescription": { + "text": "C++ UE4 Build Errors" + }, + "fullDescription": { + "text": "C++ UE4 Build Errors", + "markdown": "C++ UE4 Build Errors" + }, + "defaultConfiguration": { + "enabled": false, + "level": "error", + "parameters": { + "suppressToolId": "CppUE4BuildErrors", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Non configurable", + "index": 127, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppClangTidyAbseilFasterStrsplitDelimiter", "shortDescription": { @@ -83922,7 +87514,7 @@ }, "fullDescription": { "text": "abseil-faster-strsplit-delimiter clang-tidy check · Learn more", - "markdown": "abseil-faster-strsplit-delimiter clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/faster-strsplit-delimiter.html)" + "markdown": "abseil-faster-strsplit-delimiter clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/faster-strsplit-delimiter.html)" }, "defaultConfiguration": { "enabled": false, @@ -83930,13 +87522,14 @@ "parameters": { "suppressToolId": "CppClangTidyAbseilFasterStrsplitDelimiter", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -83955,7 +87548,7 @@ }, "fullDescription": { "text": "-Wdivision-by-zero clang diagnostic · Learn more", - "markdown": "-Wdivision-by-zero clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdivision-by-zero)" + "markdown": "-Wdivision-by-zero clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdivision-by-zero)" }, "defaultConfiguration": { "enabled": true, @@ -83963,13 +87556,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDivisionByZero", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -83996,7 +87590,8 @@ "parameters": { "suppressToolId": "PropertyFieldKeywordIsNeverUsed", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -84015,28 +87610,29 @@ ] }, { - "id": "CppClangTidyClangDiagnosticInterruptServiceRoutine", + "id": "UnityGutterMarks", "shortDescription": { - "text": "interrupt-service-routine clang diagnostic" + "text": "Unity Gutter Marks" }, "fullDescription": { - "text": "-Winterrupt-service-routine clang diagnostic · Learn more", - "markdown": "-Winterrupt-service-routine clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#winterrupt-service-routine)" + "text": "Unity Gutter Marks", + "markdown": "Unity Gutter Marks" }, "defaultConfiguration": { "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticInterruptServiceRoutine", + "suppressToolId": "UnityGutterMarks", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", - "index": 3, + "id": "C#/Non configurable", + "index": 52, "toolComponent": { "name": "QDNET" } @@ -84062,14 +87658,15 @@ "parameters": { "suppressToolId": "RouteTemplates.SymbolNotResolved", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "ASP.NET route templates/Code Notification", - "index": 47, + "index": 48, "toolComponent": { "name": "QDNET" } @@ -84087,7 +87684,7 @@ }, "fullDescription": { "text": "-Wmissing-selector-name clang diagnostic · Learn more", - "markdown": "-Wmissing-selector-name clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmissing-selector-name)" + "markdown": "-Wmissing-selector-name clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmissing-selector-name)" }, "defaultConfiguration": { "enabled": true, @@ -84095,13 +87692,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMissingSelectorName", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -84128,14 +87726,15 @@ "parameters": { "suppressToolId": "DoubleNegationInPattern", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -84153,7 +87752,7 @@ }, "fullDescription": { "text": "-Wenum-constexpr-conversion clang diagnostic · Learn more", - "markdown": "-Wenum-constexpr-conversion clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wenum-constexpr-conversion)" + "markdown": "-Wenum-constexpr-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wenum-constexpr-conversion)" }, "defaultConfiguration": { "enabled": true, @@ -84161,13 +87760,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticEnumConstexprConversion", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -84186,7 +87786,7 @@ }, "fullDescription": { "text": "modernize-type-traits clang-tidy check · Learn more", - "markdown": "modernize-type-traits clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/type-traits.html)" + "markdown": "modernize-type-traits clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/type-traits.html)" }, "defaultConfiguration": { "enabled": false, @@ -84194,13 +87794,14 @@ "parameters": { "suppressToolId": "CppClangTidyModernizeTypeTraits", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -84219,7 +87820,7 @@ }, "fullDescription": { "text": "bugprone-dynamic-static-initializers clang-tidy check · Learn more", - "markdown": "bugprone-dynamic-static-initializers clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/dynamic-static-initializers.html)" + "markdown": "bugprone-dynamic-static-initializers clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/dynamic-static-initializers.html)" }, "defaultConfiguration": { "enabled": true, @@ -84227,13 +87828,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneDynamicStaticInitializers", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -84260,7 +87862,8 @@ "parameters": { "suppressToolId": "PlaceAssignmentExpressionIntoBlock", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -84285,7 +87888,7 @@ }, "fullDescription": { "text": "-Wflexible-array-extensions clang diagnostic · Learn more", - "markdown": "-Wflexible-array-extensions clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wflexible-array-extensions)" + "markdown": "-Wflexible-array-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wflexible-array-extensions)" }, "defaultConfiguration": { "enabled": true, @@ -84293,13 +87896,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticFlexibleArrayExtensions", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -84318,7 +87922,7 @@ }, "fullDescription": { "text": "-Wdynamic-exception-spec clang diagnostic · Learn more", - "markdown": "-Wdynamic-exception-spec clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdynamic-exception-spec)" + "markdown": "-Wdynamic-exception-spec clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdynamic-exception-spec)" }, "defaultConfiguration": { "enabled": true, @@ -84326,13 +87930,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDynamicExceptionSpec", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -84359,7 +87964,8 @@ "parameters": { "suppressToolId": "PossibleUnintendedReferenceComparison", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -84384,7 +87990,7 @@ }, "fullDescription": { "text": "-Wsizeof-array-decay clang diagnostic · Learn more", - "markdown": "-Wsizeof-array-decay clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wsizeof-array-decay)" + "markdown": "-Wsizeof-array-decay clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wsizeof-array-decay)" }, "defaultConfiguration": { "enabled": true, @@ -84392,13 +87998,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticSizeofArrayDecay", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -84417,7 +88024,7 @@ }, "fullDescription": { "text": "-Wc++14-extensions clang diagnostic · Learn more", - "markdown": "-Wc++14-extensions clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-14-extensions)" + "markdown": "-Wc++14-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-14-extensions)" }, "defaultConfiguration": { "enabled": true, @@ -84425,13 +88032,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCpp14Extensions", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -84449,8 +88057,8 @@ "text": "Possible unintended bypass of lifetime check of underlying Unity engine object (null coalescing on a type deriving from 'UnityEngine.Object' bypasses the lifetime check on the underlying Unity engine object)" }, "fullDescription": { - "text": "The null coalescing operator does not call the custom equality operators defined on 'UnityEngine.Object', which will check to see if the underlying Unity engine object has been destroyed. Prefer an explicit null comparison or implicit bool comparison if the lifetime check is intended, or explicitly use 'object.ReferenceEquals()' for a standard (and quicker) CLR null check. Learn more...", - "markdown": "The null coalescing operator does not call the custom equality operators defined on 'UnityEngine.Object', which will check to see if the underlying Unity engine object has been destroyed. Prefer an explicit null comparison or implicit bool comparison if the lifetime check is intended, or explicitly use 'object.ReferenceEquals()' for a standard (and quicker) CLR null check. [Learn more...](https://github.com/JetBrains/resharper-unity/wiki/Possible-unintended-bypass-of-lifetime-check-of-underlying-Unity-engine-object)" + "text": "The null coalescing operator does not call custom equality operators defined on 'UnityEngine.Object'. These operators check if the underlying Unity engine object has been destroyed. Prefer an explicit null comparison or implicit bool comparison if the lifetime check is intended, or explicitly use 'object.ReferenceEquals()' for a standard (and quicker) CLR null check. Learn more...", + "markdown": "The null coalescing operator does not call custom equality operators defined on 'UnityEngine.Object'. These operators check if the underlying Unity engine object has been destroyed. Prefer an explicit null comparison or implicit bool comparison if the lifetime check is intended, or explicitly use 'object.ReferenceEquals()' for a standard (and quicker) CLR null check. [Learn more...](https://github.com/JetBrains/resharper-unity/wiki/Possible-unintended-bypass-of-lifetime-check-of-underlying-Unity-engine-object)" }, "defaultConfiguration": { "enabled": false, @@ -84458,14 +88066,15 @@ "parameters": { "suppressToolId": "Unity.NoNullCoalescing", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity", - "index": 19, + "index": 18, "toolComponent": { "name": "QDNET" } @@ -84491,14 +88100,15 @@ "parameters": { "suppressToolId": "Unity.ExplicitTagComparison", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity", - "index": 19, + "index": 18, "toolComponent": { "name": "QDNET" } @@ -84524,13 +88134,14 @@ "parameters": { "suppressToolId": "CppLongFloat", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -84557,13 +88168,14 @@ "parameters": { "suppressToolId": "CppPossiblyUninitializedMember", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -84582,7 +88194,7 @@ }, "fullDescription": { "text": "readability-string-compare clang-tidy check · Learn more", - "markdown": "readability-string-compare clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/string-compare.html)" + "markdown": "readability-string-compare clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/string-compare.html)" }, "defaultConfiguration": { "enabled": true, @@ -84590,13 +88202,14 @@ "parameters": { "suppressToolId": "CppClangTidyReadabilityStringCompare", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -84615,7 +88228,7 @@ }, "fullDescription": { "text": "-Wimplicit-conversion-floating-point-to-bool clang diagnostic · Learn more", - "markdown": "-Wimplicit-conversion-floating-point-to-bool clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wimplicit-conversion-floating-point-to-bool)" + "markdown": "-Wimplicit-conversion-floating-point-to-bool clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wimplicit-conversion-floating-point-to-bool)" }, "defaultConfiguration": { "enabled": true, @@ -84623,13 +88236,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticImplicitConversionFloatingPointToBool", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -84656,7 +88270,8 @@ "parameters": { "suppressToolId": "EnforceIfStatementBraces", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -84689,14 +88304,15 @@ "parameters": { "suppressToolId": "ReplaceWithSimpleAssignment.True", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -84714,7 +88330,7 @@ }, "fullDescription": { "text": "altera-unroll-loops clang-tidy check · Learn more", - "markdown": "altera-unroll-loops clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/altera/unroll-loops.html)" + "markdown": "altera-unroll-loops clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/altera/unroll-loops.html)" }, "defaultConfiguration": { "enabled": false, @@ -84722,13 +88338,14 @@ "parameters": { "suppressToolId": "CppClangTidyAlteraUnrollLoops", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -84747,7 +88364,7 @@ }, "fullDescription": { "text": "-Wdate-time clang diagnostic · Learn more", - "markdown": "-Wdate-time clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdate-time)" + "markdown": "-Wdate-time clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdate-time)" }, "defaultConfiguration": { "enabled": true, @@ -84755,13 +88372,48 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDateTime", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticFriendEnum", + "shortDescription": { + "text": "friend-enum clang diagnostic" + }, + "fullDescription": { + "text": "-Wfriend-enum clang diagnostic · Learn more", + "markdown": "-Wfriend-enum clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wfriend-enum)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticFriendEnum", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -84780,7 +88432,7 @@ }, "fullDescription": { "text": "-Wdeprecated-enum-compare clang diagnostic · Learn more", - "markdown": "-Wdeprecated-enum-compare clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdeprecated-enum-compare)" + "markdown": "-Wdeprecated-enum-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-enum-compare)" }, "defaultConfiguration": { "enabled": true, @@ -84788,13 +88440,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedEnumCompare", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -84813,7 +88466,7 @@ }, "fullDescription": { "text": "performance-avoid-endl clang-tidy check · Learn more", - "markdown": "performance-avoid-endl clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/performance/avoid-endl.html)" + "markdown": "performance-avoid-endl clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance/avoid-endl.html)" }, "defaultConfiguration": { "enabled": true, @@ -84821,13 +88474,14 @@ "parameters": { "suppressToolId": "CppClangTidyPerformanceAvoidEndl", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -84846,7 +88500,7 @@ }, "fullDescription": { "text": "-Wreturn-stack-address clang diagnostic · Learn more", - "markdown": "-Wreturn-stack-address clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wreturn-stack-address)" + "markdown": "-Wreturn-stack-address clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wreturn-stack-address)" }, "defaultConfiguration": { "enabled": true, @@ -84854,13 +88508,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticReturnStackAddress", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -84887,14 +88542,15 @@ "parameters": { "suppressToolId": "Xaml.UnexpectedTextToken", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "XAML/Potential Code Quality Issues", - "index": 44, + "index": 45, "toolComponent": { "name": "QDNET" } @@ -84920,13 +88576,14 @@ "parameters": { "suppressToolId": "CppBadListLineBreaks", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Formatting", + "id": "C_C++/Formatting", "index": 28, "toolComponent": { "name": "QDNET" @@ -84953,7 +88610,8 @@ "parameters": { "suppressToolId": "MissingBlankLines", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -84986,7 +88644,8 @@ "parameters": { "suppressToolId": "ArrangeMissingParentheses", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -85019,13 +88678,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerSecurityInsecureAPIVfork", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -85052,13 +88712,14 @@ "parameters": { "suppressToolId": "CppTabsOutsideIndent", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Formatting", + "id": "C_C++/Formatting", "index": 28, "toolComponent": { "name": "QDNET" @@ -85085,13 +88746,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerOsxCoreFoundationCFRetainRelease", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -85109,8 +88771,8 @@ "text": "Type member is never accessed via base type (non-private accessibility)" }, "fullDescription": { - "text": "Type member is never used with base type or interface, it is always accessed via more specific type", - "markdown": "Type member is never used with base type or interface, it is always accessed via more specific type" + "text": "Type member is never used with base type or interface, it is always accessed via more specific type Learn more...", + "markdown": "Type member is never used with base type or interface, it is always accessed via more specific type [Learn more...](https://www.jetbrains.com/help/rider/UnusedMemberInSuper.Global.html)" }, "defaultConfiguration": { "enabled": true, @@ -85118,7 +88780,8 @@ "parameters": { "suppressToolId": "UnusedMemberInSuper.Global", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -85143,7 +88806,7 @@ }, "fullDescription": { "text": "modernize-deprecated-ios-base-aliases clang-tidy check · Learn more", - "markdown": "modernize-deprecated-ios-base-aliases clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/deprecated-ios-base-aliases.html)" + "markdown": "modernize-deprecated-ios-base-aliases clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/deprecated-ios-base-aliases.html)" }, "defaultConfiguration": { "enabled": true, @@ -85151,13 +88814,14 @@ "parameters": { "suppressToolId": "CppClangTidyModernizeDeprecatedIosBaseAliases", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -85176,7 +88840,7 @@ }, "fullDescription": { "text": "-Winstantiation-after-specialization clang diagnostic · Learn more", - "markdown": "-Winstantiation-after-specialization clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#winstantiation-after-specialization)" + "markdown": "-Winstantiation-after-specialization clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winstantiation-after-specialization)" }, "defaultConfiguration": { "enabled": true, @@ -85184,13 +88848,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticInstantiationAfterSpecialization", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -85217,7 +88882,8 @@ "parameters": { "suppressToolId": "CA2100", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -85250,7 +88916,8 @@ "parameters": { "suppressToolId": "CA2101", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -85283,14 +88950,15 @@ "parameters": { "suppressToolId": "ReplaceWithSingleCallToLastOrDefault", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -85307,8 +88975,8 @@ "text": "Separate control transfer statement with blank line" }, "fullDescription": { - "text": "Introduce vertical spacing to highlight control transfer statement", - "markdown": "Introduce vertical spacing to highlight control transfer statement" + "text": "Introduce vertical spacing to highlight control transfer statement Learn more...", + "markdown": "Introduce vertical spacing to highlight control transfer statement [Learn more...](https://www.jetbrains.com/help/rider/SeparateControlTransferStatement.html)" }, "defaultConfiguration": { "enabled": false, @@ -85316,7 +88984,8 @@ "parameters": { "suppressToolId": "SeparateControlTransferStatement", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -85341,7 +89010,7 @@ }, "fullDescription": { "text": "-Wc99-extensions clang diagnostic · Learn more", - "markdown": "-Wc99-extensions clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc99-extensions)" + "markdown": "-Wc99-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc99-extensions)" }, "defaultConfiguration": { "enabled": true, @@ -85349,13 +89018,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticC99Extensions", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -85374,7 +89044,7 @@ }, "fullDescription": { "text": "cppcoreguidelines-init-variables clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-init-variables clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/init-variables.html)" + "markdown": "cppcoreguidelines-init-variables clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/init-variables.html)" }, "defaultConfiguration": { "enabled": false, @@ -85382,13 +89052,14 @@ "parameters": { "suppressToolId": "CppClangTidyCppcoreguidelinesInitVariables", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -85415,14 +89086,15 @@ "parameters": { "suppressToolId": "RiderSecurityErrorsInspection", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "Rider/General", - "index": 134, + "index": 156, "toolComponent": { "name": "QDNET" } @@ -85440,7 +89112,7 @@ }, "fullDescription": { "text": "-Wpass-failed clang diagnostic · Learn more", - "markdown": "-Wpass-failed clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpass-failed)" + "markdown": "-Wpass-failed clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpass-failed)" }, "defaultConfiguration": { "enabled": true, @@ -85448,13 +89120,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticPassFailed", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -85481,7 +89154,8 @@ "parameters": { "suppressToolId": "SpinLockInReadonlyField", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -85506,7 +89180,7 @@ }, "fullDescription": { "text": "-Wenum-enum-conversion clang diagnostic · Learn more", - "markdown": "-Wenum-enum-conversion clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wenum-enum-conversion)" + "markdown": "-Wenum-enum-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wenum-enum-conversion)" }, "defaultConfiguration": { "enabled": true, @@ -85514,13 +89188,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticEnumEnumConversion", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -85547,7 +89222,8 @@ "parameters": { "suppressToolId": "MergeSequentialChecks", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -85572,7 +89248,7 @@ }, "fullDescription": { "text": "-Wsuggest-override clang diagnostic · Learn more", - "markdown": "-Wsuggest-override clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wsuggest-override)" + "markdown": "-Wsuggest-override clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wsuggest-override)" }, "defaultConfiguration": { "enabled": false, @@ -85580,13 +89256,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticSuggestOverride", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -85613,14 +89290,15 @@ "parameters": { "suppressToolId": "CppDefaultInitializationWithNoUserConstructor", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Compiler Warnings", - "index": 69, + "id": "C_C++/Compiler Warnings", + "index": 75, "toolComponent": { "name": "QDNET" } @@ -85646,14 +89324,15 @@ "parameters": { "suppressToolId": "ConstevalIfIsAlwaysConstant", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Common Practices and Code Improvements", - "index": 17, + "id": "C_C++/Common Practices and Code Improvements", + "index": 16, "toolComponent": { "name": "QDNET" } @@ -85679,14 +89358,15 @@ "parameters": { "suppressToolId": "FSharpBuiltinFunctionReimplementation", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "F#/Redundancies in Code", - "index": 67, + "index": 73, "toolComponent": { "name": "QDNET" } @@ -85712,14 +89392,15 @@ "parameters": { "suppressToolId": "CppUseTypeTraitAlias", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Common Practices and Code Improvements", - "index": 17, + "id": "C_C++/Common Practices and Code Improvements", + "index": 16, "toolComponent": { "name": "QDNET" } @@ -85745,7 +89426,8 @@ "parameters": { "suppressToolId": "MemberHidesInterfaceMemberWithDefaultImplementation", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -85770,7 +89452,7 @@ }, "fullDescription": { "text": "-Wcoroutine-missing-unhandled-exception clang diagnostic · Learn more", - "markdown": "-Wcoroutine-missing-unhandled-exception clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wcoroutine-missing-unhandled-exception)" + "markdown": "-Wcoroutine-missing-unhandled-exception clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcoroutine-missing-unhandled-exception)" }, "defaultConfiguration": { "enabled": true, @@ -85778,13 +89460,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCoroutineMissingUnhandledException", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -85803,7 +89486,7 @@ }, "fullDescription": { "text": "-Wswitch-enum clang diagnostic · Learn more", - "markdown": "-Wswitch-enum clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wswitch-enum)" + "markdown": "-Wswitch-enum clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wswitch-enum)" }, "defaultConfiguration": { "enabled": true, @@ -85811,13 +89494,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticSwitchEnum", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -85844,14 +89528,15 @@ "parameters": { "suppressToolId": "Unity.RedundantEventFunction", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity", - "index": 19, + "index": 18, "toolComponent": { "name": "QDNET" } @@ -85869,7 +89554,7 @@ }, "fullDescription": { "text": "-Wnull-dereference clang diagnostic · Learn more", - "markdown": "-Wnull-dereference clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wnull-dereference)" + "markdown": "-Wnull-dereference clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnull-dereference)" }, "defaultConfiguration": { "enabled": true, @@ -85877,13 +89562,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticNullDereference", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -85902,7 +89588,7 @@ }, "fullDescription": { "text": "-Wjump-seh-finally clang diagnostic · Learn more", - "markdown": "-Wjump-seh-finally clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wjump-seh-finally)" + "markdown": "-Wjump-seh-finally clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wjump-seh-finally)" }, "defaultConfiguration": { "enabled": true, @@ -85910,13 +89596,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticJumpSehFinally", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -85935,7 +89622,7 @@ }, "fullDescription": { "text": "-Wsource-uses-openmp clang diagnostic · Learn more", - "markdown": "-Wsource-uses-openmp clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wsource-uses-openmp)" + "markdown": "-Wsource-uses-openmp clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wsource-uses-openmp)" }, "defaultConfiguration": { "enabled": true, @@ -85943,13 +89630,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticSourceUsesOpenmp", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -85968,7 +89656,7 @@ }, "fullDescription": { "text": "-Wunknown-warning-option clang diagnostic · Learn more", - "markdown": "-Wunknown-warning-option clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunknown-warning-option)" + "markdown": "-Wunknown-warning-option clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunknown-warning-option)" }, "defaultConfiguration": { "enabled": true, @@ -85976,13 +89664,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnknownWarningOption", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -86009,13 +89698,14 @@ "parameters": { "suppressToolId": "CppPointerToIntegralConversion", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -86033,8 +89723,8 @@ "text": "Variable can be declared as non-nullable" }, "fullDescription": { - "text": "Variable is declared as nullable but only never contains a nullable value", - "markdown": "Variable is declared as nullable but only never contains a nullable value" + "text": "Variable is declared as nullable, but it never contains a null value", + "markdown": "Variable is declared as nullable, but it never contains a null value" }, "defaultConfiguration": { "enabled": true, @@ -86042,7 +89732,8 @@ "parameters": { "suppressToolId": "VariableCanBeNotNullable", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -86066,8 +89757,8 @@ "text": "Cannot resolve symbol" }, "fullDescription": { - "text": "Cannot resolve symbol.", - "markdown": "Cannot resolve symbol." + "text": "Cannot resolve symbol. Learn more...", + "markdown": "Cannot resolve symbol. [Learn more...](https://www.jetbrains.com/help/rider/ResxNotResolved.html)" }, "defaultConfiguration": { "enabled": true, @@ -86075,14 +89766,15 @@ "parameters": { "suppressToolId": "ResxNotResolved", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "ResX/Potential Code Quality Issues", - "index": 63, + "index": 68, "toolComponent": { "name": "QDNET" } @@ -86108,7 +89800,8 @@ "parameters": { "suppressToolId": "ShiftExpressionRealShiftCountIsZero", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -86133,7 +89826,7 @@ }, "fullDescription": { "text": "-Wbitwise-conditional-parentheses clang diagnostic · Learn more", - "markdown": "-Wbitwise-conditional-parentheses clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wbitwise-conditional-parentheses)" + "markdown": "-Wbitwise-conditional-parentheses clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wbitwise-conditional-parentheses)" }, "defaultConfiguration": { "enabled": true, @@ -86141,13 +89834,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticBitwiseConditionalParentheses", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -86166,7 +89860,7 @@ }, "fullDescription": { "text": "android-cloexec-pipe clang-tidy check · Learn more", - "markdown": "android-cloexec-pipe clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-pipe.html)" + "markdown": "android-cloexec-pipe clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-pipe.html)" }, "defaultConfiguration": { "enabled": false, @@ -86174,13 +89868,14 @@ "parameters": { "suppressToolId": "CppClangTidyAndroidCloexecPipe", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -86207,7 +89902,8 @@ "parameters": { "suppressToolId": "RedundantEmptyObjectCreationArgumentList", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -86240,14 +89936,15 @@ "parameters": { "suppressToolId": "Xaml.AssignNullToNotNullAttribute", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "XAML/Constraints Violations", - "index": 135, + "index": 157, "toolComponent": { "name": "QDNET" } @@ -86265,7 +89962,7 @@ }, "fullDescription": { "text": "-Wsizeof-pointer-div clang diagnostic · Learn more", - "markdown": "-Wsizeof-pointer-div clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wsizeof-pointer-div)" + "markdown": "-Wsizeof-pointer-div clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wsizeof-pointer-div)" }, "defaultConfiguration": { "enabled": true, @@ -86273,13 +89970,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticSizeofPointerDiv", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -86298,7 +89996,7 @@ }, "fullDescription": { "text": "mpi-buffer-deref clang-tidy check · Learn more", - "markdown": "mpi-buffer-deref clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/mpi/buffer-deref.html)" + "markdown": "mpi-buffer-deref clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/mpi/buffer-deref.html)" }, "defaultConfiguration": { "enabled": true, @@ -86306,13 +90004,14 @@ "parameters": { "suppressToolId": "CppClangTidyMpiBufferDeref", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -86339,7 +90038,8 @@ "parameters": { "suppressToolId": "RedundantTernaryExpression", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -86364,7 +90064,7 @@ }, "fullDescription": { "text": "-Wformat-nonliteral clang diagnostic · Learn more", - "markdown": "-Wformat-nonliteral clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wformat-nonliteral)" + "markdown": "-Wformat-nonliteral clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wformat-nonliteral)" }, "defaultConfiguration": { "enabled": true, @@ -86372,13 +90072,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticFormatNonliteral", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -86397,7 +90098,7 @@ }, "fullDescription": { "text": "android-cloexec-dup clang-tidy check · Learn more", - "markdown": "android-cloexec-dup clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-dup.html)" + "markdown": "android-cloexec-dup clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-dup.html)" }, "defaultConfiguration": { "enabled": false, @@ -86405,13 +90106,14 @@ "parameters": { "suppressToolId": "CppClangTidyAndroidCloexecDup", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -86438,7 +90140,8 @@ "parameters": { "suppressToolId": "ConditionalAccessQualifierIsNonNullableAccordingToAPIContract", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -86471,7 +90174,8 @@ "parameters": { "suppressToolId": "UsingStatementResourceInitializationExpression", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -86496,7 +90200,7 @@ }, "fullDescription": { "text": "readability-qualified-auto clang-tidy check · Learn more", - "markdown": "readability-qualified-auto clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/qualified-auto.html)" + "markdown": "readability-qualified-auto clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/qualified-auto.html)" }, "defaultConfiguration": { "enabled": false, @@ -86504,13 +90208,14 @@ "parameters": { "suppressToolId": "CppClangTidyReadabilityQualifiedAuto", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -86529,7 +90234,7 @@ }, "fullDescription": { "text": "-Wselector clang diagnostic · Learn more", - "markdown": "-Wselector clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wselector)" + "markdown": "-Wselector clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wselector)" }, "defaultConfiguration": { "enabled": true, @@ -86537,13 +90242,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticSelector", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -86570,14 +90276,15 @@ "parameters": { "suppressToolId": "CppSmartPointerVsMakeFunction", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Common Practices and Code Improvements", - "index": 17, + "id": "C_C++/Common Practices and Code Improvements", + "index": 16, "toolComponent": { "name": "QDNET" } @@ -86595,7 +90302,7 @@ }, "fullDescription": { "text": "-Wstring-plus-char clang diagnostic · Learn more", - "markdown": "-Wstring-plus-char clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wstring-plus-char)" + "markdown": "-Wstring-plus-char clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wstring-plus-char)" }, "defaultConfiguration": { "enabled": true, @@ -86603,13 +90310,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticStringPlusChar", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -86636,13 +90344,14 @@ "parameters": { "suppressToolId": "CppStaticSpecifierOnAnonymousNamespaceMember", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Redundancies in Code", + "id": "C_C++/Redundancies in Code", "index": 34, "toolComponent": { "name": "QDNET" @@ -86661,7 +90370,7 @@ }, "fullDescription": { "text": "-Wshift-count-overflow clang diagnostic · Learn more", - "markdown": "-Wshift-count-overflow clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wshift-count-overflow)" + "markdown": "-Wshift-count-overflow clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wshift-count-overflow)" }, "defaultConfiguration": { "enabled": true, @@ -86669,13 +90378,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticShiftCountOverflow", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -86694,7 +90404,7 @@ }, "fullDescription": { "text": "-Wc++-compat clang diagnostic · Learn more", - "markdown": "-Wc++-compat clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc--compat)" + "markdown": "-Wc++-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc--compat)" }, "defaultConfiguration": { "enabled": false, @@ -86702,13 +90412,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCppCompat", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -86727,7 +90438,7 @@ }, "fullDescription": { "text": "-Winvalid-token-paste clang diagnostic · Learn more", - "markdown": "-Winvalid-token-paste clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#winvalid-token-paste)" + "markdown": "-Winvalid-token-paste clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winvalid-token-paste)" }, "defaultConfiguration": { "enabled": true, @@ -86735,13 +90446,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticInvalidTokenPaste", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -86768,7 +90480,8 @@ "parameters": { "suppressToolId": "NotDisposedResourceIsReturnedByProperty", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -86793,7 +90506,7 @@ }, "fullDescription": { "text": "-Wc++11-extra-semi clang diagnostic · Learn more", - "markdown": "-Wc++11-extra-semi clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-11-extra-semi)" + "markdown": "-Wc++11-extra-semi clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-11-extra-semi)" }, "defaultConfiguration": { "enabled": true, @@ -86801,13 +90514,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCpp11ExtraSemi", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -86826,7 +90540,7 @@ }, "fullDescription": { "text": "-Winvalid-unevaluated-string clang diagnostic · Learn more", - "markdown": "-Winvalid-unevaluated-string clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#winvalid-unevaluated-string)" + "markdown": "-Winvalid-unevaluated-string clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winvalid-unevaluated-string)" }, "defaultConfiguration": { "enabled": true, @@ -86834,13 +90548,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticInvalidUnevaluatedString", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -86852,6 +90567,40 @@ } ] }, + { + "id": "CppClangTidyBugproneOptionalValueConversion", + "shortDescription": { + "text": "bugprone-optional-value-conversion clang-tidy check" + }, + "fullDescription": { + "text": "bugprone-optional-value-conversion clang-tidy check · Learn more", + "markdown": "bugprone-optional-value-conversion clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/optional-value-conversion.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyBugproneOptionalValueConversion", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppClangTidyClangDiagnosticNonportableVectorInitialization", "shortDescription": { @@ -86859,7 +90608,7 @@ }, "fullDescription": { "text": "-Wnonportable-vector-initialization clang diagnostic · Learn more", - "markdown": "-Wnonportable-vector-initialization clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wnonportable-vector-initialization)" + "markdown": "-Wnonportable-vector-initialization clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnonportable-vector-initialization)" }, "defaultConfiguration": { "enabled": true, @@ -86867,13 +90616,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticNonportableVectorInitialization", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -86900,14 +90650,15 @@ "parameters": { "suppressToolId": "Xaml.RedundantBindingModeAttribute", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "XAML/Redundancies in Code", - "index": 71, + "index": 77, "toolComponent": { "name": "QDNET" } @@ -86933,14 +90684,15 @@ "parameters": { "suppressToolId": "VBWarnings__WME006", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "VB.NET/Compiler Warnings", - "index": 100, + "index": 110, "toolComponent": { "name": "QDNET" } @@ -86966,13 +90718,14 @@ "parameters": { "suppressToolId": "CppBadDeclarationBracesLineBreaks", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Formatting", + "id": "C_C++/Formatting", "index": 28, "toolComponent": { "name": "QDNET" @@ -86991,7 +90744,7 @@ }, "fullDescription": { "text": "readability-non-const-parameter clang-tidy check · Learn more", - "markdown": "readability-non-const-parameter clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/non-const-parameter.html)" + "markdown": "readability-non-const-parameter clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/non-const-parameter.html)" }, "defaultConfiguration": { "enabled": false, @@ -86999,13 +90752,14 @@ "parameters": { "suppressToolId": "CppClangTidyReadabilityNonConstParameter", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -87024,7 +90778,7 @@ }, "fullDescription": { "text": "bugprone-dangling-handle clang-tidy check · Learn more", - "markdown": "bugprone-dangling-handle clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/dangling-handle.html)" + "markdown": "bugprone-dangling-handle clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/dangling-handle.html)" }, "defaultConfiguration": { "enabled": true, @@ -87032,13 +90786,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneDanglingHandle", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -87065,14 +90820,15 @@ "parameters": { "suppressToolId": "StdIsConstantEvaluatedWillAlwaysEvaluateToConstant", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Common Practices and Code Improvements", - "index": 17, + "id": "C_C++/Common Practices and Code Improvements", + "index": 16, "toolComponent": { "name": "QDNET" } @@ -87090,7 +90846,7 @@ }, "fullDescription": { "text": "-Wmicrosoft-drectve-section clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-drectve-section clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-drectve-section)" + "markdown": "-Wmicrosoft-drectve-section clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-drectve-section)" }, "defaultConfiguration": { "enabled": true, @@ -87098,13 +90854,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftDrectveSection", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -87123,7 +90880,7 @@ }, "fullDescription": { "text": "-Wdocumentation-html clang diagnostic · Learn more", - "markdown": "-Wdocumentation-html clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdocumentation-html)" + "markdown": "-Wdocumentation-html clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdocumentation-html)" }, "defaultConfiguration": { "enabled": false, @@ -87131,13 +90888,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDocumentationHtml", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -87156,7 +90914,7 @@ }, "fullDescription": { "text": "-Wsuspicious-bzero clang diagnostic · Learn more", - "markdown": "-Wsuspicious-bzero clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wsuspicious-bzero)" + "markdown": "-Wsuspicious-bzero clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wsuspicious-bzero)" }, "defaultConfiguration": { "enabled": true, @@ -87164,13 +90922,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticSuspiciousBzero", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -87197,13 +90956,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerSecurityFloatLoopCounter", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -87230,14 +90990,15 @@ "parameters": { "suppressToolId": "ReplaceWithSingleAssignment.True", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -87255,7 +91016,7 @@ }, "fullDescription": { "text": "cppcoreguidelines-avoid-capturing-lambda-coroutines clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-avoid-capturing-lambda-coroutines clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/avoid-capturing-lambda-coroutines.html)" + "markdown": "cppcoreguidelines-avoid-capturing-lambda-coroutines clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/avoid-capturing-lambda-coroutines.html)" }, "defaultConfiguration": { "enabled": true, @@ -87263,13 +91024,14 @@ "parameters": { "suppressToolId": "CppClangTidyCppcoreguidelinesAvoidCapturingLambdaCoroutines", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -87296,7 +91058,8 @@ "parameters": { "suppressToolId": "OptionalParameterHierarchyMismatch", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -87314,6 +91077,40 @@ } ] }, + { + "id": "CppClangTidyClangDiagnosticFormatSignedness", + "shortDescription": { + "text": "format-signedness clang diagnostic" + }, + "fullDescription": { + "text": "-Wformat-signedness clang diagnostic · Learn more", + "markdown": "-Wformat-signedness clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wformat-signedness)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticFormatSignedness", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "UsingStatementResourceInitialization", "shortDescription": { @@ -87329,7 +91126,8 @@ "parameters": { "suppressToolId": "UsingStatementResourceInitialization", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -87362,13 +91160,14 @@ "parameters": { "suppressToolId": "CppRedundantBooleanExpressionArgument", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Redundancies in Code", + "id": "C_C++/Redundancies in Code", "index": 34, "toolComponent": { "name": "QDNET" @@ -87380,6 +91179,40 @@ } ] }, + { + "id": "CppClangTidyReadabilityEnumInitialValue", + "shortDescription": { + "text": "readability-enum-initial-value clang-tidy check" + }, + "fullDescription": { + "text": "readability-enum-initial-value clang-tidy check · Learn more", + "markdown": "readability-enum-initial-value clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/enum-initial-value.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyReadabilityEnumInitialValue", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppClangTidyClangDiagnosticVla", "shortDescription": { @@ -87387,7 +91220,7 @@ }, "fullDescription": { "text": "-Wvla clang diagnostic · Learn more", - "markdown": "-Wvla clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wvla)" + "markdown": "-Wvla clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wvla)" }, "defaultConfiguration": { "enabled": true, @@ -87395,13 +91228,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticVla", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -87420,7 +91254,7 @@ }, "fullDescription": { "text": "-Wbuiltin-requires-header clang diagnostic · Learn more", - "markdown": "-Wbuiltin-requires-header clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wbuiltin-requires-header)" + "markdown": "-Wbuiltin-requires-header clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wbuiltin-requires-header)" }, "defaultConfiguration": { "enabled": true, @@ -87428,13 +91262,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticBuiltinRequiresHeader", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -87461,7 +91296,8 @@ "parameters": { "suppressToolId": "StackAllocInsideLoop", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -87494,13 +91330,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerCoreCallAndMessage", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -87527,13 +91364,14 @@ "parameters": { "suppressToolId": "CDeclarationWithImplicitIntType", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -87560,7 +91398,8 @@ "parameters": { "suppressToolId": "NUnit.RangeStepSignMismatch", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -87593,14 +91432,49 @@ "parameters": { "suppressToolId": "CppRedundantNamespaceDefinition", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Common Practices and Code Improvements", - "index": 17, + "id": "C_C++/Common Practices and Code Improvements", + "index": 16, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppUEMissingStructMember", + "shortDescription": { + "text": "Struct is missing a member required by TStructOpsTypeTraits" + }, + "fullDescription": { + "text": "Struct is missing a member required by TStructOpsTypeTraits", + "markdown": "Struct is missing a member required by TStructOpsTypeTraits" + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "CppUEMissingStructMember", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Unreal Engine", + "index": 6, "toolComponent": { "name": "QDNET" } @@ -87618,7 +91492,7 @@ }, "fullDescription": { "text": "-Wpre-c++23-compat clang diagnostic · Learn more", - "markdown": "-Wpre-c++23-compat clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpre-c-23-compat)" + "markdown": "-Wpre-c++23-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpre-c-23-compat)" }, "defaultConfiguration": { "enabled": false, @@ -87626,13 +91500,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticPreCpp23Compat", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -87659,13 +91534,14 @@ "parameters": { "suppressToolId": "CppStringLiteralToCharPointerConversion", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -87677,6 +91553,40 @@ } ] }, + { + "id": "CppClangTidyBugproneSuspiciousStringviewDataUsage", + "shortDescription": { + "text": "bugprone-suspicious-stringview-data-usage clang-tidy check" + }, + "fullDescription": { + "text": "bugprone-suspicious-stringview-data-usage clang-tidy check · Learn more", + "markdown": "bugprone-suspicious-stringview-data-usage clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/suspicious-stringview-data-usage.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyBugproneSuspiciousStringviewDataUsage", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppClangTidyClangDiagnosticImplicitFallthroughPerFunction", "shortDescription": { @@ -87684,7 +91594,7 @@ }, "fullDescription": { "text": "-Wimplicit-fallthrough-per-function clang diagnostic · Learn more", - "markdown": "-Wimplicit-fallthrough-per-function clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wimplicit-fallthrough-per-function)" + "markdown": "-Wimplicit-fallthrough-per-function clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wimplicit-fallthrough-per-function)" }, "defaultConfiguration": { "enabled": true, @@ -87692,13 +91602,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticImplicitFallthroughPerFunction", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -87717,7 +91628,7 @@ }, "fullDescription": { "text": "-Wdynamic-class-memaccess clang diagnostic · Learn more", - "markdown": "-Wdynamic-class-memaccess clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdynamic-class-memaccess)" + "markdown": "-Wdynamic-class-memaccess clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdynamic-class-memaccess)" }, "defaultConfiguration": { "enabled": true, @@ -87725,13 +91636,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDynamicClassMemaccess", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -87758,7 +91670,8 @@ "parameters": { "suppressToolId": "RedundantAccessorBody", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -87783,7 +91696,7 @@ }, "fullDescription": { "text": "-Wcompound-token-split-by-macro clang diagnostic · Learn more", - "markdown": "-Wcompound-token-split-by-macro clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wcompound-token-split-by-macro)" + "markdown": "-Wcompound-token-split-by-macro clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcompound-token-split-by-macro)" }, "defaultConfiguration": { "enabled": true, @@ -87791,13 +91704,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCompoundTokenSplitByMacro", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -87824,13 +91738,14 @@ "parameters": { "suppressToolId": "CppNotAllPathsReturnValue", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -87849,7 +91764,7 @@ }, "fullDescription": { "text": "-Wnew-returns-null clang diagnostic · Learn more", - "markdown": "-Wnew-returns-null clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wnew-returns-null)" + "markdown": "-Wnew-returns-null clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnew-returns-null)" }, "defaultConfiguration": { "enabled": true, @@ -87857,13 +91772,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticNewReturnsNull", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -87890,14 +91806,83 @@ "parameters": { "suppressToolId": "WebConfig.UnusedRemoveOrClearTag", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "Web.Config/Redundancies in Code", - "index": 90, + "index": 98, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyPerformanceEnumSize", + "shortDescription": { + "text": "performance-enum-size clang-tidy check" + }, + "fullDescription": { + "text": "performance-enum-size clang-tidy check · Learn more", + "markdown": "performance-enum-size clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance/enum-size.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyPerformanceEnumSize", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyReadabilityUseStdMinMax", + "shortDescription": { + "text": "readability-use-std-min-max clang-tidy check" + }, + "fullDescription": { + "text": "readability-use-std-min-max clang-tidy check · Learn more", + "markdown": "readability-use-std-min-max clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/use-std-min-max.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyReadabilityUseStdMinMax", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang-Tidy Checks", + "index": 8, "toolComponent": { "name": "QDNET" } @@ -87923,14 +91908,49 @@ "parameters": { "suppressToolId": "CppEnforceDoStatementBraces", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Syntax Style", - "index": 83, + "id": "C_C++/Syntax Style", + "index": 91, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticSwitchDefault", + "shortDescription": { + "text": "switch-default clang diagnostic" + }, + "fullDescription": { + "text": "-Wswitch-default clang diagnostic · Learn more", + "markdown": "-Wswitch-default clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wswitch-default)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticSwitchDefault", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, "toolComponent": { "name": "QDNET" } @@ -87948,7 +91968,7 @@ }, "fullDescription": { "text": "-Wunused-volatile-lvalue clang diagnostic · Learn more", - "markdown": "-Wunused-volatile-lvalue clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunused-volatile-lvalue)" + "markdown": "-Wunused-volatile-lvalue clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunused-volatile-lvalue)" }, "defaultConfiguration": { "enabled": true, @@ -87956,13 +91976,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnusedVolatileLvalue", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -87974,6 +91995,40 @@ } ] }, + { + "id": "CppClangTidyBugproneCrtpConstructorAccessibility", + "shortDescription": { + "text": "bugprone-crtp-constructor-accessibility clang-tidy check" + }, + "fullDescription": { + "text": "bugprone-crtp-constructor-accessibility clang-tidy check · Learn more", + "markdown": "bugprone-crtp-constructor-accessibility clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/crtp-constructor-accessibility.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyBugproneCrtpConstructorAccessibility", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppClangTidyLlvmNamespaceComment", "shortDescription": { @@ -87981,7 +92036,7 @@ }, "fullDescription": { "text": "llvm-namespace-comment clang-tidy check · Learn more", - "markdown": "llvm-namespace-comment clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/llvm/namespace-comment.html)" + "markdown": "llvm-namespace-comment clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/llvm/namespace-comment.html)" }, "defaultConfiguration": { "enabled": false, @@ -87989,13 +92044,14 @@ "parameters": { "suppressToolId": "CppClangTidyLlvmNamespaceComment", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -88022,14 +92078,15 @@ "parameters": { "suppressToolId": "NestedRecordUpdateCanBeSimplified", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "F#/Redundancies in Code", - "index": 67, + "index": 73, "toolComponent": { "name": "QDNET" } @@ -88047,7 +92104,7 @@ }, "fullDescription": { "text": "-Wunsupported-availability-guard clang diagnostic · Learn more", - "markdown": "-Wunsupported-availability-guard clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunsupported-availability-guard)" + "markdown": "-Wunsupported-availability-guard clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunsupported-availability-guard)" }, "defaultConfiguration": { "enabled": true, @@ -88055,13 +92112,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnsupportedAvailabilityGuard", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -88080,7 +92138,7 @@ }, "fullDescription": { "text": "-Wunsupported-cb clang diagnostic · Learn more", - "markdown": "-Wunsupported-cb clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunsupported-cb)" + "markdown": "-Wunsupported-cb clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunsupported-cb)" }, "defaultConfiguration": { "enabled": true, @@ -88088,13 +92146,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnsupportedCb", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -88121,14 +92180,49 @@ "parameters": { "suppressToolId": "FSharpExpressionCanBeReplacedWithCondition", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "F#/Redundancies in Code", - "index": 67, + "index": 73, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "HtmlErrors", + "shortDescription": { + "text": "HTML Errors" + }, + "fullDescription": { + "text": "HTML Errors", + "markdown": "HTML Errors" + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "HtmlErrors", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "HTML/Non configurable", + "index": 159, "toolComponent": { "name": "QDNET" } @@ -88142,11 +92236,11 @@ { "id": "Odin.OdinMemberPresentInMultipleGroups", "shortDescription": { - "text": "Member is presented in multiple groups" + "text": "Member appears in multiple UI groups simultaneously" }, "fullDescription": { - "text": "Member is presented in multiple groups. It would be added to several UI group simultaneously", - "markdown": "Member is presented in multiple groups. It would be added to several UI group simultaneously" + "text": "Member is included in multiple UI groups and will be displayed multiple times in the UI", + "markdown": "Member is included in multiple UI groups and will be displayed multiple times in the UI" }, "defaultConfiguration": { "enabled": true, @@ -88154,14 +92248,15 @@ "parameters": { "suppressToolId": "Odin.OdinMemberPresentInMultipleGroups", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity", - "index": 19, + "index": 18, "toolComponent": { "name": "QDNET" } @@ -88187,7 +92282,8 @@ "parameters": { "suppressToolId": "MultipleOrderBy", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -88212,7 +92308,7 @@ }, "fullDescription": { "text": "-Wbuiltin-memcpy-chk-size clang diagnostic · Learn more", - "markdown": "-Wbuiltin-memcpy-chk-size clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wbuiltin-memcpy-chk-size)" + "markdown": "-Wbuiltin-memcpy-chk-size clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wbuiltin-memcpy-chk-size)" }, "defaultConfiguration": { "enabled": true, @@ -88220,13 +92316,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticBuiltinMemcpyChkSize", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -88245,7 +92342,7 @@ }, "fullDescription": { "text": "darwin-avoid-spinlock clang-tidy check · Learn more", - "markdown": "darwin-avoid-spinlock clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/darwin/avoid-spinlock.html)" + "markdown": "darwin-avoid-spinlock clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/darwin/avoid-spinlock.html)" }, "defaultConfiguration": { "enabled": false, @@ -88253,13 +92350,14 @@ "parameters": { "suppressToolId": "CppClangTidyDarwinAvoidSpinlock", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -88278,7 +92376,7 @@ }, "fullDescription": { "text": "google-default-arguments clang-tidy check · Learn more", - "markdown": "google-default-arguments clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/google/default-arguments.html)" + "markdown": "google-default-arguments clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/default-arguments.html)" }, "defaultConfiguration": { "enabled": false, @@ -88286,13 +92384,14 @@ "parameters": { "suppressToolId": "CppClangTidyGoogleDefaultArguments", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -88311,7 +92410,7 @@ }, "fullDescription": { "text": "-Wexplicit-initialize-call clang diagnostic · Learn more", - "markdown": "-Wexplicit-initialize-call clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wexplicit-initialize-call)" + "markdown": "-Wexplicit-initialize-call clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wexplicit-initialize-call)" }, "defaultConfiguration": { "enabled": true, @@ -88319,13 +92418,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticExplicitInitializeCall", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -88344,7 +92444,7 @@ }, "fullDescription": { "text": "-Wgnu-flexible-array-initializer clang diagnostic · Learn more", - "markdown": "-Wgnu-flexible-array-initializer clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wgnu-flexible-array-initializer)" + "markdown": "-Wgnu-flexible-array-initializer clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-flexible-array-initializer)" }, "defaultConfiguration": { "enabled": true, @@ -88352,13 +92452,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticGnuFlexibleArrayInitializer", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -88385,13 +92486,14 @@ "parameters": { "suppressToolId": "CppReturnNoValueInNonVoidFunction", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -88410,7 +92512,7 @@ }, "fullDescription": { "text": "-Wundefined-internal clang diagnostic · Learn more", - "markdown": "-Wundefined-internal clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wundefined-internal)" + "markdown": "-Wundefined-internal clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wundefined-internal)" }, "defaultConfiguration": { "enabled": true, @@ -88418,13 +92520,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUndefinedInternal", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -88451,14 +92554,15 @@ "parameters": { "suppressToolId": "LocalizableElement", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "ResX/Potential Code Quality Issues", - "index": 63, + "index": 68, "toolComponent": { "name": "QDNET" } @@ -88476,7 +92580,7 @@ }, "fullDescription": { "text": "-Wproperty-attribute-mismatch clang diagnostic · Learn more", - "markdown": "-Wproperty-attribute-mismatch clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wproperty-attribute-mismatch)" + "markdown": "-Wproperty-attribute-mismatch clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wproperty-attribute-mismatch)" }, "defaultConfiguration": { "enabled": true, @@ -88484,13 +92588,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticPropertyAttributeMismatch", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -88517,13 +92622,14 @@ "parameters": { "suppressToolId": "CppLocalVariableWithNonTrivialDtorIsNeverUsed", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -88535,6 +92641,40 @@ } ] }, + { + "id": "CanSimplifyIsInstanceOfType", + "shortDescription": { + "text": "Use 'is' operator" + }, + "fullDescription": { + "text": "IsAssignableFrom() invocation can be simplified using IsInstanceOfType() or 'is' operator Learn more...", + "markdown": "IsAssignableFrom() invocation can be simplified using IsInstanceOfType() or 'is' operator [Learn more...](https://www.jetbrains.com/help/rider/CanSimplifyIsInstanceOfType.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "CanSimplifyIsInstanceOfType", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 12, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppClangTidyCertOop58Cpp", "shortDescription": { @@ -88542,7 +92682,7 @@ }, "fullDescription": { "text": "cert-oop58-cpp clang-tidy check · Learn more", - "markdown": "cert-oop58-cpp clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cert/oop58-cpp.html)" + "markdown": "cert-oop58-cpp clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/oop58-cpp.html)" }, "defaultConfiguration": { "enabled": true, @@ -88550,13 +92690,14 @@ "parameters": { "suppressToolId": "CppClangTidyCertOop58Cpp", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -88575,7 +92716,7 @@ }, "fullDescription": { "text": "-Wc2x-extensions clang diagnostic · Learn more", - "markdown": "-Wc2x-extensions clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc2x-extensions)" + "markdown": "-Wc2x-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc2x-extensions)" }, "defaultConfiguration": { "enabled": true, @@ -88583,13 +92724,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticC2xExtensions", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -88616,13 +92758,14 @@ "parameters": { "suppressToolId": "CppBadExpressionBracesLineBreaks", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Formatting", + "id": "C_C++/Formatting", "index": 28, "toolComponent": { "name": "QDNET" @@ -88641,7 +92784,7 @@ }, "fullDescription": { "text": "-Wshadow clang diagnostic · Learn more", - "markdown": "-Wshadow clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wshadow)" + "markdown": "-Wshadow clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wshadow)" }, "defaultConfiguration": { "enabled": true, @@ -88649,13 +92792,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticShadow", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -88673,8 +92817,8 @@ "text": "Dictionary lookup can be simplified with 'TryGetValue'" }, "fullDescription": { - "text": "Dictionary lookup can be simplified with 'TryGetValue'", - "markdown": "Dictionary lookup can be simplified with 'TryGetValue'" + "text": "Dictionary lookup can be simplified with 'TryGetValue' Learn more...", + "markdown": "Dictionary lookup can be simplified with 'TryGetValue' [Learn more...](https://www.jetbrains.com/help/rider/CanSimplifyDictionaryLookupWithTryGetValue.html)" }, "defaultConfiguration": { "enabled": true, @@ -88682,14 +92826,15 @@ "parameters": { "suppressToolId": "CanSimplifyDictionaryLookupWithTryGetValue", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -88707,7 +92852,7 @@ }, "fullDescription": { "text": "-Wover-aligned clang diagnostic · Learn more", - "markdown": "-Wover-aligned clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wover-aligned)" + "markdown": "-Wover-aligned clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wover-aligned)" }, "defaultConfiguration": { "enabled": true, @@ -88715,13 +92860,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticOverAligned", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -88739,8 +92885,8 @@ "text": "Variable can be made constexpr" }, "fullDescription": { - "text": "Variable can be made constexpr", - "markdown": "Variable can be made constexpr" + "text": "Variable can be made constexpr Learn more...", + "markdown": "Variable can be made constexpr [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rconst-constexpr)" }, "defaultConfiguration": { "enabled": true, @@ -88748,14 +92894,15 @@ "parameters": { "suppressToolId": "CppVariableCanBeMadeConstexpr", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Common Practices and Code Improvements", - "index": 17, + "id": "C_C++/Common Practices and Code Improvements", + "index": 16, "toolComponent": { "name": "QDNET" } @@ -88772,8 +92919,8 @@ "text": "Inline temporary variable" }, "fullDescription": { - "text": "Inline temporary variable initialized with a value of other variable/parameter to reduce the amount of different names used to reference the same value", - "markdown": "Inline temporary variable initialized with a value of other variable/parameter to reduce the amount of different names used to reference the same value" + "text": "Inline temporary variable initialized with a value of other variable/parameter to reduce the amount of different names used to reference the same value Learn more...", + "markdown": "Inline temporary variable initialized with a value of other variable/parameter to reduce the amount of different names used to reference the same value [Learn more...](https://www.jetbrains.com/help/rider/InlineTemporaryVariable.html)" }, "defaultConfiguration": { "enabled": true, @@ -88781,7 +92928,8 @@ "parameters": { "suppressToolId": "InlineTemporaryVariable", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -88814,13 +92962,14 @@ "parameters": { "suppressToolId": "CppAbstractFinalClass", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -88839,7 +92988,7 @@ }, "fullDescription": { "text": "-Wunderaligned-exception-object clang diagnostic · Learn more", - "markdown": "-Wunderaligned-exception-object clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunderaligned-exception-object)" + "markdown": "-Wunderaligned-exception-object clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunderaligned-exception-object)" }, "defaultConfiguration": { "enabled": true, @@ -88847,13 +92996,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnderalignedExceptionObject", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -88880,7 +93030,8 @@ "parameters": { "suppressToolId": "StaticMemberInitializerReferesToMemberBelow", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -88913,13 +93064,14 @@ "parameters": { "suppressToolId": "CppUsingResultOfAssignmentAsCondition", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -88946,14 +93098,15 @@ "parameters": { "suppressToolId": "RouteTemplates.ControllerRouteParameterIsNotPassedToMethods", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "ASP.NET route templates/Code Notification", - "index": 47, + "index": 48, "toolComponent": { "name": "QDNET" } @@ -88979,7 +93132,8 @@ "parameters": { "suppressToolId": "EqualExpressionComparison", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -89004,7 +93158,7 @@ }, "fullDescription": { "text": "-Wfloat-zero-conversion clang diagnostic · Learn more", - "markdown": "-Wfloat-zero-conversion clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wfloat-zero-conversion)" + "markdown": "-Wfloat-zero-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wfloat-zero-conversion)" }, "defaultConfiguration": { "enabled": true, @@ -89012,13 +93166,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticFloatZeroConversion", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -89045,13 +93200,14 @@ "parameters": { "suppressToolId": "CppRedundantBaseClassInitializer", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Redundancies in Code", + "id": "C_C++/Redundancies in Code", "index": 34, "toolComponent": { "name": "QDNET" @@ -89070,7 +93226,7 @@ }, "fullDescription": { "text": "-Wsizeof-pointer-memaccess clang diagnostic · Learn more", - "markdown": "-Wsizeof-pointer-memaccess clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wsizeof-pointer-memaccess)" + "markdown": "-Wsizeof-pointer-memaccess clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wsizeof-pointer-memaccess)" }, "defaultConfiguration": { "enabled": true, @@ -89078,13 +93234,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticSizeofPointerMemaccess", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -89103,7 +93260,7 @@ }, "fullDescription": { "text": "bugprone-suspicious-enum-usage clang-tidy check · Learn more", - "markdown": "bugprone-suspicious-enum-usage clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/suspicious-enum-usage.html)" + "markdown": "bugprone-suspicious-enum-usage clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/suspicious-enum-usage.html)" }, "defaultConfiguration": { "enabled": true, @@ -89111,13 +93268,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneSuspiciousEnumUsage", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -89136,7 +93294,7 @@ }, "fullDescription": { "text": "-Wpsabi clang diagnostic · Learn more", - "markdown": "-Wpsabi clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpsabi)" + "markdown": "-Wpsabi clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpsabi)" }, "defaultConfiguration": { "enabled": true, @@ -89144,13 +93302,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticPsabi", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -89177,7 +93336,8 @@ "parameters": { "suppressToolId": "RedundantEmptyObjectOrCollectionInitializer", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -89202,7 +93362,7 @@ }, "fullDescription": { "text": "-Wunknown-argument clang diagnostic · Learn more", - "markdown": "-Wunknown-argument clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunknown-argument)" + "markdown": "-Wunknown-argument clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunknown-argument)" }, "defaultConfiguration": { "enabled": true, @@ -89210,13 +93370,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnknownArgument", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -89235,7 +93396,7 @@ }, "fullDescription": { "text": "hicpp-use-nullptr clang-tidy check · Learn more", - "markdown": "hicpp-use-nullptr clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/use-nullptr.html)" + "markdown": "hicpp-use-nullptr clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/use-nullptr.html)" }, "defaultConfiguration": { "enabled": false, @@ -89243,13 +93404,14 @@ "parameters": { "suppressToolId": "CppClangTidyHicppUseNullptr", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -89261,6 +93423,40 @@ } ] }, + { + "id": "CppClangTidyClangDiagnosticTautologicalNegationCompare", + "shortDescription": { + "text": "tautological-negation-compare clang diagnostic" + }, + "fullDescription": { + "text": "-Wtautological-negation-compare clang diagnostic · Learn more", + "markdown": "-Wtautological-negation-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtautological-negation-compare)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticTautologicalNegationCompare", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "UseNullableReferenceTypesAnnotationSyntax", "shortDescription": { @@ -89276,7 +93472,8 @@ "parameters": { "suppressToolId": "UseNullableReferenceTypesAnnotationSyntax", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -89309,7 +93506,8 @@ "parameters": { "suppressToolId": "IntVariableOverflowInCheckedContext", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -89334,7 +93532,7 @@ }, "fullDescription": { "text": "-Wpre-c++20-compat-pedantic clang diagnostic · Learn more", - "markdown": "-Wpre-c++20-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpre-c-20-compat-pedantic)" + "markdown": "-Wpre-c++20-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpre-c-20-compat-pedantic)" }, "defaultConfiguration": { "enabled": false, @@ -89342,13 +93540,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticPreCpp20CompatPedantic", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -89375,14 +93574,15 @@ "parameters": { "suppressToolId": "ClassCanBeSealed.Local", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -89408,7 +93608,8 @@ "parameters": { "suppressToolId": "FunctionRecursiveOnAllPaths", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -89441,14 +93642,15 @@ "parameters": { "suppressToolId": "Unity.PreferGenericMethodOverload", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity", - "index": 19, + "index": 18, "toolComponent": { "name": "QDNET" } @@ -89465,8 +93667,8 @@ "text": "Usage of tabulation character for indentation is prohibited" }, "fullDescription": { - "text": "Use this inspection to prohibit use of tabulation character for code indentation", - "markdown": "Use this inspection to prohibit use of tabulation character for code indentation" + "text": "Use this inspection to prohibit use of tabulation character for code indentation Learn more...", + "markdown": "Use this inspection to prohibit use of tabulation character for code indentation [Learn more...](https://www.jetbrains.com/help/rider/TabsAreDisallowed.html)" }, "defaultConfiguration": { "enabled": false, @@ -89474,7 +93676,8 @@ "parameters": { "suppressToolId": "TabsAreDisallowed", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -89499,7 +93702,7 @@ }, "fullDescription": { "text": "-Wstring-concatenation clang diagnostic · Learn more", - "markdown": "-Wstring-concatenation clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wstring-concatenation)" + "markdown": "-Wstring-concatenation clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wstring-concatenation)" }, "defaultConfiguration": { "enabled": true, @@ -89507,13 +93710,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticStringConcatenation", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -89540,14 +93744,15 @@ "parameters": { "suppressToolId": "CppPrecompiledHeaderIsNotIncluded", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Compiler Warnings", - "index": 69, + "id": "C_C++/Compiler Warnings", + "index": 75, "toolComponent": { "name": "QDNET" } @@ -89573,13 +93778,14 @@ "parameters": { "suppressToolId": "CppNoDiscardExpression", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -89606,14 +93812,15 @@ "parameters": { "suppressToolId": "RedundantParentheses", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "VB.NET/Redundancies in Code", - "index": 88, + "index": 96, "toolComponent": { "name": "QDNET" } @@ -89631,7 +93838,7 @@ }, "fullDescription": { "text": "-Wgnu-statement-expression-from-macro-expansion clang diagnostic · Learn more", - "markdown": "-Wgnu-statement-expression-from-macro-expansion clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wgnu-statement-expression-from-macro-expansion)" + "markdown": "-Wgnu-statement-expression-from-macro-expansion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-statement-expression-from-macro-expansion)" }, "defaultConfiguration": { "enabled": true, @@ -89639,13 +93846,48 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticGnuStatementExpressionFromMacroExpansion", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticUndefinedArmZt0", + "shortDescription": { + "text": "undefined-arm-zt0 clang diagnostic" + }, + "fullDescription": { + "text": "-Wundefined-arm-zt0 clang diagnostic · Learn more", + "markdown": "-Wundefined-arm-zt0 clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wundefined-arm-zt0)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticUndefinedArmZt0", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -89663,8 +93905,8 @@ "text": "Type member is never accessed via base type (private accessibility)" }, "fullDescription": { - "text": "Type member is never used with base type or interface, it is always accessed via more specific type", - "markdown": "Type member is never used with base type or interface, it is always accessed via more specific type" + "text": "Type member is never used with base type or interface, it is always accessed via more specific type Learn more...", + "markdown": "Type member is never used with base type or interface, it is always accessed via more specific type [Learn more...](https://www.jetbrains.com/help/rider/UnusedMemberInSuper.Local.html)" }, "defaultConfiguration": { "enabled": true, @@ -89672,7 +93914,8 @@ "parameters": { "suppressToolId": "UnusedMemberInSuper.Local", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -89697,7 +93940,7 @@ }, "fullDescription": { "text": "-Wvla-extension clang diagnostic · Learn more", - "markdown": "-Wvla-extension clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wvla-extension)" + "markdown": "-Wvla-extension clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wvla-extension)" }, "defaultConfiguration": { "enabled": true, @@ -89705,13 +93948,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticVlaExtension", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -89738,7 +93982,8 @@ "parameters": { "suppressToolId": "CompareOfFloatsByEqualityOperator", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -89763,7 +94008,7 @@ }, "fullDescription": { "text": "cppcoreguidelines-pro-type-static-cast-downcast clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-pro-type-static-cast-downcast clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/pro-type-static-cast-downcast.html)" + "markdown": "cppcoreguidelines-pro-type-static-cast-downcast clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/pro-type-static-cast-downcast.html)" }, "defaultConfiguration": { "enabled": true, @@ -89771,13 +94016,14 @@ "parameters": { "suppressToolId": "CppClangTidyCppcoreguidelinesProTypeStaticCastDowncast", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -89796,7 +94042,7 @@ }, "fullDescription": { "text": "readability-duplicate-include clang-tidy check · Learn more", - "markdown": "readability-duplicate-include clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/duplicate-include.html)" + "markdown": "readability-duplicate-include clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/duplicate-include.html)" }, "defaultConfiguration": { "enabled": false, @@ -89804,13 +94050,14 @@ "parameters": { "suppressToolId": "CppClangTidyReadabilityDuplicateInclude", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -89829,7 +94076,7 @@ }, "fullDescription": { "text": "cert-dcl03-c clang-tidy check · Learn more", - "markdown": "cert-dcl03-c clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cert/dcl03-c.html)" + "markdown": "cert-dcl03-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/dcl03-c.html)" }, "defaultConfiguration": { "enabled": false, @@ -89837,13 +94084,14 @@ "parameters": { "suppressToolId": "CppClangTidyCertDcl03C", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -89862,7 +94110,7 @@ }, "fullDescription": { "text": "-Wdeprecated-redundant-constexpr-static-def clang diagnostic · Learn more", - "markdown": "-Wdeprecated-redundant-constexpr-static-def clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdeprecated-redundant-constexpr-static-def)" + "markdown": "-Wdeprecated-redundant-constexpr-static-def clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-redundant-constexpr-static-def)" }, "defaultConfiguration": { "enabled": true, @@ -89870,13 +94118,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedRedundantConstexprStaticDef", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -89895,7 +94144,7 @@ }, "fullDescription": { "text": "-Wunreachable-code-generic-assoc clang diagnostic · Learn more", - "markdown": "-Wunreachable-code-generic-assoc clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunreachable-code-generic-assoc)" + "markdown": "-Wunreachable-code-generic-assoc clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunreachable-code-generic-assoc)" }, "defaultConfiguration": { "enabled": true, @@ -89903,13 +94152,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnreachableCodeGenericAssoc", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -89927,8 +94177,8 @@ "text": "Group path is not defined" }, "fullDescription": { - "text": "Using of undefined group will lead to runtime error during Odin's layout.", - "markdown": "Using of undefined group will lead to runtime error during Odin's layout." + "text": "Using an undefined group will lead to a runtime error", + "markdown": "Using an undefined group will lead to a runtime error" }, "defaultConfiguration": { "enabled": true, @@ -89936,14 +94186,15 @@ "parameters": { "suppressToolId": "Odin.OdinUnknownGroupingPath", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity", - "index": 19, + "index": 18, "toolComponent": { "name": "QDNET" } @@ -89961,7 +94212,7 @@ }, "fullDescription": { "text": "cert-dcl54-cpp clang-tidy check · Learn more", - "markdown": "cert-dcl54-cpp clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cert/dcl54-cpp.html)" + "markdown": "cert-dcl54-cpp clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/dcl54-cpp.html)" }, "defaultConfiguration": { "enabled": false, @@ -89969,13 +94220,14 @@ "parameters": { "suppressToolId": "CppClangTidyCertDcl54Cpp", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -89994,7 +94246,7 @@ }, "fullDescription": { "text": "-Wmissing-field-initializers clang diagnostic · Learn more", - "markdown": "-Wmissing-field-initializers clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmissing-field-initializers)" + "markdown": "-Wmissing-field-initializers clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmissing-field-initializers)" }, "defaultConfiguration": { "enabled": true, @@ -90002,13 +94254,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMissingFieldInitializers", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -90035,14 +94288,49 @@ "parameters": { "suppressToolId": "NonParsableElement", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Code Notification", - "index": 137, + "index": 160, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ShaderLabShaderReferenceMultipleCandidates", + "shortDescription": { + "text": "Multiple Shaders with the same name found" + }, + "fullDescription": { + "text": "Reference.GetName()", + "markdown": "Reference.GetName()" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "ShaderLabShaderReferenceMultipleCandidates", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Compiler Warnings", + "index": 27, "toolComponent": { "name": "QDNET" } @@ -90068,7 +94356,8 @@ "parameters": { "suppressToolId": "MemberInitializerValueIgnored", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -90093,7 +94382,7 @@ }, "fullDescription": { "text": "-Wconstant-logical-operand clang diagnostic · Learn more", - "markdown": "-Wconstant-logical-operand clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wconstant-logical-operand)" + "markdown": "-Wconstant-logical-operand clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wconstant-logical-operand)" }, "defaultConfiguration": { "enabled": true, @@ -90101,13 +94390,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticConstantLogicalOperand", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -90134,14 +94424,15 @@ "parameters": { "suppressToolId": "CheckNamespace", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Constraints Violations", - "index": 73, + "index": 80, "toolComponent": { "name": "QDNET" } @@ -90167,14 +94458,15 @@ "parameters": { "suppressToolId": "ReplaceWithSingleCallToAny", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -90200,7 +94492,8 @@ "parameters": { "suppressToolId": "ConvertToAutoProperty", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -90221,11 +94514,11 @@ { "id": "NotAccessedOutParameterVariable", "shortDescription": { - "text": "Non-accessed local variable only used to discard the 'out' parameter value" + "text": "Non-accessed local variable is only used to discard the 'out' parameter value" }, "fullDescription": { - "text": "Non-accessed local variable only used to discard the 'out' parameter value", - "markdown": "Non-accessed local variable only used to discard the 'out' parameter value" + "text": "Non-accessed local variable is only used to discard the 'out' parameter value Learn more...", + "markdown": "Non-accessed local variable is only used to discard the 'out' parameter value [Learn more...](https://www.jetbrains.com/help/rider/NotAccessedOutParameterVariable.html)" }, "defaultConfiguration": { "enabled": true, @@ -90233,7 +94526,8 @@ "parameters": { "suppressToolId": "NotAccessedOutParameterVariable", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -90266,7 +94560,8 @@ "parameters": { "suppressToolId": "VBUseFirstInstead", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -90299,14 +94594,15 @@ "parameters": { "suppressToolId": "RouteTemplates.RouteTokenNotResolved", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "ASP.NET route templates/Code Notification", - "index": 47, + "index": 48, "toolComponent": { "name": "QDNET" } @@ -90323,8 +94619,8 @@ "text": "Unused local variable" }, "fullDescription": { - "text": "Local variable is never used (compiler warning)", - "markdown": "Local variable is never used (compiler warning)" + "text": "Local variable is never used (compiler warning) Learn more...", + "markdown": "Local variable is never used (compiler warning) [Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/misc/cs0168)" }, "defaultConfiguration": { "enabled": true, @@ -90332,7 +94628,8 @@ "parameters": { "suppressToolId": "UnusedVariable.Compiler", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -90357,7 +94654,7 @@ }, "fullDescription": { "text": "-Wpre-c++14-compat clang diagnostic · Learn more", - "markdown": "-Wpre-c++14-compat clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpre-c-14-compat)" + "markdown": "-Wpre-c++14-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpre-c-14-compat)" }, "defaultConfiguration": { "enabled": false, @@ -90365,13 +94662,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticPreCpp14Compat", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -90398,7 +94696,8 @@ "parameters": { "suppressToolId": "EmptyGeneralCatchClause", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -90416,6 +94715,40 @@ } ] }, + { + "id": "ShaderLabErrors", + "shortDescription": { + "text": "ShaderLab Errors" + }, + "fullDescription": { + "text": "ShaderLab Errors", + "markdown": "ShaderLab Errors" + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "ShaderLabErrors", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "ShaderLab/Non configurable", + "index": 150, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "RiderSolutionErrorsInspection", "shortDescription": { @@ -90426,19 +94759,20 @@ "markdown": "Reports toolset and environment errors detected by Rider." }, "defaultConfiguration": { - "enabled": true, + "enabled": false, "level": "error", "parameters": { "suppressToolId": "RiderSolutionErrorsInspection", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "Rider/General", - "index": 134, + "index": 156, "toolComponent": { "name": "QDNET" } @@ -90456,7 +94790,7 @@ }, "fullDescription": { "text": "-Wmicrosoft-unqualified-friend clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-unqualified-friend clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-unqualified-friend)" + "markdown": "-Wmicrosoft-unqualified-friend clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-unqualified-friend)" }, "defaultConfiguration": { "enabled": true, @@ -90464,13 +94798,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftUnqualifiedFriend", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -90489,7 +94824,7 @@ }, "fullDescription": { "text": "-Wignored-qualifiers clang diagnostic · Learn more", - "markdown": "-Wignored-qualifiers clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wignored-qualifiers)" + "markdown": "-Wignored-qualifiers clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wignored-qualifiers)" }, "defaultConfiguration": { "enabled": true, @@ -90497,13 +94832,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticIgnoredQualifiers", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -90530,7 +94866,8 @@ "parameters": { "suppressToolId": "PossibleMultipleEnumeration", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -90555,7 +94892,7 @@ }, "fullDescription": { "text": "-Wgnu-line-marker clang diagnostic · Learn more", - "markdown": "-Wgnu-line-marker clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wgnu-line-marker)" + "markdown": "-Wgnu-line-marker clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-line-marker)" }, "defaultConfiguration": { "enabled": true, @@ -90563,13 +94900,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticGnuLineMarker", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -90596,14 +94934,15 @@ "parameters": { "suppressToolId": "AutoPropertyCanBeMadeGetOnly.Global", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -90629,7 +94968,8 @@ "parameters": { "suppressToolId": "NotDisposedResource", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -90654,7 +94994,7 @@ }, "fullDescription": { "text": "-Wenum-float-conversion clang diagnostic · Learn more", - "markdown": "-Wenum-float-conversion clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wenum-float-conversion)" + "markdown": "-Wenum-float-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wenum-float-conversion)" }, "defaultConfiguration": { "enabled": true, @@ -90662,13 +95002,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticEnumFloatConversion", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -90695,14 +95036,49 @@ "parameters": { "suppressToolId": "VBWarnings__BC42105,BC42106,BC42107", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "VB.NET/Compiler Warnings", - "index": 100, + "index": 110, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticTemplateInDeclarationName", + "shortDescription": { + "text": "template-in-declaration-name clang diagnostic" + }, + "fullDescription": { + "text": "-Wtemplate-in-declaration-name clang diagnostic · Learn more", + "markdown": "-Wtemplate-in-declaration-name clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtemplate-in-declaration-name)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticTemplateInDeclarationName", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, "toolComponent": { "name": "QDNET" } @@ -90728,13 +95104,14 @@ "parameters": { "suppressToolId": "CppBadChildStatementIndent", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Formatting", + "id": "C_C++/Formatting", "index": 28, "toolComponent": { "name": "QDNET" @@ -90761,7 +95138,8 @@ "parameters": { "suppressToolId": "PassStringInterpolation", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -90786,7 +95164,7 @@ }, "fullDescription": { "text": "google-readability-braces-around-statements clang-tidy check · Learn more", - "markdown": "google-readability-braces-around-statements clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/google/readability-braces-around-statements.html)" + "markdown": "google-readability-braces-around-statements clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/readability-braces-around-statements.html)" }, "defaultConfiguration": { "enabled": false, @@ -90794,13 +95172,14 @@ "parameters": { "suppressToolId": "CppClangTidyGoogleReadabilityBracesAroundStatements", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -90827,7 +95206,8 @@ "parameters": { "suppressToolId": "RedundantArrayCreationExpression", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -90860,7 +95240,8 @@ "parameters": { "suppressToolId": "ConvertIfStatementToReturnStatement", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -90878,6 +95259,40 @@ } ] }, + { + "id": "CppClangTidyClangDiagnosticIncompatibleMsPragmaSection", + "shortDescription": { + "text": "incompatible-ms-pragma-section clang diagnostic" + }, + "fullDescription": { + "text": "-Wincompatible-ms-pragma-section clang diagnostic · Learn more", + "markdown": "-Wincompatible-ms-pragma-section clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wincompatible-ms-pragma-section)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticIncompatibleMsPragmaSection", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "MultipleStatementsOnOneLine", "shortDescription": { @@ -90893,7 +95308,8 @@ "parameters": { "suppressToolId": "MultipleStatementsOnOneLine", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -90926,7 +95342,8 @@ "parameters": { "suppressToolId": "UseNameOfInsteadOfTypeOf", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -90959,14 +95376,15 @@ "parameters": { "suppressToolId": "VBWarnings__BC40056", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "VB.NET/Compiler Warnings", - "index": 100, + "index": 110, "toolComponent": { "name": "QDNET" } @@ -90984,7 +95402,7 @@ }, "fullDescription": { "text": "-Wrange-loop-analysis clang diagnostic · Learn more", - "markdown": "-Wrange-loop-analysis clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wrange-loop-analysis)" + "markdown": "-Wrange-loop-analysis clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wrange-loop-analysis)" }, "defaultConfiguration": { "enabled": true, @@ -90992,13 +95410,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticRangeLoopAnalysis", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -91025,14 +95444,15 @@ "parameters": { "suppressToolId": "UseImplicitByValModifier", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "VB.NET/Redundancies in Code", - "index": 88, + "index": 96, "toolComponent": { "name": "QDNET" } @@ -91058,13 +95478,14 @@ "parameters": { "suppressToolId": "CppNodiscardFunctionWithoutReturnValue", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -91091,7 +95512,8 @@ "parameters": { "suppressToolId": "RedundantImmediateDelegateInvocation", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -91124,7 +95546,8 @@ "parameters": { "suppressToolId": "ArrangeTypeMemberModifiers", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -91149,7 +95572,7 @@ }, "fullDescription": { "text": "bugprone-standalone-empty clang-tidy check · Learn more", - "markdown": "bugprone-standalone-empty clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/standalone-empty.html)" + "markdown": "bugprone-standalone-empty clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/standalone-empty.html)" }, "defaultConfiguration": { "enabled": true, @@ -91157,13 +95580,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneStandaloneEmpty", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -91190,13 +95614,14 @@ "parameters": { "suppressToolId": "CppBadSpacesAfterKeyword", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Formatting", + "id": "C_C++/Formatting", "index": 28, "toolComponent": { "name": "QDNET" @@ -91223,7 +95648,8 @@ "parameters": { "suppressToolId": "IntroduceOptionalParameters.Local", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -91256,7 +95682,8 @@ "parameters": { "suppressToolId": "NUnit.AutoFixture.RedundantArgumentInInlineAutoDataAttribute", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -91289,13 +95716,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerOptinCplusplusVirtualCall", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -91314,7 +95742,7 @@ }, "fullDescription": { "text": "-Wnullability-extension clang diagnostic · Learn more", - "markdown": "-Wnullability-extension clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wnullability-extension)" + "markdown": "-Wnullability-extension clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnullability-extension)" }, "defaultConfiguration": { "enabled": true, @@ -91322,13 +95750,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticNullabilityExtension", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -91347,7 +95776,7 @@ }, "fullDescription": { "text": "-Wclang-cl-pch clang diagnostic · Learn more", - "markdown": "-Wclang-cl-pch clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wclang-cl-pch)" + "markdown": "-Wclang-cl-pch clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wclang-cl-pch)" }, "defaultConfiguration": { "enabled": false, @@ -91355,13 +95784,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticClangClPch", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -91388,13 +95818,14 @@ "parameters": { "suppressToolId": "CppEntityUsedOnlyInUnevaluatedContext", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -91421,7 +95852,8 @@ "parameters": { "suppressToolId": "RedundantFixedPointerDeclaration", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -91454,14 +95886,15 @@ "parameters": { "suppressToolId": "Html.Warning", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "HTML/Potential Code Quality Issues", - "index": 51, + "index": 54, "toolComponent": { "name": "QDNET" } @@ -91487,13 +95920,14 @@ "parameters": { "suppressToolId": "CppRedundantControlFlowJump", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Redundancies in Code", + "id": "C_C++/Redundancies in Code", "index": 34, "toolComponent": { "name": "QDNET" @@ -91520,7 +95954,8 @@ "parameters": { "suppressToolId": "RawStringCanBeSimplified", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -91545,7 +95980,7 @@ }, "fullDescription": { "text": "-Wbranch-protection clang diagnostic · Learn more", - "markdown": "-Wbranch-protection clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wbranch-protection)" + "markdown": "-Wbranch-protection clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wbranch-protection)" }, "defaultConfiguration": { "enabled": true, @@ -91553,13 +95988,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticBranchProtection", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -91586,7 +96022,8 @@ "parameters": { "suppressToolId": "ConvertToUsingDeclaration", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -91619,13 +96056,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerWebkitUncountedLambdaCapturesChecker", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -91644,7 +96082,7 @@ }, "fullDescription": { "text": "-Wmicrosoft-include clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-include clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-include)" + "markdown": "-Wmicrosoft-include clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-include)" }, "defaultConfiguration": { "enabled": true, @@ -91652,13 +96090,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftInclude", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -91677,7 +96116,7 @@ }, "fullDescription": { "text": "-Wliteral-conversion clang diagnostic · Learn more", - "markdown": "-Wliteral-conversion clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wliteral-conversion)" + "markdown": "-Wliteral-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wliteral-conversion)" }, "defaultConfiguration": { "enabled": true, @@ -91685,13 +96124,48 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticLiteralConversion", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticHlslAvailability", + "shortDescription": { + "text": "hlsl-availability clang diagnostic" + }, + "fullDescription": { + "text": "-Whlsl-availability clang diagnostic · Learn more", + "markdown": "-Whlsl-availability clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#whlsl-availability)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticHlslAvailability", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -91710,7 +96184,7 @@ }, "fullDescription": { "text": "-Waddress-of-packed-member clang diagnostic · Learn more", - "markdown": "-Waddress-of-packed-member clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#waddress-of-packed-member)" + "markdown": "-Waddress-of-packed-member clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#waddress-of-packed-member)" }, "defaultConfiguration": { "enabled": true, @@ -91718,13 +96192,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticAddressOfPackedMember", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -91743,7 +96218,7 @@ }, "fullDescription": { "text": "-Wgnu-folding-constant clang diagnostic · Learn more", - "markdown": "-Wgnu-folding-constant clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wgnu-folding-constant)" + "markdown": "-Wgnu-folding-constant clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-folding-constant)" }, "defaultConfiguration": { "enabled": true, @@ -91751,13 +96226,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticGnuFoldingConstant", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -91776,7 +96252,7 @@ }, "fullDescription": { "text": "readability-implicit-bool-conversion clang-tidy check · Learn more", - "markdown": "readability-implicit-bool-conversion clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/implicit-bool-conversion.html)" + "markdown": "readability-implicit-bool-conversion clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/implicit-bool-conversion.html)" }, "defaultConfiguration": { "enabled": false, @@ -91784,13 +96260,14 @@ "parameters": { "suppressToolId": "CppClangTidyReadabilityImplicitBoolConversion", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -91809,7 +96286,7 @@ }, "fullDescription": { "text": "-Wambiguous-delete clang diagnostic · Learn more", - "markdown": "-Wambiguous-delete clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wambiguous-delete)" + "markdown": "-Wambiguous-delete clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wambiguous-delete)" }, "defaultConfiguration": { "enabled": true, @@ -91817,13 +96294,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticAmbiguousDelete", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -91842,7 +96320,7 @@ }, "fullDescription": { "text": "-Wopencl-unsupported-rgba clang diagnostic · Learn more", - "markdown": "-Wopencl-unsupported-rgba clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wopencl-unsupported-rgba)" + "markdown": "-Wopencl-unsupported-rgba clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wopencl-unsupported-rgba)" }, "defaultConfiguration": { "enabled": true, @@ -91850,13 +96328,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticOpenclUnsupportedRgba", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -91875,7 +96354,7 @@ }, "fullDescription": { "text": "-Wthread-safety-reference clang diagnostic · Learn more", - "markdown": "-Wthread-safety-reference clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wthread-safety-reference)" + "markdown": "-Wthread-safety-reference clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wthread-safety-reference)" }, "defaultConfiguration": { "enabled": true, @@ -91883,13 +96362,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticThreadSafetyReference", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -91908,7 +96388,7 @@ }, "fullDescription": { "text": "-Wopenmp-clauses clang diagnostic · Learn more", - "markdown": "-Wopenmp-clauses clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wopenmp-clauses)" + "markdown": "-Wopenmp-clauses clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wopenmp-clauses)" }, "defaultConfiguration": { "enabled": true, @@ -91916,13 +96396,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticOpenmpClauses", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -91935,28 +96416,29 @@ ] }, { - "id": "EmptyEmbeddedStatement", + "id": "CppClangTidyClangDiagnosticOpenmpTarget", "shortDescription": { - "text": "Empty control statement body" + "text": "openmp-target clang diagnostic" }, "fullDescription": { - "text": "Empty control statement body Learn more...", - "markdown": "Empty control statement body [Learn more...](https://www.jetbrains.com/help/rider/EmptyEmbeddedStatement.html)" + "text": "-Wopenmp-target clang diagnostic · Learn more", + "markdown": "-Wopenmp-target clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wopenmp-target)" }, "defaultConfiguration": { "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "EmptyEmbeddedStatement", + "suppressToolId": "CppClangTidyClangDiagnosticOpenmpTarget", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 14, + "id": "C_C++/Clang Diagnostics", + "index": 3, "toolComponent": { "name": "QDNET" } @@ -91968,28 +96450,29 @@ ] }, { - "id": "CppClangTidyClangDiagnosticOpenmpTarget", + "id": "RegExpErrors", "shortDescription": { - "text": "openmp-target clang diagnostic" + "text": "Regular Expression Errors" }, "fullDescription": { - "text": "-Wopenmp-target clang diagnostic · Learn more", - "markdown": "-Wopenmp-target clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wopenmp-target)" + "text": "Regular Expression Errors", + "markdown": "Regular Expression Errors" }, "defaultConfiguration": { "enabled": true, - "level": "warning", + "level": "error", "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticOpenmpTarget", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "suppressToolId": "RegExpErrors", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", - "index": 3, + "id": "RegExpBase/Non configurable", + "index": 162, "toolComponent": { "name": "QDNET" } @@ -92015,7 +96498,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8123", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -92040,7 +96524,7 @@ }, "fullDescription": { "text": "fuchsia-trailing-return clang-tidy check · Learn more", - "markdown": "fuchsia-trailing-return clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/fuchsia/trailing-return.html)" + "markdown": "fuchsia-trailing-return clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/fuchsia/trailing-return.html)" }, "defaultConfiguration": { "enabled": false, @@ -92048,13 +96532,14 @@ "parameters": { "suppressToolId": "CppClangTidyFuchsiaTrailingReturn", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -92081,13 +96566,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerCoreDivideZero", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -92106,7 +96592,7 @@ }, "fullDescription": { "text": "bugprone-undefined-memory-manipulation clang-tidy check · Learn more", - "markdown": "bugprone-undefined-memory-manipulation clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/undefined-memory-manipulation.html)" + "markdown": "bugprone-undefined-memory-manipulation clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/undefined-memory-manipulation.html)" }, "defaultConfiguration": { "enabled": true, @@ -92114,13 +96600,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneUndefinedMemoryManipulation", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -92147,7 +96634,8 @@ "parameters": { "suppressToolId": "OperatorIsCanBeUsed", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -92180,14 +96668,15 @@ "parameters": { "suppressToolId": "MethodSupportsCancellation", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -92205,7 +96694,7 @@ }, "fullDescription": { "text": "bugprone-argument-comment clang-tidy check · Learn more", - "markdown": "bugprone-argument-comment clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/argument-comment.html)" + "markdown": "bugprone-argument-comment clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/argument-comment.html)" }, "defaultConfiguration": { "enabled": true, @@ -92213,13 +96702,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneArgumentComment", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -92238,7 +96728,7 @@ }, "fullDescription": { "text": "hicpp-special-member-functions clang-tidy check · Learn more", - "markdown": "hicpp-special-member-functions clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/special-member-functions.html)" + "markdown": "hicpp-special-member-functions clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/special-member-functions.html)" }, "defaultConfiguration": { "enabled": false, @@ -92246,13 +96736,14 @@ "parameters": { "suppressToolId": "CppClangTidyHicppSpecialMemberFunctions", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -92271,7 +96762,7 @@ }, "fullDescription": { "text": "-Wassign-enum clang diagnostic · Learn more", - "markdown": "-Wassign-enum clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wassign-enum)" + "markdown": "-Wassign-enum clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wassign-enum)" }, "defaultConfiguration": { "enabled": true, @@ -92279,13 +96770,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticAssignEnum", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -92304,7 +96796,7 @@ }, "fullDescription": { "text": "-Wtype-safety clang diagnostic · Learn more", - "markdown": "-Wtype-safety clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wtype-safety)" + "markdown": "-Wtype-safety clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtype-safety)" }, "defaultConfiguration": { "enabled": true, @@ -92312,13 +96804,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticTypeSafety", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -92345,13 +96838,14 @@ "parameters": { "suppressToolId": "CppRedundantStaticSpecifierOnMemberAllocationFunction", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Redundancies in Code", + "id": "C_C++/Redundancies in Code", "index": 34, "toolComponent": { "name": "QDNET" @@ -92363,6 +96857,40 @@ } ] }, + { + "id": "CppClangTidyClangDiagnosticExcessiveRegsave", + "shortDescription": { + "text": "excessive-regsave clang diagnostic" + }, + "fullDescription": { + "text": "-Wexcessive-regsave clang diagnostic · Learn more", + "markdown": "-Wexcessive-regsave clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wexcessive-regsave)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticExcessiveRegsave", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppClangTidyClangDiagnosticAmbiguousReversedOperator", "shortDescription": { @@ -92370,7 +96898,7 @@ }, "fullDescription": { "text": "-Wambiguous-reversed-operator clang diagnostic · Learn more", - "markdown": "-Wambiguous-reversed-operator clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wambiguous-reversed-operator)" + "markdown": "-Wambiguous-reversed-operator clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wambiguous-reversed-operator)" }, "defaultConfiguration": { "enabled": true, @@ -92378,13 +96906,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticAmbiguousReversedOperator", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -92411,7 +96940,8 @@ "parameters": { "suppressToolId": "RedundantParams", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -92429,6 +96959,40 @@ } ] }, + { + "id": "YamlErrors", + "shortDescription": { + "text": "YAML Errors" + }, + "fullDescription": { + "text": "YAML Errors", + "markdown": "YAML Errors" + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "YamlErrors", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "YAML/Non configurable", + "index": 163, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppClangTidyClangDiagnosticIncompatibleExceptionSpec", "shortDescription": { @@ -92436,7 +97000,7 @@ }, "fullDescription": { "text": "-Wincompatible-exception-spec clang diagnostic · Learn more", - "markdown": "-Wincompatible-exception-spec clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wincompatible-exception-spec)" + "markdown": "-Wincompatible-exception-spec clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wincompatible-exception-spec)" }, "defaultConfiguration": { "enabled": true, @@ -92444,13 +97008,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticIncompatibleExceptionSpec", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -92469,7 +97034,7 @@ }, "fullDescription": { "text": "-Wmisexpect clang diagnostic · Learn more", - "markdown": "-Wmisexpect clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmisexpect)" + "markdown": "-Wmisexpect clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmisexpect)" }, "defaultConfiguration": { "enabled": true, @@ -92477,13 +97042,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMisexpect", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -92510,13 +97076,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerUnixAPI", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -92543,7 +97110,8 @@ "parameters": { "suppressToolId": "LoopCanBePartlyConvertedToQuery", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -92576,13 +97144,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerCoreNonNullParamChecker", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -92609,7 +97178,8 @@ "parameters": { "suppressToolId": "BadChildStatementIndent", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -92634,7 +97204,7 @@ }, "fullDescription": { "text": "google-objc-global-variable-declaration clang-tidy check · Learn more", - "markdown": "google-objc-global-variable-declaration clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/google/objc-global-variable-declaration.html)" + "markdown": "google-objc-global-variable-declaration clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/objc-global-variable-declaration.html)" }, "defaultConfiguration": { "enabled": false, @@ -92642,13 +97212,14 @@ "parameters": { "suppressToolId": "CppClangTidyGoogleObjcGlobalVariableDeclaration", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -92667,7 +97238,7 @@ }, "fullDescription": { "text": "-Wlong-long clang diagnostic · Learn more", - "markdown": "-Wlong-long clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wlong-long)" + "markdown": "-Wlong-long clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wlong-long)" }, "defaultConfiguration": { "enabled": true, @@ -92675,13 +97246,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticLongLong", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -92699,8 +97271,8 @@ "text": "Member function can be made const" }, "fullDescription": { - "text": "Member function can be made const", - "markdown": "Member function can be made const" + "text": "Member function can be made const Learn more...", + "markdown": "Member function can be made const [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rconst-fct)" }, "defaultConfiguration": { "enabled": true, @@ -92708,14 +97280,15 @@ "parameters": { "suppressToolId": "CppMemberFunctionMayBeConst", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Common Practices and Code Improvements", - "index": 17, + "id": "C_C++/Common Practices and Code Improvements", + "index": 16, "toolComponent": { "name": "QDNET" } @@ -92733,7 +97306,7 @@ }, "fullDescription": { "text": "-Wc++98-compat-extra-semi clang diagnostic · Learn more", - "markdown": "-Wc++98-compat-extra-semi clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-98-compat-extra-semi)" + "markdown": "-Wc++98-compat-extra-semi clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-98-compat-extra-semi)" }, "defaultConfiguration": { "enabled": false, @@ -92741,13 +97314,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCpp98CompatExtraSemi", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -92774,14 +97348,15 @@ "parameters": { "suppressToolId": "IfStdIsConstantEvaluatedCanBeReplaced", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Common Practices and Code Improvements", - "index": 17, + "id": "C_C++/Common Practices and Code Improvements", + "index": 16, "toolComponent": { "name": "QDNET" } @@ -92799,7 +97374,7 @@ }, "fullDescription": { "text": "-Wmissing-noescape clang diagnostic · Learn more", - "markdown": "-Wmissing-noescape clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmissing-noescape)" + "markdown": "-Wmissing-noescape clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmissing-noescape)" }, "defaultConfiguration": { "enabled": true, @@ -92807,13 +97382,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMissingNoescape", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -92832,7 +97408,7 @@ }, "fullDescription": { "text": "-Wint-to-void-pointer-cast clang diagnostic · Learn more", - "markdown": "-Wint-to-void-pointer-cast clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wint-to-void-pointer-cast)" + "markdown": "-Wint-to-void-pointer-cast clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wint-to-void-pointer-cast)" }, "defaultConfiguration": { "enabled": true, @@ -92840,13 +97416,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticIntToVoidPointerCast", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -92873,7 +97450,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS1522", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -92906,7 +97484,8 @@ "parameters": { "suppressToolId": "ArgumentsStyleNamedExpression", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -92939,7 +97518,8 @@ "parameters": { "suppressToolId": "RedundantOverload.Local", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -92964,7 +97544,7 @@ }, "fullDescription": { "text": "misc-unused-parameters clang-tidy check · Learn more", - "markdown": "misc-unused-parameters clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/misc/unused-parameters.html)" + "markdown": "misc-unused-parameters clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/unused-parameters.html)" }, "defaultConfiguration": { "enabled": false, @@ -92972,13 +97552,14 @@ "parameters": { "suppressToolId": "CppClangTidyMiscUnusedParameters", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -92996,8 +97577,8 @@ "text": "Expression is always 'null'" }, "fullDescription": { - "text": "The expression is always evaluated to 'null' at this point", - "markdown": "The expression is always evaluated to 'null' at this point" + "text": "The expression is always evaluated to 'null' at this point Learn more...", + "markdown": "The expression is always evaluated to 'null' at this point [Learn more...](https://www.jetbrains.com/help/rider/ExpressionIsAlwaysNull.html)" }, "defaultConfiguration": { "enabled": true, @@ -93005,7 +97586,8 @@ "parameters": { "suppressToolId": "ExpressionIsAlwaysNull", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -93030,7 +97612,7 @@ }, "fullDescription": { "text": "altera-struct-pack-align clang-tidy check · Learn more", - "markdown": "altera-struct-pack-align clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/altera/struct-pack-align.html)" + "markdown": "altera-struct-pack-align clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/altera/struct-pack-align.html)" }, "defaultConfiguration": { "enabled": false, @@ -93038,13 +97620,14 @@ "parameters": { "suppressToolId": "CppClangTidyAlteraStructPackAlign", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -93063,7 +97646,7 @@ }, "fullDescription": { "text": "llvm-prefer-register-over-unsigned clang-tidy check · Learn more", - "markdown": "llvm-prefer-register-over-unsigned clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/llvm/prefer-register-over-unsigned.html)" + "markdown": "llvm-prefer-register-over-unsigned clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/llvm/prefer-register-over-unsigned.html)" }, "defaultConfiguration": { "enabled": true, @@ -93071,13 +97654,14 @@ "parameters": { "suppressToolId": "CppClangTidyLlvmPreferRegisterOverUnsigned", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -93104,14 +97688,15 @@ "parameters": { "suppressToolId": "CppUseAuto", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Syntax Style", - "index": 83, + "id": "C_C++/Syntax Style", + "index": 91, "toolComponent": { "name": "QDNET" } @@ -93129,7 +97714,7 @@ }, "fullDescription": { "text": "cppcoreguidelines-no-malloc clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-no-malloc clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/no-malloc.html)" + "markdown": "cppcoreguidelines-no-malloc clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/no-malloc.html)" }, "defaultConfiguration": { "enabled": false, @@ -93137,13 +97722,14 @@ "parameters": { "suppressToolId": "CppClangTidyCppcoreguidelinesNoMalloc", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -93162,7 +97748,7 @@ }, "fullDescription": { "text": "-Wnon-literal-null-conversion clang diagnostic · Learn more", - "markdown": "-Wnon-literal-null-conversion clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wnon-literal-null-conversion)" + "markdown": "-Wnon-literal-null-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnon-literal-null-conversion)" }, "defaultConfiguration": { "enabled": true, @@ -93170,13 +97756,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticNonLiteralNullConversion", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -93203,14 +97790,49 @@ "parameters": { "suppressToolId": "MemberCanBeProtected.Local", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticUnsafeBufferUsageInContainer", + "shortDescription": { + "text": "unsafe-buffer-usage-in-container clang diagnostic" + }, + "fullDescription": { + "text": "-Wunsafe-buffer-usage-in-container clang diagnostic · Learn more", + "markdown": "-Wunsafe-buffer-usage-in-container clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunsafe-buffer-usage-in-container)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticUnsafeBufferUsageInContainer", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, "toolComponent": { "name": "QDNET" } @@ -93236,13 +97858,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerCoreUninitializedAssign", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -93269,14 +97892,15 @@ "parameters": { "suppressToolId": "SuggestBaseTypeForParameterInConstructor", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -93294,7 +97918,7 @@ }, "fullDescription": { "text": "android-cloexec-socket clang-tidy check · Learn more", - "markdown": "android-cloexec-socket clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-socket.html)" + "markdown": "android-cloexec-socket clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-socket.html)" }, "defaultConfiguration": { "enabled": false, @@ -93302,13 +97926,14 @@ "parameters": { "suppressToolId": "CppClangTidyAndroidCloexecSocket", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -93335,14 +97960,15 @@ "parameters": { "suppressToolId": "NotObservableAnnotationRedundancy", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -93368,7 +97994,8 @@ "parameters": { "suppressToolId": "SuppressNullableWarningExpressionAsInvertedIsExpression", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -93393,7 +98020,7 @@ }, "fullDescription": { "text": "hicpp-use-override clang-tidy check · Learn more", - "markdown": "hicpp-use-override clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/use-override.html)" + "markdown": "hicpp-use-override clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/use-override.html)" }, "defaultConfiguration": { "enabled": false, @@ -93401,13 +98028,14 @@ "parameters": { "suppressToolId": "CppClangTidyHicppUseOverride", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -93426,7 +98054,7 @@ }, "fullDescription": { "text": "-Wc++2b-extensions clang diagnostic · Learn more", - "markdown": "-Wc++2b-extensions clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-2b-extensions)" + "markdown": "-Wc++2b-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-2b-extensions)" }, "defaultConfiguration": { "enabled": true, @@ -93434,13 +98062,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCpp2bExtensions", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -93459,7 +98088,7 @@ }, "fullDescription": { "text": "bugprone-not-null-terminated-result clang-tidy check · Learn more", - "markdown": "bugprone-not-null-terminated-result clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/not-null-terminated-result.html)" + "markdown": "bugprone-not-null-terminated-result clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/not-null-terminated-result.html)" }, "defaultConfiguration": { "enabled": true, @@ -93467,13 +98096,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneNotNullTerminatedResult", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -93500,7 +98130,8 @@ "parameters": { "suppressToolId": "BadPreprocessorIndent", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -93533,14 +98164,15 @@ "parameters": { "suppressToolId": "Unity.PerformanceCriticalCodeCameraMain", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity Performance Inspections", - "index": 115, + "index": 128, "toolComponent": { "name": "QDNET" } @@ -93566,14 +98198,15 @@ "parameters": { "suppressToolId": "FieldCanBeMadeReadOnly.Local", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -93591,7 +98224,7 @@ }, "fullDescription": { "text": "-Wpointer-compare clang diagnostic · Learn more", - "markdown": "-Wpointer-compare clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpointer-compare)" + "markdown": "-Wpointer-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpointer-compare)" }, "defaultConfiguration": { "enabled": true, @@ -93599,13 +98232,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticPointerCompare", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -93632,13 +98266,14 @@ "parameters": { "suppressToolId": "CppRedundantTemplateKeyword", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Redundancies in Code", + "id": "C_C++/Redundancies in Code", "index": 34, "toolComponent": { "name": "QDNET" @@ -93657,7 +98292,7 @@ }, "fullDescription": { "text": "-Wabstract-vbase-init clang diagnostic · Learn more", - "markdown": "-Wabstract-vbase-init clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wabstract-vbase-init)" + "markdown": "-Wabstract-vbase-init clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wabstract-vbase-init)" }, "defaultConfiguration": { "enabled": true, @@ -93665,13 +98300,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticAbstractVbaseInit", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -93690,7 +98326,7 @@ }, "fullDescription": { "text": "-Winvalid-or-nonexistent-directory clang diagnostic · Learn more", - "markdown": "-Winvalid-or-nonexistent-directory clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#winvalid-or-nonexistent-directory)" + "markdown": "-Winvalid-or-nonexistent-directory clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winvalid-or-nonexistent-directory)" }, "defaultConfiguration": { "enabled": true, @@ -93698,13 +98334,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticInvalidOrNonexistentDirectory", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -93731,7 +98368,8 @@ "parameters": { "suppressToolId": "RedundantJumpStatement", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -93764,7 +98402,8 @@ "parameters": { "suppressToolId": "ConvertToLambdaExpression", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -93789,7 +98428,7 @@ }, "fullDescription": { "text": "linuxkernel-must-check-errs clang-tidy check · Learn more", - "markdown": "linuxkernel-must-check-errs clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/linuxkernel/must-check-errs.html)" + "markdown": "linuxkernel-must-check-errs clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/linuxkernel/must-check-errs.html)" }, "defaultConfiguration": { "enabled": true, @@ -93797,13 +98436,14 @@ "parameters": { "suppressToolId": "CppClangTidyLinuxkernelMustCheckErrs", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -93822,7 +98462,7 @@ }, "fullDescription": { "text": "-Wlogical-op-parentheses clang diagnostic · Learn more", - "markdown": "-Wlogical-op-parentheses clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wlogical-op-parentheses)" + "markdown": "-Wlogical-op-parentheses clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wlogical-op-parentheses)" }, "defaultConfiguration": { "enabled": false, @@ -93830,13 +98470,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticLogicalOpParentheses", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -93863,7 +98504,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS1587", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -93896,7 +98538,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS1589", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -93914,6 +98557,40 @@ } ] }, + { + "id": "CSharpErrors", + "shortDescription": { + "text": "C# Compiler Errors" + }, + "fullDescription": { + "text": "C# Compiler Errors", + "markdown": "C# Compiler Errors" + }, + "defaultConfiguration": { + "enabled": false, + "level": "error", + "parameters": { + "suppressToolId": "CSharpErrors", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Non configurable", + "index": 52, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CSharpWarnings__CS1584", "shortDescription": { @@ -93929,7 +98606,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS1584", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -93962,7 +98640,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS1580", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -93987,7 +98666,7 @@ }, "fullDescription": { "text": "-Wpotentially-evaluated-expression clang diagnostic · Learn more", - "markdown": "-Wpotentially-evaluated-expression clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpotentially-evaluated-expression)" + "markdown": "-Wpotentially-evaluated-expression clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpotentially-evaluated-expression)" }, "defaultConfiguration": { "enabled": true, @@ -93995,13 +98674,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticPotentiallyEvaluatedExpression", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -94028,14 +98708,15 @@ "parameters": { "suppressToolId": "MISMATCHED_ASMDEF_FILENAME", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity", - "index": 19, + "index": 18, "toolComponent": { "name": "QDNET" } @@ -94061,7 +98742,8 @@ "parameters": { "suppressToolId": "RedundantBaseConstructorCall", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -94086,7 +98768,7 @@ }, "fullDescription": { "text": "-Wcomment clang diagnostic · Learn more", - "markdown": "-Wcomment clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wcomment)" + "markdown": "-Wcomment clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcomment)" }, "defaultConfiguration": { "enabled": true, @@ -94094,13 +98776,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticComment", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -94127,7 +98810,8 @@ "parameters": { "suppressToolId": "RedundantUsingDirective", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -94152,7 +98836,7 @@ }, "fullDescription": { "text": "-Wtypedef-redefinition clang diagnostic · Learn more", - "markdown": "-Wtypedef-redefinition clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wtypedef-redefinition)" + "markdown": "-Wtypedef-redefinition clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtypedef-redefinition)" }, "defaultConfiguration": { "enabled": true, @@ -94160,13 +98844,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticTypedefRedefinition", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -94185,7 +98870,7 @@ }, "fullDescription": { "text": "fuchsia-multiple-inheritance clang-tidy check · Learn more", - "markdown": "fuchsia-multiple-inheritance clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/fuchsia/multiple-inheritance.html)" + "markdown": "fuchsia-multiple-inheritance clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/fuchsia/multiple-inheritance.html)" }, "defaultConfiguration": { "enabled": false, @@ -94193,13 +98878,14 @@ "parameters": { "suppressToolId": "CppClangTidyFuchsiaMultipleInheritance", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -94226,7 +98912,8 @@ "parameters": { "suppressToolId": "ArrangeNullCheckingPattern", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -94259,7 +98946,8 @@ "parameters": { "suppressToolId": "RedundantQueryOrderByAscendingKeyword", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -94277,6 +98965,40 @@ } ] }, + { + "id": "StructLacksIEquatable.Local", + "shortDescription": { + "text": "Struct lacks 'IEquatable' implementation (private accessibility)" + }, + "fullDescription": { + "text": "Struct overrides equality members but lacks an 'IEquatable' implementation. To prevent boxing in a generic context, implement 'IEquatable'. This inspection only triggers when the struct or its containing type (such as record) is actually used for equality comparisons in the solution. Learn more...", + "markdown": "Struct overrides equality members but lacks an 'IEquatable' implementation. To prevent boxing in a generic context, implement 'IEquatable'. This inspection only triggers when the struct or its containing type (such as record) is actually used for equality comparisons in the solution. [Learn more...](https://www.jetbrains.com/help/rider/StructLacksIEquatable.Local.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "StructLacksIEquatable.Local", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 12, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CSharpWarnings__CS1590", "shortDescription": { @@ -94292,7 +99014,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS1590", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -94325,7 +99048,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS1591", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -94358,7 +99082,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS1592", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -94383,7 +99108,7 @@ }, "fullDescription": { "text": "-Wstatic-inline-explicit-instantiation clang diagnostic · Learn more", - "markdown": "-Wstatic-inline-explicit-instantiation clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wstatic-inline-explicit-instantiation)" + "markdown": "-Wstatic-inline-explicit-instantiation clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wstatic-inline-explicit-instantiation)" }, "defaultConfiguration": { "enabled": true, @@ -94391,13 +99116,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticStaticInlineExplicitInstantiation", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -94424,7 +99150,8 @@ "parameters": { "suppressToolId": "CollectionNeverQueried.Global", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -94457,14 +99184,15 @@ "parameters": { "suppressToolId": "BaseMemberHasParams", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -94482,7 +99210,7 @@ }, "fullDescription": { "text": "-Wunused-exception-parameter clang diagnostic · Learn more", - "markdown": "-Wunused-exception-parameter clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunused-exception-parameter)" + "markdown": "-Wunused-exception-parameter clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunused-exception-parameter)" }, "defaultConfiguration": { "enabled": true, @@ -94490,13 +99218,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnusedExceptionParameter", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -94515,7 +99244,7 @@ }, "fullDescription": { "text": "bugprone-non-zero-enum-to-bool-conversion clang-tidy check · Learn more", - "markdown": "bugprone-non-zero-enum-to-bool-conversion clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/non-zero-enum-to-bool-conversion.html)" + "markdown": "bugprone-non-zero-enum-to-bool-conversion clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/non-zero-enum-to-bool-conversion.html)" }, "defaultConfiguration": { "enabled": true, @@ -94523,13 +99252,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneNonZeroEnumToBoolConversion", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -94547,8 +99277,8 @@ "text": "Zero constant can be replaced with nullptr" }, "fullDescription": { - "text": "Zero constant can be replaced with nullptr", - "markdown": "Zero constant can be replaced with nullptr" + "text": "Zero constant can be replaced with nullptr Learn more...", + "markdown": "Zero constant can be replaced with nullptr [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Res-nullptr)" }, "defaultConfiguration": { "enabled": true, @@ -94556,14 +99286,15 @@ "parameters": { "suppressToolId": "CppZeroConstantCanBeReplacedWithNullptr", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Common Practices and Code Improvements", - "index": 17, + "id": "C_C++/Common Practices and Code Improvements", + "index": 16, "toolComponent": { "name": "QDNET" } @@ -94589,7 +99320,8 @@ "parameters": { "suppressToolId": "AnnotationConflictInHierarchy", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -94622,14 +99354,15 @@ "parameters": { "suppressToolId": "Mvc.InvalidModelType", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "Aspx/Potential Code Quality Issues", - "index": 60, + "index": 64, "toolComponent": { "name": "QDNET" } @@ -94647,7 +99380,7 @@ }, "fullDescription": { "text": "bugprone-multiple-statement-macro clang-tidy check · Learn more", - "markdown": "bugprone-multiple-statement-macro clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/multiple-statement-macro.html)" + "markdown": "bugprone-multiple-statement-macro clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/multiple-statement-macro.html)" }, "defaultConfiguration": { "enabled": true, @@ -94655,13 +99388,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneMultipleStatementMacro", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -94680,7 +99414,7 @@ }, "fullDescription": { "text": "-Wordered-compare-function-pointers clang diagnostic · Learn more", - "markdown": "-Wordered-compare-function-pointers clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wordered-compare-function-pointers)" + "markdown": "-Wordered-compare-function-pointers clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wordered-compare-function-pointers)" }, "defaultConfiguration": { "enabled": true, @@ -94688,13 +99422,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticOrderedCompareFunctionPointers", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -94713,7 +99448,7 @@ }, "fullDescription": { "text": "-Wdeprecated-dynamic-exception-spec clang diagnostic · Learn more", - "markdown": "-Wdeprecated-dynamic-exception-spec clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdeprecated-dynamic-exception-spec)" + "markdown": "-Wdeprecated-dynamic-exception-spec clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-dynamic-exception-spec)" }, "defaultConfiguration": { "enabled": true, @@ -94721,13 +99456,48 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedDynamicExceptionSpec", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticExtractapiMisuse", + "shortDescription": { + "text": "extractapi-misuse clang diagnostic" + }, + "fullDescription": { + "text": "-Wextractapi-misuse clang diagnostic · Learn more", + "markdown": "-Wextractapi-misuse clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wextractapi-misuse)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticExtractapiMisuse", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -94754,13 +99524,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerOptinPortabilityUnixAPI", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -94787,14 +99558,15 @@ "parameters": { "suppressToolId": "InactivePreprocessorBranch", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "VB.NET/Code Notification", - "index": 139, + "index": 166, "toolComponent": { "name": "QDNET" } @@ -94820,14 +99592,15 @@ "parameters": { "suppressToolId": "InvocationIsSkipped", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Code Notification", - "index": 137, + "index": 160, "toolComponent": { "name": "QDNET" } @@ -94853,13 +99626,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerOsxCoreFoundationCFNumber", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -94878,7 +99652,7 @@ }, "fullDescription": { "text": "-Wdelete-non-virtual-dtor clang diagnostic · Learn more", - "markdown": "-Wdelete-non-virtual-dtor clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdelete-non-virtual-dtor)" + "markdown": "-Wdelete-non-virtual-dtor clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdelete-non-virtual-dtor)" }, "defaultConfiguration": { "enabled": true, @@ -94886,13 +99660,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDeleteNonVirtualDtor", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -94911,7 +99686,7 @@ }, "fullDescription": { "text": "-Wmicrosoft-charize clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-charize clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-charize)" + "markdown": "-Wmicrosoft-charize clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-charize)" }, "defaultConfiguration": { "enabled": true, @@ -94919,13 +99694,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftCharize", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -94944,7 +99720,7 @@ }, "fullDescription": { "text": "-Wcalled-once-parameter clang diagnostic · Learn more", - "markdown": "-Wcalled-once-parameter clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wcalled-once-parameter)" + "markdown": "-Wcalled-once-parameter clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcalled-once-parameter)" }, "defaultConfiguration": { "enabled": true, @@ -94952,13 +99728,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCalledOnceParameter", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -94985,7 +99762,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS1571", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -95018,7 +99796,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS1572", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -95051,7 +99830,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS1573", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -95084,7 +99864,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS1574", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -95117,14 +99898,15 @@ "parameters": { "suppressToolId": "ReturnTypeCanBeEnumerable.Global", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -95150,7 +99932,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS1570", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -95183,14 +99966,15 @@ "parameters": { "suppressToolId": "VBWarnings__BC40000", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "VB.NET/Compiler Warnings", - "index": 100, + "index": 110, "toolComponent": { "name": "QDNET" } @@ -95216,14 +100000,15 @@ "parameters": { "suppressToolId": "VBWarnings__BC40008", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "VB.NET/Compiler Warnings", - "index": 100, + "index": 110, "toolComponent": { "name": "QDNET" } @@ -95249,14 +100034,15 @@ "parameters": { "suppressToolId": "ReplaceWithOfType.First.1", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -95274,7 +100060,7 @@ }, "fullDescription": { "text": "-Wformat-extra-args clang diagnostic · Learn more", - "markdown": "-Wformat-extra-args clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wformat-extra-args)" + "markdown": "-Wformat-extra-args clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wformat-extra-args)" }, "defaultConfiguration": { "enabled": true, @@ -95282,13 +100068,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticFormatExtraArgs", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -95315,14 +100102,15 @@ "parameters": { "suppressToolId": "ReplaceWithOfType.First.2", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -95348,7 +100136,8 @@ "parameters": { "suppressToolId": "VBStringIndexOfIsCultureSpecific.1", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -95381,7 +100170,8 @@ "parameters": { "suppressToolId": "VBStringIndexOfIsCultureSpecific.3", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -95406,7 +100196,7 @@ }, "fullDescription": { "text": "android-cloexec-epoll-create1 clang-tidy check · Learn more", - "markdown": "android-cloexec-epoll-create1 clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-epoll-create1.html)" + "markdown": "android-cloexec-epoll-create1 clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-epoll-create1.html)" }, "defaultConfiguration": { "enabled": false, @@ -95414,13 +100204,14 @@ "parameters": { "suppressToolId": "CppClangTidyAndroidCloexecEpollCreate1", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -95447,7 +100238,8 @@ "parameters": { "suppressToolId": "VBStringIndexOfIsCultureSpecific.2", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -95472,7 +100264,7 @@ }, "fullDescription": { "text": "bugprone-swapped-arguments clang-tidy check · Learn more", - "markdown": "bugprone-swapped-arguments clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/swapped-arguments.html)" + "markdown": "bugprone-swapped-arguments clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/swapped-arguments.html)" }, "defaultConfiguration": { "enabled": true, @@ -95480,13 +100272,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneSwappedArguments", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -95504,8 +100297,8 @@ "text": "Zero initialization can be used instead of memset" }, "fullDescription": { - "text": "Zero initialization can be used instead of memset", - "markdown": "Zero initialization can be used instead of memset" + "text": "Zero initialization can be used instead of memset Learn more...", + "markdown": "Zero initialization can be used instead of memset [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rc-memset)" }, "defaultConfiguration": { "enabled": true, @@ -95513,14 +100306,15 @@ "parameters": { "suppressToolId": "CppReplaceMemsetWithZeroInitialization", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Common Practices and Code Improvements", - "index": 17, + "id": "C_C++/Common Practices and Code Improvements", + "index": 16, "toolComponent": { "name": "QDNET" } @@ -95537,8 +100331,8 @@ "text": "Redundant verbatim string prefix" }, "fullDescription": { - "text": "String can be converted into a regular string without any changes", - "markdown": "String can be converted into a regular string without any changes" + "text": "String can be converted into a regular string without any changes Learn more...", + "markdown": "String can be converted into a regular string without any changes [Learn more...](https://www.jetbrains.com/help/rider/RedundantVerbatimStringPrefix.html)" }, "defaultConfiguration": { "enabled": true, @@ -95546,7 +100340,8 @@ "parameters": { "suppressToolId": "RedundantVerbatimStringPrefix", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -95571,7 +100366,7 @@ }, "fullDescription": { "text": "-Wunusable-partial-specialization clang diagnostic · Learn more", - "markdown": "-Wunusable-partial-specialization clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunusable-partial-specialization)" + "markdown": "-Wunusable-partial-specialization clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunusable-partial-specialization)" }, "defaultConfiguration": { "enabled": true, @@ -95579,13 +100374,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnusablePartialSpecialization", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -95612,7 +100408,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CA2252", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -95645,7 +100442,8 @@ "parameters": { "suppressToolId": "IsExpressionAlwaysTrue", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -95663,6 +100461,40 @@ } ] }, + { + "id": "CppClangTidyBugproneIncDecInConditions", + "shortDescription": { + "text": "bugprone-inc-dec-in-conditions clang-tidy check" + }, + "fullDescription": { + "text": "bugprone-inc-dec-in-conditions clang-tidy check · Learn more", + "markdown": "bugprone-inc-dec-in-conditions clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/inc-dec-in-conditions.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyBugproneIncDecInConditions", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppPrintfMissedArg", "shortDescription": { @@ -95678,13 +100510,14 @@ "parameters": { "suppressToolId": "CppPrintfMissedArg", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -95711,7 +100544,8 @@ "parameters": { "suppressToolId": "RedundantBoolCompare", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -95744,7 +100578,8 @@ "parameters": { "suppressToolId": "AccessToModifiedClosure", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -95777,7 +100612,8 @@ "parameters": { "suppressToolId": "RedundantStringFormatCall", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -95810,7 +100646,8 @@ "parameters": { "suppressToolId": "LambdaExpressionMustBeStatic", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -95835,7 +100672,7 @@ }, "fullDescription": { "text": "-Wunknown-sanitizers clang diagnostic · Learn more", - "markdown": "-Wunknown-sanitizers clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunknown-sanitizers)" + "markdown": "-Wunknown-sanitizers clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunknown-sanitizers)" }, "defaultConfiguration": { "enabled": true, @@ -95843,13 +100680,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnknownSanitizers", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -95876,7 +100714,8 @@ "parameters": { "suppressToolId": "PossibleUnintendedLinearSearchInSet", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -95909,7 +100748,8 @@ "parameters": { "suppressToolId": "EnforceForeachStatementBraces", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -95934,7 +100774,7 @@ }, "fullDescription": { "text": "performance-unnecessary-copy-initialization clang-tidy check · Learn more", - "markdown": "performance-unnecessary-copy-initialization clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/performance/unnecessary-copy-initialization.html)" + "markdown": "performance-unnecessary-copy-initialization clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance/unnecessary-copy-initialization.html)" }, "defaultConfiguration": { "enabled": true, @@ -95942,13 +100782,14 @@ "parameters": { "suppressToolId": "CppClangTidyPerformanceUnnecessaryCopyInitialization", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -95975,13 +100816,14 @@ "parameters": { "suppressToolId": "CppEntityAssignedButNoRead", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -96000,7 +100842,7 @@ }, "fullDescription": { "text": "-Wunused-getter-return-value clang diagnostic · Learn more", - "markdown": "-Wunused-getter-return-value clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunused-getter-return-value)" + "markdown": "-Wunused-getter-return-value clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunused-getter-return-value)" }, "defaultConfiguration": { "enabled": true, @@ -96008,13 +100850,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnusedGetterReturnValue", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -96033,7 +100876,7 @@ }, "fullDescription": { "text": "-Wambiguous-ellipsis clang diagnostic · Learn more", - "markdown": "-Wambiguous-ellipsis clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wambiguous-ellipsis)" + "markdown": "-Wambiguous-ellipsis clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wambiguous-ellipsis)" }, "defaultConfiguration": { "enabled": true, @@ -96041,13 +100884,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticAmbiguousEllipsis", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -96059,6 +100903,40 @@ } ] }, + { + "id": "AsxxErrors", + "shortDescription": { + "text": "Asxx Errors" + }, + "fullDescription": { + "text": "Asxx Errors", + "markdown": "Asxx Errors" + }, + "defaultConfiguration": { + "enabled": false, + "level": "error", + "parameters": { + "suppressToolId": "AsxxErrors", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "HttpHandler or WebService/Non configurable", + "index": 167, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppClangTidyClangDiagnosticFloatEqual", "shortDescription": { @@ -96066,7 +100944,7 @@ }, "fullDescription": { "text": "-Wfloat-equal clang diagnostic · Learn more", - "markdown": "-Wfloat-equal clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wfloat-equal)" + "markdown": "-Wfloat-equal clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wfloat-equal)" }, "defaultConfiguration": { "enabled": true, @@ -96074,13 +100952,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticFloatEqual", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -96107,7 +100986,8 @@ "parameters": { "suppressToolId": "DefaultValueAttributeForOptionalParameter", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -96132,7 +101012,7 @@ }, "fullDescription": { "text": "-Wmisleading-indentation clang diagnostic · Learn more", - "markdown": "-Wmisleading-indentation clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmisleading-indentation)" + "markdown": "-Wmisleading-indentation clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmisleading-indentation)" }, "defaultConfiguration": { "enabled": true, @@ -96140,13 +101020,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMisleadingIndentation", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -96165,7 +101046,7 @@ }, "fullDescription": { "text": "readability-redundant-smartptr-get clang-tidy check · Learn more", - "markdown": "readability-redundant-smartptr-get clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/redundant-smartptr-get.html)" + "markdown": "readability-redundant-smartptr-get clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/redundant-smartptr-get.html)" }, "defaultConfiguration": { "enabled": true, @@ -96173,13 +101054,14 @@ "parameters": { "suppressToolId": "CppClangTidyReadabilityRedundantSmartptrGet", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -96206,14 +101088,15 @@ "parameters": { "suppressToolId": "FSharpConsWithEmptyListPat", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "F#/Redundancies in Code", - "index": 67, + "index": 73, "toolComponent": { "name": "QDNET" } @@ -96231,7 +101114,7 @@ }, "fullDescription": { "text": "-Wdangling-initializer-list clang diagnostic · Learn more", - "markdown": "-Wdangling-initializer-list clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdangling-initializer-list)" + "markdown": "-Wdangling-initializer-list clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdangling-initializer-list)" }, "defaultConfiguration": { "enabled": true, @@ -96239,13 +101122,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDanglingInitializerList", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -96264,7 +101148,7 @@ }, "fullDescription": { "text": "-Wincompatible-library-redeclaration clang diagnostic · Learn more", - "markdown": "-Wincompatible-library-redeclaration clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wincompatible-library-redeclaration)" + "markdown": "-Wincompatible-library-redeclaration clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wincompatible-library-redeclaration)" }, "defaultConfiguration": { "enabled": true, @@ -96272,13 +101156,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticIncompatibleLibraryRedeclaration", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -96305,13 +101190,14 @@ "parameters": { "suppressToolId": "CppRedundantTemplateArguments", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Redundancies in Code", + "id": "C_C++/Redundancies in Code", "index": 34, "toolComponent": { "name": "QDNET" @@ -96330,7 +101216,7 @@ }, "fullDescription": { "text": "-Wmicrosoft-exception-spec clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-exception-spec clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-exception-spec)" + "markdown": "-Wmicrosoft-exception-spec clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-exception-spec)" }, "defaultConfiguration": { "enabled": true, @@ -96338,13 +101224,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftExceptionSpec", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -96363,7 +101250,7 @@ }, "fullDescription": { "text": "-Wc++14-binary-literal clang diagnostic · Learn more", - "markdown": "-Wc++14-binary-literal clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-14-binary-literal)" + "markdown": "-Wc++14-binary-literal clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-14-binary-literal)" }, "defaultConfiguration": { "enabled": true, @@ -96371,13 +101258,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCpp14BinaryLiteral", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -96395,8 +101283,8 @@ "text": "Auto-property accessor is never used (non-private accessibility)" }, "fullDescription": { - "text": "Accessor in auto-property is never used", - "markdown": "Accessor in auto-property is never used" + "text": "Accessor in auto-property is never used Learn more...", + "markdown": "Accessor in auto-property is never used [Learn more...](https://www.jetbrains.com/help/rider/UnusedAutoPropertyAccessor.Global.html)" }, "defaultConfiguration": { "enabled": true, @@ -96404,7 +101292,8 @@ "parameters": { "suppressToolId": "UnusedAutoPropertyAccessor.Global", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -96429,7 +101318,7 @@ }, "fullDescription": { "text": "darwin-dispatch-once-nonstatic clang-tidy check · Learn more", - "markdown": "darwin-dispatch-once-nonstatic clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/darwin/dispatch-once-nonstatic.html)" + "markdown": "darwin-dispatch-once-nonstatic clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/darwin/dispatch-once-nonstatic.html)" }, "defaultConfiguration": { "enabled": false, @@ -96437,13 +101326,14 @@ "parameters": { "suppressToolId": "CppClangTidyDarwinDispatchOnceNonstatic", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -96470,14 +101360,15 @@ "parameters": { "suppressToolId": "ReplaceWithSingleCallToFirst", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -96495,7 +101386,7 @@ }, "fullDescription": { "text": "llvm-else-after-return clang-tidy check · Learn more", - "markdown": "llvm-else-after-return clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/llvm/else-after-return.html)" + "markdown": "llvm-else-after-return clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/llvm/else-after-return.html)" }, "defaultConfiguration": { "enabled": false, @@ -96503,13 +101394,14 @@ "parameters": { "suppressToolId": "CppClangTidyLlvmElseAfterReturn", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -96521,6 +101413,40 @@ } ] }, + { + "id": "UsageOfDefaultStructEquality", + "shortDescription": { + "text": "Usage of default struct equality" + }, + "fullDescription": { + "text": "Default implementations of the 'Equals' and 'GetHashCode' methods of a struct are reflection-based and bad-performing Learn more...", + "markdown": "Default implementations of the 'Equals' and 'GetHashCode' methods of a struct are reflection-based and bad-performing [Learn more...](https://www.jetbrains.com/help/rider/UsageOfDefaultStructEquality.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "UsageOfDefaultStructEquality", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 12, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppClangTidyClangDiagnosticDeprecateLaxVecConvAll", "shortDescription": { @@ -96528,7 +101454,7 @@ }, "fullDescription": { "text": "-Wdeprecate-lax-vec-conv-all clang diagnostic · Learn more", - "markdown": "-Wdeprecate-lax-vec-conv-all clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdeprecate-lax-vec-conv-all)" + "markdown": "-Wdeprecate-lax-vec-conv-all clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecate-lax-vec-conv-all)" }, "defaultConfiguration": { "enabled": true, @@ -96536,13 +101462,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDeprecateLaxVecConvAll", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -96554,6 +101481,40 @@ } ] }, + { + "id": "CanReplaceCastWithLambdaReturnType", + "shortDescription": { + "text": "Cast expression can be replaced with lambda return type" + }, + "fullDescription": { + "text": "Replace cast expression with lambda return type to enhance compile-time safety Learn more...", + "markdown": "Replace cast expression with lambda return type to enhance compile-time safety [Learn more...](https://www.jetbrains.com/help/rider/CanReplaceCastWithLambdaReturnType.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "CanReplaceCastWithLambdaReturnType", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 12, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CSharpWarnings__CS0282", "shortDescription": { @@ -96569,7 +101530,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS0282", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -96594,7 +101556,7 @@ }, "fullDescription": { "text": "-Wenum-compare-conditional clang diagnostic · Learn more", - "markdown": "-Wenum-compare-conditional clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wenum-compare-conditional)" + "markdown": "-Wenum-compare-conditional clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wenum-compare-conditional)" }, "defaultConfiguration": { "enabled": true, @@ -96602,13 +101564,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticEnumCompareConditional", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -96627,7 +101590,7 @@ }, "fullDescription": { "text": "-Wcovered-switch-default clang diagnostic · Learn more", - "markdown": "-Wcovered-switch-default clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wcovered-switch-default)" + "markdown": "-Wcovered-switch-default clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcovered-switch-default)" }, "defaultConfiguration": { "enabled": true, @@ -96635,13 +101598,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCoveredSwitchDefault", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -96668,7 +101632,8 @@ "parameters": { "suppressToolId": "ReplaceWithPrimaryConstructorParameter", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -96686,6 +101651,40 @@ } ] }, + { + "id": "XMLWarnings", + "shortDescription": { + "text": "XML Warnings" + }, + "fullDescription": { + "text": "XML Warnings", + "markdown": "XML Warnings" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "XMLWarnings", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "XML/Non configurable", + "index": 168, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "Mvc.ViewComponentNotResolved", "shortDescription": { @@ -96701,14 +101700,15 @@ "parameters": { "suppressToolId": "Mvc.ViewComponentNotResolved", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "Aspx/Potential Code Quality Issues", - "index": 60, + "index": 64, "toolComponent": { "name": "QDNET" } @@ -96726,7 +101726,7 @@ }, "fullDescription": { "text": "-Wreturn-type clang diagnostic · Learn more", - "markdown": "-Wreturn-type clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wreturn-type)" + "markdown": "-Wreturn-type clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wreturn-type)" }, "defaultConfiguration": { "enabled": false, @@ -96734,13 +101734,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticReturnType", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -96767,7 +101768,8 @@ "parameters": { "suppressToolId": "UseNameofExpressionForPartOfTheString", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -96800,13 +101802,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerApiModelingErrno", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -96833,7 +101836,8 @@ "parameters": { "suppressToolId": "CA1024", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -96866,7 +101870,8 @@ "parameters": { "suppressToolId": "CA2356", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -96899,14 +101904,49 @@ "parameters": { "suppressToolId": "CannotApplyEqualityOperatorToType", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Constraints Violations", - "index": 73, + "index": 80, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticReturnMismatch", + "shortDescription": { + "text": "return-mismatch clang diagnostic" + }, + "fullDescription": { + "text": "-Wreturn-mismatch clang diagnostic · Learn more", + "markdown": "-Wreturn-mismatch clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wreturn-mismatch)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticReturnMismatch", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, "toolComponent": { "name": "QDNET" } @@ -96932,7 +101972,8 @@ "parameters": { "suppressToolId": "CA1021", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -96965,7 +102006,8 @@ "parameters": { "suppressToolId": "RedundantAttributeParentheses", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -96990,7 +102032,7 @@ }, "fullDescription": { "text": "-Wmicrosoft-sealed clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-sealed clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-sealed)" + "markdown": "-Wmicrosoft-sealed clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-sealed)" }, "defaultConfiguration": { "enabled": true, @@ -96998,13 +102040,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftSealed", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -97031,13 +102074,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerSecurityInsecureAPIBcopy", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -97056,7 +102100,7 @@ }, "fullDescription": { "text": "-Wc++2a-extensions clang diagnostic · Learn more", - "markdown": "-Wc++2a-extensions clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-2a-extensions)" + "markdown": "-Wc++2a-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-2a-extensions)" }, "defaultConfiguration": { "enabled": true, @@ -97064,13 +102108,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCpp2aExtensions", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -97089,7 +102134,7 @@ }, "fullDescription": { "text": "-Wfloat-overflow-conversion clang diagnostic · Learn more", - "markdown": "-Wfloat-overflow-conversion clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wfloat-overflow-conversion)" + "markdown": "-Wfloat-overflow-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wfloat-overflow-conversion)" }, "defaultConfiguration": { "enabled": true, @@ -97097,13 +102142,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticFloatOverflowConversion", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -97130,14 +102176,15 @@ "parameters": { "suppressToolId": "FSharpRedundantBackticks", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "F#/Redundancies in Code", - "index": 67, + "index": 73, "toolComponent": { "name": "QDNET" } @@ -97155,7 +102202,7 @@ }, "fullDescription": { "text": "-Wunknown-directives clang diagnostic · Learn more", - "markdown": "-Wunknown-directives clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunknown-directives)" + "markdown": "-Wunknown-directives clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunknown-directives)" }, "defaultConfiguration": { "enabled": true, @@ -97163,13 +102210,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnknownDirectives", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -97196,14 +102244,15 @@ "parameters": { "suppressToolId": "OtherTagsInsideUnclosedScript", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "HTML/Potential Code Quality Issues", - "index": 51, + "index": 54, "toolComponent": { "name": "QDNET" } @@ -97229,14 +102278,15 @@ "parameters": { "suppressToolId": "Html.AttributeNotResolved", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "HTML/Potential Code Quality Issues", - "index": 51, + "index": 54, "toolComponent": { "name": "QDNET" } @@ -97262,7 +102312,8 @@ "parameters": { "suppressToolId": "ArrangeDefaultValueWhenTypeNotEvident", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -97281,9 +102332,43 @@ ] }, { - "id": "CA2361", + "id": "ExtractCommonBranchingCode", "shortDescription": { - "text": "RoslynAnalyzers Ensure auto-generated class containing DataSet.ReadXml() is not used with untrusted data" + "text": "Extract common code" + }, + "fullDescription": { + "text": "Extract common code out of branching statements such as 'if' or 'switch' to streamline and consolidate it, ensuring that shared logic is executed regardless of the branching path taken Learn more...", + "markdown": "Extract common code out of branching statements such as 'if' or 'switch' to streamline and consolidate it, ensuring that shared logic is executed regardless of the branching path taken [Learn more...](https://www.jetbrains.com/help/rider/ExtractCommonBranchingCode.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "ExtractCommonBranchingCode", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Potential Code Quality Issues", + "index": 1, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CA1019", + "shortDescription": { + "text": "RoslynAnalyzers Define accessors for attribute arguments" }, "fullDescription": { "text": "", @@ -97293,9 +102378,10 @@ "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "CA2361", + "suppressToolId": "CA1019", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -97314,9 +102400,9 @@ ] }, { - "id": "CA1019", + "id": "CA2361", "shortDescription": { - "text": "RoslynAnalyzers Define accessors for attribute arguments" + "text": "RoslynAnalyzers Ensure auto-generated class containing DataSet.ReadXml() is not used with untrusted data" }, "fullDescription": { "text": "", @@ -97326,9 +102412,10 @@ "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "CA1019", + "suppressToolId": "CA2361", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -97361,7 +102448,8 @@ "parameters": { "suppressToolId": "CA1018", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -97394,7 +102482,8 @@ "parameters": { "suppressToolId": "CA2362", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -97419,7 +102508,7 @@ }, "fullDescription": { "text": "-Wmissing-variable-declarations clang diagnostic · Learn more", - "markdown": "-Wmissing-variable-declarations clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmissing-variable-declarations)" + "markdown": "-Wmissing-variable-declarations clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmissing-variable-declarations)" }, "defaultConfiguration": { "enabled": false, @@ -97427,13 +102516,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMissingVariableDeclarations", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -97460,7 +102550,8 @@ "parameters": { "suppressToolId": "CA1017", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -97493,7 +102584,8 @@ "parameters": { "suppressToolId": "CA1016", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -97511,6 +102603,40 @@ } ] }, + { + "id": "CppClangTidyClangDiagnosticMissingDesignatedFieldInitializers", + "shortDescription": { + "text": "missing-designated-field-initializers clang diagnostic" + }, + "fullDescription": { + "text": "-Wmissing-designated-field-initializers clang diagnostic · Learn more", + "markdown": "-Wmissing-designated-field-initializers clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmissing-designated-field-initializers)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticMissingDesignatedFieldInitializers", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppClangTidyClangDiagnosticPrivateHeader", "shortDescription": { @@ -97518,7 +102644,7 @@ }, "fullDescription": { "text": "-Wprivate-header clang diagnostic · Learn more", - "markdown": "-Wprivate-header clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wprivate-header)" + "markdown": "-Wprivate-header clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wprivate-header)" }, "defaultConfiguration": { "enabled": true, @@ -97526,13 +102652,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticPrivateHeader", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -97559,7 +102686,8 @@ "parameters": { "suppressToolId": "CA1014", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -97592,7 +102720,8 @@ "parameters": { "suppressToolId": "CA1012", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -97625,7 +102754,8 @@ "parameters": { "suppressToolId": "BadSpacesAfterKeyword", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -97658,7 +102788,8 @@ "parameters": { "suppressToolId": "CA1010", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -97691,13 +102822,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerCoreBuiltinNoReturnFunctions", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -97716,7 +102848,7 @@ }, "fullDescription": { "text": "cert-exp42-c clang-tidy check · Learn more", - "markdown": "cert-exp42-c clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cert/exp42-c.html)" + "markdown": "cert-exp42-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/exp42-c.html)" }, "defaultConfiguration": { "enabled": false, @@ -97724,13 +102856,14 @@ "parameters": { "suppressToolId": "CppClangTidyCertExp42C", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -97757,7 +102890,8 @@ "parameters": { "suppressToolId": "Xaml.StyleClassNotFound", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -97790,7 +102924,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8947", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -97823,13 +102958,14 @@ "parameters": { "suppressToolId": "CppRedundantElaboratedTypeSpecifier", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Redundancies in Code", + "id": "C_C++/Redundancies in Code", "index": 34, "toolComponent": { "name": "QDNET" @@ -97856,7 +102992,8 @@ "parameters": { "suppressToolId": "VBStringStartsWithIsCultureSpecific", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -97881,7 +103018,7 @@ }, "fullDescription": { "text": "-Wconstexpr-not-const clang diagnostic · Learn more", - "markdown": "-Wconstexpr-not-const clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wconstexpr-not-const)" + "markdown": "-Wconstexpr-not-const clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wconstexpr-not-const)" }, "defaultConfiguration": { "enabled": true, @@ -97889,13 +103026,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticConstexprNotConst", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -97922,7 +103060,8 @@ "parameters": { "suppressToolId": "CA1008", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -97955,7 +103094,8 @@ "parameters": { "suppressToolId": "CA5400", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -97988,7 +103128,8 @@ "parameters": { "suppressToolId": "CA1005", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -98021,14 +103162,15 @@ "parameters": { "suppressToolId": "RegExpInspections", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "RegExpBase/Language Usage Opportunities", - "index": 141, + "index": 169, "toolComponent": { "name": "QDNET" } @@ -98054,7 +103196,8 @@ "parameters": { "suppressToolId": "CA5402", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -98087,7 +103230,8 @@ "parameters": { "suppressToolId": "CA5401", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -98120,7 +103264,8 @@ "parameters": { "suppressToolId": "CA1003", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -98139,21 +103284,22 @@ ] }, { - "id": "CA5404", + "id": "CA1002", "shortDescription": { - "text": "RoslynAnalyzers Do not disable token validation checks" + "text": "RoslynAnalyzers Do not expose generic lists" }, "fullDescription": { - "text": "Token validation checks ensure that while validating tokens, all aspects are analyzed and verified. Turning off validation can lead to security holes by allowing untrusted tokens to make it through validation.", - "markdown": "Token validation checks ensure that while validating tokens, all aspects are analyzed and verified. Turning off validation can lead to security holes by allowing untrusted tokens to make it through validation." + "text": "System.Collections.Generic.List is a generic collection that's designed for performance and not inheritance. List does not contain virtual members that make it easier to change the behavior of an inherited class.", + "markdown": "System.Collections.Generic.List is a generic collection that's designed for performance and not inheritance. List does not contain virtual members that make it easier to change the behavior of an inherited class." }, "defaultConfiguration": { "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "CA5404", + "suppressToolId": "CA1002", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -98172,21 +103318,22 @@ ] }, { - "id": "CA1002", + "id": "CA5404", "shortDescription": { - "text": "RoslynAnalyzers Do not expose generic lists" + "text": "RoslynAnalyzers Do not disable token validation checks" }, "fullDescription": { - "text": "System.Collections.Generic.List is a generic collection that's designed for performance and not inheritance. List does not contain virtual members that make it easier to change the behavior of an inherited class.", - "markdown": "System.Collections.Generic.List is a generic collection that's designed for performance and not inheritance. List does not contain virtual members that make it easier to change the behavior of an inherited class." + "text": "Token validation checks ensure that while validating tokens, all aspects are analyzed and verified. Turning off validation can lead to security holes by allowing untrusted tokens to make it through validation.", + "markdown": "Token validation checks ensure that while validating tokens, all aspects are analyzed and verified. Turning off validation can lead to security holes by allowing untrusted tokens to make it through validation." }, "defaultConfiguration": { "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "CA1002", + "suppressToolId": "CA5404", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -98219,7 +103366,8 @@ "parameters": { "suppressToolId": "CA5403", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -98252,7 +103400,8 @@ "parameters": { "suppressToolId": "CA1001", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -98285,7 +103434,8 @@ "parameters": { "suppressToolId": "CA1000", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -98318,7 +103468,8 @@ "parameters": { "suppressToolId": "CA5405", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -98343,7 +103494,7 @@ }, "fullDescription": { "text": "-Woption-ignored clang diagnostic · Learn more", - "markdown": "-Woption-ignored clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#woption-ignored)" + "markdown": "-Woption-ignored clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#woption-ignored)" }, "defaultConfiguration": { "enabled": true, @@ -98351,13 +103502,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticOptionIgnored", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -98376,7 +103528,7 @@ }, "fullDescription": { "text": "cppcoreguidelines-rvalue-reference-param-not-moved clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-rvalue-reference-param-not-moved clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/rvalue-reference-param-not-moved.html)" + "markdown": "cppcoreguidelines-rvalue-reference-param-not-moved clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/rvalue-reference-param-not-moved.html)" }, "defaultConfiguration": { "enabled": true, @@ -98384,13 +103536,14 @@ "parameters": { "suppressToolId": "CppClangTidyCppcoreguidelinesRvalueReferenceParamNotMoved", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -98417,14 +103570,15 @@ "parameters": { "suppressToolId": "Unity.PreferAddressByIdToGraphicsParams", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity", - "index": 19, + "index": 18, "toolComponent": { "name": "QDNET" } @@ -98442,7 +103596,7 @@ }, "fullDescription": { "text": "-Wfloat-conversion clang diagnostic · Learn more", - "markdown": "-Wfloat-conversion clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wfloat-conversion)" + "markdown": "-Wfloat-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wfloat-conversion)" }, "defaultConfiguration": { "enabled": true, @@ -98450,13 +103604,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticFloatConversion", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -98475,7 +103630,7 @@ }, "fullDescription": { "text": "cppcoreguidelines-noexcept-destructor clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-noexcept-destructor clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/noexcept-destructor.html)" + "markdown": "cppcoreguidelines-noexcept-destructor clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/noexcept-destructor.html)" }, "defaultConfiguration": { "enabled": true, @@ -98483,13 +103638,14 @@ "parameters": { "suppressToolId": "CppClangTidyCppcoreguidelinesNoexceptDestructor", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -98516,7 +103672,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS0197", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -98549,7 +103706,8 @@ "parameters": { "suppressToolId": "Xaml.MappedPathHighlighting", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -98582,13 +103740,14 @@ "parameters": { "suppressToolId": "CppAccessSpecifierWithNoDeclarations", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Redundancies in Code", + "id": "C_C++/Redundancies in Code", "index": 34, "toolComponent": { "name": "QDNET" @@ -98606,8 +103765,8 @@ "text": "Structured message template problems" }, "fullDescription": { - "text": "Structured message template syntax errors (unescaped braces, unused arguments, etc.)", - "markdown": "Structured message template syntax errors (unescaped braces, unused arguments, etc.)" + "text": "Structured message template syntax errors (unescaped braces, unused arguments, etc.) Learn more...", + "markdown": "Structured message template syntax errors (unescaped braces, unused arguments, etc.) [Learn more...](https://www.jetbrains.com/help/rider/StructuredMessageTemplateProblem.html)" }, "defaultConfiguration": { "enabled": true, @@ -98615,7 +103774,8 @@ "parameters": { "suppressToolId": "StructuredMessageTemplateProblem", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -98633,6 +103793,40 @@ } ] }, + { + "id": "CppClangTidyCppcoreguidelinesNoSuspendWithLock", + "shortDescription": { + "text": "cppcoreguidelines-no-suspend-with-lock clang-tidy check" + }, + "fullDescription": { + "text": "cppcoreguidelines-no-suspend-with-lock clang-tidy check · Learn more", + "markdown": "cppcoreguidelines-no-suspend-with-lock clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/no-suspend-with-lock.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyCppcoreguidelinesNoSuspendWithLock", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppClangTidyClangDiagnosticVisibility", "shortDescription": { @@ -98640,7 +103834,7 @@ }, "fullDescription": { "text": "-Wvisibility clang diagnostic · Learn more", - "markdown": "-Wvisibility clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wvisibility)" + "markdown": "-Wvisibility clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wvisibility)" }, "defaultConfiguration": { "enabled": true, @@ -98648,13 +103842,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticVisibility", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -98673,7 +103868,7 @@ }, "fullDescription": { "text": "-Wdangling-gsl clang diagnostic · Learn more", - "markdown": "-Wdangling-gsl clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdangling-gsl)" + "markdown": "-Wdangling-gsl clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdangling-gsl)" }, "defaultConfiguration": { "enabled": true, @@ -98681,13 +103876,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDanglingGsl", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -98714,7 +103910,8 @@ "parameters": { "suppressToolId": "EntityNameCapturedOnly.Global", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -98747,14 +103944,15 @@ "parameters": { "suppressToolId": "CppEnforceWhileStatementBraces", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Syntax Style", - "index": 83, + "id": "C_C++/Syntax Style", + "index": 91, "toolComponent": { "name": "QDNET" } @@ -98772,7 +103970,7 @@ }, "fullDescription": { "text": "performance-unnecessary-value-param clang-tidy check · Learn more", - "markdown": "performance-unnecessary-value-param clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/performance/unnecessary-value-param.html)" + "markdown": "performance-unnecessary-value-param clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance/unnecessary-value-param.html)" }, "defaultConfiguration": { "enabled": true, @@ -98780,13 +103978,14 @@ "parameters": { "suppressToolId": "CppClangTidyPerformanceUnnecessaryValueParam", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -98813,13 +104012,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaIncompatibleMethodTypes", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -98846,7 +104046,8 @@ "parameters": { "suppressToolId": "ConvertToNullCoalescingCompoundAssignment", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -98879,7 +104080,8 @@ "parameters": { "suppressToolId": "UseStringInterpolation", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -98904,7 +104106,7 @@ }, "fullDescription": { "text": "readability-simplify-subscript-expr clang-tidy check · Learn more", - "markdown": "readability-simplify-subscript-expr clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/simplify-subscript-expr.html)" + "markdown": "readability-simplify-subscript-expr clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/simplify-subscript-expr.html)" }, "defaultConfiguration": { "enabled": true, @@ -98912,13 +104114,14 @@ "parameters": { "suppressToolId": "CppClangTidyReadabilitySimplifySubscriptExpr", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -98937,7 +104140,7 @@ }, "fullDescription": { "text": "-Wignored-pragma-optimize clang diagnostic · Learn more", - "markdown": "-Wignored-pragma-optimize clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wignored-pragma-optimize)" + "markdown": "-Wignored-pragma-optimize clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wignored-pragma-optimize)" }, "defaultConfiguration": { "enabled": false, @@ -98945,13 +104148,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticIgnoredPragmaOptimize", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -98970,7 +104174,7 @@ }, "fullDescription": { "text": "-Wdeprecated-pragma clang diagnostic · Learn more", - "markdown": "-Wdeprecated-pragma clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdeprecated-pragma)" + "markdown": "-Wdeprecated-pragma clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-pragma)" }, "defaultConfiguration": { "enabled": true, @@ -98978,13 +104182,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedPragma", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -99011,7 +104216,8 @@ "parameters": { "suppressToolId": "MultipleSpaces", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -99044,14 +104250,15 @@ "parameters": { "suppressToolId": "FSharpRedundantStringInterpolation", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "F#/Redundancies in Code", - "index": 67, + "index": 73, "toolComponent": { "name": "QDNET" } @@ -99077,7 +104284,8 @@ "parameters": { "suppressToolId": "ConvertConditionalTernaryExpressionToSwitchExpression", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -99095,6 +104303,40 @@ } ] }, + { + "id": "FSharpErrors", + "shortDescription": { + "text": "F# Errors" + }, + "fullDescription": { + "text": "F# Errors", + "markdown": "F# Errors" + }, + "defaultConfiguration": { + "enabled": false, + "level": "error", + "parameters": { + "suppressToolId": "FSharpErrors", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "F#/Non configurable", + "index": 171, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppClangTidyGoogleGlobalNamesInHeaders", "shortDescription": { @@ -99102,7 +104344,7 @@ }, "fullDescription": { "text": "google-global-names-in-headers clang-tidy check · Learn more", - "markdown": "google-global-names-in-headers clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/google/global-names-in-headers.html)" + "markdown": "google-global-names-in-headers clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/global-names-in-headers.html)" }, "defaultConfiguration": { "enabled": false, @@ -99110,13 +104352,14 @@ "parameters": { "suppressToolId": "CppClangTidyGoogleGlobalNamesInHeaders", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -99135,7 +104378,7 @@ }, "fullDescription": { "text": "-Wunused-value clang diagnostic · Learn more", - "markdown": "-Wunused-value clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunused-value)" + "markdown": "-Wunused-value clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunused-value)" }, "defaultConfiguration": { "enabled": true, @@ -99143,13 +104386,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnusedValue", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -99168,7 +104412,7 @@ }, "fullDescription": { "text": "-Wodr clang diagnostic · Learn more", - "markdown": "-Wodr clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wodr)" + "markdown": "-Wodr clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wodr)" }, "defaultConfiguration": { "enabled": true, @@ -99176,13 +104420,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticOdr", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -99209,7 +104454,8 @@ "parameters": { "suppressToolId": "BuiltInTypeReferenceStyleForMemberAccess", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -99234,7 +104480,7 @@ }, "fullDescription": { "text": "-Wdeprecated-increment-bool clang diagnostic · Learn more", - "markdown": "-Wdeprecated-increment-bool clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdeprecated-increment-bool)" + "markdown": "-Wdeprecated-increment-bool clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-increment-bool)" }, "defaultConfiguration": { "enabled": true, @@ -99242,13 +104488,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedIncrementBool", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -99275,14 +104522,15 @@ "parameters": { "suppressToolId": "SpecifyStringComparison", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -99308,14 +104556,15 @@ "parameters": { "suppressToolId": "Unity.RedundantAttributeOnTarget", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity", - "index": 19, + "index": 18, "toolComponent": { "name": "QDNET" } @@ -99341,13 +104590,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerSecurityInsecureAPIRand", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -99374,7 +104624,8 @@ "parameters": { "suppressToolId": "RedundantVerbatimPrefix", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -99407,7 +104658,8 @@ "parameters": { "suppressToolId": "RedundantEmptySwitchSection", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -99440,14 +104692,15 @@ "parameters": { "suppressToolId": "Mvc.ControllerNotResolved", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "Aspx/Potential Code Quality Issues", - "index": 60, + "index": 64, "toolComponent": { "name": "QDNET" } @@ -99465,7 +104718,7 @@ }, "fullDescription": { "text": "-Winfinite-recursion clang diagnostic · Learn more", - "markdown": "-Winfinite-recursion clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#winfinite-recursion)" + "markdown": "-Winfinite-recursion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winfinite-recursion)" }, "defaultConfiguration": { "enabled": true, @@ -99473,13 +104726,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticInfiniteRecursion", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -99506,7 +104760,8 @@ "parameters": { "suppressToolId": "SimplifyConditionalOperator", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -99531,7 +104786,7 @@ }, "fullDescription": { "text": "cert-dcl51-cpp clang-tidy check · Learn more", - "markdown": "cert-dcl51-cpp clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cert/dcl51-cpp.html)" + "markdown": "cert-dcl51-cpp clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/dcl51-cpp.html)" }, "defaultConfiguration": { "enabled": false, @@ -99539,13 +104794,14 @@ "parameters": { "suppressToolId": "CppClangTidyCertDcl51Cpp", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -99572,7 +104828,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8974", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -99605,7 +104862,8 @@ "parameters": { "suppressToolId": "NegativeIndex", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -99623,6 +104881,40 @@ } ] }, + { + "id": "XMLErrors", + "shortDescription": { + "text": "XML Errors" + }, + "fullDescription": { + "text": "XML Errors", + "markdown": "XML Errors" + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "XMLErrors", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "XML/Non configurable", + "index": 168, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CSharpWarnings__CS8971", "shortDescription": { @@ -99638,7 +104930,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8971", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -99663,7 +104956,7 @@ }, "fullDescription": { "text": "hicpp-use-equals-delete clang-tidy check · Learn more", - "markdown": "hicpp-use-equals-delete clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/use-equals-delete.html)" + "markdown": "hicpp-use-equals-delete clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/use-equals-delete.html)" }, "defaultConfiguration": { "enabled": false, @@ -99671,13 +104964,14 @@ "parameters": { "suppressToolId": "CppClangTidyHicppUseEqualsDelete", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -99696,7 +104990,7 @@ }, "fullDescription": { "text": "-Wgnu-null-pointer-arithmetic clang diagnostic · Learn more", - "markdown": "-Wgnu-null-pointer-arithmetic clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wgnu-null-pointer-arithmetic)" + "markdown": "-Wgnu-null-pointer-arithmetic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-null-pointer-arithmetic)" }, "defaultConfiguration": { "enabled": true, @@ -99704,13 +104998,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticGnuNullPointerArithmetic", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -99737,7 +105032,8 @@ "parameters": { "suppressToolId": "NUnit.MethodWithParametersAndTestAttribute", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -99755,6 +105051,40 @@ } ] }, + { + "id": "DefaultStructEqualityIsUsed.Local", + "shortDescription": { + "text": "Struct with default equality members is used for comparison (private accessibility)" + }, + "fullDescription": { + "text": "Default implementations of the 'Equals' and 'GetHashCode' methods of a struct are based on reflection and perform poorly. To prevent boxing and improve performance, overriding the equality members is recommended. This inspection only triggers if the struct or its containing type (such as record) is actually used for equality comparisons in the solution. Learn more...", + "markdown": "Default implementations of the 'Equals' and 'GetHashCode' methods of a struct are based on reflection and perform poorly. To prevent boxing and improve performance, overriding the equality members is recommended. This inspection only triggers if the struct or its containing type (such as record) is actually used for equality comparisons in the solution. [Learn more...](https://www.jetbrains.com/help/rider/DefaultStructEqualityIsUsed.Local.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "DefaultStructEqualityIsUsed.Local", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 12, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "Asp.CustomPageParserFilterType", "shortDescription": { @@ -99770,14 +105100,15 @@ "parameters": { "suppressToolId": "Asp.CustomPageParserFilterType", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "Aspx/Potential Code Quality Issues", - "index": 60, + "index": 64, "toolComponent": { "name": "QDNET" } @@ -99795,7 +105126,7 @@ }, "fullDescription": { "text": "-Wdistributed-object-modifiers clang diagnostic · Learn more", - "markdown": "-Wdistributed-object-modifiers clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdistributed-object-modifiers)" + "markdown": "-Wdistributed-object-modifiers clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdistributed-object-modifiers)" }, "defaultConfiguration": { "enabled": true, @@ -99803,13 +105134,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDistributedObjectModifiers", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -99836,14 +105168,15 @@ "parameters": { "suppressToolId": "CanSimplifySetAddingWithSingleCall", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -99869,7 +105202,8 @@ "parameters": { "suppressToolId": "BadGenericBracketsSpaces", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -99894,7 +105228,7 @@ }, "fullDescription": { "text": "fuchsia-header-anon-namespaces clang-tidy check · Learn more", - "markdown": "fuchsia-header-anon-namespaces clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/fuchsia/header-anon-namespaces.html)" + "markdown": "fuchsia-header-anon-namespaces clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/fuchsia/header-anon-namespaces.html)" }, "defaultConfiguration": { "enabled": false, @@ -99902,13 +105236,14 @@ "parameters": { "suppressToolId": "CppClangTidyFuchsiaHeaderAnonNamespaces", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -99935,7 +105270,8 @@ "parameters": { "suppressToolId": "RedundantOverriddenMember", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -99960,7 +105296,7 @@ }, "fullDescription": { "text": "-Wimplicit-fallthrough clang diagnostic · Learn more", - "markdown": "-Wimplicit-fallthrough clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wimplicit-fallthrough)" + "markdown": "-Wimplicit-fallthrough clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wimplicit-fallthrough)" }, "defaultConfiguration": { "enabled": true, @@ -99968,13 +105304,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticImplicitFallthrough", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -100001,7 +105338,8 @@ "parameters": { "suppressToolId": "NotResolvedInText", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -100034,14 +105372,15 @@ "parameters": { "suppressToolId": "CppCompileTimeConstantCanBeReplacedWithBooleanConstant", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Common Practices and Code Improvements", - "index": 17, + "id": "C_C++/Common Practices and Code Improvements", + "index": 16, "toolComponent": { "name": "QDNET" } @@ -100067,14 +105406,15 @@ "parameters": { "suppressToolId": "UnusedImportClause", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "VB.NET/Redundancies in Code", - "index": 88, + "index": 96, "toolComponent": { "name": "QDNET" } @@ -100092,7 +105432,7 @@ }, "fullDescription": { "text": "-Wexcess-initializers clang diagnostic · Learn more", - "markdown": "-Wexcess-initializers clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wexcess-initializers)" + "markdown": "-Wexcess-initializers clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wexcess-initializers)" }, "defaultConfiguration": { "enabled": true, @@ -100100,13 +105440,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticExcessInitializers", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -100133,14 +105474,15 @@ "parameters": { "suppressToolId": "ReplaceWithOfType.Where", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -100166,13 +105508,14 @@ "parameters": { "suppressToolId": "CppRedundantStaticSpecifierOnThreadLocalLocalVariable", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Redundancies in Code", + "id": "C_C++/Redundancies in Code", "index": 34, "toolComponent": { "name": "QDNET" @@ -100199,7 +105542,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8981", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -100232,14 +105576,49 @@ "parameters": { "suppressToolId": "UseImplicitlyTypedVariable", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "VB.NET/Redundancies in Code", - "index": 88, + "index": 96, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyReadabilityMathMissingParentheses", + "shortDescription": { + "text": "readability-math-missing-parentheses clang-tidy check" + }, + "fullDescription": { + "text": "readability-math-missing-parentheses clang-tidy check · Learn more", + "markdown": "readability-math-missing-parentheses clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/math-missing-parentheses.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyReadabilityMathMissingParentheses", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang-Tidy Checks", + "index": 8, "toolComponent": { "name": "QDNET" } @@ -100257,7 +105636,7 @@ }, "fullDescription": { "text": "-Wbuiltin-assume-aligned-alignment clang diagnostic · Learn more", - "markdown": "-Wbuiltin-assume-aligned-alignment clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wbuiltin-assume-aligned-alignment)" + "markdown": "-Wbuiltin-assume-aligned-alignment clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wbuiltin-assume-aligned-alignment)" }, "defaultConfiguration": { "enabled": false, @@ -100265,13 +105644,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticBuiltinAssumeAlignedAlignment", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -100298,13 +105678,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerWebkitNoUncountedMemberChecker", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -100323,7 +105704,7 @@ }, "fullDescription": { "text": "-Wundef clang diagnostic · Learn more", - "markdown": "-Wundef clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wundef)" + "markdown": "-Wundef clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wundef)" }, "defaultConfiguration": { "enabled": true, @@ -100331,13 +105712,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUndef", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -100364,14 +105746,15 @@ "parameters": { "suppressToolId": "Xaml.RedundantCollectionProperty", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "XAML/Redundancies in Code", - "index": 71, + "index": 77, "toolComponent": { "name": "QDNET" } @@ -100389,7 +105772,7 @@ }, "fullDescription": { "text": "-Wimplicitly-unsigned-literal clang diagnostic · Learn more", - "markdown": "-Wimplicitly-unsigned-literal clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wimplicitly-unsigned-literal)" + "markdown": "-Wimplicitly-unsigned-literal clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wimplicitly-unsigned-literal)" }, "defaultConfiguration": { "enabled": true, @@ -100397,13 +105780,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticImplicitlyUnsignedLiteral", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -100430,7 +105814,8 @@ "parameters": { "suppressToolId": "OutParameterWithHandlesResourceDisposalAttribute", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -100455,7 +105840,7 @@ }, "fullDescription": { "text": "-Wunavailable-declarations clang diagnostic · Learn more", - "markdown": "-Wunavailable-declarations clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunavailable-declarations)" + "markdown": "-Wunavailable-declarations clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunavailable-declarations)" }, "defaultConfiguration": { "enabled": true, @@ -100463,13 +105848,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnavailableDeclarations", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -100496,14 +105882,15 @@ "parameters": { "suppressToolId": "Asp.Entity", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "HTML/Potential Code Quality Issues", - "index": 51, + "index": 54, "toolComponent": { "name": "QDNET" } @@ -100521,7 +105908,7 @@ }, "fullDescription": { "text": "objc-forbidden-subclassing clang-tidy check · Learn more", - "markdown": "objc-forbidden-subclassing clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/objc/forbidden-subclassing.html)" + "markdown": "objc-forbidden-subclassing clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/objc/forbidden-subclassing.html)" }, "defaultConfiguration": { "enabled": true, @@ -100529,13 +105916,14 @@ "parameters": { "suppressToolId": "CppClangTidyObjcForbiddenSubclassing", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -100554,7 +105942,7 @@ }, "fullDescription": { "text": "bugprone-unused-return-value clang-tidy check · Learn more", - "markdown": "bugprone-unused-return-value clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/unused-return-value.html)" + "markdown": "bugprone-unused-return-value clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/unused-return-value.html)" }, "defaultConfiguration": { "enabled": true, @@ -100562,13 +105950,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneUnusedReturnValue", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -100587,7 +105976,7 @@ }, "fullDescription": { "text": "modernize-redundant-void-arg clang-tidy check · Learn more", - "markdown": "modernize-redundant-void-arg clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/redundant-void-arg.html)" + "markdown": "modernize-redundant-void-arg clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/redundant-void-arg.html)" }, "defaultConfiguration": { "enabled": false, @@ -100595,13 +105984,14 @@ "parameters": { "suppressToolId": "CppClangTidyModernizeRedundantVoidArg", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -100628,7 +106018,8 @@ "parameters": { "suppressToolId": "ClassCannotBeInstantiated", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -100661,7 +106052,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8966", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -100694,7 +106086,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8965", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -100727,7 +106120,8 @@ "parameters": { "suppressToolId": "ArrangeTrailingCommaInMultilineLists", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -100760,7 +106154,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8963", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -100785,7 +106180,7 @@ }, "fullDescription": { "text": "google-objc-avoid-nsobject-new clang-tidy check · Learn more", - "markdown": "google-objc-avoid-nsobject-new clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/google/objc-avoid-nsobject-new.html)" + "markdown": "google-objc-avoid-nsobject-new clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/objc-avoid-nsobject-new.html)" }, "defaultConfiguration": { "enabled": false, @@ -100793,13 +106188,14 @@ "parameters": { "suppressToolId": "CppClangTidyGoogleObjcAvoidNsobjectNew", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -100826,7 +106222,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8962", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -100851,7 +106248,7 @@ }, "fullDescription": { "text": "bugprone-string-integer-assignment clang-tidy check · Learn more", - "markdown": "bugprone-string-integer-assignment clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/string-integer-assignment.html)" + "markdown": "bugprone-string-integer-assignment clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/string-integer-assignment.html)" }, "defaultConfiguration": { "enabled": true, @@ -100859,13 +106256,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneStringIntegerAssignment", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -100892,7 +106290,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8961", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -100917,7 +106316,7 @@ }, "fullDescription": { "text": "modernize-use-nodiscard clang-tidy check · Learn more", - "markdown": "modernize-use-nodiscard clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-nodiscard.html)" + "markdown": "modernize-use-nodiscard clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-nodiscard.html)" }, "defaultConfiguration": { "enabled": true, @@ -100925,13 +106324,14 @@ "parameters": { "suppressToolId": "CppClangTidyModernizeUseNodiscard", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -100958,7 +106358,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8960", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -100983,7 +106384,7 @@ }, "fullDescription": { "text": "-Wdeprecated-anon-enum-enum-conversion clang diagnostic · Learn more", - "markdown": "-Wdeprecated-anon-enum-enum-conversion clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdeprecated-anon-enum-enum-conversion)" + "markdown": "-Wdeprecated-anon-enum-enum-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-anon-enum-enum-conversion)" }, "defaultConfiguration": { "enabled": true, @@ -100991,13 +106392,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedAnonEnumEnumConversion", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -101024,7 +106426,8 @@ "parameters": { "suppressToolId": "EnforceForStatementBraces", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -101049,7 +106452,7 @@ }, "fullDescription": { "text": "-Wformat-non-iso clang diagnostic · Learn more", - "markdown": "-Wformat-non-iso clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wformat-non-iso)" + "markdown": "-Wformat-non-iso clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wformat-non-iso)" }, "defaultConfiguration": { "enabled": true, @@ -101057,13 +106460,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticFormatNonIso", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -101081,8 +106485,8 @@ "text": "Convert into 'await using' statement or declaration" }, "fullDescription": { - "text": "Replace 'using' statement or declaration with 'await using' form", - "markdown": "Replace 'using' statement or declaration with 'await using' form" + "text": "Replace 'using' statement or declaration with 'await using' form Learn more...", + "markdown": "Replace 'using' statement or declaration with 'await using' form [Learn more...](https://www.jetbrains.com/help/rider/UseAwaitUsing.html)" }, "defaultConfiguration": { "enabled": true, @@ -101090,7 +106494,8 @@ "parameters": { "suppressToolId": "UseAwaitUsing", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -101123,13 +106528,14 @@ "parameters": { "suppressToolId": "CppOutdentIsOffPrevLevel", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Formatting", + "id": "C_C++/Formatting", "index": 28, "toolComponent": { "name": "QDNET" @@ -101148,7 +106554,7 @@ }, "fullDescription": { "text": "performance-move-constructor-init clang-tidy check · Learn more", - "markdown": "performance-move-constructor-init clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/performance/move-constructor-init.html)" + "markdown": "performance-move-constructor-init clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance/move-constructor-init.html)" }, "defaultConfiguration": { "enabled": true, @@ -101156,13 +106562,14 @@ "parameters": { "suppressToolId": "CppClangTidyPerformanceMoveConstructorInit", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -101189,7 +106596,8 @@ "parameters": { "suppressToolId": "LambdaShouldNotCaptureContext", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -101214,7 +106622,7 @@ }, "fullDescription": { "text": "-Wc++11-extensions clang diagnostic · Learn more", - "markdown": "-Wc++11-extensions clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-11-extensions)" + "markdown": "-Wc++11-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-11-extensions)" }, "defaultConfiguration": { "enabled": true, @@ -101222,13 +106630,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCpp11Extensions", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -101255,7 +106664,8 @@ "parameters": { "suppressToolId": "BadColonSpaces", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -101280,7 +106690,7 @@ }, "fullDescription": { "text": "misc-const-correctness clang-tidy check · Learn more", - "markdown": "misc-const-correctness clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/misc/const-correctness.html)" + "markdown": "misc-const-correctness clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/const-correctness.html)" }, "defaultConfiguration": { "enabled": false, @@ -101288,13 +106698,14 @@ "parameters": { "suppressToolId": "CppClangTidyMiscConstCorrectness", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -101321,14 +106732,15 @@ "parameters": { "suppressToolId": "CppStaticAssertFailure", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Compiler Warnings", - "index": 69, + "id": "C_C++/Compiler Warnings", + "index": 75, "toolComponent": { "name": "QDNET" } @@ -101354,14 +106766,49 @@ "parameters": { "suppressToolId": "RedundantSetterValueParameterDeclaration", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "VB.NET/Redundancies in Code", - "index": 88, + "index": 96, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppCompilerErrors", + "shortDescription": { + "text": "C++ Compiler Errors" + }, + "fullDescription": { + "text": "C++ Compiler Errors", + "markdown": "C++ Compiler Errors" + }, + "defaultConfiguration": { + "enabled": false, + "level": "error", + "parameters": { + "suppressToolId": "CppCompilerErrors", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Non configurable", + "index": 127, "toolComponent": { "name": "QDNET" } @@ -101387,7 +106834,8 @@ "parameters": { "suppressToolId": "VBReplaceWithOfType.FirstOrDefault.2", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -101420,7 +106868,8 @@ "parameters": { "suppressToolId": "VBReplaceWithOfType.FirstOrDefault.1", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -101445,7 +106894,7 @@ }, "fullDescription": { "text": "-Wpragma-system-header-outside-header clang diagnostic · Learn more", - "markdown": "-Wpragma-system-header-outside-header clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpragma-system-header-outside-header)" + "markdown": "-Wpragma-system-header-outside-header clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpragma-system-header-outside-header)" }, "defaultConfiguration": { "enabled": true, @@ -101453,13 +106902,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticPragmaSystemHeaderOutsideHeader", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -101486,14 +106936,15 @@ "parameters": { "suppressToolId": "ReplaceWithOfType.Last.1", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -101519,14 +106970,15 @@ "parameters": { "suppressToolId": "ReplaceWithOfType.Last.2", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -101552,14 +107004,15 @@ "parameters": { "suppressToolId": "Unity.BurstLocalStringVariableDeclaration", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity Burst Compiler Warnings", - "index": 54, + "index": 57, "toolComponent": { "name": "QDNET" } @@ -101577,7 +107030,7 @@ }, "fullDescription": { "text": "-Wmicrosoft-flexible-array clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-flexible-array clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-flexible-array)" + "markdown": "-Wmicrosoft-flexible-array clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-flexible-array)" }, "defaultConfiguration": { "enabled": true, @@ -101585,13 +107038,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftFlexibleArray", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -101618,14 +107072,15 @@ "parameters": { "suppressToolId": "PossibleWriteToMe", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "VB.NET/Potential Code Quality Issues", - "index": 58, + "index": 62, "toolComponent": { "name": "QDNET" } @@ -101643,7 +107098,7 @@ }, "fullDescription": { "text": "-Wunable-to-open-stats-file clang diagnostic · Learn more", - "markdown": "-Wunable-to-open-stats-file clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunable-to-open-stats-file)" + "markdown": "-Wunable-to-open-stats-file clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunable-to-open-stats-file)" }, "defaultConfiguration": { "enabled": true, @@ -101651,13 +107106,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnableToOpenStatsFile", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -101684,7 +107140,8 @@ "parameters": { "suppressToolId": "ByRefArgumentIsVolatileField", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -101717,13 +107174,14 @@ "parameters": { "suppressToolId": "CppMissingBlankLines", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Formatting", + "id": "C_C++/Formatting", "index": 28, "toolComponent": { "name": "QDNET" @@ -101742,7 +107200,7 @@ }, "fullDescription": { "text": "-Whlsl-extensions clang diagnostic · Learn more", - "markdown": "-Whlsl-extensions clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#whlsl-extensions)" + "markdown": "-Whlsl-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#whlsl-extensions)" }, "defaultConfiguration": { "enabled": true, @@ -101750,13 +107208,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticHlslExtensions", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -101775,7 +107234,7 @@ }, "fullDescription": { "text": "abseil-string-find-startswith clang-tidy check · Learn more", - "markdown": "abseil-string-find-startswith clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/string-find-startswith.html)" + "markdown": "abseil-string-find-startswith clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/string-find-startswith.html)" }, "defaultConfiguration": { "enabled": false, @@ -101783,13 +107242,48 @@ "parameters": { "suppressToolId": "CppClangTidyAbseilStringFindStartswith", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyBugproneReturnConstRefFromParameter", + "shortDescription": { + "text": "bugprone-return-const-ref-from-parameter clang-tidy check" + }, + "fullDescription": { + "text": "bugprone-return-const-ref-from-parameter clang-tidy check · Learn more", + "markdown": "bugprone-return-const-ref-from-parameter clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/return-const-ref-from-parameter.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyBugproneReturnConstRefFromParameter", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -101816,14 +107310,49 @@ "parameters": { "suppressToolId": "WebConfig.UnusedAddTag", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "Web.Config/Redundancies in Code", - "index": 90, + "index": 98, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyModernizeUseConstraints", + "shortDescription": { + "text": "modernize-use-constraints clang-tidy check" + }, + "fullDescription": { + "text": "modernize-use-constraints clang-tidy check · Learn more", + "markdown": "modernize-use-constraints clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-constraints.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyModernizeUseConstraints", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang-Tidy Checks", + "index": 8, "toolComponent": { "name": "QDNET" } @@ -101849,7 +107378,8 @@ "parameters": { "suppressToolId": "RedundantCatchClause", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -101882,7 +107412,8 @@ "parameters": { "suppressToolId": "Xaml.FieldModifierRequiresNameAttribute", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -101915,7 +107446,8 @@ "parameters": { "suppressToolId": "CA1872", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -101948,7 +107480,8 @@ "parameters": { "suppressToolId": "CA1871", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -101981,7 +107514,8 @@ "parameters": { "suppressToolId": "CA1870", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -102006,7 +107540,7 @@ }, "fullDescription": { "text": "-Warc-bridge-casts-disallowed-in-nonarc clang diagnostic · Learn more", - "markdown": "-Warc-bridge-casts-disallowed-in-nonarc clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#warc-bridge-casts-disallowed-in-nonarc)" + "markdown": "-Warc-bridge-casts-disallowed-in-nonarc clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#warc-bridge-casts-disallowed-in-nonarc)" }, "defaultConfiguration": { "enabled": true, @@ -102014,13 +107548,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticArcBridgeCastsDisallowedInNonarc", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -102039,7 +107574,7 @@ }, "fullDescription": { "text": "objc-super-self clang-tidy check · Learn more", - "markdown": "objc-super-self clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/objc/super-self.html)" + "markdown": "objc-super-self clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/objc/super-self.html)" }, "defaultConfiguration": { "enabled": true, @@ -102047,13 +107582,14 @@ "parameters": { "suppressToolId": "CppClangTidyObjcSuperSelf", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -102065,6 +107601,40 @@ } ] }, + { + "id": "RedundantPartialMethodEmptyImplementation", + "shortDescription": { + "text": "Empty implementation of 'partial void' method is redundant" + }, + "fullDescription": { + "text": "Empty implementation of 'partial void' method is redundant", + "markdown": "Empty implementation of 'partial void' method is redundant" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "RedundantPartialMethodEmptyImplementation", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Redundancies in Symbol Declarations", + "index": 36, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppUE4BlueprintCallableFunctionMayBeConst", "shortDescription": { @@ -102080,13 +107650,14 @@ "parameters": { "suppressToolId": "CppUE4BlueprintCallableFunctionMayBeConst", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Unreal Engine", + "id": "C_C++/Unreal Engine", "index": 6, "toolComponent": { "name": "QDNET" @@ -102105,7 +107676,7 @@ }, "fullDescription": { "text": "-Wabsolute-value clang diagnostic · Learn more", - "markdown": "-Wabsolute-value clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wabsolute-value)" + "markdown": "-Wabsolute-value clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wabsolute-value)" }, "defaultConfiguration": { "enabled": true, @@ -102113,13 +107684,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticAbsoluteValue", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -102146,7 +107718,8 @@ "parameters": { "suppressToolId": "CA1869", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -102179,7 +107752,8 @@ "parameters": { "suppressToolId": "CA1868", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -102212,7 +107786,8 @@ "parameters": { "suppressToolId": "CA1867", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -102245,7 +107820,8 @@ "parameters": { "suppressToolId": "CA1866", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -102278,7 +107854,8 @@ "parameters": { "suppressToolId": "CA1865", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -102311,7 +107888,8 @@ "parameters": { "suppressToolId": "CA1864", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -102344,7 +107922,8 @@ "parameters": { "suppressToolId": "CA1863", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -102377,7 +107956,8 @@ "parameters": { "suppressToolId": "CA1862", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -102395,6 +107975,40 @@ } ] }, + { + "id": "CppClangTidyClangDiagnosticDeprecatedNoRelaxedTemplateTemplateArgs", + "shortDescription": { + "text": "deprecated-no-relaxed-template-template-args clang diagnostic" + }, + "fullDescription": { + "text": "-Wdeprecated-no-relaxed-template-template-args clang diagnostic · Learn more", + "markdown": "-Wdeprecated-no-relaxed-template-template-args clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-no-relaxed-template-template-args)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedNoRelaxedTemplateTemplateArgs", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CA1861", "shortDescription": { @@ -102410,7 +108024,8 @@ "parameters": { "suppressToolId": "CA1861", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -102434,8 +108049,8 @@ "text": "Non-explicit conversion operator" }, "fullDescription": { - "text": "Non-explicit conversion operator", - "markdown": "Non-explicit conversion operator" + "text": "Non-explicit conversion operator Learn more...", + "markdown": "Non-explicit conversion operator [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Ro-conversion)" }, "defaultConfiguration": { "enabled": true, @@ -102443,14 +108058,15 @@ "parameters": { "suppressToolId": "CppNonExplicitConversionOperator", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Common Practices and Code Improvements", - "index": 17, + "id": "C_C++/Common Practices and Code Improvements", + "index": 16, "toolComponent": { "name": "QDNET" } @@ -102476,7 +108092,8 @@ "parameters": { "suppressToolId": "CA1860", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -102501,7 +108118,7 @@ }, "fullDescription": { "text": "-Wdeprecated-this-capture clang diagnostic · Learn more", - "markdown": "-Wdeprecated-this-capture clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdeprecated-this-capture)" + "markdown": "-Wdeprecated-this-capture clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-this-capture)" }, "defaultConfiguration": { "enabled": true, @@ -102509,13 +108126,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedThisCapture", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -102534,7 +108152,7 @@ }, "fullDescription": { "text": "-Wnullability clang diagnostic · Learn more", - "markdown": "-Wnullability clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wnullability)" + "markdown": "-Wnullability clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnullability)" }, "defaultConfiguration": { "enabled": true, @@ -102542,13 +108160,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticNullability", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -102567,7 +108186,7 @@ }, "fullDescription": { "text": "cert-dcl16-c clang-tidy check · Learn more", - "markdown": "cert-dcl16-c clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cert/dcl16-c.html)" + "markdown": "cert-dcl16-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/dcl16-c.html)" }, "defaultConfiguration": { "enabled": false, @@ -102575,13 +108194,14 @@ "parameters": { "suppressToolId": "CppClangTidyCertDcl16C", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -102600,7 +108220,7 @@ }, "fullDescription": { "text": "-Wlogical-not-parentheses clang diagnostic · Learn more", - "markdown": "-Wlogical-not-parentheses clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wlogical-not-parentheses)" + "markdown": "-Wlogical-not-parentheses clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wlogical-not-parentheses)" }, "defaultConfiguration": { "enabled": true, @@ -102608,13 +108228,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticLogicalNotParentheses", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -102633,7 +108254,7 @@ }, "fullDescription": { "text": "-Wauto-import clang diagnostic · Learn more", - "markdown": "-Wauto-import clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wauto-import)" + "markdown": "-Wauto-import clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wauto-import)" }, "defaultConfiguration": { "enabled": true, @@ -102641,13 +108262,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticAutoImport", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -102674,13 +108296,14 @@ "parameters": { "suppressToolId": "CppUPropertyMacroCallHasNoEffect", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Unreal Engine", + "id": "C_C++/Unreal Engine", "index": 6, "toolComponent": { "name": "QDNET" @@ -102707,7 +108330,8 @@ "parameters": { "suppressToolId": "CA1859", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -102732,7 +108356,7 @@ }, "fullDescription": { "text": "openmp-exception-escape clang-tidy check · Learn more", - "markdown": "openmp-exception-escape clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/openmp/exception-escape.html)" + "markdown": "openmp-exception-escape clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/openmp/exception-escape.html)" }, "defaultConfiguration": { "enabled": true, @@ -102740,13 +108364,14 @@ "parameters": { "suppressToolId": "CppClangTidyOpenmpExceptionEscape", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -102765,7 +108390,7 @@ }, "fullDescription": { "text": "-Wtautological-pointer-compare clang diagnostic · Learn more", - "markdown": "-Wtautological-pointer-compare clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wtautological-pointer-compare)" + "markdown": "-Wtautological-pointer-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtautological-pointer-compare)" }, "defaultConfiguration": { "enabled": true, @@ -102773,13 +108398,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticTautologicalPointerCompare", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -102806,7 +108432,8 @@ "parameters": { "suppressToolId": "CA1858", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -102839,7 +108466,8 @@ "parameters": { "suppressToolId": "CA1857", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -102872,7 +108500,8 @@ "parameters": { "suppressToolId": "BadMemberAccessSpaces", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -102897,7 +108526,7 @@ }, "fullDescription": { "text": "-Wc99-designator clang diagnostic · Learn more", - "markdown": "-Wc99-designator clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc99-designator)" + "markdown": "-Wc99-designator clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc99-designator)" }, "defaultConfiguration": { "enabled": true, @@ -102905,13 +108534,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticC99Designator", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -102938,7 +108568,8 @@ "parameters": { "suppressToolId": "CA1856", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -102971,7 +108602,8 @@ "parameters": { "suppressToolId": "CA1855", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -103004,7 +108636,8 @@ "parameters": { "suppressToolId": "CA1854", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -103037,7 +108670,8 @@ "parameters": { "suppressToolId": "CA1853", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -103070,7 +108704,8 @@ "parameters": { "suppressToolId": "CA1852", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -103103,7 +108738,8 @@ "parameters": { "suppressToolId": "CA1851", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -103136,14 +108772,15 @@ "parameters": { "suppressToolId": "Xunit.XunitTestWithConsoleOutput", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Xunit", - "index": 144, + "index": 173, "toolComponent": { "name": "QDNET" } @@ -103169,7 +108806,8 @@ "parameters": { "suppressToolId": "CA1850", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -103194,7 +108832,7 @@ }, "fullDescription": { "text": "-Wnonnull clang diagnostic · Learn more", - "markdown": "-Wnonnull clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wnonnull)" + "markdown": "-Wnonnull clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnonnull)" }, "defaultConfiguration": { "enabled": true, @@ -103202,13 +108840,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticNonnull", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -103235,14 +108874,15 @@ "parameters": { "suppressToolId": "ConvertIfToOrExpression", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -103268,14 +108908,15 @@ "parameters": { "suppressToolId": "RedundantInclude", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "T4/T4", - "index": 106, + "index": 116, "toolComponent": { "name": "QDNET" } @@ -103293,7 +108934,7 @@ }, "fullDescription": { "text": "-Winvalid-initializer-from-system-header clang diagnostic · Learn more", - "markdown": "-Winvalid-initializer-from-system-header clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#winvalid-initializer-from-system-header)" + "markdown": "-Winvalid-initializer-from-system-header clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winvalid-initializer-from-system-header)" }, "defaultConfiguration": { "enabled": true, @@ -103301,13 +108942,48 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticInvalidInitializerFromSystemHeader", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticArmInterruptVfpClobber", + "shortDescription": { + "text": "arm-interrupt-vfp-clobber clang diagnostic" + }, + "fullDescription": { + "text": "-Warm-interrupt-vfp-clobber clang diagnostic · Learn more", + "markdown": "-Warm-interrupt-vfp-clobber clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#warm-interrupt-vfp-clobber)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticArmInterruptVfpClobber", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -103326,7 +109002,7 @@ }, "fullDescription": { "text": "bugprone-suspicious-memset-usage clang-tidy check · Learn more", - "markdown": "bugprone-suspicious-memset-usage clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/suspicious-memset-usage.html)" + "markdown": "bugprone-suspicious-memset-usage clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/suspicious-memset-usage.html)" }, "defaultConfiguration": { "enabled": true, @@ -103334,13 +109010,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneSuspiciousMemsetUsage", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -103367,7 +109044,8 @@ "parameters": { "suppressToolId": "CA1849", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -103400,7 +109078,8 @@ "parameters": { "suppressToolId": "CA1848", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -103433,7 +109112,8 @@ "parameters": { "suppressToolId": "CA1847", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -103466,7 +109146,8 @@ "parameters": { "suppressToolId": "CA1846", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -103491,7 +109172,7 @@ }, "fullDescription": { "text": "-Wdeprecated-array-compare clang diagnostic · Learn more", - "markdown": "-Wdeprecated-array-compare clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdeprecated-array-compare)" + "markdown": "-Wdeprecated-array-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-array-compare)" }, "defaultConfiguration": { "enabled": true, @@ -103499,13 +109180,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedArrayCompare", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -103532,7 +109214,8 @@ "parameters": { "suppressToolId": "CA1845", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -103565,7 +109248,8 @@ "parameters": { "suppressToolId": "CA1844", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -103598,14 +109282,15 @@ "parameters": { "suppressToolId": "ReplaceWithSingleCallToCount", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -103631,7 +109316,8 @@ "parameters": { "suppressToolId": "CA1843", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -103664,7 +109350,8 @@ "parameters": { "suppressToolId": "CA1842", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -103697,7 +109384,8 @@ "parameters": { "suppressToolId": "CA1841", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -103730,7 +109418,8 @@ "parameters": { "suppressToolId": "CA1840", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -103748,6 +109437,40 @@ } ] }, + { + "id": "TypeWithSuspiciousEqualityIsUsedInRecord.Global", + "shortDescription": { + "text": "Type with suspicious equality is used in a record (non-private accessibility)" + }, + "fullDescription": { + "text": "Type with suspicious equality is used as a member of a record type. This inspection only triggers when the record type is actually used for equality comparisons in the solution. Learn more...", + "markdown": "Type with suspicious equality is used as a member of a record type. This inspection only triggers when the record type is actually used for equality comparisons in the solution. [Learn more...](https://www.jetbrains.com/help/rider/TypeWithSuspiciousEqualityIsUsedInRecord.Global.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "TypeWithSuspiciousEqualityIsUsedInRecord.Global", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 12, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppAbstractVirtualFunctionCallInCtor", "shortDescription": { @@ -103763,13 +109486,14 @@ "parameters": { "suppressToolId": "CppAbstractVirtualFunctionCallInCtor", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -103796,14 +109520,15 @@ "parameters": { "suppressToolId": "Unity.BurstSharedStaticCreate", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity Burst Compiler Warnings", - "index": 54, + "index": 57, "toolComponent": { "name": "QDNET" } @@ -103821,7 +109546,7 @@ }, "fullDescription": { "text": "hicpp-static-assert clang-tidy check · Learn more", - "markdown": "hicpp-static-assert clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/static-assert.html)" + "markdown": "hicpp-static-assert clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/static-assert.html)" }, "defaultConfiguration": { "enabled": false, @@ -103829,13 +109554,14 @@ "parameters": { "suppressToolId": "CppClangTidyHicppStaticAssert", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -103862,14 +109588,15 @@ "parameters": { "suppressToolId": "InvalidValueType", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "ResX/Potential Code Quality Issues", - "index": 63, + "index": 68, "toolComponent": { "name": "QDNET" } @@ -103895,14 +109622,15 @@ "parameters": { "suppressToolId": "RedundantPropertyParentheses", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "VB.NET/Redundancies in Code", - "index": 88, + "index": 96, "toolComponent": { "name": "QDNET" } @@ -103928,7 +109656,8 @@ "parameters": { "suppressToolId": "CA1839", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -103961,7 +109690,8 @@ "parameters": { "suppressToolId": "CA1838", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -103994,14 +109724,15 @@ "parameters": { "suppressToolId": "ContainerAnnotationRedundancy", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -104027,7 +109758,8 @@ "parameters": { "suppressToolId": "VBUseArrayCreationExpression.1", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -104060,7 +109792,8 @@ "parameters": { "suppressToolId": "CA1837", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -104093,7 +109826,8 @@ "parameters": { "suppressToolId": "VBUseArrayCreationExpression.2", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -104126,7 +109860,8 @@ "parameters": { "suppressToolId": "CA1836", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -104151,7 +109886,7 @@ }, "fullDescription": { "text": "-Wglobal-isel clang diagnostic · Learn more", - "markdown": "-Wglobal-isel clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wglobal-isel)" + "markdown": "-Wglobal-isel clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wglobal-isel)" }, "defaultConfiguration": { "enabled": true, @@ -104159,13 +109894,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticGlobalIsel", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -104192,7 +109928,8 @@ "parameters": { "suppressToolId": "CA1835", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -104225,7 +109962,8 @@ "parameters": { "suppressToolId": "CA1834", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -104258,7 +109996,8 @@ "parameters": { "suppressToolId": "CA1833", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -104291,7 +110030,8 @@ "parameters": { "suppressToolId": "CA1832", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -104324,7 +110064,8 @@ "parameters": { "suppressToolId": "CA1831", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -104357,7 +110098,8 @@ "parameters": { "suppressToolId": "ParameterOnlyUsedForPreconditionCheck.Local", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -104390,7 +110132,8 @@ "parameters": { "suppressToolId": "CA1830", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -104423,7 +110166,8 @@ "parameters": { "suppressToolId": "TryCastAlwaysSucceeds", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -104448,7 +110192,7 @@ }, "fullDescription": { "text": "-Wmicrosoft-cpp-macro clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-cpp-macro clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-cpp-macro)" + "markdown": "-Wmicrosoft-cpp-macro clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-cpp-macro)" }, "defaultConfiguration": { "enabled": true, @@ -104456,13 +110200,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftCppMacro", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -104481,7 +110226,7 @@ }, "fullDescription": { "text": "-Wdeprecated-copy-with-dtor clang diagnostic · Learn more", - "markdown": "-Wdeprecated-copy-with-dtor clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdeprecated-copy-with-dtor)" + "markdown": "-Wdeprecated-copy-with-dtor clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-copy-with-dtor)" }, "defaultConfiguration": { "enabled": true, @@ -104489,13 +110234,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedCopyWithDtor", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -104514,7 +110260,7 @@ }, "fullDescription": { "text": "-Wself-move clang diagnostic · Learn more", - "markdown": "-Wself-move clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wself-move)" + "markdown": "-Wself-move clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wself-move)" }, "defaultConfiguration": { "enabled": true, @@ -104522,13 +110268,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticSelfMove", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -104555,13 +110302,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaNSError", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -104588,7 +110336,8 @@ "parameters": { "suppressToolId": "GenericEnumeratorNotDisposed", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -104613,7 +110362,7 @@ }, "fullDescription": { "text": "-Wunreachable-code clang diagnostic · Learn more", - "markdown": "-Wunreachable-code clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunreachable-code)" + "markdown": "-Wunreachable-code clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunreachable-code)" }, "defaultConfiguration": { "enabled": true, @@ -104621,13 +110370,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnreachableCode", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -104654,7 +110404,8 @@ "parameters": { "suppressToolId": "CA1829", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -104687,7 +110438,8 @@ "parameters": { "suppressToolId": "CA1828", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -104705,6 +110457,40 @@ } ] }, + { + "id": "CanReplaceCastWithVariableType", + "shortDescription": { + "text": "Cast expression can be replaced with explicit variable type" + }, + "fullDescription": { + "text": "Replace cast expression with explicit variable type to enhance compile-time safety Learn more...", + "markdown": "Replace cast expression with explicit variable type to enhance compile-time safety [Learn more...](https://www.jetbrains.com/help/rider/CanReplaceCastWithVariableType.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "CanReplaceCastWithVariableType", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 12, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CA1827", "shortDescription": { @@ -104720,7 +110506,8 @@ "parameters": { "suppressToolId": "CA1827", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -104753,7 +110540,8 @@ "parameters": { "suppressToolId": "CA1826", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -104786,7 +110574,8 @@ "parameters": { "suppressToolId": "CA1825", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -104819,7 +110608,8 @@ "parameters": { "suppressToolId": "CA1824", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -104852,7 +110642,8 @@ "parameters": { "suppressToolId": "CA1823", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -104885,7 +110676,8 @@ "parameters": { "suppressToolId": "CA1822", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -104918,7 +110710,8 @@ "parameters": { "suppressToolId": "PossibleInvalidCastException", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -104951,7 +110744,8 @@ "parameters": { "suppressToolId": "CA1821", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -104984,7 +110778,8 @@ "parameters": { "suppressToolId": "CA1820", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -105009,7 +110804,7 @@ }, "fullDescription": { "text": "cppcoreguidelines-pro-type-vararg clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-pro-type-vararg clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/pro-type-vararg.html)" + "markdown": "cppcoreguidelines-pro-type-vararg clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/pro-type-vararg.html)" }, "defaultConfiguration": { "enabled": false, @@ -105017,13 +110812,14 @@ "parameters": { "suppressToolId": "CppClangTidyCppcoreguidelinesProTypeVararg", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -105041,8 +110837,8 @@ "text": "Redundant 'object.ToString()' call" }, "fullDescription": { - "text": "Use of ToString() call in a context where it would be generated by the compiler automatically. For example, in a concatenation with a string or as an argument of a string.Format() call.", - "markdown": "Use of ToString() call in a context where it would be generated by the compiler automatically. For example, in a concatenation with a string or as an argument of a string.Format() call." + "text": "Use of ToString() call in a context where it would be generated by the compiler automatically. For example, in a concatenation with a string or as an argument of a string.Format() call. Learn more...", + "markdown": "Use of ToString() call in a context where it would be generated by the compiler automatically. For example, in a concatenation with a string or as an argument of a string.Format() call. [Learn more...](https://www.jetbrains.com/help/rider/RedundantToStringCall.html)" }, "defaultConfiguration": { "enabled": true, @@ -105050,7 +110846,8 @@ "parameters": { "suppressToolId": "RedundantToStringCall", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -105083,14 +110880,15 @@ "parameters": { "suppressToolId": "ConvertIfDoToWhile", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -105108,7 +110906,7 @@ }, "fullDescription": { "text": "bugprone-unchecked-optional-access clang-tidy check · Learn more", - "markdown": "bugprone-unchecked-optional-access clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/unchecked-optional-access.html)" + "markdown": "bugprone-unchecked-optional-access clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/unchecked-optional-access.html)" }, "defaultConfiguration": { "enabled": true, @@ -105116,13 +110914,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneUncheckedOptionalAccess", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -105149,7 +110948,8 @@ "parameters": { "suppressToolId": "VBSimplifyLinqExpression.10", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -105182,7 +110982,8 @@ "parameters": { "suppressToolId": "UnusedPositionalParameterCompiler", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -105207,7 +111008,7 @@ }, "fullDescription": { "text": "-Wzero-as-null-pointer-constant clang diagnostic · Learn more", - "markdown": "-Wzero-as-null-pointer-constant clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wzero-as-null-pointer-constant)" + "markdown": "-Wzero-as-null-pointer-constant clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wzero-as-null-pointer-constant)" }, "defaultConfiguration": { "enabled": false, @@ -105215,13 +111016,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticZeroAsNullPointerConstant", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -105248,13 +111050,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerUnixVfork", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -105281,7 +111084,8 @@ "parameters": { "suppressToolId": "Xaml.InvalidResourceType", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -105306,7 +111110,7 @@ }, "fullDescription": { "text": "-Wswitch clang diagnostic · Learn more", - "markdown": "-Wswitch clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wswitch)" + "markdown": "-Wswitch clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wswitch)" }, "defaultConfiguration": { "enabled": true, @@ -105314,13 +111118,48 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticSwitch", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticNvccCompat", + "shortDescription": { + "text": "nvcc-compat clang diagnostic" + }, + "fullDescription": { + "text": "-Wnvcc-compat clang diagnostic · Learn more", + "markdown": "-Wnvcc-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnvcc-compat)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticNvccCompat", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -105347,14 +111186,15 @@ "parameters": { "suppressToolId": "Unity.BurstStringFormatInvalidFormat", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity Burst Compiler Warnings", - "index": 54, + "index": 57, "toolComponent": { "name": "QDNET" } @@ -105372,7 +111212,7 @@ }, "fullDescription": { "text": "modernize-macro-to-enum clang-tidy check · Learn more", - "markdown": "modernize-macro-to-enum clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/macro-to-enum.html)" + "markdown": "modernize-macro-to-enum clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/macro-to-enum.html)" }, "defaultConfiguration": { "enabled": true, @@ -105380,13 +111220,14 @@ "parameters": { "suppressToolId": "CppClangTidyModernizeMacroToEnum", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -105413,7 +111254,8 @@ "parameters": { "suppressToolId": "EmptyNamespace", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -105446,14 +111288,15 @@ "parameters": { "suppressToolId": "UseEmptyTypesField", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -105479,14 +111322,15 @@ "parameters": { "suppressToolId": "CppWrongIncludesOrder", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Syntax Style", - "index": 83, + "id": "C_C++/Syntax Style", + "index": 91, "toolComponent": { "name": "QDNET" } @@ -105512,14 +111356,15 @@ "parameters": { "suppressToolId": "RedundantStringType", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "ResX/Redundancies in Code", - "index": 91, + "index": 99, "toolComponent": { "name": "QDNET" } @@ -105545,13 +111390,14 @@ "parameters": { "suppressToolId": "CppDereferenceOperatorLimitExceeded", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -105570,7 +111416,7 @@ }, "fullDescription": { "text": "-Wc++2a-compat-pedantic clang diagnostic · Learn more", - "markdown": "-Wc++2a-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-2a-compat-pedantic)" + "markdown": "-Wc++2a-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-2a-compat-pedantic)" }, "defaultConfiguration": { "enabled": false, @@ -105578,13 +111424,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCpp2aCompatPedantic", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -105611,7 +111458,8 @@ "parameters": { "suppressToolId": "UnusedType.Local", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -105644,7 +111492,8 @@ "parameters": { "suppressToolId": "IteratorNeverReturns", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -105662,6 +111511,40 @@ } ] }, + { + "id": "CppClangTidyCertCtr56Cpp", + "shortDescription": { + "text": "cert-ctr56-cpp clang-tidy check" + }, + "fullDescription": { + "text": "cert-ctr56-cpp clang-tidy check · Learn more", + "markdown": "cert-ctr56-cpp clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/ctr56-cpp.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyCertCtr56Cpp", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppClangTidyLlvmTwineLocal", "shortDescription": { @@ -105669,7 +111552,7 @@ }, "fullDescription": { "text": "llvm-twine-local clang-tidy check · Learn more", - "markdown": "llvm-twine-local clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/llvm/twine-local.html)" + "markdown": "llvm-twine-local clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/llvm/twine-local.html)" }, "defaultConfiguration": { "enabled": false, @@ -105677,13 +111560,14 @@ "parameters": { "suppressToolId": "CppClangTidyLlvmTwineLocal", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -105710,14 +111594,15 @@ "parameters": { "suppressToolId": "Unity.RedundantFormerlySerializedAsAttribute", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity", - "index": 19, + "index": 18, "toolComponent": { "name": "QDNET" } @@ -105743,13 +111628,14 @@ "parameters": { "suppressToolId": "CppUE4CodingStandardNamingViolationWarning", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Unreal Engine", + "id": "C_C++/Unreal Engine", "index": 6, "toolComponent": { "name": "QDNET" @@ -105776,7 +111662,8 @@ "parameters": { "suppressToolId": "TabsOutsideIndent", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -105809,14 +111696,15 @@ "parameters": { "suppressToolId": "Unity.BurstDebugLogInvalidArgument", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity Burst Compiler Warnings", - "index": 54, + "index": 57, "toolComponent": { "name": "QDNET" } @@ -105842,14 +111730,15 @@ "parameters": { "suppressToolId": "CppExplicitSpecializationInNonNamespaceScope", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Compiler Warnings", - "index": 69, + "id": "C_C++/Compiler Warnings", + "index": 75, "toolComponent": { "name": "QDNET" } @@ -105867,7 +111756,7 @@ }, "fullDescription": { "text": "abseil-no-namespace clang-tidy check · Learn more", - "markdown": "abseil-no-namespace clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/no-namespace.html)" + "markdown": "abseil-no-namespace clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/no-namespace.html)" }, "defaultConfiguration": { "enabled": false, @@ -105875,13 +111764,14 @@ "parameters": { "suppressToolId": "CppClangTidyAbseilNoNamespace", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -105908,7 +111798,8 @@ "parameters": { "suppressToolId": "PossiblyMistakenUseOfInterpolatedStringInsert", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -105933,7 +111824,7 @@ }, "fullDescription": { "text": "-Wmain clang diagnostic · Learn more", - "markdown": "-Wmain clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmain)" + "markdown": "-Wmain clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmain)" }, "defaultConfiguration": { "enabled": true, @@ -105941,13 +111832,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMain", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -105966,7 +111858,7 @@ }, "fullDescription": { "text": "-Wthread-safety-negative clang diagnostic · Learn more", - "markdown": "-Wthread-safety-negative clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wthread-safety-negative)" + "markdown": "-Wthread-safety-negative clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wthread-safety-negative)" }, "defaultConfiguration": { "enabled": true, @@ -105974,13 +111866,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticThreadSafetyNegative", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -106007,14 +111900,15 @@ "parameters": { "suppressToolId": "UnclosedScript", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "HTML/Potential Code Quality Issues", - "index": 51, + "index": 54, "toolComponent": { "name": "QDNET" } @@ -106040,14 +111934,15 @@ "parameters": { "suppressToolId": "LongLiteralEndingLowerL", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "VB.NET/Potential Code Quality Issues", - "index": 58, + "index": 62, "toolComponent": { "name": "QDNET" } @@ -106073,13 +111968,14 @@ "parameters": { "suppressToolId": "CppTemplateArgumentsCanBeDeduced", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Redundancies in Code", + "id": "C_C++/Redundancies in Code", "index": 34, "toolComponent": { "name": "QDNET" @@ -106098,7 +111994,7 @@ }, "fullDescription": { "text": "altera-single-work-item-barrier clang-tidy check · Learn more", - "markdown": "altera-single-work-item-barrier clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/altera/single-work-item-barrier.html)" + "markdown": "altera-single-work-item-barrier clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/altera/single-work-item-barrier.html)" }, "defaultConfiguration": { "enabled": false, @@ -106106,13 +112002,14 @@ "parameters": { "suppressToolId": "CppClangTidyAlteraSingleWorkItemBarrier", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -106131,7 +112028,7 @@ }, "fullDescription": { "text": "modernize-use-bool-literals clang-tidy check · Learn more", - "markdown": "modernize-use-bool-literals clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-bool-literals.html)" + "markdown": "modernize-use-bool-literals clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-bool-literals.html)" }, "defaultConfiguration": { "enabled": true, @@ -106139,13 +112036,14 @@ "parameters": { "suppressToolId": "CppClangTidyModernizeUseBoolLiterals", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -106172,13 +112070,14 @@ "parameters": { "suppressToolId": "CppDefaultedSpecialMemberFunctionIsImplicitlyDeleted", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -106197,7 +112096,7 @@ }, "fullDescription": { "text": "-Wdtor-name clang diagnostic · Learn more", - "markdown": "-Wdtor-name clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdtor-name)" + "markdown": "-Wdtor-name clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdtor-name)" }, "defaultConfiguration": { "enabled": true, @@ -106205,13 +112104,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDtorName", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -106230,7 +112130,7 @@ }, "fullDescription": { "text": "-Wunsupported-visibility clang diagnostic · Learn more", - "markdown": "-Wunsupported-visibility clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunsupported-visibility)" + "markdown": "-Wunsupported-visibility clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunsupported-visibility)" }, "defaultConfiguration": { "enabled": true, @@ -106238,13 +112138,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnsupportedVisibility", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -106263,7 +112164,7 @@ }, "fullDescription": { "text": "-Wgnu-compound-literal-initializer clang diagnostic · Learn more", - "markdown": "-Wgnu-compound-literal-initializer clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wgnu-compound-literal-initializer)" + "markdown": "-Wgnu-compound-literal-initializer clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-compound-literal-initializer)" }, "defaultConfiguration": { "enabled": true, @@ -106271,13 +112172,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticGnuCompoundLiteralInitializer", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -106296,7 +112198,7 @@ }, "fullDescription": { "text": "-Wint-to-pointer-cast clang diagnostic · Learn more", - "markdown": "-Wint-to-pointer-cast clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wint-to-pointer-cast)" + "markdown": "-Wint-to-pointer-cast clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wint-to-pointer-cast)" }, "defaultConfiguration": { "enabled": true, @@ -106304,13 +112206,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticIntToPointerCast", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -106329,7 +112232,7 @@ }, "fullDescription": { "text": "-Wasm-operand-widths clang diagnostic · Learn more", - "markdown": "-Wasm-operand-widths clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wasm-operand-widths)" + "markdown": "-Wasm-operand-widths clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wasm-operand-widths)" }, "defaultConfiguration": { "enabled": true, @@ -106337,13 +112240,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticAsmOperandWidths", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -106362,7 +112266,7 @@ }, "fullDescription": { "text": "-Wheader-hygiene clang diagnostic · Learn more", - "markdown": "-Wheader-hygiene clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wheader-hygiene)" + "markdown": "-Wheader-hygiene clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wheader-hygiene)" }, "defaultConfiguration": { "enabled": true, @@ -106370,13 +112274,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticHeaderHygiene", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -106403,14 +112308,15 @@ "parameters": { "suppressToolId": "Mvc.ViewComponentViewNotResolved", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "Aspx/Potential Code Quality Issues", - "index": 60, + "index": 64, "toolComponent": { "name": "QDNET" } @@ -106428,7 +112334,7 @@ }, "fullDescription": { "text": "-Wgnu-auto-type clang diagnostic · Learn more", - "markdown": "-Wgnu-auto-type clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wgnu-auto-type)" + "markdown": "-Wgnu-auto-type clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-auto-type)" }, "defaultConfiguration": { "enabled": true, @@ -106436,13 +112342,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticGnuAutoType", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -106461,7 +112368,7 @@ }, "fullDescription": { "text": "-Wmicrosoft-template-shadow clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-template-shadow clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-template-shadow)" + "markdown": "-Wmicrosoft-template-shadow clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-template-shadow)" }, "defaultConfiguration": { "enabled": true, @@ -106469,13 +112376,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftTemplateShadow", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -106502,13 +112410,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerUnixMismatchedDeallocator", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -106535,13 +112444,14 @@ "parameters": { "suppressToolId": "CppPossiblyUnintendedObjectSlicing", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -106568,13 +112478,14 @@ "parameters": { "suppressToolId": "CppUnsignedZeroComparison", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -106601,14 +112512,15 @@ "parameters": { "suppressToolId": "FSharpRedundantAttributeSuffix", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "F#/Redundancies in Code", - "index": 67, + "index": 73, "toolComponent": { "name": "QDNET" } @@ -106634,7 +112546,8 @@ "parameters": { "suppressToolId": "BaseObjectEqualsIsObjectEquals", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -106659,7 +112572,7 @@ }, "fullDescription": { "text": "cert-flp30-c clang-tidy check · Learn more", - "markdown": "cert-flp30-c clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cert/flp30-c.html)" + "markdown": "cert-flp30-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/flp30-c.html)" }, "defaultConfiguration": { "enabled": true, @@ -106667,13 +112580,14 @@ "parameters": { "suppressToolId": "CppClangTidyCertFlp30C", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -106700,7 +112614,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS0109", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -106733,7 +112648,8 @@ "parameters": { "suppressToolId": "NUnit.IncorrectExpectedResultType", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -106766,13 +112682,14 @@ "parameters": { "suppressToolId": "CppUFunctionMacroCallHasNoEffect", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Unreal Engine", + "id": "C_C++/Unreal Engine", "index": 6, "toolComponent": { "name": "QDNET" @@ -106791,7 +112708,7 @@ }, "fullDescription": { "text": "readability-identifier-naming clang-tidy check · Learn more", - "markdown": "readability-identifier-naming clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/identifier-naming.html)" + "markdown": "readability-identifier-naming clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/identifier-naming.html)" }, "defaultConfiguration": { "enabled": false, @@ -106799,13 +112716,14 @@ "parameters": { "suppressToolId": "CppClangTidyReadabilityIdentifierNaming", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -106823,8 +112741,8 @@ "text": "Merge null/pattern checks into complex pattern" }, "fullDescription": { - "text": "Merge sequential null/pattern checks into single recursive/logical pattern check", - "markdown": "Merge sequential null/pattern checks into single recursive/logical pattern check" + "text": "Merge sequential null/pattern checks into single recursive/logical pattern check Learn more...", + "markdown": "Merge sequential null/pattern checks into single recursive/logical pattern check [Learn more...](https://www.jetbrains.com/help/rider/MergeIntoPattern.html)" }, "defaultConfiguration": { "enabled": true, @@ -106832,7 +112750,8 @@ "parameters": { "suppressToolId": "MergeIntoPattern", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -106865,7 +112784,8 @@ "parameters": { "suppressToolId": "ReturnOfUsingVariable", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -106890,7 +112810,7 @@ }, "fullDescription": { "text": "-Wempty-decomposition clang diagnostic · Learn more", - "markdown": "-Wempty-decomposition clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wempty-decomposition)" + "markdown": "-Wempty-decomposition clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wempty-decomposition)" }, "defaultConfiguration": { "enabled": true, @@ -106898,13 +112818,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticEmptyDecomposition", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -106931,13 +112852,14 @@ "parameters": { "suppressToolId": "CppExpressionWithoutSideEffects", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -106964,7 +112886,8 @@ "parameters": { "suppressToolId": "SwitchExpressionHandlesSomeKnownEnumValuesWithExceptionInDefault", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -106989,7 +112912,7 @@ }, "fullDescription": { "text": "-Wnontrivial-memaccess clang diagnostic · Learn more", - "markdown": "-Wnontrivial-memaccess clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wnontrivial-memaccess)" + "markdown": "-Wnontrivial-memaccess clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnontrivial-memaccess)" }, "defaultConfiguration": { "enabled": true, @@ -106997,13 +112920,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticNontrivialMemaccess", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -107030,7 +112954,8 @@ "parameters": { "suppressToolId": "LocalVariableHidesPrimaryConstructorParameter", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -107055,7 +112980,7 @@ }, "fullDescription": { "text": "hicpp-use-emplace clang-tidy check · Learn more", - "markdown": "hicpp-use-emplace clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/use-emplace.html)" + "markdown": "hicpp-use-emplace clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/use-emplace.html)" }, "defaultConfiguration": { "enabled": false, @@ -107063,13 +112988,14 @@ "parameters": { "suppressToolId": "CppClangTidyHicppUseEmplace", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -107096,7 +113022,8 @@ "parameters": { "suppressToolId": "AccessToForEachVariableInClosure", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -107129,13 +113056,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerCoreNullDereference", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -107153,8 +113081,8 @@ "text": "Incorrect Odin's group attribute type" }, "fullDescription": { - "text": "Different type of group attributes should not share the same path", - "markdown": "Different type of group attributes should not share the same path" + "text": "Different types of group attributes should not share the same path", + "markdown": "Different types of group attributes should not share the same path" }, "defaultConfiguration": { "enabled": true, @@ -107162,14 +113090,15 @@ "parameters": { "suppressToolId": "Odin.OdinMemberWrongGroupingAttribute", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity", - "index": 19, + "index": 18, "toolComponent": { "name": "QDNET" } @@ -107187,7 +113116,7 @@ }, "fullDescription": { "text": "-Wserialized-diagnostics clang diagnostic · Learn more", - "markdown": "-Wserialized-diagnostics clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wserialized-diagnostics)" + "markdown": "-Wserialized-diagnostics clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wserialized-diagnostics)" }, "defaultConfiguration": { "enabled": true, @@ -107195,13 +113124,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticSerializedDiagnostics", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -107228,7 +113158,8 @@ "parameters": { "suppressToolId": "RedundantStringToCharArrayCall", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -107253,7 +113184,7 @@ }, "fullDescription": { "text": "-Wdeprecated-attributes clang diagnostic · Learn more", - "markdown": "-Wdeprecated-attributes clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdeprecated-attributes)" + "markdown": "-Wdeprecated-attributes clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-attributes)" }, "defaultConfiguration": { "enabled": true, @@ -107261,13 +113192,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedAttributes", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -107294,7 +113226,8 @@ "parameters": { "suppressToolId": "RedundantRecordClassKeyword", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -107319,7 +113252,7 @@ }, "fullDescription": { "text": "-Wdarwin-sdk-settings clang diagnostic · Learn more", - "markdown": "-Wdarwin-sdk-settings clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdarwin-sdk-settings)" + "markdown": "-Wdarwin-sdk-settings clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdarwin-sdk-settings)" }, "defaultConfiguration": { "enabled": false, @@ -107327,13 +113260,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDarwinSdkSettings", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -107360,14 +113294,15 @@ "parameters": { "suppressToolId": "CppAwaiterTypeIsNotClass", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Compiler Warnings", - "index": 69, + "id": "C_C++/Compiler Warnings", + "index": 75, "toolComponent": { "name": "QDNET" } @@ -107393,7 +113328,8 @@ "parameters": { "suppressToolId": "VBReplaceWithSingleCallToSingleOrDefault", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -107426,14 +113362,15 @@ "parameters": { "suppressToolId": "CSharpBuildCSInvalidModuleName", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unreal Build System", - "index": 119, + "index": 141, "toolComponent": { "name": "QDNET" } @@ -107459,7 +113396,8 @@ "parameters": { "suppressToolId": "PossibleLossOfFraction", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -107492,14 +113430,15 @@ "parameters": { "suppressToolId": "ValueRangeAttributeViolation", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Constraints Violations", - "index": 73, + "index": 80, "toolComponent": { "name": "QDNET" } @@ -107525,7 +113464,8 @@ "parameters": { "suppressToolId": "ForStatementConditionIsTrue", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -107549,8 +113489,8 @@ "text": "Unassigned field (private accessibility)" }, "fullDescription": { - "text": "Field is never assigned", - "markdown": "Field is never assigned" + "text": "Field is never assigned Learn more...", + "markdown": "Field is never assigned [Learn more...](https://www.jetbrains.com/help/rider/UnassignedField.Local.html)" }, "defaultConfiguration": { "enabled": true, @@ -107558,7 +113498,8 @@ "parameters": { "suppressToolId": "UnassignedField.Local", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -107591,7 +113532,8 @@ "parameters": { "suppressToolId": "ShiftExpressionRightOperandNotEqualRealCount", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -107624,14 +113566,15 @@ "parameters": { "suppressToolId": "ReplaceWithSingleCallToSingleOrDefault", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -107649,7 +113592,7 @@ }, "fullDescription": { "text": "cppcoreguidelines-pro-bounds-array-to-pointer-decay clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-pro-bounds-array-to-pointer-decay clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/pro-bounds-array-to-pointer-decay.html)" + "markdown": "cppcoreguidelines-pro-bounds-array-to-pointer-decay clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/pro-bounds-array-to-pointer-decay.html)" }, "defaultConfiguration": { "enabled": false, @@ -107657,13 +113600,14 @@ "parameters": { "suppressToolId": "CppClangTidyCppcoreguidelinesProBoundsArrayToPointerDecay", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -107690,7 +113634,8 @@ "parameters": { "suppressToolId": "NonConstantEqualityExpressionHasConstantResult", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -107715,7 +113660,7 @@ }, "fullDescription": { "text": "-Wunaligned-access clang diagnostic · Learn more", - "markdown": "-Wunaligned-access clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunaligned-access)" + "markdown": "-Wunaligned-access clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunaligned-access)" }, "defaultConfiguration": { "enabled": true, @@ -107723,13 +113668,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnalignedAccess", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -107756,13 +113702,14 @@ "parameters": { "suppressToolId": "CppConditionalExpressionCanBeSimplified", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Redundancies in Code", + "id": "C_C++/Redundancies in Code", "index": 34, "toolComponent": { "name": "QDNET" @@ -107789,7 +113736,8 @@ "parameters": { "suppressToolId": "RedundantExplicitTupleComponentName", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -107814,7 +113762,7 @@ }, "fullDescription": { "text": "-Wbinding-in-condition clang diagnostic · Learn more", - "markdown": "-Wbinding-in-condition clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wbinding-in-condition)" + "markdown": "-Wbinding-in-condition clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wbinding-in-condition)" }, "defaultConfiguration": { "enabled": true, @@ -107822,13 +113770,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticBindingInCondition", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -107847,7 +113796,7 @@ }, "fullDescription": { "text": "-Wbind-to-temporary-copy clang diagnostic · Learn more", - "markdown": "-Wbind-to-temporary-copy clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wbind-to-temporary-copy)" + "markdown": "-Wbind-to-temporary-copy clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wbind-to-temporary-copy)" }, "defaultConfiguration": { "enabled": true, @@ -107855,13 +113804,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticBindToTemporaryCopy", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -107888,7 +113838,8 @@ "parameters": { "suppressToolId": "BadControlBracesIndent", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -107913,7 +113864,7 @@ }, "fullDescription": { "text": "-Wpointer-to-enum-cast clang diagnostic · Learn more", - "markdown": "-Wpointer-to-enum-cast clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wpointer-to-enum-cast)" + "markdown": "-Wpointer-to-enum-cast clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpointer-to-enum-cast)" }, "defaultConfiguration": { "enabled": true, @@ -107921,13 +113872,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticPointerToEnumCast", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -107946,7 +113898,7 @@ }, "fullDescription": { "text": "-Wdeprecated-enum-compare-conditional clang diagnostic · Learn more", - "markdown": "-Wdeprecated-enum-compare-conditional clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdeprecated-enum-compare-conditional)" + "markdown": "-Wdeprecated-enum-compare-conditional clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-enum-compare-conditional)" }, "defaultConfiguration": { "enabled": true, @@ -107954,13 +113906,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedEnumCompareConditional", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -107979,7 +113932,7 @@ }, "fullDescription": { "text": "-Wignored-optimization-argument clang diagnostic · Learn more", - "markdown": "-Wignored-optimization-argument clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wignored-optimization-argument)" + "markdown": "-Wignored-optimization-argument clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wignored-optimization-argument)" }, "defaultConfiguration": { "enabled": true, @@ -107987,13 +113940,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticIgnoredOptimizationArgument", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -108020,13 +113974,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaSuperDealloc", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -108045,7 +114000,7 @@ }, "fullDescription": { "text": "bugprone-virtual-near-miss clang-tidy check · Learn more", - "markdown": "bugprone-virtual-near-miss clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/virtual-near-miss.html)" + "markdown": "bugprone-virtual-near-miss clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/virtual-near-miss.html)" }, "defaultConfiguration": { "enabled": true, @@ -108053,13 +114008,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneVirtualNearMiss", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -108086,14 +114042,15 @@ "parameters": { "suppressToolId": "WebConfig.RedundantLocationTag", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "Web.Config/Redundancies in Code", - "index": 90, + "index": 98, "toolComponent": { "name": "QDNET" } @@ -108111,7 +114068,7 @@ }, "fullDescription": { "text": "modernize-use-auto clang-tidy check · Learn more", - "markdown": "modernize-use-auto clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-auto.html)" + "markdown": "modernize-use-auto clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-auto.html)" }, "defaultConfiguration": { "enabled": false, @@ -108119,13 +114076,14 @@ "parameters": { "suppressToolId": "CppClangTidyModernizeUseAuto", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -108144,7 +114102,7 @@ }, "fullDescription": { "text": "performance-no-int-to-ptr clang-tidy check · Learn more", - "markdown": "performance-no-int-to-ptr clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/performance/no-int-to-ptr.html)" + "markdown": "performance-no-int-to-ptr clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance/no-int-to-ptr.html)" }, "defaultConfiguration": { "enabled": true, @@ -108152,13 +114110,14 @@ "parameters": { "suppressToolId": "CppClangTidyPerformanceNoIntToPtr", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -108185,7 +114144,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8094", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -108218,14 +114178,15 @@ "parameters": { "suppressToolId": "ClassCanBeSealed.Global", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -108243,7 +114204,7 @@ }, "fullDescription": { "text": "-Wc++20-attribute-extensions clang diagnostic · Learn more", - "markdown": "-Wc++20-attribute-extensions clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-20-attribute-extensions)" + "markdown": "-Wc++20-attribute-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-20-attribute-extensions)" }, "defaultConfiguration": { "enabled": true, @@ -108251,13 +114212,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCpp20AttributeExtensions", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -108276,7 +114238,7 @@ }, "fullDescription": { "text": "-Wmicrosoft-anon-tag clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-anon-tag clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-anon-tag)" + "markdown": "-Wmicrosoft-anon-tag clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-anon-tag)" }, "defaultConfiguration": { "enabled": true, @@ -108284,13 +114246,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftAnonTag", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -108317,13 +114280,14 @@ "parameters": { "suppressToolId": "CppMissingLinebreak", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Formatting", + "id": "C_C++/Formatting", "index": 28, "toolComponent": { "name": "QDNET" @@ -108342,7 +114306,7 @@ }, "fullDescription": { "text": "-Wfinal-macro clang diagnostic · Learn more", - "markdown": "-Wfinal-macro clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wfinal-macro)" + "markdown": "-Wfinal-macro clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wfinal-macro)" }, "defaultConfiguration": { "enabled": true, @@ -108350,13 +114314,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticFinalMacro", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -108375,7 +114340,7 @@ }, "fullDescription": { "text": "bugprone-misplaced-widening-cast clang-tidy check · Learn more", - "markdown": "bugprone-misplaced-widening-cast clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/misplaced-widening-cast.html)" + "markdown": "bugprone-misplaced-widening-cast clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/misplaced-widening-cast.html)" }, "defaultConfiguration": { "enabled": true, @@ -108383,13 +114348,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneMisplacedWideningCast", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -108408,7 +114374,7 @@ }, "fullDescription": { "text": "readability-container-data-pointer clang-tidy check · Learn more", - "markdown": "readability-container-data-pointer clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/container-data-pointer.html)" + "markdown": "readability-container-data-pointer clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/container-data-pointer.html)" }, "defaultConfiguration": { "enabled": true, @@ -108416,13 +114382,14 @@ "parameters": { "suppressToolId": "CppClangTidyReadabilityContainerDataPointer", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -108449,13 +114416,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaUnusedIvars", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -108474,7 +114442,7 @@ }, "fullDescription": { "text": "bugprone-signed-char-misuse clang-tidy check · Learn more", - "markdown": "bugprone-signed-char-misuse clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/signed-char-misuse.html)" + "markdown": "bugprone-signed-char-misuse clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/signed-char-misuse.html)" }, "defaultConfiguration": { "enabled": true, @@ -108482,13 +114450,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneSignedCharMisuse", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -108507,7 +114476,7 @@ }, "fullDescription": { "text": "-Wdeprecated-implementations clang diagnostic · Learn more", - "markdown": "-Wdeprecated-implementations clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdeprecated-implementations)" + "markdown": "-Wdeprecated-implementations clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-implementations)" }, "defaultConfiguration": { "enabled": true, @@ -108515,13 +114484,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedImplementations", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -108548,7 +114518,8 @@ "parameters": { "suppressToolId": "MergeAndPattern", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -108581,7 +114552,8 @@ "parameters": { "suppressToolId": "ConvertNullableToShortForm", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -108614,7 +114586,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS8073", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -108647,14 +114620,15 @@ "parameters": { "suppressToolId": "CppReinterpretCastFromVoidPtr", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Common Practices and Code Improvements", - "index": 17, + "id": "C_C++/Common Practices and Code Improvements", + "index": 16, "toolComponent": { "name": "QDNET" } @@ -108680,7 +114654,8 @@ "parameters": { "suppressToolId": "CA2300", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -108713,7 +114688,8 @@ "parameters": { "suppressToolId": "CA2301", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -108746,7 +114722,8 @@ "parameters": { "suppressToolId": "Xaml.MethodArgumentsWillBeIgnored", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -108779,7 +114756,8 @@ "parameters": { "suppressToolId": "CA2302", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -108812,7 +114790,8 @@ "parameters": { "suppressToolId": "CA2305", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -108837,7 +114816,7 @@ }, "fullDescription": { "text": "-Wunsupported-abs clang diagnostic · Learn more", - "markdown": "-Wunsupported-abs clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunsupported-abs)" + "markdown": "-Wunsupported-abs clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunsupported-abs)" }, "defaultConfiguration": { "enabled": true, @@ -108845,13 +114824,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnsupportedAbs", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -108870,7 +114850,7 @@ }, "fullDescription": { "text": "-Wunsupported-abi clang diagnostic · Learn more", - "markdown": "-Wunsupported-abi clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wunsupported-abi)" + "markdown": "-Wunsupported-abi clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunsupported-abi)" }, "defaultConfiguration": { "enabled": true, @@ -108878,13 +114858,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticUnsupportedAbi", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -108911,7 +114892,8 @@ "parameters": { "suppressToolId": "CA1070", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -108936,7 +114918,7 @@ }, "fullDescription": { "text": "-Wmissing-constinit clang diagnostic · Learn more", - "markdown": "-Wmissing-constinit clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wmissing-constinit)" + "markdown": "-Wmissing-constinit clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmissing-constinit)" }, "defaultConfiguration": { "enabled": true, @@ -108944,13 +114926,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticMissingConstinit", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -108969,7 +114952,7 @@ }, "fullDescription": { "text": "-Wreorder-init-list clang diagnostic · Learn more", - "markdown": "-Wreorder-init-list clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wreorder-init-list)" + "markdown": "-Wreorder-init-list clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wreorder-init-list)" }, "defaultConfiguration": { "enabled": true, @@ -108977,13 +114960,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticReorderInitList", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -109002,7 +114986,7 @@ }, "fullDescription": { "text": "-Wvec-elem-size clang diagnostic · Learn more", - "markdown": "-Wvec-elem-size clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wvec-elem-size)" + "markdown": "-Wvec-elem-size clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wvec-elem-size)" }, "defaultConfiguration": { "enabled": true, @@ -109010,13 +114994,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticVecElemSize", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -109035,7 +115020,7 @@ }, "fullDescription": { "text": "-Wimplicit-int clang diagnostic · Learn more", - "markdown": "-Wimplicit-int clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wimplicit-int)" + "markdown": "-Wimplicit-int clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wimplicit-int)" }, "defaultConfiguration": { "enabled": true, @@ -109043,13 +115028,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticImplicitInt", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -109076,7 +115062,8 @@ "parameters": { "suppressToolId": "Xaml.ParentIsOutOfCurrentComponentTree", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -109101,7 +115088,7 @@ }, "fullDescription": { "text": "abseil-duration-subtraction clang-tidy check · Learn more", - "markdown": "abseil-duration-subtraction clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/duration-subtraction.html)" + "markdown": "abseil-duration-subtraction clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/duration-subtraction.html)" }, "defaultConfiguration": { "enabled": false, @@ -109109,13 +115096,14 @@ "parameters": { "suppressToolId": "CppClangTidyAbseilDurationSubtraction", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -109142,7 +115130,8 @@ "parameters": { "suppressToolId": "CA2310", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -109161,9 +115150,9 @@ ] }, { - "id": "CA2311", + "id": "CA1069", "shortDescription": { - "text": "RoslynAnalyzers Do not deserialize without first setting NetDataContractSerializer.Binder" + "text": "RoslynAnalyzers Enums values should not be duplicated" }, "fullDescription": { "text": "", @@ -109171,11 +115160,12 @@ }, "defaultConfiguration": { "enabled": true, - "level": "warning", + "level": "note", "parameters": { - "suppressToolId": "CA2311", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "suppressToolId": "CA1069", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -109194,9 +115184,9 @@ ] }, { - "id": "CA1069", + "id": "CA2311", "shortDescription": { - "text": "RoslynAnalyzers Enums values should not be duplicated" + "text": "RoslynAnalyzers Do not deserialize without first setting NetDataContractSerializer.Binder" }, "fullDescription": { "text": "", @@ -109204,11 +115194,12 @@ }, "defaultConfiguration": { "enabled": true, - "level": "note", + "level": "warning", "parameters": { - "suppressToolId": "CA1069", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "suppressToolId": "CA2311", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -109241,7 +115232,8 @@ "parameters": { "suppressToolId": "CA2312", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -109274,7 +115266,8 @@ "parameters": { "suppressToolId": "CA1068", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -109299,7 +115292,7 @@ }, "fullDescription": { "text": "bugprone-terminating-continue clang-tidy check · Learn more", - "markdown": "bugprone-terminating-continue clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/terminating-continue.html)" + "markdown": "bugprone-terminating-continue clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/terminating-continue.html)" }, "defaultConfiguration": { "enabled": true, @@ -109307,13 +115300,14 @@ "parameters": { "suppressToolId": "CppClangTidyBugproneTerminatingContinue", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -109332,7 +115326,7 @@ }, "fullDescription": { "text": "modernize-deprecated-headers clang-tidy check · Learn more", - "markdown": "modernize-deprecated-headers clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/deprecated-headers.html)" + "markdown": "modernize-deprecated-headers clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/deprecated-headers.html)" }, "defaultConfiguration": { "enabled": true, @@ -109340,13 +115334,14 @@ "parameters": { "suppressToolId": "CppClangTidyModernizeDeprecatedHeaders", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -109373,7 +115368,8 @@ "parameters": { "suppressToolId": "CA1067", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -109406,7 +115402,8 @@ "parameters": { "suppressToolId": "CA1066", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -109439,7 +115436,8 @@ "parameters": { "suppressToolId": "CA2315", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -109472,7 +115470,8 @@ "parameters": { "suppressToolId": "CA1065", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -109505,7 +115504,8 @@ "parameters": { "suppressToolId": "CA1064", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -109538,7 +115538,8 @@ "parameters": { "suppressToolId": "PureAttributeOnVoidMethod", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -109571,7 +115572,8 @@ "parameters": { "suppressToolId": "CA1063", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -109589,6 +115591,40 @@ } ] }, + { + "id": "ChangeFieldTypeToSystemThreadingLock", + "shortDescription": { + "text": "Change lock field type to 'System.Threading.Lock'" + }, + "fullDescription": { + "text": "The type of the lock field can be changed to 'System.Threading.Lock' to express field intent", + "markdown": "The type of the lock field can be changed to 'System.Threading.Lock' to express field intent" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "ChangeFieldTypeToSystemThreadingLock", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Common Practices and Code Improvements", + "index": 12, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppClangTidyCertDcl59Cpp", "shortDescription": { @@ -109596,7 +115632,7 @@ }, "fullDescription": { "text": "cert-dcl59-cpp clang-tidy check · Learn more", - "markdown": "cert-dcl59-cpp clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cert/dcl59-cpp.html)" + "markdown": "cert-dcl59-cpp clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/dcl59-cpp.html)" }, "defaultConfiguration": { "enabled": false, @@ -109604,13 +115640,14 @@ "parameters": { "suppressToolId": "CppClangTidyCertDcl59Cpp", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -109637,7 +115674,8 @@ "parameters": { "suppressToolId": "CA1062", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -109670,7 +115708,8 @@ "parameters": { "suppressToolId": "CA1061", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -109695,7 +115734,7 @@ }, "fullDescription": { "text": "cert-flp37-c clang-tidy check · Learn more", - "markdown": "cert-flp37-c clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cert/flp37-c.html)" + "markdown": "cert-flp37-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/flp37-c.html)" }, "defaultConfiguration": { "enabled": false, @@ -109703,13 +115742,14 @@ "parameters": { "suppressToolId": "CppClangTidyCertFlp37C", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -109736,7 +115776,8 @@ "parameters": { "suppressToolId": "CA1060", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -109761,7 +115802,7 @@ }, "fullDescription": { "text": "objc-nsdate-formatter clang-tidy check · Learn more", - "markdown": "objc-nsdate-formatter clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/objc/nsdate-formatter.html)" + "markdown": "objc-nsdate-formatter clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/objc/nsdate-formatter.html)" }, "defaultConfiguration": { "enabled": false, @@ -109769,13 +115810,14 @@ "parameters": { "suppressToolId": "CppClangTidyObjcNsdateFormatter", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -109802,13 +115844,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaAutoreleaseWrite", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -109827,7 +115870,7 @@ }, "fullDescription": { "text": "-Wcompletion-handler clang diagnostic · Learn more", - "markdown": "-Wcompletion-handler clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wcompletion-handler)" + "markdown": "-Wcompletion-handler clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcompletion-handler)" }, "defaultConfiguration": { "enabled": true, @@ -109835,13 +115878,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCompletionHandler", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -109860,7 +115904,7 @@ }, "fullDescription": { "text": "-Winline-namespace-reopened-noninline clang diagnostic · Learn more", - "markdown": "-Winline-namespace-reopened-noninline clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#winline-namespace-reopened-noninline)" + "markdown": "-Winline-namespace-reopened-noninline clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winline-namespace-reopened-noninline)" }, "defaultConfiguration": { "enabled": true, @@ -109868,13 +115912,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticInlineNamespaceReopenedNoninline", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -109893,7 +115938,7 @@ }, "fullDescription": { "text": "-Wdtor-typedef clang diagnostic · Learn more", - "markdown": "-Wdtor-typedef clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdtor-typedef)" + "markdown": "-Wdtor-typedef clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdtor-typedef)" }, "defaultConfiguration": { "enabled": true, @@ -109901,13 +115946,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDtorTypedef", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -109926,7 +115972,7 @@ }, "fullDescription": { "text": "-Wc++98-c++11-c++14-c++17-compat clang diagnostic · Learn more", - "markdown": "-Wc++98-c++11-c++14-c++17-compat clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wc-98-c-11-c-14-c-17-compat)" + "markdown": "-Wc++98-c++11-c++14-c++17-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-98-c-11-c-14-c-17-compat)" }, "defaultConfiguration": { "enabled": false, @@ -109934,13 +115980,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticCpp98Cpp11Cpp14Cpp17Compat", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -109959,7 +116006,7 @@ }, "fullDescription": { "text": "-W#warnings clang diagnostic · Learn more", - "markdown": "-W#warnings clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#w-warnings)" + "markdown": "-W#warnings clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#w-warnings)" }, "defaultConfiguration": { "enabled": true, @@ -109967,13 +116014,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticWarnings", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -109988,7 +116036,7 @@ { "id": "NUnit.MissingCancelAfterAttribute", "shortDescription": { - "text": "NUnit. Missing CancelAfter attribute on the test method declaration." + "text": "NUnit. Missing 'CancelAfter' attribute on test method declaration." }, "fullDescription": { "text": "According to the test method signature, there is probably a missing [CancelAfter] attribute", @@ -110000,7 +116048,8 @@ "parameters": { "suppressToolId": "NUnit.MissingCancelAfterAttribute", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -110033,14 +116082,15 @@ "parameters": { "suppressToolId": "NoSupportForVB", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "T4/T4", - "index": 106, + "index": 116, "toolComponent": { "name": "QDNET" } @@ -110066,7 +116116,8 @@ "parameters": { "suppressToolId": "PatternNeverMatches", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -110099,7 +116150,8 @@ "parameters": { "suppressToolId": "CA2321", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -110132,14 +116184,15 @@ "parameters": { "suppressToolId": "ExtractCommonPropertyPattern", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -110151,21 +116204,22 @@ ] }, { - "id": "CA1058", + "id": "CA2322", "shortDescription": { - "text": "RoslynAnalyzers Types should not extend certain base types" + "text": "RoslynAnalyzers Ensure JavaScriptSerializer is not initialized with SimpleTypeResolver before deserializing" }, "fullDescription": { - "text": "An externally visible type extends certain base types. Use one of the alternatives.", - "markdown": "An externally visible type extends certain base types. Use one of the alternatives." + "text": "", + "markdown": "" }, "defaultConfiguration": { "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "CA1058", + "suppressToolId": "CA2322", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -110184,21 +116238,22 @@ ] }, { - "id": "CA2322", + "id": "CA1058", "shortDescription": { - "text": "RoslynAnalyzers Ensure JavaScriptSerializer is not initialized with SimpleTypeResolver before deserializing" + "text": "RoslynAnalyzers Types should not extend certain base types" }, "fullDescription": { - "text": "", - "markdown": "" + "text": "An externally visible type extends certain base types. Use one of the alternatives.", + "markdown": "An externally visible type extends certain base types. Use one of the alternatives." }, "defaultConfiguration": { "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "CA2322", + "suppressToolId": "CA1058", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -110231,7 +116286,8 @@ "parameters": { "suppressToolId": "CA1056", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -110264,14 +116320,15 @@ "parameters": { "suppressToolId": "FSharpRedundantAsPattern", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "F#/Redundancies in Code", - "index": 67, + "index": 73, "toolComponent": { "name": "QDNET" } @@ -110289,7 +116346,7 @@ }, "fullDescription": { "text": "-Wconstant-evaluated clang diagnostic · Learn more", - "markdown": "-Wconstant-evaluated clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wconstant-evaluated)" + "markdown": "-Wconstant-evaluated clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wconstant-evaluated)" }, "defaultConfiguration": { "enabled": true, @@ -110297,13 +116354,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticConstantEvaluated", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -110330,7 +116388,8 @@ "parameters": { "suppressToolId": "CA1055", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -110363,7 +116422,8 @@ "parameters": { "suppressToolId": "CA2326", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -110396,7 +116456,8 @@ "parameters": { "suppressToolId": "CA1054", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -110429,7 +116490,8 @@ "parameters": { "suppressToolId": "CA2327", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -110462,7 +116524,8 @@ "parameters": { "suppressToolId": "CA2328", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -110495,7 +116558,8 @@ "parameters": { "suppressToolId": "CA1052", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -110514,21 +116578,22 @@ ] }, { - "id": "CA2329", + "id": "CA1051", "shortDescription": { - "text": "RoslynAnalyzers Do not deserialize with JsonSerializer using an insecure configuration" + "text": "RoslynAnalyzers Do not declare visible instance fields" }, "fullDescription": { - "text": "", - "markdown": "" + "text": "The primary use of a field should be as an implementation detail. Fields should be private or internal and should be exposed by using properties.", + "markdown": "The primary use of a field should be as an implementation detail. Fields should be private or internal and should be exposed by using properties." }, "defaultConfiguration": { - "enabled": true, - "level": "warning", + "enabled": false, + "level": "note", "parameters": { - "suppressToolId": "CA2329", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "suppressToolId": "CA1051", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -110547,21 +116612,22 @@ ] }, { - "id": "CA1051", + "id": "CA2329", "shortDescription": { - "text": "RoslynAnalyzers Do not declare visible instance fields" + "text": "RoslynAnalyzers Do not deserialize with JsonSerializer using an insecure configuration" }, "fullDescription": { - "text": "The primary use of a field should be as an implementation detail. Fields should be private or internal and should be exposed by using properties.", - "markdown": "The primary use of a field should be as an implementation detail. Fields should be private or internal and should be exposed by using properties." + "text": "", + "markdown": "" }, "defaultConfiguration": { - "enabled": false, - "level": "note", + "enabled": true, + "level": "warning", "parameters": { - "suppressToolId": "CA1051", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "suppressToolId": "CA2329", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -110594,7 +116660,8 @@ "parameters": { "suppressToolId": "CA1050", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -110627,14 +116694,15 @@ "parameters": { "suppressToolId": "FSharpLambdaCanBeReplacedWithInnerExpression", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "F#/Redundancies in Code", - "index": 67, + "index": 73, "toolComponent": { "name": "QDNET" } @@ -110660,13 +116728,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerNullabilityNullPassedToNonnull", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -110685,7 +116754,7 @@ }, "fullDescription": { "text": "-Woverride-module clang diagnostic · Learn more", - "markdown": "-Woverride-module clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#woverride-module)" + "markdown": "-Woverride-module clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#woverride-module)" }, "defaultConfiguration": { "enabled": true, @@ -110693,13 +116762,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticOverrideModule", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -110711,6 +116781,40 @@ } ] }, + { + "id": "Razor.UnresolvedComponent", + "shortDescription": { + "text": "Unknown HTML tag, may be a component" + }, + "fullDescription": { + "text": "Unknown HTML tag, may be a component", + "markdown": "Unknown HTML tag, may be a component" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "Razor.UnresolvedComponent", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "Razor/Potential Code Quality Issues", + "index": 93, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppClangTidyClangDiagnosticDeprecatedBuiltins", "shortDescription": { @@ -110718,7 +116822,7 @@ }, "fullDescription": { "text": "-Wdeprecated-builtins clang diagnostic · Learn more", - "markdown": "-Wdeprecated-builtins clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wdeprecated-builtins)" + "markdown": "-Wdeprecated-builtins clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-builtins)" }, "defaultConfiguration": { "enabled": true, @@ -110726,13 +116830,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedBuiltins", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -110751,7 +116856,7 @@ }, "fullDescription": { "text": "hicpp-uppercase-literal-suffix clang-tidy check · Learn more", - "markdown": "hicpp-uppercase-literal-suffix clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/uppercase-literal-suffix.html)" + "markdown": "hicpp-uppercase-literal-suffix clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/uppercase-literal-suffix.html)" }, "defaultConfiguration": { "enabled": false, @@ -110759,13 +116864,14 @@ "parameters": { "suppressToolId": "CppClangTidyHicppUppercaseLiteralSuffix", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -110792,7 +116898,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS0183", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -110817,7 +116924,7 @@ }, "fullDescription": { "text": "-Wformat-insufficient-args clang diagnostic · Learn more", - "markdown": "-Wformat-insufficient-args clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wformat-insufficient-args)" + "markdown": "-Wformat-insufficient-args clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wformat-insufficient-args)" }, "defaultConfiguration": { "enabled": true, @@ -110825,13 +116932,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticFormatInsufficientArgs", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -110858,7 +116966,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS0184", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -110891,7 +117000,8 @@ "parameters": { "suppressToolId": "Xaml.DynamicResourceError", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -110924,40 +117034,8 @@ "parameters": { "suppressToolId": "CA2330", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1047", - "shortDescription": { - "text": "RoslynAnalyzers Do not declare protected member in sealed type" - }, - "fullDescription": { - "text": "Types declare protected members so that inheriting types can access or override the member. By definition, you cannot inherit from a sealed type, which means that protected methods on sealed types cannot be called.", - "markdown": "Types declare protected members so that inheriting types can access or override the member. By definition, you cannot inherit from a sealed type, which means that protected methods on sealed types cannot be called." - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "CA1047", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -110990,7 +117068,8 @@ "parameters": { "suppressToolId": "CA1046", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -111023,7 +117102,8 @@ "parameters": { "suppressToolId": "CA1045", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -111056,7 +117136,8 @@ "parameters": { "suppressToolId": "CA1044", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -111089,7 +117170,8 @@ "parameters": { "suppressToolId": "CA1043", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -111122,7 +117204,8 @@ "parameters": { "suppressToolId": "CA1041", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -111155,7 +117238,8 @@ "parameters": { "suppressToolId": "CA1040", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -111180,7 +117264,7 @@ }, "fullDescription": { "text": "-Wignored-pragmas clang diagnostic · Learn more", - "markdown": "-Wignored-pragmas clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wignored-pragmas)" + "markdown": "-Wignored-pragmas clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wignored-pragmas)" }, "defaultConfiguration": { "enabled": true, @@ -111188,13 +117272,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticIgnoredPragmas", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -111213,7 +117298,7 @@ }, "fullDescription": { "text": "-Wsign-compare clang diagnostic · Learn more", - "markdown": "-Wsign-compare clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wsign-compare)" + "markdown": "-Wsign-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wsign-compare)" }, "defaultConfiguration": { "enabled": true, @@ -111221,13 +117306,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticSignCompare", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -111246,7 +117332,7 @@ }, "fullDescription": { "text": "-Wconsumed clang diagnostic · Learn more", - "markdown": "-Wconsumed clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wconsumed)" + "markdown": "-Wconsumed clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wconsumed)" }, "defaultConfiguration": { "enabled": true, @@ -111254,13 +117340,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticConsumed", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -111287,7 +117374,8 @@ "parameters": { "suppressToolId": "RedundantDictionaryContainsKeyBeforeAdding", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -111305,6 +117393,74 @@ } ] }, + { + "id": "CppClangTidyClangDiagnosticIncludeAngledInModulePurview", + "shortDescription": { + "text": "include-angled-in-module-purview clang diagnostic" + }, + "fullDescription": { + "text": "-Winclude-angled-in-module-purview clang diagnostic · Learn more", + "markdown": "-Winclude-angled-in-module-purview clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winclude-angled-in-module-purview)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticIncludeAngledInModulePurview", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyClangDiagnosticSourceUsesOpenacc", + "shortDescription": { + "text": "source-uses-openacc clang diagnostic" + }, + "fullDescription": { + "text": "-Wsource-uses-openacc clang diagnostic · Learn more", + "markdown": "-Wsource-uses-openacc clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wsource-uses-openacc)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CppClangTidyClangDiagnosticSourceUsesOpenacc", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang Diagnostics", + "index": 3, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "CppRedundantConditionalExpression", "shortDescription": { @@ -111320,13 +117476,14 @@ "parameters": { "suppressToolId": "CppRedundantConditionalExpression", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Redundancies in Code", + "id": "C_C++/Redundancies in Code", "index": 34, "toolComponent": { "name": "QDNET" @@ -111353,7 +117510,8 @@ "parameters": { "suppressToolId": "CA1036", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -111378,7 +117536,7 @@ }, "fullDescription": { "text": "performance-for-range-copy clang-tidy check · Learn more", - "markdown": "performance-for-range-copy clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/performance/for-range-copy.html)" + "markdown": "performance-for-range-copy clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance/for-range-copy.html)" }, "defaultConfiguration": { "enabled": true, @@ -111386,13 +117544,14 @@ "parameters": { "suppressToolId": "CppClangTidyPerformanceForRangeCopy", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -111419,7 +117578,8 @@ "parameters": { "suppressToolId": "CA1034", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -111452,13 +117612,14 @@ "parameters": { "suppressToolId": "CppFinalNonOverridingVirtualFunction", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Redundancies in Code", + "id": "C_C++/Redundancies in Code", "index": 34, "toolComponent": { "name": "QDNET" @@ -111485,13 +117646,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerUnixMalloc", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -111518,7 +117680,8 @@ "parameters": { "suppressToolId": "CA1033", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -111543,7 +117706,7 @@ }, "fullDescription": { "text": "readability-const-return-type clang-tidy check · Learn more", - "markdown": "readability-const-return-type clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/const-return-type.html)" + "markdown": "readability-const-return-type clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/const-return-type.html)" }, "defaultConfiguration": { "enabled": false, @@ -111551,13 +117714,14 @@ "parameters": { "suppressToolId": "CppClangTidyReadabilityConstReturnType", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -111584,7 +117748,8 @@ "parameters": { "suppressToolId": "CA1032", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -111617,14 +117782,15 @@ "parameters": { "suppressToolId": "Xaml.LanguageLevel", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "XAML/Potential Code Quality Issues", - "index": 44, + "index": 45, "toolComponent": { "name": "QDNET" } @@ -111650,7 +117816,8 @@ "parameters": { "suppressToolId": "CA1031", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -111683,7 +117850,8 @@ "parameters": { "suppressToolId": "CA1030", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -111701,6 +117869,40 @@ } ] }, + { + "id": "CppClangTidyModernizeUseStdFormat", + "shortDescription": { + "text": "modernize-use-std-format clang-tidy check" + }, + "fullDescription": { + "text": "modernize-use-std-format clang-tidy check · Learn more", + "markdown": "modernize-use-std-format clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-std-format.html)" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyModernizeUseStdFormat", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "MemberCanBePrivate.Local", "shortDescription": { @@ -111716,14 +117918,15 @@ "parameters": { "suppressToolId": "MemberCanBePrivate.Local", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Common Practices and Code Improvements", - "index": 14, + "index": 12, "toolComponent": { "name": "QDNET" } @@ -111749,13 +117952,14 @@ "parameters": { "suppressToolId": "CppDependentTypeWithoutTypenameKeyword", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Potential Code Quality Issues", + "id": "C_C++/Potential Code Quality Issues", "index": 9, "toolComponent": { "name": "QDNET" @@ -111774,7 +117978,7 @@ }, "fullDescription": { "text": "-Wincomplete-implementation clang diagnostic · Learn more", - "markdown": "-Wincomplete-implementation clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wincomplete-implementation)" + "markdown": "-Wincomplete-implementation clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wincomplete-implementation)" }, "defaultConfiguration": { "enabled": true, @@ -111782,13 +117986,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticIncompleteImplementation", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -111815,13 +118020,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangAnalyzerOsxObjCProperty", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Static Analyzer Checks", + "id": "C_C++/Clang Static Analyzer Checks", "index": 32, "toolComponent": { "name": "QDNET" @@ -111840,7 +118046,7 @@ }, "fullDescription": { "text": "-Wimplicit-int-float-conversion clang diagnostic · Learn more", - "markdown": "-Wimplicit-int-float-conversion clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wimplicit-int-float-conversion)" + "markdown": "-Wimplicit-int-float-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wimplicit-int-float-conversion)" }, "defaultConfiguration": { "enabled": true, @@ -111848,13 +118054,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticImplicitIntFloatConversion", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -111881,14 +118088,15 @@ "parameters": { "suppressToolId": "Unity.UnresolvedComponentOrScriptableObject", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "C#/Unity", - "index": 19, + "index": 18, "toolComponent": { "name": "QDNET" } @@ -111906,7 +118114,7 @@ }, "fullDescription": { "text": "-Wfinal-dtor-non-final-class clang diagnostic · Learn more", - "markdown": "-Wfinal-dtor-non-final-class clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wfinal-dtor-non-final-class)" + "markdown": "-Wfinal-dtor-non-final-class clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wfinal-dtor-non-final-class)" }, "defaultConfiguration": { "enabled": true, @@ -111914,13 +118122,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticFinalDtorNonFinalClass", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -111939,7 +118148,7 @@ }, "fullDescription": { "text": "-Wreorder clang diagnostic · Learn more", - "markdown": "-Wreorder clang diagnostic · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/docs/DiagnosticsReference.html#wreorder)" + "markdown": "-Wreorder clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wreorder)" }, "defaultConfiguration": { "enabled": true, @@ -111947,13 +118156,14 @@ "parameters": { "suppressToolId": "CppClangTidyClangDiagnosticReorder", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang Diagnostics", + "id": "C_C++/Clang Diagnostics", "index": 3, "toolComponent": { "name": "QDNET" @@ -111972,7 +118182,7 @@ }, "fullDescription": { "text": "android-cloexec-creat clang-tidy check · Learn more", - "markdown": "android-cloexec-creat clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-creat.html)" + "markdown": "android-cloexec-creat clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-creat.html)" }, "defaultConfiguration": { "enabled": false, @@ -111980,13 +118190,14 @@ "parameters": { "suppressToolId": "CppClangTidyAndroidCloexecCreat", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -112013,7 +118224,8 @@ "parameters": { "suppressToolId": "CSharpWarnings__CS0162", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -112046,7 +118258,8 @@ "parameters": { "suppressToolId": "CA2350", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -112071,7 +118284,7 @@ }, "fullDescription": { "text": "cppcoreguidelines-pro-type-const-cast clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-pro-type-const-cast clang-tidy check · [Learn more](https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/pro-type-const-cast.html)" + "markdown": "cppcoreguidelines-pro-type-const-cast clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/pro-type-const-cast.html)" }, "defaultConfiguration": { "enabled": false, @@ -112079,13 +118292,14 @@ "parameters": { "suppressToolId": "CppClangTidyCppcoreguidelinesProTypeConstCast", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "C++/Clang-Tidy Checks", + "id": "C_C++/Clang-Tidy Checks", "index": 8, "toolComponent": { "name": "QDNET" @@ -112112,7 +118326,8 @@ "parameters": { "suppressToolId": "CA2351", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -112131,21 +118346,22 @@ ] }, { - "id": "CA1028", + "id": "CA2352", "shortDescription": { - "text": "RoslynAnalyzers Enum Storage should be Int32" + "text": "RoslynAnalyzers Unsafe DataSet or DataTable in serializable type can be vulnerable to remote code execution attacks" }, "fullDescription": { - "text": "An enumeration is a value type that defines a set of related named constants. By default, the System.Int32 data type is used to store the constant value. Although you can change this underlying type, it is not required or recommended for most scenarios.", - "markdown": "An enumeration is a value type that defines a set of related named constants. By default, the System.Int32 data type is used to store the constant value. Although you can change this underlying type, it is not required or recommended for most scenarios." + "text": "", + "markdown": "" }, "defaultConfiguration": { "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "CA1028", + "suppressToolId": "CA2352", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -112164,21 +118380,22 @@ ] }, { - "id": "CA2352", + "id": "CA1028", "shortDescription": { - "text": "RoslynAnalyzers Unsafe DataSet or DataTable in serializable type can be vulnerable to remote code execution attacks" + "text": "RoslynAnalyzers Enum Storage should be Int32" }, "fullDescription": { - "text": "", - "markdown": "" + "text": "An enumeration is a value type that defines a set of related named constants. By default, the System.Int32 data type is used to store the constant value. Although you can change this underlying type, it is not required or recommended for most scenarios.", + "markdown": "An enumeration is a value type that defines a set of related named constants. By default, the System.Int32 data type is used to store the constant value. Although you can change this underlying type, it is not required or recommended for most scenarios." }, "defaultConfiguration": { "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "CA2352", + "suppressToolId": "CA1028", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -112211,7 +118428,8 @@ "parameters": { "suppressToolId": "CA1027", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -112244,7 +118462,8 @@ "parameters": { "suppressToolId": "CA2353", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -112277,7 +118496,8 @@ "parameters": { "suppressToolId": "CA2354", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -112310,7 +118530,8 @@ "parameters": { "suppressToolId": "CA2355", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -112338,7 +118559,7 @@ }, { "name": "org.jetbrains.plugins.sass", - "version": "241.16914", + "version": "243.24609", "rules": [ { "id": "SassScssResolvedByNameOnly", @@ -112355,7 +118576,8 @@ "parameters": { "suppressToolId": "SassScssResolvedByNameOnly", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Sanity" } }, "relationships": [ @@ -112388,7 +118610,8 @@ "parameters": { "suppressToolId": "SassScssUnresolvedVariable", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Sanity" } }, "relationships": [ @@ -112421,7 +118644,8 @@ "parameters": { "suppressToolId": "SassScssUnresolvedMixin", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Sanity" } }, "relationships": [ @@ -112454,7 +118678,8 @@ "parameters": { "suppressToolId": "SassScssUnresolvedPlaceholderSelector", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Sanity" } }, "relationships": [ @@ -112482,7 +118707,7 @@ }, { "name": "com.intellij", - "version": "241.16914.127", + "version": "243.24609", "rules": [ { "id": "HtmlUnknownBooleanAttribute", @@ -112499,7 +118724,8 @@ "parameters": { "suppressToolId": "HtmlUnknownBooleanAttribute", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -112532,14 +118758,15 @@ "parameters": { "suppressToolId": "IncorrectFormatting", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "General", - "index": 45, + "index": 46, "toolComponent": { "name": "QDNET" } @@ -112565,14 +118792,15 @@ "parameters": { "suppressToolId": "CheckXmlFileWithXercesValidator", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "XML", - "index": 53, + "index": 56, "toolComponent": { "name": "QDNET" } @@ -112598,14 +118826,15 @@ "parameters": { "suppressToolId": "RegExpEscapedMetaCharacter", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "RegExp", - "index": 55, + "index": 58, "toolComponent": { "name": "QDNET" } @@ -112631,14 +118860,15 @@ "parameters": { "suppressToolId": "XmlUnusedNamespaceDeclaration", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "XML", - "index": 53, + "index": 56, "toolComponent": { "name": "QDNET" } @@ -112664,47 +118894,15 @@ "parameters": { "suppressToolId": "RegExpUnnecessaryNonCapturingGroup", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "RegExp", - "index": 55, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JsonSchemaCompliance", - "shortDescription": { - "text": "Compliance with JSON schema" - }, - "fullDescription": { - "text": "Reports inconsistence between a JSON file and the JSON schema that is assigned to it.", - "markdown": "Reports inconsistence between a JSON file and the [JSON schema](https://json-schema.org) that is assigned to it. " - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "JsonSchemaCompliance", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" - } - }, - "relationships": [ - { - "target": { - "id": "JSON and JSON5", - "index": 77, + "index": 58, "toolComponent": { "name": "QDNET" } @@ -112730,14 +118928,15 @@ "parameters": { "suppressToolId": "CheckDtdRefs", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "XML", - "index": 53, + "index": 56, "toolComponent": { "name": "QDNET" } @@ -112763,14 +118962,15 @@ "parameters": { "suppressToolId": "RegExpSingleCharAlternation", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "RegExp", - "index": 55, + "index": 58, "toolComponent": { "name": "QDNET" } @@ -112796,14 +118996,15 @@ "parameters": { "suppressToolId": "CheckTagEmptyBody", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "XML", - "index": 53, + "index": 56, "toolComponent": { "name": "QDNET" } @@ -112829,14 +119030,15 @@ "parameters": { "suppressToolId": "ReassignedToPlainText", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Sanity" } }, "relationships": [ { "target": { "id": "General", - "index": 45, + "index": 46, "toolComponent": { "name": "QDNET" } @@ -112862,7 +119064,8 @@ "parameters": { "suppressToolId": "CheckEmptyScriptTag", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -112895,7 +119098,8 @@ "parameters": { "suppressToolId": "HtmlUnknownTarget", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -112928,14 +119132,15 @@ "parameters": { "suppressToolId": "XmlWrongRootElement", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "XML", - "index": 53, + "index": 56, "toolComponent": { "name": "QDNET" } @@ -112961,7 +119166,8 @@ "parameters": { "suppressToolId": "HtmlUnknownAttribute", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -112994,14 +119200,15 @@ "parameters": { "suppressToolId": "RegExpRedundantEscape", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "RegExp", - "index": 55, + "index": 58, "toolComponent": { "name": "QDNET" } @@ -113027,7 +119234,8 @@ "parameters": { "suppressToolId": "HtmlExtraClosingTag", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -113060,14 +119268,15 @@ "parameters": { "suppressToolId": "XmlDuplicatedId", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "XML", - "index": 53, + "index": 56, "toolComponent": { "name": "QDNET" } @@ -113093,14 +119302,15 @@ "parameters": { "suppressToolId": "XmlUnboundNsPrefix", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "XML", - "index": 53, + "index": 56, "toolComponent": { "name": "QDNET" } @@ -113126,14 +119336,15 @@ "parameters": { "suppressToolId": "XmlPathReference", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "XML", - "index": 53, + "index": 56, "toolComponent": { "name": "QDNET" } @@ -113159,47 +119370,15 @@ "parameters": { "suppressToolId": "LossyEncoding", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Sanity" } }, "relationships": [ { "target": { "id": "Internationalization", - "index": 113, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JsonSchemaDeprecation", - "shortDescription": { - "text": "Deprecated JSON property" - }, - "fullDescription": { - "text": "Reports a deprecated property in a JSON file. Note that deprecation mechanism is not defined in the JSON Schema specification yet, and this inspection uses a non-standard extension 'deprecationMessage'.", - "markdown": "Reports a deprecated property in a JSON file. \nNote that deprecation mechanism is not defined in the JSON Schema specification yet, and this inspection uses a non-standard extension 'deprecationMessage'." - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "JsonSchemaDeprecation", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" - } - }, - "relationships": [ - { - "target": { - "id": "JSON and JSON5", - "index": 77, + "index": 124, "toolComponent": { "name": "QDNET" } @@ -113225,14 +119404,15 @@ "parameters": { "suppressToolId": "RegExpRedundantNestedCharacterClass", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "RegExp", - "index": 55, + "index": 58, "toolComponent": { "name": "QDNET" } @@ -113258,14 +119438,15 @@ "parameters": { "suppressToolId": "RegExpOctalEscape", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "RegExp", - "index": 55, + "index": 58, "toolComponent": { "name": "QDNET" } @@ -113291,14 +119472,15 @@ "parameters": { "suppressToolId": "UnusedDefine", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "RELAX NG", - "index": 116, + "index": 136, "toolComponent": { "name": "QDNET" } @@ -113324,14 +119506,15 @@ "parameters": { "suppressToolId": "RegExpDuplicateAlternationBranch", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "RegExp", - "index": 55, + "index": 58, "toolComponent": { "name": "QDNET" } @@ -113357,14 +119540,15 @@ "parameters": { "suppressToolId": "RedundantSuppression", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "General", - "index": 45, + "index": 46, "toolComponent": { "name": "QDNET" } @@ -113390,14 +119574,15 @@ "parameters": { "suppressToolId": "CustomRegExpInspection", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "RegExp", - "index": 55, + "index": 58, "toolComponent": { "name": "QDNET" } @@ -113423,14 +119608,15 @@ "parameters": { "suppressToolId": "RegExpUnexpectedAnchor", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "RegExp", - "index": 55, + "index": 58, "toolComponent": { "name": "QDNET" } @@ -113456,14 +119642,15 @@ "parameters": { "suppressToolId": "SpellCheckingInspection", "ideaSeverity": "TYPO", - "qodanaSeverity": "Low" + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "Proofreading", - "index": 111, + "index": 122, "toolComponent": { "name": "QDNET" } @@ -113489,14 +119676,15 @@ "parameters": { "suppressToolId": "RegExpSimplifiable", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "RegExp", - "index": 55, + "index": 58, "toolComponent": { "name": "QDNET" } @@ -113522,14 +119710,15 @@ "parameters": { "suppressToolId": "RegExpEmptyAlternationBranch", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "RegExp", - "index": 55, + "index": 58, "toolComponent": { "name": "QDNET" } @@ -113555,14 +119744,15 @@ "parameters": { "suppressToolId": "TodoComment", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "General", - "index": 45, + "index": 46, "toolComponent": { "name": "QDNET" } @@ -113588,14 +119778,15 @@ "parameters": { "suppressToolId": "XmlDefaultAttributeValue", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "XML", - "index": 53, + "index": 56, "toolComponent": { "name": "QDNET" } @@ -113621,14 +119812,15 @@ "parameters": { "suppressToolId": "EmptyDirectory", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Sanity" } }, "relationships": [ { "target": { "id": "General", - "index": 45, + "index": 46, "toolComponent": { "name": "QDNET" } @@ -113654,14 +119846,15 @@ "parameters": { "suppressToolId": "NonAsciiCharacters", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "Internationalization", - "index": 113, + "index": 124, "toolComponent": { "name": "QDNET" } @@ -113687,80 +119880,15 @@ "parameters": { "suppressToolId": "IgnoreFileDuplicateEntry", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Sanity" } }, "relationships": [ { "target": { "id": "Version control", - "index": 127, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JsonStandardCompliance", - "shortDescription": { - "text": "Compliance with JSON standard" - }, - "fullDescription": { - "text": "Reports the following discrepancies of a JSON file with the language specification: A line or block comment (configurable). Multiple top-level values (expect for JSON Lines files, configurable for others). A trailing comma in an object or array (configurable). A single quoted string. A property key is a not a double quoted strings. A NaN or Infinity/-Infinity numeric value as a floating point literal (configurable).", - "markdown": "Reports the following discrepancies of a JSON file with [the language specification](https://tools.ietf.org/html/rfc7159):\n\n* A line or block comment (configurable).\n* Multiple top-level values (expect for JSON Lines files, configurable for others).\n* A trailing comma in an object or array (configurable).\n* A single quoted string.\n* A property key is a not a double quoted strings.\n* A NaN or Infinity/-Infinity numeric value as a floating point literal (configurable)." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "JsonStandardCompliance", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" - } - }, - "relationships": [ - { - "target": { - "id": "JSON and JSON5", - "index": 77, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JsonSchemaRefReference", - "shortDescription": { - "text": "Unresolved '$ref' and '$schema' references" - }, - "fullDescription": { - "text": "Reports an unresolved '$ref' or '$schema' path in a JSON schema.", - "markdown": "Reports an unresolved `$ref` or `$schema` path in a JSON schema. " - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "JsonSchemaRefReference", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" - } - }, - "relationships": [ - { - "target": { - "id": "JSON and JSON5", - "index": 77, + "index": 148, "toolComponent": { "name": "QDNET" } @@ -113786,14 +119914,15 @@ "parameters": { "suppressToolId": "RegExpSuspiciousBackref", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "RegExp", - "index": 55, + "index": 58, "toolComponent": { "name": "QDNET" } @@ -113819,14 +119948,15 @@ "parameters": { "suppressToolId": "UnresolvedReference", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "RELAX NG", - "index": 116, + "index": 136, "toolComponent": { "name": "QDNET" } @@ -113852,7 +119982,8 @@ "parameters": { "suppressToolId": "HtmlMissingClosingTag", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -113885,14 +120016,15 @@ "parameters": { "suppressToolId": "XmlInvalidId", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "XML", - "index": 53, + "index": 56, "toolComponent": { "name": "QDNET" } @@ -113918,14 +120050,15 @@ "parameters": { "suppressToolId": "XmlDeprecatedElement", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "XML", - "index": 53, + "index": 56, "toolComponent": { "name": "QDNET" } @@ -113951,14 +120084,15 @@ "parameters": { "suppressToolId": "RegExpAnonymousGroup", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "RegExp", - "index": 55, + "index": 58, "toolComponent": { "name": "QDNET" } @@ -113984,14 +120118,15 @@ "parameters": { "suppressToolId": "XmlUnresolvedReference", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "XML", - "index": 53, + "index": 56, "toolComponent": { "name": "QDNET" } @@ -114017,14 +120152,15 @@ "parameters": { "suppressToolId": "RegExpRepeatedSpace", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "RegExp", - "index": 55, + "index": 58, "toolComponent": { "name": "QDNET" } @@ -114050,14 +120186,15 @@ "parameters": { "suppressToolId": "InconsistentLineSeparators", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "General", - "index": 45, + "index": 46, "toolComponent": { "name": "QDNET" } @@ -114083,14 +120220,15 @@ "parameters": { "suppressToolId": "ProblematicWhitespace", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "General", - "index": 45, + "index": 46, "toolComponent": { "name": "QDNET" } @@ -114116,14 +120254,15 @@ "parameters": { "suppressToolId": "LongLine", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "General", - "index": 45, + "index": 46, "toolComponent": { "name": "QDNET" } @@ -114149,7 +120288,8 @@ "parameters": { "suppressToolId": "HtmlUnknownTag", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -114182,14 +120322,15 @@ "parameters": { "suppressToolId": "XmlHighlighting", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "XML", - "index": 53, + "index": 56, "toolComponent": { "name": "QDNET" } @@ -114215,14 +120356,15 @@ "parameters": { "suppressToolId": "RegExpDuplicateCharacterInClass", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "RegExp", - "index": 55, + "index": 58, "toolComponent": { "name": "QDNET" } @@ -114248,7 +120390,8 @@ "parameters": { "suppressToolId": "RequiredAttributes", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -114281,47 +120424,15 @@ "parameters": { "suppressToolId": "RegExpRedundantClassElement", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "RegExp", - "index": 55, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Json5StandardCompliance", - "shortDescription": { - "text": "Compliance with JSON5 standard" - }, - "fullDescription": { - "text": "Reports inconsistency with the language specification in a JSON5 file.", - "markdown": "Reports inconsistency with [the language specification](http://json5.org) in a JSON5 file." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "Json5StandardCompliance", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" - } - }, - "relationships": [ - { - "target": { - "id": "JSON and JSON5", - "index": 77, + "index": 58, "toolComponent": { "name": "QDNET" } @@ -114347,7 +120458,8 @@ "parameters": { "suppressToolId": "HtmlWrongAttributeValue", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -114380,14 +120492,15 @@ "parameters": { "suppressToolId": "MsbuildTargetFrameworkTagInspection", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { "id": "MSBuild", - "index": 138, + "index": 165, "toolComponent": { "name": "QDNET" } @@ -114413,7 +120526,8 @@ "parameters": { "suppressToolId": "CheckValidXmlInScriptTagBody", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -114446,7 +120560,8 @@ "parameters": { "suppressToolId": "HtmlUnknownAnchorTarget", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ @@ -114474,19 +120589,20 @@ "markdown": "Reports issues essential to this file (e.g., syntax errors) in the result of a batch code inspection run. These issues are usually always highlighted in the editor and can't be configured, unlike inspections. These options control the scope of checks performed by this inspection:\n\n* Option \"**Report syntax errors**\": report parser-related issues.\n* Option \"**Report issues from language-specific annotators** \": report issues found by annotators configured for the relevant language. See [Custom Language Support: Annotators](https://plugins.jetbrains.com/docs/intellij/annotator.html) for details.\n* Option \"**Report other highlighting problems** \": report issues specific to the language of the current file (e.g., type mismatches or unreported exceptions). See [Custom Language Support: Highlighting](https://plugins.jetbrains.com/docs/intellij/syntax-highlighting-and-error-highlighting.html#semantic-highlighting) for details." }, "defaultConfiguration": { - "enabled": true, + "enabled": false, "level": "error", "parameters": { "suppressToolId": "Annotator", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "General", - "index": 45, + "index": 46, "toolComponent": { "name": "QDNET" } @@ -114496,30 +120612,77 @@ ] } ] - }, + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false + }, + { + "name": "org.intellij.plugins.postcss", + "version": "243.24609", + "rules": [ { - "id": "JsonDuplicatePropertyKeys", + "id": "PostCssUnresolvedModuleValueReference", "shortDescription": { - "text": "Duplicate keys in object literals" + "text": "Unresolved CSS module value" }, "fullDescription": { - "text": "Reports a duplicate key in an object literal.", - "markdown": "Reports a duplicate key in an object literal." + "text": "Reports an unresolved reference to a CSS Module Value ('@value' declaration). Example: '@value foo from unknown;'", + "markdown": "Reports an unresolved reference to a [CSS Module Value](https://github.com/css-modules/postcss-modules-values) (`@value` declaration).\n\nExample:\n\n\n @value foo from unknown;\n" }, "defaultConfiguration": { "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "PostCssUnresolvedModuleValueReference", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Sanity" + } + }, + "relationships": [ + { + "target": { + "id": "PostCSS", + "index": 13, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "PostCssNesting", + "shortDescription": { + "text": "Invalid nested rule" + }, + "fullDescription": { + "text": "Reports a nested style rule whose syntax doesn't comply with the PostCSS Nested or the PostCSS Nesting specification. Example: '.phone {\n &_title {}\n}'", + "markdown": "Reports a nested style rule whose syntax doesn't comply with the [PostCSS Nested](https://github.com/postcss/postcss-nested) or the [PostCSS Nesting](https://github.com/csstools/postcss-nesting) specification.\n\nExample:\n\n\n .phone {\n &_title {}\n }\n" + }, + "defaultConfiguration": { + "enabled": false, "level": "warning", "parameters": { - "suppressToolId": "JsonDuplicatePropertyKeys", + "suppressToolId": "PostCssNesting", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { - "id": "JSON and JSON5", - "index": 77, + "id": "PostCSS", + "index": 13, "toolComponent": { "name": "QDNET" } @@ -114529,41 +120692,30 @@ ] } ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "JavaScript", - "version": "241.16914", - "rules": [ + }, { - "id": "FlowJSError", + "id": "PostCssCustomMedia", "shortDescription": { - "text": "Flow type checker" + "text": "Invalid custom media" }, "fullDescription": { - "text": "Reports errors from Flow.", - "markdown": "Reports errors from [Flow](https://flowtype.org/)." + "text": "Reports a syntax error in a PostCSS Custom Media query. Example: '@custom-media --small-viewport (max-width: 30em);'", + "markdown": "Reports a syntax error in a [PostCSS Custom Media](https://github.com/postcss/postcss-custom-media) query.\n\nExample:\n\n\n @custom-media --small-viewport (max-width: 30em);\n" }, "defaultConfiguration": { - "enabled": false, + "enabled": true, "level": "error", "parameters": { - "suppressToolId": "FlowJSError", + "suppressToolId": "PostCssCustomMedia", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { - "id": "JavaScript and TypeScript/Flow type checker", + "id": "PostCSS", "index": 13, "toolComponent": { "name": "QDNET" @@ -114575,6 +120727,86 @@ } ] }, + { + "id": "PostCssCustomSelector", + "shortDescription": { + "text": "Invalid custom selector" + }, + "fullDescription": { + "text": "Reports a syntax error in PostCSS Custom Selector. Example: '@custom-selector :--heading h1, h2, h3;'", + "markdown": "Reports a syntax error in [PostCSS Custom Selector](https://github.com/postcss/postcss-custom-selectors).\n\nExample:\n\n\n @custom-selector :--heading h1, h2, h3;\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "PostCssCustomSelector", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Code Style" + } + }, + "relationships": [ + { + "target": { + "id": "PostCSS", + "index": 13, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "PostCssMediaRange", + "shortDescription": { + "text": "Invalid media query range" + }, + "fullDescription": { + "text": "Checks range context syntax, which may alternatively be used for media features with a 'range' type. Example: '@media screen and (500px <= width <= 1200px) {}'", + "markdown": "Checks [range context](https://github.com/postcss/postcss-media-minmax) syntax, which may alternatively be used for media features with a 'range' type.\n\nExample:\n\n\n @media screen and (500px <= width <= 1200px) {}\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "PostCssMediaRange", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Code Style" + } + }, + "relationships": [ + { + "target": { + "id": "PostCSS", + "index": 13, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false + }, + { + "name": "JavaScript", + "version": "243.24609", + "rules": [ { "id": "ShiftOutOfRangeJS", "shortDescription": { @@ -114590,14 +120822,15 @@ "parameters": { "suppressToolId": "ShiftOutOfRangeJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Performance" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Bitwise operation issues", - "index": 16, + "index": 15, "toolComponent": { "name": "QDNET" } @@ -114623,14 +120856,15 @@ "parameters": { "suppressToolId": "JSClosureCompilerSyntax", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/General", - "index": 18, + "index": 17, "toolComponent": { "name": "QDNET" } @@ -114656,7 +120890,8 @@ "parameters": { "suppressToolId": "BadExpressionStatementJS", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Reliability" } }, "relationships": [ @@ -114689,7 +120924,8 @@ "parameters": { "suppressToolId": "ContinueStatementJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -114722,14 +120958,15 @@ "parameters": { "suppressToolId": "JSXSyntaxUsed", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/General", - "index": 18, + "index": 17, "toolComponent": { "name": "QDNET" } @@ -114755,14 +120992,15 @@ "parameters": { "suppressToolId": "JSJoinVariableDeclarationAndAssignment", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/General", - "index": 18, + "index": 17, "toolComponent": { "name": "QDNET" } @@ -114788,14 +121026,15 @@ "parameters": { "suppressToolId": "ES6ConvertModuleExportToExport", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/ES2015 migration aids", - "index": 48, + "index": 49, "toolComponent": { "name": "QDNET" } @@ -114821,14 +121060,15 @@ "parameters": { "suppressToolId": "DocumentWriteJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Performance" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/DOM issues", - "index": 49, + "index": 51, "toolComponent": { "name": "QDNET" } @@ -114854,14 +121094,15 @@ "parameters": { "suppressToolId": "IncompatibleBitwiseMaskOperation", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Bitwise operation issues", - "index": 16, + "index": 15, "toolComponent": { "name": "QDNET" } @@ -114887,14 +121128,15 @@ "parameters": { "suppressToolId": "JSDuplicatedDeclaration", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/General", - "index": 18, + "index": 17, "toolComponent": { "name": "QDNET" } @@ -114920,14 +121162,15 @@ "parameters": { "suppressToolId": "TypeScriptValidateGenericTypes", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 52, + "index": 55, "toolComponent": { "name": "QDNET" } @@ -114953,14 +121196,15 @@ "parameters": { "suppressToolId": "JSFileReferences", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Sanity" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/General", - "index": 18, + "index": 17, "toolComponent": { "name": "QDNET" } @@ -114986,7 +121230,8 @@ "parameters": { "suppressToolId": "FunctionWithInconsistentReturnsJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ @@ -115019,14 +121264,15 @@ "parameters": { "suppressToolId": "ES6ClassMemberInitializationOrder", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/General", - "index": 18, + "index": 17, "toolComponent": { "name": "QDNET" } @@ -115052,14 +121298,15 @@ "parameters": { "suppressToolId": "NestedFunctionJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Potentially confusing code constructs", - "index": 57, + "index": 61, "toolComponent": { "name": "QDNET" } @@ -115085,14 +121332,15 @@ "parameters": { "suppressToolId": "TypeScriptUMDGlobal", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 52, + "index": 55, "toolComponent": { "name": "QDNET" } @@ -115118,14 +121366,15 @@ "parameters": { "suppressToolId": "UnnecessaryReturnStatementJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Control flow issues", - "index": 61, + "index": 65, "toolComponent": { "name": "QDNET" } @@ -115151,14 +121400,15 @@ "parameters": { "suppressToolId": "StandardJS", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Code quality tools", - "index": 64, + "index": 69, "toolComponent": { "name": "QDNET" } @@ -115184,14 +121434,15 @@ "parameters": { "suppressToolId": "JSCommentMatchesSignature", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/General", - "index": 18, + "index": 17, "toolComponent": { "name": "QDNET" } @@ -115217,14 +121468,15 @@ "parameters": { "suppressToolId": "FunctionWithMultipleReturnPointsJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Function metrics", - "index": 70, + "index": 76, "toolComponent": { "name": "QDNET" } @@ -115250,14 +121502,15 @@ "parameters": { "suppressToolId": "JSRemoveUnnecessaryParentheses", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Code style issues", - "index": 72, + "index": 79, "toolComponent": { "name": "QDNET" } @@ -115283,7 +121536,8 @@ "parameters": { "suppressToolId": "CommaExpressionJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -115316,14 +121570,15 @@ "parameters": { "suppressToolId": "ES6BindWithArrowFunction", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Probable bugs", - "index": 79, + "index": 86, "toolComponent": { "name": "QDNET" } @@ -115349,14 +121604,15 @@ "parameters": { "suppressToolId": "JSBitwiseOperatorUsage", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Bitwise operation issues", - "index": 16, + "index": 15, "toolComponent": { "name": "QDNET" } @@ -115382,14 +121638,15 @@ "parameters": { "suppressToolId": "IfStatementWithIdenticalBranchesJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Control flow issues", - "index": 61, + "index": 65, "toolComponent": { "name": "QDNET" } @@ -115415,14 +121672,15 @@ "parameters": { "suppressToolId": "JSConsecutiveCommasInArrayLiteral", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Probable bugs", - "index": 79, + "index": 86, "toolComponent": { "name": "QDNET" } @@ -115448,14 +121706,15 @@ "parameters": { "suppressToolId": "JSValidateTypes", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/General", - "index": 18, + "index": 17, "toolComponent": { "name": "QDNET" } @@ -115481,14 +121740,15 @@ "parameters": { "suppressToolId": "JSPotentiallyInvalidUsageOfClassThis", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Probable bugs", - "index": 79, + "index": 86, "toolComponent": { "name": "QDNET" } @@ -115514,14 +121774,15 @@ "parameters": { "suppressToolId": "UnnecessaryContinueJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Control flow issues", - "index": 61, + "index": 65, "toolComponent": { "name": "QDNET" } @@ -115547,7 +121808,8 @@ "parameters": { "suppressToolId": "BreakStatementWithLabelJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -115580,14 +121842,15 @@ "parameters": { "suppressToolId": "JSDeclarationsAtScopeStart", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Code style issues", - "index": 72, + "index": 79, "toolComponent": { "name": "QDNET" } @@ -115613,14 +121876,15 @@ "parameters": { "suppressToolId": "ES6ConvertIndexedForToForOf", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/ES2015 migration aids", - "index": 48, + "index": 49, "toolComponent": { "name": "QDNET" } @@ -115646,14 +121910,15 @@ "parameters": { "suppressToolId": "ES6ConvertVarToLetConst", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/ES2015 migration aids", - "index": 48, + "index": 49, "toolComponent": { "name": "QDNET" } @@ -115679,14 +121944,15 @@ "parameters": { "suppressToolId": "DynamicallyGeneratedCodeJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Security" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Potentially confusing code constructs", - "index": 57, + "index": 61, "toolComponent": { "name": "QDNET" } @@ -115712,14 +121978,15 @@ "parameters": { "suppressToolId": "UnusedCatchParameterJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Try statement issues", - "index": 89, + "index": 97, "toolComponent": { "name": "QDNET" } @@ -115745,7 +122012,8 @@ "parameters": { "suppressToolId": "AnonymousFunctionJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -115778,14 +122046,15 @@ "parameters": { "suppressToolId": "EmptyCatchBlockJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Try statement issues", - "index": 89, + "index": 97, "toolComponent": { "name": "QDNET" } @@ -115811,14 +122080,15 @@ "parameters": { "suppressToolId": "ThrowInsideFinallyBlockJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Try statement issues", - "index": 89, + "index": 97, "toolComponent": { "name": "QDNET" } @@ -115844,14 +122114,15 @@ "parameters": { "suppressToolId": "JSPotentiallyInvalidUsageOfThis", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Probable bugs", - "index": 79, + "index": 86, "toolComponent": { "name": "QDNET" } @@ -115877,14 +122148,15 @@ "parameters": { "suppressToolId": "JSUnresolvedLibraryURL", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Sanity" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/General", - "index": 18, + "index": 17, "toolComponent": { "name": "QDNET" } @@ -115910,14 +122182,15 @@ "parameters": { "suppressToolId": "TypeScriptFieldCanBeMadeReadonly", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 52, + "index": 55, "toolComponent": { "name": "QDNET" } @@ -115943,14 +122216,15 @@ "parameters": { "suppressToolId": "NegatedIfStatementJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Potentially confusing code constructs", - "index": 57, + "index": 61, "toolComponent": { "name": "QDNET" } @@ -115976,14 +122250,15 @@ "parameters": { "suppressToolId": "ConditionalExpressionWithIdenticalBranchesJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Control flow issues", - "index": 61, + "index": 65, "toolComponent": { "name": "QDNET" } @@ -116009,14 +122284,15 @@ "parameters": { "suppressToolId": "JSIncompatibleTypesComparison", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Probable bugs", - "index": 79, + "index": 86, "toolComponent": { "name": "QDNET" } @@ -116042,14 +122318,15 @@ "parameters": { "suppressToolId": "ES6TopLevelAwaitExpression", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Async code and promises", - "index": 95, + "index": 103, "toolComponent": { "name": "QDNET" } @@ -116075,14 +122352,15 @@ "parameters": { "suppressToolId": "ParameterNamingConventionJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Naming conventions", - "index": 96, + "index": 104, "toolComponent": { "name": "QDNET" } @@ -116108,14 +122386,15 @@ "parameters": { "suppressToolId": "OverlyComplexFunctionJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Function metrics", - "index": 70, + "index": 76, "toolComponent": { "name": "QDNET" } @@ -116141,14 +122420,15 @@ "parameters": { "suppressToolId": "JSSuspiciousNameCombination", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Probable bugs", - "index": 79, + "index": 86, "toolComponent": { "name": "QDNET" } @@ -116174,14 +122454,15 @@ "parameters": { "suppressToolId": "ChainedFunctionCallJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Performance" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Code style issues", - "index": 72, + "index": 79, "toolComponent": { "name": "QDNET" } @@ -116193,28 +122474,29 @@ ] }, { - "id": "ConstantOnLHSOfComparisonJS", + "id": "JSCheckFunctionSignatures", "shortDescription": { - "text": "Constant on left side of comparison" + "text": "Signature mismatch" }, "fullDescription": { - "text": "Reports a comparison operation with a constant value in the left-hand side. According to coding conventions, constants should be in the right-hand side of comparisons.", - "markdown": "Reports a comparison operation with a constant value in the left-hand side. According to coding conventions, constants should be in the right-hand side of comparisons." + "text": "Reports a JavaScript call expression where the arguments do not match the signature of the referenced function, including the types of arguments and their number. Also, reports if the overloading function doesn't match the overloaded one in terms of parameters and return types. TypeScript code is ignored.", + "markdown": "Reports a JavaScript call expression where the arguments do not match the signature of the referenced function, including the types of arguments and their number. Also, reports if the overloading function doesn't match the overloaded one in terms of parameters and return types.\n\nTypeScript code is ignored." }, "defaultConfiguration": { "enabled": false, - "level": "warning", + "level": "note", "parameters": { - "suppressToolId": "ConstantOnLefSideOfComparisonJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "suppressToolId": "JSCheckFunctionSignatures", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { - "id": "JavaScript and TypeScript/Code style issues", - "index": 72, + "id": "JavaScript and TypeScript/General", + "index": 17, "toolComponent": { "name": "QDNET" } @@ -116226,28 +122508,29 @@ ] }, { - "id": "JSCheckFunctionSignatures", + "id": "ConstantOnLHSOfComparisonJS", "shortDescription": { - "text": "Signature mismatch" + "text": "Constant on left side of comparison" }, "fullDescription": { - "text": "Reports a JavaScript call expression where the arguments do not match the signature of the referenced function, including the types of arguments and their number. Also, reports if the overloading function doesn't match the overloaded one in terms of parameters and return types. TypeScript code is ignored.", - "markdown": "Reports a JavaScript call expression where the arguments do not match the signature of the referenced function, including the types of arguments and their number. Also, reports if the overloading function doesn't match the overloaded one in terms of parameters and return types.\n\nTypeScript code is ignored." + "text": "Reports a comparison operation with a constant value in the left-hand side. According to coding conventions, constants should be in the right-hand side of comparisons.", + "markdown": "Reports a comparison operation with a constant value in the left-hand side. According to coding conventions, constants should be in the right-hand side of comparisons." }, "defaultConfiguration": { "enabled": false, - "level": "note", + "level": "warning", "parameters": { - "suppressToolId": "JSCheckFunctionSignatures", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "suppressToolId": "ConstantOnLefSideOfComparisonJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { - "id": "JavaScript and TypeScript/General", - "index": 18, + "id": "JavaScript and TypeScript/Code style issues", + "index": 79, "toolComponent": { "name": "QDNET" } @@ -116273,14 +122556,15 @@ "parameters": { "suppressToolId": "TypeScriptUnresolvedReference", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 52, + "index": 55, "toolComponent": { "name": "QDNET" } @@ -116306,14 +122590,15 @@ "parameters": { "suppressToolId": "ES6RedundantAwait", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Performance" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Async code and promises", - "index": 95, + "index": 103, "toolComponent": { "name": "QDNET" } @@ -116339,14 +122624,15 @@ "parameters": { "suppressToolId": "AssignmentToFunctionParameterJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Assignment issues", - "index": 98, + "index": 108, "toolComponent": { "name": "QDNET" } @@ -116372,14 +122658,15 @@ "parameters": { "suppressToolId": "FallThroughInSwitchStatementJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Switch statement issues", - "index": 99, + "index": 109, "toolComponent": { "name": "QDNET" } @@ -116405,14 +122692,15 @@ "parameters": { "suppressToolId": "CallerJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Potentially confusing code constructs", - "index": 57, + "index": 61, "toolComponent": { "name": "QDNET" } @@ -116438,14 +122726,15 @@ "parameters": { "suppressToolId": "JSSwitchVariableDeclarationIssue", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Switch statement issues", - "index": 99, + "index": 109, "toolComponent": { "name": "QDNET" } @@ -116471,14 +122760,15 @@ "parameters": { "suppressToolId": "ReuseOfLocalVariableJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Data flow", - "index": 102, + "index": 112, "toolComponent": { "name": "QDNET" } @@ -116504,14 +122794,15 @@ "parameters": { "suppressToolId": "ES6ConvertLetToConst", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/ES2015 migration aids", - "index": 48, + "index": 49, "toolComponent": { "name": "QDNET" } @@ -116537,14 +122828,15 @@ "parameters": { "suppressToolId": "JSReferencingMutableVariableFromClosure", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/General", - "index": 18, + "index": 17, "toolComponent": { "name": "QDNET" } @@ -116570,14 +122862,15 @@ "parameters": { "suppressToolId": "ES6ConvertRequireIntoImport", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/ES2015 migration aids", - "index": 48, + "index": 49, "toolComponent": { "name": "QDNET" } @@ -116603,14 +122896,15 @@ "parameters": { "suppressToolId": "JSUnusedGlobalSymbols", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Performance" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Unused symbols", - "index": 107, + "index": 117, "toolComponent": { "name": "QDNET" } @@ -116636,14 +122930,15 @@ "parameters": { "suppressToolId": "NestedConditionalExpressionJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Potentially confusing code constructs", - "index": 57, + "index": 61, "toolComponent": { "name": "QDNET" } @@ -116669,14 +122964,15 @@ "parameters": { "suppressToolId": "ES6PossiblyAsyncFunction", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Async code and promises", - "index": 95, + "index": 103, "toolComponent": { "name": "QDNET" } @@ -116702,14 +122998,15 @@ "parameters": { "suppressToolId": "FlowJSFlagCommentPlacement", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Flow type checker", - "index": 13, + "index": 118, "toolComponent": { "name": "QDNET" } @@ -116735,14 +123032,15 @@ "parameters": { "suppressToolId": "JSMissingSwitchDefault", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Switch statement issues", - "index": 99, + "index": 109, "toolComponent": { "name": "QDNET" } @@ -116768,14 +123066,15 @@ "parameters": { "suppressToolId": "JSXNamespaceValidation", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Sanity" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Imports and dependencies", - "index": 109, + "index": 120, "toolComponent": { "name": "QDNET" } @@ -116801,7 +123100,8 @@ "parameters": { "suppressToolId": "ReservedWordAsName", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ @@ -116834,14 +123134,15 @@ "parameters": { "suppressToolId": "IncrementDecrementResultUsedJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Potentially confusing code constructs", - "index": 57, + "index": 61, "toolComponent": { "name": "QDNET" } @@ -116867,14 +123168,15 @@ "parameters": { "suppressToolId": "SuspiciousTypeOfGuard", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Control flow issues", - "index": 61, + "index": 65, "toolComponent": { "name": "QDNET" } @@ -116900,14 +123202,15 @@ "parameters": { "suppressToolId": "LoopStatementThatDoesntLoopJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Control flow issues", - "index": 61, + "index": 65, "toolComponent": { "name": "QDNET" } @@ -116933,14 +123236,15 @@ "parameters": { "suppressToolId": "JSNonASCIINames", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Naming conventions", - "index": 96, + "index": 104, "toolComponent": { "name": "QDNET" } @@ -116966,14 +123270,15 @@ "parameters": { "suppressToolId": "ES6MissingAwait", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Async code and promises", - "index": 95, + "index": 103, "toolComponent": { "name": "QDNET" } @@ -116999,14 +123304,15 @@ "parameters": { "suppressToolId": "TailRecursionJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Performance" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Control flow issues", - "index": 61, + "index": 65, "toolComponent": { "name": "QDNET" } @@ -117032,14 +123338,15 @@ "parameters": { "suppressToolId": "ConfusingPlusesOrMinusesJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Security" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Potentially confusing code constructs", - "index": 57, + "index": 61, "toolComponent": { "name": "QDNET" } @@ -117065,14 +123372,15 @@ "parameters": { "suppressToolId": "TypeScriptConfig", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Sanity" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 52, + "index": 55, "toolComponent": { "name": "QDNET" } @@ -117098,14 +123406,15 @@ "parameters": { "suppressToolId": "OverlyComplexBooleanExpressionJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Potentially confusing code constructs", - "index": 57, + "index": 61, "toolComponent": { "name": "QDNET" } @@ -117131,14 +123440,15 @@ "parameters": { "suppressToolId": "OverlyComplexArithmeticExpressionJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Potentially confusing code constructs", - "index": 57, + "index": 61, "toolComponent": { "name": "QDNET" } @@ -117164,14 +123474,15 @@ "parameters": { "suppressToolId": "DuplicateConditionJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Control flow issues", - "index": 61, + "index": 65, "toolComponent": { "name": "QDNET" } @@ -117197,14 +123508,15 @@ "parameters": { "suppressToolId": "UnnecessaryLabelJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Control flow issues", - "index": 61, + "index": 65, "toolComponent": { "name": "QDNET" } @@ -117230,14 +123542,15 @@ "parameters": { "suppressToolId": "InnerHTMLJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Performance" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/DOM issues", - "index": 49, + "index": 51, "toolComponent": { "name": "QDNET" } @@ -117263,14 +123576,15 @@ "parameters": { "suppressToolId": "ES6UnusedImports", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Imports and dependencies", - "index": 109, + "index": 120, "toolComponent": { "name": "QDNET" } @@ -117296,14 +123610,15 @@ "parameters": { "suppressToolId": "JSAssignmentUsedAsCondition", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Assignment issues", - "index": 98, + "index": 108, "toolComponent": { "name": "QDNET" } @@ -117329,14 +123644,15 @@ "parameters": { "suppressToolId": "ForLoopReplaceableByWhile", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Control flow issues", - "index": 61, + "index": 65, "toolComponent": { "name": "QDNET" } @@ -117362,14 +123678,15 @@ "parameters": { "suppressToolId": "ConstantConditionalExpressionJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Control flow issues", - "index": 61, + "index": 65, "toolComponent": { "name": "QDNET" } @@ -117381,28 +123698,29 @@ ] }, { - "id": "NonBlockStatementBodyJS", + "id": "JSValidateJSDoc", "shortDescription": { - "text": "Statement body without braces" + "text": "Syntax errors and unresolved references in JSDoc" }, "fullDescription": { - "text": "Reports a 'if', 'while', 'for', or 'with' statements whose body is not a block statement. Using code block in statement bodies is usually safer for downstream maintenance.", - "markdown": "Reports a `if`, `while`, `for`, or `with` statements whose body is not a block statement. Using code block in statement bodies is usually safer for downstream maintenance." + "text": "Reports a syntax discrepancy in a documentation comment.", + "markdown": "Reports a syntax discrepancy in a documentation comment." }, "defaultConfiguration": { "enabled": false, "level": "warning", "parameters": { - "suppressToolId": "NonBlockStatementBodyJS", + "suppressToolId": "JSValidateJSDoc", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { - "id": "JavaScript and TypeScript/Code style issues", - "index": 72, + "id": "JavaScript and TypeScript/General", + "index": 17, "toolComponent": { "name": "QDNET" } @@ -117414,28 +123732,29 @@ ] }, { - "id": "JSValidateJSDoc", + "id": "NonBlockStatementBodyJS", "shortDescription": { - "text": "Syntax errors and unresolved references in JSDoc" + "text": "Statement body without braces" }, "fullDescription": { - "text": "Reports a syntax discrepancy in a documentation comment.", - "markdown": "Reports a syntax discrepancy in a documentation comment." + "text": "Reports a 'if', 'while', 'for', or 'with' statements whose body is not a block statement. Using code block in statement bodies is usually safer for downstream maintenance.", + "markdown": "Reports a `if`, `while`, `for`, or `with` statements whose body is not a block statement. Using code block in statement bodies is usually safer for downstream maintenance." }, "defaultConfiguration": { "enabled": false, "level": "warning", "parameters": { - "suppressToolId": "JSValidateJSDoc", + "suppressToolId": "NonBlockStatementBodyJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { - "id": "JavaScript and TypeScript/General", - "index": 18, + "id": "JavaScript and TypeScript/Code style issues", + "index": 79, "toolComponent": { "name": "QDNET" } @@ -117461,14 +123780,15 @@ "parameters": { "suppressToolId": "FlowJSConfig", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Sanity" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Flow type checker", - "index": 13, + "index": 118, "toolComponent": { "name": "QDNET" } @@ -117494,14 +123814,15 @@ "parameters": { "suppressToolId": "TypeScriptValidateTypes", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 52, + "index": 55, "toolComponent": { "name": "QDNET" } @@ -117527,14 +123848,15 @@ "parameters": { "suppressToolId": "JSObjectNullOrUndefined", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Control flow issues", - "index": 61, + "index": 65, "toolComponent": { "name": "QDNET" } @@ -117560,14 +123882,15 @@ "parameters": { "suppressToolId": "PointlessArithmeticExpressionJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Performance" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Potentially confusing code constructs", - "index": 57, + "index": 61, "toolComponent": { "name": "QDNET" } @@ -117593,14 +123916,15 @@ "parameters": { "suppressToolId": "TypeScriptSmartCast", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 52, + "index": 55, "toolComponent": { "name": "QDNET" } @@ -117626,14 +123950,15 @@ "parameters": { "suppressToolId": "JSAccessibilityCheck", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/General", - "index": 18, + "index": 17, "toolComponent": { "name": "QDNET" } @@ -117659,14 +123984,15 @@ "parameters": { "suppressToolId": "FunctionWithMultipleLoopsJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Performance" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Function metrics", - "index": 70, + "index": 76, "toolComponent": { "name": "QDNET" } @@ -117692,14 +124018,15 @@ "parameters": { "suppressToolId": "NpmUsedModulesInstalled", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Sanity" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Imports and dependencies", - "index": 109, + "index": 120, "toolComponent": { "name": "QDNET" } @@ -117725,14 +124052,15 @@ "parameters": { "suppressToolId": "FunctionNamingConventionJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Naming conventions", - "index": 96, + "index": 104, "toolComponent": { "name": "QDNET" } @@ -117758,14 +124086,15 @@ "parameters": { "suppressToolId": "ObjectAllocationIgnored", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Probable bugs", - "index": 79, + "index": 86, "toolComponent": { "name": "QDNET" } @@ -117791,14 +124120,15 @@ "parameters": { "suppressToolId": "JSHint", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Code quality tools", - "index": 64, + "index": 69, "toolComponent": { "name": "QDNET" } @@ -117824,14 +124154,15 @@ "parameters": { "suppressToolId": "ExceptionCaughtLocallyJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Try statement issues", - "index": 89, + "index": 97, "toolComponent": { "name": "QDNET" } @@ -117857,14 +124188,15 @@ "parameters": { "suppressToolId": "OverlyComplexFunctionJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Performance" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Function metrics", - "index": 70, + "index": 76, "toolComponent": { "name": "QDNET" } @@ -117890,14 +124222,15 @@ "parameters": { "suppressToolId": "TypeScriptJSXUnresolvedComponent", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Sanity" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 52, + "index": 55, "toolComponent": { "name": "QDNET" } @@ -117923,14 +124256,15 @@ "parameters": { "suppressToolId": "JSUnfilteredForInLoop", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/General", - "index": 18, + "index": 17, "toolComponent": { "name": "QDNET" } @@ -117956,14 +124290,15 @@ "parameters": { "suppressToolId": "JSFunctionExpressionToArrowFunction", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/ES2015 migration aids", - "index": 48, + "index": 49, "toolComponent": { "name": "QDNET" } @@ -117989,14 +124324,15 @@ "parameters": { "suppressToolId": "UpdateDependencyToLatestVersion", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Sanity" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Imports and dependencies", - "index": 109, + "index": 120, "toolComponent": { "name": "QDNET" } @@ -118022,14 +124358,15 @@ "parameters": { "suppressToolId": "AssignmentResultUsedJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Assignment issues", - "index": 98, + "index": 108, "toolComponent": { "name": "QDNET" } @@ -118055,14 +124392,15 @@ "parameters": { "suppressToolId": "ConstantOnRightSideOfComparisonJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Code style issues", - "index": 72, + "index": 79, "toolComponent": { "name": "QDNET" } @@ -118088,14 +124426,15 @@ "parameters": { "suppressToolId": "JSUnnecessarySemicolon", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/General", - "index": 18, + "index": 17, "toolComponent": { "name": "QDNET" } @@ -118121,14 +124460,15 @@ "parameters": { "suppressToolId": "JSSuspiciousEqPlus", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Probable bugs", - "index": 79, + "index": 86, "toolComponent": { "name": "QDNET" } @@ -118154,14 +124494,15 @@ "parameters": { "suppressToolId": "JSUnusedAssignment", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Performance" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Unused symbols", - "index": 107, + "index": 117, "toolComponent": { "name": "QDNET" } @@ -118187,14 +124528,15 @@ "parameters": { "suppressToolId": "ConfusingFloatingPointLiteralJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Potentially confusing code constructs", - "index": 57, + "index": 61, "toolComponent": { "name": "QDNET" } @@ -118220,14 +124562,15 @@ "parameters": { "suppressToolId": "ContinueOrBreakFromFinallyBlockJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Try statement issues", - "index": 89, + "index": 97, "toolComponent": { "name": "QDNET" } @@ -118253,14 +124596,15 @@ "parameters": { "suppressToolId": "JSMethodCanBeStatic", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Performance" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/General", - "index": 18, + "index": 17, "toolComponent": { "name": "QDNET" } @@ -118286,14 +124630,15 @@ "parameters": { "suppressToolId": "JSUndeclaredVariable", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/General", - "index": 18, + "index": 17, "toolComponent": { "name": "QDNET" } @@ -118319,14 +124664,15 @@ "parameters": { "suppressToolId": "SillyAssignmentJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Assignment issues", - "index": 98, + "index": 108, "toolComponent": { "name": "QDNET" } @@ -118352,14 +124698,15 @@ "parameters": { "suppressToolId": "TypeScriptCheckImport", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Sanity" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 52, + "index": 55, "toolComponent": { "name": "QDNET" } @@ -118385,14 +124732,15 @@ "parameters": { "suppressToolId": "InfiniteRecursionJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Probable bugs", - "index": 79, + "index": 86, "toolComponent": { "name": "QDNET" } @@ -118418,14 +124766,15 @@ "parameters": { "suppressToolId": "JSMismatchedCollectionQueryUpdate", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/General", - "index": 18, + "index": 17, "toolComponent": { "name": "QDNET" } @@ -118451,14 +124800,15 @@ "parameters": { "suppressToolId": "ES6PreferShortImport", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/General", - "index": 18, + "index": 17, "toolComponent": { "name": "QDNET" } @@ -118484,14 +124834,15 @@ "parameters": { "suppressToolId": "PointlessBitwiseExpressionJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Bitwise operation issues", - "index": 16, + "index": 15, "toolComponent": { "name": "QDNET" } @@ -118517,14 +124868,15 @@ "parameters": { "suppressToolId": "JSStringConcatenationToES6Template", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/ES2015 migration aids", - "index": 48, + "index": 49, "toolComponent": { "name": "QDNET" } @@ -118550,14 +124902,15 @@ "parameters": { "suppressToolId": "AssignmentReplaceableWithOperatorAssignmentJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Assignment issues", - "index": 98, + "index": 108, "toolComponent": { "name": "QDNET" } @@ -118583,14 +124936,15 @@ "parameters": { "suppressToolId": "ES6DestructuringVariablesMerge", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/General", - "index": 18, + "index": 17, "toolComponent": { "name": "QDNET" } @@ -118616,14 +124970,15 @@ "parameters": { "suppressToolId": "TypeScriptRedundantGenericType", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 52, + "index": 55, "toolComponent": { "name": "QDNET" } @@ -118649,14 +125004,15 @@ "parameters": { "suppressToolId": "JSLastCommaInObjectLiteral", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/General", - "index": 18, + "index": 17, "toolComponent": { "name": "QDNET" } @@ -118682,14 +125038,15 @@ "parameters": { "suppressToolId": "NestedAssignmentJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Assignment issues", - "index": 98, + "index": 108, "toolComponent": { "name": "QDNET" } @@ -118715,14 +125072,15 @@ "parameters": { "suppressToolId": "DefaultNotLastCaseInSwitchJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Switch statement issues", - "index": 99, + "index": 109, "toolComponent": { "name": "QDNET" } @@ -118748,14 +125106,15 @@ "parameters": { "suppressToolId": "EmptyFinallyBlockJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Try statement issues", - "index": 89, + "index": 97, "toolComponent": { "name": "QDNET" } @@ -118781,14 +125140,15 @@ "parameters": { "suppressToolId": "ForLoopThatDoesntUseLoopVariableJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Probable bugs", - "index": 79, + "index": 86, "toolComponent": { "name": "QDNET" } @@ -118814,14 +125174,15 @@ "parameters": { "suppressToolId": "TypeScriptAbstractClassConstructorCanBeMadeProtected", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 52, + "index": 55, "toolComponent": { "name": "QDNET" } @@ -118847,14 +125208,15 @@ "parameters": { "suppressToolId": "FunctionWithMoreThanThreeNegationsJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Function metrics", - "index": 70, + "index": 76, "toolComponent": { "name": "QDNET" } @@ -118880,14 +125242,15 @@ "parameters": { "suppressToolId": "RedundantIfStatementJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Control flow issues", - "index": 61, + "index": 65, "toolComponent": { "name": "QDNET" } @@ -118913,14 +125276,15 @@ "parameters": { "suppressToolId": "UnterminatedStatementJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Code style issues", - "index": 72, + "index": 79, "toolComponent": { "name": "QDNET" } @@ -118946,14 +125310,15 @@ "parameters": { "suppressToolId": "JSUnreachableSwitchBranches", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Switch statement issues", - "index": 99, + "index": 109, "toolComponent": { "name": "QDNET" } @@ -118979,14 +125344,15 @@ "parameters": { "suppressToolId": "RedundantConditionalExpressionJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Control flow issues", - "index": 61, + "index": 65, "toolComponent": { "name": "QDNET" } @@ -119012,14 +125378,15 @@ "parameters": { "suppressToolId": "JSTestFailedLine", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Unit testing", - "index": 118, + "index": 140, "toolComponent": { "name": "QDNET" } @@ -119045,14 +125412,15 @@ "parameters": { "suppressToolId": "IfStatementWithTooManyBranchesJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Control flow issues", - "index": 61, + "index": 65, "toolComponent": { "name": "QDNET" } @@ -119078,7 +125446,8 @@ "parameters": { "suppressToolId": "BreakStatementJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -119111,7 +125480,8 @@ "parameters": { "suppressToolId": "DebuggerStatementJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Security" } }, "relationships": [ @@ -119144,14 +125514,15 @@ "parameters": { "suppressToolId": "AssignmentToForLoopParameterJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Assignment issues", - "index": 98, + "index": 108, "toolComponent": { "name": "QDNET" } @@ -119177,7 +125548,8 @@ "parameters": { "suppressToolId": "ConditionalExpressionJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -119210,14 +125582,15 @@ "parameters": { "suppressToolId": "PointlessBooleanExpressionJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Control flow issues", - "index": 61, + "index": 65, "toolComponent": { "name": "QDNET" } @@ -119243,14 +125616,15 @@ "parameters": { "suppressToolId": "JSUrlImportUsage", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Sanity" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Imports and dependencies", - "index": 109, + "index": 120, "toolComponent": { "name": "QDNET" } @@ -119276,14 +125650,15 @@ "parameters": { "suppressToolId": "UnnecessaryLabelOnContinueStatementJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Control flow issues", - "index": 61, + "index": 65, "toolComponent": { "name": "QDNET" } @@ -119309,14 +125684,15 @@ "parameters": { "suppressToolId": "JSPotentiallyInvalidTargetOfIndexedPropertyAccess", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Probable bugs", - "index": 79, + "index": 86, "toolComponent": { "name": "QDNET" } @@ -119342,14 +125718,15 @@ "parameters": { "suppressToolId": "JSTypeOfValues", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Probable bugs", - "index": 79, + "index": 86, "toolComponent": { "name": "QDNET" } @@ -119375,14 +125752,15 @@ "parameters": { "suppressToolId": "XHTMLIncompatabilitiesJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/DOM issues", - "index": 49, + "index": 51, "toolComponent": { "name": "QDNET" } @@ -119408,14 +125786,15 @@ "parameters": { "suppressToolId": "JSAnnotator", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Sanity" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/General", - "index": 18, + "index": 17, "toolComponent": { "name": "QDNET" } @@ -119441,14 +125820,15 @@ "parameters": { "suppressToolId": "ES6ConvertToForOf", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/ES2015 migration aids", - "index": 48, + "index": 49, "toolComponent": { "name": "QDNET" } @@ -119474,7 +125854,8 @@ "parameters": { "suppressToolId": "ThisExpressionReferencesGlobalObjectJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ @@ -119507,14 +125888,15 @@ "parameters": { "suppressToolId": "NestedFunctionCallJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Code style issues", - "index": 72, + "index": 79, "toolComponent": { "name": "QDNET" } @@ -119540,14 +125922,15 @@ "parameters": { "suppressToolId": "EqualityComparisonWithCoercionJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Security" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Probable bugs", - "index": 79, + "index": 86, "toolComponent": { "name": "QDNET" } @@ -119573,14 +125956,15 @@ "parameters": { "suppressToolId": "JSNonStrictModeUsed", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Security" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/General", - "index": 18, + "index": 17, "toolComponent": { "name": "QDNET" } @@ -119606,14 +125990,15 @@ "parameters": { "suppressToolId": "TypeScriptExplicitMemberType", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 52, + "index": 55, "toolComponent": { "name": "QDNET" } @@ -119639,14 +126024,15 @@ "parameters": { "suppressToolId": "JSDuplicateCaseLabel", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Switch statement issues", - "index": 99, + "index": 109, "toolComponent": { "name": "QDNET" } @@ -119672,14 +126058,15 @@ "parameters": { "suppressToolId": "JSXDomNesting", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/React", - "index": 136, + "index": 158, "toolComponent": { "name": "QDNET" } @@ -119705,14 +126092,15 @@ "parameters": { "suppressToolId": "UnnecessaryLocalVariableJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Data flow", - "index": 102, + "index": 112, "toolComponent": { "name": "QDNET" } @@ -119738,14 +126126,15 @@ "parameters": { "suppressToolId": "JSXUnresolvedComponent", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Sanity" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/General", - "index": 18, + "index": 17, "toolComponent": { "name": "QDNET" } @@ -119771,14 +126160,15 @@ "parameters": { "suppressToolId": "UnnecessaryLabelOnBreakStatementJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Control flow issues", - "index": 61, + "index": 65, "toolComponent": { "name": "QDNET" } @@ -119804,14 +126194,15 @@ "parameters": { "suppressToolId": "DivideByZeroJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Probable bugs", - "index": 79, + "index": 86, "toolComponent": { "name": "QDNET" } @@ -119837,14 +126228,15 @@ "parameters": { "suppressToolId": "ChainedEqualityComparisonsJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Code style issues", - "index": 72, + "index": 79, "toolComponent": { "name": "QDNET" } @@ -119870,14 +126262,15 @@ "parameters": { "suppressToolId": "JSRedundantSwitchStatement", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Switch statement issues", - "index": 99, + "index": 109, "toolComponent": { "name": "QDNET" } @@ -119903,14 +126296,15 @@ "parameters": { "suppressToolId": "BlockStatementJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Potentially confusing code constructs", - "index": 57, + "index": 61, "toolComponent": { "name": "QDNET" } @@ -119936,14 +126330,15 @@ "parameters": { "suppressToolId": "TextLabelInSwitchStatementJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Switch statement issues", - "index": 99, + "index": 109, "toolComponent": { "name": "QDNET" } @@ -119969,7 +126364,8 @@ "parameters": { "suppressToolId": "JSOctalInteger", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -120002,47 +126398,15 @@ "parameters": { "suppressToolId": "EmptyTryBlockJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Try statement issues", - "index": 89, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "FlowJSCoverage", - "shortDescription": { - "text": "Code is not covered by Flow" - }, - "fullDescription": { - "text": "Reports JavaScript code fragments that are not covered by the Flow type checker. To use this inspection, configure the Flow executable in Settings | Languages & Frameworks | JavaScript.", - "markdown": "Reports JavaScript code fragments that are not covered by the Flow type checker. To use this inspection, configure the Flow executable in [Settings \\| Languages \\& Frameworks \\| JavaScript](settings://Settings.JavaScript)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "FlowJSCoverage", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Flow type checker", - "index": 13, + "index": 97, "toolComponent": { "name": "QDNET" } @@ -120068,14 +126432,15 @@ "parameters": { "suppressToolId": "JSIgnoredPromiseFromCall", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Async code and promises", - "index": 95, + "index": 103, "toolComponent": { "name": "QDNET" } @@ -120101,7 +126466,8 @@ "parameters": { "suppressToolId": "StringLiteralBreaksHTMLJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Security" } }, "relationships": [ @@ -120134,14 +126500,15 @@ "parameters": { "suppressToolId": "JSComparisonWithNaN", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Probable bugs", - "index": 79, + "index": 86, "toolComponent": { "name": "QDNET" } @@ -120167,14 +126534,15 @@ "parameters": { "suppressToolId": "JSUnresolvedReference", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Sanity" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/General", - "index": 18, + "index": 17, "toolComponent": { "name": "QDNET" } @@ -120200,14 +126568,15 @@ "parameters": { "suppressToolId": "PlatformDetectionJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/DOM issues", - "index": 49, + "index": 51, "toolComponent": { "name": "QDNET" } @@ -120233,14 +126602,15 @@ "parameters": { "suppressToolId": "TypeScriptDuplicateUnionOrIntersectionType", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 52, + "index": 55, "toolComponent": { "name": "QDNET" } @@ -120266,7 +126636,8 @@ "parameters": { "suppressToolId": "VoidExpressionJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -120299,14 +126670,15 @@ "parameters": { "suppressToolId": "JSVoidFunctionReturnValueUsed", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Probable bugs", - "index": 79, + "index": 86, "toolComponent": { "name": "QDNET" } @@ -120332,14 +126704,15 @@ "parameters": { "suppressToolId": "ReturnInsideFinallyBlockJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Try statement issues", - "index": 89, + "index": 97, "toolComponent": { "name": "QDNET" } @@ -120365,14 +126738,15 @@ "parameters": { "suppressToolId": "FunctionTooLongJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Function metrics", - "index": 70, + "index": 76, "toolComponent": { "name": "QDNET" } @@ -120398,7 +126772,8 @@ "parameters": { "suppressToolId": "ContinueStatementWithLabelJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -120431,14 +126806,15 @@ "parameters": { "suppressToolId": "TypeScriptMissingConfigOption", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Sanity" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 52, + "index": 55, "toolComponent": { "name": "QDNET" } @@ -120464,14 +126840,15 @@ "parameters": { "suppressToolId": "ES6ShorthandObjectProperty", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/General", - "index": 18, + "index": 17, "toolComponent": { "name": "QDNET" } @@ -120497,14 +126874,15 @@ "parameters": { "suppressToolId": "JSPotentiallyInvalidConstructorUsage", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Probable bugs", - "index": 79, + "index": 86, "toolComponent": { "name": "QDNET" } @@ -120530,14 +126908,15 @@ "parameters": { "suppressToolId": "NodeCoreCodingAssistance", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Sanity" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Node.js", - "index": 143, + "index": 172, "toolComponent": { "name": "QDNET" } @@ -120563,14 +126942,15 @@ "parameters": { "suppressToolId": "JSPrimitiveTypeWrapperUsage", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/General", - "index": 18, + "index": 17, "toolComponent": { "name": "QDNET" } @@ -120596,14 +126976,15 @@ "parameters": { "suppressToolId": "JSLastCommaInArrayLiteral", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/General", - "index": 18, + "index": 17, "toolComponent": { "name": "QDNET" } @@ -120629,14 +127010,15 @@ "parameters": { "suppressToolId": "NegatedConditionalExpressionJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Potentially confusing code constructs", - "index": 57, + "index": 61, "toolComponent": { "name": "QDNET" } @@ -120662,7 +127044,8 @@ "parameters": { "suppressToolId": "LabeledStatementJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -120695,7 +127078,8 @@ "parameters": { "suppressToolId": "WithStatementJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -120728,7 +127112,8 @@ "parameters": { "suppressToolId": "JSConstantReassignment", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -120761,14 +127146,15 @@ "parameters": { "suppressToolId": "MagicNumberJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Potentially confusing code constructs", - "index": 57, + "index": 61, "toolComponent": { "name": "QDNET" } @@ -120794,14 +127180,15 @@ "parameters": { "suppressToolId": "TypeScriptLibrary", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Sanity" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 52, + "index": 55, "toolComponent": { "name": "QDNET" } @@ -120827,14 +127214,15 @@ "parameters": { "suppressToolId": "TypeScriptMissingAugmentationImport", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Sanity" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 52, + "index": 55, "toolComponent": { "name": "QDNET" } @@ -120860,14 +127248,15 @@ "parameters": { "suppressToolId": "Eslint", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Code quality tools", - "index": 64, + "index": 69, "toolComponent": { "name": "QDNET" } @@ -120893,14 +127282,15 @@ "parameters": { "suppressToolId": "EqualityComparisonWithCoercionJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Security" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 52, + "index": 55, "toolComponent": { "name": "QDNET" } @@ -120926,14 +127316,15 @@ "parameters": { "suppressToolId": "PackageJsonMismatchedDependency", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Sanity" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Imports and dependencies", - "index": 109, + "index": 120, "toolComponent": { "name": "QDNET" } @@ -120959,14 +127350,15 @@ "parameters": { "suppressToolId": "InfiniteLoopJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Probable bugs", - "index": 79, + "index": 86, "toolComponent": { "name": "QDNET" } @@ -120992,14 +127384,15 @@ "parameters": { "suppressToolId": "JSArrowFunctionBracesCanBeRemoved", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Code style issues", - "index": 72, + "index": 79, "toolComponent": { "name": "QDNET" } @@ -121025,14 +127418,15 @@ "parameters": { "suppressToolId": "JSClassNamingConvention", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Naming conventions", - "index": 96, + "index": 104, "toolComponent": { "name": "QDNET" } @@ -121058,14 +127452,15 @@ "parameters": { "suppressToolId": "JSUndefinedPropertyAssignment", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Code style issues", - "index": 72, + "index": 79, "toolComponent": { "name": "QDNET" } @@ -121091,14 +127486,15 @@ "parameters": { "suppressToolId": "JSDeprecatedSymbols", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/General", - "index": 18, + "index": 17, "toolComponent": { "name": "QDNET" } @@ -121124,14 +127520,15 @@ "parameters": { "suppressToolId": "LocalVariableNamingConventionJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Naming conventions", - "index": 96, + "index": 104, "toolComponent": { "name": "QDNET" } @@ -121157,14 +127554,15 @@ "parameters": { "suppressToolId": "JSUnresolvedExtXType", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Sanity" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/General", - "index": 18, + "index": 17, "toolComponent": { "name": "QDNET" } @@ -121190,14 +127588,15 @@ "parameters": { "suppressToolId": "ES6RedundantNestingInTemplateLiteral", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/General", - "index": 18, + "index": 17, "toolComponent": { "name": "QDNET" } @@ -121223,14 +127622,15 @@ "parameters": { "suppressToolId": "OverlyNestedFunctionJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Function metrics", - "index": 70, + "index": 76, "toolComponent": { "name": "QDNET" } @@ -121256,14 +127656,15 @@ "parameters": { "suppressToolId": "TypeScriptSuspiciousConstructorParameterAssignment", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 52, + "index": 55, "toolComponent": { "name": "QDNET" } @@ -121289,14 +127690,15 @@ "parameters": { "suppressToolId": "NestedSwitchStatementJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Switch statement issues", - "index": 99, + "index": 109, "toolComponent": { "name": "QDNET" } @@ -121322,14 +127724,15 @@ "parameters": { "suppressToolId": "JSMissingSwitchBranches", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Switch statement issues", - "index": 99, + "index": 109, "toolComponent": { "name": "QDNET" } @@ -121355,14 +127758,15 @@ "parameters": { "suppressToolId": "JSJQueryEfficiency", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Performance" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/General", - "index": 18, + "index": 17, "toolComponent": { "name": "QDNET" } @@ -121388,14 +127792,15 @@ "parameters": { "suppressToolId": "UnreachableCodeJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Control flow issues", - "index": 61, + "index": 65, "toolComponent": { "name": "QDNET" } @@ -121421,14 +127826,15 @@ "parameters": { "suppressToolId": "StatementWithEmptyBodyJS", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Potentially confusing code constructs", - "index": 57, + "index": 61, "toolComponent": { "name": "QDNET" } @@ -121454,14 +127860,15 @@ "parameters": { "suppressToolId": "JSUnusedLocalSymbols", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "JavaScript and TypeScript/Unused symbols", - "index": 107, + "index": 117, "toolComponent": { "name": "QDNET" } @@ -121481,32 +127888,67 @@ "isComprehensive": false }, { - "name": "org.intellij.plugins.postcss", - "version": "241.16914", + "name": "com.jetbrains.restClient", + "version": "243.24609", "rules": [ { - "id": "PostCssUnresolvedModuleValueReference", + "id": "HttpClientRunRequestNameInspection", "shortDescription": { - "text": "Unresolved CSS module value" + "text": "Possible request name" }, "fullDescription": { - "text": "Reports an unresolved reference to a CSS Module Value ('@value' declaration). Example: '@value foo from unknown;'", - "markdown": "Reports an unresolved reference to a [CSS Module Value](https://github.com/css-modules/postcss-modules-values) (`@value` declaration).\n\nExample:\n\n\n @value foo from unknown;\n" + "text": "Highlights request name in run block which has no specified import file. Suggests adding import for the file which contains this named request.", + "markdown": "Highlights request name in run block which has no specified import file. Suggests adding import for the file which contains this named request." + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "HttpClientRunRequestNameInspection", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "HTTP Client", + "index": 19, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "HttpClientUnresolvedAuthId", + "shortDescription": { + "text": "Unresolved Auth identifier" + }, + "fullDescription": { + "text": "Highlights references to non-existent Auth configurations. Suggests creating a new one in the current environment.", + "markdown": "Highlights references to non-existent Auth configurations. Suggests creating a new one in the current environment." }, "defaultConfiguration": { "enabled": true, "level": "error", "parameters": { - "suppressToolId": "PostCssUnresolvedModuleValueReference", + "suppressToolId": "HttpClientUnresolvedAuthId", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Security" } }, "relationships": [ { "target": { - "id": "PostCSS", - "index": 15, + "id": "HTTP Client", + "index": 19, "toolComponent": { "name": "QDNET" } @@ -121518,28 +127960,335 @@ ] }, { - "id": "PostCssNesting", + "id": "HttpRequestRequestSeparatorJsonBodyInspection", "shortDescription": { - "text": "Invalid nested rule" + "text": "Missing request separator in JSON body" }, "fullDescription": { - "text": "Reports a nested style rule whose syntax doesn't comply with the PostCSS Nested or the PostCSS Nesting specification. Example: '.phone {\n &_title {}\n}'", - "markdown": "Reports a nested style rule whose syntax doesn't comply with the [PostCSS Nested](https://github.com/postcss/postcss-nested) or the [PostCSS Nesting](https://github.com/csstools/postcss-nesting) specification.\n\nExample:\n\n\n .phone {\n &_title {}\n }\n" + "text": "Reports possible requests in injected JSON body where request separator '###' is missing. The quick fix suggests adding the separator '###' before the request.", + "markdown": "Reports possible requests in injected JSON body where request separator `###` is missing. The quick fix suggests adding the separator `###` before the request." + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "HttpRequestRequestSeparatorJsonBodyInspection", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Security" + } + }, + "relationships": [ + { + "target": { + "id": "HTTP Client", + "index": 19, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "HttpRequestContentLengthIsIgnored", + "shortDescription": { + "text": "Redundant 'Content-Length'" + }, + "fullDescription": { + "text": "Reports an explicitly set 'Content-Length' header. The header is redundant because HTTP Client uses the actual request body length.", + "markdown": "Reports an explicitly set `Content-Length` header. The header is redundant because HTTP Client uses the actual request body length." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "HttpRequestContentLengthIsIgnored", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Performance" + } + }, + "relationships": [ + { + "target": { + "id": "HTTP Client", + "index": 19, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "HttpRequestRequestSeparatorXmlBodyInspection", + "shortDescription": { + "text": "Missing request separator in HTML/XML body" + }, + "fullDescription": { + "text": "Reports possible requests in injected XML/HTML body where request separator '###' is missing. The quick fix suggests adding the separator '###' before the request.", + "markdown": "Reports possible requests in injected XML/HTML body where request separator `###` is missing. The quick fix suggests adding the separator `###` before the request." + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "HttpRequestRequestSeparatorXmlBodyInspection", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Security" + } + }, + "relationships": [ + { + "target": { + "id": "HTTP Client", + "index": 19, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "HttpRequestJsonBodyInspection", + "shortDescription": { + "text": "Variable should be double-quoted" + }, + "fullDescription": { + "text": "Reports variables which should be double-quoted in json body. The quick fix suggests wrap variable with double quotes '\"{{variable}}\"'.", + "markdown": "Reports variables which should be double-quoted in json body. The quick fix suggests wrap variable with double quotes `\"{{variable}}\"`." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "HttpRequestJsonBodyInspection", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" + } + }, + "relationships": [ + { + "target": { + "id": "HTTP Client", + "index": 19, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "HttpRequestCustomHttpMethodInspection", + "shortDescription": { + "text": "Unknown HTTP method" + }, + "fullDescription": { + "text": "Reports possible custom HTTP methods. The quick fix suggests adding the custom HTTP method to project settings.", + "markdown": "Reports possible custom HTTP methods. The quick fix suggests adding the custom HTTP method to project settings." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "HttpRequestCustomHttpMethodInspection", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Sanity" + } + }, + "relationships": [ + { + "target": { + "id": "HTTP Client", + "index": 19, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "HttpClientUnresolvedVariable", + "shortDescription": { + "text": "Unresolved environment variable" + }, + "fullDescription": { + "text": "Reports variables undeclared in the current environment HTTP Client. Executing requests with undeclared variables probably fail. Consider adding a variable to the environment or selecting an environment with this variable. Inspection doesn't report variables in request bodies, because it can be a valid syntax of the body. Some variables may be not reported as unresolved, because they are declared in response or pre-request handler scripts via 'client.global.set' or 'request.variables.set' functions call.", + "markdown": "Reports variables undeclared in the current environment HTTP Client.\n\n\nExecuting requests with undeclared variables probably fail.\nConsider adding a variable to the environment or selecting an environment with this variable.\n\nInspection doesn't report variables in request bodies, because it can be a valid syntax of the body.\n\n\nSome variables may be not reported as unresolved, because they are declared in response or pre-request handler scripts via\n`client.global.set` or `request.variables.set` functions call." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "HttpClientUnresolvedVariable", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Sanity" + } + }, + "relationships": [ + { + "target": { + "id": "HTTP Client", + "index": 19, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "IncorrectHttpHeaderInspection", + "shortDescription": { + "text": "Incorrect HTTP header" + }, + "fullDescription": { + "text": "Reports unknown HTTP headers that do not match any publicly known headers. The quick fix suggests adding the header to the list of custom headers when the Use custom HTTP headers option is enabled. HTTP headers from the list of custom headers will not trigger the inspection.", + "markdown": "Reports unknown HTTP headers that do not match any [publicly\nknown headers](https://www.iana.org/assignments/message-headers/message-headers.xml). The quick fix suggests adding the header to the list of custom headers when the **Use custom HTTP headers** option\nis enabled. HTTP headers from the list of custom headers will not trigger the inspection." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "IncorrectHttpHeaderInspection", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Security" + } + }, + "relationships": [ + { + "target": { + "id": "HTTP Client", + "index": 19, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "HttpRequestEnvironmentAuthConfigurationValidationInspection", + "shortDescription": { + "text": "Auth configuration validation" + }, + "fullDescription": { + "text": "Reports Auth configuration the following problems in HTTP Client environment files: Missing properties in Auth configuration Auth/Security configuration placed in private environment file", + "markdown": "Reports Auth configuration the following problems in HTTP Client environment files:\n\n* Missing properties in Auth configuration\n* Auth/Security configuration placed in private environment file" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "HttpRequestEnvironmentAuthConfigurationValidationInspection", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Security" + } + }, + "relationships": [ + { + "target": { + "id": "HTTP Client", + "index": 19, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "HttpUrlsUsage", + "shortDescription": { + "text": "Link with unencrypted protocol" + }, + "fullDescription": { + "text": "Reports the links that use unencrypted protocols (such as HTTP), which can expose your data to man-in-the-middle attacks. These attacks are dangerous in general and may be especially harmful for artifact repositories. Use protocols with encryption, such as HTTPS, instead. See HTTPS: Difference from HTTP (wikipedia.org).", + "markdown": "Reports the links that use unencrypted protocols (such as HTTP), which can expose your data to man-in-the-middle attacks. These attacks\nare dangerous in general and may be especially harmful for artifact repositories. Use protocols with encryption, such as HTTPS,\ninstead.\n\nSee [HTTPS: Difference from HTTP (wikipedia.org)](https://en.wikipedia.org/wiki/HTTPS#Difference_from_HTTP)." }, "defaultConfiguration": { "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "HttpUrlsUsage", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Security" + } + }, + "relationships": [ + { + "target": { + "id": "Security", + "index": 131, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "HttpRequestPlaceholder", + "shortDescription": { + "text": "'$placeholder' in HTTP Request" + }, + "fullDescription": { + "text": "Reports a '$placeholder' inside a request. A '$placeholder' to be replaced by the user is created automatically when a tool cannot recognize a part of a request. For example, a request mapping '/aaaa/*/bbb' will be generated as 'GET localhost/aaaa/{{$placeholder}}/bbb'.", + "markdown": "Reports a `$placeholder` inside a request.\n\nA `$placeholder` to be replaced by the user is created automatically when a tool cannot recognize a part of a request. For example, a request mapping `/aaaa/*/bbb` will be generated as `GET localhost/aaaa/{{$placeholder}}/bbb`." + }, + "defaultConfiguration": { + "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "PostCssNesting", + "suppressToolId": "HttpRequestPlaceholder", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { - "id": "PostCSS", - "index": 15, + "id": "HTTP Client", + "index": 19, "toolComponent": { "name": "QDNET" } @@ -121551,28 +128300,29 @@ ] }, { - "id": "PostCssCustomMedia", + "id": "HttpRequestWhitespaceInsideRequestTargetPath", "shortDescription": { - "text": "Invalid custom media" + "text": "Whitespace in URL in request" }, "fullDescription": { - "text": "Reports a syntax error in a PostCSS Custom Media query. Example: '@custom-media --small-viewport (max-width: 30em);'", - "markdown": "Reports a syntax error in a [PostCSS Custom Media](https://github.com/postcss/postcss-custom-media) query.\n\nExample:\n\n\n @custom-media --small-viewport (max-width: 30em);\n" + "text": "Highlights spaces inside URL path segments. HTTP Client will ignore them. For better composing use Split Lines action.", + "markdown": "Highlights spaces inside URL path segments. HTTP Client will ignore them. For better composing use Split Lines action." }, "defaultConfiguration": { "enabled": true, - "level": "error", + "level": "note", "parameters": { - "suppressToolId": "PostCssCustomMedia", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "suppressToolId": "HttpRequestWhitespaceInsideRequestTargetPath", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { - "id": "PostCSS", - "index": 15, + "id": "HTTP Client", + "index": 19, "toolComponent": { "name": "QDNET" } @@ -121584,28 +128334,29 @@ ] }, { - "id": "PostCssCustomSelector", + "id": "HttpClientInappropriateProtocolUsageInspection", "shortDescription": { - "text": "Invalid custom selector" + "text": "Inappropriate HTTP Protocol usage" }, "fullDescription": { - "text": "Reports a syntax error in PostCSS Custom Selector. Example: '@custom-selector :--heading h1, h2, h3;'", - "markdown": "Reports a syntax error in [PostCSS Custom Selector](https://github.com/postcss/postcss-custom-selectors).\n\nExample:\n\n\n @custom-selector :--heading h1, h2, h3;\n" + "text": "Reports inappropriate usage of HTTP protocol keyword, e.g. 'HTTP/2', with non-HTTP method requests. Such a usage will be ignored.", + "markdown": "Reports inappropriate usage of HTTP protocol keyword, e.g. `HTTP/2`, with non-HTTP method requests. Such a usage will be ignored." }, "defaultConfiguration": { "enabled": true, - "level": "error", + "level": "note", "parameters": { - "suppressToolId": "PostCssCustomSelector", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "suppressToolId": "HttpClientInappropriateProtocolUsageInspection", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Security" } }, "relationships": [ { "target": { - "id": "PostCSS", - "index": 15, + "id": "HTTP Client", + "index": 19, "toolComponent": { "name": "QDNET" } @@ -121617,28 +128368,29 @@ ] }, { - "id": "PostCssMediaRange", + "id": "HttpRequestRequestSeparatorYamlBodyInspection", "shortDescription": { - "text": "Invalid media query range" + "text": "Missing request separator in YAML body" }, "fullDescription": { - "text": "Checks range context syntax, which may alternatively be used for media features with a 'range' type. Example: '@media screen and (500px <= width <= 1200px) {}'", - "markdown": "Checks [range context](https://github.com/postcss/postcss-media-minmax) syntax, which may alternatively be used for media features with a 'range' type.\n\nExample:\n\n\n @media screen and (500px <= width <= 1200px) {}\n" + "text": "Reports possible requests in injected YAML body where request separator '###' is missing. The quick fix suggests adding the separator '###' before the request.", + "markdown": "Reports possible requests in injected YAML body where request separator `###` is missing. The quick fix suggests adding the separator `###` before the request." }, "defaultConfiguration": { "enabled": true, - "level": "error", + "level": "note", "parameters": { - "suppressToolId": "PostCssMediaRange", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "suppressToolId": "HttpRequestRequestSeparatorYamlBodyInspection", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { - "id": "PostCSS", - "index": 15, + "id": "HTTP Client", + "index": 19, "toolComponent": { "name": "QDNET" } @@ -121659,7 +128411,7 @@ }, { "name": "org.editorconfig.editorconfigjetbrains", - "version": "241.16914", + "version": "243.24609", "rules": [ { "id": "EditorConfigNumerousWildcards", @@ -121676,7 +128428,8 @@ "parameters": { "suppressToolId": "EditorConfigNumerousWildcards", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Performance" } }, "relationships": [ @@ -121709,7 +128462,8 @@ "parameters": { "suppressToolId": "EditorConfigKeyCorrectness", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Sanity" } }, "relationships": [ @@ -121742,7 +128496,8 @@ "parameters": { "suppressToolId": "EditorConfigEncoding", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Sanity" } }, "relationships": [ @@ -121775,7 +128530,8 @@ "parameters": { "suppressToolId": "EditorConfigEmptyHeader", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Sanity" } }, "relationships": [ @@ -121808,7 +128564,8 @@ "parameters": { "suppressToolId": "EditorConfigSpaceInHeader", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -121841,7 +128598,8 @@ "parameters": { "suppressToolId": "EditorConfigOptionRedundancy", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -121874,7 +128632,8 @@ "parameters": { "suppressToolId": "EditorConfigWildcardRedundancy", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -121907,7 +128666,8 @@ "parameters": { "suppressToolId": "EditorConfigUnusedDeclaration", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -121940,7 +128700,8 @@ "parameters": { "suppressToolId": "EditorConfigRootDeclarationUniqueness", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Sanity" } }, "relationships": [ @@ -121973,7 +128734,8 @@ "parameters": { "suppressToolId": "EditorConfigShadowedOption", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Sanity" } }, "relationships": [ @@ -122006,7 +128768,8 @@ "parameters": { "suppressToolId": "EditorConfigValueUniqueness", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Reliability" } }, "relationships": [ @@ -122039,7 +128802,8 @@ "parameters": { "suppressToolId": "EditorConfigUnexpectedComma", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Reliability" } }, "relationships": [ @@ -122072,7 +128836,8 @@ "parameters": { "suppressToolId": "EditorConfigShadowingOption", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ @@ -122105,7 +128870,8 @@ "parameters": { "suppressToolId": "EditorConfigReferenceCorrectness", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Reliability" } }, "relationships": [ @@ -122138,7 +128904,8 @@ "parameters": { "suppressToolId": "EditorConfigCharClassLetterRedundancy", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -122171,7 +128938,8 @@ "parameters": { "suppressToolId": "EditorConfigMissingRequiredDeclaration", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Reliability" } }, "relationships": [ @@ -122204,7 +128972,8 @@ "parameters": { "suppressToolId": "EditorConfigPartialOverride", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Sanity" } }, "relationships": [ @@ -122237,7 +129006,8 @@ "parameters": { "suppressToolId": "EditorConfigListAcceptability", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Sanity" } }, "relationships": [ @@ -122270,7 +129040,8 @@ "parameters": { "suppressToolId": "EditorConfigPatternEnumerationRedundancy", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Reliability" } }, "relationships": [ @@ -122303,7 +129074,8 @@ "parameters": { "suppressToolId": "EditorConfigPairAcceptability", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Sanity" } }, "relationships": [ @@ -122336,7 +129108,8 @@ "parameters": { "suppressToolId": "EditorConfigNoMatchingFiles", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Sanity" } }, "relationships": [ @@ -122369,7 +129142,8 @@ "parameters": { "suppressToolId": "EditorConfigHeaderUniqueness", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Sanity" } }, "relationships": [ @@ -122402,7 +129176,8 @@ "parameters": { "suppressToolId": "EditorConfigValueCorrectness", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Reliability" } }, "relationships": [ @@ -122435,7 +129210,8 @@ "parameters": { "suppressToolId": "EditorConfigRootDeclarationCorrectness", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Sanity" } }, "relationships": [ @@ -122468,7 +129244,8 @@ "parameters": { "suppressToolId": "EditorConfigPatternRedundancy", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Sanity" } }, "relationships": [ @@ -122501,7 +129278,8 @@ "parameters": { "suppressToolId": "EditorConfigDeprecatedDescriptor", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Sanity" } }, "relationships": [ @@ -122534,7 +129312,8 @@ "parameters": { "suppressToolId": "EditorConfigCharClassRedundancy", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -122567,7 +129346,8 @@ "parameters": { "suppressToolId": "EditorConfigEmptySection", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -122600,7 +129380,8 @@ "parameters": { "suppressToolId": "EditorConfigVerifyByCore", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Sanity" } }, "relationships": [ @@ -122628,7 +129409,7 @@ }, { "name": "com.intellij.database", - "version": "241.16914", + "version": "243.24609", "rules": [ { "id": "SqlMissingReturnInspection", @@ -122645,7 +129426,8 @@ "parameters": { "suppressToolId": "SqlMissingReturn", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Reliability" } }, "relationships": [ @@ -122678,7 +129460,8 @@ "parameters": { "suppressToolId": "SqlCaseVsIf", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -122711,7 +129494,8 @@ "parameters": { "suppressToolId": "SqlShouldBeInGroupBy", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ @@ -122744,7 +129528,8 @@ "parameters": { "suppressToolId": "SqlMisleadingReference", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ @@ -122777,7 +129562,8 @@ "parameters": { "suppressToolId": "SqlRedundantAlias", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -122810,7 +129596,8 @@ "parameters": { "suppressToolId": "SqlUnusedCte", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Performance" } }, "relationships": [ @@ -122838,19 +129625,20 @@ "markdown": "Reports unresolved references in MongoDB and JavaScript code.\n\nExample:\n\n db\n use foo\n -- a reference to a non-existing collection\n db.non_existing_collection\n db['non_existing_collection']\n db['non_existing_collection'].find().hasNext()\n\nThe `non_existing_collection` collection does not exist in the database and will be reported." }, "defaultConfiguration": { - "enabled": true, + "enabled": false, "level": "warning", "parameters": { "suppressToolId": "MongoJSResolve", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Sanity" } }, "relationships": [ { "target": { "id": "MongoJS", - "index": 82, + "index": 89, "toolComponent": { "name": "QDNET" } @@ -122876,7 +129664,8 @@ "parameters": { "suppressToolId": "SqlDialectInspection", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Sanity" } }, "relationships": [ @@ -122904,19 +129693,20 @@ "markdown": "Reports usages of deprecated methods in MongoDB and JavaScript code.\n\nThe quick-fix replaces deprecated methods with recommended alternatives.\n\nExample:\n\n\n db.my_collection.insert()\n\nAfter the quick-fix is applied:\n\n\n db.my_collection.insertOne()\n" }, "defaultConfiguration": { - "enabled": true, + "enabled": false, "level": "warning", "parameters": { "suppressToolId": "MongoJSDeprecation", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "MongoJS", - "index": 82, + "index": 89, "toolComponent": { "name": "QDNET" } @@ -122937,19 +129727,20 @@ "markdown": "Reports usages of deprecated methods in MongoDB and JavaScript code.\n\nThe quick-fix replaces deprecated methods with recommended alternatives.\n\nExample:\n\n db.my_collection.insert()\n\nAfter the quick-fix is applied:\n\n db.my_collection.insertOne()\n" }, "defaultConfiguration": { - "enabled": true, + "enabled": false, "level": "warning", "parameters": { "suppressToolId": "MongoJSDeprecation", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "MongoJS", - "index": 82, + "index": 89, "toolComponent": { "name": "QDNET" } @@ -122975,14 +129766,15 @@ "parameters": { "suppressToolId": "MssqlBuiltin", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "SQL server", - "index": 94, + "index": 102, "toolComponent": { "name": "QDNET" } @@ -123008,7 +129800,8 @@ "parameters": { "suppressToolId": "SqlMultipleLimitClauses", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Performance" } }, "relationships": [ @@ -123041,40 +129834,8 @@ "parameters": { "suppressToolId": "SqlAmbiguousColumn", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlNullComparisonInspection", - "shortDescription": { - "text": "Null comparison" - }, - "fullDescription": { - "text": "Reports comparisons with NULL that can be replaced with IS NULL or IS NOT NULL operators. Example (Microsoft SQL Server): 'CREATE TABLE foo ( id int );\n\nSELECT * FROM foo WHERE NULL = NULL;\nSELECT * FROM foo WHERE NULL != NULL;' The 'NULL = NULL' can be replaced with 'IS NULL', the 'NULL != NULL' comparison with 'IS NOT NULL'. To do this replacement, you can use Use IS NULL operator or Use IS NOT NULL operator quick-fixes. 'SELECT * FROM foo WHERE NULL IS NULL;\nSELECT * FROM foo WHERE NULL IS NOT NULL;'", - "markdown": "Reports comparisons with NULL that can be replaced with IS NULL or IS NOT NULL operators.\n\nExample (Microsoft SQL Server):\n\n CREATE TABLE foo ( id int );\n\n SELECT * FROM foo WHERE NULL = NULL;\n SELECT * FROM foo WHERE NULL != NULL;\n\nThe `NULL = NULL` can be replaced with `IS NULL`, the `NULL != NULL` comparison\nwith `IS NOT NULL`. To do this replacement, you can use **Use IS NULL operator** or **Use IS NOT NULL operator**\nquick-fixes.\n\n SELECT * FROM foo WHERE NULL IS NULL;\n SELECT * FROM foo WHERE NULL IS NOT NULL;\n" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "SqlNullComparison", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -123107,7 +129868,8 @@ "parameters": { "suppressToolId": "SqlInsertValues", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ @@ -123140,7 +129902,8 @@ "parameters": { "suppressToolId": "SqlRedundantElseNull", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -123173,7 +129936,8 @@ "parameters": { "suppressToolId": "SqlCurrentSchemaInspection", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ @@ -123206,7 +129970,8 @@ "parameters": { "suppressToolId": "SqlInsertNullIntoNotNull", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ @@ -123239,7 +130004,8 @@ "parameters": { "suppressToolId": "SqlTriggerTransition", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ @@ -123272,7 +130038,8 @@ "parameters": { "suppressToolId": "SqlNamedArguments", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -123305,7 +130072,8 @@ "parameters": { "suppressToolId": "SqlTransactionStatementInTrigger", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ @@ -123338,14 +130106,15 @@ "parameters": { "suppressToolId": "SqlMissingBody", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "Oracle", - "index": 112, + "index": 123, "toolComponent": { "name": "QDNET" } @@ -123371,40 +130140,8 @@ "parameters": { "suppressToolId": "SqlCheckUsingColumns", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlConstantConditionInspection", - "shortDescription": { - "text": "Constant condition" - }, - "fullDescription": { - "text": "Reports conditions in WHERE or JOIN clauses that are always TRUE or always FALSE. Example (MySQL): 'CREATE TABLE t1 (a TEXT, b INT, c BOOLEAN);\nSELECT a FROM t1 WHERE 'Cat' = 'Cat';' The ''Cat' = 'Cat'' is always true and will be reported.", - "markdown": "Reports conditions in WHERE or JOIN clauses that are always TRUE or always FALSE.\n\nExample (MySQL):\n\n CREATE TABLE t1 (a TEXT, b INT, c BOOLEAN);\n SELECT a FROM t1 WHERE 'Cat' = 'Cat';\n\nThe `'Cat' = 'Cat'` is always true and will be reported." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "SqlConstantCondition", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ @@ -123437,7 +130174,8 @@ "parameters": { "suppressToolId": "SqlInsertIntoGeneratedColumn", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ @@ -123470,14 +130208,15 @@ "parameters": { "suppressToolId": "MsOrderBy", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Performance" } }, "relationships": [ { "target": { "id": "SQL server", - "index": 94, + "index": 102, "toolComponent": { "name": "QDNET" } @@ -123503,7 +130242,8 @@ "parameters": { "suppressToolId": "SqlDeprecateType", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ @@ -123536,7 +130276,8 @@ "parameters": { "suppressToolId": "SqlGoto", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -123569,14 +130310,15 @@ "parameters": { "suppressToolId": "MysqlLoadDataPath", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "MySQL", - "index": 120, + "index": 142, "toolComponent": { "name": "QDNET" } @@ -123602,7 +130344,8 @@ "parameters": { "suppressToolId": "SqlDateTime", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -123635,7 +130378,8 @@ "parameters": { "suppressToolId": "SqlNoDataSourceInspection", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Sanity" } }, "relationships": [ @@ -123668,7 +130412,8 @@ "parameters": { "suppressToolId": "SqlConstantExpression", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ @@ -123701,14 +130446,15 @@ "parameters": { "suppressToolId": "SqlUnmatchedForwardDeclaration", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "Oracle", - "index": 112, + "index": 123, "toolComponent": { "name": "QDNET" } @@ -123734,7 +130480,8 @@ "parameters": { "suppressToolId": "SqlWithoutWhere", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Security" } }, "relationships": [ @@ -123762,19 +130509,20 @@ "markdown": "Reports statements that can cause side effects while the data source is in read-only mode.\n\nFor more information about enabling read-only mode, see\n[Enable\nread-only mode for a connection in the IDE documentation](https://www.jetbrains.com/help/datagrip/configuring-database-connections.html#enable-read-only-mode-for-a-connection).\n\nThe **Disable read-only mode** quick-fix turns off the read-only mode for the respective data source.\n\nExample:\n\n\n db.my_collection.insertOne()\n" }, "defaultConfiguration": { - "enabled": true, + "enabled": false, "level": "warning", "parameters": { "suppressToolId": "MongoJSSideEffects", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Security" } }, "relationships": [ { "target": { "id": "MongoJS", - "index": 82, + "index": 89, "toolComponent": { "name": "QDNET" } @@ -123795,19 +130543,20 @@ "markdown": "Reports statements that may cause side effects while the data source is in read-only mode.\n\nThe quick-fix turns off the read-only mode for the respective data source.\n\nExample:\n\n\n db.my_collection.insertOne()\n" }, "defaultConfiguration": { - "enabled": true, + "enabled": false, "level": "warning", "parameters": { "suppressToolId": "MongoJSSideEffects", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Security" } }, "relationships": [ { "target": { "id": "MongoJS", - "index": 82, + "index": 89, "toolComponent": { "name": "QDNET" } @@ -123833,7 +130582,8 @@ "parameters": { "suppressToolId": "SqlUnused", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Performance" } }, "relationships": [ @@ -123866,7 +130616,8 @@ "parameters": { "suppressToolId": "SqlSideEffects", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Security" } }, "relationships": [ @@ -123899,7 +130650,8 @@ "parameters": { "suppressToolId": "SqlJoinWithoutOn", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Security" } }, "relationships": [ @@ -123932,7 +130684,8 @@ "parameters": { "suppressToolId": "SqlDropIndexedColumn", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ @@ -123965,7 +130718,8 @@ "parameters": { "suppressToolId": "SqlType", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ @@ -123998,7 +130752,8 @@ "parameters": { "suppressToolId": "SqlUnicodeStringLiteral", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ @@ -124031,7 +130786,8 @@ "parameters": { "suppressToolId": "SqlUnused", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ @@ -124064,14 +130820,15 @@ "parameters": { "suppressToolId": "PgSelectFromProcedure", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "PostgreSQL", - "index": 130, + "index": 152, "toolComponent": { "name": "QDNET" } @@ -124097,7 +130854,8 @@ "parameters": { "suppressToolId": "SqlStorageInspection", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Sanity" } }, "relationships": [ @@ -124130,7 +130888,8 @@ "parameters": { "suppressToolId": "SqlSignature", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ @@ -124163,7 +130922,8 @@ "parameters": { "suppressToolId": "SqlRedundantOrderingDirection", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -124196,14 +130956,15 @@ "parameters": { "suppressToolId": "SqlOverload", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "Oracle", - "index": 112, + "index": 123, "toolComponent": { "name": "QDNET" } @@ -124229,14 +130990,15 @@ "parameters": { "suppressToolId": "MysqlSpaceAfterFunctionName", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "MySQL", - "index": 120, + "index": 142, "toolComponent": { "name": "QDNET" } @@ -124262,7 +131024,8 @@ "parameters": { "suppressToolId": "SqlAutoIncrementDuplicate", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ @@ -124295,7 +131058,8 @@ "parameters": { "suppressToolId": "SqlStringLengthExceeded", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ @@ -124314,28 +131078,29 @@ ] }, { - "id": "SqlCallNotationInspection", + "id": "MysqlParsingInspection", "shortDescription": { - "text": "Using of named and positional arguments" + "text": "Unsupported syntax in pre-8.0 versions" }, "fullDescription": { - "text": "Reports calls in which positional arguments go after the named ones. Works in PostgreSQL, Oracle, and Db2. Example (In PostgreSQL): 'CREATE FUNCTION foo(a int, b int, c int) RETURNS int\n LANGUAGE plpgsql AS\n$$\nBEGIN\n RETURN a + b + c;\nEND\n$$;\nSELECT foo(a => 1, b => 2, c => 3);\n -- `3` goes after the named argument\nSELECT foo(1, b => 2, 3);\n -- `1` and `3` go after the named argument\nSELECT foo(b => 2, 1, 3);'", - "markdown": "Reports calls in which positional arguments go after the named ones. Works in PostgreSQL, Oracle, and Db2.\n\nExample (In PostgreSQL):\n\n CREATE FUNCTION foo(a int, b int, c int) RETURNS int\n LANGUAGE plpgsql AS\n $$\n BEGIN\n RETURN a + b + c;\n END\n $$;\n SELECT foo(a => 1, b => 2, c => 3);\n -- `3` goes after the named argument\n SELECT foo(1, b => 2, 3);\n -- `1` and `3` go after the named argument\n SELECT foo(b => 2, 1, 3);\n" + "text": "Reports invalid usages of UNION in queries. The inspection works in MySQL versions that are earlier than 8.0. Example (MySQL): 'SELECT * FROM (SELECT 1 UNION (SELECT 1 UNION SELECT 2)) a;'", + "markdown": "Reports invalid usages of UNION in queries.\n\nThe inspection works in MySQL versions that are earlier than 8.0.\n\nExample (MySQL):\n\n\n SELECT * FROM (SELECT 1 UNION (SELECT 1 UNION SELECT 2)) a;\n" }, "defaultConfiguration": { "enabled": true, - "level": "error", + "level": "warning", "parameters": { - "suppressToolId": "SqlCallNotation", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "suppressToolId": "MysqlParsing", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { - "id": "SQL", - "index": 25, + "id": "MySQL", + "index": 142, "toolComponent": { "name": "QDNET" } @@ -124347,28 +131112,29 @@ ] }, { - "id": "MysqlParsingInspection", + "id": "SqlCallNotationInspection", "shortDescription": { - "text": "Unsupported syntax in pre-8.0 versions" + "text": "Using of named and positional arguments" }, "fullDescription": { - "text": "Reports invalid usages of UNION in queries. The inspection works in MySQL versions that are earlier than 8.0. Example (MySQL): 'SELECT * FROM (SELECT 1 UNION (SELECT 1 UNION SELECT 2)) a;'", - "markdown": "Reports invalid usages of UNION in queries.\n\nThe inspection works in MySQL versions that are earlier than 8.0.\n\nExample (MySQL):\n\n\n SELECT * FROM (SELECT 1 UNION (SELECT 1 UNION SELECT 2)) a;\n" + "text": "Reports calls in which positional arguments go after the named ones. Works in PostgreSQL, Oracle, and Db2. Example (In PostgreSQL): 'CREATE FUNCTION foo(a int, b int, c int) RETURNS int\n LANGUAGE plpgsql AS\n$$\nBEGIN\n RETURN a + b + c;\nEND\n$$;\nSELECT foo(a => 1, b => 2, c => 3);\n -- `3` goes after the named argument\nSELECT foo(1, b => 2, 3);\n -- `1` and `3` go after the named argument\nSELECT foo(b => 2, 1, 3);'", + "markdown": "Reports calls in which positional arguments go after the named ones. Works in PostgreSQL, Oracle, and Db2.\n\nExample (In PostgreSQL):\n\n CREATE FUNCTION foo(a int, b int, c int) RETURNS int\n LANGUAGE plpgsql AS\n $$\n BEGIN\n RETURN a + b + c;\n END\n $$;\n SELECT foo(a => 1, b => 2, c => 3);\n -- `3` goes after the named argument\n SELECT foo(1, b => 2, 3);\n -- `1` and `3` go after the named argument\n SELECT foo(b => 2, 1, 3);\n" }, "defaultConfiguration": { "enabled": true, - "level": "warning", + "level": "error", "parameters": { - "suppressToolId": "MysqlParsing", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "suppressToolId": "SqlCallNotation", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { - "id": "MySQL", - "index": 120, + "id": "SQL", + "index": 25, "toolComponent": { "name": "QDNET" } @@ -124394,7 +131160,8 @@ "parameters": { "suppressToolId": "SqlShadowingAlias", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -124427,7 +131194,8 @@ "parameters": { "suppressToolId": "SqlUnreachable", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ @@ -124460,7 +131228,8 @@ "parameters": { "suppressToolId": "SqlResolve", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Sanity" } }, "relationships": [ @@ -124493,7 +131262,8 @@ "parameters": { "suppressToolId": "SqlRedundantLimit", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Performance" } }, "relationships": [ @@ -124526,7 +131296,8 @@ "parameters": { "suppressToolId": "SqlDerivedTableAlias", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -124559,7 +131330,8 @@ "parameters": { "suppressToolId": "SqlCaseVsCoalesce", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -124592,7 +131364,8 @@ "parameters": { "suppressToolId": "SqlRedundantCodeInCoalesce", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -124625,7 +131398,8 @@ "parameters": { "suppressToolId": "SqlAggregates", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Security" } }, "relationships": [ @@ -124658,7 +131432,8 @@ "parameters": { "suppressToolId": "SqlMissingColumnAliases", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -124691,7 +131466,8 @@ "parameters": { "suppressToolId": "SqlAddNotNullColumn", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ @@ -124719,19 +131495,54 @@ "markdown": "Reports unresolved references in MongoDB and JavaScript code." }, "defaultConfiguration": { - "enabled": true, + "enabled": false, "level": "warning", "parameters": { "suppressToolId": "MongoJSResolve", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Sanity" } }, "relationships": [ { "target": { "id": "MongoJS", - "index": 82, + "index": 89, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "SqlJoinCountInspection", + "shortDescription": { + "text": "Excessive JOIN count" + }, + "fullDescription": { + "text": "Reports queries with excessive number of JOINS. Using too many joins is generally not recommended for performance reasons. 'SELECT * FROM a inner join b using(id) inner join c using (id) inner join d using (id) inner join e using (id)'", + "markdown": "Reports queries with excessive number of JOINS.\n\nUsing too many joins is generally\nnot recommended for performance reasons.\n\n SELECT * FROM a inner join b using(id) inner join c using (id) inner join d using (id) inner join e using (id)\n" + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "SqlJoinCount", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Performance" + } + }, + "relationships": [ + { + "target": { + "id": "SQL", + "index": 25, "toolComponent": { "name": "QDNET" } @@ -124757,7 +131568,8 @@ "parameters": { "suppressToolId": "SqlIllegalCursorState", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ @@ -124790,7 +131602,8 @@ "parameters": { "suppressToolId": "SqlDuplicateColumn", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -124823,7 +131636,8 @@ "parameters": { "suppressToolId": "SqlIdentifier", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -124851,7 +131665,7 @@ }, { "name": "com.intellij.css", - "version": "241.16914", + "version": "243.24609", "rules": [ { "id": "CssInvalidFunction", @@ -124868,7 +131682,8 @@ "parameters": { "suppressToolId": "CssInvalidFunction", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Sanity" } }, "relationships": [ @@ -124901,7 +131716,8 @@ "parameters": { "suppressToolId": "CssConvertColorToRgbInspection", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -124934,7 +131750,8 @@ "parameters": { "suppressToolId": "CssOverwrittenProperties", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -124967,7 +131784,8 @@ "parameters": { "suppressToolId": "CssInvalidNestedSelector", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -125000,7 +131818,8 @@ "parameters": { "suppressToolId": "CssInvalidHtmlTagReference", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -125033,14 +131852,15 @@ "parameters": { "suppressToolId": "CssMissingSemicolon", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "CSS/Code style issues", - "index": 104, + "index": 114, "toolComponent": { "name": "QDNET" } @@ -125066,7 +131886,8 @@ "parameters": { "suppressToolId": "CssInvalidCustomPropertyAtRuleName", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -125099,7 +131920,8 @@ "parameters": { "suppressToolId": "CssUnknownTarget", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Sanity" } }, "relationships": [ @@ -125132,7 +131954,8 @@ "parameters": { "suppressToolId": "CssInvalidCharsetRule", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Sanity" } }, "relationships": [ @@ -125165,7 +131988,8 @@ "parameters": { "suppressToolId": "CssInvalidPseudoSelector", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -125198,7 +132022,8 @@ "parameters": { "suppressToolId": "CssInvalidCustomPropertyAtRuleDeclaration", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Sanity" } }, "relationships": [ @@ -125231,7 +132056,8 @@ "parameters": { "suppressToolId": "CssBrowserCompatibilityForProperties", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ @@ -125264,7 +132090,8 @@ "parameters": { "suppressToolId": "CssInvalidMediaFeature", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Sanity" } }, "relationships": [ @@ -125297,7 +132124,8 @@ "parameters": { "suppressToolId": "CssUnresolvedCustomProperty", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Sanity" } }, "relationships": [ @@ -125330,7 +132158,8 @@ "parameters": { "suppressToolId": "CssUnknownProperty", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -125363,14 +132192,15 @@ "parameters": { "suppressToolId": "CssMissingComma", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "CSS/Probable bugs", - "index": 124, + "index": 146, "toolComponent": { "name": "QDNET" } @@ -125396,7 +132226,8 @@ "parameters": { "suppressToolId": "CssUnusedSymbol", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -125429,7 +132260,8 @@ "parameters": { "suppressToolId": "CssDeprecatedValue", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Reliability" } }, "relationships": [ @@ -125462,14 +132294,15 @@ "parameters": { "suppressToolId": "CssNonIntegerLengthInPixels", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "CSS/Probable bugs", - "index": 124, + "index": 146, "toolComponent": { "name": "QDNET" } @@ -125495,7 +132328,8 @@ "parameters": { "suppressToolId": "CssConvertColorToHexInspection", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -125528,7 +132362,8 @@ "parameters": { "suppressToolId": "CssInvalidAtRule", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Sanity" } }, "relationships": [ @@ -125561,7 +132396,8 @@ "parameters": { "suppressToolId": "CssNegativeValue", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Reliability" } }, "relationships": [ @@ -125594,14 +132430,15 @@ "parameters": { "suppressToolId": "CssNoGenericFontName", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "CSS/Probable bugs", - "index": 124, + "index": 146, "toolComponent": { "name": "QDNET" } @@ -125627,14 +132464,15 @@ "parameters": { "suppressToolId": "CssRedundantUnit", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { "id": "CSS/Code style issues", - "index": 104, + "index": 114, "toolComponent": { "name": "QDNET" } @@ -125660,7 +132498,8 @@ "parameters": { "suppressToolId": "CssInvalidPropertyValue", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -125693,7 +132532,8 @@ "parameters": { "suppressToolId": "CssReplaceWithShorthandUnsafely", "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "qodanaSeverity": "Info", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -125726,7 +132566,8 @@ "parameters": { "suppressToolId": "CssUnknownUnit", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Sanity" } }, "relationships": [ @@ -125759,7 +132600,8 @@ "parameters": { "suppressToolId": "CssInvalidImport", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -125792,7 +132634,8 @@ "parameters": { "suppressToolId": "CssUnresolvedClassInComposesRule", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Sanity" } }, "relationships": [ @@ -125825,7 +132668,8 @@ "parameters": { "suppressToolId": "CssReplaceWithShorthandSafely", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -125852,31 +132696,32 @@ "isComprehensive": false }, { - "name": "com.jetbrains.restClient", - "version": "241.16914", + "name": "com.intellij.kubernetes", + "version": "243.24609", "rules": [ { - "id": "HttpClientUnresolvedAuthId", + "id": "KubernetesDeprecatedResources", "shortDescription": { - "text": "Unresolved Auth identifier" + "text": "Deprecated Kubernetes resources" }, "fullDescription": { - "text": "Highlights references to non-existent Auth configurations. Suggests creating a new one in the current environment.", - "markdown": "Highlights references to non-existent Auth configurations. Suggests creating a new one in the current environment." + "text": "Report deprecated Kubernetes resource types.", + "markdown": "Report deprecated Kubernetes resource types. " }, "defaultConfiguration": { "enabled": true, - "level": "error", + "level": "warning", "parameters": { - "suppressToolId": "HttpClientUnresolvedAuthId", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "suppressToolId": "KubernetesDeprecatedResources", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "HTTP Client", + "id": "Kubernetes", "index": 33, "toolComponent": { "name": "QDNET" @@ -125889,27 +132734,28 @@ ] }, { - "id": "HttpRequestRequestSeparatorJsonBodyInspection", + "id": "KubernetesNonEditableResources", "shortDescription": { - "text": "Missing request separator in JSON body" + "text": "Non-editable Kubernetes resources" }, "fullDescription": { - "text": "Reports possible requests in injected JSON body where request separator '###' is missing. The quick fix suggests adding the separator '###' before the request.", - "markdown": "Reports possible requests in injected JSON body where request separator `###` is missing. The quick fix suggests adding the separator `###` before the request." + "text": "Reports non-editable (read-only) Kubernetes resource types.", + "markdown": "Reports non-editable (read-only) Kubernetes resource types. " }, "defaultConfiguration": { "enabled": true, - "level": "note", + "level": "warning", "parameters": { - "suppressToolId": "HttpRequestRequestSeparatorJsonBodyInspection", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "suppressToolId": "KubernetesNonEditableResources", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "HTTP Client", + "id": "Kubernetes", "index": 33, "toolComponent": { "name": "QDNET" @@ -125922,27 +132768,28 @@ ] }, { - "id": "HttpRequestContentLengthIsIgnored", + "id": "KubernetesDeprecatedKeys", "shortDescription": { - "text": "Redundant 'Content-Length'" + "text": "Deprecated Kubernetes resource properties" }, "fullDescription": { - "text": "Reports an explicitly set 'Content-Length' header. The header is redundant because HTTP Client uses the actual request body length.", - "markdown": "Reports an explicitly set `Content-Length` header. The header is redundant because HTTP Client uses the actual request body length." + "text": "Reports deprecated keys in Kubernetes resource files.", + "markdown": "Reports deprecated keys in Kubernetes resource files. " }, "defaultConfiguration": { "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "HttpRequestContentLengthIsIgnored", + "suppressToolId": "KubernetesDeprecatedKeys", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "HTTP Client", + "id": "Kubernetes", "index": 33, "toolComponent": { "name": "QDNET" @@ -125955,27 +132802,28 @@ ] }, { - "id": "HttpRequestRequestSeparatorXmlBodyInspection", + "id": "KubernetesNonEditableKeys", "shortDescription": { - "text": "Missing request separator in HTML/XML body" + "text": "Non-editable Kubernetes resource properties" }, "fullDescription": { - "text": "Reports possible requests in injected XML/HTML body where request separator '###' is missing. The quick fix suggests adding the separator '###' before the request.", - "markdown": "Reports possible requests in injected XML/HTML body where request separator `###` is missing. The quick fix suggests adding the separator `###` before the request." + "text": "Reports non-editable (read-only) keys in Kubernetes resource files.", + "markdown": "Reports non-editable (read-only) keys in Kubernetes resource files. " }, "defaultConfiguration": { "enabled": true, - "level": "note", + "level": "warning", "parameters": { - "suppressToolId": "HttpRequestRequestSeparatorXmlBodyInspection", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "suppressToolId": "KubernetesNonEditableKeys", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "HTTP Client", + "id": "Kubernetes", "index": 33, "toolComponent": { "name": "QDNET" @@ -125988,27 +132836,28 @@ ] }, { - "id": "HttpClientUnresolvedVariable", + "id": "HelmChartMissingKeys", "shortDescription": { - "text": "Unresolved environment variable" + "text": "Missing Chart.yaml keys" }, "fullDescription": { - "text": "Reports variables undeclared in the current environment HTTP Client. Executing requests with undeclared variables probably fail. Consider adding a variable to the environment or selecting an environment with this variable. Inspection doesn't report variables in request bodies, because it can be a valid syntax of the body. Some variables may be not reported as unresolved, because they are declared in response or pre-request handler scripts via 'client.global.set' or 'request.variables.set' functions call.", - "markdown": "Reports variables undeclared in the current environment HTTP Client.\n\n\nExecuting requests with undeclared variables probably fail.\nConsider adding a variable to the environment or selecting an environment with this variable.\n\nInspection doesn't report variables in request bodies, because it can be a valid syntax of the body.\n\n\nSome variables may be not reported as unresolved, because they are declared in response or pre-request handler scripts via\n`client.global.set` or `request.variables.set` functions call." + "text": "Reports missing required keys in Chart.yaml.", + "markdown": "Reports missing required keys in Chart.yaml. " }, "defaultConfiguration": { "enabled": true, - "level": "warning", + "level": "error", "parameters": { - "suppressToolId": "HttpClientUnresolvedVariable", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "suppressToolId": "HelmChartMissingKeys", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "HTTP Client", + "id": "Kubernetes", "index": 33, "toolComponent": { "name": "QDNET" @@ -126021,27 +132870,28 @@ ] }, { - "id": "IncorrectHttpHeaderInspection", + "id": "KubernetesUnknownValues", "shortDescription": { - "text": "Incorrect HTTP header" + "text": "Unknown Kubernetes YAML values" }, "fullDescription": { - "text": "Reports unknown HTTP headers that do not match any publicly known headers. The quick fix suggests adding the header to the list of custom headers when the Use custom HTTP headers option is enabled. HTTP headers from the list of custom headers will not trigger the inspection.", - "markdown": "Reports unknown HTTP headers that do not match any [publicly\nknown headers](https://www.iana.org/assignments/message-headers/message-headers.xml). The quick fix suggests adding the header to the list of custom headers when the **Use custom HTTP headers** option\nis enabled. HTTP headers from the list of custom headers will not trigger the inspection." + "text": "Reports invalid values in Kubernetes resource files.", + "markdown": "Reports invalid values in Kubernetes resource files. " }, "defaultConfiguration": { "enabled": true, - "level": "warning", + "level": "error", "parameters": { - "suppressToolId": "IncorrectHttpHeaderInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "suppressToolId": "KubernetesUnknownValues", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "HTTP Client", + "id": "Kubernetes", "index": 33, "toolComponent": { "name": "QDNET" @@ -126054,27 +132904,28 @@ ] }, { - "id": "HttpRequestEnvironmentAuthConfigurationValidationInspection", + "id": "KubernetesUnknownKeys", "shortDescription": { - "text": "Auth configuration validation" + "text": "Unknown Kubernetes YAML keys" }, "fullDescription": { - "text": "Reports Auth configuration the following problems in HTTP Client environment files: Missing properties in Auth configuration Auth/Security configuration placed in private environment file", - "markdown": "Reports Auth configuration the following problems in HTTP Client environment files:\n\n* Missing properties in Auth configuration\n* Auth/Security configuration placed in private environment file" + "text": "Reports unrecognized keys in Kubernetes resource files.", + "markdown": "Reports unrecognized keys in Kubernetes resource files. " }, "defaultConfiguration": { "enabled": true, - "level": "warning", + "level": "error", "parameters": { - "suppressToolId": "HttpRequestEnvironmentAuthConfigurationValidationInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "suppressToolId": "KubernetesUnknownKeys", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "HTTP Client", + "id": "Kubernetes", "index": 33, "toolComponent": { "name": "QDNET" @@ -126087,28 +132938,29 @@ ] }, { - "id": "HttpUrlsUsage", + "id": "HelmChartUnknownValues", "shortDescription": { - "text": "Link with unencrypted protocol" + "text": "Invalid Chart.yaml values" }, "fullDescription": { - "text": "Reports the links that use unencrypted protocols (such as HTTP), which can expose your data to man-in-the-middle attacks. These attacks are dangerous in general and may be especially harmful for artifact repositories. Use protocols with encryption, such as HTTPS, instead. See HTTPS: Difference from HTTP (wikipedia.org).", - "markdown": "Reports the links that use unencrypted protocols (such as HTTP), which can expose your data to man-in-the-middle attacks. These attacks\nare dangerous in general and may be especially harmful for artifact repositories. Use protocols with encryption, such as HTTPS,\ninstead.\n\nSee [HTTPS: Difference from HTTP (wikipedia.org)](https://en.wikipedia.org/wiki/HTTPS#Difference_from_HTTP)." + "text": "Reports unrecognized values in Chart.yaml and requirements.yaml.", + "markdown": "Reports unrecognized values in Chart.yaml and requirements.yaml. " }, "defaultConfiguration": { - "enabled": false, - "level": "note", + "enabled": true, + "level": "error", "parameters": { - "suppressToolId": "HttpUrlsUsage", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "suppressToolId": "HelmChartUnknownValues", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "Security", - "index": 126, + "id": "Kubernetes", + "index": 33, "toolComponent": { "name": "QDNET" } @@ -126120,27 +132972,28 @@ ] }, { - "id": "HttpRequestPlaceholder", + "id": "KubernetesMissingKeys", "shortDescription": { - "text": "'$placeholder' in HTTP Request" + "text": "Missing Kubernetes YAML keys" }, "fullDescription": { - "text": "Reports a '$placeholder' inside a request. A '$placeholder' to be replaced by the user is created automatically when a tool cannot recognize a part of a request. For example, a request mapping '/aaaa/*/bbb' will be generated as 'GET localhost/aaaa/{{$placeholder}}/bbb'.", - "markdown": "Reports a `$placeholder` inside a request.\n\nA `$placeholder` to be replaced by the user is created automatically when a tool cannot recognize a part of a request. For example, a request mapping `/aaaa/*/bbb` will be generated as `GET localhost/aaaa/{{$placeholder}}/bbb`." + "text": "Reports missing required keys in Kubernetes resource files.", + "markdown": "Reports missing required keys in Kubernetes resource files. " }, "defaultConfiguration": { "enabled": true, - "level": "warning", + "level": "error", "parameters": { - "suppressToolId": "HttpRequestPlaceholder", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "suppressToolId": "KubernetesMissingKeys", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "HTTP Client", + "id": "Kubernetes", "index": 33, "toolComponent": { "name": "QDNET" @@ -126153,27 +133006,28 @@ ] }, { - "id": "HttpRequestWhitespaceInsideRequestTargetPath", + "id": "KubernetesUnknownResourcesInspection", "shortDescription": { - "text": "Whitespace in URL in request" + "text": "Unknown Kubernetes resources" }, "fullDescription": { - "text": "Highlights spaces inside URL path segments. HTTP Client will ignore them. For better composing use Split Lines action.", - "markdown": "Highlights spaces inside URL path segments. HTTP Client will ignore them. For better composing use Split Lines action." + "text": "Reports unrecognized Kubernetes resource types.", + "markdown": "Reports unrecognized Kubernetes resource types. " }, "defaultConfiguration": { "enabled": true, - "level": "note", + "level": "warning", "parameters": { - "suppressToolId": "HttpRequestWhitespaceInsideRequestTargetPath", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "suppressToolId": "KubernetesUnknownResourcesInspection", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "HTTP Client", + "id": "Kubernetes", "index": 33, "toolComponent": { "name": "QDNET" @@ -126186,27 +133040,28 @@ ] }, { - "id": "HttpClientInappropriateProtocolUsageInspection", + "id": "HelmChartUnknownKeys", "shortDescription": { - "text": "Inappropriate HTTP Protocol usage" + "text": "Unknown Chart.yaml keys" }, "fullDescription": { - "text": "Reports inappropriate usage of HTTP protocol keyword, e.g. 'HTTP/2', with non-HTTP method requests. Such a usage will be ignored.", - "markdown": "Reports inappropriate usage of HTTP protocol keyword, e.g. `HTTP/2`, with non-HTTP method requests. Such a usage will be ignored." + "text": "Reports unrecognized keys in Chart.yaml.", + "markdown": "Reports unrecognized keys in Chart.yaml. " }, "defaultConfiguration": { "enabled": true, - "level": "note", + "level": "warning", "parameters": { - "suppressToolId": "HttpClientInappropriateProtocolUsageInspection", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "suppressToolId": "HelmChartUnknownKeys", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "HTTP Client", + "id": "Kubernetes", "index": 33, "toolComponent": { "name": "QDNET" @@ -126219,27 +133074,28 @@ ] }, { - "id": "HttpRequestRequestSeparatorYamlBodyInspection", + "id": "KubernetesDuplicatedEnvVars", "shortDescription": { - "text": "Missing request separator in YAML body" + "text": "Duplicated EnvVar definitions" }, "fullDescription": { - "text": "Reports possible requests in injected YAML body where request separator '###' is missing. The quick fix suggests adding the separator '###' before the request.", - "markdown": "Reports possible requests in injected YAML body where request separator `###` is missing. The quick fix suggests adding the separator `###` before the request." + "text": "Reports duplicate EnvVars in Kubernetes container definitions.", + "markdown": "Reports duplicate EnvVars in Kubernetes container definitions. " }, "defaultConfiguration": { "enabled": true, - "level": "note", + "level": "error", "parameters": { - "suppressToolId": "HttpRequestRequestSeparatorYamlBodyInspection", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "suppressToolId": "KubernetesDuplicatedEnvVars", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "HTTP Client", + "id": "Kubernetes", "index": 33, "toolComponent": { "name": "QDNET" @@ -126261,7 +133117,7 @@ }, { "name": "com.intellij.properties", - "version": "241.16914", + "version": "243.24609", "rules": [ { "id": "UseEllipsisInPropertyInspection", @@ -126278,7 +133134,8 @@ "parameters": { "suppressToolId": "UseEllipsisInPropertyInspection", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -126311,7 +133168,8 @@ "parameters": { "suppressToolId": "AlphaUnsortedPropertiesFile", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -126344,7 +133202,8 @@ "parameters": { "suppressToolId": "UnusedProperty", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ @@ -126377,7 +133236,8 @@ "parameters": { "suppressToolId": "TrailingSpacesInProperty", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -126410,7 +133270,8 @@ "parameters": { "suppressToolId": "WrongPropertyKeyValueDelimiter", "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -126443,7 +133304,8 @@ "parameters": { "suppressToolId": "DuplicatePropertyInspection", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ @@ -126471,7 +133333,7 @@ }, { "name": "XPathView", - "version": "241.16914", + "version": "243.24609", "rules": [ { "id": "XsltUnusedDeclaration", @@ -126488,7 +133350,8 @@ "parameters": { "suppressToolId": "XsltUnusedDeclaration", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ @@ -126521,14 +133384,15 @@ "parameters": { "suppressToolId": "RedundantTypeConversion", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Performance" } }, "relationships": [ { "target": { "id": "XPath", - "index": 78, + "index": 85, "toolComponent": { "name": "QDNET" } @@ -126554,14 +133418,15 @@ "parameters": { "suppressToolId": "CheckNodeTest", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "XPath", - "index": 78, + "index": 85, "toolComponent": { "name": "QDNET" } @@ -126587,7 +133452,8 @@ "parameters": { "suppressToolId": "XsltDeclarations", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Reliability" } }, "relationships": [ @@ -126620,14 +133486,15 @@ "parameters": { "suppressToolId": "HardwiredNamespacePrefix", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "XPath", - "index": 78, + "index": 85, "toolComponent": { "name": "QDNET" } @@ -126653,14 +133520,15 @@ "parameters": { "suppressToolId": "ImplicitTypeConversion", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "XPath", - "index": 78, + "index": 85, "toolComponent": { "name": "QDNET" } @@ -126686,14 +133554,15 @@ "parameters": { "suppressToolId": "IndexZeroUsage", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { "id": "XPath", - "index": 78, + "index": 85, "toolComponent": { "name": "QDNET" } @@ -126719,7 +133588,8 @@ "parameters": { "suppressToolId": "XsltTemplateInvocation", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Reliability" } }, "relationships": [ @@ -126752,7 +133622,8 @@ "parameters": { "suppressToolId": "XsltVariableShadowing", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ @@ -126779,32 +133650,67 @@ "isComprehensive": false }, { - "name": "org.intellij.qodana", - "version": "241.16914", + "name": "Docker", + "version": "243.24609", "rules": [ { - "id": "JsCoverageInspection", + "id": "DockerFileRunCommandMissingContinuation", "shortDescription": { - "text": "Check JavaScript and TypeScript source code coverage" + "text": "Missing continuation character for ''RUN'' command" }, "fullDescription": { - "text": "Reports methods, classes and files whose coverage is below a certain threshold.", - "markdown": "Reports methods, classes and files whose coverage is below a certain threshold." + "text": "Reports missing continuation characters in 'RUN' command. In the shell form of 'RUN' command you should use a '\\' (backslash) to continue a single 'RUN' instruction onto the next line. Otherwise, Docker build will fail. Examples: '# the command below will fail\n RUN /bin/bash -c 'source $HOME/.bashrc;\n echo $HOME'' After the quick-fix is applied: 'RUN /bin/bash -c 'source $HOME/.bashrc; \\\n echo $HOME''", + "markdown": "Reports missing continuation characters in `RUN` command.\n\n\nIn the *shell* form of `RUN` command you should use a '\\\\' (backslash)\nto continue a single `RUN` instruction onto the next line.\nOtherwise, Docker build will fail.\n\n**Examples:**\n\n\n # the command below will fail\n RUN /bin/bash -c 'source $HOME/.bashrc;\n echo $HOME'\n\nAfter the quick-fix is applied:\n\n\n RUN /bin/bash -c 'source $HOME/.bashrc; \\\n echo $HOME'\n" }, "defaultConfiguration": { - "enabled": false, + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "DockerFileRunCommandMissingContinuation", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "Dockerfile", + "index": 44, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "DockerJsonFormStringLiterals", + "shortDescription": { + "text": "A single quoted string in JSON array format" + }, + "fullDescription": { + "text": "Reports a single quoted string in JSON array format. JSON array form, must use double-quotes (\") around words not single-quotes ('). Otherwise, Docker build will fail. Examples: '# all the commands below will fail\n RUN ['/bin/bash', '-c', 'echo hello']\n ADD ['binaryA.jar', 'binary2.jar', 'destination/']\n COPY ['binaryA.jar', 'binary2.jar', 'destination/']' After the quick-fix is applied: 'RUN [\"/bin/bash\", \"-c\", \"echo hello\"]\n ADD [\"binaryA.jar\", \"binary2.jar\", \"destination/\"]\n COPY [\"binaryA.jar\", \"binary2.jar\", \"destination/\"]'", + "markdown": "Reports a single quoted string in JSON array format.\n\n\nJSON array form, must use double-quotes (\") around words not single-quotes ('). Otherwise, Docker build will fail.\n\n**Examples:**\n\n\n # all the commands below will fail\n RUN ['/bin/bash', '-c', 'echo hello']\n ADD ['binaryA.jar', 'binary2.jar', 'destination/']\n COPY ['binaryA.jar', 'binary2.jar', 'destination/']\n\nAfter the quick-fix is applied:\n\n\n RUN [\"/bin/bash\", \"-c\", \"echo hello\"]\n ADD [\"binaryA.jar\", \"binary2.jar\", \"destination/\"]\n COPY [\"binaryA.jar\", \"binary2.jar\", \"destination/\"]\n" + }, + "defaultConfiguration": { + "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "JsCoverageInspection", + "suppressToolId": "DockerJsonFormStringLiterals", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "Code Coverage", - "index": 50, + "id": "Dockerfile", + "index": 44, "toolComponent": { "name": "QDNET" } @@ -126816,28 +133722,233 @@ ] }, { - "id": "QodanaSanity", + "id": "DockerFileArgumentCount", "shortDescription": { - "text": "Sanity" + "text": "Wrong number of arguments" }, "fullDescription": { - "text": "Reports issues essential to this file like syntax errors, unresolved methods and variables, etc...", - "markdown": "Reports issues essential to this file like syntax errors, unresolved methods and variables, etc..." + "text": "Reports invalid number of arguments for the Dockerfile commands. Docker build will fail after reaching the instruction with an invalid number of arguments.", + "markdown": "Reports invalid number of arguments for the Dockerfile commands.\n\n\nDocker build will fail after reaching the instruction with an invalid number of arguments." }, "defaultConfiguration": { - "enabled": false, + "enabled": true, "level": "error", "parameters": { - "suppressToolId": "QodanaSanity", + "suppressToolId": "DockerFileArgumentCount", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "Qodana", - "index": 131, + "id": "Dockerfile", + "index": 44, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ComposeUnknownValues", + "shortDescription": { + "text": "Unknown docker-compose YAML values" + }, + "fullDescription": { + "text": "Reports unrecognized values in Docker Compose files.", + "markdown": "Reports unrecognized values in Docker Compose files. " + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "ComposeUnknownValues", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Sanity" + } + }, + "relationships": [ + { + "target": { + "id": "Docker-compose", + "index": 135, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "DockerFileAddOrCopyPaths", + "shortDescription": { + "text": "Invalid destination for ''ADD''/''COPY'' commands" + }, + "fullDescription": { + "text": "Reports invalid destination directories in 'ADD' and 'COPY' commands. According to the Dockerfile specification, if multiple sources are specified, then the destination must be a directory, and it must end with a slash '/'. Otherwise, Docker build will fail. Examples: '# all the commands below will fail\n ADD textA.txt textB.txt relativeDir\n ADD [\"binaryA.jar\", \"binary2.jar\", \"destination\"]\n COPY text3.txt text4.txt /absolute/path' After the quick-fix is applied: 'ADD textA.txt textB.txt relativeDir/\n ADD [\"binaryA.jar\", \"binary2.jar\", \"destination/\"]\n COPY text3.txt text4.txt /absolute/path/'", + "markdown": "Reports invalid destination directories in `ADD` and `COPY` commands.\n\n\nAccording to the [Dockerfile specification](https://docs.docker.com/engine/reference/builder/#add),\nif multiple sources are specified, then the destination must be a directory, and it must end with a slash '/'.\nOtherwise, Docker build will fail.\n\n**Examples:**\n\n\n # all the commands below will fail\n ADD textA.txt textB.txt relativeDir\n ADD [\"binaryA.jar\", \"binary2.jar\", \"destination\"]\n COPY text3.txt text4.txt /absolute/path\n\nAfter the quick-fix is applied:\n\n\n ADD textA.txt textB.txt relativeDir/\n ADD [\"binaryA.jar\", \"binary2.jar\", \"destination/\"]\n COPY text3.txt text4.txt /absolute/path/\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "DockerFileAddOrCopyPaths", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "Dockerfile", + "index": 44, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ComposeMissingKeys", + "shortDescription": { + "text": "Missing docker-compose YAML keys" + }, + "fullDescription": { + "text": "Reports missing required keys in Docker Compose files.", + "markdown": "Reports missing required keys in Docker Compose files. " + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "ComposeMissingKeys", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Sanity" + } + }, + "relationships": [ + { + "target": { + "id": "Docker-compose", + "index": 135, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ComposeUnquotedPorts", + "shortDescription": { + "text": "Unquoted port mappings" + }, + "fullDescription": { + "text": "Reports unquoted port mappings in Docker Compose files. According to the Compose file specification, mapping ports in the 'HOST:CONTAINER' format may lead to erroneous results when using a container port lower than 60, because YAML parses numbers in the format 'xx:yy' as a base-60 value. For this reason, we recommend always explicitly specifying the port mappings as strings. Examples: 'ports:\n - 3000\n - 3000-3005\n - 22:22\n - 8080:8080' After the quick-fix is applied: 'ports:\n - \"3000\"\n - \"3000-3005\"\n - \"22:22\"\n - \"8080:8080\"'", + "markdown": "Reports unquoted port mappings in Docker Compose files.\n\n\nAccording to the [Compose file specification](https://docs.docker.com/compose/compose-file/compose-file-v3/#short-syntax-1),\nmapping ports in the `HOST:CONTAINER` format may lead to erroneous results when using a container port lower than 60,\nbecause YAML parses numbers in the format `xx:yy` as a base-60 value.\nFor this reason, we recommend always explicitly specifying the port mappings as strings.\n\n**Examples:**\n\n\n ports:\n - 3000\n - 3000-3005\n - 22:22\n - 8080:8080\n\nAfter the quick-fix is applied:\n\n\n ports:\n - \"3000\"\n - \"3000-3005\"\n - \"22:22\"\n - \"8080:8080\"\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "ComposeUnquotedPorts", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Sanity" + } + }, + "relationships": [ + { + "target": { + "id": "Docker-compose", + "index": 135, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "ComposeUnknownKeys", + "shortDescription": { + "text": "Unknown docker-compose YAML keys" + }, + "fullDescription": { + "text": "Reports unrecognized keys in Docker Compose files.", + "markdown": "Reports unrecognized keys in Docker Compose files. " + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "ComposeUnknownKeys", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Sanity" + } + }, + "relationships": [ + { + "target": { + "id": "Docker-compose", + "index": 135, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "DockerFileAssignments", + "shortDescription": { + "text": "Invalid spaces in ''key=value'' pair" + }, + "fullDescription": { + "text": "Reports incorrect spacing for key-value pairs in 'ARG', 'ENV', and 'LABEL' commands. While it is not explicitly specified in the Dockerfile specification, some combinations of spacing for key-value pairs are not allowed. Docker build will fail after reaching the problem instruction. Examples: The 'ARG' command does not allow any spaces around '=' 'ENV' and 'LABEL' do not allow spaces after '=' '# all the commands below will fail\n ARG answer = 42\n ARG version= \"1.0.0\"\n LABEL \"maintained.by\"= someone@gmail.com\n ENV JAVA_HOME= \"/docker-java-home\"' After the quick-fix is applied: 'ARG answer=2\n ARG version=\"1.0.0\"\n LABEL \"maintained.by\"=someone@gmail.com\n ENV JAVA_HOME=\"/docker-java-home\"'", + "markdown": "Reports incorrect spacing for key-value pairs in `ARG`, `ENV`, and `LABEL` commands.\n\n\nWhile it is not explicitly specified in the [Dockerfile specification](https://docs.docker.com/engine/reference/builder/#arg),\nsome combinations of spacing for key-value pairs are not allowed.\nDocker build will fail after reaching the problem instruction.\n\n**Examples:**\n\n* The `ARG` command does not allow any spaces around '='\n* `ENV` and `LABEL` do not allow spaces after '='\n\n\n # all the commands below will fail\n ARG answer = 42\n ARG version= \"1.0.0\"\n LABEL \"maintained.by\"= someone@gmail.com\n ENV JAVA_HOME= \"/docker-java-home\"\n\nAfter the quick-fix is applied:\n\n\n ARG answer=2\n ARG version=\"1.0.0\"\n LABEL \"maintained.by\"=someone@gmail.com\n ENV JAVA_HOME=\"/docker-java-home\"\n" + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "DockerFileAssignments", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "Dockerfile", + "index": 44, "toolComponent": { "name": "QDNET" } @@ -126857,32 +133968,67 @@ "isComprehensive": false }, { - "name": "com.jetbrains.plugins.jade", - "version": "241.16914", + "name": "org.intellij.qodana", + "version": "243.24609", "rules": [ { - "id": "JadeTabsAndSpaces", + "id": "JsCoverageInspection", "shortDescription": { - "text": "Tabs and spaces both used" + "text": "Check JavaScript and TypeScript source code coverage" }, "fullDescription": { - "text": "Reports use of spaces and tabs for indentation in a Pug file.", - "markdown": "Reports use of spaces and tabs for indentation in a Pug file." + "text": "Reports methods, classes and files whose coverage is below a certain threshold.", + "markdown": "Reports methods, classes and files whose coverage is below a certain threshold." }, "defaultConfiguration": { - "enabled": true, - "level": "error", + "enabled": false, + "level": "warning", "parameters": { - "suppressToolId": "JadeTabsAndSpaces", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "suppressToolId": "JsCoverageInspection", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "Pug_Jade", - "index": 65, + "id": "Code Coverage", + "index": 53, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CyclomaticComplexityInspection", + "shortDescription": { + "text": "Code metrics" + }, + "fullDescription": { + "text": "Calculates cyclomatic complexity.", + "markdown": "Calculates cyclomatic complexity." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "CyclomaticComplexityInspection", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "Qodana", + "index": 174, "toolComponent": { "name": "QDNET" } @@ -126902,32 +134048,33 @@ "isComprehensive": false }, { - "name": "HtmlTools", - "version": "241.16914", + "name": "AngularJS", + "version": "243.24609", "rules": [ { - "id": "HtmlRequiredSummaryAttribute", + "id": "AngularInvalidImportedOrDeclaredSymbol", "shortDescription": { - "text": "Missing required 'summary' attribute" + "text": "Invalid imported or declared symbol" }, "fullDescription": { - "text": "Reports a missing 'summary' attribute in a 'table' tag. Suggests adding a'summary' attribute. Based on WCAG 2.0: H73.", - "markdown": "Reports a missing `summary` attribute in a `table` tag. Suggests adding a`summary` attribute. Based on WCAG 2.0: [H73](https://www.w3.org/TR/WCAG20-TECHS/H73.html)." + "text": "Reports any symbol that is declared, imported or exported by an Angular module or standalone component that is not a module, component, directive, or pipe or can’t be used in the context of the property.", + "markdown": "Reports any symbol that is declared, imported or exported by an Angular module or standalone component that is not a module, component, directive, or pipe or can't be used in the context of the property." }, "defaultConfiguration": { "enabled": false, - "level": "note", + "level": "error", "parameters": { - "suppressToolId": "HtmlRequiredSummaryAttribute", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "suppressToolId": "AngularInvalidImportedOrDeclaredSymbol", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Sanity" } }, "relationships": [ { "target": { - "id": "HTML/Accessibility", - "index": 76, + "id": "Angular", + "index": 59, "toolComponent": { "name": "QDNET" } @@ -126939,28 +134086,29 @@ ] }, { - "id": "HtmlNonExistentInternetResource", + "id": "AngularRecursiveModuleImportExport", "shortDescription": { - "text": "Unresolved web link" + "text": "Recursive import or export of an Angular module or a standalone component" }, "fullDescription": { - "text": "Reports an unresolved web link. Works by making network requests in the background.", - "markdown": "Reports an unresolved web link. Works by making network requests in the background." + "text": "Reports a cyclic dependency between Angular modules or standalone components.", + "markdown": "Reports a cyclic dependency between Angular modules or standalone components." }, "defaultConfiguration": { "enabled": false, - "level": "warning", + "level": "error", "parameters": { - "suppressToolId": "HtmlNonExistentInternetResource", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "suppressToolId": "AngularRecursiveModuleImportExport", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Sanity" } }, "relationships": [ { "target": { - "id": "HTML", - "index": 11, + "id": "Angular", + "index": 59, "toolComponent": { "name": "QDNET" } @@ -126972,28 +134120,29 @@ ] }, { - "id": "HtmlRequiredTitleAttribute", + "id": "AngularNgOptimizedImage", "shortDescription": { - "text": "Missing required 'title' attribute" + "text": "Issues with ngSrc usage in img tags" }, "fullDescription": { - "text": "Reports a missing title attribute 'frame', 'iframe', 'dl', and 'a' tags. Suggests adding a title attribute. Based on WCAG 2.0: H33, H40, and H64.", - "markdown": "Reports a missing title attribute `frame`, `iframe`, `dl`, and `a` tags. Suggests adding a title attribute. Based on WCAG 2.0: [H33](https://www.w3.org/TR/WCAG20-TECHS/H33.html), [H40](https://www.w3.org/TR/WCAG20-TECHS/H40.html), and [H64](https://www.w3.org/TR/WCAG20-TECHS/H64.html)." + "text": "Reports issues related to usage of 'ngSrc' (NgOptimizedDirective) on 'img' tags. Following issues are reported: 'img' tags, which use 'src' instead of 'ngSrc' lack of 'width' and 'height', or 'fill' attributes when 'ngSrc' is used 'width' or 'height', and 'fill' attributes being present on the same element when 'ngSrc' is used", + "markdown": "Reports issues related to usage of `ngSrc` ([NgOptimizedDirective](https://angular.io/guide/image-directive)) on `img` tags.\n\n\nFollowing issues are reported:\n\n* `img` tags, which use `src` instead of `ngSrc`\n* lack of `width` and `height`, or `fill` attributes when `ngSrc` is used\n* `width` or `height`, and `fill` attributes being present on the same element when `ngSrc` is used" }, "defaultConfiguration": { "enabled": false, "level": "note", "parameters": { - "suppressToolId": "HtmlRequiredTitleAttribute", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "suppressToolId": "AngularNgOptimizedImage", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Performance" } }, "relationships": [ { "target": { - "id": "HTML/Accessibility", - "index": 76, + "id": "Angular", + "index": 59, "toolComponent": { "name": "QDNET" } @@ -127005,28 +134154,29 @@ ] }, { - "id": "HtmlRequiredAltAttribute", + "id": "AngularInvalidTemplateReferenceVariable", "shortDescription": { - "text": "Missing required 'alt' attribute" + "text": "Unbound or ambiguous template reference variable" }, "fullDescription": { - "text": "Reports a missing 'alt' attribute in a 'img' or 'applet' tag or in a 'area' element of an image map. Suggests adding a required attribute with a text alternative for the contents of the tag. Based on WCAG 2.0: H24, H35, H36, H37.", - "markdown": "Reports a missing `alt` attribute in a `img` or `applet` tag or in a `area` element of an image map. Suggests adding a required attribute with a text alternative for the contents of the tag. Based on WCAG 2.0: [H24](https://www.w3.org/TR/WCAG20-TECHS/H24.html), [H35](https://www.w3.org/TR/WCAG20-TECHS/H35.html), [H36](https://www.w3.org/TR/WCAG20-TECHS/H36.html), [H37](https://www.w3.org/TR/WCAG20-TECHS/H37.html)." + "text": "Reports a template reference variable that is not assigned to a directive when using 'exportAs' or is assigned to multiple directives.", + "markdown": "Reports a template reference variable that is not assigned to a directive when using `exportAs` or is assigned to multiple directives." }, "defaultConfiguration": { - "enabled": true, - "level": "warning", + "enabled": false, + "level": "error", "parameters": { - "suppressToolId": "HtmlRequiredAltAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "suppressToolId": "AngularInvalidTemplateReferenceVariable", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { - "id": "HTML/Accessibility", - "index": 76, + "id": "Angular", + "index": 59, "toolComponent": { "name": "QDNET" } @@ -127038,28 +134188,29 @@ ] }, { - "id": "HtmlPresentationalElement", + "id": "AngularMultipleStructuralDirectives", "shortDescription": { - "text": "Presentational tag" + "text": "Multiple structural directives on one element" }, "fullDescription": { - "text": "Reports a presentational HTML tag. Suggests replacing the presentational tag with a CSS or another tag.", - "markdown": "Reports a presentational HTML tag. Suggests replacing the presentational tag with a CSS or another tag." + "text": "Reports multiple structural directives ('*ngIf', '*ngFor', etc.) on one element.", + "markdown": "Reports multiple structural directives (`*ngIf`, `*ngFor`, etc.) on one element." }, "defaultConfiguration": { "enabled": false, - "level": "note", + "level": "error", "parameters": { - "suppressToolId": "HtmlPresentationalElement", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "suppressToolId": "AngularMultipleStructuralDirectives", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Sanity" } }, "relationships": [ { "target": { - "id": "HTML", - "index": 11, + "id": "Angular", + "index": 59, "toolComponent": { "name": "QDNET" } @@ -127071,28 +134222,29 @@ ] }, { - "id": "HtmlDeprecatedTag", + "id": "AngularUnsupportedSyntax", "shortDescription": { - "text": "Obsolete tag" + "text": "Unsupported Angular expression syntax" }, "fullDescription": { - "text": "Reports an obsolete HTML5 tag. Suggests replacing the obsolete tag with a CSS or another tag.", - "markdown": "Reports an obsolete HTML5 tag. Suggests replacing the obsolete tag with a CSS or another tag." + "text": "Reports problems with Angular expression syntax, which is not supported in an older version of Angular.", + "markdown": "Reports problems with Angular expression syntax, which is not supported in an older version of Angular." }, "defaultConfiguration": { - "enabled": true, - "level": "warning", + "enabled": false, + "level": "error", "parameters": { - "suppressToolId": "HtmlDeprecatedTag", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "suppressToolId": "AngularUnsupportedSyntax", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" } }, "relationships": [ { "target": { - "id": "HTML", - "index": 11, + "id": "Angular", + "index": 59, "toolComponent": { "name": "QDNET" } @@ -127104,28 +134256,29 @@ ] }, { - "id": "HtmlFormInputWithoutLabel", + "id": "AngularNonStandaloneComponentImports", "shortDescription": { - "text": "Missing associated label" + "text": "Invalid usage of imports in non-standalone components" }, "fullDescription": { - "text": "Reports a form element ('input', 'textarea', or 'select') without an associated label. Suggests creating a new label. Based on WCAG 2.0: H44.", - "markdown": "Reports a form element (`input`, `textarea`, or `select`) without an associated label. Suggests creating a new label. Based on WCAG 2.0: [H44](https://www.w3.org/TR/WCAG20-TECHS/H44.html). " + "text": "Reports usages of imports property in non-standalone component decorators. Imports can be used only in standalone components.", + "markdown": "Reports usages of imports property in non-standalone component decorators. Imports can be used only in standalone components." }, "defaultConfiguration": { - "enabled": true, - "level": "warning", + "enabled": false, + "level": "error", "parameters": { - "suppressToolId": "HtmlFormInputWithoutLabel", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "suppressToolId": "AngularNonStandaloneComponentImports", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Sanity" } }, "relationships": [ { "target": { - "id": "HTML/Accessibility", - "index": 76, + "id": "Angular", + "index": 59, "toolComponent": { "name": "QDNET" } @@ -127137,28 +134290,29 @@ ] }, { - "id": "HtmlRequiredTitleElement", + "id": "AngularInvalidSelector", "shortDescription": { - "text": "Missing required 'title' element" + "text": "Missing or invalid selector" }, "fullDescription": { - "text": "Reports a missing 'title' element inside a 'head' section. Suggests adding a 'title' element. The title should describe the document. Based on WCAG 2.0: H25.", - "markdown": "Reports a missing `title` element inside a `head` section. Suggests adding a `title` element. The title should describe the document. Based on WCAG 2.0: [H25](https://www.w3.org/TR/WCAG20-TECHS/H25.html)." + "text": "Reports an invalid 'selector' property of a component or directive.", + "markdown": "Reports an invalid `selector` property of a component or directive." }, "defaultConfiguration": { - "enabled": true, - "level": "warning", + "enabled": false, + "level": "error", "parameters": { - "suppressToolId": "HtmlRequiredTitleElement", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "suppressToolId": "AngularInvalidSelector", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Sanity" } }, "relationships": [ { "target": { - "id": "HTML/Accessibility", - "index": 76, + "id": "Angular", + "index": 59, "toolComponent": { "name": "QDNET" } @@ -127170,28 +134324,29 @@ ] }, { - "id": "HtmlDeprecatedAttribute", + "id": "AngularNonEmptyNgContent", "shortDescription": { - "text": "Obsolete attribute" + "text": "Content inside tag" }, "fullDescription": { - "text": "Reports an obsolete HTML5 attribute.", - "markdown": "Reports an obsolete HTML5 attribute." + "text": "Reports a text or tag occurrence inside a '' tag used for content projection.", + "markdown": "Reports a text or tag occurrence inside a `` tag used for content projection." }, "defaultConfiguration": { - "enabled": true, - "level": "warning", + "enabled": false, + "level": "error", "parameters": { - "suppressToolId": "HtmlDeprecatedAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "suppressToolId": "AngularNonEmptyNgContent", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Sanity" } }, "relationships": [ { "target": { - "id": "HTML", - "index": 11, + "id": "Angular", + "index": 59, "toolComponent": { "name": "QDNET" } @@ -127203,28 +134358,29 @@ ] }, { - "id": "CheckImageSize", + "id": "AngularInsecureBindingToEvent", "shortDescription": { - "text": "Mismatched image size" + "text": "Insecure binding to event" }, "fullDescription": { - "text": "Reports a 'width' and 'height' attribute value of a 'img' tag that is different from the actual width and height of the referenced image.", - "markdown": "Reports a `width` and `height` attribute value of a `img` tag that is different from the actual width and height of the referenced image." + "text": "Reports a binding to an event property or attribute, for example, '[onclick]' or '[attr.onclick]' instead of '(click)'.", + "markdown": "Reports a binding to an event property or attribute, for example, `[onclick]` or `[attr.onclick]` instead of `(click)`." }, "defaultConfiguration": { - "enabled": true, + "enabled": false, "level": "warning", "parameters": { - "suppressToolId": "CheckImageSize", + "suppressToolId": "AngularInsecureBindingToEvent", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { - "id": "HTML", - "index": 11, + "id": "Angular", + "index": 59, "toolComponent": { "name": "QDNET" } @@ -127236,28 +134392,29 @@ ] }, { - "id": "HtmlRequiredLangAttribute", + "id": "AngularDeferBlockOnTrigger", "shortDescription": { - "text": "Missing required 'lang' attribute" + "text": "Problems with @defer `on` triggers" }, "fullDescription": { - "text": "Reports a missing 'lang' (or 'xml:lang') attribute in a 'html' tag. Suggests adding a required attribute to state the default language of the document. Based on WCAG 2.0: H57.", - "markdown": "Reports a missing `lang` (or `xml:lang`) attribute in a `html` tag. Suggests adding a required attribute to state the default language of the document. Based on WCAG 2.0: [H57](https://www.w3.org/TR/WCAG20-TECHS/H57.html)." + "text": "Reports issues with triggers in `on` parameters in `@defer` block.", + "markdown": "Reports issues with triggers in \\`on\\` parameters in \\`@defer\\` block." }, "defaultConfiguration": { - "enabled": true, - "level": "warning", + "enabled": false, + "level": "error", "parameters": { - "suppressToolId": "HtmlRequiredLangAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "suppressToolId": "AngularDeferBlockOnTrigger", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { - "id": "HTML/Accessibility", - "index": 76, + "id": "Angular", + "index": 59, "toolComponent": { "name": "QDNET" } @@ -127267,42 +134424,31 @@ ] } ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "org.jetbrains.plugins.vue", - "version": "241.16914", - "rules": [ + }, { - "id": "VueMissingComponentImportInspection", + "id": "AngularMissingEventHandler", "shortDescription": { - "text": "Missing component import" + "text": "Missing event handler" }, "fullDescription": { - "text": "Reports Vue components, which require to be imported in Vue templates. It provides a quick fix to add the missing import.", - "markdown": "Reports Vue components, which require to be imported in Vue templates. It provides a quick fix to add the missing import." + "text": "Reports a missing event handler statement for an event binding.", + "markdown": "Reports a missing event handler statement for an event binding." }, "defaultConfiguration": { "enabled": false, - "level": "warning", + "level": "error", "parameters": { - "suppressToolId": "VueMissingComponentImportInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "suppressToolId": "AngularMissingEventHandler", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { - "id": "Vue", - "index": 81, + "id": "Angular", + "index": 59, "toolComponent": { "name": "QDNET" } @@ -127314,28 +134460,29 @@ ] }, { - "id": "VueDeprecatedSymbol", + "id": "AngularUndefinedBinding", "shortDescription": { - "text": "Deprecated symbol" + "text": "Undefined binding" }, "fullDescription": { - "text": "Reports a deprecated Vue symbol.", - "markdown": "Reports a deprecated Vue symbol." + "text": "Reports an undefined property, event, or structural directive bindings on elements.", + "markdown": "Reports an undefined property, event, or structural directive bindings on elements." }, "defaultConfiguration": { "enabled": false, - "level": "warning", + "level": "error", "parameters": { - "suppressToolId": "VueDeprecatedSymbol", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "suppressToolId": "AngularUndefinedBinding", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { - "id": "Vue", - "index": 81, + "id": "Angular", + "index": 59, "toolComponent": { "name": "QDNET" } @@ -127347,28 +134494,29 @@ ] }, { - "id": "VueUnrecognizedDirective", + "id": "AngularForBlockNonIterableVar", "shortDescription": { - "text": "Unrecognized directive" + "text": "Non-iterable type in @for block" }, "fullDescription": { - "text": "Reports an unrecognized Vue directive.", - "markdown": "Reports an unrecognized Vue directive." + "text": "Reports that the type of variable to iterate over does not have '[Symbol.iterator]()' method, which returns an iterator.", + "markdown": "Reports that the type of variable to iterate over does not have `[Symbol.iterator]()` method, which returns an iterator." }, "defaultConfiguration": { "enabled": false, - "level": "warning", + "level": "error", "parameters": { - "suppressToolId": "VueUnrecognizedDirective", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "suppressToolId": "AngularForBlockNonIterableVar", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { - "id": "Vue", - "index": 81, + "id": "Angular", + "index": 59, "toolComponent": { "name": "QDNET" } @@ -127380,28 +134528,29 @@ ] }, { - "id": "VueDuplicateTag", + "id": "AngularBindingTypeMismatch", "shortDescription": { - "text": "Duplicate template/script tag" + "text": "Invalid binding type" }, "fullDescription": { - "text": "Reports multiple usages of the 'template' or 'script' tag in a Vue file. Vue Component specification indicates that each '*.vue' file can contain at most one 'template' or 'script' block at a time.", - "markdown": "Reports multiple usages of the `template` or `script` tag in a Vue file.\n\n[Vue Component specification](https://vue-loader.vuejs.org/spec.html) indicates that each `*.vue` file can contain at most one `template` or `script` block at a time." + "text": "Reports a mismatch between actual and expected directive binding type.", + "markdown": "Reports a mismatch between actual and expected directive binding type." }, "defaultConfiguration": { "enabled": false, - "level": "warning", + "level": "error", "parameters": { - "suppressToolId": "VueDuplicateTag", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "suppressToolId": "AngularBindingTypeMismatch", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { - "id": "Vue", - "index": 81, + "id": "Angular", + "index": 59, "toolComponent": { "name": "QDNET" } @@ -127413,28 +134562,29 @@ ] }, { - "id": "VueDataFunction", + "id": "AngularUndefinedTag", "shortDescription": { - "text": "Data function" + "text": "Undefined tag" }, "fullDescription": { - "text": "Reports a Vue component data property that is not a function. Suggests wrapping an object literal with a function. When defining a component, 'data' must be declared as a function that returns the initial data object, because the same definition will be used for creating numerous instances. If a plain object is still used for 'data', that very object will be shared by reference across all instances created! With a 'data' function, every time a new instance is created we can simply call it to return a fresh copy of the initial data.", - "markdown": "Reports a Vue component [data](https://vuejs.org/v2/api/#data) property that is not a function. Suggests wrapping an object literal with a function.\n\nWhen defining a component, `data` must be declared as a function that returns the initial data object, because the same definition will be used for creating numerous instances. If a plain object is still used for `data`, that very object will be shared by reference across all instances created! With a `data` function, every time a new instance is created we can simply call it to return a fresh copy of the initial data." + "text": "Reports a tag defined by a component or directive out of the current scope.", + "markdown": "Reports a tag defined by a component or directive out of the current scope." }, "defaultConfiguration": { "enabled": false, - "level": "warning", + "level": "error", "parameters": { - "suppressToolId": "VueDataFunction", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "suppressToolId": "AngularUndefinedTag", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Sanity" } }, "relationships": [ { "target": { - "id": "Vue", - "index": 81, + "id": "Angular", + "index": 59, "toolComponent": { "name": "QDNET" } @@ -127446,28 +134596,29 @@ ] }, { - "id": "VueUnrecognizedSlot", + "id": "AngularAmbiguousComponentTag", "shortDescription": { - "text": "Unrecognized slot" + "text": "Ambiguous component tag" }, "fullDescription": { - "text": "Reports an unrecognized Vue slot.", - "markdown": "Reports an unrecognized Vue slot." + "text": "Reports a component that is matched on an embedded template element '' or multiple components matched on any other element.", + "markdown": "Reports a component that is matched on an embedded template element `` or multiple components matched on any other element." }, "defaultConfiguration": { "enabled": false, - "level": "note", + "level": "error", "parameters": { - "suppressToolId": "VueUnrecognizedSlot", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "suppressToolId": "AngularAmbiguousComponentTag", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { - "id": "Vue", - "index": 81, + "id": "Angular", + "index": 59, "toolComponent": { "name": "QDNET" } @@ -127477,42 +134628,65 @@ ] } ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "org.jetbrains.plugins.yaml", - "version": "241.16914", - "rules": [ + }, { - "id": "YAMLIncompatibleTypes", + "id": "AngularUndefinedModuleExport", "shortDescription": { - "text": "Suspicious type mismatch" + "text": "Undefined export from Angular module" }, "fullDescription": { - "text": "Reports a mismatch between a scalar value type in YAML file and types of the values in the similar positions. Example: 'myElements:\n - value1\n - value2\n - false # <- reported, because it is a boolean value, while other values are strings'", - "markdown": "Reports a mismatch between a scalar value type in YAML file and types of the values in the similar positions.\n\n**Example:**\n\n\n myElements:\n - value1\n - value2\n - false # <- reported, because it is a boolean value, while other values are strings\n" + "text": "Reports an export of an undeclared or unimported component, directive, or pipes from an Angular module.", + "markdown": "Reports an export of an undeclared or unimported component, directive, or pipes from an Angular module." }, "defaultConfiguration": { - "enabled": true, + "enabled": false, + "level": "error", + "parameters": { + "suppressToolId": "AngularUndefinedModuleExport", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Sanity" + } + }, + "relationships": [ + { + "target": { + "id": "Angular", + "index": 59, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "AngularInvalidI18nAttribute", + "shortDescription": { + "text": "Invalid i18n attribute" + }, + "fullDescription": { + "text": "Reports a problem with a 'i18n-*' attribute.", + "markdown": "Reports a problem with a `i18n-*` attribute." + }, + "defaultConfiguration": { + "enabled": false, "level": "warning", "parameters": { - "suppressToolId": "YAMLIncompatibleTypes", + "suppressToolId": "AngularInvalidI18nAttribute", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Sanity" } }, "relationships": [ { "target": { - "id": "YAML", - "index": 87, + "id": "Angular", + "index": 59, "toolComponent": { "name": "QDNET" } @@ -127524,28 +134698,29 @@ ] }, { - "id": "YAMLUnresolvedAlias", + "id": "AngularIncorrectLetUsage", "shortDescription": { - "text": "Unresolved alias" + "text": "Incorrect usage of @let declaration" }, "fullDescription": { - "text": "Reports unresolved aliases in YAML files. Example: 'some_key: *unknown_alias'", - "markdown": "Reports unresolved aliases in YAML files.\n\n**Example:**\n\n\n some_key: *unknown_alias\n" + "text": "Reports problems with @let declaration usages.", + "markdown": "Reports problems with @let declaration usages." }, "defaultConfiguration": { - "enabled": true, + "enabled": false, "level": "error", "parameters": { - "suppressToolId": "YAMLUnresolvedAlias", + "suppressToolId": "AngularIncorrectLetUsage", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { - "id": "YAML", - "index": 87, + "id": "Angular", + "index": 59, "toolComponent": { "name": "QDNET" } @@ -127557,28 +134732,29 @@ ] }, { - "id": "YAMLDuplicatedKeys", + "id": "AngularInvalidAnimationTriggerAssignment", "shortDescription": { - "text": "Duplicated YAML keys" + "text": "Invalid animation trigger assignment" }, "fullDescription": { - "text": "Reports duplicated keys in YAML files. Example: 'same_key: some value\n same_key: another value'", - "markdown": "Reports duplicated keys in YAML files.\n\n**Example:**\n\n\n same_key: some value\n same_key: another value\n" + "text": "Reports an invalid assignment of an animation trigger. To attach an animation to an element, use '[@triggerName]=\"expression\"' or an attribute without a value '@triggerName'.", + "markdown": "Reports an invalid assignment of an animation trigger. To attach an animation to an element, use `[@triggerName]=\"expression\"` or an attribute without a value `@triggerName`." }, "defaultConfiguration": { - "enabled": true, + "enabled": false, "level": "error", "parameters": { - "suppressToolId": "YAMLDuplicatedKeys", + "suppressToolId": "AngularInvalidAnimationTriggerAssignment", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { - "id": "YAML", - "index": 87, + "id": "Angular", + "index": 59, "toolComponent": { "name": "QDNET" } @@ -127590,28 +134766,29 @@ ] }, { - "id": "YAMLSchemaValidation", + "id": "AngularUnresolvedPipe", "shortDescription": { - "text": "Validation by JSON Schema" + "text": "Unresolved pipe" }, "fullDescription": { - "text": "Reports inconsistencies between a YAML file and a JSON Schema if the schema is specified. Scheme example: '{\n \"properties\": {\n \"SomeNumberProperty\": {\n \"type\": \"number\"\n }\n }\n }' The following is an example with the corresponding warning: 'SomeNumberProperty: hello world'", - "markdown": "Reports inconsistencies between a YAML file and a JSON Schema if the schema is specified.\n\n**Scheme example:**\n\n\n {\n \"properties\": {\n \"SomeNumberProperty\": {\n \"type\": \"number\"\n }\n }\n }\n\n**The following is an example with the corresponding warning:**\n\n\n SomeNumberProperty: hello world\n" + "text": "Reports an unresolved pipe.", + "markdown": "Reports an unresolved pipe." }, "defaultConfiguration": { - "enabled": true, - "level": "warning", + "enabled": false, + "level": "error", "parameters": { - "suppressToolId": "YAMLSchemaValidation", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "suppressToolId": "AngularUnresolvedPipe", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Sanity" } }, "relationships": [ { "target": { - "id": "YAML", - "index": 87, + "id": "Angular", + "index": 59, "toolComponent": { "name": "QDNET" } @@ -127623,28 +134800,29 @@ ] }, { - "id": "YAMLSchemaDeprecation", + "id": "AngularUnusedComponentImport", "shortDescription": { - "text": "Deprecated YAML key" + "text": "Unused import in an Angular component declaration" }, "fullDescription": { - "text": "Reports deprecated keys in YAML files. Deprecation is checked only if there exists a JSON schema associated with the corresponding YAML file. Note that the deprecation mechanism is not defined in the JSON Schema specification yet, and this inspection uses a non-standard 'deprecationMessage' extension. Scheme deprecation example: '{\n \"properties\": {\n \"SomeDeprecatedProperty\": {\n \"deprecationMessage\": \"Baz\",\n \"description\": \"Foo bar\"\n }\n }\n }' The following is an example with the corresponding warning: 'SomeDeprecatedProperty: some value'", - "markdown": "Reports deprecated keys in YAML files.\n\nDeprecation is checked only if there exists a JSON schema associated with the corresponding YAML file.\n\nNote that the deprecation mechanism is not defined in the JSON Schema specification yet,\nand this inspection uses a non-standard `deprecationMessage` extension.\n\n**Scheme deprecation example:**\n\n\n {\n \"properties\": {\n \"SomeDeprecatedProperty\": {\n \"deprecationMessage\": \"Baz\",\n \"description\": \"Foo bar\"\n }\n }\n }\n\n**The following is an example with the corresponding warning:**\n\n\n SomeDeprecatedProperty: some value\n" + "text": "Reports unused imports in Angular components.", + "markdown": "Reports unused imports in Angular components." }, "defaultConfiguration": { - "enabled": true, - "level": "note", + "enabled": false, + "level": "error", "parameters": { - "suppressToolId": "YAMLSchemaDeprecation", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "suppressToolId": "AngularUnusedComponentImport", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { - "id": "YAML", - "index": 87, + "id": "Angular", + "index": 59, "toolComponent": { "name": "QDNET" } @@ -127656,28 +134834,29 @@ ] }, { - "id": "YAMLRecursiveAlias", + "id": "AngularIncorrectBlockUsage", "shortDescription": { - "text": "Recursive alias" + "text": "Incorrect usage of Angular block" }, "fullDescription": { - "text": "Reports recursion in YAML aliases. Alias can't be recursive and be used inside the data referenced by a corresponding anchor. Example: 'some_key: &some_anchor\n sub_key1: value1\n sub_key2: *some_anchor'", - "markdown": "Reports recursion in YAML aliases.\n\nAlias can't be recursive and be used inside the data referenced by a corresponding anchor.\n\n**Example:**\n\n\n some_key: &some_anchor\n sub_key1: value1\n sub_key2: *some_anchor\n" + "text": "Reports problems with Angular blocks.", + "markdown": "Reports problems with Angular blocks." }, "defaultConfiguration": { - "enabled": true, + "enabled": false, "level": "error", "parameters": { - "suppressToolId": "YAMLRecursiveAlias", + "suppressToolId": "AngularIncorrectBlockUsage", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Sanity" } }, "relationships": [ { "target": { - "id": "YAML", - "index": 87, + "id": "Angular", + "index": 59, "toolComponent": { "name": "QDNET" } @@ -127689,28 +134868,29 @@ ] }, { - "id": "YAMLUnusedAnchor", + "id": "AngularCliAddDependency", "shortDescription": { - "text": "Unused anchor" + "text": "Angular CLI add dependency" }, "fullDescription": { - "text": "Reports unused anchors. Example: 'some_key: &some_anchor\n key1: value1'", - "markdown": "Reports unused anchors.\n\n**Example:**\n\n\n some_key: &some_anchor\n key1: value1\n" + "text": "Suggests using the 'ng add' command to install the dependency. 'ng add' will use the package manager to download it and invoke a schematic which can update your project with configuration changes, add additional dependencies (e.g. polyfills), or scaffold package-specific initialization code.", + "markdown": "Suggests using the `ng add` command to install the dependency.\n\n`ng add` will use the package manager to download it and invoke a schematic\nwhich can update your project with configuration changes, add additional dependencies (e.g. polyfills),\nor scaffold package-specific initialization code." }, "defaultConfiguration": { - "enabled": true, + "enabled": false, "level": "warning", "parameters": { - "suppressToolId": "YAMLUnusedAnchor", + "suppressToolId": "AngularCliAddDependency", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Sanity" } }, "relationships": [ { "target": { - "id": "YAML", - "index": 87, + "id": "Angular", + "index": 59, "toolComponent": { "name": "QDNET" } @@ -127720,42 +134900,167 @@ ] } ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "intellij.webpack", - "version": "241.16914", - "rules": [ + }, { - "id": "WebpackConfigHighlighting", + "id": "AngularInaccessibleSymbol", "shortDescription": { - "text": "Webpack config compliance with JSON Schema" + "text": "Inaccessible component member or directive input" }, "fullDescription": { - "text": "Validates options in webpack config files (which name should start with `webpack`, e.g. `webpack.config.js`) against webpack options schema. Disable this inspection to turn off validation and code completion inside the configuration object.", - "markdown": "Validates options in webpack config files (which name should start with \\`webpack\\`, e.g. \\`webpack.config.js\\`) against [webpack options schema](https://github.com/webpack/webpack/blob/master/schemas/WebpackOptions.json). \n\nDisable this inspection to turn off validation and code completion inside the configuration object." + "text": "Reports access to invisible (private or protected) component member or directive input from an Angular template.", + "markdown": "Reports access to invisible (private or protected) component member or directive input from an Angular template." }, "defaultConfiguration": { "enabled": false, - "level": "warning", + "level": "error", "parameters": { - "suppressToolId": "WebpackConfigHighlighting", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "suppressToolId": "AngularInaccessibleSymbol", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Security" } }, "relationships": [ { "target": { - "id": "JavaScript and TypeScript/General", - "index": 18, + "id": "Angular", + "index": 59, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "AngularIncorrectTemplateDefinition", + "shortDescription": { + "text": "Incorrect component template definition" + }, + "fullDescription": { + "text": "Reports a component that doesn’t have an associated template or uses both 'template' and 'templateUrl' properties.", + "markdown": "Reports a component that doesn't have an associated template or uses both `template` and `templateUrl` properties." + }, + "defaultConfiguration": { + "enabled": false, + "level": "error", + "parameters": { + "suppressToolId": "AngularIncorrectTemplateDefinition", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Reliability" + } + }, + "relationships": [ + { + "target": { + "id": "Angular", + "index": 59, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "AngularMissingRequiredDirectiveInputBinding", + "shortDescription": { + "text": "Missing required directive input" + }, + "fullDescription": { + "text": "Reports a missing binding for a required directive input.", + "markdown": "Reports a missing binding for a required directive input." + }, + "defaultConfiguration": { + "enabled": false, + "level": "error", + "parameters": { + "suppressToolId": "AngularMissingRequiredDirectiveInputBinding", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Reliability" + } + }, + "relationships": [ + { + "target": { + "id": "Angular", + "index": 59, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "AngularMissingOrInvalidDeclarationInModule", + "shortDescription": { + "text": "Missing or invalid component, directive or pipe declaration in a module" + }, + "fullDescription": { + "text": "Reports a non-standalone Angular component, directive, or pipe that is not declared in any module or is declared in multiple modules.", + "markdown": "Reports a non-standalone Angular component, directive, or pipe that is not declared in any module or is declared in multiple modules." + }, + "defaultConfiguration": { + "enabled": false, + "level": "error", + "parameters": { + "suppressToolId": "AngularMissingOrInvalidDeclarationInModule", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Sanity" + } + }, + "relationships": [ + { + "target": { + "id": "Angular", + "index": 59, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "AngularInvalidEntryComponent", + "shortDescription": { + "text": "Invalid entry component" + }, + "fullDescription": { + "text": "Reports an invalid Angular component specified in the module’s 'bootstrap' or 'entryComponents' property.", + "markdown": "Reports an invalid Angular component specified in the module's `bootstrap` or `entryComponents` property." + }, + "defaultConfiguration": { + "enabled": false, + "level": "error", + "parameters": { + "suppressToolId": "AngularInvalidEntryComponent", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Sanity" + } + }, + "relationships": [ + { + "target": { + "id": "Angular", + "index": 59, "toolComponent": { "name": "QDNET" } @@ -127775,32 +135080,33 @@ "isComprehensive": false }, { - "name": "com.intellij.plugins.dependencyAnalysis", - "version": "241.16914", + "name": "com.intellij.swagger", + "version": "243.24609", "rules": [ { - "id": "CheckDependencyLicenses", + "id": "SwYamlMaybeSpecificationInspection", "shortDescription": { - "text": "Check dependency licenses" + "text": "Possible OpenAPI/Swagger specification candidate" }, "fullDescription": { - "text": "Check dependencies licenses for possible problems: missing or prohibited licenses, or other compliance issues", - "markdown": "Check dependencies licenses for possible problems: missing or prohibited licenses, or other compliance issues" + "text": "Detects YAML files that can be interpreted as a part of OpenAPI/Swagger specification. Such files do not contain explicit specification attributes, but they are referenced from primary specification files located nearby. The following example contains two files located in the same directory. First one is a plain primary specification file. Second is referenced from the first one and thus is suggested to be considered a specification too. Primary specification file 'openapi.yaml': 'openapi: 3.1.0\ncomponents:\n schemas:\n CustomSchema:\n description: Custom schema object\n properties:\n foo:\n $ref: 'common.components.yaml#/components/schemas/CommonSchema'' Specification file candidate 'common.components.yaml': 'components: # 'Mark file as OpenAPI specification' highlighting\n schemas:\n CommonSchema:\n description: Common schema object reused in several specifications'", + "markdown": "Detects YAML files that can be interpreted as a part of OpenAPI/Swagger specification.\n\n\nSuch files do not contain explicit specification attributes, but they are referenced from primary specification files located nearby.\n\n\nThe following example contains two files located in the same directory. First one is a plain primary specification file.\nSecond is referenced from the first one and thus is suggested to be considered a specification too.\n\n**Primary specification file `openapi.yaml`:**\n\n\n openapi: 3.1.0\n components:\n schemas:\n CustomSchema:\n description: Custom schema object\n properties:\n foo:\n $ref: 'common.components.yaml#/components/schemas/CommonSchema'\n\n**Specification file candidate `common.components.yaml`:**\n\n\n components: # 'Mark file as OpenAPI specification' highlighting\n schemas:\n CommonSchema:\n description: Common schema object reused in several specifications\n" }, "defaultConfiguration": { "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "CheckDependencyLicenses", + "suppressToolId": "SwYamlMaybeSpecificationInspection", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Sanity" } }, "relationships": [ { "target": { - "id": "Dependency analysis", - "index": 97, + "id": "OpenAPI specifications", + "index": 66, "toolComponent": { "name": "QDNET" } @@ -127812,28 +135118,29 @@ ] }, { - "id": "CheckThirdPartySoftwareList", + "id": "SwJsonUnresolvedReferencesInspection", "shortDescription": { - "text": "Check third party software list" + "text": "Unresolved reference" }, "fullDescription": { - "text": "Check project for possible problems: user's third party software list does not match the collected project metadata", - "markdown": "Check project for possible problems: user's third party software list does not match the collected project metadata" + "text": "Detects unresolved references in JSON specification files.", + "markdown": "Detects unresolved references in JSON specification files." }, "defaultConfiguration": { - "enabled": false, - "level": "warning", + "enabled": true, + "level": "error", "parameters": { - "suppressToolId": "CheckThirdPartySoftwareList", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "suppressToolId": "SwJsonUnresolvedReferencesInspection", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Sanity" } }, "relationships": [ { "target": { - "id": "Dependency analysis", - "index": 97, + "id": "OpenAPI specifications", + "index": 66, "toolComponent": { "name": "QDNET" } @@ -127845,28 +135152,29 @@ ] }, { - "id": "CheckModuleLicenses", + "id": "SwJsonMaybeSpecificationInspection", "shortDescription": { - "text": "Check module licenses" + "text": "Possible OpenAPI/Swagger specification candidate" }, "fullDescription": { - "text": "Check module licenses for possible problems: missing licenses or other compliance issues", - "markdown": "Check module licenses for possible problems: missing licenses or other compliance issues" + "text": "Detects JSON files that can be interpreted as a part of OpenAPI/Swagger specification. Such files do not contain explicit specification attributes, but they are referenced from primary specification files located nearby. The following example contains two files located in the same directory. First one is a plain primary specification file. Second is referenced from the first one and thus is suggested to be considered a specification too. Primary specification file 'openapi.yaml': 'openapi: 3.1.0\ncomponents:\n schemas:\n CustomSchema:\n description: Custom schema object\n properties:\n foo:\n $ref: 'common.components.json#/components/schemas/CommonSchema'' Specification file candidate 'common.components.json': '{\n \"components\": { // 'Mark file as OpenAPI specification' highlighting\n \"schemas\": {\n \"CommonSchema\": {\n \"description\": \"Common schema object reused in several specifications\"\n }\n }\n }\n}'", + "markdown": "Detects JSON files that can be interpreted as a part of OpenAPI/Swagger specification.\n\n\nSuch files do not contain explicit specification attributes, but they are referenced from primary specification files located nearby.\n\n\nThe following example contains two files located in the same directory. First one is a plain primary specification file.\nSecond is referenced from the first one and thus is suggested to be considered a specification too.\n\n**Primary specification file `openapi.yaml`:**\n\n\n openapi: 3.1.0\n components:\n schemas:\n CustomSchema:\n description: Custom schema object\n properties:\n foo:\n $ref: 'common.components.json#/components/schemas/CommonSchema'\n\n**Specification file candidate `common.components.json`:**\n\n\n {\n \"components\": { // 'Mark file as OpenAPI specification' highlighting\n \"schemas\": {\n \"CommonSchema\": {\n \"description\": \"Common schema object reused in several specifications\"\n }\n }\n }\n }\n" }, "defaultConfiguration": { - "enabled": false, + "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "CheckModuleLicenses", + "suppressToolId": "SwJsonMaybeSpecificationInspection", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Sanity" } }, "relationships": [ { "target": { - "id": "Dependency analysis", - "index": 97, + "id": "OpenAPI specifications", + "index": 66, "toolComponent": { "name": "QDNET" } @@ -127876,42 +135184,31 @@ ] } ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "com.jetbrains.sh", - "version": "241.16914", - "rules": [ + }, { - "id": "ShellCheck", + "id": "SwYamlUnresolvedReferencesInspection", "shortDescription": { - "text": "ShellCheck" + "text": "Unresolved reference" }, "fullDescription": { - "text": "Reports shell script bugs detected by the integrated ShellCheck static analysis tool.", - "markdown": "Reports shell script bugs detected by the integrated [ShellCheck](https://github.com/koalaman/shellcheck) static analysis tool." + "text": "Detects unresolved references in YAML specification files.", + "markdown": "Detects unresolved references in YAML specification files." }, "defaultConfiguration": { "enabled": true, "level": "error", "parameters": { - "suppressToolId": "ShellCheck", + "suppressToolId": "SwYamlUnresolvedReferencesInspection", "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "qodanaSeverity": "Critical", + "codeQualityCategory": "Sanity" } }, "relationships": [ { "target": { - "id": "Shell script", - "index": 101, + "id": "OpenAPI specifications", + "index": 66, "toolComponent": { "name": "QDNET" } @@ -127931,32 +135228,33 @@ "isComprehensive": false }, { - "name": "org.jetbrains.plugins.less", - "version": "241.16914", + "name": "org.jetbrains.plugins.github", + "version": "243.24609-ultimate", "rules": [ { - "id": "LessResolvedByNameOnly", + "id": "CyclicJobDependency", "shortDescription": { - "text": "Missing import" + "text": "Cyclic job dependency" }, "fullDescription": { - "text": "Reports a reference to a variable or mixin that is declared in another file, which is not explicitly imported in the current file. Example: '* {\n margin: @var-in-other-file;\n}'", - "markdown": "Reports a reference to a variable or mixin that is declared in another file, which is not explicitly [imported](http://lesscss.org/features/#import-atrules-feature) in the current file.\n\n**Example:**\n\n\n * {\n margin: @var-in-other-file;\n }\n" + "text": "Detects cyclic dependencies for jobs in GitHub workflow YML file. See the GitHub Actions documentation for more information on workflow syntax.", + "markdown": "Detects cyclic dependencies for jobs in GitHub workflow YML file.\n\n\nSee the [GitHub Actions documentation](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idneeds) for more information on workflow syntax." }, "defaultConfiguration": { "enabled": true, - "level": "note", + "level": "error", "parameters": { - "suppressToolId": "LessResolvedByNameOnly", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "suppressToolId": "CyclicJobDependency", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Sanity" } }, "relationships": [ { "target": { - "id": "Less", - "index": 110, + "id": "GitHub actions", + "index": 70, "toolComponent": { "name": "QDNET" } @@ -127968,28 +135266,29 @@ ] }, { - "id": "LessUnresolvedVariable", + "id": "MandatoryParamsAbsent", "shortDescription": { - "text": "Unresolved variable" + "text": "Invalid parameters" }, "fullDescription": { - "text": "Reports a reference to a Less variable that is not resolved. Example: '* {\n margin: @unknown-var;\n}'", - "markdown": "Reports a reference to a [Less variable](http://lesscss.org/features/#variables-feature) that is not resolved.\n\n**Example:**\n\n\n * {\n margin: @unknown-var;\n }\n" + "text": "Reports the absence of mandatory parameters that do not have a default value for an action. It also provides a Quick Fix by adding the missing parameters with an empty value. For more information on action params, see the GitHub documentation.", + "markdown": "Reports the absence of mandatory parameters that do not have a default value for an action. It also provides a Quick Fix by adding the missing parameters with an empty value.\n\n\nFor more information on action params, see the [GitHub documentation](https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions#runsstepswith)." }, "defaultConfiguration": { "enabled": true, - "level": "warning", + "level": "error", "parameters": { - "suppressToolId": "LessUnresolvedVariable", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "suppressToolId": "MandatoryParamsAbsent", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { - "id": "Less", - "index": 110, + "id": "GitHub actions", + "index": 70, "toolComponent": { "name": "QDNET" } @@ -128001,28 +135300,29 @@ ] }, { - "id": "LessUnresolvedMixin", + "id": "IllegalJobDependency", "shortDescription": { - "text": "Unresolved mixin" + "text": "Undefined job dependency" }, "fullDescription": { - "text": "Reports a reference to a Less mixin that is not resolved. Example: '* {\n .unknown-mixin();\n}'", - "markdown": "Reports a reference to a [Less mixin](http://lesscss.org/features/#mixins-feature) that is not resolved.\n\n**Example:**\n\n\n * {\n .unknown-mixin();\n }\n" + "text": "Detects dependencies to undefined Jobs in GitHub workflow YML file. See the GitHub Actions documentation for more information on workflow syntax.", + "markdown": "Detects dependencies to undefined Jobs in GitHub workflow YML file.\n\n\nSee the [GitHub Actions documentation](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idneeds) for more information on workflow syntax." }, "defaultConfiguration": { "enabled": true, - "level": "warning", + "level": "error", "parameters": { - "suppressToolId": "LessUnresolvedMixin", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "suppressToolId": "IllegalJobDependency", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Sanity" } }, "relationships": [ { "target": { - "id": "Less", - "index": 110, + "id": "GitHub actions", + "index": 70, "toolComponent": { "name": "QDNET" } @@ -128032,42 +135332,31 @@ ] } ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "tanvd.grazi", - "version": "241.16914", - "rules": [ + }, { - "id": "LanguageDetectionInspection", + "id": "UndefinedAction", "shortDescription": { - "text": "Natural language detection" + "text": "Undefined action/file reference" }, "fullDescription": { - "text": "Detects natural languages and suggests enabling corresponding grammar and spelling checks.", - "markdown": "Detects natural languages and suggests enabling corresponding grammar and spelling checks." + "text": "Detects unresolved action references in GitHub action and workflow files. For more information on action references, see the GitHub documentation.", + "markdown": "Detects unresolved action references in GitHub action and workflow files.\n\n\nFor more information on action references, see the [GitHub documentation](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsuses)." }, "defaultConfiguration": { - "enabled": false, + "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "LanguageDetectionInspection", + "suppressToolId": "UndefinedAction", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Sanity" } }, "relationships": [ { "target": { - "id": "Proofreading", - "index": 111, + "id": "GitHub actions", + "index": 70, "toolComponent": { "name": "QDNET" } @@ -128079,28 +135368,29 @@ ] }, { - "id": "GrazieInspection", + "id": "UndefinedParamsPresent", "shortDescription": { - "text": "Grammar" + "text": "Undefined parameters" }, "fullDescription": { - "text": "Reports grammar mistakes in your text. You can configure the inspection in Settings | Editor | Natural Languages | Grammar.", - "markdown": "Reports grammar mistakes in your text. You can configure the inspection in [Settings \\| Editor \\| Natural Languages \\| Grammar](settings://reference.settingsdialog.project.grazie)." + "text": "Reports the presence of parameters which are not defined in an action. It also provides a Quick Fix by removing the undefined parameters. For more information on action params, see the GitHub documentation.", + "markdown": "Reports the presence of parameters which are not defined in an action. It also provides a Quick Fix by removing the undefined parameters.\n\n\nFor more information on action params, see the [GitHub documentation](https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions#runsstepswith)." }, "defaultConfiguration": { - "enabled": false, - "level": "note", + "enabled": true, + "level": "warning", "parameters": { - "suppressToolId": "GrazieInspection", - "ideaSeverity": "GRAMMAR_ERROR", - "qodanaSeverity": "Info" + "suppressToolId": "UndefinedParamsPresent", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { - "id": "Proofreading", - "index": 111, + "id": "GitHub actions", + "index": 70, "toolComponent": { "name": "QDNET" } @@ -128110,42 +135400,31 @@ ] } ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "com.jetbrains.rider-cpp", - "version": "241.16914", - "rules": [ + }, { - "id": "UnrealJsonLocalInspectionTool", + "id": "GithubFunctionSignatureValidation", "shortDescription": { - "text": "Unreal Engine json inspection" + "text": "Standard library functions validation" }, "fullDescription": { - "text": "RIDER-83134", - "markdown": "[RIDER-83134](https://youtrack.jetbrains.com/issue/RIDER-83134/)" + "text": "Reports invalid GitHub Actions Expression language standard library function calls For more information on GitHub Actions Expression language, see the GitHub documentation.", + "markdown": "Reports invalid GitHub Actions Expression language standard library function calls\n\n\nFor more information on GitHub Actions Expression language, see the [GitHub documentation](https://docs.github.com/en/actions/learn-github-actions/expressions)." }, "defaultConfiguration": { "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "UnrealJsonLocalInspectionTool", + "suppressToolId": "GithubFunctionSignatureValidation", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Sanity" } }, "relationships": [ { "target": { - "id": "Unreal Engine", - "index": 114, + "id": "GitHub actions", + "index": 70, "toolComponent": { "name": "QDNET" } @@ -128165,32 +135444,33 @@ "isComprehensive": false }, { - "name": "Karma", - "version": "241.16914", + "name": "com.jetbrains.plugins.jade", + "version": "243.24609", "rules": [ { - "id": "KarmaConfigFile", + "id": "JadeTabsAndSpaces", "shortDescription": { - "text": "Invalid Karma configuration file" + "text": "Tabs and spaces both used" }, "fullDescription": { - "text": "Reports a potential error in a file path ('basePath', 'files') for a Karma configuration file, for example, 'karma.conf.js'.", - "markdown": "Reports a potential error in a file path ('basePath', 'files') for a Karma configuration file, for example, `karma.conf.js`." + "text": "Reports use of spaces and tabs for indentation in a Pug file.", + "markdown": "Reports use of spaces and tabs for indentation in a Pug file." }, "defaultConfiguration": { "enabled": false, - "level": "warning", + "level": "error", "parameters": { - "suppressToolId": "KarmaConfigFile", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "suppressToolId": "JadeTabsAndSpaces", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { - "id": "JavaScript and TypeScript/Unit testing", - "index": 118, + "id": "Pug_Jade", + "index": 71, "toolComponent": { "name": "QDNET" } @@ -128210,32 +135490,33 @@ "isComprehensive": false }, { - "name": "com.jetbrains.plugins.ini4idea", - "version": "241.16914", + "name": "com.intellij.jsonpath", + "version": "243.24609", "rules": [ { - "id": "DuplicateSectionInFile", + "id": "JsonPathUnknownFunction", "shortDescription": { - "text": "Duplicate section in file" + "text": "Unknown JSONPath function" }, "fullDescription": { - "text": "Reports duplicate sections in the 'ini' file.", - "markdown": "Reports duplicate sections in the `ini` file." + "text": "Reports an unknown name in a JSONPath function call instead of known standard function names: 'concat', 'keys', 'length', 'min', 'max', 'avg', 'stddev', 'sum'.", + "markdown": "Reports an unknown name in a JSONPath function call instead of known standard function names: `concat`, `keys`, `length`, `min`, `max`, `avg`, `stddev`, `sum`." }, "defaultConfiguration": { "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "DuplicateSectionInFile", + "suppressToolId": "JsonPathUnknownFunction", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { - "id": "Ini files", - "index": 125, + "id": "JSONPath", + "index": 78, "toolComponent": { "name": "QDNET" } @@ -128247,28 +135528,29 @@ ] }, { - "id": "DuplicateKeyInSection", + "id": "JsonPathUnknownOperator", "shortDescription": { - "text": "Duplicate directive in section" + "text": "Unknown JSONPath operator" }, "fullDescription": { - "text": "Reports duplicate properties in the 'ini' file section.", - "markdown": "Reports duplicate properties in the `ini` file section." + "text": "Reports an unknown operator on a JSONPath expression instead of one of the standard ones: 'in', 'nin', 'subsetof', 'anyof', 'noneof', 'size', 'empty', 'contains'.", + "markdown": "Reports an unknown operator on a JSONPath expression instead of one of the standard ones: `in`, `nin`, `subsetof`, `anyof`, `noneof`, `size`, `empty`, `contains`." }, "defaultConfiguration": { "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "DuplicateKeyInSection", + "suppressToolId": "JsonPathUnknownOperator", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" } }, "relationships": [ { "target": { - "id": "Ini files", - "index": 125, + "id": "JSONPath", + "index": 78, "toolComponent": { "name": "QDNET" } @@ -128278,42 +135560,31 @@ ] } ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "tslint", - "version": "241.16914", - "rules": [ + }, { - "id": "TsLint", + "id": "JsonPathEvaluateUnknownKey", "shortDescription": { - "text": "TSLint" + "text": "Unknown property key used for JSONPath evaluate expression" }, "fullDescription": { - "text": "Reports a discrepancy detected by the TSLint linter. The highlighting is based on the rule severity specified in the TSLint configuration file for each individual rule. Clear the 'Use rule severity from the configuration file' checkbox to use the severity configured in this inspection for all TSLint rules.", - "markdown": "Reports a discrepancy detected by the [TSLint](https://github.com/palantir/tslint) linter. \n\nThe highlighting is based on the rule severity specified in the [TSLint configuration file](https://palantir.github.io/tslint/usage/configuration/) for each individual rule. \n\nClear the 'Use rule severity from the configuration file' checkbox to use the severity configured in this inspection for all TSLint rules." + "text": "Reports a key in a JSONPath expression that is missing in the source JSON document to evaluate.", + "markdown": "Reports a key in a JSONPath expression that is missing in the source JSON document to evaluate." }, "defaultConfiguration": { - "enabled": false, + "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "TsLint", + "suppressToolId": "JsonPathEvaluateUnknownKey", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { - "id": "JavaScript and TypeScript/Code quality tools", - "index": 64, + "id": "JSONPath", + "index": 78, "toolComponent": { "name": "QDNET" } @@ -128333,32 +135604,33 @@ "isComprehensive": false }, { - "name": "org.intellij.intelliLang", - "version": "241.16914", + "name": "HtmlTools", + "version": "243.24609", "rules": [ { - "id": "InjectedReferences", + "id": "HtmlRequiredSummaryAttribute", "shortDescription": { - "text": "Injected references" + "text": "Missing required 'summary' attribute" }, "fullDescription": { - "text": "Reports unresolved references injected by Language Injections. Example: '@Language(\"file-reference\")\n String fileName = \"/home/user/nonexistent.file\"; // highlighted if file doesn't exist'", - "markdown": "Reports unresolved references injected by [Language Injections](https://www.jetbrains.com/help/idea/using-language-injections.html).\n\nExample:\n\n\n @Language(\"file-reference\")\n String fileName = \"/home/user/nonexistent.file\"; // highlighted if file doesn't exist\n" + "text": "Reports a missing 'summary' attribute in a 'table' tag. Suggests adding a'summary' attribute. Based on WCAG 2.0: H73.", + "markdown": "Reports a missing `summary` attribute in a `table` tag. Suggests adding a`summary` attribute. Based on WCAG 2.0: [H73](https://www.w3.org/TR/WCAG20-TECHS/H73.html)." }, "defaultConfiguration": { - "enabled": true, - "level": "error", + "enabled": false, + "level": "note", "parameters": { - "suppressToolId": "InjectedReferences", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "suppressToolId": "HtmlRequiredSummaryAttribute", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { - "id": "General", - "index": 45, + "id": "HTML/Accessibility", + "index": 83, "toolComponent": { "name": "QDNET" } @@ -128368,42 +135640,31 @@ ] } ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "W3Validators", - "version": "241.16914", - "rules": [ + }, { - "id": "W3CssValidation", + "id": "HtmlNonExistentInternetResource", "shortDescription": { - "text": "W3C CSS validator" + "text": "Unresolved web link" }, "fullDescription": { - "text": "Reports a discrepancy detected by the W3C CSS Validator.", - "markdown": "Reports a discrepancy detected by the [W3C CSS Validator](https://jigsaw.w3.org/css-validator/)." + "text": "Reports an unresolved web link. Works by making network requests in the background.", + "markdown": "Reports an unresolved web link. Works by making network requests in the background." }, "defaultConfiguration": { "enabled": false, "level": "warning", "parameters": { - "suppressToolId": "W3CssValidation", + "suppressToolId": "HtmlNonExistentInternetResource", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Sanity" } }, "relationships": [ { "target": { - "id": "CSS/Code quality tools", - "index": 129, + "id": "HTML", + "index": 11, "toolComponent": { "name": "QDNET" } @@ -128413,42 +135674,31 @@ ] } ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "com.intellij.plugins.watcher", - "version": "241.16914", - "rules": [ + }, { - "id": "TaskProblemsInspection", + "id": "HtmlRequiredTitleAttribute", "shortDescription": { - "text": "File watcher problems" + "text": "Missing required 'title' attribute" }, "fullDescription": { - "text": "Reports an error detected by the output filters from a File Watcher. A File Watcher tracks changes in files and executes the configured command when a change is detected.", - "markdown": "Reports an error detected by the output filters from a File Watcher.\n\n\nA File Watcher tracks changes in files and executes the configured command when a change is detected." + "text": "Reports a missing title attribute 'frame', 'iframe', 'dl', and 'a' tags. Suggests adding a title attribute. Based on WCAG 2.0: H33, H40, and H64.", + "markdown": "Reports a missing title attribute `frame`, `iframe`, `dl`, and `a` tags. Suggests adding a title attribute. Based on WCAG 2.0: [H33](https://www.w3.org/TR/WCAG20-TECHS/H33.html), [H40](https://www.w3.org/TR/WCAG20-TECHS/H40.html), and [H64](https://www.w3.org/TR/WCAG20-TECHS/H64.html)." }, "defaultConfiguration": { - "enabled": true, + "enabled": false, "level": "note", "parameters": { - "suppressToolId": "TaskProblemsInspection", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "suppressToolId": "HtmlRequiredTitleAttribute", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { - "id": "File Watchers", - "index": 132, + "id": "HTML/Accessibility", + "index": 83, "toolComponent": { "name": "QDNET" } @@ -128458,42 +135708,31 @@ ] } ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "com.dmarcotte.handlebars", - "version": "241.16914", - "rules": [ + }, { - "id": "HbEmptyBlock", + "id": "HtmlRequiredAltAttribute", "shortDescription": { - "text": "Missing block helper argument" + "text": "Missing required 'alt' attribute" }, "fullDescription": { - "text": "Reports an 'if', 'each', or 'with' block helper without an argument.", - "markdown": "Reports an `if`, `each`, or `with` block helper without an argument." + "text": "Reports a missing 'alt' attribute in a 'img' or 'applet' tag or in a 'area' element of an image map. Suggests adding a required attribute with a text alternative for the contents of the tag. Based on WCAG 2.0: H24, H35, H36, H37.", + "markdown": "Reports a missing `alt` attribute in a `img` or `applet` tag or in a `area` element of an image map. Suggests adding a required attribute with a text alternative for the contents of the tag. Based on WCAG 2.0: [H24](https://www.w3.org/TR/WCAG20-TECHS/H24.html), [H35](https://www.w3.org/TR/WCAG20-TECHS/H35.html), [H36](https://www.w3.org/TR/WCAG20-TECHS/H36.html), [H37](https://www.w3.org/TR/WCAG20-TECHS/H37.html)." }, "defaultConfiguration": { "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "HbEmptyBlock", + "suppressToolId": "HtmlRequiredAltAttribute", "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" } }, "relationships": [ { "target": { - "id": "Handlebars_Mustache", - "index": 142, + "id": "HTML/Accessibility", + "index": 83, "toolComponent": { "name": "QDNET" } @@ -128503,87246 +135742,2308 @@ ] } ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - } - ] - }, - "invocations": [ - { - "startTimeUtc": "2025-01-25T09:58:04.0186602Z", - "exitCode": 255, - "exitCodeDescription": "Failure condition triggered:\n- Detected 166 problems across all severities, fail threshold: 0", - "executionSuccessful": true - } - ], - "language": "en-US", - "versionControlProvenance": [ - { - "repositoryUri": "https://github.com/FrankvdStam/SoulSplitter.git", - "revisionId": "0dcb241e7f62cac15be1512024c02024f623eb4e", - "branch": "feature/langversion-13", - "properties": { - "repoUrl": "https://github.com/FrankvdStam/SoulSplitter.git", - "lastAuthorName": "Frank", - "vcsType": "Git", - "lastAuthorEmail": "frank_stam5@hotmail.com" - } - } - ], - "results": [ - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 153, - "startColumn": 65, - "charOffset": 5931, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 151, - "startColumn": 1, - "charOffset": 5727, - "charLength": 220, - "snippet": { - "text": " new EnumFlagViewModel(TimingType.Immediate),\r\n new EnumFlagViewModel(TimingType.OnLoading),\r\n new EnumFlagViewModel(TimingType.OnWarp),\r\n };\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ad6f8ebdb3064944", - "equalIndicator/v1": "ef7ce585c3abbb140e1f0f522dd51bbb09763258a7ea041d7139dcf33586d7a8" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 163, - "startColumn": 61, - "charOffset": 6504, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 161, - "startColumn": 1, - "charOffset": 6314, - "charLength": 214, - "snippet": { - "text": " new EnumFlagViewModel(SplitType.Item),\r\n new EnumFlagViewModel(SplitType.Position),\r\n new EnumFlagViewModel(SplitType.Flag),\r\n };\r\n \r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c0e083ed292cf0bd", - "equalIndicator/v1": "ff5c0a8e2c08c7f0780bc50a7a348c09f8c7bff8abc0a2714943910ba7a90a92" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "MergeSequentialChecks", - "kind": "fail", - "level": "note", - "message": { - "text": "Merge sequential checks", - "markdown": "Merge sequential checks" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 64, - "startColumn": 57, - "charOffset": 2484, - "charLength": 2, - "snippet": { - "text": "&&" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 62, - "startColumn": 1, - "charOffset": 2385, - "charLength": 180, - "snippet": { - "text": "\r\n case SplitType.Bonfire:\r\n return NewSplitBonfireState != null && NewSplitBonfireState.Bonfire != null;\r\n\r\n case SplitType.Item:\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4d05b0d47486c533", - "equalIndicator/v1": "859827cc1992c121ffc4d869a3c47957e2f5a56739f09b0c8cdcafe338a766ea" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "MergeSequentialChecks", - "kind": "fail", - "level": "note", - "message": { - "text": "Merge sequential checks", - "markdown": "Merge sequential checks" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 67, - "startColumn": 54, - "charOffset": 2619, - "charLength": 2, - "snippet": { - "text": "&&" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 65, - "startColumn": 1, - "charOffset": 2526, - "charLength": 175, - "snippet": { - "text": "\r\n case SplitType.Item:\r\n return NewSplitItemState != null && NewSplitItemState.ItemType != null;\r\n\r\n case SplitType.Credits:\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c788683153bd0226", - "equalIndicator/v1": "b665eec3bfb75d079bc1fd1082963396441643f192521dbcefb2f018d981973e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantDefaultMemberInitializer", - "kind": "fail", - "level": "warning", - "message": { - "text": "Initializing field by default value is redundant", - "markdown": "Initializing field by default value is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 120, - "startColumn": 42, - "charOffset": 4437, - "charLength": 6, - "snippet": { - "text": "= null" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 118, - "startColumn": 1, - "charOffset": 4383, - "charLength": 85, - "snippet": { - "text": " }\r\n\r\n private SplitType? _newSplitType = null;\r\n\r\n [XmlIgnore]\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "76dc05de0c05f1df", - "equalIndicator/v1": "742f9dbdc0eb0ba7e101a1a262bf2c8d4b621791287a49fea39f248409c3b62e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantEmptyObjectCreationArgumentList", - "kind": "fail", - "level": "note", - "message": { - "text": "Empty argument list is redundant", - "markdown": "Empty argument list is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 102, - "startColumn": 50, - "charOffset": 3794, - "charLength": 2, - "snippet": { - "text": "()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 100, - "startColumn": 1, - "charOffset": 3697, - "charLength": 174, - "snippet": { - "text": "\r\n case SplitType.Position:\r\n Position = new VectorSize() { Position = CurrentPosition.Clone() };\r\n break;\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d8afaeb4f928c092", - "equalIndicator/v1": "2d8d324ef8f20d8e3ff784a7ef0402cf20ff0176c7f7efd7f045cf39ed60c1c9" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantEmptyObjectCreationArgumentList", - "kind": "fail", - "level": "note", - "message": { - "text": "Empty argument list is redundant", - "markdown": "Empty argument list is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 156, - "startColumn": 155, - "charOffset": 6102, - "charLength": 2, - "snippet": { - "text": "()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 154, - "startColumn": 1, - "charOffset": 5934, - "charLength": 245, - "snippet": { - "text": " };\r\n\r\n public static ObservableCollection> SplitTypes { get; set; } = new ObservableCollection>()\r\n {\r\n new EnumFlagViewModel(SplitType.Boss),\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a083737c350a5d54", - "equalIndicator/v1": "606a6c9ea5fb4a8a3ea70f1eac497e1f4d321c13d0650140e11af304284e2320" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantEmptyObjectCreationArgumentList", - "kind": "fail", - "level": "note", - "message": { - "text": "Empty argument list is redundant", - "markdown": "Empty argument list is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 145, - "startColumn": 41, - "charOffset": 5378, - "charLength": 2, - "snippet": { - "text": "()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 143, - "startColumn": 1, - "charOffset": 5182, - "charLength": 370, - "snippet": { - "text": " public ObservableCollection BooleanFlags { get; set; } = new ObservableCollection()\r\n {\r\n new BoolDescriptionViewModel(){ Description = \"Start automatically\", Value = true },\r\n new BoolDescriptionViewModel(){ Description = \"Reset inventory indices\", Value = true }\r\n };\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4cff0868ed0f1131", - "equalIndicator/v1": "637ac634056f4782bca3c58d2665a04ccd73109db48f2ff7e4e40e547d1faeea" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantEmptyObjectCreationArgumentList", - "kind": "fail", - "level": "note", - "message": { - "text": "Empty argument list is redundant", - "markdown": "Empty argument list is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 149, - "startColumn": 158, - "charOffset": 5712, - "charLength": 2, - "snippet": { - "text": "()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 147, - "startColumn": 1, - "charOffset": 5541, - "charLength": 255, - "snippet": { - "text": " };\r\n\r\n public static ObservableCollection> TimingTypes { get; set; } = new ObservableCollection>()\r\n {\r\n new EnumFlagViewModel(TimingType.Immediate),\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e79e306139f6a21d", - "equalIndicator/v1": "680236b845b1bb81f032667ca41c86be11ced003f69feb9b71e85fe3013ba347" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantEmptyObjectCreationArgumentList", - "kind": "fail", - "level": "note", - "message": { - "text": "Empty argument list is redundant", - "markdown": "Empty argument list is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 110, - "startColumn": 82, - "charOffset": 4140, - "charLength": 2, - "snippet": { - "text": "()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 108, - "startColumn": 1, - "charOffset": 4012, - "charLength": 200, - "snippet": { - "text": "\r\n case SplitType.Bonfire:\r\n NewSplitBonfireState = new Splits.DarkSouls1.BonfireState() { State = BonfireState.Unlocked };\r\n break;\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ed688dc70c51ad6c", - "equalIndicator/v1": "8eb5979087b04e5b32d055c60cfae331255eb92ffa19629b8ad1942cca8465bb" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantEmptyObjectCreationArgumentList", - "kind": "fail", - "level": "note", - "message": { - "text": "Empty argument list is redundant", - "markdown": "Empty argument list is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 146, - "startColumn": 41, - "charOffset": 5480, - "charLength": 2, - "snippet": { - "text": "()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 144, - "startColumn": 1, - "charOffset": 5327, - "charLength": 227, - "snippet": { - "text": " {\r\n new BoolDescriptionViewModel(){ Description = \"Start automatically\", Value = true },\r\n new BoolDescriptionViewModel(){ Description = \"Reset inventory indices\", Value = true }\r\n };\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "8a54528c02781916", - "equalIndicator/v1": "ababcdddcf004ae18233bc33bd6a3a18d40c580289093e43ae79ee273dde7450" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantEmptyObjectCreationArgumentList", - "kind": "fail", - "level": "note", - "message": { - "text": "Empty argument list is redundant", - "markdown": "Empty argument list is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 98, - "startColumn": 72, - "charOffset": 3587, - "charLength": 2, - "snippet": { - "text": "()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 96, - "startColumn": 1, - "charOffset": 3450, - "charLength": 248, - "snippet": { - "text": " {\r\n case SplitType.Attribute:\r\n NewSplitValue = new Splits.DarkSouls1.Attribute() { AttributeType = SoulMemory.DarkSouls1.Attribute.Vitality, Level = 10 };\r\n break;\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7ad4b854e870363c", - "equalIndicator/v1": "bd11dab5ec7341a4273558ec8001f2548e0cdfbff66b578390970b8e552cbf78" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantEmptyObjectCreationArgumentList", - "kind": "fail", - "level": "note", - "message": { - "text": "Empty argument list is redundant", - "markdown": "Empty argument list is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 143, - "startColumn": 142, - "charOffset": 5323, - "charLength": 2, - "snippet": { - "text": "()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 141, - "startColumn": 1, - "charOffset": 5000, - "charLength": 439, - "snippet": { - "text": "\r\n #region Static UI source data ============================================================================================================================================\r\n public ObservableCollection BooleanFlags { get; set; } = new ObservableCollection()\r\n {\r\n new BoolDescriptionViewModel(){ Description = \"Start automatically\", Value = true },\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1a1036a3542fddff", - "equalIndicator/v1": "df37820f71aa670b64041b52413c3a67d4d5cc7f4e3953227199df17641769c9" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantNameQualifier", - "kind": "fail", - "level": "warning", - "message": { - "text": "Qualifier is redundant", - "markdown": "Qualifier is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 98, - "startColumn": 93, - "charOffset": 3608, - "charLength": 22, - "snippet": { - "text": "SoulMemory.DarkSouls1." - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 96, - "startColumn": 1, - "charOffset": 3450, - "charLength": 248, - "snippet": { - "text": " {\r\n case SplitType.Attribute:\r\n NewSplitValue = new Splits.DarkSouls1.Attribute() { AttributeType = SoulMemory.DarkSouls1.Attribute.Vitality, Level = 10 };\r\n break;\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "bb6a00e25a6e80c0", - "equalIndicator/v1": "d65290a376d1a0a323d6005ef0b236b3fade9cb66fdbb45cd5957982db0dd919" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", - "kind": "fail", - "level": "note", - "message": { - "text": "Some values of the enum are not processed inside switch: KnownFlag, ItemPickup, null", - "markdown": "Some values of the enum are not processed inside switch: KnownFlag, ItemPickup, null" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 48, - "startColumn": 13, - "charOffset": 1921, - "charLength": 6, - "snippet": { - "text": "switch" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 46, - "startColumn": 1, - "charOffset": 1892, - "charLength": 92, - "snippet": { - "text": " }\r\n\r\n switch (NewSplitType)\r\n {\r\n default:\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "23a0517eca880c64", - "equalIndicator/v1": "1f2be0a78eaece0f9666ffc06bbb0e3b408f8a2f54daf78fb8c3e6d2b518d5da" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "SwitchStatementMissingSomeEnumCasesNoDefault", - "kind": "fail", - "level": "note", - "message": { - "text": "Some values of the enum are not processed inside switch: Boss, KnownFlag, ItemPickup...", - "markdown": "Some values of the enum are not processed inside switch: Boss, KnownFlag, ItemPickup..." - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 95, - "startColumn": 17, - "charOffset": 3427, - "charLength": 6, - "snippet": { - "text": "switch" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 93, - "startColumn": 1, - "charOffset": 3356, - "charLength": 159, - "snippet": { - "text": " SetField(ref _newSplitType, value);\r\n\r\n switch (NewSplitType)\r\n {\r\n case SplitType.Attribute:\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4d87e767e0889218", - "equalIndicator/v1": "85bf90966cfbd77a66bdd20f545e4f72a14c96a566244ebd90146d7b19d2493e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "UseSymbolAlias", - "kind": "fail", - "level": "note", - "message": { - "text": "Use type alias 'Attribute'", - "markdown": "Use type alias 'Attribute'" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 98, - "startColumn": 93, - "charOffset": 3608, - "charLength": 31, - "snippet": { - "text": "SoulMemory.DarkSouls1.Attribute" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 96, - "startColumn": 1, - "charOffset": 3450, - "charLength": 248, - "snippet": { - "text": " {\r\n case SplitType.Attribute:\r\n NewSplitValue = new Splits.DarkSouls1.Attribute() { AttributeType = SoulMemory.DarkSouls1.Attribute.Vitality, Level = 10 };\r\n break;\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a9b812250de78dc4", - "equalIndicator/v1": "3b5f7e8ab72b22ee5ffc2dd42dbb51a64cff8b8cdbdd4f8f795614ebbde95f14" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "YAMLSchemaValidation", - "kind": "fail", - "level": "warning", - "message": { - "text": "Schema validation: Missing required property 'version' = 1.0", - "markdown": "Schema validation: Missing required property 'version' = 1.0" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": ".github/workflows/qodana.yml", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 1, - "startColumn": 1, - "charOffset": 0, - "charLength": 12, - "snippet": { - "text": "name: Qodana" - }, - "sourceLanguage": "yaml" - }, - "contextRegion": { - "startLine": 1, - "startColumn": 1, - "charOffset": 0, - "charLength": 32, - "snippet": { - "text": "name: Qodana\r\non:\r\n #schedule:\r" - }, - "sourceLanguage": "yaml" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "18d6a70f4b1439d0", - "equalIndicator/v1": "2a03b40c141d224bf54ff3e9565ea9aa53d43ceb165c31255d5e6806e440d259" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "yaml" - ] - } - }, - { - "ruleId": "AccessToStaticMemberViaDerivedType", - "kind": "fail", - "level": "warning", - "message": { - "text": "Access to a static member of a type via a derived type", - "markdown": "Access to a static member of a type via a derived type" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Migrations/Migrator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 123, - "startColumn": 33, - "charOffset": 5890, - "charLength": 31, - "snippet": { - "text": "SoulMemory.DarkSouls3.Attribute" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 121, - "startColumn": 1, - "charOffset": 5822, - "charLength": 331, - "snippet": { - "text": "\r\n if (\r\n SoulMemory.DarkSouls3.Attribute.TryParse(attributeType.InnerText, out SoulMemory.DarkSouls3.Attribute attributeTypeParsed) &&\r\n int.TryParse(attributeLevel.InnerText, out int attributeLevelParsed)\r\n )\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "50f1074e22d8662b", - "equalIndicator/v1": "1753b7bd92f528eac26a0ef15c28b512b7f645d3b012d571714e5042281aadfa" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "AccessToStaticMemberViaDerivedType", - "kind": "fail", - "level": "warning", - "message": { - "text": "Access to a static member of a type via a derived type", - "markdown": "Access to a static member of a type via a derived type" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Migrations/Migrator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 91, - "startColumn": 33, - "charOffset": 3999, - "charLength": 29, - "snippet": { - "text": "SoulMemory.DarkSouls3.Bonfire" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 89, - "startColumn": 1, - "charOffset": 3862, - "charLength": 351, - "snippet": { - "text": " {\r\n var split = bonfire.GetChildNodeByName(\"Split\");\r\n if (SoulMemory.DarkSouls3.Bonfire.TryParse(split.InnerText, out SoulMemory.DarkSouls3.Bonfire b))\r\n {\r\n newDarkSouls3ViewModel.NewSplitTimingType = timingType;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "874e0b1211730566", - "equalIndicator/v1": "23c1f865d861d55630c4a88a482e72fc46873dec1fc90816118fd93ac73ee9f6" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "AccessToStaticMemberViaDerivedType", - "kind": "fail", - "level": "warning", - "message": { - "text": "Access to a static member of a type via a derived type", - "markdown": "Access to a static member of a type via a derived type" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Migrations/Migrator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 231, - "startColumn": 33, - "charOffset": 11632, - "charLength": 22, - "snippet": { - "text": "SoulMemory.Sekiro.Idol" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 229, - "startColumn": 1, - "charOffset": 11498, - "charLength": 330, - "snippet": { - "text": " {\r\n var split = idol.GetChildNodeByName(\"Split\");\r\n if (SoulMemory.Sekiro.Idol.TryParse(split.InnerText, out SoulMemory.Sekiro.Idol i))\r\n {\r\n newSekiroViewModel.NewSplitTimingType = timingType;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4ab2b673f69e911a", - "equalIndicator/v1": "9e41dda177a031d3a40b33cc79b599f09ef5ad299e011daf9fc9499bfb264401" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "AccessToStaticMemberViaDerivedType", - "kind": "fail", - "level": "warning", - "message": { - "text": "Access to a static member of a type via a derived type", - "markdown": "Access to a static member of a type via a derived type" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Migrations/Migrator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 77, - "startColumn": 33, - "charOffset": 3181, - "charLength": 26, - "snippet": { - "text": "SoulMemory.DarkSouls3.Boss" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 75, - "startColumn": 1, - "charOffset": 3047, - "charLength": 342, - "snippet": { - "text": " {\r\n var split = boss.GetChildNodeByName(\"Split\");\r\n if (SoulMemory.DarkSouls3.Boss.TryParse(split.InnerText, out SoulMemory.DarkSouls3.Boss b))\r\n {\r\n newDarkSouls3ViewModel.NewSplitTimingType = timingType;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ae94872d3f6c17a4", - "equalIndicator/v1": "ac61ae1ea139d267aa190f494870d9ac841fb3bb2d8335db4d5c8709919cadc2" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "AccessToStaticMemberViaDerivedType", - "kind": "fail", - "level": "warning", - "message": { - "text": "Access to a static member of a type via a derived type", - "markdown": "Access to a static member of a type via a derived type" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Migrations/Migrator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 217, - "startColumn": 33, - "charOffset": 10847, - "charLength": 22, - "snippet": { - "text": "SoulMemory.Sekiro.Boss" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 215, - "startColumn": 1, - "charOffset": 10713, - "charLength": 330, - "snippet": { - "text": " {\r\n var split = boss.GetChildNodeByName(\"Split\");\r\n if (SoulMemory.Sekiro.Boss.TryParse(split.InnerText, out SoulMemory.Sekiro.Boss b))\r\n {\r\n newSekiroViewModel.NewSplitTimingType = timingType;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "fb26f80c0bd6191c", - "equalIndicator/v1": "bf6800c8af49426a306842f68e8d836c37cdfe2b65a8a0e0eeb300fb7d4ec247" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "AccessToStaticMemberViaDerivedType", - "kind": "fail", - "level": "warning", - "message": { - "text": "Access to a static member of a type via a derived type", - "markdown": "Access to a static member of a type via a derived type" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Migrations/Migrator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 105, - "startColumn": 33, - "charOffset": 4835, - "charLength": 32, - "snippet": { - "text": "SoulMemory.DarkSouls3.ItemPickup" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 103, - "startColumn": 1, - "charOffset": 4695, - "charLength": 360, - "snippet": { - "text": " {\r\n var split = itemPickup.GetChildNodeByName(\"Split\");\r\n if (SoulMemory.DarkSouls3.ItemPickup.TryParse(split.InnerText, out SoulMemory.DarkSouls3.ItemPickup i))\r\n {\r\n newDarkSouls3ViewModel.NewSplitTimingType = timingType;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "66615877a985e171", - "equalIndicator/v1": "f55cbacb905ee7f75b302b753e4018fe36d451d567bd00ed693b5629af836a74" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "ArrangeDefaultValueWhenTypeNotEvident", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant type specification", - "markdown": "Redundant type specification" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Extensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 32, - "startColumn": 27, - "charOffset": 1211, - "charLength": 3, - "snippet": { - "text": "(T)" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 30, - "startColumn": 1, - "charOffset": 1129, - "charLength": 101, - "snippet": { - "text": " if (string.IsNullOrWhiteSpace(xml))\r\n {\r\n return default(T)!;\r\n }\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b76b308654948a75", - "equalIndicator/v1": "a13caa2d47bc57752f46b258aef0c74d57fca4b3a029603dd09e182cc75397ae" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "ArrangeModifiersOrder", - "kind": "fail", - "level": "note", - "message": { - "text": "Inconsistent modifiers declaration order", - "markdown": "Inconsistent modifiers declaration order" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/Item.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 50, - "startColumn": 5, - "charOffset": 1660, - "charLength": 23, - "snippet": { - "text": "private readonly static" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 48, - "startColumn": 1, - "charOffset": 1639, - "charLength": 216, - "snippet": { - "text": " } \r\n\r\n private readonly static ReadOnlyCollection LookupTable = new(new List()\r\n {\r\n new() { Category = Category.Protector,GroupName = \"Armor\", Name = \"Iron Helmet\", Id = 40000 },\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "99a14f7ee880cbf9", - "equalIndicator/v1": "15bb2234c0b9625fe8ab810a606636c1d6e9ac6890f0b96461802fbe7f98f120" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeRedundantParentheses", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant parentheses", - "markdown": "Redundant parentheses" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/FlagTrackerViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 193, - "startColumn": 38, - "charOffset": 6321, - "charLength": 1, - "snippet": { - "text": "(" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 191, - "startColumn": 1, - "charOffset": 6192, - "charLength": 264, - "snippet": { - "text": " {\r\n var done = category.EventFlags.Count(i => i.State);\r\n var percentage = (done / (float)category.EventFlags.Count) * 100.0f;\r\n category.Progress = $\"{percentage:0.00}%\";\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d4e088bc2c52e843", - "equalIndicator/v1": "031ce54c4d1fe3151dbd1a90f102c31477f2e796689fbe20d11f0d50de49c485" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "ArrangeRedundantParentheses", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant parentheses", - "markdown": "Redundant parentheses" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/ItemReader.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 111, - "startColumn": 31, - "charOffset": 4712, - "charLength": 1, - "snippet": { - "text": "(" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 109, - "startColumn": 1, - "charOffset": 4601, - "charLength": 185, - "snippet": { - "text": " //Separate digits\r\n int one = item % 10;\r\n int ten = (item / 10) % 10;\r\n int hundred = (item / 100) % 10;\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1d2626768d9a7a86", - "equalIndicator/v1": "0a427b6507b680e277338d099b225522bc7ab63fe9a2d72a70729c9922ebeb28" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeRedundantParentheses", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant parentheses", - "markdown": "Redundant parentheses" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Sekiro/Sekiro.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 283, - "startColumn": 44, - "charOffset": 10561, - "charLength": 1, - "snippet": { - "text": "(" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 281, - "startColumn": 1, - "charOffset": 10459, - "charLength": 184, - "snippet": { - "text": " for (int i = 0; i < size; i++)\r\n {\r\n var area = vector.ReadByte((i * 0x38) + 0xb);\r\n if (area == eventFlagArea)\r\n {\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "31f1d8bbe2cee7c9", - "equalIndicator/v1": "1201d18e4f4f5a1062bc725d0fad703242ff1d987eb46a59e8b24686162388f0" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeRedundantParentheses", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant parentheses", - "markdown": "Redundant parentheses" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Sl2Reader.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 82, - "startColumn": 45, - "charOffset": 2989, - "charLength": 1, - "snippet": { - "text": "(" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 80, - "startColumn": 1, - "charOffset": 2850, - "charLength": 247, - "snippet": { - "text": " file = DecryptSl2(file);\r\n int saveSlotSize = 0x60030;\r\n int igtOffset = 0x2EC + (saveSlotSize * slot);\r\n igt = BitConverter.ToInt32(file, igtOffset);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "96daffa8d7b5f542", - "equalIndicator/v1": "1e5c40c558d16838b3a2e444abc8ebedeae78c061f6129438bd5d2252ca00de8" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeRedundantParentheses", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant parentheses", - "markdown": "Redundant parentheses" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/ParamClassGenerator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 240, - "startColumn": 27, - "charOffset": 10258, - "charLength": 1, - "snippet": { - "text": "(" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 238, - "startColumn": 1, - "charOffset": 10169, - "charLength": 204, - "snippet": { - "text": " if(currentField.ArraySize != null)\r\n {\r\n offset += (ParamData.ParamByteSize[currentField.ParamType] * currentField.ArraySize.Value);\r\n }\r\n else\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7c4a008165de4b51", - "equalIndicator/v1": "22828307975a2fd0af4654130fe8e58739042d09167108775fa976b7ade88633" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeRedundantParentheses", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant parentheses", - "markdown": "Redundant parentheses" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/EldenRing.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 478, - "startColumn": 37, - "charOffset": 16072, - "charLength": 1, - "snippet": { - "text": "(" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 476, - "startColumn": 1, - "charOffset": 16003, - "charLength": 194, - "snippet": { - "text": " else\r\n {\r\n calculatedPointer = (_virtualMemoryFlag.ReadInt32(0x20) * currentElement.ReadInt32(0x30)) + _virtualMemoryFlag.ReadInt64(0x28);\r\n }\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "36d16522d03bc503", - "equalIndicator/v1": "3b97af5bf36b0a02ddb94b44b2f7697c47ebb64c7a01ab2e2a709c892c861221" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeRedundantParentheses", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant parentheses", - "markdown": "Redundant parentheses" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Sekiro/Sekiro.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 609, - "startColumn": 31, - "charOffset": 23108, - "charLength": 1, - "snippet": { - "text": "(" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 607, - "startColumn": 1, - "charOffset": 23063, - "charLength": 156, - "snippet": { - "text": " ]);\r\n\r\n int jmpTarget = (int)((igtFixEntryPoint+5)-(igtFixCodeLoc+103+5));\r\n igtFixCode.AddRange(BitConverter.GetBytes(jmpTarget));\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "befd457d0dcb5121", - "equalIndicator/v1": "3f425a5c684bf560a7e2b82a04f695e698d06be43f0a5cdf1fec695088ac1f7d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeRedundantParentheses", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant parentheses", - "markdown": "Redundant parentheses" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 226, - "startColumn": 44, - "charOffset": 7717, - "charLength": 1, - "snippet": { - "text": "(" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 224, - "startColumn": 1, - "charOffset": 7621, - "charLength": 178, - "snippet": { - "text": " {\r\n //0x00007ff4fd9ba4c3\r\n var area = vector.ReadByte((i * 0x38) + 0xb);\r\n if (area == eventFlagArea)\r\n {\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5d8333c178032990", - "equalIndicator/v1": "42ba158dfe795cf37b52950d27a2229dc55546b59f14c28d6ba5e89b786fdbb3" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeRedundantParentheses", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant parentheses", - "markdown": "Redundant parentheses" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 165, - "startColumn": 24, - "charOffset": 5751, - "charLength": 1, - "snippet": { - "text": "(" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 163, - "startColumn": 1, - "charOffset": 5715, - "charLength": 204, - "snippet": { - "text": " }\r\n\r\n var category = (eventFlagId / divisor); //stored in rax after; div r8d\r\n var leastSignificantDigits = eventFlagId - (category * divisor); //stored in r11 after; sub r11d,r8d\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b4df5c74376a82ec", - "equalIndicator/v1": "49ab4532fd1113399a8a848ae826a56c45ae3976f4d28459ae243d2ed832600b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeRedundantParentheses", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant parentheses", - "markdown": "Redundant parentheses" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 241, - "startColumn": 71, - "charOffset": 8418, - "charLength": 1, - "snippet": { - "text": "(" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 239, - "startColumn": 1, - "charOffset": 8219, - "charLength": 336, - "snippet": { - "text": " {\r\n worldInfoBlockVector = vector.CreatePointerFromAddress(i * 0x38 + 0x28);\r\n var flag = worldInfoBlockVector.ReadInt32((index * 0x70) + 0x8);\r\n\r\n if ((flag >> 0x10 & 0xff) == eventFlagIdDiv10000 && flag >> 0x18 == eventFlagArea)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "92dd75e3c83e5cd6", - "equalIndicator/v1": "58547e5cac763167156cc15274e771308bf5d02a28aca9a3d10c1e34504f3b04" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeRedundantParentheses", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant parentheses", - "markdown": "Redundant parentheses" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/ItemReader.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 112, - "startColumn": 35, - "charOffset": 4765, - "charLength": 1, - "snippet": { - "text": "(" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 110, - "startColumn": 1, - "charOffset": 4640, - "charLength": 217, - "snippet": { - "text": " int one = item % 10;\r\n int ten = (item / 10) % 10;\r\n int hundred = (item / 100) % 10;\r\n\r\n id = item - (one + (10 * ten) + (100 * hundred));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e14049d74aba3aa0", - "equalIndicator/v1": "60f950481bf16e63beaa2e0abe1205ef8413ae92c5104caf7a87006d4fad1cdf" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeRedundantParentheses", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant parentheses", - "markdown": "Redundant parentheses" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/ItemReader.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 114, - "startColumn": 40, - "charOffset": 4826, - "charLength": 1, - "snippet": { - "text": "(" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 112, - "startColumn": 1, - "charOffset": 4731, - "charLength": 228, - "snippet": { - "text": " int hundred = (item / 100) % 10;\r\n\r\n id = item - (one + (10 * ten) + (100 * hundred));\r\n infusion = (ItemInfusion)hundred;\r\n level = one + (10 * ten);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1a094529f11a1636", - "equalIndicator/v1": "69712305b74b192ad2f2596c196e8cc99088f5dc88d3e428d2b456fcd6a288f3" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeRedundantParentheses", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant parentheses", - "markdown": "Redundant parentheses" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/ItemReader.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 116, - "startColumn": 35, - "charOffset": 4947, - "charLength": 1, - "snippet": { - "text": "(" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 114, - "startColumn": 1, - "charOffset": 4787, - "charLength": 193, - "snippet": { - "text": " id = item - (one + (10 * ten) + (100 * hundred));\r\n infusion = (ItemInfusion)hundred;\r\n level = one + (10 * ten);\r\n }\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "bafbf93aa3467060", - "equalIndicator/v1": "719fd6e0015ee249e6b0235ac6317f2e942f2126f95d920a4a81c134424ac5b2" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeRedundantParentheses", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant parentheses", - "markdown": "Redundant parentheses" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Sl2Reader.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 73, - "startColumn": 45, - "charOffset": 2554, - "charLength": 1, - "snippet": { - "text": "(" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 71, - "startColumn": 1, - "charOffset": 2459, - "charLength": 203, - "snippet": { - "text": " saveSlotSize = 0x60190;\r\n\r\n int igtOffset = 0x2dc + (saveSlotSize * slot);\r\n igt = BitConverter.ToInt32(file, igtOffset);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "faf03c122d3f9d62", - "equalIndicator/v1": "71a0db22485b36606209c5954b7f82a578de6f9e4c2d22c0f1540234d0eee254" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeRedundantParentheses", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant parentheses", - "markdown": "Redundant parentheses" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/ItemReader.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 114, - "startColumn": 53, - "charOffset": 4839, - "charLength": 1, - "snippet": { - "text": "(" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 112, - "startColumn": 1, - "charOffset": 4731, - "charLength": 228, - "snippet": { - "text": " int hundred = (item / 100) % 10;\r\n\r\n id = item - (one + (10 * ten) + (100 * hundred));\r\n infusion = (ItemInfusion)hundred;\r\n level = one + (10 * ten);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e1f58664117d11c2", - "equalIndicator/v1": "838ffdb8175773c0c67337af7668ed1fa4cbd028f9a2b6b939be86838bab09b5" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeRedundantParentheses", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant parentheses", - "markdown": "Redundant parentheses" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Sekiro/Sekiro.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 297, - "startColumn": 71, - "charOffset": 11215, - "charLength": 1, - "snippet": { - "text": "(" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 295, - "startColumn": 1, - "charOffset": 11016, - "charLength": 336, - "snippet": { - "text": " {\r\n worldInfoBlockVector = vector.CreatePointerFromAddress(i * 0x38 + 0x28);\r\n var flag = worldInfoBlockVector.ReadInt32((index * 0xb0) + 0x8);\r\n\r\n if ((flag >> 0x10 & 0xff) == eventFlagIdDiv10000 && flag >> 0x18 == eventFlagArea)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e2f702707504fa1b", - "equalIndicator/v1": "83aa7abe26cf514765672571938b16210a328898b730ec9b1a894804c362335a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeRedundantParentheses", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant parentheses", - "markdown": "Redundant parentheses" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/EldenRing.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 430, - "startColumn": 24, - "charOffset": 14128, - "charLength": 1, - "snippet": { - "text": "(" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 428, - "startColumn": 1, - "charOffset": 14092, - "charLength": 203, - "snippet": { - "text": " }\r\n\r\n var category = (eventFlagId / divisor); //stored in rax after; div r8d\r\n var leastSignificantDigits = eventFlagId - (category * divisor);//stored in r11 after; sub r11d,r8d\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ffa2206305d4f70a", - "equalIndicator/v1": "8b6e0fe30b481a04a160fe2a8b8c272bce052d8664d12e6578027a877b78bbed" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeRedundantParentheses", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant parentheses", - "markdown": "Redundant parentheses" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Sekiro/Sekiro.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 316, - "startColumn": 86, - "charOffset": 11933, - "charLength": 1, - "snippet": { - "text": "(" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 314, - "startColumn": 1, - "charOffset": 11793, - "charLength": 219, - "snippet": { - "text": " if (found)\r\n {\r\n flagWorldBlockInfoCategory = worldInfoBlockVector!.ReadInt32((index * 0xb0) + 0x20);\r\n break;\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5524b00dfa430611", - "equalIndicator/v1": "8c8acdec5d4eb464186d5fcbed14024b0b3fa05bb5cc7827a27eb1aee4f63e47" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeRedundantParentheses", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant parentheses", - "markdown": "Redundant parentheses" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/EldenRing.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 431, - "startColumn": 52, - "charOffset": 14236, - "charLength": 1, - "snippet": { - "text": "(" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 429, - "startColumn": 1, - "charOffset": 14103, - "charLength": 279, - "snippet": { - "text": "\r\n var category = (eventFlagId / divisor); //stored in rax after; div r8d\r\n var leastSignificantDigits = eventFlagId - (category * divisor);//stored in r11 after; sub r11d,r8d\r\n\r\n var currentElement = _virtualMemoryFlag.CreatePointerFromAddress(0x38); //rdx\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "65047b983ec007e4", - "equalIndicator/v1": "9123b0a46e647534394c16b315844bfee8acd52b7ca42bf34cf6e0d518081494" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeRedundantParentheses", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant parentheses", - "markdown": "Redundant parentheses" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/FlagTrackerViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 201, - "startColumn": 42, - "charOffset": 6725, - "charLength": 1, - "snippet": { - "text": "(" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 199, - "startColumn": 1, - "charOffset": 6594, - "charLength": 249, - "snippet": { - "text": " {\r\n var done = _lookup.Count(i => i.eventFlag.State);\r\n var percentageDone = (done / (float)_lookup.Count) * 100.0f;\r\n Progress = $\"{percentageDone:0.00}%\";\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0e59b95f0e06e587", - "equalIndicator/v1": "985df20db0831b3f5adcdf9d17bfa5e6236216e2650f5c77ba756341110f9498" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "ArrangeRedundantParentheses", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant parentheses", - "markdown": "Redundant parentheses" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Sl2Reader.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 101, - "startColumn": 42, - "charOffset": 3440, - "charLength": 1, - "snippet": { - "text": "(" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 99, - "startColumn": 1, - "charOffset": 3375, - "charLength": 124, - "snippet": { - "text": " try\r\n {\r\n return File.Exists(path) && !(new FileInfo(path).IsReadOnly);\r\n }\r\n catch\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f75d028f547a06bc", - "equalIndicator/v1": "a839517ff4ad05ac4534e9f6bf7a8606a9864aa635fafc0b1b596f47884cb361" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeRedundantParentheses", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant parentheses", - "markdown": "Redundant parentheses" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/ParamClassGenerator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 226, - "startColumn": 67, - "charOffset": 9718, - "charLength": 1, - "snippet": { - "text": "(" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 224, - "startColumn": 1, - "charOffset": 9563, - "charLength": 282, - "snippet": { - "text": "\r\n //Check if bitfield is out of storage, and next bitfield should start\r\n if (currentBitfield.Bitfields.Sum(b => b.size) >= (ParamData.ParamByteSize[currentBitfield.ParamType] * 8))\r\n {\r\n result.Add(currentBitfield);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d95001950d77112e", - "equalIndicator/v1": "c306a9610647d511162f4a3aa258c164fc93e9205e49f2e56650452dc51e851d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeRedundantParentheses", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant parentheses", - "markdown": "Redundant parentheses" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/soulmods/Soulmods.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 104, - "startColumn": 39, - "charOffset": 3708, - "charLength": 1, - "snippet": { - "text": "(" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 102, - "startColumn": 1, - "charOffset": 3627, - "charLength": 283, - "snippet": { - "text": " if (requestedSize > 0)\r\n {\r\n var totalSize = (int)(4 + (requestedSize * Marshal.SizeOf()));\r\n buffer = process.Allocate(totalSize);\r\n process.WriteProcessMemory(buffer.ToInt64(), BitConverter.GetBytes(requestedSize));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "2786737dc7365865", - "equalIndicator/v1": "d2ce41ee206cce8c0e15f705c4ae3fc3834fb510c83358c0454eabad0aae6585" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeRedundantParentheses", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant parentheses", - "markdown": "Redundant parentheses" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 362, - "startColumn": 37, - "charOffset": 12799, - "charLength": 1, - "snippet": { - "text": "(" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 360, - "startColumn": 1, - "charOffset": 12664, - "charLength": 210, - "snippet": { - "text": " offset += EventFlagAreas[area] * 0x500;\r\n offset += section * 128;\r\n offset += (number - (number % 32)) / 8;\r\n\r\n mask = 0x80000000 >> (number % 32);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "376f6349c2b2702c", - "equalIndicator/v1": "d5977743ab66dceadd1ea7efddda82e32921a23fc8c1ab09bd00fa78fc1715c4" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeRedundantParentheses", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant parentheses", - "markdown": "Redundant parentheses" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 213, - "startColumn": 37, - "charOffset": 7544, - "charLength": 1, - "snippet": { - "text": "(" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 211, - "startColumn": 1, - "charOffset": 7475, - "charLength": 219, - "snippet": { - "text": " else\r\n {\r\n calculatedPointer = (_eventFlagMan.ReadInt32(0x20) * currentElement.ReadInt32(0x30)) +\r\n _eventFlagMan.ReadInt64(0x28);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e715b1f9ec1872a3", - "equalIndicator/v1": "dd41fff5817797736c13cecade2dadb6fab1d6681b8c9936c58251d8fdccccb9" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeRedundantParentheses", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant parentheses", - "markdown": "Redundant parentheses" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 260, - "startColumn": 86, - "charOffset": 9136, - "charLength": 1, - "snippet": { - "text": "(" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 258, - "startColumn": 1, - "charOffset": 8996, - "charLength": 219, - "snippet": { - "text": " if (found)\r\n {\r\n flagWorldBlockInfoCategory = worldInfoBlockVector!.ReadInt32((index * 0x70) + 0x20);\r\n break;\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "44112d11c40e0580", - "equalIndicator/v1": "f3939f9bf5064b781579004d3590caacbeae5c4c8d3806559ee06b3751395e7d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeRedundantParentheses", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant parentheses", - "markdown": "Redundant parentheses" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 303, - "startColumn": 37, - "charOffset": 10855, - "charLength": 1, - "snippet": { - "text": "(" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 301, - "startColumn": 1, - "charOffset": 10720, - "charLength": 210, - "snippet": { - "text": " offset += EventFlagAreas[area] * 0x500;\r\n offset += section * 128;\r\n offset += (number - (number % 32)) / 8;\r\n\r\n mask = 0x80000000 >> (number % 32);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c98148e7bd37efeb", - "equalIndicator/v1": "f5f48e66e97fbfda30ddc4308781febf275ac5d3190350c052c7b5ec8d560ea3" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeRedundantParentheses", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant parentheses", - "markdown": "Redundant parentheses" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 166, - "startColumn": 52, - "charOffset": 5859, - "charLength": 1, - "snippet": { - "text": "(" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 164, - "startColumn": 1, - "charOffset": 5726, - "charLength": 260, - "snippet": { - "text": "\r\n var category = (eventFlagId / divisor); //stored in rax after; div r8d\r\n var leastSignificantDigits = eventFlagId - (category * divisor); //stored in r11 after; sub r11d,r8d\r\n\r\n var currentElement = _eventFlagMan.Pointer64(0x38); //rdx\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "60f16b732384a89d", - "equalIndicator/v1": "f675f59c863a926e92405f861322e2b815dd77d06d2f143d942ec2c9c58041a4" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/KnownFlag.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 202, - "startColumn": 30, - "charOffset": 6276, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 200, - "startColumn": 1, - "charOffset": 6190, - "charLength": 90, - "snippet": { - "text": "\r\n [Annotation(Name = \"Takes Rold Lift 1050542200\")]\r\n TakeGoldLift = 1050542200,\r\n}" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f6bf46accecaac74", - "equalIndicator/v1": "02b5b9d74136feac11826a20813b9d7e2eca69605225290e7a2cbb0574862d41" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/MainViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 411, - "startColumn": 26, - "charOffset": 12814, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 409, - "startColumn": 1, - "charOffset": 12738, - "charLength": 92, - "snippet": { - "text": " {\r\n OmitXmlDeclaration = true,\r\n Indent = true,\r\n };\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4fe94a9d4892466c", - "equalIndicator/v1": "0626affa7197d88dca836643cfb7e6802e5ec10a005fa211160d17d8b3c6d7a4" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerTreeBuilder.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 52, - "startColumn": 28, - "charOffset": 1950, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 50, - "startColumn": 1, - "charOffset": 1865, - "charLength": 124, - "snippet": { - "text": " Name = name,\r\n Pattern = pattern,\r\n Offset = offset,\r\n };\r\n Tree.Add(node);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "2ee5d670be778e17", - "equalIndicator/v1": "0894c57e42d8537d60578ea5fb49124172d51ee0ace3beadb73e5f63b60c0a3a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Sekiro/Idol.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 187, - "startColumn": 25, - "charOffset": 7292, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 185, - "startColumn": 1, - "charOffset": 7191, - "charLength": 107, - "snippet": { - "text": "\r\n [Annotation(Name = \"Sanctuary\", Description = \"Fountainhead Palace\")]\r\n Sanctuary = 12500005,\r\n}\r\n" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1ae93317d7d35739", - "equalIndicator/v1": "0ad38dafc35520064fed56dd33f089b26006447282e276b8e18fc57246c52e89" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/TimerState.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 22, - "startColumn": 12, - "charOffset": 901, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 20, - "startColumn": 1, - "charOffset": 868, - "charLength": 39, - "snippet": { - "text": "{\r\n WaitForStart,\r\n Running,\r\n}\r\n" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ecce4cbd77150d34", - "equalIndicator/v1": "0c6b6114016ed7719d967d90f772fc3b56328c2be3ffa13078899930a13f766e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 285, - "startColumn": 20, - "charOffset": 10136, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 283, - "startColumn": 1, - "charOffset": 10073, - "charLength": 75, - "snippet": { - "text": " {\"170\", 15},\r\n {\"180\", 16},\r\n {\"181\", 17},\r\n };\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "47ec88614913638d", - "equalIndicator/v1": "0d72a9b53c1bb7f6f769785ed2a8fa51643707517ca170e5aec34323399206bd" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Boss.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 100, - "startColumn": 33, - "charOffset": 2925, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 98, - "startColumn": 1, - "charOffset": 2840, - "charLength": 91, - "snippet": { - "text": " \r\n [Annotation(Name = \"Sanctuary Guardian\")]\r\n SanctuaryGuardian = 11210000,\r\n}\r\n" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4f853b5fb50ba8fd", - "equalIndicator/v1": "0dabb17374a4854d8512b4f9ea09f67cff7f865f3c4ffff308be975b03263d60" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/KnownFlag.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 178, - "startColumn": 48, - "charOffset": 8304, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 176, - "startColumn": 1, - "charOffset": 8159, - "charLength": 151, - "snippet": { - "text": "\r\n [Annotation(Name = \"Goughless Kalameeth Death Animation 11210063\", Description = \"Other\")]\r\n GoughlessKalameethDeathAnimation = 11210063,\r\n}\r\n" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5c92bd1617dddb1a", - "equalIndicator/v1": "0fb11459e7edc4bef247c57ea239076e1085b9e2175c2528952735768943b1b1" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls2/vanilla.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 173, - "startColumn": 40, - "charOffset": 5936, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 171, - "startColumn": 1, - "charOffset": 5813, - "charLength": 135, - "snippet": { - "text": " { Attribute.Adaptability, 0x14},\r\n { Attribute.Intelligence, 0x10},\r\n { Attribute.Faith , 0x12},\r\n };\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "879f400d321161f3", - "equalIndicator/v1": "16520e8d5eebc55c4233f32eee3f1ddacd567fe94e1f9190ac43c4c33cd3706d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/ItemPickup.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 10929, - "startColumn": 66, - "charOffset": 532563, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 10927, - "startColumn": 1, - "charOffset": 532395, - "charLength": 175, - "snippet": { - "text": "\r\n [Annotation(Name = \"[Scadu Altus - Swordhand of Night Jolán] Swordhand of Night Jolán 400670\")]\r\n ScaduAltusSwordhandofNightJolanSwordhandofNightJolan = 400670,\r\n\r\n}\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "daec730be4cd5f35", - "equalIndicator/v1": "17ccdf786fd79996d9540a0c5c322679eff698db8448f115e75d194f4e1aaa7c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Item.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 846, - "startColumn": 16, - "charOffset": 137629, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 844, - "startColumn": 1, - "charOffset": 137574, - "charLength": 62, - "snippet": { - "text": " SpellTools,\r\n UpgradeMaterials,\r\n UsableItems,\r\n}\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f1f54d0ad07fcfaa", - "equalIndicator/v1": "1971165a9dc7ca43f3441f8449c0a9ae270f9b01446b00112088696c2a0a490c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/ParamType.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 28, - "startColumn": 11, - "charOffset": 947, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 26, - "startColumn": 1, - "charOffset": 917, - "charLength": 36, - "snippet": { - "text": " I32,\r\n F32,\r\n Dummy8,\r\n}\r\n" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1f36f06f25c44c0a", - "equalIndicator/v1": "1a50703812bdda992435be42afc573608cbe65e3ee78487c247819fcdf7dda9e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/Boss.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 655, - "startColumn": 47, - "charOffset": 36095, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 653, - "startColumn": 1, - "charOffset": 35952, - "charLength": 149, - "snippet": { - "text": "\r\n [Annotation(Name = \"Radahn, Consort of Miquella - Enir-Ilim\", Description = \"Enir-Ilim\")]\r\n RadahnConsortofMiquellaEnirIlim = 20010800,\r\n}\r\n" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f0f7322cfd7d06dc", - "equalIndicator/v1": "1b1f1a3a81f2b5eafeb3b0da4a29d0527cc679f78e5751dbe02d0702a2b26051" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls2/BossType.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 150, - "startColumn": 37, - "charOffset": 4714, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 148, - "startColumn": 1, - "charOffset": 4616, - "charLength": 104, - "snippet": { - "text": "\r\n [Annotation(Name = \"Lud and Zallen, the King's Pets\")]\r\n LudAndZallenTheKingsPets = 0x108,\r\n}\r\n" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "756b923fd309b6cb", - "equalIndicator/v1": "252c9d023f1866726d97d16e17dbf4338c7abd51494413c19ee86dc25748d271" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/ParamReader.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 43, - "startColumn": 80, - "charOffset": 1708, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 41, - "startColumn": 1, - "charOffset": 1475, - "charLength": 290, - "snippet": { - "text": " ItemLowRange = BitConverter.ToUInt32(tableBytes, offset),\r\n DataOffset = BitConverter.ToUInt32(tableBytes, offset + 0x4),\r\n ItemHighRange = BitConverter.ToUInt32(tableBytes, offset + 0x8),\r\n };\r\n data.Add(textTableEntry);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b2190f6e690075e3", - "equalIndicator/v1": "2fb1ada78746fbec80530fcf348726acfb26c368e30e258608195be41198ce86" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls3/Attributes.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 35, - "startColumn": 20, - "charOffset": 1192, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 33, - "startColumn": 1, - "charOffset": 1148, - "charLength": 50, - "snippet": { - "text": "\r\n SoulLevel = 0x70,\r\n Humanity = 0x68,\r\n}\r\n" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "cf0beab847aca9fa", - "equalIndicator/v1": "2fcd7d0fb47ea9c70b96756e827abc791ab7584d01b92ed50eb2b4f57cbda576" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Item.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 1561, - "startColumn": 18, - "charOffset": 153056, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 1559, - "startColumn": 1, - "charOffset": 152996, - "charLength": 66, - "snippet": { - "text": " VerygoodCarving,\r\n ImsorryCarving,\r\n HelpmeCarving,\r\n}\r\n" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "6c32bb802e398daa", - "equalIndicator/v1": "31c6184f212ab99e81356f1deca7c6765580d5ba73b1c0adc8cbc1ba5d209074" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls3/Boss.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 99, - "startColumn": 31, - "charOffset": 4124, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 97, - "startColumn": 1, - "charOffset": 4009, - "charLength": 121, - "snippet": { - "text": " \r\n [Annotation(Name = \"Slave Knight Gael\", Description = \"The Ringed City\")]\r\n SlaveKnightGael = 15110800,\r\n}\r\n" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "548040b489e8dba9", - "equalIndicator/v1": "3d0496607a9b4e3f400ef585554ed183f3f215ddd90890fe30980bb3262c9509" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerAppender.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 37, - "startColumn": 30, - "charOffset": 1420, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 35, - "startColumn": 1, - "charOffset": 1314, - "charLength": 162, - "snippet": { - "text": " Pattern = _pointerNode.Pattern,\r\n Offsets = offsets,\r\n Pointer = pointer,\r\n };\r\n _pointerNode.Pointers.Add(node);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "92186ca04e49fa1d", - "equalIndicator/v1": "3df5b59cf9b5aae34e772631ace59fdfbebcbac77ba1b7eda8f720324c31b208" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls3/Bonfire.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 253, - "startColumn": 31, - "charOffset": 9926, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 251, - "startColumn": 1, - "charOffset": 9817, - "charLength": 115, - "snippet": { - "text": "\r\n [Annotation(Name = \"Slave Knight Gael\", Description=\"The Ringed City\")]\r\n SlaveKnightGael = 15110000,\r\n}\r\n" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "76162a5c674efb73", - "equalIndicator/v1": "42151814e33eebc75bebc44314b52abf74a6521ebb09156860a10d8a5ec5cc24" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerNodeType.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 23, - "startColumn": 12, - "charOffset": 941, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 21, - "startColumn": 1, - "charOffset": 892, - "charLength": 55, - "snippet": { - "text": " RelativeScan,\r\n AbsoluteScan,\r\n Pointer,\r\n}\r\n" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3dbddf5d2170479f", - "equalIndicator/v1": "511f51d4946e9442ff961bd3b08a39b4730c197a973cacccf02c8bae1e74f154" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls2/scholar.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 204, - "startColumn": 40, - "charOffset": 7657, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 202, - "startColumn": 1, - "charOffset": 7534, - "charLength": 135, - "snippet": { - "text": " { Attribute.Adaptability, 0x18},\r\n { Attribute.Intelligence, 0x14},\r\n { Attribute.Faith , 0x16},\r\n };\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "929d9d9442ffaeba", - "equalIndicator/v1": "59e5adfe4c656f9bb83b953ab6907a5ab811ff4403f62935452d427ce5feea42" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Sekiro/Boss.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 67, - "startColumn": 31, - "charOffset": 2258, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 65, - "startColumn": 1, - "charOffset": 2169, - "charLength": 95, - "snippet": { - "text": "\r\n [Annotation(Name = \"Isshin, the Sword Saint\")] \r\n IsshinTheSwordSaint = 9312,\r\n}\r\n" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "37416a72017c6bd7", - "equalIndicator/v1": "5b15504d4fb3e3155e4d1d1f5f366875ec06c8f0f365df551581f3768147c265" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Attribute.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 33, - "startColumn": 21, - "charOffset": 1184, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 31, - "startColumn": 1, - "charOffset": 1123, - "charLength": 67, - "snippet": { - "text": " Faith = 0x68,\r\n Humanity = 0x7C,\r\n SoulLevel = 0x88,\r\n}\r\n" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "eeaf23cc63adee7c", - "equalIndicator/v1": "5bf4a4e621c402f1f06e5f4ac20ec1f35d2f5eefd90980733b7baedd4c470a70" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/EventFlagTrackerDisplayMode.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 22, - "startColumn": 10, - "charOffset": 915, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 20, - "startColumn": 1, - "charOffset": 886, - "charLength": 35, - "snippet": { - "text": "{\r\n Percentage,\r\n Count,\r\n}\r\n" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "37e025d47437f7f5", - "equalIndicator/v1": "6d771ba5c3ff743d0a9caf8e02971fcffc47303966a0ca6d85d8e900c377712b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Process/ProcessWrapperModule.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 36, - "startColumn": 55, - "charOffset": 1455, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 34, - "startColumn": 1, - "charOffset": 1313, - "charLength": 163, - "snippet": { - "text": " FileName = module.FileName,\r\n BaseAddress = module.BaseAddress,\r\n ModuleMemorySize = module.ModuleMemorySize,\r\n };\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "de105fcaf3b73632", - "equalIndicator/v1": "6fd6ff17af4a42d2d0433b345ffe84ec26411d225dfd63b2a32c82aa3a9953d0" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerTreeBuilder.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 39, - "startColumn": 46, - "charOffset": 1575, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 37, - "startColumn": 1, - "charOffset": 1454, - "charLength": 160, - "snippet": { - "text": " Pattern = pattern,\r\n AddressOffset = addressOffset,\r\n InstructionSize = instructionSize,\r\n };\r\n Tree.Add(node);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0b3c8e2616058ae0", - "equalIndicator/v1": "6ffb5d7a32492157faba66d72c9eaa6cad6f802c17caed477573b213b189110b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/MainViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 161, - "startColumn": 37, - "charOffset": 5645, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 159, - "startColumn": 1, - "charOffset": 5560, - "charLength": 134, - "snippet": { - "text": " {\r\n DateTime = DateTime.Now,\r\n Error = error.ToString(),\r\n };\r\n AddError(errorViewModel);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "910b3fa90ba4d1bc", - "equalIndicator/v1": "7925673ab5eafc95fc3395f00a6a880aefc0bc47a8399d3ccc2ea9d92ae0dc20" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls2/Attribute.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 33, - "startColumn": 10, - "charOffset": 1106, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 31, - "startColumn": 1, - "charOffset": 1059, - "charLength": 53, - "snippet": { - "text": " Adaptability,\r\n Intelligence,\r\n Faith,\r\n}\r\n" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "510457a2c01e0df5", - "equalIndicator/v1": "7f7c64753831c07ebf5250e4876d4883bcc494dd53757f88891ede6344cccabf" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/ParamData.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 33, - "startColumn": 32, - "charOffset": 1345, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 31, - "startColumn": 1, - "charOffset": 1246, - "charLength": 112, - "snippet": { - "text": " { ParamType.U32, 4 },\r\n { ParamType.I32, 4 },\r\n { ParamType.F32, 4 },\r\n });\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "bf301091cf4843ea", - "equalIndicator/v1": "818a305b9af7ff8b2844394b691aac557037bc1cb6a0a1ce770c416b3ef9e217" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Bonfire.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 151, - "startColumn": 30, - "charOffset": 5981, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 149, - "startColumn": 1, - "charOffset": 5867, - "charLength": 121, - "snippet": { - "text": "\r\n [Annotation(Name = \"Chasm of the Abyss\", Description = \"Chasm of the Abyss\")]\r\n ChasmOfTheAbyss = 1211950,\r\n}\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b70db9ad7ecf40ce", - "equalIndicator/v1": "846a855842d84173311f13d0b403d2d0a53cb7ac6d195bc921adb2492b549794" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/Game.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 26, - "startColumn": 21, - "charOffset": 986, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 24, - "startColumn": 1, - "charOffset": 929, - "charLength": 63, - "snippet": { - "text": " Sekiro = 3,\r\n EldenRing = 4,\r\n ArmoredCore6 = 5,\r\n}\r\n" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3aa43315d041c9fb", - "equalIndicator/v1": "8de6e8f09b1ad6210ec127c311eff1930d2e7c11af49ab0116dba86c22b0227b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls2/WarpType.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 97, - "startColumn": 19, - "charOffset": 2487, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 95, - "startColumn": 1, - "charOffset": 2433, - "charLength": 60, - "snippet": { - "text": " InnerWall,\r\n LowerGarrison,\r\n GrandCathedral,\r\n}\r\n" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4f3d8e8d28be832b", - "equalIndicator/v1": "91a34087a2cce745a8a65f6813bf46628f1c000c3cb385a5e730861691fa38f3" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/TreeBuilder.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 38, - "startColumn": 46, - "charOffset": 1580, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 36, - "startColumn": 1, - "charOffset": 1459, - "charLength": 160, - "snippet": { - "text": " Pattern = pattern,\r\n AddressOffset = addressOffset,\r\n InstructionSize = instructionSize,\r\n };\r\n Tree.Add(node);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4752732f2e073e6b", - "equalIndicator/v1": "920395d9ceb0b10a92b204ba0214718d60c25fc3d27af3f4d378dc621fa6a24e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/EldenRing.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 308, - "startColumn": 60, - "charOffset": 11002, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 306, - "startColumn": 1, - "charOffset": 10819, - "charLength": 204, - "snippet": { - "text": " X = _playerIns.ReadFloat(_positionOffset + 0x0),\r\n Y = _playerIns.ReadFloat(_positionOffset + 0x4),\r\n Z = _playerIns.ReadFloat(_positionOffset + 0x8),\r\n };\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9630422bb3a87f7a", - "equalIndicator/v1": "9287d70685f83d37a4ae0dc7c7c0d8ace9e7ec0a9fc03bcf0f2e1c8ca7487592" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 125, - "startColumn": 14, - "charOffset": 4833, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 123, - "startColumn": 1, - "charOffset": 4790, - "charLength": 55, - "snippet": { - "text": " V104,\r\n V105,\r\n Later,\r\n };\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "249f7539564c8d58", - "equalIndicator/v1": "991e25842cf70d7fa171833ef03be5124f437825c894a1e80299a6d4e54ca87e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/TimingType.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 33, - "startColumn": 11, - "charOffset": 1121, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 31, - "startColumn": 1, - "charOffset": 1073, - "charLength": 54, - "snippet": { - "text": "\r\n [Annotation(Name = \"on warp\")]\r\n OnWarp,\r\n}\r\n" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "eafb3ad2ecfff10f", - "equalIndicator/v1": "996406a3015f1fd804b0a5749a11585b4443f30c67cee08c2a7aebf5b2c4d173" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/Grace.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 1349, - "startColumn": 26, - "charOffset": 50968, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 1347, - "startColumn": 1, - "charOffset": 50871, - "charLength": 103, - "snippet": { - "text": "\r\n [Annotation(Name = \"Scadutree Base\", Description = \"Scaduview\")]\r\n ScadutreeBase = 76960,\r\n}\r\n" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "93a9dc2ea6bde67c", - "equalIndicator/v1": "9ba0f2870c7c7c50283f96c01892f571f7957d36db348e3ca1e0fed5bb5105b5" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/RefreshError.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 76, - "startColumn": 18, - "charOffset": 2166, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 74, - "startColumn": 1, - "charOffset": 2109, - "charLength": 63, - "snippet": { - "text": " MainModuleNull,\r\n AccessDenied,\r\n ModLoadFailed,\r\n}\r\n" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "8e44e11527578eef", - "equalIndicator/v1": "9ce686b25cee873302605772ee7df7273dfa686c6852f3d2e5b1d8f9d44c2e66" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/TreeBuilder.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 51, - "startColumn": 28, - "charOffset": 1942, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 49, - "startColumn": 1, - "charOffset": 1857, - "charLength": 124, - "snippet": { - "text": " Name = name,\r\n Pattern = pattern,\r\n Offset = offset,\r\n };\r\n Tree.Add(node);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7c2ef33b7ea33ee8", - "equalIndicator/v1": "9e5fef2c3ee49d055704d85fa50ebacee211a8a098e43d2f32457af2074be834" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/ParamData.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 45, - "startColumn": 39, - "charOffset": 1822, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 43, - "startColumn": 1, - "charOffset": 1702, - "charLength": 133, - "snippet": { - "text": " { ParamType.U32, \"uint\" },\r\n { ParamType.I32, \"int\" },\r\n { ParamType.F32, \"float\" },\r\n });\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d7d4c992a06642ea", - "equalIndicator/v1": "9f9157a4bce1bd978c5697647cf9c7042650b758ae31e68798d3be1221b8a687" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Item.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 830, - "startColumn": 26, - "charOffset": 137408, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 828, - "startColumn": 1, - "charOffset": 137333, - "charLength": 82, - "snippet": { - "text": " InfusableRestricted = 4,\r\n PyroFlame = 5,\r\n PyroFlameAscended = 6,\r\n}\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "825d6aa8534194cf", - "equalIndicator/v1": "a8a1d6f7144cf65af269d0e95c666599de4d370b567d086da9c461d0335407a9" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 344, - "startColumn": 20, - "charOffset": 12076, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 342, - "startColumn": 1, - "charOffset": 12013, - "charLength": 75, - "snippet": { - "text": " {\"170\", 15},\r\n {\"180\", 16},\r\n {\"181\", 17},\r\n };\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d929e39bd5da06ad", - "equalIndicator/v1": "ac791e1b5341386f2ee9c81624bd804c5f62732c78dd6505378c046d5614b53b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/soulmemory-rs/SoulMemoryRs.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 38, - "startColumn": 27, - "charOffset": 1326, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 36, - "startColumn": 1, - "charOffset": 1251, - "charLength": 91, - "snippet": { - "text": " \"sekiro\",\r\n \"eldenring\",\r\n \"armoredcore6\",\r\n };\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0482f06de81d50a2", - "equalIndicator/v1": "afe46c4bb17b1ed2e747dd746747ad42d62e591d503af781b52378e235b921de" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 322, - "startColumn": 23, - "charOffset": 11583, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 320, - "startColumn": 1, - "charOffset": 11511, - "charLength": 88, - "snippet": { - "text": " {\"5\", 0x05F00},\r\n {\"6\", 0x0B900},\r\n {\"7\", 0x11300},\r\n };\r\n \r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "599f75481ab92a9f", - "equalIndicator/v1": "b04df3030832263939d7c7d95cb601855bbd45b726d3313a63373f780bf3e7c9" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Item.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 819, - "startColumn": 14, - "charOffset": 137229, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 817, - "startColumn": 1, - "charOffset": 137184, - "charLength": 52, - "snippet": { - "text": " Occult = 7,\r\n Fire = 8,\r\n Chaos = 9,\r\n}\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "14f1c295df7ca351", - "equalIndicator/v1": "b4de3deb49a93b481a454ade60f285f9b96531c1980de0bcddc31759392033e2" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Item.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 804, - "startColumn": 193, - "charOffset": 137016, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 802, - "startColumn": 1, - "charOffset": 136434, - "charLength": 596, - "snippet": { - "text": " new(\"Very good! Carving\" , 512, ItemType.VerygoodCarving , ItemCategory.UsableItems , 1, ItemUpgrade.None ),\r\n new(\"I'm sorry Carving\" , 513, ItemType.ImsorryCarving , ItemCategory.UsableItems , 1, ItemUpgrade.None ),\r\n new(\"Help me! Carving\" , 514, ItemType.HelpmeCarving , ItemCategory.UsableItems , 1, ItemUpgrade.None ),\r\n });\r\n}\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e5d8ce038cd060f9", - "equalIndicator/v1": "b5cf2dd53d3ac893726f24a3d2ee5764d2ff345ac656cfbf94cf0617b96aa5f2" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 263, - "startColumn": 23, - "charOffset": 9647, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 261, - "startColumn": 1, - "charOffset": 9575, - "charLength": 84, - "snippet": { - "text": " {\"5\", 0x05F00},\r\n {\"6\", 0x0B900},\r\n {\"7\", 0x11300},\r\n };\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5245238c704f9740", - "equalIndicator/v1": "bf7669765dbe4f2c5e15067f92933fc6e8f19a3019969a3e24eca4111c467b33" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/NodeType.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 23, - "startColumn": 12, - "charOffset": 913, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 21, - "startColumn": 1, - "charOffset": 864, - "charLength": 55, - "snippet": { - "text": " RelativeScan,\r\n AbsoluteScan,\r\n Pointer,\r\n}\r\n" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c958cc14de0cf31b", - "equalIndicator/v1": "c0c712b00b60486b890383d7dd05068921b2e8ac56fec25c9f2bae2c7f87eb75" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Process/ProcessRefreshResult.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 25, - "startColumn": 14, - "charOffset": 966, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 23, - "startColumn": 1, - "charOffset": 928, - "charLength": 44, - "snippet": { - "text": " Exited,\r\n Error,\r\n Refreshed,\r\n}\r\n" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a00e65c91029a544", - "equalIndicator/v1": "c5dfb61e789a0d78e98645979914aefce4553861b8ae77a979a0f8cbc9467397" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splits/DarkSouls2/DarkSouls2SplitType.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 24, - "startColumn": 9, - "charOffset": 942, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 22, - "startColumn": 1, - "charOffset": 903, - "charLength": 45, - "snippet": { - "text": " BossKill,\r\n Attribute,\r\n Flag,\r\n}\r\n" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "8e4b41ca2df22cc0", - "equalIndicator/v1": "c610eb93918c7f764447d92b786768e6eced2176012e8de7e5857d44c8cfc9a8" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/ParamData.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 57, - "startColumn": 39, - "charOffset": 2289, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 55, - "startColumn": 1, - "charOffset": 2169, - "charLength": 134, - "snippet": { - "text": " { \"u32\", ParamType.U32 },\r\n { \"s32\", ParamType.I32 },\r\n { \"f32\", ParamType.F32 },\r\n });\r\n}\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e318203fb9b0d941", - "equalIndicator/v1": "c70de4f2b1be76c28588309b0d7e30dc8bee65c1041b49628177bb5016750cf7" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Extensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 51, - "startColumn": 26, - "charOffset": 1676, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 49, - "startColumn": 1, - "charOffset": 1600, - "charLength": 92, - "snippet": { - "text": " {\r\n OmitXmlDeclaration = true,\r\n Indent = true,\r\n };\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b63d6df0c9c18841", - "equalIndicator/v1": "d8bda459b6f34d33ac4625bbc303def9ffe7ca28428f0de7967fd45b081b2a33" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/MainViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 171, - "startColumn": 33, - "charOffset": 5884, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 169, - "startColumn": 1, - "charOffset": 5803, - "charLength": 130, - "snippet": { - "text": " {\r\n DateTime = DateTime.Now,\r\n Error = e.ToString(),\r\n };\r\n AddError(errorViewModel);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "bece741bc21484e7", - "equalIndicator/v1": "dd11eac4c42eed7f6aaa3e24ea3afaecf1f4958f9b48819cf8fe6117efd575f7" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Validation/TextToNumberValidation.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 27, - "startColumn": 10, - "charOffset": 984, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 25, - "startColumn": 1, - "charOffset": 954, - "charLength": 37, - "snippet": { - "text": " Int,\r\n Uint,\r\n Float,\r\n}\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "01feeaea45f36fa0", - "equalIndicator/v1": "e52013a70571b9156e377466a810ca400660706400500af4eea5dc3f29ae1a7b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/PointerAppender.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 35, - "startColumn": 30, - "charOffset": 1348, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 33, - "startColumn": 1, - "charOffset": 1242, - "charLength": 162, - "snippet": { - "text": " Pattern = _pointerNode.Pattern,\r\n Offsets = offsets,\r\n Pointer = pointer,\r\n };\r\n _pointerNode.Pointers.Add(node);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "68126ee024dad656", - "equalIndicator/v1": "ec6add68c98f4d08e10c970ff1c6cbfa9e079e7be173cf23af44f99029e0974b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Bonfire.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 173, - "startColumn": 18, - "charOffset": 6426, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 171, - "startColumn": 1, - "charOffset": 6369, - "charLength": 63, - "snippet": { - "text": "\r\n [Annotation(Name = \"Kindled 3\")]\r\n Kindled3 = 40,\r\n}\r\n" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "6d056d0fec44a561", - "equalIndicator/v1": "ed3249c25f910a456037edc3e27b71affa3a7f3e5670bc0dd73ae411d36c06ee" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls3/ItemPickup.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 3454, - "startColumn": 28, - "charOffset": 137606, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 3452, - "startColumn": 1, - "charOffset": 137526, - "charLength": 86, - "snippet": { - "text": "\r\n [Annotation(Name = \"Green Blossom 53400040\")]\r\n GreenBlossom = 53400040,\r\n}\r\n" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0409d460c24bcb70", - "equalIndicator/v1": "ed4ba6fe818070ee7664d9f92640780eca409b700217c7dafee326e413b67f23" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/ParamReader.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 76, - "startColumn": 82, - "charOffset": 2945, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 74, - "startColumn": 1, - "charOffset": 2711, - "charLength": 254, - "snippet": { - "text": " Id = BitConverter.ToInt32(paramTableBytes, offset),\r\n DataOffset = BitConverter.ToUInt32(paramTableBytes, offset + 0x4),\r\n NameOffset = BitConverter.ToUInt32(paramTableBytes, offset + 0x8),\r\n };\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0d115fb10de46265", - "equalIndicator/v1": "f1c11e037079521acf2121aba141a18c83bd54683113dd6af96ea87641712e5d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls2/Data.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 110, - "startColumn": 83, - "charOffset": 7916, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 108, - "startColumn": 1, - "charOffset": 7670, - "charLength": 260, - "snippet": { - "text": " new(WarpType.InnerWall , 841285632, 37685, \"Inner Wall\"),\r\n new(WarpType.LowerGarrison , 841285632, 37665, \"Lower Garrison\"),\r\n new(WarpType.GrandCathedral , 841285632, 37670, \"Grand Cathedral\"),\r\n });\r\n}\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "2dde74bf742a1967", - "equalIndicator/v1": "f658cc98ec92196c50aadf468b3634fea440089d760421877083e6d1e76216a8" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/SplitType.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 48, - "startColumn": 12, - "charOffset": 1382, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 46, - "startColumn": 1, - "charOffset": 1333, - "charLength": 55, - "snippet": { - "text": "\r\n [Annotation(Name = \"Credits\")]\r\n Credits,\r\n}\r\n" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e68791d96661ea8e", - "equalIndicator/v1": "f9c2d8ac308003c78ad1419c57cbefa618d42db21c9e4da259b9b543f6ee5304" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/Item.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 2710, - "startColumn": 117, - "charOffset": 305492, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 2708, - "startColumn": 1, - "charOffset": 305143, - "charLength": 363, - "snippet": { - "text": " new() { Category = Category.Weapons,GroupName = \"Spell Tools\", Name = \"Erdtree Seal\", Id = 34070000 },\r\n new() { Category = Category.Weapons,GroupName = \"Spell Tools\", Name = \"Dragon Communion Seal\", Id = 34080000 },\r\n new() { Category = Category.Weapons,GroupName = \"Spell Tools\", Name = \"Frenzied Flame Seal\", Id = 34090000 },\r\n });\r\n}\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "cd033181948fefa0", - "equalIndicator/v1": "fa4cb29ed6d74d888c41160f88f01735543aaf7b70b689420a08e4ed83e1713c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splits/EldenRing/EldenRingSplitType.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 27, - "startColumn": 14, - "charOffset": 976, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 25, - "startColumn": 1, - "charOffset": 937, - "charLength": 45, - "snippet": { - "text": " Item,\r\n Position,\r\n KnownFlag,\r\n}\r\n" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c809e570e5eec3ca", - "equalIndicator/v1": "fc1823f3859a2b409f1f5f819057c5e42fe7a3ad979539399139202f13eb0cc5" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "ArrangeTrailingCommaInMultilineLists", - "kind": "fail", - "level": "note", - "message": { - "text": "Remove trailing comma to conform to code style", - "markdown": "Remove trailing comma to conform to code style" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/EldenRing.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 273, - "startColumn": 16, - "charOffset": 9890, - "charLength": 1, - "snippet": { - "text": "," - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 271, - "startColumn": 1, - "charOffset": 9855, - "charLength": 47, - "snippet": { - "text": " V1_16_0,\r\n\r\n Unknown,\r\n };\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4feb9ff248d7c9e8", - "equalIndicator/v1": "fddc9d3589242ef21948b7e39db155d130bb2d311702d03a1e6dc1c85ed86e24" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ArrangeTypeMemberModifiers", - "kind": "fail", - "level": "note", - "message": { - "text": "Inconsistent modifiers style: missing 'private' modifier", - "markdown": "Inconsistent modifiers style: missing 'private' modifier" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2Control.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 35, - "startColumn": 10, - "charOffset": 1253, - "charLength": 20, - "snippet": { - "text": "OnDataContextChanged" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 33, - "startColumn": 1, - "charOffset": 1235, - "charLength": 151, - "snippet": { - "text": " }\r\n\r\n void OnDataContextChanged(object sender, DependencyPropertyChangedEventArgs e)\r\n {\r\n if (DataContext is DarkSouls2ViewModel vm)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "840b3ba1ece23099", - "equalIndicator/v1": "22ed5774bf0ae7ad9d5ea09324bebdf6b17b328f405755fc6a818321d00a3b70" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "ArrangeTypeMemberModifiers", - "kind": "fail", - "level": "note", - "message": { - "text": "Inconsistent modifiers style: missing 'private' modifier", - "markdown": "Inconsistent modifiers style: missing 'private' modifier" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Native/Structs/Process/PROCESSENTRY32.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 25, - "startColumn": 15, - "charOffset": 1023, - "charLength": 8, - "snippet": { - "text": "MAX_PATH" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 23, - "startColumn": 1, - "charOffset": 974, - "charLength": 125, - "snippet": { - "text": "internal struct PROCESSENTRY32\r\n{\r\n const int MAX_PATH = 260;\r\n internal UInt32 dwSize;\r\n internal UInt32 cntUsage;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "65591d933bdb8017", - "equalIndicator/v1": "e74927c83eed690f2d39e9e0ff9175e850d402ecdbaa75d1fb5a8bb9206ee128" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "AssignNullToNotNullAttribute", - "kind": "fail", - "level": "warning", - "message": { - "text": "Possible 'null' assignment to non-nullable entity", - "markdown": "Possible 'null' assignment to non-nullable entity" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/SoulComponent.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 372, - "startColumn": 46, - "charOffset": 13137, - "charLength": 9, - "snippet": { - "text": "directory" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 370, - "startColumn": 1, - "charOffset": 13028, - "charLength": 228, - "snippet": { - "text": " var directory = Path.GetDirectoryName(assemblyPath);\r\n\r\n var files = Directory.EnumerateFiles(directory).Select(i => Path.GetFileName(i)).ToList();\r\n var missing = _installedFiles.Except(files).ToList();\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "2601f304806dc1bf", - "equalIndicator/v1": "550b46e869ff0c0d7f613577add2014b45b010d2f6d3cc872402d7bce10f3673" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "AssignNullToNotNullAttribute", - "kind": "fail", - "level": "warning", - "message": { - "text": "Possible 'null' assignment to non-nullable entity", - "markdown": "Possible 'null' assignment to non-nullable entity" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Logger.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 50, - "startColumn": 47, - "charOffset": 1671, - "charLength": 31, - "snippet": { - "text": "Path.GetDirectoryName(filePath)" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 48, - "startColumn": 1, - "charOffset": 1571, - "charLength": 238, - "snippet": { - "text": " if (!info.Exists)\r\n {\r\n Directory.CreateDirectory(Path.GetDirectoryName(filePath));\r\n File.Create(filePath).Close();\r\n info = new FileInfo(filePath);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9a40aa8b79aa9e7b", - "equalIndicator/v1": "8c33c93d9f1455c8f9e808cccf9c2491efbfe03c4964788218d39a3caca77ad4" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "AssignNullToNotNullAttribute", - "kind": "fail", - "level": "warning", - "message": { - "text": "Possible 'null' assignment to non-nullable entity", - "markdown": "Possible 'null' assignment to non-nullable entity" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/soulmemory-rs/SoulMemoryRs.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 50, - "startColumn": 36, - "charOffset": 1765, - "charLength": 57, - "snippet": { - "text": "Path.GetDirectoryName(typeof(Soulmods).Assembly.Location)" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 48, - "startColumn": 1, - "charOffset": 1573, - "charLength": 402, - "snippet": { - "text": "\r\n var launcherPath = Path.Combine(Path.GetDirectoryName(typeof(Soulmods).Assembly.Location), $\"{(x64 ? \"launcher_x64.exe\" : \"launcher_x86.exe\")}\");\r\n var dllPath = Path.Combine(Path.GetDirectoryName(typeof(Soulmods).Assembly.Location), $\"{(x64 ? \"soulmemory_rs_x64.dll\" : \"soulmemory_rs_x86.dll\")}\");\r\n var args = $\"--processname={process.ProcessName} --dllpath=\\\"{dllPath}\\\"\";\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "406afa1d4a7d68d6", - "equalIndicator/v1": "a025cd7dc62340593c2ba009305aadd1d0c5a52399c78bdb7b7553da31d5242d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "AssignNullToNotNullAttribute", - "kind": "fail", - "level": "warning", - "message": { - "text": "Possible 'null' assignment to non-nullable entity", - "markdown": "Possible 'null' assignment to non-nullable entity" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/soulmemory-rs/SoulMemoryRs.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 49, - "startColumn": 41, - "charOffset": 1615, - "charLength": 57, - "snippet": { - "text": "Path.GetDirectoryName(typeof(Soulmods).Assembly.Location)" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 47, - "startColumn": 1, - "charOffset": 1526, - "charLength": 447, - "snippet": { - "text": " var x64 = process.Is64Bit().Unwrap();\r\n\r\n var launcherPath = Path.Combine(Path.GetDirectoryName(typeof(Soulmods).Assembly.Location), $\"{(x64 ? \"launcher_x64.exe\" : \"launcher_x86.exe\")}\");\r\n var dllPath = Path.Combine(Path.GetDirectoryName(typeof(Soulmods).Assembly.Location), $\"{(x64 ? \"soulmemory_rs_x64.dll\" : \"soulmemory_rs_x86.dll\")}\");\r\n var args = $\"--processname={process.ProcessName} --dllpath=\\\"{dllPath}\\\"\";\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d3a54235d23dda6e", - "equalIndicator/v1": "a4dc902f68c4873813bf6bc64b25e16182e9a2a52c73ccfb2cd8b68278c2bcb0" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "AutoPropertyCanBeMadeGetOnly.Local", - "kind": "fail", - "level": "note", - "message": { - "text": "Auto-property can be made get-only", - "markdown": "Auto-property can be made get-only" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/SoulComponent.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 207, - "startColumn": 39, - "charOffset": 7613, - "charLength": 12, - "snippet": { - "text": "private set;" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 205, - "startColumn": 1, - "charOffset": 7472, - "charLength": 279, - "snippet": { - "text": " public string ComponentName => Name;\r\n public float HorizontalWidth { get; private set; } = 0;\r\n public float MinimumHeight { get; private set; } = 0;\r\n public float VerticalHeight { get; private set; } = 0;\r\n public float MinimumWidth { get; private set; } = 0;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1a84d530bcf52c24", - "equalIndicator/v1": "1173cceceeec34929a303aec0fabf7800a5f94eb92fa64121a676041dd2b254b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "AutoPropertyCanBeMadeGetOnly.Local", - "kind": "fail", - "level": "note", - "message": { - "text": "Auto-property can be made get-only", - "markdown": "Auto-property can be made get-only" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/SoulComponent.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 209, - "startColumn": 38, - "charOffset": 7731, - "charLength": 12, - "snippet": { - "text": "private set;" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 207, - "startColumn": 1, - "charOffset": 7575, - "charLength": 249, - "snippet": { - "text": " public float MinimumHeight { get; private set; } = 0;\r\n public float VerticalHeight { get; private set; } = 0;\r\n public float MinimumWidth { get; private set; } = 0;\r\n public float PaddingTop => 0;\r\n public float PaddingBottom => 0;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1cd04617c4b2b2b0", - "equalIndicator/v1": "84d08cba3bbcc93e4a568a65e314d6822bd37c79c2dda47a2da01eddf96c1b08" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "AutoPropertyCanBeMadeGetOnly.Local", - "kind": "fail", - "level": "note", - "message": { - "text": "Auto-property can be made get-only", - "markdown": "Auto-property can be made get-only" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/SoulComponent.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 208, - "startColumn": 40, - "charOffset": 7673, - "charLength": 12, - "snippet": { - "text": "private set;" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 206, - "startColumn": 1, - "charOffset": 7514, - "charLength": 272, - "snippet": { - "text": " public float HorizontalWidth { get; private set; } = 0;\r\n public float MinimumHeight { get; private set; } = 0;\r\n public float VerticalHeight { get; private set; } = 0;\r\n public float MinimumWidth { get; private set; } = 0;\r\n public float PaddingTop => 0;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7911cf3803acc3e9", - "equalIndicator/v1": "a98d0aa588989da991aad1d424c59693a80584308597b99843551299dc6dcb7c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "AutoPropertyCanBeMadeGetOnly.Local", - "kind": "fail", - "level": "note", - "message": { - "text": "Auto-property can be made get-only", - "markdown": "Auto-property can be made get-only" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/SoulComponent.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 206, - "startColumn": 41, - "charOffset": 7554, - "charLength": 12, - "snippet": { - "text": "private set;" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 204, - "startColumn": 1, - "charOffset": 7470, - "charLength": 223, - "snippet": { - "text": "\r\n public string ComponentName => Name;\r\n public float HorizontalWidth { get; private set; } = 0;\r\n public float MinimumHeight { get; private set; } = 0;\r\n public float VerticalHeight { get; private set; } = 0;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f77117a7021c031d", - "equalIndicator/v1": "fbe4c8cfa4b9081df6331dc55785dcd8bb154ecfac8a3160849211cef6df1172" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "BuiltInTypeReferenceStyle", - "kind": "fail", - "level": "note", - "message": { - "text": "Built-in type reference is inconsistent with code style settings", - "markdown": "Built-in type reference is inconsistent with code style settings" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Native/Kernel32.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 226, - "startColumn": 90, - "charOffset": 8478, - "charLength": 6, - "snippet": { - "text": "UInt16" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 224, - "startColumn": 1, - "charOffset": 8321, - "charLength": 269, - "snippet": { - "text": "\r\n //Write the name of the dll to be injected into a buffer\r\n var dllFilepathPointer = process.Allocate(dllPath.Length * Marshal.SizeOf(typeof(UInt16)));\r\n process.WriteProcessMemory((long)dllFilepathPointer, Encoding.Unicode.GetBytes(dllPath));\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3ad5fc262124e2cd", - "equalIndicator/v1": "4ea0f677efb6522e8c1f7f80b15357c1d5daffa876662ae2a0dd51045b31445b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "BuiltInTypeReferenceStyle", - "kind": "fail", - "level": "note", - "message": { - "text": "Built-in type reference is inconsistent with code style settings", - "markdown": "Built-in type reference is inconsistent with code style settings" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Native/Kernel32.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 291, - "startColumn": 33, - "charOffset": 11122, - "charLength": 6, - "snippet": { - "text": "UInt32" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 289, - "startColumn": 1, - "charOffset": 11017, - "charLength": 381, - "snippet": { - "text": " {\r\n MODULEENTRY32W procEntry = new MODULEENTRY32W();\r\n procEntry.dwSize = (UInt32)Marshal.SizeOf(typeof(MODULEENTRY32W));\r\n handleToSnapshot = NativeMethods.CreateToolhelp32Snapshot((uint)SnapshotFlags.Module | (uint)SnapshotFlags.Module32, (uint)process.Id);\r\n if (NativeMethods.Module32FirstW(handleToSnapshot, ref procEntry))\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "297e63f396811de7", - "equalIndicator/v1": "65b5a01e6439bfd259b8e4f3cf354295f1faaff85fa4265a2a8a34fea2b50b7c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "BuiltInTypeReferenceStyle", - "kind": "fail", - "level": "note", - "message": { - "text": "Built-in type reference is inconsistent with code style settings", - "markdown": "Built-in type reference is inconsistent with code style settings" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Native/NativeMethods.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 49, - "startColumn": 65, - "charOffset": 2333, - "charLength": 6, - "snippet": { - "text": "UInt32" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 47, - "startColumn": 1, - "charOffset": 2162, - "charLength": 322, - "snippet": { - "text": "\r\n [DllImport(\"kernel32\", SetLastError = true, CharSet = System.Runtime.InteropServices.CharSet.Auto)]\r\n internal static extern IntPtr CreateToolhelp32Snapshot([In] UInt32 dwFlags, [In] UInt32 th32ProcessID);\r\n\r\n [DllImport(\"kernel32\", SetLastError = true, CharSet = System.Runtime.InteropServices.CharSet.Auto)]\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "831184c465c5b1e7", - "equalIndicator/v1": "8a3e51d44ff1bbe34d930efb2953ebc6eb0654ac52aae96fba922c27cd444ecb" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "BuiltInTypeReferenceStyle", - "kind": "fail", - "level": "note", - "message": { - "text": "Built-in type reference is inconsistent with code style settings", - "markdown": "Built-in type reference is inconsistent with code style settings" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Native/NativeMethods.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 49, - "startColumn": 86, - "charOffset": 2354, - "charLength": 6, - "snippet": { - "text": "UInt32" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 47, - "startColumn": 1, - "charOffset": 2162, - "charLength": 322, - "snippet": { - "text": "\r\n [DllImport(\"kernel32\", SetLastError = true, CharSet = System.Runtime.InteropServices.CharSet.Auto)]\r\n internal static extern IntPtr CreateToolhelp32Snapshot([In] UInt32 dwFlags, [In] UInt32 th32ProcessID);\r\n\r\n [DllImport(\"kernel32\", SetLastError = true, CharSet = System.Runtime.InteropServices.CharSet.Auto)]\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "66b1b8694f0db7dd", - "equalIndicator/v1": "f225152bbc85dfeff1927909a11feefb9dbef719b4c5795d38cdf206a18f6a2a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "BuiltInTypeReferenceStyleForMemberAccess", - "kind": "fail", - "level": "note", - "message": { - "text": "Built-in type reference is inconsistent with code style settings", - "markdown": "Built-in type reference is inconsistent with code style settings" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 355, - "startColumn": 26, - "charOffset": 12464, - "charLength": 5, - "snippet": { - "text": "Int32" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 353, - "startColumn": 1, - "charOffset": 12320, - "charLength": 274, - "snippet": { - "text": " string area = idString.Substring(1, 3);\r\n int section = Int32.Parse(idString.Substring(4, 1));\r\n int number = Int32.Parse(idString.Substring(5, 3));\r\n\r\n if (EventFlagGroups.ContainsKey(group) && EventFlagAreas.ContainsKey(area))\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3415b0e7441e6d82", - "equalIndicator/v1": "8eb38b6f43a725610ff5125913bcc79483037339f46d60249675fc96a14957d5" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "BuiltInTypeReferenceStyleForMemberAccess", - "kind": "fail", - "level": "note", - "message": { - "text": "Built-in type reference is inconsistent with code style settings", - "markdown": "Built-in type reference is inconsistent with code style settings" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 354, - "startColumn": 27, - "charOffset": 12399, - "charLength": 5, - "snippet": { - "text": "Int32" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 352, - "startColumn": 1, - "charOffset": 12266, - "charLength": 239, - "snippet": { - "text": " string group = idString.Substring(0, 1);\r\n string area = idString.Substring(1, 3);\r\n int section = Int32.Parse(idString.Substring(4, 1));\r\n int number = Int32.Parse(idString.Substring(5, 3));\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a634c406855010d3", - "equalIndicator/v1": "a4769b1659fd46d707650e006ac9a50a799089c900841f1b16393f0af2ce72e9" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "BuiltInTypeReferenceStyleForMemberAccess", - "kind": "fail", - "level": "note", - "message": { - "text": "Built-in type reference is inconsistent with code style settings", - "markdown": "Built-in type reference is inconsistent with code style settings" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 479, - "startColumn": 27, - "charOffset": 16764, - "charLength": 4, - "snippet": { - "text": "Byte" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 477, - "startColumn": 1, - "charOffset": 16622, - "charLength": 263, - "snippet": { - "text": " string hexes = match.Groups[1].Value;\r\n foreach (Match hex in Regex.Matches(hexes, @\"\\S+\"))\r\n bytes.Add(Byte.Parse(hex.Value, System.Globalization.NumberStyles.AllowHexSpecifier));\r\n }\r\n return bytes.ToArray();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b760deb4aa944962", - "equalIndicator/v1": "c209c3210ed974a692380aff95a5f7f86287325568a6ab578a2d5504c8bf0048" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "CanSimplifyDictionaryLookupWithTryGetValue", - "kind": "fail", - "level": "note", - "message": { - "text": "Dictionary lookup can be simplified with 'TryGetValue'", - "markdown": "Dictionary lookup can be simplified with 'TryGetValue'" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 357, - "startColumn": 70, - "charOffset": 12575, - "charLength": 11, - "snippet": { - "text": "ContainsKey" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 355, - "startColumn": 1, - "charOffset": 12439, - "charLength": 224, - "snippet": { - "text": " int number = Int32.Parse(idString.Substring(5, 3));\r\n\r\n if (EventFlagGroups.ContainsKey(group) && EventFlagAreas.ContainsKey(area))\r\n {\r\n int offset = EventFlagGroups[group];\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "73306b512fe98657", - "equalIndicator/v1": "73631b32d2a2c44a15b860cfdd5ec897ad019f46734707fe3b6d888ab5aa4642" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "CanSimplifyDictionaryLookupWithTryGetValue", - "kind": "fail", - "level": "note", - "message": { - "text": "Dictionary lookup can be simplified with 'TryGetValue'", - "markdown": "Dictionary lookup can be simplified with 'TryGetValue'" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 298, - "startColumn": 70, - "charOffset": 10631, - "charLength": 11, - "snippet": { - "text": "ContainsKey" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 296, - "startColumn": 1, - "charOffset": 10497, - "charLength": 222, - "snippet": { - "text": " int number = int.Parse(idString.Substring(5, 3));\r\n\r\n if (EventFlagGroups.ContainsKey(group) && EventFlagAreas.ContainsKey(area))\r\n {\r\n int offset = EventFlagGroups[group];\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "404da386773655bf", - "equalIndicator/v1": "900b5c82ce038edc036920f97015926f4079de08af4b684d3c2d049ac51d2d63" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "CheckNamespace", - "kind": "fail", - "level": "warning", - "message": { - "text": "Namespace does not correspond to file location, must be: 'SoulSplitter.UI'", - "markdown": "Namespace does not correspond to file location, must be: 'SoulSplitter.UI'" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/ErrorViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 20, - "startColumn": 11, - "charOffset": 864, - "charLength": 23, - "snippet": { - "text": "SoulSplitter.UI.Generic" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 18, - "startColumn": 1, - "charOffset": 822, - "charLength": 129, - "snippet": { - "text": "using System.ComponentModel;\r\n\r\nnamespace SoulSplitter.UI.Generic;\r\n\r\npublic class ErrorViewModel : ICustomNotifyPropertyChanged\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7fd4a4e55f3b2fcb", - "equalIndicator/v1": "0a71f8b841795e1f169eaf1ea32eeedb8340c5b7c952f066e9874b7d7aebbd15" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "ConvertClosureToMethodGroup", - "kind": "fail", - "level": "note", - "message": { - "text": "Convert into method group", - "markdown": "Convert into method group" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/EldenRingSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 100, - "startColumn": 13, - "charOffset": 3166, - "charLength": 14, - "snippet": { - "text": "UpdatePosition" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 98, - "startColumn": 1, - "charOffset": 3096, - "charLength": 103, - "snippet": { - "text": " mainViewModel.TryAndHandleError(() =>\r\n {\r\n UpdatePosition();\r\n });\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "6df07dbe40b7b10a", - "equalIndicator/v1": "2aa855bd234c70b019b8bb7dc5645c4ac897d319925d58e542c80b7ce9c86a72" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "ConvertClosureToMethodGroup", - "kind": "fail", - "level": "note", - "message": { - "text": "Convert into method group", - "markdown": "Convert into method group" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/SekiroSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 106, - "startColumn": 13, - "charOffset": 3124, - "charLength": 11, - "snippet": { - "text": "UpdateTimer" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 104, - "startColumn": 1, - "charOffset": 3054, - "charLength": 100, - "snippet": { - "text": " mainViewModel.TryAndHandleError(() =>\r\n {\r\n UpdateTimer();\r\n });\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "68e175a421f88d7b", - "equalIndicator/v1": "3274bea72460c84916b820b64c4094dbeba75a9fda66c7991c8a8f9c67795891" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "ConvertClosureToMethodGroup", - "kind": "fail", - "level": "note", - "message": { - "text": "Convert into method group", - "markdown": "Convert into method group" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/EldenRingSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 110, - "startColumn": 13, - "charOffset": 3409, - "charLength": 18, - "snippet": { - "text": "UpdateAutoSplitter" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 108, - "startColumn": 1, - "charOffset": 3339, - "charLength": 107, - "snippet": { - "text": " mainViewModel.TryAndHandleError(() =>\r\n {\r\n UpdateAutoSplitter();\r\n });\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5d319fff177225ca", - "equalIndicator/v1": "77a8562abd64c6569566429a45704a955f37526383f7ac7b1810d7bc58e5d8fd" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "ConvertClosureToMethodGroup", - "kind": "fail", - "level": "note", - "message": { - "text": "Convert into method group", - "markdown": "Convert into method group" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls3Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 117, - "startColumn": 13, - "charOffset": 3507, - "charLength": 18, - "snippet": { - "text": "UpdateAutoSplitter" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 115, - "startColumn": 1, - "charOffset": 3437, - "charLength": 107, - "snippet": { - "text": " mainViewModel.TryAndHandleError(() =>\r\n {\r\n UpdateAutoSplitter();\r\n });\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "30079e402b14c3f6", - "equalIndicator/v1": "a76aeb80cf1a25a148e3fc4e23b5ed48e3533b01c577fec52269c3867b32aa55" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "ConvertClosureToMethodGroup", - "kind": "fail", - "level": "note", - "message": { - "text": "Convert into method group", - "markdown": "Convert into method group" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/SoulComponent.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 372, - "startColumn": 74, - "charOffset": 13165, - "charLength": 11, - "snippet": { - "text": "GetFileName" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 370, - "startColumn": 1, - "charOffset": 13028, - "charLength": 228, - "snippet": { - "text": " var directory = Path.GetDirectoryName(assemblyPath);\r\n\r\n var files = Directory.EnumerateFiles(directory).Select(i => Path.GetFileName(i)).ToList();\r\n var missing = _installedFiles.Except(files).ToList();\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "35f1427032852983", - "equalIndicator/v1": "d3b6dd6c8a45a1396a386ebac24df72bac990581054417c6721c0d73d3d8f030" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "ConvertClosureToMethodGroup", - "kind": "fail", - "level": "note", - "message": { - "text": "Convert into method group", - "markdown": "Convert into method group" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls3Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 112, - "startColumn": 13, - "charOffset": 3406, - "charLength": 11, - "snippet": { - "text": "UpdateTimer" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 110, - "startColumn": 1, - "charOffset": 3336, - "charLength": 100, - "snippet": { - "text": " mainViewModel.TryAndHandleError(() =>\r\n {\r\n UpdateTimer();\r\n });\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "de2dff0f20513ffc", - "equalIndicator/v1": "d41419dc08ce57b655a7876501c29484a3b0a167a1dc9b525da7a1fe5870e8cb" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "ConvertClosureToMethodGroup", - "kind": "fail", - "level": "note", - "message": { - "text": "Convert into method group", - "markdown": "Convert into method group" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/SekiroSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 111, - "startColumn": 13, - "charOffset": 3225, - "charLength": 18, - "snippet": { - "text": "UpdateAutoSplitter" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 109, - "startColumn": 1, - "charOffset": 3155, - "charLength": 107, - "snippet": { - "text": " mainViewModel.TryAndHandleError(() =>\r\n {\r\n UpdateAutoSplitter();\r\n });\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "2752206f391b7d58", - "equalIndicator/v1": "f5f29d566a08bfbb0d5ed4f9ef967d9e8b0871e2297fd3c374b941e17aa4e53d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "ConvertIfStatementToConditionalTernaryExpression", - "kind": "fail", - "level": "note", - "message": { - "text": "Convert into '?:' expression", - "markdown": "Convert into '?:' expression" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 105, - "startColumn": 17, - "charOffset": 2956, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 103, - "startColumn": 1, - "charOffset": 2885, - "charLength": 174, - "snippet": { - "text": " if (i + 1 < offsets.Count)\r\n {\r\n if (Is64Bit)\r\n {\r\n ptr = Process.ReadMemory(address).Unwrap();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5628a79bf5e6936c", - "equalIndicator/v1": "8e275278c119392fbd1da79429908f573d9ef4c82c46ff602c191d4028d95743" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ConvertIfStatementToConditionalTernaryExpression", - "kind": "fail", - "level": "note", - "message": { - "text": "Convert into '?:' expression", - "markdown": "Convert into '?:' expression" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/BaseParam.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 185, - "startColumn": 13, - "charOffset": 7310, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 183, - "startColumn": 1, - "charOffset": 7138, - "charLength": 276, - "snippet": { - "text": " for (int i = bitfield.paramFieldAttribute.BitsOffset; i < bitfield.paramFieldAttribute.BitsOffset + bitfield.paramFieldAttribute.Bits; i++)\r\n {\r\n if (newValue.IsBitSet(bitIndex))\r\n {\r\n currentValue = currentValue.SetBit(i);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "91a93af4d85fd1ba", - "equalIndicator/v1": "afdb7be0d0983dafde110bf9110c78873d7957c97da81b994c5867175a2cc12b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ConvertIfStatementToConditionalTernaryExpression", - "kind": "fail", - "level": "note", - "message": { - "text": "Convert into '?:' expression", - "markdown": "Convert into '?:' expression" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls2Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 152, - "startColumn": 21, - "charOffset": 4502, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 150, - "startColumn": 1, - "charOffset": 4395, - "charLength": 225, - "snippet": { - "text": " if (_previousIsLoading != _darkSouls2.IsLoading())\r\n {\r\n if (_darkSouls2.IsLoading())\r\n {\r\n _liveSplitState.IsGameTimePaused = true;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "95d88601f3126a75", - "equalIndicator/v1": "d742e6d36dbd5ad2b01066cad36f3d4e784aa7ef6268cacb52d931e771112301" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "ConvertIfStatementToConditionalTernaryExpression", - "kind": "fail", - "level": "note", - "message": { - "text": "Convert into '?:' expression", - "markdown": "Convert into '?:' expression" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/MainViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 201, - "startColumn": 13, - "charOffset": 6645, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 199, - "startColumn": 1, - "charOffset": 6560, - "charLength": 157, - "snippet": { - "text": " BadgeForegroundBrush = new SolidColorBrush(Colors.Black);\r\n\r\n if(Errors.Count > 9)\r\n {\r\n ErrorCount = \"9+\";\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "de39ec2c37f507c5", - "equalIndicator/v1": "e68cf8c8bfc712b212e7490d5dc138f50cb658bd4f0fde0713c06e499009cac2" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "ConvertIfStatementToReturnStatement", - "kind": "fail", - "level": "note", - "message": { - "text": "Convert into 'return' statement", - "markdown": "Convert into 'return' statement" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Extensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 94, - "startColumn": 9, - "charOffset": 2927, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 92, - "startColumn": 1, - "charOffset": 2757, - "charLength": 293, - "snippet": { - "text": "\r\n var versionStr = $\"{fileVersionInfo.FileMajorPart}.{fileVersionInfo.FileMinorPart}.{fileVersionInfo.FileBuildPart}.{fileVersionInfo.FilePrivatePart}\";\r\n if (values.Any(i => i.Version == versionStr))\r\n {\r\n return values.First(i => i.Version == versionStr).i;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d737ce3491f64ca7", - "equalIndicator/v1": "099347e29d286ab21296a88fe27b130d23464a8a0773dc930c2c4340606f5b73" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ConvertIfStatementToReturnStatement", - "kind": "fail", - "level": "note", - "message": { - "text": "Convert into 'return' statement", - "markdown": "Convert into 'return' statement" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 111, - "startColumn": 9, - "charOffset": 4029, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 109, - "startColumn": 1, - "charOffset": 4008, - "charLength": 150, - "snippet": { - "text": " }\r\n\r\n if (exception != null)\r\n {\r\n return Result.Err(new RefreshError(RefreshErrorReason.ModLoadFailed, exception));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3e2fc3dacfd92485", - "equalIndicator/v1": "0bf73a4dd52f30d58186e4970e3b5923bd7337929a112211dbebbf8fd1a10a71" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ConvertIfStatementToReturnStatement", - "kind": "fail", - "level": "note", - "message": { - "text": "Convert into 'return' statement", - "markdown": "Convert into 'return' statement" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Result.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 267, - "startColumn": 9, - "charOffset": 6247, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 265, - "startColumn": 1, - "charOffset": 6150, - "charLength": 197, - "snippet": { - "text": " public static implicit operator Result(ResultErr resultErr)\r\n {\r\n if (resultErr.IsOk)\r\n {\r\n return new Result(true, default!, default!);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "46197b21f2dbd86e", - "equalIndicator/v1": "11d913d5b4793819d6f53163f086d47ac52962fe7b794e8548c199502e5c3414" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ConvertIfStatementToReturnStatement", - "kind": "fail", - "level": "note", - "message": { - "text": "Convert into 'return' statement", - "markdown": "Convert into 'return' statement" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/EldenRing.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 338, - "startColumn": 9, - "charOffset": 11675, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 336, - "startColumn": 1, - "charOffset": 11616, - "charLength": 144, - "snippet": { - "text": " var flag = _menuManImp.ReadInt32(0x18);\r\n\r\n if (\r\n (flag & 0x1) == 1 &&\r\n (flag >> 8 & 0x1) == 0 &&\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c6770c769fb04746", - "equalIndicator/v1": "1a2a23a1936cdb6790725804f14e2908b5786a3589f969ce76aaef0ef95f1df5" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ConvertIfStatementToReturnStatement", - "kind": "fail", - "level": "note", - "message": { - "text": "Convert into 'return' statement", - "markdown": "Convert into 'return' statement" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Converters/EnumToVisibilityConverter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 50, - "startColumn": 9, - "charOffset": 1957, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 48, - "startColumn": 1, - "charOffset": 1936, - "charLength": 138, - "snippet": { - "text": " }\r\n\r\n if (valueEnums.Where((t, i) => !t.Equals(paramEnums[i])).Any())\r\n {\r\n return Visibility.Collapsed;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f886fcf4cec338fe", - "equalIndicator/v1": "2d7e287ec3279a01b59eb31486b494ac2f1f0f10317bd35001058a7164abc5ec" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "ConvertIfStatementToReturnStatement", - "kind": "fail", - "level": "note", - "message": { - "text": "Convert into 'return' statement", - "markdown": "Convert into 'return' statement" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Process/ProcessWrapper.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 85, - "startColumn": 9, - "charOffset": 3033, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 83, - "startColumn": 1, - "charOffset": 2964, - "charLength": 140, - "snippet": { - "text": " public byte[] ReadBytes(long offset, int length)\r\n {\r\n if (_process == null)\r\n {\r\n return new byte[length];\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "232f1064da52596d", - "equalIndicator/v1": "2e2821793e65478ee8de5cf8be3e51400866263a7bdd8cf4677a03395234ce15" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ConvertIfStatementToReturnStatement", - "kind": "fail", - "level": "note", - "message": { - "text": "Convert into 'return' statement", - "markdown": "Convert into 'return' statement" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Converters/SplitTypeVisibilityConverter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 34, - "startColumn": 9, - "charOffset": 1343, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 32, - "startColumn": 1, - "charOffset": 1299, - "charLength": 107, - "snippet": { - "text": " splitType == target;\r\n\r\n if (result)\r\n {\r\n return Visibility.Visible;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0d27910a4f1b80e7", - "equalIndicator/v1": "3180202a9de9c2f51bdcdb11fa80dedbe6906923a466086a61b1083d51291b78" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "ConvertIfStatementToReturnStatement", - "kind": "fail", - "level": "note", - "message": { - "text": "Convert into 'return' statement", - "markdown": "Convert into 'return' statement" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 146, - "startColumn": 17, - "charOffset": 5856, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 144, - "startColumn": 1, - "charOffset": 5629, - "charLength": 443, - "snippet": { - "text": " {\r\n process = Process.GetProcesses().FirstOrDefault(i => string.Equals(i.ProcessName.ToLowerInvariant(), name.ToLowerInvariant(), StringComparison.InvariantCulture) && !i.HasExited);\r\n if (process == null)\r\n {\r\n return Result.Err(new RefreshError(RefreshErrorReason.ProcessNotRunning, $\"Process {name} not running or inaccessible. Try running livesplit as admin.\"));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "2facb4f63ca803b1", - "equalIndicator/v1": "3aae4e275a01f4620ac0e8c88e51ea208456e8be20c0c59db1a8724a3ca42669" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ConvertIfStatementToReturnStatement", - "kind": "fail", - "level": "note", - "message": { - "text": "Convert into 'return' statement", - "markdown": "Convert into 'return' statement" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Process/ProcessWrapper.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 51, - "startColumn": 17, - "charOffset": 2093, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 49, - "startColumn": 1, - "charOffset": 1912, - "charLength": 290, - "snippet": { - "text": " {\r\n _process = System.Diagnostics.Process.GetProcesses().FirstOrDefault(i => i.ProcessName.ToLower() == name.ToLower() && !i.HasExited);\r\n if (_process == null)\r\n {\r\n return ProcessRefreshResult.ProcessNotRunning;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "2aab569a3129a775", - "equalIndicator/v1": "4a336cb5d405a22795538663fab11974b262569b240fac6a12873233369815b8" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ConvertIfStatementToReturnStatement", - "kind": "fail", - "level": "note", - "message": { - "text": "Convert into 'return' statement", - "markdown": "Convert into 'return' statement" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/EldenRing.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 321, - "startColumn": 9, - "charOffset": 11281, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 319, - "startColumn": 1, - "charOffset": 11196, - "charLength": 168, - "snippet": { - "text": " {\r\n var screenState = _menuManImp.ReadInt32(_screenStateOffset);\r\n if (screenState.TryParseEnum(out ScreenState s))\r\n {\r\n return s;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0181f0e336216ba4", - "equalIndicator/v1": "4fe994fe0f53a5f48b87327938ab1c390a55d1627864d1325f850b1d301214da" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ConvertIfStatementToReturnStatement", - "kind": "fail", - "level": "note", - "message": { - "text": "Convert into 'return' statement", - "markdown": "Convert into 'return' statement" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 111, - "startColumn": 13, - "charOffset": 4337, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 109, - "startColumn": 1, - "charOffset": 4294, - "charLength": 277, - "snippet": { - "text": " process = null;\r\n\r\n if (e.Message == \"Access is denied\")\r\n {\r\n return Result.Err(new RefreshError(RefreshErrorReason.AccessDenied, \"Access is denied. Make sure you disable easy anti cheat and try running livesplit as admin.\"));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "6154d4498daf12b5", - "equalIndicator/v1": "5d41c710ec75de71f165f0f08e922b6c002f1ecfa54d9fec27f817693d1b268e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ConvertIfStatementToReturnStatement", - "kind": "fail", - "level": "note", - "message": { - "text": "Convert into 'return' statement", - "markdown": "Convert into 'return' statement" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 175, - "startColumn": 13, - "charOffset": 6827, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 173, - "startColumn": 1, - "charOffset": 6784, - "charLength": 277, - "snippet": { - "text": " process = null;\r\n\r\n if (e.Message == \"Access is denied\")\r\n {\r\n return Result.Err(new RefreshError(RefreshErrorReason.AccessDenied, \"Access is denied. Make sure you disable easy anti cheat and try running livesplit as admin.\"));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d12a80317177e027", - "equalIndicator/v1": "7c3a42df8bf52fda3b69d18f09a16b1a691bc611faa63e7d7e7bc36b8c7f350c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ConvertIfStatementToReturnStatement", - "kind": "fail", - "level": "note", - "message": { - "text": "Convert into 'return' statement", - "markdown": "Convert into 'return' statement" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 82, - "startColumn": 17, - "charOffset": 3366, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 80, - "startColumn": 1, - "charOffset": 3186, - "charLength": 396, - "snippet": { - "text": " {\r\n process = System.Diagnostics.Process.GetProcesses().FirstOrDefault(i => i.ProcessName.ToLower() == name.ToLower() && !i.HasExited);\r\n if (process == null)\r\n {\r\n return Result.Err(new RefreshError(RefreshErrorReason.ProcessNotRunning, $\"Process {name} not running or inaccessible. Try running livesplit as admin.\"));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7ebdd4eb9a2981b9", - "equalIndicator/v1": "7e7366cff771291310bfdf64affe3cf06b9cc805ebfd5d834c54de59f0ad476b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ConvertIfStatementToReturnStatement", - "kind": "fail", - "level": "note", - "message": { - "text": "Convert into 'return' statement", - "markdown": "Convert into 'return' statement" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Result.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 141, - "startColumn": 9, - "charOffset": 3505, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 139, - "startColumn": 1, - "charOffset": 3464, - "charLength": 92, - "snippet": { - "text": " public TErr GetErr()\r\n {\r\n if (IsOk)\r\n {\r\n return default!;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "68e3db15212c8c58", - "equalIndicator/v1": "a0618ea0582ea4aa915c0ecd0ceb6919e1c4b395f0d36b45890a169490ac085f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ConvertIfStatementToReturnStatement", - "kind": "fail", - "level": "note", - "message": { - "text": "Convert into 'return' statement", - "markdown": "Convert into 'return' statement" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Result.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 293, - "startColumn": 9, - "charOffset": 6817, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 291, - "startColumn": 1, - "charOffset": 6776, - "charLength": 92, - "snippet": { - "text": " public TErr GetErr()\r\n {\r\n if (IsOk)\r\n {\r\n return default!;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "17454356fe176ad6", - "equalIndicator/v1": "bbc9fa1b3f49d0b22292681a2d0ff9d287dad179bc97920bfeb4584b2489c3e5" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ConvertIfStatementToReturnStatement", - "kind": "fail", - "level": "note", - "message": { - "text": "Convert into 'return' statement", - "markdown": "Convert into 'return' statement" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/EldenRing.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 279, - "startColumn": 9, - "charOffset": 10052, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 277, - "startColumn": 1, - "charOffset": 9954, - "charLength": 184, - "snippet": { - "text": " {\r\n var version = _versions.FirstOrDefault(i => i.version.CompareTo(v) == 0);\r\n if (version.version == null)\r\n {\r\n return EldenRingVersion.Unknown;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "628114b8b029b62f", - "equalIndicator/v1": "d315054774d0fc47e2e03bcaf05a04c95b1d338e51dbdbcfc6edf63746b29851" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ConvertIfStatementToReturnStatement", - "kind": "fail", - "level": "note", - "message": { - "text": "Convert into 'return' statement", - "markdown": "Convert into 'return' statement" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Result.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 255, - "startColumn": 9, - "charOffset": 5915, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 253, - "startColumn": 1, - "charOffset": 5821, - "charLength": 202, - "snippet": { - "text": " public static implicit operator Result(ResultOk resultOk)\r\n {\r\n if (resultOk.IsOk)\r\n {\r\n return new Result(true, resultOk.Unwrap(), default!);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "42797a8457eb10cb", - "equalIndicator/v1": "d5e82c6cbbbc3b9a65c18e6dff23e4748fbce641c8974621e99dbbe3d75ca787" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ConvertIfStatementToReturnStatement", - "kind": "fail", - "level": "note", - "message": { - "text": "Convert into 'return' statement", - "markdown": "Convert into 'return' statement" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 171, - "startColumn": 9, - "charOffset": 4592, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 169, - "startColumn": 1, - "charOffset": 4465, - "charLength": 193, - "snippet": { - "text": " var address = ResolveOffsets(offsetsCopy);\r\n var result = Process!.ReadProcessMemory(address, length);\r\n if(result.IsErr)\r\n {\r\n return new byte[length];\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "46a230372da0026e", - "equalIndicator/v1": "e1366c34fccce7100c34d902e2668338aad7fe3b0c7ce1c20d35f1d47be9b78f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ConvertIfStatementToReturnStatement", - "kind": "fail", - "level": "note", - "message": { - "text": "Convert into 'return' statement", - "markdown": "Convert into 'return' statement" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/ViewModels/Games/ArmoredCore6ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 33, - "startColumn": 9, - "charOffset": 1248, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 31, - "startColumn": 1, - "charOffset": 1188, - "charLength": 121, - "snippet": { - "text": " private bool CanAddSplit(object? param)\r\n {\r\n if (param is FlatSplit)\r\n {\r\n return true;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "6cc548d76b94630e", - "equalIndicator/v1": "eaa3b042523c98e585238962aa01bc3c2030fe77fe68b0504c50e677138f39bd" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "ConvertIfStatementToReturnStatement", - "kind": "fail", - "level": "note", - "message": { - "text": "Convert into 'return' statement", - "markdown": "Convert into 'return' statement" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Validation/TextToNumberValidation.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 77, - "startColumn": 17, - "charOffset": 2411, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 75, - "startColumn": 1, - "charOffset": 2357, - "charLength": 207, - "snippet": { - "text": "\r\n case NumericType.Uint:\r\n if (!uint.TryParse(text, out var u))\r\n {\r\n return new ValidationResult(false, \"Input is not a valid positive number\");\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a517cb8069aadf93", - "equalIndicator/v1": "ef45cfa83d2730988e51484aea798db70d55093afd1b67461b9e5f56022275f3" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "ConvertIfStatementToReturnStatement", - "kind": "fail", - "level": "note", - "message": { - "text": "Convert into 'return' statement", - "markdown": "Convert into 'return' statement" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Process/ProcessHook.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 78, - "startColumn": 17, - "charOffset": 3349, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 76, - "startColumn": 1, - "charOffset": 3251, - "charLength": 341, - "snippet": { - "text": " case ProcessRefreshResult.Error:\r\n Exited.Invoke(e!);\r\n if (e!.Message == \"Access is denied\")\r\n {\r\n return Result.Err(new RefreshError(RefreshErrorReason.AccessDenied, \"Access is denied. Make sure you disable easy anti cheat and try running livesplit as admin.\"));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a94af20fa22a26cc", - "equalIndicator/v1": "f08304de304603f53a988b7794ef664b3a0a57c611d5148f9471330b6684fc4e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ConvertIfStatementToReturnStatement", - "kind": "fail", - "level": "note", - "message": { - "text": "Convert into 'return' statement", - "markdown": "Convert into 'return' statement" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Validation/TextToNumberValidation.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 38, - "startColumn": 13, - "charOffset": 1198, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 36, - "startColumn": 1, - "charOffset": 1147, - "charLength": 156, - "snippet": { - "text": " if (value == null)\r\n {\r\n if (IsRequired)\r\n {\r\n return new ValidationResult(false, \"Value is required\");\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "2635baf2c4240d15", - "equalIndicator/v1": "fcfbd8d2a9f8dee8251fd822df2f7d6cc42e9873c17720711781f5eefb8fa60a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "ConvertIfStatementToSwitchStatement", - "kind": "fail", - "level": "note", - "message": { - "text": "Convert 'if' statement into 'switch' statement", - "markdown": "Convert 'if' statement into 'switch' statement" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 82, - "startColumn": 13, - "charOffset": 3080, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 80, - "startColumn": 1, - "charOffset": 2988, - "charLength": 271, - "snippet": { - "text": " foreach (var node in _armoredCore6.PointerTreeBuilder.Tree)\r\n {\r\n if (node.PointerNodeType == PointerNodeType.RelativeScan)\r\n {\r\n builder.ScanRelative(node.Name, node.Pattern, node.AddressOffset, node.InstructionSize);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b69def539d787c79", - "equalIndicator/v1": "02d59436d5513ad2672bb2fbfd657235fa7c8be5ddcd7e660e5fae1da04cf5c2" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ConvertIfStatementToSwitchStatement", - "kind": "fail", - "level": "note", - "message": { - "text": "Convert 'if' statement into 'switch' statement", - "markdown": "Convert 'if' statement into 'switch' statement" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Converters/SplitObjectToDescriptionConverter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 27, - "startColumn": 9, - "charOffset": 1123, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 25, - "startColumn": 1, - "charOffset": 988, - "charLength": 207, - "snippet": { - "text": " public object Convert(object? value, Type targetType, object? parameter, System.Globalization.CultureInfo culture)\r\n {\r\n if (value is Enum e)\r\n {\r\n return e.GetDisplayName();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5d4cdc079bf5df26", - "equalIndicator/v1": "67a249201865fb1e42ac0fc587d5323a61f90609fa519ec1b44f6ba583425e66" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "ConvertIfStatementToSwitchStatement", - "kind": "fail", - "level": "note", - "message": { - "text": "Convert 'if' statement into 'switch' statement", - "markdown": "Convert 'if' statement into 'switch' statement" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls3/DarkSouls3ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 86, - "startColumn": 13, - "charOffset": 2952, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 84, - "startColumn": 1, - "charOffset": 2884, - "charLength": 243, - "snippet": { - "text": " this.SetField(ref _newSplitType, value);\r\n\r\n if(NewSplitType == SplitType.Attribute)\r\n {\r\n NewSplitValue = new Attribute() { AttributeType = SoulMemory.DarkSouls3.Attribute.Vigor, Level = 10 };\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a212e11b796e1186", - "equalIndicator/v1": "e688014ceb9175ed6dc178302db11cd0a4635d640b83e7adf27cfad791d59d72" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "ConvertIfStatementToSwitchStatement", - "kind": "fail", - "level": "note", - "message": { - "text": "Convert 'if' statement into 'switch' statement", - "markdown": "Convert 'if' statement into 'switch' statement" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/ParamClassGenerator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 49, - "startColumn": 13, - "charOffset": 2126, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 47, - "startColumn": 1, - "charOffset": 2060, - "charLength": 157, - "snippet": { - "text": " foreach (var baseField in fields)\r\n {\r\n if (baseField is Field field)\r\n {\r\n if (field.ArraySize == null)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "dd8208cb18480d49", - "equalIndicator/v1": "f8b6ca82d4789ed23d09aa4c2c639f6719ff98dab9e8e130dbf2cffcfb685b11" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ConvertToCompoundAssignment", - "kind": "fail", - "level": "note", - "message": { - "text": "Convert into compound assignment", - "markdown": "Convert into compound assignment" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/EldenRing.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 370, - "startColumn": 19, - "charOffset": 12431, - "charLength": 3, - "snippet": { - "text": "num" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 368, - "startColumn": 1, - "charOffset": 12362, - "charLength": 110, - "snippet": { - "text": " for (int i = 1; num != 0; i++)\r\n {\r\n num = num / 10;\r\n \r\n if (i == n)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "26ab2e0668345857", - "equalIndicator/v1": "cf7320bb24f8237ab6b3fcbc22f1fb3a846e31229845920f0a2356fd6c8460a9" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ConvertToCompoundAssignment", - "kind": "fail", - "level": "note", - "message": { - "text": "Convert into compound assignment", - "markdown": "Convert into compound assignment" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Native/Kernel32.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 222, - "startColumn": 23, - "charOffset": 8293, - "charLength": 7, - "snippet": { - "text": "dllPath" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 220, - "startColumn": 1, - "charOffset": 8223, - "charLength": 99, - "snippet": { - "text": " if(!dllPath.EndsWith(\"\\0\"))\r\n {\r\n dllPath = dllPath + '\\0';\r\n }\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "2d2e3671f5ff6998", - "equalIndicator/v1": "ec24ec2d2a8444d72b677879ba8566a13a99ed3ba136851a149d60d2c2477c70" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ConvertToConstant.Local", - "kind": "fail", - "level": "note", - "message": { - "text": "Convert into constant", - "markdown": "Convert into constant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 429, - "startColumn": 16, - "charOffset": 14675, - "charLength": 4, - "snippet": { - "text": "name" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 427, - "startColumn": 1, - "charOffset": 14622, - "charLength": 120, - "snippet": { - "text": " private int GetSteamId3()\r\n {\r\n string name = \"steam_api64.dll\";\r\n ProcessModule? module = null;\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1202aeca897b9b24", - "equalIndicator/v1": "5bb08c852512a0804adb25359afe50a0169dab613e388ebbe3ce7df4f7c0e767" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ConvertToConstant.Local", - "kind": "fail", - "level": "note", - "message": { - "text": "Convert into constant", - "markdown": "Convert into constant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Sl2Reader.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 81, - "startColumn": 25, - "charOffset": 2920, - "charLength": 12, - "snippet": { - "text": "saveSlotSize" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 79, - "startColumn": 1, - "charOffset": 2790, - "charLength": 288, - "snippet": { - "text": " byte[] file = File.ReadAllBytes(path);\r\n file = DecryptSl2(file);\r\n int saveSlotSize = 0x60030;\r\n int igtOffset = 0x2EC + (saveSlotSize * slot);\r\n igt = BitConverter.ToInt32(file, igtOffset);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "cb30f2670e968368", - "equalIndicator/v1": "6245741e36a28f1f3c3ab4127fa1b403c1a37fa128f4ffd360a6c53e15d173db" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ConvertToConstant.Local", - "kind": "fail", - "level": "note", - "message": { - "text": "Convert into constant", - "markdown": "Convert into constant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Native/Kernel32.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 98, - "startColumn": 13, - "charOffset": 3703, - "charLength": 7, - "snippet": { - "text": "endByte" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 96, - "startColumn": 1, - "charOffset": 3526, - "charLength": 283, - "snippet": { - "text": " public static string ReadAsciiString(this Process process, long address, int initialBufferSize = 20, [CallerMemberName] string? callerMemberName = null)\r\n {\r\n var endByte = (byte)'\\0';\r\n var bytes = Array.Empty();\r\n while (!bytes.Contains(endByte))\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d397341cbde800de", - "equalIndicator/v1": "6e27837e93ec302974a0cddb15970c835f04e30118747be8282b96e7e62655a2" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ConvertToConstant.Local", - "kind": "fail", - "level": "note", - "message": { - "text": "Convert into constant", - "markdown": "Convert into constant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/EldenRing.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 400, - "startColumn": 18, - "charOffset": 13251, - "charLength": 4, - "snippet": { - "text": "mask" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 398, - "startColumn": 1, - "charOffset": 13176, - "charLength": 171, - "snippet": { - "text": " \r\n byte cat = inventory[itemIndex + 0X7];\r\n byte mask = 0xF0;\r\n cat &= mask;\r\n var category = (Category)(cat * 0x1000000);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e8e0ca44f97b3c27", - "equalIndicator/v1": "f6c410e50068741f71c263922e1886b62f9b430aa4c4eeefcd83d9a357c6af02" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "EmptyConstructor", - "kind": "fail", - "level": "warning", - "message": { - "text": "Empty constructor is redundant. The compiler generates the same by default.", - "markdown": "Empty constructor is redundant. The compiler generates the same by default." - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 30, - "startColumn": 12, - "charOffset": 1163, - "charLength": 18, - "snippet": { - "text": "EldenRingViewModel" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 28, - "startColumn": 1, - "charOffset": 1085, - "charLength": 113, - "snippet": { - "text": "public class EldenRingViewModel : ICustomNotifyPropertyChanged\r\n{\r\n public EldenRingViewModel()\r\n {\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a2903162588ddf50", - "equalIndicator/v1": "aaecf5d33627949e428a48e69bb5b29edb9ae7aeac4c3142d704f52ea15b5493" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "FieldCanBeMadeReadOnly.Local", - "kind": "fail", - "level": "note", - "message": { - "text": "Field can be made readonly", - "markdown": "Field can be made readonly" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Logger.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 26, - "startColumn": 27, - "charOffset": 996, - "charLength": 8, - "snippet": { - "text": "_logLock" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 24, - "startColumn": 1, - "charOffset": 919, - "charLength": 152, - "snippet": { - "text": "{\r\n private static bool LoggingEnabled = true;\r\n private static object _logLock = new();\r\n\r\n public static void SetLoggingEnabled(bool enable)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a4ad486934730d49", - "equalIndicator/v1": "0c2756a94105e8c4f1563ee558472fccb400e381fd888852f5c87b8e8ed446bf" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "FieldCanBeMadeReadOnly.Local", - "kind": "fail", - "level": "note", - "message": { - "text": "Field can be made readonly", - "markdown": "Field can be made readonly" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/DropMod.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 134, - "startColumn": 20, - "charOffset": 5310, - "charLength": 7, - "snippet": { - "text": "ItemId1" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 132, - "startColumn": 1, - "charOffset": 5206, - "charLength": 169, - "snippet": { - "text": " public ItemType SwitchItem = switchItem;\r\n public int RowId = rowId;\r\n public int ItemId1 = itemId1;\r\n public int ItemId2 = itemId2;\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "127222fd54792a69", - "equalIndicator/v1": "154c545125b7796c9bfe27f930ce1a6c1ba7099abf864e3f10a36622f5dcc964" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "FieldCanBeMadeReadOnly.Local", - "kind": "fail", - "level": "note", - "message": { - "text": "Field can be made readonly", - "markdown": "Field can be made readonly" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/ParamClassGenerator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 255, - "startColumn": 26, - "charOffset": 10673, - "charLength": 9, - "snippet": { - "text": "ParamType" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 253, - "startColumn": 1, - "charOffset": 10531, - "charLength": 235, - "snippet": { - "text": " private struct PreParsedField(string name, ParamType paramType, int? bits = null, int? arraySize = null)\r\n {\r\n public ParamType ParamType = paramType;\r\n public string Name = name;\r\n public int? Bits = bits;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "662dad8231aedc8f", - "equalIndicator/v1": "70f7ed43b27512c1485413dfc67725bfed6a838b682374f85eb201996ceb0928" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "FieldCanBeMadeReadOnly.Local", - "kind": "fail", - "level": "note", - "message": { - "text": "Field can be made readonly", - "markdown": "Field can be made readonly" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/ParamClassGenerator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 258, - "startColumn": 21, - "charOffset": 10787, - "charLength": 9, - "snippet": { - "text": "ArraySize" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 256, - "startColumn": 1, - "charOffset": 10697, - "charLength": 158, - "snippet": { - "text": " public string Name = name;\r\n public int? Bits = bits;\r\n public int? ArraySize = arraySize;\r\n\r\n public override string ToString()\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a686162728f53056", - "equalIndicator/v1": "758885d1df4f466c3b91231db6089632b47277b63b06d0d09e9fb5ba0d0112b6" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "FieldCanBeMadeReadOnly.Local", - "kind": "fail", - "level": "note", - "message": { - "text": "Field can be made readonly", - "markdown": "Field can be made readonly" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/DropMod.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 132, - "startColumn": 25, - "charOffset": 5230, - "charLength": 10, - "snippet": { - "text": "SwitchItem" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 130, - "startColumn": 1, - "charOffset": 5157, - "charLength": 172, - "snippet": { - "text": " {\r\n public bool ShouldSwitch = true;\r\n public ItemType SwitchItem = switchItem;\r\n public int RowId = rowId;\r\n public int ItemId1 = itemId1;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "2d48841a244cfacf", - "equalIndicator/v1": "79a78122c29c3b21424f7b42716a48fd713446cf2d5bff2f01261b3e38522ff6" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "FieldCanBeMadeReadOnly.Local", - "kind": "fail", - "level": "note", - "message": { - "text": "Field can be made readonly", - "markdown": "Field can be made readonly" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/ParamClassGenerator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 256, - "startColumn": 23, - "charOffset": 10719, - "charLength": 4, - "snippet": { - "text": "Name" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 254, - "startColumn": 1, - "charOffset": 10641, - "charLength": 169, - "snippet": { - "text": " {\r\n public ParamType ParamType = paramType;\r\n public string Name = name;\r\n public int? Bits = bits;\r\n public int? ArraySize = arraySize;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "2a751848821fd8a1", - "equalIndicator/v1": "8191f6977fb7a05bc4f97d1ce70967e2022bcea83a08a774a392ada42cebe467" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "FieldCanBeMadeReadOnly.Local", - "kind": "fail", - "level": "note", - "message": { - "text": "Field can be made readonly", - "markdown": "Field can be made readonly" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/ParamClassGenerator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 294, - "startColumn": 46, - "charOffset": 11658, - "charLength": 9, - "snippet": { - "text": "Bitfields" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 292, - "startColumn": 1, - "charOffset": 11600, - "charLength": 87, - "snippet": { - "text": " }\r\n\r\n public List<(string name, int size)> Bitfields = [];\r\n }\r\n \r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1b855d64949976dd", - "equalIndicator/v1": "9ac13aaa90fe77b9ef4f6ac141ad4ad1b5a328e5937fd60203a2ee86c8e01023" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "FieldCanBeMadeReadOnly.Local", - "kind": "fail", - "level": "note", - "message": { - "text": "Field can be made readonly", - "markdown": "Field can be made readonly" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/DropMod.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 133, - "startColumn": 20, - "charOffset": 5275, - "charLength": 5, - "snippet": { - "text": "RowId" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 131, - "startColumn": 1, - "charOffset": 5164, - "charLength": 204, - "snippet": { - "text": " public bool ShouldSwitch = true;\r\n public ItemType SwitchItem = switchItem;\r\n public int RowId = rowId;\r\n public int ItemId1 = itemId1;\r\n public int ItemId2 = itemId2;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e59efca32581d80c", - "equalIndicator/v1": "a90c707302ec52420e441de1d50ed7dccf9f9a4da2535a21c51403fbbe8eea3b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "FieldCanBeMadeReadOnly.Local", - "kind": "fail", - "level": "note", - "message": { - "text": "Field can be made readonly", - "markdown": "Field can be made readonly" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/DropMod.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 135, - "startColumn": 20, - "charOffset": 5349, - "charLength": 7, - "snippet": { - "text": "ItemId2" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 133, - "startColumn": 1, - "charOffset": 5256, - "charLength": 122, - "snippet": { - "text": " public int RowId = rowId;\r\n public int ItemId1 = itemId1;\r\n public int ItemId2 = itemId2;\r\n }\r\n}\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "571e23e68a31238b", - "equalIndicator/v1": "ac0a58629bfd14c285e13c41f5cf696bcc564c1fda841455e47f0c08dcbec50b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "FieldCanBeMadeReadOnly.Local", - "kind": "fail", - "level": "note", - "message": { - "text": "Field can be made readonly", - "markdown": "Field can be made readonly" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/ParamClassGenerator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 257, - "startColumn": 21, - "charOffset": 10753, - "charLength": 4, - "snippet": { - "text": "Bits" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 255, - "startColumn": 1, - "charOffset": 10648, - "charLength": 164, - "snippet": { - "text": " public ParamType ParamType = paramType;\r\n public string Name = name;\r\n public int? Bits = bits;\r\n public int? ArraySize = arraySize;\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "45fb0cabf5e08ad4", - "equalIndicator/v1": "c37e48b921f5852eacc013bd5cd2e0bdd2eab2572775f4250bf328e9cf8181ac" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "FieldCanBeMadeReadOnly.Local", - "kind": "fail", - "level": "note", - "message": { - "text": "Field can be made readonly", - "markdown": "Field can be made readonly" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/ParamClassGenerator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 282, - "startColumn": 23, - "charOffset": 11362, - "charLength": 4, - "snippet": { - "text": "Name" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 280, - "startColumn": 1, - "charOffset": 11327, - "charLength": 80, - "snippet": { - "text": " }\r\n\r\n public string Name;\r\n public int? ArraySize;\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5b3e8bd385e95c87", - "equalIndicator/v1": "dc481c46ac48d2bf9e128ff916e11b619a891598074bc519db68bcecf9873af9" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "FieldCanBeMadeReadOnly.Local", - "kind": "fail", - "level": "note", - "message": { - "text": "Field can be made readonly", - "markdown": "Field can be made readonly" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/ParamClassGenerator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 283, - "startColumn": 21, - "charOffset": 11389, - "charLength": 9, - "snippet": { - "text": "ArraySize" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 281, - "startColumn": 1, - "charOffset": 11338, - "charLength": 71, - "snippet": { - "text": "\r\n public string Name;\r\n public int? ArraySize;\r\n }\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d3866538d75702c2", - "equalIndicator/v1": "e1906e93fec92aa16371ee6c2b52de81a005dade69e88ac89fab4044f54b05a1" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ForeachCanBeConvertedToQueryUsingAnotherGetEnumerator", - "kind": "fail", - "level": "note", - "message": { - "text": "Loop can be converted into LINQ-expression but another 'GetEnumerator' method will be used", - "markdown": "Loop can be converted into LINQ-expression but another 'GetEnumerator' method will be used" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 101, - "startColumn": 9, - "charOffset": 4077, - "charLength": 7, - "snippet": { - "text": "foreach" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 99, - "startColumn": 1, - "charOffset": 4005, - "charLength": 190, - "snippet": { - "text": " var files = new List<(string name, byte[] bytes)>();\r\n\r\n foreach (var path in filepaths)\r\n {\r\n files.Add((Path.GetFileName(path), File.ReadAllBytes(path)));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e9b443cd7e14f56f", - "equalIndicator/v1": "23420545e3152c3c7fd5d61627e83427d13d600005443b7762a98e537039895c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ForeachCanBeConvertedToQueryUsingAnotherGetEnumerator", - "kind": "fail", - "level": "note", - "message": { - "text": "Loop can be converted into LINQ-expression but another 'GetEnumerator' method will be used", - "markdown": "Loop can be converted into LINQ-expression but another 'GetEnumerator' method will be used" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 37, - "startColumn": 9, - "charOffset": 1615, - "charLength": 7, - "snippet": { - "text": "foreach" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 35, - "startColumn": 1, - "charOffset": 1543, - "charLength": 190, - "snippet": { - "text": " var files = new List<(string name, byte[] bytes)>();\r\n\r\n foreach (var path in filepaths)\r\n {\r\n files.Add((Path.GetFileName(path), File.ReadAllBytes(path)));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f4b20012dd1bcc4d", - "equalIndicator/v1": "ad0ca981af283ac936cc492d5e71ddb53151fb58972fe8693fcd365e540bb681" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ForeachCanBePartlyConvertedToQueryUsingAnotherGetEnumerator", - "kind": "fail", - "level": "note", - "message": { - "text": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used", - "markdown": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Migrations/Migrator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 102, - "startColumn": 25, - "charOffset": 4622, - "charLength": 7, - "snippet": { - "text": "foreach" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 100, - "startColumn": 1, - "charOffset": 4556, - "charLength": 246, - "snippet": { - "text": "\r\n case \"ItemPickup\":\r\n foreach (XmlNode itemPickup in typeNode.GetChildNodeByName(\"Children\"))\r\n {\r\n var split = itemPickup.GetChildNodeByName(\"Split\");\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d2fe93e5965cfe91", - "equalIndicator/v1": "012351fd20e324b55956befccd5d2ca2649792406fdfa68045120a4e8a2321a0" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "ForeachCanBePartlyConvertedToQueryUsingAnotherGetEnumerator", - "kind": "fail", - "level": "note", - "message": { - "text": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used", - "markdown": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls1Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 234, - "startColumn": 9, - "charOffset": 7852, - "charLength": 7, - "snippet": { - "text": "foreach" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 232, - "startColumn": 1, - "charOffset": 7803, - "charLength": 123, - "snippet": { - "text": "\r\n List? inventory = null;\r\n foreach (var s in _splits)\r\n {\r\n if (!s.SplitTriggered)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "8562882943651c6c", - "equalIndicator/v1": "05763ccea30fa061eeea533063b5a07d43f4908d96962ca5aa86ce25db96da55" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "ForeachCanBePartlyConvertedToQueryUsingAnotherGetEnumerator", - "kind": "fail", - "level": "note", - "message": { - "text": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used", - "markdown": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Migrations/Migrator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 88, - "startColumn": 25, - "charOffset": 3792, - "charLength": 7, - "snippet": { - "text": "foreach" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 86, - "startColumn": 1, - "charOffset": 3729, - "charLength": 237, - "snippet": { - "text": "\r\n case \"Bonfire\":\r\n foreach (XmlNode bonfire in typeNode.GetChildNodeByName(\"Children\"))\r\n {\r\n var split = bonfire.GetChildNodeByName(\"Split\");\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "cee3eedf36a3f0dc", - "equalIndicator/v1": "0c8c4140f614569e704698e1fa45c3b8aac54757bf3d15270776a9d4d7260d13" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "ForeachCanBePartlyConvertedToQueryUsingAnotherGetEnumerator", - "kind": "fail", - "level": "note", - "message": { - "text": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used", - "markdown": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls3Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 214, - "startColumn": 9, - "charOffset": 6385, - "charLength": 7, - "snippet": { - "text": "foreach" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 212, - "startColumn": 1, - "charOffset": 6356, - "charLength": 103, - "snippet": { - "text": " }\r\n \r\n foreach (var s in _splits)\r\n {\r\n if (!s.SplitTriggered)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ab55efb8d21adcd9", - "equalIndicator/v1": "28432a46b81a29f82a1f887acc68b929cc68a18db9f5f3f98344e58a631b2622" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "ForeachCanBePartlyConvertedToQueryUsingAnotherGetEnumerator", - "kind": "fail", - "level": "note", - "message": { - "text": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used", - "markdown": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/SekiroSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 218, - "startColumn": 9, - "charOffset": 6209, - "charLength": 7, - "snippet": { - "text": "foreach" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 216, - "startColumn": 1, - "charOffset": 6180, - "charLength": 103, - "snippet": { - "text": " }\r\n \r\n foreach (var s in _splits)\r\n {\r\n if (!s.SplitTriggered)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "fc002c4bd1207932", - "equalIndicator/v1": "349185f97867ca886c02acb55c2d05e05b94bed7b9b915e069c5608f1771cfd6" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "ForeachCanBePartlyConvertedToQueryUsingAnotherGetEnumerator", - "kind": "fail", - "level": "note", - "message": { - "text": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used", - "markdown": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Migrations/Migrator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 214, - "startColumn": 25, - "charOffset": 10646, - "charLength": 7, - "snippet": { - "text": "foreach" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 212, - "startColumn": 1, - "charOffset": 10586, - "charLength": 228, - "snippet": { - "text": "\r\n case \"Boss\":\r\n foreach (XmlNode boss in typeNode.GetChildNodeByName(\"Children\"))\r\n {\r\n var split = boss.GetChildNodeByName(\"Split\");\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "fd6976c0e48548c7", - "equalIndicator/v1": "367c70f4b472c89a0b36cd028b3edb6c7bb0d466cde82540aaacfeef3647e138" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "ForeachCanBePartlyConvertedToQueryUsingAnotherGetEnumerator", - "kind": "fail", - "level": "note", - "message": { - "text": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used", - "markdown": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/EldenRingSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 250, - "startColumn": 9, - "charOffset": 8096, - "charLength": 7, - "snippet": { - "text": "foreach" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 248, - "startColumn": 1, - "charOffset": 8042, - "charLength": 128, - "snippet": { - "text": " List? inventoryItems = null;\r\n\r\n foreach (var s in _splits)\r\n {\r\n if (!s.SplitTriggered)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "fa6469910976b205", - "equalIndicator/v1": "54c82c6d2ea4a4bac337b7a82482eb3b5cda84943c851f604d4a56f359ebfcf4" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "ForeachCanBePartlyConvertedToQueryUsingAnotherGetEnumerator", - "kind": "fail", - "level": "note", - "message": { - "text": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used", - "markdown": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Migrations/Migrator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 136, - "startColumn": 25, - "charOffset": 6778, - "charLength": 7, - "snippet": { - "text": "foreach" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 134, - "startColumn": 1, - "charOffset": 6718, - "charLength": 228, - "snippet": { - "text": "\r\n case \"Flag\":\r\n foreach (XmlNode flag in typeNode.GetChildNodeByName(\"Children\"))\r\n {\r\n var split = flag.GetChildNodeByName(\"Split\");\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0528c2272fbf7945", - "equalIndicator/v1": "556bfd702d8cb8091b7f3c616db924fb5bc008cb360b5608603465436cb38bef" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "ForeachCanBePartlyConvertedToQueryUsingAnotherGetEnumerator", - "kind": "fail", - "level": "note", - "message": { - "text": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used", - "markdown": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/DropMod.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 65, - "startColumn": 9, - "charOffset": 2263, - "charLength": 7, - "snippet": { - "text": "foreach" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 63, - "startColumn": 1, - "charOffset": 2206, - "charLength": 216, - "snippet": { - "text": " var items = darkSouls.GetInventory();\r\n\r\n foreach (SwitchableDrop temp in _switchableWeapons)\r\n {\r\n var s = temp; //structs need to be put in a variable in order to be mutable. Meme.\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "64c2d1a6ba93a8d0", - "equalIndicator/v1": "622e3e4b8ab79359b991c85c47bbd66a576b8380a0afb0524685a2a8f47f992f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "ForeachCanBePartlyConvertedToQueryUsingAnotherGetEnumerator", - "kind": "fail", - "level": "note", - "message": { - "text": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used", - "markdown": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls2Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 196, - "startColumn": 9, - "charOffset": 5619, - "charLength": 7, - "snippet": { - "text": "foreach" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 194, - "startColumn": 1, - "charOffset": 5590, - "charLength": 103, - "snippet": { - "text": " }\r\n \r\n foreach (var s in _splits)\r\n {\r\n if (!s.SplitTriggered)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "39609fc877653488", - "equalIndicator/v1": "77851fd4cf58c26bd822c6d8648023f1f4f6b69963b342c16af9da0295459509" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "ForeachCanBePartlyConvertedToQueryUsingAnotherGetEnumerator", - "kind": "fail", - "level": "note", - "message": { - "text": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used", - "markdown": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Migrations/Migrator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 74, - "startColumn": 25, - "charOffset": 2980, - "charLength": 7, - "snippet": { - "text": "foreach" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 72, - "startColumn": 1, - "charOffset": 2903, - "charLength": 245, - "snippet": { - "text": " {\r\n case \"Boss\":\r\n foreach (XmlNode boss in typeNode.GetChildNodeByName(\"Children\"))\r\n {\r\n var split = boss.GetChildNodeByName(\"Split\");\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "8706ed99a2d29d37", - "equalIndicator/v1": "c403b7c8dacca5e9e283ba84df39bcd58328a1efdedf7f99a711976abccbd715" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "ForeachCanBePartlyConvertedToQueryUsingAnotherGetEnumerator", - "kind": "fail", - "level": "note", - "message": { - "text": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used", - "markdown": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/ArmoredCore6Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 81, - "startColumn": 9, - "charOffset": 2732, - "charLength": 7, - "snippet": { - "text": "foreach" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 79, - "startColumn": 1, - "charOffset": 2711, - "charLength": 95, - "snippet": { - "text": " }\r\n\r\n foreach (var s in _splits)\r\n {\r\n if (!s.SplitTriggered)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "58cbb48e9b18ee4e", - "equalIndicator/v1": "d51de9e4b30af90e38fe47cc1a6766fa9bc453f2780f809426b79f43126ae7e4" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "ForeachCanBePartlyConvertedToQueryUsingAnotherGetEnumerator", - "kind": "fail", - "level": "note", - "message": { - "text": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used", - "markdown": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Migrations/Migrator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 242, - "startColumn": 25, - "charOffset": 12219, - "charLength": 7, - "snippet": { - "text": "foreach" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 240, - "startColumn": 1, - "charOffset": 12159, - "charLength": 228, - "snippet": { - "text": "\r\n case \"Flag\":\r\n foreach (XmlNode flag in typeNode.GetChildNodeByName(\"Children\"))\r\n {\r\n var split = flag.GetChildNodeByName(\"Split\");\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c1c6b8827d51f2cc", - "equalIndicator/v1": "df1c8f10b756a59320161d6a3bc79fc288dc6485977b1670d587b43afccfffd1" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "ForeachCanBePartlyConvertedToQueryUsingAnotherGetEnumerator", - "kind": "fail", - "level": "note", - "message": { - "text": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used", - "markdown": "Part of loop's body can be converted into LINQ-expression but another 'GetEnumerator' method will be used" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Migrations/Migrator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 228, - "startColumn": 25, - "charOffset": 11431, - "charLength": 7, - "snippet": { - "text": "foreach" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 226, - "startColumn": 1, - "charOffset": 11371, - "charLength": 228, - "snippet": { - "text": "\r\n case \"Idol\":\r\n foreach (XmlNode idol in typeNode.GetChildNodeByName(\"Children\"))\r\n {\r\n var split = idol.GetChildNodeByName(\"Split\");\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "061ed65b2e7c4cd5", - "equalIndicator/v1": "fdec897a2568f779fa824b6b1fe688e58706f1870a629b01a7492a9e859eb1af" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "InvalidXmlDocComment", - "kind": "fail", - "level": "warning", - "message": { - "text": "Cannot resolve parameter 'iv'", - "markdown": "Cannot resolve parameter 'iv'" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Sl2Reader.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 114, - "startColumn": 22, - "charOffset": 3784, - "charLength": 2, - "snippet": { - "text": "iv" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 112, - "startColumn": 1, - "charOffset": 3665, - "charLength": 236, - "snippet": { - "text": " /// encrypted bytes\r\n /// key\r\n /// iv\r\n /// decrypted bytes\r\n private static byte[] DecryptSl2(byte[] cipherBytes)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "bf856313bcb73407", - "equalIndicator/v1": "468bd5875655386750dcd5b317204eb9307c86980bc3466f0e0881af5f36f5ce" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvalidXmlDocComment", - "kind": "fail", - "level": "warning", - "message": { - "text": "Parameter 'ptde' has no matching param tag in the XML comment for SoulMemory.DarkSouls1.Sl2Reader.GetSaveFileIgt (but other parameters do)", - "markdown": "Parameter 'ptde' has no matching param tag in the XML comment for SoulMemory.DarkSouls1.Sl2Reader.GetSaveFileIgt (but other parameters do)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Sl2Reader.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 49, - "startColumn": 68, - "charOffset": 1893, - "charLength": 4, - "snippet": { - "text": "ptde" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 47, - "startColumn": 1, - "charOffset": 1712, - "charLength": 220, - "snippet": { - "text": " /// The game version\r\n /// IGT or -1 if sometimes failed\r\n public static int? GetSaveFileIgt(string? path, int slot, bool ptde)\r\n {\r\n int? igt = null;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "77a143a217896dcf", - "equalIndicator/v1": "8a74589a15a25c84695c7e74a5f0e0ca1a30af7b3dcc32c16527219f9a2cc52f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvalidXmlDocComment", - "kind": "fail", - "level": "warning", - "message": { - "text": "Cannot resolve parameter 'errors'", - "markdown": "Cannot resolve parameter 'errors'" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 36, - "startColumn": 22, - "charOffset": 1453, - "charLength": 6, - "snippet": { - "text": "errors" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 34, - "startColumn": 1, - "charOffset": 1348, - "charLength": 201, - "snippet": { - "text": " /// \r\n /// \r\n /// \r\n /// \r\n /// \r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "43d6d71041648287", - "equalIndicator/v1": "8ca00d65ee57945fa59ffd9e59ae2fdc9a5b9db53e9e60a258faa61f68c48444" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvalidXmlDocComment", - "kind": "fail", - "level": "warning", - "message": { - "text": "Cannot resolve parameter 'version'", - "markdown": "Cannot resolve parameter 'version'" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Sl2Reader.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 47, - "startColumn": 22, - "charOffset": 1733, - "charLength": 7, - "snippet": { - "text": "version" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 45, - "startColumn": 1, - "charOffset": 1589, - "charLength": 310, - "snippet": { - "text": " /// path to the SL2 file\r\n /// the slot to read the IGT from\r\n /// The game version\r\n /// IGT or -1 if sometimes failed\r\n public static int? GetSaveFileIgt(string? path, int slot, bool ptde)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "eec4b53b102bc920", - "equalIndicator/v1": "a8edf12716bea8944f15d70731710c789bf97c6778d1fa046821c058a965867d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvalidXmlDocComment", - "kind": "fail", - "level": "warning", - "message": { - "text": "Cannot resolve parameter 'key'", - "markdown": "Cannot resolve parameter 'key'" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Sl2Reader.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 113, - "startColumn": 22, - "charOffset": 3745, - "charLength": 3, - "snippet": { - "text": "key" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 111, - "startColumn": 1, - "charOffset": 3645, - "charLength": 198, - "snippet": { - "text": " /// \r\n /// encrypted bytes\r\n /// key\r\n /// iv\r\n /// decrypted bytes\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "653146d61fed80dc", - "equalIndicator/v1": "eacffe11019fbc31229c71a87dde5b228a71ee5bcf4221a44768e27d4e874e70" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 159, - "startColumn": 17, - "charOffset": 6377, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 157, - "startColumn": 1, - "charOffset": 6328, - "charLength": 128, - "snippet": { - "text": " else\r\n {\r\n if (process.HasExited)\r\n {\r\n process = null;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5da56bce3b20b379", - "equalIndicator/v1": "027a70fa60e22b201c78a65fcb8c0314b8a4d33daa09221611b1b10c79f79670" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 217, - "startColumn": 13, - "charOffset": 7709, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 215, - "startColumn": 1, - "charOffset": 7680, - "charLength": 135, - "snippet": { - "text": " }\r\n\r\n if (calculatedPointer != 0)\r\n {\r\n var thing = 7 - (leastSignificantDigits & 7);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f18aca08d2acc005", - "equalIndicator/v1": "08c9b01a1c0905d91a860c410dd838eea834d0fa22b50cc2a6f0252343e610b5" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/SekiroSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 78, - "startColumn": 9, - "charOffset": 2386, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 76, - "startColumn": 1, - "charOffset": 2319, - "charLength": 142, - "snippet": { - "text": " protected virtual void Dispose(bool disposing)\r\n {\r\n if (disposing)\r\n {\r\n _liveSplitState.OnStart -= OnStart;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "643fb98de375013a", - "equalIndicator/v1": "0c5ec9d37f0e109a2c9e7056324edee3fa2ea5ffa8c421321260331ffda49a74" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/DarkSouls1.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 79, - "startColumn": 17, - "charOffset": 3943, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 77, - "startColumn": 1, - "charOffset": 3856, - "charLength": 164, - "snippet": { - "text": " {\r\n var result = _darkSouls1.TryRefresh();\r\n if(result.IsErr)\r\n {\r\n _darkSouls1 = null;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e64a1742565f6f46", - "equalIndicator/v1": "128c1071161b4d6aa70ee507190f0cd2f14eb9cce3c34ca3f676165de7910b6e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/ParamClassGenerator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 173, - "startColumn": 9, - "charOffset": 7632, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 171, - "startColumn": 1, - "charOffset": 7601, - "charLength": 125, - "snippet": { - "text": "\r\n //Bitfields\r\n if (paramName.Contains(':'))\r\n {\r\n var colonIndex = paramName.IndexOf(':');\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5855ddaa5ef2ed4d", - "equalIndicator/v1": "135b139eb1be6572036d0696b414d198c1ac50a28fe02c3703440cd9669acd2b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 144, - "startColumn": 9, - "charOffset": 5113, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 142, - "startColumn": 1, - "charOffset": 5028, - "charLength": 157, - "snippet": { - "text": " {\r\n var result = GetEventFlagAddress(eventFlagId, out int mask);\r\n if (result.IsOk)\r\n {\r\n var address = result.Unwrap();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "239f704c38bbe5fa", - "equalIndicator/v1": "1702d944ed49dfbba6b1af918f6961fc4905f47b8ac70b5c5638cbbef721b91f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/EldenRing.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 181, - "startColumn": 13, - "charOffset": 6857, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 179, - "startColumn": 1, - "charOffset": 6805, - "charLength": 137, - "snippet": { - "text": " catch (Exception e)\r\n {\r\n if(e.Message == \"Access is denied\")\r\n {\r\n _process = null;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e5fba7c5c4649ac4", - "equalIndicator/v1": "1a4698c404c4c680acc28b18a6a80e61e7ed55c7719143b81b50b808277f8947" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Migrations/Migrator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 77, - "startColumn": 29, - "charOffset": 3177, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 75, - "startColumn": 1, - "charOffset": 3047, - "charLength": 342, - "snippet": { - "text": " {\r\n var split = boss.GetChildNodeByName(\"Split\");\r\n if (SoulMemory.DarkSouls3.Boss.TryParse(split.InnerText, out SoulMemory.DarkSouls3.Boss b))\r\n {\r\n newDarkSouls3ViewModel.NewSplitTimingType = timingType;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3458202ac27e073b", - "equalIndicator/v1": "1b6419179f0bb2f5a066fd0d51965fcdc6b9cc5019c53a0a5079795373a860e7" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/EldenRing.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 171, - "startColumn": 13, - "charOffset": 6523, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 169, - "startColumn": 1, - "charOffset": 6481, - "charLength": 130, - "snippet": { - "text": " ApplyNoLogo();\r\n\r\n if (!soulmods.Soulmods.Inject(_process!))\r\n {\r\n _igt.Clear();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "20bf8e9ca6c91d32", - "equalIndicator/v1": "1e3ee243ea977c558bf91799ac3c88940d95557c0b8c0f5386f013a0c8e2604f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/EldenRing.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 454, - "startColumn": 9, - "charOffset": 15215, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 452, - "startColumn": 1, - "charOffset": 15194, - "charLength": 167, - "snippet": { - "text": " }\r\n\r\n if (currentElement.GetAddress() != currentSubElement.GetAddress())\r\n {\r\n var mysteryValue = currentElement.ReadInt32(0x28) - 1;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "208629a29266ed9b", - "equalIndicator/v1": "2103d5ce5318d80e734f583edfd4661b02d9c63f5563ff464005c125488f825b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls2Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 198, - "startColumn": 13, - "charOffset": 5670, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 196, - "startColumn": 1, - "charOffset": 5611, - "charLength": 140, - "snippet": { - "text": " foreach (var s in _splits)\r\n {\r\n if (!s.SplitTriggered)\r\n {\r\n if (!s.SplitConditionMet)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b5d52d9480d65542", - "equalIndicator/v1": "24d162772e7701d2be88af9f26222ed9924c79c43e2c523d320e8249fa8b53bf" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/MainWindow.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 64, - "startColumn": 13, - "charOffset": 2000, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 62, - "startColumn": 1, - "charOffset": 1896, - "charLength": 180, - "snippet": { - "text": " var hdc = graphics.GetHdc();\r\n var color = Gdi32.BitBlt(hdc, 0, 0);\r\n if (color != _stash)\r\n {\r\n graphics.ReleaseHdc();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4d002f82171467d2", - "equalIndicator/v1": "2eeed7069ce088abb4a71568fcdc9d2c18bedc0c0f3d006749ae2ac944a70a40" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/BaseSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 91, - "startColumn": 9, - "charOffset": 2909, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 89, - "startColumn": 1, - "charOffset": 2842, - "charLength": 148, - "snippet": { - "text": " protected virtual void Dispose(bool disposing)\r\n {\r\n if (disposing)\r\n {\r\n _liveSplitState.OnStart -= InternalStart;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "11b968cb2c7e7ae1", - "equalIndicator/v1": "2feaf5f7cbd3f45f63abf662221eff87143923db9e3e2f108e6bb96836012161" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 69, - "startColumn": 9, - "charOffset": 2302, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 67, - "startColumn": 1, - "charOffset": 2202, - "charLength": 180, - "snippet": { - "text": " private void OnPreviewTextInput_Byte(object sender, TextCompositionEventArgs e)\r\n {\r\n if (sender is TextBox t)\r\n {\r\n var newText = t.Text + e.Text;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3ae8d697f3f8ec9c", - "equalIndicator/v1": "33a300a135bc13ba3c26fc442301e1869d00fc8fa05b12a930c4715d07a193c3" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Sekiro/Sekiro.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 249, - "startColumn": 9, - "charOffset": 9120, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 247, - "startColumn": 1, - "charOffset": 9042, - "charLength": 164, - "snippet": { - "text": " {\r\n var resultAddress = GetEventFlagAddress(eventFlagId);\r\n if (resultAddress.IsOk)\r\n {\r\n var pointer = resultAddress.Unwrap();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "79cfaee8b7b4d53f", - "equalIndicator/v1": "35b57df37196b1770c1d9d01f254ce1ecae3c99b981a2c0af8ec5c8f83e99df3" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Process/ProcessWrapper.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 63, - "startColumn": 17, - "charOffset": 2474, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 61, - "startColumn": 1, - "charOffset": 2425, - "charLength": 130, - "snippet": { - "text": " else\r\n {\r\n if (_process.HasExited)\r\n {\r\n _process = null;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "342a2b32c6e4bb45", - "equalIndicator/v1": "36e8f6a24e04452cf4bae1f2a041ada4612a6e64bace40cec8c3b2635a1e0990" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Sekiro/Sekiro.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 225, - "startColumn": 9, - "charOffset": 8370, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 223, - "startColumn": 1, - "charOffset": 8292, - "charLength": 164, - "snippet": { - "text": " {\r\n var resultAddress = GetEventFlagAddress(eventFlagId);\r\n if (resultAddress.IsOk)\r\n {\r\n var pointer = resultAddress.Unwrap();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "55dfe7697bbbffbc", - "equalIndicator/v1": "37d24195284483fc642a26c583359026bc0a2bc28e06c41ce9c1b54dba6ab660" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 31, - "startColumn": 9, - "charOffset": 1112, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 29, - "startColumn": 1, - "charOffset": 1058, - "charLength": 186, - "snippet": { - "text": " var sourceMemory = memory;\r\n \r\n if (memory is Pointer p)\r\n {\r\n //Pointers read memory relatively, must get their source to keep reading correctly\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ec2403717045d658", - "equalIndicator/v1": "38cca05efb7d51c7efa0791fd5c3725508487dee13e26fbb871c12159beeb1e7" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 192, - "startColumn": 9, - "charOffset": 7628, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 190, - "startColumn": 1, - "charOffset": 7539, - "charLength": 264, - "snippet": { - "text": " result = 0;\r\n var pattern = pointerNode.Pattern.ToBytePattern();\r\n if (bytes.TryBoyerMooreSearch(pattern, out long scanResult))\r\n {\r\n var address = BitConverter.ToInt32(bytes, (int)(scanResult + pointerNode.AddressOffset));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3aef7642ce00914d", - "equalIndicator/v1": "397a6587e276c2aa10cde56d49ec93f5b75b1623f4b1c250177c5d7314b8f37a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/EldenRing.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 481, - "startColumn": 13, - "charOffset": 16210, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 479, - "startColumn": 1, - "charOffset": 16181, - "charLength": 135, - "snippet": { - "text": " }\r\n\r\n if (calculatedPointer != 0)\r\n {\r\n var thing = 7 - (leastSignificantDigits & 7);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "401605a88ccdc37f", - "equalIndicator/v1": "399ac465590eaed787f99e1982f523bbf17342202e18f94b9c0ad75fa91077f6" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/SoulComponent.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 124, - "startColumn": 13, - "charOffset": 4063, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 122, - "startColumn": 1, - "charOffset": 4026, - "charLength": 115, - "snippet": { - "text": " else\r\n {\r\n if (_previousBitBlt)\r\n {\r\n _previousBitBlt = false;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "6e4e6870eb0ea04e", - "equalIndicator/v1": "3d780cb020e081a4fcfa47cbd55b01150b008dc1d8a428db27ddac61bdadbdb5" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Extensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 31, - "startColumn": 9, - "charOffset": 1124, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 29, - "startColumn": 1, - "charOffset": 1081, - "charLength": 132, - "snippet": { - "text": " {\r\n result = default!;\r\n if (Enum.IsDefined(typeof(T), value))\r\n {\r\n result = (T)(object)value;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "142dfa756a5f18c5", - "equalIndicator/v1": "3f3213eadfa6c8b172602f62ad19b9bda60058dc461b95d8365d98ae49883bec" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/ItemReader.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 37, - "startColumn": 13, - "charOffset": 1486, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 35, - "startColumn": 1, - "charOffset": 1391, - "charLength": 186, - "snippet": { - "text": " var quantity = BitConverter.ToInt32(data, address + 8);\r\n \r\n if (item != -1)\r\n {\r\n var categories = new List();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "992ec3d319da2204", - "equalIndicator/v1": "4099c847cf12e4278e612cd669e09aec25c09481a2176c004b5a0d77bd2d7feb" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 116, - "startColumn": 17, - "charOffset": 4770, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 114, - "startColumn": 1, - "charOffset": 4608, - "charLength": 234, - "snippet": { - "text": " var pattern = n.Pattern.ToBytePattern();\r\n var count = files[i].bytes.BoyerMooreCount(pattern); //BoyerMooreCount\r\n if (count != 1)\r\n {\r\n lock(errorLock)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "654ba3b22811b6d6", - "equalIndicator/v1": "43ab058ca390998f8e18f0704ef1310d39d00ccc5bbd4e3f9477eef0529ef0b8" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 342, - "startColumn": 9, - "charOffset": 11945, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 340, - "startColumn": 1, - "charOffset": 11880, - "charLength": 155, - "snippet": { - "text": " var variable = _saveInfo.ReadInt32(0x10);\r\n \r\n if (variable != 0)\r\n {\r\n // some old gfwl savefiles are still supported\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "62912600b65e482e", - "equalIndicator/v1": "481578124f493d6d9b920aebecc99eda9004d924a67599d0dcd7a7008dc6c521" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 128, - "startColumn": 9, - "charOffset": 5137, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 126, - "startColumn": 1, - "charOffset": 5048, - "charLength": 264, - "snippet": { - "text": " result = 0;\r\n var pattern = pointerNode.Pattern.ToBytePattern();\r\n if (bytes.TryBoyerMooreSearch(pattern, out long scanResult))\r\n {\r\n var address = BitConverter.ToInt32(bytes, (int)(scanResult + pointerNode.AddressOffset));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ae10c4a0b07076c9", - "equalIndicator/v1": "500297d0e4c7ed5dac560c54138957694e1cd9d893df2152fd09a0c57c6de745" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 350, - "startColumn": 9, - "charOffset": 12228, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 348, - "startColumn": 1, - "charOffset": 12158, - "charLength": 161, - "snippet": { - "text": " {\r\n string idString = eventFlagId.ToString(\"D8\");\r\n if (idString.Length == 8)\r\n {\r\n string group = idString.Substring(0, 1);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "2723aed77472844a", - "equalIndicator/v1": "505600cfddcce511e85a63de66db7d0f4f853afc541dafd26e1f3901786428d7" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls1Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 236, - "startColumn": 13, - "charOffset": 7903, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 234, - "startColumn": 1, - "charOffset": 7844, - "charLength": 140, - "snippet": { - "text": " foreach (var s in _splits)\r\n {\r\n if (!s.SplitTriggered)\r\n {\r\n if (!s.SplitConditionMet)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "64d55ea29f17bb78", - "equalIndicator/v1": "52bce8252a7fd7725657590386ef548fa4f880e2f182625087865453ba995c1e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/SoulComponent.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 303, - "startColumn": 9, - "charOffset": 10585, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 301, - "startColumn": 1, - "charOffset": 10564, - "charLength": 126, - "snippet": { - "text": " }\r\n\r\n if (_customShowSettingsButton == null)\r\n {\r\n _customShowSettingsButton = new Button();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5e18f40425b641c0", - "equalIndicator/v1": "58b91b9e2ac6f2513549155a357a12e0cc1626bb23bf6af95dcf53dc0147279c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2Control.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 56, - "startColumn": 9, - "charOffset": 1882, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 54, - "startColumn": 1, - "charOffset": 1781, - "charLength": 271, - "snippet": { - "text": " private void TextBoxRawFlag_OnTextChanged(object sender, TextChangedEventArgs e)\r\n {\r\n if (_darkSouls2ViewModel.NewSplitType is DarkSouls2SplitType.Flag && sender is TextBox textBox)\r\n {\r\n if (uint.TryParse(textBox.Text, out uint result))\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ed711c2c9b8a148a", - "equalIndicator/v1": "599db2db34744eddabd2888137b095427dfd1af21e1704eab90f5cd9b09d8e3f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 291, - "startColumn": 9, - "charOffset": 10288, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 289, - "startColumn": 1, - "charOffset": 10218, - "charLength": 161, - "snippet": { - "text": " {\r\n string idString = eventFlagId.ToString(\"D8\");\r\n if (idString.Length == 8)\r\n {\r\n string group = idString.Substring(0, 1);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "cf7bc7bbaf477171", - "equalIndicator/v1": "60f9bcadaaebb62f68bb8a0991bd8807428eec106e9a8cf40d1701f0a9682d37" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls1Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 362, - "startColumn": 13, - "charOffset": 12521, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 360, - "startColumn": 1, - "charOffset": 12492, - "charLength": 115, - "snippet": { - "text": " }\r\n\r\n if (_isWarping && isPlayerLoaded)\r\n {\r\n _isWarping = false;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3a1ed71f236b14d6", - "equalIndicator/v1": "66fa58c7d712e78508230dc7b9b67504221fe765b9f34e03c3406348385ccc7b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2Control.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 78, - "startColumn": 9, - "charOffset": 2699, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 76, - "startColumn": 1, - "charOffset": 2598, - "charLength": 181, - "snippet": { - "text": " private void OnPreviewTextInput_Float(object sender, TextCompositionEventArgs e)\r\n {\r\n if (sender is TextBox t)\r\n {\r\n var newText = t.Text + e.Text;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f0ef2283c245ba45", - "equalIndicator/v1": "6734e9f897e67e1a047373aa53bf159e05cf1b5f890d992d3423aa18792d14c5" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/SplitsTree.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 44, - "startColumn": 9, - "charOffset": 1748, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 42, - "startColumn": 1, - "charOffset": 1627, - "charLength": 238, - "snippet": { - "text": " private void TreeView_OnSelectedItemChanged(object sender, RoutedPropertyChangedEventArgs e)\r\n {\r\n if (sender is TreeView treeView)\r\n {\r\n if (treeView.SelectedItem is SplitViewModel splitViewModel)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "093e7123106db0b7", - "equalIndicator/v1": "6c0b645dd70c91bd4449d59706437e6a8e697245c8411c7ded8ea629e192c403" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/FlagWatcher.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 48, - "startColumn": 13, - "charOffset": 1674, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 46, - "startColumn": 1, - "charOffset": 1561, - "charLength": 199, - "snippet": { - "text": " var flag = _flags.ElementAt(i);\r\n var value = _game.ReadEventFlag(flag.Key);\r\n if (value != flag.Value)\r\n {\r\n result.Add(flag.Key, value);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5b06a35ce7c15e7e", - "equalIndicator/v1": "6d1bf4ab922905bbf99e4422e54f2ca9283873650f807a017eea23d7fa5d41b2" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 256, - "startColumn": 17, - "charOffset": 9793, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 254, - "startColumn": 1, - "charOffset": 9660, - "charLength": 200, - "snippet": { - "text": " for (var j = lastPatternIndex; !needle[j].HasValue || haystack[i + j] == needle[j]; --j)\r\n {\r\n if (j == 0)\r\n {\r\n result.Add(i);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "595721cd34332911", - "equalIndicator/v1": "70a28e7815c601d8e53f78fe2d8a523d69853276fdcbad681debbde683e8810f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Migrations/Migrator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 217, - "startColumn": 29, - "charOffset": 10843, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 215, - "startColumn": 1, - "charOffset": 10713, - "charLength": 330, - "snippet": { - "text": " {\r\n var split = boss.GetChildNodeByName(\"Split\");\r\n if (SoulMemory.Sekiro.Boss.TryParse(split.InnerText, out SoulMemory.Sekiro.Boss b))\r\n {\r\n newSekiroViewModel.NewSplitTimingType = timingType;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f12b2b308353c26f", - "equalIndicator/v1": "712f1976791f2cf1c3e897478a21bc92a30fb0c25a107682e448a53f55d90266" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls1Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 85, - "startColumn": 9, - "charOffset": 2870, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 83, - "startColumn": 1, - "charOffset": 2803, - "charLength": 151, - "snippet": { - "text": " protected virtual void Dispose(bool disposing)\r\n {\r\n if (disposing)\r\n {\r\n _timerModel.CurrentState.OnStart -= OnStart;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "86e929be260bf6ac", - "equalIndicator/v1": "74f07e77f12a880aeabfabee387a63810a57fe5c0e7b90a3e3f458b313458d35" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/FlagTrackerWindow.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 31, - "startColumn": 9, - "charOffset": 1145, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 29, - "startColumn": 1, - "charOffset": 1026, - "charLength": 256, - "snippet": { - "text": " private void TreeView_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs e)\r\n {\r\n if (DataContext is FlagTrackerViewModel flagTrackerViewModel)\r\n {\r\n if (e.NewValue is FlagDescription flagDescription)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "6d35d458c4e5c86f", - "equalIndicator/v1": "75e2b7704c7b21072bfe3baeb4ae97b896eb751181481a53e9f7fbdaaacdb515" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 298, - "startColumn": 13, - "charOffset": 10574, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 296, - "startColumn": 1, - "charOffset": 10497, - "charLength": 222, - "snippet": { - "text": " int number = int.Parse(idString.Substring(5, 3));\r\n\r\n if (EventFlagGroups.ContainsKey(group) && EventFlagAreas.ContainsKey(area))\r\n {\r\n int offset = EventFlagGroups[group];\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ea7b27016f9fffaf", - "equalIndicator/v1": "7623eb95ff2c36e497ce7778657ea417223f4129263cbbf6ff587f0a5d0786dd" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/soulmods/Soulmods.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 102, - "startColumn": 9, - "charOffset": 3635, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 100, - "startColumn": 1, - "charOffset": 3588, - "charLength": 174, - "snippet": { - "text": "\r\n //Get data of requestedSize\r\n if (requestedSize > 0)\r\n {\r\n var totalSize = (int)(4 + (requestedSize * Marshal.SizeOf()));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "6c35b10c714a8116", - "equalIndicator/v1": "76476e6c4948249bc3a00cb1b730a7418296d2f862d433f0c4b706056aae0575" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 278, - "startColumn": 17, - "charOffset": 10902, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 276, - "startColumn": 1, - "charOffset": 10769, - "charLength": 197, - "snippet": { - "text": " for (var j = lastPatternIndex; !needle[j].HasValue || haystack[i + j] == needle[j]; --j)\r\n {\r\n if (j == 0)\r\n {\r\n result = i;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "562ff9a056783da6", - "equalIndicator/v1": "780d43df2c18c272a4e05d41f0b436b8f365f9029368ac9e70698ff536d52da5" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 117, - "startColumn": 9, - "charOffset": 4764, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 115, - "startColumn": 1, - "charOffset": 4718, - "charLength": 132, - "snippet": { - "text": " public void RemoveSplit()\r\n {\r\n if (SelectedSplit != null)\r\n {\r\n var parent = SelectedSplit.Parent;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b6d800c815117e0a", - "equalIndicator/v1": "801638fe6278cfbe1763a562199a97d50839f0a17b5b9f95258c849647ab8021" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/ArmoredCore6Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 83, - "startColumn": 13, - "charOffset": 2783, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 81, - "startColumn": 1, - "charOffset": 2724, - "charLength": 140, - "snippet": { - "text": " foreach (var s in _splits)\r\n {\r\n if (!s.SplitTriggered)\r\n {\r\n if (!s.SplitConditionMet)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "36f94d0e3ec1e560", - "equalIndicator/v1": "823f87a46d0a6ed9c2fd9a84923544a4295e5df0a9d5240720bec0f0b8deb14c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/SoulComponent.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 87, - "startColumn": 17, - "charOffset": 2868, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 85, - "startColumn": 1, - "charOffset": 2695, - "charLength": 257, - "snippet": { - "text": " //Result will internally be added to the error list already.\r\n var result = UpdateSplitter(MainWindow.MainViewModel, state);\r\n if(result.IsErr)\r\n {\r\n var err = result.GetErr();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "eb6f8898ba16aadd", - "equalIndicator/v1": "87b6d989f5a4cf1c10ec1d8d72d91d932627e82929eb4e348fd726f0690c7bb4" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 258, - "startColumn": 21, - "charOffset": 9016, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 256, - "startColumn": 1, - "charOffset": 8971, - "charLength": 189, - "snippet": { - "text": " }\r\n\r\n if (found)\r\n {\r\n flagWorldBlockInfoCategory = worldInfoBlockVector!.ReadInt32((index * 0x70) + 0x20);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "fae49345eb2e0859", - "equalIndicator/v1": "883f3096f914c0f901be9224436286beab45adaa0839c8c8a9c78677e705ae4c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Sekiro/Sekiro.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 306, - "startColumn": 29, - "charOffset": 11570, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 304, - "startColumn": 1, - "charOffset": 11502, - "charLength": 167, - "snippet": { - "text": "\r\n index++;\r\n if (count <= index)\r\n {\r\n found = false;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "81a0c33fca180e1a", - "equalIndicator/v1": "8f8bfca524176246b58e06f80fd7f202de00e1d036920dad7c8b8cdd4feef9b2" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 320, - "startColumn": 17, - "charOffset": 12285, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 318, - "startColumn": 1, - "charOffset": 12152, - "charLength": 200, - "snippet": { - "text": " for (var j = lastPatternIndex; !needle[j].HasValue || haystack[i + j] == needle[j]; --j)\r\n {\r\n if (j == 0)\r\n {\r\n result.Add(i);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "223e888dbf3cda46", - "equalIndicator/v1": "8f914f632d7a041b0b3a131ed3c12dbae738b312f16de56e703aac55c2583cf2" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls3Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 65, - "startColumn": 9, - "charOffset": 2067, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 63, - "startColumn": 1, - "charOffset": 2000, - "charLength": 142, - "snippet": { - "text": " protected virtual void Dispose(bool disposing)\r\n {\r\n if (disposing)\r\n {\r\n _liveSplitState.OnStart -= OnStart;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4ee8f85b3802ed8a", - "equalIndicator/v1": "9282a617acd581b6b32dec615c6b47510a62f9b64308803cbba7dc887b57fc0a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Migrations/Migrator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 231, - "startColumn": 29, - "charOffset": 11628, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 229, - "startColumn": 1, - "charOffset": 11498, - "charLength": 330, - "snippet": { - "text": " {\r\n var split = idol.GetChildNodeByName(\"Split\");\r\n if (SoulMemory.Sekiro.Idol.TryParse(split.InnerText, out SoulMemory.Sekiro.Idol i))\r\n {\r\n newSekiroViewModel.NewSplitTimingType = timingType;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5ab17ad976567290", - "equalIndicator/v1": "93bd13ce45bab07055c8a8c65e18fb0c5341eaf98430fdc575b440f745fbaa95" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/DropMod.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 68, - "startColumn": 13, - "charOffset": 2435, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 66, - "startColumn": 1, - "charOffset": 2316, - "charLength": 252, - "snippet": { - "text": " {\r\n var s = temp; //structs need to be put in a variable in order to be mutable. Meme.\r\n if (s.ShouldSwitch && items.Any(j => j.ItemType == s.SwitchItem))\r\n {\r\n GuaranteeDrop(s.RowId, s.ItemId2);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "179d9030d2ee8729", - "equalIndicator/v1": "93d33e6a4217bb3ce79b9d755c03ec1801749a2fb98475d332bb611cc498b07d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 357, - "startColumn": 13, - "charOffset": 12518, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 355, - "startColumn": 1, - "charOffset": 12439, - "charLength": 224, - "snippet": { - "text": " int number = Int32.Parse(idString.Substring(5, 3));\r\n\r\n if (EventFlagGroups.ContainsKey(group) && EventFlagAreas.ContainsKey(area))\r\n {\r\n int offset = EventFlagGroups[group];\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "abf5ae7691b0f293", - "equalIndicator/v1": "954a9e4e281f5d006a3767a3c3e6b2663c22dd7d4308f1beb35427e8d82fe337" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 283, - "startColumn": 9, - "charOffset": 9816, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 281, - "startColumn": 1, - "charOffset": 9650, - "charLength": 324, - "snippet": { - "text": " resultPointerAddress.Initialize(ptr.Process!, ptr.Is64Bit, (eventFlagIdDiv1000 << 4) + ptr.GetAddress() + flagWorldBlockInfoCategory * 0xa8, 0x0);\r\n\r\n if (!resultPointerAddress.IsNullPtr())\r\n {\r\n var value = resultPointerAddress.ReadUInt32((long)((uint)((int)eventFlagId % 1000) >> 5) * 4);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b96b880795d6d343", - "equalIndicator/v1": "9bcec903028493f17e1d9b6f548142cdb3c87992e3bd23eef138c0c57016b782" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 298, - "startColumn": 17, - "charOffset": 11152, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 296, - "startColumn": 1, - "charOffset": 11019, - "charLength": 195, - "snippet": { - "text": " for (var j = lastPatternIndex; !needle[j].HasValue || haystack[i + j] == needle[j]; --j)\r\n {\r\n if (j == 0)\r\n {\r\n result++;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0ab2cf43e179e1a1", - "equalIndicator/v1": "9bfdde1c4c7a004f573aa26d001e09c9330d92f39c0258f0d69bd38342acb541" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/FlagTrackerViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 109, - "startColumn": 13, - "charOffset": 3537, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 107, - "startColumn": 1, - "charOffset": 3462, - "charLength": 218, - "snippet": { - "text": " {\r\n var category = EventFlagCategories[i];\r\n if(category.EventFlags.Contains(SelectedFlagDescription))\r\n {\r\n category.EventFlags.Remove(SelectedFlagDescription);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9556eb29b6a13cda", - "equalIndicator/v1": "9e7f7d64a63d27bdf202c0c438beaf3d9364adcb5fa3db1dd574ff66897f74fe" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls3Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 216, - "startColumn": 13, - "charOffset": 6436, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 214, - "startColumn": 1, - "charOffset": 6377, - "charLength": 140, - "snippet": { - "text": " foreach (var s in _splits)\r\n {\r\n if (!s.SplitTriggered)\r\n {\r\n if (!s.SplitConditionMet)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0741417c239beccd", - "equalIndicator/v1": "a0e5bd6426e84c7197bbe2894fe5589b0811bdcb3030c08a8217c2ac39076440" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/ItemReader.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 120, - "startColumn": 17, - "charOffset": 5113, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 118, - "startColumn": 1, - "charOffset": 4979, - "charLength": 340, - "snippet": { - "text": "\r\n var lookupItem = Item.AllItems.FirstOrDefault(j => categories.Contains(j.Category) && j.Id == id);\r\n if (lookupItem != null)\r\n {\r\n var instance = new Item(lookupItem.Name, lookupItem.Id, lookupItem.ItemType, lookupItem.Category, lookupItem.StackLimit, lookupItem.Upgrade);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4d0b1f000a11f2d9", - "equalIndicator/v1": "a5b4f9764013ae97c3ece701f7d8048b392b45871b35294c859c5c4e19e2aba1" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Sekiro/Sekiro.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 314, - "startColumn": 21, - "charOffset": 11813, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 312, - "startColumn": 1, - "charOffset": 11768, - "charLength": 189, - "snippet": { - "text": " }\r\n\r\n if (found)\r\n {\r\n flagWorldBlockInfoCategory = worldInfoBlockVector!.ReadInt32((index * 0xb0) + 0x20);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "32de148207c7caac", - "equalIndicator/v1": "abfed1c5f1aa9cc6e77c7908f92ed49d170ed19f7a25cb85f09c92825a3ce659" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/EldenRingSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 252, - "startColumn": 13, - "charOffset": 8147, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 250, - "startColumn": 1, - "charOffset": 8088, - "charLength": 140, - "snippet": { - "text": " foreach (var s in _splits)\r\n {\r\n if (!s.SplitTriggered)\r\n {\r\n if (!s.SplitConditionMet)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4615987ff2a8b29f", - "equalIndicator/v1": "b0b32fa76fdf43f95b7ab3872e5db381a6beea1d8110fae05d73091c0965ca01" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/SoulComponent.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 332, - "startColumn": 13, - "charOffset": 11695, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 330, - "startColumn": 1, - "charOffset": 11628, - "charLength": 205, - "snippet": { - "text": " MainWindow.Dispatcher.Invoke(() =>\r\n {\r\n if (!string.IsNullOrWhiteSpace(s?.Run?.GameName))\r\n {\r\n var name = s!.Run!.GameName.ToLower().Replace(\" \", \"\");\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "27627aa20023fd29", - "equalIndicator/v1": "b114f7ab9b770818888da92c6b8c29c7404711094d0c482c71f9ef977a3362f3" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 144, - "startColumn": 9, - "charOffset": 5881, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 142, - "startColumn": 1, - "charOffset": 5792, - "charLength": 201, - "snippet": { - "text": " result = 0;\r\n var pattern = pointerNode.Pattern.ToBytePattern();\r\n if (bytes.TryBoyerMooreSearch(pattern, out long scanResult))\r\n {\r\n scanResult += baseAddress;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e9d2e37d7b33106c", - "equalIndicator/v1": "b3627806e5927d04c0905f751e7bfe91ca8f895bef6f942ce74081f60115d2f6" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 95, - "startColumn": 17, - "charOffset": 3887, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 93, - "startColumn": 1, - "charOffset": 3838, - "charLength": 128, - "snippet": { - "text": " else\r\n {\r\n if (process.HasExited)\r\n {\r\n process = null;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "138f24bb28b5acaf", - "equalIndicator/v1": "b5c37f49c18d37117aa86f49dcd1be8de83a88a4f15bd1e9c11c69ac68a1dd21" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Migrations/Migrator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 122, - "startColumn": 29, - "charOffset": 5852, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 120, - "startColumn": 1, - "charOffset": 5737, - "charLength": 381, - "snippet": { - "text": " var attributeLevel = split.GetChildNodeByName(\"Level\");\r\n\r\n if (\r\n SoulMemory.DarkSouls3.Attribute.TryParse(attributeType.InnerText, out SoulMemory.DarkSouls3.Attribute attributeTypeParsed) &&\r\n int.TryParse(attributeLevel.InnerText, out int attributeLevelParsed)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9cd4c2f7af53c6e4", - "equalIndicator/v1": "b5e69a48caaae12c2366bf0efb70a56bc1380203ad27c408e424aff73f5b8e9a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls2Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 76, - "startColumn": 9, - "charOffset": 2334, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 74, - "startColumn": 1, - "charOffset": 2267, - "charLength": 142, - "snippet": { - "text": " protected virtual void Dispose(bool disposing)\r\n {\r\n if (disposing)\r\n {\r\n _liveSplitState.OnStart -= OnStart;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0cd75644b873c94a", - "equalIndicator/v1": "b72f163632381aa1ef5ab6923a8af603828d6af24dfe0865b6a0687bf811796f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls1Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 348, - "startColumn": 9, - "charOffset": 12181, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 346, - "startColumn": 1, - "charOffset": 12116, - "charLength": 144, - "snippet": { - "text": "\r\n //Warp is requested - wait for loading screen\r\n if (_isWarpRequested)\r\n {\r\n if (!_warpHasPlayerBeenUnloaded)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "afe65230b1f24de2", - "equalIndicator/v1": "b8206fdd24a9dd3dd3c3a33fe875e53822e66e005bd8de9e0d67368ec7992614" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 82, - "startColumn": 9, - "charOffset": 2676, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 80, - "startColumn": 1, - "charOffset": 2575, - "charLength": 181, - "snippet": { - "text": " private void OnPreviewTextInput_Float(object sender, TextCompositionEventArgs e)\r\n {\r\n if (sender is TextBox t)\r\n {\r\n var newText = t.Text + e.Text;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1dbc511620596f6b", - "equalIndicator/v1": "bc4672985c0fc8b507d1aa4c386f0df583a921f0d5cd7076ba0677f5bd3b7dfa" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Sekiro/Sekiro.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 284, - "startColumn": 17, - "charOffset": 10597, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 282, - "startColumn": 1, - "charOffset": 10503, - "charLength": 207, - "snippet": { - "text": " {\r\n var area = vector.ReadByte((i * 0x38) + 0xb);\r\n if (area == eventFlagArea)\r\n {\r\n var count = vector.ReadByte(i * 0x38 + 0x20);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "76bc17264b72cb45", - "equalIndicator/v1": "bcebea4420d3b82508cbb89baedba0428b4f7baa0a2554dd470bd522fdeabcc4" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Migrations/Migrator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 139, - "startColumn": 29, - "charOffset": 6975, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 137, - "startColumn": 1, - "charOffset": 6845, - "charLength": 298, - "snippet": { - "text": " {\r\n var split = flag.GetChildNodeByName(\"Split\");\r\n if (uint.TryParse(split.InnerText, out uint u))\r\n {\r\n newDarkSouls3ViewModel.NewSplitTimingType = timingType;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9daea532a2bd3148", - "equalIndicator/v1": "bcf3bc4a034585b098675b7d8dff5582ef15a5bb24c8c38aabd61f0d15f2101a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 434, - "startColumn": 13, - "charOffset": 14825, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 432, - "startColumn": 1, - "charOffset": 14743, - "charLength": 158, - "snippet": { - "text": " foreach (ProcessModule item in _process!.Modules)\r\n {\r\n if (item.ModuleName == name)\r\n {\r\n module = item;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e4aced28e3d94641", - "equalIndicator/v1": "bdc1cdaa2d208b88920d48fd1c67797f87adf55465256ed9b99f6a15e3381b8c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 227, - "startColumn": 17, - "charOffset": 7753, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 225, - "startColumn": 1, - "charOffset": 7636, - "charLength": 210, - "snippet": { - "text": " //0x00007ff4fd9ba4c3\r\n var area = vector.ReadByte((i * 0x38) + 0xb);\r\n if (area == eventFlagArea)\r\n {\r\n //function at 0x14060c650\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "21e57df19b1e67b6", - "equalIndicator/v1": "bf7110fb6b38ae996727b5478bcaeaa499678fc06cd9ca57445f92740c8aa25d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 400, - "startColumn": 9, - "charOffset": 12410, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 398, - "startColumn": 1, - "charOffset": 12364, - "charLength": 132, - "snippet": { - "text": " public void RemoveSplit()\r\n {\r\n if (SelectedSplit != null)\r\n {\r\n var parent = SelectedSplit.Parent;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "af11b08cf5251ac2", - "equalIndicator/v1": "c85c596b864d4f78d7b37d55b4bf2ae94e2efdabc8f8b595cbbcdb0f458c0a8d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/FlagTrackerViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 112, - "startColumn": 17, - "charOffset": 3697, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 110, - "startColumn": 1, - "charOffset": 3596, - "charLength": 210, - "snippet": { - "text": " {\r\n category.EventFlags.Remove(SelectedFlagDescription);\r\n if(!category.EventFlags.Any())\r\n {\r\n EventFlagCategories.Remove(category);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5271aacd9819a175", - "equalIndicator/v1": "c89f19d6f63b20134606d4606f58d4b4f2e8c2c2427f81bddd87241c2888eac0" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 52, - "startColumn": 17, - "charOffset": 2307, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 50, - "startColumn": 1, - "charOffset": 2145, - "charLength": 235, - "snippet": { - "text": " var pattern = n.Pattern.ToBytePattern();\r\n var count = files[i].bytes.BoyerMooreCount(pattern); //BoyerMooreCount\r\n if (count != 1)\r\n {\r\n lock (errorLock)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "fd5eab0aebff60f4", - "equalIndicator/v1": "c8a87460ddd12f42d9c40881b749af1deef2b6d05719575ebf841b1f9c893544" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/IMemory.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 105, - "startColumn": 13, - "charOffset": 3432, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 103, - "startColumn": 1, - "charOffset": 3362, - "charLength": 152, - "snippet": { - "text": " for (int i = 1; i < data.Length; i++)\r\n {\r\n if (data[i - 1] == 0 && data[i] == 0)\r\n {\r\n length = i;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3f32e08b790e846a", - "equalIndicator/v1": "c9a3d21d68e7d82afc3b27029682121f86598059aa0cde56a6ed4b357a4abf1d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 124, - "startColumn": 9, - "charOffset": 4575, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 122, - "startColumn": 1, - "charOffset": 4490, - "charLength": 157, - "snippet": { - "text": " {\r\n var result = GetEventFlagAddress(eventFlagId, out int mask);\r\n if (result.IsOk)\r\n {\r\n var address = result.Unwrap();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "edcc39668688291d", - "equalIndicator/v1": "cba929074fb9a3a92608694371c1cd92143aa62a572f62419c9df2de8e4016a8" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 208, - "startColumn": 9, - "charOffset": 8373, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 206, - "startColumn": 1, - "charOffset": 8284, - "charLength": 201, - "snippet": { - "text": " result = 0;\r\n var pattern = pointerNode.Pattern.ToBytePattern();\r\n if (bytes.TryBoyerMooreSearch(pattern, out long scanResult))\r\n {\r\n scanResult += baseAddress;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c893a6d121dd20dc", - "equalIndicator/v1": "ceee4b7141d20ff178483c90f3f2b9d2b3245efb8df9864e35769889ff3637f5" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/BaseParam.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 112, - "startColumn": 9, - "charOffset": 4226, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 110, - "startColumn": 1, - "charOffset": 4192, - "charLength": 153, - "snippet": { - "text": " field = value;\r\n\r\n if (WriteEnabled)\r\n {\r\n var property = GetType().GetProperties().First(i => i.Name == propertyName);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ebe0ef9c1bce9818", - "equalIndicator/v1": "d22b2ea55bbb9e02b5f8fb67cb8594adf38cd371eea72533d1dc117657e83066" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/RefreshError.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 58, - "startColumn": 9, - "charOffset": 1832, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 56, - "startColumn": 1, - "charOffset": 1780, - "charLength": 117, - "snippet": { - "text": " sb.Append(Message);\r\n }\r\n if (Exception != null)\r\n {\r\n sb.Append(\" - \");\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b776a43d3438b115", - "equalIndicator/v1": "d3491db752425ef54a1ca9d3c66f1c69c4d4829d82e8bcbb8ac4dfd7d05a5216" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Extensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 42, - "startColumn": 9, - "charOffset": 1397, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 40, - "startColumn": 1, - "charOffset": 1354, - "charLength": 132, - "snippet": { - "text": " {\r\n result = default!;\r\n if (Enum.IsDefined(typeof(T), value))\r\n {\r\n result = (T)(object)value;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3e6feabeb6913ded", - "equalIndicator/v1": "d3b9af37b214cece5ff5b9fa936537807c072541ee34621282cd912e116ba2f3" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Sekiro/Sekiro.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 148, - "startColumn": 13, - "charOffset": 6238, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 146, - "startColumn": 1, - "charOffset": 6166, - "charLength": 137, - "snippet": { - "text": " _saveSlot.WriteByte(null, 0xeb);\r\n \r\n if (!InitB3Mods())\r\n {\r\n _igt.Clear();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "02f25f1cf0057642", - "equalIndicator/v1": "d6afae91d2e8f4067516f4dc7365a81257674d434d14a2bf27aef43cebe736c1" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 189, - "startColumn": 9, - "charOffset": 6684, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 187, - "startColumn": 1, - "charOffset": 6663, - "charLength": 175, - "snippet": { - "text": " }\r\n\r\n if (currentElement.ResolveOffsets() != currentSubElement.ResolveOffsets())\r\n {\r\n var mysteryValue = currentElement.ReadInt32(0x28) - 1;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "156e4ea46a6941c5", - "equalIndicator/v1": "d8b5b3cf89caf484acb5d61d75013d7f6abd3457ac0d0a8c5dded4b780172704" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 104, - "startColumn": 13, - "charOffset": 3397, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 102, - "startColumn": 1, - "charOffset": 3327, - "charLength": 152, - "snippet": { - "text": " for (int i = 1; i < data.Length; i++)\r\n {\r\n if (data[i - 1] == 0 && data[i] == 0)\r\n {\r\n length = i;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d0a508bb31706fb5", - "equalIndicator/v1": "db3c1ad53176712a0a30b2cf1af1e13ea8156d02c8e418f971cbda35f3cebc77" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Migrations/Migrator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 105, - "startColumn": 29, - "charOffset": 4831, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 103, - "startColumn": 1, - "charOffset": 4695, - "charLength": 360, - "snippet": { - "text": " {\r\n var split = itemPickup.GetChildNodeByName(\"Split\");\r\n if (SoulMemory.DarkSouls3.ItemPickup.TryParse(split.InnerText, out SoulMemory.DarkSouls3.ItemPickup i))\r\n {\r\n newDarkSouls3ViewModel.NewSplitTimingType = timingType;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a56e0271018f7c34", - "equalIndicator/v1": "db605436f416e4301bc146efec05c3515d708cb2ae2bf00ff24650d88576b428" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Migrations/Migrator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 245, - "startColumn": 29, - "charOffset": 12416, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 243, - "startColumn": 1, - "charOffset": 12286, - "charLength": 294, - "snippet": { - "text": " {\r\n var split = flag.GetChildNodeByName(\"Split\");\r\n if (uint.TryParse(split.InnerText, out uint u))\r\n {\r\n newSekiroViewModel.NewSplitTimingType = timingType;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b473c7dd766dcf60", - "equalIndicator/v1": "dbcc6d3002eb79588da2929a93a124a4986a69ec2228f5fdf7587fead7737cdd" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/MainWindow.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 41, - "startColumn": 9, - "charOffset": 1407, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 39, - "startColumn": 1, - "charOffset": 1325, - "charLength": 136, - "snippet": { - "text": " private void Window_Closing(object sender, CancelEventArgs e)\r\n {\r\n if (WindowShouldHide)\r\n {\r\n Hide();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7d979ecd5b32dba1", - "equalIndicator/v1": "dc60bf83fba9bfbf478750839820c341c1db0bc08d29101b7cc77ea3d6f39ed1" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 250, - "startColumn": 29, - "charOffset": 8773, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 248, - "startColumn": 1, - "charOffset": 8705, - "charLength": 167, - "snippet": { - "text": "\r\n index++;\r\n if (count <= index)\r\n {\r\n found = false;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7b82111d24db3162", - "equalIndicator/v1": "dcdd58707c2f4e9356aff7b81403d61360ace5b24809dde5de94b6dc3f6b4b0e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/SekiroSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 220, - "startColumn": 13, - "charOffset": 6260, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 218, - "startColumn": 1, - "charOffset": 6201, - "charLength": 140, - "snippet": { - "text": " foreach (var s in _splits)\r\n {\r\n if (!s.SplitTriggered)\r\n {\r\n if (!s.SplitConditionMet)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "508ec1cb45687275", - "equalIndicator/v1": "dd3fc97ec5c3430cc73ac1090e9ab3e139fbd87a0e93c0687ca033467360b4b8" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Native/Kernel32.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 281, - "startColumn": 13, - "charOffset": 10804, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 279, - "startColumn": 1, - "charOffset": 10749, - "charLength": 169, - "snippet": { - "text": " void CleanupSnapshot()\r\n {\r\n if (handleToSnapshot != IntPtr.Zero)\r\n {\r\n NativeMethods.CloseHandle(handleToSnapshot);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "564f7321d73b0a20", - "equalIndicator/v1": "e76010bd2ed9732aa2f88fa9696bf4319a4af102fb6a2139d611f20d6a08f84a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Converters/ColorToHexTextConverter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 38, - "startColumn": 9, - "charOffset": 1480, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 36, - "startColumn": 1, - "charOffset": 1362, - "charLength": 171, - "snippet": { - "text": " public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)\r\n {\r\n if (value is string hex)\r\n {\r\n try\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "30cf2a21c80888e1", - "equalIndicator/v1": "e93fd57aa8297ef084fcdea6700d57d4cd63e953669a4a16f7914289991fd18a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/EldenRingSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 63, - "startColumn": 9, - "charOffset": 2046, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 61, - "startColumn": 1, - "charOffset": 1979, - "charLength": 142, - "snippet": { - "text": " protected virtual void Dispose(bool disposing)\r\n {\r\n if (disposing)\r\n {\r\n _liveSplitState.OnStart -= OnStart;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9b37ccdb69856c63", - "equalIndicator/v1": "ece56a9d8723e18dad1c1472332bfe127596af053d4a78264253c9bddd0d724c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/HierarchicalViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 53, - "startColumn": 9, - "charOffset": 2199, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 51, - "startColumn": 1, - "charOffset": 2153, - "charLength": 132, - "snippet": { - "text": " public void RemoveSplit()\r\n {\r\n if (SelectedSplit != null)\r\n {\r\n var parent = SelectedSplit.Parent;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "888a473fcdb5b724", - "equalIndicator/v1": "ef19f1036afbc6c770e7da1808ffa4fa760a7f2e5d9c5721f1d137d00b7b774d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls2/DarkSouls2.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 64, - "startColumn": 17, - "charOffset": 2676, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 62, - "startColumn": 1, - "charOffset": 2589, - "charLength": 166, - "snippet": { - "text": " {\r\n var result = _darkSouls2.TryRefresh();\r\n if (result.IsErr)\r\n {\r\n _darkSouls2 = null!;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "115315c1b15d535d", - "equalIndicator/v1": "f12f5a5c7f3cbd66095a4a468087c49f8b89ecbd950577775479ac19c5210a9f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Hotkeys/GlobalHotKey.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 108, - "startColumn": 9, - "charOffset": 3352, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 106, - "startColumn": 1, - "charOffset": 3300, - "charLength": 222, - "snippet": { - "text": " base.WndProc(ref windowMessage);\r\n\r\n if (windowMessage.Msg == 0x0312) //0x0312 is the hotkey message\r\n {\r\n var key = KeyInterop.KeyFromVirtualKey((int)windowMessage.LParam >> 16 & 0xFFFF);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7dd94cc424874740", - "equalIndicator/v1": "f4e2da2018f188ef5367052709fb2d140ae0d5cb813dce7f4450d7ba6492e777" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 214, - "startColumn": 17, - "charOffset": 8410, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 212, - "startColumn": 1, - "charOffset": 8277, - "charLength": 197, - "snippet": { - "text": " for (var j = lastPatternIndex; !needle[j].HasValue || haystack[i + j] == needle[j]; --j)\r\n {\r\n if (j == 0)\r\n {\r\n result = i;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0fa28c6257652429", - "equalIndicator/v1": "f5b6caa413a2ddf994cebb048a1d104723fb2f108005d3a0fdcd1deed8aad1f3" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 372, - "startColumn": 9, - "charOffset": 14458, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 370, - "startColumn": 1, - "charOffset": 14337, - "charLength": 238, - "snippet": { - "text": " private void TreeView_OnSelectedItemChanged(object sender, RoutedPropertyChangedEventArgs e)\r\n {\r\n if (sender is TreeView treeView)\r\n {\r\n if (treeView.SelectedItem is SplitViewModel splitViewModel)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f4f7100e424c3e6e", - "equalIndicator/v1": "f68e9b28b43f8a49996f1b475351aac32537af3401f0ab3c1af8316e7c00736f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 362, - "startColumn": 17, - "charOffset": 13644, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 360, - "startColumn": 1, - "charOffset": 13511, - "charLength": 195, - "snippet": { - "text": " for (var j = lastPatternIndex; !needle[j].HasValue || haystack[i + j] == needle[j]; --j)\r\n {\r\n if (j == 0)\r\n {\r\n result++;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "16aacfb1f801b972", - "equalIndicator/v1": "f8166796df9bdf311fbcc1fd3815f4924a7eadfdea2786c0d1fb34de569efb9d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Migrations/Migrator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 91, - "startColumn": 29, - "charOffset": 3995, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 89, - "startColumn": 1, - "charOffset": 3862, - "charLength": 351, - "snippet": { - "text": " {\r\n var split = bonfire.GetChildNodeByName(\"Split\");\r\n if (SoulMemory.DarkSouls3.Bonfire.TryParse(split.InnerText, out SoulMemory.DarkSouls3.Bonfire b))\r\n {\r\n newDarkSouls3ViewModel.NewSplitTimingType = timingType;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0f3027159ac04759", - "equalIndicator/v1": "f9aecaed93f7adbf13726f9079d444b389cbaa582e1ac87b11be3ca9928f31c4" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "InvertIf", - "kind": "fail", - "level": "note", - "message": { - "text": "Invert 'if' statement to reduce nesting", - "markdown": "Invert 'if' statement to reduce nesting" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 249, - "startColumn": 13, - "charOffset": 6592, - "charLength": 2, - "snippet": { - "text": "if" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 247, - "startColumn": 1, - "charOffset": 6522, - "charLength": 152, - "snippet": { - "text": " for (int i = 1; i < data.Length; i++)\r\n {\r\n if (data[i - 1] == 0 && data[i] == 0)\r\n {\r\n length = i;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "2aaf982bb5acae6c", - "equalIndicator/v1": "ff8c1d35444129bb562deb8d24aa7588bce9eac94663e37393fc442a6abf4154" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "LoopCanBeConvertedToQuery", - "kind": "fail", - "level": "note", - "message": { - "text": "Loop can be converted into LINQ-expression", - "markdown": "Loop can be converted into LINQ-expression" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Extensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 65, - "startColumn": 9, - "charOffset": 2037, - "charLength": 7, - "snippet": { - "text": "foreach" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 63, - "startColumn": 1, - "charOffset": 1949, - "charLength": 162, - "snippet": { - "text": " public static IEnumerable Enumerate(this XmlNodeList list)\r\n {\r\n foreach (XmlNode node in list)\r\n {\r\n yield return node;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "10f8a6616c8814d3", - "equalIndicator/v1": "5ced36fa877ab7711228e5ff70ba02bc952c8662d53398e3f51b5db36d3871e1" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "LoopCanBeConvertedToQuery", - "kind": "fail", - "level": "note", - "message": { - "text": "Loop can be converted into LINQ-expression", - "markdown": "Loop can be converted into LINQ-expression" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 478, - "startColumn": 13, - "charOffset": 16685, - "charLength": 7, - "snippet": { - "text": "foreach" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 476, - "startColumn": 1, - "charOffset": 16567, - "charLength": 285, - "snippet": { - "text": " Match match = _assemblyRegex.Match(line);\r\n string hexes = match.Groups[1].Value;\r\n foreach (Match hex in Regex.Matches(hexes, @\"\\S+\"))\r\n bytes.Add(Byte.Parse(hex.Value, System.Globalization.NumberStyles.AllowHexSpecifier));\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0d98ec2df7df826e", - "equalIndicator/v1": "619bedd8c957a8d2975e4470b973e893897d5b964044989011c7a292d267f11b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "LoopCanBeConvertedToQuery", - "kind": "fail", - "level": "note", - "message": { - "text": "Loop can be converted into LINQ-expression", - "markdown": "Loop can be converted into LINQ-expression" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 474, - "startColumn": 9, - "charOffset": 16500, - "charLength": 7, - "snippet": { - "text": "foreach" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 472, - "startColumn": 1, - "charOffset": 16453, - "charLength": 168, - "snippet": { - "text": " {\r\n List bytes = [];\r\n foreach (string line in Regex.Split(lines, \"[\\r\\n]+\"))\r\n {\r\n Match match = _assemblyRegex.Match(line);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "52b0dd108341b76c", - "equalIndicator/v1": "cd093c6ea1c66321b8b3e4fb21cec3226e6f0af82571c6e73434772ee4c7f288" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "LoopCanBeConvertedToQuery", - "kind": "fail", - "level": "note", - "message": { - "text": "Loop can be converted into LINQ-expression", - "markdown": "Loop can be converted into LINQ-expression" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 432, - "startColumn": 9, - "charOffset": 14751, - "charLength": 7, - "snippet": { - "text": "foreach" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 430, - "startColumn": 1, - "charOffset": 14702, - "charLength": 152, - "snippet": { - "text": " ProcessModule? module = null;\r\n\r\n foreach (ProcessModule item in _process!.Modules)\r\n {\r\n if (item.ModuleName == name)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "6227ae65d067d421", - "equalIndicator/v1": "fee8c09fa8acc26fc7c15a565b2067c85230462753f774941fbe44fff6fd3420" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "MemberCanBeMadeStatic.Local", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'GetEventFlagOffset' can be made static", - "markdown": "Method 'GetEventFlagOffset' can be made static" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 347, - "startColumn": 17, - "charOffset": 12105, - "charLength": 18, - "snippet": { - "text": "GetEventFlagOffset" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 345, - "startColumn": 1, - "charOffset": 12079, - "charLength": 140, - "snippet": { - "text": " };\r\n\r\n private int GetEventFlagOffset(uint eventFlagId, out uint mask)\r\n {\r\n string idString = eventFlagId.ToString(\"D8\");\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "8cf45e45831c8a49", - "equalIndicator/v1": "1768f7571611f1ecac8d00325ad88d57b756992ca8fe5078e42ff000fd568f09" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "MemberCanBeMadeStatic.Local", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'DeleteFromEnd' can be made static", - "markdown": "Method 'DeleteFromEnd' can be made static" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/EldenRing.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 366, - "startColumn": 17, - "charOffset": 12324, - "charLength": 13, - "snippet": { - "text": "DeleteFromEnd" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 364, - "startColumn": 1, - "charOffset": 12252, - "charLength": 149, - "snippet": { - "text": " private const int InventoryEntrySize = 0x14;\r\n \r\n private int DeleteFromEnd(int num, int n)\r\n {\r\n for (int i = 1; num != 0; i++)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4790e6f6220fb301", - "equalIndicator/v1": "2aeae7ae53873a805a956ca9a43adb0451aa4c058de255606b0998438fdf5d2f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "MemberCanBeMadeStatic.Local", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'OpenTroubleshootingWebpage' can be made static", - "markdown": "Method 'OpenTroubleshootingWebpage' can be made static" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/MainViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 292, - "startColumn": 18, - "charOffset": 9219, - "charLength": 26, - "snippet": { - "text": "OpenTroubleshootingWebpage" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 290, - "startColumn": 1, - "charOffset": 9085, - "charLength": 214, - "snippet": { - "text": "\r\n private const string TroubleshootingUrl = \"https://github.com/FrankvdStam/SoulSplitter/wiki/troubleshooting\";\r\n private void OpenTroubleshootingWebpage()\r\n {\r\n Process.Start(TroubleshootingUrl);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "863418e60e2c787e", - "equalIndicator/v1": "417bb8f75d1103d84c7b1289454019c08634ee8343c83b5c94f80e91fc8a5e4c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "MemberCanBeMadeStatic.Local", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'GetEventFlagOffset' can be made static", - "markdown": "Method 'GetEventFlagOffset' can be made static" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 288, - "startColumn": 17, - "charOffset": 10165, - "charLength": 18, - "snippet": { - "text": "GetEventFlagOffset" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 286, - "startColumn": 1, - "charOffset": 10139, - "charLength": 140, - "snippet": { - "text": " };\r\n\r\n private int GetEventFlagOffset(uint eventFlagId, out uint mask)\r\n {\r\n string idString = eventFlagId.ToString(\"D8\");\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "fa66e13e7616d964", - "equalIndicator/v1": "9ace6a9da191d418e38a01b935fb8100b836bf1f87ace615388493af5d0b87d0" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "MemberCanBeMadeStatic.Local", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'CanAddSplit' can be made static", - "markdown": "Method 'CanAddSplit' can be made static" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/ViewModels/Games/ArmoredCore6ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 31, - "startColumn": 18, - "charOffset": 1205, - "charLength": 11, - "snippet": { - "text": "CanAddSplit" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 29, - "startColumn": 1, - "charOffset": 1179, - "charLength": 93, - "snippet": { - "text": " }\r\n\r\n private bool CanAddSplit(object? param)\r\n {\r\n if (param is FlatSplit)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ed2f4cb57fa18730", - "equalIndicator/v1": "c8c9df9a49b44b40e00ea2ff1964ba4a89a4bf67509c4fc84392fe4ade1b7587" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "MoveLocalFunctionAfterJumpStatement", - "kind": "fail", - "level": "note", - "message": { - "text": "Put local function 'CleanupSnapshot' after 'return'", - "markdown": "Put local function 'CleanupSnapshot' after 'return'" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Native/Kernel32.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 279, - "startColumn": 14, - "charOffset": 10762, - "charLength": 15, - "snippet": { - "text": "CleanupSnapshot" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 277, - "startColumn": 1, - "charOffset": 10699, - "charLength": 142, - "snippet": { - "text": " IntPtr handleToSnapshot = IntPtr.Zero;\r\n\r\n void CleanupSnapshot()\r\n {\r\n if (handleToSnapshot != IntPtr.Zero)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "66ad5e9d78de162d", - "equalIndicator/v1": "bbfc175cd271be79c1147f7c78440080ca09dd47380c685b799fca288c5dd854" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteInt16' coverage is below the threshold 50%", - "markdown": "Method `WriteInt16` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/IMemory.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 122, - "startColumn": 24, - "charOffset": 3899, - "charLength": 10, - "snippet": { - "text": "WriteInt16" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 120, - "startColumn": 1, - "charOffset": 3770, - "charLength": 261, - "snippet": { - "text": " public static void WriteInt16(this IMemory memory, short value) => memory.WriteInt16(null, value);\r\n\r\n public static void WriteInt16(this IMemory memory, long? offset, short value)\r\n {\r\n memory.WriteBytes(offset, BitConverter.GetBytes(value));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1bad4fa50891ad61", - "equalIndicator/v1": "004365f5ee8665c6991c5c8d00951c8846a9a6e364a0263a2188f87d671206fe" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'StartAutoSplitting' coverage is below the threshold 50%", - "markdown": "Method `StartAutoSplitting` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/SekiroSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 201, - "startColumn": 17, - "charOffset": 5715, - "charLength": 18, - "snippet": { - "text": "StartAutoSplitting" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 199, - "startColumn": 1, - "charOffset": 5690, - "charLength": 74, - "snippet": { - "text": " }\r\n\r\n public void StartAutoSplitting()\r\n {\r\n _splits = (\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "60d555890a89407e", - "equalIndicator/v1": "006e72ae67acef478e5b8e04d42ce41de251b21d47c31f260135c0c0353c3a2e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'InitAllAchievements' coverage is below the threshold 50%", - "markdown": "Method `InitAllAchievements` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/DropMod.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 34, - "startColumn": 17, - "charOffset": 1286, - "charLength": 19, - "snippet": { - "text": "InitAllAchievements" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 32, - "startColumn": 1, - "charOffset": 1261, - "charLength": 326, - "snippet": { - "text": " }\r\n\r\n public void InitAllAchievements()\r\n {\r\n darkSouls.WriteWeaponDescription(1004000, \"Dropmod!\\n\\nAffected:\\nBlack Knight Halberd/Sword/Greatsword/Greataxe/Shield\\nSilver Knight Straight Sword/Spear/Shield\\nStone Greatsword/Greatshield\\nChanneler's Trident\\nSouvenir of Reprisal\\nEye of Death\\n\\n\\n\\n\\n\");\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ad9b6c0866060145", - "equalIndicator/v1": "0084830f18676a9fe91985c0fbc1ce867045905697cd8f304cc037aed88bba3e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'DarkSouls2.Attribute' coverage is below the threshold 50%", - "markdown": "Class `DarkSouls2.Attribute` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splits/DarkSouls2/Attribute.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 24, - "startColumn": 14, - "charOffset": 999, - "charLength": 9, - "snippet": { - "text": "Attribute" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 22, - "startColumn": 1, - "charOffset": 947, - "charLength": 140, - "snippet": { - "text": "\r\n[XmlType(Namespace = \"DarkSouls2\")]\r\npublic class Attribute : ICustomNotifyPropertyChanged\r\n{\r\n [XmlElement(Namespace = \"DarkSouls2\")]\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f522dde8aaf369bb", - "equalIndicator/v1": "00a8ffe709173f73996afbbdfed9ae7a1e8414c4a9c6f4cc983ed7e45d8194ea" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'IsBitSet' coverage is below the threshold 50%", - "markdown": "Method `IsBitSet` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Extensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 71, - "startColumn": 24, - "charOffset": 2155, - "charLength": 8, - "snippet": { - "text": "IsBitSet" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 69, - "startColumn": 1, - "charOffset": 2123, - "charLength": 121, - "snippet": { - "text": " }\r\n\r\n public static bool IsBitSet(this long l, int index)\r\n {\r\n return (l & ((long)0x1 << index)) != 0;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "443113931ec218a6", - "equalIndicator/v1": "00d02ea18caebab8e913aa169c800ce67f466ac09a5851fc372ea3b6eeee7009" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_IsOk' coverage is below the threshold 50%", - "markdown": "Method `get_IsOk` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Result.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 160, - "startColumn": 24, - "charOffset": 3854, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 158, - "startColumn": 1, - "charOffset": 3797, - "charLength": 114, - "snippet": { - "text": "{\r\n private readonly TOk _ok;\r\n public bool IsOk { get; protected set; }\r\n public bool IsErr => !IsOk;\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "281e155ee4201e70", - "equalIndicator/v1": "00d6c5dbf1d01e99f8939cf9fd3c4580f8e0f904aded532e141fdee1901e841b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_IsOk' coverage is below the threshold 50%", - "markdown": "Method `set_IsOk` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Result.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 52, - "startColumn": 39, - "charOffset": 1709, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 50, - "startColumn": 1, - "charOffset": 1653, - "charLength": 98, - "snippet": { - "text": " #endregion\r\n\r\n public bool IsOk { get; protected set; }\r\n public bool IsErr => !IsOk;\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "59354860e21e066e", - "equalIndicator/v1": "00e00068ad64d45040e6ced9540aa7b59746620b87a4354c4d76c7b7b50db665" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_Children' coverage is below the threshold 50%", - "markdown": "Method `set_Children` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/SplitViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 63, - "startColumn": 77, - "charOffset": 2170, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 61, - "startColumn": 1, - "charOffset": 2039, - "charLength": 188, - "snippet": { - "text": " private EldenRingSplitType _eldenRingSplitType;\r\n\r\n public ObservableCollection Children { get; set; } = [];\r\n\r\n #region ICustomNotifyPropertyChanged\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "fdfe2380097293e3", - "equalIndicator/v1": "01a21ae99030a05a0a4964cecca10822ae29c40c22e2cdc72adbb27caaf5d78c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'UpdatePosition' coverage is below the threshold 50%", - "markdown": "Method `UpdatePosition` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/EldenRingSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 122, - "startColumn": 18, - "charOffset": 3641, - "charLength": 14, - "snippet": { - "text": "UpdatePosition" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 120, - "startColumn": 1, - "charOffset": 3620, - "charLength": 95, - "snippet": { - "text": "\r\n\r\n private void UpdatePosition()\r\n {\r\n var position = _eldenRing.GetPosition();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c40eea7960f883dd", - "equalIndicator/v1": "01bd82ae9d7dc0d14c1f67d6aa7aa89e0a5c3ce6c0a66799c7904d56152aa4e6" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_Description' coverage is below the threshold 50%", - "markdown": "Method `get_Description` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/BoolDescriptionViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 25, - "startColumn": 9, - "charOffset": 996, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 23, - "startColumn": 1, - "charOffset": 950, - "charLength": 130, - "snippet": { - "text": " public string Description\r\n {\r\n get => _description;\r\n set => this.SetField(ref _description, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9bed13dc0001f20f", - "equalIndicator/v1": "01d598f1038d3be036484f8d64e223b1a3ae9960aa70db3bc91d261aed95134e" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'Memory.BitBlt' coverage is below the threshold 50%", - "markdown": "Class `Memory.BitBlt` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/BitBlt.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 23, - "startColumn": 21, - "charOffset": 951, - "charLength": 6, - "snippet": { - "text": "BitBlt" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 21, - "startColumn": 1, - "charOffset": 899, - "charLength": 154, - "snippet": { - "text": "namespace SoulMemory.Memory;\r\n\r\npublic static class BitBlt\r\n{\r\n public static bool GetBitBlt(this IGame game, List files, List bitBlt)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3713e94f3cf36d3d", - "equalIndicator/v1": "0218495f3059df7ba63e691b60dc43b4fe13c003b680e848404dfdff482c36fc" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Constructor 'RelayCommand' coverage is below the threshold 50%", - "markdown": "Constructor `RelayCommand` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/RelayCommand.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 24, - "startColumn": 12, - "charOffset": 1001, - "charLength": 12, - "snippet": { - "text": "RelayCommand" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 22, - "startColumn": 1, - "charOffset": 891, - "charLength": 416, - "snippet": { - "text": "public class RelayCommand(Action execute, Func? canExecute) : ICommand\r\n{\r\n public RelayCommand(Action execute) : this(_ => execute(), (Func?)null) { }\r\n public RelayCommand(Action execute, Func canExecute) : this(_ => execute(), _ => canExecute()) { }\r\n public RelayCommand(Action execute, Func canExecute) : this(_ => execute(), canExecute) { }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5b4149707bc15b9a", - "equalIndicator/v1": "02cddf608f3cb8c41ee4ac2898a615404bc7e0bc815aea8cadea36f2979e0a3d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadBytes' coverage is below the threshold 50%", - "markdown": "Method `ReadBytes` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Process/ProcessHook.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 93, - "startColumn": 19, - "charOffset": 3849, - "charLength": 9, - "snippet": { - "text": "ReadBytes" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 91, - "startColumn": 1, - "charOffset": 3808, - "charLength": 223, - "snippet": { - "text": " #region IMemory\r\n\r\n public byte[] ReadBytes(long offset, int length) => ProcessWrapper.ReadBytes(offset, length);\r\n public void WriteBytes(long offset, byte[] bytes) => ProcessWrapper.WriteBytes(offset, bytes);\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d9509e7fbdee537a", - "equalIndicator/v1": "0359cc45602bebadbd9688378bf1ae01df7e4ee2ec224b292f50d5d42d1794e0" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_RemoveSplit' coverage is below the threshold 50%", - "markdown": "Method `set_RemoveSplit` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 266, - "startColumn": 9, - "charOffset": 11684, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 264, - "startColumn": 1, - "charOffset": 11598, - "charLength": 150, - "snippet": { - "text": " {\r\n get => (RelayCommand)GetValue(RemoveSplitDependencyProperty);\r\n set => SetValue(RemoveSplitDependencyProperty, value);\r\n }\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "da48d2f7382b5a8b", - "equalIndicator/v1": "03ecb9f56dc0d71950b7b1e093602b37db64782e61ce39c7b4fb5af0c38a70fc" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ScanRelative' coverage is below the threshold 50%", - "markdown": "Method `ScanRelative` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/TreeBuilder.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 30, - "startColumn": 28, - "charOffset": 1247, - "charLength": 12, - "snippet": { - "text": "ScanRelative" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 28, - "startColumn": 1, - "charOffset": 1177, - "charLength": 197, - "snippet": { - "text": " public List Tree = [];\r\n\r\n public PointerAppender ScanRelative(string name, string pattern, long addressOffset, long instructionSize)\r\n {\r\n var node = new PointerNode\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "774fc4e822899290", - "equalIndicator/v1": "03ed98c6afb9b2c8e0fa6e5a41f9510b04642477f3b312ad562ef9e3b53785c6" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'CopyPosition_OnClick' coverage is below the threshold 50%", - "markdown": "Method `CopyPosition_OnClick` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 93, - "startColumn": 18, - "charOffset": 2967, - "charLength": 20, - "snippet": { - "text": "CopyPosition_OnClick" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 91, - "startColumn": 1, - "charOffset": 2941, - "charLength": 131, - "snippet": { - "text": " }\r\n\r\n private void CopyPosition_OnClick(object sender, RoutedEventArgs e)\r\n {\r\n var vm = GetEldenRingViewModel();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "89595f38c1acb490", - "equalIndicator/v1": "03fe094784e8db0075261193a6bad3f502f85b667628fd8ce2f1c3555815952f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_KnownFlags' coverage is below the threshold 50%", - "markdown": "Method `get_KnownFlags` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 194, - "startColumn": 9, - "charOffset": 7991, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 192, - "startColumn": 1, - "charOffset": 7907, - "charLength": 248, - "snippet": { - "text": " public ObservableCollection> KnownFlags\r\n {\r\n get => (ObservableCollection>)GetValue(KnownFlagsDependencyProperty);\r\n set => SetValue(KnownFlagsDependencyProperty, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "dd6ec2610bfad0e2", - "equalIndicator/v1": "0407db6da4326028bcf8eac519a0caea51ed36b972e330dd6640340e239d1902" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_Attributes' coverage is below the threshold 50%", - "markdown": "Method `get_Attributes` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 204, - "startColumn": 9, - "charOffset": 8561, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 202, - "startColumn": 1, - "charOffset": 8477, - "charLength": 248, - "snippet": { - "text": " public ObservableCollection> Attributes\r\n {\r\n get => (ObservableCollection>)GetValue(AttributesDependencyProperty);\r\n set => SetValue(AttributesDependencyProperty, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b2c089dc6ee35868", - "equalIndicator/v1": "041a7f069256b075377a63bef5c2af5b417b5a7c51873ba9c9832590a3292c43" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Constructor 'Split' coverage is below the threshold 50%", - "markdown": "Constructor `Split` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splits/DarkSouls3/Split.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 25, - "startColumn": 12, - "charOffset": 967, - "charLength": 5, - "snippet": { - "text": "Split" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 23, - "startColumn": 1, - "charOffset": 931, - "charLength": 151, - "snippet": { - "text": "internal class Split\r\n{\r\n public Split(TimingType timingType, SplitType darkSouls3SplitType, object split)\r\n {\r\n TimingType = timingType;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f745362420a7ae3a", - "equalIndicator/v1": "04be8a5f6ef7072a5acfbfed279cbc9acbf06befd3d3dce5873dcb8722a0fd66" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'ArmoredCore6.ArmoredCore6' coverage is below the threshold 50%", - "markdown": "Class `ArmoredCore6.ArmoredCore6` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 25, - "startColumn": 14, - "charOffset": 1020, - "charLength": 12, - "snippet": { - "text": "ArmoredCore6" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 23, - "startColumn": 1, - "charOffset": 969, - "charLength": 125, - "snippet": { - "text": "namespace SoulMemory.ArmoredCore6;\r\n\r\npublic class ArmoredCore6 : IGame\r\n{\r\n private readonly IProcessHook _armoredCore6;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7de43ae6451bd99e", - "equalIndicator/v1": "0500244801e6efa78a3ac97f3c7786b939ff9d77c1152f51a1da5d8b8e76f284" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'RestoreHierarchy' coverage is below the threshold 50%", - "markdown": "Method `RestoreHierarchy` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 421, - "startColumn": 17, - "charOffset": 12988, - "charLength": 16, - "snippet": { - "text": "RestoreHierarchy" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 419, - "startColumn": 1, - "charOffset": 12940, - "charLength": 235, - "snippet": { - "text": " #region Splits hierarchy\r\n\r\n public void RestoreHierarchy()\r\n {\r\n //When serializing the model, we can't serialize the parent relation, because that would be a circular reference. Instead, parent's are not serialized.\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "696c3708f000d722", - "equalIndicator/v1": "0534cb7d5b1c4d3a21fa486cf59a724be0faeec370d391e786a4e92c0e035cb3" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_Children' coverage is below the threshold 50%", - "markdown": "Method `get_Children` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/HierarchicalViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 38, - "startColumn": 76, - "charOffset": 1485, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 36, - "startColumn": 1, - "charOffset": 1367, - "charLength": 180, - "snippet": { - "text": " private TimingType _timingType;\r\n \r\n public ObservableCollection Children { get; set; } = [];\r\n\r\n #region ICustomNotifyPropertyChanged\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4b60a51d0959255f", - "equalIndicator/v1": "0570d876dd80898207e583723e31367982fcc4c4c7a78e07221974537f179357" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ToString' coverage is below the threshold 50%", - "markdown": "Method `ToString` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Result.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 326, - "startColumn": 28, - "charOffset": 7459, - "charLength": 8, - "snippet": { - "text": "ToString" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 324, - "startColumn": 1, - "charOffset": 7405, - "charLength": 104, - "snippet": { - "text": " public T Value = t;\r\n\r\n public override string ToString()\r\n {\r\n return $\"{typeof(T)}\";\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "67fec1cd7d59d6ef", - "equalIndicator/v1": "05ef9c32e686f5feff102727eff3963bc96b938e572c89c79fe99d2cc9b2fea8" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ImportSettings' coverage is below the threshold 50%", - "markdown": "Method `ImportSettings` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/MainViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 360, - "startColumn": 18, - "charOffset": 11201, - "charLength": 14, - "snippet": { - "text": "ImportSettings" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 358, - "startColumn": 1, - "charOffset": 11116, - "charLength": 142, - "snippet": { - "text": " private RelayCommand _commandImportSettingsFromFile = null!;\r\n\r\n private void ImportSettings()\r\n {\r\n TryAndHandleError(() =>\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4c527aaf2eeaa487", - "equalIndicator/v1": "05f17946f4ac91de3b9b4d4bda447424980cae7d26a2f73496a287741aab732a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_BadgeVisibilityInverse' coverage is below the threshold 50%", - "markdown": "Method `set_BadgeVisibilityInverse` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/MainViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 272, - "startColumn": 9, - "charOffset": 8568, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 270, - "startColumn": 1, - "charOffset": 8512, - "charLength": 191, - "snippet": { - "text": " {\r\n get => _badgeVisibilityInverse;\r\n set => this.SetField(ref _badgeVisibilityInverse, value);\r\n }\r\n private Visibility _badgeVisibilityInverse = Visibility.Visible;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9410b801883a82a2", - "equalIndicator/v1": "0601282490d6ce191d27131864b8881174f12b1c7c136efe6e3df6f01b1245a9" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetProcess' coverage is below the threshold 50%", - "markdown": "Method `GetProcess` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 38, - "startColumn": 21, - "charOffset": 1556, - "charLength": 10, - "snippet": { - "text": "GetProcess" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 36, - "startColumn": 1, - "charOffset": 1504, - "charLength": 217, - "snippet": { - "text": " private long _igtOffset;\r\n\r\n public Process? GetProcess() => _process;\r\n public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, \"darksoulsiii\", InitPointers, ResetPointers);\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b50d3259f7f38f39", - "equalIndicator/v1": "0618c719095231632d6df8a3aa63651589eef5c17e477233a01bdf7d4878afc9" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'InitPointers' coverage is below the threshold 50%", - "markdown": "Method `InitPointers` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 147, - "startColumn": 37, - "charOffset": 6043, - "charLength": 12, - "snippet": { - "text": "InitPointers" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 145, - "startColumn": 1, - "charOffset": 5998, - "charLength": 80, - "snippet": { - "text": " }\r\n\r\n private ResultErr InitPointers()\r\n {\r\n try\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "27f393734826c3f5", - "equalIndicator/v1": "063a0b489fb82dc75c41e7ba8f6316934beff86439dee2abfc6e68602940c0c8" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'Hotkeys.GlobalHotKey' coverage is below the threshold 50%", - "markdown": "Class `Hotkeys.GlobalHotKey` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Hotkeys/GlobalHotKey.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 27, - "startColumn": 21, - "charOffset": 1045, - "charLength": 12, - "snippet": { - "text": "GlobalHotKey" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 25, - "startColumn": 1, - "charOffset": 990, - "charLength": 176, - "snippet": { - "text": "namespace SoulSplitter.Hotkeys;\r\n\r\npublic static class GlobalHotKey\r\n{\r\n private static readonly List<(int id, ModifierKeys modifier, Key key, Action action)> Hotkeys = [];\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "dd24e0bfd1af079c", - "equalIndicator/v1": "06549552f5491025a24c601cb5e4ec626e7077588097af5d9ef7dbac2a3cb69e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ClearErrors' coverage is below the threshold 50%", - "markdown": "Method `ClearErrors` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/MainViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 182, - "startColumn": 17, - "charOffset": 6100, - "charLength": 11, - "snippet": { - "text": "ClearErrors" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 180, - "startColumn": 1, - "charOffset": 6075, - "charLength": 71, - "snippet": { - "text": " }\r\n\r\n public void ClearErrors()\r\n {\r\n Errors.Clear();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "92569f3e31af1a28", - "equalIndicator/v1": "06a5573d9312bafa287eea6da08125d85a21ea2cfd225f00b3dd770eab628faf" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadUInt32' coverage is below the threshold 50%", - "markdown": "Method `ReadUInt32` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 73, - "startColumn": 24, - "charOffset": 2368, - "charLength": 10, - "snippet": { - "text": "ReadUInt32" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 71, - "startColumn": 1, - "charOffset": 2336, - "charLength": 155, - "snippet": { - "text": " }\r\n\r\n public static uint ReadUInt32(this IMemory memory, long offset)\r\n {\r\n return BitConverter.ToUInt32(memory.ReadBytes(offset, 4), 0);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ed6e11b5f0f7ef02", - "equalIndicator/v1": "06e36b1e5da664d68522876be63ec04afc68ba56af48b7b1373a7f92ed22210f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'soulmemory_rs.SoulMemoryRs' coverage is below the threshold 50%", - "markdown": "Class `soulmemory_rs.SoulMemoryRs` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/soulmemory-rs/SoulMemoryRs.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 26, - "startColumn": 21, - "charOffset": 1024, - "charLength": 12, - "snippet": { - "text": "SoulMemoryRs" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 24, - "startColumn": 1, - "charOffset": 963, - "charLength": 110, - "snippet": { - "text": "namespace SoulSplitter.soulmemory_rs;\r\n\r\npublic static class SoulMemoryRs\r\n{\r\n public static void Launch()\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "68c43fab1357e551", - "equalIndicator/v1": "06e60a3262956916d2c8bbe4db49bee94898faa590cd5a5d67bc3291af3d5d17" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'RegisterHotkey' coverage is below the threshold 50%", - "markdown": "Method `RegisterHotkey` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Native/User32.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 34, - "startColumn": 24, - "charOffset": 1272, - "charLength": 14, - "snippet": { - "text": "RegisterHotkey" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 32, - "startColumn": 1, - "charOffset": 1240, - "charLength": 292, - "snippet": { - "text": " }\r\n\r\n public static bool RegisterHotkey(IntPtr handle, int id, uint modifiers, uint virtualKeyCode) => NativeMethods.RegisterHotKey(handle, id, modifiers, virtualKeyCode);\r\n public static bool UnregisterHotkey(IntPtr handle, int id) => NativeMethods.UnregisterHotKey(handle, id);\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a1449e2a7356ce10", - "equalIndicator/v1": "06ffe830e80fde9c9429d5e038518cfeae9c9859ea1f371e5eed5dfd264a9a7a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_Children' coverage is below the threshold 50%", - "markdown": "Method `set_Children` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/HierarchicalViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 67, - "startColumn": 77, - "charOffset": 2269, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 65, - "startColumn": 1, - "charOffset": 2189, - "charLength": 137, - "snippet": { - "text": "\r\n\r\n public ObservableCollection Children { get; set; } = [];\r\n\r\n #region ICustomNotifyPropertyChanged\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f12389c04f4334bb", - "equalIndicator/v1": "077fd1c812cbbf8f9c43b6fab64b71d90490a47e22a2dba43b603da1938a108d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'SoulMemory.Container' coverage is below the threshold 50%", - "markdown": "Class `SoulMemory.Container` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Result.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 322, - "startColumn": 14, - "charOffset": 7383, - "charLength": 9, - "snippet": { - "text": "Container" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 320, - "startColumn": 1, - "charOffset": 7261, - "charLength": 168, - "snippet": { - "text": "/// Container type, used in implicit conversions with the Result classes, for sugar syntax.\r\n/// \r\npublic class Container(T t)\r\n{\r\n public T Value = t;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c641f6ef294971a7", - "equalIndicator/v1": "07c23dacf8c46ae150790d7f3ce8f5bb8815d82e77d1873e2f53adf5044dd28b" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ToString' coverage is below the threshold 50%", - "markdown": "Method `ToString` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/PointerPath.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 24, - "startColumn": 28, - "charOffset": 957, - "charLength": 8, - "snippet": { - "text": "ToString" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 22, - "startColumn": 1, - "charOffset": 902, - "charLength": 124, - "snippet": { - "text": " public long Address;\r\n\r\n public override string ToString()\r\n {\r\n return $\"0x{Offset:x8} - 0x{Address:x8}\";\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1745e0b5e8d3183c", - "equalIndicator/v1": "07ec58cdc156e68c2c30c550f2cd1922c413f221ec67dbb656914c6e2531e1ff" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadInt16' coverage is below the threshold 50%", - "markdown": "Method `ReadInt16` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 58, - "startColumn": 25, - "charOffset": 1899, - "charLength": 9, - "snippet": { - "text": "ReadInt16" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 56, - "startColumn": 1, - "charOffset": 1866, - "charLength": 154, - "snippet": { - "text": " }\r\n\r\n public static short ReadInt16(this IMemory memory, long offset)\r\n {\r\n return BitConverter.ToInt16(memory.ReadBytes(offset, 2), 0);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "fded70a5b71b8afb", - "equalIndicator/v1": "084527c162f205a04ffd53543e035f102a9e18806a5c3b009d116e8ac12bb097" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'IsPlayerLoaded' coverage is below the threshold 50%", - "markdown": "Method `IsPlayerLoaded` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 174, - "startColumn": 17, - "charOffset": 6889, - "charLength": 14, - "snippet": { - "text": "IsPlayerLoaded" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 172, - "startColumn": 1, - "charOffset": 6804, - "charLength": 167, - "snippet": { - "text": " public int GetPlayerHealth() => _playerIns.ReadInt32(0x2d4) ;\r\n\r\n public bool IsPlayerLoaded() => !_playerIns.IsNullPtr();\r\n\r\n public bool IsWarpRequested()\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "04997c100058c025", - "equalIndicator/v1": "08b1d7fd332c0266a29df5f3d131044b5ce3cf17983d0fc4c21bd42948d9f038" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_DataOffset' coverage is below the threshold 50%", - "markdown": "Method `set_DataOffset` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/ParamTableEntry.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 22, - "startColumn": 35, - "charOffset": 943, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 20, - "startColumn": 1, - "charOffset": 873, - "charLength": 121, - "snippet": { - "text": "{\r\n public int Id { get; set; }\r\n public uint DataOffset { get; set; }\r\n public uint NameOffset { get; set; }\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5ff32ac83b1c1a29", - "equalIndicator/v1": "08f78c72c159b91b409add50ef4782e5d691fd62bd455b8e2850317d9b4a3887" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_ItemType' coverage is below the threshold 50%", - "markdown": "Method `set_ItemType` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splits/DarkSouls1/ItemState.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 31, - "startColumn": 9, - "charOffset": 1167, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 29, - "startColumn": 1, - "charOffset": 1125, - "charLength": 127, - "snippet": { - "text": " {\r\n get => _itemType;\r\n set => this.SetField(ref _itemType, value);\r\n }\r\n private ItemType? _itemType;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "cd8dec7203a13aa5", - "equalIndicator/v1": "0917d1dba24084a43d24bdd0ce857cc9308c75026baae315b44b324b7e7c48a6" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'DarkSouls1.DarkSouls1' coverage is below the threshold 50%", - "markdown": "Class `DarkSouls1.DarkSouls1` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/DarkSouls1.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 27, - "startColumn": 14, - "charOffset": 1047, - "charLength": 10, - "snippet": { - "text": "DarkSouls1" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 25, - "startColumn": 1, - "charOffset": 998, - "charLength": 116, - "snippet": { - "text": "namespace SoulMemory.DarkSouls1;\r\n\r\npublic class DarkSouls1 : IDarkSouls1\r\n{\r\n private IDarkSouls1? _darkSouls1;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "caa504e1dbba18b8", - "equalIndicator/v1": "093459268ac63edb0db89352f0f68bd311c729ec2c2cdd01185a931093ba1231" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'Memory.Pointer' coverage is below the threshold 50%", - "markdown": "Class `Memory.Pointer` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 26, - "startColumn": 14, - "charOffset": 997, - "charLength": 7, - "snippet": { - "text": "Pointer" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 24, - "startColumn": 1, - "charOffset": 952, - "charLength": 86, - "snippet": { - "text": "namespace SoulMemory.Memory;\r\n\r\npublic class Pointer\r\n{\r\n public Process? Process;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ff7c19c0b79690ec", - "equalIndicator/v1": "09eb0f9be5af40aed5711daa01def9f987ea71303138ebcd645b524b2d256794" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteInt32' coverage is below the threshold 50%", - "markdown": "Method `WriteInt32` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/IMemory.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 134, - "startColumn": 24, - "charOffset": 4340, - "charLength": 10, - "snippet": { - "text": "WriteInt32" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 132, - "startColumn": 1, - "charOffset": 4308, - "charLength": 114, - "snippet": { - "text": " }\r\n\r\n public static void WriteInt32(this IMemory memory, int value) => memory.WriteInt32(null, value);\r\n\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "8ecdb42f9acd203c", - "equalIndicator/v1": "0a1ca83a85ce219b13ddc46c2cc75166c0f704628b39522e89a3903ad17fc07f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'OnPreviewKeyDown' coverage is below the threshold 50%", - "markdown": "Method `OnPreviewKeyDown` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/FilteredComboBox.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 56, - "startColumn": 29, - "charOffset": 2024, - "charLength": 16, - "snippet": { - "text": "OnPreviewKeyDown" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 54, - "startColumn": 1, - "charOffset": 1987, - "charLength": 101, - "snippet": { - "text": " }\r\n\r\n protected override void OnPreviewKeyDown(KeyEventArgs e)\r\n {\r\n switch (e.Key)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "fd8453bb64394ed6", - "equalIndicator/v1": "0a509dcb567eb428d08800edf19f5d700fba63625f61081552efaffd27a2154f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'Update' coverage is below the threshold 50%", - "markdown": "Method `Update` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls3Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 86, - "startColumn": 36, - "charOffset": 2584, - "charLength": 6, - "snippet": { - "text": "Update" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 84, - "startColumn": 1, - "charOffset": 2545, - "charLength": 129, - "snippet": { - "text": "\r\n\r\n public ResultErr Update(MainViewModel mainViewModel)\r\n {\r\n mainViewModel.TryAndHandleError(() =>\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c6bb1c6c30e8a2bb", - "equalIndicator/v1": "0a5da4e37001e6682cd5372241d3b7c56ff44acd1ee85430881d3dd5db0e0770" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_ItemHighRange' coverage is below the threshold 50%", - "markdown": "Method `get_ItemHighRange` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/TextTableEntry.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 23, - "startColumn": 33, - "charOffset": 993, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 21, - "startColumn": 1, - "charOffset": 875, - "charLength": 199, - "snippet": { - "text": " public uint ItemLowRange { get; set; }\r\n public uint DataOffset { get; set; }\r\n public uint ItemHighRange { get; set; }\r\n\r\n public override string ToString() => ItemLowRange.ToString();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "29153835f3d62f42", - "equalIndicator/v1": "0a747b506b840b272acfeadfc25b6352f053029858dc407a8ee13d230e8f8c1b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'TryScanRelative' coverage is below the threshold 50%", - "markdown": "Method `TryScanRelative` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 124, - "startColumn": 24, - "charOffset": 4945, - "charLength": 15, - "snippet": { - "text": "TryScanRelative" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 122, - "startColumn": 1, - "charOffset": 4841, - "charLength": 227, - "snippet": { - "text": " /// Returns the static address of the given instruction\r\n /// \r\n public static bool TryScanRelative(this byte[] bytes, long baseAddress, PointerNode pointerNode, out long result)\r\n {\r\n result = 0;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "da4dce2d1d0a8866", - "equalIndicator/v1": "0a8230d4144d76dca367f3c3b3b84d80af6962eac6bb3ec8cb47c4157e1e6888" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'Generic.ErrorViewModel' coverage is below the threshold 50%", - "markdown": "Class `Generic.ErrorViewModel` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/ErrorViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 22, - "startColumn": 14, - "charOffset": 905, - "charLength": 14, - "snippet": { - "text": "ErrorViewModel" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 20, - "startColumn": 1, - "charOffset": 854, - "charLength": 130, - "snippet": { - "text": "namespace SoulSplitter.UI.Generic;\r\n\r\npublic class ErrorViewModel : ICustomNotifyPropertyChanged\r\n{\r\n public DateTime DateTime\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "72bc83249c9a7f0b", - "equalIndicator/v1": "0ab365a366418cadc2b2184402b4db0cf633bcb5d9ee29fab4532d1f9e579a88" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetEventFlagAddress' coverage is below the threshold 50%", - "markdown": "Method `GetEventFlagAddress` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 154, - "startColumn": 28, - "charOffset": 5356, - "charLength": 19, - "snippet": { - "text": "GetEventFlagAddress" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 152, - "startColumn": 1, - "charOffset": 5320, - "charLength": 114, - "snippet": { - "text": " }\r\n\r\n private ResultOk GetEventFlagAddress(uint eventFlagId, out int mask)\r\n {\r\n mask = 0;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "32b919d734bc04f6", - "equalIndicator/v1": "0ab8b5d68cc4f3ad653b235b8c3397d44d2d08c539a4821c59318e636299cd56" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_Flag' coverage is below the threshold 50%", - "markdown": "Method `get_Flag` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/KnownFlagViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 54, - "startColumn": 9, - "charOffset": 1604, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 52, - "startColumn": 1, - "charOffset": 1567, - "charLength": 107, - "snippet": { - "text": " public uint Flag\r\n {\r\n get => _flag;\r\n set => this.SetField(ref _flag, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9b47502df9eb1e35", - "equalIndicator/v1": "0b60a5da96b792797be09044cb5357af9cef4409bddf069e956e5b2026958750" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'TextBoxRawFlag_OnTextChanged' coverage is below the threshold 50%", - "markdown": "Method `TextBoxRawFlag_OnTextChanged` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2Control.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 54, - "startColumn": 18, - "charOffset": 1798, - "charLength": 28, - "snippet": { - "text": "TextBoxRawFlag_OnTextChanged" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 52, - "startColumn": 1, - "charOffset": 1772, - "charLength": 206, - "snippet": { - "text": " }\r\n\r\n private void TextBoxRawFlag_OnTextChanged(object sender, TextChangedEventArgs e)\r\n {\r\n if (_darkSouls2ViewModel.NewSplitType is DarkSouls2SplitType.Flag && sender is TextBox textBox)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ed18410205d8136c", - "equalIndicator/v1": "0b691cd73f7c517d16add808dbd69e9c96f77b75600b1e68e39fcbf7fd9dffe2" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_EnabledAddSplit' coverage is below the threshold 50%", - "markdown": "Method `set_EnabledAddSplit` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 281, - "startColumn": 9, - "charOffset": 7776, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 279, - "startColumn": 1, - "charOffset": 7727, - "charLength": 143, - "snippet": { - "text": " {\r\n get => _enabledAddSplit;\r\n set => this.SetField(ref _enabledAddSplit, value);\r\n }\r\n private bool _enabledAddSplit;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0da803b106b3469e", - "equalIndicator/v1": "0ca055a221598a2454f9b2bde118b62c6a037ce11dd227c8e58bc68de978d28d" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteInGameTimeMilliseconds' coverage is below the threshold 50%", - "markdown": "Method `WriteInGameTimeMilliseconds` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 156, - "startColumn": 17, - "charOffset": 5513, - "charLength": 27, - "snippet": { - "text": "WriteInGameTimeMilliseconds" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 154, - "startColumn": 1, - "charOffset": 5488, - "charLength": 126, - "snippet": { - "text": " }\r\n\r\n public void WriteInGameTimeMilliseconds(int millis)\r\n {\r\n _gameDataMan.WriteInt32(_igtOffset, millis);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "38703af0b844c627", - "equalIndicator/v1": "0caf9b0fa31536686f49dbee8b9cb69742f226296f3aa73bc667d1c54143ee8d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteInGameTimeMilliseconds' coverage is below the threshold 50%", - "markdown": "Method `WriteInGameTimeMilliseconds` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Sekiro/Sekiro.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 189, - "startColumn": 17, - "charOffset": 7229, - "charLength": 27, - "snippet": { - "text": "WriteInGameTimeMilliseconds" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 187, - "startColumn": 1, - "charOffset": 7204, - "charLength": 104, - "snippet": { - "text": " }\r\n\r\n public void WriteInGameTimeMilliseconds(int value)\r\n {\r\n _igt.WriteInt32(value);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e747107d84d28c94", - "equalIndicator/v1": "0cb923573b1a055ce94058bd885d20cc0f17dc2fce46bd31f4244e0809c7c9b0" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadUInt32' coverage is below the threshold 50%", - "markdown": "Method `ReadUInt32` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 204, - "startColumn": 17, - "charOffset": 5368, - "charLength": 10, - "snippet": { - "text": "ReadUInt32" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 202, - "startColumn": 1, - "charOffset": 5281, - "charLength": 191, - "snippet": { - "text": " return BitConverter.ToInt32(ReadMemory(offset, 4), 0);\r\n }\r\n public uint ReadUInt32(long? offset = null)\r\n {\r\n return BitConverter.ToUInt32(ReadMemory(offset, 4), 0);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "51221508fa823165", - "equalIndicator/v1": "0d270efae5e4f611a2a04faa1feea0fa836a29aa95e648ab502e07376848c607" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_NewSplitItem' coverage is below the threshold 50%", - "markdown": "Method `set_NewSplitItem` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 200, - "startColumn": 9, - "charOffset": 5699, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 198, - "startColumn": 1, - "charOffset": 5653, - "charLength": 115, - "snippet": { - "text": " {\r\n get => _newSplitItem;\r\n set\r\n {\r\n this.SetField(ref _newSplitItem, value);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a286aecf062a38ea", - "equalIndicator/v1": "0ded78896f1792a2b1f6dc281cf0628fec354364e6fa87c55bcb0099c7d8010e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'soulmods.RustCallAttribute' coverage is below the threshold 50%", - "markdown": "Class `soulmods.RustCallAttribute` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/soulmods/Soulmods.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 43, - "startColumn": 14, - "charOffset": 1448, - "charLength": 17, - "snippet": { - "text": "RustCallAttribute" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 41, - "startColumn": 1, - "charOffset": 1371, - "charLength": 163, - "snippet": { - "text": "\r\n[AttributeUsage(AttributeTargets.Method, Inherited = false)]\r\npublic class RustCallAttribute : Attribute\r\n{\r\n public string MethodName { get; set; } = null!;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "8b5b4e9e63a87fe1", - "equalIndicator/v1": "0e12350eef1b69cd48384e61d40d137134b0b35449b15d0c7f5187187374ad58" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_NewSplitPosition' coverage is below the threshold 50%", - "markdown": "Method `get_NewSplitPosition` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 219, - "startColumn": 9, - "charOffset": 6156, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 217, - "startColumn": 1, - "charOffset": 6093, - "charLength": 113, - "snippet": { - "text": " public PositionViewModel? NewSplitPosition\r\n {\r\n get => _newSplitPosition;\r\n set\r\n {\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "49ce82623dcd8055", - "equalIndicator/v1": "0e80b19e9b20e84610d91672bf51f8629652d82de87888a545e75dab9839819b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Constructor 'ResultOk' coverage is below the threshold 50%", - "markdown": "Constructor `ResultOk` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Result.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 163, - "startColumn": 15, - "charOffset": 3926, - "charLength": 8, - "snippet": { - "text": "ResultOk" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 161, - "startColumn": 1, - "charOffset": 3877, - "charLength": 106, - "snippet": { - "text": " public bool IsErr => !IsOk;\r\n\r\n protected ResultOk(bool isOk, TOk ok)\r\n {\r\n IsOk = isOk;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e58ed9c9bf1c9dad", - "equalIndicator/v1": "0f3ea3b4e49fbd14f0f21a9eb293e6a22f1521d72a41999f70d9f310c7dec193" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_VisibleItemSplit' coverage is below the threshold 50%", - "markdown": "Method `set_VisibleItemSplit` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 212, - "startColumn": 9, - "charOffset": 5977, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 210, - "startColumn": 1, - "charOffset": 5927, - "charLength": 146, - "snippet": { - "text": " {\r\n get => _visibleItemSplit;\r\n set => this.SetField(ref _visibleItemSplit, value);\r\n }\r\n private bool _visibleItemSplit;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "15107cc923f8bb62", - "equalIndicator/v1": "104142087ae03236eaed7c7bdffa7e88ae0346d3006dd99af21ad3eac75a93d1" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'Unwrap' coverage is below the threshold 50%", - "markdown": "Method `Unwrap` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Result.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 75, - "startColumn": 17, - "charOffset": 2174, - "charLength": 6, - "snippet": { - "text": "Unwrap" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 73, - "startColumn": 1, - "charOffset": 2149, - "charLength": 61, - "snippet": { - "text": " }\r\n\r\n public void Unwrap()\r\n {\r\n if (!IsOk)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d16f6cc612fe2753", - "equalIndicator/v1": "105ec2b006101f3bed4826eff5d0f79256a056d4ea2c2624c599bf4377293d8c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteUInt32' coverage is below the threshold 50%", - "markdown": "Method `WriteUInt32` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/IMemory.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 142, - "startColumn": 24, - "charOffset": 4609, - "charLength": 11, - "snippet": { - "text": "WriteUInt32" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 140, - "startColumn": 1, - "charOffset": 4577, - "charLength": 198, - "snippet": { - "text": " }\r\n\r\n public static void WriteUInt32(this IMemory memory, uint value) => memory.WriteUInt32(null, value);\r\n\r\n public static void WriteUInt32(this IMemory memory, long? offset, uint value)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4b3b5a3910cdf7ee", - "equalIndicator/v1": "1061ebb696e222742cbb9d3d2fb429e183eacb901fa67cc94f804afb6a2aa2fb" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'Memory.MemoryExtensions' coverage is below the threshold 50%", - "markdown": "Class `Memory.MemoryExtensions` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/IMemory.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 50, - "startColumn": 21, - "charOffset": 1523, - "charLength": 16, - "snippet": { - "text": "MemoryExtensions" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 48, - "startColumn": 1, - "charOffset": 1498, - "charLength": 63, - "snippet": { - "text": "}\r\n\r\npublic static class MemoryExtensions\r\n{\r\n #region Read\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7ffde59700b0726a", - "equalIndicator/v1": "10b51e6ea170f66fd19da41d4699c79708b4d4b18e820388e8a6cb9e066fc9c4" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ResetPointers' coverage is below the threshold 50%", - "markdown": "Method `ResetPointers` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/EldenRing.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 191, - "startColumn": 18, - "charOffset": 7234, - "charLength": 13, - "snippet": { - "text": "ResetPointers" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 189, - "startColumn": 1, - "charOffset": 7204, - "charLength": 76, - "snippet": { - "text": " }\r\n \r\n private void ResetPointers()\r\n {\r\n _igt.Clear();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "05bc56e4b233df0b", - "equalIndicator/v1": "1102a177039302c4623a2f449767a0c9154b1d07f578311221d7685e36cba801" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetEnumViewModels' coverage is below the threshold 50%", - "markdown": "Method `GetEnumViewModels` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/EnumFlagViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 82, - "startColumn": 62, - "charOffset": 2366, - "charLength": 17, - "snippet": { - "text": "GetEnumViewModels" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 80, - "startColumn": 1, - "charOffset": 2287, - "charLength": 248, - "snippet": { - "text": " #endregion\r\n\r\n public static ObservableCollection> GetEnumViewModels()\r\n {\r\n return new ObservableCollection>(Enum.GetValues(typeof(T)).Cast().Select(i => new EnumFlagViewModel(i)));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "abe8bb0d2c8924e0", - "equalIndicator/v1": "11c71e3d42afc4911e41a39a9d7b49aa6d1e5dedfb3360bb3fbaf1646b22a173" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_SelectedBonfireState' coverage is below the threshold 50%", - "markdown": "Method `get_SelectedBonfireState` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 328, - "startColumn": 9, - "charOffset": 13268, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 326, - "startColumn": 1, - "charOffset": 13214, - "charLength": 156, - "snippet": { - "text": " public Enum? SelectedBonfireState\r\n {\r\n get => _selectedBonfireState;\r\n set => this.SetField(ref _selectedBonfireState, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "81c01f2c286d4476", - "equalIndicator/v1": "120913c981f55f0785956a54d9fafb0b6b5d03c5678ba28ebf955b5c6bb2f869" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'FromProcessModule' coverage is below the threshold 50%", - "markdown": "Method `FromProcessModule` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Process/ProcessWrapperModule.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 29, - "startColumn": 40, - "charOffset": 1168, - "charLength": 17, - "snippet": { - "text": "FromProcessModule" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 27, - "startColumn": 1, - "charOffset": 1080, - "charLength": 176, - "snippet": { - "text": " public int ModuleMemorySize { get; set; }\r\n\r\n public static ProcessWrapperModule FromProcessModule(ProcessModule module)\r\n {\r\n return new ProcessWrapperModule\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e96db6d8b9ee1ce9", - "equalIndicator/v1": "120c0ef2c5413d30858fb0fc45f3f02eb0defe663157935bd52f451722744ec5" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteUInt16' coverage is below the threshold 50%", - "markdown": "Method `WriteUInt16` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/IMemory.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 129, - "startColumn": 24, - "charOffset": 4173, - "charLength": 11, - "snippet": { - "text": "WriteUInt16" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 127, - "startColumn": 1, - "charOffset": 4041, - "charLength": 266, - "snippet": { - "text": " public static void WriteUInt16(this IMemory memory, ushort value) => memory.WriteUInt16(null, value);\r\n\r\n public static void WriteUInt16(this IMemory memory, long? offset, ushort value)\r\n {\r\n memory.WriteBytes(offset, BitConverter.GetBytes(value));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "62bb43b3431732eb", - "equalIndicator/v1": "1217e4af3d89f0886a4e77ba93d56c7a323f31135ef7b763651e7f12942469c4" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Constructor 'ResultErr' coverage is below the threshold 50%", - "markdown": "Constructor `ResultErr` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Result.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 98, - "startColumn": 15, - "charOffset": 2642, - "charLength": 9, - "snippet": { - "text": "ResultErr" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 96, - "startColumn": 1, - "charOffset": 2593, - "charLength": 109, - "snippet": { - "text": " public bool IsErr => !IsOk;\r\n\r\n protected ResultErr(bool isOk, TErr err)\r\n {\r\n IsOk = isOk;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3a38e0722586340c", - "equalIndicator/v1": "1237f2c9bbaa104228be1dee9a6f2800af639a5a6c8b3b036b85468c35e99f69" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'CopyGamePosition' coverage is below the threshold 50%", - "markdown": "Method `CopyGamePosition` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 279, - "startColumn": 18, - "charOffset": 11990, - "charLength": 16, - "snippet": { - "text": "CopyGamePosition" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 277, - "startColumn": 1, - "charOffset": 11908, - "charLength": 152, - "snippet": { - "text": " public RelayCommand CopyGamePositionCommand { get; set; }\r\n\r\n private void CopyGamePosition(object? param)\r\n {\r\n if (Position != null)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "739ad031bccb726a", - "equalIndicator/v1": "12440d7709e69cbe6ec7cd85ec2bff0aea44fb5a1763ab42eaecb33adb254c6a" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ToString' coverage is below the threshold 50%", - "markdown": "Method `ToString` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/RefreshError.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 50, - "startColumn": 28, - "charOffset": 1613, - "charLength": 8, - "snippet": { - "text": "ToString" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 48, - "startColumn": 1, - "charOffset": 1542, - "charLength": 145, - "snippet": { - "text": " public Exception? Exception { get; }\r\n\r\n public override string ToString()\r\n {\r\n var sb = new StringBuilder(Reason.ToString());\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "bb8b54777e9c0680", - "equalIndicator/v1": "12942868d582c3f2f899b8dc5f92bdbcdfc389a228fbe57b4400439f491796b5" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_KnownFlags' coverage is below the threshold 50%", - "markdown": "Method `set_KnownFlags` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 195, - "startColumn": 9, - "charOffset": 8094, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 193, - "startColumn": 1, - "charOffset": 7976, - "charLength": 181, - "snippet": { - "text": " {\r\n get => (ObservableCollection>)GetValue(KnownFlagsDependencyProperty);\r\n set => SetValue(KnownFlagsDependencyProperty, value);\r\n }\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "6175ff6a07312fa3", - "equalIndicator/v1": "12cb8a720e48d09f41cb86c510a4d9ab2b6ee110bf854ee4d306417d06204a63" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_NewSplitItemState' coverage is below the threshold 50%", - "markdown": "Method `get_NewSplitItemState` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 167, - "startColumn": 9, - "charOffset": 5823, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 165, - "startColumn": 1, - "charOffset": 5768, - "charLength": 151, - "snippet": { - "text": " public ItemState NewSplitItemState\r\n {\r\n get => _newSplitItemState;\r\n set => this.SetField(ref _newSplitItemState, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0c19ea8ebf459be9", - "equalIndicator/v1": "12f768396bd1ca2436a56b51691b434ca29e1beb9497d0193b3b11d588aafa57" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'OnItemsSourceChanged' coverage is below the threshold 50%", - "markdown": "Method `OnItemsSourceChanged` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/FilteredComboBox.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 34, - "startColumn": 29, - "charOffset": 1378, - "charLength": 20, - "snippet": { - "text": "OnItemsSourceChanged" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 32, - "startColumn": 1, - "charOffset": 1246, - "charLength": 274, - "snippet": { - "text": " protected TextBox EditableTextBox => (GetTemplateChild(\"PART_EditableTextBox\") as TextBox)!;\r\n \r\n protected override void OnItemsSourceChanged(IEnumerable oldValue, IEnumerable newValue)\r\n {\r\n var newView = CollectionViewSource.GetDefaultView(newValue);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "57250fdf75af5433", - "equalIndicator/v1": "13a800d60ee206269e440116be838e461c77b55411b91ce13295f51dd70fdd7a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'DarkSouls2.DarkSouls2' coverage is below the threshold 50%", - "markdown": "Class `DarkSouls2.DarkSouls2` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls2/DarkSouls2.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 25, - "startColumn": 14, - "charOffset": 972, - "charLength": 10, - "snippet": { - "text": "DarkSouls2" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 23, - "startColumn": 1, - "charOffset": 923, - "charLength": 127, - "snippet": { - "text": "namespace SoulMemory.DarkSouls2;\r\n\r\npublic class DarkSouls2 : IDarkSouls2\r\n{\r\n public int GetInGameTimeMilliseconds() => 0;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a6cbd98d218dedb1", - "equalIndicator/v1": "13b06551f63f51128bf07160749aac47209c99993cac46bc822b7a835f5cfd89" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteInt32' coverage is below the threshold 50%", - "markdown": "Method `WriteInt32` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 279, - "startColumn": 17, - "charOffset": 7319, - "charLength": 10, - "snippet": { - "text": "WriteInt32" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 277, - "startColumn": 1, - "charOffset": 7299, - "charLength": 123, - "snippet": { - "text": "\r\n\r\n public void WriteInt32(long? offset, int value)\r\n {\r\n WriteMemory(offset, BitConverter.GetBytes(value));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "6fe0763fcb06c747", - "equalIndicator/v1": "13d9f8fc24a0e4bea8008276e7d74f5413c8bd8835b7ad0b4755988be6f71b08" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'DrawHorizontal' coverage is below the threshold 50%", - "markdown": "Method `DrawHorizontal` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/SoulComponent.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 195, - "startColumn": 17, - "charOffset": 7063, - "charLength": 14, - "snippet": { - "text": "DrawHorizontal" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 193, - "startColumn": 1, - "charOffset": 6813, - "charLength": 438, - "snippet": { - "text": " #region drawing ===================================================================================================================\r\n public IDictionary ContextMenuControls => new Dictionary();\r\n public void DrawHorizontal(Graphics g, LiveSplitState state, float height, Region clipRegion)\r\n {\r\n //Soulsplitter doesn't draw to livesplit's window, but must implement the full interface.\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ac7a7e91d3ce7b9c", - "equalIndicator/v1": "15c2d2a2f1887da921193bac939a0521beb4b0aa031db57ad020d58e1b936cdd" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_Description' coverage is below the threshold 50%", - "markdown": "Method `set_Description` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/BoolDescriptionViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 26, - "startColumn": 9, - "charOffset": 1026, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 24, - "startColumn": 1, - "charOffset": 981, - "charLength": 138, - "snippet": { - "text": " {\r\n get => _description;\r\n set => this.SetField(ref _description, value);\r\n }\r\n private string _description = \"\";\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5bd825bb47bd7ca0", - "equalIndicator/v1": "15e381d64c7ab6c1a5594648f958fc79c5bf15468054af0ce7c40d6401b7e5f1" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_Children' coverage is below the threshold 50%", - "markdown": "Method `get_Children` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/SplitViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 63, - "startColumn": 72, - "charOffset": 2165, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 61, - "startColumn": 1, - "charOffset": 2039, - "charLength": 188, - "snippet": { - "text": " private EldenRingSplitType _eldenRingSplitType;\r\n\r\n public ObservableCollection Children { get; set; } = [];\r\n\r\n #region ICustomNotifyPropertyChanged\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "58c2931d6ea0e954", - "equalIndicator/v1": "160ec5ab4974d863fa9df747ea2eb2ae2ce8895be500eadab3d0141054d6c899" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'TryResolvePointers' coverage is below the threshold 50%", - "markdown": "Method `TryResolvePointers` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 39, - "startColumn": 43, - "charOffset": 1592, - "charLength": 18, - "snippet": { - "text": "TryResolvePointers" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 37, - "startColumn": 1, - "charOffset": 1471, - "charLength": 232, - "snippet": { - "text": " /// \r\n /// \r\n public static ResultErr TryResolvePointers(TreeBuilder treeBuilder, Process? process)\r\n {\r\n if (process?.MainModule == null)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a71aa6d7ad4306f7", - "equalIndicator/v1": "16a2aab9384bcd3f7b5aad9ee7216a866e253f3070e4eb17f0d60b80d126c503" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'Memory.MemoryExtensions' coverage is below the threshold 50%", - "markdown": "Class `Memory.MemoryExtensions` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 23, - "startColumn": 21, - "charOffset": 925, - "charLength": 16, - "snippet": { - "text": "MemoryExtensions" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 21, - "startColumn": 1, - "charOffset": 864, - "charLength": 103, - "snippet": { - "text": "namespace SoulMemory.MemoryV2.Memory;\r\n\r\npublic static class MemoryExtensions\r\n{\r\n #region Pointers\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c94440723e421cba", - "equalIndicator/v1": "16b5001c7b063f5ee573d4a5d686fa53fa252b3f414d2a3f5a605afdb191dbee" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_NewSplitItemPickup' coverage is below the threshold 50%", - "markdown": "Method `get_NewSplitItemPickup` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 247, - "startColumn": 9, - "charOffset": 6909, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 245, - "startColumn": 1, - "charOffset": 6851, - "charLength": 110, - "snippet": { - "text": " public ItemPickup? NewSplitItemPickup\r\n {\r\n get => _newSplitItemPickup;\r\n set\r\n {\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "fdc6a3c6960f159e", - "equalIndicator/v1": "16c2f01892c94fe42850a691160f8bb63c4ad32bed596f7ad56345115996edcd" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteItemLotParam' coverage is below the threshold 50%", - "markdown": "Method `WriteItemLotParam` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/DarkSouls1.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 46, - "startColumn": 17, - "charOffset": 2592, - "charLength": 17, - "snippet": { - "text": "WriteItemLotParam" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 44, - "startColumn": 1, - "charOffset": 2301, - "charLength": 516, - "snippet": { - "text": " public int GetSaveFileGameTimeMilliseconds(string path, int slot) => _darkSouls1?.GetSaveFileGameTimeMilliseconds(path, slot) ?? 0;\r\n public void WriteWeaponDescription(uint weaponId, string description) => _darkSouls1?.WriteWeaponDescription(weaponId, description);\r\n public void WriteItemLotParam(int rowId, Action accessor) => _darkSouls1?.WriteItemLotParam(rowId, accessor);\r\n public void SetLoadingScreenItem(int index, uint item) => _darkSouls1?.SetLoadingScreenItem(index, item);\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7b153997acdd0c82", - "equalIndicator/v1": "17033027d89514259620ca0182fe708648f81a830dc9dabac8326852505f01db" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'OnDropModSettingsChanged' coverage is below the threshold 50%", - "markdown": "Method `OnDropModSettingsChanged` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 61, - "startColumn": 18, - "charOffset": 1979, - "charLength": 24, - "snippet": { - "text": "OnDropModSettingsChanged" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 59, - "startColumn": 1, - "charOffset": 1898, - "charLength": 275, - "snippet": { - "text": " [XmlIgnore]\r\n public bool DropModRequestInitialisation;\r\n private void OnDropModSettingsChanged(DropModType oldValue, DropModType newValue)\r\n {\r\n //When dropmod is turned off, the game should be closed to ensure no modifications are left behind in memory\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "53ebbc55bd507cfa", - "equalIndicator/v1": "174fc9679a20657c76c37dfaf6ae511d6407de73e74c438c6b4da6dbaae80f64" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetBonfireState' coverage is below the threshold 50%", - "markdown": "Method `GetBonfireState` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 280, - "startColumn": 25, - "charOffset": 10162, - "charLength": 15, - "snippet": { - "text": "GetBonfireState" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 278, - "startColumn": 1, - "charOffset": 10129, - "charLength": 142, - "snippet": { - "text": " }\r\n\r\n public BonfireState GetBonfireState(Bonfire bonfire)\r\n {\r\n var element = _netBonfireDb.CreatePointerFromAddress(0x28);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f829b12a3764c565", - "equalIndicator/v1": "17ab21127a93ed3ace1febd7e80cb558219ff1d18dbd3cac767a20bd3a9f201c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_TimingType' coverage is below the threshold 50%", - "markdown": "Method `set_TimingType` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/HierarchicalViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 34, - "startColumn": 9, - "charOffset": 1313, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 32, - "startColumn": 1, - "charOffset": 1269, - "charLength": 134, - "snippet": { - "text": " {\r\n get => _timingType;\r\n set => this.SetField(ref _timingType, value);\r\n }\r\n private TimingType _timingType;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "66059483d6b53cd6", - "equalIndicator/v1": "17b203ba5823e54f359ef16c4c6f1194a9c479de0d8f3af854261ee1c3e7cd71" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetSteamId3' coverage is below the threshold 50%", - "markdown": "Method `GetSteamId3` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 427, - "startColumn": 17, - "charOffset": 14638, - "charLength": 11, - "snippet": { - "text": "GetSteamId3" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 425, - "startColumn": 1, - "charOffset": 14557, - "charLength": 144, - "snippet": { - "text": " /// SteamID3 used for savefile location\r\n /// \r\n private int GetSteamId3()\r\n {\r\n string name = \"steam_api64.dll\";\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "8c4e68b36b87f024", - "equalIndicator/v1": "17e82b0544ed85e3cfc3537fcd3cb4a658179b4f3957b8be7970d9bfbf0bf6e5" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'IsLoadingScreenVisible' coverage is below the threshold 50%", - "markdown": "Method `IsLoadingScreenVisible` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 69, - "startColumn": 17, - "charOffset": 2662, - "charLength": 22, - "snippet": { - "text": "IsLoadingScreenVisible" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 67, - "startColumn": 1, - "charOffset": 2536, - "charLength": 206, - "snippet": { - "text": " public void WriteInGameTimeMilliseconds(int milliseconds) => _fd4Time.WriteInt32(0x114, milliseconds);\r\n\r\n public bool IsLoadingScreenVisible()\r\n {\r\n var value = _menuMan.ReadInt32(0x8e4);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "81bca1795709beb0", - "equalIndicator/v1": "180826f14558c0c9585fe80295b64b19236e8c364efb48f1ef1ba3d09129490a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteBool' coverage is below the threshold 50%", - "markdown": "Method `WriteBool` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 296, - "startColumn": 17, - "charOffset": 7781, - "charLength": 9, - "snippet": { - "text": "WriteBool" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 294, - "startColumn": 1, - "charOffset": 7756, - "charLength": 128, - "snippet": { - "text": " }\r\n\r\n public void WriteBool(long? offset, bool value)\r\n {\r\n WriteMemory(offset, BitConverter.GetBytes(value));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "476d998049286823", - "equalIndicator/v1": "182b863de80861351bb879ba32eddc76f4857b6998c661900f6b1f3d166ad763" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_Area' coverage is below the threshold 50%", - "markdown": "Method `get_Area` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/PositionViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 31, - "startColumn": 9, - "charOffset": 1101, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 29, - "startColumn": 1, - "charOffset": 1064, - "charLength": 123, - "snippet": { - "text": " public byte Area\r\n {\r\n get => Position.Area;\r\n set => this.SetField(ref Position.Area, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0c058ae3f4926d90", - "equalIndicator/v1": "186c092a6ea873b365dbf9335bb5b9779091008dd58ec67936dc4b8e0047ac96" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetSaveFileLocation' coverage is below the threshold 50%", - "markdown": "Method `GetSaveFileLocation` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/DarkSouls1.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 43, - "startColumn": 20, - "charOffset": 2239, - "charLength": 19, - "snippet": { - "text": "GetSaveFileLocation" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 41, - "startColumn": 1, - "charOffset": 2013, - "charLength": 562, - "snippet": { - "text": " public bool AreCreditsRolling() => _darkSouls1?.AreCreditsRolling() ?? false;\r\n public BonfireState GetBonfireState(Bonfire bonfire) => _darkSouls1?.GetBonfireState(bonfire) ?? BonfireState.Unknown;\r\n public string? GetSaveFileLocation() => _darkSouls1?.GetSaveFileLocation();\r\n public int GetSaveFileGameTimeMilliseconds(string path, int slot) => _darkSouls1?.GetSaveFileGameTimeMilliseconds(path, slot) ?? 0;\r\n public void WriteWeaponDescription(uint weaponId, string description) => _darkSouls1?.WriteWeaponDescription(weaponId, description);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0b40696a1d4aceb3", - "equalIndicator/v1": "189ff8eab8958336823afcb945a56a03e64040de9bd7d558110a2afffa795197" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ApplyNoLogo' coverage is below the threshold 50%", - "markdown": "Method `ApplyNoLogo` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/EldenRing.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 352, - "startColumn": 18, - "charOffset": 11950, - "charLength": 11, - "snippet": { - "text": "ApplyNoLogo" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 350, - "startColumn": 1, - "charOffset": 11924, - "charLength": 86, - "snippet": { - "text": " }\r\n\r\n private void ApplyNoLogo()\r\n {\r\n _process!.NtSuspendProcess();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7d3c79622ed84a61", - "equalIndicator/v1": "1915c8c2f1e395a3da1e534998b82ad30deb0904e220fa7057298a3355ddd701" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'PointerTreeBuilder.PointerTreeBuilder' coverage is below the threshold 50%", - "markdown": "Class `PointerTreeBuilder.PointerTreeBuilder` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerTreeBuilder.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 27, - "startColumn": 14, - "charOffset": 1135, - "charLength": 18, - "snippet": { - "text": "PointerTreeBuilder" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 25, - "startColumn": 1, - "charOffset": 1055, - "charLength": 143, - "snippet": { - "text": "/// Resolve the scans against an IMemory instance\r\n/// \r\npublic class PointerTreeBuilder\r\n{\r\n public List Tree = [];\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0573ee650c063121", - "equalIndicator/v1": "193baa0f0e1f61fec2be31eb7088925c77b5372a62bedc65d783e44c858fab74" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadInventory' coverage is below the threshold 50%", - "markdown": "Method `ReadInventory` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/EldenRing.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 379, - "startColumn": 23, - "charOffset": 12573, - "charLength": 13, - "snippet": { - "text": "ReadInventory" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 377, - "startColumn": 1, - "charOffset": 12538, - "charLength": 97, - "snippet": { - "text": " }\r\n \r\n public List ReadInventory()\r\n {\r\n var items = new List();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1268ba7979f6a589", - "equalIndicator/v1": "1979c118cb0e800cad8fe8b78a10fdfa51d613e81107cf414b71017d86cf85cc" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_WriteEnabled' coverage is below the threshold 50%", - "markdown": "Method `set_WriteEnabled` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/BaseParam.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 101, - "startColumn": 37, - "charOffset": 3958, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 99, - "startColumn": 1, - "charOffset": 3741, - "charLength": 335, - "snippet": { - "text": " #region Writing fields ======================================================================================================================================================\r\n\r\n public bool WriteEnabled { get; set; }\r\n\r\n protected void WriteParamField(ref T field, T value, [CallerMemberName] string? propertyName = null)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0a5cf19596380378", - "equalIndicator/v1": "198728c148ad9ab3c8414b821d62aec649c84b8bb0f3ff32cca7667ec942f39b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'SplitsTreeView_OnSelectedItemChanged' coverage is below the threshold 50%", - "markdown": "Method `SplitsTreeView_OnSelectedItemChanged` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 48, - "startColumn": 18, - "charOffset": 1557, - "charLength": 36, - "snippet": { - "text": "SplitsTreeView_OnSelectedItemChanged" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 46, - "startColumn": 1, - "charOffset": 1531, - "charLength": 182, - "snippet": { - "text": " }\r\n\r\n private void SplitsTreeView_OnSelectedItemChanged(object sender, RoutedPropertyChangedEventArgs e)\r\n {\r\n GetEldenRingViewModel().SelectedSplit = null;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5fb01787d8f4d06f", - "equalIndicator/v1": "1a22a478c26cfb2904217425f7a03f13a5e5dbbc6cb87b7fd68df20bce9feb21" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetProcess' coverage is below the threshold 50%", - "markdown": "Method `GetProcess` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Sekiro/Sekiro.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 46, - "startColumn": 21, - "charOffset": 2001, - "charLength": 10, - "snippet": { - "text": "GetProcess" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 44, - "startColumn": 1, - "charOffset": 1818, - "charLength": 346, - "snippet": { - "text": " #region Refresh/init/reset ================================================================================================================================\r\n\r\n public Process? GetProcess() => _process;\r\n \r\n public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, \"sekiro\", InitPointers, ResetPointers);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ec39a3a1db6ea8a2", - "equalIndicator/v1": "1a94fb9ada1f8000a28fc3feb6101aae13706c84ab869de48974d82f15686701" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'RemoveSplit' coverage is below the threshold 50%", - "markdown": "Method `RemoveSplit` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/BaseViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 135, - "startColumn": 18, - "charOffset": 4161, - "charLength": 11, - "snippet": { - "text": "RemoveSplit" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 133, - "startColumn": 1, - "charOffset": 4135, - "charLength": 87, - "snippet": { - "text": " }\r\n\r\n private void RemoveSplit()\r\n {\r\n SplitsViewModel.RemoveSplit();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f3b56a4e8b54c8c8", - "equalIndicator/v1": "1ad716e5094a5b8fd4ef7140ad98363209590348263228b66a06c194c455e722" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ToString' coverage is below the threshold 50%", - "markdown": "Method `ToString` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/ItemPickupViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 33, - "startColumn": 28, - "charOffset": 1209, - "charLength": 8, - "snippet": { - "text": "ToString" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 31, - "startColumn": 1, - "charOffset": 1173, - "charLength": 76, - "snippet": { - "text": " }\r\n\r\n public override string ToString()\r\n {\r\n return Name;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e56c83148eff8eb9", - "equalIndicator/v1": "1aeed4585c6a4ac21ffef550a21349d67740b705f159e1a80d6e319b15e5c17a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ResetInventoryIndices' coverage is below the threshold 50%", - "markdown": "Method `ResetInventoryIndices` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 323, - "startColumn": 17, - "charOffset": 11393, - "charLength": 21, - "snippet": { - "text": "ResetInventoryIndices" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 321, - "startColumn": 1, - "charOffset": 11325, - "charLength": 137, - "snippet": { - "text": " //Imported from CapitaineToinon. Thanks!\r\n \r\n public void ResetInventoryIndices()\r\n {\r\n for (int i = 0; i < 20; i++)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a7e4fb22d2123451", - "equalIndicator/v1": "1b0fc5662f155300e7c3cf0874cf2366c616a53e0f555069113406ec1ba44dc3" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'Update' coverage is below the threshold 50%", - "markdown": "Method `Update` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls2Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 84, - "startColumn": 36, - "charOffset": 2516, - "charLength": 6, - "snippet": { - "text": "Update" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 82, - "startColumn": 1, - "charOffset": 2477, - "charLength": 149, - "snippet": { - "text": "\r\n\r\n public ResultErr Update(MainViewModel mainViewModel)\r\n {\r\n _darkSouls2ViewModel = mainViewModel.DarkSouls2ViewModel;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "64d827ecf326acda", - "equalIndicator/v1": "1b5911f9ca7c5701bb3c062d9cd0c15c8a22c39a577c1806aafa63fdade3e61c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'UpdateAutoSplitter' coverage is below the threshold 50%", - "markdown": "Method `UpdateAutoSplitter` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/EldenRingSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 241, - "startColumn": 17, - "charOffset": 7920, - "charLength": 18, - "snippet": { - "text": "UpdateAutoSplitter" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 239, - "startColumn": 1, - "charOffset": 7895, - "charLength": 101, - "snippet": { - "text": " }\r\n\r\n public void UpdateAutoSplitter()\r\n {\r\n if (_timerState != TimerState.Running)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3a614ab65175b943", - "equalIndicator/v1": "1b7b858839d77b15e40f70c62bb8921aae6ec1d9cd832b69e49e98c9e69106d0" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Constructor 'RefreshError' coverage is below the threshold 50%", - "markdown": "Constructor `RefreshError` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/RefreshError.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 34, - "startColumn": 12, - "charOffset": 1176, - "charLength": 12, - "snippet": { - "text": "RefreshError" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 32, - "startColumn": 1, - "charOffset": 1156, - "charLength": 109, - "snippet": { - "text": " }\r\n\r\n public RefreshError(RefreshErrorReason reason, string message)\r\n {\r\n Reason = reason;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0eaaad374d5fc387", - "equalIndicator/v1": "1b94f44d58d7fe3b34bc891de3740175417ea6e5ea176ef18bd31952ea3e73bb" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetProcess' coverage is below the threshold 50%", - "markdown": "Method `GetProcess` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 68, - "startColumn": 21, - "charOffset": 3030, - "charLength": 10, - "snippet": { - "text": "GetProcess" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 66, - "startColumn": 1, - "charOffset": 2943, - "charLength": 249, - "snippet": { - "text": " private List _weaponDescriptionsTable = [];\r\n\r\n public Process? GetProcess() => _process;\r\n\r\n public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, \"darksouls\", InitPointers, ResetPointers);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1e42cb624afab2d4", - "equalIndicator/v1": "1bd170735ba28d9ca09442c61ec59e4d31c5b7ca3d713dc88a0f107d3211d18d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'SetBitfieldValue' coverage is below the threshold 50%", - "markdown": "Method `SetBitfieldValue` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/BaseParam.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 176, - "startColumn": 20, - "charOffset": 6764, - "charLength": 16, - "snippet": { - "text": "SetBitfieldValue" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 174, - "startColumn": 1, - "charOffset": 6736, - "charLength": 226, - "snippet": { - "text": " }\r\n\r\n protected void SetBitfieldValue(ref T field, T value, [CallerMemberName] string? propertyName = null)\r\n {\r\n var bitfield = _paramBitfieldPropertyCache.First(i => i.propertyInfo.Name == propertyName);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5a09b3bd58ab46d0", - "equalIndicator/v1": "1be24e1d71b8bec61c3433bd391a91b711ec51d6d0ec1d98bae5471656b67e74" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetPlayerHealth' coverage is below the threshold 50%", - "markdown": "Method `GetPlayerHealth` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 172, - "startColumn": 16, - "charOffset": 6819, - "charLength": 15, - "snippet": { - "text": "GetPlayerHealth" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 170, - "startColumn": 1, - "charOffset": 6672, - "charLength": 262, - "snippet": { - "text": " public Vector3f GetPosition() => new(_playerIns.ReadFloat(0xc50), _playerIns.ReadFloat(0xC58), _playerIns.ReadFloat(0xC54));\r\n\r\n public int GetPlayerHealth() => _playerIns.ReadInt32(0x2d4) ;\r\n\r\n public bool IsPlayerLoaded() => !_playerIns.IsNullPtr();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "25a2d9bbd668fae2", - "equalIndicator/v1": "1c12f25b94e1ad3cd63e2294da153398b7e9760af3b02704d1547fbc7686f7fc" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'Parameters.ParamTableEntry' coverage is below the threshold 50%", - "markdown": "Class `Parameters.ParamTableEntry` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/ParamTableEntry.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 19, - "startColumn": 14, - "charOffset": 856, - "charLength": 15, - "snippet": { - "text": "ParamTableEntry" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 17, - "startColumn": 1, - "charOffset": 807, - "charLength": 101, - "snippet": { - "text": "namespace SoulMemory.Parameters;\r\n\r\npublic class ParamTableEntry\r\n{\r\n public int Id { get; set; }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "24be31202c5e195f", - "equalIndicator/v1": "1c420150863013da5b449e92f02bbae30c18c1ed1dcb7ef70ae8edeb6ccba8ad" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Constructor 'PointerAppender' coverage is below the threshold 50%", - "markdown": "Constructor `PointerAppender` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerAppender.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 24, - "startColumn": 14, - "charOffset": 991, - "charLength": 15, - "snippet": { - "text": "PointerAppender" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 22, - "startColumn": 1, - "charOffset": 927, - "charLength": 149, - "snippet": { - "text": "{\r\n private readonly PointerNode _pointerNode;\r\n internal PointerAppender(PointerNode pointerNode)\r\n {\r\n _pointerNode = pointerNode;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "fad5ad6680b390e1", - "equalIndicator/v1": "1cab1adb9339605ce365359c9a4af78f6afc1e7c6abe25d34579c8916c520c22" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_BadgeVisibilityInverse' coverage is below the threshold 50%", - "markdown": "Method `get_BadgeVisibilityInverse` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/MainViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 271, - "startColumn": 9, - "charOffset": 8527, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 269, - "startColumn": 1, - "charOffset": 8466, - "charLength": 167, - "snippet": { - "text": " public Visibility BadgeVisibilityInverse\r\n {\r\n get => _badgeVisibilityInverse;\r\n set => this.SetField(ref _badgeVisibilityInverse, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "415bb9f306b918ee", - "equalIndicator/v1": "1cc9c24b78ac030d4dc7ceac150d4b8494d4c72be7d8cccb17fd5bd62315173b" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteInt16' coverage is below the threshold 50%", - "markdown": "Method `WriteInt16` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/IMemory.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 120, - "startColumn": 24, - "charOffset": 3793, - "charLength": 10, - "snippet": { - "text": "WriteInt16" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 118, - "startColumn": 1, - "charOffset": 3663, - "charLength": 295, - "snippet": { - "text": " public static void WriteBytes(this IMemory memory, byte[] value) => memory.WriteBytes(null, value);\r\n\r\n public static void WriteInt16(this IMemory memory, short value) => memory.WriteInt16(null, value);\r\n\r\n public static void WriteInt16(this IMemory memory, long? offset, short value)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3e9f348c7eba32a0", - "equalIndicator/v1": "1d55d0313109bb1d9b8c25efe233e83ad3d50b4980eaa096777bf277fe3f6713" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_NewSplitFlag' coverage is below the threshold 50%", - "markdown": "Method `set_NewSplitFlag` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 180, - "startColumn": 9, - "charOffset": 5227, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 178, - "startColumn": 1, - "charOffset": 5181, - "charLength": 115, - "snippet": { - "text": " {\r\n get => _newSplitFlag;\r\n set\r\n {\r\n this.SetField(ref _newSplitFlag, value);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "6a8dc87314199535", - "equalIndicator/v1": "1d5c20b87857aeb38adff4f2d18cf6297e904ebca0023b307090c7bae97d2e2a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'SetViewModel' coverage is below the threshold 50%", - "markdown": "Method `SetViewModel` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/EldenRingSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 50, - "startColumn": 17, - "charOffset": 1776, - "charLength": 12, - "snippet": { - "text": "SetViewModel" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 48, - "startColumn": 1, - "charOffset": 1751, - "charLength": 115, - "snippet": { - "text": " }\r\n\r\n public void SetViewModel(MainViewModel mainViewModel)\r\n {\r\n _mainViewModel = mainViewModel;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "94b11f16e25ed60c", - "equalIndicator/v1": "1d8ad0697f289441f2f43b38227ea240fd7fb85cc21888ed43b7b33f3e9cad8e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'IsLoading' coverage is below the threshold 50%", - "markdown": "Method `IsLoading` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls2/DarkSouls2.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 31, - "startColumn": 17, - "charOffset": 1254, - "charLength": 9, - "snippet": { - "text": "IsLoading" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 29, - "startColumn": 1, - "charOffset": 1090, - "charLength": 417, - "snippet": { - "text": " public Process? GetProcess() => _darkSouls2?.GetProcess();\r\n public Vector3f GetPosition() => _darkSouls2?.GetPosition() ?? new Vector3f();\r\n public bool IsLoading() => _darkSouls2?.IsLoading() ?? false;\r\n public bool ReadEventFlag(uint eventFlagId) => _darkSouls2?.ReadEventFlag(eventFlagId) ?? false;\r\n public int GetBossKillCount(BossType bossType) => _darkSouls2?.GetBossKillCount(bossType) ?? 0;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "94c17bf67b24dc27", - "equalIndicator/v1": "1d9e9cef5b2e2cb8731b43c2f35a92bc0667b59d0eeb69cadbaf18c8de679df2" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_SplitType' coverage is below the threshold 50%", - "markdown": "Method `set_SplitType` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/HierarchicalViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 62, - "startColumn": 9, - "charOffset": 2091, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 60, - "startColumn": 1, - "charOffset": 2048, - "charLength": 140, - "snippet": { - "text": " {\r\n get => _splitType;\r\n set => this.SetField(ref _splitType, value);\r\n }\r\n private DarkSouls2SplitType _splitType;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5ffb2f4e18f5a1ba", - "equalIndicator/v1": "1daf55b84ed856def429aebf53312a8c6fd10c446671935fd600d50d0a417b62" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetbitfieldValue' coverage is below the threshold 50%", - "markdown": "Method `GetbitfieldValue` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/BaseParam.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 156, - "startColumn": 17, - "charOffset": 6030, - "charLength": 16, - "snippet": { - "text": "GetbitfieldValue" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 154, - "startColumn": 1, - "charOffset": 5838, - "charLength": 377, - "snippet": { - "text": " #region Bitfields ======================================================================================================================================================\r\n\r\n protected T GetbitfieldValue(T field, [CallerMemberName] string? propertyName = null)\r\n {\r\n var bitfield = _paramBitfieldPropertyCache.First(i => i.propertyInfo.Name == propertyName);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3c55446d8d7ff54e", - "equalIndicator/v1": "1e02e4b77fdc312f73c69ab5ef7b6968256edb7cb41fa234a2b21b00edfc65fb" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_SelectedBoss' coverage is below the threshold 50%", - "markdown": "Method `get_SelectedBoss` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 306, - "startColumn": 9, - "charOffset": 12684, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 304, - "startColumn": 1, - "charOffset": 12638, - "charLength": 132, - "snippet": { - "text": " public Enum? SelectedBoss\r\n {\r\n get => _selectedBoss;\r\n set => this.SetField(ref _selectedBoss, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0fa614607f809278", - "equalIndicator/v1": "1e2d6f1c7badd06dd3c172110ff52e3f459da32db69330d7a165717088bf0eed" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WndProc' coverage is below the threshold 50%", - "markdown": "Method `WndProc` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Hotkeys/GlobalHotKey.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 104, - "startColumn": 29, - "charOffset": 3257, - "charLength": 7, - "snippet": { - "text": "WndProc" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 102, - "startColumn": 1, - "charOffset": 3220, - "charLength": 121, - "snippet": { - "text": " }\r\n\r\n protected override void WndProc(ref Message windowMessage)\r\n {\r\n base.WndProc(ref windowMessage);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "6c43f4a1a84c471d", - "equalIndicator/v1": "1f5f4f818661f87d82c8474564c9d1da250bc083b2807c33d9961862b7f85f65" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'OnReset' coverage is below the threshold 50%", - "markdown": "Method `OnReset` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/EldenRingSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 146, - "startColumn": 18, - "charOffset": 4978, - "charLength": 7, - "snippet": { - "text": "OnReset" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 144, - "startColumn": 1, - "charOffset": 4952, - "charLength": 102, - "snippet": { - "text": " }\r\n\r\n private void OnReset(object sender, TimerPhase timerPhase)\r\n {\r\n ResetTimer();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5143695168c42509", - "equalIndicator/v1": "1f65cf28d398c3f3bda6e2a9b0a69c8feb8d4751eb99e67741b648cc687791c8" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'InternalReset' coverage is below the threshold 50%", - "markdown": "Method `InternalReset` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/BaseSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 72, - "startColumn": 18, - "charOffset": 2467, - "charLength": 13, - "snippet": { - "text": "InternalReset" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 70, - "startColumn": 1, - "charOffset": 2441, - "charLength": 133, - "snippet": { - "text": " }\r\n\r\n private void InternalReset(object sender, TimerPhase timerPhase)\r\n {\r\n _timerState = TimerState.WaitForStart;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "bc9040e205c1abc8", - "equalIndicator/v1": "1fb272bd66fb153f5454d18db51f80463476d36757facd52982912f14afadaa9" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'DarkSouls2.HierarchicalSplitViewModel' coverage is below the threshold 50%", - "markdown": "Class `DarkSouls2.HierarchicalSplitViewModel` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/HierarchicalViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 87, - "startColumn": 14, - "charOffset": 2756, - "charLength": 26, - "snippet": { - "text": "HierarchicalSplitViewModel" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 85, - "startColumn": 1, - "charOffset": 2681, - "charLength": 153, - "snippet": { - "text": " XmlInclude(typeof(Attribute)), \r\n XmlInclude(typeof(uint))]\r\npublic class HierarchicalSplitViewModel : ICustomNotifyPropertyChanged\r\n{\r\n [XmlIgnore]\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b3fe2b156561ae95", - "equalIndicator/v1": "1fcc3d749bba802871aa581eb6eced6af0d75e972f4d8c21aa6fbb1a5bf8e201" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetProcess' coverage is below the threshold 50%", - "markdown": "Method `GetProcess` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 89, - "startColumn": 21, - "charOffset": 3588, - "charLength": 10, - "snippet": { - "text": "GetProcess" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 87, - "startColumn": 1, - "charOffset": 3559, - "charLength": 201, - "snippet": { - "text": " }\r\n\r\n public Process? GetProcess() => _process;\r\n\r\n public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, \"darksoulsremastered\", InitPointers, ResetPointers);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4dc0a5ccf38b80ba", - "equalIndicator/v1": "1fcd445cfac6d048f6e98288fecd034e259aac19f9bf5c1172bba476d06cc610" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadInt64' coverage is below the threshold 50%", - "markdown": "Method `ReadInt64` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 209, - "startColumn": 17, - "charOffset": 5498, - "charLength": 9, - "snippet": { - "text": "ReadInt64" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 207, - "startColumn": 1, - "charOffset": 5473, - "charLength": 127, - "snippet": { - "text": " }\r\n\r\n public long ReadInt64(long? offset = null)\r\n {\r\n return BitConverter.ToInt64(ReadMemory(offset, 8), 0);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "68a60fc8027f67bd", - "equalIndicator/v1": "2058b10d2789974a7d3e153956ad776a057486861e04c022ab69b03d0bac9543" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_Version' coverage is below the threshold 50%", - "markdown": "Method `get_Version` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/VersionAttribute.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 23, - "startColumn": 29, - "charOffset": 939, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 21, - "startColumn": 1, - "charOffset": 849, - "charLength": 161, - "snippet": { - "text": "public class VersionAttribute(string version) : Attribute\r\n{\r\n public string Version { get; } = version;\r\n public Version GetVersion() => new(Version);\r\n}\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "eb076390cffc6108", - "equalIndicator/v1": "20a4b158ea55f419ef13bf90d0129c0cb4b9fed29278f40ec884265abbb259e5" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_ModuleMemorySize' coverage is below the threshold 50%", - "markdown": "Method `set_ModuleMemorySize` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Process/ProcessWrapperModule.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 27, - "startColumn": 40, - "charOffset": 1119, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 25, - "startColumn": 1, - "charOffset": 984, - "charLength": 224, - "snippet": { - "text": " public string FileName { get; set; } = null!;\r\n public IntPtr BaseAddress { get; set; }\r\n public int ModuleMemorySize { get; set; }\r\n\r\n public static ProcessWrapperModule FromProcessModule(ProcessModule module)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "21b7b88cde8d954a", - "equalIndicator/v1": "20e181dfee3361c5ff350eab2861a6d75545d13e465cd5f263adf8f6a85e17fa" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetInGameTimeMilliseconds' coverage is below the threshold 50%", - "markdown": "Method `GetInGameTimeMilliseconds` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/EldenRing.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 602, - "startColumn": 16, - "charOffset": 25077, - "charLength": 25, - "snippet": { - "text": "GetInGameTimeMilliseconds" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 600, - "startColumn": 1, - "charOffset": 25038, - "charLength": 108, - "snippet": { - "text": "\r\n #region Timeable\r\n public int GetInGameTimeMilliseconds()\r\n {\r\n return _igt.ReadInt32();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "062681b7acf40617", - "equalIndicator/v1": "20f313827bd161ae650cf84559c023da5592284613d764b5418699ca02e7e64f" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_VisibleItemSplit' coverage is below the threshold 50%", - "markdown": "Method `get_VisibleItemSplit` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 211, - "startColumn": 9, - "charOffset": 5942, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 209, - "startColumn": 1, - "charOffset": 5893, - "charLength": 143, - "snippet": { - "text": " public bool VisibleItemSplit\r\n {\r\n get => _visibleItemSplit;\r\n set => this.SetField(ref _visibleItemSplit, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "6b87b747e5c09298", - "equalIndicator/v1": "20fe1689e3e4570d9e1d438c9ab7f24de574c7cfbc2cdbd0ceea695246ad8dd7" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'StartTimer' coverage is below the threshold 50%", - "markdown": "Method `StartTimer` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls3Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 167, - "startColumn": 18, - "charOffset": 5194, - "charLength": 10, - "snippet": { - "text": "StartTimer" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 165, - "startColumn": 1, - "charOffset": 5168, - "charLength": 89, - "snippet": { - "text": " }\r\n\r\n private void StartTimer()\r\n {\r\n _timerState = TimerState.Running;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0558d241515ef772", - "equalIndicator/v1": "217067bde9e09c9bbd0536696e095a962c15b23c45d1b28b8b85edec64bb957c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_SelectedSplitType' coverage is below the threshold 50%", - "markdown": "Method `set_SelectedSplitType` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 300, - "startColumn": 9, - "charOffset": 12515, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 298, - "startColumn": 1, - "charOffset": 12464, - "charLength": 171, - "snippet": { - "text": " {\r\n get => _selectedSplitType;\r\n set => this.SetField(ref _selectedSplitType, value);\r\n }\r\n private SplitType _selectedSplitType = SplitType.Boss;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "8acefccdf748f00b", - "equalIndicator/v1": "222b2c71f76280bbfa0e500e45c7301ae5165a822996db2737b7d7a51bc1d871" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ResetPointers' coverage is below the threshold 50%", - "markdown": "Method `ResetPointers` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 129, - "startColumn": 18, - "charOffset": 5528, - "charLength": 13, - "snippet": { - "text": "ResetPointers" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 127, - "startColumn": 1, - "charOffset": 5498, - "charLength": 80, - "snippet": { - "text": " }\r\n \r\n private void ResetPointers()\r\n {\r\n _gameMan.Clear();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4d94e2ccd70ee909", - "equalIndicator/v1": "224d9d213a516a88d21b3974ab0502874c2d69afa7fc10f956337ff2d4b02877" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_Y' coverage is below the threshold 50%", - "markdown": "Method `set_Y` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/PositionViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 63, - "startColumn": 9, - "charOffset": 1760, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 61, - "startColumn": 1, - "charOffset": 1717, - "charLength": 97, - "snippet": { - "text": " {\r\n get => Position.Y;\r\n set => this.SetField(ref Position.Y, value);\r\n }\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4574a1e02ff2f7e0", - "equalIndicator/v1": "226dbda77e7c3b2401192aa2a1a4f159556246d0aa77a30b1117f3e963e52690" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_Children' coverage is below the threshold 50%", - "markdown": "Method `set_Children` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/SplitViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 36, - "startColumn": 81, - "charOffset": 1396, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 34, - "startColumn": 1, - "charOffset": 1277, - "charLength": 176, - "snippet": { - "text": " private TimingType _timingType;\r\n\r\n public ObservableCollection Children { get; set; } = [];\r\n\r\n #region ICustomNotifyPropertyChanged\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b99a902293d534e4", - "equalIndicator/v1": "2292ef83cf15ea93bb51999a655782b87baded31c9178d804a24b6c5cdfb8c6a" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteInGameTimeMilliseconds' coverage is below the threshold 50%", - "markdown": "Method `WriteInGameTimeMilliseconds` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/EldenRing.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 606, - "startColumn": 17, - "charOffset": 25170, - "charLength": 27, - "snippet": { - "text": "WriteInGameTimeMilliseconds" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 604, - "startColumn": 1, - "charOffset": 25113, - "charLength": 150, - "snippet": { - "text": " return _igt.ReadInt32();\r\n }\r\n public void WriteInGameTimeMilliseconds(int milliseconds)\r\n {\r\n _igt.WriteInt32(milliseconds);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "613bc5fc612d5e44", - "equalIndicator/v1": "22f4acf6878968ee641a717895a533907be8bcfeb4aac14b5573985efcc1ae3e" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'Dispose' coverage is below the threshold 50%", - "markdown": "Method `Dispose` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/SoulComponent.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 214, - "startColumn": 17, - "charOffset": 7914, - "charLength": 7, - "snippet": { - "text": "Dispose" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 212, - "startColumn": 1, - "charOffset": 7825, - "charLength": 130, - "snippet": { - "text": " public float PaddingLeft => 0;\r\n public float PaddingRight => 0;\r\n public void Dispose()\r\n {\r\n Dispose(true);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5cf431b0d3d16263", - "equalIndicator/v1": "22fae90723fd19f17f741a62ecaadef832283ef779fba67716e55f12cb2ec747" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'Dispose' coverage is below the threshold 50%", - "markdown": "Method `Dispose` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls2Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 74, - "startColumn": 28, - "charOffset": 2294, - "charLength": 7, - "snippet": { - "text": "Dispose" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 72, - "startColumn": 1, - "charOffset": 2258, - "charLength": 91, - "snippet": { - "text": " }\r\n\r\n protected virtual void Dispose(bool disposing)\r\n {\r\n if (disposing)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ca23a882eb2021cf", - "equalIndicator/v1": "23807c28b9adc03ea47fe5133fcb53000e5e3fb1b53d10709294d4a5659e5461" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'InvokePropertyChanged' coverage is below the threshold 50%", - "markdown": "Method `InvokePropertyChanged` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/HierarchicalViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 105, - "startColumn": 17, - "charOffset": 3231, - "charLength": 21, - "snippet": { - "text": "InvokePropertyChanged" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 103, - "startColumn": 1, - "charOffset": 3149, - "charLength": 216, - "snippet": { - "text": " public event PropertyChangedEventHandler? PropertyChanged;\r\n\r\n public void InvokePropertyChanged(string propertyName)\r\n {\r\n PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "88cf5548d9d9659f", - "equalIndicator/v1": "23c02177c73a22f5991fde33f08ec3d78bb6463e5d5f55397fd95e6351bff2ee" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_IsOk' coverage is below the threshold 50%", - "markdown": "Method `get_IsOk` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Result.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 219, - "startColumn": 24, - "charOffset": 5122, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 217, - "startColumn": 1, - "charOffset": 5035, - "charLength": 144, - "snippet": { - "text": " private readonly TOk _ok;\r\n private readonly TErr _err;\r\n public bool IsOk { get; protected set; }\r\n public bool IsErr => !IsOk;\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a0e8a85c2bf6b358", - "equalIndicator/v1": "241077a3220b1ecc74c942784fbe4341519d24d7d77a75995d88ca031a8e9eaa" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_SplitsViewModel' coverage is below the threshold 50%", - "markdown": "Method `set_SplitsViewModel` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/SplitsTree.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 39, - "startColumn": 9, - "charOffset": 1554, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 37, - "startColumn": 1, - "charOffset": 1462, - "charLength": 164, - "snippet": { - "text": " {\r\n get =>(SplitsViewModel)GetValue(SplitsViewModelDependencyProperty);\r\n set => SetValue(SplitsViewModelDependencyProperty, value);\r\n }\r\n \r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "554882ef0c8dd978", - "equalIndicator/v1": "245a492b799dbf966d57e2537e39cbb55bdb812569a66d55b79dd3e7304a167e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_NewSplitAddEnabled' coverage is below the threshold 50%", - "markdown": "Method `set_NewSplitAddEnabled` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 252, - "startColumn": 9, - "charOffset": 8817, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 250, - "startColumn": 1, - "charOffset": 8765, - "charLength": 152, - "snippet": { - "text": " {\r\n get => _newSplitAddEnabled;\r\n set => this.SetField(ref _newSplitAddEnabled, value);\r\n }\r\n private bool _newSplitAddEnabled;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "22112922923717b1", - "equalIndicator/v1": "24ea495a1984cde7f98e341fb130a87e199ee30cf81fa67c502f768226b81d4e" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'TreeView_OnSelectedItemChanged' coverage is below the threshold 50%", - "markdown": "Method `TreeView_OnSelectedItemChanged` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/SplitsTree.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 42, - "startColumn": 18, - "charOffset": 1644, - "charLength": 30, - "snippet": { - "text": "TreeView_OnSelectedItemChanged" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 40, - "startColumn": 1, - "charOffset": 1614, - "charLength": 167, - "snippet": { - "text": " }\r\n \r\n private void TreeView_OnSelectedItemChanged(object sender, RoutedPropertyChangedEventArgs e)\r\n {\r\n if (sender is TreeView treeView)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5efc4c3655a543c4", - "equalIndicator/v1": "24fe209fe1208efd4ba28101a4ebfb57ae3e7c6ee3fe004fa942bf6ceb692e84" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetTextTables' coverage is below the threshold 50%", - "markdown": "Method `GetTextTables` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/ParamReader.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 28, - "startColumn": 40, - "charOffset": 1086, - "charLength": 13, - "snippet": { - "text": "GetTextTables" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 26, - "startColumn": 1, - "charOffset": 1011, - "charLength": 178, - "snippet": { - "text": "public static class ParamReader\r\n{\r\n public static List GetTextTables(Pointer textBasePointer)\r\n {\r\n var rowCount = textBasePointer.ReadUInt16(0xc);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c34cb53c4fef4464", - "equalIndicator/v1": "25703a7dd1ebf664c190ee39b980b07f1e844a867e23523460adb1dcee9e7754" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetSaveFileGameTimeMilliseconds' coverage is below the threshold 50%", - "markdown": "Method `GetSaveFileGameTimeMilliseconds` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 307, - "startColumn": 16, - "charOffset": 11108, - "charLength": 31, - "snippet": { - "text": "GetSaveFileGameTimeMilliseconds" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 305, - "startColumn": 1, - "charOffset": 11084, - "charLength": 152, - "snippet": { - "text": " }\r\n\r\n public int GetSaveFileGameTimeMilliseconds(string path, int slot)\r\n {\r\n return Sl2Reader.GetSaveFileIgt(path, slot, false) ?? 0;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c825708132511550", - "equalIndicator/v1": "25e2690d9dd263adb22bd42151a5b935d3298fb649dd78b10b8fa625ba93b0ed" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_TimingType' coverage is below the threshold 50%", - "markdown": "Method `get_TimingType` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/SplitViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 31, - "startColumn": 9, - "charOffset": 1194, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 29, - "startColumn": 1, - "charOffset": 1145, - "charLength": 131, - "snippet": { - "text": " public TimingType TimingType\r\n {\r\n get => _timingType;\r\n set => this.SetField(ref _timingType, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e1b30795171a8b1b", - "equalIndicator/v1": "2699e83bd6fbe2f14cb00c72c4a8ce240af1a47a83fd93a4a4e2ade22040638c" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_Path' coverage is below the threshold 50%", - "markdown": "Method `get_Path` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 133, - "startColumn": 26, - "charOffset": 3713, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 131, - "startColumn": 1, - "charOffset": 3644, - "charLength": 139, - "snippet": { - "text": "\r\n //Debug representation, shows in IDE\r\n public string Path { get; private set; } = null!;\r\n\r\n public override string ToString()\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "967c7d2155f2802d", - "equalIndicator/v1": "269a976a53707e2ba0b42a88fb1199dddc31678166918e81e66f2cc30956a469" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'EldenRing.EldenRingControl' coverage is below the threshold 50%", - "markdown": "Class `EldenRing.EldenRingControl` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 26, - "startColumn": 22, - "charOffset": 1030, - "charLength": 16, - "snippet": { - "text": "EldenRingControl" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 24, - "startColumn": 1, - "charOffset": 948, - "charLength": 147, - "snippet": { - "text": "/// Interaction logic for UserControl1.xaml\r\n/// \r\npublic partial class EldenRingControl : UserControl\r\n{\r\n public EldenRingControl()\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "07437de59fb2e870", - "equalIndicator/v1": "269d2f0c1e5363c41e17cbae8f985f304017aeae5868424cdde00b47ac65db63" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetPosition' coverage is below the threshold 50%", - "markdown": "Method `GetPosition` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 170, - "startColumn": 21, - "charOffset": 6692, - "charLength": 11, - "snippet": { - "text": "GetPosition" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 168, - "startColumn": 1, - "charOffset": 6603, - "charLength": 267, - "snippet": { - "text": " public int GetCurrentSaveSlot() => _gameMan.ReadInt32(0xA70);\r\n\r\n public Vector3f GetPosition() => new(_playerIns.ReadFloat(0xc50), _playerIns.ReadFloat(0xC58), _playerIns.ReadFloat(0xC54));\r\n\r\n public int GetPlayerHealth() => _playerIns.ReadInt32(0x2d4) ;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3408c3cd273fe799", - "equalIndicator/v1": "27329a63c65b5602af85ab004a48ad1a4586934be7eb399d5b854cc9e8ac2ac7" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'BoyerMooreSearch' coverage is below the threshold 50%", - "markdown": "Method `BoyerMooreSearch` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 230, - "startColumn": 30, - "charOffset": 8876, - "charLength": 16, - "snippet": { - "text": "BoyerMooreSearch" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 228, - "startColumn": 1, - "charOffset": 8780, - "charLength": 198, - "snippet": { - "text": " /// Will return the first match it finds.\r\n /// \r\n public static List BoyerMooreSearch(this byte[] haystack, byte?[] needle)\r\n {\r\n var result = new List();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1aeb53a57d609bd7", - "equalIndicator/v1": "273e7c8cabe96aaa1ed9c9f7e2ddf645fd60fd03735061474cba01f0bb4953a9" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_Level' coverage is below the threshold 50%", - "markdown": "Method `set_Level` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splits/Sekiro/Attribute.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 37, - "startColumn": 9, - "charOffset": 1354, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 35, - "startColumn": 1, - "charOffset": 1315, - "charLength": 112, - "snippet": { - "text": " {\r\n get => _level;\r\n set => this.SetField(ref _level, value);\r\n }\r\n private int _level;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "90c6712ceeed4e38", - "equalIndicator/v1": "2765e169be4f80b65e0cdaee1a2a4184b32f2c9033e20b07ec5cc6621edd49e8" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_Id' coverage is below the threshold 50%", - "markdown": "Method `set_Id` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/ParamTableEntry.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 21, - "startColumn": 26, - "charOffset": 901, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 19, - "startColumn": 1, - "charOffset": 843, - "charLength": 149, - "snippet": { - "text": "public class ParamTableEntry\r\n{\r\n public int Id { get; set; }\r\n public uint DataOffset { get; set; }\r\n public uint NameOffset { get; set; }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3ed69a9b260f2457", - "equalIndicator/v1": "27728d5bfbbbae096e93db15e868a53098280807ce36a2def61b77eb3beb245f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'EldenRing.HierarchicalSplitViewModel' coverage is below the threshold 50%", - "markdown": "Class `EldenRing.HierarchicalSplitViewModel` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/SplitViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 83, - "startColumn": 14, - "charOffset": 2669, - "charLength": 26, - "snippet": { - "text": "HierarchicalSplitViewModel" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 81, - "startColumn": 1, - "charOffset": 2596, - "charLength": 151, - "snippet": { - "text": "[XmlInclude(typeof(Item))]\r\n[XmlInclude(typeof(Position))]\r\npublic class HierarchicalSplitViewModel : ICustomNotifyPropertyChanged\r\n{\r\n [XmlIgnore]\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d05b16d4dbc68073", - "equalIndicator/v1": "2788df4135da2749919107f4a903a73ae18c8760aede2d425cd0d586e34db2c5" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_Area' coverage is below the threshold 50%", - "markdown": "Method `get_Area` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/BossViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 48, - "startColumn": 9, - "charOffset": 1452, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 46, - "startColumn": 1, - "charOffset": 1413, - "charLength": 109, - "snippet": { - "text": " public string Area\r\n {\r\n get => _area;\r\n set => this.SetField(ref _area, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7998dd5f7a2abc69", - "equalIndicator/v1": "2794a5c17adacc28feb9755a66e5352b8d2382e4d199ddac3a0ae2d8e332dd16" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'Update' coverage is below the threshold 50%", - "markdown": "Method `Update` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/EldenRingSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 70, - "startColumn": 36, - "charOffset": 2226, - "charLength": 6, - "snippet": { - "text": "Update" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 68, - "startColumn": 1, - "charOffset": 2182, - "charLength": 119, - "snippet": { - "text": " }\r\n\r\n public ResultErr Update(MainViewModel mainViewModel)\r\n {\r\n //Settings from the UI\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "436df82ed98804c1", - "equalIndicator/v1": "27a10f0927fc8ba24f5cf20f2a46aeecd92c77607a4acae7d595e7921c6f0663" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_NewSplitTimingType' coverage is below the threshold 50%", - "markdown": "Method `get_NewSplitTimingType` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 62, - "startColumn": 9, - "charOffset": 2023, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 60, - "startColumn": 1, - "charOffset": 1965, - "charLength": 110, - "snippet": { - "text": " public TimingType? NewSplitTimingType\r\n {\r\n get => _newSplitTimingType;\r\n set\r\n {\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f4b38d2fd337d14c", - "equalIndicator/v1": "27de2a7c4f5376732ba4102793b115276f8760c45005751f5610ba5a1d5da6ab" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetAttribute' coverage is below the threshold 50%", - "markdown": "Method `GetAttribute` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/DarkSouls1.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 31, - "startColumn": 16, - "charOffset": 1194, - "charLength": 12, - "snippet": { - "text": "GetAttribute" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 29, - "startColumn": 1, - "charOffset": 1076, - "charLength": 379, - "snippet": { - "text": " private IDarkSouls1? _darkSouls1;\r\n public Process? GetProcess() => _darkSouls1?.GetProcess();\r\n public int GetAttribute(Attribute attribute) => _darkSouls1?.GetAttribute(attribute) ?? 0;\r\n public bool ReadEventFlag(uint eventFlagId) => _darkSouls1?.ReadEventFlag(eventFlagId) ?? false;\r\n public bool IsWarpRequested() => _darkSouls1?.IsWarpRequested() ?? false;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0f8d4d09c5bbc66c", - "equalIndicator/v1": "27ec8c4b3119082e136e6eafb7de4b03732874d21d9b5ab0d3bec03533b6bc35" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'DarkSouls1.Remastered' coverage is below the threshold 50%", - "markdown": "Class `DarkSouls1.Remastered` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 49, - "startColumn": 14, - "charOffset": 2131, - "charLength": 10, - "snippet": { - "text": "Remastered" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 47, - "startColumn": 1, - "charOffset": 2082, - "charLength": 238, - "snippet": { - "text": "namespace SoulMemory.DarkSouls1;\r\n\r\npublic class Remastered : IDarkSouls1\r\n{\r\n #region Refresh/init/reset ================================================================================================================================\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "828d8a471845e829", - "equalIndicator/v1": "28094814e8a4393cd11b02ac6f48c033712771bcb52fed5c379ef3ff28207b45" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetTreeBuilder' coverage is below the threshold 50%", - "markdown": "Method `GetTreeBuilder` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 77, - "startColumn": 42, - "charOffset": 2903, - "charLength": 14, - "snippet": { - "text": "GetTreeBuilder" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 75, - "startColumn": 1, - "charOffset": 2780, - "charLength": 207, - "snippet": { - "text": " public ResultErr TryRefresh() => _armoredCore6.TryRefresh();\r\n\r\n public SoulMemory.Memory.TreeBuilder GetTreeBuilder()\r\n {\r\n var builder = new SoulMemory.Memory.TreeBuilder();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a4f0c78203fd30ab", - "equalIndicator/v1": "28487183d6c7d58c4da1fef2263c5785878866118a33e21c338ba71515f75fcc" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ConvertBack' coverage is below the threshold 50%", - "markdown": "Method `ConvertBack` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Converters/EnumValueEnumParameterConverter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 35, - "startColumn": 19, - "charOffset": 1348, - "charLength": 11, - "snippet": { - "text": "ConvertBack" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 33, - "startColumn": 1, - "charOffset": 1321, - "charLength": 146, - "snippet": { - "text": " }\r\n\r\n public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)\r\n {\r\n return parameter!;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0a3f757d80916865", - "equalIndicator/v1": "2850724a44472d1c16f4a03aa0d2fa54989171d3eb2b699ccc038c822f3dfd72" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'SetViewModel' coverage is below the threshold 50%", - "markdown": "Method `SetViewModel` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls2Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 49, - "startColumn": 17, - "charOffset": 1790, - "charLength": 12, - "snippet": { - "text": "SetViewModel" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 47, - "startColumn": 1, - "charOffset": 1765, - "charLength": 115, - "snippet": { - "text": " }\r\n\r\n public void SetViewModel(MainViewModel mainViewModel)\r\n {\r\n _mainViewModel = mainViewModel;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1327b30d4f422efe", - "equalIndicator/v1": "285c209b1f565cca11952c87e45cdb5d6b5321d5bf27217b97a04bbfeb69702a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'IsNullPtr' coverage is below the threshold 50%", - "markdown": "Method `IsNullPtr` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 189, - "startColumn": 17, - "charOffset": 5058, - "charLength": 9, - "snippet": { - "text": "IsNullPtr" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 187, - "startColumn": 1, - "charOffset": 5033, - "charLength": 79, - "snippet": { - "text": " }\r\n\r\n public bool IsNullPtr()\r\n {\r\n return GetAddress() == 0;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "8a187a14cfff6d47", - "equalIndicator/v1": "289e865421809f1d451b8f6c011947d003f89f01ce54278ce6c0dd11029368e7" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetAddress' coverage is below the threshold 50%", - "markdown": "Method `GetAddress` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 194, - "startColumn": 17, - "charOffset": 5138, - "charLength": 10, - "snippet": { - "text": "GetAddress" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 192, - "startColumn": 1, - "charOffset": 5113, - "charLength": 86, - "snippet": { - "text": " }\r\n\r\n public long GetAddress()\r\n {\r\n return ResolveOffsets(Offsets);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b3b06f8f02a0dd14", - "equalIndicator/v1": "2916c74551723a8d09a3949ce813999606dad725d4efad0efe02156f00f50bed" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ToString' coverage is below the threshold 50%", - "markdown": "Method `ToString` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/PointerNode.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 42, - "startColumn": 28, - "charOffset": 1354, - "charLength": 8, - "snippet": { - "text": "ToString" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 40, - "startColumn": 1, - "charOffset": 1280, - "charLength": 98, - "snippet": { - "text": " public List Pointers = [];\r\n\r\n public override string ToString() => Name;\r\n}\r\n" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a4d90d73044650b9", - "equalIndicator/v1": "292360a4da3be22e8e759a9d92adae99a9aa05246b1aad4b65b741604831642b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ToString' coverage is below the threshold 50%", - "markdown": "Method `ToString` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 66, - "startColumn": 28, - "charOffset": 2163, - "charLength": 8, - "snippet": { - "text": "ToString" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 64, - "startColumn": 1, - "charOffset": 2127, - "charLength": 79, - "snippet": { - "text": " }\r\n\r\n public override string ToString()\r\n {\r\n //Populate path\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9fc5890266d4d5c5", - "equalIndicator/v1": "292db43683f73ed1a7ebeb4bbc615a874d2d10bbd3a2d1dad45c5d55a4f5adf9" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'TryResolvePointers' coverage is below the threshold 50%", - "markdown": "Method `TryResolvePointers` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerTreeBuilder.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 63, - "startColumn": 36, - "charOffset": 2374, - "charLength": 18, - "snippet": { - "text": "TryResolvePointers" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 61, - "startColumn": 1, - "charOffset": 2222, - "charLength": 306, - "snippet": { - "text": " /// Resolve pointers to their correct address by scanning for patterns in a running process\r\n /// \r\n public ResultErr TryResolvePointers(IMemory memory, long baseAddress, int memorySize, bool is64Bit)\r\n {\r\n var bytes = memory.ReadBytes(baseAddress, memorySize);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c3cac61dfbe7b628", - "equalIndicator/v1": "29535a2f101818d8183b0250a779cf1991e3a92af05d4881de67c73ea32ce049" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ResolveSplitTiming' coverage is below the threshold 50%", - "markdown": "Method `ResolveSplitTiming` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls3Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 261, - "startColumn": 18, - "charOffset": 8528, - "charLength": 18, - "snippet": { - "text": "ResolveSplitTiming" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 259, - "startColumn": 1, - "charOffset": 8502, - "charLength": 92, - "snippet": { - "text": " }\r\n\r\n private void ResolveSplitTiming(Split s)\r\n {\r\n switch (s.TimingType)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a4b5fed0678b0f5f", - "equalIndicator/v1": "2a1e42633308ffab08d66689296ded9e55393a90806622cc25e51a7278157a6d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'UpdateTimer' coverage is below the threshold 50%", - "markdown": "Method `UpdateTimer` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/EldenRingSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 173, - "startColumn": 17, - "charOffset": 5660, - "charLength": 11, - "snippet": { - "text": "UpdateTimer" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 171, - "startColumn": 1, - "charOffset": 5640, - "charLength": 135, - "snippet": { - "text": "\r\n\r\n public void UpdateTimer(bool startAutomatically)\r\n {\r\n //Allow updates from the UI only when a run isn't in progress\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ed8ad5cfcdefece9", - "equalIndicator/v1": "2a5cec9c1be5c11a911fbf4b794392a5a79d2227bfd8186c35eb7e6697aeb80d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ToString' coverage is below the threshold 50%", - "markdown": "Method `ToString` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/BoolDescriptionViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 37, - "startColumn": 28, - "charOffset": 1288, - "charLength": 8, - "snippet": { - "text": "ToString" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 35, - "startColumn": 1, - "charOffset": 1233, - "charLength": 115, - "snippet": { - "text": " private bool _value;\r\n\r\n public override string ToString()\r\n {\r\n return $\"{Value} {Description}\";\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "fb62065a1e514700", - "equalIndicator/v1": "2acb225e8a474d229ac6b409435ece174525f3676dd72fbd8521f5c48ccb379e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_Category' coverage is below the threshold 50%", - "markdown": "Method `get_Category` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 488, - "startColumn": 9, - "charOffset": 15242, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 486, - "startColumn": 1, - "charOffset": 15197, - "charLength": 123, - "snippet": { - "text": " public Category Category\r\n {\r\n get => _category;\r\n set => this.SetField(ref _category, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "216a3089c304f2f7", - "equalIndicator/v1": "2ae312d94e19437f4fe251e3f2590aab829230b0e5762166ad8d8ed07daa0a18" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'UpdateAutoSplitter' coverage is below the threshold 50%", - "markdown": "Method `UpdateAutoSplitter` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/ArmoredCore6Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 74, - "startColumn": 18, - "charOffset": 2602, - "charLength": 18, - "snippet": { - "text": "UpdateAutoSplitter" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 72, - "startColumn": 1, - "charOffset": 2540, - "charLength": 138, - "snippet": { - "text": " private List _splits = [];\r\n \r\n private void UpdateAutoSplitter()\r\n {\r\n if (_timerState != TimerState.Running)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f3b6b471f05f975e", - "equalIndicator/v1": "2af17f053078ae9f6f6ed843273d59973c4014260308b52b42137624c9eb655e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_Bosses' coverage is below the threshold 50%", - "markdown": "Method `get_Bosses` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 184, - "startColumn": 9, - "charOffset": 7429, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 182, - "startColumn": 1, - "charOffset": 7349, - "charLength": 236, - "snippet": { - "text": " public ObservableCollection> Bosses\r\n {\r\n get => (ObservableCollection>)GetValue(BossesDependencyProperty);\r\n set => SetValue(BossesDependencyProperty, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e932e91cc0137d3a", - "equalIndicator/v1": "2afffb1f5ccbbe5cb1fa772a41324408ab5ac793eaa79718f95a59f92ba0e92f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadDouble' coverage is below the threshold 50%", - "markdown": "Method `ReadDouble` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 93, - "startColumn": 26, - "charOffset": 2997, - "charLength": 10, - "snippet": { - "text": "ReadDouble" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 91, - "startColumn": 1, - "charOffset": 2963, - "charLength": 157, - "snippet": { - "text": " }\r\n\r\n public static double ReadDouble(this IMemory memory, long offset)\r\n {\r\n return BitConverter.ToDouble(memory.ReadBytes(offset, 8), 0);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "53c1209b6baa8487", - "equalIndicator/v1": "2b4635a1ce77c7193b8e6c887cd1d843bb9c9fb21219b69e1bc53332297eb70b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetInGameTimeMilliseconds' coverage is below the threshold 50%", - "markdown": "Method `GetInGameTimeMilliseconds` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls2/DarkSouls2.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 27, - "startColumn": 16, - "charOffset": 1016, - "charLength": 25, - "snippet": { - "text": "GetInGameTimeMilliseconds" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 25, - "startColumn": 1, - "charOffset": 959, - "charLength": 194, - "snippet": { - "text": "public class DarkSouls2 : IDarkSouls2\r\n{\r\n public int GetInGameTimeMilliseconds() => 0;\r\n private IDarkSouls2? _darkSouls2;\r\n public Process? GetProcess() => _darkSouls2?.GetProcess();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3090089fdfc3fdbd", - "equalIndicator/v1": "2bab9dc2e3fbbdd0404ca990158c67c97f2364236d308792bad6373a99c04eeb" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'DarkSouls2.DarkSouls2Control' coverage is below the threshold 50%", - "markdown": "Class `DarkSouls2.DarkSouls2Control` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2Control.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 27, - "startColumn": 22, - "charOffset": 1075, - "charLength": 17, - "snippet": { - "text": "DarkSouls2Control" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 25, - "startColumn": 1, - "charOffset": 988, - "charLength": 154, - "snippet": { - "text": "/// Interaction logic for DarkSouls3Control.xaml\r\n/// \r\npublic partial class DarkSouls2Control : UserControl\r\n{\r\n public DarkSouls2Control()\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "767d3493ed3da846", - "equalIndicator/v1": "2bdce1c183e95d88193574d94c0da947833723c5ee5ac10527e1d9b12a5a1e7e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteDouble' coverage is below the threshold 50%", - "markdown": "Method `WriteDouble` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 164, - "startColumn": 24, - "charOffset": 5140, - "charLength": 11, - "snippet": { - "text": "WriteDouble" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 162, - "startColumn": 1, - "charOffset": 5108, - "charLength": 165, - "snippet": { - "text": " }\r\n\r\n public static void WriteDouble(this IMemory memory, long offset, double value)\r\n {\r\n memory.WriteBytes(offset, BitConverter.GetBytes(value));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "cabf598dc8b3542f", - "equalIndicator/v1": "2be23899d36cf1fc6ff01df74b0130aac2741dcde84f951fa8d432fdec155e28" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_Message' coverage is below the threshold 50%", - "markdown": "Method `get_Message` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/RefreshError.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 47, - "startColumn": 29, - "charOffset": 1525, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 45, - "startColumn": 1, - "charOffset": 1448, - "charLength": 137, - "snippet": { - "text": "\r\n public RefreshErrorReason Reason { get; }\r\n public string Message { get; } = null!;\r\n public Exception? Exception { get; }\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "79bae411a81d7d1e", - "equalIndicator/v1": "2c26eef9ecca3f9af9c9b033581da13808e97ee991e21be8a7281e6690cb8abd" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetInGameTimeMilliseconds' coverage is below the threshold 50%", - "markdown": "Method `GetInGameTimeMilliseconds` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 164, - "startColumn": 16, - "charOffset": 6478, - "charLength": 25, - "snippet": { - "text": "GetInGameTimeMilliseconds" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 162, - "startColumn": 1, - "charOffset": 6364, - "charLength": 236, - "snippet": { - "text": " public int GetAttribute(Attribute attribute) => _playerGameData.ReadInt32((long)attribute);\r\n\r\n public int GetInGameTimeMilliseconds() => _gameDataMan.ReadInt32(0x68);\r\n\r\n public int NgCount() => _gameDataMan.ReadInt32(0x3C);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "52973f32d102e639", - "equalIndicator/v1": "2c2a4aa5bf8ef207a5e7687e7411342f63664f60d94031689812e729597de2cf" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetPosition' coverage is below the threshold 50%", - "markdown": "Method `GetPosition` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls2/DarkSouls2.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 30, - "startColumn": 21, - "charOffset": 1174, - "charLength": 11, - "snippet": { - "text": "GetPosition" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 28, - "startColumn": 1, - "charOffset": 1051, - "charLength": 355, - "snippet": { - "text": " private IDarkSouls2? _darkSouls2;\r\n public Process? GetProcess() => _darkSouls2?.GetProcess();\r\n public Vector3f GetPosition() => _darkSouls2?.GetPosition() ?? new Vector3f();\r\n public bool IsLoading() => _darkSouls2?.IsLoading() ?? false;\r\n public bool ReadEventFlag(uint eventFlagId) => _darkSouls2?.ReadEventFlag(eventFlagId) ?? false;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "467dc32d40e9f9df", - "equalIndicator/v1": "2cbc39f09f4b288a753d66110df85a2ca8e772a2caeec59ab8d49074ed1048f8" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'TextBoxBase_OnTextChanged' coverage is below the threshold 50%", - "markdown": "Method `TextBoxBase_OnTextChanged` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 57, - "startColumn": 18, - "charOffset": 1875, - "charLength": 25, - "snippet": { - "text": "TextBoxBase_OnTextChanged" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 55, - "startColumn": 1, - "charOffset": 1849, - "charLength": 186, - "snippet": { - "text": " }\r\n\r\n private void TextBoxBase_OnTextChanged(object sender, TextChangedEventArgs e)\r\n {\r\n if (sender is TextBox textBox && uint.TryParse(textBox.Text, out uint result))\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c92867cb052331c1", - "equalIndicator/v1": "2d18c2ddf15f01990bfe788b1ff8c90e6c38f98cbf3e45eeac106a23a6768a96" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Constructor 'Result' coverage is below the threshold 50%", - "markdown": "Constructor `Result` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Result.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 229, - "startColumn": 13, - "charOffset": 5321, - "charLength": 6, - "snippet": { - "text": "Result" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 227, - "startColumn": 1, - "charOffset": 5300, - "charLength": 65, - "snippet": { - "text": " }\r\n\r\n private Result(TOk ok)\r\n {\r\n IsOk = true;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1e85b8871c71438a", - "equalIndicator/v1": "2d5fd2279f07bf3df6c2f004c17197a3963697039a89d0f741f6c69420c6286c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'EnableHud' coverage is below the threshold 50%", - "markdown": "Method `EnableHud` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/EldenRing.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 289, - "startColumn": 17, - "charOffset": 10237, - "charLength": 9, - "snippet": { - "text": "EnableHud" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 287, - "startColumn": 1, - "charOffset": 10203, - "charLength": 87, - "snippet": { - "text": " #endregion\r\n\r\n public void EnableHud()\r\n {\r\n var b = _hud.ReadByte();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f735a42cc14d180e", - "equalIndicator/v1": "2d971c63d6843f4891b02b43df5bf18d0ab7f2eec8a578ce2073436504a8dbc5" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_Value' coverage is below the threshold 50%", - "markdown": "Method `set_Value` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/BoolDescriptionViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 33, - "startColumn": 9, - "charOffset": 1184, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 31, - "startColumn": 1, - "charOffset": 1145, - "charLength": 113, - "snippet": { - "text": " {\r\n get => _value;\r\n set => this.SetField(ref _value, value);\r\n }\r\n private bool _value;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f26285c14fdd6b46", - "equalIndicator/v1": "2dda1016c704c308845699f1e2f6c8f929ac1404d68b5be2000943835fc279ca" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetAttribute' coverage is below the threshold 50%", - "markdown": "Method `GetAttribute` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls2/vanilla.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 97, - "startColumn": 16, - "charOffset": 3350, - "charLength": 12, - "snippet": { - "text": "GetAttribute" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 95, - "startColumn": 1, - "charOffset": 3326, - "charLength": 117, - "snippet": { - "text": " }\r\n\r\n public int GetAttribute(Attribute attribute)\r\n {\r\n var offset = _attributeOffsets[attribute];\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "afa2dc9e6c72269a", - "equalIndicator/v1": "2e1ff6b1f898a24471c03f095d588fa53d5e67ec17fa49875d5e543719045be2" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_Id' coverage is below the threshold 50%", - "markdown": "Method `set_Id` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/BaseParam.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 95, - "startColumn": 26, - "charOffset": 3687, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 93, - "startColumn": 1, - "charOffset": 3653, - "charLength": 85, - "snippet": { - "text": " }\r\n\r\n public int Id { get; set; }\r\n\r\n public readonly Pointer BasePointer;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9c9d0de81bd9de18", - "equalIndicator/v1": "2ed30946b7f0d640284cea6ecacef81318d3d48256a0ed4942eceb967e8ee8fe" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_IsOk' coverage is below the threshold 50%", - "markdown": "Method `get_IsOk` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Result.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 52, - "startColumn": 24, - "charOffset": 1694, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 50, - "startColumn": 1, - "charOffset": 1653, - "charLength": 98, - "snippet": { - "text": " #endregion\r\n\r\n public bool IsOk { get; protected set; }\r\n public bool IsErr => !IsOk;\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "627bce8f9b99e7c5", - "equalIndicator/v1": "2ef85863f0ecf36520d47b51daa34c68de811c18baa1fb4bedb70a15288fde50" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetProcess' coverage is below the threshold 50%", - "markdown": "Method `GetProcess` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls2/scholar.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 34, - "startColumn": 21, - "charOffset": 1489, - "charLength": 10, - "snippet": { - "text": "GetProcess" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 32, - "startColumn": 1, - "charOffset": 1306, - "charLength": 395, - "snippet": { - "text": "\r\n #region Refresh/init/reset ================================================================================================================================\r\n public Process? GetProcess() => _process;\r\n public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, \"darksoulsii\", InitPointers, ResetPointers);\r\n public int GetInGameTimeMilliseconds() => 0;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "2bca479e890fa223", - "equalIndicator/v1": "307a18625faac1bd53efd528561abb519a4f84bda12427be4fe7719c0a18d3c0" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_NewSplitTimingType' coverage is below the threshold 50%", - "markdown": "Method `get_NewSplitTimingType` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 144, - "startColumn": 9, - "charOffset": 5652, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 142, - "startColumn": 1, - "charOffset": 5594, - "charLength": 110, - "snippet": { - "text": " public TimingType? NewSplitTimingType\r\n {\r\n get => _newSplitTimingType;\r\n set\r\n {\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "2aea8600773c4a37", - "equalIndicator/v1": "309782c9ff6ac9ae98ca2025177f92b3c1c17f6755a703ffb37f8df6a9a933df" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'SoulMemory.RefreshError' coverage is below the threshold 50%", - "markdown": "Class `SoulMemory.RefreshError` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/RefreshError.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 22, - "startColumn": 14, - "charOffset": 882, - "charLength": 12, - "snippet": { - "text": "RefreshError" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 20, - "startColumn": 1, - "charOffset": 844, - "charLength": 124, - "snippet": { - "text": "namespace SoulMemory;\r\n\r\npublic class RefreshError\r\n{\r\n public static ResultErr FromException(Exception e)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "bd3e90bfe92b0ef8", - "equalIndicator/v1": "30a7b377f79aa566dd8fd66ea620e7db02520dd865520eb65ad2cb6fc7736e2b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteFloat' coverage is below the threshold 50%", - "markdown": "Method `WriteFloat` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 159, - "startColumn": 24, - "charOffset": 4976, - "charLength": 10, - "snippet": { - "text": "WriteFloat" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 157, - "startColumn": 1, - "charOffset": 4944, - "charLength": 163, - "snippet": { - "text": " }\r\n\r\n public static void WriteFloat(this IMemory memory, long offset, float value)\r\n {\r\n memory.WriteBytes(offset, BitConverter.GetBytes(value));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5a77eb4bfd554a5f", - "equalIndicator/v1": "30ce1633540729afbf1668e7b47357666170a25cd77509f2f03ee4571ae1484f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Constructor 'Split' coverage is below the threshold 50%", - "markdown": "Constructor `Split` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splits/Sekiro/Split.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 25, - "startColumn": 12, - "charOffset": 959, - "charLength": 5, - "snippet": { - "text": "Split" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 23, - "startColumn": 1, - "charOffset": 923, - "charLength": 141, - "snippet": { - "text": "internal class Split\r\n{\r\n public Split(TimingType timingType, SplitType splitType, object split)\r\n {\r\n TimingType = timingType;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a1cc70e87df18cff", - "equalIndicator/v1": "30e78b3222ffa487f046793c94ae06b84deff19c44b9ee66465640ac682243e9" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'UI.FlagTrackerWindow' coverage is below the threshold 50%", - "markdown": "Class `UI.FlagTrackerWindow` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/FlagTrackerWindow.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 22, - "startColumn": 22, - "charOffset": 915, - "charLength": 17, - "snippet": { - "text": "FlagTrackerWindow" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 20, - "startColumn": 1, - "charOffset": 864, - "charLength": 113, - "snippet": { - "text": "namespace SoulSplitter.UI;\r\n\r\npublic partial class FlagTrackerWindow : Window\r\n{\r\n public FlagTrackerWindow()\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "544d32587c7d5dd1", - "equalIndicator/v1": "310c19ac1bfdf8e11ec550827460de224ccd73c4a334174d59ecc41622c99ea8" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_PointerTreeBuilder' coverage is below the threshold 50%", - "markdown": "Method `set_PointerTreeBuilder` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Process/ProcessHook.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 30, - "startColumn": 76, - "charOffset": 1345, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 28, - "startColumn": 1, - "charOffset": 1215, - "charLength": 315, - "snippet": { - "text": " public event Action Exited = null!;\r\n\r\n public PointerTreeBuilder.PointerTreeBuilder PointerTreeBuilder { get; set; } = new();\r\n\r\n #region Refresh =================================================================================================================================================\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "2333ccb7fbd55913", - "equalIndicator/v1": "315095ebeeedb2a52ccd4efd3cfb948944d435089bf6f44d8af79ad32b73c300" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'PointerTreeBuilder.PointerNode' coverage is below the threshold 50%", - "markdown": "Class `PointerTreeBuilder.PointerNode` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerNode.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 22, - "startColumn": 14, - "charOffset": 945, - "charLength": 11, - "snippet": { - "text": "PointerNode" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 20, - "startColumn": 1, - "charOffset": 879, - "charLength": 126, - "snippet": { - "text": "namespace SoulMemory.MemoryV2.PointerTreeBuilder;\r\n\r\npublic class PointerNode\r\n{\r\n public PointerNodeType PointerNodeType;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3325db18be313347", - "equalIndicator/v1": "31ed21b68d891bd9a950dfdda888a5500a5bed6ec39de77e9a64cda098eb732e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_Name' coverage is below the threshold 50%", - "markdown": "Method `get_Name` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/EnumFlagViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 51, - "startColumn": 9, - "charOffset": 1602, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 49, - "startColumn": 1, - "charOffset": 1563, - "charLength": 109, - "snippet": { - "text": " public string Name\r\n {\r\n get => _name;\r\n set => this.SetField(ref _name, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "258fa083bb4bf575", - "equalIndicator/v1": "320dd0c2cd7f5b57772c87303cf9ca991fce6660363982f96398dfd2b187cf59" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'Window_Closing' coverage is below the threshold 50%", - "markdown": "Method `Window_Closing` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/MainWindow.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 39, - "startColumn": 18, - "charOffset": 1342, - "charLength": 14, - "snippet": { - "text": "Window_Closing" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 37, - "startColumn": 1, - "charOffset": 1281, - "charLength": 148, - "snippet": { - "text": "\r\n public bool WindowShouldHide = true;\r\n private void Window_Closing(object sender, CancelEventArgs e)\r\n {\r\n if (WindowShouldHide)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "183912ad82b55214", - "equalIndicator/v1": "321d1bd3cdafddde30266d7eca9eb96055c50c5f1c9f92ce5dc6c27dad9d081f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'PointerTreeBuilder.PointerAppender' coverage is below the threshold 50%", - "markdown": "Class `PointerTreeBuilder.PointerAppender` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerAppender.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 21, - "startColumn": 14, - "charOffset": 910, - "charLength": 15, - "snippet": { - "text": "PointerAppender" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 19, - "startColumn": 1, - "charOffset": 844, - "charLength": 133, - "snippet": { - "text": "namespace SoulMemory.MemoryV2.PointerTreeBuilder;\r\n\r\npublic class PointerAppender\r\n{\r\n private readonly PointerNode _pointerNode;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "bed3fffb93c2aac3", - "equalIndicator/v1": "32a067036ea4b6fd6d0f34ab7c250e2c500fbc151a62985cca845fb78f6e8e2d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'Splitters.DarkSouls2Splitter' coverage is below the threshold 50%", - "markdown": "Class `Splitters.DarkSouls2Splitter` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls2Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 30, - "startColumn": 14, - "charOffset": 1132, - "charLength": 18, - "snippet": { - "text": "DarkSouls2Splitter" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 28, - "startColumn": 1, - "charOffset": 1082, - "charLength": 130, - "snippet": { - "text": "namespace SoulSplitter.Splitters;\r\n\r\npublic class DarkSouls2Splitter : ISplitter\r\n{\r\n private readonly DarkSouls2 _darkSouls2;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a275221f2636159f", - "equalIndicator/v1": "33736fd57eb0b467ae7d2061ee637fd98503a9cbffa2da19c941d2ba8bb48895" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteInt16' coverage is below the threshold 50%", - "markdown": "Method `WriteInt16` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 262, - "startColumn": 17, - "charOffset": 6839, - "charLength": 10, - "snippet": { - "text": "WriteInt16" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 260, - "startColumn": 1, - "charOffset": 6802, - "charLength": 146, - "snippet": { - "text": " #region Write\r\n\r\n public void WriteInt16(short value) => WriteInt16(null, value);\r\n\r\n public void WriteInt16(long? offset, short value)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "755a5b8c6fa997a5", - "equalIndicator/v1": "3393d6b6eb70747d87e5d0b47c2215abba1f1e757e31c628e06d0e3545ff88f6" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_VisibleItemPickupSplit' coverage is below the threshold 50%", - "markdown": "Method `set_VisibleItemPickupSplit` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 240, - "startColumn": 9, - "charOffset": 6723, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 238, - "startColumn": 1, - "charOffset": 6667, - "charLength": 164, - "snippet": { - "text": " {\r\n get => _visibleItemPickupSplit;\r\n set => this.SetField(ref _visibleItemPickupSplit, value);\r\n }\r\n private bool _visibleItemPickupSplit;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7be390789e0665c1", - "equalIndicator/v1": "33c79c3d80c6ed90434d3f5704c1fa6f071424e897bff9570d8b6b1d6f4d99a8" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'DeleteFromEnd' coverage is below the threshold 50%", - "markdown": "Method `DeleteFromEnd` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/EldenRing.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 366, - "startColumn": 17, - "charOffset": 12324, - "charLength": 13, - "snippet": { - "text": "DeleteFromEnd" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 364, - "startColumn": 1, - "charOffset": 12252, - "charLength": 149, - "snippet": { - "text": " private const int InventoryEntrySize = 0x14;\r\n \r\n private int DeleteFromEnd(int num, int n)\r\n {\r\n for (int i = 1; num != 0; i++)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e9fa355fb72e264d", - "equalIndicator/v1": "33fe542b64e61c64a4daee59d555a0cd766ba80994dd882ab5f9c3defa5f1166" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_NewSplitFlag' coverage is below the threshold 50%", - "markdown": "Method `get_NewSplitFlag` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 179, - "startColumn": 9, - "charOffset": 5196, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 177, - "startColumn": 1, - "charOffset": 5150, - "charLength": 92, - "snippet": { - "text": " public uint? NewSplitFlag\r\n {\r\n get => _newSplitFlag;\r\n set\r\n {\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a97f0214b5927abb", - "equalIndicator/v1": "3492e20dc8812ca30ae70a91863b575c3b169e3e9e28426724c9372fd08c1dcf" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'Is64Bit' coverage is below the threshold 50%", - "markdown": "Method `Is64Bit` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Process/ProcessWrapper.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 29, - "startColumn": 17, - "charOffset": 1157, - "charLength": 7, - "snippet": { - "text": "Is64Bit" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 27, - "startColumn": 1, - "charOffset": 1024, - "charLength": 330, - "snippet": { - "text": " private System.Diagnostics.Process? _process;\r\n public System.Diagnostics.Process? GetProcess() => _process;\r\n public bool Is64Bit() => _process?.Is64Bit() ?? false;\r\n public ProcessWrapperModule? GetMainModule() => _process?.MainModule == null ? null : ProcessWrapperModule.FromProcessModule(_process.MainModule);\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "49b813ee8f94485d", - "equalIndicator/v1": "34b321a2f50fe9b03e1c7a65d0dfe24d233f4a3b0c8ef40e45917fc30ceb75b4" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'Sekiro.Sekiro' coverage is below the threshold 50%", - "markdown": "Class `Sekiro.Sekiro` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Sekiro/Sekiro.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 26, - "startColumn": 14, - "charOffset": 1008, - "charLength": 6, - "snippet": { - "text": "Sekiro" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 24, - "startColumn": 1, - "charOffset": 963, - "charLength": 95, - "snippet": { - "text": "namespace SoulMemory.Sekiro;\r\n\r\npublic class Sekiro : IGame\r\n{\r\n private Process? _process;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "2fb44f1a9d3e1038", - "equalIndicator/v1": "354458ad5ffb0796a59514dd224f21962095e334a8870bc74bf6bb443b5da85c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadBool' coverage is below the threshold 50%", - "markdown": "Method `ReadBool` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/IMemory.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 69, - "startColumn": 24, - "charOffset": 2176, - "charLength": 8, - "snippet": { - "text": "ReadBool" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 67, - "startColumn": 1, - "charOffset": 2144, - "charLength": 162, - "snippet": { - "text": " }\r\n\r\n public static bool ReadBool(this IMemory memory, long? offset = null)\r\n {\r\n return BitConverter.ToBoolean(memory.ReadBytes(offset, 1), 0);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3c310e6e1f2a4d83", - "equalIndicator/v1": "354f3859b133eca90049c6045b42a163e303d105dc49d4f15967b2b69b5ac256" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'InvokePropertyChanged' coverage is below the threshold 50%", - "markdown": "Method `InvokePropertyChanged` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 389, - "startColumn": 17, - "charOffset": 14920, - "charLength": 21, - "snippet": { - "text": "InvokePropertyChanged" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 387, - "startColumn": 1, - "charOffset": 14838, - "charLength": 216, - "snippet": { - "text": " public event PropertyChangedEventHandler? PropertyChanged;\r\n\r\n public void InvokePropertyChanged(string propertyName)\r\n {\r\n PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "011432eff889f329", - "equalIndicator/v1": "358a3fa503b80ff466f4b8877d26dddb6414a623df673f23452b811ab41bf5db" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'SoulMemory.ResultOk' coverage is below the threshold 50%", - "markdown": "Class `SoulMemory.ResultOk` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Result.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 157, - "startColumn": 14, - "charOffset": 3782, - "charLength": 8, - "snippet": { - "text": "ResultOk" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 155, - "startColumn": 1, - "charOffset": 3719, - "charLength": 111, - "snippet": { - "text": "/// Result with generic ok type.\r\n/// \r\npublic class ResultOk\r\n{\r\n private readonly TOk _ok;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c1518154ae2eeabb", - "equalIndicator/v1": "3601a69287c7f20273b708a9a8f407c9eb1794ef7be9307de78d7c28b74434e4" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_MethodName' coverage is below the threshold 50%", - "markdown": "Method `get_MethodName` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/soulmods/Soulmods.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 45, - "startColumn": 32, - "charOffset": 1513, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 43, - "startColumn": 1, - "charOffset": 1435, - "charLength": 104, - "snippet": { - "text": "public class RustCallAttribute : Attribute\r\n{\r\n public string MethodName { get; set; } = null!;\r\n}\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ee51ab44dc7322c3", - "equalIndicator/v1": "36145315971cad3d1eea22602269c963011d5353fcffd7bd69df617298f43e7b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetPosition' coverage is below the threshold 50%", - "markdown": "Method `GetPosition` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls2/vanilla.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 78, - "startColumn": 21, - "charOffset": 2922, - "charLength": 11, - "snippet": { - "text": "GetPosition" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 76, - "startColumn": 1, - "charOffset": 2880, - "charLength": 93, - "snippet": { - "text": " #endregion\r\n \r\n public Vector3f GetPosition()\r\n {\r\n return new Vector3f(\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "03b91bbda2faba79", - "equalIndicator/v1": "3667b8304e584c424b12d4465c225a5664fba2d91dc246be87ca3d585b34d512" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'InvokePropertyChanged' coverage is below the threshold 50%", - "markdown": "Method `InvokePropertyChanged` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splits/DarkSouls1/ItemState.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 46, - "startColumn": 17, - "charOffset": 1576, - "charLength": 21, - "snippet": { - "text": "InvokePropertyChanged" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 44, - "startColumn": 1, - "charOffset": 1494, - "charLength": 216, - "snippet": { - "text": " public event PropertyChangedEventHandler? PropertyChanged;\r\n\r\n public void InvokePropertyChanged(string propertyName)\r\n {\r\n PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "aedcab70c5ec5d8e", - "equalIndicator/v1": "3680f922de39603df4c53f63e693c2718e4a4ff2289ddf114e51c98348114736" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ToString' coverage is below the threshold 50%", - "markdown": "Method `ToString` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 465, - "startColumn": 28, - "charOffset": 14825, - "charLength": 8, - "snippet": { - "text": "ToString" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 463, - "startColumn": 1, - "charOffset": 14736, - "charLength": 129, - "snippet": { - "text": "public class ItemViewModel : ICustomNotifyPropertyChanged\r\n{\r\n public override string ToString()\r\n {\r\n return Name;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3501457cf5982fb6", - "equalIndicator/v1": "36ce6c9926fbdf8bf77443d3ffe4c8faf61b4309812f8f4779ca0b4e13360b08" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetTestValue' coverage is below the threshold 50%", - "markdown": "Method `GetTestValue` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 241, - "startColumn": 19, - "charOffset": 8939, - "charLength": 12, - "snippet": { - "text": "GetTestValue" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 239, - "startColumn": 1, - "charOffset": 8917, - "charLength": 94, - "snippet": { - "text": "\r\n\r\n public object GetTestValue()\r\n {\r\n WriteWeaponDescription(1105000, \"asdf\");\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "27dc9452820a3f29", - "equalIndicator/v1": "371339d00ec48990f466a306746615a37ae9a1873ab748757ed76e8ce9ce0896" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetAttribute' coverage is below the threshold 50%", - "markdown": "Method `GetAttribute` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls2/DarkSouls2.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 34, - "startColumn": 16, - "charOffset": 1523, - "charLength": 12, - "snippet": { - "text": "GetAttribute" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 32, - "startColumn": 1, - "charOffset": 1305, - "charLength": 384, - "snippet": { - "text": " public bool ReadEventFlag(uint eventFlagId) => _darkSouls2?.ReadEventFlag(eventFlagId) ?? false;\r\n public int GetBossKillCount(BossType bossType) => _darkSouls2?.GetBossKillCount(bossType) ?? 0;\r\n public int GetAttribute(Attribute attribute) => _darkSouls2?.GetAttribute(attribute) ?? 0;\r\n public TreeBuilder GetTreeBuilder() => _darkSouls2?.GetTreeBuilder() ?? null!;\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "6932f8bbb561f5a3", - "equalIndicator/v1": "379e5acd775cc0db21b2f5279d1aae7b6c4effc9c378d047d9a0c9b7ac4c9d69" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_NewSplitBossKillEnabled' coverage is below the threshold 50%", - "markdown": "Method `set_NewSplitBossKillEnabled` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 228, - "startColumn": 9, - "charOffset": 8155, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 226, - "startColumn": 1, - "charOffset": 8098, - "charLength": 167, - "snippet": { - "text": " {\r\n get => _newSplitBossKillEnabled;\r\n set => this.SetField(ref _newSplitBossKillEnabled, value);\r\n }\r\n private bool _newSplitBossKillEnabled;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4fefa95751294804", - "equalIndicator/v1": "37dc72e8486bb2faa58239348a5899a037003ba3ea4a3a7b8295572f8e8ebd89" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadUInt16' coverage is below the threshold 50%", - "markdown": "Method `ReadUInt16` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 63, - "startColumn": 26, - "charOffset": 2055, - "charLength": 10, - "snippet": { - "text": "ReadUInt16" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 61, - "startColumn": 1, - "charOffset": 2021, - "charLength": 157, - "snippet": { - "text": " }\r\n\r\n public static ushort ReadUInt16(this IMemory memory, long offset)\r\n {\r\n return BitConverter.ToUInt16(memory.ReadBytes(offset, 2), 0);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "68ce72e2c145beb8", - "equalIndicator/v1": "37ed909eb9a0aee789561cdb253c478b8be2842fe1a7f8c538fd64d0c74408c6" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_Flag' coverage is below the threshold 50%", - "markdown": "Method `get_Flag` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/BossViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 62, - "startColumn": 9, - "charOffset": 1744, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 60, - "startColumn": 1, - "charOffset": 1707, - "charLength": 107, - "snippet": { - "text": " public uint Flag\r\n {\r\n get => _flag;\r\n set => this.SetField(ref _flag, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5f4da7ffc3cfa983", - "equalIndicator/v1": "382c267abc7b9534e2297044c057aa2e5cc131734cdf3ce9fbe933fd1c7dc3d2" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ClearBit' coverage is below the threshold 50%", - "markdown": "Method `ClearBit` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Extensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 81, - "startColumn": 24, - "charOffset": 2390, - "charLength": 8, - "snippet": { - "text": "ClearBit" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 79, - "startColumn": 1, - "charOffset": 2358, - "charLength": 115, - "snippet": { - "text": " }\r\n\r\n public static long ClearBit(this long l, int index)\r\n {\r\n return l & ~((long)0x1 << index);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "8182c75f0c64d9d0", - "equalIndicator/v1": "388599ccbac4701fecd83d9a759f44c20592fd8e0c3c52297336f1fb7c4b328f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'SoulMemory.Result' coverage is below the threshold 50%", - "markdown": "Class `SoulMemory.Result` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Result.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 26, - "startColumn": 14, - "charOffset": 1034, - "charLength": 6, - "snippet": { - "text": "Result" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 24, - "startColumn": 1, - "charOffset": 942, - "charLength": 286, - "snippet": { - "text": "/// Can be Unwrapped - this will throw when the result is Err\r\n/// \r\npublic class Result\r\n{\r\n #region Sugar interface ==========================================================================================================================================================\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d3eecc307145430a", - "equalIndicator/v1": "38fc95ab2dc511b693e281c37de34bac306202ec86342fb685f7783e76d4efa3" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'InvokePropertyChanged' coverage is below the threshold 50%", - "markdown": "Method `InvokePropertyChanged` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/PositionViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 83, - "startColumn": 17, - "charOffset": 2159, - "charLength": 21, - "snippet": { - "text": "InvokePropertyChanged" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 81, - "startColumn": 1, - "charOffset": 2077, - "charLength": 216, - "snippet": { - "text": " public event PropertyChangedEventHandler? PropertyChanged;\r\n\r\n public void InvokePropertyChanged(string propertyName)\r\n {\r\n PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "94c23149dc61f593", - "equalIndicator/v1": "3900e75057357ec87640e674f9e098397dfeed0970701abd9ff76bba8d38badc" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ToString' coverage is below the threshold 50%", - "markdown": "Method `ToString` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/ParamTableEntry.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 25, - "startColumn": 28, - "charOffset": 1022, - "charLength": 8, - "snippet": { - "text": "ToString" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 23, - "startColumn": 1, - "charOffset": 951, - "charLength": 104, - "snippet": { - "text": " public uint NameOffset { get; set; }\r\n\r\n public override string ToString() => Id.ToString();\r\n}\r\n" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "eeeef4272f0b999f", - "equalIndicator/v1": "39978003ce6845a5e67a14f96d524ee5e44b9be8ace06cf81d715a7feaf60af3" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_EnumTemplate' coverage is below the threshold 50%", - "markdown": "Method `get_EnumTemplate` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/SplitTemplateSelector.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 25, - "startColumn": 40, - "charOffset": 1018, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 23, - "startColumn": 1, - "charOffset": 917, - "charLength": 191, - "snippet": { - "text": "public class SplitTemplateSelector : DataTemplateSelector\r\n{\r\n public DataTemplate EnumTemplate { get; set; } = null!;\r\n public DataTemplate VectorSizeTemplate { get; set; } = null!;\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "708af11e6a7841a7", - "equalIndicator/v1": "3a2982516bd10c1d0922006d6d42824fdb859b3f6eb66860733a91c2a6680416" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'TryRefresh' coverage is below the threshold 50%", - "markdown": "Method `TryRefresh` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 138, - "startColumn": 43, - "charOffset": 5395, - "charLength": 10, - "snippet": { - "text": "TryRefresh" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 136, - "startColumn": 1, - "charOffset": 5304, - "charLength": 213, - "snippet": { - "text": " /// \r\n /// \r\n public static ResultErr TryRefresh(ref Process? process, string name, Func> initialize, Action reset)\r\n {\r\n try\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d433c4e394241085", - "equalIndicator/v1": "3a669fe7304637ad2c5535ce787649e3be99a7345882d421820446dffc8b6658" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetSaveFileIgt' coverage is below the threshold 50%", - "markdown": "Method `GetSaveFileIgt` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Sl2Reader.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 49, - "startColumn": 24, - "charOffset": 1849, - "charLength": 14, - "snippet": { - "text": "GetSaveFileIgt" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 47, - "startColumn": 1, - "charOffset": 1712, - "charLength": 220, - "snippet": { - "text": " /// The game version\r\n /// IGT or -1 if sometimes failed\r\n public static int? GetSaveFileIgt(string? path, int slot, bool ptde)\r\n {\r\n int? igt = null;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d0399b31aabd93bb", - "equalIndicator/v1": "3c5fcc7a23c887e98f5698c4cefa7038d620067d498e87846e35e5ea7115ecad" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'TryRefresh' coverage is below the threshold 50%", - "markdown": "Method `TryRefresh` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Process/ProcessHook.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 38, - "startColumn": 36, - "charOffset": 1677, - "charLength": 10, - "snippet": { - "text": "TryRefresh" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 36, - "startColumn": 1, - "charOffset": 1593, - "charLength": 184, - "snippet": { - "text": " /// \r\n /// \r\n public ResultErr TryRefresh()\r\n {\r\n var processRefreshResult = ProcessWrapper.TryRefresh(name, out var e);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "eccea8ad29db7b23", - "equalIndicator/v1": "3ced5816b1f0b11c50efeec6bb2ac6ce541bb2820ebd5549366085ca87c3ff5c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadBytes' coverage is below the threshold 50%", - "markdown": "Method `ReadBytes` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Process/ProcessWrapper.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 83, - "startColumn": 19, - "charOffset": 2982, - "charLength": 9, - "snippet": { - "text": "ReadBytes" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 81, - "startColumn": 1, - "charOffset": 2941, - "charLength": 114, - "snippet": { - "text": " #region IMemory\r\n\r\n public byte[] ReadBytes(long offset, int length)\r\n {\r\n if (_process == null)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7bdeecf8359d1361", - "equalIndicator/v1": "3ec793cc43d809f5e4acd35f3706bef6dd11ae931b347056ef888f33cf04c7bb" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'OnReset' coverage is below the threshold 50%", - "markdown": "Method `OnReset` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls3Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 79, - "startColumn": 18, - "charOffset": 2407, - "charLength": 7, - "snippet": { - "text": "OnReset" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 77, - "startColumn": 1, - "charOffset": 2381, - "charLength": 102, - "snippet": { - "text": " }\r\n\r\n private void OnReset(object sender, TimerPhase timerPhase)\r\n {\r\n ResetTimer();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9b9219de847bcc88", - "equalIndicator/v1": "3f12a08b1ce95dd52cbc9b8841b59f68a7bab4552c4cbe28f831b004e34b5868" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_Area' coverage is below the threshold 50%", - "markdown": "Method `set_Area` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/PositionViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 32, - "startColumn": 9, - "charOffset": 1132, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 30, - "startColumn": 1, - "charOffset": 1086, - "charLength": 103, - "snippet": { - "text": " {\r\n get => Position.Area;\r\n set => this.SetField(ref Position.Area, value);\r\n }\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "73f8e1cff6ab413b", - "equalIndicator/v1": "3f17993f8099db77ad9140aeb43365fb11fcfe19bbfe9a16044d2cfe334bad12" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Constructor 'HotkeyForm' coverage is below the threshold 50%", - "markdown": "Constructor `HotkeyForm` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Hotkeys/GlobalHotKey.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 97, - "startColumn": 12, - "charOffset": 3053, - "charLength": 10, - "snippet": { - "text": "HotkeyForm" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 95, - "startColumn": 1, - "charOffset": 3007, - "charLength": 138, - "snippet": { - "text": "public class HotkeyForm : Form\r\n{\r\n public HotkeyForm(ManualResetEvent windowReadyEvent)\r\n {\r\n GlobalHotKey.Handle = Handle;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ff4056c9104c8d99", - "equalIndicator/v1": "3fd04a49f843322523b08d6bf93d29d5e4e13bb62bc735c832ae16d9584c0957" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'Memory.TreeBuilder' coverage is below the threshold 50%", - "markdown": "Class `Memory.TreeBuilder` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/TreeBuilder.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 26, - "startColumn": 14, - "charOffset": 1161, - "charLength": 11, - "snippet": { - "text": "TreeBuilder" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 24, - "startColumn": 1, - "charOffset": 1098, - "charLength": 119, - "snippet": { - "text": "/// or to validate the patterns.\r\n/// \r\npublic class TreeBuilder\r\n{\r\n public List Tree = [];\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "111e9d1afb0a2954", - "equalIndicator/v1": "404c96968a1ae7d7920668fb02d18acc20a45ccda5f4a48b6a405c68ce38b1f8" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'Inject' coverage is below the threshold 50%", - "markdown": "Method `Inject` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/soulmods/Soulmods.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 50, - "startColumn": 24, - "charOffset": 1596, - "charLength": 6, - "snippet": { - "text": "Inject" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 48, - "startColumn": 1, - "charOffset": 1540, - "charLength": 166, - "snippet": { - "text": "public static class Soulmods\r\n{\r\n public static bool Inject(Process process)\r\n {\r\n var dir = Path.GetDirectoryName(typeof(Soulmods).Assembly.Location)!;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3c3b27b65b36f442", - "equalIndicator/v1": "405d815650e3aadb1fc69f23dc7fcdb16fc06194e5e465ba547e33ccb8d03b9e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'UpdateTimer' coverage is below the threshold 50%", - "markdown": "Method `UpdateTimer` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls3Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 129, - "startColumn": 18, - "charOffset": 3756, - "charLength": 11, - "snippet": { - "text": "UpdateTimer" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 127, - "startColumn": 1, - "charOffset": 3718, - "charLength": 90, - "snippet": { - "text": "\r\n #region Timer\r\n private void UpdateTimer()\r\n {\r\n switch (_timerState)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9effdd206d080e50", - "equalIndicator/v1": "40733fbe9ed541fb983fe9e52999619d7aab243f1a0a83ece3f93fbec0b96bb1" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'SetViewModel' coverage is below the threshold 50%", - "markdown": "Method `SetViewModel` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/SekiroSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 49, - "startColumn": 17, - "charOffset": 1734, - "charLength": 12, - "snippet": { - "text": "SetViewModel" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 47, - "startColumn": 1, - "charOffset": 1709, - "charLength": 115, - "snippet": { - "text": " }\r\n\r\n public void SetViewModel(MainViewModel mainViewModel)\r\n {\r\n _mainViewModel = mainViewModel;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7c179bd79863dd76", - "equalIndicator/v1": "40f008238a3c229f3af394770e9c5d1af2a2ef468c6625ffde022d41db44bf2c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetInGameTimeMilliseconds' coverage is below the threshold 50%", - "markdown": "Method `GetInGameTimeMilliseconds` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 161, - "startColumn": 16, - "charOffset": 5639, - "charLength": 25, - "snippet": { - "text": "GetInGameTimeMilliseconds" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 159, - "startColumn": 1, - "charOffset": 5615, - "charLength": 111, - "snippet": { - "text": " }\r\n\r\n public int GetInGameTimeMilliseconds()\r\n {\r\n return _gameDataMan.ReadInt32(_igtOffset);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "00089bacd7f8b6ec", - "equalIndicator/v1": "40fab897c166ba8cc3e8e83a1a172cda534e49d06482225ec5ab7c61a715d089" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'InvokePropertyChanged' coverage is below the threshold 50%", - "markdown": "Method `InvokePropertyChanged` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splits/DarkSouls2/BossKill.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 51, - "startColumn": 17, - "charOffset": 1641, - "charLength": 21, - "snippet": { - "text": "InvokePropertyChanged" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 49, - "startColumn": 1, - "charOffset": 1559, - "charLength": 216, - "snippet": { - "text": " public event PropertyChangedEventHandler? PropertyChanged;\r\n\r\n public void InvokePropertyChanged(string propertyName)\r\n {\r\n PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "af4703830b00d197", - "equalIndicator/v1": "41957015f656f585c7cd4f1c94e324557caf63fd8e2e8c0c554c24b523381cbe" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetSaveFileGameTimeMilliseconds' coverage is below the threshold 50%", - "markdown": "Method `GetSaveFileGameTimeMilliseconds` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/DarkSouls1.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 44, - "startColumn": 16, - "charOffset": 2316, - "charLength": 31, - "snippet": { - "text": "GetSaveFileGameTimeMilliseconds" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 42, - "startColumn": 1, - "charOffset": 2096, - "charLength": 608, - "snippet": { - "text": " public BonfireState GetBonfireState(Bonfire bonfire) => _darkSouls1?.GetBonfireState(bonfire) ?? BonfireState.Unknown;\r\n public string? GetSaveFileLocation() => _darkSouls1?.GetSaveFileLocation();\r\n public int GetSaveFileGameTimeMilliseconds(string path, int slot) => _darkSouls1?.GetSaveFileGameTimeMilliseconds(path, slot) ?? 0;\r\n public void WriteWeaponDescription(uint weaponId, string description) => _darkSouls1?.WriteWeaponDescription(weaponId, description);\r\n public void WriteItemLotParam(int rowId, Action accessor) => _darkSouls1?.WriteItemLotParam(rowId, accessor);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d617de20480b1126", - "equalIndicator/v1": "41cefb422e2798d162df274e212e19af2f1b8ca3227c547dbd008fe73606dc45" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'CanAddSplit' coverage is below the threshold 50%", - "markdown": "Method `CanAddSplit` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls3/DarkSouls3ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 36, - "startColumn": 18, - "charOffset": 1442, - "charLength": 11, - "snippet": { - "text": "CanAddSplit" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 34, - "startColumn": 1, - "charOffset": 1251, - "charLength": 277, - "snippet": { - "text": " #region add/remove splits ============================================================================================================================================\r\n\r\n private bool CanAddSplit() \r\n {\r\n if(NewSplitTimingType == null || NewSplitType == null)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ebfc6b0903f3ce12", - "equalIndicator/v1": "42b6a084c86f7222f094d94914ad422a0f7f95d768c66070880941a6f2575f8a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_FileName' coverage is below the threshold 50%", - "markdown": "Method `set_FileName` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Process/ProcessWrapperModule.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 25, - "startColumn": 35, - "charOffset": 1018, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 23, - "startColumn": 1, - "charOffset": 928, - "charLength": 198, - "snippet": { - "text": "{\r\n public string ModuleName { get; set; } = null!;\r\n public string FileName { get; set; } = null!;\r\n public IntPtr BaseAddress { get; set; }\r\n public int ModuleMemorySize { get; set; }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0852e14a47f970cc", - "equalIndicator/v1": "4314a3af0825e01691522d8cad6db4fff0522dc9d284846701f6f63e98ad1b8e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'TryValidatePatterns' coverage is below the threshold 50%", - "markdown": "Method `TryValidatePatterns` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 33, - "startColumn": 24, - "charOffset": 1372, - "charLength": 19, - "snippet": { - "text": "TryValidatePatterns" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 31, - "startColumn": 1, - "charOffset": 1243, - "charLength": 361, - "snippet": { - "text": " /// Validate patterns in a TreeBuilder by counting the patterns in a given file.\r\n /// \r\n public static bool TryValidatePatterns(PointerTreeBuilder.PointerTreeBuilder treeBuilder, List filepaths, out List<(string fileName, string patternName, long count)> errors)\r\n {\r\n var files = new List<(string name, byte[] bytes)>();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e197e95f574d18e9", - "equalIndicator/v1": "432d3eca693563f6229178bf097d492086f05e1bd6499d8e35cead6a4c703bd3" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'TryRefresh' coverage is below the threshold 50%", - "markdown": "Method `TryRefresh` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Sekiro/Sekiro.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 48, - "startColumn": 36, - "charOffset": 2069, - "charLength": 10, - "snippet": { - "text": "TryRefresh" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 46, - "startColumn": 1, - "charOffset": 1981, - "charLength": 226, - "snippet": { - "text": " public Process? GetProcess() => _process;\r\n \r\n public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, \"sekiro\", InitPointers, ResetPointers);\r\n\r\n public TreeBuilder GetTreeBuilder()\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "6779be894eb9dedd", - "equalIndicator/v1": "4334eb18f2dea4e0ea3f0248f754163994842652811ee17b725e505cc762a148" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'SelectGameFromLiveSplitState' coverage is below the threshold 50%", - "markdown": "Method `SelectGameFromLiveSplitState` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/SoulComponent.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 328, - "startColumn": 18, - "charOffset": 11572, - "charLength": 28, - "snippet": { - "text": "SelectGameFromLiveSplitState" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 326, - "startColumn": 1, - "charOffset": 11433, - "charLength": 238, - "snippet": { - "text": " /// Reads the game name from livesplit and tries to write the appropriate game to the view model\r\n /// \r\n private void SelectGameFromLiveSplitState(LiveSplitState? s)\r\n {\r\n MainWindow.Dispatcher.Invoke(() =>\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7ace4c87473ff699", - "equalIndicator/v1": "43640031213a5224bcd0383bd1abd47e0a5e7c6bcb3bcf5d894c5028deaf2555" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_NewSplitBoss' coverage is below the threshold 50%", - "markdown": "Method `set_NewSplitBoss` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 140, - "startColumn": 9, - "charOffset": 4272, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 138, - "startColumn": 1, - "charOffset": 4226, - "charLength": 115, - "snippet": { - "text": " {\r\n get => _newSplitBoss;\r\n set\r\n {\r\n this.SetField(ref _newSplitBoss, value);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "dbab3ae2d6ab2f40", - "equalIndicator/v1": "440f39b6ef17d1b4b207f7c19cd1acc2576c61063469073900c7a0a3d9056149" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_NewSplitBossKillEnabled' coverage is below the threshold 50%", - "markdown": "Method `get_NewSplitBossKillEnabled` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 227, - "startColumn": 9, - "charOffset": 8113, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 225, - "startColumn": 1, - "charOffset": 8057, - "charLength": 164, - "snippet": { - "text": " public bool NewSplitBossKillEnabled\r\n {\r\n get => _newSplitBossKillEnabled;\r\n set => this.SetField(ref _newSplitBossKillEnabled, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7dba34f730e71d20", - "equalIndicator/v1": "443779411b95f53fc6b7e906890d538829fd658a7dfc9320f7176d5c70a98bac" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Constructor 'RefreshError' coverage is below the threshold 50%", - "markdown": "Constructor `RefreshError` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/RefreshError.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 29, - "startColumn": 12, - "charOffset": 1082, - "charLength": 12, - "snippet": { - "text": "RefreshError" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 27, - "startColumn": 1, - "charOffset": 1062, - "charLength": 93, - "snippet": { - "text": " }\r\n\r\n public RefreshError(RefreshErrorReason reason)\r\n {\r\n Reason = reason;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "26999fce2e184443", - "equalIndicator/v1": "44a37707b66ce7eb395af2ef171820d285a88370055e4f3c6328445cc77df8c0" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'SetViewModel' coverage is below the threshold 50%", - "markdown": "Method `SetViewModel` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls1Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 47, - "startColumn": 17, - "charOffset": 1755, - "charLength": 12, - "snippet": { - "text": "SetViewModel" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 45, - "startColumn": 1, - "charOffset": 1730, - "charLength": 115, - "snippet": { - "text": " }\r\n\r\n public void SetViewModel(MainViewModel mainViewModel)\r\n {\r\n _mainViewModel = mainViewModel;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "50cb82aefd3b4687", - "equalIndicator/v1": "4508eaffde3768fb73dfb67996d76e951108db8db14b5c9648cdf012d5aadccb" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetVersion' coverage is below the threshold 50%", - "markdown": "Method `GetVersion` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/EldenRing.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 276, - "startColumn": 29, - "charOffset": 9931, - "charLength": 10, - "snippet": { - "text": "GetVersion" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 274, - "startColumn": 1, - "charOffset": 9893, - "charLength": 150, - "snippet": { - "text": " };\r\n\r\n public EldenRingVersion GetVersion(Version v)\r\n {\r\n var version = _versions.FirstOrDefault(i => i.version.CompareTo(v) == 0);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "47d8eb84264a0cb5", - "equalIndicator/v1": "450d813fa6d88bf6016c513f270d7b4dbd789e069b40b08735b7c7e4ac4bea72" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'TryRefresh' coverage is below the threshold 50%", - "markdown": "Method `TryRefresh` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/EldenRing.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 49, - "startColumn": 36, - "charOffset": 1869, - "charLength": 10, - "snippet": { - "text": "TryRefresh" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 47, - "startColumn": 1, - "charOffset": 1785, - "charLength": 225, - "snippet": { - "text": " public Process? GetProcess() => _process;\r\n\r\n public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, \"eldenring\", InitPointers, ResetPointers);\r\n\r\n public TreeBuilder GetTreeBuilder()\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "dcde8cd9c7c31097", - "equalIndicator/v1": "45648b8f7ce19b1c287a38aacaadaca2e909053272ca7f2b8c2da568fa0dd7e2" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'Parameters.ParamBitFieldAttribute' coverage is below the threshold 50%", - "markdown": "Class `Parameters.ParamBitFieldAttribute` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/ParamFieldAttribute.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 40, - "startColumn": 16, - "charOffset": 1337, - "charLength": 22, - "snippet": { - "text": "ParamBitFieldAttribute" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 38, - "startColumn": 1, - "charOffset": 1317, - "charLength": 166, - "snippet": { - "text": "}\r\n\r\ninternal class ParamBitFieldAttribute(string paramFieldName, int bitsOffset, int bits) : System.Attribute\r\n{\r\n public string ParamFieldName = paramFieldName;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7d35de3a3e93892c", - "equalIndicator/v1": "4571ada1a8115184f0357befae45b819d5dc2ce00bb20960110564a518407c08" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_AttributeType' coverage is below the threshold 50%", - "markdown": "Method `get_AttributeType` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splits/DarkSouls2/Attribute.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 29, - "startColumn": 9, - "charOffset": 1161, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 27, - "startColumn": 1, - "charOffset": 1088, - "charLength": 161, - "snippet": { - "text": " public SoulMemory.DarkSouls2.Attribute AttributeType\r\n {\r\n get => _attributeType;\r\n set => this.SetField(ref _attributeType, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "20444b43bcf3f5c0", - "equalIndicator/v1": "460b29178591efdf6810dcba40ce789868ca7cb3849c62e29b05f28351c73e80" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'SplitsTreeView_OnSelectedItemChanged' coverage is below the threshold 50%", - "markdown": "Method `SplitsTreeView_OnSelectedItemChanged` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2Control.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 67, - "startColumn": 18, - "charOffset": 2303, - "charLength": 36, - "snippet": { - "text": "SplitsTreeView_OnSelectedItemChanged" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 65, - "startColumn": 1, - "charOffset": 2268, - "charLength": 188, - "snippet": { - "text": " }\r\n }\r\n private void SplitsTreeView_OnSelectedItemChanged(object sender, RoutedPropertyChangedEventArgs e)\r\n {\r\n _darkSouls2ViewModel.SelectedSplit = null;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "77240ada4738aa89", - "equalIndicator/v1": "4630b1e723a23bb5a818793ab7b2fdedbedf57f338fdb33ebbeeeb61b4c85aa7" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'BoyerMooreCount' coverage is below the threshold 50%", - "markdown": "Method `BoyerMooreCount` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 272, - "startColumn": 23, - "charOffset": 10251, - "charLength": 15, - "snippet": { - "text": "BoyerMooreCount" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 270, - "startColumn": 1, - "charOffset": 10161, - "charLength": 176, - "snippet": { - "text": " /// Will return how many matches are found\r\n /// \r\n public static int BoyerMooreCount(this byte[] haystack, byte?[] needle)\r\n {\r\n int result = 0;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "8857a2641434d453", - "equalIndicator/v1": "465ca5e96ea69cbd2ba7d739f844df6c62910950347697e0ca03351fb930490e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'InvokePropertyChanged' coverage is below the threshold 50%", - "markdown": "Method `InvokePropertyChanged` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/SplitViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 42, - "startColumn": 17, - "charOffset": 1538, - "charLength": 21, - "snippet": { - "text": "InvokePropertyChanged" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 40, - "startColumn": 1, - "charOffset": 1456, - "charLength": 216, - "snippet": { - "text": " public event PropertyChangedEventHandler? PropertyChanged;\r\n\r\n public void InvokePropertyChanged(string propertyName)\r\n {\r\n PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "398a7bc1d7ae2d81", - "equalIndicator/v1": "467ff706a6da86f80879a6f0f13211dbd50c82b4522c0c8a2cdffaf14be84a05" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_Flag' coverage is below the threshold 50%", - "markdown": "Method `get_Flag` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/ItemPickupViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 54, - "startColumn": 9, - "charOffset": 1614, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 52, - "startColumn": 1, - "charOffset": 1577, - "charLength": 107, - "snippet": { - "text": " public uint Flag\r\n {\r\n get => _flag;\r\n set => this.SetField(ref _flag, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3b8c9b22319fe8e7", - "equalIndicator/v1": "4685cf1e055995c7a7fc09d2666bf44f361068319f52d65bf940d57ab6006f04" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'CreatePointerFromAddress' coverage is below the threshold 50%", - "markdown": "Method `CreatePointerFromAddress` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 64, - "startColumn": 20, - "charOffset": 1932, - "charLength": 24, - "snippet": { - "text": "CreatePointerFromAddress" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 62, - "startColumn": 1, - "charOffset": 1864, - "charLength": 149, - "snippet": { - "text": " /// \r\n /// \r\n public Pointer CreatePointerFromAddress(long? offset = null)\r\n {\r\n var copy = Copy();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "2fc5148e6bdfd6c6", - "equalIndicator/v1": "473fcf8ebf92c0ff24db521b84733cc31a8d53c37c7d6596adc8eaba72ab0591" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'OnPreviewTextInput_Float' coverage is below the threshold 50%", - "markdown": "Method `OnPreviewTextInput_Float` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2Control.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 76, - "startColumn": 18, - "charOffset": 2615, - "charLength": 24, - "snippet": { - "text": "OnPreviewTextInput_Float" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 74, - "startColumn": 1, - "charOffset": 2589, - "charLength": 135, - "snippet": { - "text": " }\r\n\r\n private void OnPreviewTextInput_Float(object sender, TextCompositionEventArgs e)\r\n {\r\n if (sender is TextBox t)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "cb8ca37b0f9980bd", - "equalIndicator/v1": "4764490f36c381119881570d2cde285258b94ac7481753eb8effb33f9df543d4" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'DarkSouls2.Vanilla' coverage is below the threshold 50%", - "markdown": "Class `DarkSouls2.Vanilla` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls2/vanilla.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 24, - "startColumn": 16, - "charOffset": 963, - "charLength": 7, - "snippet": { - "text": "Vanilla" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 22, - "startColumn": 1, - "charOffset": 912, - "charLength": 108, - "snippet": { - "text": "namespace SoulMemory.DarkSouls2;\r\n\r\ninternal class Vanilla : IDarkSouls2\r\n{\r\n private Process? _process;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "357a93010a837dd8", - "equalIndicator/v1": "47bcf8e66a3c7cc754ce94501fd44d6a33b6d75d4bec41d7c2a0ec3180013612" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_Split' coverage is below the threshold 50%", - "markdown": "Method `set_Split` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/HierarchicalViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 97, - "startColumn": 9, - "charOffset": 3018, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 95, - "startColumn": 1, - "charOffset": 2979, - "charLength": 123, - "snippet": { - "text": " {\r\n get => _split;\r\n set => this.SetField(ref _split, value);\r\n }\r\n private object _split = null!;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "880c1867525bfe16", - "equalIndicator/v1": "47ec57081685fc09287b77389d1a342d1f93ef79e40d4d774bfaac255805fc04" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'InitPointers' coverage is below the threshold 50%", - "markdown": "Method `InitPointers` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 115, - "startColumn": 37, - "charOffset": 4421, - "charLength": 12, - "snippet": { - "text": "InitPointers" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 113, - "startColumn": 1, - "charOffset": 4376, - "charLength": 80, - "snippet": { - "text": " }\r\n\r\n private ResultErr InitPointers()\r\n {\r\n try\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0f6429fdf3610ca7", - "equalIndicator/v1": "480046aba0ebddd30fddd98065fb1c36537d302b2be5cbe8a55b332d6ccd818e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadMemory' coverage is below the threshold 50%", - "markdown": "Method `ReadMemory` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 156, - "startColumn": 20, - "charOffset": 4187, - "charLength": 10, - "snippet": { - "text": "ReadMemory" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 154, - "startColumn": 1, - "charOffset": 4135, - "charLength": 124, - "snippet": { - "text": " #region Read/write memory\r\n\r\n private byte[] ReadMemory(long? offset, int length)\r\n {\r\n if (!_initialized)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e50cdc54496b35f4", - "equalIndicator/v1": "485403c45df532272cfd6db95b63c30a24b17a950fd256e685991c3701c909f4" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ThrowIfInstallationInvalid' coverage is below the threshold 50%", - "markdown": "Method `ThrowIfInstallationInvalid` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/SoulComponent.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 367, - "startColumn": 18, - "charOffset": 12909, - "charLength": 26, - "snippet": { - "text": "ThrowIfInstallationInvalid" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 365, - "startColumn": 1, - "charOffset": 12882, - "charLength": 145, - "snippet": { - "text": " ];\r\n\r\n private void ThrowIfInstallationInvalid()\r\n {\r\n var assemblyPath = Assembly.GetAssembly(typeof(SoulComponent)).Location;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "34b5fe2aa1c1e21d", - "equalIndicator/v1": "4902cd020e68ed088eed795e3ffd613b7a7684eb7573c14cabd9613a5749639a" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_Size' coverage is below the threshold 50%", - "markdown": "Method `set_Size` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/PositionViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 50, - "startColumn": 9, - "charOffset": 1519, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 48, - "startColumn": 1, - "charOffset": 1473, - "charLength": 103, - "snippet": { - "text": " {\r\n get => Position.Size;\r\n set => this.SetField(ref Position.Size, value);\r\n }\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "49152e0fe466a923", - "equalIndicator/v1": "4933ef9da1454372aa5f5253b09534912c91fd2ab092756d682fac9e9436600a" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadBytes' coverage is below the threshold 50%", - "markdown": "Method `ReadBytes` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 233, - "startColumn": 19, - "charOffset": 6121, - "charLength": 9, - "snippet": { - "text": "ReadBytes" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 231, - "startColumn": 1, - "charOffset": 6094, - "charLength": 117, - "snippet": { - "text": " }\r\n\r\n public byte[] ReadBytes(int size, long? offset = null)\r\n {\r\n return ReadMemory(offset, size);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f9796b9615a00589", - "equalIndicator/v1": "49a5efe155a0e2d9bea6f477c7f27263262b3568ccbc6900d5fc5b87e0fde4ab" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteFloat' coverage is below the threshold 50%", - "markdown": "Method `WriteFloat` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/IMemory.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 170, - "startColumn": 24, - "charOffset": 5531, - "charLength": 10, - "snippet": { - "text": "WriteFloat" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 168, - "startColumn": 1, - "charOffset": 5499, - "charLength": 197, - "snippet": { - "text": " }\r\n\r\n public static void WriteFloat(this IMemory memory, float value) => memory.WriteFloat(null, value);\r\n\r\n public static void WriteFloat(this IMemory memory, long? offset, float value)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0956938d31ebbbb0", - "equalIndicator/v1": "49d0d2c038f38e31b9af913f3d22047d08b78d43c07870e139df9e329960301a" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_CurrentPosition' coverage is below the threshold 50%", - "markdown": "Method `set_CurrentPosition` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 52, - "startColumn": 9, - "charOffset": 1682, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 50, - "startColumn": 1, - "charOffset": 1633, - "charLength": 164, - "snippet": { - "text": " {\r\n get => _currentPosition;\r\n set => this.SetField(ref _currentPosition, value);\r\n }\r\n private PositionViewModel _currentPosition = new();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "26a75fc29914d882", - "equalIndicator/v1": "49d21b781c53fd9705b3b6e0cf6093a6b3476ccdc162e49f0b3d80062ae50d05" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'DarkSouls2.HierarchicalSplitTypeViewModel' coverage is below the threshold 50%", - "markdown": "Class `DarkSouls2.HierarchicalSplitTypeViewModel` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/HierarchicalViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 53, - "startColumn": 14, - "charOffset": 1847, - "charLength": 30, - "snippet": { - "text": "HierarchicalSplitTypeViewModel" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 51, - "startColumn": 1, - "charOffset": 1795, - "charLength": 134, - "snippet": { - "text": "\r\n[XmlType(Namespace = \"DarkSouls2\")]\r\npublic class HierarchicalSplitTypeViewModel : ICustomNotifyPropertyChanged\r\n{\r\n [XmlIgnore]\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a6c69d2aa817e9f8", - "equalIndicator/v1": "4a4d2282b3e216b8949385686d782f2e8ac567384ab348754008cd432dd8b96d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'Process.ProcessWrapper' coverage is below the threshold 50%", - "markdown": "Class `Process.ProcessWrapper` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Process/ProcessWrapper.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 25, - "startColumn": 14, - "charOffset": 987, - "charLength": 14, - "snippet": { - "text": "ProcessWrapper" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 23, - "startColumn": 1, - "charOffset": 932, - "charLength": 142, - "snippet": { - "text": "namespace SoulMemory.MemoryV2.Process;\r\n\r\npublic class ProcessWrapper : IProcessWrapper\r\n{\r\n private System.Diagnostics.Process? _process;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "706214f65d1cedc0", - "equalIndicator/v1": "4a8f89e4ef480dd4e0cdee1bf503e7b951d08f477c550b4f5a1c9b06f86136a5" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_SelectedItem' coverage is below the threshold 50%", - "markdown": "Method `get_SelectedItem` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 349, - "startColumn": 9, - "charOffset": 13828, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 347, - "startColumn": 1, - "charOffset": 13782, - "charLength": 132, - "snippet": { - "text": " public Enum? SelectedItem\r\n {\r\n get => _selectedItem;\r\n set => this.SetField(ref _selectedItem, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7e81e0e659252510", - "equalIndicator/v1": "4ac97840ac29c5259dcee96fdd861582e31fda8e7a754a6694eb462538675cb3" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_BossType' coverage is below the threshold 50%", - "markdown": "Method `set_BossType` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splits/DarkSouls2/BossKill.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 31, - "startColumn": 9, - "charOffset": 1189, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 29, - "startColumn": 1, - "charOffset": 1147, - "charLength": 126, - "snippet": { - "text": " {\r\n get => _bossType;\r\n set => this.SetField(ref _bossType, value);\r\n }\r\n private BossType _bossType;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0ee485fe6a56e3fc", - "equalIndicator/v1": "4acf67e6f612cf8789919fe8ecfa58b31e661cb3c60bc0f340e6d0517ca93a66" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'CopyGamePosition' coverage is below the threshold 50%", - "markdown": "Method `CopyGamePosition` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/BaseViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 127, - "startColumn": 18, - "charOffset": 3997, - "charLength": 16, - "snippet": { - "text": "CopyGamePosition" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 125, - "startColumn": 1, - "charOffset": 3955, - "charLength": 99, - "snippet": { - "text": " #region Functions\r\n\r\n private void CopyGamePosition()\r\n {\r\n if (Position != null)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c777865e947fa681", - "equalIndicator/v1": "4b0ed02691272994f1375251c1670506f5242c39f7194cd0e4f8a6244c9518ed" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ScanRelative' coverage is below the threshold 50%", - "markdown": "Method `ScanRelative` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerTreeBuilder.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 31, - "startColumn": 28, - "charOffset": 1228, - "charLength": 12, - "snippet": { - "text": "ScanRelative" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 29, - "startColumn": 1, - "charOffset": 1158, - "charLength": 197, - "snippet": { - "text": " public List Tree = [];\r\n\r\n public PointerAppender ScanRelative(string name, string pattern, long addressOffset, long instructionSize)\r\n {\r\n var node = new PointerNode\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b5e3776f2cf323af", - "equalIndicator/v1": "4ba398dcda5655f0a35ef53e2ef821974cc20619bb262497eda9fa8d20340ecb" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadBytes' coverage is below the threshold 50%", - "markdown": "Method `ReadBytes` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/IMemory.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 53, - "startColumn": 26, - "charOffset": 1587, - "charLength": 9, - "snippet": { - "text": "ReadBytes" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 51, - "startColumn": 1, - "charOffset": 1541, - "charLength": 201, - "snippet": { - "text": "{\r\n #region Read\r\n public static byte[] ReadBytes(this IMemory memory, int length) => memory.ReadBytes(null, length);\r\n\r\n public static int ReadInt32(this IMemory memory, long? offset = null)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a25b4ac450ee8644", - "equalIndicator/v1": "4be2aa13c9f2ad1b179abd7f4ad6480a310caae2c462a0f8d79cec67cf5ca1c5" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadInt64' coverage is below the threshold 50%", - "markdown": "Method `ReadInt64` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 78, - "startColumn": 24, - "charOffset": 2528, - "charLength": 9, - "snippet": { - "text": "ReadInt64" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 76, - "startColumn": 1, - "charOffset": 2492, - "charLength": 157, - "snippet": { - "text": " }\r\n \r\n public static long ReadInt64(this IMemory memory, long offset)\r\n {\r\n return BitConverter.ToInt64(memory.ReadBytes(offset, 8), 0);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a0865d7292855225", - "equalIndicator/v1": "4c076f803ac685b6618415b2fa977954a54f4328636e5d19629ca1dc3a9ae087" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'UnregisterHotkey' coverage is below the threshold 50%", - "markdown": "Method `UnregisterHotkey` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Native/User32.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 35, - "startColumn": 24, - "charOffset": 1443, - "charLength": 16, - "snippet": { - "text": "UnregisterHotkey" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 33, - "startColumn": 1, - "charOffset": 1247, - "charLength": 288, - "snippet": { - "text": "\r\n public static bool RegisterHotkey(IntPtr handle, int id, uint modifiers, uint virtualKeyCode) => NativeMethods.RegisterHotKey(handle, id, modifiers, virtualKeyCode);\r\n public static bool UnregisterHotkey(IntPtr handle, int id) => NativeMethods.UnregisterHotKey(handle, id);\r\n\r\n}\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b747b1ea5d861aa6", - "equalIndicator/v1": "4c28d74f70ef2b1981d838be5f3e3ddbeb96034db31aea7c9400ab73f8d21195" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ToString' coverage is below the threshold 50%", - "markdown": "Method `ToString` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/EnumFlagViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 66, - "startColumn": 28, - "charOffset": 1967, - "charLength": 8, - "snippet": { - "text": "ToString" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 64, - "startColumn": 1, - "charOffset": 1864, - "charLength": 143, - "snippet": { - "text": " /// Used to compare items in the filtered combobox\r\n /// \r\n public override string ToString()\r\n {\r\n return Name;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "cd4e176837f4e720", - "equalIndicator/v1": "4c629bb3ff0c6a99e4d6be60ecb11406cc64754f1281693dc21e1766f5b3a618" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'Create' coverage is below the threshold 50%", - "markdown": "Method `Create` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/SoulComponentFactory.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 43, - "startColumn": 23, - "charOffset": 1576, - "charLength": 6, - "snippet": { - "text": "Create" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 41, - "startColumn": 1, - "charOffset": 1498, - "charLength": 156, - "snippet": { - "text": " public Version Version => VersionHelper.Version;\r\n\r\n public IComponent Create(LiveSplitState state)\r\n {\r\n return new SoulComponent(state);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d05ee0042afe5f97", - "equalIndicator/v1": "4c829948fa3f0393e01c93837aaa705a6ca12e189ff22a4c0c77b1bbdeafe59e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_VisibleFlagSplit' coverage is below the threshold 50%", - "markdown": "Method `set_VisibleFlagSplit` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 192, - "startColumn": 9, - "charOffset": 5506, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 190, - "startColumn": 1, - "charOffset": 5456, - "charLength": 146, - "snippet": { - "text": " {\r\n get => _visibleFlagSplit;\r\n set => this.SetField(ref _visibleFlagSplit, value);\r\n }\r\n private bool _visibleFlagSplit;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "54d54a1d231eb7f8", - "equalIndicator/v1": "4d0a9c077c88db646e616ba40d98789a77335c572bf0648bd91b460c1d6b339d" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'SoulSplitter.SoulComponent' coverage is below the threshold 50%", - "markdown": "Class `SoulSplitter.SoulComponent` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/SoulComponent.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 38, - "startColumn": 14, - "charOffset": 1320, - "charLength": 13, - "snippet": { - "text": "SoulComponent" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 36, - "startColumn": 1, - "charOffset": 1280, - "charLength": 118, - "snippet": { - "text": "namespace SoulSplitter;\r\n\r\npublic class SoulComponent : IComponent\r\n{\r\n public const string Name = \"SoulSplitter\";\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4f6f7aa39db8ffd1", - "equalIndicator/v1": "4d271b95fead5d5d7232276103fcd1f642c1dfcf2143920bf405aa986dbad85b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteInt32' coverage is below the threshold 50%", - "markdown": "Method `WriteInt32` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 276, - "startColumn": 17, - "charOffset": 7248, - "charLength": 10, - "snippet": { - "text": "WriteInt32" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 274, - "startColumn": 1, - "charOffset": 7223, - "charLength": 79, - "snippet": { - "text": " }\r\n\r\n public void WriteInt32(int value) => WriteInt32(null, value);\r\n\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ec6f894b5d91d69e", - "equalIndicator/v1": "4d51502ba1fb2317b132c2c8a9dd622e172d8c2e92f4df7383cd084a6a99a545" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetPosition' coverage is below the threshold 50%", - "markdown": "Method `GetPosition` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/DarkSouls1.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 35, - "startColumn": 21, - "charOffset": 1553, - "charLength": 11, - "snippet": { - "text": "GetPosition" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 33, - "startColumn": 1, - "charOffset": 1377, - "charLength": 396, - "snippet": { - "text": " public bool IsWarpRequested() => _darkSouls1?.IsWarpRequested() ?? false;\r\n public bool IsPlayerLoaded() => _darkSouls1?.IsPlayerLoaded() ?? false;\r\n public Vector3f GetPosition() => _darkSouls1?.GetPosition() ?? new Vector3f(0,0,0);\r\n public int GetInGameTimeMilliseconds() => _darkSouls1?.GetInGameTimeMilliseconds() ?? 0;\r\n public int NgCount() => _darkSouls1?.NgCount() ?? 0;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b75162a947095d46", - "equalIndicator/v1": "4d53dd0fed959d1f04f7d8013bc95c5a629d9b4709f6e71a8cb17368bc7c6992" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'StartAutoSplitting' coverage is below the threshold 50%", - "markdown": "Method `StartAutoSplitting` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/EldenRingSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 231, - "startColumn": 17, - "charOffset": 7532, - "charLength": 18, - "snippet": { - "text": "StartAutoSplitting" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 229, - "startColumn": 1, - "charOffset": 7507, - "charLength": 111, - "snippet": { - "text": " }\r\n\r\n public void StartAutoSplitting(EldenRingViewModel eldenRingViewModel)\r\n {\r\n _splits = (\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5eaa3350e59aa7ee", - "equalIndicator/v1": "4deeb5b0efb5efdf383e6b97bd47e707562c4d7d274e2eed5c99f6abb25c08a8" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_NewSplitItemState' coverage is below the threshold 50%", - "markdown": "Method `set_NewSplitItemState` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 168, - "startColumn": 9, - "charOffset": 5859, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 166, - "startColumn": 1, - "charOffset": 5808, - "charLength": 162, - "snippet": { - "text": " {\r\n get => _newSplitItemState;\r\n set => this.SetField(ref _newSplitItemState, value);\r\n }\r\n private ItemState _newSplitItemState = null!;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "41accd6309c36c42", - "equalIndicator/v1": "4e4f43608cd114cf35b700ecf4fe68e785819b295c91cafa79fb831474ae70d3" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ToString' coverage is below the threshold 50%", - "markdown": "Method `ToString` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerNode.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 43, - "startColumn": 28, - "charOffset": 1424, - "charLength": 8, - "snippet": { - "text": "ToString" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 41, - "startColumn": 1, - "charOffset": 1350, - "charLength": 98, - "snippet": { - "text": " public List Pointers = [];\r\n\r\n public override string ToString() => Name;\r\n}\r\n" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c646ded9b8f855d8", - "equalIndicator/v1": "4ecc7e4d5e432ec1f87985eb11cf8e887182c006eda8239ab9e8e8097ca6f887" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteUint32' coverage is below the threshold 50%", - "markdown": "Method `WriteUint32` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 284, - "startColumn": 17, - "charOffset": 7448, - "charLength": 11, - "snippet": { - "text": "WriteUint32" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 282, - "startColumn": 1, - "charOffset": 7423, - "charLength": 135, - "snippet": { - "text": " }\r\n\r\n public void WriteUint32(uint value) => WriteUint32(null, value);\r\n\r\n public void WriteUint32(long? offset, uint value)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f2f298266408dd63", - "equalIndicator/v1": "4f030cdda1fe861dda0045123135123bf23a356f485d7f3522a15d4c80056f9f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_Flag' coverage is below the threshold 50%", - "markdown": "Method `get_Flag` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/EnumFlagViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 58, - "startColumn": 9, - "charOffset": 1747, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 56, - "startColumn": 1, - "charOffset": 1710, - "charLength": 107, - "snippet": { - "text": " public uint Flag\r\n {\r\n get => _flag;\r\n set => this.SetField(ref _flag, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c7c7c0bf90814f7a", - "equalIndicator/v1": "4f089b5ca7f3778938d335ce1fcad579662b12c4ed6ef5dd16d05bf85927deca" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ToBytePattern' coverage is below the threshold 50%", - "markdown": "Method `ToBytePattern` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 162, - "startColumn": 27, - "charOffset": 6627, - "charLength": 13, - "snippet": { - "text": "ToBytePattern" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 160, - "startColumn": 1, - "charOffset": 6387, - "charLength": 323, - "snippet": { - "text": " /// Hex string, separated with whitespaces and ?/??/x/xx as wildcards. Example: \"48 8b 05 ? ? ? ? c6 40 18 00\"\r\n /// byte representation of the input string\r\n public static byte?[] ToBytePattern(this string pattern)\r\n {\r\n var result = new List();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0567393705af9abf", - "equalIndicator/v1": "5048283bfc7fee398350309fa71a63f2c9e6444a3211ee5d19aa42518a978c70" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_NameOffset' coverage is below the threshold 50%", - "markdown": "Method `set_NameOffset` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/ParamTableEntry.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 23, - "startColumn": 35, - "charOffset": 985, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 21, - "startColumn": 1, - "charOffset": 876, - "charLength": 175, - "snippet": { - "text": " public int Id { get; set; }\r\n public uint DataOffset { get; set; }\r\n public uint NameOffset { get; set; }\r\n\r\n public override string ToString() => Id.ToString();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "432fb4fb3360b18f", - "equalIndicator/v1": "506f3974c46513603a5f254b75d22d341cea0142cfc2a127daf7541a0d1f32e6" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'SelectTemplate' coverage is below the threshold 50%", - "markdown": "Method `SelectTemplate` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/SplitTemplateSelector.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 28, - "startColumn": 34, - "charOffset": 1142, - "charLength": 14, - "snippet": { - "text": "SelectTemplate" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 26, - "startColumn": 1, - "charOffset": 1040, - "charLength": 194, - "snippet": { - "text": " public DataTemplate VectorSizeTemplate { get; set; } = null!;\r\n\r\n public override DataTemplate SelectTemplate(object? item, DependencyObject container)\r\n {\r\n return item switch\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7ab5363447a1533a", - "equalIndicator/v1": "50b45c7119c17d5390fd2bca6a55ac4a7517d9223594c04ff8e79ed7ab82bbf8" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetTreeBuilder' coverage is below the threshold 50%", - "markdown": "Method `GetTreeBuilder` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 41, - "startColumn": 24, - "charOffset": 1745, - "charLength": 14, - "snippet": { - "text": "GetTreeBuilder" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 39, - "startColumn": 1, - "charOffset": 1583, - "charLength": 232, - "snippet": { - "text": " public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, \"darksoulsiii\", InitPointers, ResetPointers);\r\n\r\n public TreeBuilder GetTreeBuilder()\r\n {\r\n var treeBuilder = new TreeBuilder();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f0c4cd74517b997f", - "equalIndicator/v1": "512cbe2f7b95f552e7cf73ad63cc0e9b63e3f5cac825406568973eaa9727b03a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_TimingTypes' coverage is below the threshold 50%", - "markdown": "Method `set_TimingTypes` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 165, - "startColumn": 9, - "charOffset": 6347, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 163, - "startColumn": 1, - "charOffset": 6223, - "charLength": 187, - "snippet": { - "text": " {\r\n get => (ObservableCollection>)GetValue(TimingTypeDependencyProperty);\r\n set => SetValue(TimingTypeDependencyProperty, value);\r\n }\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d05d903c681720a2", - "equalIndicator/v1": "5148c49d4dbc9277078847384797e3aaf448bbdb5526971d48a40210140d7aef" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'SoulMemory.ResultErr' coverage is below the threshold 50%", - "markdown": "Class `SoulMemory.ResultErr` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Result.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 92, - "startColumn": 14, - "charOffset": 2494, - "charLength": 9, - "snippet": { - "text": "ResultErr" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 90, - "startColumn": 1, - "charOffset": 2428, - "charLength": 118, - "snippet": { - "text": "/// Result with generic error type.\r\n/// \r\npublic class ResultErr\r\n{\r\n private readonly TErr _err;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "dbc4d94e2c747c9f", - "equalIndicator/v1": "51b12d0594b5ceb45c62490ab5bf1bc40f71e7d584c2d30f067c03f73d7cf535" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'TryRefresh' coverage is below the threshold 50%", - "markdown": "Method `TryRefresh` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Process/ProcessWrapper.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 41, - "startColumn": 33, - "charOffset": 1700, - "charLength": 10, - "snippet": { - "text": "TryRefresh" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 39, - "startColumn": 1, - "charOffset": 1619, - "charLength": 165, - "snippet": { - "text": " /// \r\n /// \r\n public ProcessRefreshResult TryRefresh(string name, out Exception? exception)\r\n {\r\n exception = null;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "65adf6a90984a217", - "equalIndicator/v1": "520f8d7a309d7eede0b88671104d1e98dd96d9b7142985ddde9bbad106a02aef" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'IsReadable' coverage is below the threshold 50%", - "markdown": "Method `IsReadable` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Sl2Reader.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 97, - "startColumn": 25, - "charOffset": 3343, - "charLength": 10, - "snippet": { - "text": "IsReadable" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 95, - "startColumn": 1, - "charOffset": 3235, - "charLength": 152, - "snippet": { - "text": " /// Tests if the path to an SL2 file should be read or not\r\n /// \r\n private static bool IsReadable(string path)\r\n {\r\n try\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "05774bb4e10555f6", - "equalIndicator/v1": "52ce7506007557752f9f2e16fcc0ecea1e1d3da7908e876b60f73e48079c50ad" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteUInt16' coverage is below the threshold 50%", - "markdown": "Method `WriteUInt16` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 271, - "startColumn": 17, - "charOffset": 7115, - "charLength": 11, - "snippet": { - "text": "WriteUInt16" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 269, - "startColumn": 1, - "charOffset": 7025, - "charLength": 197, - "snippet": { - "text": " public void WriteUInt16(ushort value) => WriteUInt16(null, value);\r\n\r\n public void WriteUInt16(long? offset, ushort value)\r\n {\r\n WriteMemory(offset, BitConverter.GetBytes(value));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "cda710331e04bc86", - "equalIndicator/v1": "52ffe9e8176191b9790b207f9861d001e4cb68e5cfcb913e6c4197062aa3381f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadUnicodeString' coverage is below the threshold 50%", - "markdown": "Method `ReadUnicodeString` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 243, - "startColumn": 19, - "charOffset": 6369, - "charLength": 17, - "snippet": { - "text": "ReadUnicodeString" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 241, - "startColumn": 1, - "charOffset": 6342, - "charLength": 158, - "snippet": { - "text": " }\r\n\r\n public string ReadUnicodeString(out int length, int maxSize = 1000, long? offset = null)\r\n {\r\n var data = ReadMemory(offset, maxSize);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c4433f5bfc900e42", - "equalIndicator/v1": "53e6b29911a733e23e17aaf0b5f343cd34647d37d7ec073b0b5aed50a7788922" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_NewSplitItemPickup' coverage is below the threshold 50%", - "markdown": "Method `set_NewSplitItemPickup` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 248, - "startColumn": 9, - "charOffset": 6946, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 246, - "startColumn": 1, - "charOffset": 6894, - "charLength": 127, - "snippet": { - "text": " {\r\n get => _newSplitItemPickup;\r\n set\r\n {\r\n this.SetField(ref _newSplitItemPickup, value);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9926cef34d77a6fb", - "equalIndicator/v1": "53fa38d9538d5af83135befc74ea01d7183721302c246f6d6b300c8f3609abd8" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteBytes' coverage is below the threshold 50%", - "markdown": "Method `WriteBytes` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 312, - "startColumn": 17, - "charOffset": 8165, - "charLength": 10, - "snippet": { - "text": "WriteBytes" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 310, - "startColumn": 1, - "charOffset": 8140, - "charLength": 108, - "snippet": { - "text": " }\r\n\r\n public void WriteBytes(long? offset, byte[] value)\r\n {\r\n WriteMemory(offset, value);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9a1a9eafdd9156d6", - "equalIndicator/v1": "54075c0ecdca5a014dd3c84be96bf00adda36803c36bec1c7eefe4227ad30939" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'InvokePropertyChanged' coverage is below the threshold 50%", - "markdown": "Method `InvokePropertyChanged` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 310, - "startColumn": 17, - "charOffset": 10673, - "charLength": 21, - "snippet": { - "text": "InvokePropertyChanged" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 308, - "startColumn": 1, - "charOffset": 10591, - "charLength": 216, - "snippet": { - "text": " public event PropertyChangedEventHandler? PropertyChanged;\r\n\r\n public void InvokePropertyChanged(string propertyName)\r\n {\r\n PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "38341c3d4db57ef3", - "equalIndicator/v1": "540fdc6cf1547eaf4e7f2efc964f7bcbb3ca33d0080fd56141981e65e1ea425b" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_DataOffset' coverage is below the threshold 50%", - "markdown": "Method `get_DataOffset` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/TextTableEntry.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 22, - "startColumn": 30, - "charOffset": 948, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 20, - "startColumn": 1, - "charOffset": 872, - "charLength": 135, - "snippet": { - "text": "{\r\n public uint ItemLowRange { get; set; }\r\n public uint DataOffset { get; set; }\r\n public uint ItemHighRange { get; set; }\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7fc92bec00338acc", - "equalIndicator/v1": "547856825ebbce8e6da1f14251c550be9f35f15700707cf5b0f490cca7008a14" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_IsOk' coverage is below the threshold 50%", - "markdown": "Method `set_IsOk` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Result.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 160, - "startColumn": 39, - "charOffset": 3869, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 158, - "startColumn": 1, - "charOffset": 3797, - "charLength": 114, - "snippet": { - "text": "{\r\n private readonly TOk _ok;\r\n public bool IsOk { get; protected set; }\r\n public bool IsErr => !IsOk;\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ea748da8cf9cd739", - "equalIndicator/v1": "55645c660fa7140dfa04d88aeedd72a0f9fce123e3a9485879042044d8c4ad42" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetAttribute' coverage is below the threshold 50%", - "markdown": "Method `GetAttribute` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 162, - "startColumn": 16, - "charOffset": 6379, - "charLength": 12, - "snippet": { - "text": "GetAttribute" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 160, - "startColumn": 1, - "charOffset": 6342, - "charLength": 197, - "snippet": { - "text": " #endregion\r\n \r\n public int GetAttribute(Attribute attribute) => _playerGameData.ReadInt32((long)attribute);\r\n\r\n public int GetInGameTimeMilliseconds() => _gameDataMan.ReadInt32(0x68);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "20a71ece6754a62a", - "equalIndicator/v1": "5598f06454774ed902eaf4dbe79bca577a9ecda56be13d53b5aa04f15c69ea21" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_DateTime' coverage is below the threshold 50%", - "markdown": "Method `get_DateTime` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/ErrorViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 26, - "startColumn": 9, - "charOffset": 1000, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 24, - "startColumn": 1, - "charOffset": 955, - "charLength": 123, - "snippet": { - "text": " public DateTime DateTime\r\n {\r\n get => _dateTime;\r\n set => this.SetField(ref _dateTime, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "672993c0b3a9d53a", - "equalIndicator/v1": "55abfa1d7fc499216fc82f029e59bc3e780fc82e6053d05a6e3faf019b0bea41" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_Count' coverage is below the threshold 50%", - "markdown": "Method `get_Count` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splits/DarkSouls2/BossKill.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 37, - "startColumn": 9, - "charOffset": 1313, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 35, - "startColumn": 1, - "charOffset": 1276, - "charLength": 109, - "snippet": { - "text": " public int Count\r\n {\r\n get => _count;\r\n set => this.SetField(ref _count, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "73391b7958d2b13a", - "equalIndicator/v1": "55c32d67cdd312f7709a27616447221b5de3393cde53556cb43eba0cb36d06fc" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_ItemLowRange' coverage is below the threshold 50%", - "markdown": "Method `set_ItemLowRange` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/TextTableEntry.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 21, - "startColumn": 37, - "charOffset": 911, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 19, - "startColumn": 1, - "charOffset": 843, - "charLength": 162, - "snippet": { - "text": "public class TextTableEntry\r\n{\r\n public uint ItemLowRange { get; set; }\r\n public uint DataOffset { get; set; }\r\n public uint ItemHighRange { get; set; }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "537e16a19d15f4a7", - "equalIndicator/v1": "55cabdc28a78d2ec0ea84047e9c68723795ea9182ce7d67af0b311fda09327b3" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'Dispose' coverage is below the threshold 50%", - "markdown": "Method `Dispose` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls1Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 83, - "startColumn": 28, - "charOffset": 2830, - "charLength": 7, - "snippet": { - "text": "Dispose" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 81, - "startColumn": 1, - "charOffset": 2794, - "charLength": 91, - "snippet": { - "text": " }\r\n\r\n protected virtual void Dispose(bool disposing)\r\n {\r\n if (disposing)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "71b1e684468eb6f1", - "equalIndicator/v1": "5634d0ad4a8f8018a348cf2c29bb654a0b30295d7acd5461b406481179ef6046" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_VisibleBossSplit' coverage is below the threshold 50%", - "markdown": "Method `get_VisibleBossSplit` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 151, - "startColumn": 9, - "charOffset": 4516, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 149, - "startColumn": 1, - "charOffset": 4467, - "charLength": 143, - "snippet": { - "text": " public bool VisibleBossSplit\r\n {\r\n get => _visibleBossSplit;\r\n set => this.SetField(ref _visibleBossSplit, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7371ee658aeeedc6", - "equalIndicator/v1": "564bd439ac21dc694b9e81a8cdbcd614d213d0151cf67dec9364725d4890cd6d" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_NewSplitPositionEnabled' coverage is below the threshold 50%", - "markdown": "Method `get_NewSplitPositionEnabled` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 219, - "startColumn": 9, - "charOffset": 7885, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 217, - "startColumn": 1, - "charOffset": 7829, - "charLength": 164, - "snippet": { - "text": " public bool NewSplitPositionEnabled\r\n {\r\n get => _newSplitPositionEnabled;\r\n set => this.SetField(ref _newSplitPositionEnabled, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e28e2cd6a5f0d1dd", - "equalIndicator/v1": "569031e1b623b148fbb4acedf4b3cb0b2688b75210f17703cf0ad2174a90bb6c" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_ProcessWrapper' coverage is below the threshold 50%", - "markdown": "Method `get_ProcessWrapper` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Process/ProcessHook.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 23, - "startColumn": 45, - "charOffset": 1007, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 21, - "startColumn": 1, - "charOffset": 866, - "charLength": 282, - "snippet": { - "text": "public class ProcessHook(string name, IProcessWrapper? processWrapper = null) : IProcessHook\r\n{\r\n public IProcessWrapper ProcessWrapper { get; set; } = processWrapper ?? new ProcessWrapper();\r\n\r\n public System.Diagnostics.Process? GetProcess() => ProcessWrapper.GetProcess();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7df04b927c2acb5c", - "equalIndicator/v1": "57220d925f1f7dae064c5ae483b67630c38d49c7f48969207a723af512e3e101" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'SetViewModel' coverage is below the threshold 50%", - "markdown": "Method `SetViewModel` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/BaseSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 57, - "startColumn": 17, - "charOffset": 2019, - "charLength": 12, - "snippet": { - "text": "SetViewModel" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 55, - "startColumn": 1, - "charOffset": 1994, - "charLength": 115, - "snippet": { - "text": " }\r\n\r\n public void SetViewModel(MainViewModel mainViewModel)\r\n {\r\n _mainViewModel = mainViewModel;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9f6fdbbea9a37abd", - "equalIndicator/v1": "573f53af3c05da2d2f6ad93fd493712267cf32ac3851b6f895ff831b360647b1" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteUInt64' coverage is below the threshold 50%", - "markdown": "Method `WriteUInt64` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 154, - "startColumn": 24, - "charOffset": 4811, - "charLength": 11, - "snippet": { - "text": "WriteUInt64" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 152, - "startColumn": 1, - "charOffset": 4779, - "charLength": 164, - "snippet": { - "text": " }\r\n\r\n public static void WriteUInt64(this IMemory memory, long offset, ulong value)\r\n {\r\n memory.WriteBytes(offset, BitConverter.GetBytes(value));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "be003a78a3f7f657", - "equalIndicator/v1": "57a7c143a884add0700aeebfc59c4acbeba3c6d369c82d9d0ab5c86b763584a2" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_Id' coverage is below the threshold 50%", - "markdown": "Method `get_Id` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/ParamTableEntry.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 21, - "startColumn": 21, - "charOffset": 896, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 19, - "startColumn": 1, - "charOffset": 843, - "charLength": 149, - "snippet": { - "text": "public class ParamTableEntry\r\n{\r\n public int Id { get; set; }\r\n public uint DataOffset { get; set; }\r\n public uint NameOffset { get; set; }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "34a78f4f868df4e5", - "equalIndicator/v1": "57e35d2c308300aec630dca80a407eae7ae101c0cfda249d52f382117ac57ab4" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_Name' coverage is below the threshold 50%", - "markdown": "Method `get_Name` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/BossViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 55, - "startColumn": 9, - "charOffset": 1599, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 53, - "startColumn": 1, - "charOffset": 1560, - "charLength": 109, - "snippet": { - "text": " public string Name\r\n {\r\n get => _name;\r\n set => this.SetField(ref _name, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "fa346860d7d2411a", - "equalIndicator/v1": "57e4033df00006e31e92a409fbe1fa106ffe3281a6b112a9eae533f7d9fb3705" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_Id' coverage is below the threshold 50%", - "markdown": "Method `get_Id` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 510, - "startColumn": 9, - "charOffset": 15707, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 508, - "startColumn": 1, - "charOffset": 15672, - "charLength": 101, - "snippet": { - "text": " public uint Id\r\n {\r\n get => _id;\r\n set => this.SetField(ref _id, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9caa1738f1f34cce", - "equalIndicator/v1": "5856e1acc65efe2e5658c69c325a8abfd42a483bda2d17602a88df88bd53b586" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'NgCount' coverage is below the threshold 50%", - "markdown": "Method `NgCount` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 166, - "startColumn": 16, - "charOffset": 6557, - "charLength": 7, - "snippet": { - "text": "NgCount" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 164, - "startColumn": 1, - "charOffset": 6463, - "charLength": 206, - "snippet": { - "text": " public int GetInGameTimeMilliseconds() => _gameDataMan.ReadInt32(0x68);\r\n\r\n public int NgCount() => _gameDataMan.ReadInt32(0x3C);\r\n\r\n public int GetCurrentSaveSlot() => _gameMan.ReadInt32(0xA70);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1469ea666ce4ace2", - "equalIndicator/v1": "585de7241749a1352600c1d590c92b99189c8cf07900fce300b3eef2409e65b8" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'SetBit' coverage is below the threshold 50%", - "markdown": "Method `SetBit` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Extensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 76, - "startColumn": 24, - "charOffset": 2277, - "charLength": 6, - "snippet": { - "text": "SetBit" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 74, - "startColumn": 1, - "charOffset": 2245, - "charLength": 112, - "snippet": { - "text": " }\r\n\r\n public static long SetBit(this long l, int index)\r\n {\r\n return l | ((long)0x1 << index);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f6b693a3d6fe9622", - "equalIndicator/v1": "5892306fac17e650c24e9774fe8474e7cefa8a7b91b43effa61587499ef3d205" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_Name' coverage is below the threshold 50%", - "markdown": "Method `get_Name` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/KnownFlagViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 47, - "startColumn": 9, - "charOffset": 1459, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 45, - "startColumn": 1, - "charOffset": 1420, - "charLength": 109, - "snippet": { - "text": " public string Name\r\n {\r\n get => _name;\r\n set => this.SetField(ref _name, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c5c950c485d0091a", - "equalIndicator/v1": "58c888c2973a8c67761007f419c1fa75ccaf8a362da896af362e0afeb06ccec7" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ToString' coverage is below the threshold 50%", - "markdown": "Method `ToString` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splits/DarkSouls2/BossKill.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 42, - "startColumn": 28, - "charOffset": 1444, - "charLength": 8, - "snippet": { - "text": "ToString" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 40, - "startColumn": 1, - "charOffset": 1386, - "charLength": 115, - "snippet": { - "text": " private int _count = 1;\r\n\r\n public override string ToString()\r\n {\r\n return $\"{BossType} {Count}\";\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1bdbda5f7184fe50", - "equalIndicator/v1": "5a1d2c891c0ad5c5c6dd56027518070bc11001e926571dd07de125f0d4204442" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_BitBlt' coverage is below the threshold 50%", - "markdown": "Method `set_BitBlt` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Sekiro/Sekiro.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 403, - "startColumn": 17, - "charOffset": 14642, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 401, - "startColumn": 1, - "charOffset": 14600, - "charLength": 89, - "snippet": { - "text": " }\r\n }\r\n private set\r\n {\r\n lock (_bitBltLock)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ef206980372f11b2", - "equalIndicator/v1": "5a382dccadd2863cb2a83723714cb6a24d7308634aaf039967227a8604463df9" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_Bonfires' coverage is below the threshold 50%", - "markdown": "Method `set_Bonfires` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 216, - "startColumn": 9, - "charOffset": 9228, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 214, - "startColumn": 1, - "charOffset": 9112, - "charLength": 177, - "snippet": { - "text": " {\r\n get => (ObservableCollection>)GetValue(BonfiresDependencyProperty);\r\n set => SetValue(BonfiresDependencyProperty, value);\r\n }\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d198a7dfc7809b2f", - "equalIndicator/v1": "5a753c0be2d436ec3d7a2e15cddcd4d83dc81a26ba2a3a90c442405752bf3a4e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ResolveGameVersionSpecificOffsets' coverage is below the threshold 50%", - "markdown": "Method `ResolveGameVersionSpecificOffsets` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 144, - "startColumn": 18, - "charOffset": 5265, - "charLength": 33, - "snippet": { - "text": "ResolveGameVersionSpecificOffsets" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 142, - "startColumn": 1, - "charOffset": 5239, - "charLength": 113, - "snippet": { - "text": " }\r\n\r\n private void ResolveGameVersionSpecificOffsets(DsrVersion version)\r\n {\r\n switch (version)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f9d7226b6ecc09ab", - "equalIndicator/v1": "5a839eb8ead2fea876f542e77acc3b824f7ebf2fed094f6bd6a7e5792f1ebb25" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteMemory' coverage is below the threshold 50%", - "markdown": "Method `WriteMemory` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 178, - "startColumn": 18, - "charOffset": 4729, - "charLength": 11, - "snippet": { - "text": "WriteMemory" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 176, - "startColumn": 1, - "charOffset": 4703, - "charLength": 118, - "snippet": { - "text": " }\r\n\r\n private void WriteMemory(long? offset, byte[] bytes)\r\n {\r\n var offsetsCopy = Offsets.ToList();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "dc539756cc2db815", - "equalIndicator/v1": "5a9d726f2ca8b2da3b2f9bae64e3635fd3f7517804c82c18e3d9d693b9046315" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_ItemPickup' coverage is below the threshold 50%", - "markdown": "Method `get_ItemPickup` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/ItemPickupViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 40, - "startColumn": 9, - "charOffset": 1308, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 38, - "startColumn": 1, - "charOffset": 1259, - "charLength": 131, - "snippet": { - "text": " public ItemPickup ItemPickup\r\n {\r\n get => _itemPickup;\r\n set => this.SetField(ref _itemPickup, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9c2fa7d36b18f58e", - "equalIndicator/v1": "5af08e490f30818530fa9dff8cbc56e9f76689f4515412c5c4f73147358b07c6" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'DarkSouls1.ItemReader' coverage is below the threshold 50%", - "markdown": "Class `DarkSouls1.ItemReader` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/ItemReader.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 23, - "startColumn": 23, - "charOffset": 937, - "charLength": 10, - "snippet": { - "text": "ItemReader" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 21, - "startColumn": 1, - "charOffset": 879, - "charLength": 186, - "snippet": { - "text": "namespace SoulMemory.DarkSouls1;\r\n\r\ninternal static class ItemReader\r\n{\r\n internal static List GetCurrentInventoryItems(byte[] data, int listCount, int itemCount, int keyCount)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f0bc4ff9322b3988", - "equalIndicator/v1": "5b3340866329da49c49b30e70f18a24f9a92d42825f14c760d2ba2437f52da8e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteInt64' coverage is below the threshold 50%", - "markdown": "Method `WriteInt64` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 149, - "startColumn": 24, - "charOffset": 4648, - "charLength": 10, - "snippet": { - "text": "WriteInt64" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 147, - "startColumn": 1, - "charOffset": 4616, - "charLength": 162, - "snippet": { - "text": " }\r\n\r\n public static void WriteInt64(this IMemory memory, long offset, long value)\r\n {\r\n memory.WriteBytes(offset, BitConverter.GetBytes(value));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c01b4c69f9bc0273", - "equalIndicator/v1": "5b5216abef5fa43888e664694fce7cb1f45063bc063063390087c0c48a07a21d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'InvokePropertyChanged' coverage is below the threshold 50%", - "markdown": "Method `InvokePropertyChanged` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 522, - "startColumn": 17, - "charOffset": 15931, - "charLength": 21, - "snippet": { - "text": "InvokePropertyChanged" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 520, - "startColumn": 1, - "charOffset": 15849, - "charLength": 216, - "snippet": { - "text": " public event PropertyChangedEventHandler? PropertyChanged;\r\n\r\n public void InvokePropertyChanged(string propertyName)\r\n {\r\n PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a6098bc0b904aefa", - "equalIndicator/v1": "5b603f8d7328dc5c4be7c384d3c209cc30dd4387806772209b4ddf4050bee830" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'NgCount' coverage is below the threshold 50%", - "markdown": "Method `NgCount` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 230, - "startColumn": 16, - "charOffset": 8239, - "charLength": 7, - "snippet": { - "text": "NgCount" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 228, - "startColumn": 1, - "charOffset": 8145, - "charLength": 223, - "snippet": { - "text": " public int GetInGameTimeMilliseconds() => _gameDataMan.ReadInt32(0xa4);\r\n\r\n public int NgCount() => _gameDataMan.ReadInt32(0x78);\r\n\r\n public int GetCurrentSaveSlot() => _gameMan.ReadInt32(_currentSaveSlotOffset);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "edc07aff77b7c8b6", - "equalIndicator/v1": "5b63742c63ceacf2a004bb81651d68e7e758e01e2db353992d64b83307702400" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_VectorSizeTemplate' coverage is below the threshold 50%", - "markdown": "Method `get_VectorSizeTemplate` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/SplitTemplateSelector.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 26, - "startColumn": 46, - "charOffset": 1085, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 24, - "startColumn": 1, - "charOffset": 976, - "charLength": 223, - "snippet": { - "text": "{\r\n public DataTemplate EnumTemplate { get; set; } = null!;\r\n public DataTemplate VectorSizeTemplate { get; set; } = null!;\r\n\r\n public override DataTemplate SelectTemplate(object? item, DependencyObject container)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f234c73be4b91770", - "equalIndicator/v1": "5bb6f5c5f666e011433b7323d4305855110d73d7967fd7c1870683fb3517ec63" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'Converters.DropModTypeConverter' coverage is below the threshold 50%", - "markdown": "Class `Converters.DropModTypeConverter` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Converters/DropModTypeConverter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 24, - "startColumn": 14, - "charOffset": 965, - "charLength": 20, - "snippet": { - "text": "DropModTypeConverter" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 22, - "startColumn": 1, - "charOffset": 911, - "charLength": 195, - "snippet": { - "text": "namespace SoulSplitter.UI.Converters;\r\n\r\npublic class DropModTypeConverter : IValueConverter\r\n{\r\n public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "bbfc44c20c41b850", - "equalIndicator/v1": "5bcb0600692b494bd82afbc31d9df3017fa9dd97ff945b3c0d5d6161c970b2da" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteBytes' coverage is below the threshold 50%", - "markdown": "Method `WriteBytes` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/IMemory.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 39, - "startColumn": 17, - "charOffset": 1301, - "charLength": 10, - "snippet": { - "text": "WriteBytes" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 37, - "startColumn": 1, - "charOffset": 1276, - "charLength": 94, - "snippet": { - "text": " }\r\n\r\n public void WriteBytes(long? offset, byte[] bytes)\r\n {\r\n offset ??= 0;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ab5929432c17018f", - "equalIndicator/v1": "5c8a39241829679eef3107ef3b050ceddfafc8b4216c3e21080e5e6abc5510f2" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'Update' coverage is below the threshold 50%", - "markdown": "Method `Update` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/SoulComponent.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 66, - "startColumn": 17, - "charOffset": 2120, - "charLength": 6, - "snippet": { - "text": "Update" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 64, - "startColumn": 1, - "charOffset": 2043, - "charLength": 227, - "snippet": { - "text": " /// Called by livesplit every frame\r\n /// \r\n public void Update(IInvalidator invalidator, LiveSplitState state, float width, float height, LayoutMode mode)\r\n {\r\n MainWindow.Dispatcher.Invoke(() =>\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "28b7eeee6c202a7a", - "equalIndicator/v1": "5c8fb351e569cf8d51e21d4d46400a93c6364e81119f60c9d4ae4d2cbb4873b4" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'UpdateAutoSplitter' coverage is below the threshold 50%", - "markdown": "Method `UpdateAutoSplitter` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls3Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 207, - "startColumn": 17, - "charOffset": 6247, - "charLength": 18, - "snippet": { - "text": "UpdateAutoSplitter" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 205, - "startColumn": 1, - "charOffset": 6222, - "charLength": 101, - "snippet": { - "text": " }\r\n\r\n public void UpdateAutoSplitter()\r\n {\r\n if (_timerState != TimerState.Running)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3b75b23028540634", - "equalIndicator/v1": "5d7a221a59b94677fbd2ba8f8e43455e36d475e7375c4699971245aaf6e0c44e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'Memory.Pointer' coverage is below the threshold 50%", - "markdown": "Class `Memory.Pointer` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 24, - "startColumn": 14, - "charOffset": 953, - "charLength": 7, - "snippet": { - "text": "Pointer" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 22, - "startColumn": 1, - "charOffset": 899, - "charLength": 112, - "snippet": { - "text": "namespace SoulMemory.MemoryV2.Memory;\r\n\r\npublic class Pointer : IMemory\r\n{\r\n public readonly IMemory Memory;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4ba9249e3ee95eba", - "equalIndicator/v1": "5d8fb60d8eda250bdc28fb685f3830d920c42577ecdd205975ba53cb8647a796" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'OnUpdate' coverage is below the threshold 50%", - "markdown": "Method `OnUpdate` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/BaseSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 99, - "startColumn": 44, - "charOffset": 3148, - "charLength": 8, - "snippet": { - "text": "OnUpdate" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 97, - "startColumn": 1, - "charOffset": 3064, - "charLength": 159, - "snippet": { - "text": "\r\n public virtual void OnStart() { }\r\n public virtual ResultErr OnUpdate() { return Result.Ok();}\r\n public virtual void OnReset() { }\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "bd3226bea041dd5e", - "equalIndicator/v1": "5db87307845543fffd55b728a2fbf2ca5c70bb4043df8c2cdc041a16e8c39fb6" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_KnownFlags' coverage is below the threshold 50%", - "markdown": "Method `set_KnownFlags` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 177, - "startColumn": 88, - "charOffset": 6436, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 175, - "startColumn": 1, - "charOffset": 6167, - "charLength": 311, - "snippet": { - "text": "\r\n public static ObservableCollection> Bosses { get; set; } = new(Enum.GetValues(typeof(Boss)).Cast().Select(i => new EnumFlagViewModel(i)));\r\n public static ObservableCollection> KnownFlags { get; set; } = \r\n new(\r\n Enum\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d100f8aea45ce221", - "equalIndicator/v1": "5dc970697ed1b2ffefadce3fc6f4f5d2844e43b65e347a752815a48e9f76e613" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_NameOffset' coverage is below the threshold 50%", - "markdown": "Method `get_NameOffset` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/ParamTableEntry.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 23, - "startColumn": 30, - "charOffset": 980, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 21, - "startColumn": 1, - "charOffset": 876, - "charLength": 175, - "snippet": { - "text": " public int Id { get; set; }\r\n public uint DataOffset { get; set; }\r\n public uint NameOffset { get; set; }\r\n\r\n public override string ToString() => Id.ToString();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4fbcbb7ca345fc9a", - "equalIndicator/v1": "5dfc1825253968fe0638c4312e09c774d3205ac1cd892ee7eec6741b0a076582" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_BaseAddress' coverage is below the threshold 50%", - "markdown": "Method `set_BaseAddress` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Process/ProcessWrapperModule.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 26, - "startColumn": 38, - "charOffset": 1072, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 24, - "startColumn": 1, - "charOffset": 931, - "charLength": 197, - "snippet": { - "text": " public string ModuleName { get; set; } = null!;\r\n public string FileName { get; set; } = null!;\r\n public IntPtr BaseAddress { get; set; }\r\n public int ModuleMemorySize { get; set; }\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "6fd503f143df8453", - "equalIndicator/v1": "5e2bc989f9d3aa5cc25b93c4c542dd9c6ccc0b774339c2942428011266341bed" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetChildNodeByName' coverage is below the threshold 50%", - "markdown": "Method `GetChildNodeByName` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Extensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 50, - "startColumn": 27, - "charOffset": 1582, - "charLength": 18, - "snippet": { - "text": "GetChildNodeByName" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 48, - "startColumn": 1, - "charOffset": 1547, - "charLength": 140, - "snippet": { - "text": " }\r\n\r\n public static XmlNode GetChildNodeByName(this XmlNode node, string childName)\r\n {\r\n var lower = childName.ToLower();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "06106527059c0cdf", - "equalIndicator/v1": "5e367e3b22f521186a8f5416e858762b802cbfb5d84ccc0d6d34a5bbe5c0e5dc" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ToString' coverage is below the threshold 50%", - "markdown": "Method `ToString` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/BaseParam.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 204, - "startColumn": 28, - "charOffset": 7814, - "charLength": 8, - "snippet": { - "text": "ToString" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 202, - "startColumn": 1, - "charOffset": 7765, - "charLength": 99, - "snippet": { - "text": " #endregion\r\n \r\n public override string ToString()\r\n {\r\n var fields = GetType()\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b0c1df9235d7c996", - "equalIndicator/v1": "5e44dd55d98d037c76a49f780d2c92149f3d03faa776063b60cfef4746a3b243" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteEventFlag' coverage is below the threshold 50%", - "markdown": "Method `WriteEventFlag` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Sekiro/Sekiro.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 222, - "startColumn": 17, - "charOffset": 8237, - "charLength": 14, - "snippet": { - "text": "WriteEventFlag" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 220, - "startColumn": 1, - "charOffset": 8081, - "charLength": 280, - "snippet": { - "text": " #region event flags ================================================================================================================\r\n\r\n public void WriteEventFlag(uint eventFlagId, bool eventFlagValue)\r\n {\r\n var resultAddress = GetEventFlagAddress(eventFlagId);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "6572c8ec1d546b18", - "equalIndicator/v1": "5ef41bc76ae0078554b7a4e4495f469261f5529f85dddf7212285c857b77df81" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_AttributeType' coverage is below the threshold 50%", - "markdown": "Method `get_AttributeType` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splits/Sekiro/Attribute.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 29, - "startColumn": 9, - "charOffset": 1145, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 27, - "startColumn": 1, - "charOffset": 1076, - "charLength": 157, - "snippet": { - "text": " public SoulMemory.Sekiro.Attribute AttributeType\r\n {\r\n get => _attributeType;\r\n set => this.SetField(ref _attributeType, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a19eeedd09f3702b", - "equalIndicator/v1": "5f7f2b68ec74684535aeed7939fd78a13c2f6ea07958cfad8e8869b7e9730432" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_KnownFlags' coverage is below the threshold 50%", - "markdown": "Method `get_KnownFlags` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 177, - "startColumn": 83, - "charOffset": 6431, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 175, - "startColumn": 1, - "charOffset": 6167, - "charLength": 311, - "snippet": { - "text": "\r\n public static ObservableCollection> Bosses { get; set; } = new(Enum.GetValues(typeof(Boss)).Cast().Select(i => new EnumFlagViewModel(i)));\r\n public static ObservableCollection> KnownFlags { get; set; } = \r\n new(\r\n Enum\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "02b7c5cbbd7253e7", - "equalIndicator/v1": "60571a0a870428bf3c6f4e239897722d14ecabc752394d61596c4c6b63753aa3" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetInGameTimeMilliseconds' coverage is below the threshold 50%", - "markdown": "Method `GetInGameTimeMilliseconds` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 228, - "startColumn": 16, - "charOffset": 8160, - "charLength": 25, - "snippet": { - "text": "GetInGameTimeMilliseconds" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 226, - "startColumn": 1, - "charOffset": 8040, - "charLength": 242, - "snippet": { - "text": " public int GetAttribute(Attribute attribute) => _playerGameData.ReadInt32(0x8 + (long)attribute);\r\n\r\n public int GetInGameTimeMilliseconds() => _gameDataMan.ReadInt32(0xa4);\r\n\r\n public int NgCount() => _gameDataMan.ReadInt32(0x78);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "fd426e849f891bcc", - "equalIndicator/v1": "605ced5e753e8a0ea7d394aca05ce44c84f0573d76394f5b5c873e2a81264167" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_AttributeType' coverage is below the threshold 50%", - "markdown": "Method `set_AttributeType` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splits/Sekiro/Attribute.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 30, - "startColumn": 9, - "charOffset": 1177, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 28, - "startColumn": 1, - "charOffset": 1130, - "charLength": 160, - "snippet": { - "text": " {\r\n get => _attributeType;\r\n set => this.SetField(ref _attributeType, value);\r\n }\r\n private SoulMemory.Sekiro.Attribute _attributeType;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "72bc5a19f3aabd0c", - "equalIndicator/v1": "60604bb9e9d1ff94dc50d853b0a6d5ce090f81ee9ad6f64c5943c076fb2acb3f" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'BitBlt' coverage is below the threshold 50%", - "markdown": "Method `BitBlt` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Native/Gdi32.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 29, - "startColumn": 25, - "charOffset": 1238, - "charLength": 6, - "snippet": { - "text": "BitBlt" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 27, - "startColumn": 1, - "charOffset": 1091, - "charLength": 232, - "snippet": { - "text": " private static extern int BitBlt(IntPtr hdc, int x, int y, int cx, int cy, IntPtr hdcSrc, int x1, int y1, int rop);\r\n\r\n public static Color BitBlt(IntPtr src, int x, int y)\r\n {\r\n var screenPixel = new Bitmap(1, 1);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "957b6ed53f3f1764", - "equalIndicator/v1": "60698dccef631dadf4f4846436fca48bcbe58a1bebddcb1c45c094ded52c8ad4" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'Unwrap' coverage is below the threshold 50%", - "markdown": "Method `Unwrap` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Result.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 131, - "startColumn": 17, - "charOffset": 3320, - "charLength": 6, - "snippet": { - "text": "Unwrap" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 129, - "startColumn": 1, - "charOffset": 3295, - "charLength": 61, - "snippet": { - "text": " }\r\n\r\n public void Unwrap()\r\n {\r\n if (!IsOk)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a2c35978222ff286", - "equalIndicator/v1": "606cbc165edc80227d70b2f1ef1c2bfc518b320f91877f4d9b31546100a1e75c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'RestoreHierarchy' coverage is below the threshold 50%", - "markdown": "Method `RestoreHierarchy` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 279, - "startColumn": 17, - "charOffset": 9515, - "charLength": 16, - "snippet": { - "text": "RestoreHierarchy" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 277, - "startColumn": 1, - "charOffset": 9467, - "charLength": 235, - "snippet": { - "text": "\r\n #region Splits hierarchy\r\n public void RestoreHierarchy()\r\n {\r\n //When serializing the model, we can't serialize the parent relation, because that would be a circular reference. Instead, parent's are not serialized.\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f9688915183c94d6", - "equalIndicator/v1": "60a70855e95444050d34fe3568176ac93799268f6391943839689cfe68cf9dd1" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_SplitsViewModel' coverage is below the threshold 50%", - "markdown": "Method `get_SplitsViewModel` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/SplitsTree.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 38, - "startColumn": 9, - "charOffset": 1477, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 36, - "startColumn": 1, - "charOffset": 1418, - "charLength": 202, - "snippet": { - "text": " public SplitsViewModel SplitsViewModel\r\n {\r\n get =>(SplitsViewModel)GetValue(SplitsViewModelDependencyProperty);\r\n set => SetValue(SplitsViewModelDependencyProperty, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "70d504451b6a91b8", - "equalIndicator/v1": "6207341909deb8c91a8c099339f1a0f3491c05a9354c4484f601910b241435f7" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'TryRefresh' coverage is below the threshold 50%", - "markdown": "Method `TryRefresh` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/DarkSouls1.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 52, - "startColumn": 36, - "charOffset": 2941, - "charLength": 10, - "snippet": { - "text": "TryRefresh" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 50, - "startColumn": 1, - "charOffset": 2820, - "charLength": 154, - "snippet": { - "text": " public TreeBuilder GetTreeBuilder() => _darkSouls1?.GetTreeBuilder() ?? null!;\r\n\r\n public ResultErr TryRefresh()\r\n {\r\n try\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9dab2915cf59ad98", - "equalIndicator/v1": "6213109a88be2abe6923cef1c3b9606ec7e3a618bc74c2ea03e893339292be4a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_Name' coverage is below the threshold 50%", - "markdown": "Method `get_Name` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 503, - "startColumn": 9, - "charOffset": 15564, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 501, - "startColumn": 1, - "charOffset": 15525, - "charLength": 109, - "snippet": { - "text": " public string Name\r\n {\r\n get => _name;\r\n set => this.SetField(ref _name, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a2ba85f413174e7c", - "equalIndicator/v1": "6256822fe4f1a1f5bd4393c758688da0d7c26cc00a8446b8306ab58eaa40aab7" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_Flag' coverage is below the threshold 50%", - "markdown": "Method `get_Flag` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/GraceViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 62, - "startColumn": 9, - "charOffset": 1754, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 60, - "startColumn": 1, - "charOffset": 1717, - "charLength": 107, - "snippet": { - "text": " public uint Flag\r\n {\r\n get => _flag;\r\n set => this.SetField(ref _flag, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "924dfb9d5452adbd", - "equalIndicator/v1": "62c5d60b5067cd044556f70d16a8a67701ebb029c975711b276d8b663a275d49" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetEnumAttribute' coverage is below the threshold 50%", - "markdown": "Method `GetEnumAttribute` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/Extensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 62, - "startColumn": 21, - "charOffset": 1982, - "charLength": 16, - "snippet": { - "text": "GetEnumAttribute" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 60, - "startColumn": 1, - "charOffset": 1953, - "charLength": 124, - "snippet": { - "text": " }\r\n\r\n public static T GetEnumAttribute(this Enum value) where T : Attribute\r\n {\r\n var attribute = value\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "03295c743e7ebe84", - "equalIndicator/v1": "62f5db956da1edd14482fea27672626294cfc9786b74e7931a54f92f352c7369" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'ArmoredCore6.Split' coverage is below the threshold 50%", - "markdown": "Class `ArmoredCore6.Split` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splits/ArmoredCore6/Split.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 22, - "startColumn": 16, - "charOffset": 918, - "charLength": 5, - "snippet": { - "text": "Split" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 20, - "startColumn": 1, - "charOffset": 856, - "charLength": 147, - "snippet": { - "text": "namespace SoulSplitter.Splits.ArmoredCore6;\r\n\r\ninternal class Split\r\n{\r\n public Split(TimingType timingType, SplitType splitType, object split)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "74433f0c2afcf3b8", - "equalIndicator/v1": "63508299a843b10822f526e5c68159e99fbfcd7545ff078e285ec4f6e63d4977" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_Bosses' coverage is below the threshold 50%", - "markdown": "Method `set_Bosses` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 185, - "startColumn": 9, - "charOffset": 7528, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 183, - "startColumn": 1, - "charOffset": 7414, - "charLength": 173, - "snippet": { - "text": " {\r\n get => (ObservableCollection>)GetValue(BossesDependencyProperty);\r\n set => SetValue(BossesDependencyProperty, value);\r\n }\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0730e2a542aab936", - "equalIndicator/v1": "638c1839d032b18b97de65f5cc242cc65b2b39b4873f2c548065f6fa0680c5cc" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'RustCall' coverage is below the threshold 50%", - "markdown": "Method `RustCall` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/soulmods/Soulmods.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 72, - "startColumn": 26, - "charOffset": 2413, - "charLength": 8, - "snippet": { - "text": "RustCall" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 70, - "startColumn": 1, - "charOffset": 2313, - "charLength": 293, - "snippet": { - "text": "\r\n private static List<(string name, long address)>? _soulmodsMethods;\r\n public static TSized RustCall(this Process process, string function, TSized? parameter = null) where TSized : struct\r\n {\r\n _soulmodsMethods ??= process.GetModuleExportedFunctions(\"soulmods.dll\");\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "acb03aafd2a223ca", - "equalIndicator/v1": "63ab8958458fd6b54b42d6cd4c574cc3b2010cb77c69a32e6bf26ea63f0776df" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_Position' coverage is below the threshold 50%", - "markdown": "Method `get_Position` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 356, - "startColumn": 9, - "charOffset": 13999, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 354, - "startColumn": 1, - "charOffset": 13951, - "charLength": 126, - "snippet": { - "text": " public VectorSize? Position\r\n {\r\n get => _position;\r\n set => this.SetField(ref _position, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e4b0898c736f5ced", - "equalIndicator/v1": "63aec6526ef384aa7db9d270ad3afa12244757c5e82d32f6217602ea7e8c2fda" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'UIv2.SplitSettingsControl' coverage is below the threshold 50%", - "markdown": "Class `UIv2.SplitSettingsControl` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 32, - "startColumn": 22, - "charOffset": 1191, - "charLength": 20, - "snippet": { - "text": "SplitSettingsControl" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 30, - "startColumn": 1, - "charOffset": 1101, - "charLength": 193, - "snippet": { - "text": "/// Interaction logic for SplitSettingsControl.xaml\r\n/// \r\npublic partial class SplitSettingsControl : UserControl, ICustomNotifyPropertyChanged\r\n{\r\n public SplitSettingsControl()\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "054d36b84703c67e", - "equalIndicator/v1": "63b9dea9bf90062bde1c413aa47c2571b7b79995a9724cdfb6678dc55c7029a5" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadEventFlag' coverage is below the threshold 50%", - "markdown": "Method `ReadEventFlag` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/DarkSouls1.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 32, - "startColumn": 17, - "charOffset": 1291, - "charLength": 13, - "snippet": { - "text": "ReadEventFlag" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 30, - "startColumn": 1, - "charOffset": 1115, - "charLength": 417, - "snippet": { - "text": " public Process? GetProcess() => _darkSouls1?.GetProcess();\r\n public int GetAttribute(Attribute attribute) => _darkSouls1?.GetAttribute(attribute) ?? 0;\r\n public bool ReadEventFlag(uint eventFlagId) => _darkSouls1?.ReadEventFlag(eventFlagId) ?? false;\r\n public bool IsWarpRequested() => _darkSouls1?.IsWarpRequested() ?? false;\r\n public bool IsPlayerLoaded() => _darkSouls1?.IsPlayerLoaded() ?? false;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a61fac783d052943", - "equalIndicator/v1": "63bd588eb81b05677f74f41e0d2d5a009a11e0769891e2378a3945e8b8bf631f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_SelectedKnownFlag' coverage is below the threshold 50%", - "markdown": "Method `set_SelectedKnownFlag` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 314, - "startColumn": 9, - "charOffset": 12894, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 312, - "startColumn": 1, - "charOffset": 12843, - "charLength": 150, - "snippet": { - "text": " {\r\n get => _selectedKnownFlag;\r\n set => this.SetField(ref _selectedKnownFlag, value);\r\n }\r\n private Enum? _selectedKnownFlag;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9a7a31fb42568b2b", - "equalIndicator/v1": "63c755f0dcf7f6f0c5b5eb1fad0ddb3670c8f45198b0740ba15da0ae9487ed2c" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'Unwrap' coverage is below the threshold 50%", - "markdown": "Method `Unwrap` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Result.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 196, - "startColumn": 16, - "charOffset": 4577, - "charLength": 6, - "snippet": { - "text": "Unwrap" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 194, - "startColumn": 1, - "charOffset": 4553, - "charLength": 110, - "snippet": { - "text": " }\r\n\r\n public TOk Unwrap([CallerMemberName] string? callerMemberName = null)\r\n {\r\n if (!IsOk)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "2c9e5bc572be151a", - "equalIndicator/v1": "63d61a51518951cc4cc9996739ad5064f27268b86a36c35b7b4a950d40cfa366" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'IsPlayerLoaded' coverage is below the threshold 50%", - "markdown": "Method `IsPlayerLoaded` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Sekiro/Sekiro.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 204, - "startColumn": 17, - "charOffset": 7675, - "charLength": 14, - "snippet": { - "text": "IsPlayerLoaded" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 202, - "startColumn": 1, - "charOffset": 7650, - "charLength": 103, - "snippet": { - "text": " }\r\n\r\n public bool IsPlayerLoaded()\r\n {\r\n return _worldChrManImp.ReadInt64(0x88) != 0;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c4fa7993e1a05dde", - "equalIndicator/v1": "64c04e218cb88d43e95c22f3176d72b9e6006728341177b96d4f23f398f92864" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_EnumTemplate' coverage is below the threshold 50%", - "markdown": "Method `set_EnumTemplate` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/SplitTemplateSelector.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 25, - "startColumn": 45, - "charOffset": 1023, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 23, - "startColumn": 1, - "charOffset": 917, - "charLength": 191, - "snippet": { - "text": "public class SplitTemplateSelector : DataTemplateSelector\r\n{\r\n public DataTemplate EnumTemplate { get; set; } = null!;\r\n public DataTemplate VectorSizeTemplate { get; set; } = null!;\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a54e1223b0209ebd", - "equalIndicator/v1": "64e28fcf4abc559bdf02cd11a3db797389585ee60258c82c8f49382f4bf808c2" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetProcessModules' coverage is below the threshold 50%", - "markdown": "Method `GetProcessModules` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Process/ProcessWrapper.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 32, - "startColumn": 39, - "charOffset": 1393, - "charLength": 17, - "snippet": { - "text": "GetProcessModules" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 30, - "startColumn": 1, - "charOffset": 1201, - "charLength": 348, - "snippet": { - "text": " public ProcessWrapperModule? GetMainModule() => _process?.MainModule == null ? null : ProcessWrapperModule.FromProcessModule(_process.MainModule);\r\n\r\n public List GetProcessModules()\r\n {\r\n return (from object pm in _process?.Modules select ProcessWrapperModule.FromProcessModule((ProcessModule)pm)).ToList();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "cb37ea8da503b2fd", - "equalIndicator/v1": "6500ce972960f312d962ef8859dd12fc19df7e0981266eb43251510d5cdb9a09" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadEventFlag' coverage is below the threshold 50%", - "markdown": "Method `ReadEventFlag` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Sekiro/Sekiro.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 246, - "startColumn": 17, - "charOffset": 9009, - "charLength": 13, - "snippet": { - "text": "ReadEventFlag" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 244, - "startColumn": 1, - "charOffset": 8984, - "charLength": 127, - "snippet": { - "text": " }\r\n\r\n public bool ReadEventFlag(uint eventFlagId)\r\n {\r\n var resultAddress = GetEventFlagAddress(eventFlagId);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a9ab4bd97687b345", - "equalIndicator/v1": "653aeb1112011b3e7dd23963ad1e6a3e55e12a993734d87ce36d9e967acb4cee" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadBool' coverage is below the threshold 50%", - "markdown": "Method `ReadBool` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 214, - "startColumn": 17, - "charOffset": 5626, - "charLength": 8, - "snippet": { - "text": "ReadBool" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 212, - "startColumn": 1, - "charOffset": 5601, - "charLength": 128, - "snippet": { - "text": " }\r\n\r\n public bool ReadBool(long? offset = null)\r\n {\r\n return BitConverter.ToBoolean(ReadMemory(offset, 1), 0);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "de090a2393ad0f63", - "equalIndicator/v1": "656e351b642acb1721d6e17f93f41f74ec6520dc2d87d15348f9176b67b07342" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'Convert' coverage is below the threshold 50%", - "markdown": "Method `Convert` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Converters/EnumValueEnumParameterConverter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 25, - "startColumn": 19, - "charOffset": 1007, - "charLength": 7, - "snippet": { - "text": "Convert" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 23, - "startColumn": 1, - "charOffset": 922, - "charLength": 297, - "snippet": { - "text": "public class EnumValueEnumParameterConverter : IValueConverter\r\n{\r\n public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture)\r\n {\r\n if (value is Enum valueEnum && parameter is Enum valueParameter && valueEnum.GetType() == valueParameter.GetType())\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "23a31e408d8fed59", - "equalIndicator/v1": "659a3f508eaf9d46d306b01c117c06c5e7e51c8d4dd9ff3732a4bb5b6c1a711d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteInt32' coverage is below the threshold 50%", - "markdown": "Method `WriteInt32` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 139, - "startColumn": 24, - "charOffset": 4318, - "charLength": 10, - "snippet": { - "text": "WriteInt32" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 137, - "startColumn": 1, - "charOffset": 4286, - "charLength": 161, - "snippet": { - "text": " }\r\n\r\n public static void WriteInt32(this IMemory memory, long offset, int value)\r\n {\r\n memory.WriteBytes(offset, BitConverter.GetBytes(value));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c8d611a602c97973", - "equalIndicator/v1": "6708c9a8e4b8cf9ac4d8830b38c2d881b36af63cad3df33178c40d85ab8846d2" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_GroupName' coverage is below the threshold 50%", - "markdown": "Method `get_GroupName` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 495, - "startColumn": 9, - "charOffset": 15400, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 493, - "startColumn": 1, - "charOffset": 15356, - "charLength": 124, - "snippet": { - "text": " public string GroupName\r\n {\r\n get => _groupName;\r\n set => this.SetField(ref _groupName, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f4a89fcef8b58673", - "equalIndicator/v1": "678d1af736fc9f8d3994dc3e09b7d5c41dacb66a53f4d21698edae3c31411ba0" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetSaveFileGameTimeMilliseconds' coverage is below the threshold 50%", - "markdown": "Method `GetSaveFileGameTimeMilliseconds` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 247, - "startColumn": 16, - "charOffset": 9059, - "charLength": 31, - "snippet": { - "text": "GetSaveFileGameTimeMilliseconds" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 245, - "startColumn": 1, - "charOffset": 9035, - "charLength": 151, - "snippet": { - "text": " }\r\n\r\n public int GetSaveFileGameTimeMilliseconds(string path, int slot)\r\n {\r\n return Sl2Reader.GetSaveFileIgt(path, slot, true) ?? 0;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "842e0d205507f3de", - "equalIndicator/v1": "679b1a7f3f92f95a4ab5d080d18e9b862e29efeb15ac573914d6c31d29046606" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'Memory.PointerNode' coverage is below the threshold 50%", - "markdown": "Class `Memory.PointerNode` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/PointerNode.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 21, - "startColumn": 14, - "charOffset": 889, - "charLength": 11, - "snippet": { - "text": "PointerNode" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 19, - "startColumn": 1, - "charOffset": 844, - "charLength": 91, - "snippet": { - "text": "namespace SoulMemory.Memory;\r\n\r\npublic class PointerNode\r\n{\r\n public NodeType NodeType;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "35ae538002c2969f", - "equalIndicator/v1": "67d4b9c49328e86c965946c0178d3d3531815f8e38e62d58c4ba5d6e36b63c1f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetTreeBuilder' coverage is below the threshold 50%", - "markdown": "Method `GetTreeBuilder` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/DarkSouls1.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 50, - "startColumn": 24, - "charOffset": 2843, - "charLength": 14, - "snippet": { - "text": "GetTreeBuilder" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 48, - "startColumn": 1, - "charOffset": 2816, - "charLength": 138, - "snippet": { - "text": "\r\n\r\n public TreeBuilder GetTreeBuilder() => _darkSouls1?.GetTreeBuilder() ?? null!;\r\n\r\n public ResultErr TryRefresh()\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "40f5c1dd1f713b43", - "equalIndicator/v1": "682e04b71d5af8a9f773099fbd914d79348b41594339d3833737b81d34a7e19c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'Dispose' coverage is below the threshold 50%", - "markdown": "Method `Dispose` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/BaseSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 83, - "startColumn": 17, - "charOffset": 2755, - "charLength": 7, - "snippet": { - "text": "Dispose" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 81, - "startColumn": 1, - "charOffset": 2714, - "charLength": 82, - "snippet": { - "text": " #region Disposing\r\n\r\n public void Dispose()\r\n {\r\n Dispose(true);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d625eede5a8d3db7", - "equalIndicator/v1": "686d791c37cd3ef5974d4936f21f9695a0d68973cfe94816130799fdd12f6b81" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetPosition' coverage is below the threshold 50%", - "markdown": "Method `GetPosition` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/EldenRing.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 296, - "startColumn": 21, - "charOffset": 10506, - "charLength": 11, - "snippet": { - "text": "GetPosition" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 294, - "startColumn": 1, - "charOffset": 10477, - "charLength": 105, - "snippet": { - "text": " }\r\n\r\n public Position GetPosition()\r\n {\r\n var map = _playerIns.ReadInt32(_mapIdOffset);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f4c3ac9d99c6b203", - "equalIndicator/v1": "686f00352b24fd624934a252685b3429c70172cc4e5f2eea7a7c7525acfe8353" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_EldenRingSplitType' coverage is below the threshold 50%", - "markdown": "Method `set_EldenRingSplitType` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/SplitViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 59, - "startColumn": 9, - "charOffset": 1977, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 57, - "startColumn": 1, - "charOffset": 1925, - "charLength": 166, - "snippet": { - "text": " {\r\n get => _eldenRingSplitType;\r\n set => this.SetField(ref _eldenRingSplitType, value);\r\n }\r\n private EldenRingSplitType _eldenRingSplitType;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "20cd0191dbf937d0", - "equalIndicator/v1": "688196be5f45225ab1c01383edd6c11e1776b00c5b640156be788e55896f3ad8" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_SelectedSplit' coverage is below the threshold 50%", - "markdown": "Method `get_SelectedSplit` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 267, - "startColumn": 9, - "charOffset": 9214, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 265, - "startColumn": 1, - "charOffset": 9145, - "charLength": 116, - "snippet": { - "text": " public HierarchicalSplitViewModel? SelectedSplit\r\n {\r\n get => _selectedSplit;\r\n set\r\n {\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "082dcab7b82bbac6", - "equalIndicator/v1": "688282a40ad566b82b743a98ef8b57774cb09e60986e149a4f37c87ad02dc776" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_NewSplitValue' coverage is below the threshold 50%", - "markdown": "Method `set_NewSplitValue` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 200, - "startColumn": 9, - "charOffset": 7411, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 198, - "startColumn": 1, - "charOffset": 7364, - "charLength": 117, - "snippet": { - "text": " {\r\n get => _newSplitValue;\r\n set\r\n {\r\n this.SetField(ref _newSplitValue, value);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "db2b886adb1096e2", - "equalIndicator/v1": "68f524afd25adb83c67f8fd68bade7a142ebe8f3d01cd94fee3d1f3718c62a8e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_BaseAddress' coverage is below the threshold 50%", - "markdown": "Method `get_BaseAddress` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Process/ProcessWrapperModule.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 26, - "startColumn": 33, - "charOffset": 1067, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 24, - "startColumn": 1, - "charOffset": 931, - "charLength": 197, - "snippet": { - "text": " public string ModuleName { get; set; } = null!;\r\n public string FileName { get; set; } = null!;\r\n public IntPtr BaseAddress { get; set; }\r\n public int ModuleMemorySize { get; set; }\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0b347f2a0086d6cc", - "equalIndicator/v1": "693b5242c402d745d377f7dd119078336b211943a48ef5ca6b3a6f53031d114b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GuaranteeDrop' coverage is below the threshold 50%", - "markdown": "Method `GuaranteeDrop` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/DropMod.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 85, - "startColumn": 18, - "charOffset": 2933, - "charLength": 13, - "snippet": { - "text": "GuaranteeDrop" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 83, - "startColumn": 1, - "charOffset": 2907, - "charLength": 127, - "snippet": { - "text": " }\r\n\r\n private void GuaranteeDrop(int rowId, int itemId)\r\n {\r\n darkSouls.WriteItemLotParam(rowId, (itemLot) =>\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "33069d91c8af2c02", - "equalIndicator/v1": "696b142600a906e513f62516de1386b9179e4b3c780b280cf2f008e127a49f33" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Constructor 'Pointer' coverage is below the threshold 50%", - "markdown": "Constructor `Pointer` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 30, - "startColumn": 12, - "charOffset": 1098, - "charLength": 7, - "snippet": { - "text": "Pointer" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 28, - "startColumn": 1, - "charOffset": 1048, - "charLength": 113, - "snippet": { - "text": " public long AbsoluteOffset = 0;\r\n\r\n public Pointer(IMemory memory)\r\n {\r\n if (memory is Pointer)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "78467a5e8e6bfb93", - "equalIndicator/v1": "69ba0f4b7171cd5f1fd695e3b544f2d7896000ba31741e32faddf6b31b72f319" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_isValid' coverage is below the threshold 50%", - "markdown": "Method `get_isValid` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Native/Structs/Image/IMAGE_NT_HEADERS64.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 43, - "startColumn": 9, - "charOffset": 1401, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 41, - "startColumn": 1, - "charOffset": 1361, - "charLength": 156, - "snippet": { - "text": " public bool isValid\r\n {\r\n get { return _Signature == \"PE\\0\\0\" && OptionalHeader.Magic == MagicType.IMAGE_NT_OPTIONAL_HDR64_MAGIC; }\r\n }\r\n}\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "23fe9687b1d70b0b", - "equalIndicator/v1": "69e1dfb44fec0a8f123fe593d38e7e8eb58c87901d2c4cc6b687c05a79a9211a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'OnPreviewTextInput_Byte' coverage is below the threshold 50%", - "markdown": "Method `OnPreviewTextInput_Byte` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 67, - "startColumn": 18, - "charOffset": 2219, - "charLength": 23, - "snippet": { - "text": "OnPreviewTextInput_Byte" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 65, - "startColumn": 1, - "charOffset": 2193, - "charLength": 134, - "snippet": { - "text": " }\r\n\r\n private void OnPreviewTextInput_Byte(object sender, TextCompositionEventArgs e)\r\n {\r\n if (sender is TextBox t)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5c3f063bbcac75f7", - "equalIndicator/v1": "69f509e6bd4191a0563afeb2aa8a249b05b715bede65c802e60248f90583682a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'Unwrap' coverage is below the threshold 50%", - "markdown": "Method `Unwrap` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Result.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 282, - "startColumn": 16, - "charOffset": 6612, - "charLength": 6, - "snippet": { - "text": "Unwrap" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 280, - "startColumn": 1, - "charOffset": 6588, - "charLength": 59, - "snippet": { - "text": " }\r\n\r\n public TOk Unwrap()\r\n {\r\n if (IsOk)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "baf06ae699a967f4", - "equalIndicator/v1": "6a838788d1d078c22647c07965a9cfb71b1b56625a730c69664dfd92dc61e7aa" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetBossKillCount' coverage is below the threshold 50%", - "markdown": "Method `GetBossKillCount` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls2/vanilla.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 87, - "startColumn": 16, - "charOffset": 3129, - "charLength": 16, - "snippet": { - "text": "GetBossKillCount" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 85, - "startColumn": 1, - "charOffset": 3105, - "charLength": 124, - "snippet": { - "text": " }\r\n\r\n public int GetBossKillCount(BossType bossType)\r\n {\r\n return _bossCounters.ReadInt32((long)bossType);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "75126b0a6ccdab48", - "equalIndicator/v1": "6aa5bfc89aa0cba3afa458ca9928649819a7cfdbf83717e95e4ba463e92ffa3d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_VisibleKnownFlagSplit' coverage is below the threshold 50%", - "markdown": "Method `set_VisibleKnownFlagSplit` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 260, - "startColumn": 9, - "charOffset": 7259, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 258, - "startColumn": 1, - "charOffset": 7204, - "charLength": 161, - "snippet": { - "text": " {\r\n get => _visibleKnownFlagSplit;\r\n set => this.SetField(ref _visibleKnownFlagSplit, value);\r\n }\r\n private bool _visibleKnownFlagSplit;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "6cbd230ba321cbd2", - "equalIndicator/v1": "6b063058629a12ae402fe0a1fe5c9ca1136d0915b96a2abe489f49d9faac81e4" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteUInt32' coverage is below the threshold 50%", - "markdown": "Method `WriteUInt32` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 144, - "startColumn": 24, - "charOffset": 4484, - "charLength": 11, - "snippet": { - "text": "WriteUInt32" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 142, - "startColumn": 1, - "charOffset": 4448, - "charLength": 167, - "snippet": { - "text": " }\r\n \r\n public static void WriteUInt32(this IMemory memory, long offset, uint value)\r\n {\r\n memory.WriteBytes(offset, BitConverter.GetBytes(value));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "76e3ca54e0511eba", - "equalIndicator/v1": "6b5e8be673f15b55c831905953e77d8b4022e7aff1e689384022c240e2f977a4" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ResetPointers' coverage is below the threshold 50%", - "markdown": "Method `ResetPointers` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Sekiro/Sekiro.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 164, - "startColumn": 18, - "charOffset": 6630, - "charLength": 13, - "snippet": { - "text": "ResetPointers" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 162, - "startColumn": 1, - "charOffset": 6601, - "charLength": 84, - "snippet": { - "text": " \r\n \r\n private void ResetPointers()\r\n {\r\n _eventFlagMan.Clear();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7e6cb69566e2b3cc", - "equalIndicator/v1": "6b734fc30a2fb172ecc0796eacffb1273fecf1a48763ebe952e6e0df855d8423" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ToString' coverage is below the threshold 50%", - "markdown": "Method `ToString` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splits/DarkSouls2/Attribute.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 41, - "startColumn": 28, - "charOffset": 1477, - "charLength": 8, - "snippet": { - "text": "ToString" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 39, - "startColumn": 1, - "charOffset": 1423, - "charLength": 116, - "snippet": { - "text": " private int _level;\r\n\r\n public override string ToString()\r\n {\r\n return $\"{AttributeType} {Level}\";\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ba2236e3cc43a282", - "equalIndicator/v1": "6c100d204840717bdbeafa840a0cd35ca2ab7b9a0067acc354b6895e35688a11" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteInt64' coverage is below the threshold 50%", - "markdown": "Method `WriteInt64` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/IMemory.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 149, - "startColumn": 24, - "charOffset": 4881, - "charLength": 10, - "snippet": { - "text": "WriteInt64" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 147, - "startColumn": 1, - "charOffset": 4849, - "charLength": 163, - "snippet": { - "text": " }\r\n\r\n public static void WriteInt64(this IMemory memory, long? offset, long value)\r\n {\r\n memory.WriteBytes(offset, BitConverter.GetBytes(value));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d68c7b933d32637c", - "equalIndicator/v1": "6c9a79b6300b71f1614aa436a050c3004e0c20d4b58e15faec026ed97ee4a816" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetProcess' coverage is below the threshold 50%", - "markdown": "Method `GetProcess` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls2/DarkSouls2.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 29, - "startColumn": 21, - "charOffset": 1110, - "charLength": 10, - "snippet": { - "text": "GetProcess" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 27, - "startColumn": 1, - "charOffset": 1001, - "charLength": 303, - "snippet": { - "text": " public int GetInGameTimeMilliseconds() => 0;\r\n private IDarkSouls2? _darkSouls2;\r\n public Process? GetProcess() => _darkSouls2?.GetProcess();\r\n public Vector3f GetPosition() => _darkSouls2?.GetPosition() ?? new Vector3f();\r\n public bool IsLoading() => _darkSouls2?.IsLoading() ?? false;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "68d4bae130d0a8b8", - "equalIndicator/v1": "6d59af693d39502dfe2645bd91cd413a44d2325b2d64788a70be1172b5ec32aa" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_Area' coverage is below the threshold 50%", - "markdown": "Method `get_Area` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/GraceViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 48, - "startColumn": 9, - "charOffset": 1462, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 46, - "startColumn": 1, - "charOffset": 1423, - "charLength": 109, - "snippet": { - "text": " public string Area\r\n {\r\n get => _area;\r\n set => this.SetField(ref _area, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "baa6ef78bae7ee25", - "equalIndicator/v1": "6dbd2501c47bace1797c928c6d1516aef2b8b0ff028c1ed6fab2e4fa78136b23" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetInventory' coverage is below the threshold 50%", - "markdown": "Method `GetInventory` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 188, - "startColumn": 23, - "charOffset": 7152, - "charLength": 12, - "snippet": { - "text": "GetInventory" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 186, - "startColumn": 1, - "charOffset": 7122, - "charLength": 111, - "snippet": { - "text": " \r\n\r\n public List GetInventory()\r\n {\r\n var itemCount = _playerGameData.ReadInt32(0x2e0);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e676ae5d51f988fa", - "equalIndicator/v1": "6de59432c17e6b18dff039511eb546f81713911bcd3d692acb5afc087c789267" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'IsWarpRequested' coverage is below the threshold 50%", - "markdown": "Method `IsWarpRequested` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 240, - "startColumn": 17, - "charOffset": 8648, - "charLength": 15, - "snippet": { - "text": "IsWarpRequested" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 238, - "startColumn": 1, - "charOffset": 8568, - "charLength": 142, - "snippet": { - "text": " public bool IsPlayerLoaded() => !_playerIns.IsNullPtr();\r\n\r\n public bool IsWarpRequested()\r\n {\r\n if (GetPlayerHealth() == 0)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "8211f28522d888a5", - "equalIndicator/v1": "6edd906f0ca8376f7241aedd7fead61094cf40b6dab13215a919b3e235b950d7" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'Sekiro.Split' coverage is below the threshold 50%", - "markdown": "Class `Sekiro.Split` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splits/Sekiro/Split.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 23, - "startColumn": 16, - "charOffset": 938, - "charLength": 5, - "snippet": { - "text": "Split" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 21, - "startColumn": 1, - "charOffset": 882, - "charLength": 141, - "snippet": { - "text": "namespace SoulSplitter.Splits.Sekiro;\r\n\r\ninternal class Split\r\n{\r\n public Split(TimingType timingType, SplitType splitType, object split)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a89f2a73008e3e03", - "equalIndicator/v1": "6f03ce7620d9eaf6d329c1cd8319fffd9ca085ec31ff98ca82aaabbec6fe99b6" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadFloat' coverage is below the threshold 50%", - "markdown": "Method `ReadFloat` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 238, - "startColumn": 18, - "charOffset": 6238, - "charLength": 9, - "snippet": { - "text": "ReadFloat" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 236, - "startColumn": 1, - "charOffset": 6212, - "charLength": 129, - "snippet": { - "text": " }\r\n\r\n public float ReadFloat(long? offset = null)\r\n {\r\n return BitConverter.ToSingle(ReadMemory(offset, 4), 0);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5a684c1570d3a96a", - "equalIndicator/v1": "6f3c1829704212d67dffda6ceca6c34de52964ecdc753ee5bcd805bbb32baf26" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'Generic.FilteredComboBox' coverage is below the threshold 50%", - "markdown": "Class `Generic.FilteredComboBox` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/FilteredComboBox.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 26, - "startColumn": 14, - "charOffset": 1112, - "charLength": 16, - "snippet": { - "text": "FilteredComboBox" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 24, - "startColumn": 1, - "charOffset": 981, - "charLength": 209, - "snippet": { - "text": "\r\n//https://stackoverflow.com/questions/2001842/dynamic-filter-of-wpf-combobox-based-on-text-input/41986141#41986141\r\npublic class FilteredComboBox : ComboBox\r\n{\r\n private string _oldFilter = string.Empty;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ae9e3922554ceb24", - "equalIndicator/v1": "6f603cca226554feaec87986997302be2684d0e95bf4df44e8c13c87d6262a11" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteItemLotParam' coverage is below the threshold 50%", - "markdown": "Method `WriteItemLotParam` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 368, - "startColumn": 17, - "charOffset": 12732, - "charLength": 17, - "snippet": { - "text": "WriteItemLotParam" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 366, - "startColumn": 1, - "charOffset": 12707, - "charLength": 128, - "snippet": { - "text": " }\r\n\r\n public void WriteItemLotParam(int rowId, Action accessor)\r\n {\r\n if (!_itemLotParams.Any())\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "71b1479c0ef4bd8d", - "equalIndicator/v1": "6fa3340fa400258cccdc64c60d60bb65ba35078b92ed36e53cbb6d22c84e4ed0" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'DrawVertical' coverage is below the threshold 50%", - "markdown": "Method `DrawVertical` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/SoulComponent.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 200, - "startColumn": 17, - "charOffset": 7277, - "charLength": 12, - "snippet": { - "text": "DrawVertical" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 198, - "startColumn": 1, - "charOffset": 7252, - "charLength": 210, - "snippet": { - "text": " }\r\n\r\n public void DrawVertical(Graphics g, LiveSplitState state, float width, Region clipRegion)\r\n {\r\n //Soulsplitter doesn't draw to livesplit's window, but must implement the full interface.\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f269decc2fe24bfe", - "equalIndicator/v1": "6fb65c58e78c5d23102e113f5fa2cbb349c7228bdf001a5e94f62beeecfe251b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'UnregisterHotKey' coverage is below the threshold 50%", - "markdown": "Method `UnregisterHotKey` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Hotkeys/GlobalHotKey.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 78, - "startColumn": 24, - "charOffset": 2655, - "charLength": 16, - "snippet": { - "text": "UnregisterHotKey" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 76, - "startColumn": 1, - "charOffset": 2623, - "charLength": 107, - "snippet": { - "text": " }\r\n\r\n public static void UnregisterHotKey(int id)\r\n {\r\n if (Hotkeys.All(i => i.id != id))\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "2714872a8729fb8e", - "equalIndicator/v1": "6ffaee646c4cea5776c2d2cc1de816520ed5849cf048397d6b2aef610270793d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_NewSplitGrace' coverage is below the threshold 50%", - "markdown": "Method `get_NewSplitGrace` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 159, - "startColumn": 9, - "charOffset": 4715, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 157, - "startColumn": 1, - "charOffset": 4667, - "charLength": 95, - "snippet": { - "text": " public Grace? NewSplitGrace\r\n {\r\n get => _newSplitGrace;\r\n set\r\n {\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "645e6d7a9c3d89cc", - "equalIndicator/v1": "6fffd88d9e4dda8945acba6ab4f4e0c83546cfcb1fe94cfbb8f6d6640c35e01c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'InitPointers' coverage is below the threshold 50%", - "markdown": "Method `InitPointers` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/EldenRing.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 149, - "startColumn": 37, - "charOffset": 5792, - "charLength": 12, - "snippet": { - "text": "InitPointers" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 147, - "startColumn": 1, - "charOffset": 5752, - "charLength": 75, - "snippet": { - "text": "\r\n\r\n private ResultErr InitPointers()\r\n {\r\n try\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3d93f6918dcee625", - "equalIndicator/v1": "700f5c2b0ab716ffe933b809663389ac5f0ab525ebeb36526d7ed93f92b042f9" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ToString' coverage is below the threshold 50%", - "markdown": "Method `ToString` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 135, - "startColumn": 28, - "charOffset": 3772, - "charLength": 8, - "snippet": { - "text": "ToString" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 133, - "startColumn": 1, - "charOffset": 3688, - "charLength": 141, - "snippet": { - "text": " public string Path { get; private set; } = null!;\r\n\r\n public override string ToString()\r\n {\r\n var sb = new StringBuilder();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "25f68b15d78921b8", - "equalIndicator/v1": "705524982893ea34ce65e3e1c149dcb8378778e4fcb62441e18fae70091c97df" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'Memory.PointerPath' coverage is below the threshold 50%", - "markdown": "Class `Memory.PointerPath` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/PointerPath.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 19, - "startColumn": 14, - "charOffset": 861, - "charLength": 11, - "snippet": { - "text": "PointerPath" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 17, - "startColumn": 1, - "charOffset": 807, - "charLength": 94, - "snippet": { - "text": "namespace SoulMemory.MemoryV2.Memory;\r\n\r\npublic class PointerPath\r\n{\r\n public long Offset;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a0a6a18cc9ea1ccb", - "equalIndicator/v1": "705c48bbce4af3c2dd632447df759881e732baeaa57be039470d836daae10adc" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'Parameters.ParamFieldAttribute' coverage is below the threshold 50%", - "markdown": "Class `Parameters.ParamFieldAttribute` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/ParamFieldAttribute.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 19, - "startColumn": 16, - "charOffset": 858, - "charLength": 19, - "snippet": { - "text": "ParamFieldAttribute" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 17, - "startColumn": 1, - "charOffset": 807, - "charLength": 117, - "snippet": { - "text": "namespace SoulMemory.Parameters;\r\n\r\ninternal class ParamFieldAttribute : System.Attribute\r\n{\r\n public int Offset;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "bf1908c372e64978", - "equalIndicator/v1": "706c6691eda656d8c636d1e7419c54e3970691e2383b8b355bb0e307b013a88c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_CommandRemoveEventFlag' coverage is below the threshold 50%", - "markdown": "Method `get_CommandRemoveEventFlag` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/FlagTrackerViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 362, - "startColumn": 9, - "charOffset": 11207, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 360, - "startColumn": 1, - "charOffset": 11144, - "charLength": 169, - "snippet": { - "text": " public RelayCommand CommandRemoveEventFlag\r\n {\r\n get => _commandRemoveEventFlag;\r\n set => this.SetField(ref _commandRemoveEventFlag, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "540f346e309fa533", - "equalIndicator/v1": "707af621d319049017cc03e2ab0057568fc91423d6911012e30ceebef97b947d" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'DarkSouls1.Sl2Reader' coverage is below the threshold 50%", - "markdown": "Class `DarkSouls1.Sl2Reader` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Sl2Reader.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 37, - "startColumn": 23, - "charOffset": 1346, - "charLength": 9, - "snippet": { - "text": "Sl2Reader" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 35, - "startColumn": 1, - "charOffset": 1284, - "charLength": 216, - "snippet": { - "text": " IV: First 16 bytes of each file\r\n*/\r\ninternal static class Sl2Reader\r\n{\r\n private static readonly byte[] AesKey = [0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF, 0xFE, 0xDC, 0xBA, 0x98, 0x76, 0x54, 0x32, 0x10\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1863a4590fec98dc", - "equalIndicator/v1": "709482ded3363803c058bf0fc35d977d324dc8c136eaa0371d3f0b3b24cbcf0b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_Category' coverage is below the threshold 50%", - "markdown": "Method `set_Category` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 489, - "startColumn": 9, - "charOffset": 15269, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 487, - "startColumn": 1, - "charOffset": 15227, - "charLength": 126, - "snippet": { - "text": " {\r\n get => _category;\r\n set => this.SetField(ref _category, value);\r\n }\r\n private Category _category;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1bc31d6967e6e59e", - "equalIndicator/v1": "7106df02db19bd52b86a4bbf5d3037fc797b50a556e7006fa9ed31bf6b5baf90" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'SoulSplitter.SoulComponentFactory' coverage is below the threshold 50%", - "markdown": "Class `SoulSplitter.SoulComponentFactory` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/SoulComponentFactory.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 27, - "startColumn": 14, - "charOffset": 1005, - "charLength": 20, - "snippet": { - "text": "SoulComponentFactory" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 25, - "startColumn": 1, - "charOffset": 965, - "charLength": 140, - "snippet": { - "text": "namespace SoulSplitter;\r\n\r\npublic class SoulComponentFactory : IComponentFactory\r\n{\r\n public string ComponentName => SoulComponent.Name;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e4addaba11a4feaa", - "equalIndicator/v1": "71075d055724ad08619799b83a8a4a11f232ce167a72a0b645bd3cb51deeaede" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'EldenRing.EldenRing' coverage is below the threshold 50%", - "markdown": "Class `EldenRing.EldenRing` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/EldenRing.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 27, - "startColumn": 14, - "charOffset": 1050, - "charLength": 9, - "snippet": { - "text": "EldenRing" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 25, - "startColumn": 1, - "charOffset": 1002, - "charLength": 101, - "snippet": { - "text": "namespace SoulMemory.EldenRing;\r\n\r\npublic class EldenRing : IGame\r\n{\r\n private Process? _process;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "41ef084e6d366acf", - "equalIndicator/v1": "7146269e2d695354ecb4ca8178c9dc26d66bad1eded6d50be5025c9f508957e2" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'FilterItem' coverage is below the threshold 50%", - "markdown": "Method `FilterItem` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/FilteredComboBox.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 140, - "startColumn": 18, - "charOffset": 4214, - "charLength": 10, - "snippet": { - "text": "FilterItem" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 138, - "startColumn": 1, - "charOffset": 4188, - "charLength": 102, - "snippet": { - "text": " }\r\n\r\n private bool FilterItem(object value)\r\n {\r\n if (Text.Length == 0) return true;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0d1d0689c7112427", - "equalIndicator/v1": "716db41487d8e974876e78586144255d64cf28f649a7f5fd32514e5bcab75d4f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'IsJapanese' coverage is below the threshold 50%", - "markdown": "Method `IsJapanese` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 489, - "startColumn": 18, - "charOffset": 17049, - "charLength": 10, - "snippet": { - "text": "IsJapanese" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 487, - "startColumn": 1, - "charOffset": 16979, - "charLength": 207, - "snippet": { - "text": " /// \r\n /// bool\r\n private bool IsJapanese()\r\n {\r\n // Calls DarkSoulsRemastered.exe+C8820 (1.03, different address in 1.03.1) and then writes the value of eax\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ba1996215385f441", - "equalIndicator/v1": "717c71b7640efbb4b53cfa9c760b1e26fc8530dc362c0ad66efc09eb4de50184" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadBytes' coverage is below the threshold 50%", - "markdown": "Method `ReadBytes` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/IMemory.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 30, - "startColumn": 19, - "charOffset": 1083, - "charLength": 9, - "snippet": { - "text": "ReadBytes" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 28, - "startColumn": 1, - "charOffset": 1009, - "charLength": 140, - "snippet": { - "text": "public class ByteArrayMemory(byte[] data) : IMemory\r\n{\r\n public byte[] ReadBytes(long? offset, int length)\r\n {\r\n offset ??= 0;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "adca8760fa1c3c0e", - "equalIndicator/v1": "71ed824a37682b3b82533be178e2760548bda803bfae1483e2e6e8eb3e278d42" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Constructor 'ParamFieldAttribute' coverage is below the threshold 50%", - "markdown": "Constructor `ParamFieldAttribute` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/ParamFieldAttribute.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 31, - "startColumn": 12, - "charOffset": 1142, - "charLength": 19, - "snippet": { - "text": "ParamFieldAttribute" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 29, - "startColumn": 1, - "charOffset": 1122, - "charLength": 121, - "snippet": { - "text": " }\r\n\r\n public ParamFieldAttribute(int offset, ParamType paramType, int arraySize)\r\n {\r\n Offset = offset;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "64d7378b8e360bf3", - "equalIndicator/v1": "7256285b026a903fd59f0498acdef65ae6322f9af16401bceb1ef248343bbcb7" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_VisibleBossSplit' coverage is below the threshold 50%", - "markdown": "Method `set_VisibleBossSplit` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 152, - "startColumn": 9, - "charOffset": 4551, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 150, - "startColumn": 1, - "charOffset": 4501, - "charLength": 146, - "snippet": { - "text": " {\r\n get => _visibleBossSplit;\r\n set => this.SetField(ref _visibleBossSplit, value);\r\n }\r\n private bool _visibleBossSplit;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "fd0209239051e87c", - "equalIndicator/v1": "730ff1edc4da206841a852d01311de9bba2da875147ed3e1f336a202900f13a0" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteInt16' coverage is below the threshold 50%", - "markdown": "Method `WriteInt16` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 264, - "startColumn": 17, - "charOffset": 6910, - "charLength": 10, - "snippet": { - "text": "WriteInt16" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 262, - "startColumn": 1, - "charOffset": 6823, - "charLength": 192, - "snippet": { - "text": " public void WriteInt16(short value) => WriteInt16(null, value);\r\n\r\n public void WriteInt16(long? offset, short value)\r\n {\r\n WriteMemory(offset, BitConverter.GetBytes(value));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c86a8bbfc7504b70", - "equalIndicator/v1": "7322d157903335b112fceac0c27d4332839a86d331dfbfbaee1c7703c1991ecd" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'DarkSouls2.Scholar' coverage is below the threshold 50%", - "markdown": "Class `DarkSouls2.Scholar` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls2/scholar.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 24, - "startColumn": 16, - "charOffset": 963, - "charLength": 7, - "snippet": { - "text": "Scholar" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 22, - "startColumn": 1, - "charOffset": 912, - "charLength": 108, - "snippet": { - "text": "namespace SoulMemory.DarkSouls2;\r\n\r\ninternal class Scholar : IDarkSouls2\r\n{\r\n private Process? _process;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3905975fd2a76464", - "equalIndicator/v1": "73446037f46ce36c734a31748c2fb1274e2ee8b4b8f9220ff7f6211633fee926" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_DataOffset' coverage is below the threshold 50%", - "markdown": "Method `set_DataOffset` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/TextTableEntry.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 22, - "startColumn": 35, - "charOffset": 953, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 20, - "startColumn": 1, - "charOffset": 872, - "charLength": 135, - "snippet": { - "text": "{\r\n public uint ItemLowRange { get; set; }\r\n public uint DataOffset { get; set; }\r\n public uint ItemHighRange { get; set; }\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d3ffb60049f51f72", - "equalIndicator/v1": "73512b7463387072fd60961c10b1164280f22c4b8287634015e89d24ec51c0c6" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'BoyerMooreSearch' coverage is below the threshold 50%", - "markdown": "Method `BoyerMooreSearch` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 294, - "startColumn": 30, - "charOffset": 11368, - "charLength": 16, - "snippet": { - "text": "BoyerMooreSearch" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 292, - "startColumn": 1, - "charOffset": 11272, - "charLength": 198, - "snippet": { - "text": " /// Will return the first match it finds.\r\n /// \r\n public static List BoyerMooreSearch(this byte[] haystack, byte?[] needle)\r\n {\r\n var result = new List();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7bb4eaa9b6cbbc82", - "equalIndicator/v1": "744b7dc52e22a67b05ee0ac987f6f2fe0ac5cb9b6399bc1f70f35d3ab92db380" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetMainModule' coverage is below the threshold 50%", - "markdown": "Method `GetMainModule` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Process/ProcessWrapper.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 30, - "startColumn": 34, - "charOffset": 1234, - "charLength": 13, - "snippet": { - "text": "GetMainModule" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 28, - "startColumn": 1, - "charOffset": 1075, - "charLength": 338, - "snippet": { - "text": " public System.Diagnostics.Process? GetProcess() => _process;\r\n public bool Is64Bit() => _process?.Is64Bit() ?? false;\r\n public ProcessWrapperModule? GetMainModule() => _process?.MainModule == null ? null : ProcessWrapperModule.FromProcessModule(_process.MainModule);\r\n\r\n public List GetProcessModules()\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5245347eb8cbbb0d", - "equalIndicator/v1": "749b3ec9b456a0bbf89f15b96fad7c5ae4e801a64a832674246bfff75727c8df" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'OnStart' coverage is below the threshold 50%", - "markdown": "Method `OnStart` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls2Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 56, - "startColumn": 18, - "charOffset": 1923, - "charLength": 7, - "snippet": { - "text": "OnStart" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 54, - "startColumn": 1, - "charOffset": 1890, - "charLength": 99, - "snippet": { - "text": " #region \r\n\r\n private void OnStart(object sender, EventArgs e)\r\n {\r\n StartTimer();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1b4181fbed540719", - "equalIndicator/v1": "74cd28d1c525dbf384bf0529540630d85dcd99e4a59097722913f317178a0d2a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_VisibleKnownFlagSplit' coverage is below the threshold 50%", - "markdown": "Method `get_VisibleKnownFlagSplit` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 259, - "startColumn": 9, - "charOffset": 7219, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 257, - "startColumn": 1, - "charOffset": 7165, - "charLength": 158, - "snippet": { - "text": " public bool VisibleKnownFlagSplit\r\n {\r\n get => _visibleKnownFlagSplit;\r\n set => this.SetField(ref _visibleKnownFlagSplit, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d91df009fb1507ba", - "equalIndicator/v1": "754636cadbc739e8914e6f078e8be58466e60f3f482373e3237fddd954b78cf3" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetTreeBuilder' coverage is below the threshold 50%", - "markdown": "Method `GetTreeBuilder` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls2/scholar.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 37, - "startColumn": 24, - "charOffset": 1725, - "charLength": 14, - "snippet": { - "text": "GetTreeBuilder" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 35, - "startColumn": 1, - "charOffset": 1516, - "charLength": 279, - "snippet": { - "text": " public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, \"darksoulsii\", InitPointers, ResetPointers);\r\n public int GetInGameTimeMilliseconds() => 0;\r\n public TreeBuilder GetTreeBuilder()\r\n {\r\n var treeBuilder = new TreeBuilder();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7e9a2f3e0708cec9", - "equalIndicator/v1": "75d8c46fc9c5ea07c4271755e8c1e53b40f1375272a313394beb303a4995f03d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'OnStart' coverage is below the threshold 50%", - "markdown": "Method `OnStart` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/EldenRingSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 139, - "startColumn": 18, - "charOffset": 4781, - "charLength": 7, - "snippet": { - "text": "OnStart" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 137, - "startColumn": 1, - "charOffset": 4603, - "charLength": 244, - "snippet": { - "text": " //Thats why autostarting will take care of this and doesn't need the event.\r\n //However, we still need this event when players start the timer manually.\r\n private void OnStart(object sender, EventArgs e)\r\n {\r\n StartTimer();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "05ecaff2f012a429", - "equalIndicator/v1": "762b8a7f6863867ee05b5b16e48077c6f0faad43b6da1c4a73c4871047f281b6" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_VisibleGraceSplit' coverage is below the threshold 50%", - "markdown": "Method `get_VisibleGraceSplit` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 171, - "startColumn": 9, - "charOffset": 4996, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 169, - "startColumn": 1, - "charOffset": 4946, - "charLength": 146, - "snippet": { - "text": " public bool VisibleGraceSplit\r\n {\r\n get => _visibleGraceSplit;\r\n set => this.SetField(ref _visibleGraceSplit, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a67dab43cb1d479a", - "equalIndicator/v1": "7647781b0b124028c27f08916df4dad2d8a9ec130e62667395bcb8d45fd4100c" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'AddRefreshError' coverage is below the threshold 50%", - "markdown": "Method `AddRefreshError` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/MainViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 151, - "startColumn": 17, - "charOffset": 5271, - "charLength": 15, - "snippet": { - "text": "AddRefreshError" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 149, - "startColumn": 1, - "charOffset": 5246, - "charLength": 219, - "snippet": { - "text": " }\r\n\r\n public void AddRefreshError(RefreshError error)\r\n {\r\n if(IgnoreProcessNotRunningErrors && error.Reason == RefreshErrorReason.ProcessNotRunning || error.Reason == RefreshErrorReason.ProcessExited)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ee4d2799759c2d41", - "equalIndicator/v1": "768051e06eea633dea85393b7cad22796d9f4d37b9635f50c126fbac45b72ebc" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'EldenRing.PositionViewModel' coverage is below the threshold 50%", - "markdown": "Class `EldenRing.PositionViewModel` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/PositionViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 23, - "startColumn": 14, - "charOffset": 953, - "charLength": 17, - "snippet": { - "text": "PositionViewModel" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 21, - "startColumn": 1, - "charOffset": 900, - "charLength": 111, - "snippet": { - "text": "namespace SoulSplitter.UI.EldenRing;\r\n\r\npublic class PositionViewModel : ICustomNotifyPropertyChanged\r\n{\r\n \r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "2bbe01d751ff298e", - "equalIndicator/v1": "768f8f2ebc7db7fbc6511c5dbd3f7117fbe1565309b3043db92ca5e53a10ca17" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Constructor 'SekiroSplitter' coverage is below the threshold 50%", - "markdown": "Constructor `SekiroSplitter` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/SekiroSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 37, - "startColumn": 12, - "charOffset": 1362, - "charLength": 14, - "snippet": { - "text": "SekiroSplitter" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 35, - "startColumn": 1, - "charOffset": 1298, - "charLength": 150, - "snippet": { - "text": " private MainViewModel _mainViewModel = null!;\r\n\r\n public SekiroSplitter(LiveSplitState state, Sekiro sekiro)\r\n {\r\n _sekiro = sekiro;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ab39f3f2882688ad", - "equalIndicator/v1": "76f9d99426b8aea50e3e7b63d0de1c0a91c21e18bd4034c60318f2dab6f39263" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Constructor 'ErrorWindow' coverage is below the threshold 50%", - "markdown": "Constructor `ErrorWindow` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/ErrorWindow.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 26, - "startColumn": 12, - "charOffset": 995, - "charLength": 11, - "snippet": { - "text": "ErrorWindow" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 24, - "startColumn": 1, - "charOffset": 938, - "charLength": 110, - "snippet": { - "text": "public partial class ErrorWindow : Window\r\n{\r\n public ErrorWindow()\r\n {\r\n InitializeComponent();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f9b178c122743b8a", - "equalIndicator/v1": "773efde8793763f6c0327504277c3e30c2f398a5cbfe747f9c3046f923821f0a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get__Signature' coverage is below the threshold 50%", - "markdown": "Method `get__Signature` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Native/Structs/Image/IMAGE_NT_HEADERS32.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 39, - "startColumn": 9, - "charOffset": 1278, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 37, - "startColumn": 1, - "charOffset": 1261, - "charLength": 101, - "snippet": { - "text": " {\r\n\r\n get { return Encoding.ASCII.GetString(BitConverter.GetBytes(Signature)); }\r\n }\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "bc99439b16be3c3d", - "equalIndicator/v1": "77445c49f4d1ca4b31e339770acfb01a0976ed7c365e2a385cff083c045b1ab6" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'Dispose' coverage is below the threshold 50%", - "markdown": "Method `Dispose` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/EldenRingSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 55, - "startColumn": 17, - "charOffset": 1892, - "charLength": 7, - "snippet": { - "text": "Dispose" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 53, - "startColumn": 1, - "charOffset": 1867, - "charLength": 66, - "snippet": { - "text": " }\r\n\r\n public void Dispose()\r\n {\r\n Dispose(true);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "28a31a67cc45c578", - "equalIndicator/v1": "783ddc21449bfd6873cdd72c5b9f80f230f7d33e5eb0c81d7b86edfbb949ed63" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_SelectedSplit' coverage is below the threshold 50%", - "markdown": "Method `set_SelectedSplit` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 268, - "startColumn": 9, - "charOffset": 9246, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 266, - "startColumn": 1, - "charOffset": 9199, - "charLength": 117, - "snippet": { - "text": " {\r\n get => _selectedSplit;\r\n set\r\n {\r\n this.SetField(ref _selectedSplit, value);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "934fe4030a31c052", - "equalIndicator/v1": "785a4ef478a5353eba3c62aae9eaa900b9124212adda003c09a32dc36a074303" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetBossKillCount' coverage is below the threshold 50%", - "markdown": "Method `GetBossKillCount` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls2/DarkSouls2.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 33, - "startColumn": 16, - "charOffset": 1422, - "charLength": 16, - "snippet": { - "text": "GetBossKillCount" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 31, - "startColumn": 1, - "charOffset": 1238, - "charLength": 449, - "snippet": { - "text": " public bool IsLoading() => _darkSouls2?.IsLoading() ?? false;\r\n public bool ReadEventFlag(uint eventFlagId) => _darkSouls2?.ReadEventFlag(eventFlagId) ?? false;\r\n public int GetBossKillCount(BossType bossType) => _darkSouls2?.GetBossKillCount(bossType) ?? 0;\r\n public int GetAttribute(Attribute attribute) => _darkSouls2?.GetAttribute(attribute) ?? 0;\r\n public TreeBuilder GetTreeBuilder() => _darkSouls2?.GetTreeBuilder() ?? null!;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4f41684ab83452f9", - "equalIndicator/v1": "786e43ce164e7705e18e5cef1960bb696d1e730ae15ec0f7320d85f883134c5a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetProcess' coverage is below the threshold 50%", - "markdown": "Method `GetProcess` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/EldenRing.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 47, - "startColumn": 21, - "charOffset": 1805, - "charLength": 10, - "snippet": { - "text": "GetProcess" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 45, - "startColumn": 1, - "charOffset": 1654, - "charLength": 313, - "snippet": { - "text": "\r\n #region Refresh/init/reset ================================================================================================\r\n public Process? GetProcess() => _process;\r\n\r\n public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, \"eldenring\", InitPointers, ResetPointers);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "bc5d93e3ce98f4e6", - "equalIndicator/v1": "7884a8e9396f2a0ff4fcb736bd98787f7b74b39a5a33f71638e9ad28e7679990" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadInt32' coverage is below the threshold 50%", - "markdown": "Method `ReadInt32` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 200, - "startColumn": 16, - "charOffset": 5242, - "charLength": 9, - "snippet": { - "text": "ReadInt32" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 198, - "startColumn": 1, - "charOffset": 5207, - "charLength": 137, - "snippet": { - "text": "\r\n #region Read\r\n public int ReadInt32(long? offset = null)\r\n {\r\n return BitConverter.ToInt32(ReadMemory(offset, 4), 0);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9a15e96a49586cf0", - "equalIndicator/v1": "78b56775f833c75de3f9c2ec293f34f6b769d97f9ee90dd0316e579244bdb948" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteWeaponDescription' coverage is below the threshold 50%", - "markdown": "Method `WriteWeaponDescription` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 539, - "startColumn": 17, - "charOffset": 19021, - "charLength": 22, - "snippet": { - "text": "WriteWeaponDescription" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 537, - "startColumn": 1, - "charOffset": 18996, - "charLength": 172, - "snippet": { - "text": " }\r\n\r\n public void WriteWeaponDescription(uint weaponId, string description)\r\n {\r\n var weaponDescriptionsPointer = _msgMan.CreatePointerFromAddress(0x358);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4d392f2260d66200", - "equalIndicator/v1": "78eb40909650591f9ed59224da6e5dc49e87f2eb9e021cd1144f770d5469d610" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_Children' coverage is below the threshold 50%", - "markdown": "Method `get_Children` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/SplitViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 36, - "startColumn": 76, - "charOffset": 1391, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 34, - "startColumn": 1, - "charOffset": 1277, - "charLength": 176, - "snippet": { - "text": " private TimingType _timingType;\r\n\r\n public ObservableCollection Children { get; set; } = [];\r\n\r\n #region ICustomNotifyPropertyChanged\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e871dce56f06586b", - "equalIndicator/v1": "79464ed17b61372bbaa4931da3c074493cea290f0ed1810547c96a70234c529d" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get__e_magic' coverage is below the threshold 50%", - "markdown": "Method `get__e_magic` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Native/Structs/Image/IMAGE_DOS_HEADER.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 49, - "startColumn": 9, - "charOffset": 2281, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 47, - "startColumn": 1, - "charOffset": 2237, - "charLength": 89, - "snippet": { - "text": " private string _e_magic\r\n {\r\n get { return new string(e_magic); }\r\n }\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ffce0a19366e1179", - "equalIndicator/v1": "7962812c0ccfaf6d5ebc8123fec158bc7f9789241e52c46ae4eb5baca50b6c5b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'AddPointer' coverage is below the threshold 50%", - "markdown": "Method `AddPointer` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/PointerAppender.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 27, - "startColumn": 28, - "charOffset": 1055, - "charLength": 10, - "snippet": { - "text": "AddPointer" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 25, - "startColumn": 1, - "charOffset": 1019, - "charLength": 130, - "snippet": { - "text": " }\r\n\r\n public PointerAppender AddPointer(Pointer pointer, params long[] offsets)\r\n {\r\n var node = new PointerNode\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "44e7fae72c1e3d36", - "equalIndicator/v1": "79b6011ae7c09aa79b11f257ceeae268dcd065b5ab3179b5cbffd40e22c9a015" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'Dispose' coverage is below the threshold 50%", - "markdown": "Method `Dispose` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls1Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 77, - "startColumn": 17, - "charOffset": 2716, - "charLength": 7, - "snippet": { - "text": "Dispose" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 75, - "startColumn": 1, - "charOffset": 2691, - "charLength": 66, - "snippet": { - "text": " }\r\n\r\n public void Dispose()\r\n {\r\n Dispose(true);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f79a4d44817118e6", - "equalIndicator/v1": "7a1fdbc0a4aab3b6f84b3eeab1813cfa201efd2117871a061f8550b45dd1bbce" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Constructor 'RefreshError' coverage is below the threshold 50%", - "markdown": "Constructor `RefreshError` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/RefreshError.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 40, - "startColumn": 12, - "charOffset": 1314, - "charLength": 12, - "snippet": { - "text": "RefreshError" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 38, - "startColumn": 1, - "charOffset": 1294, - "charLength": 114, - "snippet": { - "text": " }\r\n\r\n public RefreshError(RefreshErrorReason reason, Exception exception)\r\n {\r\n Reason = reason;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7b6985484467f4d3", - "equalIndicator/v1": "7a536bf47681925a42214b9a8409f9c67505cf4e5db17b8a745767d61138939b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Constructor 'DarkSouls3Splitter' coverage is below the threshold 50%", - "markdown": "Constructor `DarkSouls3Splitter` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls3Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 37, - "startColumn": 12, - "charOffset": 1394, - "charLength": 18, - "snippet": { - "text": "DarkSouls3Splitter" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 35, - "startColumn": 1, - "charOffset": 1330, - "charLength": 168, - "snippet": { - "text": " private MainViewModel _mainViewModel = null!;\r\n\r\n public DarkSouls3Splitter(LiveSplitState state, DarkSouls3 darkSouls)\r\n {\r\n _darkSouls3 = darkSouls;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "6c9e77021457cb86", - "equalIndicator/v1": "7a582943b1aad02dcf27439d123fc6ef8460d59ad07b5eb446b60a984211f0ca" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteBytes' coverage is below the threshold 50%", - "markdown": "Method `WriteBytes` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/IMemory.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 118, - "startColumn": 24, - "charOffset": 3686, - "charLength": 10, - "snippet": { - "text": "WriteBytes" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 116, - "startColumn": 1, - "charOffset": 3642, - "charLength": 231, - "snippet": { - "text": " #region Write\r\n\r\n public static void WriteBytes(this IMemory memory, byte[] value) => memory.WriteBytes(null, value);\r\n\r\n public static void WriteInt16(this IMemory memory, short value) => memory.WriteInt16(null, value);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c5535fc5c0f680b9", - "equalIndicator/v1": "7a9a96dcf19afb93c843a29c9df74120e44e46b04d84a66b8728390a5d424671" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'RegisterHotKey' coverage is below the threshold 50%", - "markdown": "Method `RegisterHotKey` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Hotkeys/GlobalHotKey.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 57, - "startColumn": 23, - "charOffset": 1983, - "charLength": 14, - "snippet": { - "text": "RegisterHotKey" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 55, - "startColumn": 1, - "charOffset": 1952, - "charLength": 182, - "snippet": { - "text": " }\r\n\r\n public static int RegisterHotKey(ModifierKeys modifier, Key key, Action action)\r\n {\r\n WindowReadyEvent.WaitOne(); //wait for hotkey window to have initialized\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c986fe90d091484c", - "equalIndicator/v1": "7a9eb5b338fa9e607ec62b92a248e364c9fe92d28a3714392b4d1be9e4dd28dd" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'RemoveSplit' coverage is below the threshold 50%", - "markdown": "Method `RemoveSplit` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 398, - "startColumn": 17, - "charOffset": 12380, - "charLength": 11, - "snippet": { - "text": "RemoveSplit" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 396, - "startColumn": 1, - "charOffset": 12301, - "charLength": 136, - "snippet": { - "text": " private HierarchicalSplitViewModel? _selectedSplit;\r\n \r\n public void RemoveSplit()\r\n {\r\n if (SelectedSplit != null)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "05b99bb3e365c969", - "equalIndicator/v1": "7aadfcf1530db9a6dc2f4914beae2c3a8d955be1832d168aeb6cb0c9fbe5ae4f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_Level' coverage is below the threshold 50%", - "markdown": "Method `get_Level` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splits/DarkSouls2/Attribute.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 36, - "startColumn": 9, - "charOffset": 1350, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 34, - "startColumn": 1, - "charOffset": 1313, - "charLength": 109, - "snippet": { - "text": " public int Level\r\n {\r\n get => _level;\r\n set => this.SetField(ref _level, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "64a718986cefed40", - "equalIndicator/v1": "7af3d7cbd59b71d85ef3be368e6ff244fe5f64716eb631b01d73c9a97283c6f1" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_ModuleName' coverage is below the threshold 50%", - "markdown": "Method `set_ModuleName` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Process/ProcessWrapperModule.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 24, - "startColumn": 37, - "charOffset": 967, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 22, - "startColumn": 1, - "charOffset": 893, - "charLength": 186, - "snippet": { - "text": "public class ProcessWrapperModule\r\n{\r\n public string ModuleName { get; set; } = null!;\r\n public string FileName { get; set; } = null!;\r\n public IntPtr BaseAddress { get; set; }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "cc272e116b3c866e", - "equalIndicator/v1": "7b000be212ed0a7cc3bb15842b3a59371187cde8fc1eaedddaa781ea27aa549c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_Region' coverage is below the threshold 50%", - "markdown": "Method `set_Region` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/PositionViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 44, - "startColumn": 9, - "charOffset": 1391, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 42, - "startColumn": 1, - "charOffset": 1343, - "charLength": 107, - "snippet": { - "text": " {\r\n get => Position.Region;\r\n set => this.SetField(ref Position.Region, value);\r\n }\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "68b5df5288121e39", - "equalIndicator/v1": "7bc2b88debb9a82ca0a7ab9d4e43382d69b6214dea1e1919f439536af4255cf0" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'AddPointer' coverage is below the threshold 50%", - "markdown": "Method `AddPointer` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerAppender.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 29, - "startColumn": 28, - "charOffset": 1113, - "charLength": 10, - "snippet": { - "text": "AddPointer" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 27, - "startColumn": 1, - "charOffset": 1077, - "charLength": 130, - "snippet": { - "text": " }\r\n\r\n public PointerAppender AddPointer(Pointer pointer, params long[] offsets)\r\n {\r\n var node = new PointerNode\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "86705f16ddbec2a8", - "equalIndicator/v1": "7be1e4428b6e663c626d9eadaecfafa08fedc7574861b486316d66f0a0b01e60" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Constructor 'BaseParam' coverage is below the threshold 50%", - "markdown": "Constructor `BaseParam` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/BaseParam.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 33, - "startColumn": 15, - "charOffset": 1375, - "charLength": 9, - "snippet": { - "text": "BaseParam" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 31, - "startColumn": 1, - "charOffset": 1230, - "charLength": 289, - "snippet": { - "text": " private readonly List<(PropertyInfo propertyInfo, ParamBitFieldAttribute paramFieldAttribute)> _paramBitfieldPropertyCache;\r\n\r\n protected BaseParam(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry)\r\n {\r\n BasePointer = basePointer;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9e187e680ab132eb", - "equalIndicator/v1": "7c046ae1197bf06a2cdc594829d92a8c2b83ed2ccb7271bc4b908067220d5200" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_RemoveSplit' coverage is below the threshold 50%", - "markdown": "Method `get_RemoveSplit` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 265, - "startColumn": 9, - "charOffset": 11613, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 263, - "startColumn": 1, - "charOffset": 11561, - "charLength": 185, - "snippet": { - "text": " public RelayCommand RemoveSplit\r\n {\r\n get => (RelayCommand)GetValue(RemoveSplitDependencyProperty);\r\n set => SetValue(RemoveSplitDependencyProperty, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3ddd315217cee011", - "equalIndicator/v1": "7c212e9c4826be9cbf177ac4f65465e8c454159d377f053f686656bf0fdedc5f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_SelectedFlagDescription' coverage is below the threshold 50%", - "markdown": "Method `get_SelectedFlagDescription` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/FlagTrackerViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 346, - "startColumn": 9, - "charOffset": 10724, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 344, - "startColumn": 1, - "charOffset": 10656, - "charLength": 176, - "snippet": { - "text": " public FlagDescription? SelectedFlagDescription\r\n {\r\n get => _selectedFlagDescription;\r\n set => this.SetField(ref _selectedFlagDescription, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d5e82f22857dc917", - "equalIndicator/v1": "7c5dfdeab5fd1a0bc9c7d5b93c083926a6b46b9a5713c4384acbf55004a908e5" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'Dispose' coverage is below the threshold 50%", - "markdown": "Method `Dispose` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/SoulComponent.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 219, - "startColumn": 28, - "charOffset": 8026, - "charLength": 7, - "snippet": { - "text": "Dispose" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 217, - "startColumn": 1, - "charOffset": 7956, - "charLength": 133, - "snippet": { - "text": " GC.SuppressFinalize(this);\r\n }\r\n protected virtual void Dispose(bool disposing)\r\n {\r\n if (_splitter != null)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "57321fb6768df62d", - "equalIndicator/v1": "7dc2fe84860cc665d27e9ac85906857ec303ff4bb68717849d3b71387c5bab4b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_Size' coverage is below the threshold 50%", - "markdown": "Method `get_Size` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/PositionViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 49, - "startColumn": 9, - "charOffset": 1488, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 47, - "startColumn": 1, - "charOffset": 1451, - "charLength": 123, - "snippet": { - "text": " public byte Size\r\n {\r\n get => Position.Size;\r\n set => this.SetField(ref Position.Size, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "fbe10003c099ab82", - "equalIndicator/v1": "7dd18f0d4bc46d8794aee45ceab06f19e4cc9da076c5ef50ab607bb8746ff2fb" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'IsPlayerLoaded' coverage is below the threshold 50%", - "markdown": "Method `IsPlayerLoaded` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/EldenRing.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 312, - "startColumn": 17, - "charOffset": 11042, - "charLength": 14, - "snippet": { - "text": "IsPlayerLoaded" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 310, - "startColumn": 1, - "charOffset": 11017, - "charLength": 95, - "snippet": { - "text": " }\r\n\r\n public bool IsPlayerLoaded()\r\n {\r\n var player = _playerIns.ReadInt64();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9baaafdb27abf612", - "equalIndicator/v1": "7dea8e7f2f99e28a33e7ad697f6192b7bfb9682a7610851c47f573d902c613f8" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'Generic.SplitsTree' coverage is below the threshold 50%", - "markdown": "Class `Generic.SplitsTree` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/SplitsTree.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 25, - "startColumn": 22, - "charOffset": 997, - "charLength": 10, - "snippet": { - "text": "SplitsTree" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 23, - "startColumn": 1, - "charOffset": 917, - "charLength": 133, - "snippet": { - "text": "/// Interaction logic for SplitsTree.xaml\r\n/// \r\npublic partial class SplitsTree : UserControl\r\n{\r\n public SplitsTree()\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5fec85b6f9f4ca04", - "equalIndicator/v1": "7f0792e87e07474b541761fc6c6b0c31992db3318b69d198a66bef41839ce2c7" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetEldenRingViewModel' coverage is below the threshold 50%", - "markdown": "Method `GetEldenRingViewModel` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 33, - "startColumn": 32, - "charOffset": 1179, - "charLength": 21, - "snippet": { - "text": "GetEldenRingViewModel" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 31, - "startColumn": 1, - "charOffset": 1135, - "charLength": 129, - "snippet": { - "text": " }\r\n \r\n private EldenRingViewModel GetEldenRingViewModel()\r\n {\r\n return (DataContext as EldenRingViewModel)!;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a8a1f3c9ec7dc473", - "equalIndicator/v1": "7f24c86fbbe5254f8fdd2c4718548e0725ac2721c430f87be56d9c89b81c6b5c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'OnStart' coverage is below the threshold 50%", - "markdown": "Method `OnStart` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/BaseSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 98, - "startColumn": 25, - "charOffset": 3090, - "charLength": 7, - "snippet": { - "text": "OnStart" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 96, - "startColumn": 1, - "charOffset": 3057, - "charLength": 164, - "snippet": { - "text": " }\r\n\r\n public virtual void OnStart() { }\r\n public virtual ResultErr OnUpdate() { return Result.Ok();}\r\n public virtual void OnReset() { }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "67630fa82330f9f6", - "equalIndicator/v1": "7f7be0eeb33e3aaeaa8cc50f16fbaeebcf182f9caf5f717981fb330bdff0d118" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ToString' coverage is below the threshold 50%", - "markdown": "Method `ToString` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Result.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 206, - "startColumn": 28, - "charOffset": 4844, - "charLength": 8, - "snippet": { - "text": "ToString" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 204, - "startColumn": 1, - "charOffset": 4808, - "charLength": 100, - "snippet": { - "text": " }\r\n\r\n public override string ToString()\r\n {\r\n return IsOk ? $\"Ok: {_ok}\" : $\"Err\";\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "22cb6b26c0f46762", - "equalIndicator/v1": "7f7ce356d74d5e862b757d9ecc7f428a0825f94cde9b1ab9b1f380da0c36cca2" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ImportXml' coverage is below the threshold 50%", - "markdown": "Method `ImportXml` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/SoulComponent.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 230, - "startColumn": 18, - "charOffset": 8327, - "charLength": 9, - "snippet": { - "text": "ImportXml" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 228, - "startColumn": 1, - "charOffset": 8171, - "charLength": 188, - "snippet": { - "text": " #region Xml settings ==============================================================================================================\r\n\r\n private void ImportXml()\r\n {\r\n try\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7909e2804dc27555", - "equalIndicator/v1": "7fb2b0e06263cb6d97ca54702318daf9fb1d12bc839d5bc868918b764c6b8c20" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'OnReset' coverage is below the threshold 50%", - "markdown": "Method `OnReset` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/BaseSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 100, - "startColumn": 25, - "charOffset": 3207, - "charLength": 7, - "snippet": { - "text": "OnReset" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 98, - "startColumn": 1, - "charOffset": 3066, - "charLength": 173, - "snippet": { - "text": " public virtual void OnStart() { }\r\n public virtual ResultErr OnUpdate() { return Result.Ok();}\r\n public virtual void OnReset() { }\r\n\r\n #endregion\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "07b69bb7da1c9d98", - "equalIndicator/v1": "7fde8bc0fc04143952bb448335c4ca8da534da3389ab8ea8008d85ef98135472" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'Handle' coverage is below the threshold 50%", - "markdown": "Method `Handle` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Result.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 300, - "startColumn": 17, - "charOffset": 6927, - "charLength": 6, - "snippet": { - "text": "Handle" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 298, - "startColumn": 1, - "charOffset": 6902, - "charLength": 104, - "snippet": { - "text": " }\r\n\r\n public void Handle(Action okAction, Action errAction)\r\n {\r\n if (IsOk)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a8874115ed61ee84", - "equalIndicator/v1": "7fe6f6371e2267b428d76bd055f3229070b8bcf94640eb558716528071a2d4c0" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'Memory.Extensions' coverage is below the threshold 50%", - "markdown": "Class `Memory.Extensions` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/Extensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 23, - "startColumn": 21, - "charOffset": 922, - "charLength": 10, - "snippet": { - "text": "Extensions" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 21, - "startColumn": 1, - "charOffset": 870, - "charLength": 123, - "snippet": { - "text": "namespace SoulMemory.Memory;\r\n\r\npublic static class Extensions\r\n{\r\n public static string ToHexString(this byte[] bytes)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "46f9a53ca542c29e", - "equalIndicator/v1": "806e627249e32e96035a9e3cefcbdd6760de14e104684a6954d3fb11faffa547" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ToString' coverage is below the threshold 50%", - "markdown": "Method `ToString` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/Position.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 30, - "startColumn": 28, - "charOffset": 1057, - "charLength": 8, - "snippet": { - "text": "ToString" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 28, - "startColumn": 1, - "charOffset": 1007, - "charLength": 159, - "snippet": { - "text": " public float Z;\r\n\r\n public override string ToString()\r\n {\r\n return $\"m{Area:D2}_{Block:D2}_{Region:D2}_{Size:D2} - ({X:F2}, {Y:F2}, {Z:F2})\";\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "2fefcf3923cb03ae", - "equalIndicator/v1": "812da137f027f71dceecbb53c9a440501ed358e5138e568385ce4867d1429e24" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_ItemHighRange' coverage is below the threshold 50%", - "markdown": "Method `set_ItemHighRange` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/TextTableEntry.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 23, - "startColumn": 38, - "charOffset": 998, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 21, - "startColumn": 1, - "charOffset": 875, - "charLength": 199, - "snippet": { - "text": " public uint ItemLowRange { get; set; }\r\n public uint DataOffset { get; set; }\r\n public uint ItemHighRange { get; set; }\r\n\r\n public override string ToString() => ItemLowRange.ToString();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "af9ba9837c0f69cd", - "equalIndicator/v1": "81c902b8912d694bd128eb14bec1a780a1ea3e9f4e516d75167a6a96eb058b06" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'Dispose' coverage is below the threshold 50%", - "markdown": "Method `Dispose` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/SekiroSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 76, - "startColumn": 28, - "charOffset": 2346, - "charLength": 7, - "snippet": { - "text": "Dispose" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 74, - "startColumn": 1, - "charOffset": 2310, - "charLength": 91, - "snippet": { - "text": " }\r\n\r\n protected virtual void Dispose(bool disposing)\r\n {\r\n if (disposing)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1eeab7b424955558", - "equalIndicator/v1": "82b49dc5a144fa347665582f5666ec0ac5bfc47173c8e2a38c60264bed22210b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'EldenRing.EldenRingViewModel' coverage is below the threshold 50%", - "markdown": "Class `EldenRing.EldenRingViewModel` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 28, - "startColumn": 14, - "charOffset": 1098, - "charLength": 18, - "snippet": { - "text": "EldenRingViewModel" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 26, - "startColumn": 1, - "charOffset": 1045, - "charLength": 139, - "snippet": { - "text": "namespace SoulSplitter.UI.EldenRing;\r\n\r\npublic class EldenRingViewModel : ICustomNotifyPropertyChanged\r\n{\r\n public EldenRingViewModel()\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1b3cb9c5097db0e9", - "equalIndicator/v1": "835e058b8246452f0006e56783a101ee5b7247050476a4c2872d768cc7197e65" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'Splitters.SekiroSplitter' coverage is below the threshold 50%", - "markdown": "Class `Splitters.SekiroSplitter` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/SekiroSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 30, - "startColumn": 14, - "charOffset": 1120, - "charLength": 14, - "snippet": { - "text": "SekiroSplitter" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 28, - "startColumn": 1, - "charOffset": 1070, - "charLength": 118, - "snippet": { - "text": "namespace SoulSplitter.Splitters;\r\n\r\npublic class SekiroSplitter : ISplitter\r\n{\r\n private readonly Sekiro _sekiro;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "2647eb1a1b225cb1", - "equalIndicator/v1": "836943d684f8684e85bd143462081d98b7db4b7f093e33d39158b71083561029" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_EldenRingSplitType' coverage is below the threshold 50%", - "markdown": "Method `get_EldenRingSplitType` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/SplitViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 58, - "startColumn": 9, - "charOffset": 1940, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 56, - "startColumn": 1, - "charOffset": 1875, - "charLength": 163, - "snippet": { - "text": " public EldenRingSplitType EldenRingSplitType\r\n {\r\n get => _eldenRingSplitType;\r\n set => this.SetField(ref _eldenRingSplitType, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "79b612c1b1b433de", - "equalIndicator/v1": "845149aa9820a49329f1cd8c19ad93b853211a4718fb4913c72a8350b1ea8bf9" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetTreeBuilder' coverage is below the threshold 50%", - "markdown": "Method `GetTreeBuilder` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 162, - "startColumn": 24, - "charOffset": 5747, - "charLength": 14, - "snippet": { - "text": "GetTreeBuilder" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 160, - "startColumn": 1, - "charOffset": 5715, - "charLength": 102, - "snippet": { - "text": " }\r\n\r\n public TreeBuilder GetTreeBuilder()\r\n {\r\n var treeBuilder = new TreeBuilder();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "53c03bea193ecad6", - "equalIndicator/v1": "85071a4340a77c175814c1887aff3558f1328994d0ccb8635199a62915b11c3e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ResetInventoryIndices' coverage is below the threshold 50%", - "markdown": "Method `ResetInventoryIndices` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 380, - "startColumn": 17, - "charOffset": 13325, - "charLength": 21, - "snippet": { - "text": "ResetInventoryIndices" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 378, - "startColumn": 1, - "charOffset": 13261, - "charLength": 133, - "snippet": { - "text": "\r\n //Imported from CapitaineToinon. Thanks!\r\n public void ResetInventoryIndices()\r\n {\r\n for (int i = 0; i < 20; i++)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "20df31243ec4d7a8", - "equalIndicator/v1": "85150218b59d5ff1aef7a0f34a810febbec528fe8798215922ff07ce22a89efc" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'UpdateTimer' coverage is below the threshold 50%", - "markdown": "Method `UpdateTimer` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls2Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 127, - "startColumn": 18, - "charOffset": 3612, - "charLength": 11, - "snippet": { - "text": "UpdateTimer" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 125, - "startColumn": 1, - "charOffset": 3586, - "charLength": 77, - "snippet": { - "text": " }\r\n\r\n private void UpdateTimer()\r\n {\r\n switch (_timerState)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d5895bcffe6ae2ca", - "equalIndicator/v1": "854d2e68b279d0fb3e5d1d3b16009bfcc20bc913f7dc06ee00c0fcaf70f1efe3" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadEventFlag' coverage is below the threshold 50%", - "markdown": "Method `ReadEventFlag` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 312, - "startColumn": 17, - "charOffset": 11097, - "charLength": 13, - "snippet": { - "text": "ReadEventFlag" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 310, - "startColumn": 1, - "charOffset": 11068, - "charLength": 138, - "snippet": { - "text": " }\r\n \r\n public bool ReadEventFlag(uint eventFlagId)\r\n {\r\n int offset = GetEventFlagOffset(eventFlagId, out uint mask);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d81f1c307b138c61", - "equalIndicator/v1": "8553057f503ad419937e18de78d02b6f7acf61ac53a9df8179436657ce4e666e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ToString' coverage is below the threshold 50%", - "markdown": "Method `ToString` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/PositionViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 73, - "startColumn": 28, - "charOffset": 1966, - "charLength": 8, - "snippet": { - "text": "ToString" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 71, - "startColumn": 1, - "charOffset": 1931, - "charLength": 90, - "snippet": { - "text": "\r\n \r\n public override string ToString()\r\n {\r\n return Position.ToString();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "72a604ce4d72b12f", - "equalIndicator/v1": "855a1069ac9faa96df2158a5220162814be3b52ab7d1e12eb3abbc606045725b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteBytes' coverage is below the threshold 50%", - "markdown": "Method `WriteBytes` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Process/ProcessWrapper.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 92, - "startColumn": 17, - "charOffset": 3208, - "charLength": 10, - "snippet": { - "text": "WriteBytes" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 90, - "startColumn": 1, - "charOffset": 3183, - "charLength": 136, - "snippet": { - "text": " }\r\n\r\n public void WriteBytes(long offset, byte[] bytes) => _process?.WriteProcessMemoryNoError(offset, bytes);\r\n\r\n #endregion\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b4ac8c43e4c93e72", - "equalIndicator/v1": "85b2682753def7a2c735e01c0f7200f591bced4facabbf07f0efe5bb8f094e47" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetTreeBuilder' coverage is below the threshold 50%", - "markdown": "Method `GetTreeBuilder` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls2/DarkSouls2.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 35, - "startColumn": 24, - "charOffset": 1627, - "charLength": 14, - "snippet": { - "text": "GetTreeBuilder" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 33, - "startColumn": 1, - "charOffset": 1407, - "charLength": 331, - "snippet": { - "text": " public int GetBossKillCount(BossType bossType) => _darkSouls2?.GetBossKillCount(bossType) ?? 0;\r\n public int GetAttribute(Attribute attribute) => _darkSouls2?.GetAttribute(attribute) ?? 0;\r\n public TreeBuilder GetTreeBuilder() => _darkSouls2?.GetTreeBuilder() ?? null!;\r\n\r\n public ResultErr TryRefresh()\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "62397ebde4261c2e", - "equalIndicator/v1": "8618e28e38e31e90a6c89e4f6b08bcd9d3b7eb7deb01a1c945504606be3754e9" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadUInt64' coverage is below the threshold 50%", - "markdown": "Method `ReadUInt64` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 83, - "startColumn": 25, - "charOffset": 2683, - "charLength": 10, - "snippet": { - "text": "ReadUInt64" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 81, - "startColumn": 1, - "charOffset": 2650, - "charLength": 156, - "snippet": { - "text": " }\r\n\r\n public static ulong ReadUInt64(this IMemory memory, long offset)\r\n {\r\n return BitConverter.ToUInt64(memory.ReadBytes(offset, 8), 0);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "cfcb2788761663e6", - "equalIndicator/v1": "8634a98f27de8078a3d0552e6945beb86c8f9be7af391a26610eca4619eb6271" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ResetAutoSplitting' coverage is below the threshold 50%", - "markdown": "Method `ResetAutoSplitting` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls3Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 192, - "startColumn": 17, - "charOffset": 5807, - "charLength": 18, - "snippet": { - "text": "ResetAutoSplitting" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 190, - "startColumn": 1, - "charOffset": 5750, - "charLength": 111, - "snippet": { - "text": " private List _splits = [];\r\n\r\n public void ResetAutoSplitting()\r\n {\r\n _splits.Clear();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "87dfcc97ff14aa81", - "equalIndicator/v1": "86603eda527a74b3295d84e117b14da0b8c7433d546bcf338a08c2a64e400460" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'SetVisibleCore' coverage is below the threshold 50%", - "markdown": "Method `SetVisibleCore` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Hotkeys/GlobalHotKey.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 116, - "startColumn": 29, - "charOffset": 3709, - "charLength": 14, - "snippet": { - "text": "SetVisibleCore" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 114, - "startColumn": 1, - "charOffset": 3672, - "charLength": 108, - "snippet": { - "text": " }\r\n\r\n protected override void SetVisibleCore(bool value)\r\n {\r\n base.SetVisibleCore(false);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "2154100e043645f4", - "equalIndicator/v1": "867dd15a9b0059714fe04c02b609721bdac3e4b3b87f41b12897eae22695ec5d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteUInt16' coverage is below the threshold 50%", - "markdown": "Method `WriteUInt16` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 269, - "startColumn": 17, - "charOffset": 7041, - "charLength": 11, - "snippet": { - "text": "WriteUInt16" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 267, - "startColumn": 1, - "charOffset": 7016, - "charLength": 139, - "snippet": { - "text": " }\r\n\r\n public void WriteUInt16(ushort value) => WriteUInt16(null, value);\r\n\r\n public void WriteUInt16(long? offset, ushort value)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0be68817cf73326d", - "equalIndicator/v1": "86a1793fd48571743fb84c47925254dd1e214e41b54a52eefccba5147c01e68f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Constructor 'FlagTrackerWindow' coverage is below the threshold 50%", - "markdown": "Constructor `FlagTrackerWindow` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/FlagTrackerWindow.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 24, - "startColumn": 12, - "charOffset": 957, - "charLength": 17, - "snippet": { - "text": "FlagTrackerWindow" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 22, - "startColumn": 1, - "charOffset": 894, - "charLength": 122, - "snippet": { - "text": "public partial class FlagTrackerWindow : Window\r\n{\r\n public FlagTrackerWindow()\r\n {\r\n InitializeComponent();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "6828242110504ce0", - "equalIndicator/v1": "871302c344bf3e0767ca909c5bac9ee300715f99a581b99ae9786b41e976fc7e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetInventory' coverage is below the threshold 50%", - "markdown": "Method `GetInventory` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 261, - "startColumn": 23, - "charOffset": 9186, - "charLength": 12, - "snippet": { - "text": "GetInventory" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 259, - "startColumn": 1, - "charOffset": 9156, - "charLength": 157, - "snippet": { - "text": " \r\n\r\n public List GetInventory()\r\n {\r\n //Path: GameDataMan->hostPlayerGameData->equipGameData.equipInventoryData.equipInventoryDataSub\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7ca767e4147a954e", - "equalIndicator/v1": "878414dc36bbfe14b7ab814f8534f99a9c9249e1d2d3d66f96d1eab48eb7ac23" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_VisiblePositionSplit' coverage is below the threshold 50%", - "markdown": "Method `get_VisiblePositionSplit` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 231, - "startColumn": 9, - "charOffset": 6464, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 229, - "startColumn": 1, - "charOffset": 6411, - "charLength": 155, - "snippet": { - "text": " public bool VisiblePositionSplit\r\n {\r\n get => _visiblePositionSplit;\r\n set => this.SetField(ref _visiblePositionSplit, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "30a5cc9370c3b308", - "equalIndicator/v1": "87bcf2371c628f755b21b82edf2d93d0fa0f655700ca65d444cb78ead4e7a4c6" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'AreCreditsRolling' coverage is below the threshold 50%", - "markdown": "Method `AreCreditsRolling` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 251, - "startColumn": 17, - "charOffset": 8839, - "charLength": 17, - "snippet": { - "text": "AreCreditsRolling" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 249, - "startColumn": 1, - "charOffset": 8815, - "charLength": 99, - "snippet": { - "text": "\r\n \r\n public bool AreCreditsRolling()\r\n {\r\n var first = _menuMan.ReadInt32(0xc8);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0339afca5e17fd5c", - "equalIndicator/v1": "87f83eeba6bd47633eafaaffba69ecaeeb266d2fd136829ade79603e1bd1cd8d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Constructor 'ResultOk' coverage is below the threshold 50%", - "markdown": "Constructor `ResultOk` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Result.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 169, - "startColumn": 13, - "charOffset": 4024, - "charLength": 8, - "snippet": { - "text": "ResultOk" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 167, - "startColumn": 1, - "charOffset": 4003, - "charLength": 62, - "snippet": { - "text": " }\r\n\r\n private ResultOk()\r\n {\r\n IsOk = false;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "980df3d7d28f2f03", - "equalIndicator/v1": "881e10fbcf4b8f5e2a8814ace5953c923ea2af4cbcf8db880b9a84a20bfd85b8" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'DarkSouls1.DropMod' coverage is below the threshold 50%", - "markdown": "Class `DarkSouls1.DropMod` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/DropMod.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 22, - "startColumn": 14, - "charOffset": 913, - "charLength": 7, - "snippet": { - "text": "DropMod" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 20, - "startColumn": 1, - "charOffset": 864, - "charLength": 110, - "snippet": { - "text": "namespace SoulMemory.DarkSouls1;\r\n\r\npublic class DropMod(IDarkSouls1 darkSouls)\r\n{\r\n public void InitBkh()\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7ea8a73fe1c5d01d", - "equalIndicator/v1": "886568204a40b8e1a94f066484df2def8ab17961d4191d98fab06a8728aefd71" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadByte' coverage is below the threshold 50%", - "markdown": "Method `ReadByte` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 47, - "startColumn": 24, - "charOffset": 1564, - "charLength": 8, - "snippet": { - "text": "ReadByte" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 45, - "startColumn": 1, - "charOffset": 1514, - "charLength": 148, - "snippet": { - "text": " #region Reading\r\n \r\n public static byte ReadByte(this IMemory memory, long offset)\r\n {\r\n return memory.ReadBytes(offset, 1)[0];\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a22e70bf3c195c78", - "equalIndicator/v1": "88c5fe70649189d9dac72728a2c41dac90430c1376c3a4cbebf2976768209f73" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'DarkSouls1.ItemState' coverage is below the threshold 50%", - "markdown": "Class `DarkSouls1.ItemState` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splits/DarkSouls1/ItemState.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 26, - "startColumn": 14, - "charOffset": 1049, - "charLength": 9, - "snippet": { - "text": "ItemState" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 24, - "startColumn": 1, - "charOffset": 997, - "charLength": 127, - "snippet": { - "text": "\r\n[XmlType(Namespace = \"DarkSouls1\")]\r\npublic class ItemState : ICustomNotifyPropertyChanged\r\n{\r\n public ItemType? ItemType\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "828f00507ccb3171", - "equalIndicator/v1": "88f0c02105e36380cfd53520585e1e5452c12d9e2620b4ffcd9a8e3cae275dce" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'soulmods.Soulmods' coverage is below the threshold 50%", - "markdown": "Class `soulmods.Soulmods` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/soulmods/Soulmods.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 48, - "startColumn": 21, - "charOffset": 1560, - "charLength": 8, - "snippet": { - "text": "Soulmods" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 46, - "startColumn": 1, - "charOffset": 1535, - "charLength": 85, - "snippet": { - "text": "}\r\n\r\npublic static class Soulmods\r\n{\r\n public static bool Inject(Process process)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4f9435f252e4192c", - "equalIndicator/v1": "88f66433205f6f7c390f21831560f32e8f226968ad7bbe02bfed3a3876dda52d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadInt16' coverage is below the threshold 50%", - "markdown": "Method `ReadInt16` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/IMemory.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 84, - "startColumn": 25, - "charOffset": 2688, - "charLength": 9, - "snippet": { - "text": "ReadInt16" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 82, - "startColumn": 1, - "charOffset": 2655, - "charLength": 162, - "snippet": { - "text": " }\r\n\r\n public static short ReadInt16(this IMemory memory, long? offset = null)\r\n {\r\n return BitConverter.ToInt16(memory.ReadBytes(offset, 2), 0);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7d218a136c5a9a92", - "equalIndicator/v1": "890255b190af951cc9cfabb2915c76519c8f9bee5157707360602d5c37e8707c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Constructor 'ResultOk' coverage is below the threshold 50%", - "markdown": "Constructor `ResultOk` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Result.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 175, - "startColumn": 13, - "charOffset": 4112, - "charLength": 8, - "snippet": { - "text": "ResultOk" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 173, - "startColumn": 1, - "charOffset": 4091, - "charLength": 67, - "snippet": { - "text": " }\r\n\r\n private ResultOk(TOk ok)\r\n {\r\n IsOk = true;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "eeb853f68842f345", - "equalIndicator/v1": "890869e96c350bb4547c2eaf7eecd30e7c9b79df6ed684234a7ae230b0b2c8ac" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'OnStart' coverage is below the threshold 50%", - "markdown": "Method `OnStart` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/ArmoredCore6Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 32, - "startColumn": 26, - "charOffset": 1262, - "charLength": 7, - "snippet": { - "text": "OnStart" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 30, - "startColumn": 1, - "charOffset": 1164, - "charLength": 147, - "snippet": { - "text": " private readonly ArmoredCore6 _armoredCore6 = (ArmoredCore6)game;\r\n\r\n public override void OnStart()\r\n {\r\n //Copy splits on start\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c15f64485f63c562", - "equalIndicator/v1": "89300e99487685e7d34e2d7bee2b507ffa9578fad0c8c150666ef62a94a61b33" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'InitPointers' coverage is below the threshold 50%", - "markdown": "Method `InitPointers` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 78, - "startColumn": 37, - "charOffset": 3418, - "charLength": 12, - "snippet": { - "text": "InitPointers" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 76, - "startColumn": 1, - "charOffset": 3378, - "charLength": 75, - "snippet": { - "text": "\r\n\r\n private ResultErr InitPointers()\r\n {\r\n try\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4703f139f41e1e2b", - "equalIndicator/v1": "898019be15bf4ac1d4c24fa89c4ed686a8b6fb1180446b1cc3f15fb63f28079d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_FlagDescription' coverage is below the threshold 50%", - "markdown": "Method `set_FlagDescription` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/FlagTrackerViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 339, - "startColumn": 9, - "charOffset": 10523, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 337, - "startColumn": 1, - "charOffset": 10474, - "charLength": 162, - "snippet": { - "text": " {\r\n get => _flagDescription;\r\n set => this.SetField(ref _flagDescription, value);\r\n }\r\n private FlagDescription _flagDescription = new();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5a9ae75d7e25a764", - "equalIndicator/v1": "89977d80c1ddf3af4a77c92bb1d56a46f5d1a555769d920805566ab647982d25" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetProcess' coverage is below the threshold 50%", - "markdown": "Method `GetProcess` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/DarkSouls1.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 30, - "startColumn": 21, - "charOffset": 1135, - "charLength": 10, - "snippet": { - "text": "GetProcess" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 28, - "startColumn": 1, - "charOffset": 1073, - "charLength": 303, - "snippet": { - "text": "{\r\n private IDarkSouls1? _darkSouls1;\r\n public Process? GetProcess() => _darkSouls1?.GetProcess();\r\n public int GetAttribute(Attribute attribute) => _darkSouls1?.GetAttribute(attribute) ?? 0;\r\n public bool ReadEventFlag(uint eventFlagId) => _darkSouls1?.ReadEventFlag(eventFlagId) ?? false;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d2ce9acae38bc75d", - "equalIndicator/v1": "89cea257cccaa6a075eb85d4b38bbf7dd33107e5775e820c05c81029ef738e2c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'Launch' coverage is below the threshold 50%", - "markdown": "Method `Launch` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/soulmemory-rs/SoulMemoryRs.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 28, - "startColumn": 24, - "charOffset": 1064, - "charLength": 6, - "snippet": { - "text": "Launch" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 26, - "startColumn": 1, - "charOffset": 1004, - "charLength": 116, - "snippet": { - "text": "public static class SoulMemoryRs\r\n{\r\n public static void Launch()\r\n {\r\n var games = new List()\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "fc130d17acc7b847", - "equalIndicator/v1": "8a5b7f13152db5e04e52215fec4a6b87edba94e9ce4ae574c37c89da17985569" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'Native.User32' coverage is below the threshold 50%", - "markdown": "Class `Native.User32` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Native/User32.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 22, - "startColumn": 21, - "charOffset": 917, - "charLength": 6, - "snippet": { - "text": "User32" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 20, - "startColumn": 1, - "charOffset": 863, - "charLength": 104, - "snippet": { - "text": "namespace SoulSplitter.Native;\r\n\r\npublic static class User32\r\n{\r\n private static class NativeMethods\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d53e90a98de7fbc5", - "equalIndicator/v1": "8a7ff41e786dd1ab5644832ceed6cdec5cf6af7d564cd17bbac8824059f807fc" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'Memory.MemoryScanner' coverage is below the threshold 50%", - "markdown": "Class `Memory.MemoryScanner` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 26, - "startColumn": 21, - "charOffset": 1036, - "charLength": 13, - "snippet": { - "text": "MemoryScanner" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 24, - "startColumn": 1, - "charOffset": 975, - "charLength": 246, - "snippet": { - "text": "namespace SoulMemory.MemoryV2.Memory;\r\n\r\npublic static class MemoryScanner\r\n{\r\n #region Validate patterns from file ==============================================================================================================================\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "deb20dcde882d26d", - "equalIndicator/v1": "8aa1c32f586d894a24fd49761ff6fea39b56ef9f8b9eb9f4b30c7b10992c52df" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'UpdateAutoSplitter' coverage is below the threshold 50%", - "markdown": "Method `UpdateAutoSplitter` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/SekiroSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 211, - "startColumn": 17, - "charOffset": 6071, - "charLength": 18, - "snippet": { - "text": "UpdateAutoSplitter" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 209, - "startColumn": 1, - "charOffset": 6042, - "charLength": 105, - "snippet": { - "text": " }\r\n \r\n public void UpdateAutoSplitter()\r\n {\r\n if (_timerState != TimerState.Running)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a4db247517fe4d6a", - "equalIndicator/v1": "8ac83be58fab004fa2b15b688ba26acdd5b247e1dc1f81abb62b469c975d4403" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'InitPointers' coverage is below the threshold 50%", - "markdown": "Method `InitPointers` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Sekiro/Sekiro.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 122, - "startColumn": 37, - "charOffset": 5244, - "charLength": 12, - "snippet": { - "text": "InitPointers" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 120, - "startColumn": 1, - "charOffset": 5199, - "charLength": 128, - "snippet": { - "text": " }\r\n\r\n private ResultErr InitPointers()\r\n {\r\n Thread.Sleep(3000); //Give sekiro some time to boot\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c3ebe40d1d79b394", - "equalIndicator/v1": "8af744e91ffad86fa122a47ca263cd46d846a9a447a4c3e045a9c335fc6f1296" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_Split' coverage is below the threshold 50%", - "markdown": "Method `set_Split` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/SplitViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 92, - "startColumn": 9, - "charOffset": 2887, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 90, - "startColumn": 1, - "charOffset": 2848, - "charLength": 123, - "snippet": { - "text": " {\r\n get => _split;\r\n set => this.SetField(ref _split, value);\r\n }\r\n private object _split = null!;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "94e1e57d7af8ee32", - "equalIndicator/v1": "8b0fec967e7a57edab6e5628f37846e4479ccb6c76284e8603686dbe78e5c341" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'Dispose' coverage is below the threshold 50%", - "markdown": "Method `Dispose` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls2Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 68, - "startColumn": 17, - "charOffset": 2180, - "charLength": 7, - "snippet": { - "text": "Dispose" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 66, - "startColumn": 1, - "charOffset": 2155, - "charLength": 66, - "snippet": { - "text": " }\r\n\r\n public void Dispose()\r\n {\r\n Dispose(true);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c4cb13048376b9c6", - "equalIndicator/v1": "8b1ee1f414436159c62de38a9572c64222e6ca66c504892a7e99d0dd4738832a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetScreenState' coverage is below the threshold 50%", - "markdown": "Method `GetScreenState` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/EldenRing.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 318, - "startColumn": 24, - "charOffset": 11178, - "charLength": 14, - "snippet": { - "text": "GetScreenState" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 316, - "startColumn": 1, - "charOffset": 11142, - "charLength": 130, - "snippet": { - "text": " }\r\n \r\n public ScreenState GetScreenState()\r\n {\r\n var screenState = _menuManImp.ReadInt32(_screenStateOffset);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a2590fda6f78b5ae", - "equalIndicator/v1": "8b3b85ff18a1d03d0371be85c83adb1f39c82e3ac436117f991fd44ec23b170c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetTreeBuilder' coverage is below the threshold 50%", - "markdown": "Method `GetTreeBuilder` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls2/vanilla.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 47, - "startColumn": 24, - "charOffset": 1907, - "charLength": 14, - "snippet": { - "text": "GetTreeBuilder" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 45, - "startColumn": 1, - "charOffset": 1875, - "charLength": 102, - "snippet": { - "text": " }\r\n\r\n public TreeBuilder GetTreeBuilder()\r\n {\r\n var treeBuilder = new TreeBuilder();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e5c10219857cb67d", - "equalIndicator/v1": "8b4300cf6147bef3c6cde1f342424f3a96881260c91ac3288d0d2e976ec5ff62" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'SoulMemory.ContainerErr' coverage is below the threshold 50%", - "markdown": "Class `SoulMemory.ContainerErr` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Result.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 340, - "startColumn": 14, - "charOffset": 7879, - "charLength": 12, - "snippet": { - "text": "ContainerErr" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 338, - "startColumn": 1, - "charOffset": 7736, - "charLength": 200, - "snippet": { - "text": "/// Container type for Err, used to distinguish between Ok and Err in implicit conversions between result types.\r\n/// \r\npublic class ContainerErr(T t) : Container(t);\r\n\r\n/// \r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b65e98e9e84d0cac", - "equalIndicator/v1": "8b7a2a7cd8940819bed7492048e5e592de8484747f161ef87274133c3a4f7bf3" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'CopyPosition_OnClick' coverage is below the threshold 50%", - "markdown": "Method `CopyPosition_OnClick` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2Control.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 89, - "startColumn": 18, - "charOffset": 3008, - "charLength": 20, - "snippet": { - "text": "CopyPosition_OnClick" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 87, - "startColumn": 1, - "charOffset": 2982, - "charLength": 180, - "snippet": { - "text": " }\r\n\r\n private void CopyPosition_OnClick(object sender, RoutedEventArgs e)\r\n {\r\n _darkSouls2ViewModel.NewSplitValue = _darkSouls2ViewModel.CurrentPosition.Clone();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1832bb1a94053fdd", - "equalIndicator/v1": "8bf56e43a04dc9741312f2a7ea1c3bbc8c3523ffd6e388d5a78dad4f243d6b94" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'AddSplit_OnClick' coverage is below the threshold 50%", - "markdown": "Method `AddSplit_OnClick` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 38, - "startColumn": 18, - "charOffset": 1291, - "charLength": 16, - "snippet": { - "text": "AddSplit_OnClick" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 36, - "startColumn": 1, - "charOffset": 1265, - "charLength": 129, - "snippet": { - "text": " }\r\n\r\n private void AddSplit_OnClick(object sender, RoutedEventArgs e)\r\n {\r\n GetEldenRingViewModel().AddSplit();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ffe59a3ca913e198", - "equalIndicator/v1": "8c0ef2d79876ead9f696efc9bba6991c0a882b6a8bee238a76cf1785f11d1e4e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_Count' coverage is below the threshold 50%", - "markdown": "Method `set_Count` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splits/DarkSouls2/BossKill.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 38, - "startColumn": 9, - "charOffset": 1337, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 36, - "startColumn": 1, - "charOffset": 1298, - "charLength": 116, - "snippet": { - "text": " {\r\n get => _count;\r\n set => this.SetField(ref _count, value);\r\n }\r\n private int _count = 1;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "6240af049c15b224", - "equalIndicator/v1": "8d29e59f84d2120e1c45b7f521832f48b64f25e69a97f5c2b26011385d6a10b4" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'SetLoadingScreenItem' coverage is below the threshold 50%", - "markdown": "Method `SetLoadingScreenItem` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/DarkSouls1.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 47, - "startColumn": 17, - "charOffset": 2721, - "charLength": 20, - "snippet": { - "text": "SetLoadingScreenItem" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 45, - "startColumn": 1, - "charOffset": 2438, - "charLength": 381, - "snippet": { - "text": " public void WriteWeaponDescription(uint weaponId, string description) => _darkSouls1?.WriteWeaponDescription(weaponId, description);\r\n public void WriteItemLotParam(int rowId, Action accessor) => _darkSouls1?.WriteItemLotParam(rowId, accessor);\r\n public void SetLoadingScreenItem(int index, uint item) => _darkSouls1?.SetLoadingScreenItem(index, item);\r\n\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "83d80db79bd74761", - "equalIndicator/v1": "8d4347b2997a094ff8cbbc75b7fdbbf043c7e5cf13a35b378822fce43ea7a595" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_Path' coverage is below the threshold 50%", - "markdown": "Method `set_Path` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 133, - "startColumn": 39, - "charOffset": 3726, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 131, - "startColumn": 1, - "charOffset": 3644, - "charLength": 139, - "snippet": { - "text": "\r\n //Debug representation, shows in IDE\r\n public string Path { get; private set; } = null!;\r\n\r\n public override string ToString()\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "88da06b5c89264d1", - "equalIndicator/v1": "8d7ce32d4a838c9f79e4aeeb162152a8a58094831b8fe698081af6bfd14e978f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadUnicodeString' coverage is below the threshold 50%", - "markdown": "Method `ReadUnicodeString` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 98, - "startColumn": 26, - "charOffset": 3155, - "charLength": 17, - "snippet": { - "text": "ReadUnicodeString" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 96, - "startColumn": 1, - "charOffset": 3121, - "charLength": 184, - "snippet": { - "text": " }\r\n\r\n public static string ReadUnicodeString(this IMemory memory, long offset, out int length, int maxSize = 1000)\r\n {\r\n var data = memory.ReadBytes(offset, maxSize);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "cb230b224fa598c8", - "equalIndicator/v1": "8dbaf364aabef125eabc420377ed698be7aeff6c3bf9cd9acc54041ceb17ee1e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'IsLoading' coverage is below the threshold 50%", - "markdown": "Method `IsLoading` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 139, - "startColumn": 17, - "charOffset": 5177, - "charLength": 9, - "snippet": { - "text": "IsLoading" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 137, - "startColumn": 1, - "charOffset": 5152, - "charLength": 91, - "snippet": { - "text": " }\r\n\r\n public bool IsLoading()\r\n {\r\n return _loading.ReadInt32(-0x1) != 0;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "50579072f11c2484", - "equalIndicator/v1": "8dbe9f2b96e65e2c117e93ff09996cbcbfda9e86f5bf71fbb4fa1ed3848f2d5f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadBytes' coverage is below the threshold 50%", - "markdown": "Method `ReadBytes` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/ByteArrayMemory.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 27, - "startColumn": 19, - "charOffset": 1098, - "charLength": 9, - "snippet": { - "text": "ReadBytes" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 25, - "startColumn": 1, - "charOffset": 1024, - "charLength": 156, - "snippet": { - "text": "public class ByteArrayMemory(byte[] data) : IMemory\r\n{\r\n public byte[] ReadBytes(long offset, int length)\r\n {\r\n var buffer = new byte[length];\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5e37ff2519c7b8c5", - "equalIndicator/v1": "8df2818f33dab4e8c3d5a32ba7d27ed1a162b2d539807846013fc9aff5421c84" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ToString' coverage is below the threshold 50%", - "markdown": "Method `ToString` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/KnownFlagViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 33, - "startColumn": 28, - "charOffset": 1205, - "charLength": 8, - "snippet": { - "text": "ToString" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 31, - "startColumn": 1, - "charOffset": 1169, - "charLength": 76, - "snippet": { - "text": " }\r\n\r\n public override string ToString()\r\n {\r\n return Name;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7eb955db693c93ff", - "equalIndicator/v1": "8df69a71aef941d320d3d9862df745dbe9d989e9d2354eaed9dea26a718fac43" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_Items' coverage is below the threshold 50%", - "markdown": "Method `set_Items` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 236, - "startColumn": 9, - "charOffset": 10295, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 234, - "startColumn": 1, - "charOffset": 10182, - "charLength": 171, - "snippet": { - "text": " {\r\n get => (ObservableCollection>)GetValue(ItemsDependencyProperty);\r\n set => SetValue(ItemsDependencyProperty, value);\r\n }\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0198af1c79706c90", - "equalIndicator/v1": "8e5a09838879d5f39eb268eeba021eecf621f94b7baeaa4b8b760c4075825e87" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'DarkSouls3.DarkSouls3' coverage is below the threshold 50%", - "markdown": "Class `DarkSouls3.DarkSouls3` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 24, - "startColumn": 14, - "charOffset": 970, - "charLength": 10, - "snippet": { - "text": "DarkSouls3" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 22, - "startColumn": 1, - "charOffset": 921, - "charLength": 103, - "snippet": { - "text": "namespace SoulMemory.DarkSouls3;\r\n\r\npublic class DarkSouls3 : IGame\r\n{\r\n private Process? _process;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d5d60da3b95d6695", - "equalIndicator/v1": "8e62b942b7a14bbcf2bd24ceea92d1dbee95539471f834a9e5a87ff4ec026e04" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'StartAutoSplitting' coverage is below the threshold 50%", - "markdown": "Method `StartAutoSplitting` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls2Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 177, - "startColumn": 17, - "charOffset": 5097, - "charLength": 18, - "snippet": { - "text": "StartAutoSplitting" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 175, - "startColumn": 1, - "charOffset": 5072, - "charLength": 74, - "snippet": { - "text": " }\r\n\r\n public void StartAutoSplitting()\r\n {\r\n _splits = (\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "6d230c57af755132", - "equalIndicator/v1": "8f15226b721feee8cdde142bc52b9d87709b170a85d1add319b315f66ca32055" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_IsOk' coverage is below the threshold 50%", - "markdown": "Method `set_IsOk` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Result.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 219, - "startColumn": 39, - "charOffset": 5137, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 217, - "startColumn": 1, - "charOffset": 5035, - "charLength": 144, - "snippet": { - "text": " private readonly TOk _ok;\r\n private readonly TErr _err;\r\n public bool IsOk { get; protected set; }\r\n public bool IsErr => !IsOk;\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "38a154c6c6f71147", - "equalIndicator/v1": "8f3504b96b36f60fe2e65268ab0601e6486b2b5290281d3f4339fff35ca2fade" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'Update' coverage is below the threshold 50%", - "markdown": "Method `Update` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/BaseSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 45, - "startColumn": 36, - "charOffset": 1680, - "charLength": 6, - "snippet": { - "text": "Update" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 43, - "startColumn": 1, - "charOffset": 1595, - "charLength": 177, - "snippet": { - "text": " _timerModel.CurrentState = state;\r\n }\r\n public ResultErr Update(MainViewModel mainViewModel)\r\n {\r\n var refreshResult = _game.TryRefresh();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "6c6935c8898cd437", - "equalIndicator/v1": "8f4ae868ad3925c3f6a982e29946dec005341d5976d54cdaa2dae080b187bc63" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'OnKeyUp' coverage is below the threshold 50%", - "markdown": "Method `OnKeyUp` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/FilteredComboBox.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 80, - "startColumn": 29, - "charOffset": 2648, - "charLength": 7, - "snippet": { - "text": "OnKeyUp" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 78, - "startColumn": 1, - "charOffset": 2611, - "charLength": 92, - "snippet": { - "text": " }\r\n\r\n protected override void OnKeyUp(KeyEventArgs e)\r\n {\r\n switch (e.Key)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "411274f09cf20d3c", - "equalIndicator/v1": "8f69d8e87cb40edc3570889afc0bc323c2c904a4808b9f6d5fa01eb070f67222" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'Convert' coverage is below the threshold 50%", - "markdown": "Method `Convert` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Converters/DropModTypeConverter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 26, - "startColumn": 19, - "charOffset": 1026, - "charLength": 7, - "snippet": { - "text": "Convert" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 24, - "startColumn": 1, - "charOffset": 952, - "charLength": 261, - "snippet": { - "text": "public class DropModTypeConverter : IValueConverter\r\n{\r\n public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture)\r\n {\r\n if(value is DropModType valueDropModType && parameter is DropModType parameterDropModType)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "eac932d4a0c40044", - "equalIndicator/v1": "8fd30fe121ff65b1562b03d4ada5c4b9c4ad59542ce52b88391ad1338c25c387" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'Generic.SplitTemplateSelector' coverage is below the threshold 50%", - "markdown": "Class `Generic.SplitTemplateSelector` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/SplitTemplateSelector.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 23, - "startColumn": 14, - "charOffset": 930, - "charLength": 21, - "snippet": { - "text": "SplitTemplateSelector" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 21, - "startColumn": 1, - "charOffset": 879, - "charLength": 160, - "snippet": { - "text": "namespace SoulSplitter.UI.Generic;\r\n\r\npublic class SplitTemplateSelector : DataTemplateSelector\r\n{\r\n public DataTemplate EnumTemplate { get; set; } = null!;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c5005da2e2c2c476", - "equalIndicator/v1": "8feeaf90405d79c93b04b3f0c4304a16b7496fc0bdd10394aed723ee36769c0e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_ModuleMemorySize' coverage is below the threshold 50%", - "markdown": "Method `get_ModuleMemorySize` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Process/ProcessWrapperModule.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 27, - "startColumn": 35, - "charOffset": 1114, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 25, - "startColumn": 1, - "charOffset": 984, - "charLength": 224, - "snippet": { - "text": " public string FileName { get; set; } = null!;\r\n public IntPtr BaseAddress { get; set; }\r\n public int ModuleMemorySize { get; set; }\r\n\r\n public static ProcessWrapperModule FromProcessModule(ProcessModule module)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9aed581d11f2b9e6", - "equalIndicator/v1": "9019ab24a2b440fac4b16c4d60b56fb5e803f8e005487d3f02838ae632523b55" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_SelectedTimingType' coverage is below the threshold 50%", - "markdown": "Method `get_SelectedTimingType` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 292, - "startColumn": 9, - "charOffset": 12255, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 290, - "startColumn": 1, - "charOffset": 12198, - "charLength": 155, - "snippet": { - "text": " public TimingType SelectedTimingType\r\n {\r\n get => _selectedTimingType;\r\n set => this.SetField(ref _selectedTimingType, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "85d411a4fc5e6d8c", - "equalIndicator/v1": "902295024ba5d9cbfbfaaa8ad78d598af0f615cda5ac4604e93a6bc2c3a4965e" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Constructor 'Split' coverage is below the threshold 50%", - "markdown": "Constructor `Split` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splits/ArmoredCore6/Split.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 24, - "startColumn": 12, - "charOffset": 939, - "charLength": 5, - "snippet": { - "text": "Split" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 22, - "startColumn": 1, - "charOffset": 903, - "charLength": 141, - "snippet": { - "text": "internal class Split\r\n{\r\n public Split(TimingType timingType, SplitType splitType, object split)\r\n {\r\n TimingType = timingType;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ce3c3d391dc385af", - "equalIndicator/v1": "90e726cbce773453cb3b2d17ee2dafe3e24c91eb53ffa747883cf0856aea1878" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_CurrentPosition' coverage is below the threshold 50%", - "markdown": "Method `get_CurrentPosition` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 42, - "startColumn": 9, - "charOffset": 1503, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 40, - "startColumn": 1, - "charOffset": 1451, - "charLength": 144, - "snippet": { - "text": " public Vector3f CurrentPosition\r\n {\r\n get => _currentPosition;\r\n set => this.SetField(ref _currentPosition, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e3a8f0e6e2698fcd", - "equalIndicator/v1": "90ecc100ea8882ec78fdcd03b3c11f2cd281deb8221fefb72189ec113597a2dd" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadInt64' coverage is below the threshold 50%", - "markdown": "Method `ReadInt64` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/IMemory.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 64, - "startColumn": 24, - "charOffset": 2014, - "charLength": 9, - "snippet": { - "text": "ReadInt64" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 62, - "startColumn": 1, - "charOffset": 1982, - "charLength": 161, - "snippet": { - "text": " }\r\n\r\n public static long ReadInt64(this IMemory memory, long? offset = null)\r\n {\r\n return BitConverter.ToInt64(memory.ReadBytes(offset, 8), 0);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ec6490bd0727c691", - "equalIndicator/v1": "91638424906ae073c235ffd58d8d63964813ee43229e874d560928c9bd8d3e6d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_Split' coverage is below the threshold 50%", - "markdown": "Method `get_Split` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/HierarchicalViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 96, - "startColumn": 9, - "charOffset": 2994, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 94, - "startColumn": 1, - "charOffset": 2954, - "charLength": 112, - "snippet": { - "text": " public object Split\r\n {\r\n get => _split;\r\n set => this.SetField(ref _split, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3321c43512483d76", - "equalIndicator/v1": "9222ab483a3ee8f58e9532ee106a81522a860524d1c1f15f87a9bb8763cca51d" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_Children' coverage is below the threshold 50%", - "markdown": "Method `set_Children` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/HierarchicalViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 38, - "startColumn": 81, - "charOffset": 1490, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 36, - "startColumn": 1, - "charOffset": 1367, - "charLength": 180, - "snippet": { - "text": " private TimingType _timingType;\r\n \r\n public ObservableCollection Children { get; set; } = [];\r\n\r\n #region ICustomNotifyPropertyChanged\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "2cdd04146a85067d", - "equalIndicator/v1": "92653259fe674f28008938f7b1b68d00c81d54abfc0c64f0fc710585dc2d9f7b" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_Block' coverage is below the threshold 50%", - "markdown": "Method `get_Block` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/PositionViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 37, - "startColumn": 9, - "charOffset": 1228, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 35, - "startColumn": 1, - "charOffset": 1190, - "charLength": 126, - "snippet": { - "text": " public byte Block\r\n {\r\n get => Position.Block;\r\n set => this.SetField(ref Position.Block, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "463c816bfd6f1ec3", - "equalIndicator/v1": "92731e52ad9bf7008f04ce195a5699e994ebb5be3c79773ab399117882e76bc1" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_NewSplitType' coverage is below the threshold 50%", - "markdown": "Method `set_NewSplitType` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 83, - "startColumn": 9, - "charOffset": 2571, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 81, - "startColumn": 1, - "charOffset": 2525, - "charLength": 115, - "snippet": { - "text": " {\r\n get => _newSplitType;\r\n set\r\n {\r\n this.SetField(ref _newSplitType, value);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e7d78c417cb90582", - "equalIndicator/v1": "92adddba47f60c3cf014c53bf6fcdc9d3fde345e8cbf42a7c37b57e5ab9f1980" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'Ok' coverage is below the threshold 50%", - "markdown": "Method `Ok` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Result.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 45, - "startColumn": 34, - "charOffset": 1586, - "charLength": 2, - "snippet": { - "text": "Ok" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 43, - "startColumn": 1, - "charOffset": 1544, - "charLength": 99, - "snippet": { - "text": " }\r\n\r\n public static ContainerOk Ok(T t)\r\n {\r\n return new ContainerOk(t);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3f1fba9841740ace", - "equalIndicator/v1": "9322c517480fe598331cad0cef3dcfbd9c031cddd66948beb1f50b9c9e575795" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'RemoveEventFlag' coverage is below the threshold 50%", - "markdown": "Method `RemoveEventFlag` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/FlagTrackerViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 99, - "startColumn": 18, - "charOffset": 3286, - "charLength": 15, - "snippet": { - "text": "RemoveEventFlag" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 97, - "startColumn": 1, - "charOffset": 3260, - "charLength": 96, - "snippet": { - "text": " }\r\n\r\n private void RemoveEventFlag()\r\n {\r\n if(SelectedFlagDescription == null)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ccacb06f46ffcd32", - "equalIndicator/v1": "9324c8f48b4ccb71dd195fc4b3d665538dcaba7bb7b9a6a3917e7258084be31e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'Initialize' coverage is below the threshold 50%", - "markdown": "Method `Initialize` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 35, - "startColumn": 17, - "charOffset": 1184, - "charLength": 10, - "snippet": { - "text": "Initialize" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 33, - "startColumn": 1, - "charOffset": 1164, - "charLength": 138, - "snippet": { - "text": "\r\n\r\n public void Initialize(Process process, bool is64Bit, long baseAddress, params long[] offsets)\r\n {\r\n Process = process;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e05d390dd87da4f5", - "equalIndicator/v1": "937c5c12d272b259201cb558a47bd0001fe114d3ef482ee0e1a23ec870205824" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_KnownFlag' coverage is below the threshold 50%", - "markdown": "Method `get_KnownFlag` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/KnownFlagViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 40, - "startColumn": 9, - "charOffset": 1302, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 38, - "startColumn": 1, - "charOffset": 1255, - "charLength": 127, - "snippet": { - "text": " public KnownFlag KnownFlag\r\n {\r\n get => _knownFlag;\r\n set => this.SetField(ref _knownFlag, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "be3075f4a6268cae", - "equalIndicator/v1": "93a3f31c7bab2726b4b5d849bc2df74a34b58c9ddd8e76cfe7efaba44841c1ab" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'TreeView_SelectedItemChanged' coverage is below the threshold 50%", - "markdown": "Method `TreeView_SelectedItemChanged` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/FlagTrackerWindow.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 29, - "startColumn": 18, - "charOffset": 1043, - "charLength": 28, - "snippet": { - "text": "TreeView_SelectedItemChanged" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 27, - "startColumn": 1, - "charOffset": 1017, - "charLength": 190, - "snippet": { - "text": " }\r\n\r\n private void TreeView_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs e)\r\n {\r\n if (DataContext is FlagTrackerViewModel flagTrackerViewModel)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "19c584a3d9e8e43f", - "equalIndicator/v1": "93e47c5126220d6047962521731272261ec4c0978651aac660016ba4f0226322" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadEventFlag' coverage is below the threshold 50%", - "markdown": "Method `ReadEventFlag` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls2/DarkSouls2.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 32, - "startColumn": 17, - "charOffset": 1321, - "charLength": 13, - "snippet": { - "text": "ReadEventFlag" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 30, - "startColumn": 1, - "charOffset": 1154, - "charLength": 449, - "snippet": { - "text": " public Vector3f GetPosition() => _darkSouls2?.GetPosition() ?? new Vector3f();\r\n public bool IsLoading() => _darkSouls2?.IsLoading() ?? false;\r\n public bool ReadEventFlag(uint eventFlagId) => _darkSouls2?.ReadEventFlag(eventFlagId) ?? false;\r\n public int GetBossKillCount(BossType bossType) => _darkSouls2?.GetBossKillCount(bossType) ?? 0;\r\n public int GetAttribute(Attribute attribute) => _darkSouls2?.GetAttribute(attribute) ?? 0;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "bd8c140b44002e46", - "equalIndicator/v1": "9474aec9162dac0630df6fc59c537fbb216d82be9d34fc358f6b437d7ad2f9b1" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_NewSplitAttributeEnabled' coverage is below the threshold 50%", - "markdown": "Method `set_NewSplitAttributeEnabled` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 236, - "startColumn": 9, - "charOffset": 8385, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 234, - "startColumn": 1, - "charOffset": 8327, - "charLength": 170, - "snippet": { - "text": " {\r\n get => _newSplitAttributeEnabled;\r\n set => this.SetField(ref _newSplitAttributeEnabled, value);\r\n }\r\n private bool _newSplitAttributeEnabled;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ed1c9f17ccdbe6bd", - "equalIndicator/v1": "94e7e8103bb6a851b082f41e4516857c47c574ddfa4cc4b6fd692f1d4cbbc0db" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetPlayerHealth' coverage is below the threshold 50%", - "markdown": "Method `GetPlayerHealth` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 236, - "startColumn": 16, - "charOffset": 8515, - "charLength": 15, - "snippet": { - "text": "GetPlayerHealth" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 234, - "startColumn": 1, - "charOffset": 8371, - "charLength": 258, - "snippet": { - "text": " public Vector3f GetPosition() => new(_playerPos.ReadFloat(0x10), _playerPos.ReadFloat(0x14), _playerPos.ReadFloat(0x18));\r\n\r\n public int GetPlayerHealth() => _playerIns.ReadInt32(0x3e8);\r\n\r\n public bool IsPlayerLoaded() => !_playerIns.IsNullPtr();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ccc5b45be5c84c7b", - "equalIndicator/v1": "94ff4eefb9556c61205e4301e0f71300b3cb6a4985ed6384712f4e1b96e520d8" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'TryRefresh' coverage is below the threshold 50%", - "markdown": "Method `TryRefresh` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 70, - "startColumn": 36, - "charOffset": 3094, - "charLength": 10, - "snippet": { - "text": "TryRefresh" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 68, - "startColumn": 1, - "charOffset": 3010, - "charLength": 226, - "snippet": { - "text": " public Process? GetProcess() => _process;\r\n\r\n public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, \"darksouls\", InitPointers, ResetPointers);\r\n\r\n public TreeBuilder GetTreeBuilder() \r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0287ab36f9ce15e2", - "equalIndicator/v1": "955c784c819f901e973aaf571d8d2df22cc8d294432188c632f0c75e95b73aab" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetInGameTimeMilliseconds' coverage is below the threshold 50%", - "markdown": "Method `GetInGameTimeMilliseconds` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Sekiro/Sekiro.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 184, - "startColumn": 16, - "charOffset": 7134, - "charLength": 25, - "snippet": { - "text": "GetInGameTimeMilliseconds" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 182, - "startColumn": 1, - "charOffset": 7101, - "charLength": 102, - "snippet": { - "text": " #endregion\r\n\r\n public int GetInGameTimeMilliseconds()\r\n {\r\n return _igt.ReadInt32();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1922f3d752b96084", - "equalIndicator/v1": "95ca072f50310a1761c423c959a91600fe24b85be32d6db326216d909799b903" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'StartTimer' coverage is below the threshold 50%", - "markdown": "Method `StartTimer` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls2Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 112, - "startColumn": 18, - "charOffset": 3211, - "charLength": 10, - "snippet": { - "text": "StartTimer" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 110, - "startColumn": 1, - "charOffset": 3125, - "charLength": 149, - "snippet": { - "text": " private TimerState _timerState = TimerState.WaitForStart;\r\n \r\n private void StartTimer()\r\n {\r\n _timerState = TimerState.Running;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "191230544be169a9", - "equalIndicator/v1": "95fda2cf2e28c3910b57754682c49fef174a1efc6861bce0ec7c49b2f2e1cdce" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'IsPlayerLoaded' coverage is below the threshold 50%", - "markdown": "Method `IsPlayerLoaded` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 151, - "startColumn": 17, - "charOffset": 5418, - "charLength": 14, - "snippet": { - "text": "IsPlayerLoaded" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 149, - "startColumn": 1, - "charOffset": 5353, - "charLength": 134, - "snippet": { - "text": " public bool Attached => _process != null;\r\n\r\n public bool IsPlayerLoaded()\r\n {\r\n return _playerIns.ReadInt64() != 0;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "36bb9d2e4f05a29e", - "equalIndicator/v1": "96284cc787eb42f2ecc29fb7db68f93fb3461ed2d8faa1db83bf75e2dbcb5471" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'Dispose' coverage is below the threshold 50%", - "markdown": "Method `Dispose` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls3Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 57, - "startColumn": 17, - "charOffset": 1913, - "charLength": 7, - "snippet": { - "text": "Dispose" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 55, - "startColumn": 1, - "charOffset": 1888, - "charLength": 66, - "snippet": { - "text": " }\r\n\r\n public void Dispose()\r\n {\r\n Dispose(true);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9f8949dd16649248", - "equalIndicator/v1": "963a8602baef36f524383acc0d973b608fccdc1d0d88e4b36952235cef90faf8" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'DarkSouls2.Split' coverage is below the threshold 50%", - "markdown": "Class `DarkSouls2.Split` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splits/DarkSouls2/Split.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 23, - "startColumn": 16, - "charOffset": 935, - "charLength": 5, - "snippet": { - "text": "Split" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 21, - "startColumn": 1, - "charOffset": 875, - "charLength": 165, - "snippet": { - "text": "namespace SoulSplitter.Splits.DarkSouls2;\r\n\r\ninternal class Split\r\n{\r\n public Split(TimingType timingType, DarkSouls2SplitType darkSouls2SplitType, object split)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9cd8980c8a92e88a", - "equalIndicator/v1": "965791ce22d1b27f5af2f52136ac5ade696835070569d2282502b528920d8f75" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'IsWarpRequested' coverage is below the threshold 50%", - "markdown": "Method `IsWarpRequested` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 176, - "startColumn": 17, - "charOffset": 6953, - "charLength": 15, - "snippet": { - "text": "IsWarpRequested" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 174, - "startColumn": 1, - "charOffset": 6873, - "charLength": 142, - "snippet": { - "text": " public bool IsPlayerLoaded() => !_playerIns.IsNullPtr();\r\n\r\n public bool IsWarpRequested()\r\n {\r\n if (GetPlayerHealth() == 0)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "208715bc43d906d9", - "equalIndicator/v1": "9662ee23e23c4d86ca6cb7ff55fbd4731a56c24be0bd4029e72867314292152e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadUnicodeString' coverage is below the threshold 50%", - "markdown": "Method `ReadUnicodeString` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/IMemory.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 99, - "startColumn": 26, - "charOffset": 3182, - "charLength": 17, - "snippet": { - "text": "ReadUnicodeString" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 97, - "startColumn": 1, - "charOffset": 3148, - "charLength": 192, - "snippet": { - "text": " }\r\n\r\n public static string ReadUnicodeString(this IMemory memory, out int length, int maxSize = 1000, long? offset = null)\r\n {\r\n var data = memory.ReadBytes(offset, maxSize);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "241959d78e7bd9bd", - "equalIndicator/v1": "96956ed6ee73e80fe5f8224eec53e33279af207731027d9eb26807d5723e8b03" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetPosition' coverage is below the threshold 50%", - "markdown": "Method `GetPosition` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls2/scholar.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 82, - "startColumn": 21, - "charOffset": 3147, - "charLength": 11, - "snippet": { - "text": "GetPosition" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 80, - "startColumn": 1, - "charOffset": 3105, - "charLength": 93, - "snippet": { - "text": " #endregion\r\n \r\n public Vector3f GetPosition()\r\n {\r\n return new Vector3f(\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f5713f6ab4067cf7", - "equalIndicator/v1": "971718605a528db414b7e80a3e6776c189c6bde7bda1e39f0b707b1ba9655d7f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'InvokePropertyChanged' coverage is below the threshold 50%", - "markdown": "Method `InvokePropertyChanged` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splits/Sekiro/Attribute.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 50, - "startColumn": 17, - "charOffset": 1655, - "charLength": 21, - "snippet": { - "text": "InvokePropertyChanged" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 48, - "startColumn": 1, - "charOffset": 1573, - "charLength": 216, - "snippet": { - "text": " public event PropertyChangedEventHandler? PropertyChanged;\r\n\r\n public void InvokePropertyChanged(string propertyName)\r\n {\r\n PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "340fd75ab2e40a38", - "equalIndicator/v1": "971dddc1d9d8b90e990982793853b881da06bb77971e8c9f186667d26af69807" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'InvokePropertyChanged' coverage is below the threshold 50%", - "markdown": "Method `InvokePropertyChanged` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/SplitViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 69, - "startColumn": 17, - "charOffset": 2312, - "charLength": 21, - "snippet": { - "text": "InvokePropertyChanged" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 67, - "startColumn": 1, - "charOffset": 2230, - "charLength": 216, - "snippet": { - "text": " public event PropertyChangedEventHandler? PropertyChanged;\r\n\r\n public void InvokePropertyChanged(string propertyName)\r\n {\r\n PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "fbe6a5d9f1d4adf8", - "equalIndicator/v1": "979082b325cdf802989a42c61f9cd4d8a00a7e63ffcee6d7d2c0961324d44b5c" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'InitPointers' coverage is below the threshold 50%", - "markdown": "Method `InitPointers` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls2/scholar.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 58, - "startColumn": 37, - "charOffset": 2601, - "charLength": 12, - "snippet": { - "text": "InitPointers" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 56, - "startColumn": 1, - "charOffset": 2552, - "charLength": 84, - "snippet": { - "text": " }\r\n \r\n private ResultErr InitPointers()\r\n {\r\n try\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "601834378e9d3d18", - "equalIndicator/v1": "97b55f41ab47c894a4050338b64341b5d1e4a44339739b9c1acbc83beda0ef2d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetCurrentSaveSlot' coverage is below the threshold 50%", - "markdown": "Method `GetCurrentSaveSlot` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 232, - "startColumn": 16, - "charOffset": 8300, - "charLength": 18, - "snippet": { - "text": "GetCurrentSaveSlot" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 230, - "startColumn": 1, - "charOffset": 8224, - "charLength": 273, - "snippet": { - "text": " public int NgCount() => _gameDataMan.ReadInt32(0x78);\r\n\r\n public int GetCurrentSaveSlot() => _gameMan.ReadInt32(_currentSaveSlotOffset);\r\n\r\n public Vector3f GetPosition() => new(_playerPos.ReadFloat(0x10), _playerPos.ReadFloat(0x14), _playerPos.ReadFloat(0x18));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "667c5628745cec83", - "equalIndicator/v1": "97bc280161e3592385b82bb0399b12948c6ae0061bee942ae7414c8770ff72b1" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'Process.ProcessHook' coverage is below the threshold 50%", - "markdown": "Class `Process.ProcessHook` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Process/ProcessHook.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 21, - "startColumn": 14, - "charOffset": 879, - "charLength": 11, - "snippet": { - "text": "ProcessHook" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 19, - "startColumn": 1, - "charOffset": 824, - "charLength": 237, - "snippet": { - "text": "namespace SoulMemory.MemoryV2.Process;\r\n\r\npublic class ProcessHook(string name, IProcessWrapper? processWrapper = null) : IProcessHook\r\n{\r\n public IProcessWrapper ProcessWrapper { get; set; } = processWrapper ?? new ProcessWrapper();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "141fb1efb7cf9525", - "equalIndicator/v1": "9848a3e19857fb641eab86c20457982e8c9b15c3a701239e3ad9597f32fea06d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'RemoveSplit' coverage is below the threshold 50%", - "markdown": "Method `RemoveSplit` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 115, - "startColumn": 17, - "charOffset": 4734, - "charLength": 11, - "snippet": { - "text": "RemoveSplit" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 113, - "startColumn": 1, - "charOffset": 4709, - "charLength": 82, - "snippet": { - "text": " }\r\n\r\n public void RemoveSplit()\r\n {\r\n if (SelectedSplit != null)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a6f5557e0c0701be", - "equalIndicator/v1": "9858c3d36cab0bb2f2b6039f8c746b3f8cd4016a6f816c446a71bbfa6ff0d112" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'Hotkeys.HotkeyForm' coverage is below the threshold 50%", - "markdown": "Class `Hotkeys.HotkeyForm` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Hotkeys/GlobalHotKey.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 95, - "startColumn": 14, - "charOffset": 3020, - "charLength": 10, - "snippet": { - "text": "HotkeyForm" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 93, - "startColumn": 1, - "charOffset": 3002, - "charLength": 97, - "snippet": { - "text": "}\r\n\r\npublic class HotkeyForm : Form\r\n{\r\n public HotkeyForm(ManualResetEvent windowReadyEvent)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1ea0816cfb36636f", - "equalIndicator/v1": "9874ba2198897417689aab6e9fd26524ad9e283100117efa6d56ae4b8a645629" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_NewSplitAttributeEnabled' coverage is below the threshold 50%", - "markdown": "Method `get_NewSplitAttributeEnabled` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 235, - "startColumn": 9, - "charOffset": 8342, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 233, - "startColumn": 1, - "charOffset": 8285, - "charLength": 167, - "snippet": { - "text": " public bool NewSplitAttributeEnabled\r\n {\r\n get => _newSplitAttributeEnabled;\r\n set => this.SetField(ref _newSplitAttributeEnabled, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "124b3683f40748c4", - "equalIndicator/v1": "98bcc9657d641d5ca3ae114e194aafc03833200fcb2a310444e425f6326db105" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_NewSplitKnownFlag' coverage is below the threshold 50%", - "markdown": "Method `set_NewSplitKnownFlag` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 268, - "startColumn": 9, - "charOffset": 7477, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 266, - "startColumn": 1, - "charOffset": 7426, - "charLength": 125, - "snippet": { - "text": " {\r\n get => _newSplitKnownFlag;\r\n set\r\n {\r\n this.SetField(ref _newSplitKnownFlag, value);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "09b123a017eed923", - "equalIndicator/v1": "997678b6f15272c1c44f0e2385365eaa56b14d0a5a2c35d19d8995dd544c8089" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'OnHotkeyPressed' coverage is below the threshold 50%", - "markdown": "Method `OnHotkeyPressed` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Hotkeys/GlobalHotKey.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 46, - "startColumn": 24, - "charOffset": 1726, - "charLength": 15, - "snippet": { - "text": "OnHotkeyPressed" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 44, - "startColumn": 1, - "charOffset": 1694, - "charLength": 117, - "snippet": { - "text": " }\r\n\r\n public static void OnHotkeyPressed(ModifierKeys modifier, Key key)\r\n {\r\n Hotkeys.ForEach(x =>\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4dcd4f433fd4045a", - "equalIndicator/v1": "99f29644bd8f68612fdb214d36fe66f93ccbb3be9948c8e1df03f7fc9c6a3eed" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ResetBitBlt' coverage is below the threshold 50%", - "markdown": "Method `ResetBitBlt` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/MainWindow.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 79, - "startColumn": 17, - "charOffset": 2399, - "charLength": 11, - "snippet": { - "text": "ResetBitBlt" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 77, - "startColumn": 1, - "charOffset": 2374, - "charLength": 59, - "snippet": { - "text": " }\r\n\r\n public void ResetBitBlt()\r\n {\r\n try\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c0bc6721d5b90cfd", - "equalIndicator/v1": "9a3694276e80eee9120b3a96d866ac4c31396d0716faca6b0b52316fb9b144e1" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'EldenRing.HierarchicalTimingTypeViewModel' coverage is below the threshold 50%", - "markdown": "Class `EldenRing.HierarchicalTimingTypeViewModel` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/SplitViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 27, - "startColumn": 14, - "charOffset": 1078, - "charLength": 31, - "snippet": { - "text": "HierarchicalTimingTypeViewModel" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 25, - "startColumn": 1, - "charOffset": 1025, - "charLength": 153, - "snippet": { - "text": "namespace SoulSplitter.UI.EldenRing;\r\n\r\npublic class HierarchicalTimingTypeViewModel : ICustomNotifyPropertyChanged\r\n{\r\n public TimingType TimingType\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e7dd7e96eac5f2bc", - "equalIndicator/v1": "9b3ed8654d7407d7ca919bea0549c2f5c1171cb1468520705c82095aae56843d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Constructor 'Result' coverage is below the threshold 50%", - "markdown": "Constructor `Result` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Result.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 55, - "startColumn": 15, - "charOffset": 1766, - "charLength": 6, - "snippet": { - "text": "Result" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 53, - "startColumn": 1, - "charOffset": 1717, - "charLength": 92, - "snippet": { - "text": " public bool IsErr => !IsOk;\r\n\r\n protected Result(bool ok)\r\n {\r\n IsOk = ok;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "91c2283400d55d59", - "equalIndicator/v1": "9b6aa48be2892ad099697f10f7daa4103671cbf69cf9f7753179ce15a4a2e0b6" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadUInt16' coverage is below the threshold 50%", - "markdown": "Method `ReadUInt16` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/IMemory.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 89, - "startColumn": 26, - "charOffset": 2852, - "charLength": 10, - "snippet": { - "text": "ReadUInt16" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 87, - "startColumn": 1, - "charOffset": 2818, - "charLength": 165, - "snippet": { - "text": " }\r\n\r\n public static ushort ReadUInt16(this IMemory memory, long? offset = null)\r\n {\r\n return BitConverter.ToUInt16(memory.ReadBytes(offset, 2), 0);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "88ebbc1455ad2906", - "equalIndicator/v1": "9b88a55e28609499c2bd70c1a807a6d8fc3c7cdcd0412612f1d0415edcba976d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'AddErrorCommand' coverage is below the threshold 50%", - "markdown": "Method `AddErrorCommand` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/MainViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 347, - "startColumn": 18, - "charOffset": 10828, - "charLength": 15, - "snippet": { - "text": "AddErrorCommand" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 345, - "startColumn": 1, - "charOffset": 10779, - "charLength": 119, - "snippet": { - "text": "\r\n //For debugging purposes\r\n private void AddErrorCommand()\r\n {\r\n AddException(new Exception(\"adf\"));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "51e133352c860ff7", - "equalIndicator/v1": "9bc051ae00cb87a22756149c6efa22750d7d4136c4a93a62be82fa4edefef352" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_AttributeLevel' coverage is below the threshold 50%", - "markdown": "Method `get_AttributeLevel` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 342, - "startColumn": 9, - "charOffset": 13650, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 340, - "startColumn": 1, - "charOffset": 13604, - "charLength": 136, - "snippet": { - "text": " public int AttributeLevel\r\n {\r\n get => _attributeLevel;\r\n set => this.SetField(ref _attributeLevel, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "34dac8a41e80ce49", - "equalIndicator/v1": "9bea1a8fbfad8d3a94ee620fb68124fc820cd36175fcbb832336a7b888234ef4" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetInGameTimeMilliseconds' coverage is below the threshold 50%", - "markdown": "Method `GetInGameTimeMilliseconds` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 66, - "startColumn": 16, - "charOffset": 2477, - "charLength": 25, - "snippet": { - "text": "GetInGameTimeMilliseconds" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 64, - "startColumn": 1, - "charOffset": 2420, - "charLength": 225, - "snippet": { - "text": " private readonly Pointer _menuMan;\r\n\r\n public int GetInGameTimeMilliseconds() => _fd4Time.ReadInt32(0x114);\r\n public void WriteInGameTimeMilliseconds(int milliseconds) => _fd4Time.WriteInt32(0x114, milliseconds);\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "19a271d0756decfe", - "equalIndicator/v1": "9c2ebe0572a7f3c255a8102ed21713bd8e36b8a1d425e5ce4cd4d1d280e5da17" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteInGameTimeMilliseconds' coverage is below the threshold 50%", - "markdown": "Method `WriteInGameTimeMilliseconds` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 67, - "startColumn": 17, - "charOffset": 2552, - "charLength": 27, - "snippet": { - "text": "WriteInGameTimeMilliseconds" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 65, - "startColumn": 1, - "charOffset": 2460, - "charLength": 227, - "snippet": { - "text": "\r\n public int GetInGameTimeMilliseconds() => _fd4Time.ReadInt32(0x114);\r\n public void WriteInGameTimeMilliseconds(int milliseconds) => _fd4Time.WriteInt32(0x114, milliseconds);\r\n\r\n public bool IsLoadingScreenVisible()\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9ee7dc911dabe8df", - "equalIndicator/v1": "9c6534e13393170eccd2e18743be50b082a783354b0c8262e9c411f4bfe30ddf" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'InitializeOffsets' coverage is below the threshold 50%", - "markdown": "Method `InitializeOffsets` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/EldenRing.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 79, - "startColumn": 18, - "charOffset": 3362, - "charLength": 17, - "snippet": { - "text": "InitializeOffsets" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 77, - "startColumn": 1, - "charOffset": 3336, - "charLength": 100, - "snippet": { - "text": " }\r\n\r\n private void InitializeOffsets(Version v)\r\n {\r\n var version = GetVersion(v);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5e76649a3925c2dc", - "equalIndicator/v1": "9ce98d24d7bbb708a76984744a9b80b5e1ad9a5aabb1ec989a5c92d0298921f7" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'OnReset' coverage is below the threshold 50%", - "markdown": "Method `OnReset` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls2Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 62, - "startColumn": 18, - "charOffset": 2047, - "charLength": 7, - "snippet": { - "text": "OnReset" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 60, - "startColumn": 1, - "charOffset": 2021, - "charLength": 102, - "snippet": { - "text": " }\r\n\r\n private void OnReset(object sender, TimerPhase timerPhase)\r\n {\r\n ResetTimer();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4a28566cb11dc24f", - "equalIndicator/v1": "9d006fc9ab97ec66862ee70e3856e10b463a158f0fc2c4b284ebb37f4287b3f3" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_WriteEnabled' coverage is below the threshold 50%", - "markdown": "Method `get_WriteEnabled` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/BaseParam.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 101, - "startColumn": 32, - "charOffset": 3953, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 99, - "startColumn": 1, - "charOffset": 3741, - "charLength": 335, - "snippet": { - "text": " #region Writing fields ======================================================================================================================================================\r\n\r\n public bool WriteEnabled { get; set; }\r\n\r\n protected void WriteParamField(ref T field, T value, [CallerMemberName] string? propertyName = null)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5ba371476811eb97", - "equalIndicator/v1": "9d832e41be4bc059b23d6e705ac8fe52ee3b01a8dff94e46c09cebde4291fdf6" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetMorphemeMessages2' coverage is below the threshold 50%", - "markdown": "Method `GetMorphemeMessages2` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/soulmods/Soulmods.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 67, - "startColumn": 41, - "charOffset": 2182, - "charLength": 20, - "snippet": { - "text": "GetMorphemeMessages2" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 65, - "startColumn": 1, - "charOffset": 2133, - "charLength": 179, - "snippet": { - "text": " }\r\n\r\n public static MorphemeMessageBuffer GetMorphemeMessages2(Process process) => process.RustCall(\"GetQueuedDarkSouls2MorphemeMessages2\");\r\n \r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4fb31120fef7f50e", - "equalIndicator/v1": "9d9b3045a066531fe03d87fd4741c96143f40f7c3c2769a02bb2ce725df11c90" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ToString' coverage is below the threshold 50%", - "markdown": "Method `ToString` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/GraceViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 34, - "startColumn": 28, - "charOffset": 1232, - "charLength": 8, - "snippet": { - "text": "ToString" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 32, - "startColumn": 1, - "charOffset": 1196, - "charLength": 76, - "snippet": { - "text": " }\r\n\r\n public override string ToString()\r\n {\r\n return Name;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "cbe9165968cc6643", - "equalIndicator/v1": "9daa585c2a009d38cd7b02907e1bd027b4b7b3c766a8edfaf8f0fa0346a442ef" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_CurrentPosition' coverage is below the threshold 50%", - "markdown": "Method `get_CurrentPosition` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 51, - "startColumn": 9, - "charOffset": 1648, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 49, - "startColumn": 1, - "charOffset": 1587, - "charLength": 153, - "snippet": { - "text": " public PositionViewModel CurrentPosition\r\n {\r\n get => _currentPosition;\r\n set => this.SetField(ref _currentPosition, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7eb02d33c3fd1f60", - "equalIndicator/v1": "9e0d571e0005563516fbd19b70305013edfb04fb61712ef23123db40a85104d0" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadSByte' coverage is below the threshold 50%", - "markdown": "Method `ReadSByte` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 52, - "startColumn": 25, - "charOffset": 1696, - "charLength": 9, - "snippet": { - "text": "ReadSByte" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 50, - "startColumn": 1, - "charOffset": 1663, - "charLength": 133, - "snippet": { - "text": " }\r\n\r\n public static sbyte ReadSByte(this IMemory memory, long offset)\r\n {\r\n var b = memory.ReadBytes(offset, 1)[0];\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "29101a774bb7ed5e", - "equalIndicator/v1": "9e3f3b4a1d8a6e048a9f94f8f676319b9f95842343f41db13fd56c2759201573" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_SelectedAttribute' coverage is below the threshold 50%", - "markdown": "Method `set_SelectedAttribute` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 336, - "startColumn": 9, - "charOffset": 13502, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 334, - "startColumn": 1, - "charOffset": 13451, - "charLength": 150, - "snippet": { - "text": " {\r\n get => _selectedAttribute;\r\n set => this.SetField(ref _selectedAttribute, value);\r\n }\r\n private Enum? _selectedAttribute;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5b7577c95d0df267", - "equalIndicator/v1": "9e7eaf0be6dc364a3e522e9f2ba4090c685aa74a37413261068b5bf59c2d1c3e" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_ModuleName' coverage is below the threshold 50%", - "markdown": "Method `get_ModuleName` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Process/ProcessWrapperModule.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 24, - "startColumn": 32, - "charOffset": 962, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 22, - "startColumn": 1, - "charOffset": 893, - "charLength": 186, - "snippet": { - "text": "public class ProcessWrapperModule\r\n{\r\n public string ModuleName { get; set; } = null!;\r\n public string FileName { get; set; } = null!;\r\n public IntPtr BaseAddress { get; set; }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "15710739c47dad4a", - "equalIndicator/v1": "9ea6cdca2b7181ceb7850f010b2ac5fa26b682cf5c1a5bb0650d9995b8a3a04e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_NewSplitFlagEnabled' coverage is below the threshold 50%", - "markdown": "Method `set_NewSplitFlagEnabled` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 244, - "startColumn": 9, - "charOffset": 8607, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 242, - "startColumn": 1, - "charOffset": 8554, - "charLength": 155, - "snippet": { - "text": " {\r\n get => _newSplitFlagEnabled;\r\n set => this.SetField(ref _newSplitFlagEnabled, value);\r\n }\r\n private bool _newSplitFlagEnabled;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "44bb900c7c971bd7", - "equalIndicator/v1": "9efd24cd441a27c967b21c1497a8bd49a89d045a8d88519c85971eacaa5ca374" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'AddSplit_OnClick' coverage is below the threshold 50%", - "markdown": "Method `AddSplit_OnClick` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2Control.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 44, - "startColumn": 18, - "charOffset": 1538, - "charLength": 16, - "snippet": { - "text": "AddSplit_OnClick" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 42, - "startColumn": 1, - "charOffset": 1456, - "charLength": 182, - "snippet": { - "text": " private DarkSouls2ViewModel _darkSouls2ViewModel = null!;\r\n\r\n private void AddSplit_OnClick(object sender, RoutedEventArgs e)\r\n {\r\n _darkSouls2ViewModel.AddSplit();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "6480703fcbf5ccb2", - "equalIndicator/v1": "9f2f58e0cd589c419679084f75a940bdc89a997bc769dee3406566125c6ec0f8" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Constructor 'Split' coverage is below the threshold 50%", - "markdown": "Constructor `Split` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splits/DarkSouls2/Split.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 25, - "startColumn": 12, - "charOffset": 956, - "charLength": 5, - "snippet": { - "text": "Split" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 23, - "startColumn": 1, - "charOffset": 920, - "charLength": 161, - "snippet": { - "text": "internal class Split\r\n{\r\n public Split(TimingType timingType, DarkSouls2SplitType darkSouls2SplitType, object split)\r\n {\r\n TimingType = timingType;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "529c6a8c3c89e966", - "equalIndicator/v1": "9f923fc1d66ac300f8bb64771a3310f34f58aa71ab6c9685aa8755d6503554f2" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'SetLoadingScreenItem' coverage is below the threshold 50%", - "markdown": "Method `SetLoadingScreenItem` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 513, - "startColumn": 17, - "charOffset": 18121, - "charLength": 20, - "snippet": { - "text": "SetLoadingScreenItem" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 511, - "startColumn": 1, - "charOffset": 18096, - "charLength": 134, - "snippet": { - "text": " }\r\n\r\n public void SetLoadingScreenItem(int index, uint item)\r\n {\r\n _loadingScreenItems.WriteUint32(index * 4, item);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c0f76cd953b1699a", - "equalIndicator/v1": "9fa563c3e9f984c915dc6e2e47537eae69528d8875652ede40082071c28d0199" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_NewSplitTypeEnabled' coverage is below the threshold 50%", - "markdown": "Method `set_NewSplitTypeEnabled` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 212, - "startColumn": 9, - "charOffset": 7707, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 210, - "startColumn": 1, - "charOffset": 7654, - "charLength": 155, - "snippet": { - "text": " {\r\n get => _newSplitTypeEnabled;\r\n set => this.SetField(ref _newSplitTypeEnabled, value);\r\n }\r\n private bool _newSplitTypeEnabled;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "14962a3087bdc776", - "equalIndicator/v1": "a02730d93e91008245ae516ecd15ed360fd17400cf2b6470613ff6b9d1d4ae1b" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_AttributeLevel' coverage is below the threshold 50%", - "markdown": "Method `set_AttributeLevel` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 343, - "startColumn": 9, - "charOffset": 13683, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 341, - "startColumn": 1, - "charOffset": 13635, - "charLength": 144, - "snippet": { - "text": " {\r\n get => _attributeLevel;\r\n set => this.SetField(ref _attributeLevel, value);\r\n }\r\n private int _attributeLevel = 10;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "47d85078361982ab", - "equalIndicator/v1": "a06e0774299509662fea14b0ec5faec6858ba9278f304c9ca2df2eac9d36e1d0" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'InitB3Mods' coverage is below the threshold 50%", - "markdown": "Method `InitB3Mods` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Sekiro/Sekiro.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 498, - "startColumn": 18, - "charOffset": 18442, - "charLength": 10, - "snippet": { - "text": "InitB3Mods" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 496, - "startColumn": 1, - "charOffset": 18403, - "charLength": 84, - "snippet": { - "text": " */\r\n\r\n private bool InitB3Mods()\r\n {\r\n string version;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "113adbc0ca0a6213", - "equalIndicator/v1": "a06f7c293ff79921d866418385c67709fbbe7c9e66c0d8f98067aff2224fe1ee" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_CopyGamePositionCommand' coverage is below the threshold 50%", - "markdown": "Method `get_CopyGamePositionCommand` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/BaseViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 118, - "startColumn": 9, - "charOffset": 3766, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 116, - "startColumn": 1, - "charOffset": 3702, - "charLength": 172, - "snippet": { - "text": " public RelayCommand CopyGamePositionCommand\r\n {\r\n get => _copyGamePositionCommand;\r\n set => this.SetField(ref _copyGamePositionCommand, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "337b7cd015022527", - "equalIndicator/v1": "a0bf86e9cff5bb631f1a1cd1bf0884eb2211a6f8a35998480c40a5866ac92825" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadByte' coverage is below the threshold 50%", - "markdown": "Method `ReadByte` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 218, - "startColumn": 17, - "charOffset": 5753, - "charLength": 8, - "snippet": { - "text": "ReadByte" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 216, - "startColumn": 1, - "charOffset": 5664, - "charLength": 168, - "snippet": { - "text": " return BitConverter.ToBoolean(ReadMemory(offset, 1), 0);\r\n }\r\n public byte ReadByte(long? offset = null)\r\n {\r\n return ReadMemory(offset, 1)[0];\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4223fccc43c1ba70", - "equalIndicator/v1": "a126f8cb63607b3987bb524826c196da7f5b007d35cf43c58c9893afdd65f0b3" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'AddSplitFunc' coverage is below the threshold 50%", - "markdown": "Method `AddSplitFunc` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 86, - "startColumn": 18, - "charOffset": 2928, - "charLength": 12, - "snippet": { - "text": "AddSplitFunc" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 84, - "startColumn": 1, - "charOffset": 2902, - "charLength": 104, - "snippet": { - "text": " }\r\n\r\n private void AddSplitFunc(object? parameter)\r\n {\r\n var flatSplit = new FlatSplit\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1f285ff361dcde1a", - "equalIndicator/v1": "a20c700c4045495460929adce0e66f72c9c63b9021407b55e17251afb878a85c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_SplitTypes' coverage is below the threshold 50%", - "markdown": "Method `get_SplitTypes` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 174, - "startColumn": 9, - "charOffset": 6868, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 172, - "startColumn": 1, - "charOffset": 6779, - "charLength": 256, - "snippet": { - "text": " public ObservableCollection> SplitTypes\r\n {\r\n get => (ObservableCollection>)GetValue(SplitTypeDependencyProperty);\r\n set => SetValue(SplitTypeDependencyProperty, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "89817993a3f1acac", - "equalIndicator/v1": "a28fe6fe5f72aa3f2af64865a273131305a8c123cd2f2006a5ffb9bf8500705e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_NewSplitBoss' coverage is below the threshold 50%", - "markdown": "Method `get_NewSplitBoss` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 139, - "startColumn": 9, - "charOffset": 4241, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 137, - "startColumn": 1, - "charOffset": 4195, - "charLength": 92, - "snippet": { - "text": " public Boss? NewSplitBoss\r\n {\r\n get => _newSplitBoss;\r\n set\r\n {\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "71bc392090d1481e", - "equalIndicator/v1": "a3035c124dc28e8ac9bc1843e5f4dce895d197d7e45a63ca36ad53a6790afe29" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ResetTimer' coverage is below the threshold 50%", - "markdown": "Method `ResetTimer` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/EldenRingSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 166, - "startColumn": 18, - "charOffset": 5538, - "charLength": 10, - "snippet": { - "text": "ResetTimer" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 164, - "startColumn": 1, - "charOffset": 5512, - "charLength": 94, - "snippet": { - "text": " }\r\n\r\n private void ResetTimer()\r\n {\r\n _timerState = TimerState.WaitForStart;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "56571c9745ad1ae1", - "equalIndicator/v1": "a31f644b0e687efdc875226facb5ae675fda367a58a2fc473c1dd2944852a2ca" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetTreeBuilder' coverage is below the threshold 50%", - "markdown": "Method `GetTreeBuilder` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 72, - "startColumn": 24, - "charOffset": 3218, - "charLength": 14, - "snippet": { - "text": "GetTreeBuilder" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 70, - "startColumn": 1, - "charOffset": 3059, - "charLength": 230, - "snippet": { - "text": " public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, \"darksouls\", InitPointers, ResetPointers);\r\n\r\n public TreeBuilder GetTreeBuilder() \r\n {\r\n var treeBuilder = new TreeBuilder();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d7dfeb91e2bb357d", - "equalIndicator/v1": "a3628de304cfc95bf41ede1ae00de113c5f16d432e5ad953a2bb983462bbfd93" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'TryRefresh' coverage is below the threshold 50%", - "markdown": "Method `TryRefresh` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 39, - "startColumn": 36, - "charOffset": 1618, - "charLength": 10, - "snippet": { - "text": "TryRefresh" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 37, - "startColumn": 1, - "charOffset": 1534, - "charLength": 228, - "snippet": { - "text": "\r\n public Process? GetProcess() => _process;\r\n public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, \"darksoulsiii\", InitPointers, ResetPointers);\r\n\r\n public TreeBuilder GetTreeBuilder()\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ad0bcbcdb7b7908f", - "equalIndicator/v1": "a3f78c27958682542ea31f4d4f27720a28b4beb5f2ab5ada9bee37572e0de347" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_Items' coverage is below the threshold 50%", - "markdown": "Method `get_Items` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 235, - "startColumn": 9, - "charOffset": 10197, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 233, - "startColumn": 1, - "charOffset": 10118, - "charLength": 233, - "snippet": { - "text": " public ObservableCollection> Items\r\n {\r\n get => (ObservableCollection>)GetValue(ItemsDependencyProperty);\r\n set => SetValue(ItemsDependencyProperty, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b9d3229af111e029", - "equalIndicator/v1": "a44606c3f0971dc42320050eb92cb9f0d984be5c209a862ffff1a3dfeda68dc5" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'Parameters.TextTableEntry' coverage is below the threshold 50%", - "markdown": "Class `Parameters.TextTableEntry` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/TextTableEntry.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 19, - "startColumn": 14, - "charOffset": 856, - "charLength": 14, - "snippet": { - "text": "TextTableEntry" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 17, - "startColumn": 1, - "charOffset": 807, - "charLength": 111, - "snippet": { - "text": "namespace SoulMemory.Parameters;\r\n\r\npublic class TextTableEntry\r\n{\r\n public uint ItemLowRange { get; set; }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ec3d05c171344cb4", - "equalIndicator/v1": "a4f64ced8159d0caf8397b2c4971b3fa72e5171cd3158070b02fe410d46dbb85" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_SelectedTimingType' coverage is below the threshold 50%", - "markdown": "Method `set_SelectedTimingType` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 293, - "startColumn": 9, - "charOffset": 12292, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 291, - "startColumn": 1, - "charOffset": 12240, - "charLength": 181, - "snippet": { - "text": " {\r\n get => _selectedTimingType;\r\n set => this.SetField(ref _selectedTimingType, value);\r\n }\r\n private TimingType _selectedTimingType = TimingType.Immediate;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "220f9f0e94b07317", - "equalIndicator/v1": "a4f7432c55819a7251fd080e64308088b913eea10ae28592194071a205315c78" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ToString' coverage is below the threshold 50%", - "markdown": "Method `ToString` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splits/Sekiro/Attribute.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 41, - "startColumn": 28, - "charOffset": 1457, - "charLength": 8, - "snippet": { - "text": "ToString" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 39, - "startColumn": 1, - "charOffset": 1403, - "charLength": 116, - "snippet": { - "text": " private int _level;\r\n\r\n public override string ToString()\r\n {\r\n return $\"{AttributeType} {Level}\";\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9871c543be50709c", - "equalIndicator/v1": "a5c5005db2f65b1bed840091b0580ae54e967e6fde703795b5f8ea23eb75e8e1" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_BossType' coverage is below the threshold 50%", - "markdown": "Method `get_BossType` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splits/DarkSouls2/BossKill.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 30, - "startColumn": 9, - "charOffset": 1162, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 28, - "startColumn": 1, - "charOffset": 1117, - "charLength": 123, - "snippet": { - "text": " public BossType BossType\r\n {\r\n get => _bossType;\r\n set => this.SetField(ref _bossType, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f763f02f51249c50", - "equalIndicator/v1": "a60a8d0b0c44490ccebfcfcd72946949017020fbce7f67df18d44f8f39247d5f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'Update' coverage is below the threshold 50%", - "markdown": "Method `Update` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/SekiroSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 85, - "startColumn": 36, - "charOffset": 2566, - "charLength": 6, - "snippet": { - "text": "Update" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 83, - "startColumn": 1, - "charOffset": 2522, - "charLength": 89, - "snippet": { - "text": " }\r\n\r\n public ResultErr Update(MainViewModel mainViewModel)\r\n {\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a036acedaa0491bc", - "equalIndicator/v1": "a61851ceca7a4e1bc95b79445eb0195be5e768b82e80abe7b4c3755c746be7a1" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteFloat' coverage is below the threshold 50%", - "markdown": "Method `WriteFloat` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 319, - "startColumn": 17, - "charOffset": 8345, - "charLength": 10, - "snippet": { - "text": "WriteFloat" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 317, - "startColumn": 1, - "charOffset": 8258, - "charLength": 192, - "snippet": { - "text": " public void WriteFloat(float value) => WriteFloat(null, value);\r\n\r\n public void WriteFloat(long? offset, float value)\r\n {\r\n WriteMemory(offset, BitConverter.GetBytes(value));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "290d4fa3c963b989", - "equalIndicator/v1": "a62b4c3d85e79e476654f361782247bbb7c9974f89210f10caa5da157cdbfd7f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_CommandClearErrors' coverage is below the threshold 50%", - "markdown": "Method `get_CommandClearErrors` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/MainViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 215, - "startColumn": 9, - "charOffset": 6932, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 213, - "startColumn": 1, - "charOffset": 6873, - "charLength": 157, - "snippet": { - "text": " public RelayCommand CommandClearErrors\r\n {\r\n get => _commandClearErrors;\r\n set => this.SetField(ref _commandClearErrors, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d20bafae6f5af403", - "equalIndicator/v1": "a6308b26f7d2722c30f878eaafdd1d555021761ac46c45c5bcead9edf3f40bb9" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_GamePosition' coverage is below the threshold 50%", - "markdown": "Method `get_GamePosition` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 245, - "startColumn": 9, - "charOffset": 10692, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 243, - "startColumn": 1, - "charOffset": 10643, - "charLength": 180, - "snippet": { - "text": " public Vector3f GamePosition\r\n {\r\n get => (Vector3f)GetValue(GamePositionDependencyProperty);\r\n set => SetValue(GamePositionDependencyProperty, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "309d8d2e3a8cdb04", - "equalIndicator/v1": "a6e9a8fa0be199d5752b381e00bec7f3172be267e6605d47dd7b3b5250663d93" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_SplitsViewModel' coverage is below the threshold 50%", - "markdown": "Method `set_SplitsViewModel` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 226, - "startColumn": 9, - "charOffset": 9736, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 224, - "startColumn": 1, - "charOffset": 9643, - "charLength": 161, - "snippet": { - "text": " {\r\n get => (SplitsViewModel)GetValue(SplitsViewModelDependencyProperty);\r\n set => SetValue(SplitsViewModelDependencyProperty, value);\r\n }\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "8444091db524a5aa", - "equalIndicator/v1": "a70ed92b39b5efc66b005fee0a43990e6edee0ed6cf66a1b21423a7374770421" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadBytes' coverage is below the threshold 50%", - "markdown": "Method `ReadBytes` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 81, - "startColumn": 19, - "charOffset": 2508, - "charLength": 9, - "snippet": { - "text": "ReadBytes" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 79, - "startColumn": 1, - "charOffset": 2481, - "charLength": 232, - "snippet": { - "text": " }\r\n\r\n public byte[] ReadBytes(long offset, int length) => Memory.ReadBytes(ResolveOffsets() + offset, length);\r\n public void WriteBytes(long offset, byte[] bytes) => Memory.WriteBytes(ResolveOffsets() + offset, bytes);\r\n}\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0f74ec75c4ad1067", - "equalIndicator/v1": "a77e631f641b7b0cfa1fed91e306f596f64a8a8c12697cfcd269a632c8a5d48c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteByte' coverage is below the threshold 50%", - "markdown": "Method `WriteByte` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 301, - "startColumn": 17, - "charOffset": 7910, - "charLength": 9, - "snippet": { - "text": "WriteByte" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 299, - "startColumn": 1, - "charOffset": 7885, - "charLength": 107, - "snippet": { - "text": " }\r\n\r\n public void WriteByte(long? offset, byte value)\r\n {\r\n WriteMemory(offset, [value]);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "74d8c1b3f31e025f", - "equalIndicator/v1": "a7e7875bbe2605f268e05fa4180bc4e5d29d1feb65ff9de573336fc04b6f9d70" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'TryScanAbsolute' coverage is below the threshold 50%", - "markdown": "Method `TryScanAbsolute` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 204, - "startColumn": 25, - "charOffset": 8181, - "charLength": 15, - "snippet": { - "text": "TryScanAbsolute" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 202, - "startColumn": 1, - "charOffset": 7980, - "charLength": 324, - "snippet": { - "text": " /// Scan a previously created buffer of bytes for a given pattern, then interpret the data as assembly, where the target address is an absolute address\r\n /// \r\n private static bool TryScanAbsolute(this byte[] bytes, long baseAddress, PointerNode pointerNode, out long result)\r\n {\r\n result = 0;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e47f6dd9171c88a0", - "equalIndicator/v1": "a832ab6a4a8c8167ce8cba09b611416fd9440d2811d22bac44e6ef71d458ab48" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetPosition' coverage is below the threshold 50%", - "markdown": "Method `GetPosition` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 166, - "startColumn": 21, - "charOffset": 5756, - "charLength": 11, - "snippet": { - "text": "GetPosition" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 164, - "startColumn": 1, - "charOffset": 5727, - "charLength": 79, - "snippet": { - "text": " }\r\n\r\n public Vector3f GetPosition()\r\n {\r\n return new Vector3f\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "66c3d19573ebec11", - "equalIndicator/v1": "a840fb2b45f9cbb7c9de0b98062c661b7cfa89f5377cdaab57df019e9b4d1ebf" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'TryScanRelative' coverage is below the threshold 50%", - "markdown": "Method `TryScanRelative` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 188, - "startColumn": 25, - "charOffset": 7436, - "charLength": 15, - "snippet": { - "text": "TryScanRelative" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 186, - "startColumn": 1, - "charOffset": 7331, - "charLength": 228, - "snippet": { - "text": " /// Returns the static address of the given instruction\r\n /// \r\n private static bool TryScanRelative(this byte[] bytes, long baseAddress, PointerNode pointerNode, out long result)\r\n {\r\n result = 0;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0fccca15b60d3d61", - "equalIndicator/v1": "a8835bd2cc785e6dedce9dcebbacd2016d54a793bc1f9488aa45e76f64de5a4b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_BitBlt' coverage is below the threshold 50%", - "markdown": "Method `get_BitBlt` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Sekiro/Sekiro.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 396, - "startColumn": 9, - "charOffset": 14504, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 394, - "startColumn": 1, - "charOffset": 14465, - "charLength": 86, - "snippet": { - "text": " public bool BitBlt\r\n {\r\n get\r\n {\r\n lock (_bitBltLock)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "fee4c42ec21cf3a8", - "equalIndicator/v1": "a8caf2312c0312560701c65767af8bee2761ef737ac9a0d86fea3af96524a716" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'Splitters.EldenRingSplitter' coverage is below the threshold 50%", - "markdown": "Class `Splitters.EldenRingSplitter` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/EldenRingSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 30, - "startColumn": 16, - "charOffset": 1131, - "charLength": 17, - "snippet": { - "text": "EldenRingSplitter" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 28, - "startColumn": 1, - "charOffset": 1079, - "charLength": 129, - "snippet": { - "text": "namespace SoulSplitter.Splitters;\r\n\r\ninternal class EldenRingSplitter : ISplitter\r\n{\r\n private readonly EldenRing _eldenRing;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b29712fab2f7c8a0", - "equalIndicator/v1": "a8fdc4909957621c77d397c040171a797297655aac874fef5ba71e074506444e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetErr' coverage is below the threshold 50%", - "markdown": "Method `GetErr` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Result.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 139, - "startColumn": 17, - "charOffset": 3480, - "charLength": 6, - "snippet": { - "text": "GetErr" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 137, - "startColumn": 1, - "charOffset": 3455, - "charLength": 60, - "snippet": { - "text": " }\r\n\r\n public TErr GetErr()\r\n {\r\n if (IsOk)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "fca63b4c34d0703b", - "equalIndicator/v1": "a90da0ee5df3c0e9c2686571dc080cd0995ccd9591dee643e5cf68f1060a91d4" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetSettingsControl' coverage is below the threshold 50%", - "markdown": "Method `GetSettingsControl` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/SoulComponent.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 294, - "startColumn": 41, - "charOffset": 10325, - "charLength": 18, - "snippet": { - "text": "GetSettingsControl" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 292, - "startColumn": 1, - "charOffset": 10235, - "charLength": 177, - "snippet": { - "text": "\r\n private Button? _customShowSettingsButton;\r\n public System.Windows.Forms.Control GetSettingsControl(LayoutMode mode)\r\n {\r\n var stackTrace = new StackTrace();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4f037b2f4fa7e1df", - "equalIndicator/v1": "a926eb5ec5b797d26e76961c2993e774afbeac741af76f85411c16a6a8be4c82" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetTreeBuilder' coverage is below the threshold 50%", - "markdown": "Method `GetTreeBuilder` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/EldenRing.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 51, - "startColumn": 24, - "charOffset": 1993, - "charLength": 14, - "snippet": { - "text": "GetTreeBuilder" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 49, - "startColumn": 1, - "charOffset": 1834, - "charLength": 229, - "snippet": { - "text": " public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, \"eldenring\", InitPointers, ResetPointers);\r\n\r\n public TreeBuilder GetTreeBuilder()\r\n {\r\n var treeBuilder = new TreeBuilder();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c4764a83bd9c8b22", - "equalIndicator/v1": "a935c6e0fd9b87761b371395eca9251ca18546e51b03e19ca2f9b880deb2fdfb" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_BooleanFlags' coverage is below the threshold 50%", - "markdown": "Method `set_BooleanFlags` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 155, - "startColumn": 9, - "charOffset": 5709, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 153, - "startColumn": 1, - "charOffset": 5588, - "charLength": 186, - "snippet": { - "text": " {\r\n get => (ObservableCollection)GetValue(BooleanFlagsDependencyProperty);\r\n set => SetValue(BooleanFlagsDependencyProperty, value);\r\n }\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f0a97491ae98da6d", - "equalIndicator/v1": "a9cdc5d21e8934b2ce4df8f5bbb0b2481e588aac9acb35dd5ee2950872cd3234" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadEventFlag' coverage is below the threshold 50%", - "markdown": "Method `ReadEventFlag` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 141, - "startColumn": 17, - "charOffset": 4995, - "charLength": 13, - "snippet": { - "text": "ReadEventFlag" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 139, - "startColumn": 1, - "charOffset": 4970, - "charLength": 134, - "snippet": { - "text": " }\r\n\r\n public bool ReadEventFlag(uint eventFlagId)\r\n {\r\n var result = GetEventFlagAddress(eventFlagId, out int mask);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "dc8fcd2183663b4d", - "equalIndicator/v1": "aa1ca0c1cb0abbe74511e3683494f498876ee3f2e77fc94bedb44e1492e8849b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'DarkSouls2.BossKill' coverage is below the threshold 50%", - "markdown": "Class `DarkSouls2.BossKill` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splits/DarkSouls2/BossKill.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 25, - "startColumn": 14, - "charOffset": 1029, - "charLength": 8, - "snippet": { - "text": "BossKill" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 23, - "startColumn": 1, - "charOffset": 977, - "charLength": 139, - "snippet": { - "text": "\r\n[XmlType(Namespace = \"DarkSouls2\")]\r\npublic class BossKill : ICustomNotifyPropertyChanged\r\n{\r\n [XmlElement(Namespace = \"DarkSouls2\")]\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "43262d432deb29e1", - "equalIndicator/v1": "aa29ed951a91e0731238eaef69a6d1f94c0071952a64134e0b6846566aad6c23" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'TryRefresh' coverage is below the threshold 50%", - "markdown": "Method `TryRefresh` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 91, - "startColumn": 36, - "charOffset": 3652, - "charLength": 10, - "snippet": { - "text": "TryRefresh" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 89, - "startColumn": 1, - "charOffset": 3568, - "charLength": 228, - "snippet": { - "text": " public Process? GetProcess() => _process;\r\n\r\n public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, \"darksoulsremastered\", InitPointers, ResetPointers);\r\n\r\n private void ResetPointers()\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a690e778e00014a3", - "equalIndicator/v1": "aa343592818bf455e0f0041c64ba85f986ef714cc6bab65ae2a77e972166aafb" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_EnabledSplitType' coverage is below the threshold 50%", - "markdown": "Method `get_EnabledSplitType` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 74, - "startColumn": 9, - "charOffset": 2329, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 72, - "startColumn": 1, - "charOffset": 2280, - "charLength": 143, - "snippet": { - "text": " public bool EnabledSplitType\r\n {\r\n get => _enabledSplitType;\r\n set => this.SetField(ref _enabledSplitType, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "173303d5dce20a6b", - "equalIndicator/v1": "aa3715deb46defd000ef403ce3267d321eb865cf983e1a2e3ff10a5556ef2d99" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'EldenRing.Split' coverage is below the threshold 50%", - "markdown": "Class `EldenRing.Split` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splits/EldenRing/Split.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 23, - "startColumn": 16, - "charOffset": 944, - "charLength": 5, - "snippet": { - "text": "Split" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 21, - "startColumn": 1, - "charOffset": 885, - "charLength": 162, - "snippet": { - "text": "namespace SoulSplitter.Splits.EldenRing;\r\n\r\ninternal class Split\r\n{\r\n public Split(TimingType timingType, EldenRingSplitType eldenRingSplitType, object split)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "674ca6ff58dfa56c", - "equalIndicator/v1": "aa51d6f050c8d575c580008cfca2886a0b0fa2bce196a15626473fd64a5847d2" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteBytes' coverage is below the threshold 50%", - "markdown": "Method `WriteBytes` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/ByteArrayMemory.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 34, - "startColumn": 17, - "charOffset": 1284, - "charLength": 10, - "snippet": { - "text": "WriteBytes" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 32, - "startColumn": 1, - "charOffset": 1259, - "charLength": 118, - "snippet": { - "text": " }\r\n\r\n public void WriteBytes(long offset, byte[] bytes)\r\n {\r\n for (int i = 0; i < bytes.Length; i++)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "682882c25ac96ebb", - "equalIndicator/v1": "aa84c53729240cf3fe99aee4b42eee0f6a8b1f49720f17d03c2334b6eb2b59db" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetAttribute' coverage is below the threshold 50%", - "markdown": "Method `GetAttribute` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Sekiro/Sekiro.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 194, - "startColumn": 16, - "charOffset": 7333, - "charLength": 12, - "snippet": { - "text": "GetAttribute" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 192, - "startColumn": 1, - "charOffset": 7309, - "charLength": 98, - "snippet": { - "text": " }\r\n\r\n public int GetAttribute(Attribute attribute)\r\n {\r\n return attribute switch\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "8525853f6b349db1", - "equalIndicator/v1": "aa9baa507f804447d58f026ac146b58002cd8f7f5b5f42cf0550e50bc110870e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadEventFlag' coverage is below the threshold 50%", - "markdown": "Method `ReadEventFlag` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls2/scholar.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 118, - "startColumn": 17, - "charOffset": 4002, - "charLength": 13, - "snippet": { - "text": "ReadEventFlag" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 116, - "startColumn": 1, - "charOffset": 3982, - "charLength": 116, - "snippet": { - "text": "\r\n\r\n public bool ReadEventFlag(uint eventFlagId)\r\n {\r\n var eventCategory = eventFlagId / 10000 * 0x89;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7389efa4074fe5e9", - "equalIndicator/v1": "ab358cc206c9c7e7b98bba8d244a362c0f43674b5dea40ebaf392472442c5938" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'OnUpdate' coverage is below the threshold 50%", - "markdown": "Method `OnUpdate` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/ArmoredCore6Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 43, - "startColumn": 45, - "charOffset": 1683, - "charLength": 8, - "snippet": { - "text": "OnUpdate" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 41, - "startColumn": 1, - "charOffset": 1630, - "charLength": 101, - "snippet": { - "text": " }\r\n\r\n public override ResultErr OnUpdate()\r\n {\r\n switch (_timerState)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "53d2121d50c3edce", - "equalIndicator/v1": "ac16de956dc34c9c456c4b6ac85c46d92f71ae5361c282a6e75121e20addacca" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'TryValidatePatterns' coverage is below the threshold 50%", - "markdown": "Method `TryValidatePatterns` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 97, - "startColumn": 24, - "charOffset": 3860, - "charLength": 19, - "snippet": { - "text": "TryValidatePatterns" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 95, - "startColumn": 1, - "charOffset": 3731, - "charLength": 335, - "snippet": { - "text": " /// Validate patterns in a TreeBuilder by counting the patterns in a given file.\r\n /// \r\n public static bool TryValidatePatterns(TreeBuilder treeBuilder, List filepaths, out List<(string fileName, string patternName, long count)> errors)\r\n {\r\n var files = new List<(string name, byte[] bytes)>();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "8da9023a1aac94bf", - "equalIndicator/v1": "ac18cefbeb0a6433040fd73bacdc965c67c5f6946fc95c876f2c1abe64741b31" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'RunEventFlagLogger' coverage is below the threshold 50%", - "markdown": "Method `RunEventFlagLogger` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/MainViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 305, - "startColumn": 18, - "charOffset": 9586, - "charLength": 18, - "snippet": { - "text": "RunEventFlagLogger" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 303, - "startColumn": 1, - "charOffset": 9505, - "charLength": 158, - "snippet": { - "text": " private RelayCommand _commandRunEventFlagLogger = null!;\r\n\r\n private void RunEventFlagLogger()\r\n {\r\n TryAndHandleError(SoulMemoryRs.Launch);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c09cc863d37ae8fb", - "equalIndicator/v1": "ac37cbe774f374fe513951aa03b4e972ad0764e8c20c09e7c87449b3721e5aa9" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_NewSplitTypeEnabled' coverage is below the threshold 50%", - "markdown": "Method `get_NewSplitTypeEnabled` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 211, - "startColumn": 9, - "charOffset": 7669, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 209, - "startColumn": 1, - "charOffset": 7617, - "charLength": 152, - "snippet": { - "text": " public bool NewSplitTypeEnabled\r\n {\r\n get => _newSplitTypeEnabled;\r\n set => this.SetField(ref _newSplitTypeEnabled, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f69158bfb05df617", - "equalIndicator/v1": "ac6d372a36a172128082bfd6e5e6634ab8435551824964b96f0554044140890a" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteBytes' coverage is below the threshold 50%", - "markdown": "Method `WriteBytes` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Process/ProcessHook.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 94, - "startColumn": 17, - "charOffset": 3946, - "charLength": 10, - "snippet": { - "text": "WriteBytes" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 92, - "startColumn": 1, - "charOffset": 3829, - "charLength": 218, - "snippet": { - "text": "\r\n public byte[] ReadBytes(long offset, int length) => ProcessWrapper.ReadBytes(offset, length);\r\n public void WriteBytes(long offset, byte[] bytes) => ProcessWrapper.WriteBytes(offset, bytes);\r\n\r\n #endregion\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "15d03144ca0009f6", - "equalIndicator/v1": "ad09047a37b19f000295d13380603411b208332fc00482e72d622d466365a530" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_NewSplitTimingType' coverage is below the threshold 50%", - "markdown": "Method `set_NewSplitTimingType` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 145, - "startColumn": 9, - "charOffset": 5689, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 143, - "startColumn": 1, - "charOffset": 5637, - "charLength": 127, - "snippet": { - "text": " {\r\n get => _newSplitTimingType;\r\n set\r\n {\r\n this.SetField(ref _newSplitTimingType, value);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9840e4d4361fdbf3", - "equalIndicator/v1": "ad3a5b0ea14385bec1711b5194e99fd23d2a021746e929d3210ad88493313a61" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'Clear' coverage is below the threshold 50%", - "markdown": "Method `Clear` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 44, - "startColumn": 17, - "charOffset": 1459, - "charLength": 5, - "snippet": { - "text": "Clear" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 42, - "startColumn": 1, - "charOffset": 1434, - "charLength": 71, - "snippet": { - "text": " }\r\n\r\n public void Clear()\r\n {\r\n _initialized = false;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "8efd45de0f9b98ce", - "equalIndicator/v1": "ad3bf755884149549005cea1228e49b9a101d73f0891227e9f1491e09c98c051" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_X' coverage is below the threshold 50%", - "markdown": "Method `get_X` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/PositionViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 56, - "startColumn": 9, - "charOffset": 1614, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 54, - "startColumn": 1, - "charOffset": 1579, - "charLength": 115, - "snippet": { - "text": " public float X\r\n {\r\n get => Position.X;\r\n set => this.SetField(ref Position.X, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9858e18bbbc5a7e2", - "equalIndicator/v1": "ad498a15699ecfefbce421d4fd011645a690c6e4fd824bd35e8c8970990d52d4" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'TreeView_OnSelectedItemChanged' coverage is below the threshold 50%", - "markdown": "Method `TreeView_OnSelectedItemChanged` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 370, - "startColumn": 18, - "charOffset": 14354, - "charLength": 30, - "snippet": { - "text": "TreeView_OnSelectedItemChanged" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 368, - "startColumn": 1, - "charOffset": 14333, - "charLength": 158, - "snippet": { - "text": "\r\n\r\n private void TreeView_OnSelectedItemChanged(object sender, RoutedPropertyChangedEventArgs e)\r\n {\r\n if (sender is TreeView treeView)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b40c5d8e986fa0d0", - "equalIndicator/v1": "ad7771f11c8c7b5465019a7e58b05c0bdc41f4c9f13c8eea74dff67606f2316a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetProcess' coverage is below the threshold 50%", - "markdown": "Method `GetProcess` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Process/ProcessHook.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 25, - "startColumn": 40, - "charOffset": 1103, - "charLength": 10, - "snippet": { - "text": "GetProcess" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 23, - "startColumn": 1, - "charOffset": 963, - "charLength": 251, - "snippet": { - "text": " public IProcessWrapper ProcessWrapper { get; set; } = processWrapper ?? new ProcessWrapper();\r\n\r\n public System.Diagnostics.Process? GetProcess() => ProcessWrapper.GetProcess();\r\n\r\n public event Func> Hooked = null!;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1c339e44051d363a", - "equalIndicator/v1": "ad84a645c78dcc7a869b1efcbf4f0ffd8b1f77589aa4a66d98d9974c8479445f" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'StartTimer' coverage is below the threshold 50%", - "markdown": "Method `StartTimer` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/SekiroSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 129, - "startColumn": 18, - "charOffset": 3637, - "charLength": 10, - "snippet": { - "text": "StartTimer" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 127, - "startColumn": 1, - "charOffset": 3551, - "charLength": 157, - "snippet": { - "text": " private TimerState _timerState = TimerState.WaitForStart;\r\n \r\n private void StartTimer()\r\n {\r\n if (_sekiroViewModel.OverwriteIgtOnStart)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0738bf4af21d443e", - "equalIndicator/v1": "ad9b7689ae01c2e21e4940a7ce9c05d949756de42329d2bac4d425ba1aec3fd3" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_VisibleFlagSplit' coverage is below the threshold 50%", - "markdown": "Method `get_VisibleFlagSplit` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 191, - "startColumn": 9, - "charOffset": 5471, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 189, - "startColumn": 1, - "charOffset": 5422, - "charLength": 143, - "snippet": { - "text": " public bool VisibleFlagSplit\r\n {\r\n get => _visibleFlagSplit;\r\n set => this.SetField(ref _visibleFlagSplit, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a5f83ef07bfdd12c", - "equalIndicator/v1": "adaf36d42ed029524e8cf40eb9b38080732b5c7606edef0010a661374ad17c61" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'Memory.MemoryScanner' coverage is below the threshold 50%", - "markdown": "Class `Memory.MemoryScanner` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 27, - "startColumn": 21, - "charOffset": 1033, - "charLength": 13, - "snippet": { - "text": "MemoryScanner" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 25, - "startColumn": 1, - "charOffset": 981, - "charLength": 228, - "snippet": { - "text": "namespace SoulMemory.Memory;\r\n\r\npublic static class MemoryScanner\r\n{\r\n #region Resolving pointers ==============================================================================================================================\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ab0a506d152d1a74", - "equalIndicator/v1": "adc357193dd01f280d63e0c758cb88cbe6b1dded2bdfc1f22d9208024343cec6" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'Process.ProcessWrapperModule' coverage is below the threshold 50%", - "markdown": "Class `Process.ProcessWrapperModule` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Process/ProcessWrapperModule.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 22, - "startColumn": 14, - "charOffset": 906, - "charLength": 20, - "snippet": { - "text": "ProcessWrapperModule" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 20, - "startColumn": 1, - "charOffset": 851, - "charLength": 132, - "snippet": { - "text": "namespace SoulMemory.MemoryV2.Process;\r\n\r\npublic class ProcessWrapperModule\r\n{\r\n public string ModuleName { get; set; } = null!;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "94851fab5f82d9c0", - "equalIndicator/v1": "ae3880e046310dbbd36146c57c4e5cc18d58672b886e17b54b8dde78fbcc5d96" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_VectorSizeTemplate' coverage is below the threshold 50%", - "markdown": "Method `set_VectorSizeTemplate` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/SplitTemplateSelector.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 26, - "startColumn": 51, - "charOffset": 1090, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 24, - "startColumn": 1, - "charOffset": 976, - "charLength": 223, - "snippet": { - "text": "{\r\n public DataTemplate EnumTemplate { get; set; } = null!;\r\n public DataTemplate VectorSizeTemplate { get; set; } = null!;\r\n\r\n public override DataTemplate SelectTemplate(object? item, DependencyObject container)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c2ec062e99edb143", - "equalIndicator/v1": "ae8949233667e9c2e7fb8ddc5750d78c87810c5656907a68e480f330250571fa" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'Dispose' coverage is below the threshold 50%", - "markdown": "Method `Dispose` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls3Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 63, - "startColumn": 28, - "charOffset": 2027, - "charLength": 7, - "snippet": { - "text": "Dispose" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 61, - "startColumn": 1, - "charOffset": 1991, - "charLength": 91, - "snippet": { - "text": " }\r\n\r\n protected virtual void Dispose(bool disposing)\r\n {\r\n if (disposing)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9cb5a4cd9b1a7aa3", - "equalIndicator/v1": "af02693b94b5fe4100fa7c449153a6a0527611a662b5a361f4de4d3b8f8df101" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'IsLoading' coverage is below the threshold 50%", - "markdown": "Method `IsLoading` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls2/scholar.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 96, - "startColumn": 17, - "charOffset": 3480, - "charLength": 9, - "snippet": { - "text": "IsLoading" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 94, - "startColumn": 1, - "charOffset": 3455, - "charLength": 94, - "snippet": { - "text": " }\r\n\r\n public bool IsLoading()\r\n {\r\n return _loadState.ReadInt32(0x11c) == 1;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "256da3e6db82b7bd", - "equalIndicator/v1": "af12cd57e488486f884efc57e33d8f8b56d612817935c8979731604dc9e212d9" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ExportSettings' coverage is below the threshold 50%", - "markdown": "Method `ExportSettings` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/MainViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 387, - "startColumn": 18, - "charOffset": 12061, - "charLength": 14, - "snippet": { - "text": "ExportSettings" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 385, - "startColumn": 1, - "charOffset": 11976, - "charLength": 142, - "snippet": { - "text": " private RelayCommand _commandExportSettingsFromFile = null!;\r\n\r\n private void ExportSettings()\r\n {\r\n TryAndHandleError(() =>\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "04d7796fc41660fa", - "equalIndicator/v1": "af1a686d5d803ac0bf08cd9468d6cf1a816e77d34cd6cfdbca36b5de2f4bbfa9" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetTestValue' coverage is below the threshold 50%", - "markdown": "Method `GetTestValue` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 518, - "startColumn": 19, - "charOffset": 18258, - "charLength": 12, - "snippet": { - "text": "GetTestValue" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 516, - "startColumn": 1, - "charOffset": 18231, - "charLength": 71, - "snippet": { - "text": " }\r\n\r\n public object GetTestValue()\r\n {\r\n return this;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "434d226ff72ecced", - "equalIndicator/v1": "af2142d5bd0097193b760274e2035498eacba7923fa35569a472f5cdadecdb9a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_Reason' coverage is below the threshold 50%", - "markdown": "Method `get_Reason` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/RefreshError.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 46, - "startColumn": 40, - "charOffset": 1489, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 44, - "startColumn": 1, - "charOffset": 1441, - "charLength": 142, - "snippet": { - "text": " }\r\n\r\n public RefreshErrorReason Reason { get; }\r\n public string Message { get; } = null!;\r\n public Exception? Exception { get; }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ee2dd46895cdfb7b", - "equalIndicator/v1": "af7b35ee71b39018e9e28082a483d494334a718c6ee4fc18dc45c6636502e149" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetBonfireState' coverage is below the threshold 50%", - "markdown": "Method `GetBonfireState` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 201, - "startColumn": 25, - "charOffset": 7648, - "charLength": 15, - "snippet": { - "text": "GetBonfireState" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 199, - "startColumn": 1, - "charOffset": 7620, - "charLength": 137, - "snippet": { - "text": "\r\n\r\n public BonfireState GetBonfireState(Bonfire bonfire)\r\n {\r\n var element = _netBonfireDb.CreatePointerFromAddress(0x24);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "76df75217f2fa276", - "equalIndicator/v1": "af83d170a9a0a8b6984a570a3b230ca97a3f264c996522757e5b91870ac245d5" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadInt32' coverage is below the threshold 50%", - "markdown": "Method `ReadInt32` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/IMemory.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 55, - "startColumn": 23, - "charOffset": 1690, - "charLength": 9, - "snippet": { - "text": "ReadInt32" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 53, - "startColumn": 1, - "charOffset": 1562, - "charLength": 257, - "snippet": { - "text": " public static byte[] ReadBytes(this IMemory memory, int length) => memory.ReadBytes(null, length);\r\n\r\n public static int ReadInt32(this IMemory memory, long? offset = null)\r\n {\r\n return BitConverter.ToInt32(memory.ReadBytes(offset, 4), 0);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "336677590536106b", - "equalIndicator/v1": "afa0ae4e6fae4c21eeb9ee5cd3eb95ac0be99e890ca1605b6049864e75646929" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_VisibleItemPickupSplit' coverage is below the threshold 50%", - "markdown": "Method `get_VisibleItemPickupSplit` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 239, - "startColumn": 9, - "charOffset": 6682, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 237, - "startColumn": 1, - "charOffset": 6627, - "charLength": 161, - "snippet": { - "text": " public bool VisibleItemPickupSplit\r\n {\r\n get => _visibleItemPickupSplit;\r\n set => this.SetField(ref _visibleItemPickupSplit, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "34c3242c966255c0", - "equalIndicator/v1": "b02c57ac85720ef053ea79919c7e89ef0439dfd8f2a6a893318dea3350f03871" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetInGameTimeMilliseconds' coverage is below the threshold 50%", - "markdown": "Method `GetInGameTimeMilliseconds` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls2/vanilla.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 37, - "startColumn": 16, - "charOffset": 1644, - "charLength": 25, - "snippet": { - "text": "GetInGameTimeMilliseconds" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 35, - "startColumn": 1, - "charOffset": 1491, - "charLength": 228, - "snippet": { - "text": "\r\n public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, \"darksoulsii\", InitPointers, ResetPointers);\r\n public int GetInGameTimeMilliseconds() => 0;\r\n private void ResetPointers()\r\n {\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "89c8e96c6ea23d99", - "equalIndicator/v1": "b05f7f47c389a9c01bd1faf8f091225c61c37fbfffe8c7e3506d4025893c3eeb" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_CurrentPosition' coverage is below the threshold 50%", - "markdown": "Method `set_CurrentPosition` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 43, - "startColumn": 9, - "charOffset": 1537, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 41, - "startColumn": 1, - "charOffset": 1488, - "charLength": 163, - "snippet": { - "text": " {\r\n get => _currentPosition;\r\n set => this.SetField(ref _currentPosition, value);\r\n }\r\n private Vector3f _currentPosition = new(0f,0f,0f);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "bd26658544f23b89", - "equalIndicator/v1": "b080da0c1bda914eb5bf1db36b52954f5f4191acffb6469c6ad67ba568f9ab7e" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_SelectedSplitType' coverage is below the threshold 50%", - "markdown": "Method `get_SelectedSplitType` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 299, - "startColumn": 9, - "charOffset": 12479, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 297, - "startColumn": 1, - "charOffset": 12424, - "charLength": 151, - "snippet": { - "text": " public SplitType SelectedSplitType\r\n {\r\n get => _selectedSplitType;\r\n set => this.SetField(ref _selectedSplitType, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0bbda3a60834502f", - "equalIndicator/v1": "b0bf1637c1d5f6880cfba36029c8f65ae8a261f2b7b47a7ba148882aa082d80f" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_AddSplit' coverage is below the threshold 50%", - "markdown": "Method `set_AddSplit` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 256, - "startColumn": 9, - "charOffset": 11218, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 254, - "startColumn": 1, - "charOffset": 11135, - "charLength": 144, - "snippet": { - "text": " {\r\n get => (RelayCommand)GetValue(AddSplitDependencyProperty);\r\n set => SetValue(AddSplitDependencyProperty, value);\r\n }\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "397feae6288bf3c7", - "equalIndicator/v1": "b0c62ef2a162b29eb8b5061d6f263b28465e9a764539ac7f3feba2b27b0480d4" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'TryRefresh' coverage is below the threshold 50%", - "markdown": "Method `TryRefresh` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 75, - "startColumn": 36, - "charOffset": 2815, - "charLength": 10, - "snippet": { - "text": "TryRefresh" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 73, - "startColumn": 1, - "charOffset": 2771, - "charLength": 149, - "snippet": { - "text": " }\r\n\r\n public ResultErr TryRefresh() => _armoredCore6.TryRefresh();\r\n\r\n public SoulMemory.Memory.TreeBuilder GetTreeBuilder()\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9223fca45ae93b42", - "equalIndicator/v1": "b1027d254fe658df381119756659e02a93a0078d78c66ea6b1bb5614b7e9add7" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_BooleanFlags' coverage is below the threshold 50%", - "markdown": "Method `get_BooleanFlags` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 154, - "startColumn": 9, - "charOffset": 5603, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 152, - "startColumn": 1, - "charOffset": 5516, - "charLength": 256, - "snippet": { - "text": " public ObservableCollection BooleanFlags\r\n {\r\n get => (ObservableCollection)GetValue(BooleanFlagsDependencyProperty);\r\n set => SetValue(BooleanFlagsDependencyProperty, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9fbbc0bb54c40cb7", - "equalIndicator/v1": "b10f515af5d7904bf9ee25c93e23afe2276f16e2343e705a2a208c077f388c7d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Constructor 'ParamFieldAttribute' coverage is below the threshold 50%", - "markdown": "Constructor `ParamFieldAttribute` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/ParamFieldAttribute.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 25, - "startColumn": 12, - "charOffset": 1003, - "charLength": 19, - "snippet": { - "text": "ParamFieldAttribute" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 23, - "startColumn": 1, - "charOffset": 958, - "charLength": 131, - "snippet": { - "text": " public int? ArraySize;\r\n \r\n public ParamFieldAttribute(int offset, ParamType paramType)\r\n {\r\n Offset = offset;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7378193c1c15203a", - "equalIndicator/v1": "b232e9381742736ed74597d998aed5abf956334619ce550a445f807e2dd5dd81" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_SelectedItem' coverage is below the threshold 50%", - "markdown": "Method `set_SelectedItem` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 350, - "startColumn": 9, - "charOffset": 13859, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 348, - "startColumn": 1, - "charOffset": 13813, - "charLength": 135, - "snippet": { - "text": " {\r\n get => _selectedItem;\r\n set => this.SetField(ref _selectedItem, value);\r\n }\r\n private Enum? _selectedItem;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9268ff472b4507e4", - "equalIndicator/v1": "b23af5baa0c5d70f2966fda6b259144d890b9fcc3fd0cf089a52124eea4cf1f7" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ShowErrorWindow' coverage is below the threshold 50%", - "markdown": "Method `ShowErrorWindow` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/MainViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 229, - "startColumn": 18, - "charOffset": 7373, - "charLength": 15, - "snippet": { - "text": "ShowErrorWindow" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 227, - "startColumn": 1, - "charOffset": 7314, - "charLength": 118, - "snippet": { - "text": "\r\n private ErrorWindow? _errorWindow;\r\n private void ShowErrorWindow()\r\n {\r\n if(_errorWindow == null)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "cc47383ae3988625", - "equalIndicator/v1": "b280ace6b63b0359e6b29a0a457864723fdc6cade071c8a0614eeb29f403758a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'UI.ErrorWindow' coverage is below the threshold 50%", - "markdown": "Class `UI.ErrorWindow` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/ErrorWindow.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 24, - "startColumn": 22, - "charOffset": 959, - "charLength": 11, - "snippet": { - "text": "ErrorWindow" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 22, - "startColumn": 1, - "charOffset": 877, - "charLength": 132, - "snippet": { - "text": "/// Interaction logic for UserControl1.xaml\r\n/// \r\npublic partial class ErrorWindow : Window\r\n{\r\n public ErrorWindow()\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "99d4da0807752360", - "equalIndicator/v1": "b2cda19545fc5f5666da77294a6f15d2e2bdb7a7bbf659b5dfc651ba4a2e20fe" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetVersion' coverage is below the threshold 50%", - "markdown": "Method `GetVersion` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 128, - "startColumn": 37, - "charOffset": 4882, - "charLength": 10, - "snippet": { - "text": "GetVersion" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 126, - "startColumn": 1, - "charOffset": 4836, - "charLength": 106, - "snippet": { - "text": " };\r\n\r\n public static DarkSouls3Version GetVersion(Version v)\r\n {\r\n return v.Minor switch\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "2908bd316cb61b34", - "equalIndicator/v1": "b2f6065dd0afa6a14d33c959d85f938b7a61a416740cbe3c0c333ad81e3078d6" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'DarkSouls2.Data' coverage is below the threshold 50%", - "markdown": "Class `DarkSouls2.Data` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls2/Data.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 22, - "startColumn": 21, - "charOffset": 939, - "charLength": 4, - "snippet": { - "text": "Data" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 20, - "startColumn": 1, - "charOffset": 883, - "charLength": 153, - "snippet": { - "text": "namespace SoulMemory.DarkSouls2;\r\n\r\npublic static class Data\r\n{\r\n public struct Bonfire(WarpType warpType, int areaId, ushort bonfireId, string name)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f7b0f9179974b9f0", - "equalIndicator/v1": "b3111a8a8146a6d00b157412dd942b09d1baa2f8285561853779465045c13757" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetCurrentInventoryItems' coverage is below the threshold 50%", - "markdown": "Method `GetCurrentInventoryItems` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/ItemReader.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 25, - "startColumn": 32, - "charOffset": 983, - "charLength": 24, - "snippet": { - "text": "GetCurrentInventoryItems" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 23, - "startColumn": 1, - "charOffset": 915, - "charLength": 196, - "snippet": { - "text": "internal static class ItemReader\r\n{\r\n internal static List GetCurrentInventoryItems(byte[] data, int listCount, int itemCount, int keyCount)\r\n {\r\n var items = new List();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0421c4feecb8ffab", - "equalIndicator/v1": "b34745e9dbaaa79575cee9a206a60506a7c0c1cc20839252ecd5738ba78e2bd8" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetProcess' coverage is below the threshold 50%", - "markdown": "Method `GetProcess` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Process/ProcessWrapper.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 28, - "startColumn": 40, - "charOffset": 1114, - "charLength": 10, - "snippet": { - "text": "GetProcess" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 26, - "startColumn": 1, - "charOffset": 1021, - "charLength": 331, - "snippet": { - "text": "{\r\n private System.Diagnostics.Process? _process;\r\n public System.Diagnostics.Process? GetProcess() => _process;\r\n public bool Is64Bit() => _process?.Is64Bit() ?? false;\r\n public ProcessWrapperModule? GetMainModule() => _process?.MainModule == null ? null : ProcessWrapperModule.FromProcessModule(_process.MainModule);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "463db473bacc61a4", - "equalIndicator/v1": "b3603236d6629692da26216866ad42b0cfc570db51a918315b69137150096f9e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'Sekiro.Attribute' coverage is below the threshold 50%", - "markdown": "Class `Sekiro.Attribute` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splits/Sekiro/Attribute.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 24, - "startColumn": 14, - "charOffset": 991, - "charLength": 9, - "snippet": { - "text": "Attribute" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 22, - "startColumn": 1, - "charOffset": 943, - "charLength": 132, - "snippet": { - "text": "\r\n[XmlType(Namespace = \"Sekiro\")]\r\npublic class Attribute : ICustomNotifyPropertyChanged\r\n{\r\n [XmlElement(Namespace = \"Sekiro\")]\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "35226a3e977034b5", - "equalIndicator/v1": "b40418c6973b37af9d5c55772a54d08a62d89b904481f42036cc27a87327823c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_SelectedKnownFlag' coverage is below the threshold 50%", - "markdown": "Method `get_SelectedKnownFlag` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 313, - "startColumn": 9, - "charOffset": 12858, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 311, - "startColumn": 1, - "charOffset": 12807, - "charLength": 147, - "snippet": { - "text": " public Enum? SelectedKnownFlag\r\n {\r\n get => _selectedKnownFlag;\r\n set => this.SetField(ref _selectedKnownFlag, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e55da3725da0c2d8", - "equalIndicator/v1": "b420b3a4576b63986b03b4575a5c3a5a9b73bfbafb3e09b5ee47b1f9cc706945" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'TryRefresh' coverage is below the threshold 50%", - "markdown": "Method `TryRefresh` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls2/vanilla.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 36, - "startColumn": 36, - "charOffset": 1528, - "charLength": 10, - "snippet": { - "text": "TryRefresh" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 34, - "startColumn": 1, - "charOffset": 1444, - "charLength": 268, - "snippet": { - "text": " public Process? GetProcess() => _process;\r\n\r\n public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, \"darksoulsii\", InitPointers, ResetPointers);\r\n public int GetInGameTimeMilliseconds() => 0;\r\n private void ResetPointers()\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "8d55b482b04aeffd", - "equalIndicator/v1": "b4a3898dfb91c91e03ecdaa005b43219094ec257e59abd641c4472d6ced124d8" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'IsBlackscreenActive' coverage is below the threshold 50%", - "markdown": "Method `IsBlackscreenActive` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/EldenRing.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 328, - "startColumn": 17, - "charOffset": 11442, - "charLength": 19, - "snippet": { - "text": "IsBlackscreenActive" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 326, - "startColumn": 1, - "charOffset": 11413, - "charLength": 103, - "snippet": { - "text": " }\r\n \r\n public bool IsBlackscreenActive()\r\n {\r\n var screenState = GetScreenState();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7f1976aebc63eb27", - "equalIndicator/v1": "b4dfca4e298f17e1a96588337a77fbb018d223c361dfe55d7e09a46957eb1e2e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_FileName' coverage is below the threshold 50%", - "markdown": "Method `get_FileName` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Process/ProcessWrapperModule.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 25, - "startColumn": 30, - "charOffset": 1013, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 23, - "startColumn": 1, - "charOffset": 928, - "charLength": 198, - "snippet": { - "text": "{\r\n public string ModuleName { get; set; } = null!;\r\n public string FileName { get; set; } = null!;\r\n public IntPtr BaseAddress { get; set; }\r\n public int ModuleMemorySize { get; set; }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d7c9077af5eb93fe", - "equalIndicator/v1": "b5420e392874615151f4dad59c4f4cd0fb49d6b3a709513dbea8a7b24b75911a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'DarkSouls2.DarkSouls2ViewModel' coverage is below the threshold 50%", - "markdown": "Class `DarkSouls2.DarkSouls2ViewModel` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 30, - "startColumn": 14, - "charOffset": 1181, - "charLength": 19, - "snippet": { - "text": "DarkSouls2ViewModel" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 28, - "startColumn": 1, - "charOffset": 1127, - "charLength": 144, - "snippet": { - "text": "namespace SoulSplitter.UI.DarkSouls2;\r\n\r\npublic class DarkSouls2ViewModel : ICustomNotifyPropertyChanged\r\n{\r\n public bool StartAutomatically\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f15b6c55de0c3d6c", - "equalIndicator/v1": "b5626b68dac21bd8296666754c72787e2b2ce2cf07656c45944ff48b04021cd3" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ToString' coverage is below the threshold 50%", - "markdown": "Method `ToString` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Result.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 312, - "startColumn": 28, - "charOffset": 7159, - "charLength": 8, - "snippet": { - "text": "ToString" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 310, - "startColumn": 1, - "charOffset": 7123, - "charLength": 108, - "snippet": { - "text": " }\r\n\r\n public override string ToString()\r\n {\r\n return IsOk ? $\"Ok: {_ok}\" : $\"Err: {_err}\";\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f0b057f02d116f59", - "equalIndicator/v1": "b582b8303eb03ed4fef6bffecc446c1a8bed9bf3e09a4827b0f2b36adcfb2e5d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'Copy' coverage is below the threshold 50%", - "markdown": "Method `Copy` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 53, - "startColumn": 20, - "charOffset": 1613, - "charLength": 4, - "snippet": { - "text": "Copy" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 51, - "startColumn": 1, - "charOffset": 1590, - "charLength": 69, - "snippet": { - "text": "\r\n\r\n public Pointer Copy()\r\n {\r\n var p = new Pointer();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "6be7362839bd697d", - "equalIndicator/v1": "b59e81b66b92b31023ebe74047d1122578bbb036e235f57d1c9d163c287e62fe" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteByte' coverage is below the threshold 50%", - "markdown": "Method `WriteByte` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/IMemory.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 159, - "startColumn": 24, - "charOffset": 5208, - "charLength": 9, - "snippet": { - "text": "WriteByte" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 157, - "startColumn": 1, - "charOffset": 5176, - "charLength": 141, - "snippet": { - "text": " }\r\n\r\n public static void WriteByte(this IMemory memory, long? offset, byte value)\r\n {\r\n memory.WriteBytes(offset, [value]);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e48740d2ab973844", - "equalIndicator/v1": "b62c793b3fbebf800026f645d730464d5cd9af9a56a53d516d4c3497565dc03d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_FlagDescription' coverage is below the threshold 50%", - "markdown": "Method `get_FlagDescription` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 363, - "startColumn": 9, - "charOffset": 14176, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 361, - "startColumn": 1, - "charOffset": 14116, - "charLength": 152, - "snippet": { - "text": " public FlagDescription? FlagDescription\r\n {\r\n get => _flagDescription;\r\n set => this.SetField(ref _flagDescription, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e4bdd0501d174650", - "equalIndicator/v1": "b6549f08e66c7587105b6e6734ace2958269bed8d60ea5caf513eb3c4e50933a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_Area' coverage is below the threshold 50%", - "markdown": "Method `get_Area` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/EnumFlagViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 44, - "startColumn": 9, - "charOffset": 1455, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 42, - "startColumn": 1, - "charOffset": 1416, - "charLength": 109, - "snippet": { - "text": " public string Area\r\n {\r\n get => _area;\r\n set => this.SetField(ref _area, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "cf1a113276cc667f", - "equalIndicator/v1": "b691b3cff690cd8f4e399124cc1495c00081aadaf54422a53274b4b543b2aec8" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'OnReset' coverage is below the threshold 50%", - "markdown": "Method `OnReset` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/SekiroSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 63, - "startColumn": 18, - "charOffset": 2045, - "charLength": 7, - "snippet": { - "text": "OnReset" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 61, - "startColumn": 1, - "charOffset": 2019, - "charLength": 102, - "snippet": { - "text": " }\r\n\r\n private void OnReset(object sender, TimerPhase timerPhase)\r\n {\r\n ResetTimer();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "af9bd8d582a94a6c", - "equalIndicator/v1": "b696859cef6311e319318f455d29c1e54761299c7244133f728e05002383adfb" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetTestValue' coverage is below the threshold 50%", - "markdown": "Method `GetTestValue` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/DarkSouls1.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 95, - "startColumn": 19, - "charOffset": 4281, - "charLength": 12, - "snippet": { - "text": "GetTestValue" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 93, - "startColumn": 1, - "charOffset": 4250, - "charLength": 90, - "snippet": { - "text": "\r\n#if DEBUG\r\n public object GetTestValue() => _darkSouls1?.GetTestValue()!;\r\n#endif\r\n}\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d12c158b98eee6c6", - "equalIndicator/v1": "b7071fdaee1b6004c3677125db34bf617aa80bc3196cfcf43aa85e6acad4941a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ResetPointers' coverage is below the threshold 50%", - "markdown": "Method `ResetPointers` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls2/vanilla.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 38, - "startColumn": 18, - "charOffset": 1696, - "charLength": 13, - "snippet": { - "text": "ResetPointers" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 36, - "startColumn": 1, - "charOffset": 1493, - "charLength": 262, - "snippet": { - "text": " public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, \"darksoulsii\", InitPointers, ResetPointers);\r\n public int GetInGameTimeMilliseconds() => 0;\r\n private void ResetPointers()\r\n {\r\n _eventFlagManager.Clear();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "606cf3b444ab22de", - "equalIndicator/v1": "b721b9a8013a49acdae73af9cd99b0afe1aa2a8ced183903e25aae5e399ca11f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'Dispose' coverage is below the threshold 50%", - "markdown": "Method `Dispose` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/BaseSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 89, - "startColumn": 28, - "charOffset": 2869, - "charLength": 7, - "snippet": { - "text": "Dispose" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 87, - "startColumn": 1, - "charOffset": 2833, - "charLength": 91, - "snippet": { - "text": " }\r\n\r\n protected virtual void Dispose(bool disposing)\r\n {\r\n if (disposing)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "bac738546230bc50", - "equalIndicator/v1": "b748b37d7ca6bef2f8a7633761c93d52d6e2a78cf031710bad5d9b56cabfd8f0" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'RemoveSplit_OnClick' coverage is below the threshold 50%", - "markdown": "Method `RemoveSplit_OnClick` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 43, - "startColumn": 18, - "charOffset": 1421, - "charLength": 19, - "snippet": { - "text": "RemoveSplit_OnClick" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 41, - "startColumn": 1, - "charOffset": 1395, - "charLength": 135, - "snippet": { - "text": " }\r\n\r\n private void RemoveSplit_OnClick(object sender, RoutedEventArgs e)\r\n {\r\n GetEldenRingViewModel().RemoveSplit();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1b2b81436f4127e2", - "equalIndicator/v1": "b75e1133e2d3dac74133ffba170e7ef07ebfc3b773bb8834d8cee494c0ed5054" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ToString' coverage is below the threshold 50%", - "markdown": "Method `ToString` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splits/DarkSouls1/ItemState.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 37, - "startColumn": 28, - "charOffset": 1389, - "charLength": 8, - "snippet": { - "text": "ToString" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 35, - "startColumn": 1, - "charOffset": 1255, - "charLength": 185, - "snippet": { - "text": " private string ItemString => Item.AllItems.FirstOrDefault(i => i.ItemType == ItemType)?.Name ?? \"\";\r\n\r\n public override string ToString()\r\n {\r\n return $\"{ItemString}\";\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "51dbee8789d5403a", - "equalIndicator/v1": "b78ac968daeb9f630a8aa8a095d1bb612f5055cb652f87a5739f365ad6dbb384" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadAttribute' coverage is below the threshold 50%", - "markdown": "Method `ReadAttribute` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 178, - "startColumn": 16, - "charOffset": 6040, - "charLength": 13, - "snippet": { - "text": "ReadAttribute" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 176, - "startColumn": 1, - "charOffset": 5994, - "charLength": 158, - "snippet": { - "text": " #region Read attributes\r\n\r\n public int ReadAttribute(Attribute attribute)\r\n {\r\n if (IsPlayerLoaded() && _newMenuSystem.ReadInt32(0x88) != 3)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "403422d13740f12d", - "equalIndicator/v1": "b84e84f24bd9e1bf79459f6007209a32c920daaa087f483eec75ade9ae5d7c6b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_PointerTreeBuilder' coverage is below the threshold 50%", - "markdown": "Method `get_PointerTreeBuilder` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Process/ProcessHook.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 30, - "startColumn": 71, - "charOffset": 1340, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 28, - "startColumn": 1, - "charOffset": 1215, - "charLength": 315, - "snippet": { - "text": " public event Action Exited = null!;\r\n\r\n public PointerTreeBuilder.PointerTreeBuilder PointerTreeBuilder { get; set; } = new();\r\n\r\n #region Refresh =================================================================================================================================================\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5167934d336195be", - "equalIndicator/v1": "b8bb2ed24b174ea5c61d5a5ed3f9189c36ed4671a370ab349c3f830c2def10d9" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'Parameters.ParamData' coverage is below the threshold 50%", - "markdown": "Class `Parameters.ParamData` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/ParamData.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 22, - "startColumn": 21, - "charOffset": 939, - "charLength": 9, - "snippet": { - "text": "ParamData" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 20, - "startColumn": 1, - "charOffset": 883, - "charLength": 185, - "snippet": { - "text": "namespace SoulMemory.Parameters;\r\n\r\npublic static class ParamData\r\n{\r\n public static readonly ReadOnlyDictionary ParamByteSize = new(new Dictionary()\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ebe769fd109ac5e1", - "equalIndicator/v1": "b9f7ba533d6b1f97622cbb5cbf686ae3bbe034ff553e68a579315b7c4c62a53c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'InitPointers' coverage is below the threshold 50%", - "markdown": "Method `InitPointers` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls2/vanilla.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 63, - "startColumn": 37, - "charOffset": 2585, - "charLength": 12, - "snippet": { - "text": "InitPointers" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 61, - "startColumn": 1, - "charOffset": 2540, - "charLength": 80, - "snippet": { - "text": " }\r\n\r\n private ResultErr InitPointers()\r\n {\r\n try\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0fcca1db0b657363", - "equalIndicator/v1": "b9ff9217c069243c077e5feb258356253a0dc042b5f7d67d18c679d1ca8291e3" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'Append' coverage is below the threshold 50%", - "markdown": "Method `Append` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 145, - "startColumn": 20, - "charOffset": 3979, - "charLength": 6, - "snippet": { - "text": "Append" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 143, - "startColumn": 1, - "charOffset": 3930, - "charLength": 114, - "snippet": { - "text": " #region Append offsets\r\n\r\n public Pointer Append(params long[] offsets)\r\n {\r\n var copy = Copy();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3142267616c27a6e", - "equalIndicator/v1": "badd4b4b75447d8c34df24d3d144edd5e8034e6f6467ceec365677610f88583a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'Generic.BoolDescriptionViewModel' coverage is below the threshold 50%", - "markdown": "Class `Generic.BoolDescriptionViewModel` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/BoolDescriptionViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 21, - "startColumn": 14, - "charOffset": 890, - "charLength": 24, - "snippet": { - "text": "BoolDescriptionViewModel" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 19, - "startColumn": 1, - "charOffset": 839, - "charLength": 141, - "snippet": { - "text": "namespace SoulSplitter.UI.Generic;\r\n\r\npublic class BoolDescriptionViewModel : ICustomNotifyPropertyChanged\r\n{\r\n public string Description\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "aa952515a0581f51", - "equalIndicator/v1": "bb5e71385c301bcb9f0c00d062eee972a3845769c32a2550f05bd67334745680" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetEventFlagOffset' coverage is below the threshold 50%", - "markdown": "Method `GetEventFlagOffset` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 347, - "startColumn": 17, - "charOffset": 12105, - "charLength": 18, - "snippet": { - "text": "GetEventFlagOffset" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 345, - "startColumn": 1, - "charOffset": 12079, - "charLength": 140, - "snippet": { - "text": " };\r\n\r\n private int GetEventFlagOffset(uint eventFlagId, out uint mask)\r\n {\r\n string idString = eventFlagId.ToString(\"D8\");\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "843a768cf404f902", - "equalIndicator/v1": "bbba8602a0bed2f2ce0435ddf6cfcdf82a2193a60c00519671df980199610914" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'DarkSouls1.Ptde' coverage is below the threshold 50%", - "markdown": "Class `DarkSouls1.Ptde` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 47, - "startColumn": 14, - "charOffset": 2048, - "charLength": 4, - "snippet": { - "text": "Ptde" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 45, - "startColumn": 1, - "charOffset": 1999, - "charLength": 232, - "snippet": { - "text": "namespace SoulMemory.DarkSouls1;\r\n\r\npublic class Ptde : IDarkSouls1\r\n{\r\n #region Refresh/init/reset ================================================================================================================================\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "89347cfa299b1516", - "equalIndicator/v1": "bbd8f0c38688ebcf1310c4e1bfba3acd4094dbd9e509f83c843ad2a1b07d5a6b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Constructor 'Split' coverage is below the threshold 50%", - "markdown": "Constructor `Split` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splits/EldenRing/Split.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 25, - "startColumn": 12, - "charOffset": 965, - "charLength": 5, - "snippet": { - "text": "Split" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 23, - "startColumn": 1, - "charOffset": 929, - "charLength": 159, - "snippet": { - "text": "internal class Split\r\n{\r\n public Split(TimingType timingType, EldenRingSplitType eldenRingSplitType, object split)\r\n {\r\n TimingType = timingType;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "61f0f56c558cbca3", - "equalIndicator/v1": "bc1165e3a3a51feac4dbdc12dfcef491a93500e1ee4ce6313f38e300a349c297" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_SelectedBonfireState' coverage is below the threshold 50%", - "markdown": "Method `set_SelectedBonfireState` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 329, - "startColumn": 9, - "charOffset": 13307, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 327, - "startColumn": 1, - "charOffset": 13253, - "charLength": 159, - "snippet": { - "text": " {\r\n get => _selectedBonfireState;\r\n set => this.SetField(ref _selectedBonfireState, value);\r\n }\r\n private Enum? _selectedBonfireState;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f003892a6e2b95f7", - "equalIndicator/v1": "bc133193baed0031e1c4033d7caf38edc05b877fbd8d60648bbcd3b474218376" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_EnabledSplitType' coverage is below the threshold 50%", - "markdown": "Method `set_EnabledSplitType` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 75, - "startColumn": 9, - "charOffset": 2364, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 73, - "startColumn": 1, - "charOffset": 2314, - "charLength": 146, - "snippet": { - "text": " {\r\n get => _enabledSplitType;\r\n set => this.SetField(ref _enabledSplitType, value);\r\n }\r\n private bool _enabledSplitType;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0ad59249f6223613", - "equalIndicator/v1": "bc3dc653574a62e5042aa8268b8985e6f7504b0c1433778efb42657863ca4750" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_Position' coverage is below the threshold 50%", - "markdown": "Method `set_Position` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 357, - "startColumn": 9, - "charOffset": 14026, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 355, - "startColumn": 1, - "charOffset": 13984, - "charLength": 129, - "snippet": { - "text": " {\r\n get => _position;\r\n set => this.SetField(ref _position, value);\r\n }\r\n private VectorSize? _position;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4754b1563c0da4b2", - "equalIndicator/v1": "bc722898aece05ffd440612869a626daf06f1a0a3d6e0075361a8979d28307c8" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Constructor 'Result' coverage is below the threshold 50%", - "markdown": "Constructor `Result` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Result.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 236, - "startColumn": 13, - "charOffset": 5432, - "charLength": 6, - "snippet": { - "text": "Result" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 234, - "startColumn": 1, - "charOffset": 5411, - "charLength": 68, - "snippet": { - "text": " }\r\n\r\n private Result(TErr err)\r\n {\r\n IsOk = false;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "958f2ded9314da6a", - "equalIndicator/v1": "bcb2352b6e699e50ef61836ef668d8b35ea401c82708fb6fef959cbd8c0e15be" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteSByte' coverage is below the threshold 50%", - "markdown": "Method `WriteSByte` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 306, - "startColumn": 17, - "charOffset": 8018, - "charLength": 10, - "snippet": { - "text": "WriteSByte" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 304, - "startColumn": 1, - "charOffset": 7993, - "charLength": 111, - "snippet": { - "text": " }\r\n\r\n public void WriteSByte(long? offset, sbyte value)\r\n {\r\n var b = unchecked((byte)value);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4b36ccf2f1bda246", - "equalIndicator/v1": "bcb9d93b01af9aae05e41c7d8ea87f6fa55fb9b27082345a7c2445f7c203ae07" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'SoulMemory.Extensions' coverage is below the threshold 50%", - "markdown": "Class `SoulMemory.Extensions` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Extensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 26, - "startColumn": 21, - "charOffset": 996, - "charLength": 10, - "snippet": { - "text": "Extensions" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 24, - "startColumn": 1, - "charOffset": 951, - "charLength": 129, - "snippet": { - "text": "namespace SoulMemory;\r\n\r\npublic static class Extensions\r\n{\r\n public static bool TryParseEnum(this int value, out T result)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0aa2c84b71a52ab1", - "equalIndicator/v1": "bd08d70d5fc4c73a0568da639f2acf61b078f4e4e8b57aa1a7af7fb445250643" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'Splitters.BaseSplitter' coverage is below the threshold 50%", - "markdown": "Class `Splitters.BaseSplitter` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/BaseSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 24, - "startColumn": 23, - "charOffset": 950, - "charLength": 12, - "snippet": { - "text": "BaseSplitter" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 22, - "startColumn": 1, - "charOffset": 891, - "charLength": 124, - "snippet": { - "text": "namespace SoulSplitter.Splitters;\r\n\r\npublic abstract class BaseSplitter : ISplitter\r\n{\r\n protected readonly IGame _game;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1c756af8877c72ba", - "equalIndicator/v1": "bd92627adf31261fa92f64dbbce7fed1cee3a971bfc1c3bb7ff90a718319db52" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_NewSplitPositionEnabled' coverage is below the threshold 50%", - "markdown": "Method `set_NewSplitPositionEnabled` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 220, - "startColumn": 9, - "charOffset": 7927, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 218, - "startColumn": 1, - "charOffset": 7870, - "charLength": 167, - "snippet": { - "text": " {\r\n get => _newSplitPositionEnabled;\r\n set => this.SetField(ref _newSplitPositionEnabled, value);\r\n }\r\n private bool _newSplitPositionEnabled;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9030f9de6d987b04", - "equalIndicator/v1": "bda2502a7f8580c9a955863e9d71a6cc817e6038207dabdc9988414fbc5bf35f" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetBossKillCount' coverage is below the threshold 50%", - "markdown": "Method `GetBossKillCount` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls2/scholar.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 91, - "startColumn": 16, - "charOffset": 3354, - "charLength": 16, - "snippet": { - "text": "GetBossKillCount" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 89, - "startColumn": 1, - "charOffset": 3330, - "charLength": 124, - "snippet": { - "text": " }\r\n\r\n public int GetBossKillCount(BossType bossType)\r\n {\r\n return _bossCounters.ReadInt32((long)bossType);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "daef5e723f6921f1", - "equalIndicator/v1": "bda6524ff15c59004dfdd38a108b40c9b29a22460620eef84b20068478bf0e2e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_Name' coverage is below the threshold 50%", - "markdown": "Method `get_Name` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/ItemPickupViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 47, - "startColumn": 9, - "charOffset": 1469, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 45, - "startColumn": 1, - "charOffset": 1430, - "charLength": 109, - "snippet": { - "text": " public string Name\r\n {\r\n get => _name;\r\n set => this.SetField(ref _name, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e160e415304accd4", - "equalIndicator/v1": "bdb7f0e4d87123ea1337018230e1d1b83e627a58a9c0413852b689a4f99c48ad" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadInt16' coverage is below the threshold 50%", - "markdown": "Method `ReadInt16` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 223, - "startColumn": 18, - "charOffset": 5859, - "charLength": 9, - "snippet": { - "text": "ReadInt16" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 221, - "startColumn": 1, - "charOffset": 5833, - "charLength": 128, - "snippet": { - "text": " }\r\n\r\n public short ReadInt16(long? offset = null)\r\n {\r\n return BitConverter.ToInt16(ReadMemory(offset, 2), 0);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f82b2ed337e64c09", - "equalIndicator/v1": "bdcc822dab7993758ea21ce261b369e04f6b8bcf16b504dfbb8415b928669908" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadParam' coverage is below the threshold 50%", - "markdown": "Method `ReadParam` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/ParamReader.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 51, - "startColumn": 27, - "charOffset": 1836, - "charLength": 9, - "snippet": { - "text": "ReadParam" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 49, - "startColumn": 1, - "charOffset": 1801, - "charLength": 161, - "snippet": { - "text": " }\r\n\r\n public static List ReadParam(Pointer paramBasePointer) where T : BaseParam\r\n {\r\n var dataOffset = paramBasePointer.ReadUInt16(0x4);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "46847548a19a689e", - "equalIndicator/v1": "be9e510e1f702ebafc663f5897d32dc6161197dc694108ffe8311b3b4a437ffc" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'Dispose' coverage is below the threshold 50%", - "markdown": "Method `Dispose` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/SekiroSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 70, - "startColumn": 17, - "charOffset": 2232, - "charLength": 7, - "snippet": { - "text": "Dispose" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 68, - "startColumn": 1, - "charOffset": 2207, - "charLength": 66, - "snippet": { - "text": " }\r\n\r\n public void Dispose()\r\n {\r\n Dispose(true);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b7a66496b5e56de3", - "equalIndicator/v1": "bf0bf7a1529e0360b68e759261c84ddb121fc843149751b206b5e967c3e8fc6e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetSaveFileLocation' coverage is below the threshold 50%", - "markdown": "Method `GetSaveFileLocation` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 392, - "startColumn": 20, - "charOffset": 13622, - "charLength": 19, - "snippet": { - "text": "GetSaveFileLocation" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 390, - "startColumn": 1, - "charOffset": 13554, - "charLength": 160, - "snippet": { - "text": " /// \r\n /// \r\n public string? GetSaveFileLocation()\r\n {\r\n // values may be null if called before hook, in which\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "454ac8914993072e", - "equalIndicator/v1": "bf96c0f32e587202ba83d1e4929b9792a7268f9cd1878ff1551ac58a8ecac7cc" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ResolveOffsets' coverage is below the threshold 50%", - "markdown": "Method `ResolveOffsets` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 52, - "startColumn": 17, - "charOffset": 1735, - "charLength": 14, - "snippet": { - "text": "ResolveOffsets" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 50, - "startColumn": 1, - "charOffset": 1710, - "charLength": 173, - "snippet": { - "text": " }\r\n\r\n public long ResolveOffsets()\r\n {\r\n long currentAddress = AbsoluteOffset;//0 for standard pointers. Only has a value when coming from an absolute scan\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "2a18db250507f747", - "equalIndicator/v1": "bfa21bf32c220eb1ec4ca74a44fef8ed2769080ed1f5b45ffb38b40652e03c9a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_Y' coverage is below the threshold 50%", - "markdown": "Method `get_Y` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/PositionViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 62, - "startColumn": 9, - "charOffset": 1732, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 60, - "startColumn": 1, - "charOffset": 1697, - "charLength": 115, - "snippet": { - "text": " public float Y\r\n {\r\n get => Position.Y;\r\n set => this.SetField(ref Position.Y, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "2cdf8a382da8fca5", - "equalIndicator/v1": "c00d77d65f0d35f1050535b0343f60eb27210484ce0c23ad11e81e38090e596c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'InvokePropertyChanged' coverage is below the threshold 50%", - "markdown": "Method `InvokePropertyChanged` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/SplitViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 100, - "startColumn": 17, - "charOffset": 3100, - "charLength": 21, - "snippet": { - "text": "InvokePropertyChanged" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 98, - "startColumn": 1, - "charOffset": 3018, - "charLength": 216, - "snippet": { - "text": " public event PropertyChangedEventHandler? PropertyChanged;\r\n\r\n public void InvokePropertyChanged(string propertyName)\r\n {\r\n PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ca7dabd9a4d3c75d", - "equalIndicator/v1": "c06018ec166d9916a5679f88338b17a198330350c622233284d9eb87d9b28519" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'BlackscreenActive' coverage is below the threshold 50%", - "markdown": "Method `BlackscreenActive` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 144, - "startColumn": 17, - "charOffset": 5269, - "charLength": 17, - "snippet": { - "text": "BlackscreenActive" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 142, - "startColumn": 1, - "charOffset": 5244, - "charLength": 99, - "snippet": { - "text": " }\r\n\r\n public bool BlackscreenActive()\r\n {\r\n return _blackscreen.ReadInt32() != 0;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4ed9225113fd03aa", - "equalIndicator/v1": "c07c6ee4d3fa90df8df9308f5c2a4e8a47c6bec24ed2a6795dbef9246124106e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadUInt32' coverage is below the threshold 50%", - "markdown": "Method `ReadUInt32` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/IMemory.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 59, - "startColumn": 24, - "charOffset": 1850, - "charLength": 10, - "snippet": { - "text": "ReadUInt32" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 57, - "startColumn": 1, - "charOffset": 1750, - "charLength": 231, - "snippet": { - "text": " return BitConverter.ToInt32(memory.ReadBytes(offset, 4), 0);\r\n }\r\n public static uint ReadUInt32(this IMemory memory, long? offset = null)\r\n {\r\n return BitConverter.ToUInt32(memory.ReadBytes(offset, 4), 0);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "446ab32c9c9027b7", - "equalIndicator/v1": "c0b1d6852f812271419bc616f04b6a5e258ede7a00d9616e6f4b65811363bdf4" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'Pointer64' coverage is below the threshold 50%", - "markdown": "Method `Pointer64` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 27, - "startColumn": 27, - "charOffset": 996, - "charLength": 9, - "snippet": { - "text": "Pointer64" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 25, - "startColumn": 1, - "charOffset": 946, - "charLength": 147, - "snippet": { - "text": " #region Pointers\r\n\r\n public static Pointer Pointer64(this IMemory memory, params long[] offsets)\r\n {\r\n var sourceMemory = memory;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "97b4996333107d5f", - "equalIndicator/v1": "c0fff51a6bc9f915380b92157912b0a384ea89a150e6bf06ea1555d588a9dcd9" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetInGameTimeMilliseconds' coverage is below the threshold 50%", - "markdown": "Method `GetInGameTimeMilliseconds` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/DarkSouls1.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 36, - "startColumn": 16, - "charOffset": 1637, - "charLength": 25, - "snippet": { - "text": "GetInGameTimeMilliseconds" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 34, - "startColumn": 1, - "charOffset": 1456, - "charLength": 398, - "snippet": { - "text": " public bool IsPlayerLoaded() => _darkSouls1?.IsPlayerLoaded() ?? false;\r\n public Vector3f GetPosition() => _darkSouls1?.GetPosition() ?? new Vector3f(0,0,0);\r\n public int GetInGameTimeMilliseconds() => _darkSouls1?.GetInGameTimeMilliseconds() ?? 0;\r\n public int NgCount() => _darkSouls1?.NgCount() ?? 0;\r\n public int GetCurrentSaveSlot() => _darkSouls1?.GetCurrentSaveSlot() ?? -1;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0d799d7812ac0f31", - "equalIndicator/v1": "c12861cb58215b44e74e3e6be66adada37c6e1622b782a29aa49634c591f2ab1" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'OnStart' coverage is below the threshold 50%", - "markdown": "Method `OnStart` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls3Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 72, - "startColumn": 18, - "charOffset": 2229, - "charLength": 7, - "snippet": { - "text": "OnStart" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 70, - "startColumn": 1, - "charOffset": 2203, - "charLength": 92, - "snippet": { - "text": " }\r\n\r\n private void OnStart(object sender, EventArgs e)\r\n {\r\n StartTimer();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "31a3017e77aea235", - "equalIndicator/v1": "c1306131b8238a35152dcd97ae0abcb19c7512a20a9b244cc39e2ecbf750dee5" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ResetPointers' coverage is below the threshold 50%", - "markdown": "Method `ResetPointers` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 106, - "startColumn": 18, - "charOffset": 4436, - "charLength": 13, - "snippet": { - "text": "ResetPointers" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 104, - "startColumn": 1, - "charOffset": 4410, - "charLength": 80, - "snippet": { - "text": " }\r\n\r\n private void ResetPointers()\r\n {\r\n _gameDataMan.Clear();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f1058d684993a5e6", - "equalIndicator/v1": "c150a4621455231c53574c021b5a059cfb5016de1c2b70102c9478c4af257a3c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ClearFilter' coverage is below the threshold 50%", - "markdown": "Method `ClearFilter` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/FilteredComboBox.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 134, - "startColumn": 18, - "charOffset": 4100, - "charLength": 11, - "snippet": { - "text": "ClearFilter" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 132, - "startColumn": 1, - "charOffset": 4074, - "charLength": 87, - "snippet": { - "text": " }\r\n\r\n private void ClearFilter()\r\n {\r\n _currentFilter = string.Empty;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "22bb49573429b7e6", - "equalIndicator/v1": "c15a24ff3efc535a2201920d6166e2c3393b2f9f238ca2a4f8fb221b78eb8f38" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_FlagDescription' coverage is below the threshold 50%", - "markdown": "Method `set_FlagDescription` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 364, - "startColumn": 9, - "charOffset": 14210, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 362, - "startColumn": 1, - "charOffset": 14161, - "charLength": 155, - "snippet": { - "text": " {\r\n get => _flagDescription;\r\n set => this.SetField(ref _flagDescription, value);\r\n }\r\n private FlagDescription? _flagDescription;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f11199b23cbc3c2d", - "equalIndicator/v1": "c184983c3f90a8eb904d8f813d6a70e6258ec482e89498e9ebc6c9e1ec0f9672" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'TryParseEnum' coverage is below the threshold 50%", - "markdown": "Method `TryParseEnum` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Extensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 39, - "startColumn": 24, - "charOffset": 1306, - "charLength": 12, - "snippet": { - "text": "TryParseEnum" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 37, - "startColumn": 1, - "charOffset": 1274, - "charLength": 114, - "snippet": { - "text": " }\r\n\r\n public static bool TryParseEnum(this uint value, out T result)\r\n {\r\n result = default!;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f89fce5a2d965335", - "equalIndicator/v1": "c184e5e0b6f3472200e5aa0437227c0f6b003ded72f6af1bc3040ffc76de1338" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'Dispose' coverage is below the threshold 50%", - "markdown": "Method `Dispose` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/EldenRingSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 61, - "startColumn": 28, - "charOffset": 2006, - "charLength": 7, - "snippet": { - "text": "Dispose" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 59, - "startColumn": 1, - "charOffset": 1970, - "charLength": 91, - "snippet": { - "text": " }\r\n\r\n protected virtual void Dispose(bool disposing)\r\n {\r\n if (disposing)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f28b2bb2b51bd4a8", - "equalIndicator/v1": "c1e207cad7c60b7fea4f73758064fb9ada4ee49c671bff9ac18689c6e6fa8b2a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_SplitType' coverage is below the threshold 50%", - "markdown": "Method `get_SplitType` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/HierarchicalViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 61, - "startColumn": 9, - "charOffset": 2063, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 59, - "startColumn": 1, - "charOffset": 2006, - "charLength": 137, - "snippet": { - "text": " public DarkSouls2SplitType SplitType\r\n {\r\n get => _splitType;\r\n set => this.SetField(ref _splitType, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5fc92605ef0844a8", - "equalIndicator/v1": "c1fb2521ffca9777a7cde7c2a53805eaf9480c2745fced2c89bc3b8972642bf3" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_X' coverage is below the threshold 50%", - "markdown": "Method `set_X` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/PositionViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 57, - "startColumn": 9, - "charOffset": 1642, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 55, - "startColumn": 1, - "charOffset": 1599, - "charLength": 97, - "snippet": { - "text": " {\r\n get => Position.X;\r\n set => this.SetField(ref Position.X, value);\r\n }\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "2b3db67345c9c335", - "equalIndicator/v1": "c22d41e311d902f0a1c8e1a8db38b1cdfb2a0326ad091c9cf6d21b06383466c6" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_GamePosition' coverage is below the threshold 50%", - "markdown": "Method `set_GamePosition` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 246, - "startColumn": 9, - "charOffset": 10760, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 244, - "startColumn": 1, - "charOffset": 10677, - "charLength": 148, - "snippet": { - "text": " {\r\n get => (Vector3f)GetValue(GamePositionDependencyProperty);\r\n set => SetValue(GamePositionDependencyProperty, value);\r\n }\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "46f6e30e266a0c48", - "equalIndicator/v1": "c270f3c23acab4ce912e8b0e8a6972277c62728b36d050ba8d0f7a72cf3d454e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_AttributeType' coverage is below the threshold 50%", - "markdown": "Method `set_AttributeType` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splits/DarkSouls2/Attribute.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 30, - "startColumn": 9, - "charOffset": 1193, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 28, - "startColumn": 1, - "charOffset": 1146, - "charLength": 164, - "snippet": { - "text": " {\r\n get => _attributeType;\r\n set => this.SetField(ref _attributeType, value);\r\n }\r\n private SoulMemory.DarkSouls2.Attribute _attributeType;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "54b194e42cf5eaf3", - "equalIndicator/v1": "c2aa27daff5e3224755fd077ef8cb620af08a27ba4478d7d1847c8d08ae40591" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ResetInventoryIndices' coverage is below the threshold 50%", - "markdown": "Method `ResetInventoryIndices` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/DarkSouls1.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 39, - "startColumn": 17, - "charOffset": 1871, - "charLength": 21, - "snippet": { - "text": "ResetInventoryIndices" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 37, - "startColumn": 1, - "charOffset": 1716, - "charLength": 379, - "snippet": { - "text": " public int NgCount() => _darkSouls1?.NgCount() ?? 0;\r\n public int GetCurrentSaveSlot() => _darkSouls1?.GetCurrentSaveSlot() ?? -1;\r\n public void ResetInventoryIndices() => _darkSouls1?.ResetInventoryIndices();\r\n public List GetInventory() => _darkSouls1?.GetInventory() ?? [];\r\n public bool AreCreditsRolling() => _darkSouls1?.AreCreditsRolling() ?? false;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d74380e0d205ab4e", - "equalIndicator/v1": "c33fcf12947ac2543ff959b33d58b0a5ec707634528e57527d251c0d075e1a15" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ResetPointers' coverage is below the threshold 50%", - "markdown": "Method `ResetPointers` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 93, - "startColumn": 18, - "charOffset": 3780, - "charLength": 13, - "snippet": { - "text": "ResetPointers" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 91, - "startColumn": 1, - "charOffset": 3617, - "charLength": 213, - "snippet": { - "text": " public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, \"darksoulsremastered\", InitPointers, ResetPointers);\r\n\r\n private void ResetPointers()\r\n {\r\n _gameMan.Clear();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "525e7af951bb3311", - "equalIndicator/v1": "c35b54c4aa5150a391194c7fb5e37fdf90029c25f324528154a6078d23a62c6a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'FromException' coverage is below the threshold 50%", - "markdown": "Method `FromException` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/RefreshError.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 24, - "startColumn": 43, - "charOffset": 941, - "charLength": 13, - "snippet": { - "text": "FromException" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 22, - "startColumn": 1, - "charOffset": 869, - "charLength": 192, - "snippet": { - "text": "public class RefreshError\r\n{\r\n public static ResultErr FromException(Exception e)\r\n {\r\n return Result.Err(new RefreshError(RefreshErrorReason.UnknownException, e));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5456b3474946c7e1", - "equalIndicator/v1": "c3665ec81ecaeee6c0e13f442e4826766c463528523af3d7b47ebb456f7e09c2" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'UpdateTimer' coverage is below the threshold 50%", - "markdown": "Method `UpdateTimer` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/SekiroSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 149, - "startColumn": 18, - "charOffset": 4146, - "charLength": 11, - "snippet": { - "text": "UpdateTimer" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 147, - "startColumn": 1, - "charOffset": 4120, - "charLength": 77, - "snippet": { - "text": " }\r\n\r\n private void UpdateTimer()\r\n {\r\n switch (_timerState)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "96d502d44c142c41", - "equalIndicator/v1": "c39b97269321e4d08c9ba9df122af51177f7af51af459f0e91ab9968ca1bc2fe" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get__Signature' coverage is below the threshold 50%", - "markdown": "Method `get__Signature` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Native/Structs/Image/IMAGE_NT_HEADERS64.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 38, - "startColumn": 9, - "charOffset": 1276, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 36, - "startColumn": 1, - "charOffset": 1230, - "charLength": 130, - "snippet": { - "text": " private string _Signature\r\n {\r\n get { return Encoding.ASCII.GetString(BitConverter.GetBytes(Signature)); }\r\n }\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "26b517d36de0ad3b", - "equalIndicator/v1": "c3ca4cfbb23e2459e9f23fcd159f5af5c103d18095b3c463d376b84f80543a7c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_Exception' coverage is below the threshold 50%", - "markdown": "Method `get_Exception` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/RefreshError.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 48, - "startColumn": 35, - "charOffset": 1576, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 46, - "startColumn": 1, - "charOffset": 1450, - "charLength": 174, - "snippet": { - "text": " public RefreshErrorReason Reason { get; }\r\n public string Message { get; } = null!;\r\n public Exception? Exception { get; }\r\n\r\n public override string ToString()\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0c77da517becfc39", - "equalIndicator/v1": "c3cae237dcdbabe6ff45dedc0ea1a872bd6bb418c9f2479b717a6fdac5084843" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteWeaponDescription' coverage is below the threshold 50%", - "markdown": "Method `WriteWeaponDescription` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/DarkSouls1.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 45, - "startColumn": 17, - "charOffset": 2454, - "charLength": 22, - "snippet": { - "text": "WriteWeaponDescription" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 43, - "startColumn": 1, - "charOffset": 2220, - "charLength": 595, - "snippet": { - "text": " public string? GetSaveFileLocation() => _darkSouls1?.GetSaveFileLocation();\r\n public int GetSaveFileGameTimeMilliseconds(string path, int slot) => _darkSouls1?.GetSaveFileGameTimeMilliseconds(path, slot) ?? 0;\r\n public void WriteWeaponDescription(uint weaponId, string description) => _darkSouls1?.WriteWeaponDescription(weaponId, description);\r\n public void WriteItemLotParam(int rowId, Action accessor) => _darkSouls1?.WriteItemLotParam(rowId, accessor);\r\n public void SetLoadingScreenItem(int index, uint item) => _darkSouls1?.SetLoadingScreenItem(index, item);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "693bb109b8a078c3", - "equalIndicator/v1": "c3fb18bf3919758cbb4023799f856eb4de1fb088b1e1a37e01d7c824e04941a5" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetErr' coverage is below the threshold 50%", - "markdown": "Method `GetErr` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Result.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 291, - "startColumn": 17, - "charOffset": 6792, - "charLength": 6, - "snippet": { - "text": "GetErr" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 289, - "startColumn": 1, - "charOffset": 6767, - "charLength": 60, - "snippet": { - "text": " }\r\n\r\n public TErr GetErr()\r\n {\r\n if (IsOk)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7015014545df0ec2", - "equalIndicator/v1": "c466cb36be946739dc03110edd79d39c95b13380b05bee3a626290c96ffc0b52" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'Memory.PointerAppender' coverage is below the threshold 50%", - "markdown": "Class `Memory.PointerAppender` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/PointerAppender.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 19, - "startColumn": 14, - "charOffset": 852, - "charLength": 15, - "snippet": { - "text": "PointerAppender" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 17, - "startColumn": 1, - "charOffset": 807, - "charLength": 112, - "snippet": { - "text": "namespace SoulMemory.Memory;\r\n\r\npublic class PointerAppender\r\n{\r\n private readonly PointerNode _pointerNode;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "fec9ad967ff897fa", - "equalIndicator/v1": "c467da549a68bd918696ed5fc358b3d312c833c4377d89933247a9322bfdee79" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'TryRefresh' coverage is below the threshold 50%", - "markdown": "Method `TryRefresh` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls2/DarkSouls2.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 37, - "startColumn": 36, - "charOffset": 1725, - "charLength": 10, - "snippet": { - "text": "TryRefresh" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 35, - "startColumn": 1, - "charOffset": 1604, - "charLength": 154, - "snippet": { - "text": " public TreeBuilder GetTreeBuilder() => _darkSouls2?.GetTreeBuilder() ?? null!;\r\n\r\n public ResultErr TryRefresh()\r\n {\r\n try\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "08b19ac84c7f41ec", - "equalIndicator/v1": "c486deb83378b8b3b184367a5252b396cf8c308700a3dc16b39c555f7fcd4604" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'InvokePropertyChanged' coverage is below the threshold 50%", - "markdown": "Method `InvokePropertyChanged` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splits/DarkSouls2/Attribute.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 50, - "startColumn": 17, - "charOffset": 1675, - "charLength": 21, - "snippet": { - "text": "InvokePropertyChanged" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 48, - "startColumn": 1, - "charOffset": 1593, - "charLength": 216, - "snippet": { - "text": " public event PropertyChangedEventHandler? PropertyChanged;\r\n\r\n public void InvokePropertyChanged(string propertyName)\r\n {\r\n PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a4aee4bec1a0f578", - "equalIndicator/v1": "c5860fc6805d161095dc071f2b0e2dfc972eed7c9aa9a77aa85fde5467a404c8" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ToHexString' coverage is below the threshold 50%", - "markdown": "Method `ToHexString` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/Extensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 25, - "startColumn": 26, - "charOffset": 962, - "charLength": 11, - "snippet": { - "text": "ToHexString" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 23, - "startColumn": 1, - "charOffset": 902, - "charLength": 162, - "snippet": { - "text": "public static class Extensions\r\n{\r\n public static string ToHexString(this byte[] bytes)\r\n {\r\n return BitConverter.ToString(bytes).Replace(\"-\", \" \");\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "226d6c4d8af31740", - "equalIndicator/v1": "c59eb8f4f2ff62e3b7dccdb052fef19fec5efa371b93c781044468c0fb56b389" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_SplitsViewModel' coverage is below the threshold 50%", - "markdown": "Method `get_SplitsViewModel` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 225, - "startColumn": 9, - "charOffset": 9658, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 223, - "startColumn": 1, - "charOffset": 9599, - "charLength": 203, - "snippet": { - "text": " public SplitsViewModel SplitsViewModel\r\n {\r\n get => (SplitsViewModel)GetValue(SplitsViewModelDependencyProperty);\r\n set => SetValue(SplitsViewModelDependencyProperty, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e78032011c61fa3e", - "equalIndicator/v1": "c5ecd23fcae6a7e4a67f6ce564bd99d8f0f858ad6b4ce03550b658b6d8afd780" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_Id' coverage is below the threshold 50%", - "markdown": "Method `get_Id` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/BaseParam.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 95, - "startColumn": 21, - "charOffset": 3682, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 93, - "startColumn": 1, - "charOffset": 3653, - "charLength": 85, - "snippet": { - "text": " }\r\n\r\n public int Id { get; set; }\r\n\r\n public readonly Pointer BasePointer;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "564e2462c9724a54", - "equalIndicator/v1": "c623e961ff495335ed05eb463600016be0be99858c4498a1f05e6e0110ffa1ec" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'StartAutoSplitting' coverage is below the threshold 50%", - "markdown": "Method `StartAutoSplitting` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls3Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 197, - "startColumn": 17, - "charOffset": 5887, - "charLength": 18, - "snippet": { - "text": "StartAutoSplitting" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 195, - "startColumn": 1, - "charOffset": 5862, - "charLength": 74, - "snippet": { - "text": " }\r\n\r\n public void StartAutoSplitting()\r\n {\r\n _splits = (\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "586eacfda7e90e6c", - "equalIndicator/v1": "c6b4831227c91f8e5ba5b18dab2a0ccc1af4a74743f8e7eb497d9e403a46dc37" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetEventFlagOffset' coverage is below the threshold 50%", - "markdown": "Method `GetEventFlagOffset` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 288, - "startColumn": 17, - "charOffset": 10165, - "charLength": 18, - "snippet": { - "text": "GetEventFlagOffset" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 286, - "startColumn": 1, - "charOffset": 10139, - "charLength": 140, - "snippet": { - "text": " };\r\n\r\n private int GetEventFlagOffset(uint eventFlagId, out uint mask)\r\n {\r\n string idString = eventFlagId.ToString(\"D8\");\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "2b61a30ffa795566", - "equalIndicator/v1": "c6eda751f9098d8d5967229625899a762f49b94fdc92f6fb1377002c3c9f6b4e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ResolveSplitTiming' coverage is below the threshold 50%", - "markdown": "Method `ResolveSplitTiming` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/ArmoredCore6Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 102, - "startColumn": 18, - "charOffset": 3369, - "charLength": 18, - "snippet": { - "text": "ResolveSplitTiming" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 100, - "startColumn": 1, - "charOffset": 3343, - "charLength": 92, - "snippet": { - "text": " }\r\n\r\n private void ResolveSplitTiming(Split s)\r\n {\r\n switch (s.TimingType)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5724406474f1ce97", - "equalIndicator/v1": "c79af958bc6b0171d11456bbf53dc1d5c002606f4fc1b88c9d5dea99f5a24ad6" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'OpenFlagTrackerWindow' coverage is below the threshold 50%", - "markdown": "Method `OpenFlagTrackerWindow` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/MainViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 319, - "startColumn": 18, - "charOffset": 10018, - "charLength": 21, - "snippet": { - "text": "OpenFlagTrackerWindow" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 317, - "startColumn": 1, - "charOffset": 9947, - "charLength": 143, - "snippet": { - "text": "\r\n private FlagTrackerWindow? _flagTrackerWindow;\r\n private void OpenFlagTrackerWindow()\r\n {\r\n if (_flagTrackerWindow == null)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f5f2ff92f261674d", - "equalIndicator/v1": "c7d49d34a3d9cee457d82bfbcfca88882eb49c558b7562c3ddfaec3fbf0b741f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Constructor 'ItemViewModel' coverage is below the threshold 50%", - "markdown": "Constructor `ItemViewModel` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 470, - "startColumn": 12, - "charOffset": 14886, - "charLength": 13, - "snippet": { - "text": "ItemViewModel" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 468, - "startColumn": 1, - "charOffset": 14866, - "charLength": 68, - "snippet": { - "text": " }\r\n\r\n public ItemViewModel(Item i)\r\n {\r\n Item = i;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d189ba6d618d0a7a", - "equalIndicator/v1": "c80f0ef19aecd25c9dee917c80f57561d84681e9bfcb45c8b8c3b8cea05d4915" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetEventFlagAddress' coverage is below the threshold 50%", - "markdown": "Method `GetEventFlagAddress` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Sekiro/Sekiro.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 260, - "startColumn": 31, - "charOffset": 9535, - "charLength": 19, - "snippet": { - "text": "GetEventFlagAddress" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 258, - "startColumn": 1, - "charOffset": 9496, - "charLength": 158, - "snippet": { - "text": " }\r\n\r\n private ResultOk GetEventFlagAddress(uint eventFlagId)\r\n {\r\n var eventFlagIdDiv10000000 = (int)(eventFlagId / 10000000) % 10;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "2b368efc3a7e7d9f", - "equalIndicator/v1": "c810e4bbf038ebfe573e1c8686d3f9be71c3b78ff89788ef2d2472b5f060649b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_SelectedSplit' coverage is below the threshold 50%", - "markdown": "Method `set_SelectedSplit` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 390, - "startColumn": 9, - "charOffset": 12155, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 388, - "startColumn": 1, - "charOffset": 12108, - "charLength": 117, - "snippet": { - "text": " {\r\n get => _selectedSplit;\r\n set\r\n {\r\n this.SetField(ref _selectedSplit, value);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "639093de77b723f2", - "equalIndicator/v1": "c83748f593223ba74974500c8a5f4ca8ef5141c0e01ae3fe512efe94a08f9665" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'AreCreditsRolling' coverage is below the threshold 50%", - "markdown": "Method `AreCreditsRolling` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/DarkSouls1.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 41, - "startColumn": 17, - "charOffset": 2029, - "charLength": 17, - "snippet": { - "text": "AreCreditsRolling" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 39, - "startColumn": 1, - "charOffset": 1855, - "charLength": 445, - "snippet": { - "text": " public void ResetInventoryIndices() => _darkSouls1?.ResetInventoryIndices();\r\n public List GetInventory() => _darkSouls1?.GetInventory() ?? [];\r\n public bool AreCreditsRolling() => _darkSouls1?.AreCreditsRolling() ?? false;\r\n public BonfireState GetBonfireState(Bonfire bonfire) => _darkSouls1?.GetBonfireState(bonfire) ?? BonfireState.Unknown;\r\n public string? GetSaveFileLocation() => _darkSouls1?.GetSaveFileLocation();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7127ae982cffc1e5", - "equalIndicator/v1": "c86539c3db3150112351cf78a580a0d64daaa786a322e74fc3402dfb446ebadb" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Constructor 'Result' coverage is below the threshold 50%", - "markdown": "Constructor `Result` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Result.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 222, - "startColumn": 15, - "charOffset": 5194, - "charLength": 6, - "snippet": { - "text": "Result" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 220, - "startColumn": 1, - "charOffset": 5145, - "charLength": 114, - "snippet": { - "text": " public bool IsErr => !IsOk;\r\n\r\n protected Result(bool isOk, TOk ok, TErr err)\r\n {\r\n IsOk = isOk;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9cff3cd24c855738", - "equalIndicator/v1": "c8fbb8c8831e0f00173ad9ca108934f93f3609703a4b5058e0f56fcdb24860d9" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'Enumerate' coverage is below the threshold 50%", - "markdown": "Method `Enumerate` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Extensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 63, - "startColumn": 40, - "charOffset": 1988, - "charLength": 9, - "snippet": { - "text": "Enumerate" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 61, - "startColumn": 1, - "charOffset": 1940, - "charLength": 128, - "snippet": { - "text": " }\r\n\r\n public static IEnumerable Enumerate(this XmlNodeList list)\r\n {\r\n foreach (XmlNode node in list)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "815bfa1457af85a4", - "equalIndicator/v1": "c924816d6f31ef3459777df614e1f2751fbb6e4184a75b88661660c67059f986" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'Log' coverage is below the threshold 50%", - "markdown": "Method `Log` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Logger.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 75, - "startColumn": 24, - "charOffset": 2561, - "charLength": 3, - "snippet": { - "text": "Log" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 73, - "startColumn": 1, - "charOffset": 2529, - "charLength": 169, - "snippet": { - "text": " }\r\n\r\n public static void Log(string message, Exception e) => Log(message + \" \" + e.ToString());\r\n public static void Log(Exception e) => Log(e.ToString());\r\n}\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4bf9999b50911817", - "equalIndicator/v1": "c99025a46ed57943c1d089a5ef85fc8c92b788b23b07d9905c16860b963c240b" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_ItemLowRange' coverage is below the threshold 50%", - "markdown": "Method `get_ItemLowRange` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/TextTableEntry.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 21, - "startColumn": 32, - "charOffset": 906, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 19, - "startColumn": 1, - "charOffset": 843, - "charLength": 162, - "snippet": { - "text": "public class TextTableEntry\r\n{\r\n public uint ItemLowRange { get; set; }\r\n public uint DataOffset { get; set; }\r\n public uint ItemHighRange { get; set; }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4aef78f98bb8b0ae", - "equalIndicator/v1": "c9a27d503e6b1b0a166ca74551bcfde6f3080a6a52008a38b269bb6abc92b7c2" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'AreCreditsRolling' coverage is below the threshold 50%", - "markdown": "Method `AreCreditsRolling` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 228, - "startColumn": 17, - "charOffset": 8592, - "charLength": 17, - "snippet": { - "text": "AreCreditsRolling" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 226, - "startColumn": 1, - "charOffset": 8567, - "charLength": 99, - "snippet": { - "text": " }\r\n\r\n public bool AreCreditsRolling()\r\n {\r\n var first = _menuMan.ReadInt32(0xb4);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5cecf3364cfdb513", - "equalIndicator/v1": "ca38387aac6158496afe5252752275fc91146bf301aa22178a173cf61776d1d9" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'InvokePropertyChanged' coverage is below the threshold 50%", - "markdown": "Method `InvokePropertyChanged` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/HierarchicalViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 73, - "startColumn": 17, - "charOffset": 2411, - "charLength": 21, - "snippet": { - "text": "InvokePropertyChanged" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 71, - "startColumn": 1, - "charOffset": 2329, - "charLength": 216, - "snippet": { - "text": " public event PropertyChangedEventHandler? PropertyChanged;\r\n\r\n public void InvokePropertyChanged(string propertyName)\r\n {\r\n PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "04d66ca66181ccc9", - "equalIndicator/v1": "ca980b382f2014b451769148a2663f3920b5a2c696fa750e5ab03559c810b263" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadEventFlag' coverage is below the threshold 50%", - "markdown": "Method `ReadEventFlag` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls2/vanilla.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 111, - "startColumn": 17, - "charOffset": 3736, - "charLength": 13, - "snippet": { - "text": "ReadEventFlag" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 109, - "startColumn": 1, - "charOffset": 3711, - "charLength": 121, - "snippet": { - "text": " }\r\n\r\n public bool ReadEventFlag(uint eventFlagId)\r\n {\r\n var eventCategory = eventFlagId / 10000 * 0x89;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a3b01ebf87e04357", - "equalIndicator/v1": "caff8cf7ec2fb37df49f0b06806941166df4eb6b848c5ea1e4b1f6addebdf236" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadByte' coverage is below the threshold 50%", - "markdown": "Method `ReadByte` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/IMemory.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 73, - "startColumn": 24, - "charOffset": 2337, - "charLength": 8, - "snippet": { - "text": "ReadByte" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 71, - "startColumn": 1, - "charOffset": 2235, - "charLength": 208, - "snippet": { - "text": " return BitConverter.ToBoolean(memory.ReadBytes(offset, 1), 0);\r\n }\r\n public static byte ReadByte(this IMemory memory, long? offset = null)\r\n {\r\n return memory.ReadBytes(offset, 1)[0];\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3106ec22faaa7398", - "equalIndicator/v1": "cbb612e3e768d1a62aaeae98675cfdad77889cbf42b2714fcdab4e878a573060" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'SetBitBlt' coverage is below the threshold 50%", - "markdown": "Method `SetBitBlt` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/SoulComponent.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 107, - "startColumn": 18, - "charOffset": 3656, - "charLength": 9, - "snippet": { - "text": "SetBitBlt" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 105, - "startColumn": 1, - "charOffset": 3630, - "charLength": 100, - "snippet": { - "text": " }\r\n\r\n private void SetBitBlt()\r\n {\r\n if (_game is SoulMemory.Sekiro.Sekiro sekiro)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "edc506099ca0d13e", - "equalIndicator/v1": "cc13541ab5400b17e1aad46950715a04a8bf198b2b43d32d4810991bdeb31276" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteParamField' coverage is below the threshold 50%", - "markdown": "Method `WriteParamField` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/BaseParam.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 103, - "startColumn": 20, - "charOffset": 3987, - "charLength": 15, - "snippet": { - "text": "WriteParamField" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 101, - "startColumn": 1, - "charOffset": 3922, - "charLength": 224, - "snippet": { - "text": " public bool WriteEnabled { get; set; }\r\n\r\n protected void WriteParamField(ref T field, T value, [CallerMemberName] string? propertyName = null)\r\n {\r\n if (EqualityComparer.Default.Equals(field, value))\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "6cce9090661afd28", - "equalIndicator/v1": "cc8b2f8693fd38a4a4e4c33d2eda63b76116e0419176a634d0a3284d6747e421" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_NewSplitEnabledSplitType' coverage is below the threshold 50%", - "markdown": "Method `get_NewSplitEnabledSplitType` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/BaseViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 91, - "startColumn": 9, - "charOffset": 3029, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 89, - "startColumn": 1, - "charOffset": 2972, - "charLength": 167, - "snippet": { - "text": " public bool NewSplitEnabledSplitType\r\n {\r\n get => _newSplitEnabledSplitType;\r\n set => this.SetField(ref _newSplitEnabledSplitType, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "8109f0b662c0e1d9", - "equalIndicator/v1": "cc9e7e9ba12b20e05884130bdf71c97667a7e6e2b626783540d8b0e1b7a0f635" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_Boss' coverage is below the threshold 50%", - "markdown": "Method `get_Boss` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/BossViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 41, - "startColumn": 9, - "charOffset": 1315, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 39, - "startColumn": 1, - "charOffset": 1278, - "charLength": 107, - "snippet": { - "text": " public Boss Boss\r\n {\r\n get => _boss;\r\n set => this.SetField(ref _boss, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "8a5dd5cd6d8f35e3", - "equalIndicator/v1": "cd859cf732bfdf3c58ca4e5ec36d5a1e4176613652da9b18ef708f03c75e269c" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'Err' coverage is below the threshold 50%", - "markdown": "Method `Err` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Result.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 35, - "startColumn": 35, - "charOffset": 1376, - "charLength": 3, - "snippet": { - "text": "Err" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 33, - "startColumn": 1, - "charOffset": 1333, - "charLength": 102, - "snippet": { - "text": " }\r\n\r\n public static ContainerErr Err(T t)\r\n {\r\n return new ContainerErr(t);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f8319da5b5a6f1bb", - "equalIndicator/v1": "cda905bf35ca5b1569865d3132920a0d4f57c3b8f21b275020511af4b628c00a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'DarkSouls2.HierarchicalTimingTypeViewModel' coverage is below the threshold 50%", - "markdown": "Class `DarkSouls2.HierarchicalTimingTypeViewModel` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/HierarchicalViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 29, - "startColumn": 14, - "charOffset": 1168, - "charLength": 31, - "snippet": { - "text": "HierarchicalTimingTypeViewModel" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 27, - "startColumn": 1, - "charOffset": 1116, - "charLength": 152, - "snippet": { - "text": "\r\n[XmlType(Namespace = \"DarkSouls2\")]\r\npublic class HierarchicalTimingTypeViewModel : ICustomNotifyPropertyChanged\r\n{\r\n public TimingType TimingType\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ce7f12059e60d2f3", - "equalIndicator/v1": "cdb811bff8a77520b342a52f94479093f92dc688005fdc906a5a0b5f2c308d84" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ResetAllAchievements' coverage is below the threshold 50%", - "markdown": "Method `ResetAllAchievements` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/DropMod.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 76, - "startColumn": 17, - "charOffset": 2661, - "charLength": 20, - "snippet": { - "text": "ResetAllAchievements" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 74, - "startColumn": 1, - "charOffset": 2636, - "charLength": 116, - "snippet": { - "text": " }\r\n\r\n public void ResetAllAchievements()\r\n {\r\n foreach (SwitchableDrop temp in _switchableWeapons)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b590914f5786e9ce", - "equalIndicator/v1": "cec0c2b06dc1121d955651a3505b6c7e4e085cc63cb8b4192ec1b52676c2e4b8" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_Split' coverage is below the threshold 50%", - "markdown": "Method `get_Split` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/SplitViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 91, - "startColumn": 9, - "charOffset": 2863, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 89, - "startColumn": 1, - "charOffset": 2823, - "charLength": 112, - "snippet": { - "text": " public object Split\r\n {\r\n get => _split;\r\n set => this.SetField(ref _split, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "04fe329539a76d86", - "equalIndicator/v1": "cef93f6f30d96c185d5f126b970df715389978df87f848d759152fc29f0415ab" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_NewSplitPosition' coverage is below the threshold 50%", - "markdown": "Method `set_NewSplitPosition` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 220, - "startColumn": 9, - "charOffset": 6191, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 218, - "startColumn": 1, - "charOffset": 6141, - "charLength": 123, - "snippet": { - "text": " {\r\n get => _newSplitPosition;\r\n set\r\n {\r\n this.SetField(ref _newSplitPosition, value);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "6a8845c145489e3d", - "equalIndicator/v1": "cf34a1be073cb820a7a5d714bb9e02549978ef35d6fc3653ae06529c2044b57c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_NewSplitType' coverage is below the threshold 50%", - "markdown": "Method `get_NewSplitType` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 156, - "startColumn": 9, - "charOffset": 5950, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 154, - "startColumn": 1, - "charOffset": 5889, - "charLength": 107, - "snippet": { - "text": " public DarkSouls2SplitType? NewSplitType\r\n {\r\n get => _newSplitType;\r\n set\r\n {\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d6d25fb2ecfa7d93", - "equalIndicator/v1": "cf69f15be7c8bd4fe3770bea919254a59fd218ce547b3e1c4df17a077a974f45" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetSaveFileLocation' coverage is below the threshold 50%", - "markdown": "Method `GetSaveFileLocation` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 336, - "startColumn": 19, - "charOffset": 11691, - "charLength": 19, - "snippet": { - "text": "GetSaveFileLocation" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 334, - "startColumn": 1, - "charOffset": 11624, - "charLength": 189, - "snippet": { - "text": " /// \r\n /// \r\n public string GetSaveFileLocation()\r\n {\r\n var myDocuments = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "bc407525ca252894", - "equalIndicator/v1": "cff3a289436bddf5c625fb58574a021ec165c31c592b8ae82c7d06ad6f07def7" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ScanAbsolute' coverage is below the threshold 50%", - "markdown": "Method `ScanAbsolute` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerTreeBuilder.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 45, - "startColumn": 28, - "charOffset": 1694, - "charLength": 12, - "snippet": { - "text": "ScanAbsolute" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 43, - "startColumn": 1, - "charOffset": 1658, - "charLength": 134, - "snippet": { - "text": " }\r\n\r\n public PointerAppender ScanAbsolute(string name, string pattern, long offset)\r\n {\r\n var node = new PointerNode\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "fe84049c0e96903b", - "equalIndicator/v1": "cff7c0720be0d21890954b6da1162c4665520b9e543f093cff9c253e38cc0964" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'Parameters.ParamReader' coverage is below the threshold 50%", - "markdown": "Class `Parameters.ParamReader` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/ParamReader.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 26, - "startColumn": 21, - "charOffset": 1031, - "charLength": 11, - "snippet": { - "text": "ParamReader" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 24, - "startColumn": 1, - "charOffset": 975, - "charLength": 150, - "snippet": { - "text": "namespace SoulMemory.Parameters;\r\n\r\npublic static class ParamReader\r\n{\r\n public static List GetTextTables(Pointer textBasePointer)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "2090fcf1110b0368", - "equalIndicator/v1": "d01a07b5692006a1b0af5d74d78bb00de413bc933c644e376117075cf81dcf51" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ToString' coverage is below the threshold 50%", - "markdown": "Method `ToString` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Result.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 148, - "startColumn": 28, - "charOffset": 3626, - "charLength": 8, - "snippet": { - "text": "ToString" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 146, - "startColumn": 1, - "charOffset": 3590, - "charLength": 101, - "snippet": { - "text": " }\r\n\r\n public override string ToString()\r\n {\r\n return IsOk ? $\"Ok\" : $\"Err: {_err}\";\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ce1bed71ad4c400b", - "equalIndicator/v1": "d069bf16acb5902ab73f461b05a0896734bceab5e9008b7eb43fa39ba08ec54b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'RemoveSplitFunc' coverage is below the threshold 50%", - "markdown": "Method `RemoveSplitFunc` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 139, - "startColumn": 18, - "charOffset": 4980, - "charLength": 15, - "snippet": { - "text": "RemoveSplitFunc" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 137, - "startColumn": 1, - "charOffset": 4871, - "charLength": 197, - "snippet": { - "text": "\r\n private bool CanRemoveSplit(object? param) => SplitsViewModel.SelectedSplit != null;\r\n private void RemoveSplitFunc(object? parameter) => RemoveSplit.Execute(parameter);\r\n\r\n #endregion\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5eb14a94a7e9e87c", - "equalIndicator/v1": "d08d43cfc29dd611170a47b8bb6442a0a959e1db4ca5247ee24a813db2c411cc" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadEventFlag' coverage is below the threshold 50%", - "markdown": "Method `ReadEventFlag` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 371, - "startColumn": 17, - "charOffset": 13037, - "charLength": 13, - "snippet": { - "text": "ReadEventFlag" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 369, - "startColumn": 1, - "charOffset": 13012, - "charLength": 134, - "snippet": { - "text": " }\r\n\r\n public bool ReadEventFlag(uint eventFlagId)\r\n {\r\n int offset = GetEventFlagOffset(eventFlagId, out uint mask);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a8efda18cacb90db", - "equalIndicator/v1": "d0a3ae4683c2487dc4dfa9ec95b34ae97503b071cb264c26990ac7f373c10ea5" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_Item' coverage is below the threshold 50%", - "markdown": "Method `get_Item` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 481, - "startColumn": 9, - "charOffset": 15091, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 479, - "startColumn": 1, - "charOffset": 15054, - "charLength": 107, - "snippet": { - "text": " public Item Item\r\n {\r\n get => _item;\r\n set => this.SetField(ref _item, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0c069e1e9d6f3e62", - "equalIndicator/v1": "d0e3be339e7e379d4a0ea97c2f577ef65d558eb7cf7473bb2fd5c44aaff169ab" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_TimingType' coverage is below the threshold 50%", - "markdown": "Method `set_TimingType` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/SplitViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 32, - "startColumn": 9, - "charOffset": 1223, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 30, - "startColumn": 1, - "charOffset": 1179, - "charLength": 134, - "snippet": { - "text": " {\r\n get => _timingType;\r\n set => this.SetField(ref _timingType, value);\r\n }\r\n private TimingType _timingType;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "2e0362b997a31cf2", - "equalIndicator/v1": "d13f8e8f3a0b63dd4d98977e8e627d321bd472b577d5bc027ac466087391b62f" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Constructor 'BaseSplitter' coverage is below the threshold 50%", - "markdown": "Constructor `BaseSplitter` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/BaseSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 34, - "startColumn": 15, - "charOffset": 1288, - "charLength": 12, - "snippet": { - "text": "BaseSplitter" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 32, - "startColumn": 1, - "charOffset": 1270, - "charLength": 106, - "snippet": { - "text": "\r\n\r\n protected BaseSplitter(LiveSplitState state, IGame game)\r\n {\r\n _liveSplitState = state;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "62a48a38a4f76a73", - "equalIndicator/v1": "d173ddfb411bb26575425e9928b7105ced352b94a2669112f98776d288cac792" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteFloat' coverage is below the threshold 50%", - "markdown": "Method `WriteFloat` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 317, - "startColumn": 17, - "charOffset": 8274, - "charLength": 10, - "snippet": { - "text": "WriteFloat" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 315, - "startColumn": 1, - "charOffset": 8249, - "charLength": 134, - "snippet": { - "text": " }\r\n\r\n public void WriteFloat(float value) => WriteFloat(null, value);\r\n\r\n public void WriteFloat(long? offset, float value)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "79f1b46555709837", - "equalIndicator/v1": "d190518f7ad9f8b35c361dfe7015a458257050d017ddc830651c5ba346e2bb03" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'CanAddSplit' coverage is below the threshold 50%", - "markdown": "Method `CanAddSplit` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/ViewModels/Games/ArmoredCore6ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 31, - "startColumn": 18, - "charOffset": 1205, - "charLength": 11, - "snippet": { - "text": "CanAddSplit" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 29, - "startColumn": 1, - "charOffset": 1179, - "charLength": 93, - "snippet": { - "text": " }\r\n\r\n private bool CanAddSplit(object? param)\r\n {\r\n if (param is FlatSplit)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "44570612ba1902cb", - "equalIndicator/v1": "d1a2ba8ec02278afcdbb18566afb40de20e876a002b237911a22a3bd005ef2a4" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteEventFlag' coverage is below the threshold 50%", - "markdown": "Method `WriteEventFlag` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 121, - "startColumn": 17, - "charOffset": 4444, - "charLength": 14, - "snippet": { - "text": "WriteEventFlag" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 119, - "startColumn": 1, - "charOffset": 4282, - "charLength": 284, - "snippet": { - "text": " #region Read event flag ==================================================================================================================\r\n\r\n public void WriteEventFlag(uint eventFlagId, bool value)\r\n {\r\n var result = GetEventFlagAddress(eventFlagId, out int mask);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9e903e4d677553d8", - "equalIndicator/v1": "d1ee783c0b537ce13e4bd66898491ef421b62128f91f7e3ebce109731e0091a2" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadFloat' coverage is below the threshold 50%", - "markdown": "Method `ReadFloat` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/IMemory.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 94, - "startColumn": 25, - "charOffset": 3017, - "charLength": 9, - "snippet": { - "text": "ReadFloat" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 92, - "startColumn": 1, - "charOffset": 2984, - "charLength": 163, - "snippet": { - "text": " }\r\n\r\n public static float ReadFloat(this IMemory memory, long? offset = null)\r\n {\r\n return BitConverter.ToSingle(memory.ReadBytes(offset, 4), 0);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "dbd02c737e7e4ecf", - "equalIndicator/v1": "d1fe34930624d1b0fdba08c29e429463bae935c8e102dee137624e8c83c13277" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetProcess' coverage is below the threshold 50%", - "markdown": "Method `GetProcess` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 94, - "startColumn": 21, - "charOffset": 3525, - "charLength": 10, - "snippet": { - "text": "GetProcess" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 92, - "startColumn": 1, - "charOffset": 3496, - "charLength": 140, - "snippet": { - "text": " }\r\n\r\n public Process? GetProcess() => _armoredCore6.ProcessWrapper.GetProcess();\r\n\r\n private ResultErr InjectMods()\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4c79069853ff0d0d", - "equalIndicator/v1": "d254f5605dd037f321ac675d68654d0973a622b9654f26a45a6d1edae6fb1f51" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'SoulMemory.UnwrapException' coverage is below the threshold 50%", - "markdown": "Class `SoulMemory.UnwrapException` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Result.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 351, - "startColumn": 14, - "charOffset": 8183, - "charLength": 15, - "snippet": { - "text": "UnwrapException" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 349, - "startColumn": 1, - "charOffset": 8138, - "charLength": 100, - "snippet": { - "text": "/// \r\n[Serializable]\r\npublic class UnwrapException(string message) : Exception(message);\r\n" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "2a5551402b7503dc", - "equalIndicator/v1": "d29d7c8ad2bf98e19daf7f9148406cf35d355b8c466ab0f9dbffb33886097d00" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'UpdateDropMod' coverage is below the threshold 50%", - "markdown": "Method `UpdateDropMod` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls1Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 373, - "startColumn": 18, - "charOffset": 12793, - "charLength": 13, - "snippet": { - "text": "UpdateDropMod" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 371, - "startColumn": 1, - "charOffset": 12753, - "charLength": 112, - "snippet": { - "text": "\r\n #region Dropmod\r\n private void UpdateDropMod()\r\n {\r\n var process = _darkSouls1.GetProcess();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "273f71266651034a", - "equalIndicator/v1": "d2e379bf8c5f8940b39c38b2b903337f9ce32331aa9b8e35f5555035d35ba669" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ToString' coverage is below the threshold 50%", - "markdown": "Method `ToString` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/BossViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 34, - "startColumn": 28, - "charOffset": 1228, - "charLength": 8, - "snippet": { - "text": "ToString" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 32, - "startColumn": 1, - "charOffset": 1192, - "charLength": 76, - "snippet": { - "text": " }\r\n\r\n public override string ToString()\r\n {\r\n return Name;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "8a5b0b8b73d1103e", - "equalIndicator/v1": "d2e807b2315d554e5dc64363c720fbe68fa92794d37f72092200cb0b929422e9" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'OnStart' coverage is below the threshold 50%", - "markdown": "Method `OnStart` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/SekiroSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 56, - "startColumn": 18, - "charOffset": 1867, - "charLength": 7, - "snippet": { - "text": "OnStart" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 54, - "startColumn": 1, - "charOffset": 1834, - "charLength": 99, - "snippet": { - "text": " #region \r\n\r\n private void OnStart(object sender, EventArgs e)\r\n {\r\n StartTimer();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9763ee4cc4879aae", - "equalIndicator/v1": "d3132e19712916ab862def695ecf75153b6b1071ea4cae91ef79c05e459d63b7" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetVersion' coverage is below the threshold 50%", - "markdown": "Method `GetVersion` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/VersionAttribute.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 24, - "startColumn": 20, - "charOffset": 977, - "charLength": 10, - "snippet": { - "text": "GetVersion" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 22, - "startColumn": 1, - "charOffset": 908, - "charLength": 103, - "snippet": { - "text": "{\r\n public string Version { get; } = version;\r\n public Version GetVersion() => new(Version);\r\n}\r\n" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b13669d90c21a345", - "equalIndicator/v1": "d3216b60a273820928065309f2b121f11713aa7c8859772ffa944da60d98fe34" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_NewSplitItem' coverage is below the threshold 50%", - "markdown": "Method `get_NewSplitItem` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 199, - "startColumn": 9, - "charOffset": 5668, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 197, - "startColumn": 1, - "charOffset": 5622, - "charLength": 92, - "snippet": { - "text": " public Item? NewSplitItem\r\n {\r\n get => _newSplitItem;\r\n set\r\n {\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "dac6a904da8b3a54", - "equalIndicator/v1": "d40daee8e0e0bae00bbdf958e4e5bc793ba458d5276745eca0a5c49f34ad6429" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_Region' coverage is below the threshold 50%", - "markdown": "Method `get_Region` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/PositionViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 43, - "startColumn": 9, - "charOffset": 1358, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 41, - "startColumn": 1, - "charOffset": 1319, - "charLength": 129, - "snippet": { - "text": " public byte Region\r\n {\r\n get => Position.Region;\r\n set => this.SetField(ref Position.Region, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e13c94e9288e6fb9", - "equalIndicator/v1": "d45a70fd97c0a4704f11a0893145e98f055ef061249e9eaf17a3a6e2aac2c943" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_isValid' coverage is below the threshold 50%", - "markdown": "Method `get_isValid` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Native/Structs/Image/IMAGE_DOS_HEADER.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 54, - "startColumn": 9, - "charOffset": 2367, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 52, - "startColumn": 1, - "charOffset": 2327, - "charLength": 82, - "snippet": { - "text": " public bool isValid\r\n {\r\n get { return _e_magic == \"MZ\"; }\r\n }\r\n}" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "48b8b24ccc124b66", - "equalIndicator/v1": "d47c20335318c3936f82a267e95ec7d766c81b2d05a76c4a82fa4c5e9a7c505f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ResetAutoSplitting' coverage is below the threshold 50%", - "markdown": "Method `ResetAutoSplitting` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/EldenRingSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 226, - "startColumn": 17, - "charOffset": 7452, - "charLength": 18, - "snippet": { - "text": "ResetAutoSplitting" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 224, - "startColumn": 1, - "charOffset": 7395, - "charLength": 111, - "snippet": { - "text": " private List _splits = [];\r\n\r\n public void ResetAutoSplitting()\r\n {\r\n _splits.Clear();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "92e3ca6c44c93737", - "equalIndicator/v1": "d4a10f27a56d61d1315e5284e7cfda1a3c6a0884ef907dadf73f3a5392841e00" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'InitBkh' coverage is below the threshold 50%", - "markdown": "Method `InitBkh` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/DropMod.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 24, - "startColumn": 17, - "charOffset": 964, - "charLength": 7, - "snippet": { - "text": "InitBkh" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 22, - "startColumn": 1, - "charOffset": 900, - "charLength": 200, - "snippet": { - "text": "public class DropMod(IDarkSouls1 darkSouls)\r\n{\r\n public void InitBkh()\r\n {\r\n darkSouls.WriteWeaponDescription(1105000, \"Dropmod!\\n\\nAffected:\\nBlack Knight Halberd\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\");\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a50ff71945c7faf3", - "equalIndicator/v1": "d533067fbd4843705f973381759877ee70b2829dad6e5f3d08757c7ec05dbdf1" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_Z' coverage is below the threshold 50%", - "markdown": "Method `set_Z` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/PositionViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 69, - "startColumn": 9, - "charOffset": 1878, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 67, - "startColumn": 1, - "charOffset": 1835, - "charLength": 97, - "snippet": { - "text": " {\r\n get => Position.Z;\r\n set => this.SetField(ref Position.Z, value);\r\n }\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "fa10a48f66cce034", - "equalIndicator/v1": "d54ddcf769ae55de23b8187333c64310a54cc06f2d99a671d6a495aa7892f866" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_NewSplitGrace' coverage is below the threshold 50%", - "markdown": "Method `set_NewSplitGrace` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 160, - "startColumn": 9, - "charOffset": 4747, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 158, - "startColumn": 1, - "charOffset": 4700, - "charLength": 117, - "snippet": { - "text": " {\r\n get => _newSplitGrace;\r\n set\r\n {\r\n this.SetField(ref _newSplitGrace, value);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4e530bf34350b99d", - "equalIndicator/v1": "d5775e7ef261d666393800ab98b7130703908abecb5b99d4796c752a7870c47a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_Block' coverage is below the threshold 50%", - "markdown": "Method `set_Block` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/PositionViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 38, - "startColumn": 9, - "charOffset": 1260, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 36, - "startColumn": 1, - "charOffset": 1213, - "charLength": 105, - "snippet": { - "text": " {\r\n get => Position.Block;\r\n set => this.SetField(ref Position.Block, value);\r\n }\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "be0a862f228de959", - "equalIndicator/v1": "d5e04a05adb906fa8d5ebdd103bd368c6d4be470b3b2df639642bd8279a15cf1" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetCurrentSaveSlot' coverage is below the threshold 50%", - "markdown": "Method `GetCurrentSaveSlot` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/DarkSouls1.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 38, - "startColumn": 16, - "charOffset": 1789, - "charLength": 18, - "snippet": { - "text": "GetCurrentSaveSlot" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 36, - "startColumn": 1, - "charOffset": 1622, - "charLength": 390, - "snippet": { - "text": " public int GetInGameTimeMilliseconds() => _darkSouls1?.GetInGameTimeMilliseconds() ?? 0;\r\n public int NgCount() => _darkSouls1?.NgCount() ?? 0;\r\n public int GetCurrentSaveSlot() => _darkSouls1?.GetCurrentSaveSlot() ?? -1;\r\n public void ResetInventoryIndices() => _darkSouls1?.ResetInventoryIndices();\r\n public List GetInventory() => _darkSouls1?.GetInventory() ?? [];\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3ccc656ecd36297e", - "equalIndicator/v1": "d6eebc45e04fe24b23d1b335105f4b9e5ac25a5bed41cbe688d5f9bbe8334b63" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_NewSplitFlagEnabled' coverage is below the threshold 50%", - "markdown": "Method `get_NewSplitFlagEnabled` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 243, - "startColumn": 9, - "charOffset": 8569, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 241, - "startColumn": 1, - "charOffset": 8517, - "charLength": 152, - "snippet": { - "text": " public bool NewSplitFlagEnabled\r\n {\r\n get => _newSplitFlagEnabled;\r\n set => this.SetField(ref _newSplitFlagEnabled, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d1cf0b9cab9a95ac", - "equalIndicator/v1": "d700efc8d7d3b8430a3c4ed50e38d8382e6871489a6dbd557e5c705087c59119" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Constructor 'ArmoredCore6' coverage is below the threshold 50%", - "markdown": "Constructor `ArmoredCore6` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 29, - "startColumn": 12, - "charOffset": 1112, - "charLength": 12, - "snippet": { - "text": "ArmoredCore6" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 27, - "startColumn": 1, - "charOffset": 1045, - "charLength": 194, - "snippet": { - "text": " private readonly IProcessHook _armoredCore6;\r\n \r\n public ArmoredCore6(IProcessHook? processHook = null)\r\n {\r\n _armoredCore6 = processHook ?? new ProcessHook(\"armoredcore6\");\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "8cbd5c60db43a8e3", - "equalIndicator/v1": "d711234e9d08d3092d549eb18e8ee999d2cf25a952e3e42c75efde7f7951e8dc" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_Id' coverage is below the threshold 50%", - "markdown": "Method `set_Id` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 511, - "startColumn": 9, - "charOffset": 15728, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 509, - "startColumn": 1, - "charOffset": 15692, - "charLength": 104, - "snippet": { - "text": " {\r\n get => _id;\r\n set => this.SetField(ref _id, value);\r\n }\r\n private uint _id;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "113e9c9295c70735", - "equalIndicator/v1": "d72c88d2eca9ff9defd4ead3db7cf23e98f16343fe680272a12ebb17bafb3dfe" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'LoadDefuseOutput' coverage is below the threshold 50%", - "markdown": "Method `LoadDefuseOutput` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 471, - "startColumn": 20, - "charOffset": 16421, - "charLength": 16, - "snippet": { - "text": "LoadDefuseOutput" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 469, - "startColumn": 1, - "charOffset": 16276, - "charLength": 215, - "snippet": { - "text": " /// out of https://defuse.ca/online-x86-assembler.htm \r\n /// byte code\r\n private byte[] LoadDefuseOutput(string lines)\r\n {\r\n List bytes = [];\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b35591612e11f689", - "equalIndicator/v1": "d7ec58021b3c6b564b744ffbda7cc50ebd6612f6abb61a6f0a590e86d15bcb94" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_Name' coverage is below the threshold 50%", - "markdown": "Method `get_Name` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/GraceViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 55, - "startColumn": 9, - "charOffset": 1609, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 53, - "startColumn": 1, - "charOffset": 1570, - "charLength": 109, - "snippet": { - "text": " public string Name\r\n {\r\n get => _name;\r\n set => this.SetField(ref _name, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "dc34abe68b4a05d1", - "equalIndicator/v1": "d81192381b188c857ee856cf1e7f64030a0acc131b4b68feb03766a544a79208" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'TryScanAbsolute' coverage is below the threshold 50%", - "markdown": "Method `TryScanAbsolute` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 140, - "startColumn": 24, - "charOffset": 5689, - "charLength": 15, - "snippet": { - "text": "TryScanAbsolute" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 138, - "startColumn": 1, - "charOffset": 5489, - "charLength": 323, - "snippet": { - "text": " /// Scan a previously created buffer of bytes for a given pattern, then interpret the data as assembly, where the target address is an absolute address\r\n /// \r\n public static bool TryScanAbsolute(this byte[] bytes, long baseAddress, PointerNode pointerNode, out long result)\r\n {\r\n result = 0;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9e0f698aab50e5f0", - "equalIndicator/v1": "d8992076065804f8f686d532280f3664e0720495b5d4cd37b2d2879c73af4917" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ConvertBack' coverage is below the threshold 50%", - "markdown": "Method `ConvertBack` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Converters/ColorToBrushConverter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 36, - "startColumn": 19, - "charOffset": 1326, - "charLength": 11, - "snippet": { - "text": "ConvertBack" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 34, - "startColumn": 1, - "charOffset": 1299, - "charLength": 164, - "snippet": { - "text": " }\r\n\r\n public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)\r\n {\r\n throw new NotImplementedException();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5fbc561e15a42e8f", - "equalIndicator/v1": "d8f77ca9f408bd771f40588f7f813c139a9b0b4b0e6897d3ad7ede52322cf597" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'UpdateSplitter' coverage is below the threshold 50%", - "markdown": "Method `UpdateSplitter` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/SoulComponent.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 134, - "startColumn": 37, - "charOffset": 4292, - "charLength": 14, - "snippet": { - "text": "UpdateSplitter" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 132, - "startColumn": 1, - "charOffset": 4220, - "charLength": 208, - "snippet": { - "text": "\r\n private Game? _selectedGame;\r\n private ResultErr UpdateSplitter(MainViewModel mainViewModel, LiveSplitState state)\r\n {\r\n //Detect game change, initialize the correct splitter\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "eb63a09e8c57645a", - "equalIndicator/v1": "d968692542625c63b76316a6fc082785eb6f5bb214db34996d2e2b921eabacb2" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_NewSplitTimingType' coverage is below the threshold 50%", - "markdown": "Method `set_NewSplitTimingType` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 63, - "startColumn": 9, - "charOffset": 2060, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 61, - "startColumn": 1, - "charOffset": 2008, - "charLength": 127, - "snippet": { - "text": " {\r\n get => _newSplitTimingType;\r\n set\r\n {\r\n this.SetField(ref _newSplitTimingType, value);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0f1e07976a79691c", - "equalIndicator/v1": "d9721dc4a7c5838de2cedd7ec885533f0a3a1b31c3868ff5394f118af28620c7" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_Bonfires' coverage is below the threshold 50%", - "markdown": "Method `get_Bonfires` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 215, - "startColumn": 9, - "charOffset": 9127, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 213, - "startColumn": 1, - "charOffset": 9045, - "charLength": 242, - "snippet": { - "text": " public ObservableCollection> Bonfires\r\n {\r\n get => (ObservableCollection>)GetValue(BonfiresDependencyProperty);\r\n set => SetValue(BonfiresDependencyProperty, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "488cce64276a514d", - "equalIndicator/v1": "da0aef42a59e8b36dea5a2108380f2c186da2ae063c1117f81ff574a3c491c9e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ResolveSplitTiming' coverage is below the threshold 50%", - "markdown": "Method `ResolveSplitTiming` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls2Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 243, - "startColumn": 18, - "charOffset": 7738, - "charLength": 18, - "snippet": { - "text": "ResolveSplitTiming" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 241, - "startColumn": 1, - "charOffset": 7712, - "charLength": 92, - "snippet": { - "text": " }\r\n\r\n private void ResolveSplitTiming(Split s)\r\n {\r\n switch (s.TimingType)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "427e0a20b6a1f909", - "equalIndicator/v1": "da1585047b4f6a88710c62e8f157b17b61086ae387991139836e7dbba398d000" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ResetTimer' coverage is below the threshold 50%", - "markdown": "Method `ResetTimer` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/SekiroSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 142, - "startColumn": 18, - "charOffset": 3995, - "charLength": 10, - "snippet": { - "text": "ResetTimer" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 140, - "startColumn": 1, - "charOffset": 3969, - "charLength": 94, - "snippet": { - "text": " }\r\n\r\n private void ResetTimer()\r\n {\r\n _timerState = TimerState.WaitForStart;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e3aa1c390f73ebcb", - "equalIndicator/v1": "da7fbd2e04dd1f3d3257e3276f702319b8ceae8de937d1a0cb966958889be40d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetPosition' coverage is below the threshold 50%", - "markdown": "Method `GetPosition` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 234, - "startColumn": 21, - "charOffset": 8391, - "charLength": 11, - "snippet": { - "text": "GetPosition" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 232, - "startColumn": 1, - "charOffset": 8285, - "charLength": 280, - "snippet": { - "text": " public int GetCurrentSaveSlot() => _gameMan.ReadInt32(_currentSaveSlotOffset);\r\n\r\n public Vector3f GetPosition() => new(_playerPos.ReadFloat(0x10), _playerPos.ReadFloat(0x14), _playerPos.ReadFloat(0x18));\r\n\r\n public int GetPlayerHealth() => _playerIns.ReadInt32(0x3e8);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "baa1eb810ba5a40c", - "equalIndicator/v1": "daa13aa68aa559831dae75429eb8c0a6d51eb18b4a96b4f8a2d7c7617afa5947" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_TimingType' coverage is below the threshold 50%", - "markdown": "Method `get_TimingType` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/HierarchicalViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 33, - "startColumn": 9, - "charOffset": 1284, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 31, - "startColumn": 1, - "charOffset": 1235, - "charLength": 131, - "snippet": { - "text": " public TimingType TimingType\r\n {\r\n get => _timingType;\r\n set => this.SetField(ref _timingType, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "bd8a10ccdb57300b", - "equalIndicator/v1": "db05e15d93527641676d8e8078773dfbb4414e462cc323dba60c79fd95db3f9c" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_NewSplitType' coverage is below the threshold 50%", - "markdown": "Method `set_NewSplitType` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 157, - "startColumn": 9, - "charOffset": 5981, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 155, - "startColumn": 1, - "charOffset": 5935, - "charLength": 107, - "snippet": { - "text": " {\r\n get => _newSplitType;\r\n set\r\n {\r\n NewSplitPositionEnabled = false;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9daf57bc943ea5b9", - "equalIndicator/v1": "db73f192aea9312d81b4fe92e6f647f6309c6d25b8011b659a8af123c5ac2b98" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_Name' coverage is below the threshold 50%", - "markdown": "Method `set_Name` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 504, - "startColumn": 9, - "charOffset": 15587, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 502, - "startColumn": 1, - "charOffset": 15549, - "charLength": 120, - "snippet": { - "text": " {\r\n get => _name;\r\n set => this.SetField(ref _name, value);\r\n }\r\n private string _name = null!;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "bd0f921947c2abd4", - "equalIndicator/v1": "dc35b0d64ab25deb06fe27c03b4d21e5c536756489aa7aef277db1d8ee6a1439" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_VisiblePositionSplit' coverage is below the threshold 50%", - "markdown": "Method `set_VisiblePositionSplit` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 232, - "startColumn": 9, - "charOffset": 6503, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 230, - "startColumn": 1, - "charOffset": 6449, - "charLength": 158, - "snippet": { - "text": " {\r\n get => _visiblePositionSplit;\r\n set => this.SetField(ref _visiblePositionSplit, value);\r\n }\r\n private bool _visiblePositionSplit;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1a9a4e2853818549", - "equalIndicator/v1": "dc37dcb7280ccfddee624dc6e1e37e3dc59ab261c7569846d320e466dbe0933a" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'AddSplit' coverage is below the threshold 50%", - "markdown": "Method `AddSplit` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 49, - "startColumn": 17, - "charOffset": 1844, - "charLength": 8, - "snippet": { - "text": "AddSplit" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 47, - "startColumn": 1, - "charOffset": 1654, - "charLength": 251, - "snippet": { - "text": "\r\n #region add/remove splits ============================================================================================================================================\r\n public void AddSplit()\r\n {\r\n if (NewSplitTimingType == null ||\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "6410f14aa06a5f40", - "equalIndicator/v1": "dc53bcbca3cf8b428fb8fe074f4b64070cdaea6e5095d607a97af55645e06320" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'IsBlackscreenActive' coverage is below the threshold 50%", - "markdown": "Method `IsBlackscreenActive` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Sekiro/Sekiro.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 214, - "startColumn": 17, - "charOffset": 7947, - "charLength": 19, - "snippet": { - "text": "IsBlackscreenActive" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 212, - "startColumn": 1, - "charOffset": 7922, - "charLength": 94, - "snippet": { - "text": " }\r\n\r\n public bool IsBlackscreenActive()\r\n {\r\n //0x2dc best candidate so far.\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "51ca87572c701152", - "equalIndicator/v1": "dc707e8a43c4edb510245bb032f6002d3c5b7cbda3503270b53f9ab29e425c14" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Constructor 'ResultErr' coverage is below the threshold 50%", - "markdown": "Constructor `ResultErr` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Result.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 110, - "startColumn": 13, - "charOffset": 2834, - "charLength": 9, - "snippet": { - "text": "ResultErr" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 108, - "startColumn": 1, - "charOffset": 2813, - "charLength": 71, - "snippet": { - "text": " }\r\n\r\n private ResultErr(TErr err)\r\n {\r\n IsOk = false;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "30186185320bc2e8", - "equalIndicator/v1": "dcb69b12e04f89c417d19ecfb480c5feb47f3c553c59b27a51e54521a727aee8" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'RemoveSplit_OnClick' coverage is below the threshold 50%", - "markdown": "Method `RemoveSplit_OnClick` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2Control.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 49, - "startColumn": 18, - "charOffset": 1665, - "charLength": 19, - "snippet": { - "text": "RemoveSplit_OnClick" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 47, - "startColumn": 1, - "charOffset": 1639, - "charLength": 132, - "snippet": { - "text": " }\r\n\r\n private void RemoveSplit_OnClick(object sender, RoutedEventArgs e)\r\n {\r\n _darkSouls2ViewModel.RemoveSplit();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "8e540b82378defb9", - "equalIndicator/v1": "dcb861abd7b8ea2cac40326fc2cfff7a76b34f5b0e594294fdfca6ec425923f7" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetBitBlt' coverage is below the threshold 50%", - "markdown": "Method `GetBitBlt` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/BitBlt.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 25, - "startColumn": 24, - "charOffset": 985, - "charLength": 9, - "snippet": { - "text": "GetBitBlt" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 23, - "startColumn": 1, - "charOffset": 931, - "charLength": 171, - "snippet": { - "text": "public static class BitBlt\r\n{\r\n public static bool GetBitBlt(this IGame game, List files, List bitBlt)\r\n {\r\n var process = game.GetProcess();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a0b67228ea7df001", - "equalIndicator/v1": "dcbe5eb87d69665774bc23a76a677366feeeba88556bf9a2a74764b0de9e57cb" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'OpenTroubleshootingWebpage' coverage is below the threshold 50%", - "markdown": "Method `OpenTroubleshootingWebpage` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/MainViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 292, - "startColumn": 18, - "charOffset": 9219, - "charLength": 26, - "snippet": { - "text": "OpenTroubleshootingWebpage" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 290, - "startColumn": 1, - "charOffset": 9085, - "charLength": 214, - "snippet": { - "text": "\r\n private const string TroubleshootingUrl = \"https://github.com/FrankvdStam/SoulSplitter/wiki/troubleshooting\";\r\n private void OpenTroubleshootingWebpage()\r\n {\r\n Process.Start(TroubleshootingUrl);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d4663dda1eaebd8a", - "equalIndicator/v1": "dce7d0f11c5121aa348a850bc4001393b225e516fa52e6fd6ccfdadafa10de25" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ResolveSplitTiming' coverage is below the threshold 50%", - "markdown": "Method `ResolveSplitTiming` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/EldenRingSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 305, - "startColumn": 18, - "charOffset": 10708, - "charLength": 18, - "snippet": { - "text": "ResolveSplitTiming" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 303, - "startColumn": 1, - "charOffset": 10682, - "charLength": 92, - "snippet": { - "text": " }\r\n\r\n private void ResolveSplitTiming(Split s)\r\n {\r\n switch (s.TimingType)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7d4f1e4a92bafbee", - "equalIndicator/v1": "dd70ee9f32d755f17803f9e3290e3ab20ecf3caf407ee1a571f9c6c13e469830" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Constructor 'GlobalHotKey' coverage is below the threshold 50%", - "markdown": "Constructor `GlobalHotKey` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Hotkeys/GlobalHotKey.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 35, - "startColumn": 12, - "charOffset": 1388, - "charLength": 12, - "snippet": { - "text": "GlobalHotKey" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 33, - "startColumn": 1, - "charOffset": 1339, - "charLength": 127, - "snippet": { - "text": " private static int _currentId;\r\n\r\n static GlobalHotKey()\r\n {\r\n var messageLoopThread = new Thread(delegate ()\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "613fa800ce53dd23", - "equalIndicator/v1": "ddea3822789192ec330112fea3ce0a6323a31171611dd0b9060c4987722a2fc3" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadEventFlag' coverage is below the threshold 50%", - "markdown": "Method `ReadEventFlag` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 192, - "startColumn": 17, - "charOffset": 6336, - "charLength": 13, - "snippet": { - "text": "ReadEventFlag" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 190, - "startColumn": 1, - "charOffset": 6288, - "charLength": 161, - "snippet": { - "text": "\r\n #region read event flags\r\n public bool ReadEventFlag(uint eventFlagId)\r\n {\r\n var eventFlagIdDiv10000000 = (int)(eventFlagId / 10000000) % 10;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "fee4f12c8d7a9eab", - "equalIndicator/v1": "de4490b49129f5830a2c33415b182b78e00310b469263f4b1104e9681b540ec5" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'TryRefresh' coverage is below the threshold 50%", - "markdown": "Method `TryRefresh` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls2/scholar.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 35, - "startColumn": 36, - "charOffset": 1551, - "charLength": 10, - "snippet": { - "text": "TryRefresh" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 33, - "startColumn": 1, - "charOffset": 1308, - "charLength": 434, - "snippet": { - "text": " #region Refresh/init/reset ================================================================================================================================\r\n public Process? GetProcess() => _process;\r\n public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, \"darksoulsii\", InitPointers, ResetPointers);\r\n public int GetInGameTimeMilliseconds() => 0;\r\n public TreeBuilder GetTreeBuilder()\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "069980b2d5229902", - "equalIndicator/v1": "de5d23b7c3e9fc387c427df5d5b60e9aacec24bfbb4169612caca4484be92992" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_RemoveSplitEnabled' coverage is below the threshold 50%", - "markdown": "Method `get_RemoveSplitEnabled` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 259, - "startColumn": 9, - "charOffset": 8988, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 257, - "startColumn": 1, - "charOffset": 8937, - "charLength": 149, - "snippet": { - "text": " public bool RemoveSplitEnabled\r\n {\r\n get => _removeSplitEnabled;\r\n set => this.SetField(ref _removeSplitEnabled, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "efc6cf0b36945916", - "equalIndicator/v1": "de68ab0a61d1d4a1b8632bda96e54979d1aec3e578461253248a10ecd5b6c824" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ResetPointers' coverage is below the threshold 50%", - "markdown": "Method `ResetPointers` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls2/scholar.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 71, - "startColumn": 18, - "charOffset": 2917, - "charLength": 13, - "snippet": { - "text": "ResetPointers" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 69, - "startColumn": 1, - "charOffset": 2887, - "charLength": 89, - "snippet": { - "text": " }\r\n \r\n private void ResetPointers()\r\n {\r\n _eventFlagManager.Clear();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "614b6153ba0951fc", - "equalIndicator/v1": "deaafa7ab29f1645bdf76ad266215f2c11bcbfb6fc8224bcb3052a12644943fb" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'BitBlt' coverage is below the threshold 50%", - "markdown": "Method `BitBlt` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/MainWindow.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 56, - "startColumn": 17, - "charOffset": 1739, - "charLength": 6, - "snippet": { - "text": "BitBlt" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 54, - "startColumn": 1, - "charOffset": 1676, - "charLength": 92, - "snippet": { - "text": " \r\n private Color _stash = Color.White;\r\n public void BitBlt()\r\n {\r\n try\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "82edaa255219379e", - "equalIndicator/v1": "df08d2db29d8e91a669e33502a1bcaf2af81f1bf95ce90a74ab6b1c797cf27a3" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'Converters.EnumValueEnumParameterConverter' coverage is below the threshold 50%", - "markdown": "Class `Converters.EnumValueEnumParameterConverter` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Converters/EnumValueEnumParameterConverter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 23, - "startColumn": 14, - "charOffset": 935, - "charLength": 31, - "snippet": { - "text": "EnumValueEnumParameterConverter" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 21, - "startColumn": 1, - "charOffset": 881, - "charLength": 206, - "snippet": { - "text": "namespace SoulSplitter.UI.Converters;\r\n\r\npublic class EnumValueEnumParameterConverter : IValueConverter\r\n{\r\n public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "8e67ff6d8e6ead64", - "equalIndicator/v1": "df69f0a7eec5df4f9dc756d4262bf376af8db60c894f4aa3819f5bde6489f8f2" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_NewSplitValue' coverage is below the threshold 50%", - "markdown": "Method `get_NewSplitValue` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 199, - "startColumn": 9, - "charOffset": 7379, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 197, - "startColumn": 1, - "charOffset": 7330, - "charLength": 96, - "snippet": { - "text": " public object? NewSplitValue\r\n {\r\n get => _newSplitValue;\r\n set\r\n {\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c4cd4e7e8d297f75", - "equalIndicator/v1": "dfa86baa0034000a1e2beda92587cfee622f3bd721ec0303f1e62aef1be6c530" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteUInt32' coverage is below the threshold 50%", - "markdown": "Method `WriteUInt32` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/IMemory.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 144, - "startColumn": 24, - "charOffset": 4716, - "charLength": 11, - "snippet": { - "text": "WriteUInt32" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 142, - "startColumn": 1, - "charOffset": 4586, - "charLength": 262, - "snippet": { - "text": " public static void WriteUInt32(this IMemory memory, uint value) => memory.WriteUInt32(null, value);\r\n\r\n public static void WriteUInt32(this IMemory memory, long? offset, uint value)\r\n {\r\n memory.WriteBytes(offset, BitConverter.GetBytes(value));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "8dd6fd24ec692dff", - "equalIndicator/v1": "e0211abf02b4388aa7b598b2cdf73368aa5214431e6008a18f7505a362d21b41" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_SelectedBonfire' coverage is below the threshold 50%", - "markdown": "Method `set_SelectedBonfire` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 321, - "startColumn": 9, - "charOffset": 13079, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 319, - "startColumn": 1, - "charOffset": 13030, - "charLength": 144, - "snippet": { - "text": " {\r\n get => _selectedBonfire;\r\n set => this.SetField(ref _selectedBonfire, value);\r\n }\r\n private Enum? _selectedBonfire;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1abfedb699b5b504", - "equalIndicator/v1": "e1031a37ee6c7ebc7d86c1f2dda2e1196e6917ff9e006f0f2eb1796704c3e4aa" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'Err' coverage is below the threshold 50%", - "markdown": "Method `Err` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Result.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 30, - "startColumn": 39, - "charOffset": 1269, - "charLength": 3, - "snippet": { - "text": "Err" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 28, - "startColumn": 1, - "charOffset": 1045, - "charLength": 287, - "snippet": { - "text": " #region Sugar interface ==========================================================================================================================================================\r\n\r\n public static ContainerErr Err()\r\n {\r\n return new ContainerErr(default);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c0174e19b435706e", - "equalIndicator/v1": "e1203123d311d6432ab665c5587880d803ce26c0574300fa4de194b56ae7764c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'SoulMemory.VersionAttribute' coverage is below the threshold 50%", - "markdown": "Class `SoulMemory.VersionAttribute` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/VersionAttribute.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 21, - "startColumn": 14, - "charOffset": 862, - "charLength": 16, - "snippet": { - "text": "VersionAttribute" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 19, - "startColumn": 1, - "charOffset": 824, - "charLength": 133, - "snippet": { - "text": "namespace SoulMemory;\r\n\r\npublic class VersionAttribute(string version) : Attribute\r\n{\r\n public string Version { get; } = version;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b5465b09f96bf876", - "equalIndicator/v1": "e1e280c190880ad7e6e2363e2083bd56c1db139a266a86de256cda0a4b96aa0a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'MemoryV2.ByteArrayMemory' coverage is below the threshold 50%", - "markdown": "Class `MemoryV2.ByteArrayMemory` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/ByteArrayMemory.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 25, - "startColumn": 14, - "charOffset": 1037, - "charLength": 15, - "snippet": { - "text": "ByteArrayMemory" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 23, - "startColumn": 1, - "charOffset": 908, - "charLength": 225, - "snippet": { - "text": "/// IMemory access to an array of memory. Allows resolving pointers and reading data/writing data.\r\n/// \r\npublic class ByteArrayMemory(byte[] data) : IMemory\r\n{\r\n public byte[] ReadBytes(long offset, int length)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a158aa0825874955", - "equalIndicator/v1": "e1f9e75f38d893a600f94e3492fe3cb6d7a02cc7f971287d271de50c525c0508" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_SelectedBonfire' coverage is below the threshold 50%", - "markdown": "Method `get_SelectedBonfire` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 320, - "startColumn": 9, - "charOffset": 13045, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 318, - "startColumn": 1, - "charOffset": 12996, - "charLength": 141, - "snippet": { - "text": " public Enum? SelectedBonfire\r\n {\r\n get => _selectedBonfire;\r\n set => this.SetField(ref _selectedBonfire, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1a6b0ec165d4f59b", - "equalIndicator/v1": "e20fe7316991dec10708c0756a810265dbfb6435e55f7b116f69094cbb8e2966" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'OnSelectionChanged' coverage is below the threshold 50%", - "markdown": "Method `OnSelectionChanged` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/FilteredComboBox.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 46, - "startColumn": 29, - "charOffset": 1776, - "charLength": 18, - "snippet": { - "text": "OnSelectionChanged" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 44, - "startColumn": 1, - "charOffset": 1739, - "charLength": 126, - "snippet": { - "text": " }\r\n\r\n protected override void OnSelectionChanged(SelectionChangedEventArgs e)\r\n {\r\n if (SelectedIndex != -1)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "25c12f50a1a07aa8", - "equalIndicator/v1": "e23eede4e11f2a929180c818ae1815090993bfcc446ac5bec994dfecedb1dde2" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'Parameters.BaseParam' coverage is below the threshold 50%", - "markdown": "Class `Parameters.BaseParam` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/BaseParam.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 28, - "startColumn": 23, - "charOffset": 1093, - "charLength": 9, - "snippet": { - "text": "BaseParam" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 26, - "startColumn": 1, - "charOffset": 1035, - "charLength": 194, - "snippet": { - "text": "namespace SoulMemory.Parameters;\r\n\r\npublic abstract class BaseParam\r\n{\r\n private readonly List<(PropertyInfo propertyInfo, ParamFieldAttribute paramFieldAttribute)> _paramFieldPropertyCache;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "cc0151aab83be80a", - "equalIndicator/v1": "e2695a026f1d634c1fa323ed85ca0ddb4f2ab3c178e77ab87230d4ce20b988c8" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_Children' coverage is below the threshold 50%", - "markdown": "Method `get_Children` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/HierarchicalViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 67, - "startColumn": 72, - "charOffset": 2264, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 65, - "startColumn": 1, - "charOffset": 2189, - "charLength": 137, - "snippet": { - "text": "\r\n\r\n public ObservableCollection Children { get; set; } = [];\r\n\r\n #region ICustomNotifyPropertyChanged\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "385bd81cfe12a514", - "equalIndicator/v1": "e2d2fd91f47ec4b88961f5743bb97aad51fca8df89e3ad52c47fa0bf32a59580" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetPlayerPosition' coverage is below the threshold 50%", - "markdown": "Method `GetPlayerPosition` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Sekiro/Sekiro.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 209, - "startColumn": 21, - "charOffset": 7783, - "charLength": 17, - "snippet": { - "text": "GetPlayerPosition" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 207, - "startColumn": 1, - "charOffset": 7754, - "charLength": 167, - "snippet": { - "text": " }\r\n\r\n public Vector3f GetPlayerPosition()\r\n {\r\n return new Vector3f(_position.ReadFloat(0x80), _position.ReadFloat(0x84), _position.ReadFloat(0x88));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "dbab3f61e358b90a", - "equalIndicator/v1": "e2f56df09301dc1355ec1342db1fa23b92e2a35491464162adc74670bac64eaa" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'EldenRing.ItemViewModel' coverage is below the threshold 50%", - "markdown": "Class `EldenRing.ItemViewModel` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 463, - "startColumn": 14, - "charOffset": 14749, - "charLength": 13, - "snippet": { - "text": "ItemViewModel" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 461, - "startColumn": 1, - "charOffset": 14731, - "charLength": 105, - "snippet": { - "text": "}\r\n\r\npublic class ItemViewModel : ICustomNotifyPropertyChanged\r\n{\r\n public override string ToString()\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "2253a1e94f0f3f2c", - "equalIndicator/v1": "e3728e2f98f244b528d71824db0713e1c4ab470be5d0f5a28124cd28c764659a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_Error' coverage is below the threshold 50%", - "markdown": "Method `get_Error` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/ErrorViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 33, - "startColumn": 9, - "charOffset": 1154, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 31, - "startColumn": 1, - "charOffset": 1114, - "charLength": 112, - "snippet": { - "text": " public string Error\r\n {\r\n get => _error;\r\n set => this.SetField(ref _error, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "62967bce794ac04e", - "equalIndicator/v1": "e3cfddd5a16c2a6179fbaef25914b41009b5adbcab9128bcef07f6c339a5bd1d" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_Item' coverage is below the threshold 50%", - "markdown": "Method `set_Item` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 482, - "startColumn": 9, - "charOffset": 15114, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 480, - "startColumn": 1, - "charOffset": 15076, - "charLength": 118, - "snippet": { - "text": " {\r\n get => _item;\r\n set => this.SetField(ref _item, value);\r\n }\r\n private Item _item = null!;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "49c0aa3977c171f8", - "equalIndicator/v1": "e3e20c123bdd8dd6079daa9762300e8b01f9c44e78c48e0f09a8c9866e938b11" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadUInt16' coverage is below the threshold 50%", - "markdown": "Method `ReadUInt16` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 228, - "startColumn": 19, - "charOffset": 5989, - "charLength": 10, - "snippet": { - "text": "ReadUInt16" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 226, - "startColumn": 1, - "charOffset": 5962, - "charLength": 131, - "snippet": { - "text": " }\r\n\r\n public ushort ReadUInt16(long? offset = null)\r\n {\r\n return BitConverter.ToUInt16(ReadMemory(offset, 2), 0);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7afef8ec54a8877a", - "equalIndicator/v1": "e3ecb53829eb5719b10cacd90c07537844f2190a6949af3cf8b3bf68a84cf1fc" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'OverwriteFile' coverage is below the threshold 50%", - "markdown": "Method `OverwriteFile` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/soulmods/Soulmods.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 114, - "startColumn": 25, - "charOffset": 4133, - "charLength": 13, - "snippet": { - "text": "OverwriteFile" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 112, - "startColumn": 1, - "charOffset": 4100, - "charLength": 200, - "snippet": { - "text": " }\r\n\r\n private static void OverwriteFile(string manifestResourceName, string path)\r\n {\r\n using var stream = typeof(Soulmods).Assembly.GetManifestResourceStream(manifestResourceName)!;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "6d97af20d4f57c0d", - "equalIndicator/v1": "e42c8b6c54badaec2b8ae4bfd9f833dacfa60d2dfb6dbb5b8963e8d9f32dbf65" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'CanAddSplit' coverage is below the threshold 50%", - "markdown": "Method `CanAddSplit` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 79, - "startColumn": 18, - "charOffset": 2686, - "charLength": 11, - "snippet": { - "text": "CanAddSplit" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 77, - "startColumn": 1, - "charOffset": 2495, - "charLength": 294, - "snippet": { - "text": " #region add/remove splits ============================================================================================================================================\r\n\r\n private bool CanAddSplit(object? param)\r\n {\r\n if (!NewSplitTimingType.HasValue || !NewSplitType.HasValue)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7703d2ec6d2aa294", - "equalIndicator/v1": "e4b35a264a8a964199210f14c37be0a2dc11ac4e73158df77f8ed8ee9c0f0826" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Constructor 'EldenRingSplitter' coverage is below the threshold 50%", - "markdown": "Constructor `EldenRingSplitter` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/EldenRingSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 37, - "startColumn": 12, - "charOffset": 1387, - "charLength": 17, - "snippet": { - "text": "EldenRingSplitter" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 35, - "startColumn": 1, - "charOffset": 1324, - "charLength": 165, - "snippet": { - "text": " private MainViewModel _mainViewModel= null!;\r\n\r\n public EldenRingSplitter(LiveSplitState state, EldenRing eldenRing)\r\n {\r\n _liveSplitState = state;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "890fc550b9ed560d", - "equalIndicator/v1": "e4f27ae9f1981052eac6fb201e60d837f8be6db13a2b09b07e7c5a9d810b7b91" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'UpdateAutoSplitter' coverage is below the threshold 50%", - "markdown": "Method `UpdateAutoSplitter` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls2Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 189, - "startColumn": 17, - "charOffset": 5481, - "charLength": 18, - "snippet": { - "text": "UpdateAutoSplitter" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 187, - "startColumn": 1, - "charOffset": 5421, - "charLength": 136, - "snippet": { - "text": "\r\n private const float _boxSize = 5.0f;\r\n public void UpdateAutoSplitter()\r\n {\r\n if (_timerState != TimerState.Running)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "47eb029074c5bdf6", - "equalIndicator/v1": "e58c25bed89adcc11f7880e5cfe333501cadbda70576d5073f9eca78aab30b50" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetInventory' coverage is below the threshold 50%", - "markdown": "Method `GetInventory` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/DarkSouls1.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 40, - "startColumn": 23, - "charOffset": 1959, - "charLength": 12, - "snippet": { - "text": "GetInventory" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 38, - "startColumn": 1, - "charOffset": 1774, - "charLength": 445, - "snippet": { - "text": " public int GetCurrentSaveSlot() => _darkSouls1?.GetCurrentSaveSlot() ?? -1;\r\n public void ResetInventoryIndices() => _darkSouls1?.ResetInventoryIndices();\r\n public List GetInventory() => _darkSouls1?.GetInventory() ?? [];\r\n public bool AreCreditsRolling() => _darkSouls1?.AreCreditsRolling() ?? false;\r\n public BonfireState GetBonfireState(Bonfire bonfire) => _darkSouls1?.GetBonfireState(bonfire) ?? BonfireState.Unknown;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f9a6860dee2cbfaa", - "equalIndicator/v1": "e5cbfd22f3c09df9c18e3b0c28db25bc492c14303643cedd7c1f5a1ee06ebcce" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteUInt16' coverage is below the threshold 50%", - "markdown": "Method `WriteUInt16` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 134, - "startColumn": 24, - "charOffset": 4152, - "charLength": 11, - "snippet": { - "text": "WriteUInt16" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 132, - "startColumn": 1, - "charOffset": 4116, - "charLength": 169, - "snippet": { - "text": " }\r\n \r\n public static void WriteUInt16(this IMemory memory, long offset, ushort value)\r\n {\r\n memory.WriteBytes(offset, BitConverter.GetBytes(value));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "51c81a4b32c6dec9", - "equalIndicator/v1": "e5dac206dcd5a58c7cd1f3982baf31adef32e1102232a9a07d6424321b58cc9b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'CanRemoveSplit' coverage is below the threshold 50%", - "markdown": "Method `CanRemoveSplit` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 138, - "startColumn": 18, - "charOffset": 4890, - "charLength": 14, - "snippet": { - "text": "CanRemoveSplit" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 136, - "startColumn": 1, - "charOffset": 4864, - "charLength": 188, - "snippet": { - "text": " }\r\n\r\n private bool CanRemoveSplit(object? param) => SplitsViewModel.SelectedSplit != null;\r\n private void RemoveSplitFunc(object? parameter) => RemoveSplit.Execute(parameter);\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e9a973106f4912e5", - "equalIndicator/v1": "e60a386f928aecd939f35b7f46ae278711941ec7f84a7592ae84d4c1ea3df97f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'RefreshFilter' coverage is below the threshold 50%", - "markdown": "Method `RefreshFilter` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/FilteredComboBox.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 126, - "startColumn": 18, - "charOffset": 3911, - "charLength": 13, - "snippet": { - "text": "RefreshFilter" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 124, - "startColumn": 1, - "charOffset": 3885, - "charLength": 91, - "snippet": { - "text": " }\r\n\r\n private void RefreshFilter()\r\n {\r\n if (ItemsSource == null) return;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "be4e58545f7f6dab", - "equalIndicator/v1": "e62b6d6cb06f84f48021b7b045b76f13f783df5b8646b1b48e94e8a041cd1d7a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_NewSplitAddEnabled' coverage is below the threshold 50%", - "markdown": "Method `get_NewSplitAddEnabled` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 251, - "startColumn": 9, - "charOffset": 8780, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 249, - "startColumn": 1, - "charOffset": 8729, - "charLength": 149, - "snippet": { - "text": " public bool NewSplitAddEnabled\r\n {\r\n get => _newSplitAddEnabled;\r\n set => this.SetField(ref _newSplitAddEnabled, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "791061d8c0481936", - "equalIndicator/v1": "e63d5da3c0d5c4d32f1037aa89f2bf490e3a705519a1527dcfc5ce671e541ee6" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'IsPlayerLoaded' coverage is below the threshold 50%", - "markdown": "Method `IsPlayerLoaded` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/DarkSouls1.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 34, - "startColumn": 17, - "charOffset": 1472, - "charLength": 14, - "snippet": { - "text": "IsPlayerLoaded" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 32, - "startColumn": 1, - "charOffset": 1275, - "charLength": 440, - "snippet": { - "text": " public bool ReadEventFlag(uint eventFlagId) => _darkSouls1?.ReadEventFlag(eventFlagId) ?? false;\r\n public bool IsWarpRequested() => _darkSouls1?.IsWarpRequested() ?? false;\r\n public bool IsPlayerLoaded() => _darkSouls1?.IsPlayerLoaded() ?? false;\r\n public Vector3f GetPosition() => _darkSouls1?.GetPosition() ?? new Vector3f(0,0,0);\r\n public int GetInGameTimeMilliseconds() => _darkSouls1?.GetInGameTimeMilliseconds() ?? 0;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "18c625131536fd3a", - "equalIndicator/v1": "e66bfe4b62c3a33411b296f1afc5a0031af2f4faea02c47165138886f3dee7fe" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_Level' coverage is below the threshold 50%", - "markdown": "Method `get_Level` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splits/Sekiro/Attribute.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 36, - "startColumn": 9, - "charOffset": 1330, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 34, - "startColumn": 1, - "charOffset": 1293, - "charLength": 109, - "snippet": { - "text": " public int Level\r\n {\r\n get => _level;\r\n set => this.SetField(ref _level, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "03103feff51c7c78", - "equalIndicator/v1": "e763d68a384e96eb973e9f7df90aca3c83aa445a49d2d12f67da8c8428a6b933" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetAttribute' coverage is below the threshold 50%", - "markdown": "Method `GetAttribute` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 226, - "startColumn": 16, - "charOffset": 8055, - "charLength": 12, - "snippet": { - "text": "GetAttribute" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 224, - "startColumn": 1, - "charOffset": 8018, - "charLength": 203, - "snippet": { - "text": " #endregion\r\n \r\n public int GetAttribute(Attribute attribute) => _playerGameData.ReadInt32(0x8 + (long)attribute);\r\n\r\n public int GetInGameTimeMilliseconds() => _gameDataMan.ReadInt32(0xa4);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9c43c1cb075371ff", - "equalIndicator/v1": "e822478d8197074c083cb9971643ef92807c90f88b2f85345d80e8a99ff38411" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'CanAddSplit' coverage is below the threshold 50%", - "markdown": "Method `CanAddSplit` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 45, - "startColumn": 18, - "charOffset": 1630, - "charLength": 11, - "snippet": { - "text": "CanAddSplit" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 43, - "startColumn": 1, - "charOffset": 1582, - "charLength": 118, - "snippet": { - "text": " #region Add split logic\r\n\r\n private bool CanAddSplit(object? param)\r\n {\r\n switch (SelectedSplitType)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7f5f85a0d98c96ae", - "equalIndicator/v1": "e849007920bddccd613e5eb77d0d555a5b2c14107393fcdcd8211ffbffc1017a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_Grace' coverage is below the threshold 50%", - "markdown": "Method `get_Grace` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/GraceViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 41, - "startColumn": 9, - "charOffset": 1321, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 39, - "startColumn": 1, - "charOffset": 1282, - "charLength": 111, - "snippet": { - "text": " public Grace Grace\r\n {\r\n get => _grace;\r\n set => this.SetField(ref _grace, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "32b6164cb3e5183f", - "equalIndicator/v1": "e8635447ce4e6e51d640a2d7bbf90753e45fd02b3191257fd77fb8e82324103d" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'AddSplit' coverage is below the threshold 50%", - "markdown": "Method `AddSplit` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 288, - "startColumn": 17, - "charOffset": 7895, - "charLength": 8, - "snippet": { - "text": "AddSplit" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 286, - "startColumn": 1, - "charOffset": 7875, - "charLength": 107, - "snippet": { - "text": "\r\n\r\n public void AddSplit()\r\n {\r\n if (!NewSplitTimingType.HasValue || !NewSplitType.HasValue)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5cdde4f641b60f94", - "equalIndicator/v1": "e8c233571493574d9794bb9b824477f919603af958519663fc86f4ebf9f82f3c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadEventFlag' coverage is below the threshold 50%", - "markdown": "Method `ReadEventFlag` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/EldenRing.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 421, - "startColumn": 17, - "charOffset": 13776, - "charLength": 13, - "snippet": { - "text": "ReadEventFlag" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 419, - "startColumn": 1, - "charOffset": 13729, - "charLength": 145, - "snippet": { - "text": " #region Read event flag\r\n\r\n public bool ReadEventFlag(uint eventFlagId)\r\n {\r\n var divisor = _virtualMemoryFlag.ReadInt32(0x1c);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "43242932e6f74dc5", - "equalIndicator/v1": "e8d05099f88ab9180619e15c9de589e41a2e8b25ee179d3d258d755b0275bdae" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'DarkSouls3.Split' coverage is below the threshold 50%", - "markdown": "Class `DarkSouls3.Split` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splits/DarkSouls3/Split.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 23, - "startColumn": 16, - "charOffset": 946, - "charLength": 5, - "snippet": { - "text": "Split" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 21, - "startColumn": 1, - "charOffset": 886, - "charLength": 155, - "snippet": { - "text": "namespace SoulSplitter.Splits.DarkSouls3;\r\n\r\ninternal class Split\r\n{\r\n public Split(TimingType timingType, SplitType darkSouls3SplitType, object split)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f4d0adaa02300f98", - "equalIndicator/v1": "e8f5b11084176b4565d9edca638167dd05a22df58b750f6df5c86d5599179616" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetBonfireState' coverage is below the threshold 50%", - "markdown": "Method `GetBonfireState` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/DarkSouls1.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 42, - "startColumn": 25, - "charOffset": 2120, - "charLength": 15, - "snippet": { - "text": "GetBonfireState" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 40, - "startColumn": 1, - "charOffset": 1937, - "charLength": 500, - "snippet": { - "text": " public List GetInventory() => _darkSouls1?.GetInventory() ?? [];\r\n public bool AreCreditsRolling() => _darkSouls1?.AreCreditsRolling() ?? false;\r\n public BonfireState GetBonfireState(Bonfire bonfire) => _darkSouls1?.GetBonfireState(bonfire) ?? BonfireState.Unknown;\r\n public string? GetSaveFileLocation() => _darkSouls1?.GetSaveFileLocation();\r\n public int GetSaveFileGameTimeMilliseconds(string path, int slot) => _darkSouls1?.GetSaveFileGameTimeMilliseconds(path, slot) ?? 0;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9a4074a35bcceff0", - "equalIndicator/v1": "e91f8759e61e93c9e4d0b736dc15be5cbb1b6be4ea172173160f2922b4c1d5ef" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'BoyerMooreCount' coverage is below the threshold 50%", - "markdown": "Method `BoyerMooreCount` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 336, - "startColumn": 23, - "charOffset": 12743, - "charLength": 15, - "snippet": { - "text": "BoyerMooreCount" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 334, - "startColumn": 1, - "charOffset": 12653, - "charLength": 176, - "snippet": { - "text": " /// Will return how many matches are found\r\n /// \r\n public static int BoyerMooreCount(this byte[] haystack, byte?[] needle)\r\n {\r\n int result = 0;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "36234364fcf25d97", - "equalIndicator/v1": "e9507919ca926dc739addefef1f9ac52764109ca4d71923c17871e9794d8a915" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'OnPreviewTextInput_Float' coverage is below the threshold 50%", - "markdown": "Method `OnPreviewTextInput_Float` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 80, - "startColumn": 18, - "charOffset": 2592, - "charLength": 24, - "snippet": { - "text": "OnPreviewTextInput_Float" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 78, - "startColumn": 1, - "charOffset": 2566, - "charLength": 135, - "snippet": { - "text": " }\r\n\r\n private void OnPreviewTextInput_Float(object sender, TextCompositionEventArgs e)\r\n {\r\n if (sender is TextBox t)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7fcbd131255338f8", - "equalIndicator/v1": "e9cd204a80be69738bbe5e9e94353ebfc00b99a60f9a3fbbb0bbea311cbb0916" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ToString' coverage is below the threshold 50%", - "markdown": "Method `ToString` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/TextTableEntry.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 25, - "startColumn": 28, - "charOffset": 1035, - "charLength": 8, - "snippet": { - "text": "ToString" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 23, - "startColumn": 1, - "charOffset": 961, - "charLength": 117, - "snippet": { - "text": " public uint ItemHighRange { get; set; }\r\n\r\n public override string ToString() => ItemLowRange.ToString();\r\n}\r\n" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "056e8cc5fe7da0bd", - "equalIndicator/v1": "ea21668b0d8a68e865e7e5d14650d556ab8c4ec31d138e9216dbd486fad28a33" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_NewSplitKnownFlag' coverage is below the threshold 50%", - "markdown": "Method `get_NewSplitKnownFlag` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 267, - "startColumn": 9, - "charOffset": 7441, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 265, - "startColumn": 1, - "charOffset": 7385, - "charLength": 107, - "snippet": { - "text": " public KnownFlag? NewSplitKnownFlag\r\n {\r\n get => _newSplitKnownFlag;\r\n set\r\n {\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "22f3585b8c6103dd", - "equalIndicator/v1": "ea3d57b2ca98a343404dc79953394b58491db6525a25fe8ca37747706bacfb76" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_SplitTypes' coverage is below the threshold 50%", - "markdown": "Method `set_SplitTypes` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 175, - "startColumn": 9, - "charOffset": 6975, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 173, - "startColumn": 1, - "charOffset": 6853, - "charLength": 184, - "snippet": { - "text": " {\r\n get => (ObservableCollection>)GetValue(SplitTypeDependencyProperty);\r\n set => SetValue(SplitTypeDependencyProperty, value);\r\n }\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9beb6e1515e994e5", - "equalIndicator/v1": "ea8261308efbf177d4471aed2e4fa9d544c0f4d8eef0ed5cb52582b25c94dfd3" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ResolveSplitTiming' coverage is below the threshold 50%", - "markdown": "Method `ResolveSplitTiming` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/SekiroSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 264, - "startColumn": 18, - "charOffset": 8189, - "charLength": 18, - "snippet": { - "text": "ResolveSplitTiming" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 262, - "startColumn": 1, - "charOffset": 8163, - "charLength": 92, - "snippet": { - "text": " }\r\n\r\n private void ResolveSplitTiming(Split s)\r\n {\r\n switch (s.TimingType)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ac701adecca32b80", - "equalIndicator/v1": "ea86c5069b7b69ae93c8fa41f6712092bd2f28b8c59f7902e1107bc63723685b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteUInt16' coverage is below the threshold 50%", - "markdown": "Method `WriteUInt16` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/IMemory.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 127, - "startColumn": 24, - "charOffset": 4064, - "charLength": 11, - "snippet": { - "text": "WriteUInt16" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 125, - "startColumn": 1, - "charOffset": 4032, - "charLength": 202, - "snippet": { - "text": " }\r\n\r\n public static void WriteUInt16(this IMemory memory, ushort value) => memory.WriteUInt16(null, value);\r\n\r\n public static void WriteUInt16(this IMemory memory, long? offset, ushort value)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3c5f9883bdb2b429", - "equalIndicator/v1": "eafcb21f1f1426f78258ae15563078b6d2f85d135e6b75aeb2677016e4402b1f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'TryRefresh' coverage is below the threshold 50%", - "markdown": "Method `TryRefresh` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 74, - "startColumn": 43, - "charOffset": 2933, - "charLength": 10, - "snippet": { - "text": "TryRefresh" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 72, - "startColumn": 1, - "charOffset": 2842, - "charLength": 232, - "snippet": { - "text": " /// \r\n /// \r\n public static ResultErr TryRefresh(ref System.Diagnostics.Process? process, string name, Func> initialize, Action reset)\r\n {\r\n try\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "dd90553603e7189c", - "equalIndicator/v1": "eb18aade19ffd2c52f0c7d860ad70094b5d29beec09f865fa7f2c67baac2c847" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'Reset' coverage is below the threshold 50%", - "markdown": "Method `Reset` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/FlagTrackerViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 224, - "startColumn": 17, - "charOffset": 7455, - "charLength": 5, - "snippet": { - "text": "Reset" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 222, - "startColumn": 1, - "charOffset": 7435, - "charLength": 60, - "snippet": { - "text": "\r\n\r\n public void Reset()\r\n {\r\n _lookup = null;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9400a754838f470d", - "equalIndicator/v1": "eb627dd15be8ad548c80a4aba9d74389acf50eaa21a292970ca9162319c475a8" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'IsWarpRequested' coverage is below the threshold 50%", - "markdown": "Method `IsWarpRequested` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/DarkSouls1.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 33, - "startColumn": 17, - "charOffset": 1393, - "charLength": 15, - "snippet": { - "text": "IsWarpRequested" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 31, - "startColumn": 1, - "charOffset": 1179, - "charLength": 442, - "snippet": { - "text": " public int GetAttribute(Attribute attribute) => _darkSouls1?.GetAttribute(attribute) ?? 0;\r\n public bool ReadEventFlag(uint eventFlagId) => _darkSouls1?.ReadEventFlag(eventFlagId) ?? false;\r\n public bool IsWarpRequested() => _darkSouls1?.IsWarpRequested() ?? false;\r\n public bool IsPlayerLoaded() => _darkSouls1?.IsPlayerLoaded() ?? false;\r\n public Vector3f GetPosition() => _darkSouls1?.GetPosition() ?? new Vector3f(0,0,0);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1c09cd901cbf416e", - "equalIndicator/v1": "eb76fcd9980365324e622fd80481cceabc8846fbeec391e87eab4bc7d2d280a3" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_SelectedAttribute' coverage is below the threshold 50%", - "markdown": "Method `get_SelectedAttribute` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 335, - "startColumn": 9, - "charOffset": 13466, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 333, - "startColumn": 1, - "charOffset": 13415, - "charLength": 147, - "snippet": { - "text": " public Enum? SelectedAttribute\r\n {\r\n get => _selectedAttribute;\r\n set => this.SetField(ref _selectedAttribute, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c544e44d54c39dc1", - "equalIndicator/v1": "ec0ca24760a6c0bb1ce715c4249489d39f984d57a94580815ae92d7cef1de462" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteWeaponDescription' coverage is below the threshold 50%", - "markdown": "Method `WriteWeaponDescription` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 381, - "startColumn": 17, - "charOffset": 13220, - "charLength": 22, - "snippet": { - "text": "WriteWeaponDescription" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 379, - "startColumn": 1, - "charOffset": 13195, - "charLength": 125, - "snippet": { - "text": " }\r\n\r\n public void WriteWeaponDescription(uint weaponId, string description)\r\n {\r\n //weaponName 0x1d0 - 0x30\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b7b19f3e2b42a4d2", - "equalIndicator/v1": "ec72e6fa24c697ade1c46647d698d293c0a24c692eef3f840f9d6b60a1864957" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'InternalStart' coverage is below the threshold 50%", - "markdown": "Method `InternalStart` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/BaseSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 62, - "startColumn": 18, - "charOffset": 2136, - "charLength": 13, - "snippet": { - "text": "InternalStart" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 60, - "startColumn": 1, - "charOffset": 2110, - "charLength": 125, - "snippet": { - "text": " }\r\n\r\n private void InternalStart(object sender, EventArgs e)\r\n {\r\n _liveSplitState.IsGameTimePaused = true;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "78e0586ef5b110b9", - "equalIndicator/v1": "ec87899ec9db0aeed0a0d511afdf2d04355a630a9d7f9c5edd93ca072c5dcb49" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ResetAutoSplitting' coverage is below the threshold 50%", - "markdown": "Method `ResetAutoSplitting` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/SekiroSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 196, - "startColumn": 17, - "charOffset": 5635, - "charLength": 18, - "snippet": { - "text": "ResetAutoSplitting" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 194, - "startColumn": 1, - "charOffset": 5578, - "charLength": 111, - "snippet": { - "text": " private List _splits = [];\r\n\r\n public void ResetAutoSplitting()\r\n {\r\n _splits.Clear();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3f8fbd5d7a729fac", - "equalIndicator/v1": "ecd38fe0380123c71c9a704fcae541c1a6417065a4b0b5e6e1b9be0eae9091cd" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_EnabledAddSplit' coverage is below the threshold 50%", - "markdown": "Method `get_EnabledAddSplit` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 280, - "startColumn": 9, - "charOffset": 7742, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 278, - "startColumn": 1, - "charOffset": 7694, - "charLength": 140, - "snippet": { - "text": " public bool EnabledAddSplit\r\n {\r\n get => _enabledAddSplit;\r\n set => this.SetField(ref _enabledAddSplit, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e3f74685abe44bbc", - "equalIndicator/v1": "ecf744c0ed9f80be67a55e0d131f016652192a414329f63a72774d30c0dcc1cd" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_SelectedBoss' coverage is below the threshold 50%", - "markdown": "Method `set_SelectedBoss` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 307, - "startColumn": 9, - "charOffset": 12715, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 305, - "startColumn": 1, - "charOffset": 12669, - "charLength": 135, - "snippet": { - "text": " {\r\n get => _selectedBoss;\r\n set => this.SetField(ref _selectedBoss, value);\r\n }\r\n private Enum? _selectedBoss;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d0f325b0238b6468", - "equalIndicator/v1": "ed3f9cf7986bfc14bb1654ffe05e822b91990071cfad36336dd96784b3d48a70" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ResetTimer' coverage is below the threshold 50%", - "markdown": "Method `ResetTimer` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls3Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 175, - "startColumn": 18, - "charOffset": 5428, - "charLength": 10, - "snippet": { - "text": "ResetTimer" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 173, - "startColumn": 1, - "charOffset": 5402, - "charLength": 94, - "snippet": { - "text": " }\r\n\r\n private void ResetTimer()\r\n {\r\n _timerState = TimerState.WaitForStart;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "83fd183b37525c1a", - "equalIndicator/v1": "ed4c5faa91f2fac47969473b7c92cefce5804c9c5668d353f5595f0ecce919cc" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'SetLoadingScreenItem' coverage is below the threshold 50%", - "markdown": "Method `SetLoadingScreenItem` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 406, - "startColumn": 17, - "charOffset": 14254, - "charLength": 20, - "snippet": { - "text": "SetLoadingScreenItem" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 404, - "startColumn": 1, - "charOffset": 14229, - "charLength": 100, - "snippet": { - "text": " }\r\n\r\n public void SetLoadingScreenItem(int index, uint item)\r\n {\r\n if (index < 62)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "78db45c83d8eb081", - "equalIndicator/v1": "ed5c3ec7eab5f750ade93017420bd3442566b40b7f0d5b2ac779a22e38a5d954" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Constructor 'Pointer' coverage is below the threshold 50%", - "markdown": "Constructor `Pointer` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 41, - "startColumn": 12, - "charOffset": 1367, - "charLength": 7, - "snippet": { - "text": "Pointer" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 39, - "startColumn": 1, - "charOffset": 1347, - "charLength": 106, - "snippet": { - "text": " }\r\n\r\n public Pointer(IMemory memory, params long[] offsets)\r\n {\r\n if (memory is Pointer)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "577d143b280a056f", - "equalIndicator/v1": "ed7bbb9e952f9cad633b117df563fea977b5fc69a79cb2b42dcca43cc7322a62" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetMorphemeMessages' coverage is below the threshold 50%", - "markdown": "Method `GetMorphemeMessages` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/soulmods/Soulmods.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 89, - "startColumn": 24, - "charOffset": 3104, - "charLength": 19, - "snippet": { - "text": "GetMorphemeMessages" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 87, - "startColumn": 1, - "charOffset": 3077, - "charLength": 103, - "snippet": { - "text": "\r\n\r\n public static void GetMorphemeMessages(Process process)\r\n {\r\n //Get function address\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "09464d2436b6ff3d", - "equalIndicator/v1": "ed9fae978052046995cf538e1b10518cc661ad4470df61ebadae0ea2bc7c3c60" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_ItemType' coverage is below the threshold 50%", - "markdown": "Method `get_ItemType` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splits/DarkSouls1/ItemState.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 30, - "startColumn": 9, - "charOffset": 1140, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 28, - "startColumn": 1, - "charOffset": 1094, - "charLength": 124, - "snippet": { - "text": " public ItemType? ItemType\r\n {\r\n get => _itemType;\r\n set => this.SetField(ref _itemType, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "35714beab84a2dec", - "equalIndicator/v1": "ee335103c382c48f4f133d568225a21f40d996430894f245bc05ab502727f074" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_VisibleGraceSplit' coverage is below the threshold 50%", - "markdown": "Method `set_VisibleGraceSplit` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 172, - "startColumn": 9, - "charOffset": 5032, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 170, - "startColumn": 1, - "charOffset": 4981, - "charLength": 149, - "snippet": { - "text": " {\r\n get => _visibleGraceSplit;\r\n set => this.SetField(ref _visibleGraceSplit, value);\r\n }\r\n private bool _visibleGraceSplit;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "65a85d546a0bb56c", - "equalIndicator/v1": "ee434ec0048765c0cda178226722de09b360941563c45cd1ca248616f0786c3e" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteInt64' coverage is below the threshold 50%", - "markdown": "Method `WriteInt64` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 291, - "startColumn": 17, - "charOffset": 7651, - "charLength": 10, - "snippet": { - "text": "WriteInt64" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 289, - "startColumn": 1, - "charOffset": 7626, - "charLength": 129, - "snippet": { - "text": " }\r\n\r\n public void WriteInt64(long? offset, long value)\r\n {\r\n WriteMemory(offset, BitConverter.GetBytes(value));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "26ca06249e6772a9", - "equalIndicator/v1": "ee7fa81234fa10e1f61373e6cdb23e68b6c9bb97ca2ad065726fb9b7f6d29ed7" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'StartTimer' coverage is below the threshold 50%", - "markdown": "Method `StartTimer` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/EldenRingSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 159, - "startColumn": 18, - "charOffset": 5365, - "charLength": 10, - "snippet": { - "text": "StartTimer" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 157, - "startColumn": 1, - "charOffset": 5307, - "charLength": 128, - "snippet": { - "text": " private bool _startAutomatically;\r\n\r\n private void StartTimer()\r\n {\r\n _liveSplitState.IsGameTimePaused = true;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f5885b1ee8bab651", - "equalIndicator/v1": "ee89208fe9b836ab0c4a642e82240e5cc11642b69f90f47bb318ebe60061d26c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteFloat' coverage is below the threshold 50%", - "markdown": "Method `WriteFloat` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/IMemory.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 172, - "startColumn": 24, - "charOffset": 5637, - "charLength": 10, - "snippet": { - "text": "WriteFloat" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 170, - "startColumn": 1, - "charOffset": 5508, - "charLength": 261, - "snippet": { - "text": " public static void WriteFloat(this IMemory memory, float value) => memory.WriteFloat(null, value);\r\n\r\n public static void WriteFloat(this IMemory memory, long? offset, float value)\r\n {\r\n memory.WriteBytes(offset, BitConverter.GetBytes(value));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "2e0040dd267b7f9f", - "equalIndicator/v1": "eebd64dd350254a2cc3e1c00d86b1ea0ef474fb070655b2a19b4c7cde87d2223" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetCurrentSaveSlot' coverage is below the threshold 50%", - "markdown": "Method `GetCurrentSaveSlot` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 168, - "startColumn": 16, - "charOffset": 6618, - "charLength": 18, - "snippet": { - "text": "GetCurrentSaveSlot" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 166, - "startColumn": 1, - "charOffset": 6542, - "charLength": 259, - "snippet": { - "text": " public int NgCount() => _gameDataMan.ReadInt32(0x3C);\r\n\r\n public int GetCurrentSaveSlot() => _gameMan.ReadInt32(0xA70);\r\n\r\n public Vector3f GetPosition() => new(_playerIns.ReadFloat(0xc50), _playerIns.ReadFloat(0xC58), _playerIns.ReadFloat(0xC54));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "2ad35cb65a4a4408", - "equalIndicator/v1": "f012e373fe355cc71a1847cd1873c6bb0487b10635e67f68f3bb19ee77503799" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Constructor 'DarkSouls2Splitter' coverage is below the threshold 50%", - "markdown": "Constructor `DarkSouls2Splitter` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls2Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 37, - "startColumn": 12, - "charOffset": 1398, - "charLength": 18, - "snippet": { - "text": "DarkSouls2Splitter" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 35, - "startColumn": 1, - "charOffset": 1327, - "charLength": 177, - "snippet": { - "text": " private readonly LiveSplitState _liveSplitState;\r\n \r\n public DarkSouls2Splitter(LiveSplitState state, DarkSouls2 darkSouls2)\r\n {\r\n _darkSouls2 = darkSouls2;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "97387578be01caf8", - "equalIndicator/v1": "f01c7ecbbe3a9058fa0f0cb1685a7b325a08c73e68dae1aa4962b847b9c06d47" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ScanAbsolute' coverage is below the threshold 50%", - "markdown": "Method `ScanAbsolute` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/TreeBuilder.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 44, - "startColumn": 28, - "charOffset": 1699, - "charLength": 12, - "snippet": { - "text": "ScanAbsolute" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 42, - "startColumn": 1, - "charOffset": 1663, - "charLength": 135, - "snippet": { - "text": " }\r\n\r\n public PointerAppender ScanAbsolute(string name, string pattern, long? offset)\r\n {\r\n var node = new PointerNode\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7e352a0c9e0c8c54", - "equalIndicator/v1": "f042b9b5d7a76643358fdc49ef016574c88166f7879d1a96391040adecf29aa2" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteBytes' coverage is below the threshold 50%", - "markdown": "Method `WriteBytes` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 82, - "startColumn": 17, - "charOffset": 2616, - "charLength": 10, - "snippet": { - "text": "WriteBytes" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 80, - "startColumn": 1, - "charOffset": 2488, - "charLength": 226, - "snippet": { - "text": "\r\n public byte[] ReadBytes(long offset, int length) => Memory.ReadBytes(ResolveOffsets() + offset, length);\r\n public void WriteBytes(long offset, byte[] bytes) => Memory.WriteBytes(ResolveOffsets() + offset, bytes);\r\n}\r\n" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "76e77be8fb1f7c54", - "equalIndicator/v1": "f072ac436b983ca9d489f102f3c03e7044e21c19e1c1ed48e954913b02446d21" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ToBytePattern' coverage is below the threshold 50%", - "markdown": "Method `ToBytePattern` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 226, - "startColumn": 27, - "charOffset": 9119, - "charLength": 13, - "snippet": { - "text": "ToBytePattern" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 224, - "startColumn": 1, - "charOffset": 8879, - "charLength": 323, - "snippet": { - "text": " /// Hex string, separated with whitespaces and ?/??/x/xx as wildcards. Example: \"48 8b 05 ? ? ? ? c6 40 18 00\"\r\n /// byte representation of the input string\r\n public static byte?[] ToBytePattern(this string pattern)\r\n {\r\n var result = new List();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "74bc20d66bc5b093", - "equalIndicator/v1": "f12d6160a21253e949f9a68aaf6f3ccc24faea40d08a2a56a4bc1b6b096e88fe" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_CommandAddError' coverage is below the threshold 50%", - "markdown": "Method `get_CommandAddError` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/MainViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 341, - "startColumn": 9, - "charOffset": 10634, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 339, - "startColumn": 1, - "charOffset": 10578, - "charLength": 148, - "snippet": { - "text": " public RelayCommand CommandAddError\r\n {\r\n get => _commandAddError;\r\n set => this.SetField(ref _commandAddError, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ed9947785266a0bc", - "equalIndicator/v1": "f14031248fb47a2c9b8a56ad3557c10de041189230eb2ed69648776374d37bf5" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteInt32' coverage is below the threshold 50%", - "markdown": "Method `WriteInt32` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/IMemory.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 137, - "startColumn": 24, - "charOffset": 4446, - "charLength": 10, - "snippet": { - "text": "WriteInt32" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 135, - "startColumn": 1, - "charOffset": 4419, - "charLength": 157, - "snippet": { - "text": "\r\n\r\n public static void WriteInt32(this IMemory memory, long? offset, int value)\r\n {\r\n memory.WriteBytes(offset, BitConverter.GetBytes(value));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "89aa78732f3dcbf7", - "equalIndicator/v1": "f1e58b24b72d4100a9fa832d3ccc113ebccdea06ce38b45e98d68678e0ef0d3e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetInGameTimeMilliseconds' coverage is below the threshold 50%", - "markdown": "Method `GetInGameTimeMilliseconds` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls2/scholar.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 36, - "startColumn": 16, - "charOffset": 1667, - "charLength": 25, - "snippet": { - "text": "GetInGameTimeMilliseconds" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 34, - "startColumn": 1, - "charOffset": 1469, - "charLength": 280, - "snippet": { - "text": " public Process? GetProcess() => _process;\r\n public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, \"darksoulsii\", InitPointers, ResetPointers);\r\n public int GetInGameTimeMilliseconds() => 0;\r\n public TreeBuilder GetTreeBuilder()\r\n {\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4a3bbafd43f3f172", - "equalIndicator/v1": "f21c71840580d5811b56d74b49146b3b795f410c3f7f69e08e7d9c3d1aeb7266" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetAttribute' coverage is below the threshold 50%", - "markdown": "Method `GetAttribute` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls2/scholar.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 101, - "startColumn": 16, - "charOffset": 3574, - "charLength": 12, - "snippet": { - "text": "GetAttribute" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 99, - "startColumn": 1, - "charOffset": 3550, - "charLength": 117, - "snippet": { - "text": " }\r\n\r\n public int GetAttribute(Attribute attribute)\r\n {\r\n var offset = _attributeOffsets[attribute];\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "201405d54e01e7aa", - "equalIndicator/v1": "f23230d8248e0c5d3d5b6406a22bf14502d9d8ce700eec8ee9436f3764993141" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'SetLoggingEnabled' coverage is below the threshold 50%", - "markdown": "Method `SetLoggingEnabled` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Logger.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 28, - "startColumn": 24, - "charOffset": 1040, - "charLength": 17, - "snippet": { - "text": "SetLoggingEnabled" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 26, - "startColumn": 1, - "charOffset": 970, - "charLength": 142, - "snippet": { - "text": " private static object _logLock = new();\r\n\r\n public static void SetLoggingEnabled(bool enable)\r\n {\r\n LoggingEnabled = enable;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "408b4fbe7541c11f", - "equalIndicator/v1": "f2395053f2c3d4e35fa9c00858f4be1e8e13a9dca7558e1da004277bda5431c6" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ResetAutoSplitting' coverage is below the threshold 50%", - "markdown": "Method `ResetAutoSplitting` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls2Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 172, - "startColumn": 17, - "charOffset": 5017, - "charLength": 18, - "snippet": { - "text": "ResetAutoSplitting" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 170, - "startColumn": 1, - "charOffset": 4960, - "charLength": 111, - "snippet": { - "text": " private List _splits = [];\r\n\r\n public void ResetAutoSplitting()\r\n {\r\n _splits.Clear();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "bca7a3819577fae4", - "equalIndicator/v1": "f25bc2282f462046d2c83338c9b9f83af0d092d63695bf9bf15b2090262730c2" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'SetViewModel' coverage is below the threshold 50%", - "markdown": "Method `SetViewModel` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls3Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 52, - "startColumn": 17, - "charOffset": 1797, - "charLength": 12, - "snippet": { - "text": "SetViewModel" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 50, - "startColumn": 1, - "charOffset": 1777, - "charLength": 110, - "snippet": { - "text": "\r\n\r\n public void SetViewModel(MainViewModel mainViewModel)\r\n {\r\n _mainViewModel = mainViewModel;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1055ffb68ca78863", - "equalIndicator/v1": "f274c7e4c89112ed2e564a78f563d6dc46083421e5e4d8e9a159637be030b1f7" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_GroupName' coverage is below the threshold 50%", - "markdown": "Method `set_GroupName` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 496, - "startColumn": 9, - "charOffset": 15428, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 494, - "startColumn": 1, - "charOffset": 15385, - "charLength": 135, - "snippet": { - "text": " {\r\n get => _groupName;\r\n set => this.SetField(ref _groupName, value);\r\n }\r\n private string _groupName = null!;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "789283219649b430", - "equalIndicator/v1": "f2967b9d6c3338f78c06064cb281b79c3a7633a2d04f5458539555a8773d3b0b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_Level' coverage is below the threshold 50%", - "markdown": "Method `set_Level` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splits/DarkSouls2/Attribute.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 37, - "startColumn": 9, - "charOffset": 1374, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 35, - "startColumn": 1, - "charOffset": 1335, - "charLength": 112, - "snippet": { - "text": " {\r\n get => _level;\r\n set => this.SetField(ref _level, value);\r\n }\r\n private int _level;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b2766ea964d0368d", - "equalIndicator/v1": "f2ef51a28bcb339569bcb5f2ae7bdfe828e4618196fef306970494bfa9e10470" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_TimingTypes' coverage is below the threshold 50%", - "markdown": "Method `get_TimingTypes` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 164, - "startColumn": 9, - "charOffset": 6238, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 162, - "startColumn": 1, - "charOffset": 6147, - "charLength": 261, - "snippet": { - "text": " public ObservableCollection> TimingTypes\r\n {\r\n get => (ObservableCollection>)GetValue(TimingTypeDependencyProperty);\r\n set => SetValue(TimingTypeDependencyProperty, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f720c85d5e36144e", - "equalIndicator/v1": "f3c312c21b2ffc6f6c0d8bae0f85496c76c5aabf67e9229beaa12c18063442ea" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_Attributes' coverage is below the threshold 50%", - "markdown": "Method `set_Attributes` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 205, - "startColumn": 9, - "charOffset": 8664, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 203, - "startColumn": 1, - "charOffset": 8546, - "charLength": 181, - "snippet": { - "text": " {\r\n get => (ObservableCollection>)GetValue(AttributesDependencyProperty);\r\n set => SetValue(AttributesDependencyProperty, value);\r\n }\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "adcf017a5d613864", - "equalIndicator/v1": "f3f62dff7a52fd3eca0f9d2475480bda1255be82f50bb0d460b2f268d7266c10" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetTreeBuilder' coverage is below the threshold 50%", - "markdown": "Method `GetTreeBuilder` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Sekiro/Sekiro.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 50, - "startColumn": 24, - "charOffset": 2190, - "charLength": 14, - "snippet": { - "text": "GetTreeBuilder" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 48, - "startColumn": 1, - "charOffset": 2034, - "charLength": 258, - "snippet": { - "text": " public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, \"sekiro\", InitPointers, ResetPointers);\r\n\r\n public TreeBuilder GetTreeBuilder()\r\n {\r\n //MenuMan AOB is 48 8b 05 ? ? ? ? 0f b6 d1 48 8b 88 08 33 00 00 3, 7\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0abe896a842fcd29", - "equalIndicator/v1": "f427847c8947c23a319a092ccd8f2bc72bba03ab2ea106d1d342b9a2f8857e06" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'InjectMods' coverage is below the threshold 50%", - "markdown": "Method `InjectMods` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 96, - "startColumn": 37, - "charOffset": 3623, - "charLength": 10, - "snippet": { - "text": "InjectMods" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 94, - "startColumn": 1, - "charOffset": 3505, - "charLength": 176, - "snippet": { - "text": " public Process? GetProcess() => _armoredCore6.ProcessWrapper.GetProcess();\r\n\r\n private ResultErr InjectMods()\r\n {\r\n Exception? exception = null;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "09bcaae2a516a1a1", - "equalIndicator/v1": "f51f596c45710c64841f14d7f18cb2b5be381dc0ddf42d40c8f31fd49ed0727c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'TryBoyerMooreSearch' coverage is below the threshold 50%", - "markdown": "Method `TryBoyerMooreSearch` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 252, - "startColumn": 24, - "charOffset": 9984, - "charLength": 19, - "snippet": { - "text": "TryBoyerMooreSearch" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 250, - "startColumn": 1, - "charOffset": 9894, - "charLength": 193, - "snippet": { - "text": " /// Will return the first match it finds.\r\n /// \r\n public static bool TryBoyerMooreSearch(this byte[] haystack, byte?[] needle, out long result)\r\n {\r\n result = 0;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ed9e37a0229d3db4", - "equalIndicator/v1": "f555191de2229da8b15cdaee7b30b29b9269b62b4c15bd6da4209324c172d632" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_AddSplit' coverage is below the threshold 50%", - "markdown": "Method `get_AddSplit` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 255, - "startColumn": 9, - "charOffset": 11150, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 253, - "startColumn": 1, - "charOffset": 11101, - "charLength": 176, - "snippet": { - "text": " public RelayCommand AddSplit\r\n {\r\n get => (RelayCommand)GetValue(AddSplitDependencyProperty);\r\n set => SetValue(AddSplitDependencyProperty, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "752729a0d97eeb1c", - "equalIndicator/v1": "f5763a9c84b94119ad2c86383ed6e4f58fb16a85c65764e368324e97fce72331" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_DataOffset' coverage is below the threshold 50%", - "markdown": "Method `get_DataOffset` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/ParamTableEntry.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 22, - "startColumn": 30, - "charOffset": 938, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 20, - "startColumn": 1, - "charOffset": 873, - "charLength": 121, - "snippet": { - "text": "{\r\n public int Id { get; set; }\r\n public uint DataOffset { get; set; }\r\n public uint NameOffset { get; set; }\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d85671ce767498cc", - "equalIndicator/v1": "f5a34cdff9cc8fbfa0acb4bd1f61eff1e25dba2dee03608bc14018f9fa7879af" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteSByte' coverage is below the threshold 50%", - "markdown": "Method `WriteSByte` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/IMemory.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 164, - "startColumn": 24, - "charOffset": 5350, - "charLength": 10, - "snippet": { - "text": "WriteSByte" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 162, - "startColumn": 1, - "charOffset": 5318, - "charLength": 139, - "snippet": { - "text": " }\r\n\r\n public static void WriteSByte(this IMemory memory, long? offset, sbyte value)\r\n {\r\n var b = unchecked((byte)value);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5000c8ea62a5c2c7", - "equalIndicator/v1": "f5b8a2e334b9ef05ff2edf81743fad7375583f79d71a40a872d1fb53854f15a3" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'TryBoyerMooreSearch' coverage is below the threshold 50%", - "markdown": "Method `TryBoyerMooreSearch` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 188, - "startColumn": 24, - "charOffset": 7492, - "charLength": 19, - "snippet": { - "text": "TryBoyerMooreSearch" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 186, - "startColumn": 1, - "charOffset": 7402, - "charLength": 193, - "snippet": { - "text": " /// Will return the first match it finds.\r\n /// \r\n public static bool TryBoyerMooreSearch(this byte[] haystack, byte?[] needle, out long result)\r\n {\r\n result = 0;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0ae6e5f2587d8d07", - "equalIndicator/v1": "f5d93ef6266cec26fe44a95f8c2fbe08492201047622219a00a4911aea04f96c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadFloat' coverage is below the threshold 50%", - "markdown": "Method `ReadFloat` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 88, - "startColumn": 25, - "charOffset": 2840, - "charLength": 9, - "snippet": { - "text": "ReadFloat" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 86, - "startColumn": 1, - "charOffset": 2807, - "charLength": 155, - "snippet": { - "text": " }\r\n\r\n public static float ReadFloat(this IMemory memory, long offset)\r\n {\r\n return BitConverter.ToSingle(memory.ReadBytes(offset, 4), 0);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ced1a1088bf56afd", - "equalIndicator/v1": "f5dd8d8f86076655b9fd71a16289faea8bb9d671f1d914ee2cdacac78d1ff82a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteUint32' coverage is below the threshold 50%", - "markdown": "Method `WriteUint32` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 286, - "startColumn": 17, - "charOffset": 7520, - "charLength": 11, - "snippet": { - "text": "WriteUint32" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 284, - "startColumn": 1, - "charOffset": 7432, - "charLength": 193, - "snippet": { - "text": " public void WriteUint32(uint value) => WriteUint32(null, value);\r\n\r\n public void WriteUint32(long? offset, uint value)\r\n {\r\n WriteMemory(offset, BitConverter.GetBytes(value));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "8e54e196e411478c", - "equalIndicator/v1": "f5edfeab9c993ac454066f8dbfd92ed5d087f45a2ab36b6ef5edb6e692621eaa" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'InvokePropertyChanged' coverage is below the threshold 50%", - "markdown": "Method `InvokePropertyChanged` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/HierarchicalViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 44, - "startColumn": 17, - "charOffset": 1632, - "charLength": 21, - "snippet": { - "text": "InvokePropertyChanged" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 42, - "startColumn": 1, - "charOffset": 1550, - "charLength": 216, - "snippet": { - "text": " public event PropertyChangedEventHandler? PropertyChanged;\r\n\r\n public void InvokePropertyChanged(string propertyName)\r\n {\r\n PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "fe78232efe911e88", - "equalIndicator/v1": "f735eb6e8cf813a11e3fda7bb2bc62ca720c88b9f2428540d70b126fcc2d952f" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ToString' coverage is below the threshold 50%", - "markdown": "Method `ToString` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Result.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 83, - "startColumn": 28, - "charOffset": 2345, - "charLength": 8, - "snippet": { - "text": "ToString" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 81, - "startColumn": 1, - "charOffset": 2309, - "charLength": 91, - "snippet": { - "text": " }\r\n\r\n public override string ToString()\r\n {\r\n return IsOk ? \"Ok\" : \"Err\";\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a6d1c7ccd2275479", - "equalIndicator/v1": "f751f926d4d14bfb2041191233764ce570f0e328eca0015d0dfd9190115c454c" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'Memory.ByteArrayMemory' coverage is below the threshold 50%", - "markdown": "Class `Memory.ByteArrayMemory` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/IMemory.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 28, - "startColumn": 14, - "charOffset": 1022, - "charLength": 15, - "snippet": { - "text": "ByteArrayMemory" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 26, - "startColumn": 1, - "charOffset": 1004, - "charLength": 115, - "snippet": { - "text": "}\r\n\r\npublic class ByteArrayMemory(byte[] data) : IMemory\r\n{\r\n public byte[] ReadBytes(long? offset, int length)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "be423541ae40b451", - "equalIndicator/v1": "f7e8db63fbceeb2902fad34c445c59aa94e88bc0c74d4d64639a55309f8471a9" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'UpdateAllAchievements' coverage is below the threshold 50%", - "markdown": "Method `UpdateAllAchievements` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/DropMod.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 61, - "startColumn": 17, - "charOffset": 2174, - "charLength": 21, - "snippet": { - "text": "UpdateAllAchievements" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 59, - "startColumn": 1, - "charOffset": 2149, - "charLength": 103, - "snippet": { - "text": " }\r\n\r\n public void UpdateAllAchievements()\r\n {\r\n var items = darkSouls.GetInventory();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f6f1e7ff06d1ebfe", - "equalIndicator/v1": "f811dbb2eb9fa4ae82e5898b3f155c383dd74202f060505ac8d30aec29102b84" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteItemLotParam' coverage is below the threshold 50%", - "markdown": "Method `WriteItemLotParam` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 526, - "startColumn": 17, - "charOffset": 18533, - "charLength": 17, - "snippet": { - "text": "WriteItemLotParam" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 524, - "startColumn": 1, - "charOffset": 18331, - "charLength": 305, - "snippet": { - "text": " /// Provides an accessor to an itemLotParam. Do not capture this object; it's lifecycle will be managed efficiently. Only modify the itemlots via this accessor.\r\n /// \r\n public void WriteItemLotParam(int rowId, Action accessor)\r\n {\r\n if (!_itemLotParams.Any())\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f82ec6f3c1c4590a", - "equalIndicator/v1": "f8767709f8d0440941b212a1bc39122bb9938d518432cb043a22c4390dd31484" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Constructor 'RelayCommand' coverage is below the threshold 50%", - "markdown": "Constructor `RelayCommand` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/RelayCommand.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 28, - "startColumn": 12, - "charOffset": 1417, - "charLength": 12, - "snippet": { - "text": "RelayCommand" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 26, - "startColumn": 1, - "charOffset": 1196, - "charLength": 372, - "snippet": { - "text": " public RelayCommand(Action execute, Func canExecute) : this(_ => execute(), canExecute) { }\r\n public RelayCommand(Action execute) : this(execute, (Func?)null) { }\r\n public RelayCommand(Action execute, Func canExecute) : this(execute, _ => canExecute()) { }\r\n\r\n public event EventHandler CanExecuteChanged\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d00b5903b1a3ffde", - "equalIndicator/v1": "f89528966db2b1caaecdbc1526d4d6a400a3f5e6e24c3137896b56af5b59b8a0" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteBool' coverage is below the threshold 50%", - "markdown": "Method `WriteBool` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/IMemory.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 154, - "startColumn": 24, - "charOffset": 5045, - "charLength": 9, - "snippet": { - "text": "WriteBool" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 152, - "startColumn": 1, - "charOffset": 5013, - "charLength": 162, - "snippet": { - "text": " }\r\n\r\n public static void WriteBool(this IMemory memory, long? offset, bool value)\r\n {\r\n memory.WriteBytes(offset, BitConverter.GetBytes(value));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c32a64f1cf510d04", - "equalIndicator/v1": "f8c8f18ff023cf517e41132af308949fda7ba91e706e62d837dcb04dac95c116" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ResolveVersion' coverage is below the threshold 50%", - "markdown": "Method `ResolveVersion` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Extensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 86, - "startColumn": 21, - "charOffset": 2503, - "charLength": 14, - "snippet": { - "text": "ResolveVersion" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 84, - "startColumn": 1, - "charOffset": 2474, - "charLength": 155, - "snippet": { - "text": " }\r\n\r\n public static T ResolveVersion(this FileVersionInfo fileVersionInfo) where T : Enum\r\n {\r\n var values = Enum.GetValues(typeof(T))\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f2bf20e5f61cdd4e", - "equalIndicator/v1": "f905e1b7d645b211b66f5d9d35594ab245fb276fabf430bb09771e9eff1108b1" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'EldenRing.HierarchicalSplitTypeViewModel' coverage is below the threshold 50%", - "markdown": "Class `EldenRing.HierarchicalSplitTypeViewModel` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/SplitViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 50, - "startColumn": 14, - "charOffset": 1716, - "charLength": 30, - "snippet": { - "text": "HierarchicalSplitTypeViewModel" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 48, - "startColumn": 1, - "charOffset": 1698, - "charLength": 100, - "snippet": { - "text": "}\r\n\r\npublic class HierarchicalSplitTypeViewModel : ICustomNotifyPropertyChanged\r\n{\r\n [XmlIgnore]\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "58fb67713d3f6d84", - "equalIndicator/v1": "f923a52f530e9f9fb4e970f189d04438d76da2f03c6628593b86c0d6ea5eca0d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteInt16' coverage is below the threshold 50%", - "markdown": "Method `WriteInt16` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 129, - "startColumn": 24, - "charOffset": 3984, - "charLength": 10, - "snippet": { - "text": "WriteInt16" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 127, - "startColumn": 1, - "charOffset": 3952, - "charLength": 163, - "snippet": { - "text": " }\r\n\r\n public static void WriteInt16(this IMemory memory, long offset, short value)\r\n {\r\n memory.WriteBytes(offset, BitConverter.GetBytes(value));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f60ba5c7315dd259", - "equalIndicator/v1": "f928e021301f054461c325cc30a904c044cbe5b701113b482792b345f1bec19c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'NgCount' coverage is below the threshold 50%", - "markdown": "Method `NgCount` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/DarkSouls1.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 37, - "startColumn": 16, - "charOffset": 1731, - "charLength": 7, - "snippet": { - "text": "NgCount" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 35, - "startColumn": 1, - "charOffset": 1533, - "charLength": 403, - "snippet": { - "text": " public Vector3f GetPosition() => _darkSouls1?.GetPosition() ?? new Vector3f(0,0,0);\r\n public int GetInGameTimeMilliseconds() => _darkSouls1?.GetInGameTimeMilliseconds() ?? 0;\r\n public int NgCount() => _darkSouls1?.NgCount() ?? 0;\r\n public int GetCurrentSaveSlot() => _darkSouls1?.GetCurrentSaveSlot() ?? -1;\r\n public void ResetInventoryIndices() => _darkSouls1?.ResetInventoryIndices();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "725ca91e97b00fc1", - "equalIndicator/v1": "f946e072eb1cbb4c3587093f7f8a4a85718fb6f32d7c64eb51c0f1e5097534fb" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_Z' coverage is below the threshold 50%", - "markdown": "Method `get_Z` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/PositionViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 68, - "startColumn": 9, - "charOffset": 1850, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 66, - "startColumn": 1, - "charOffset": 1815, - "charLength": 115, - "snippet": { - "text": " public float Z\r\n {\r\n get => Position.Z;\r\n set => this.SetField(ref Position.Z, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b29a295b9203b4b8", - "equalIndicator/v1": "f94c311f5241d259007919e94f055044b8f9122bbd0c1ffef99b071c0799eb7f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'OnPreviewLostKeyboardFocus' coverage is below the threshold 50%", - "markdown": "Method `OnPreviewLostKeyboardFocus` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/FilteredComboBox.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 116, - "startColumn": 29, - "charOffset": 3623, - "charLength": 26, - "snippet": { - "text": "OnPreviewLostKeyboardFocus" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 114, - "startColumn": 1, - "charOffset": 3586, - "charLength": 128, - "snippet": { - "text": " }\r\n\r\n protected override void OnPreviewLostKeyboardFocus(KeyboardFocusChangedEventArgs e)\r\n {\r\n ClearFilter();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f787267066d6f650", - "equalIndicator/v1": "f9bd7896319d113c047ace973017520690605e3d6d06df07a84dcd91c118dabf" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'InvokePropertyChanged' coverage is below the threshold 50%", - "markdown": "Method `InvokePropertyChanged` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/BoolDescriptionViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 46, - "startColumn": 17, - "charOffset": 1484, - "charLength": 21, - "snippet": { - "text": "InvokePropertyChanged" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 44, - "startColumn": 1, - "charOffset": 1402, - "charLength": 216, - "snippet": { - "text": " public event PropertyChangedEventHandler? PropertyChanged;\r\n\r\n public void InvokePropertyChanged(string propertyName)\r\n {\r\n PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "337c9d633bb348ef", - "equalIndicator/v1": "f9cf193545d59df4de2ca48ae342e0d62c11b1097f3a1c71290fba7419e4410f" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'Splitters.DarkSouls3Splitter' coverage is below the threshold 50%", - "markdown": "Class `Splitters.DarkSouls3Splitter` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls3Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 30, - "startColumn": 14, - "charOffset": 1132, - "charLength": 18, - "snippet": { - "text": "DarkSouls3Splitter" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 28, - "startColumn": 1, - "charOffset": 1082, - "charLength": 138, - "snippet": { - "text": "namespace SoulSplitter.Splitters;\r\n\r\npublic class DarkSouls3Splitter : ISplitter\r\n{\r\n private readonly LiveSplitState _liveSplitState;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0dc146263c3dfa01", - "equalIndicator/v1": "f9f6ea5dc5156555236a761205eb0a79ebd0ba4f8563819c0cbc0a805e22b8d7" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_NewSplitType' coverage is below the threshold 50%", - "markdown": "Method `get_NewSplitType` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 82, - "startColumn": 9, - "charOffset": 2540, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 80, - "startColumn": 1, - "charOffset": 2480, - "charLength": 106, - "snippet": { - "text": " public EldenRingSplitType? NewSplitType\r\n {\r\n get => _newSplitType;\r\n set\r\n {\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3e282e91805ebbe2", - "equalIndicator/v1": "f9fb24b79a300fdd52c3ac45d09de2227ead0e22240a3d61f5d486bd6ad72fdd" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ConvertBack' coverage is below the threshold 50%", - "markdown": "Method `ConvertBack` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Converters/DropModTypeConverter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 35, - "startColumn": 19, - "charOffset": 1348, - "charLength": 11, - "snippet": { - "text": "ConvertBack" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 33, - "startColumn": 1, - "charOffset": 1321, - "charLength": 159, - "snippet": { - "text": " }\r\n\r\n public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)\r\n {\r\n return (DropModType)parameter!;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e6e4a7f05f450ece", - "equalIndicator/v1": "fa24daa3d17d58cf7d669cb48c2c73385504fac6afe5b58673284a29559d9600" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'SoulMemory.Result' coverage is below the threshold 50%", - "markdown": "Class `SoulMemory.Result` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Result.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 215, - "startColumn": 14, - "charOffset": 5013, - "charLength": 6, - "snippet": { - "text": "Result" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 213, - "startColumn": 1, - "charOffset": 4936, - "charLength": 129, - "snippet": { - "text": "/// Result type with generic Ok and Error type\r\n/// \r\npublic class Result\r\n{\r\n private readonly TOk _ok;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d44fe7bcd76a24e5", - "equalIndicator/v1": "fad6f4d8bbb56889ffea6a20e27a9f512f9c1584892dd26ee7d19a13fb337b9e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_SelectedFlagDescription' coverage is below the threshold 50%", - "markdown": "Method `set_SelectedFlagDescription` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/FlagTrackerViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 347, - "startColumn": 9, - "charOffset": 10766, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 345, - "startColumn": 1, - "charOffset": 10709, - "charLength": 179, - "snippet": { - "text": " {\r\n get => _selectedFlagDescription;\r\n set => this.SetField(ref _selectedFlagDescription, value);\r\n }\r\n private FlagDescription? _selectedFlagDescription;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4aee12c7ff0b47eb", - "equalIndicator/v1": "faf313ae371ad157dd7a5f18e5e6052e0c673dbb86228864618d93b59d9ea250" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_MethodName' coverage is below the threshold 50%", - "markdown": "Method `set_MethodName` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/soulmods/Soulmods.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 45, - "startColumn": 37, - "charOffset": 1518, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 43, - "startColumn": 1, - "charOffset": 1435, - "charLength": 104, - "snippet": { - "text": "public class RustCallAttribute : Attribute\r\n{\r\n public string MethodName { get; set; } = null!;\r\n}\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4515d5a3891d8084", - "equalIndicator/v1": "fb1fcc67e718a81279daa98fa5f08b082e889e2de8eabb9dafc81c3ac1557c89" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'UI.MainWindow' coverage is below the threshold 50%", - "markdown": "Class `UI.MainWindow` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/MainWindow.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 30, - "startColumn": 22, - "charOffset": 1150, - "charLength": 10, - "snippet": { - "text": "MainWindow" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 28, - "startColumn": 1, - "charOffset": 1069, - "charLength": 129, - "snippet": { - "text": "/// Interaction logic for MainControl.xaml\r\n/// \r\npublic partial class MainWindow : Window\r\n{\r\n public MainWindow()\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "8194dd0e412a241c", - "equalIndicator/v1": "fb5ce35a5099938f073fa0c88ac63c98699b90e8f07be16a7035a1b06c32a722" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteByte' coverage is below the threshold 50%", - "markdown": "Method `WriteByte` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 118, - "startColumn": 24, - "charOffset": 3663, - "charLength": 9, - "snippet": { - "text": "WriteByte" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 116, - "startColumn": 1, - "charOffset": 3613, - "charLength": 158, - "snippet": { - "text": " #region Writing\r\n \r\n public static void WriteByte(this IMemory memory, long offset, byte value)\r\n {\r\n memory.WriteBytes(offset, [value]);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e0400d284076a43c", - "equalIndicator/v1": "fb70c86d05f02da2889bc612c8deca62e2cb71328b653d1acfa5499478d6ae2e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'GetProcess' coverage is below the threshold 50%", - "markdown": "Method `GetProcess` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls2/vanilla.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 34, - "startColumn": 21, - "charOffset": 1464, - "charLength": 10, - "snippet": { - "text": "GetProcess" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 32, - "startColumn": 1, - "charOffset": 1281, - "charLength": 347, - "snippet": { - "text": "\r\n #region Refresh/init/reset ================================================================================================================================\r\n public Process? GetProcess() => _process;\r\n\r\n public ResultErr TryRefresh() => MemoryScanner.TryRefresh(ref _process, \"darksoulsii\", InitPointers, ResetPointers);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a919a125b1da30bc", - "equalIndicator/v1": "fbbe4b2f0261f2b752ca30eefe08ece43a18f9ac8b6c62a50d00f5924a15e656" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadSByte' coverage is below the threshold 50%", - "markdown": "Method `ReadSByte` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/IMemory.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 78, - "startColumn": 25, - "charOffset": 2477, - "charLength": 9, - "snippet": { - "text": "ReadSByte" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 76, - "startColumn": 1, - "charOffset": 2444, - "charLength": 141, - "snippet": { - "text": " }\r\n\r\n public static sbyte ReadSByte(this IMemory memory, long? offset = null)\r\n {\r\n var b = memory.ReadBytes(offset, 1)[0];\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "50f4e129c7685480", - "equalIndicator/v1": "fbec4b73846ef4a8ef1dc17ace713b6780754e9552610b3db47da350516547d9" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_RemoveSplitEnabled' coverage is below the threshold 50%", - "markdown": "Method `set_RemoveSplitEnabled` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 260, - "startColumn": 9, - "charOffset": 9025, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 258, - "startColumn": 1, - "charOffset": 8973, - "charLength": 152, - "snippet": { - "text": " {\r\n get => _removeSplitEnabled;\r\n set => this.SetField(ref _removeSplitEnabled, value);\r\n }\r\n private bool _removeSplitEnabled;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4e435e7b0507ec32", - "equalIndicator/v1": "fc7099850766eaf69d953e5dc2ffb214cd1fb977a8d6432e4dbd4baeafb0b1e7" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'Splitters.ArmoredCore6Splitter' coverage is below the threshold 50%", - "markdown": "Class `Splitters.ArmoredCore6Splitter` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/ArmoredCore6Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 28, - "startColumn": 14, - "charOffset": 1077, - "charLength": 20, - "snippet": { - "text": "ArmoredCore6Splitter" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 26, - "startColumn": 1, - "charOffset": 1027, - "charLength": 207, - "snippet": { - "text": "namespace SoulSplitter.Splitters;\r\n\r\npublic class ArmoredCore6Splitter(LiveSplitState state, IGame game) : BaseSplitter(state, game)\r\n{\r\n private readonly ArmoredCore6 _armoredCore6 = (ArmoredCore6)game;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3282a966d30d2ab9", - "equalIndicator/v1": "fcd9ec462c7449d2efe7940909678275c96c59f009f034da32887c9c2d05db65" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'DecryptSl2' coverage is below the threshold 50%", - "markdown": "Method `DecryptSl2` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Sl2Reader.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 116, - "startColumn": 27, - "charOffset": 3870, - "charLength": 10, - "snippet": { - "text": "DecryptSl2" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 114, - "startColumn": 1, - "charOffset": 3763, - "charLength": 184, - "snippet": { - "text": " /// iv\r\n /// decrypted bytes\r\n private static byte[] DecryptSl2(byte[] cipherBytes)\r\n {\r\n var encryptor = Aes.Create();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a9e834b0b9200318", - "equalIndicator/v1": "fd1f6f1517cbb30ccf79147b4256c603807f4f7e029d82526890d997eeba4511" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'Native.Gdi32' coverage is below the threshold 50%", - "markdown": "Class `Native.Gdi32` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Native/Gdi32.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 24, - "startColumn": 21, - "charOffset": 984, - "charLength": 5, - "snippet": { - "text": "Gdi32" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 22, - "startColumn": 1, - "charOffset": 930, - "charLength": 160, - "snippet": { - "text": "namespace SoulSplitter.Native;\r\n\r\npublic static class Gdi32\r\n{\r\n [DllImport(\"gdi32.dll\", CharSet = CharSet.Auto, SetLastError = true, ExactSpelling = true)]\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "94ff81dacef356ec", - "equalIndicator/v1": "fd2ba151350295c1f4c80e0f6ae334fb073d9a63a06ff52b928f4b5a44196b41" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'set_ProcessWrapper' coverage is below the threshold 50%", - "markdown": "Method `set_ProcessWrapper` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Process/ProcessHook.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 23, - "startColumn": 50, - "charOffset": 1012, - "charLength": 3, - "snippet": { - "text": "set" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 21, - "startColumn": 1, - "charOffset": 866, - "charLength": 282, - "snippet": { - "text": "public class ProcessHook(string name, IProcessWrapper? processWrapper = null) : IProcessHook\r\n{\r\n public IProcessWrapper ProcessWrapper { get; set; } = processWrapper ?? new ProcessWrapper();\r\n\r\n public System.Diagnostics.Process? GetProcess() => ProcessWrapper.GetProcess();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5234b08b747a2b19", - "equalIndicator/v1": "fd409e76938c97fe8f9e1ad341d2a6d999c4331a0c6d2c28a95980195a051ab5" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_Value' coverage is below the threshold 50%", - "markdown": "Method `get_Value` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/BoolDescriptionViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 32, - "startColumn": 9, - "charOffset": 1160, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 30, - "startColumn": 1, - "charOffset": 1122, - "charLength": 110, - "snippet": { - "text": " public bool Value\r\n {\r\n get => _value;\r\n set => this.SetField(ref _value, value);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ed13ef59cb6455ee", - "equalIndicator/v1": "fd6bedf9555d6239eb3322da3d592c0ec5cd6d5ce1cdd5880eb7d6bd8f0b44e6" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'IsPlayerLoaded' coverage is below the threshold 50%", - "markdown": "Method `IsPlayerLoaded` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 238, - "startColumn": 17, - "charOffset": 8584, - "charLength": 14, - "snippet": { - "text": "IsPlayerLoaded" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 236, - "startColumn": 1, - "charOffset": 8500, - "charLength": 166, - "snippet": { - "text": " public int GetPlayerHealth() => _playerIns.ReadInt32(0x3e8);\r\n\r\n public bool IsPlayerLoaded() => !_playerIns.IsNullPtr();\r\n\r\n public bool IsWarpRequested()\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "06d23da039c47a26", - "equalIndicator/v1": "fdcbf7c8a47d550ec8d34eb635a8d0aa171ea6c289056ab4a808f11634ef075c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'WriteSByte' coverage is below the threshold 50%", - "markdown": "Method `WriteSByte` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 123, - "startColumn": 24, - "charOffset": 3804, - "charLength": 10, - "snippet": { - "text": "WriteSByte" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 121, - "startColumn": 1, - "charOffset": 3772, - "charLength": 138, - "snippet": { - "text": " }\r\n\r\n public static void WriteSByte(this IMemory memory, long offset, sbyte value)\r\n {\r\n var b = unchecked((byte)value);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4f7b71b288092675", - "equalIndicator/v1": "fde9d9b7c07e2e40d5b7a0a6cec2e95834636f6f48013463ca6d78ea1520fcd1" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'IsLoading' coverage is below the threshold 50%", - "markdown": "Method `IsLoading` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls2/vanilla.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 92, - "startColumn": 17, - "charOffset": 3255, - "charLength": 9, - "snippet": { - "text": "IsLoading" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 90, - "startColumn": 1, - "charOffset": 3230, - "charLength": 95, - "snippet": { - "text": " }\r\n\r\n public bool IsLoading()\r\n {\r\n return _loadState.ReadUInt32(0x1D4) == 1;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "daa35d79e7e998bf", - "equalIndicator/v1": "fe290d47d5ef04a135edbeb1c395298cd78add247215b026c9aa73000dd94cf3" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Class 'EldenRing.Position' coverage is below the threshold 50%", - "markdown": "Class `EldenRing.Position` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/Position.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 19, - "startColumn": 14, - "charOffset": 855, - "charLength": 8, - "snippet": { - "text": "Position" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 17, - "startColumn": 1, - "charOffset": 807, - "charLength": 83, - "snippet": { - "text": "namespace SoulMemory.EldenRing;\r\n\r\npublic class Position\r\n{\r\n public byte Area;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "625df3cd734d9d92", - "equalIndicator/v1": "fe2a91b3bf66cc0fa55ce4bbdc166fc7227b63785c5dc29e53d03ef5ee593e0a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Constructor 'PointerAppender' coverage is below the threshold 50%", - "markdown": "Constructor `PointerAppender` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/PointerAppender.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 22, - "startColumn": 14, - "charOffset": 933, - "charLength": 15, - "snippet": { - "text": "PointerAppender" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 20, - "startColumn": 1, - "charOffset": 869, - "charLength": 149, - "snippet": { - "text": "{\r\n private readonly PointerNode _pointerNode;\r\n internal PointerAppender(PointerNode pointerNode)\r\n {\r\n _pointerNode = pointerNode;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "fe11edfbb6cb2dac", - "equalIndicator/v1": "fe3ffe8f8271ae3ee000c2e82aa3f9023247f3dbadd22d49d35e60e4a0e6952d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'get_isValid' coverage is below the threshold 50%", - "markdown": "Method `get_isValid` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Native/Structs/Image/IMAGE_NT_HEADERS32.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 44, - "startColumn": 9, - "charOffset": 1403, - "charLength": 3, - "snippet": { - "text": "get" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 42, - "startColumn": 1, - "charOffset": 1363, - "charLength": 156, - "snippet": { - "text": " public bool isValid\r\n {\r\n get { return _Signature == \"PE\\0\\0\" && OptionalHeader.Magic == MagicType.IMAGE_NT_OPTIONAL_HDR32_MAGIC; }\r\n }\r\n}\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "eb9f1124366ee0f4", - "equalIndicator/v1": "fed410eab8dea6e2e72f60de62a1ac220831ce0e92b0bc8246a03bd3ad34b83e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ResetTimer' coverage is below the threshold 50%", - "markdown": "Method `ResetTimer` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls2Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 120, - "startColumn": 18, - "charOffset": 3437, - "charLength": 10, - "snippet": { - "text": "ResetTimer" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 118, - "startColumn": 1, - "charOffset": 3411, - "charLength": 94, - "snippet": { - "text": " }\r\n\r\n private void ResetTimer()\r\n {\r\n _timerState = TimerState.WaitForStart;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7500021ef886bb95", - "equalIndicator/v1": "ff5c87fd87540c70b25374bfb4d5272a40db33876c51ecd0de3a34d6330b6d97" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ReadInt32' coverage is below the threshold 50%", - "markdown": "Method `ReadInt32` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 68, - "startColumn": 23, - "charOffset": 2214, - "charLength": 9, - "snippet": { - "text": "ReadInt32" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 66, - "startColumn": 1, - "charOffset": 2179, - "charLength": 156, - "snippet": { - "text": " }\r\n \r\n public static int ReadInt32(this IMemory memory, long offset)\r\n {\r\n return BitConverter.ToInt32(memory.ReadBytes(offset, 4), 0);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5685393012e712e7", - "equalIndicator/v1": "ff67876f278e033c09369d778b687da67e350ac79d0518ed334a669f4e490ffa" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'CanAddSplit' coverage is below the threshold 50%", - "markdown": "Method `CanAddSplit` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Sekiro/SekiroViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 42, - "startColumn": 18, - "charOffset": 1533, - "charLength": 11, - "snippet": { - "text": "CanAddSplit" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 40, - "startColumn": 1, - "charOffset": 1342, - "charLength": 281, - "snippet": { - "text": " #region add/remove splits ============================================================================================================================================\r\n\r\n private bool CanAddSplit()\r\n {\r\n if (!NewSplitTimingType.HasValue || !NewSplitType.HasValue)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "192f94683cef8384", - "equalIndicator/v1": "ff6d02bcc2c1495dfb9c21477f9c2a585079ef04cfc7bcba8ca9a8978fc2e7d8" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NetCoverageInspection", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'ResolveOffsets' coverage is below the threshold 50%", - "markdown": "Method `ResolveOffsets` coverage is below the threshold 50%" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 82, - "startColumn": 18, - "charOffset": 2314, - "charLength": 14, - "snippet": { - "text": "ResolveOffsets" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 80, - "startColumn": 1, - "charOffset": 2291, - "charLength": 137, - "snippet": { - "text": " \r\n\r\n private long ResolveOffsets(List offsets, StringBuilder? debugStringBuilder = null)\r\n {\r\n if (Process == null)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c44f7a89a79e3a67", - "equalIndicator/v1": "ff83078d7aea0fa9924da744717ab59a49e70bc5fb6981d91a1d3aa7c7fd0254" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NonAsciiCharacters", - "kind": "fail", - "level": "warning", - "message": { - "text": "Non-ASCII symbols in ASCII word", - "markdown": "Non-ASCII symbols in ASCII word" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Parameters/ShadowBank.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 126, - "startColumn": 37, - "charOffset": 3693, - "charLength": 1, - "snippet": { - "text": "G" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 124, - "startColumn": 1, - "charOffset": 3621, - "charLength": 131, - "snippet": { - "text": " {\r\n get => _GradFactor;\r\n set => WriteParamField(ref _GradFactor, value);\r\n }\r\n private float _GradFactor;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "dfabc1064bf43018", - "equalIndicator/v1": "4d8bbaa7f51c58f00b4ebdc3f5aa6a666df93ba89f38357c60ec2214580c5363" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NonAsciiCharacters", - "kind": "fail", - "level": "warning", - "message": { - "text": "Non-ASCII characters", - "markdown": "Non-ASCII characters" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Parameters/ShadowBank.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 126, - "startColumn": 37, - "charOffset": 3693, - "charLength": 1, - "snippet": { - "text": "G" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 124, - "startColumn": 1, - "charOffset": 3621, - "charLength": 131, - "snippet": { - "text": " {\r\n get => _GradFactor;\r\n set => WriteParamField(ref _GradFactor, value);\r\n }\r\n private float _GradFactor;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "dfabc1064bf43018", - "equalIndicator/v1": "5d67cae54c8a4eb87660e1203b3de38ead4ae697f4e67ced4e7d55e432366616" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#" - ] - } - }, - { - "ruleId": "NotAccessedField.Local", - "kind": "fail", - "level": "warning", - "message": { - "text": "Field '_mainViewModel' is assigned but its value is never used", - "markdown": "Field '_mainViewModel' is assigned but its value is never used" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls2Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 34, - "startColumn": 27, - "charOffset": 1302, - "charLength": 14, - "snippet": { - "text": "_mainViewModel" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 32, - "startColumn": 1, - "charOffset": 1167, - "charLength": 219, - "snippet": { - "text": " private readonly DarkSouls2 _darkSouls2;\r\n private DarkSouls2ViewModel _darkSouls2ViewModel = null!;\r\n private MainViewModel _mainViewModel = null!;\r\n private readonly LiveSplitState _liveSplitState;\r\n \r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "2bae4fa05ca0cfb3", - "equalIndicator/v1": "4abdaf2af952cc8136482d37b9fb0726ff0fd4d78a2764f2edc47ad3d8e8f744" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "NotAccessedVariable", - "kind": "fail", - "level": "warning", - "message": { - "text": "Local variable 's' is only assigned but its value is never used", - "markdown": "Local variable 's' is only assigned but its value is never used" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/DropMod.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 80, - "startColumn": 17, - "charOffset": 2780, - "charLength": 1, - "snippet": { - "text": "s" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 78, - "startColumn": 1, - "charOffset": 2692, - "charLength": 214, - "snippet": { - "text": " foreach (SwitchableDrop temp in _switchableWeapons)\r\n {\r\n var s = temp; //structs need to be put in a variable in order to be mutable. Meme.\r\n s.ShouldSwitch = true;\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "362bf94d5e894da3", - "equalIndicator/v1": "eb67250048a9c9e8eaa57a16ce6fc8cd36dc3fd5a8398f481ae03dd7c0b25a6e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "PrivateFieldCanBeConvertedToLocalVariable", - "kind": "fail", - "level": "warning", - "message": { - "text": "The field is always assigned before being used and can be converted into a local variable", - "markdown": "The field is always assigned before being used and can be converted into a local variable" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 62, - "startColumn": 30, - "charOffset": 2370, - "charLength": 7, - "snippet": { - "text": "_noLogo" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 60, - "startColumn": 1, - "charOffset": 2294, - "charLength": 165, - "snippet": { - "text": "\r\n private readonly Pointer _eventFlagMan;\r\n private readonly Pointer _noLogo;\r\n private readonly Pointer _fd4Time;\r\n private readonly Pointer _menuMan;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "92b8ef1384a389c2", - "equalIndicator/v1": "54703a02d64528cbb6f3be82e516a0c688e94165912bed494f5c8dc8778e0075" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "PrivateFieldCanBeConvertedToLocalVariable", - "kind": "fail", - "level": "warning", - "message": { - "text": "The field is always assigned before being used and can be converted into a local variable", - "markdown": "The field is always assigned before being used and can be converted into a local variable" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/BaseParam.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 30, - "startColumn": 97, - "charOffset": 1203, - "charLength": 24, - "snippet": { - "text": "_paramFieldPropertyCache" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 28, - "startColumn": 1, - "charOffset": 1071, - "charLength": 289, - "snippet": { - "text": "public abstract class BaseParam\r\n{\r\n private readonly List<(PropertyInfo propertyInfo, ParamFieldAttribute paramFieldAttribute)> _paramFieldPropertyCache;\r\n private readonly List<(PropertyInfo propertyInfo, ParamBitFieldAttribute paramFieldAttribute)> _paramBitfieldPropertyCache;\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "56556f087105061e", - "equalIndicator/v1": "e0d54e06da3c865ebbe5ae3bcaece1640ca0a3a4ebce1a46bde45c59878c866c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantAssignment", - "kind": "fail", - "level": "warning", - "message": { - "text": "Value assigned is not used in any execution path", - "markdown": "Value assigned is not used in any execution path" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerTreeBuilder.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 71, - "startColumn": 29, - "charOffset": 2693, - "charLength": 3, - "snippet": { - "text": "= 0" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 69, - "startColumn": 1, - "charOffset": 2618, - "charLength": 158, - "snippet": { - "text": " foreach (var node in Tree)\r\n {\r\n long scanResult = 0;\r\n bool success = false;\r\n switch (node.PointerNodeType)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c1bedbd60c3047c5", - "equalIndicator/v1": "12046fbd93afd6f435002da781d1a8a0ed91da98e3283b61b7b2fb101ea198af" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantAssignment", - "kind": "fail", - "level": "warning", - "message": { - "text": "Value assigned is not used in any execution path", - "markdown": "Value assigned is not used in any execution path" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 196, - "startColumn": 36, - "charOffset": 7035, - "charLength": 3, - "snippet": { - "text": "= 0" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 194, - "startColumn": 1, - "charOffset": 6911, - "charLength": 176, - "snippet": { - "text": " //They are written out like this explicitly, to match the game's assembly\r\n\r\n long calculatedPointer = 0;\r\n\r\n //jump to calculate ptr if zero\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b4ad44436c99d73d", - "equalIndicator/v1": "1c5f68fd9b2dfcc13e4f2e06efc1c21693e04d36f5b04629398f1bcfd1add630" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantAssignment", - "kind": "fail", - "level": "warning", - "message": { - "text": "Value assigned is not used in any execution path", - "markdown": "Value assigned is not used in any execution path" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Native/Kernel32.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 328, - "startColumn": 33, - "charOffset": 12443, - "charLength": 3, - "snippet": { - "text": "= 0" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 326, - "startColumn": 1, - "charOffset": 12369, - "charLength": 130, - "snippet": { - "text": " //moduleImageDosHeader.isValid\r\n\r\n uint exportTableAddress = 0;\r\n if (Is64Bit(process).Unwrap())\r\n {\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e771241043cab8ed", - "equalIndicator/v1": "1d2dab82094abcf69a8b62e6ee34c86d6d0808b6a23282969c714cef97176235" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantAssignment", - "kind": "fail", - "level": "warning", - "message": { - "text": "Value assigned is not used in any execution path", - "markdown": "Value assigned is not used in any execution path" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Sekiro/Sekiro.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 536, - "startColumn": 31, - "charOffset": 19796, - "charLength": 3, - "snippet": { - "text": "= 0" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 534, - "startColumn": 1, - "charOffset": 19743, - "charLength": 165, - "snippet": { - "text": "\r\n //timer mod\r\n long igtFixEntryPoint = 0;\r\n //cvttss2si rax, xmm0 <---\r\n //add [rcx+9Ch], eax ; timer_update\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9606d5c8dddd9d63", - "equalIndicator/v1": "2650c218116d2cc8919fa3ebf87080ea0bdbbda618ec2a04b1e7ad5baf6e13dc" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantAssignment", - "kind": "fail", - "level": "warning", - "message": { - "text": "Value assigned is not used in any execution path", - "markdown": "Value assigned is not used in any execution path" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Sekiro/Sekiro.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 502, - "startColumn": 37, - "charOffset": 18526, - "charLength": 3, - "snippet": { - "text": "= 0" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 500, - "startColumn": 1, - "charOffset": 18463, - "charLength": 111, - "snippet": { - "text": " string version;\r\n\r\n uint logoCodeBytesPointFive = 0;\r\n uint logoCodeBytesPointSix = 0;\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ed22952f637bf55f", - "equalIndicator/v1": "2b767feae9ae8cc78395b8dd7e2f3c5913b612d3e773980c99f1a21eac99ea98" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantAssignment", - "kind": "fail", - "level": "warning", - "message": { - "text": "Value assigned is not used in any execution path", - "markdown": "Value assigned is not used in any execution path" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Sekiro/Sekiro.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 503, - "startColumn": 36, - "charOffset": 18567, - "charLength": 3, - "snippet": { - "text": "= 0" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 501, - "startColumn": 1, - "charOffset": 18488, - "charLength": 88, - "snippet": { - "text": "\r\n uint logoCodeBytesPointFive = 0;\r\n uint logoCodeBytesPointSix = 0;\r\n\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "baa5e17aaf56cc4e", - "equalIndicator/v1": "373e06a4c46fb20724a4a1ba6b5cc7ea4331aa15ca59375aaa65247483ff3f3d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantAssignment", - "kind": "fail", - "level": "warning", - "message": { - "text": "Value assigned is not used in any execution path", - "markdown": "Value assigned is not used in any execution path" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/ItemReader.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 71, - "startColumn": 24, - "charOffset": 2838, - "charLength": 3, - "snippet": { - "text": "= 0" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 69, - "startColumn": 1, - "charOffset": 2782, - "charLength": 155, - "snippet": { - "text": "\r\n //Decode item\r\n int id = 0;\r\n ItemInfusion infusion = ItemInfusion.Normal;\r\n int level = 0;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "8fd4a00008e9c7f2", - "equalIndicator/v1": "41ffce7ceadccc546fa16bd524e0072fa26d01dd9361d79e6b7b5d136715ba3f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantAssignment", - "kind": "fail", - "level": "warning", - "message": { - "text": "Value assigned is not used in any execution path", - "markdown": "Value assigned is not used in any execution path" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerTreeBuilder.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 72, - "startColumn": 26, - "charOffset": 2724, - "charLength": 7, - "snippet": { - "text": "= false" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 70, - "startColumn": 1, - "charOffset": 2654, - "charLength": 137, - "snippet": { - "text": " {\r\n long scanResult = 0;\r\n bool success = false;\r\n switch (node.PointerNodeType)\r\n {\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ad442d00f292f65d", - "equalIndicator/v1": "4ae49c8ef4a153bbf96e69a337dfe6114d363e2b6d580db69457a21eecf43257" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantAssignment", - "kind": "fail", - "level": "warning", - "message": { - "text": "Value assigned is not used in any execution path", - "markdown": "Value assigned is not used in any execution path" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/MainViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 414, - "startColumn": 17, - "charOffset": 12847, - "charLength": 4, - "snippet": { - "text": "= \"\"" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 412, - "startColumn": 1, - "charOffset": 12817, - "charLength": 148, - "snippet": { - "text": " };\r\n\r\n var xml = \"\";\r\n using var stream = new StringWriter();\r\n using var writer = XmlWriter.Create(stream, settings);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "57a9a35d48361c5c", - "equalIndicator/v1": "636481f6e0338f5bf111aa27e42ac5bc8fc7576c83ab0fe93a3231b49a30ae3e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantAssignment", - "kind": "fail", - "level": "warning", - "message": { - "text": "Value assigned is not used in any execution path", - "markdown": "Value assigned is not used in any execution path" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Sekiro/Sekiro.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 542, - "startColumn": 28, - "charOffset": 20069, - "charLength": 3, - "snippet": { - "text": "= 0" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 540, - "startColumn": 1, - "charOffset": 19952, - "charLength": 302, - "snippet": { - "text": " //cmp dword ptr [rax+9Ch], 0D693A018h\r\n //jbe short loc_1407A8D41\r\n long igtFixCodeLoc = 0; //Start of TutorialMsgDialog constructor. This is dead code after applying the no-tut mod so the timer mod can be injected here\r\n \r\n // finding igtFixCodeLoc address\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "445fd3712e478f47", - "equalIndicator/v1": "a044e0542a480b8dc5ff4953a89a85a710ac15e12983e5b439dc467535f57919" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantAssignment", - "kind": "fail", - "level": "warning", - "message": { - "text": "Value assigned is not used in any execution path", - "markdown": "Value assigned is not used in any execution path" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 55, - "startColumn": 29, - "charOffset": 2367, - "charLength": 3, - "snippet": { - "text": "= 0" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 53, - "startColumn": 1, - "charOffset": 2280, - "charLength": 163, - "snippet": { - "text": " foreach (var node in treeBuilder.Tree)\r\n {\r\n long scanResult = 0;\r\n bool success = false;\r\n switch (node.NodeType)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "01b6aad1255184ea", - "equalIndicator/v1": "af708b3a9cf24b373c3747c4b86c1021a88fbd1fbaf025b8d75d2e2f6ac27ec0" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantAssignment", - "kind": "fail", - "level": "warning", - "message": { - "text": "Value assigned is not used in any execution path", - "markdown": "Value assigned is not used in any execution path" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Native/Kernel32.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 252, - "startColumn": 26, - "charOffset": 9510, - "charLength": 3, - "snippet": { - "text": "= 0" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 250, - "startColumn": 1, - "charOffset": 9368, - "charLength": 195, - "snippet": { - "text": " IntPtr[] processMods = new IntPtr[arraySize];\r\n uint arrayBytesSize = arraySize * (uint)IntPtr.Size;\r\n uint bytesCopied = 0;\r\n\r\n // Loop until all modules are listed\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "eab91d6d1545b540", - "equalIndicator/v1": "ced8f5a447a9c5fd7bc6bcfc22a0d0b1ff9db06e99c97dbdfbca0342c72c4693" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantAssignment", - "kind": "fail", - "level": "warning", - "message": { - "text": "Value assigned is not used in any execution path", - "markdown": "Value assigned is not used in any execution path" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 56, - "startColumn": 26, - "charOffset": 2398, - "charLength": 7, - "snippet": { - "text": "= false" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 54, - "startColumn": 1, - "charOffset": 2328, - "charLength": 130, - "snippet": { - "text": " {\r\n long scanResult = 0;\r\n bool success = false;\r\n switch (node.NodeType)\r\n {\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "695857bb41427fdd", - "equalIndicator/v1": "df752a8fd9e7772e53f520562e83879c0dcb9bdb8765f939a9be218c9c329a8a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantAssignment", - "kind": "fail", - "level": "warning", - "message": { - "text": "Value assigned is not used in any execution path", - "markdown": "Value assigned is not used in any execution path" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/EldenRing.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 461, - "startColumn": 36, - "charOffset": 15570, - "charLength": 3, - "snippet": { - "text": "= 0" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 459, - "startColumn": 1, - "charOffset": 15446, - "charLength": 176, - "snippet": { - "text": " //They are written out like this explicitly, to match the game's assembly\r\n\r\n long calculatedPointer = 0;\r\n\r\n //jump to calculate ptr if zero\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4148585c4750423c", - "equalIndicator/v1": "e1d55bb11efb1cb9ab7dbd3907d8a16f2a39649845c032141ffeb8ada230c5cb" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantCast", - "kind": "fail", - "level": "warning", - "message": { - "text": "Type cast is redundant", - "markdown": "Type cast is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls2/scholar.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 111, - "startColumn": 20, - "charOffset": 3891, - "charLength": 5, - "snippet": { - "text": "(int)" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 109, - "startColumn": 1, - "charOffset": 3802, - "charLength": 144, - "snippet": { - "text": " {\r\n var bytes = _attributes.ReadBytes(2, offset);\r\n return (int)BitConverter.ToInt16(bytes, 0);\r\n }\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7863ffed70666119", - "equalIndicator/v1": "73363a5b723138c9d4f63fdd3f6baf19aab69a24423217879f1c7556307e58f8" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantDeclarationSemicolon", - "kind": "fail", - "level": "note", - "message": { - "text": "Semicolon after enum declaration is redundant", - "markdown": "Semicolon after enum declaration is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 126, - "startColumn": 6, - "charOffset": 4841, - "charLength": 1, - "snippet": { - "text": ";" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 124, - "startColumn": 1, - "charOffset": 4805, - "charLength": 99, - "snippet": { - "text": " V105,\r\n Later,\r\n };\r\n\r\n public static DarkSouls3Version GetVersion(Version v)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d93f6b416e6c298e", - "equalIndicator/v1": "99740e6cfe93b226b66e6348b9e47284c1536b876e4521e309ad259e37ac46d4" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantDeclarationSemicolon", - "kind": "fail", - "level": "note", - "message": { - "text": "Semicolon after enum declaration is redundant", - "markdown": "Semicolon after enum declaration is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/EldenRing.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 274, - "startColumn": 6, - "charOffset": 9898, - "charLength": 1, - "snippet": { - "text": ";" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 272, - "startColumn": 1, - "charOffset": 9873, - "charLength": 80, - "snippet": { - "text": "\r\n Unknown,\r\n };\r\n\r\n public EldenRingVersion GetVersion(Version v)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d5fedb622432557a", - "equalIndicator/v1": "f37f93d4aca6540f875973fc3523120b6ed1e738f1fb86b521d141efb980cf7a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantEmptyObjectCreationArgumentList", - "kind": "fail", - "level": "note", - "message": { - "text": "Empty argument list is redundant", - "markdown": "Empty argument list is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 81, - "startColumn": 86, - "charOffset": 3249, - "charLength": 2, - "snippet": { - "text": "()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 79, - "startColumn": 1, - "charOffset": 3028, - "charLength": 322, - "snippet": { - "text": " if (hierarchicalSplitType.Children.All(i => ((Vector3f)i.Split).ToString() != position.ToString()))\r\n {\r\n hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = position, Parent = hierarchicalSplitType });\r\n }\r\n break;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c5c68a2b80bb6c87", - "equalIndicator/v1": "0281dcca63f683e5b27dd135a12ca964698f0d9201886038e7a8a54535352c10" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantEmptyObjectCreationArgumentList", - "kind": "fail", - "level": "note", - "message": { - "text": "Empty argument list is redundant", - "markdown": "Empty argument list is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 105, - "startColumn": 86, - "charOffset": 4501, - "charLength": 2, - "snippet": { - "text": "()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 103, - "startColumn": 1, - "charOffset": 4312, - "charLength": 286, - "snippet": { - "text": " if (hierarchicalSplitType.Children.All(i => (uint)i.Split != flag))\r\n {\r\n hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = flag, Parent = hierarchicalSplitType });\r\n }\r\n break;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f978ca1874d710e1", - "equalIndicator/v1": "0e82300f1e867cc5b39554f85c7b174c692f6b460cf096a6b6be0a898b75f72c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantEmptyObjectCreationArgumentList", - "kind": "fail", - "level": "note", - "message": { - "text": "Empty argument list is redundant", - "markdown": "Empty argument list is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/BaseViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 59, - "startColumn": 64, - "charOffset": 2252, - "charLength": 2, - "snippet": { - "text": "()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 57, - "startColumn": 1, - "charOffset": 2144, - "charLength": 206, - "snippet": { - "text": "\r\n case SplitType.Attribute:\r\n NewSplitValue = new Splits.Sekiro.Attribute() { AttributeType = Attribute.Vitality, Level = 10 };\r\n break;\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "57346f377d374349", - "equalIndicator/v1": "0f25f355f22cc3da7695fd5780031850472239f04ae4bd22a95385dcc4fe3759" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantEmptyObjectCreationArgumentList", - "kind": "fail", - "level": "note", - "message": { - "text": "Empty argument list is redundant", - "markdown": "Empty argument list is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 137, - "startColumn": 46, - "charOffset": 4886, - "charLength": 2, - "snippet": { - "text": "()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 135, - "startColumn": 1, - "charOffset": 4797, - "charLength": 162, - "snippet": { - "text": "\r\n case SplitType.Position:\r\n Position = new VectorSize() { Position = CurrentPosition.Clone() };\r\n break;\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b7650013357aadde", - "equalIndicator/v1": "12f27e6eab343978ee5d605e6053af2c51903317fdc4be19938b1aabd47c0c7f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantEmptyObjectCreationArgumentList", - "kind": "fail", - "level": "note", - "message": { - "text": "Empty argument list is redundant", - "markdown": "Empty argument list is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/ParamData.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 24, - "startColumn": 113, - "charOffset": 1065, - "charLength": 2, - "snippet": { - "text": "()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 22, - "startColumn": 1, - "charOffset": 919, - "charLength": 190, - "snippet": { - "text": "public static class ParamData\r\n{\r\n public static readonly ReadOnlyDictionary ParamByteSize = new(new Dictionary()\r\n {\r\n { ParamType.Dummy8, 1 },\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "65338239467f0b2a", - "equalIndicator/v1": "15b29faca67a1913e1fa6dcde0d0fa0b865947dcb60fbdf1367cb9ce35c4c32e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantEmptyObjectCreationArgumentList", - "kind": "fail", - "level": "note", - "message": { - "text": "Empty argument list is redundant", - "markdown": "Empty argument list is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/EldenRing.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 299, - "startColumn": 28, - "charOffset": 10610, - "charLength": 2, - "snippet": { - "text": "()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 297, - "startColumn": 1, - "charOffset": 10521, - "charLength": 151, - "snippet": { - "text": " {\r\n var map = _playerIns.ReadInt32(_mapIdOffset);\r\n return new Position()\r\n {\r\n Area = (byte)(map >> 24 & 0xff),\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "29749150bcddf016", - "equalIndicator/v1": "1a48d7989f0b9730e8fdf5ff1cc4d6adb1ed29689048be2c188144f16bd01295" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantEmptyObjectCreationArgumentList", - "kind": "fail", - "level": "note", - "message": { - "text": "Empty argument list is redundant", - "markdown": "Empty argument list is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls3/DarkSouls3ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 93, - "startColumn": 42, - "charOffset": 3253, - "charLength": 2, - "snippet": { - "text": "()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 91, - "startColumn": 1, - "charOffset": 3145, - "charLength": 168, - "snippet": { - "text": " if(NewSplitType == SplitType.Position)\r\n {\r\n Position = new VectorSize() { Position = CurrentPosition.Clone() };\r\n }\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f7b41b11abccd539", - "equalIndicator/v1": "201083134205d8269c5615de0dd6183a14cfdc7a8626e808f9edb3e124e5055e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantEmptyObjectCreationArgumentList", - "kind": "fail", - "level": "note", - "message": { - "text": "Empty argument list is redundant", - "markdown": "Empty argument list is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/HierarchicalViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 34, - "startColumn": 60, - "charOffset": 1462, - "charLength": 2, - "snippet": { - "text": "()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 32, - "startColumn": 1, - "charOffset": 1349, - "charLength": 203, - "snippet": { - "text": " if (splitTimingViewModel == null)\r\n {\r\n splitTimingViewModel = new SplitTimingViewModel() { TimingType = timingType };\r\n Splits.Add(splitTimingViewModel);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "cb86e034e6ebb40f", - "equalIndicator/v1": "254cb1fbd7f39ff7acc794c1cf6de4172a230b9b9678c8e183d8fb40badaca2d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantEmptyObjectCreationArgumentList", - "kind": "fail", - "level": "note", - "message": { - "text": "Empty argument list is redundant", - "markdown": "Empty argument list is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 352, - "startColumn": 86, - "charOffset": 11009, - "charLength": 2, - "snippet": { - "text": "()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 350, - "startColumn": 1, - "charOffset": 10811, - "charLength": 304, - "snippet": { - "text": " if (hierarchicalSplitType.Children.All(i => (Item)i.Split != NewSplitItem))\r\n { \r\n hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = NewSplitItem!, Parent = hierarchicalSplitType });\r\n }\r\n break;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a93b8d1aca0c9c97", - "equalIndicator/v1": "26538c305abf9de85e55263a41a054ce1001d0c3195403123d5929542199ed50" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantEmptyObjectCreationArgumentList", - "kind": "fail", - "level": "note", - "message": { - "text": "Empty argument list is redundant", - "markdown": "Empty argument list is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/HierarchicalViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 47, - "startColumn": 63, - "charOffset": 2080, - "charLength": 2, - "snippet": { - "text": "()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 45, - "startColumn": 1, - "charOffset": 1916, - "charLength": 234, - "snippet": { - "text": " if (splitTypeViewModel.Children.All(i => i.Split.ToString() != split.ToString()))\r\n {\r\n splitTypeViewModel.Children.Add(new SplitViewModel() { Split = split, Parent = splitTypeViewModel });\r\n }\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0a1e342d0d1aba14", - "equalIndicator/v1": "2c0ae6f7cbedaa73b8e88ce0d69316032d0dd2226b4ac6aac8a25393ec96b9fb" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantEmptyObjectCreationArgumentList", - "kind": "fail", - "level": "note", - "message": { - "text": "Empty argument list is redundant", - "markdown": "Empty argument list is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/ParamData.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 48, - "startColumn": 118, - "charOffset": 1953, - "charLength": 2, - "snippet": { - "text": "()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 46, - "startColumn": 1, - "charOffset": 1825, - "charLength": 179, - "snippet": { - "text": " });\r\n\r\n public static readonly ReadOnlyDictionary ParamStrings = new(new Dictionary()\r\n {\r\n { \"dummy8\", ParamType.Dummy8 },\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "2bcbaabc69f9ed15", - "equalIndicator/v1": "3471e9eedbafac693ee1d0a509c717e9634a1a70eb71d80856c3b16e713ab2d8" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantEmptyObjectCreationArgumentList", - "kind": "fail", - "level": "note", - "message": { - "text": "Empty argument list is redundant", - "markdown": "Empty argument list is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls2/Data.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 32, - "startColumn": 88, - "charOffset": 1305, - "charLength": 2, - "snippet": { - "text": "()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 30, - "startColumn": 1, - "charOffset": 1209, - "charLength": 198, - "snippet": { - "text": " }\r\n\r\n public static readonly ReadOnlyCollection Bonfires = new(new List()\r\n {\r\n new(WarpType.FireKeepersDwelling , 167903232, 2650 , \"Fire Keepers' Dwelling\"),\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "39ea401f198b3785", - "equalIndicator/v1": "3cb1c062311be4629b18ddeb10c05e24c7d83624a3f034862b8c837c63ee15e7" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantEmptyObjectCreationArgumentList", - "kind": "fail", - "level": "note", - "message": { - "text": "Empty argument list is redundant", - "markdown": "Empty argument list is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Sekiro/Sekiro.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 579, - "startColumn": 40, - "charOffset": 21581, - "charLength": 2, - "snippet": { - "text": "()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 577, - "startColumn": 1, - "charOffset": 21467, - "charLength": 195, - "snippet": { - "text": " //fix body\r\n var frac = _process.Allocate(sizeof(double));\r\n var igtFixCode = new List(){\r\n 0x53, //push rbx\r\n 0x48, 0xBB //mov rbx, fracAddress\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "dfb5db395f0b947b", - "equalIndicator/v1": "4c6ef6e70cba3cbd65ac26243e072b82968312273ee552f8cf62693888a28a76" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantEmptyObjectCreationArgumentList", - "kind": "fail", - "level": "note", - "message": { - "text": "Empty argument list is redundant", - "markdown": "Empty argument list is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 133, - "startColumn": 68, - "charOffset": 4691, - "charLength": 2, - "snippet": { - "text": "()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 131, - "startColumn": 1, - "charOffset": 4566, - "charLength": 232, - "snippet": { - "text": " {\r\n case SplitType.Attribute:\r\n NewSplitValue = new Splits.DarkSouls1.Attribute() { AttributeType = SoulMemory.DarkSouls1.Attribute.Vitality, Level = 10 };\r\n break;\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "aa52735e84e7efc9", - "equalIndicator/v1": "4d59570de45d165910cbdde65220a3b2cbe6c15adbed6c1877b8689828fbe45d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantEmptyObjectCreationArgumentList", - "kind": "fail", - "level": "note", - "message": { - "text": "Empty argument list is redundant", - "markdown": "Empty argument list is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 324, - "startColumn": 86, - "charOffset": 9543, - "charLength": 2, - "snippet": { - "text": "()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 322, - "startColumn": 1, - "charOffset": 9344, - "charLength": 312, - "snippet": { - "text": " if (hierarchicalSplitType.Children.All(i => (Grace)i.Split != NewSplitGrace))\r\n {\r\n hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = NewSplitGrace!.Value, Parent = hierarchicalSplitType });\r\n }\r\n break;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f54251ac50783b90", - "equalIndicator/v1": "52c8ed1a749868528ff53bbb1a5745fb67f79364629bed57756351ef2029f572" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantEmptyObjectCreationArgumentList", - "kind": "fail", - "level": "note", - "message": { - "text": "Empty argument list is redundant", - "markdown": "Empty argument list is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Item.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 107, - "startColumn": 82, - "charOffset": 3643, - "charLength": 2, - "snippet": { - "text": "()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 105, - "startColumn": 1, - "charOffset": 3549, - "charLength": 298, - "snippet": { - "text": " }\r\n \r\n public static readonly ReadOnlyCollection AllItems = new(new List()\r\n {\r\n new(\"Catarina Helm\" , 10000, ItemType.CatarinaHelm , ItemCategory.Armor , 1, ItemUpgrade.Unique ),\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "cf3043f279165005", - "equalIndicator/v1": "583143f5dd8145aa6b0038160d75d475889e57cc07f671f5204f9313477bd23e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantEmptyObjectCreationArgumentList", - "kind": "fail", - "level": "note", - "message": { - "text": "Empty argument list is redundant", - "markdown": "Empty argument list is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 97, - "startColumn": 86, - "charOffset": 4114, - "charLength": 2, - "snippet": { - "text": "()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 95, - "startColumn": 1, - "charOffset": 3891, - "charLength": 325, - "snippet": { - "text": " if (hierarchicalSplitType.Children.All(i => ((Attribute)i.Split).ToString() != attribute.ToString()))\r\n {\r\n hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = attribute, Parent = hierarchicalSplitType });\r\n }\r\n break;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "fafae641a9410f90", - "equalIndicator/v1": "5837fb1f3667efbe784d324669435f55c247f807f2a67ed329a6a01c500a5cbd" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantEmptyObjectCreationArgumentList", - "kind": "fail", - "level": "note", - "message": { - "text": "Empty argument list is redundant", - "markdown": "Empty argument list is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/MainViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 408, - "startColumn": 45, - "charOffset": 12734, - "charLength": 2, - "snippet": { - "text": "()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 406, - "startColumn": 1, - "charOffset": 12652, - "charLength": 136, - "snippet": { - "text": " public string Serialize()\r\n {\r\n var settings = new XmlWriterSettings()\r\n {\r\n OmitXmlDeclaration = true,\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "234d6cb5fc0be7d0", - "equalIndicator/v1": "5aac50f6941b9088a52f35e7ee98af84f34297d67d6055f90db78705bf29b006" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantEmptyObjectCreationArgumentList", - "kind": "fail", - "level": "note", - "message": { - "text": "Empty argument list is redundant", - "markdown": "Empty argument list is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 61, - "startColumn": 73, - "charOffset": 2254, - "charLength": 2, - "snippet": { - "text": "()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 59, - "startColumn": 1, - "charOffset": 2126, - "charLength": 234, - "snippet": { - "text": " if (hierarchicalTimingType == null)\r\n {\r\n hierarchicalTimingType = new HierarchicalTimingTypeViewModel() { TimingType = NewSplitTimingType.Value };\r\n Splits.Add(hierarchicalTimingType);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5967ee4e18e47fb6", - "equalIndicator/v1": "5f7388d66be2bf242ea927ba4200086c490b81907e9765d60a819b820703b6cd" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantEmptyObjectCreationArgumentList", - "kind": "fail", - "level": "note", - "message": { - "text": "Empty argument list is redundant", - "markdown": "Empty argument list is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/soulmemory-rs/SoulMemoryRs.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 30, - "startColumn": 37, - "charOffset": 1117, - "charLength": 2, - "snippet": { - "text": "()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 28, - "startColumn": 1, - "charOffset": 1041, - "charLength": 116, - "snippet": { - "text": " public static void Launch()\r\n {\r\n var games = new List()\r\n {\r\n \"darksouls\",\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "179693b31bf5473b", - "equalIndicator/v1": "5f8a99569b46c365fc07630b1479a93c0394af295b94bed230c1403c84c3ffd6" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantEmptyObjectCreationArgumentList", - "kind": "fail", - "level": "note", - "message": { - "text": "Empty argument list is redundant", - "markdown": "Empty argument list is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 298, - "startColumn": 73, - "charOffset": 8258, - "charLength": 2, - "snippet": { - "text": "()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 296, - "startColumn": 1, - "charOffset": 8130, - "charLength": 234, - "snippet": { - "text": " if (hierarchicalTimingType == null)\r\n {\r\n hierarchicalTimingType = new HierarchicalTimingTypeViewModel() { TimingType = NewSplitTimingType.Value };\r\n Splits.Add(hierarchicalTimingType);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "314b8eb060427595", - "equalIndicator/v1": "617d331be59b78d319d49995981e2edc76f57baa45deffe8b2ac7dc38f2f0502" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantEmptyObjectCreationArgumentList", - "kind": "fail", - "level": "note", - "message": { - "text": "Empty argument list is redundant", - "markdown": "Empty argument list is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 111, - "startColumn": 73, - "charOffset": 3805, - "charLength": 2, - "snippet": { - "text": "()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 109, - "startColumn": 1, - "charOffset": 3668, - "charLength": 316, - "snippet": { - "text": " if (Game == Game.DarkSouls1)\r\n {\r\n flatSplit.Split = new Splits.DarkSouls1.BonfireState(){ Bonfire = (SoulMemory.DarkSouls1.Bonfire)SelectedBonfire!, State = (SoulMemory.DarkSouls1.BonfireState)SelectedBonfireState! };\r\n break;\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e83506acb444209d", - "equalIndicator/v1": "67d4a14f21f4238a38546ca5a4a65f59c73cf3a158a366d117b7c33d9a6adc1e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantEmptyObjectCreationArgumentList", - "kind": "fail", - "level": "note", - "message": { - "text": "Empty argument list is redundant", - "markdown": "Empty argument list is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Migrations/Migrator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 207, - "startColumn": 73, - "charOffset": 10394, - "charLength": 2, - "snippet": { - "text": "()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 205, - "startColumn": 1, - "charOffset": 10158, - "charLength": 393, - "snippet": { - "text": " newSekiroViewModel.NewSplitTimingType = timingType;\r\n newSekiroViewModel.NewSplitType = SplitType.Position;\r\n newSekiroViewModel.Position = new VectorSize() { Position = new Vector3f(x, y, z), Size = 5 };\r\n newSekiroViewModel.AddSplitCommand.Execute(null);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "fcacdc2e546f1938", - "equalIndicator/v1": "6f8cb804e360269ececcd3569c1df5696e3567c891a9375b99a1c5045c032ca5" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantEmptyObjectCreationArgumentList", - "kind": "fail", - "level": "note", - "message": { - "text": "Empty argument list is redundant", - "markdown": "Empty argument list is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Extensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 48, - "startColumn": 45, - "charOffset": 1596, - "charLength": 2, - "snippet": { - "text": "()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 46, - "startColumn": 1, - "charOffset": 1539, - "charLength": 111, - "snippet": { - "text": " }\r\n\r\n var settings = new XmlWriterSettings()\r\n {\r\n OmitXmlDeclaration = true,\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c2bae57613a319a0", - "equalIndicator/v1": "7392d4e54f837564eb1fa1551a5054b05b1250c88b90d1dce870f2b2d14e849e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantEmptyObjectCreationArgumentList", - "kind": "fail", - "level": "note", - "message": { - "text": "Empty argument list is redundant", - "markdown": "Empty argument list is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 68, - "startColumn": 71, - "charOffset": 2607, - "charLength": 2, - "snippet": { - "text": "()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 66, - "startColumn": 1, - "charOffset": 2482, - "charLength": 281, - "snippet": { - "text": " if (hierarchicalSplitType == null)\r\n {\r\n hierarchicalSplitType = new HierarchicalSplitTypeViewModel() { SplitType = NewSplitType.Value, Parent = hierarchicalTimingType };\r\n hierarchicalTimingType.Children.Add(hierarchicalSplitType);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ee16934fc3cf7a82", - "equalIndicator/v1": "7c939c44f35a8e747263d2b95d06969b153b017b727d239320de9a36fadd0204" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantEmptyObjectCreationArgumentList", - "kind": "fail", - "level": "note", - "message": { - "text": "Empty argument list is redundant", - "markdown": "Empty argument list is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls3/DarkSouls3ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 88, - "startColumn": 46, - "charOffset": 3053, - "charLength": 2, - "snippet": { - "text": "()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 86, - "startColumn": 1, - "charOffset": 2940, - "charLength": 204, - "snippet": { - "text": " if(NewSplitType == SplitType.Attribute)\r\n {\r\n NewSplitValue = new Attribute() { AttributeType = SoulMemory.DarkSouls3.Attribute.Vigor, Level = 10 };\r\n }\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c2b68a159a0390ab", - "equalIndicator/v1": "83b3ef1a2aee308d9690eacd25340e0ddc13d6b32367f1fd13a47a81d0895df4" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantEmptyObjectCreationArgumentList", - "kind": "fail", - "level": "note", - "message": { - "text": "Empty argument list is redundant", - "markdown": "Empty argument list is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 338, - "startColumn": 86, - "charOffset": 10293, - "charLength": 2, - "snippet": { - "text": "()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 336, - "startColumn": 1, - "charOffset": 10086, - "charLength": 324, - "snippet": { - "text": " if (hierarchicalSplitType.Children.All(i => (KnownFlag)i.Split != NewSplitKnownFlag))\r\n {\r\n hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = NewSplitKnownFlag!.Value, Parent = hierarchicalSplitType });\r\n }\r\n break;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c6fc28fcd18bf605", - "equalIndicator/v1": "90a89e0c0d33b784fe0cdb6721c3184c365684c7217c2865bf9874cc28364470" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantEmptyObjectCreationArgumentList", - "kind": "fail", - "level": "note", - "message": { - "text": "Empty argument list is redundant", - "markdown": "Empty argument list is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/ParamData.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 36, - "startColumn": 128, - "charOffset": 1486, - "charLength": 2, - "snippet": { - "text": "()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 34, - "startColumn": 1, - "charOffset": 1348, - "charLength": 189, - "snippet": { - "text": " });\r\n\r\n public static readonly ReadOnlyDictionary ParamToSharpTypeString = new(new Dictionary()\r\n {\r\n { ParamType.Dummy8, \"byte\" },\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ba4d92bf0b46413c", - "equalIndicator/v1": "91c479f8d6af3ba4921b7b562836d709816017d2a2439d53e4d988113c28c138" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantEmptyObjectCreationArgumentList", - "kind": "fail", - "level": "note", - "message": { - "text": "Empty argument list is redundant", - "markdown": "Empty argument list is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 103, - "startColumn": 70, - "charOffset": 3459, - "charLength": 2, - "snippet": { - "text": "()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 101, - "startColumn": 1, - "charOffset": 3325, - "charLength": 279, - "snippet": { - "text": " if (Game == Game.DarkSouls1)\r\n {\r\n flatSplit.Split = new Splits.DarkSouls1.Attribute(){ AttributeType = (SoulMemory.DarkSouls1.Attribute)SelectedAttribute!, Level = AttributeLevel};\r\n break;\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "6945ea68a711c62b", - "equalIndicator/v1": "965befedbfbe3d054097347277e09d9324032257fb8e1115db87200ebbad2cd4" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantEmptyObjectCreationArgumentList", - "kind": "fail", - "level": "note", - "message": { - "text": "Empty argument list is redundant", - "markdown": "Empty argument list is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 305, - "startColumn": 71, - "charOffset": 8620, - "charLength": 2, - "snippet": { - "text": "()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 303, - "startColumn": 1, - "charOffset": 8495, - "charLength": 290, - "snippet": { - "text": " if (hierarchicalSplitType == null)\r\n {\r\n hierarchicalSplitType = new HierarchicalSplitTypeViewModel() { EldenRingSplitType = NewSplitType.Value, Parent = hierarchicalTimingType };\r\n hierarchicalTimingType.Children.Add(hierarchicalSplitType);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3e11d317e886120a", - "equalIndicator/v1": "9b2d3bbdb04be881f3b050d2f04b4e9676e2265bb7a153c5d2bb31aceb7842c0" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantEmptyObjectCreationArgumentList", - "kind": "fail", - "level": "note", - "message": { - "text": "Empty argument list is redundant", - "markdown": "Empty argument list is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 145, - "startColumn": 78, - "charOffset": 5208, - "charLength": 2, - "snippet": { - "text": "()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 143, - "startColumn": 1, - "charOffset": 5088, - "charLength": 188, - "snippet": { - "text": "\r\n case SplitType.Bonfire:\r\n NewSplitBonfireState = new Splits.DarkSouls1.BonfireState() { State = BonfireState.Unlocked };\r\n break;\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e79eb2d8520fd8b4", - "equalIndicator/v1": "9e6fb13fca56957a75fc17ad0b40720f1748fc2294f3c02c9a9113c7147ac72d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantEmptyObjectCreationArgumentList", - "kind": "fail", - "level": "note", - "message": { - "text": "Empty argument list is redundant", - "markdown": "Empty argument list is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 359, - "startColumn": 86, - "charOffset": 11392, - "charLength": 2, - "snippet": { - "text": "()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 357, - "startColumn": 1, - "charOffset": 11165, - "charLength": 346, - "snippet": { - "text": " if (hierarchicalSplitType.Children.All(i => i.Split.ToString() != NewSplitPosition!.Position.ToString()))\r\n {\r\n hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = NewSplitPosition!.Position, Parent = hierarchicalSplitType });\r\n }\r\n break;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "8b5d91f01ef04381", - "equalIndicator/v1": "9e90207e48e796a7660df2b0714bb88fc6ef2e7ab3c4d9d2be4fe87e8ede9799" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantEmptyObjectCreationArgumentList", - "kind": "fail", - "level": "note", - "message": { - "text": "Empty argument list is redundant", - "markdown": "Empty argument list is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 345, - "startColumn": 86, - "charOffset": 10653, - "charLength": 2, - "snippet": { - "text": "()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 343, - "startColumn": 1, - "charOffset": 10456, - "charLength": 309, - "snippet": { - "text": " if (hierarchicalSplitType.Children.All(i => (uint)i.Split != NewSplitFlag))\r\n {\r\n hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = NewSplitFlag!.Value, Parent = hierarchicalSplitType });\r\n }\r\n break;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b915d62da74ae525", - "equalIndicator/v1": "a86d0edc3647ed273d81283e3694b36fe8082487127bebccf59a3878fc6bb654" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantEmptyObjectCreationArgumentList", - "kind": "fail", - "level": "note", - "message": { - "text": "Empty argument list is redundant", - "markdown": "Empty argument list is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 89, - "startColumn": 86, - "charOffset": 3679, - "charLength": 2, - "snippet": { - "text": "()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 87, - "startColumn": 1, - "charOffset": 3458, - "charLength": 322, - "snippet": { - "text": " if (hierarchicalSplitType.Children.All(i => ((BossKill)i.Split).ToString() != bossKill.ToString()))\r\n {\r\n hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = bossKill, Parent = hierarchicalSplitType });\r\n }\r\n break;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "99c368b7bc272b99", - "equalIndicator/v1": "abcb26036cf26d7d9c1154e55c7b932531b58a3915ba588224497b8858dd2ffb" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantEmptyObjectCreationArgumentList", - "kind": "fail", - "level": "note", - "message": { - "text": "Empty argument list is redundant", - "markdown": "Empty argument list is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Migrations/Migrator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 143, - "startColumn": 93, - "charOffset": 7323, - "charLength": 2, - "snippet": { - "text": "()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 141, - "startColumn": 1, - "charOffset": 7055, - "charLength": 421, - "snippet": { - "text": " newDarkSouls3ViewModel.NewSplitTimingType = timingType;\r\n newDarkSouls3ViewModel.NewSplitType = SplitType.Flag;\r\n newDarkSouls3ViewModel.FlagDescription = new FlagDescription() { Description = \"\", Flag = u };\r\n newDarkSouls3ViewModel.AddSplitCommand.Execute(null);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e46f8ee70af00c8e", - "equalIndicator/v1": "b253333b0703ed19a50c308814a380a866934b57f31a9b7c62ef6731e50c78e9" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantEmptyObjectCreationArgumentList", - "kind": "fail", - "level": "note", - "message": { - "text": "Empty argument list is redundant", - "markdown": "Empty argument list is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Sekiro/Sekiro.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 573, - "startColumn": 46, - "charOffset": 21309, - "charLength": 2, - "snippet": { - "text": "()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 571, - "startColumn": 1, - "charOffset": 21232, - "charLength": 232, - "snippet": { - "text": " \r\n //fix detour\r\n var igtFixDetourCode = new List(){0xE9};\r\n int detourTarget = (int) (igtFixCodeLoc-(igtFixEntryPoint+5));\r\n igtFixDetourCode.AddRange(BitConverter.GetBytes(detourTarget));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "fcc34cd3d84b0d84", - "equalIndicator/v1": "b827421874ddfd2522a8dbda3be1cf7b4e0f8020dfaec901e8cabd9bfe9c5ec9" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantEmptyObjectCreationArgumentList", - "kind": "fail", - "level": "note", - "message": { - "text": "Empty argument list is redundant", - "markdown": "Empty argument list is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/HierarchicalViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 41, - "startColumn": 56, - "charOffset": 1773, - "charLength": 2, - "snippet": { - "text": "()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 39, - "startColumn": 1, - "charOffset": 1666, - "charLength": 247, - "snippet": { - "text": " if (splitTypeViewModel == null)\r\n {\r\n splitTypeViewModel = new SplitTypeViewModel() { SplitType = splitType, Parent = splitTimingViewModel };\r\n splitTimingViewModel.Children.Add(splitTypeViewModel);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "46ffb6c9f700ae97", - "equalIndicator/v1": "c2647e0921a56c039f09d7108d2d5a66c077b91b0a68afa05b303b4713438a66" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantEmptyObjectCreationArgumentList", - "kind": "fail", - "level": "note", - "message": { - "text": "Empty argument list is redundant", - "markdown": "Empty argument list is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/BaseViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 51, - "startColumn": 46, - "charOffset": 1942, - "charLength": 2, - "snippet": { - "text": "()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 49, - "startColumn": 1, - "charOffset": 1840, - "charLength": 175, - "snippet": { - "text": " {\r\n case SplitType.Position:\r\n Position = new VectorSize() { Position = CurrentPosition.Clone() };\r\n break;\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "949c4ab0326b7507", - "equalIndicator/v1": "c557676e7832e1d68d615874fff89feb519c5975936f44a70de8fce159b0f605" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantEmptyObjectCreationArgumentList", - "kind": "fail", - "level": "note", - "message": { - "text": "Empty argument list is redundant", - "markdown": "Empty argument list is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Migrations/Migrator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 249, - "startColumn": 89, - "charOffset": 12752, - "charLength": 2, - "snippet": { - "text": "()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 247, - "startColumn": 1, - "charOffset": 12496, - "charLength": 405, - "snippet": { - "text": " newSekiroViewModel.NewSplitTimingType = timingType;\r\n newSekiroViewModel.NewSplitType = SplitType.Flag;\r\n newSekiroViewModel.FlagDescription = new FlagDescription() { Description = \"\", Flag = u };\r\n newSekiroViewModel.AddSplitCommand.Execute(null);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b11da85ef939248b", - "equalIndicator/v1": "c5c012eb457e7d6888a7093594f10959cbd61cde11b68f4a342feba512feb38b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantEmptyObjectCreationArgumentList", - "kind": "fail", - "level": "note", - "message": { - "text": "Empty argument list is redundant", - "markdown": "Empty argument list is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/Item.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 50, - "startColumn": 86, - "charOffset": 1741, - "charLength": 2, - "snippet": { - "text": "()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 48, - "startColumn": 1, - "charOffset": 1639, - "charLength": 216, - "snippet": { - "text": " } \r\n\r\n private readonly static ReadOnlyCollection LookupTable = new(new List()\r\n {\r\n new() { Category = Category.Protector,GroupName = \"Armor\", Name = \"Iron Helmet\", Id = 40000 },\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "2437c73885a72ad3", - "equalIndicator/v1": "c8aedeb8f84817638fcf5b3ae18e0e280c28f4f32a4d4ed2e76f3f9e011d5633" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantEmptyObjectCreationArgumentList", - "kind": "fail", - "level": "note", - "message": { - "text": "Empty argument list is redundant", - "markdown": "Empty argument list is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 317, - "startColumn": 86, - "charOffset": 9185, - "charLength": 2, - "snippet": { - "text": "()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 315, - "startColumn": 1, - "charOffset": 8988, - "charLength": 309, - "snippet": { - "text": " if (hierarchicalSplitType.Children.All(i => (Boss)i.Split != NewSplitBoss))\r\n {\r\n hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = NewSplitBoss!.Value, Parent = hierarchicalSplitType });\r\n }\r\n break;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "43dc7469a0728e67", - "equalIndicator/v1": "cbb65fd82766e357760efff3fc07399d94796440e8bd33d259dd4ea64655c4ca" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantEmptyObjectCreationArgumentList", - "kind": "fail", - "level": "note", - "message": { - "text": "Empty argument list is redundant", - "markdown": "Empty argument list is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 331, - "startColumn": 86, - "charOffset": 9917, - "charLength": 2, - "snippet": { - "text": "()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 329, - "startColumn": 1, - "charOffset": 9708, - "charLength": 327, - "snippet": { - "text": " if (hierarchicalSplitType.Children.All(i => (ItemPickup)i.Split != NewSplitItemPickup))\r\n {\r\n hierarchicalSplitType.Children.Add(new HierarchicalSplitViewModel() { Split = NewSplitItemPickup!.Value, Parent = hierarchicalSplitType });\r\n }\r\n break;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "8fbfba60e5d1629d", - "equalIndicator/v1": "d95a8281427f6f14f6685c3ae5dff6082ac0cfbd93c48a221d8a72ce9711e48f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantExtendsListEntry", - "kind": "fail", - "level": "warning", - "message": { - "text": "Base type 'UserControl' is already specified in other parts", - "markdown": "Base type 'UserControl' is already specified in other parts" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls3/DarkSouls3Control.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 24, - "startColumn": 42, - "charOffset": 1004, - "charLength": 11, - "snippet": { - "text": "UserControl" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 22, - "startColumn": 1, - "charOffset": 897, - "charLength": 154, - "snippet": { - "text": "/// Interaction logic for DarkSouls3Control.xaml\r\n/// \r\npublic partial class DarkSouls3Control : UserControl\r\n{\r\n public DarkSouls3Control()\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ff84c926863861a1", - "equalIndicator/v1": "04b53dddd89083e1d28f0c56a2453f1bd3dea4a4a39ae804a29be9aa4af0d4c2" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantExtendsListEntry", - "kind": "fail", - "level": "warning", - "message": { - "text": "Base type 'UserControl' is already specified in other parts", - "markdown": "Base type 'UserControl' is already specified in other parts" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2Control.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 27, - "startColumn": 42, - "charOffset": 1095, - "charLength": 11, - "snippet": { - "text": "UserControl" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 25, - "startColumn": 1, - "charOffset": 988, - "charLength": 154, - "snippet": { - "text": "/// Interaction logic for DarkSouls3Control.xaml\r\n/// \r\npublic partial class DarkSouls2Control : UserControl\r\n{\r\n public DarkSouls2Control()\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "aabeee575c4f739c", - "equalIndicator/v1": "05bc2f909ae9f1c5daeea1f03ba71af92118698068046fb54aca32664b6f8e91" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantExtendsListEntry", - "kind": "fail", - "level": "warning", - "message": { - "text": "Base type 'UserControl' is already specified in other parts", - "markdown": "Base type 'UserControl' is already specified in other parts" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1Control.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 24, - "startColumn": 42, - "charOffset": 1004, - "charLength": 11, - "snippet": { - "text": "UserControl" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 22, - "startColumn": 1, - "charOffset": 897, - "charLength": 154, - "snippet": { - "text": "/// Interaction logic for DarkSouls1Control.xaml\r\n/// \r\npublic partial class DarkSouls1Control : UserControl\r\n{\r\n public DarkSouls1Control()\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "35066608db8af220", - "equalIndicator/v1": "259395ada3ce9196ba533d6a1930b3d5edcfea114dcdd579aa99acf18bb74f9e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantExtendsListEntry", - "kind": "fail", - "level": "warning", - "message": { - "text": "Base type 'UserControl' is already specified in other parts", - "markdown": "Base type 'UserControl' is already specified in other parts" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/AddRemoveSplits.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 24, - "startColumn": 40, - "charOffset": 997, - "charLength": 11, - "snippet": { - "text": "UserControl" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 22, - "startColumn": 1, - "charOffset": 894, - "charLength": 148, - "snippet": { - "text": "/// Interaction logic for AddRemoveSplits.xaml\r\n/// \r\npublic partial class AddRemoveSplits : UserControl\r\n{\r\n public AddRemoveSplits()\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "8ce80071de748911", - "equalIndicator/v1": "268a02276276d9caa8737621eeb620fa89afe3ac4ef089126f9fd5ee5b4251f6" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantExtendsListEntry", - "kind": "fail", - "level": "warning", - "message": { - "text": "Base type 'UserControl' is already specified in other parts", - "markdown": "Base type 'UserControl' is already specified in other parts" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/FlagControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 24, - "startColumn": 36, - "charOffset": 989, - "charLength": 11, - "snippet": { - "text": "UserControl" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 22, - "startColumn": 1, - "charOffset": 894, - "charLength": 136, - "snippet": { - "text": "/// Interaction logic for FlagControl.xaml\r\n/// \r\npublic partial class FlagControl : UserControl\r\n{\r\n public FlagControl()\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d0954293e8cacc1a", - "equalIndicator/v1": "27c14a653b914eb2fe4e4b364dadee97562ae45557e812990f4e69f8cc212e3a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantExtendsListEntry", - "kind": "fail", - "level": "warning", - "message": { - "text": "Base type 'UserControl' is already specified in other parts", - "markdown": "Base type 'UserControl' is already specified in other parts" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 26, - "startColumn": 41, - "charOffset": 1049, - "charLength": 11, - "snippet": { - "text": "UserControl" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 24, - "startColumn": 1, - "charOffset": 948, - "charLength": 147, - "snippet": { - "text": "/// Interaction logic for UserControl1.xaml\r\n/// \r\npublic partial class EldenRingControl : UserControl\r\n{\r\n public EldenRingControl()\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f9026e5d7eca9549", - "equalIndicator/v1": "4ef18e620ec697311cf4b38c332dfad4435bf7a74ab65db2cb64dee71e7fcbb6" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantExtendsListEntry", - "kind": "fail", - "level": "warning", - "message": { - "text": "Base type 'UserControl' is already specified in other parts", - "markdown": "Base type 'UserControl' is already specified in other parts" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 32, - "startColumn": 45, - "charOffset": 1214, - "charLength": 11, - "snippet": { - "text": "UserControl" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 30, - "startColumn": 1, - "charOffset": 1101, - "charLength": 193, - "snippet": { - "text": "/// Interaction logic for SplitSettingsControl.xaml\r\n/// \r\npublic partial class SplitSettingsControl : UserControl, ICustomNotifyPropertyChanged\r\n{\r\n public SplitSettingsControl()\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f9a6bfafade0d969", - "equalIndicator/v1": "55887ca8a170def3c84365b3295d7014f584477d91421df35fbf40c6aaee7b8a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantExtendsListEntry", - "kind": "fail", - "level": "warning", - "message": { - "text": "Base type 'Window' is already specified in other parts", - "markdown": "Base type 'Window' is already specified in other parts" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/FlagTrackerWindow.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 22, - "startColumn": 42, - "charOffset": 935, - "charLength": 6, - "snippet": { - "text": "Window" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 20, - "startColumn": 1, - "charOffset": 864, - "charLength": 113, - "snippet": { - "text": "namespace SoulSplitter.UI;\r\n\r\npublic partial class FlagTrackerWindow : Window\r\n{\r\n public FlagTrackerWindow()\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "8a428ace552eea17", - "equalIndicator/v1": "856fb64a5e6b303139dae8cefaf2232625856a97589a3ef776ac512f7600bb11" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantExtendsListEntry", - "kind": "fail", - "level": "warning", - "message": { - "text": "Base type 'UserControl' is already specified in other parts", - "markdown": "Base type 'UserControl' is already specified in other parts" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Sekiro/SekiroControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 24, - "startColumn": 38, - "charOffset": 996, - "charLength": 11, - "snippet": { - "text": "UserControl" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 22, - "startColumn": 1, - "charOffset": 893, - "charLength": 146, - "snippet": { - "text": "/// Interaction logic for DarkSouls3Control.xaml\r\n/// \r\npublic partial class SekiroControl : UserControl\r\n{\r\n public SekiroControl()\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c37f8a7d5a3a9b88", - "equalIndicator/v1": "86d515f64daa3d74712399cd27252a1e1b14a5279e9746e8fa69c796366ff474" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantExtendsListEntry", - "kind": "fail", - "level": "warning", - "message": { - "text": "Base type 'Window' is already specified in other parts", - "markdown": "Base type 'Window' is already specified in other parts" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/MainWindow.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 30, - "startColumn": 35, - "charOffset": 1163, - "charLength": 6, - "snippet": { - "text": "Window" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 28, - "startColumn": 1, - "charOffset": 1069, - "charLength": 129, - "snippet": { - "text": "/// Interaction logic for MainControl.xaml\r\n/// \r\npublic partial class MainWindow : Window\r\n{\r\n public MainWindow()\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "40458778582c5705", - "equalIndicator/v1": "aae5fe864f46876fc29ea74aaac151ce894ca69bb36a35b8a4f38ed9202af4e8" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantExtendsListEntry", - "kind": "fail", - "level": "warning", - "message": { - "text": "Base type 'UserControl' is already specified in other parts", - "markdown": "Base type 'UserControl' is already specified in other parts" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/PositionControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 24, - "startColumn": 40, - "charOffset": 997, - "charLength": 11, - "snippet": { - "text": "UserControl" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 22, - "startColumn": 1, - "charOffset": 894, - "charLength": 148, - "snippet": { - "text": "/// Interaction logic for PositionControl.xaml\r\n/// \r\npublic partial class PositionControl : UserControl\r\n{\r\n public PositionControl()\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e4cb86e0cea8b752", - "equalIndicator/v1": "b6013c31b60475933699bf590def4d04d8844817109233e4e9621b1f4dff8eb5" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantExtendsListEntry", - "kind": "fail", - "level": "warning", - "message": { - "text": "Base type 'Window' is already specified in other parts", - "markdown": "Base type 'Window' is already specified in other parts" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/ErrorWindow.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 24, - "startColumn": 36, - "charOffset": 973, - "charLength": 6, - "snippet": { - "text": "Window" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 22, - "startColumn": 1, - "charOffset": 877, - "charLength": 132, - "snippet": { - "text": "/// Interaction logic for UserControl1.xaml\r\n/// \r\npublic partial class ErrorWindow : Window\r\n{\r\n public ErrorWindow()\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "78da3c0a6567d617", - "equalIndicator/v1": "bb5fe0bd4928f2193e97eefdd7b46c9c07a52c61b686b60cb534b09010878dea" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantExtendsListEntry", - "kind": "fail", - "level": "warning", - "message": { - "text": "Base type 'UserControl' is already specified in other parts", - "markdown": "Base type 'UserControl' is already specified in other parts" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/SplitsTree.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 25, - "startColumn": 35, - "charOffset": 1010, - "charLength": 11, - "snippet": { - "text": "UserControl" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 23, - "startColumn": 1, - "charOffset": 917, - "charLength": 133, - "snippet": { - "text": "/// Interaction logic for SplitsTree.xaml\r\n/// \r\npublic partial class SplitsTree : UserControl\r\n{\r\n public SplitsTree()\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a275a8037ae677fe", - "equalIndicator/v1": "bbe7e7d9836005013a1e45981d93499acebd952a3bf1113886bb83724ec0501e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantIfElseBlock", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant 'else' keyword", - "markdown": "Redundant 'else' keyword" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls2/scholar.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 108, - "startColumn": 9, - "charOffset": 3796, - "charLength": 4, - "snippet": { - "text": "else" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 106, - "startColumn": 1, - "charOffset": 3726, - "charLength": 145, - "snippet": { - "text": " return _attributes.ReadInt32(offset);\r\n }\r\n else\r\n {\r\n var bytes = _attributes.ReadBytes(2, offset);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "98e86b6aaba913b2", - "equalIndicator/v1": "05392acba46c22e00dadce19409e4bff5881e91ad6d1e06c9069f0d9eab7c670" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantIfElseBlock", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant 'else' keyword", - "markdown": "Redundant 'else' keyword" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Validation/TextToNumberValidation.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 42, - "startColumn": 13, - "charOffset": 1331, - "charLength": 4, - "snippet": { - "text": "else" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 40, - "startColumn": 1, - "charOffset": 1230, - "charLength": 179, - "snippet": { - "text": " return new ValidationResult(false, \"Value is required\");\r\n }\r\n else\r\n {\r\n return new ValidationResult(true, null);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "971ac662d8606639", - "equalIndicator/v1": "073c1680dc8a82e9d13e9d6f9b9d9dac3562e2feca568d5d9a4baac5e6ecef1b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantIfElseBlock", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant 'else' keyword", - "markdown": "Redundant 'else' keyword" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Process/ProcessWrapper.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 61, - "startColumn": 13, - "charOffset": 2437, - "charLength": 4, - "snippet": { - "text": "else" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 59, - "startColumn": 1, - "charOffset": 2344, - "charLength": 154, - "snippet": { - "text": " }\r\n //Process is attached, make sure it is still running\r\n else\r\n {\r\n if (_process.HasExited)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "331969be142b9a14", - "equalIndicator/v1": "1cc8812dad9ea9157d938948f62cfe75540848348d13b915bacddc8b97ead504" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantIfElseBlock", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant 'else' keyword", - "markdown": "Redundant 'else' keyword" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 157, - "startColumn": 13, - "charOffset": 6340, - "charLength": 4, - "snippet": { - "text": "else" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 155, - "startColumn": 1, - "charOffset": 6247, - "charLength": 153, - "snippet": { - "text": " }\r\n //Process is attached, make sure it is still running\r\n else\r\n {\r\n if (process.HasExited)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f73d8c1150e39521", - "equalIndicator/v1": "3882847df4a7995bb2484f4ce4ddd48fbcb426fda11b65cb5ddcd1ab755cfcde" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantIfElseBlock", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant 'else' keyword", - "markdown": "Redundant 'else' keyword" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/EldenRing.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 346, - "startColumn": 9, - "charOffset": 11869, - "charLength": 4, - "snippet": { - "text": "else" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 344, - "startColumn": 1, - "charOffset": 11824, - "charLength": 88, - "snippet": { - "text": " return true;\r\n }\r\n else\r\n {\r\n return false;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "6d3003b482e2ebb9", - "equalIndicator/v1": "3c8189ef2061f320f88951e8d189752ab84ae8eff345a4f6cafc6ad44883086a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantIfElseBlock", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant 'else' keyword", - "markdown": "Redundant 'else' keyword" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Result.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 271, - "startColumn": 9, - "charOffset": 6367, - "charLength": 4, - "snippet": { - "text": "else" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 269, - "startColumn": 1, - "charOffset": 6279, - "charLength": 184, - "snippet": { - "text": " return new Result(true, default!, default!);\r\n }\r\n else\r\n {\r\n return new Result(false, default!, resultErr.GetErr());\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "dbfbfe3407b4257c", - "equalIndicator/v1": "3ea86fe21ed61ff2ebb1130bb4304f14eb8310d2ff3c1214d9b9b1e68d26ab81" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantIfElseBlock", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant 'else' keyword", - "markdown": "Redundant 'else' keyword" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Process/ProcessWrapper.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 55, - "startColumn": 17, - "charOffset": 2238, - "charLength": 4, - "snippet": { - "text": "else" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 53, - "startColumn": 1, - "charOffset": 2135, - "charLength": 189, - "snippet": { - "text": " return ProcessRefreshResult.ProcessNotRunning;\r\n }\r\n else\r\n {\r\n return ProcessRefreshResult.Initialized;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "134fda8f13a8aa35", - "equalIndicator/v1": "5f541bbae345020775bb4baf458d7485a68dd6f8d577ceb2c47c9bc3dafb34e9" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantIfElseBlock", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant 'else' keyword", - "markdown": "Redundant 'else' keyword" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 93, - "startColumn": 13, - "charOffset": 3850, - "charLength": 4, - "snippet": { - "text": "else" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 91, - "startColumn": 1, - "charOffset": 3757, - "charLength": 153, - "snippet": { - "text": " }\r\n //Process is attached, make sure it is still running\r\n else\r\n {\r\n if (process.HasExited)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "479023cf3863439b", - "equalIndicator/v1": "6459322c9cfc58b765d6a8f79e6483519751dc01a7a1501e2a28a847321bb13b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantIfElseBlock", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant 'else' keyword", - "markdown": "Redundant 'else' keyword" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls2/DarkSouls2.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 61, - "startColumn": 13, - "charOffset": 2583, - "charLength": 4, - "snippet": { - "text": "else" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 59, - "startColumn": 1, - "charOffset": 2519, - "charLength": 140, - "snippet": { - "text": " return Result.Ok();\r\n }\r\n else\r\n {\r\n var result = _darkSouls2.TryRefresh();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "856a10493ab8c15c", - "equalIndicator/v1": "6486fb0eb5a9be7027d90fc58dfafd14ad355a6746aa7937380d85ccd45b9e3a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantIfElseBlock", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant 'else' keyword", - "markdown": "Redundant 'else' keyword" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/DarkSouls1.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 76, - "startColumn": 13, - "charOffset": 3850, - "charLength": 4, - "snippet": { - "text": "else" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 74, - "startColumn": 1, - "charOffset": 3773, - "charLength": 153, - "snippet": { - "text": " return _darkSouls1.TryRefresh();\r\n }\r\n else\r\n {\r\n var result = _darkSouls1.TryRefresh();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d355a1aa4570c15a", - "equalIndicator/v1": "7f275bc8189bf61db8f2b825af428f4ad51524e5e999e1295fdb03c7c4d21115" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantIfElseBlock", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant 'else' keyword", - "markdown": "Redundant 'else' keyword" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 150, - "startColumn": 17, - "charOffset": 6108, - "charLength": 4, - "snippet": { - "text": "else" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 148, - "startColumn": 1, - "charOffset": 5897, - "charLength": 288, - "snippet": { - "text": " return Result.Err(new RefreshError(RefreshErrorReason.ProcessNotRunning, $\"Process {name} not running or inaccessible. Try running livesplit as admin.\"));\r\n }\r\n else\r\n {\r\n //Propogate init result upwards\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "606b980a9621252f", - "equalIndicator/v1": "8471a9eb021893790ff9063dfeb748b5fc1e5f8549ad1af60d1b4c3a3ffdd7ce" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantIfElseBlock", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant 'else' keyword", - "markdown": "Redundant 'else' keyword" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 86, - "startColumn": 17, - "charOffset": 3618, - "charLength": 4, - "snippet": { - "text": "else" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 84, - "startColumn": 1, - "charOffset": 3407, - "charLength": 288, - "snippet": { - "text": " return Result.Err(new RefreshError(RefreshErrorReason.ProcessNotRunning, $\"Process {name} not running or inaccessible. Try running livesplit as admin.\"));\r\n }\r\n else\r\n {\r\n //Propogate init result upwards\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "bae29e70b7a563ea", - "equalIndicator/v1": "8ec468eb34cfac7c33b4b1c2fb17818c41dabc0973a8d3b5a4086d1dd762fccf" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantIfElseBlock", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant 'else' keyword", - "markdown": "Redundant 'else' keyword" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Result.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 259, - "startColumn": 9, - "charOffset": 6043, - "charLength": 4, - "snippet": { - "text": "else" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 257, - "startColumn": 1, - "charOffset": 5946, - "charLength": 183, - "snippet": { - "text": " return new Result(true, resultOk.Unwrap(), default!);\r\n }\r\n else\r\n {\r\n return new Result(false, default!, default!);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b58155051be4992b", - "equalIndicator/v1": "a629b2123e18de95913ab8a87e8ea4230946e0ebd1aae2d984ffd8dfeb870af4" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantIfElseBlock", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant 'else' keyword", - "markdown": "Redundant 'else' keyword" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/ItemReader.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 103, - "startColumn": 17, - "charOffset": 4466, - "charLength": 4, - "snippet": { - "text": "else" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 101, - "startColumn": 1, - "charOffset": 4400, - "charLength": 140, - "snippet": { - "text": " continue;\r\n }\r\n else if (item < 10000)\r\n {\r\n id = item;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3cbd50de925632d9", - "equalIndicator/v1": "b2223411ad31f3c486b24cf3afd6774814b4294a597bcbcbba604d83edd9559e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantIfElseBlock", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant 'else' keyword", - "markdown": "Redundant 'else' keyword" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls2/vanilla.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 104, - "startColumn": 9, - "charOffset": 3572, - "charLength": 4, - "snippet": { - "text": "else" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 102, - "startColumn": 1, - "charOffset": 3502, - "charLength": 145, - "snippet": { - "text": " return _attributes.ReadInt32(offset);\r\n }\r\n else\r\n {\r\n var bytes = _attributes.ReadBytes(2, offset);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e1b65666915d99ee", - "equalIndicator/v1": "c3a4534527f60eb09345c2f34bffad505d0a2576c9df29384908f36926b6c9b0" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantJumpStatement", - "kind": "fail", - "level": "warning", - "message": { - "text": "Redundant control flow jump statement", - "markdown": "Redundant control flow jump statement" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/ParamClassGenerator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 230, - "startColumn": 21, - "charOffset": 9912, - "charLength": 9, - "snippet": { - "text": "continue;" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 228, - "startColumn": 1, - "charOffset": 9796, - "charLength": 147, - "snippet": { - "text": " result.Add(currentBitfield);\r\n currentBitfield = null; \r\n continue;\r\n }\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "6157267c514aca1c", - "equalIndicator/v1": "31d6c60c1c8b48cd19307afc0aa78a60013eb988ab1666e9b46a28af4bcd004d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantJumpStatement", - "kind": "fail", - "level": "warning", - "message": { - "text": "Redundant control flow jump statement", - "markdown": "Redundant control flow jump statement" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 112, - "startColumn": 21, - "charOffset": 3958, - "charLength": 6, - "snippet": { - "text": "break;" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 110, - "startColumn": 1, - "charOffset": 3714, - "charLength": 294, - "snippet": { - "text": " {\r\n flatSplit.Split = new Splits.DarkSouls1.BonfireState(){ Bonfire = (SoulMemory.DarkSouls1.Bonfire)SelectedBonfire!, State = (SoulMemory.DarkSouls1.BonfireState)SelectedBonfireState! };\r\n break;\r\n }\r\n break;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f62a0d49c559881e", - "equalIndicator/v1": "89e37bf7f28e67150fc1f7b81f2cb9b3c9e57e97e060a700ed977ed37a1fc8a8" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantJumpStatement", - "kind": "fail", - "level": "warning", - "message": { - "text": "Redundant control flow jump statement", - "markdown": "Redundant control flow jump statement" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 104, - "startColumn": 21, - "charOffset": 3578, - "charLength": 6, - "snippet": { - "text": "break;" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 102, - "startColumn": 1, - "charOffset": 3371, - "charLength": 257, - "snippet": { - "text": " {\r\n flatSplit.Split = new Splits.DarkSouls1.Attribute(){ AttributeType = (SoulMemory.DarkSouls1.Attribute)SelectedAttribute!, Level = AttributeLevel};\r\n break;\r\n }\r\n break;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "bf407260aeec56a2", - "equalIndicator/v1": "a9fba9e87bcede8a52cc80b0b37771f2788fa8372f3dfb8920735d9290bbbf5f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantLambdaSignatureParentheses", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant lambda signature parentheses", - "markdown": "Redundant lambda signature parentheses" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/MainViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 44, - "startColumn": 79, - "charOffset": 1625, - "charLength": 1, - "snippet": { - "text": "(" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 42, - "startColumn": 1, - "charOffset": 1512, - "charLength": 301, - "snippet": { - "text": " public MainViewModel()\r\n {\r\n CommandTroubleShooting = new RelayCommand(OpenTroubleshootingWebpage, (_) => true);\r\n CommandRunEventFlagLogger = new RelayCommand(RunEventFlagLogger, (_) => true);\r\n CommandClearErrors = new RelayCommand(ClearErrors, (_) => Errors.Count > 0);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d169b9cb91c8b423", - "equalIndicator/v1": "13b03115f70a35430fcaabbc9be6df4a6253c95ace273e9b436e07db22f785f9" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantLambdaSignatureParentheses", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant lambda signature parentheses", - "markdown": "Redundant lambda signature parentheses" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/BaseViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 33, - "startColumn": 60, - "charOffset": 1374, - "charLength": 1, - "snippet": { - "text": "(" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 31, - "startColumn": 1, - "charOffset": 1224, - "charLength": 210, - "snippet": { - "text": " {\r\n CopyGamePositionCommand = new RelayCommand(CopyGamePosition, (_) => true);\r\n RemoveSplitCommand = new RelayCommand(RemoveSplit, (_) => SplitsViewModel.SelectedSplit != null);\r\n }\r\n \r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ea29130f89584eb7", - "equalIndicator/v1": "254716c8f27ef28fca7cfaa1249a0cb39b82a5b278dd5f4a06aeab955ed30481" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantLambdaSignatureParentheses", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant lambda signature parentheses", - "markdown": "Redundant lambda signature parentheses" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/MainViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 47, - "startColumn": 61, - "charOffset": 1874, - "charLength": 1, - "snippet": { - "text": "(" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 45, - "startColumn": 1, - "charOffset": 1640, - "charLength": 419, - "snippet": { - "text": " CommandRunEventFlagLogger = new RelayCommand(RunEventFlagLogger, (_) => true);\r\n CommandClearErrors = new RelayCommand(ClearErrors, (_) => Errors.Count > 0);\r\n CommandAddError = new RelayCommand(AddErrorCommand, (_) => true);\r\n CommandShowErrors = new RelayCommand(ShowErrorWindow, (_) => true);\r\n CommandOpenFlagTrackerWindow = new RelayCommand(OpenFlagTrackerWindow, (_) => true);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f907b6c21530300c", - "equalIndicator/v1": "36681119321e8f4578327f77f5b945130e9bc6278b9b83d78f16f4f84b41704e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantLambdaSignatureParentheses", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant lambda signature parentheses", - "markdown": "Redundant lambda signature parentheses" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/MainViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 46, - "startColumn": 60, - "charOffset": 1787, - "charLength": 1, - "snippet": { - "text": "(" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 44, - "startColumn": 1, - "charOffset": 1547, - "charLength": 418, - "snippet": { - "text": " CommandTroubleShooting = new RelayCommand(OpenTroubleshootingWebpage, (_) => true);\r\n CommandRunEventFlagLogger = new RelayCommand(RunEventFlagLogger, (_) => true);\r\n CommandClearErrors = new RelayCommand(ClearErrors, (_) => Errors.Count > 0);\r\n CommandAddError = new RelayCommand(AddErrorCommand, (_) => true);\r\n CommandShowErrors = new RelayCommand(ShowErrorWindow, (_) => true);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "2cd9ee9515974240", - "equalIndicator/v1": "58b1d482e82240942e33051e2cdb05970e592a5e6d0c460d24fb6e6db96b756e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantLambdaSignatureParentheses", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant lambda signature parentheses", - "markdown": "Redundant lambda signature parentheses" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/DropMod.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 87, - "startColumn": 44, - "charOffset": 3021, - "charLength": 1, - "snippet": { - "text": "(" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 85, - "startColumn": 1, - "charOffset": 2916, - "charLength": 222, - "snippet": { - "text": " private void GuaranteeDrop(int rowId, int itemId)\r\n {\r\n darkSouls.WriteItemLotParam(rowId, (itemLot) =>\r\n {\r\n itemLot.LotItemBasePoint01 = (ushort)(itemLot.LotItemId01 == itemId ? 100 : 0);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7bc80d7531a93619", - "equalIndicator/v1": "6a17884ccb1e72a0c34a69b951cbe9514f5cb45c4014ade756dd81b15bc483e8" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantLambdaSignatureParentheses", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant lambda signature parentheses", - "markdown": "Redundant lambda signature parentheses" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/BaseViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 32, - "startColumn": 70, - "charOffset": 1300, - "charLength": 1, - "snippet": { - "text": "(" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 30, - "startColumn": 1, - "charOffset": 1196, - "charLength": 232, - "snippet": { - "text": " public BaseViewModel()\r\n {\r\n CopyGamePositionCommand = new RelayCommand(CopyGamePosition, (_) => true);\r\n RemoveSplitCommand = new RelayCommand(RemoveSplit, (_) => SplitsViewModel.SelectedSplit != null);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "69f9d2e92ca8b945", - "equalIndicator/v1": "6cec0a6301d62f004c3ed1264ef5a94a812adb7853cf087b8bc0a75c74d9e084" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantLambdaSignatureParentheses", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant lambda signature parentheses", - "markdown": "Redundant lambda signature parentheses" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/MainViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 51, - "startColumn": 74, - "charOffset": 2221, - "charLength": 1, - "snippet": { - "text": "(" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 49, - "startColumn": 1, - "charOffset": 1966, - "charLength": 278, - "snippet": { - "text": " CommandOpenFlagTrackerWindow = new RelayCommand(OpenFlagTrackerWindow, (_) => true);\r\n CommandImportSettingsFromFile = new RelayCommand(ImportSettings, (_) => true);\r\n CommandExportSettingsFromFile = new RelayCommand(ExportSettings, (_) => true);\r\n }\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d11c3b42a56dcd1b", - "equalIndicator/v1": "7d5b4f038677f378bcd13c73e2e1c81d8a87b496e4116c795b2453f44597028d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantLambdaSignatureParentheses", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant lambda signature parentheses", - "markdown": "Redundant lambda signature parentheses" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/MainViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 48, - "startColumn": 63, - "charOffset": 1951, - "charLength": 1, - "snippet": { - "text": "(" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 46, - "startColumn": 1, - "charOffset": 1728, - "charLength": 419, - "snippet": { - "text": " CommandClearErrors = new RelayCommand(ClearErrors, (_) => Errors.Count > 0);\r\n CommandAddError = new RelayCommand(AddErrorCommand, (_) => true);\r\n CommandShowErrors = new RelayCommand(ShowErrorWindow, (_) => true);\r\n CommandOpenFlagTrackerWindow = new RelayCommand(OpenFlagTrackerWindow, (_) => true);\r\n CommandImportSettingsFromFile = new RelayCommand(ImportSettings, (_) => true);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "da65b235e5f6fb04", - "equalIndicator/v1": "8a5473076192e5f8c22d82ae90bc144d1bc7c76ad691f21b5d5569849269311f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantLambdaSignatureParentheses", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant lambda signature parentheses", - "markdown": "Redundant lambda signature parentheses" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/MainViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 49, - "startColumn": 80, - "charOffset": 2045, - "charLength": 1, - "snippet": { - "text": "(" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 47, - "startColumn": 1, - "charOffset": 1814, - "charLength": 421, - "snippet": { - "text": " CommandAddError = new RelayCommand(AddErrorCommand, (_) => true);\r\n CommandShowErrors = new RelayCommand(ShowErrorWindow, (_) => true);\r\n CommandOpenFlagTrackerWindow = new RelayCommand(OpenFlagTrackerWindow, (_) => true);\r\n CommandImportSettingsFromFile = new RelayCommand(ImportSettings, (_) => true);\r\n CommandExportSettingsFromFile = new RelayCommand(ExportSettings, (_) => true);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "de1baf73035ae1ee", - "equalIndicator/v1": "b4d394a4006f571141684fcce718c221977cd039a684c276f4ad946e4473e1f0" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantLambdaSignatureParentheses", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant lambda signature parentheses", - "markdown": "Redundant lambda signature parentheses" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 36, - "startColumn": 70, - "charOffset": 1371, - "charLength": 1, - "snippet": { - "text": "(" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 34, - "startColumn": 1, - "charOffset": 1260, - "charLength": 278, - "snippet": { - "text": " public SplitSettingsControl()\r\n {\r\n CopyGamePositionCommand = new RelayCommand(CopyGamePosition, (_) => true);\r\n AddSplitCommand = new RelayCommand(AddSplitFunc, CanAddSplit);\r\n RemoveSplitCommand = new RelayCommand(RemoveSplitFunc, CanRemoveSplit);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3edcc125128ae9e7", - "equalIndicator/v1": "c8818f7144e5025f0e64de9e61b06b39e39181b146d1b94a1410e33fc55d9ae5" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantLambdaSignatureParentheses", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant lambda signature parentheses", - "markdown": "Redundant lambda signature parentheses" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/MainViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 50, - "startColumn": 74, - "charOffset": 2133, - "charLength": 1, - "snippet": { - "text": "(" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 48, - "startColumn": 1, - "charOffset": 1889, - "charLength": 353, - "snippet": { - "text": " CommandShowErrors = new RelayCommand(ShowErrorWindow, (_) => true);\r\n CommandOpenFlagTrackerWindow = new RelayCommand(OpenFlagTrackerWindow, (_) => true);\r\n CommandImportSettingsFromFile = new RelayCommand(ImportSettings, (_) => true);\r\n CommandExportSettingsFromFile = new RelayCommand(ExportSettings, (_) => true);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "259af3490c378315", - "equalIndicator/v1": "e557bbeffc093366572e0d91fb2ef32fd348b1b203945ba5e393f946884b5ac1" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantLambdaSignatureParentheses", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant lambda signature parentheses", - "markdown": "Redundant lambda signature parentheses" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/MainViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 45, - "startColumn": 74, - "charOffset": 1713, - "charLength": 1, - "snippet": { - "text": "(" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 43, - "startColumn": 1, - "charOffset": 1540, - "charLength": 348, - "snippet": { - "text": " {\r\n CommandTroubleShooting = new RelayCommand(OpenTroubleshootingWebpage, (_) => true);\r\n CommandRunEventFlagLogger = new RelayCommand(RunEventFlagLogger, (_) => true);\r\n CommandClearErrors = new RelayCommand(ClearErrors, (_) => Errors.Count > 0);\r\n CommandAddError = new RelayCommand(AddErrorCommand, (_) => true);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ea15f83c9a691741", - "equalIndicator/v1": "fbac1c6c1b29715c91946f34a36aa270e556e8f869fb9e38f7dd0a9601b897ed" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantLogicalConditionalExpressionOperand", - "kind": "fail", - "level": "warning", - "message": { - "text": "Redundant operand in logical conditional expression", - "markdown": "Redundant operand in logical conditional expression" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/MainViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 394, - "startColumn": 49, - "charOffset": 12372, - "charLength": 5, - "snippet": { - "text": "false" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 392, - "startColumn": 1, - "charOffset": 12202, - "charLength": 271, - "snippet": { - "text": " saveFileDialog.Filter = \"XML-File | *.xml|All files (*.*)|*.*\";\r\n saveFileDialog.FilterIndex = 0;\r\n if (!saveFileDialog.ShowDialog() ?? false || string.IsNullOrWhiteSpace(saveFileDialog.FileName))\r\n {\r\n return;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "277c00ccd1bc2306", - "equalIndicator/v1": "b2cd3a2c370d03c384983841900007693c8a18d55e9fda902c8433e5d266fe12" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantLogicalConditionalExpressionOperand", - "kind": "fail", - "level": "warning", - "message": { - "text": "Redundant operand in logical conditional expression", - "markdown": "Redundant operand in logical conditional expression" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/MainViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 368, - "startColumn": 49, - "charOffset": 11514, - "charLength": 5, - "snippet": { - "text": "false" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 366, - "startColumn": 1, - "charOffset": 11419, - "charLength": 196, - "snippet": { - "text": " openFileDialog.FilterIndex = 0;\r\n\r\n if (!openFileDialog.ShowDialog() ?? false || string.IsNullOrWhiteSpace(openFileDialog.FileName))\r\n {\r\n return;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "43eac6f4923cdecd", - "equalIndicator/v1": "f93aae3484afc342bb54d090bce297908f2f789e2f421039ae29c153419a882b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantNameQualifier", - "kind": "fail", - "level": "warning", - "message": { - "text": "Qualifier is redundant", - "markdown": "Qualifier is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 182, - "startColumn": 41, - "charOffset": 6920, - "charLength": 18, - "snippet": { - "text": "Splits.DarkSouls2." - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 180, - "startColumn": 1, - "charOffset": 6773, - "charLength": 208, - "snippet": { - "text": " case DarkSouls2SplitType.Attribute:\r\n NewSplitAttributeEnabled = true;\r\n NewSplitValue = new Splits.DarkSouls2.Attribute();\r\n break;\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b9695fc4722d61fc", - "equalIndicator/v1": "08700d0ee04c0f853bb5a1814e6d992d846e39821e1b8fb94ab890e7753ee4f7" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantNameQualifier", - "kind": "fail", - "level": "warning", - "message": { - "text": "Qualifier is redundant", - "markdown": "Qualifier is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/SoulComponent.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 294, - "startColumn": 12, - "charOffset": 10296, - "charLength": 21, - "snippet": { - "text": "System.Windows.Forms." - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 292, - "startColumn": 1, - "charOffset": 10235, - "charLength": 177, - "snippet": { - "text": "\r\n private Button? _customShowSettingsButton;\r\n public System.Windows.Forms.Control GetSettingsControl(LayoutMode mode)\r\n {\r\n var stackTrace = new StackTrace();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "504f05ef7357c7f7", - "equalIndicator/v1": "257c16a0e64c184b015026b1f9670b2aab5cd311f450d663d84a13cc77b415cc" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantNameQualifier", - "kind": "fail", - "level": "warning", - "message": { - "text": "Qualifier is redundant", - "markdown": "Qualifier is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Native/NativeMethods.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 48, - "startColumn": 59, - "charOffset": 2222, - "charLength": 31, - "snippet": { - "text": "System.Runtime.InteropServices." - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 46, - "startColumn": 1, - "charOffset": 2088, - "charLength": 291, - "snippet": { - "text": " internal static extern IntPtr GetModuleHandleW(string lpModuleName);\r\n\r\n [DllImport(\"kernel32\", SetLastError = true, CharSet = System.Runtime.InteropServices.CharSet.Auto)]\r\n internal static extern IntPtr CreateToolhelp32Snapshot([In] UInt32 dwFlags, [In] UInt32 th32ProcessID);\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "cba4d2c89b367d09", - "equalIndicator/v1": "30cb8cce11cd7fe0de48d1cc6917d672cd76712b1bdb876930946170fcf6e995" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantNameQualifier", - "kind": "fail", - "level": "warning", - "message": { - "text": "Qualifier is redundant", - "markdown": "Qualifier is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Native/Structs/Module/MODULEENTRY32W.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 22, - "startColumn": 48, - "charOffset": 957, - "charLength": 31, - "snippet": { - "text": "System.Runtime.InteropServices." - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 20, - "startColumn": 1, - "charOffset": 863, - "charLength": 173, - "snippet": { - "text": "namespace SoulMemory.Native.Structs.Module;\r\n\r\n[StructLayout(LayoutKind.Sequential, CharSet = System.Runtime.InteropServices.CharSet.Auto)]\r\npublic struct MODULEENTRY32W\r\n{\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e205e8c1c383cdb7", - "equalIndicator/v1": "3ee4cb73f46c018fb8f64db4e4d92bb5463f7033c1147986d02de5dcaa8522ac" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantNameQualifier", - "kind": "fail", - "level": "warning", - "message": { - "text": "Qualifier is redundant", - "markdown": "Qualifier is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Native/NativeMethods.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 51, - "startColumn": 59, - "charOffset": 2438, - "charLength": 31, - "snippet": { - "text": "System.Runtime.InteropServices." - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 49, - "startColumn": 1, - "charOffset": 2269, - "charLength": 314, - "snippet": { - "text": " internal static extern IntPtr CreateToolhelp32Snapshot([In] UInt32 dwFlags, [In] UInt32 th32ProcessID);\r\n\r\n [DllImport(\"kernel32\", SetLastError = true, CharSet = System.Runtime.InteropServices.CharSet.Auto)]\r\n internal static extern bool Process32First([In] IntPtr hSnapshot, ref PROCESSENTRY32 lppe);\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "344f95e45af7b544", - "equalIndicator/v1": "4a96177909f220daf6ceaa3dce327fd67c1005576b4f86ff4ffd052b73932df4" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantNameQualifier", - "kind": "fail", - "level": "warning", - "message": { - "text": "Qualifier is redundant", - "markdown": "Qualifier is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls1Splitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 127, - "startColumn": 56, - "charOffset": 4123, - "charLength": 16, - "snippet": { - "text": "LiveSplit.Model." - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 125, - "startColumn": 1, - "charOffset": 4007, - "charLength": 262, - "snippet": { - "text": "\r\n _timerModel.CurrentState.IsGameTimePaused = true;\r\n _timerModel.CurrentState.CurrentTimingMethod = LiveSplit.Model.TimingMethod.GameTime;\r\n _timerState = TimerState.Running;\r\n _inGameTime = _darkSouls1.GetInGameTimeMilliseconds();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e209fc069b78d6e0", - "equalIndicator/v1": "6ac14e914ecc939796716eba597f0e4c87fbcb28c0af89dc21d11528ee024eac" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantNameQualifier", - "kind": "fail", - "level": "warning", - "message": { - "text": "Qualifier is redundant", - "markdown": "Qualifier is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Migrations/Migrator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 62, - "startColumn": 34, - "charOffset": 2515, - "charLength": 11, - "snippet": { - "text": "UI.Generic." - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 60, - "startColumn": 1, - "charOffset": 2423, - "charLength": 270, - "snippet": { - "text": " {\r\n //Get original timing type\r\n var timingType = UI.Generic.TimingType.Immediate;\r\n var timingTypeText = timingNode.GetChildNodeByName(\"TimingType\").InnerText;\r\n if (timingTypeText != \"Immediate\")\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ada35ec011ad38d4", - "equalIndicator/v1": "97f47e72aaeba5d0a0500db1924a98baec51c7b49d822cd3f335c272857cabbb" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantNameQualifier", - "kind": "fail", - "level": "warning", - "message": { - "text": "Qualifier is redundant", - "markdown": "Qualifier is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Migrations/Migrator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 183, - "startColumn": 34, - "charOffset": 9112, - "charLength": 11, - "snippet": { - "text": "UI.Generic." - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 181, - "startColumn": 1, - "charOffset": 9020, - "charLength": 270, - "snippet": { - "text": " {\r\n //Get original timing type\r\n var timingType = UI.Generic.TimingType.Immediate;\r\n var timingTypeText = timingNode.GetChildNodeByName(\"TimingType\").InnerText;\r\n if (timingTypeText != \"Immediate\")\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "601e14ce63c641a0", - "equalIndicator/v1": "9c86661d8917b3596dc2ea1f4270110f080736b7f1a691a9c56d613d2b7ffec9" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantNameQualifier", - "kind": "fail", - "level": "warning", - "message": { - "text": "Qualifier is redundant", - "markdown": "Qualifier is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Native/NativeMethods.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 54, - "startColumn": 59, - "charOffset": 2642, - "charLength": 31, - "snippet": { - "text": "System.Runtime.InteropServices." - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 52, - "startColumn": 1, - "charOffset": 2485, - "charLength": 301, - "snippet": { - "text": " internal static extern bool Process32First([In] IntPtr hSnapshot, ref PROCESSENTRY32 lppe);\r\n\r\n [DllImport(\"kernel32\", SetLastError = true, CharSet = System.Runtime.InteropServices.CharSet.Auto)]\r\n internal static extern bool Process32Next([In] IntPtr hSnapshot, ref PROCESSENTRY32 lppe);\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f41c6d90bbfbff7f", - "equalIndicator/v1": "a4306e8ca9b3693addf20f6b9069dde0b40bb6d4bacb57e8812a1b0716a48821" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantNameQualifier", - "kind": "fail", - "level": "warning", - "message": { - "text": "Qualifier is redundant", - "markdown": "Qualifier is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 77, - "startColumn": 12, - "charOffset": 2873, - "charLength": 11, - "snippet": { - "text": "SoulMemory." - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 75, - "startColumn": 1, - "charOffset": 2780, - "charLength": 207, - "snippet": { - "text": " public ResultErr TryRefresh() => _armoredCore6.TryRefresh();\r\n\r\n public SoulMemory.Memory.TreeBuilder GetTreeBuilder()\r\n {\r\n var builder = new SoulMemory.Memory.TreeBuilder();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "687b80467d25ef2a", - "equalIndicator/v1": "ceb0d11ce38c0f659a75ae268a0d90c709e91974a40cbf4c4d67f5936eb41a15" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantNameQualifier", - "kind": "fail", - "level": "warning", - "message": { - "text": "Qualifier is redundant", - "markdown": "Qualifier is redundant" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 79, - "startColumn": 27, - "charOffset": 2954, - "charLength": 11, - "snippet": { - "text": "SoulMemory." - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 77, - "startColumn": 1, - "charOffset": 2862, - "charLength": 205, - "snippet": { - "text": " public SoulMemory.Memory.TreeBuilder GetTreeBuilder()\r\n {\r\n var builder = new SoulMemory.Memory.TreeBuilder();\r\n foreach (var node in _armoredCore6.PointerTreeBuilder.Tree)\r\n {\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1f9c3865409c3181", - "equalIndicator/v1": "f61f3030ad5a2ebdb8582a24a63e26fc98292a93071f90e1dbfec1c354e4e90b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantStringInterpolation", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant string interpolation", - "markdown": "Redundant string interpolation" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Result.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 150, - "startColumn": 23, - "charOffset": 3667, - "charLength": 1, - "snippet": { - "text": "$" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 148, - "startColumn": 1, - "charOffset": 3599, - "charLength": 102, - "snippet": { - "text": " public override string ToString()\r\n {\r\n return IsOk ? $\"Ok\" : $\"Err: {_err}\";\r\n }\r\n}\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "83824865f5499da5", - "equalIndicator/v1": "1d0286c23384205a5d9d95f7ecb16d11a16848426567d518820947043b6f6f4c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantStringInterpolation", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant string interpolation", - "markdown": "Redundant string interpolation" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/ParamClassGenerator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 71, - "startColumn": 23, - "charOffset": 2731, - "charLength": 1, - "snippet": { - "text": "$" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 69, - "startColumn": 1, - "charOffset": 2672, - "charLength": 100, - "snippet": { - "text": "\r\n sb.AppendLine($\" }}\");\r\n sb.AppendLine($\"}}\");\r\n\r\n return sb.ToString();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "77efc8841233487c", - "equalIndicator/v1": "24a2a8c2591baf1d0f0573bf0c4bc18a99be0fde168ae51d422e5d674e500399" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantStringInterpolation", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant string interpolation", - "markdown": "Redundant string interpolation" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/ParamClassGenerator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 70, - "startColumn": 23, - "charOffset": 2696, - "charLength": 1, - "snippet": { - "text": "$" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 68, - "startColumn": 1, - "charOffset": 2661, - "charLength": 80, - "snippet": { - "text": " }\r\n\r\n sb.AppendLine($\" }}\");\r\n sb.AppendLine($\"}}\");\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "fa18c25cc1625a78", - "equalIndicator/v1": "333c939b4ea33ff0bfc7e16252165ac72a02769977b2139695a22e37a44ccd5e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantStringInterpolation", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant string interpolation", - "markdown": "Redundant string interpolation" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/ParamClassGenerator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 100, - "startColumn": 34, - "charOffset": 4317, - "charLength": 1, - "snippet": { - "text": "$" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 98, - "startColumn": 1, - "charOffset": 4110, - "charLength": 384, - "snippet": { - "text": " stringBuilder.AppendLine($\" get => {privateName};\");\r\n stringBuilder.AppendLine($\" set => WriteParamField(ref {privateName}, value);\");\r\n stringBuilder.AppendLine($\" }}\");\r\n stringBuilder.AppendLine($\" private {ParamData.ParamToSharpTypeString[field.ParamType]}[] {privateName};\");\r\n stringBuilder.AppendLine();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "8003d888c14008c9", - "equalIndicator/v1": "67295735d65a487267c446e964e69162028c7dc974e545265cd8637c8b14b528" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantStringInterpolation", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant string interpolation", - "markdown": "Redundant string interpolation" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/ParamClassGenerator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 97, - "startColumn": 34, - "charOffset": 4093, - "charLength": 1, - "snippet": { - "text": "$" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 95, - "startColumn": 1, - "charOffset": 3811, - "charLength": 472, - "snippet": { - "text": " stringBuilder.AppendLine($\" [ParamField(0x{field.Offset:X}, ParamType.{field.ParamType}, {field.ArraySize})]\");\r\n stringBuilder.AppendLine($\" public {ParamData.ParamToSharpTypeString[field.ParamType]}[] {field.Name}\");\r\n stringBuilder.AppendLine($\" {{\");\r\n stringBuilder.AppendLine($\" get => {privateName};\");\r\n stringBuilder.AppendLine($\" set => WriteParamField(ref {privateName}, value);\");\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1916a9b2a6761f75", - "equalIndicator/v1": "6a103064680db0b399065829084bab579c5bc53a59873b36f2bd9f8e0a66be8c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantStringInterpolation", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant string interpolation", - "markdown": "Redundant string interpolation" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/ParamClassGenerator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 43, - "startColumn": 23, - "charOffset": 1808, - "charLength": 1, - "snippet": { - "text": "$" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 41, - "startColumn": 1, - "charOffset": 1680, - "charLength": 369, - "snippet": { - "text": " sb.AppendLine(classHeader);\r\n sb.AppendLine($\" public class {className} : BaseParam\");\r\n sb.AppendLine($\" {{\");\r\n sb.AppendLine($\" public {className}(Pointer basePointer, ByteArrayMemory memory, long offset, ParamTableEntry paramTableEntry) : base(basePointer, memory, offset, paramTableEntry){{}}\");\r\n sb.AppendLine();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c25dba7e0e687100", - "equalIndicator/v1": "6ed2d49b3896ffa292ff2d427200ea62891b074c844a077d9b9c173158b21122" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantStringInterpolation", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant string interpolation", - "markdown": "Redundant string interpolation" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/ParamClassGenerator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 86, - "startColumn": 34, - "charOffset": 3445, - "charLength": 1, - "snippet": { - "text": "$" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 84, - "startColumn": 1, - "charOffset": 3238, - "charLength": 382, - "snippet": { - "text": " stringBuilder.AppendLine($\" get => {privateName};\");\r\n stringBuilder.AppendLine($\" set => WriteParamField(ref {privateName}, value);\");\r\n stringBuilder.AppendLine($\" }}\");\r\n stringBuilder.AppendLine($\" private {ParamData.ParamToSharpTypeString[field.ParamType]} {privateName};\");\r\n stringBuilder.AppendLine();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1a6589888d3c3cd5", - "equalIndicator/v1": "8fd7c7e917cc840cc1b361bd189c76df57d87dfea28ed78d8bd67bec3cc16796" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantStringInterpolation", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant string interpolation", - "markdown": "Redundant string interpolation" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/ParamClassGenerator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 122, - "startColumn": 38, - "charOffset": 5513, - "charLength": 1, - "snippet": { - "text": "$" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 120, - "startColumn": 1, - "charOffset": 5222, - "charLength": 524, - "snippet": { - "text": " stringBuilder.AppendLine($\" [ParamBitField(nameof({bitfieldName}), bits: {b.size}, bitsOffset: {bitOffset})]\");\r\n stringBuilder.AppendLine($\" public {ParamData.ParamToSharpTypeString[bitfield.ParamType]} {b.name}\");\r\n stringBuilder.AppendLine($\" {{\");\r\n stringBuilder.AppendLine($\" get => GetbitfieldValue({bitfieldPrivateName});\");\r\n stringBuilder.AppendLine($\" set => SetBitfieldValue(ref {bitfieldPrivateName}, value);\");\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "af70f80d2ab711bc", - "equalIndicator/v1": "98efd94a3ba9b65e18e442bfa4a1bcb7b9f33e4e59f5f6fff3f0e48e0c842994" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantStringInterpolation", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant string interpolation", - "markdown": "Redundant string interpolation" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/ParamClassGenerator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 125, - "startColumn": 38, - "charOffset": 5784, - "charLength": 1, - "snippet": { - "text": "$" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 123, - "startColumn": 1, - "charOffset": 5530, - "charLength": 313, - "snippet": { - "text": " stringBuilder.AppendLine($\" get => GetbitfieldValue({bitfieldPrivateName});\");\r\n stringBuilder.AppendLine($\" set => SetBitfieldValue(ref {bitfieldPrivateName}, value);\");\r\n stringBuilder.AppendLine($\" }}\");\r\n stringBuilder.AppendLine();\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "304d187484cff1e1", - "equalIndicator/v1": "ca9cb3c4517f9b6daef08dc41f6ec8882a525dee4807380a4a350fd17d3f8e2c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantStringInterpolation", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant string interpolation", - "markdown": "Redundant string interpolation" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/ParamClassGenerator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 83, - "startColumn": 34, - "charOffset": 3221, - "charLength": 1, - "snippet": { - "text": "$" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 81, - "startColumn": 1, - "charOffset": 2960, - "charLength": 451, - "snippet": { - "text": " stringBuilder.AppendLine($\" [ParamField(0x{field.Offset:X}, ParamType.{field.ParamType})]\");\r\n stringBuilder.AppendLine($\" public {ParamData.ParamToSharpTypeString[field.ParamType]} {field.Name}\");\r\n stringBuilder.AppendLine($\" {{\");\r\n stringBuilder.AppendLine($\" get => {privateName};\");\r\n stringBuilder.AppendLine($\" set => WriteParamField(ref {privateName}, value);\");\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c186b17065d47516", - "equalIndicator/v1": "e3eebce908da669dbcda5fced5d6c1e030c96a22ea941281b911c3ff7cefcdd4" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantStringInterpolation", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant string interpolation", - "markdown": "Redundant string interpolation" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Result.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 208, - "startColumn": 38, - "charOffset": 4900, - "charLength": 1, - "snippet": { - "text": "$" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 206, - "startColumn": 1, - "charOffset": 4817, - "charLength": 101, - "snippet": { - "text": " public override string ToString()\r\n {\r\n return IsOk ? $\"Ok: {_ok}\" : $\"Err\";\r\n }\r\n}\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b54b90f528fbe17e", - "equalIndicator/v1": "e8592621c81e789ec7b46fa9e0546f348c25ec3f420294e00bc2a939efe8c0f9" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantToStringCall", - "kind": "fail", - "level": "warning", - "message": { - "text": "Redundant 'Object.ToString()' call", - "markdown": "Redundant 'Object.ToString()' call" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Logger.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 75, - "startColumn": 81, - "charOffset": 2618, - "charLength": 11, - "snippet": { - "text": ".ToString()" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 73, - "startColumn": 1, - "charOffset": 2529, - "charLength": 169, - "snippet": { - "text": " }\r\n\r\n public static void Log(string message, Exception e) => Log(message + \" \" + e.ToString());\r\n public static void Log(Exception e) => Log(e.ToString());\r\n}\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e632a81905a939b9", - "equalIndicator/v1": "3ae4b656db3f56430394afbba7f12208eb7077d1cb7ca49ce8f0e731b17c2eb5" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "RedundantVerbatimStringPrefix", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant verbatim string prefix", - "markdown": "Redundant verbatim string prefix" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/soulmods/Soulmods.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 53, - "startColumn": 67, - "charOffset": 1773, - "charLength": 1, - "snippet": { - "text": "@" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 51, - "startColumn": 1, - "charOffset": 1621, - "charLength": 251, - "snippet": { - "text": " {\r\n var dir = Path.GetDirectoryName(typeof(Soulmods).Assembly.Location)!;\r\n var path = process.Is64Bit().Unwrap() ? Path.Combine(dir, @\"soulmods_x64.dll\") : Path.Combine(dir, @\"soulmods_x86.dll\");\r\n\r\n process.InjectDll(path);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7c1ffab398bbe1e2", - "equalIndicator/v1": "3361df04fc9913975461ac2b41eff09e41b9e81f6d4e3ce95a1341a66117bd52" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "RedundantVerbatimStringPrefix", - "kind": "fail", - "level": "note", - "message": { - "text": "Redundant verbatim string prefix", - "markdown": "Redundant verbatim string prefix" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/soulmods/Soulmods.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 53, - "startColumn": 108, - "charOffset": 1814, - "charLength": 1, - "snippet": { - "text": "@" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 51, - "startColumn": 1, - "charOffset": 1621, - "charLength": 251, - "snippet": { - "text": " {\r\n var dir = Path.GetDirectoryName(typeof(Soulmods).Assembly.Location)!;\r\n var path = process.Is64Bit().Unwrap() ? Path.Combine(dir, @\"soulmods_x64.dll\") : Path.Combine(dir, @\"soulmods_x86.dll\");\r\n\r\n process.InjectDll(path);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "6cd7fdcfd0cd6960", - "equalIndicator/v1": "a7b53846bd5e40d77bfaa623bf726bd3b82762dbb036d7507622aa5f362b3b0b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SimplifyLinqExpressionUseAll", - "kind": "fail", - "level": "note", - "message": { - "text": "Simplify LINQ expression (use 'All')", - "markdown": "Simplify LINQ expression (use 'All')" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/ItemReader.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 76, - "startColumn": 99, - "charOffset": 3101, - "charLength": 50, - "snippet": { - "text": "!items.Any(j => j.ItemType == ItemType.EstusFlask)" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 74, - "startColumn": 1, - "charOffset": 2938, - "charLength": 328, - "snippet": { - "text": "\r\n //if 4 or less digits -> non-upgradable item.\r\n if (categories.Contains(ItemCategory.Consumables) && item is >= 200 and <= 215 && !items.Any(j => j.ItemType == ItemType.EstusFlask))\r\n {\r\n var estus = Item.AllItems.First(j => j.ItemType == ItemType.EstusFlask);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "6b32d5259ce5eb67", - "equalIndicator/v1": "a3e2b885df946c04a62c9a87b703a18b7592673745f9abffd0b4640de0bba815" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SimplifyStringInterpolation", - "kind": "fail", - "level": "note", - "message": { - "text": "Simplify string interpolation", - "markdown": "Simplify string interpolation" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Logger.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 65, - "startColumn": 49, - "charOffset": 2341, - "charLength": 36, - "snippet": { - "text": ".ToString(\"yyyy-MM-dd HH:mm:ss:fff\")" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 63, - "startColumn": 1, - "charOffset": 2195, - "charLength": 246, - "snippet": { - "text": " //Log the message\r\n using var writer = File.AppendText(filePath);\r\n writer.WriteLine($\"{DateTime.Now.ToString(\"yyyy-MM-dd HH:mm:ss:fff\")}: {message}\");\r\n writer.Flush();\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d4cdd8f48fb4ede4", - "equalIndicator/v1": "0c2a9fa1a4410405f2a1ceab1b3b133461a3429521cf417d6a002d92f2b7f4fd" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "SpecifyStringComparison", - "kind": "fail", - "level": "note", - "message": { - "text": "Specify string comparison explicitly", - "markdown": "Specify string comparison explicitly" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Process/ProcessWrapper.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 50, - "startColumn": 114, - "charOffset": 2040, - "charLength": 2, - "snippet": { - "text": "==" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 48, - "startColumn": 1, - "charOffset": 1877, - "charLength": 257, - "snippet": { - "text": " if (_process == null)\r\n {\r\n _process = System.Diagnostics.Process.GetProcesses().FirstOrDefault(i => i.ProcessName.ToLower() == name.ToLower() && !i.HasExited);\r\n if (_process == null)\r\n {\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "fb7cedba9219bbb5", - "equalIndicator/v1": "59e335651b718bee7c08b85715fe402fd07f20374f69122a0b2cf6415598ce4f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SpecifyStringComparison", - "kind": "fail", - "level": "note", - "message": { - "text": "Specify string comparison explicitly", - "markdown": "Specify string comparison explicitly" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 81, - "startColumn": 113, - "charOffset": 3313, - "charLength": 2, - "snippet": { - "text": "==" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 79, - "startColumn": 1, - "charOffset": 3152, - "charLength": 254, - "snippet": { - "text": " if (process == null)\r\n {\r\n process = System.Diagnostics.Process.GetProcesses().FirstOrDefault(i => i.ProcessName.ToLower() == name.ToLower() && !i.HasExited);\r\n if (process == null)\r\n {\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "8e1413fbd498206d", - "equalIndicator/v1": "7cc99a1bd232614b1706751d13f5ea57216ea590ac7ebe3af187fab1e705b87b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SpecifyStringComparison", - "kind": "fail", - "level": "note", - "message": { - "text": "Specify string comparison explicitly", - "markdown": "Specify string comparison explicitly" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Native/Kernel32.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 323, - "startColumn": 71, - "charOffset": 12217, - "charLength": 2, - "snippet": { - "text": "==" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 321, - "startColumn": 1, - "charOffset": 12084, - "charLength": 284, - "snippet": { - "text": " {\r\n var modules = process.GetModulesViaSnapshot();\r\n var module = modules.First(i => i.szModule.ToLowerInvariant() == hModuleName.ToLowerInvariant());\r\n\r\n var moduleImageDosHeader = process.ReadMemory(module.modBaseAddr.ToInt64()).Unwrap();\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "172eba8b5f5e339c", - "equalIndicator/v1": "faa9ad355a2ac19a9091c9d5da6bb2705867429411ed5b9f2a8d188d02dd22c4" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/ByteArrayMemory.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 36, - "startColumn": 14, - "charOffset": 1343, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 34, - "startColumn": 1, - "charOffset": 1268, - "charLength": 162, - "snippet": { - "text": " public void WriteBytes(long offset, byte[] bytes)\r\n {\r\n for (int i = 0; i < bytes.Length; i++)\r\n {\r\n data[offset + i] = bytes[i];\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e706beab68098c95", - "equalIndicator/v1": "08d68438a5497bbafcac662a9e0b5ed4c2faef35e75259b7df6676bce807c8d6" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 218, - "startColumn": 17, - "charOffset": 8263, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 216, - "startColumn": 1, - "charOffset": 8188, - "charLength": 194, - "snippet": { - "text": " if (bonfireId == (int)bonfire)\r\n {\r\n int bonfireState = netBonfireDbItem.ReadInt32(0x8);\r\n return (BonfireState)bonfireState;\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "6dcd7d0fa7d12f09", - "equalIndicator/v1": "0b08f3742ffbb5e351f86d41c359d704cf7d3bb005fb844a3f974112e8d732d0" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 192, - "startColumn": 52, - "charOffset": 7671, - "charLength": 4, - "snippet": { - "text": "long" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 190, - "startColumn": 1, - "charOffset": 7539, - "charLength": 264, - "snippet": { - "text": " result = 0;\r\n var pattern = pointerNode.Pattern.ToBytePattern();\r\n if (bytes.TryBoyerMooreSearch(pattern, out long scanResult))\r\n {\r\n var address = BitConverter.ToInt32(bytes, (int)(scanResult + pointerNode.AddressOffset));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ee4fc38507d30fdf", - "equalIndicator/v1": "0bd55a6b3f28f1ec1173d72fb93240a631a14cd3a8deda45e99213df3f4396e0" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 359, - "startColumn": 17, - "charOffset": 12626, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 357, - "startColumn": 1, - "charOffset": 12506, - "charLength": 256, - "snippet": { - "text": " if (EventFlagGroups.ContainsKey(group) && EventFlagAreas.ContainsKey(area))\r\n {\r\n int offset = EventFlagGroups[group];\r\n offset += EventFlagAreas[area] * 0x500;\r\n offset += section * 128;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e3fdc0a2d08ed077", - "equalIndicator/v1": "10a30486e80e1c21f0ef85862ea3da4bc88c94220d8e24de028a1b25598db6b6" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Native/Kernel32.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 166, - "startColumn": 71, - "charOffset": 6325, - "charLength": 4, - "snippet": { - "text": "bool" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 164, - "startColumn": 1, - "charOffset": 6184, - "charLength": 195, - "snippet": { - "text": " public static ResultOk Is64Bit(this Process process)\r\n {\r\n var result = NativeMethods.IsWow64Process(process.Handle, out bool isWow64Result);\r\n if (!result)\r\n {\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "6e5c1d9458d53a41", - "equalIndicator/v1": "12bc7b721d0022487aeabbec2bb3ac6637f6a18d38b042807ea5bc8cfb102ff2" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Sl2Reader.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 66, - "startColumn": 21, - "charOffset": 2246, - "charLength": 6, - "snippet": { - "text": "byte[]" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 64, - "startColumn": 1, - "charOffset": 2180, - "charLength": 156, - "snippet": { - "text": " if (ptde)\r\n {\r\n byte[] file = File.ReadAllBytes(path);\r\n int saveSlotSize = 0x60020;\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4fd83e476584a0fe", - "equalIndicator/v1": "170ba0b3508476937d02aedbf665e5fe7c6010cb1288bff1bcae5c7f91309ab8" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/ItemReader.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 112, - "startColumn": 21, - "charOffset": 4751, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 110, - "startColumn": 1, - "charOffset": 4640, - "charLength": 217, - "snippet": { - "text": " int one = item % 10;\r\n int ten = (item / 10) % 10;\r\n int hundred = (item / 100) % 10;\r\n\r\n id = item - (one + (10 * ten) + (100 * hundred));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "2b2b40886b7da695", - "equalIndicator/v1": "18ac0f578fdc8f70cc5f35b8427046d0ff36d0da097f77d10ec3e4e50ce539b6" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 325, - "startColumn": 14, - "charOffset": 11438, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 323, - "startColumn": 1, - "charOffset": 11377, - "charLength": 164, - "snippet": { - "text": " public void ResetInventoryIndices()\r\n {\r\n for (int i = 0; i < 20; i++)\r\n {\r\n _inventoryIndices.WriteUint32(0x4 * i, uint.MaxValue);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "20578c7ae01f5f0d", - "equalIndicator/v1": "19ad9bee97810cf7658a48b1b9e8fe13cfef89a3c36c2a7ebaa74f4d5ade53d3" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/ItemReader.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 73, - "startColumn": 17, - "charOffset": 2922, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 71, - "startColumn": 1, - "charOffset": 2815, - "charLength": 187, - "snippet": { - "text": " int id = 0;\r\n ItemInfusion infusion = ItemInfusion.Normal;\r\n int level = 0;\r\n\r\n //if 4 or less digits -> non-upgradable item.\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "8927f3f51b487d12", - "equalIndicator/v1": "19e27b40a81cf2a17403db54207c5d14f3003030eeac2da54325d6c65d7a9717" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/ParamReader.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 35, - "startColumn": 14, - "charOffset": 1329, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 33, - "startColumn": 1, - "charOffset": 1266, - "charLength": 138, - "snippet": { - "text": "\r\n var data = new List();\r\n for (int i = 0; i < rowCount; i++)\r\n {\r\n var offset = i * 12;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b3e44d95a593bdb4", - "equalIndicator/v1": "1a88e8f5ee788567cfde36b5f4e29ea6bdc564c57f5e72f0bdb9b8e4d5cb09a6" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 144, - "startColumn": 52, - "charOffset": 5924, - "charLength": 4, - "snippet": { - "text": "long" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 142, - "startColumn": 1, - "charOffset": 5792, - "charLength": 201, - "snippet": { - "text": " result = 0;\r\n var pattern = pointerNode.Pattern.ToBytePattern();\r\n if (bytes.TryBoyerMooreSearch(pattern, out long scanResult))\r\n {\r\n scanResult += baseAddress;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "40fecb43f5beaf00", - "equalIndicator/v1": "1bdfdcd70dc64e6a840e1313734d123f2c1721dce8062ac8a6b997cadc1ddc1e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Migrations/Migrator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 51, - "startColumn": 103, - "charOffset": 2068, - "charLength": 4, - "snippet": { - "text": "bool" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 49, - "startColumn": 1, - "charOffset": 1899, - "charLength": 283, - "snippet": { - "text": " var newDarkSouls3ViewModel = new DarkSouls3ViewModel();\r\n\r\n if (bool.TryParse(darkSouls3ViewModel.GetChildNodeByName(\"StartAutomatically\").InnerText, out bool startAutomatically))\r\n {\r\n newDarkSouls3ViewModel.StartAutomatically = startAutomatically;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "cb1973ebc64dfa7f", - "equalIndicator/v1": "247e31ee9b16635d0d17f0d4a94c2531b0534208dcb27e507377c8e336cc9869" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 295, - "startColumn": 13, - "charOffset": 10445, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 293, - "startColumn": 1, - "charOffset": 10326, - "charLength": 235, - "snippet": { - "text": " string group = idString.Substring(0, 1);\r\n string area = idString.Substring(1, 3);\r\n int section = int.Parse(idString.Substring(4, 1));\r\n int number = int.Parse(idString.Substring(5, 3));\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5731b9b0be0daca3", - "equalIndicator/v1": "24bf5c0ab76d2c4068a8d46e38fa88372ffcb91792a9074b17f4aee4f60e90e7" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Migrations/Migrator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 245, - "startColumn": 68, - "charOffset": 12455, - "charLength": 4, - "snippet": { - "text": "uint" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 243, - "startColumn": 1, - "charOffset": 12286, - "charLength": 294, - "snippet": { - "text": " {\r\n var split = flag.GetChildNodeByName(\"Split\");\r\n if (uint.TryParse(split.InnerText, out uint u))\r\n {\r\n newSekiroViewModel.NewSplitTimingType = timingType;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "fdc8d02a8c13d850", - "equalIndicator/v1": "275c442c20174ca9923310cd10d383f6329246b823acd18aca42a6c32f35d4e4" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/IMemory.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 43, - "startColumn": 14, - "charOffset": 1386, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 41, - "startColumn": 1, - "charOffset": 1348, - "charLength": 131, - "snippet": { - "text": " offset ??= 0;\r\n\r\n for (int i = 0; i < bytes.Length; i++)\r\n {\r\n data[offset.Value + i] = bytes[i];\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9fa47dc19f3d0f32", - "equalIndicator/v1": "280e2434ab0ef8e1a6b43b440099e0ba66dd4e19c3e8486ab8548ed8dfdc52cd" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 354, - "startColumn": 13, - "charOffset": 12385, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 352, - "startColumn": 1, - "charOffset": 12266, - "charLength": 239, - "snippet": { - "text": " string group = idString.Substring(0, 1);\r\n string area = idString.Substring(1, 3);\r\n int section = Int32.Parse(idString.Substring(4, 1));\r\n int number = Int32.Parse(idString.Substring(5, 3));\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "276b613f05707c21", - "equalIndicator/v1": "28411474179e6a118fb07cbf3bb5d49c2f814d9a81ee1815ec09ab1f2891bd02" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 123, - "startColumn": 59, - "charOffset": 4555, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 121, - "startColumn": 1, - "charOffset": 4428, - "charLength": 175, - "snippet": { - "text": " public void WriteEventFlag(uint eventFlagId, bool value)\r\n {\r\n var result = GetEventFlagAddress(eventFlagId, out int mask);\r\n if (result.IsOk)\r\n {\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "65be8efad016743d", - "equalIndicator/v1": "2a5d17e1810c5f780c0c415946ee081dd1fbff64c5e64d2d8ef28586a187ce2d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 474, - "startColumn": 18, - "charOffset": 16509, - "charLength": 6, - "snippet": { - "text": "string" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 472, - "startColumn": 1, - "charOffset": 16453, - "charLength": 168, - "snippet": { - "text": " {\r\n List bytes = [];\r\n foreach (string line in Regex.Split(lines, \"[\\r\\n]+\"))\r\n {\r\n Match match = _assemblyRegex.Match(line);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "760740260a9e8e0b", - "equalIndicator/v1": "2c2ef0d8c1219b571f3cc43b8f3b49a6354de77e7bc37a5cd4fa5fd86caf3424" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2Control.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 58, - "startColumn": 49, - "charOffset": 2038, - "charLength": 4, - "snippet": { - "text": "uint" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 56, - "startColumn": 1, - "charOffset": 1874, - "charLength": 255, - "snippet": { - "text": " if (_darkSouls2ViewModel.NewSplitType is DarkSouls2SplitType.Flag && sender is TextBox textBox)\r\n {\r\n if (uint.TryParse(textBox.Text, out uint result))\r\n {\r\n _darkSouls2ViewModel.NewSplitValue = result;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5c8c9905dc313e15", - "equalIndicator/v1": "2cc3ed6a0f465074de2d8492c35f0dbb7215956aa065748725c92ab6d366287f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Migrations/Migrator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 167, - "startColumn": 99, - "charOffset": 8435, - "charLength": 4, - "snippet": { - "text": "bool" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 165, - "startColumn": 1, - "charOffset": 8278, - "charLength": 267, - "snippet": { - "text": " var newSekiroViewModel = new SekiroViewModel();\r\n\r\n if (bool.TryParse(sekiroViewModel.GetChildNodeByName(\"StartAutomatically\").InnerText, out bool startAutomatically))\r\n {\r\n newSekiroViewModel.StartAutomatically = startAutomatically;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "56a1919a8dd3e75d", - "equalIndicator/v1": "30eab36950e97526048693c65de433de6e3ed398165e6cf8930b1ed267746ebd" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Native/User32.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 35, - "startColumn": 44, - "charOffset": 1356, - "charLength": 4, - "snippet": { - "text": "uint" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 33, - "startColumn": 1, - "charOffset": 1260, - "charLength": 135, - "snippet": { - "text": " {\r\n IntPtr hWnd = GetForegroundWindow();\r\n GetWindowThreadProcessId(hWnd, out uint pid);\r\n return pid;\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a28b674f6724e992", - "equalIndicator/v1": "3118e92d59e44ca65d7ba52dc79b1da5f58495b30421a35a14dc15a39a392abb" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 314, - "startColumn": 58, - "charOffset": 11194, - "charLength": 4, - "snippet": { - "text": "uint" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 312, - "startColumn": 1, - "charOffset": 11081, - "charLength": 216, - "snippet": { - "text": " public bool ReadEventFlag(uint eventFlagId)\r\n {\r\n int offset = GetEventFlagOffset(eventFlagId, out uint mask);\r\n uint value = _eventFlags.ReadUInt32(offset);\r\n return (value & mask) != 0;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "354b2d07803631e4", - "equalIndicator/v1": "33c588c57fdbb295c097e59cd5c613b1fef233aec56d6fd2baab24bc3be1704e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/ParamClassGenerator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 193, - "startColumn": 13, - "charOffset": 8297, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 191, - "startColumn": 1, - "charOffset": 8258, - "charLength": 149, - "snippet": { - "text": " var offset = 0;\r\n\r\n for(int i = 0; i < preParsedFields.Count; i++)\r\n {\r\n //Grab current and next field if available\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1dba7b6debc38c07", - "equalIndicator/v1": "35c59cd6c0bfa3279625177541ece9fecd7b51fb3947abbd04bab31a6b27f68a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 247, - "startColumn": 14, - "charOffset": 6535, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 245, - "startColumn": 1, - "charOffset": 6452, - "charLength": 178, - "snippet": { - "text": " var data = ReadMemory(offset, maxSize);\r\n length = 0;\r\n for (int i = 1; i < data.Length; i++)\r\n {\r\n if (data[i - 1] == 0 && data[i] == 0)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0bd0cd1ffff16c0e", - "equalIndicator/v1": "376b87ac7bf662bf271403f4721eb4dff8a8547459207fad399ecc806da01c7b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/ArmoredCore6/ArmoredCore6.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 143, - "startColumn": 59, - "charOffset": 5093, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 141, - "startColumn": 1, - "charOffset": 4979, - "charLength": 162, - "snippet": { - "text": " public bool ReadEventFlag(uint eventFlagId)\r\n {\r\n var result = GetEventFlagAddress(eventFlagId, out int mask);\r\n if (result.IsOk)\r\n {\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "185139e387fcd80e", - "equalIndicator/v1": "3d757af46f91c7a7bb7e6ea18da64bffcaa63e301698c37dd17668c986839631" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls2/vanilla.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 132, - "startColumn": 14, - "charOffset": 4400, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 130, - "startColumn": 1, - "charOffset": 4383, - "charLength": 187, - "snippet": { - "text": "\r\n\r\n for (int i = 0; i < 100; i++) //Replaced infinite while with for loop, in case some memes occur and the function never returns\r\n {\r\n if (vector.IsNullPtr())\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "512664b6a721bf36", - "equalIndicator/v1": "4312ad5104faffa6669d6a7370016f7eda1048b4aa2e77078347207a907005f7" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Sl2Reader.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 82, - "startColumn": 21, - "charOffset": 2965, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 80, - "startColumn": 1, - "charOffset": 2850, - "charLength": 247, - "snippet": { - "text": " file = DecryptSl2(file);\r\n int saveSlotSize = 0x60030;\r\n int igtOffset = 0x2EC + (saveSlotSize * slot);\r\n igt = BitConverter.ToInt32(file, igtOffset);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d61673e68376f939", - "equalIndicator/v1": "45b790ee3be1cc11e427891dc5e665c315729f6a4d6e8d864ffd8149578cce1f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/ItemReader.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 111, - "startColumn": 21, - "charOffset": 4702, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 109, - "startColumn": 1, - "charOffset": 4601, - "charLength": 185, - "snippet": { - "text": " //Separate digits\r\n int one = item % 10;\r\n int ten = (item / 10) % 10;\r\n int hundred = (item / 100) % 10;\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "6b70ff0fc0dd27f5", - "equalIndicator/v1": "4626e3f285643ebe0a78916621a50c66b2ef5bb921b67e180a8d0dd6ba0360a4" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 56, - "startColumn": 13, - "charOffset": 2385, - "charLength": 4, - "snippet": { - "text": "bool" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 54, - "startColumn": 1, - "charOffset": 2328, - "charLength": 130, - "snippet": { - "text": " {\r\n long scanResult = 0;\r\n bool success = false;\r\n switch (node.NodeType)\r\n {\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "391c3a15e056d1ec", - "equalIndicator/v1": "495a537b095f73d8b99770b63a34171c87d3fea7fe76d48d538c195304b6b513" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 274, - "startColumn": 9, - "charOffset": 10321, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 272, - "startColumn": 1, - "charOffset": 10229, - "charLength": 161, - "snippet": { - "text": " public static int BoyerMooreCount(this byte[] haystack, byte?[] needle)\r\n {\r\n int result = 0;\r\n var lastPatternIndex = needle.Length - 1;\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "efb018e880118bc6", - "equalIndicator/v1": "4c66368625a616eb1a65cb8d30df8229d9c032980832e09908ec3fec25b9ceda" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/FlagWatcher.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 44, - "startColumn": 14, - "charOffset": 1515, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 42, - "startColumn": 1, - "charOffset": 1443, - "charLength": 162, - "snippet": { - "text": " {\r\n var result = new Dictionary();\r\n for (int i = 0; i < _flags.Count; i++)\r\n {\r\n var flag = _flags.ElementAt(i);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e130c27635bf07c6", - "equalIndicator/v1": "4efa829b5f5545dbb4bf4d8f4876945b0236eef70c2d4b00a648e26676408bff" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 223, - "startColumn": 18, - "charOffset": 7594, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 221, - "startColumn": 1, - "charOffset": 7532, - "charLength": 141, - "snippet": { - "text": "\r\n //Loop over worldInfo structs\r\n for (int i = 0; i < size; i++)\r\n {\r\n //0x00007ff4fd9ba4c3\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "2874d9c071523c32", - "equalIndicator/v1": "4f06f3beb6e27e8f8bbbf0d03e7b72745283160ceb6ed1527e6112e098a62b0d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/EldenRing/EldenRingControl.xaml.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 59, - "startColumn": 74, - "charOffset": 2021, - "charLength": 4, - "snippet": { - "text": "uint" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 57, - "startColumn": 1, - "charOffset": 1858, - "charLength": 248, - "snippet": { - "text": " private void TextBoxBase_OnTextChanged(object sender, TextChangedEventArgs e)\r\n {\r\n if (sender is TextBox textBox && uint.TryParse(textBox.Text, out uint result))\r\n {\r\n GetEldenRingViewModel().NewSplitFlag = result;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "44e21f778660408e", - "equalIndicator/v1": "5a8083c0f5081e8f2cd1cf3fdf3a63d39ae32db6b86bbc1e88456b39ed4256ae" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/ParamReader.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 68, - "startColumn": 14, - "charOffset": 2563, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 66, - "startColumn": 1, - "charOffset": 2507, - "charLength": 131, - "snippet": { - "text": " var parameters = new List();\r\n\r\n for (int i = 0; i < rowCount; i++)\r\n {\r\n var offset = i * 12;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4283f2d16e957e48", - "equalIndicator/v1": "5b8becd7de563071c7e50166874936624cfcd96b7ff231c1a7a3654d6825edfd" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Sl2Reader.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 73, - "startColumn": 21, - "charOffset": 2530, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 71, - "startColumn": 1, - "charOffset": 2459, - "charLength": 203, - "snippet": { - "text": " saveSlotSize = 0x60190;\r\n\r\n int igtOffset = 0x2dc + (saveSlotSize * slot);\r\n igt = BitConverter.ToInt32(file, igtOffset);\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "48c1263097e48338", - "equalIndicator/v1": "642d929d66f19b16d9a9fdd484448b70573e8be7b6346434f1843787810e41b7" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 398, - "startColumn": 57, - "charOffset": 13967, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 396, - "startColumn": 1, - "charOffset": 13743, - "charLength": 329, - "snippet": { - "text": " var dataPointer = weaponDescriptionsPointer.CreatePointerFromAddress(0x14);\r\n var textOffset = dataPointer.ReadInt32(weaponDescription.DataOffset * 4);\r\n weaponDescriptionsPointer.ReadUnicodeString(out int length, offset: textOffset);\r\n \r\n var buffer = Encoding.Unicode.GetBytes(description);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5478d00531b085f4", - "equalIndicator/v1": "6464cf7bc8230547363ce2ed95397998c4aa875439934347d4fc626f311e399d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 315, - "startColumn": 9, - "charOffset": 11215, - "charLength": 4, - "snippet": { - "text": "uint" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 313, - "startColumn": 1, - "charOffset": 11130, - "charLength": 174, - "snippet": { - "text": " {\r\n int offset = GetEventFlagOffset(eventFlagId, out uint mask);\r\n uint value = _eventFlags.ReadUInt32(offset);\r\n return (value & mask) != 0;\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "87a4c121c00d8cba", - "equalIndicator/v1": "64a8c9632cb09fb4e046ec16391882bd3dc3988d686cd592ad70572d4c4f1e83" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Migrations/Migrator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 172, - "startColumn": 100, - "charOffset": 8658, - "charLength": 4, - "snippet": { - "text": "bool" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 170, - "startColumn": 1, - "charOffset": 8546, - "charLength": 225, - "snippet": { - "text": " }\r\n\r\n if (bool.TryParse(sekiroViewModel.GetChildNodeByName(\"OverwriteIgtOnStart\").InnerText, out bool overwriteIgtOnStart))\r\n {\r\n newSekiroViewModel.OverwriteIgtOnStart = overwriteIgtOnStart;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c9b134a05e938736", - "equalIndicator/v1": "66af6e7ff591149f495ce9445c1f0d08b2cc7dc46aef050a34f094382d6ea84c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 502, - "startColumn": 9, - "charOffset": 17680, - "charLength": 6, - "snippet": { - "text": "byte[]" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 500, - "startColumn": 1, - "charOffset": 17561, - "charLength": 296, - "snippet": { - "text": " // build asm and replace the function pointers\r\n byte[] asm = LoadDefuseOutput(IsJapaneseAsm);\r\n byte[] callBytes = BitConverter.GetBytes((ulong)callPtr);\r\n Array.Copy(callBytes, 0, asm, 0x6, 8);\r\n byte[] resultBytes = BitConverter.GetBytes((ulong)resultPtr);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "93790c501cc156e2", - "equalIndicator/v1": "67bb0a57caf605e091bff4cdda9cd7f2f32b174519cebf50986f8f735b200dbd" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 208, - "startColumn": 52, - "charOffset": 8416, - "charLength": 4, - "snippet": { - "text": "long" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 206, - "startColumn": 1, - "charOffset": 8284, - "charLength": 201, - "snippet": { - "text": " result = 0;\r\n var pattern = pointerNode.Pattern.ToBytePattern();\r\n if (bytes.TryBoyerMooreSearch(pattern, out long scanResult))\r\n {\r\n scanResult += baseAddress;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c802a0e02473b710", - "equalIndicator/v1": "6cc2f835ed403bbc0d8deb85bcac0684cf90fb641d60b9b77e8f7c78fa31c8a7" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 504, - "startColumn": 9, - "charOffset": 17795, - "charLength": 6, - "snippet": { - "text": "byte[]" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 502, - "startColumn": 1, - "charOffset": 17672, - "charLength": 238, - "snippet": { - "text": " byte[] callBytes = BitConverter.GetBytes((ulong)callPtr);\r\n Array.Copy(callBytes, 0, asm, 0x6, 8);\r\n byte[] resultBytes = BitConverter.GetBytes((ulong)resultPtr);\r\n Array.Copy(resultBytes, 0, asm, 0x13, 8);\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a3ad794df5806988", - "equalIndicator/v1": "6e2bbc0d58687dcd91ea2538bd4a3db3319b52b11f63645080216b99053a2ca2" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Sl2Reader.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 81, - "startColumn": 21, - "charOffset": 2916, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 79, - "startColumn": 1, - "charOffset": 2790, - "charLength": 288, - "snippet": { - "text": " byte[] file = File.ReadAllBytes(path);\r\n file = DecryptSl2(file);\r\n int saveSlotSize = 0x60030;\r\n int igtOffset = 0x2EC + (saveSlotSize * slot);\r\n igt = BitConverter.ToInt32(file, igtOffset);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9e725e1387238dd4", - "equalIndicator/v1": "7057ecaa3e893508f81b88211354e83e43f262d3b5f52c909aa3ae0f5301c00a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 477, - "startColumn": 13, - "charOffset": 16634, - "charLength": 6, - "snippet": { - "text": "string" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 475, - "startColumn": 1, - "charOffset": 16556, - "charLength": 285, - "snippet": { - "text": " {\r\n Match match = _assemblyRegex.Match(line);\r\n string hexes = match.Groups[1].Value;\r\n foreach (Match hex in Regex.Matches(hexes, @\"\\S+\"))\r\n bytes.Add(Byte.Parse(hex.Value, System.Globalization.NumberStyles.AllowHexSpecifier));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "fd580214af259d89", - "equalIndicator/v1": "73fbf8974ea7a25a0a01d235e7fb5390903563ec9bc110780fc0a90757163aaf" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 54, - "startColumn": 9, - "charOffset": 1768, - "charLength": 4, - "snippet": { - "text": "long" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 52, - "startColumn": 1, - "charOffset": 1719, - "charLength": 193, - "snippet": { - "text": " public long ResolveOffsets()\r\n {\r\n long currentAddress = AbsoluteOffset;//0 for standard pointers. Only has a value when coming from an absolute scan\r\n\r\n //Resolve offsets\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4472c8465efdcd86", - "equalIndicator/v1": "7889c743dbaeceab2e5923b489230572c9c20154270e8aac433e67eb8b62d138" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 350, - "startColumn": 18, - "charOffset": 12233, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 348, - "startColumn": 1, - "charOffset": 12162, - "charLength": 171, - "snippet": { - "text": " var bytes = strPointer.ReadBytes(128);\r\n\r\n for (int i = 0; i < 128; i += 2)\r\n {\r\n if (bytes[i] == 0 && bytes[i + 1] == 0)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "73b033ac360a280d", - "equalIndicator/v1": "80fca6ef383509760b471753d8ce59aa25cdea2b96c83e3ff6d23b344dcc3847" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 128, - "startColumn": 52, - "charOffset": 5180, - "charLength": 4, - "snippet": { - "text": "long" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 126, - "startColumn": 1, - "charOffset": 5048, - "charLength": 264, - "snippet": { - "text": " result = 0;\r\n var pattern = pointerNode.Pattern.ToBytePattern();\r\n if (bytes.TryBoyerMooreSearch(pattern, out long scanResult))\r\n {\r\n var address = BitConverter.ToInt32(bytes, (int)(scanResult + pointerNode.AddressOffset));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "72d01532945fb085", - "equalIndicator/v1": "8145475cae85bd5b9b301ce2471893d5ef6f36f0efca83a859a5f66e1b299c91" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 92, - "startColumn": 14, - "charOffset": 2584, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 90, - "startColumn": 1, - "charOffset": 2536, - "charLength": 132, - "snippet": { - "text": "\r\n long ptr = BaseAddress;\r\n for (int i = 0; i < offsets.Count; i++)\r\n {\r\n var offset = offsets[i];\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e80b73216c81b38f", - "equalIndicator/v1": "82a64a601a643a6e7ad71d17f53381b821442e82ff43bdef6c41013ed0aaf95a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Sl2Reader.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 79, - "startColumn": 21, - "charOffset": 2810, - "charLength": 6, - "snippet": { - "text": "byte[]" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 77, - "startColumn": 1, - "charOffset": 2685, - "charLength": 259, - "snippet": { - "text": " {\r\n // Each USERDATA file is individually AES - 128 - CBC encrypted.\r\n byte[] file = File.ReadAllBytes(path);\r\n file = DecryptSl2(file);\r\n int saveSlotSize = 0x60030;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "bb6f844cb2bd03c8", - "equalIndicator/v1": "8613211867e17260a8dfa4a81a34c5bae69cf26999dbfd3d6097ab69f3639c88" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 349, - "startColumn": 9, - "charOffset": 12173, - "charLength": 6, - "snippet": { - "text": "string" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 347, - "startColumn": 1, - "charOffset": 12089, - "charLength": 176, - "snippet": { - "text": " private int GetEventFlagOffset(uint eventFlagId, out uint mask)\r\n {\r\n string idString = eventFlagId.ToString(\"D8\");\r\n if (idString.Length == 8)\r\n {\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7ab201f5ad9f221d", - "equalIndicator/v1": "87b1e66f0c925786ee5a3b63eba9e591a69c8f53569716aebed99e04d6581231" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Native/Kernel32.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 251, - "startColumn": 9, - "charOffset": 9431, - "charLength": 4, - "snippet": { - "text": "uint" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 249, - "startColumn": 1, - "charOffset": 9337, - "charLength": 180, - "snippet": { - "text": " uint arraySize = 256;\r\n IntPtr[] processMods = new IntPtr[arraySize];\r\n uint arrayBytesSize = arraySize * (uint)IntPtr.Size;\r\n uint bytesCopied = 0;\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "26e4481f36f1ec64", - "equalIndicator/v1": "89e8f48c3c18a283ca4ce3e780c3e55270786042b83ed8ab4619a19eb4a5980f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/BaseParam.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 183, - "startColumn": 14, - "charOffset": 7151, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 181, - "startColumn": 1, - "charOffset": 7109, - "charLength": 234, - "snippet": { - "text": "\r\n var bitIndex = 0;\r\n for (int i = bitfield.paramFieldAttribute.BitsOffset; i < bitfield.paramFieldAttribute.BitsOffset + bitfield.paramFieldAttribute.Bits; i++)\r\n {\r\n if (newValue.IsBitSet(bitIndex))\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a5578cfb1f000695", - "equalIndicator/v1": "90ca8136046659022dd242666a904e7d3680883a8dc7bcfd45ae3786fc3f3ca4" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 42, - "startColumn": 9, - "charOffset": 1755, - "charLength": 6, - "snippet": { - "text": "object" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 40, - "startColumn": 1, - "charOffset": 1734, - "charLength": 145, - "snippet": { - "text": " }\r\n\r\n object errorLock = new object();\r\n var errorsList = new List<(string fileName, string patternName, long count)>();\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b38989fba9d47234", - "equalIndicator/v1": "92527ae454b1b939f1a05db06a3673176374a77c495446f46329eae28b5a8c7e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/FlagTrackerViewModel.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 164, - "startColumn": 13, - "charOffset": 5313, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 162, - "startColumn": 1, - "charOffset": 5265, - "charLength": 154, - "snippet": { - "text": "\r\n //Check the next x flags\r\n for(int i = 0; i < FlagsPerFrame; i++)\r\n {\r\n var (category, flag) = _lookup[_currentIndex];\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ea3fa073ef7d3e55", - "equalIndicator/v1": "952c0eb4005e0d283e2a21bf4c830ffcf4478609d5e27410631df79f59154ab5" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 374, - "startColumn": 9, - "charOffset": 13155, - "charLength": 4, - "snippet": { - "text": "uint" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 372, - "startColumn": 1, - "charOffset": 13070, - "charLength": 174, - "snippet": { - "text": " {\r\n int offset = GetEventFlagOffset(eventFlagId, out uint mask);\r\n uint value = _eventFlags.ReadUInt32(offset);\r\n return (value & mask) != 0;\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "904e403b02c31c81", - "equalIndicator/v1": "96df9210bd21f227847473f7317b6819c0816a77b3f95babc5d9216b822bafd0" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 294, - "startColumn": 13, - "charOffset": 10392, - "charLength": 6, - "snippet": { - "text": "string" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 292, - "startColumn": 1, - "charOffset": 10315, - "charLength": 244, - "snippet": { - "text": " {\r\n string group = idString.Substring(0, 1);\r\n string area = idString.Substring(1, 3);\r\n int section = int.Parse(idString.Substring(4, 1));\r\n int number = int.Parse(idString.Substring(5, 3));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4464987f842e260f", - "equalIndicator/v1": "9ba41893535ed200af8b2c9aa19c1f7505c29104ca9f9503eabca2d07d58875b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Converters/ColorToHexTextConverter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 42, - "startColumn": 17, - "charOffset": 1565, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 40, - "startColumn": 1, - "charOffset": 1517, - "charLength": 215, - "snippet": { - "text": " try\r\n {\r\n int rgb = System.Convert.ToInt32(hex.Remove(0, 1), 16);\r\n var r = (byte)((rgb & 0xff0000) >> 16);\r\n var g = (byte)((rgb & 0xff00) >> 8);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4de2c54d9ebf4e41", - "equalIndicator/v1": "9bd64982c642361d9504f4ca6a2869d556d0ad917534e5b75d80119942078ea8" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/DropMod.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 27, - "startColumn": 14, - "charOffset": 1114, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 25, - "startColumn": 1, - "charOffset": 975, - "charLength": 231, - "snippet": { - "text": " {\r\n darkSouls.WriteWeaponDescription(1105000, \"Dropmod!\\n\\nAffected:\\nBlack Knight Halberd\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\");\r\n for (int i = 0; i < 62; i++)\r\n {\r\n darkSouls.SetLoadingScreenItem(i, 1105000);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "30247c9ee9cf7150", - "equalIndicator/v1": "9c2813d3083c6e680d735c215b22e1c25d497bb5d9a7e51a44dceae6714259a7" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Item.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 48, - "startColumn": 9, - "charOffset": 1775, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 46, - "startColumn": 1, - "charOffset": 1729, - "charLength": 161, - "snippet": { - "text": " public int GetGameValue()\r\n {\r\n int id = (int)ItemType;\r\n if (Upgrade is ItemUpgrade.PyroFlame or ItemUpgrade.PyroFlameAscended)\r\n {\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3b8d9a0ef800ee25", - "equalIndicator/v1": "a25ade25b501cf591f85b91bb93d7d21305ea3ae3cdd29f8ef8ed8db9e06683d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/ItemReader.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 71, - "startColumn": 17, - "charOffset": 2831, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 69, - "startColumn": 1, - "charOffset": 2782, - "charLength": 155, - "snippet": { - "text": "\r\n //Decode item\r\n int id = 0;\r\n ItemInfusion infusion = ItemInfusion.Normal;\r\n int level = 0;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1cdbd2140493efcc", - "equalIndicator/v1": "a3495c5d639f2d806484a7fad7a550f9e65ee14551c7921cac4e753e342985cb" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Validation/TextToNumberValidation.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 85, - "startColumn": 127, - "charOffset": 2809, - "charLength": 5, - "snippet": { - "text": "float" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 83, - "startColumn": 1, - "charOffset": 2644, - "charLength": 290, - "snippet": { - "text": "\r\n case NumericType.Float:\r\n if (!float.TryParse(text, NumberStyles.Float | NumberStyles.AllowThousands, CultureInfo.InvariantCulture, out float f))\r\n {\r\n return new ValidationResult(false, \"Input is not a valid decimal number\");\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "2b8689a02d941cad", - "equalIndicator/v1": "a7a5d3f10cbfec03c4194c80def54a0497d9e570a0bb17258b8c19afd47f7aa0" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 429, - "startColumn": 9, - "charOffset": 14668, - "charLength": 6, - "snippet": { - "text": "string" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 427, - "startColumn": 1, - "charOffset": 14622, - "charLength": 120, - "snippet": { - "text": " private int GetSteamId3()\r\n {\r\n string name = \"steam_api64.dll\";\r\n ProcessModule? module = null;\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "590be8b7a8bcf33a", - "equalIndicator/v1": "a82331e3c4c9f194f637de2915072d6e308b68fcc2ee9bb109fe3f2d08740476" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 293, - "startColumn": 13, - "charOffset": 10338, - "charLength": 6, - "snippet": { - "text": "string" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 291, - "startColumn": 1, - "charOffset": 10280, - "charLength": 216, - "snippet": { - "text": " if (idString.Length == 8)\r\n {\r\n string group = idString.Substring(0, 1);\r\n string area = idString.Substring(1, 3);\r\n int section = int.Parse(idString.Substring(4, 1));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f8175246c85a4829", - "equalIndicator/v1": "aaa6a054ca75a9a33d8a3c4b775c3019c2f3676557fee9bb875ed74936cfe077" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/ItemReader.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 110, - "startColumn": 21, - "charOffset": 4660, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 108, - "startColumn": 1, - "charOffset": 4582, - "charLength": 202, - "snippet": { - "text": " {\r\n //Separate digits\r\n int one = item % 10;\r\n int ten = (item / 10) % 10;\r\n int hundred = (item / 100) % 10;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0aeee0ba06bdecab", - "equalIndicator/v1": "aac69079d16c08abb1cb2fc7b5d53d48bdffccb5cde82b4796e53f4881cc47d9" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/DropMod.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 38, - "startColumn": 14, - "charOffset": 1603, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 36, - "startColumn": 1, - "charOffset": 1316, - "charLength": 379, - "snippet": { - "text": " darkSouls.WriteWeaponDescription(1004000, \"Dropmod!\\n\\nAffected:\\nBlack Knight Halberd/Sword/Greatsword/Greataxe/Shield\\nSilver Knight Straight Sword/Spear/Shield\\nStone Greatsword/Greatshield\\nChanneler's Trident\\nSouvenir of Reprisal\\nEye of Death\\n\\n\\n\\n\\n\");\r\n\r\n for (int i = 0; i < 62; i++)\r\n {\r\n darkSouls.SetLoadingScreenItem(i, 1004000);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e92a2d3746490705", - "equalIndicator/v1": "abcce10336b41c6821ac27a203d70947b48b053096c440dbe9d0b3ac5f4085e7" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 106, - "startColumn": 9, - "charOffset": 4217, - "charLength": 6, - "snippet": { - "text": "object" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 104, - "startColumn": 1, - "charOffset": 4196, - "charLength": 145, - "snippet": { - "text": " }\r\n\r\n object errorLock = new object();\r\n var errorsList = new List<(string fileName, string patternName, long count)>();\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "90a479ad65d475e9", - "equalIndicator/v1": "ad03e7275ee0947852c9f5a5bf51b65fb215788dcbfb73cb7d92aadfe47e991f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Sl2Reader.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 67, - "startColumn": 21, - "charOffset": 2306, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 65, - "startColumn": 1, - "charOffset": 2207, - "charLength": 202, - "snippet": { - "text": " {\r\n byte[] file = File.ReadAllBytes(path);\r\n int saveSlotSize = 0x60020;\r\n\r\n // Seems like GFWL files have a different slot size\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "088f020716d06922", - "equalIndicator/v1": "af304008f1668db12c33e8e83af2dab82fda8df3ea4315a44d9767f04b0aa20d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/Pointer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 91, - "startColumn": 9, - "charOffset": 2546, - "charLength": 4, - "snippet": { - "text": "long" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 89, - "startColumn": 1, - "charOffset": 2476, - "charLength": 154, - "snippet": { - "text": " debugStringBuilder?.Append($\" 0x{BaseAddress:x}\");\r\n\r\n long ptr = BaseAddress;\r\n for (int i = 0; i < offsets.Count; i++)\r\n {\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e1666af60d2db184", - "equalIndicator/v1": "b193baf825eb899127e3efaf816f9cfbc800c18fd07b7a4e8f141592e88e50c4" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 355, - "startColumn": 13, - "charOffset": 12451, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 353, - "startColumn": 1, - "charOffset": 12320, - "charLength": 274, - "snippet": { - "text": " string area = idString.Substring(1, 3);\r\n int section = Int32.Parse(idString.Substring(4, 1));\r\n int number = Int32.Parse(idString.Substring(5, 3));\r\n\r\n if (EventFlagGroups.ContainsKey(group) && EventFlagAreas.ContainsKey(area))\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7feeb7c58556962e", - "equalIndicator/v1": "b3bf28a7a0065d959b77dbb963b9a7c4ef45359d3442f148db7f67dc3cb46455" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Migrations/Migrator.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 124, - "startColumn": 76, - "charOffset": 6092, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 122, - "startColumn": 1, - "charOffset": 5824, - "charLength": 360, - "snippet": { - "text": " if (\r\n SoulMemory.DarkSouls3.Attribute.TryParse(attributeType.InnerText, out SoulMemory.DarkSouls3.Attribute attributeTypeParsed) &&\r\n int.TryParse(attributeLevel.InnerText, out int attributeLevelParsed)\r\n )\r\n {\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "964dab8ab5b482ab", - "equalIndicator/v1": "b4624a3152b8d14fd95ed1330ad51c27ea393b4f1983589e307970707142b4ec" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/EldenRing.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 399, - "startColumn": 13, - "charOffset": 13194, - "charLength": 4, - "snippet": { - "text": "byte" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 397, - "startColumn": 1, - "charOffset": 13156, - "charLength": 134, - "snippet": { - "text": " ], 0);\r\n \r\n byte cat = inventory[itemIndex + 0X7];\r\n byte mask = 0xF0;\r\n cat &= mask;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "888706b1e9fbcea9", - "equalIndicator/v1": "b64618a18463d1acf3969a46c2277e462fd3d422546dab5b872a752967b4182c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/EldenRing.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 386, - "startColumn": 14, - "charOffset": 12825, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 384, - "startColumn": 1, - "charOffset": 12722, - "charLength": 203, - "snippet": { - "text": " var inventory = _inventory.ReadBytes(inventoryCount * InventoryEntrySize);\r\n \r\n for (int i = 0; i < inventoryCount; i++)\r\n {\r\n var itemIndex = i * InventoryEntrySize;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0df661a3043c1a30", - "equalIndicator/v1": "baeec25f59c74b205d8cc696c1623195561f0c5aa0936e828221c5a05050e05b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 300, - "startColumn": 17, - "charOffset": 10682, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 298, - "startColumn": 1, - "charOffset": 10562, - "charLength": 256, - "snippet": { - "text": " if (EventFlagGroups.ContainsKey(group) && EventFlagAreas.ContainsKey(area))\r\n {\r\n int offset = EventFlagGroups[group];\r\n offset += EventFlagAreas[area] * 0x500;\r\n offset += section * 128;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "fc8c7b9771d7d700", - "equalIndicator/v1": "c4a537bb2a1d41b8906af33eb2265191a0d432204515825b01c691ea08c82ef9" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Hotkeys/GlobalHotKey.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 62, - "startColumn": 9, - "charOffset": 2216, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 60, - "startColumn": 1, - "charOffset": 2135, - "charLength": 175, - "snippet": { - "text": "\r\n var virtualKeyCode = (Keys)KeyInterop.VirtualKeyFromKey(key);\r\n int id = Interlocked.Increment(ref _currentId);\r\n\r\n Delegate register = (Action)(() =>\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7cceb2948f39055c", - "equalIndicator/v1": "c8e88d14619937eff8bfe6b66dc0bad850bff89433864361c2698901c2f537b3" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls2/scholar.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 127, - "startColumn": 14, - "charOffset": 4373, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 125, - "startColumn": 1, - "charOffset": 4284, - "charLength": 259, - "snippet": { - "text": " var vector = _eventFlagManager.CreatePointerFromAddress(offset);\r\n\r\n for (int i = 0; i < 100; i++) //Replaced infinite while with for loop, in case some memes occur and the function never returns\r\n {\r\n if (vector.IsNullPtr())\r" - }, - "sourceLanguage": "C#" - } }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "79cdfe06e626fc16", - "equalIndicator/v1": "c9982f0aa84c7a316d421e2a3428d6964b823e7c60838610278ad24432d4bebc" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/Memory/MemoryExtensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 102, - "startColumn": 14, - "charOffset": 3340, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" + { + "id": "HtmlPresentationalElement", + "shortDescription": { + "text": "Presentational tag" }, - "contextRegion": { - "startLine": 100, - "startColumn": 1, - "charOffset": 3251, - "charLength": 184, - "snippet": { - "text": " var data = memory.ReadBytes(offset, maxSize);\r\n length = 0;\r\n for (int i = 1; i < data.Length; i++)\r\n {\r\n if (data[i - 1] == 0 && data[i] == 0)\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e8cd3cd0581f42b6", - "equalIndicator/v1": "cc8f2863cf17202fac088e340e7a821a8de497ae4e53bff14c0a629bc636293f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" + "fullDescription": { + "text": "Reports a presentational HTML tag. Suggests replacing the presentational tag with a CSS or another tag.", + "markdown": "Reports a presentational HTML tag. Suggests replacing the presentational tag with a CSS or another tag." }, - "region": { - "startLine": 373, - "startColumn": 9, - "charOffset": 13085, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "HtmlPresentationalElement", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Code Style" + } }, - "contextRegion": { - "startLine": 371, - "startColumn": 1, - "charOffset": 13021, - "charLength": 216, - "snippet": { - "text": " public bool ReadEventFlag(uint eventFlagId)\r\n {\r\n int offset = GetEventFlagOffset(eventFlagId, out uint mask);\r\n uint value = _eventFlags.ReadUInt32(offset);\r\n return (value & mask) != 0;\r" - }, - "sourceLanguage": "C#" - } + "relationships": [ + { + "target": { + "id": "HTML", + "index": 11, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7d751d67418bb2e1", - "equalIndicator/v1": "cf2d35e9baf9217a34e0fa283f7173aa938aefc33e61c3846f9af1240a09718e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Native/Kernel32.cs", - "uriBaseId": "SRCROOT" + { + "id": "HtmlDeprecatedTag", + "shortDescription": { + "text": "Obsolete tag" }, - "region": { - "startLine": 127, - "startColumn": 9, - "charOffset": 4674, - "charLength": 4, - "snippet": { - "text": "long" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Reports an obsolete HTML5 tag. Suggests replacing the obsolete tag with a CSS or another tag.", + "markdown": "Reports an obsolete HTML5 tag. Suggests replacing the obsolete tag with a CSS or another tag." }, - "contextRegion": { - "startLine": 125, - "startColumn": 1, - "charOffset": 4498, - "charLength": 273, - "snippet": { - "text": " var result = new List();\r\n var maxAddress = (process.MainModule.BaseAddress + process.MainModule.ModuleMemorySize).ToInt64();\r\n long address = process.MainModule.BaseAddress.ToInt64();\r\n\r\n while (address < maxAddress)\r" - }, - "sourceLanguage": "C#" - } + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "HtmlDeprecatedTag", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" + } + }, + "relationships": [ + { + "target": { + "id": "HTML", + "index": 11, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "93a7e8f762424bbf", - "equalIndicator/v1": "cf7929fb2f090ae7f1f491eb36e7e8751229d3d0a1e3e0824681c388ee0e81d8" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" + { + "id": "HtmlFormInputWithoutLabel", + "shortDescription": { + "text": "Missing associated label" }, - "region": { - "startLine": 353, - "startColumn": 13, - "charOffset": 12332, - "charLength": 6, - "snippet": { - "text": "string" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Reports a form element ('input', 'textarea', or 'select') without an associated label. Suggests creating a new label. Based on WCAG 2.0: H44.", + "markdown": "Reports a form element (`input`, `textarea`, or `select`) without an associated label. Suggests creating a new label. Based on WCAG 2.0: [H44](https://www.w3.org/TR/WCAG20-TECHS/H44.html). " }, - "contextRegion": { - "startLine": 351, - "startColumn": 1, - "charOffset": 12255, - "charLength": 248, - "snippet": { - "text": " {\r\n string group = idString.Substring(0, 1);\r\n string area = idString.Substring(1, 3);\r\n int section = Int32.Parse(idString.Substring(4, 1));\r\n int number = Int32.Parse(idString.Substring(5, 3));\r" - }, - "sourceLanguage": "C#" - } + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "HtmlFormInputWithoutLabel", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" + } + }, + "relationships": [ + { + "target": { + "id": "HTML/Accessibility", + "index": 83, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0792da9354c2155d", - "equalIndicator/v1": "d0c6f873537e1203cb58460d06aa372cd67264dc1a3fde4e959abea9bc71b80b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", - "uriBaseId": "SRCROOT" + { + "id": "HtmlRequiredTitleElement", + "shortDescription": { + "text": "Missing required 'title' element" }, - "region": { - "startLine": 290, - "startColumn": 9, - "charOffset": 10233, - "charLength": 6, - "snippet": { - "text": "string" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Reports a missing 'title' element inside a 'head' section. Suggests adding a 'title' element. The title should describe the document. Based on WCAG 2.0: H25.", + "markdown": "Reports a missing `title` element inside a `head` section. Suggests adding a `title` element. The title should describe the document. Based on WCAG 2.0: [H25](https://www.w3.org/TR/WCAG20-TECHS/H25.html)." }, - "contextRegion": { - "startLine": 288, - "startColumn": 1, - "charOffset": 10149, - "charLength": 176, - "snippet": { - "text": " private int GetEventFlagOffset(uint eventFlagId, out uint mask)\r\n {\r\n string idString = eventFlagId.ToString(\"D8\");\r\n if (idString.Length == 8)\r\n {\r" - }, - "sourceLanguage": "C#" - } + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "HtmlRequiredTitleElement", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" + } + }, + "relationships": [ + { + "target": { + "id": "HTML/Accessibility", + "index": 83, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9feffad78a2eda29", - "equalIndicator/v1": "d0f778a272d7d0fb788ca75bf0f5566907ad87477be60696eb024f5e72908ccc" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Sekiro/Sekiro.cs", - "uriBaseId": "SRCROOT" + { + "id": "HtmlDeprecatedAttribute", + "shortDescription": { + "text": "Obsolete attribute" }, - "region": { - "startLine": 574, - "startColumn": 9, - "charOffset": 21328, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Reports an obsolete HTML5 attribute.", + "markdown": "Reports an obsolete HTML5 attribute." }, - "contextRegion": { - "startLine": 572, - "startColumn": 1, - "charOffset": 21242, - "charLength": 224, - "snippet": { - "text": " //fix detour\r\n var igtFixDetourCode = new List(){0xE9};\r\n int detourTarget = (int) (igtFixCodeLoc-(igtFixEntryPoint+5));\r\n igtFixDetourCode.AddRange(BitConverter.GetBytes(detourTarget));\r\n\r" - }, - "sourceLanguage": "C#" - } + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "HtmlDeprecatedAttribute", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" + } + }, + "relationships": [ + { + "target": { + "id": "HTML", + "index": 11, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3f55175fccf13820", - "equalIndicator/v1": "d2644bd501170252ab04cc63c9ba87ed559f806f5500b5abad915719a99bc78a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" + { + "id": "CheckImageSize", + "shortDescription": { + "text": "Mismatched image size" }, - "region": { - "startLine": 373, - "startColumn": 58, - "charOffset": 13134, - "charLength": 4, - "snippet": { - "text": "uint" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Reports a 'width' and 'height' attribute value of a 'img' tag that is different from the actual width and height of the referenced image.", + "markdown": "Reports a `width` and `height` attribute value of a `img` tag that is different from the actual width and height of the referenced image." }, - "contextRegion": { - "startLine": 371, - "startColumn": 1, - "charOffset": 13021, - "charLength": 216, - "snippet": { - "text": " public bool ReadEventFlag(uint eventFlagId)\r\n {\r\n int offset = GetEventFlagOffset(eventFlagId, out uint mask);\r\n uint value = _eventFlags.ReadUInt32(offset);\r\n return (value & mask) != 0;\r" - }, - "sourceLanguage": "C#" - } + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CheckImageSize", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Performance" + } + }, + "relationships": [ + { + "target": { + "id": "HTML", + "index": 11, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "8b7f9ccdea71a899", - "equalIndicator/v1": "d525941dcba4acdd83ece6460c2b09b9d97ca5b3220bda7b49b86d2fc3c17ce5" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/MemoryScanner.cs", - "uriBaseId": "SRCROOT" + { + "id": "HtmlRequiredLangAttribute", + "shortDescription": { + "text": "Missing required 'lang' attribute" }, - "region": { - "startLine": 338, - "startColumn": 9, - "charOffset": 12813, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Reports a missing 'lang' (or 'xml:lang') attribute in a 'html' tag. Suggests adding a required attribute to state the default language of the document. Based on WCAG 2.0: H57.", + "markdown": "Reports a missing `lang` (or `xml:lang`) attribute in a `html` tag. Suggests adding a required attribute to state the default language of the document. Based on WCAG 2.0: [H57](https://www.w3.org/TR/WCAG20-TECHS/H57.html)." }, - "contextRegion": { - "startLine": 336, - "startColumn": 1, - "charOffset": 12721, - "charLength": 161, - "snippet": { - "text": " public static int BoyerMooreCount(this byte[] haystack, byte?[] needle)\r\n {\r\n int result = 0;\r\n var lastPatternIndex = needle.Length - 1;\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "267fdf2605e27d9f", - "equalIndicator/v1": "d61fed4e1e0b20f6238871368e4c0bb1e345195903aa13061a83869fdcfd9944" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "HtmlRequiredLangAttribute", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" + } + }, + "relationships": [ + { + "target": { + "id": "HTML/Accessibility", + "index": 83, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" + { + "name": "com.intellij.modules.json", + "version": "243.24609", + "rules": [ + { + "id": "JsonSchemaCompliance", + "shortDescription": { + "text": "Compliance with JSON schema" }, - "region": { - "startLine": 382, - "startColumn": 14, - "charOffset": 13370, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Reports inconsistence between a JSON file and the JSON schema that is assigned to it.", + "markdown": "Reports inconsistence between a JSON file and the [JSON schema](https://json-schema.org) that is assigned to it. " }, - "contextRegion": { - "startLine": 380, - "startColumn": 1, - "charOffset": 13309, - "charLength": 164, - "snippet": { - "text": " public void ResetInventoryIndices()\r\n {\r\n for (int i = 0; i < 20; i++)\r\n {\r\n _inventoryIndices.WriteUint32(0x4 * i, uint.MaxValue);\r" - }, - "sourceLanguage": "C#" - } + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "JsonSchemaCompliance", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Sanity" + } + }, + "relationships": [ + { + "target": { + "id": "JSON and JSON5", + "index": 84, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c9806180d1aae283", - "equalIndicator/v1": "daf3591b92212fc43cb8e9f2b1e84580ebcb428af88ac8d5378cd5c00cb6d192" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Migrations/Migrator.cs", - "uriBaseId": "SRCROOT" + { + "id": "JsonSchemaDeprecation", + "shortDescription": { + "text": "Deprecated JSON property" }, - "region": { - "startLine": 139, - "startColumn": 68, - "charOffset": 7014, - "charLength": 4, - "snippet": { - "text": "uint" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Reports a deprecated property in a JSON file. Note that deprecation mechanism is not defined in the JSON Schema specification yet, and this inspection uses a non-standard extension 'deprecationMessage'.", + "markdown": "Reports a deprecated property in a JSON file. \nNote that deprecation mechanism is not defined in the JSON Schema specification yet, and this inspection uses a non-standard extension 'deprecationMessage'." }, - "contextRegion": { - "startLine": 137, - "startColumn": 1, - "charOffset": 6845, - "charLength": 298, - "snippet": { - "text": " {\r\n var split = flag.GetChildNodeByName(\"Split\");\r\n if (uint.TryParse(split.InnerText, out uint u))\r\n {\r\n newDarkSouls3ViewModel.NewSplitTimingType = timingType;\r" - }, - "sourceLanguage": "C#" - } + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "JsonSchemaDeprecation", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Sanity" + } + }, + "relationships": [ + { + "target": { + "id": "JSON and JSON5", + "index": 84, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "45ebd3cfe1cd880b", - "equalIndicator/v1": "db61a9f3d87d815986ab5fc11261f3ee086d5453e036a56bfb754b7441fe3cf6" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", - "uriBaseId": "SRCROOT" + { + "id": "JsonStandardCompliance", + "shortDescription": { + "text": "Compliance with JSON standard" }, - "region": { - "startLine": 314, - "startColumn": 9, - "charOffset": 11145, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Reports the following discrepancies of a JSON file with the language specification: A line or block comment (configurable). Multiple top-level values (expect for JSON Lines files, configurable for others). A trailing comma in an object or array (configurable). A single quoted string. A property key is a not a double quoted strings. A NaN or Infinity/-Infinity numeric value as a floating point literal (configurable).", + "markdown": "Reports the following discrepancies of a JSON file with [the language specification](https://tools.ietf.org/html/rfc7159):\n\n* A line or block comment (configurable).\n* Multiple top-level values (expect for JSON Lines files, configurable for others).\n* A trailing comma in an object or array (configurable).\n* A single quoted string.\n* A property key is a not a double quoted strings.\n* A NaN or Infinity/-Infinity numeric value as a floating point literal (configurable)." }, - "contextRegion": { - "startLine": 312, - "startColumn": 1, - "charOffset": 11081, - "charLength": 216, - "snippet": { - "text": " public bool ReadEventFlag(uint eventFlagId)\r\n {\r\n int offset = GetEventFlagOffset(eventFlagId, out uint mask);\r\n uint value = _eventFlags.ReadUInt32(offset);\r\n return (value & mask) != 0;\r" - }, - "sourceLanguage": "C#" - } + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "JsonStandardCompliance", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Code Style" + } + }, + "relationships": [ + { + "target": { + "id": "JSON and JSON5", + "index": 84, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "858eea39dae2e289", - "equalIndicator/v1": "dbce96d4a58374dd706cd54e8945b41f733e3a28bcd7da3d53e794fa4a1fd5b3" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Ptde.cs", - "uriBaseId": "SRCROOT" + { + "id": "JsonSchemaRefReference", + "shortDescription": { + "text": "Unresolved '$ref' and '$schema' references" }, - "region": { - "startLine": 296, - "startColumn": 13, - "charOffset": 10509, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Reports an unresolved '$ref' or '$schema' path in a JSON schema.", + "markdown": "Reports an unresolved `$ref` or `$schema` path in a JSON schema. " }, - "contextRegion": { - "startLine": 294, - "startColumn": 1, - "charOffset": 10380, - "charLength": 270, - "snippet": { - "text": " string area = idString.Substring(1, 3);\r\n int section = int.Parse(idString.Substring(4, 1));\r\n int number = int.Parse(idString.Substring(5, 3));\r\n\r\n if (EventFlagGroups.ContainsKey(group) && EventFlagAreas.ContainsKey(area))\r" - }, - "sourceLanguage": "C#" - } + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "JsonSchemaRefReference", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Sanity" + } + }, + "relationships": [ + { + "target": { + "id": "JSON and JSON5", + "index": 84, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c96f670c6bac36e8", - "equalIndicator/v1": "dda6fc94da64c3dc2bf5bfc245b670611067a81518941227c57aa4032dec75ce" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Sekiro/Sekiro.cs", - "uriBaseId": "SRCROOT" + { + "id": "Json5StandardCompliance", + "shortDescription": { + "text": "Compliance with JSON5 standard" }, - "region": { - "startLine": 609, - "startColumn": 9, - "charOffset": 23086, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Reports inconsistency with the language specification in a JSON5 file.", + "markdown": "Reports inconsistency with [the language specification](http://json5.org) in a JSON5 file." }, - "contextRegion": { - "startLine": 607, - "startColumn": 1, - "charOffset": 23063, - "charLength": 156, - "snippet": { - "text": " ]);\r\n\r\n int jmpTarget = (int)((igtFixEntryPoint+5)-(igtFixCodeLoc+103+5));\r\n igtFixCode.AddRange(BitConverter.GetBytes(jmpTarget));\r\n\r" - }, - "sourceLanguage": "C#" - } + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "Json5StandardCompliance", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Reliability" + } + }, + "relationships": [ + { + "target": { + "id": "JSON and JSON5", + "index": 84, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "197bcd4304fd272e", - "equalIndicator/v1": "de7d3bf0338d947ec0a972424dc94880b00adacafaa873854922005d3437bc96" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" + { + "id": "JsonDuplicatePropertyKeys", + "shortDescription": { + "text": "Duplicate keys in object literals" + }, + "fullDescription": { + "text": "Reports a duplicate key in an object literal.", + "markdown": "Reports a duplicate key in an object literal." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "JsonDuplicatePropertyKeys", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" + } + }, + "relationships": [ + { + "target": { + "id": "JSON and JSON5", + "index": 84, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Memory/IMemory.cs", - "uriBaseId": "SRCROOT" + { + "name": "org.jetbrains.plugins.vue", + "version": "243.24609", + "rules": [ + { + "id": "VueMissingComponentImportInspection", + "shortDescription": { + "text": "Missing component import" }, - "region": { - "startLine": 103, - "startColumn": 14, - "charOffset": 3375, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Reports Vue components, which require to be imported in Vue templates. It provides a quick fix to add the missing import.", + "markdown": "Reports Vue components, which require to be imported in Vue templates. It provides a quick fix to add the missing import." }, - "contextRegion": { - "startLine": 101, - "startColumn": 1, - "charOffset": 3286, - "charLength": 184, - "snippet": { - "text": " var data = memory.ReadBytes(offset, maxSize);\r\n length = 0;\r\n for (int i = 1; i < data.Length; i++)\r\n {\r\n if (data[i - 1] == 0 && data[i] == 0)\r" - }, - "sourceLanguage": "C#" - } + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "VueMissingComponentImportInspection", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Sanity" + } + }, + "relationships": [ + { + "target": { + "id": "Vue", + "index": 88, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "8912684d13160e25", - "equalIndicator/v1": "e027f0bb6b3c9c9b2bc0498099fae38365ef13cdbbb8fa981f0fdde72399c0ae" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerTreeBuilder.cs", - "uriBaseId": "SRCROOT" + { + "id": "VueDeprecatedSymbol", + "shortDescription": { + "text": "Deprecated symbol" }, - "region": { - "startLine": 72, - "startColumn": 13, - "charOffset": 2711, - "charLength": 4, - "snippet": { - "text": "bool" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Reports a deprecated Vue symbol.", + "markdown": "Reports a deprecated Vue symbol." }, - "contextRegion": { - "startLine": 70, - "startColumn": 1, - "charOffset": 2654, - "charLength": 137, - "snippet": { - "text": " {\r\n long scanResult = 0;\r\n bool success = false;\r\n switch (node.PointerNodeType)\r\n {\r" - }, - "sourceLanguage": "C#" - } + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "VueDeprecatedSymbol", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Sanity" + } + }, + "relationships": [ + { + "target": { + "id": "Vue", + "index": 88, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3a36c095945a9d2f", - "equalIndicator/v1": "ea9329d8dcb15f0ef043deaac5ba5442499fb993f292d5a0a069e9a5d73d6ab6" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/BaseParam.cs", - "uriBaseId": "SRCROOT" + { + "id": "VueUnrecognizedDirective", + "shortDescription": { + "text": "Unrecognized directive" }, - "region": { - "startLine": 163, - "startColumn": 14, - "charOffset": 6367, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Reports an unrecognized Vue directive.", + "markdown": "Reports an unrecognized Vue directive." }, - "contextRegion": { - "startLine": 161, - "startColumn": 1, - "charOffset": 6301, - "charLength": 255, - "snippet": { - "text": " var bitIndex = 0;\r\n long result = 0;\r\n for (int i = bitfield.paramFieldAttribute.BitsOffset; i < bitfield.paramFieldAttribute.BitsOffset + bitfield.paramFieldAttribute.Bits; i++)\r\n {\r\n if (currentValue.IsBitSet(i))\r" - }, - "sourceLanguage": "C#" - } + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "VueUnrecognizedDirective", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Sanity" + } + }, + "relationships": [ + { + "target": { + "id": "Vue", + "index": 88, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "aaef7f814cc87113", - "equalIndicator/v1": "ec2b833326b374ebb541f397b53dd459f7d2e58dc280291d4ae85fc1e4fd45d8" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Sekiro/Sekiro.cs", - "uriBaseId": "SRCROOT" + { + "id": "VueDuplicateTag", + "shortDescription": { + "text": "Duplicate template/script tag" }, - "region": { - "startLine": 281, - "startColumn": 18, - "charOffset": 10476, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Reports multiple usages of the 'template' or 'script' tag in a Vue file. Vue Component specification indicates that each '*.vue' file can contain at most one 'template' or 'script' block at a time.", + "markdown": "Reports multiple usages of the `template` or `script` tag in a Vue file.\n\n[Vue Component specification](https://vue-loader.vuejs.org/spec.html) indicates that each `*.vue` file can contain at most one `template` or `script` block at a time." }, - "contextRegion": { - "startLine": 279, - "startColumn": 1, - "charOffset": 10414, - "charLength": 166, - "snippet": { - "text": "\r\n //Loop over worldInfo structs\r\n for (int i = 0; i < size; i++)\r\n {\r\n var area = vector.ReadByte((i * 0x38) + 0xb);\r" - }, - "sourceLanguage": "C#" - } + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "VueDuplicateTag", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Sanity" + } + }, + "relationships": [ + { + "target": { + "id": "Vue", + "index": 88, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "13ba0989e850fe45", - "equalIndicator/v1": "ed47ca219e2eaef2b67105c6e9d126a301f0078fec095afe151ceac21df18cc0" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" + { + "id": "VueDataFunction", + "shortDescription": { + "text": "Data function" }, - "region": { - "startLine": 552, - "startColumn": 57, - "charOffset": 19670, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Reports a Vue component data property that is not a function. Suggests wrapping an object literal with a function. When defining a component, 'data' must be declared as a function that returns the initial data object, because the same definition will be used for creating numerous instances. If a plain object is still used for 'data', that very object will be shared by reference across all instances created! With a 'data' function, every time a new instance is created we can simply call it to return a fresh copy of the initial data.", + "markdown": "Reports a Vue component [data](https://vuejs.org/v2/api/#data) property that is not a function. Suggests wrapping an object literal with a function.\n\nWhen defining a component, `data` must be declared as a function that returns the initial data object, because the same definition will be used for creating numerous instances. If a plain object is still used for `data`, that very object will be shared by reference across all instances created! With a `data` function, every time a new instance is created we can simply call it to return a fresh copy of the initial data." }, - "contextRegion": { - "startLine": 550, - "startColumn": 1, - "charOffset": 19435, - "charLength": 332, - "snippet": { - "text": " var dataOffset = weaponDescriptionsPointer.ReadInt32(0x14);\r\n var textOffset = weaponDescriptionsPointer.ReadInt32(dataOffset + weaponDescription.DataOffset * 4);\r\n weaponDescriptionsPointer.ReadUnicodeString(out int length, offset: textOffset);\r\n\r\n var buffer = Encoding.Unicode.GetBytes(description);\r" - }, - "sourceLanguage": "C#" - } + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "VueDataFunction", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" + } + }, + "relationships": [ + { + "target": { + "id": "Vue", + "index": 88, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e3467ab4631af659", - "equalIndicator/v1": "edf18b7d157f7570e8379166e76c7d21eb0bd93b4cf3d2c4740a5fa33785d127" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" + { + "id": "VueUnrecognizedSlot", + "shortDescription": { + "text": "Unrecognized slot" }, - "region": { - "startLine": 297, - "startColumn": 17, - "charOffset": 10779, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Reports an unrecognized Vue slot.", + "markdown": "Reports an unrecognized Vue slot." }, - "contextRegion": { - "startLine": 295, - "startColumn": 1, - "charOffset": 10703, - "charLength": 195, - "snippet": { - "text": " if (bonfireId == (int)bonfire)\r\n { \r\n int bonfireState = netBonfireDbItem.ReadInt32(0xc);\r\n return (BonfireState)bonfireState;\r\n }\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b087c2d18c162a6c", - "equalIndicator/v1": "f0cc4a6100d412be0d7c407e8377576b3949c3a232a42029ba548b7b8e0e7708" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "VueUnrecognizedSlot", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Sanity" + } + }, + "relationships": [ + { + "target": { + "id": "Vue", + "index": 88, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/EldenRing.cs", - "uriBaseId": "SRCROOT" + { + "name": "org.intellij.plugins.markdown", + "version": "243.24609", + "rules": [ + { + "id": "MarkdownOutdatedTableOfContents", + "shortDescription": { + "text": "Outdated table of contents section" }, - "region": { - "startLine": 368, - "startColumn": 14, - "charOffset": 12375, - "charLength": 3, - "snippet": { - "text": "int" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Checks if a particular table of contents section corresponds to the actual structure of the document.", + "markdown": "Checks if a particular table of contents section corresponds to the actual structure of the document." }, - "contextRegion": { - "startLine": 366, - "startColumn": 1, - "charOffset": 12308, - "charLength": 133, - "snippet": { - "text": " private int DeleteFromEnd(int num, int n)\r\n {\r\n for (int i = 1; num != 0; i++)\r\n {\r\n num = num / 10;\r" - }, - "sourceLanguage": "C#" - } + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "MarkdownOutdatedTableOfContents", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Sanity" + } + }, + "relationships": [ + { + "target": { + "id": "Markdown", + "index": 90, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4c1fdfa2cdc8f6bd", - "equalIndicator/v1": "f63b7370342d0d389e66a3fb7074885554df78c36b73d275b8821f3e42955e4b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" + { + "id": "MarkdownUnresolvedLinkLabel", + "shortDescription": { + "text": "Unresolved link label" }, - "region": { - "startLine": 501, - "startColumn": 9, - "charOffset": 17625, - "charLength": 6, - "snippet": { - "text": "byte[]" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Reports unresolved link labels in Markdown files.", + "markdown": "Reports unresolved link labels in Markdown files." }, - "contextRegion": { - "startLine": 499, - "startColumn": 1, - "charOffset": 17559, - "charLength": 227, - "snippet": { - "text": "\r\n // build asm and replace the function pointers\r\n byte[] asm = LoadDefuseOutput(IsJapaneseAsm);\r\n byte[] callBytes = BitConverter.GetBytes((ulong)callPtr);\r\n Array.Copy(callBytes, 0, asm, 0x6, 8);\r" - }, - "sourceLanguage": "C#" - } + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "MarkdownUnresolvedLinkLabel", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" + } + }, + "relationships": [ + { + "target": { + "id": "Markdown", + "index": 90, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4fa8e9169b9fc8d1", - "equalIndicator/v1": "fa4ccb1371b46e2f74c5c4c4dc0cf5c21f0e41d9415b7179bf03601e7096f0f1" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" + { + "id": "MarkdownNoTableBorders", + "shortDescription": { + "text": "Table doesn't have side borders" }, - "region": { - "startLine": 352, - "startColumn": 13, - "charOffset": 12278, - "charLength": 6, - "snippet": { - "text": "string" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Checks if table has correct side borders. For compatibility reasons all table rows should have borders (pipe symbols) at the start and at the end.", + "markdown": "Checks if table has correct side borders. For compatibility reasons all table rows should have borders (pipe symbols) at the start and at the end." }, - "contextRegion": { - "startLine": 350, - "startColumn": 1, - "charOffset": 12220, - "charLength": 218, - "snippet": { - "text": " if (idString.Length == 8)\r\n {\r\n string group = idString.Substring(0, 1);\r\n string area = idString.Substring(1, 3);\r\n int section = Int32.Parse(idString.Substring(4, 1));\r" - }, - "sourceLanguage": "C#" - } + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "MarkdownNoTableBorders", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" + } + }, + "relationships": [ + { + "target": { + "id": "Markdown", + "index": 90, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ff1d8dbb5b6e5c14", - "equalIndicator/v1": "fec01f056ba450efcc666ad11bf8f8cf83b8e8ec7730df23b37522f8f9df098e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_BuiltInTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (built-in types)", - "markdown": "Use 'var' (built-in types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Native/Kernel32.cs", - "uriBaseId": "SRCROOT" + { + "id": "MarkdownIncorrectlyNumberedListItem", + "shortDescription": { + "text": "Incorrectly numbered list item" }, - "region": { - "startLine": 149, - "startColumn": 121, - "charOffset": 5842, - "charLength": 4, - "snippet": { - "text": "uint" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Ordered list items are expected to have straight numeration starting from 1. The motivation behind this is that most of Markdown processors are ignoring the numbering of ordered lists. A processor will generate an '
    ' element for such list, that will number items continuously from 1.", + "markdown": "Ordered list items are expected to have straight numeration starting from 1.\n\nThe motivation behind this is that most of Markdown processors are ignoring the numbering of ordered lists. A processor will generate an `
      ` element for such list, that will number items continuously from 1." }, - "contextRegion": { - "startLine": 147, - "startColumn": 1, - "charOffset": 5619, - "charLength": 300, - "snippet": { - "text": " public static Result WriteProcessMemory(this Process process, long address, byte[] buffer)\r\n {\r\n var result = NativeMethods.WriteProcessMemory(process.Handle, (IntPtr)address, buffer, (uint)buffer.Length, out uint bytesWritten);\r\n\r\n if (!result || bytesWritten != buffer.Length)\r" - }, - "sourceLanguage": "C#" - } + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "MarkdownIncorrectlyNumberedListItem", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" + } + }, + "relationships": [ + { + "target": { + "id": "Markdown", + "index": 90, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3b326affe7ce671d", - "equalIndicator/v1": "fed98adf31c7d8fb6f98b31796dcf39c567a8a27767222f674e9d9732407ff63" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_Elsewhere", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (elsewhere)", - "markdown": "Use 'var' (elsewhere)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Native/Kernel32.cs", - "uriBaseId": "SRCROOT" + { + "id": "MarkdownUnresolvedHeaderReference", + "shortDescription": { + "text": "Unresolved header reference" }, - "region": { - "startLine": 250, - "startColumn": 9, - "charOffset": 9376, - "charLength": 8, - "snippet": { - "text": "IntPtr[]" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Reports unresolved header references in Markdown files.", + "markdown": "Reports unresolved header references in Markdown files." }, - "contextRegion": { - "startLine": 248, - "startColumn": 1, - "charOffset": 9330, - "charLength": 185, - "snippet": { - "text": " {\r\n uint arraySize = 256;\r\n IntPtr[] processMods = new IntPtr[arraySize];\r\n uint arrayBytesSize = arraySize * (uint)IntPtr.Size;\r\n uint bytesCopied = 0;\r" - }, - "sourceLanguage": "C#" - } + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "MarkdownUnresolvedHeaderReference", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" + } + }, + "relationships": [ + { + "target": { + "id": "Markdown", + "index": 90, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1c907989cc0f2272", - "equalIndicator/v1": "6d30512c3d47572aa3f76b0524833a481f6746d9e040b29794d1fb87a16ed3bd" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_SimpleTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (simple types)", - "markdown": "Use 'var' (simple types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/SoulComponent.cs", - "uriBaseId": "SRCROOT" + { + "id": "MarkdownLinkDestinationWithSpaces", + "shortDescription": { + "text": "Links should not contain spaces" }, - "region": { - "startLine": 255, - "startColumn": 13, - "charOffset": 9061, - "charLength": 19, - "snippet": { - "text": "XmlDocumentFragment" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "To ensure consistency between different tools, file links should not contain spaces. Example: '[Some file link](some file.md)' A quick-fix replaces spaces with their url-encoded equivalent: '[Some file link](some%20file.md)'", + "markdown": "To ensure consistency between different tools, file links should not contain spaces.\n\n**Example:**\n\n\n [Some file link](some file.md)\n\nA quick-fix replaces spaces with their url-encoded equivalent:\n\n\n [Some file link](some%20file.md)\n" }, - "contextRegion": { - "startLine": 253, - "startColumn": 1, - "charOffset": 8977, - "charLength": 229, - "snippet": { - "text": " {\r\n var xml = MainWindow.MainViewModel.Serialize();\r\n XmlDocumentFragment fragment = document.CreateDocumentFragment();\r\n fragment.InnerXml = xml;\r\n root.AppendChild(fragment);\r" - }, - "sourceLanguage": "C#" - } + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "MarkdownLinkDestinationWithSpaces", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" + } + }, + "relationships": [ + { + "target": { + "id": "Markdown", + "index": 90, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4f48d4a330f6c705", - "equalIndicator/v1": "09ec64cda7591d44de8a8c78c1a4eca9aab1e3c5aa0af2245ddc0588e8b9d701" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "SuggestVarOrType_SimpleTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (simple types)", - "markdown": "Use 'var' (simple types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" + { + "id": "MarkdownIncorrectTableFormatting", + "shortDescription": { + "text": "Incorrect table formatting" }, - "region": { - "startLine": 476, - "startColumn": 13, - "charOffset": 16579, - "charLength": 5, - "snippet": { - "text": "Match" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Checks if table is correctly formatted.", + "markdown": "Checks if table is correctly formatted." }, - "contextRegion": { - "startLine": 474, - "startColumn": 1, - "charOffset": 16492, - "charLength": 245, - "snippet": { - "text": " foreach (string line in Regex.Split(lines, \"[\\r\\n]+\"))\r\n {\r\n Match match = _assemblyRegex.Match(line);\r\n string hexes = match.Groups[1].Value;\r\n foreach (Match hex in Regex.Matches(hexes, @\"\\S+\"))\r" - }, - "sourceLanguage": "C#" - } + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "MarkdownIncorrectTableFormatting", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Code Style" + } + }, + "relationships": [ + { + "target": { + "id": "Markdown", + "index": 90, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ed2f07b9907fa730", - "equalIndicator/v1": "1b91390c0215e78a03e91e48b580f4e1cfe25efcf7cd6bfb443477427214f658" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_SimpleTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (simple types)", - "markdown": "Use 'var' (simple types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" + { + "id": "MarkdownUnresolvedFileReference", + "shortDescription": { + "text": "Unresolved file references" }, - "region": { - "startLine": 498, - "startColumn": 9, - "charOffset": 17514, - "charLength": 6, - "snippet": { - "text": "IntPtr" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Reports unresolved file references in Markdown files.", + "markdown": "Reports unresolved file references in Markdown files." }, - "contextRegion": { - "startLine": 496, - "startColumn": 1, - "charOffset": 17398, - "charLength": 218, - "snippet": { - "text": " var getRegionAddress = _getRegion.BaseAddress;\r\n IntPtr callPtr = (IntPtr)getRegionAddress;\r\n IntPtr resultPtr = _process!.Allocate(0x4);\r\n\r\n // build asm and replace the function pointers\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "96fa565b3e24e5b4", - "equalIndicator/v1": "31fac4c145210027057223aa140995dd740d4d2cfaecc3e68d2271aedb56248a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_SimpleTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (simple types)", - "markdown": "Use 'var' (simple types)" + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "MarkdownUnresolvedFileReference", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Sanity" + } + }, + "relationships": [ + { + "target": { + "id": "Markdown", + "index": 90, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Native/Gdi32.cs", - "uriBaseId": "SRCROOT" + { + "name": "org.jetbrains.plugins.yaml", + "version": "243.24609", + "rules": [ + { + "id": "YAMLIncompatibleTypes", + "shortDescription": { + "text": "Suspicious type mismatch" }, - "region": { - "startLine": 32, - "startColumn": 16, - "charOffset": 1339, - "charLength": 8, - "snippet": { - "text": "Graphics" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Reports a mismatch between a scalar value type in YAML file and types of the values in the similar positions. Example: 'myElements:\n - value1\n - value2\n - false # <- reported, because it is a boolean value, while other values are strings'", + "markdown": "Reports a mismatch between a scalar value type in YAML file and types of the values in the similar positions.\n\n**Example:**\n\n\n myElements:\n - value1\n - value2\n - false # <- reported, because it is a boolean value, while other values are strings\n" }, - "contextRegion": { - "startLine": 30, - "startColumn": 1, - "charOffset": 1272, - "charLength": 167, - "snippet": { - "text": " {\r\n var screenPixel = new Bitmap(1, 1);\r\n using (Graphics gdest = Graphics.FromImage(screenPixel))\r\n {\r\n var hDC = gdest.GetHdc();\r" - }, - "sourceLanguage": "C#" - } + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "YAMLIncompatibleTypes", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Sanity" + } + }, + "relationships": [ + { + "target": { + "id": "YAML", + "index": 95, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "8de3d4ce38bf6c71", - "equalIndicator/v1": "349d703d81809b025958be39d6e2c437cb33ab814bc61b01fb38988166a63d44" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "SuggestVarOrType_SimpleTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (simple types)", - "markdown": "Use 'var' (simple types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Native/Kernel32.cs", - "uriBaseId": "SRCROOT" + { + "id": "YAMLUnresolvedAlias", + "shortDescription": { + "text": "Unresolved alias" }, - "region": { - "startLine": 277, - "startColumn": 9, - "charOffset": 10707, - "charLength": 6, - "snippet": { - "text": "IntPtr" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Reports unresolved aliases in YAML files. Example: 'some_key: *unknown_alias'", + "markdown": "Reports unresolved aliases in YAML files.\n\n**Example:**\n\n\n some_key: *unknown_alias\n" }, - "contextRegion": { - "startLine": 275, - "startColumn": 1, - "charOffset": 10641, - "charLength": 139, - "snippet": { - "text": " {\r\n var modules = new List();\r\n IntPtr handleToSnapshot = IntPtr.Zero;\r\n\r\n void CleanupSnapshot()\r" - }, - "sourceLanguage": "C#" - } + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "YAMLUnresolvedAlias", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Sanity" + } + }, + "relationships": [ + { + "target": { + "id": "YAML", + "index": 95, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3d42b810ab35a864", - "equalIndicator/v1": "5bb20acbe44652711fef14ffc5645ffae2729e5e2507fb1cf14061355b940547" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_SimpleTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (simple types)", - "markdown": "Use 'var' (simple types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/DropMod.cs", - "uriBaseId": "SRCROOT" + { + "id": "YAMLDuplicatedKeys", + "shortDescription": { + "text": "Duplicated YAML keys" }, - "region": { - "startLine": 78, - "startColumn": 18, - "charOffset": 2709, - "charLength": 14, - "snippet": { - "text": "SwitchableDrop" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Reports duplicated keys in YAML files. Example: 'same_key: some value\n same_key: another value'", + "markdown": "Reports duplicated keys in YAML files.\n\n**Example:**\n\n\n same_key: some value\n same_key: another value\n" }, - "contextRegion": { - "startLine": 76, - "startColumn": 1, - "charOffset": 2645, - "charLength": 214, - "snippet": { - "text": " public void ResetAllAchievements()\r\n {\r\n foreach (SwitchableDrop temp in _switchableWeapons)\r\n {\r\n var s = temp; //structs need to be put in a variable in order to be mutable. Meme.\r" - }, - "sourceLanguage": "C#" - } + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "YAMLDuplicatedKeys", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Sanity" + } + }, + "relationships": [ + { + "target": { + "id": "YAML", + "index": 95, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4051f175b5d2dcbb", - "equalIndicator/v1": "69c83fe472cceb7984e19fc1935f77058591b0ac63d3e25c4d7f9dd5fcc1ece5" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_SimpleTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (simple types)", - "markdown": "Use 'var' (simple types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Native/Kernel32.cs", - "uriBaseId": "SRCROOT" + { + "id": "YAMLSchemaValidation", + "shortDescription": { + "text": "Validation by JSON Schema" }, - "region": { - "startLine": 290, - "startColumn": 13, - "charOffset": 11040, - "charLength": 14, - "snippet": { - "text": "MODULEENTRY32W" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Reports inconsistencies between a YAML file and a JSON Schema if the schema is specified. Scheme example: '{\n \"properties\": {\n \"SomeNumberProperty\": {\n \"type\": \"number\"\n }\n }\n }' The following is an example with the corresponding warning: 'SomeNumberProperty: hello world'", + "markdown": "Reports inconsistencies between a YAML file and a JSON Schema if the schema is specified.\n\n**Scheme example:**\n\n\n {\n \"properties\": {\n \"SomeNumberProperty\": {\n \"type\": \"number\"\n }\n }\n }\n\n**The following is an example with the corresponding warning:**\n\n\n SomeNumberProperty: hello world\n" }, - "contextRegion": { - "startLine": 288, - "startColumn": 1, - "charOffset": 11004, - "charLength": 314, - "snippet": { - "text": " try\r\n {\r\n MODULEENTRY32W procEntry = new MODULEENTRY32W();\r\n procEntry.dwSize = (UInt32)Marshal.SizeOf(typeof(MODULEENTRY32W));\r\n handleToSnapshot = NativeMethods.CreateToolhelp32Snapshot((uint)SnapshotFlags.Module | (uint)SnapshotFlags.Module32, (uint)process.Id);\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "640bf00a263562a5", - "equalIndicator/v1": "78964565949a879341f8ad15938b3c18a0dda4331c95b8e8422daded3307a1eb" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_SimpleTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (simple types)", - "markdown": "Use 'var' (simple types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls3/DarkSouls3.cs", - "uriBaseId": "SRCROOT" + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "YAMLSchemaValidation", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" + } + }, + "relationships": [ + { + "target": { + "id": "YAML", + "index": 95, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "YAMLSchemaDeprecation", + "shortDescription": { + "text": "Deprecated YAML key" }, - "region": { - "startLine": 84, - "startColumn": 54, - "charOffset": 3624, - "charLength": 7, - "snippet": { - "text": "Version" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Reports deprecated keys in YAML files. Deprecation is checked only if there exists a JSON schema associated with the corresponding YAML file. Note that the deprecation mechanism is not defined in the JSON Schema specification yet, and this inspection uses a non-standard 'deprecationMessage' extension. Scheme deprecation example: '{\n \"properties\": {\n \"SomeDeprecatedProperty\": {\n \"deprecationMessage\": \"Baz\",\n \"description\": \"Foo bar\"\n }\n }\n }' The following is an example with the corresponding warning: 'SomeDeprecatedProperty: some value'", + "markdown": "Reports deprecated keys in YAML files.\n\nDeprecation is checked only if there exists a JSON schema associated with the corresponding YAML file.\n\nNote that the deprecation mechanism is not defined in the JSON Schema specification yet,\nand this inspection uses a non-standard `deprecationMessage` extension.\n\n**Scheme deprecation example:**\n\n\n {\n \"properties\": {\n \"SomeDeprecatedProperty\": {\n \"deprecationMessage\": \"Baz\",\n \"description\": \"Foo bar\"\n }\n }\n }\n\n**The following is an example with the corresponding warning:**\n\n\n SomeDeprecatedProperty: some value\n" }, - "contextRegion": { - "startLine": 82, - "startColumn": 1, - "charOffset": 3465, - "charLength": 331, - "snippet": { - "text": " var versionString = _process?.MainModule?.FileVersionInfo.ProductVersion ?? \"Read failed\";\r\n\r\n if (!Version.TryParse(versionString, out Version v))\r\n {\r\n return Result.Err(new RefreshError(RefreshErrorReason.UnknownException, $\"Unable to determine game version: {versionString}\"));\r" - }, - "sourceLanguage": "C#" - } + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "YAMLSchemaDeprecation", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Sanity" + } + }, + "relationships": [ + { + "target": { + "id": "YAML", + "index": 95, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1e877c934d2a52bc", - "equalIndicator/v1": "8106a3cb4692472bfbe5b1b0338d52a680c5e3555e9da83d4373805313fa6cec" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_SimpleTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (simple types)", - "markdown": "Use 'var' (simple types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/SoulComponent.cs", - "uriBaseId": "SRCROOT" + { + "id": "YAMLRecursiveAlias", + "shortDescription": { + "text": "Recursive alias" }, - "region": { - "startLine": 251, - "startColumn": 9, - "charOffset": 8878, - "charLength": 10, - "snippet": { - "text": "XmlElement" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Reports recursion in YAML aliases. Alias can't be recursive and be used inside the data referenced by a corresponding anchor. Example: 'some_key: &some_anchor\n sub_key1: value1\n sub_key2: *some_anchor'", + "markdown": "Reports recursion in YAML aliases.\n\nAlias can't be recursive and be used inside the data referenced by a corresponding anchor.\n\n**Example:**\n\n\n some_key: &some_anchor\n sub_key1: value1\n sub_key2: *some_anchor\n" }, - "contextRegion": { - "startLine": 249, - "startColumn": 1, - "charOffset": 8809, - "charLength": 178, - "snippet": { - "text": " public XmlNode GetSettings(XmlDocument document)\r\n {\r\n XmlElement root = document.CreateElement(\"Settings\");\r\n MainWindow.Dispatcher.Invoke(() =>\r\n {\r" - }, - "sourceLanguage": "C#" - } + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "YAMLRecursiveAlias", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Sanity" + } + }, + "relationships": [ + { + "target": { + "id": "YAML", + "index": 95, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "49f0e9ef6ed995bc", - "equalIndicator/v1": "81b3e91e94c578ad86cb715022fc058f27835ff3efba90c8787330654fc616dd" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "SuggestVarOrType_SimpleTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (simple types)", - "markdown": "Use 'var' (simple types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Native/Kernel32.cs", - "uriBaseId": "SRCROOT" + { + "id": "YAMLUnusedAnchor", + "shortDescription": { + "text": "Unused anchor" }, - "region": { - "startLine": 80, - "startColumn": 9, - "charOffset": 3144, - "charLength": 6, - "snippet": { - "text": "IntPtr" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Reports unused anchors. Example: 'some_key: &some_anchor\n key1: value1'", + "markdown": "Reports unused anchors.\n\n**Example:**\n\n\n some_key: &some_anchor\n key1: value1\n" }, - "contextRegion": { - "startLine": 78, - "startColumn": 1, - "charOffset": 3057, - "charLength": 137, - "snippet": { - "text": " var size = Marshal.SizeOf(type);\r\n var bytes = new byte[size];\r\n IntPtr ptr = IntPtr.Zero;\r\n try\r\n {\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3e7108c46e21d555", - "equalIndicator/v1": "b264577e5bc65de948b988472a501eedd7167717b72c8adee0344e06ee25ec11" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_SimpleTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (simple types)", - "markdown": "Use 'var' (simple types)" + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "YAMLUnusedAnchor", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" + } + }, + "relationships": [ + { + "target": { + "id": "YAML", + "index": 95, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Native/User32.cs", - "uriBaseId": "SRCROOT" + { + "name": "intellij.webpack", + "version": "243.24609", + "rules": [ + { + "id": "WebpackConfigHighlighting", + "shortDescription": { + "text": "Webpack config compliance with JSON Schema" }, - "region": { - "startLine": 34, - "startColumn": 9, - "charOffset": 1275, - "charLength": 6, - "snippet": { - "text": "IntPtr" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Validates options in webpack config files (which name should start with `webpack`, e.g. `webpack.config.js`) against webpack options schema. Disable this inspection to turn off validation and code completion inside the configuration object.", + "markdown": "Validates options in webpack config files (which name should start with \\`webpack\\`, e.g. \\`webpack.config.js\\`) against [webpack options schema](https://github.com/webpack/webpack/blob/master/schemas/WebpackOptions.json). \n\nDisable this inspection to turn off validation and code completion inside the configuration object." }, - "contextRegion": { - "startLine": 32, - "startColumn": 1, - "charOffset": 1211, - "charLength": 177, - "snippet": { - "text": " public static uint GetForegroundProcessId()\r\n {\r\n IntPtr hWnd = GetForegroundWindow();\r\n GetWindowThreadProcessId(hWnd, out uint pid);\r\n return pid;\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e4f792e71d067962", - "equalIndicator/v1": "bcf0bbee7d1674b1a663131a0946270c263d478e76f5c63443b423f0d8373e4b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_SimpleTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (simple types)", - "markdown": "Use 'var' (simple types)" + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "WebpackConfigHighlighting", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Sanity" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/General", + "index": 17, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/ItemReader.cs", - "uriBaseId": "SRCROOT" + { + "name": "com.intellij.plugins.dependencyAnalysis", + "version": "243.24609", + "rules": [ + { + "id": "CheckDependencyLicenses", + "shortDescription": { + "text": "Check dependency licenses" }, - "region": { - "startLine": 72, - "startColumn": 17, - "charOffset": 2860, - "charLength": 12, - "snippet": { - "text": "ItemInfusion" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Check dependencies licenses for possible problems: missing or prohibited licenses, or other compliance issues", + "markdown": "Check dependencies licenses for possible problems: missing or prohibited licenses, or other compliance issues" }, - "contextRegion": { - "startLine": 70, - "startColumn": 1, - "charOffset": 2784, - "charLength": 155, - "snippet": { - "text": " //Decode item\r\n int id = 0;\r\n ItemInfusion infusion = ItemInfusion.Normal;\r\n int level = 0;\r\n\r" - }, - "sourceLanguage": "C#" - } + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CheckDependencyLicenses", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "Dependency analysis", + "index": 105, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "6345799c6ccc09d5", - "equalIndicator/v1": "c82135e1a1fcb27eb72e93136e12b18098f9fec460da164e34e874efb2f9e3df" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_SimpleTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (simple types)", - "markdown": "Use 'var' (simple types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Native/Kernel32.cs", - "uriBaseId": "SRCROOT" + { + "id": "CheckThirdPartySoftwareList", + "shortDescription": { + "text": "Check third party software list" }, - "region": { - "startLine": 205, - "startColumn": 9, - "charOffset": 7643, - "charLength": 6, - "snippet": { - "text": "IntPtr" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Check project for possible problems: user's third party software list does not match the collected project metadata", + "markdown": "Check project for possible problems: user's third party software list does not match the collected project metadata" }, - "contextRegion": { - "startLine": 203, - "startColumn": 1, - "charOffset": 7591, - "charLength": 284, - "snippet": { - "text": " {\r\n process.NtSuspendProcess();\r\n IntPtr thread = NativeMethods.CreateRemoteThread(process.Handle, IntPtr.Zero, 0, startAddress, parameter ?? IntPtr.Zero, 0, IntPtr.Zero);\r\n NativeMethods.WaitForSingleObject(thread, 5000);\r\n process.NtResumeProcess();\r" - }, - "sourceLanguage": "C#" - } + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "CheckThirdPartySoftwareList", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "Dependency analysis", + "index": 105, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "778af38b91c3553a", - "equalIndicator/v1": "ca07fca8976dde18250a3a7dfb254db827883baa8255c4f301c3f29e645f28e3" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_SimpleTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (simple types)", - "markdown": "Use 'var' (simple types)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/DropMod.cs", - "uriBaseId": "SRCROOT" + { + "id": "CheckModuleLicenses", + "shortDescription": { + "text": "Check module licenses" }, - "region": { - "startLine": 65, - "startColumn": 18, - "charOffset": 2272, - "charLength": 14, - "snippet": { - "text": "SwitchableDrop" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Check module licenses for possible problems: missing licenses or other compliance issues", + "markdown": "Check module licenses for possible problems: missing licenses or other compliance issues" }, - "contextRegion": { - "startLine": 63, - "startColumn": 1, - "charOffset": 2206, - "charLength": 216, - "snippet": { - "text": " var items = darkSouls.GetInventory();\r\n\r\n foreach (SwitchableDrop temp in _switchableWeapons)\r\n {\r\n var s = temp; //structs need to be put in a variable in order to be mutable. Meme.\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c134c88d41c22583", - "equalIndicator/v1": "cacdff840c45de53bdc96c489b0e8e7db7a7a58a7fcb6471dacf302b5148df89" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_SimpleTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (simple types)", - "markdown": "Use 'var' (simple types)" + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "CheckModuleLicenses", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "Dependency analysis", + "index": 105, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/EldenRing.cs", - "uriBaseId": "SRCROOT" + { + "name": "com.intellij.grpc", + "version": "243.24609", + "rules": [ + { + "id": "GrpcSchemes", + "shortDescription": { + "text": "GRPC request schema can be substituted or omitted" }, - "region": { - "startLine": 154, - "startColumn": 54, - "charOffset": 5996, - "charLength": 7, - "snippet": { - "text": "Version" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Reports unnecessary `grpc` or standard `http[s]` schemes usage in gRPC requests Example requests: '# `grpc` scheme may be omitted since insecure connection is assumed by default\nGRPC grpc://localhost/TestService/testRpc' '# `http` scheme may be omitted: prefer empty scheme for insecure connection and a dedicated `grpcs` scheme for a secure one\nGRPC http://localhost/TestService/testRpc' '# `https` scheme should be replaced by `grpcs`: prefer a dedicated `grpcs` scheme to indicate that transport layer security should be enabled to execute the request\nGRPC https://localhost/TestService/testRpc' To avoid confusion, it is recommended to use dedicated `grpcs` scheme in a gRPC request, when the request should use secure channel underneath. Otherwise, the scheme might be completely omitted", + "markdown": "Reports unnecessary \\`grpc\\` or standard \\`http\\[s\\]\\` schemes usage in gRPC requests\n\n\nExample requests:\n\n\n # `grpc` scheme may be omitted since insecure connection is assumed by default\n GRPC grpc://localhost/TestService/testRpc\n\n\n # `http` scheme may be omitted: prefer empty scheme for insecure connection and a dedicated `grpcs` scheme for a secure one\n GRPC http://localhost/TestService/testRpc\n\n\n # `https` scheme should be replaced by `grpcs`: prefer a dedicated `grpcs` scheme to indicate that transport layer security should be enabled to execute the request\n GRPC https://localhost/TestService/testRpc\n\n\nTo avoid confusion, it is recommended to use dedicated \\`grpcs\\` scheme in a gRPC request, when the request should use secure channel\nunderneath. Otherwise, the scheme might be completely omitted" }, - "contextRegion": { - "startLine": 152, - "startColumn": 1, - "charOffset": 5828, - "charLength": 340, - "snippet": { - "text": " {\r\n var versionString = _process?.MainModule?.FileVersionInfo.ProductVersion ?? \"Read failed\";\r\n if (!Version.TryParse(versionString, out Version v))\r\n {\r\n return Result.Err(new RefreshError(RefreshErrorReason.UnknownException, $\"Unable to determine game version: {versionString}\"));\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4a4eb403e62f6273", - "equalIndicator/v1": "e96a202213df21b82e13a8b071c2b2240b6442b8b188fb72e4c82f6af21c0048" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_SimpleTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (simple types)", - "markdown": "Use 'var' (simple types)" + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "GrpcSchemes", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Security" + } + }, + "relationships": [ + { + "target": { + "id": "Inappropriate gRPC request scheme", + "index": 106, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" + { + "name": "com.jetbrains.sh", + "version": "243.24609", + "rules": [ + { + "id": "ShellCheck", + "shortDescription": { + "text": "ShellCheck" }, - "region": { - "startLine": 497, - "startColumn": 9, - "charOffset": 17462, - "charLength": 6, - "snippet": { - "text": "IntPtr" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Reports shell script bugs detected by the integrated ShellCheck static analysis tool.", + "markdown": "Reports shell script bugs detected by the integrated [ShellCheck](https://github.com/koalaman/shellcheck) static analysis tool." }, - "contextRegion": { - "startLine": 495, - "startColumn": 1, - "charOffset": 17396, - "charLength": 164, - "snippet": { - "text": "\r\n var getRegionAddress = _getRegion.BaseAddress;\r\n IntPtr callPtr = (IntPtr)getRegionAddress;\r\n IntPtr resultPtr = _process!.Allocate(0x4);\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "86343684912ef7d7", - "equalIndicator/v1": "f30074a874782a31bb50aecb87628cdb0705f71dc4732e65c334a00a9e7be572" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SuggestVarOrType_SimpleTypes", - "kind": "fail", - "level": "note", - "message": { - "text": "Use 'var' (simple types)", - "markdown": "Use 'var' (simple types)" + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "ShellCheck", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Security" + } + }, + "relationships": [ + { + "target": { + "id": "Shell script", + "index": 111, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Native/Kernel32.cs", - "uriBaseId": "SRCROOT" + { + "name": "org.jetbrains.plugins.less", + "version": "243.24609", + "rules": [ + { + "id": "LessResolvedByNameOnly", + "shortDescription": { + "text": "Missing import" }, - "region": { - "startLine": 131, - "startColumn": 93, - "charOffset": 4875, - "charLength": 24, - "snippet": { - "text": "MemoryBasicInformation64" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Reports a reference to a variable or mixin that is declared in another file, which is not explicitly imported in the current file. Example: '* {\n margin: @var-in-other-file;\n}'", + "markdown": "Reports a reference to a variable or mixin that is declared in another file, which is not explicitly [imported](http://lesscss.org/features/#import-atrules-feature) in the current file.\n\n**Example:**\n\n\n * {\n margin: @var-in-other-file;\n }\n" }, - "contextRegion": { - "startLine": 129, - "startColumn": 1, - "charOffset": 4734, - "charLength": 295, - "snippet": { - "text": " while (address < maxAddress)\r\n {\r\n var queryEx = NativeMethods.VirtualQueryEx(process.Handle, (IntPtr)address, out MemoryBasicInformation64 memoryBasicInformation64, (uint)Marshal.SizeOf(typeof(MemoryBasicInformation64)));\r\n if (queryEx == 0)\r\n {\r" - }, - "sourceLanguage": "C#" - } + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "LessResolvedByNameOnly", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Sanity" + } + }, + "relationships": [ + { + "target": { + "id": "Less", + "index": 121, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "913fd1a503656346", - "equalIndicator/v1": "f7ac78695e0658eb04ad4648a2a6253f0dd4f321275a149cdb4df05313829ca5" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", - "kind": "fail", - "level": "note", - "message": { - "text": "Some cases are not processed: default", - "markdown": "Some cases are not processed: default" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/SekiroSplitter.cs", - "uriBaseId": "SRCROOT" + { + "id": "LessUnresolvedVariable", + "shortDescription": { + "text": "Unresolved variable" }, - "region": { - "startLine": 151, - "startColumn": 9, - "charOffset": 4176, - "charLength": 6, - "snippet": { - "text": "switch" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Reports a reference to a Less variable that is not resolved. Example: '* {\n margin: @unknown-var;\n}'", + "markdown": "Reports a reference to a [Less variable](http://lesscss.org/features/#variables-feature) that is not resolved.\n\n**Example:**\n\n\n * {\n margin: @unknown-var;\n }\n" }, - "contextRegion": { - "startLine": 149, - "startColumn": 1, - "charOffset": 4129, - "charLength": 122, - "snippet": { - "text": " private void UpdateTimer()\r\n {\r\n switch (_timerState)\r\n {\r\n case TimerState.WaitForStart:\r" - }, - "sourceLanguage": "C#" - } + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "LessUnresolvedVariable", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" + } + }, + "relationships": [ + { + "target": { + "id": "Less", + "index": 121, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c85ac44661002b7f", - "equalIndicator/v1": "181e73da5b51aa740bad47575cb7b69a3aa94a68019f238fde5eea69f67ee936" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", - "kind": "fail", - "level": "note", - "message": { - "text": "Some cases are not processed: default", - "markdown": "Some cases are not processed: default" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/EldenRingSplitter.cs", - "uriBaseId": "SRCROOT" + { + "id": "LessUnresolvedMixin", + "shortDescription": { + "text": "Unresolved mixin" }, - "region": { - "startLine": 181, - "startColumn": 9, - "charOffset": 5916, - "charLength": 6, - "snippet": { - "text": "switch" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Reports a reference to a Less mixin that is not resolved. Example: '* {\n .unknown-mixin();\n}'", + "markdown": "Reports a reference to a [Less mixin](http://lesscss.org/features/#mixins-feature) that is not resolved.\n\n**Example:**\n\n\n * {\n .unknown-mixin();\n }\n" }, - "contextRegion": { - "startLine": 179, - "startColumn": 1, - "charOffset": 5895, - "charLength": 96, - "snippet": { - "text": " }\r\n\r\n switch (_timerState)\r\n {\r\n case TimerState.WaitForStart:\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e9691a594a0b0534", - "equalIndicator/v1": "31dbbc71767f8da5057e08b5f66112be49b25ae3cdef45678ab3dcbe90c8dc8a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", - "kind": "fail", - "level": "note", - "message": { - "text": "Some values of the enum are not processed inside switch: None", - "markdown": "Some values of the enum are not processed inside switch: None" + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "LessUnresolvedMixin", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" + } + }, + "relationships": [ + { + "target": { + "id": "Less", + "index": 121, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls1Splitter.cs", - "uriBaseId": "SRCROOT" + { + "name": "tanvd.grazi", + "version": "243.24609", + "rules": [ + { + "id": "LanguageDetectionInspection", + "shortDescription": { + "text": "Natural language detection" }, - "region": { - "startLine": 390, - "startColumn": 13, - "charOffset": 13368, - "charLength": 6, - "snippet": { - "text": "switch" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Detects natural languages and suggests enabling corresponding grammar and spelling checks.", + "markdown": "Detects natural languages and suggests enabling corresponding grammar and spelling checks." }, - "contextRegion": { - "startLine": 388, - "startColumn": 1, - "charOffset": 13259, - "charLength": 206, - "snippet": { - "text": " {\r\n _mainViewModel.DarkSouls1ViewModel.DropModRequestInitialisation = false;\r\n switch (_mainViewModel.DarkSouls1ViewModel.DropModType)\r\n {\r\n default:\r" - }, - "sourceLanguage": "C#" - } + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "LanguageDetectionInspection", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" + } + }, + "relationships": [ + { + "target": { + "id": "Proofreading", + "index": 122, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b3c5ca68008f6b5b", - "equalIndicator/v1": "339d0c02bc09755bedb9c8a79d6afce04279d95f1cc811831ed3883ffa1d7dba" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", - "kind": "fail", - "level": "note", - "message": { - "text": "Some values of the enum are not processed inside switch: ItemPickup", - "markdown": "Some values of the enum are not processed inside switch: ItemPickup" + { + "id": "GrazieInspection", + "shortDescription": { + "text": "Grammar" + }, + "fullDescription": { + "text": "Reports grammar mistakes in your text. You can configure the inspection in Settings | Editor | Natural Languages | Grammar and Style.", + "markdown": "Reports grammar mistakes in your text. You can configure the inspection in [Settings \\| Editor \\| Natural Languages \\| Grammar and Style](settings://reference.settingsdialog.project.grazie)." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "GrazieInspection", + "ideaSeverity": "GRAMMAR_ERROR", + "qodanaSeverity": "Info", + "codeQualityCategory": "Code Style" + } + }, + "relationships": [ + { + "target": { + "id": "Proofreading", + "index": 122, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls1Splitter.cs", - "uriBaseId": "SRCROOT" + { + "name": "com.jetbrains.rider-cpp", + "version": "243.24609", + "rules": [ + { + "id": "UnrealJsonLocalInspectionTool", + "shortDescription": { + "text": "Unreal Engine json inspection" }, - "region": { - "startLine": 240, - "startColumn": 21, - "charOffset": 8024, - "charLength": 6, - "snippet": { - "text": "switch" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "RIDER-83134", + "markdown": "[RIDER-83134](https://youtrack.jetbrains.com/issue/RIDER-83134/)" }, - "contextRegion": { - "startLine": 238, - "startColumn": 1, - "charOffset": 7942, - "charLength": 160, - "snippet": { - "text": " if (!s.SplitConditionMet)\r\n {\r\n switch (s.SplitType)\r\n {\r\n default:\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "5e3697f4aa877eea", - "equalIndicator/v1": "3a930f922b180f21a4579a4ae4f51438373545e97e52c357ebd52e6e9a374e49" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", - "kind": "fail", - "level": "note", - "message": { - "text": "Some values of the enum are not processed inside switch: OnWarp", - "markdown": "Some values of the enum are not processed inside switch: OnWarp" + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "UnrealJsonLocalInspectionTool", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "Unreal Engine", + "index": 126, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/EldenRingSplitter.cs", - "uriBaseId": "SRCROOT" + { + "name": "com.intellij.stylelint", + "version": "243.24609", + "rules": [ + { + "id": "Stylelint", + "shortDescription": { + "text": "Stylelint" }, - "region": { - "startLine": 307, - "startColumn": 9, - "charOffset": 10752, - "charLength": 6, - "snippet": { - "text": "switch" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Reports a discrepancy detected by the Stylelint linter. The highlighting is based on the rule severity specified in the Stylelint configuration file for each individual rule.", + "markdown": "Reports a discrepancy detected by the [Stylelint](http://stylelint.io) linter. \n\nThe highlighting is based on the rule severity specified in the [Stylelint configuration file](https://stylelint.io/user-guide/configure) for each individual rule." }, - "contextRegion": { - "startLine": 305, - "startColumn": 1, - "charOffset": 10691, - "charLength": 116, - "snippet": { - "text": " private void ResolveSplitTiming(Split s)\r\n {\r\n switch (s.TimingType)\r\n {\r\n default:\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "709489776b2b13a5", - "equalIndicator/v1": "3afa93eb184f4109c9b0054ccded44252f75f5f78b3920a0b57311e464d26505" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", - "kind": "fail", - "level": "note", - "message": { - "text": "Some values of the enum are not processed inside switch: OnBlackscreen, OnWarp", - "markdown": "Some values of the enum are not processed inside switch: OnBlackscreen, OnWarp" + "defaultConfiguration": { + "enabled": false, + "level": "error", + "parameters": { + "suppressToolId": "Stylelint", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Code Style" + } + }, + "relationships": [ + { + "target": { + "id": "CSS/Code quality tools", + "index": 129, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/SekiroSplitter.cs", - "uriBaseId": "SRCROOT" + { + "name": "com.intellij.hardcodedPasswords", + "version": "243.24609", + "rules": [ + { + "id": "HardcodedPasswords", + "shortDescription": { + "text": "Hardcoded passwords" }, - "region": { - "startLine": 266, - "startColumn": 9, - "charOffset": 8233, - "charLength": 6, - "snippet": { - "text": "switch" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Detects potential security tokens or passwords in comments using entropy analysis and regular expressions. This inspection utilizes entropy analysis and regular expressions to scan the codebase for strings that resemble security tokens or passwords. It highlights these findings, helping developers identify and secure potential vulnerabilities. The inspection's effectiveness relies on the patterns defined in its configuration, making it adaptable to different coding environments and requirements. '// Example of a regular expression pattern used for detection:\n/[0-9]+:AA[0-9A-Za-z\\-_]{33}/' Text after this comment will only be shown in the settings of the inspection.", + "markdown": "Detects potential security tokens or passwords in comments using entropy analysis and regular expressions.\n\n\nThis inspection utilizes entropy analysis and regular expressions to scan the codebase for strings that resemble security tokens or\npasswords. It highlights these findings, helping developers identify and secure potential vulnerabilities. The inspection's effectiveness\nrelies on the patterns defined in its configuration, making it adaptable to different coding environments and requirements.\n\n\n // Example of a regular expression pattern used for detection:\n /[0-9]+:AA[0-9A-Za-z\\-_]{33}/\n\nText after this comment will only be shown in the settings of the inspection." }, - "contextRegion": { - "startLine": 264, - "startColumn": 1, - "charOffset": 8172, - "charLength": 116, - "snippet": { - "text": " private void ResolveSplitTiming(Split s)\r\n {\r\n switch (s.TimingType)\r\n {\r\n default:\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4107a66ff2e3f69d", - "equalIndicator/v1": "3b8564f1e6b3f3a45344ffa94f4d8ff44efb125fcb67d7ad5377c64c9f55617f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", - "kind": "fail", - "level": "note", - "message": { - "text": "Some cases are not processed: default", - "markdown": "Some cases are not processed: default" + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "HardcodedPasswords", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "Security", + "index": 131, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls1Splitter.cs", - "uriBaseId": "SRCROOT" + { + "name": "Karma", + "version": "243.24609", + "rules": [ + { + "id": "KarmaConfigFile", + "shortDescription": { + "text": "Invalid Karma configuration file" }, - "region": { - "startLine": 145, - "startColumn": 9, - "charOffset": 4619, - "charLength": 6, - "snippet": { - "text": "switch" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Reports a potential error in a file path ('basePath', 'files') for a Karma configuration file, for example, 'karma.conf.js'.", + "markdown": "Reports a potential error in a file path ('basePath', 'files') for a Karma configuration file, for example, `karma.conf.js`." }, - "contextRegion": { - "startLine": 143, - "startColumn": 1, - "charOffset": 4572, - "charLength": 122, - "snippet": { - "text": " private void UpdateTimer()\r\n {\r\n switch (_timerState)\r\n {\r\n case TimerState.WaitForStart:\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "748b7fe41f9c52d1", - "equalIndicator/v1": "40be907d145c26f1ed87c75fd3522efc5cbd543e69381ad63fe952b581458b72" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", - "kind": "fail", - "level": "note", - "message": { - "text": "Some cases are not processed: default", - "markdown": "Some cases are not processed: default" + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "KarmaConfigFile", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Sanity" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Unit testing", + "index": 140, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/FlagTrackerViewModel.cs", - "uriBaseId": "SRCROOT" + { + "name": "com.jetbrains.plugins.ini4idea", + "version": "243.24609", + "rules": [ + { + "id": "DuplicateSectionInFile", + "shortDescription": { + "text": "Duplicate section in file" }, - "region": { - "startLine": 186, - "startColumn": 9, - "charOffset": 5965, - "charLength": 6, - "snippet": { - "text": "switch" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Reports duplicate sections in the 'ini' file.", + "markdown": "Reports duplicate sections in the `ini` file." }, - "contextRegion": { - "startLine": 184, - "startColumn": 1, - "charOffset": 5944, - "charLength": 111, - "snippet": { - "text": " }\r\n\r\n switch(DisplayMode) \r\n {\r\n case EventFlagTrackerDisplayMode.Percentage:\r" - }, - "sourceLanguage": "C#" - } + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "DuplicateSectionInFile", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Sanity" + } + }, + "relationships": [ + { + "target": { + "id": "Ini files", + "index": 147, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b2d3a9abe3a7545c", - "equalIndicator/v1": "4350b55c6e4a3d4951a9eba80f4386f490a627ccd6034c93534d19edb0f9f02b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", - "kind": "fail", - "level": "note", - "message": { - "text": "Some cases are not processed: default", - "markdown": "Some cases are not processed: default" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls2Splitter.cs", - "uriBaseId": "SRCROOT" + { + "id": "DuplicateKeyInSection", + "shortDescription": { + "text": "Duplicate directive in section" }, - "region": { - "startLine": 129, - "startColumn": 9, - "charOffset": 3642, - "charLength": 6, - "snippet": { - "text": "switch" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Reports duplicate properties in the 'ini' file section.", + "markdown": "Reports duplicate properties in the `ini` file section." }, - "contextRegion": { - "startLine": 127, - "startColumn": 1, - "charOffset": 3595, - "charLength": 122, - "snippet": { - "text": " private void UpdateTimer()\r\n {\r\n switch (_timerState)\r\n {\r\n case TimerState.WaitForStart:\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "6464eeb47c7d0d9b", - "equalIndicator/v1": "46417441e70e45fe41b0a2cdc47cf5d3b52005bc460d8c0bd56519d2d9767213" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", - "kind": "fail", - "level": "note", - "message": { - "text": "Some values of the enum are not processed inside switch: OnBlackscreen, OnWarp", - "markdown": "Some values of the enum are not processed inside switch: OnBlackscreen, OnWarp" + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "DuplicateKeyInSection", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Sanity" + } + }, + "relationships": [ + { + "target": { + "id": "Ini files", + "index": 147, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls2Splitter.cs", - "uriBaseId": "SRCROOT" + { + "name": "tslint", + "version": "243.24609", + "rules": [ + { + "id": "TsLint", + "shortDescription": { + "text": "TSLint" }, - "region": { - "startLine": 245, - "startColumn": 9, - "charOffset": 7782, - "charLength": 6, - "snippet": { - "text": "switch" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Reports a discrepancy detected by the TSLint linter. The highlighting is based on the rule severity specified in the TSLint configuration file for each individual rule. Clear the 'Use rule severity from the configuration file' checkbox to use the severity configured in this inspection for all TSLint rules.", + "markdown": "Reports a discrepancy detected by the [TSLint](https://github.com/palantir/tslint) linter. \n\nThe highlighting is based on the rule severity specified in the [TSLint configuration file](https://palantir.github.io/tslint/usage/configuration/) for each individual rule. \n\nClear the 'Use rule severity from the configuration file' checkbox to use the severity configured in this inspection for all TSLint rules." }, - "contextRegion": { - "startLine": 243, - "startColumn": 1, - "charOffset": 7721, - "charLength": 116, - "snippet": { - "text": " private void ResolveSplitTiming(Split s)\r\n {\r\n switch (s.TimingType)\r\n {\r\n default:\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1a4f41f9967ea861", - "equalIndicator/v1": "4fdb5dc3e61a47895714d2f5518919497ccee2e009cdbb7d817e00fcace1c5de" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", - "kind": "fail", - "level": "note", - "message": { - "text": "Some values of the enum are not processed inside switch: KnownFlag, Item, ItemPickup...", - "markdown": "Some values of the enum are not processed inside switch: KnownFlag, Item, ItemPickup..." + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "TsLint", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Code quality tools", + "index": 69, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splits/Sekiro/Split.cs", - "uriBaseId": "SRCROOT" + { + "name": "org.intellij.intelliLang", + "version": "243.24609", + "rules": [ + { + "id": "InjectedReferences", + "shortDescription": { + "text": "Injected references" }, - "region": { - "startLine": 30, - "startColumn": 9, - "charOffset": 1107, - "charLength": 6, - "snippet": { - "text": "switch" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Reports unresolved references injected by Language Injections. Example: '@Language(\"file-reference\")\n String fileName = \"/home/user/nonexistent.file\"; // highlighted if file doesn't exist'", + "markdown": "Reports unresolved references injected by [Language Injections](https://www.jetbrains.com/help/idea/using-language-injections.html).\n\nExample:\n\n\n @Language(\"file-reference\")\n String fileName = \"/home/user/nonexistent.file\"; // highlighted if file doesn't exist\n" }, - "contextRegion": { - "startLine": 28, - "startColumn": 1, - "charOffset": 1065, - "charLength": 94, - "snippet": { - "text": " SplitType = splitType;\r\n\r\n switch (SplitType)\r\n {\r\n default:\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "322a34e3e8115ca5", - "equalIndicator/v1": "5979792c8f9bd07e1f24a65f00977f27cc3f56fb9fa378f7e3348111a1334d78" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", - "kind": "fail", - "level": "note", - "message": { - "text": "Some values of the enum are not processed inside switch: OnBlackscreen", - "markdown": "Some values of the enum are not processed inside switch: OnBlackscreen" + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "InjectedReferences", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Sanity" + } + }, + "relationships": [ + { + "target": { + "id": "General", + "index": 46, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls1Splitter.cs", - "uriBaseId": "SRCROOT" + { + "name": "W3Validators", + "version": "243.24609", + "rules": [ + { + "id": "W3CssValidation", + "shortDescription": { + "text": "W3C CSS validator" }, - "region": { - "startLine": 294, - "startColumn": 9, - "charOffset": 10601, - "charLength": 6, - "snippet": { - "text": "switch" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Reports a discrepancy detected by the W3C CSS Validator.", + "markdown": "Reports a discrepancy detected by the [W3C CSS Validator](https://jigsaw.w3.org/css-validator/)." }, - "contextRegion": { - "startLine": 292, - "startColumn": 1, - "charOffset": 10540, - "charLength": 116, - "snippet": { - "text": " private void ResolveSplitTiming(Split s)\r\n {\r\n switch (s.TimingType)\r\n {\r\n default:\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "68a030dcef1e58a8", - "equalIndicator/v1": "5bcd4a02eabece30b37502201d9ebca764ad984d84ec74117f645a858919ffd6" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", - "kind": "fail", - "level": "note", - "message": { - "text": "Some cases are not processed: default", - "markdown": "Some cases are not processed: default" + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "W3CssValidation", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" + } + }, + "relationships": [ + { + "target": { + "id": "CSS/Code quality tools", + "index": 129, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Parameters/BaseParam.cs", - "uriBaseId": "SRCROOT" + { + "name": "org.jetbrains.plugins.docker.gateway", + "version": "243.24609", + "rules": [ + { + "id": "DevContainerIdeSettings", + "shortDescription": { + "text": "Validate IDE settings" }, - "region": { - "startLine": 118, - "startColumn": 13, - "charOffset": 4536, - "charLength": 6, - "snippet": { - "text": "switch" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "No description available", + "markdown": "No description available" }, - "contextRegion": { - "startLine": 116, - "startColumn": 1, - "charOffset": 4431, - "charLength": 179, - "snippet": { - "text": " var paramType = property.GetCustomAttribute().ParamType;\r\n\r\n switch (paramType)\r\n {\r\n case ParamType.Dummy8:\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "774ebf11d9436a9e", - "equalIndicator/v1": "5cc0a380242ec040209e7d00dffe85de51352a8c8fafa2a6a0cf4eda802fcd5e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", - "kind": "fail", - "level": "note", - "message": { - "text": "Some values of the enum are not processed inside switch: Unknown", - "markdown": "Some values of the enum are not processed inside switch: Unknown" + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "DevContainerIdeSettings", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "Dev Container", + "index": 153, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/EldenRing/EldenRing.cs", - "uriBaseId": "SRCROOT" + { + "name": "com.intellij.plugins.watcher", + "version": "243.24609", + "rules": [ + { + "id": "TaskProblemsInspection", + "shortDescription": { + "text": "File watcher problems" }, - "region": { - "startLine": 82, - "startColumn": 9, - "charOffset": 3445, - "charLength": 6, - "snippet": { - "text": "switch" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Reports an error detected by the output filters from a File Watcher. A File Watcher tracks changes in files and executes the configured command when a change is detected.", + "markdown": "Reports an error detected by the output filters from a File Watcher.\n\n\nA File Watcher tracks changes in files and executes the configured command when a change is detected." }, - "contextRegion": { - "startLine": 80, - "startColumn": 1, - "charOffset": 3392, - "charLength": 125, - "snippet": { - "text": " {\r\n var version = GetVersion(v);\r\n switch (version)\r\n {\r\n case EldenRingVersion.V1_02_0:\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f9a9d2cfa8b98f24", - "equalIndicator/v1": "5f0d1c533556c85ddce997591d17d4db63bf6325c8e9e03ac27a2b78eed99a5a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", - "kind": "fail", - "level": "note", - "message": { - "text": "Some values of the enum are not processed inside switch: KnownFlag, Item, ItemPickup...", - "markdown": "Some values of the enum are not processed inside switch: KnownFlag, Item, ItemPickup..." + "defaultConfiguration": { + "enabled": true, + "level": "note", + "parameters": { + "suppressToolId": "TaskProblemsInspection", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "File Watchers", + "index": 154, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/SekiroSplitter.cs", - "uriBaseId": "SRCROOT" + { + "name": "idea.plugin.protoeditor", + "version": "243.24609", + "rules": [ + { + "id": "PbDuplicatedImports", + "shortDescription": { + "text": "Duplicated import statements" }, - "region": { - "startLine": 224, - "startColumn": 21, - "charOffset": 6381, - "charLength": 6, - "snippet": { - "text": "switch" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Reports effectively equivalent import statements.", + "markdown": "Reports effectively equivalent import statements." }, - "contextRegion": { - "startLine": 222, - "startColumn": 1, - "charOffset": 6299, - "charLength": 160, - "snippet": { - "text": " if (!s.SplitConditionMet)\r\n {\r\n switch (s.SplitType)\r\n {\r\n default:\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "ca3a25742d944eeb", - "equalIndicator/v1": "7f5d26aeb532d1de860ae82b3f76b931f80582b0547e0d30316d94529bcfcffa" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", - "kind": "fail", - "level": "note", - "message": { - "text": "Some values of the enum are not processed inside switch: None, Cancel, Back...", - "markdown": "Some values of the enum are not processed inside switch: None, Cancel, Back..." + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "PbDuplicatedImports", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Reliability" + } + }, + "relationships": [ + { + "target": { + "id": "Protocol Buffers", + "index": 164, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/FilteredComboBox.cs", - "uriBaseId": "SRCROOT" + { + "name": "com.dmarcotte.handlebars", + "version": "243.24609", + "rules": [ + { + "id": "HbEmptyBlock", + "shortDescription": { + "text": "Missing block helper argument" }, - "region": { - "startLine": 82, - "startColumn": 9, - "charOffset": 2688, - "charLength": 6, - "snippet": { - "text": "switch" - }, - "sourceLanguage": "C#" + "fullDescription": { + "text": "Reports an 'if', 'each', or 'with' block helper without an argument.", + "markdown": "Reports an `if`, `each`, or `with` block helper without an argument." }, - "contextRegion": { - "startLine": 80, - "startColumn": 1, - "charOffset": 2620, - "charLength": 120, - "snippet": { - "text": " protected override void OnKeyUp(KeyEventArgs e)\r\n {\r\n switch (e.Key)\r\n {\r\n case Key.Up:\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a3e312e002dcf870", - "equalIndicator/v1": "8111e4131451a78b7e710cca5e2cc8c534be85e3a83286a8c62581abc0b6a226" - }, - "baselineState": "unchanged", + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "HbEmptyBlock", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Code Style" + } + }, + "relationships": [ + { + "target": { + "id": "Handlebars_Mustache", + "index": 170, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false + } + ] + }, + "invocations": [ + { + "startTimeUtc": "2025-01-25T11:10:37.2211479Z", + "exitCode": 255, + "exitCodeDescription": "Failure conditions triggered:\n- Detected 19 problems across all severities, fail threshold: 0\n- Fresh coverage minimum not met. Got 21%, fail threshold 50%", + "executionSuccessful": true + } + ], + "language": "en-US", + "versionControlProvenance": [ + { + "repositoryUri": "https://github.com/FrankvdStam/SoulSplitter.git", + "revisionId": "a22726a557b26868c2fc4d91e5262b5e5f2c10c5", + "branch": "feature/langversion-13", "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] + "repoUrl": "https://github.com/FrankvdStam/SoulSplitter.git", + "lastAuthorName": "Frank van der Stam", + "vcsType": "Git", + "lastAuthorEmail": "frank_stam5@hotmail.com" } - }, + } + ], + "results": [ { - "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", + "ruleId": "ArrangeTrailingCommaInMultilineLists", "kind": "fail", "level": "note", "message": { - "text": "Some values of the enum are not processed inside switch: ItemPickup", - "markdown": "Some values of the enum are not processed inside switch: ItemPickup" + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "src/SoulSplitter/Splits/DarkSouls1/Split.cs", + "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", "uriBaseId": "SRCROOT" }, "region": { - "startLine": 30, - "startColumn": 9, - "charOffset": 1115, - "charLength": 6, + "startLine": 153, + "startColumn": 65, + "charOffset": 5931, + "charLength": 1, "snippet": { - "text": "switch" + "text": "," }, "sourceLanguage": "C#" }, "contextRegion": { - "startLine": 28, + "startLine": 151, "startColumn": 1, - "charOffset": 1073, - "charLength": 94, + "charOffset": 5727, + "charLength": 220, "snippet": { - "text": " SplitType = splitType;\r\n\r\n switch (SplitType)\r\n {\r\n default:\r" + "text": " new EnumFlagViewModel(TimingType.Immediate),\r\n new EnumFlagViewModel(TimingType.OnLoading),\r\n new EnumFlagViewModel(TimingType.OnWarp),\r\n };\r\n\r" }, "sourceLanguage": "C#" } @@ -215756,8 +138057,8 @@ } ], "partialFingerprints": { - "equalIndicator/v2": "3175cb906334e025", - "equalIndicator/v1": "9d2b278a3ac95402941c502c39af86978aab2246523b4e0bc1f5c690c646bd8e" + "equalIndicator/v2": "ad6f8ebdb3064944", + "equalIndicator/v1": "ef7ce585c3abbb140e1f0f522dd51bbb09763258a7ea041d7139dcf33586d7a8" }, "baselineState": "unchanged", "properties": { @@ -215770,52 +138071,52 @@ } }, { - "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", + "ruleId": "ArrangeTrailingCommaInMultilineLists", "kind": "fail", "level": "note", "message": { - "text": "Some values of the enum are not processed inside switch: V130, V131, Unknown", - "markdown": "Some values of the enum are not processed inside switch: V130, V131, Unknown" + "text": "Remove trailing comma to conform to code style", + "markdown": "Remove trailing comma to conform to code style" }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", + "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", "uriBaseId": "SRCROOT" }, "region": { - "startLine": 146, - "startColumn": 9, - "charOffset": 5335, - "charLength": 6, + "startLine": 163, + "startColumn": 61, + "charOffset": 6504, + "charLength": 1, "snippet": { - "text": "switch" + "text": "," }, "sourceLanguage": "C#" }, "contextRegion": { - "startLine": 144, + "startLine": 161, "startColumn": 1, - "charOffset": 5248, - "charLength": 137, + "charOffset": 6314, + "charLength": 214, "snippet": { - "text": " private void ResolveGameVersionSpecificOffsets(DsrVersion version)\r\n {\r\n switch (version)\r\n {\r\n default:\r" + "text": " new EnumFlagViewModel(SplitType.Item),\r\n new EnumFlagViewModel(SplitType.Position),\r\n new EnumFlagViewModel(SplitType.Flag),\r\n };\r\n \r" }, "sourceLanguage": "C#" } }, "logicalLocations": [ { - "fullyQualifiedName": "SoulMemory", + "fullyQualifiedName": "SoulSplitter", "kind": "module" } ] } ], "partialFingerprints": { - "equalIndicator/v2": "9f8f82f626fe58fc", - "equalIndicator/v1": "9ec76315a1888afdd3102d613055576319f8e5775dc47a216f536ae91ad9746e" + "equalIndicator/v2": "c0e083ed292cf0bd", + "equalIndicator/v1": "ff5c0a8e2c08c7f0780bc50a7a348c09f8c7bff8abc0a2714943910ba7a90a92" }, "baselineState": "unchanged", "properties": { @@ -215823,42 +138124,42 @@ "qodanaSeverity": "Low", "tags": [ "C#", - ".NETStandard 2.0" + ".NETFramework 4.8.1" ] } }, { - "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", + "ruleId": "MergeSequentialChecks", "kind": "fail", "level": "note", "message": { - "text": "Some values of the enum are not processed inside switch: ItemPickup, Credits", - "markdown": "Some values of the enum are not processed inside switch: ItemPickup, Credits" + "text": "Merge sequential checks", + "markdown": "Merge sequential checks" }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "src/SoulSplitter/UIv2/SplitSettingsControl.xaml.cs", + "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", "uriBaseId": "SRCROOT" }, "region": { - "startLine": 94, - "startColumn": 9, - "charOffset": 3137, - "charLength": 6, + "startLine": 64, + "startColumn": 57, + "charOffset": 2484, + "charLength": 2, "snippet": { - "text": "switch" + "text": "&&" }, "sourceLanguage": "C#" }, "contextRegion": { - "startLine": 92, + "startLine": 62, "startColumn": 1, - "charOffset": 3107, - "charLength": 102, + "charOffset": 2385, + "charLength": 180, "snippet": { - "text": " };\r\n \r\n switch (SelectedSplitType)\r\n {\r\n case SplitType.Boss:\r" + "text": "\r\n case SplitType.Bonfire:\r\n return NewSplitBonfireState != null && NewSplitBonfireState.Bonfire != null;\r\n\r\n case SplitType.Item:\r" }, "sourceLanguage": "C#" } @@ -215872,8 +138173,8 @@ } ], "partialFingerprints": { - "equalIndicator/v2": "8040041386dd8ca0", - "equalIndicator/v1": "a1667aee37e38cc37f9d9ca69a796124a47636c13db6576c7c4b2b38bcbac649" + "equalIndicator/v2": "4d05b0d47486c533", + "equalIndicator/v1": "859827cc1992c121ffc4d869a3c47957e2f5a56739f09b0c8cdcafe338a766ea" }, "baselineState": "unchanged", "properties": { @@ -215886,37 +138187,37 @@ } }, { - "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", + "ruleId": "MergeSequentialChecks", "kind": "fail", "level": "note", "message": { - "text": "Some values of the enum are not processed inside switch: OnBlackscreen, OnWarp", - "markdown": "Some values of the enum are not processed inside switch: OnBlackscreen, OnWarp" + "text": "Merge sequential checks", + "markdown": "Merge sequential checks" }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/ArmoredCore6Splitter.cs", + "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", "uriBaseId": "SRCROOT" }, "region": { - "startLine": 104, - "startColumn": 9, - "charOffset": 3413, - "charLength": 6, + "startLine": 67, + "startColumn": 54, + "charOffset": 2619, + "charLength": 2, "snippet": { - "text": "switch" + "text": "&&" }, "sourceLanguage": "C#" }, "contextRegion": { - "startLine": 102, + "startLine": 65, "startColumn": 1, - "charOffset": 3352, - "charLength": 116, + "charOffset": 2526, + "charLength": 175, "snippet": { - "text": " private void ResolveSplitTiming(Split s)\r\n {\r\n switch (s.TimingType)\r\n {\r\n default:\r" + "text": "\r\n case SplitType.Item:\r\n return NewSplitItemState != null && NewSplitItemState.ItemType != null;\r\n\r\n case SplitType.Credits:\r" }, "sourceLanguage": "C#" } @@ -215930,8 +138231,8 @@ } ], "partialFingerprints": { - "equalIndicator/v2": "d45f65a12bb931ae", - "equalIndicator/v1": "b2eb28320c6ab701b0c0ba0ef2b22acc1019f3a20d280aa45a0ba3b15ca5f8ea" + "equalIndicator/v2": "c788683153bd0226", + "equalIndicator/v1": "b665eec3bfb75d079bc1fd1082963396441643f192521dbcefb2f018d981973e" }, "baselineState": "unchanged", "properties": { @@ -215944,37 +138245,37 @@ } }, { - "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", + "ruleId": "RedundantDefaultMemberInitializer", "kind": "fail", - "level": "note", + "level": "warning", "message": { - "text": "Some values of the enum are not processed inside switch: KnownFlag, Item, Credits", - "markdown": "Some values of the enum are not processed inside switch: KnownFlag, Item, Credits" + "text": "Initializing field by default value is redundant", + "markdown": "Initializing field by default value is redundant" }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls3Splitter.cs", + "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", "uriBaseId": "SRCROOT" }, "region": { - "startLine": 220, - "startColumn": 21, - "charOffset": 6557, + "startLine": 120, + "startColumn": 42, + "charOffset": 4437, "charLength": 6, "snippet": { - "text": "switch" + "text": "= null" }, "sourceLanguage": "C#" }, "contextRegion": { - "startLine": 218, + "startLine": 118, "startColumn": 1, - "charOffset": 6475, - "charLength": 160, + "charOffset": 4383, + "charLength": 85, "snippet": { - "text": " if (!s.SplitConditionMet)\r\n {\r\n switch (s.SplitType)\r\n {\r\n default:\r" + "text": " }\r\n\r\n private SplitType? _newSplitType = null;\r\n\r\n [XmlIgnore]\r" }, "sourceLanguage": "C#" } @@ -215988,13 +138289,13 @@ } ], "partialFingerprints": { - "equalIndicator/v2": "4ea91a9a1da6243b", - "equalIndicator/v1": "ca34b7415716050cf92bde38b90f24339dc1f40fabc2b08552eccccf4241446f" + "equalIndicator/v2": "76dc05de0c05f1df", + "equalIndicator/v1": "742f9dbdc0eb0ba7e101a1a262bf2c8d4b621791287a49fea39f248409c3b62e" }, "baselineState": "unchanged", "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", "tags": [ "C#", ".NETFramework 4.8.1" @@ -216002,52 +138303,52 @@ } }, { - "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", + "ruleId": "RedundantEmptyObjectCreationArgumentList", "kind": "fail", "level": "note", "message": { - "text": "Some values of the enum are not processed inside switch: Pointer", - "markdown": "Some values of the enum are not processed inside switch: Pointer" + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "src/SoulMemory/MemoryV2/PointerTreeBuilder/PointerTreeBuilder.cs", + "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", "uriBaseId": "SRCROOT" }, "region": { - "startLine": 73, - "startColumn": 13, - "charOffset": 2746, - "charLength": 6, + "startLine": 102, + "startColumn": 50, + "charOffset": 3794, + "charLength": 2, "snippet": { - "text": "switch" + "text": "()" }, "sourceLanguage": "C#" }, "contextRegion": { - "startLine": 71, + "startLine": 100, "startColumn": 1, - "charOffset": 2665, - "charLength": 152, + "charOffset": 3697, + "charLength": 174, "snippet": { - "text": " long scanResult = 0;\r\n bool success = false;\r\n switch (node.PointerNodeType)\r\n {\r\n default:\r" + "text": "\r\n case SplitType.Position:\r\n Position = new VectorSize() { Position = CurrentPosition.Clone() };\r\n break;\r\n\r" }, "sourceLanguage": "C#" } }, "logicalLocations": [ { - "fullyQualifiedName": "SoulMemory", + "fullyQualifiedName": "SoulSplitter", "kind": "module" } ] } ], "partialFingerprints": { - "equalIndicator/v2": "b4b851d9948188df", - "equalIndicator/v1": "d7663d114e83fd7ec0b2e2ee086354d6c12ee169ea2e1809ea2d1942fd098c32" + "equalIndicator/v2": "d8afaeb4f928c092", + "equalIndicator/v1": "2d8d324ef8f20d8e3ff784a7ef0402cf20ff0176c7f7efd7f045cf39ed60c1c9" }, "baselineState": "unchanged", "properties": { @@ -216055,42 +138356,42 @@ "qodanaSeverity": "Low", "tags": [ "C#", - ".NETStandard 2.0" + ".NETFramework 4.8.1" ] } }, { - "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", + "ruleId": "RedundantEmptyObjectCreationArgumentList", "kind": "fail", "level": "note", "message": { - "text": "Some cases are not processed: default", - "markdown": "Some cases are not processed: default" + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/FlagTrackerViewModel.cs", + "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", "uriBaseId": "SRCROOT" }, "region": { - "startLine": 131, - "startColumn": 9, - "charOffset": 4259, - "charLength": 6, + "startLine": 156, + "startColumn": 155, + "charOffset": 6102, + "charLength": 2, "snippet": { - "text": "switch" + "text": "()" }, "sourceLanguage": "C#" }, "contextRegion": { - "startLine": 129, + "startLine": 154, "startColumn": 1, - "charOffset": 4221, - "charLength": 128, + "charOffset": 5934, + "charLength": 245, "snippet": { - "text": " _currentIndex = 0;\r\n\r\n switch (DisplayMode)\r\n {\r\n case EventFlagTrackerDisplayMode.Percentage:\r" + "text": " };\r\n\r\n public static ObservableCollection> SplitTypes { get; set; } = new ObservableCollection>()\r\n {\r\n new EnumFlagViewModel(SplitType.Boss),\r" }, "sourceLanguage": "C#" } @@ -216104,8 +138405,8 @@ } ], "partialFingerprints": { - "equalIndicator/v2": "e57c0e8955fef102", - "equalIndicator/v1": "d9b301fdc05aa2c97a659e232cd2f781a62f294d18d716859893e4633ff85916" + "equalIndicator/v2": "a083737c350a5d54", + "equalIndicator/v1": "606a6c9ea5fb4a8a3ea70f1eac497e1f4d321c13d0650140e11af304284e2320" }, "baselineState": "unchanged", "properties": { @@ -216118,37 +138419,37 @@ } }, { - "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", + "ruleId": "RedundantEmptyObjectCreationArgumentList", "kind": "fail", "level": "note", "message": { - "text": "Some cases are not processed: default", - "markdown": "Some cases are not processed: default" + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls3Splitter.cs", + "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", "uriBaseId": "SRCROOT" }, "region": { - "startLine": 131, - "startColumn": 9, - "charOffset": 3787, - "charLength": 6, + "startLine": 145, + "startColumn": 41, + "charOffset": 5378, + "charLength": 2, "snippet": { - "text": "switch" + "text": "()" }, "sourceLanguage": "C#" }, "contextRegion": { - "startLine": 129, + "startLine": 143, "startColumn": 1, - "charOffset": 3739, - "charLength": 123, + "charOffset": 5182, + "charLength": 370, "snippet": { - "text": " private void UpdateTimer()\r\n {\r\n switch (_timerState)\r\n {\r\n case TimerState.WaitForStart:\r" + "text": " public ObservableCollection BooleanFlags { get; set; } = new ObservableCollection()\r\n {\r\n new BoolDescriptionViewModel(){ Description = \"Start automatically\", Value = true },\r\n new BoolDescriptionViewModel(){ Description = \"Reset inventory indices\", Value = true }\r\n };\r" }, "sourceLanguage": "C#" } @@ -216162,8 +138463,8 @@ } ], "partialFingerprints": { - "equalIndicator/v2": "08007d9747e60ba8", - "equalIndicator/v1": "dbbf205ab7d633613d720a5de499c5611a11b3e9ef3ec696f8c88c3285daccfd" + "equalIndicator/v2": "4cff0868ed0f1131", + "equalIndicator/v1": "637ac634056f4782bca3c58d2665a04ccd73109db48f2ff7e4e40e547d1faeea" }, "baselineState": "unchanged", "properties": { @@ -216176,37 +138477,37 @@ } }, { - "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", + "ruleId": "RedundantEmptyObjectCreationArgumentList", "kind": "fail", "level": "note", "message": { - "text": "Some values of the enum are not processed inside switch: OnBlackscreen, OnWarp", - "markdown": "Some values of the enum are not processed inside switch: OnBlackscreen, OnWarp" + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls3Splitter.cs", + "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", "uriBaseId": "SRCROOT" }, "region": { - "startLine": 263, - "startColumn": 9, - "charOffset": 8572, - "charLength": 6, + "startLine": 149, + "startColumn": 158, + "charOffset": 5712, + "charLength": 2, "snippet": { - "text": "switch" + "text": "()" }, "sourceLanguage": "C#" }, "contextRegion": { - "startLine": 261, + "startLine": 147, "startColumn": 1, - "charOffset": 8511, - "charLength": 116, + "charOffset": 5541, + "charLength": 255, "snippet": { - "text": " private void ResolveSplitTiming(Split s)\r\n {\r\n switch (s.TimingType)\r\n {\r\n default:\r" + "text": " };\r\n\r\n public static ObservableCollection> TimingTypes { get; set; } = new ObservableCollection>()\r\n {\r\n new EnumFlagViewModel(TimingType.Immediate),\r" }, "sourceLanguage": "C#" } @@ -216220,8 +138521,8 @@ } ], "partialFingerprints": { - "equalIndicator/v2": "53ebbb29754910c8", - "equalIndicator/v1": "dc95837f0c2d48cfaf7580bf16073b680da95107a411119670f532e4af05f9e6" + "equalIndicator/v2": "e79e306139f6a21d", + "equalIndicator/v1": "680236b845b1bb81f032667ca41c86be11ced003f69feb9b71e85fe3013ba347" }, "baselineState": "unchanged", "properties": { @@ -216234,37 +138535,37 @@ } }, { - "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", + "ruleId": "RedundantEmptyObjectCreationArgumentList", "kind": "fail", "level": "note", "message": { - "text": "Some values of the enum are not processed inside switch: KnownFlag, Item, Credits", - "markdown": "Some values of the enum are not processed inside switch: KnownFlag, Item, Credits" + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "src/SoulSplitter/Splits/DarkSouls3/Split.cs", + "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", "uriBaseId": "SRCROOT" }, "region": { - "startLine": 30, - "startColumn": 9, - "charOffset": 1135, - "charLength": 6, + "startLine": 110, + "startColumn": 82, + "charOffset": 4140, + "charLength": 2, "snippet": { - "text": "switch" + "text": "()" }, "sourceLanguage": "C#" }, "contextRegion": { - "startLine": 28, + "startLine": 108, "startColumn": 1, - "charOffset": 1083, - "charLength": 104, + "charOffset": 4012, + "charLength": 200, "snippet": { - "text": " SplitType = darkSouls3SplitType;\r\n\r\n switch (SplitType)\r\n {\r\n default:\r" + "text": "\r\n case SplitType.Bonfire:\r\n NewSplitBonfireState = new Splits.DarkSouls1.BonfireState() { State = BonfireState.Unlocked };\r\n break;\r\n\r" }, "sourceLanguage": "C#" } @@ -216278,8 +138579,8 @@ } ], "partialFingerprints": { - "equalIndicator/v2": "19f73755f527e3c1", - "equalIndicator/v1": "df6579c377388a7b5e833051d03aaa98c1d2e189a9c3b7f81d08c244a9bd50c2" + "equalIndicator/v2": "ed688dc70c51ad6c", + "equalIndicator/v1": "8eb5979087b04e5b32d055c60cfae331255eb92ffa19629b8ad1942cca8465bb" }, "baselineState": "unchanged", "properties": { @@ -216292,52 +138593,52 @@ } }, { - "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", + "ruleId": "RedundantEmptyObjectCreationArgumentList", "kind": "fail", "level": "note", "message": { - "text": "Some values of the enum are not processed inside switch: Pointer", - "markdown": "Some values of the enum are not processed inside switch: Pointer" + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "src/SoulMemory/Memory/MemoryScanner.cs", + "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", "uriBaseId": "SRCROOT" }, "region": { - "startLine": 57, - "startColumn": 13, - "charOffset": 2420, - "charLength": 6, + "startLine": 146, + "startColumn": 41, + "charOffset": 5480, + "charLength": 2, "snippet": { - "text": "switch" + "text": "()" }, "sourceLanguage": "C#" }, "contextRegion": { - "startLine": 55, + "startLine": 144, "startColumn": 1, - "charOffset": 2339, - "charLength": 145, + "charOffset": 5327, + "charLength": 227, "snippet": { - "text": " long scanResult = 0;\r\n bool success = false;\r\n switch (node.NodeType)\r\n {\r\n default:\r" + "text": " {\r\n new BoolDescriptionViewModel(){ Description = \"Start automatically\", Value = true },\r\n new BoolDescriptionViewModel(){ Description = \"Reset inventory indices\", Value = true }\r\n };\r\n\r" }, "sourceLanguage": "C#" } }, "logicalLocations": [ { - "fullyQualifiedName": "SoulMemory", + "fullyQualifiedName": "SoulSplitter", "kind": "module" } ] } ], "partialFingerprints": { - "equalIndicator/v2": "5b39a1adcdb791e4", - "equalIndicator/v1": "f17591bff6f195da33bad536d88077c45dc5b17b86daa0606386d2382545ba5e" + "equalIndicator/v2": "8a54528c02781916", + "equalIndicator/v1": "ababcdddcf004ae18233bc33bd6a3a18d40c580289093e43ae79ee273dde7450" }, "baselineState": "unchanged", "properties": { @@ -216345,42 +138646,42 @@ "qodanaSeverity": "Low", "tags": [ "C#", - ".NETStandard 2.0" + ".NETFramework 4.8.1" ] } }, { - "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", + "ruleId": "RedundantEmptyObjectCreationArgumentList", "kind": "fail", "level": "note", "message": { - "text": "Some values of the enum are not processed inside switch: None, Cancel, Back...", - "markdown": "Some values of the enum are not processed inside switch: None, Cancel, Back..." + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/FilteredComboBox.cs", + "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", "uriBaseId": "SRCROOT" }, "region": { - "startLine": 58, - "startColumn": 9, - "charOffset": 2073, - "charLength": 6, + "startLine": 98, + "startColumn": 72, + "charOffset": 3587, + "charLength": 2, "snippet": { - "text": "switch" + "text": "()" }, "sourceLanguage": "C#" }, "contextRegion": { - "startLine": 56, + "startLine": 96, "startColumn": 1, - "charOffset": 1996, - "charLength": 130, + "charOffset": 3450, + "charLength": 248, "snippet": { - "text": " protected override void OnPreviewKeyDown(KeyEventArgs e)\r\n {\r\n switch (e.Key)\r\n {\r\n case Key.Tab:\r" + "text": " {\r\n case SplitType.Attribute:\r\n NewSplitValue = new Splits.DarkSouls1.Attribute() { AttributeType = SoulMemory.DarkSouls1.Attribute.Vitality, Level = 10 };\r\n break;\r\n\r" }, "sourceLanguage": "C#" } @@ -216394,8 +138695,8 @@ } ], "partialFingerprints": { - "equalIndicator/v2": "e37a0be33a7953fb", - "equalIndicator/v1": "f42b1062130a523bcc8d49f023bbca688e3c7a3839e7469320410986003d5f56" + "equalIndicator/v2": "7ad4b854e870363c", + "equalIndicator/v1": "bd11dab5ec7341a4273558ec8001f2548e0cdfbff66b578390970b8e552cbf78" }, "baselineState": "unchanged", "properties": { @@ -216408,37 +138709,37 @@ } }, { - "ruleId": "SwitchStatementMissingSomeEnumCasesNoDefault", + "ruleId": "RedundantEmptyObjectCreationArgumentList", "kind": "fail", "level": "note", "message": { - "text": "Some values of the enum are not processed inside switch: Boss, KnownFlag, ItemPickup...", - "markdown": "Some values of the enum are not processed inside switch: Boss, KnownFlag, ItemPickup..." + "text": "Empty argument list is redundant", + "markdown": "Empty argument list is redundant" }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModel.cs", + "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", "uriBaseId": "SRCROOT" }, "region": { - "startLine": 130, - "startColumn": 13, - "charOffset": 4543, - "charLength": 6, + "startLine": 143, + "startColumn": 142, + "charOffset": 5323, + "charLength": 2, "snippet": { - "text": "switch" + "text": "()" }, "sourceLanguage": "C#" }, "contextRegion": { - "startLine": 128, + "startLine": 141, "startColumn": 1, - "charOffset": 4475, - "charLength": 148, + "charOffset": 5000, + "charLength": 439, "snippet": { - "text": " this.SetField(ref _newSplitType, value);\r\n\r\n switch (NewSplitType)\r\n {\r\n case SplitType.Attribute:\r" + "text": "\r\n #region Static UI source data ============================================================================================================================================\r\n public ObservableCollection BooleanFlags { get; set; } = new ObservableCollection()\r\n {\r\n new BoolDescriptionViewModel(){ Description = \"Start automatically\", Value = true },\r" }, "sourceLanguage": "C#" } @@ -216452,8 +138753,8 @@ } ], "partialFingerprints": { - "equalIndicator/v2": "fa1589ec498a4758", - "equalIndicator/v1": "40574916d9fca1de476aead759853ddbf4a69c4f047429cca3f067fa1bdc7cfd" + "equalIndicator/v2": "1a1036a3542fddff", + "equalIndicator/v1": "df37820f71aa670b64041b52413c3a67d4d5cc7f4e3953227199df17641769c9" }, "baselineState": "unchanged", "properties": { @@ -216466,37 +138767,37 @@ } }, { - "ruleId": "SwitchStatementMissingSomeEnumCasesNoDefault", + "ruleId": "RedundantNameQualifier", "kind": "fail", - "level": "note", + "level": "warning", "message": { - "text": "Some values of the enum are not processed inside switch: Bonfire, Boss, KnownFlag...", - "markdown": "Some values of the enum are not processed inside switch: Bonfire, Boss, KnownFlag..." + "text": "Qualifier is redundant", + "markdown": "Qualifier is redundant" }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/BaseViewModel.cs", + "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", "uriBaseId": "SRCROOT" }, "region": { - "startLine": 48, - "startColumn": 13, - "charOffset": 1817, - "charLength": 6, + "startLine": 98, + "startColumn": 93, + "charOffset": 3608, + "charLength": 22, "snippet": { - "text": "switch" + "text": "SoulMemory.DarkSouls1." }, "sourceLanguage": "C#" }, "contextRegion": { - "startLine": 46, + "startLine": 96, "startColumn": 1, - "charOffset": 1749, - "charLength": 147, + "charOffset": 3450, + "charLength": 248, "snippet": { - "text": " this.SetField(ref _newSplitType, value);\r\n\r\n switch (NewSplitType)\r\n {\r\n case SplitType.Position:\r" + "text": " {\r\n case SplitType.Attribute:\r\n NewSplitValue = new Splits.DarkSouls1.Attribute() { AttributeType = SoulMemory.DarkSouls1.Attribute.Vitality, Level = 10 };\r\n break;\r\n\r" }, "sourceLanguage": "C#" } @@ -216510,13 +138811,13 @@ } ], "partialFingerprints": { - "equalIndicator/v2": "e87edade2f1b39f8", - "equalIndicator/v1": "d8a30d775056879e2cfb767777b7fdd1c1d5401e633fbd48e79d8f3cda33199d" + "equalIndicator/v2": "bb6a00e25a6e80c0", + "equalIndicator/v1": "d65290a376d1a0a323d6005ef0b236b3fade9cb66fdbb45cd5957982db0dd919" }, "baselineState": "unchanged", "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", "tags": [ "C#", ".NETFramework 4.8.1" @@ -216524,24 +138825,24 @@ } }, { - "ruleId": "SwitchStatementMissingSomeEnumCasesNoDefault", + "ruleId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", "kind": "fail", "level": "note", "message": { - "text": "Some values of the enum are not processed inside switch: WaitForStart, default", - "markdown": "Some values of the enum are not processed inside switch: WaitForStart, default" + "text": "Some values of the enum are not processed inside switch: KnownFlag, ItemPickup, null", + "markdown": "Some values of the enum are not processed inside switch: KnownFlag, ItemPickup, null" }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/ArmoredCore6Splitter.cs", + "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", "uriBaseId": "SRCROOT" }, "region": { - "startLine": 45, - "startColumn": 9, - "charOffset": 1710, + "startLine": 48, + "startColumn": 13, + "charOffset": 1921, "charLength": 6, "snippet": { "text": "switch" @@ -216549,12 +138850,12 @@ "sourceLanguage": "C#" }, "contextRegion": { - "startLine": 43, + "startLine": 46, "startColumn": 1, - "charOffset": 1639, - "charLength": 141, + "charOffset": 1892, + "charLength": 92, "snippet": { - "text": " public override ResultErr OnUpdate()\r\n {\r\n switch (_timerState)\r\n {\r\n case TimerState.Running:\r" + "text": " }\r\n\r\n switch (NewSplitType)\r\n {\r\n default:\r" }, "sourceLanguage": "C#" } @@ -216568,8 +138869,8 @@ } ], "partialFingerprints": { - "equalIndicator/v2": "c6926fb28f178ff7", - "equalIndicator/v1": "e3075aff351ea6be3990a0859ebe508066464b40eef7349c80faa1dcc246c6c9" + "equalIndicator/v2": "23a0517eca880c64", + "equalIndicator/v1": "1f2be0a78eaece0f9666ffc06bbb0e3b408f8a2f54daf78fb8c3e6d2b518d5da" }, "baselineState": "unchanged", "properties": { @@ -216582,269 +138883,95 @@ } }, { - "ruleId": "TooWideLocalVariableScope", + "ruleId": "SwitchStatementMissingSomeEnumCasesNoDefault", "kind": "fail", "level": "note", "message": { - "text": "Local variable 'logoCodeBytesPointFive' can be declared in inner scope", - "markdown": "Local variable 'logoCodeBytesPointFive' can be declared in inner scope" + "text": "Some values of the enum are not processed inside switch: Boss, KnownFlag, ItemPickup...", + "markdown": "Some values of the enum are not processed inside switch: Boss, KnownFlag, ItemPickup..." }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "src/SoulMemory/Sekiro/Sekiro.cs", + "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", "uriBaseId": "SRCROOT" }, "region": { - "startLine": 502, - "startColumn": 14, - "charOffset": 18503, - "charLength": 22, + "startLine": 95, + "startColumn": 17, + "charOffset": 3427, + "charLength": 6, "snippet": { - "text": "logoCodeBytesPointFive" + "text": "switch" }, "sourceLanguage": "C#" }, "contextRegion": { - "startLine": 500, + "startLine": 93, "startColumn": 1, - "charOffset": 18463, - "charLength": 111, + "charOffset": 3356, + "charLength": 159, "snippet": { - "text": " string version;\r\n\r\n uint logoCodeBytesPointFive = 0;\r\n uint logoCodeBytesPointSix = 0;\r\n\r" + "text": " SetField(ref _newSplitType, value);\r\n\r\n switch (NewSplitType)\r\n {\r\n case SplitType.Attribute:\r" }, "sourceLanguage": "C#" } }, "logicalLocations": [ { - "fullyQualifiedName": "SoulMemory", + "fullyQualifiedName": "SoulSplitter", "kind": "module" } ] } ], "partialFingerprints": { - "equalIndicator/v2": "d4f83893ee4eebe5", - "equalIndicator/v1": "52339b65d811cc46a6685ca38ccdd7dae0fb8209ea8086c00a446b581047de6b" + "equalIndicator/v2": "4d87e767e0889218", + "equalIndicator/v1": "85bf90966cfbd77a66bdd20f545e4f72a14c96a566244ebd90146d7b19d2493e" }, "baselineState": "unchanged", "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", "tags": [ "C#", - ".NETStandard 2.0" + ".NETFramework 4.8.1" ] } }, { - "ruleId": "TooWideLocalVariableScope", + "ruleId": "UseSymbolAlias", "kind": "fail", "level": "note", "message": { - "text": "Local variable 'logoCodeBytesPointSix' can be declared in inner scope", - "markdown": "Local variable 'logoCodeBytesPointSix' can be declared in inner scope" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Sekiro/Sekiro.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 503, - "startColumn": 14, - "charOffset": 18545, - "charLength": 21, - "snippet": { - "text": "logoCodeBytesPointSix" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 501, - "startColumn": 1, - "charOffset": 18488, - "charLength": 88, - "snippet": { - "text": "\r\n uint logoCodeBytesPointFive = 0;\r\n uint logoCodeBytesPointSix = 0;\r\n\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a7e6617a2e486354", - "equalIndicator/v1": "e6c4f44411c1b9f99439eb30f2fbbb471e874115ac075c1671b5e9504c61ac18" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "UnusedMember.Local", - "kind": "fail", - "level": "warning", - "message": { - "text": "Enum member 'V131' is never used", - "markdown": "Enum member 'V131' is never used" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 84, - "startColumn": 9, - "charOffset": 3505, - "charLength": 4, - "snippet": { - "text": "V131" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 82, - "startColumn": 1, - "charOffset": 3452, - "charLength": 106, - "snippet": { - "text": " V130,\r\n [Version(\"1.3.1.0\")]\r\n V131,\r\n [Version(\"unknown\")]\r\n Unknown\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "fed09c8da7466326", - "equalIndicator/v1": "1d21028ef7d88db1aaf2a4759caaf724280f83a21b01a1078d631e89b9aa372b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "UnusedMember.Local", - "kind": "fail", - "level": "warning", - "message": { - "text": "Enum member 'V130' is never used", - "markdown": "Enum member 'V130' is never used" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/Remastered.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 82, - "startColumn": 9, - "charOffset": 3460, - "charLength": 4, - "snippet": { - "text": "V130" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 80, - "startColumn": 1, - "charOffset": 3407, - "charLength": 104, - "snippet": { - "text": " V101,\r\n [Version(\"1.3.0.0\")]\r\n V130,\r\n [Version(\"1.3.1.0\")]\r\n V131,\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "7b9588ce62b5fb57", - "equalIndicator/v1": "32bc7577222ed057942a970535cf94ceec52d2f31a54a89e691d671c76766420" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "UnusedMember.Local", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'SetBitBlt' is never used", - "markdown": "Method 'SetBitBlt' is never used" + "text": "Use type alias 'Attribute'", + "markdown": "Use type alias 'Attribute'" }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "src/SoulSplitter/SoulComponent.cs", + "uri": "src/SoulSplitter/UI/DarkSouls1/DarkSouls1ViewModelRefactor.cs", "uriBaseId": "SRCROOT" }, "region": { - "startLine": 107, - "startColumn": 18, - "charOffset": 3656, - "charLength": 9, + "startLine": 98, + "startColumn": 93, + "charOffset": 3608, + "charLength": 31, "snippet": { - "text": "SetBitBlt" + "text": "SoulMemory.DarkSouls1.Attribute" }, "sourceLanguage": "C#" }, "contextRegion": { - "startLine": 105, + "startLine": 96, "startColumn": 1, - "charOffset": 3630, - "charLength": 100, + "charOffset": 3450, + "charLength": 248, "snippet": { - "text": " }\r\n\r\n private void SetBitBlt()\r\n {\r\n if (_game is SoulMemory.Sekiro.Sekiro sekiro)\r" + "text": " {\r\n case SplitType.Attribute:\r\n NewSplitValue = new Splits.DarkSouls1.Attribute() { AttributeType = SoulMemory.DarkSouls1.Attribute.Vitality, Level = 10 };\r\n break;\r\n\r" }, "sourceLanguage": "C#" } @@ -216858,13 +138985,13 @@ } ], "partialFingerprints": { - "equalIndicator/v2": "55ea6fafd3e8efae", - "equalIndicator/v1": "ac578c6ecb4ca6c0d26551d179017d705e20472bdd2e435f483cdbf6f5115f67" + "equalIndicator/v2": "a9b812250de78dc4", + "equalIndicator/v1": "3b5f7e8ab72b22ee5ffc2dd42dbb51a64cff8b8cdbdd4f8f795614ebbde95f14" }, "baselineState": "unchanged", "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", "tags": [ "C#", ".NETFramework 4.8.1" @@ -216872,211 +138999,94 @@ } }, { - "ruleId": "UnusedMember.Local", - "kind": "fail", - "level": "warning", - "message": { - "text": "Field '_files' is never used", - "markdown": "Field '_files' is never used" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/Sekiro/Sekiro.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 415, - "startColumn": 35, - "charOffset": 14887, - "charLength": 6, - "snippet": { - "text": "_files" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 413, - "startColumn": 1, - "charOffset": 14801, - "charLength": 187, - "snippet": { - "text": " private readonly object _bitBltLock = new();\r\n\r\n private readonly List _files =\r\n [\"sekiro.exe\", \"data1.bdt\", \"data2.bdt\", \"data3.bdt\", \"data4.bdt\", \"data5.bdt\"];\r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "be174ec10fa535fc", - "equalIndicator/v1": "baa98d0b6c66dfd72aa5268e1defaab01d1686b01d0fb0c57681c01045fb427d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "UnusedMember.Local", + "ruleId": "YAMLSchemaValidation", "kind": "fail", "level": "warning", "message": { - "text": "Field '_bitBltValues' is never used", - "markdown": "Field '_bitBltValues' is never used" + "text": "Schema validation: Missing required property 'version' = 1.0", + "markdown": "Schema validation: Missing required property 'version' = 1.0" }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "src/SoulMemory/Sekiro/Sekiro.cs", + "uri": ".github/workflows/qodana.yml", "uriBaseId": "SRCROOT" }, "region": { - "startLine": 418, - "startColumn": 35, - "charOffset": 15023, - "charLength": 13, - "snippet": { - "text": "_bitBltValues" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 416, + "startLine": 1, "startColumn": 1, - "charOffset": 14897, - "charLength": 209, - "snippet": { - "text": " [\"sekiro.exe\", \"data1.bdt\", \"data2.bdt\", \"data3.bdt\", \"data4.bdt\", \"data5.bdt\"];\r\n\r\n private readonly List _bitBltValues =\r\n [\r\n \"0E 0A 84 07 C7 8E 89 6A 73 D8 F2 7D A3 D4 C0 CC\",\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulMemory", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "cb43fbe627b3fa92", - "equalIndicator/v1": "cab5f644fe65a51ca1ccf609a4b8038319b91dc14c74cc3c81eb724a25c70e5c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETStandard 2.0" - ] - } - }, - { - "ruleId": "UnusedMember.Local", - "kind": "fail", - "level": "warning", - "message": { - "text": "Method 'OverwriteFile' is never used", - "markdown": "Method 'OverwriteFile' is never used" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/soulmods/Soulmods.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 114, - "startColumn": 25, - "charOffset": 4133, - "charLength": 13, + "charOffset": 0, + "charLength": 12, "snippet": { - "text": "OverwriteFile" + "text": "name: Qodana" }, - "sourceLanguage": "C#" + "sourceLanguage": "yaml" }, "contextRegion": { - "startLine": 112, + "startLine": 1, "startColumn": 1, - "charOffset": 4100, - "charLength": 200, + "charOffset": 0, + "charLength": 32, "snippet": { - "text": " }\r\n\r\n private static void OverwriteFile(string manifestResourceName, string path)\r\n {\r\n using var stream = typeof(Soulmods).Assembly.GetManifestResourceStream(manifestResourceName)!;\r" + "text": "name: Qodana\r\non:\r\n #schedule:\r" }, - "sourceLanguage": "C#" + "sourceLanguage": "yaml" } }, "logicalLocations": [ { - "fullyQualifiedName": "SoulMemory", + "fullyQualifiedName": "rider.module", "kind": "module" } ] } ], "partialFingerprints": { - "equalIndicator/v2": "e5f398f50385e576", - "equalIndicator/v1": "d22afda58b27d87856d76a91ff784781613f0c6163642c5f76769295017b7e7c" + "equalIndicator/v2": "18d6a70f4b1439d0", + "equalIndicator/v1": "2a03b40c141d224bf54ff3e9565ea9aa53d43ceb165c31255d5e6806e440d259" }, "baselineState": "unchanged", "properties": { "ideaSeverity": "WARNING", "qodanaSeverity": "High", "tags": [ - "C#", - ".NETStandard 2.0" + "yaml" ] } }, { - "ruleId": "UnusedVariable", + "ruleId": "ArrangeObjectCreationWhenTypeEvident", "kind": "fail", - "level": "warning", + "level": "note", "message": { - "text": "Local variable 'len' is never used", - "markdown": "Local variable 'len' is never used" + "text": "Redundant type specification", + "markdown": "Redundant type specification" }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "src/SoulMemory/Native/Kernel32.cs", + "uri": "src/SoulMemory/DarkSouls1/DropMod.cs", "uriBaseId": "SRCROOT" }, "region": { - "startLine": 268, + "startLine": 107, "startColumn": 13, - "charOffset": 10406, - "charLength": 3, + "charOffset": 4099, + "charLength": 14, "snippet": { - "text": "len" + "text": "SwitchableDrop" }, "sourceLanguage": "C#" }, "contextRegion": { - "startLine": 266, + "startLine": 105, "startColumn": 1, - "charOffset": 10381, - "charLength": 128, + "charOffset": 3973, + "charLength": 216, "snippet": { - "text": " }\r\n\r\n var len = bytesCopied / IntPtr.Size;\r\n return (List: processMods, Length: bytesCopied >> 2);\r\n }\r" + "text": " //Anor londo\r\n new SwitchableDrop(ItemType.SilverKnightStraightSword, 24100000, 208000, 1473000),\r\n new SwitchableDrop(ItemType.SilverKnightSpear, 24100300, 1006000, 1473000),\r\n\r\n //kiln\r" }, "sourceLanguage": "C#" } @@ -217090,13 +139100,13 @@ } ], "partialFingerprints": { - "equalIndicator/v2": "513431177596a8c2", - "equalIndicator/v1": "248e8ce2a44b45f8f508d63e67a899c7571c7b41a33192dcb0a5884443d0adb5" + "equalIndicator/v2": "5193df7cbc82f6be", + "equalIndicator/v1": "0b4b51a79e3aad84297a00737c570c67c02f7f7d6699e0b7ac3394caee2c9a97" }, - "baselineState": "unchanged", + "baselineState": "new", "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", "tags": [ "C#", ".NETStandard 2.0" @@ -217104,37 +139114,37 @@ } }, { - "ruleId": "UnusedVariable", + "ruleId": "ArrangeObjectCreationWhenTypeEvident", "kind": "fail", - "level": "warning", + "level": "note", "message": { - "text": "Local variable 'EATPtr' is never used", - "markdown": "Local variable 'EATPtr' is never used" + "text": "Redundant type specification", + "markdown": "Redundant type specification" }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "src/SoulMemory/Native/Kernel32.cs", + "uri": "src/SoulMemory/DarkSouls1/DropMod.cs", "uriBaseId": "SRCROOT" }, "region": { - "startLine": 355, - "startColumn": 17, - "charOffset": 13798, - "charLength": 6, + "startLine": 103, + "startColumn": 13, + "charOffset": 3901, + "charLength": 14, "snippet": { - "text": "EATPtr" + "text": "SwitchableDrop" }, "sourceLanguage": "C#" }, "contextRegion": { - "startLine": 353, + "startLine": 101, "startColumn": 1, - "charOffset": 13694, - "charLength": 193, + "charOffset": 3818, + "charLength": 176, "snippet": { - "text": " var EAT = module.modBaseAddr.ToInt64() + exportTable.AddressOfFunctions;\r\n\r\n var EATPtr = (IntPtr)EAT;\r\n\r\n //Function name offset is an array of 4byte numbers\r" + "text": " private readonly List _switchableWeapons =\r\n [\r\n new SwitchableDrop(ItemType.StoneGreatsword, 23800000, 306000, 1503000),\r\n\r\n //Anor londo\r" }, "sourceLanguage": "C#" } @@ -217148,13 +139158,13 @@ } ], "partialFingerprints": { - "equalIndicator/v2": "81a70e687ff8eba0", - "equalIndicator/v1": "3c6c29a2690e15a949dc2b664b7f19ef926d19868044c7d82448751e90b512f6" + "equalIndicator/v2": "5530271796c19239", + "equalIndicator/v1": "15ddb4b9664fc756d0a9321a5d753484a7df7441b6deaedf3871c5ae8d7b8613" }, - "baselineState": "unchanged", + "baselineState": "new", "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", "tags": [ "C#", ".NETStandard 2.0" @@ -217162,37 +139172,37 @@ } }, { - "ruleId": "UnusedVariable", + "ruleId": "ArrangeObjectCreationWhenTypeEvident", "kind": "fail", - "level": "warning", + "level": "note", "message": { - "text": "Local variable 'u' is never used", - "markdown": "Local variable 'u' is never used" + "text": "Redundant type specification", + "markdown": "Redundant type specification" }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "src/SoulSplitter/UI/Validation/TextToNumberValidation.cs", + "uri": "src/SoulSplitter/ViewModels/Games/ArmoredCore6ViewModel.cs", "uriBaseId": "SRCROOT" }, "region": { - "startLine": 77, - "startColumn": 50, - "charOffset": 2444, - "charLength": 1, + "startLine": 60, + "startColumn": 13, + "charOffset": 2038, + "charLength": 29, "snippet": { - "text": "u" + "text": "EnumFlagViewModel" }, "sourceLanguage": "C#" }, "contextRegion": { - "startLine": 75, + "startLine": 58, "startColumn": 1, - "charOffset": 2357, - "charLength": 207, + "charOffset": 1953, + "charLength": 147, "snippet": { - "text": "\r\n case NumericType.Uint:\r\n if (!uint.TryParse(text, out var u))\r\n {\r\n return new ValidationResult(false, \"Input is not a valid positive number\");\r" + "text": " [\r\n new EnumFlagViewModel(TimingType.Immediate),\r\n new EnumFlagViewModel(TimingType.OnLoading)\r\n ];\r\n\r" }, "sourceLanguage": "C#" } @@ -217206,13 +139216,13 @@ } ], "partialFingerprints": { - "equalIndicator/v2": "f05fcb266ce01960", - "equalIndicator/v1": "5cf5bac44d39aca8d954c1bd184ab30821d755e4417d70026c52ca41c3431650" + "equalIndicator/v2": "9d637dc0d30d32ee", + "equalIndicator/v1": "1974c6a2371bb2b3940dfa05d4f06e47974847641fb7c3b34eea9c083e37c740" }, - "baselineState": "unchanged", + "baselineState": "new", "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", "tags": [ "C#", ".NETFramework 4.8.1" @@ -217220,37 +139230,37 @@ } }, { - "ruleId": "UnusedVariable", + "ruleId": "ArrangeObjectCreationWhenTypeEvident", "kind": "fail", - "level": "warning", + "level": "note", "message": { - "text": "Local variable 'ordinal' is never used", - "markdown": "Local variable 'ordinal' is never used" + "text": "Redundant type specification", + "markdown": "Redundant type specification" }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "src/SoulMemory/Native/Kernel32.cs", + "uri": "src/SoulMemory/DarkSouls1/DropMod.cs", "uriBaseId": "SRCROOT" }, "region": { - "startLine": 362, - "startColumn": 17, - "charOffset": 14167, - "charLength": 7, + "startLine": 113, + "startColumn": 13, + "charOffset": 4457, + "charLength": 14, "snippet": { - "text": "ordinal" + "text": "SwitchableDrop" }, "sourceLanguage": "C#" }, "contextRegion": { - "startLine": 360, + "startLine": 111, "startColumn": 1, - "charOffset": 14105, - "charLength": 212, + "charOffset": 4276, + "charLength": 285, "snippet": { - "text": "\r\n //Ordinal seems to be an index\r\n var ordinal = process.ReadMemory(ordinalTable + i * sizeof(ushort)).Unwrap();\r\n\r\n //Function offset table is an array of 4byte numbers\r" + "text": " new SwitchableDrop(ItemType.BlackKnightGreataxe, 27905200, 753000, 1474000),\r\n new SwitchableDrop(ItemType.BlackKnightSword, 27905000, 310000, 1474000),\r\n new SwitchableDrop(ItemType.BlackKnightGreatsword, 27905100, 355000, 1474000),\r\n\r\n //Darkroot Garden\r" }, "sourceLanguage": "C#" } @@ -217264,13 +139274,13 @@ } ], "partialFingerprints": { - "equalIndicator/v2": "7e3160ed9444edcb", - "equalIndicator/v1": "5eb4a43b9c00b28eeb0f528f57f1770cdbc4adc0284be915171005d0b05d865c" + "equalIndicator/v2": "b9250f3c50c11f6e", + "equalIndicator/v1": "21a0e2733c7b048dede430ea4975ea6c81864f659a016370c6901ecd0fdb7678" }, - "baselineState": "unchanged", + "baselineState": "new", "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", "tags": [ "C#", ".NETStandard 2.0" @@ -217278,95 +139288,37 @@ } }, { - "ruleId": "UnusedVariable", + "ruleId": "ArrangeObjectCreationWhenTypeEvident", "kind": "fail", - "level": "warning", + "level": "note", "message": { - "text": "Local variable 'process' is never used", - "markdown": "Local variable 'process' is never used" + "text": "Redundant type specification", + "markdown": "Redundant type specification" }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls1Splitter.cs", + "uri": "src/SoulMemory/DarkSouls1/DropMod.cs", "uriBaseId": "SRCROOT" }, "region": { - "startLine": 375, + "startLine": 111, "startColumn": 13, - "charOffset": 12829, - "charLength": 7, + "charOffset": 4288, + "charLength": 14, "snippet": { - "text": "process" + "text": "SwitchableDrop" }, "sourceLanguage": "C#" }, "contextRegion": { - "startLine": 373, - "startColumn": 1, - "charOffset": 12776, - "charLength": 101, - "snippet": { - "text": " private void UpdateDropMod()\r\n {\r\n var process = _darkSouls1.GetProcess();\r\n \r\n\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "6cd5b5df9f7e9b67", - "equalIndicator/v1": "6bb8b8915054bc7f3ec8160bc71b5aa314309ad0ea0affffd14d54b5978348f5" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "UnusedVariable", - "kind": "fail", - "level": "warning", - "message": { - "text": "Local variable 'data' is never used", - "markdown": "Local variable 'data' is never used" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulMemory/soulmods/Soulmods.cs", - "uriBaseId": "SRCROOT" - }, - "region": { "startLine": 109, - "startColumn": 17, - "charOffset": 3981, - "charLength": 4, - "snippet": { - "text": "data" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 107, "startColumn": 1, - "charOffset": 3911, - "charLength": 188, + "charOffset": 4174, + "charLength": 358, "snippet": { - "text": " process.Execute((IntPtr)func, buffer);\r\n\r\n var data = process.ReadProcessMemory(buffer.ToInt64(), totalSize).Unwrap();\r\n process.Free(buffer);\r\n }\r" + "text": " //kiln\r\n new SwitchableDrop(ItemType.BlackKnightHalberd, 27905300, 1105000, 1474000),\r\n new SwitchableDrop(ItemType.BlackKnightGreataxe, 27905200, 753000, 1474000),\r\n new SwitchableDrop(ItemType.BlackKnightSword, 27905000, 310000, 1474000),\r\n new SwitchableDrop(ItemType.BlackKnightGreatsword, 27905100, 355000, 1474000),\r" }, "sourceLanguage": "C#" } @@ -217380,13 +139332,13 @@ } ], "partialFingerprints": { - "equalIndicator/v2": "dc66fac85d44bbd6", - "equalIndicator/v1": "e06fe001acdb6ef789715bba3373ac11cdf4c602d3a7608b64d943443b03c5f3" + "equalIndicator/v2": "60e49cb5c195c562", + "equalIndicator/v1": "42537eeaca94369dfc320c7a227d8739ef8b095499a0b3580b0914d569aac751" }, - "baselineState": "unchanged", + "baselineState": "new", "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", "tags": [ "C#", ".NETStandard 2.0" @@ -217394,211 +139346,211 @@ } }, { - "ruleId": "UseCollectionCountProperty", + "ruleId": "ArrangeObjectCreationWhenTypeEvident", "kind": "fail", "level": "note", "message": { - "text": "Replace 'Enumerable.Count()' invocation with collection count property access", - "markdown": "Replace 'Enumerable.Count()' invocation with collection count property access" + "text": "Redundant type specification", + "markdown": "Redundant type specification" }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "src/SoulSplitter/Logger.cs", + "uri": "src/SoulMemory/DarkSouls1/DropMod.cs", "uriBaseId": "SRCROOT" }, "region": { - "startLine": 60, - "startColumn": 72, - "charOffset": 2163, - "charLength": 2, + "startLine": 122, + "startColumn": 13, + "charOffset": 4789, + "charLength": 14, "snippet": { - "text": "()" + "text": "SwitchableDrop" }, "sourceLanguage": "C#" }, "contextRegion": { - "startLine": 58, + "startLine": 120, "startColumn": 1, - "charOffset": 1986, - "charLength": 208, + "charOffset": 4757, + "charLength": 125, "snippet": { - "text": " var lines = File.ReadAllLines(filePath);\r\n File.Delete(filePath);\r\n File.WriteAllLines(filePath, lines.Skip(lines.Count() / 2));\r\n }\r\n\r" + "text": "\r\n //Asylum\r\n new SwitchableDrop(ItemType.BlackKnightSword, 27907000, 310000, 1474000),\r\n\r\n //Catacombs\r" }, "sourceLanguage": "C#" } }, "logicalLocations": [ { - "fullyQualifiedName": "SoulSplitter", + "fullyQualifiedName": "SoulMemory", "kind": "module" } ] } ], "partialFingerprints": { - "equalIndicator/v2": "e70a6bed73f1a6a5", - "equalIndicator/v1": "c25ab75aa503b9194125553ceaba490a4ce9f37e85f1495b1d62924210928908" + "equalIndicator/v2": "3dcba666b022de69", + "equalIndicator/v1": "4ee7129abfcbbad3ac9a885e7be250809026043e8b916fa2b18430ce7da789ef" }, - "baselineState": "unchanged", + "baselineState": "new", "properties": { "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate", "tags": [ "C#", - ".NETFramework 4.8.1" + ".NETStandard 2.0" ] } }, { - "ruleId": "UseNullPropagation", + "ruleId": "ArrangeObjectCreationWhenTypeEvident", "kind": "fail", "level": "note", "message": { - "text": "Use null propagation", - "markdown": "Use null propagation" + "text": "Redundant type specification", + "markdown": "Redundant type specification" }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "src/SoulSplitter/SoulComponent.cs", + "uri": "src/SoulMemory/DarkSouls1/DropMod.cs", "uriBaseId": "SRCROOT" }, "region": { - "startLine": 221, - "startColumn": 23, - "charOffset": 8080, - "charLength": 7, + "startLine": 126, + "startColumn": 13, + "charOffset": 4981, + "charLength": 14, "snippet": { - "text": "!= null" + "text": "SwitchableDrop" }, "sourceLanguage": "C#" }, "contextRegion": { - "startLine": 219, + "startLine": 124, "startColumn": 1, - "charOffset": 7999, - "charLength": 135, + "charOffset": 4862, + "charLength": 201, "snippet": { - "text": " protected virtual void Dispose(bool disposing)\r\n {\r\n if (_splitter != null)\r\n {\r\n _splitter.Dispose();\r" + "text": " //Catacombs\r\n new SwitchableDrop(ItemType.BlackKnightGreataxe, 27902000, 753000, 1474000),\r\n new SwitchableDrop(ItemType.BlackKnightHalberd, 27903000, 1105000, 1474000)\r\n ];\r\n\r" }, "sourceLanguage": "C#" } }, "logicalLocations": [ { - "fullyQualifiedName": "SoulSplitter", + "fullyQualifiedName": "SoulMemory", "kind": "module" } ] } ], "partialFingerprints": { - "equalIndicator/v2": "baa09f62f1cde59a", - "equalIndicator/v1": "8e27018d1b3ac30aca0d73c5749ac476cace5554cb482576e95f62160e25a323" + "equalIndicator/v2": "325c1d3eed006ae7", + "equalIndicator/v1": "611250be4e0f0ddccacb4e6696e242084cfdf904b76deef7f6bc840bdde1c74a" }, - "baselineState": "unchanged", + "baselineState": "new", "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", "tags": [ "C#", - ".NETFramework 4.8.1" + ".NETStandard 2.0" ] } }, { - "ruleId": "UseObjectOrCollectionInitializer", + "ruleId": "ArrangeObjectCreationWhenTypeEvident", "kind": "fail", "level": "note", "message": { - "text": "Use object initializer", - "markdown": "Use object initializer" + "text": "Redundant type specification", + "markdown": "Redundant type specification" }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/BaseSplitter.cs", + "uri": "src/SoulMemory/DarkSouls1/DropMod.cs", "uriBaseId": "SRCROOT" }, "region": { - "startLine": 42, - "startColumn": 23, - "charOffset": 1576, - "charLength": 3, + "startLine": 106, + "startColumn": 13, + "charOffset": 4007, + "charLength": 14, "snippet": { - "text": "new" + "text": "SwitchableDrop" }, "sourceLanguage": "C#" }, "contextRegion": { - "startLine": 40, + "startLine": 104, "startColumn": 1, - "charOffset": 1529, - "charLength": 115, + "charOffset": 3971, + "charLength": 202, "snippet": { - "text": " _game = game;\r\n\r\n _timerModel = new TimerModel();\r\n _timerModel.CurrentState = state;\r\n }\r" + "text": "\r\n //Anor londo\r\n new SwitchableDrop(ItemType.SilverKnightStraightSword, 24100000, 208000, 1473000),\r\n new SwitchableDrop(ItemType.SilverKnightSpear, 24100300, 1006000, 1473000),\r\n\r" }, "sourceLanguage": "C#" } }, "logicalLocations": [ { - "fullyQualifiedName": "SoulSplitter", + "fullyQualifiedName": "SoulMemory", "kind": "module" } ] } ], "partialFingerprints": { - "equalIndicator/v2": "294a4918633339af", - "equalIndicator/v1": "3e6226f1d86d827f770dca6b203e5b7803c0ccbe3e9d27383474a791c6414210" + "equalIndicator/v2": "89731189a979a222", + "equalIndicator/v1": "6e59e9317944742eb6ce4154c2db5bc8a6b443fc0fdcd70540b7b03f84a01814" }, - "baselineState": "unchanged", + "baselineState": "new", "properties": { "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate", "tags": [ "C#", - ".NETFramework 4.8.1" + ".NETStandard 2.0" ] } }, { - "ruleId": "UseObjectOrCollectionInitializer", + "ruleId": "ArrangeObjectCreationWhenTypeEvident", "kind": "fail", "level": "note", "message": { - "text": "Use object initializer", - "markdown": "Use object initializer" + "text": "Redundant type specification", + "markdown": "Redundant type specification" }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/ItemReader.cs", + "uri": "src/SoulMemory/DarkSouls1/DropMod.cs", "uriBaseId": "SRCROOT" }, "region": { - "startLine": 79, - "startColumn": 36, - "charOffset": 3302, - "charLength": 3, + "startLine": 112, + "startColumn": 13, + "charOffset": 4374, + "charLength": 14, "snippet": { - "text": "new" + "text": "SwitchableDrop" }, "sourceLanguage": "C#" }, "contextRegion": { - "startLine": 77, + "startLine": 110, "startColumn": 1, - "charOffset": 3154, - "charLength": 381, + "charOffset": 4190, + "charLength": 344, "snippet": { - "text": " {\r\n var estus = Item.AllItems.First(j => j.ItemType == ItemType.EstusFlask);\r\n var instance = new Item(estus.Name, estus.Id, estus.ItemType, estus.Category, estus.StackLimit, estus.Upgrade);\r\n\r\n //Item ID is both the item + reinforcement. Level field does not change in the games memory for the estus flask.\r" + "text": " new SwitchableDrop(ItemType.BlackKnightHalberd, 27905300, 1105000, 1474000),\r\n new SwitchableDrop(ItemType.BlackKnightGreataxe, 27905200, 753000, 1474000),\r\n new SwitchableDrop(ItemType.BlackKnightSword, 27905000, 310000, 1474000),\r\n new SwitchableDrop(ItemType.BlackKnightGreatsword, 27905100, 355000, 1474000),\r\n\r" }, "sourceLanguage": "C#" } @@ -217612,10 +139564,10 @@ } ], "partialFingerprints": { - "equalIndicator/v2": "c1044b317d9167ea", - "equalIndicator/v1": "6df0d484d1ea403267aecde5bd29aa9c8f57bf023f738b94eefe676d0f872bb5" + "equalIndicator/v2": "32d4d48ac4324d3a", + "equalIndicator/v1": "bc6fbfeec5039e0b3b558679a47c708c9e377a203c557f8ad9bbc71f63991321" }, - "baselineState": "unchanged", + "baselineState": "new", "properties": { "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate", @@ -217626,153 +139578,153 @@ } }, { - "ruleId": "UseObjectOrCollectionInitializer", + "ruleId": "ArrangeObjectCreationWhenTypeEvident", "kind": "fail", "level": "note", "message": { - "text": "Use object initializer", - "markdown": "Use object initializer" + "text": "Redundant type specification", + "markdown": "Redundant type specification" }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "src/SoulSplitter/UI/MainViewModel.cs", + "uri": "src/SoulMemory/DarkSouls1/DropMod.cs", "uriBaseId": "SRCROOT" }, "region": { - "startLine": 364, - "startColumn": 34, - "charOffset": 11303, - "charLength": 3, + "startLine": 110, + "startColumn": 13, + "charOffset": 4202, + "charLength": 14, "snippet": { - "text": "new" + "text": "SwitchableDrop" }, "sourceLanguage": "C#" }, "contextRegion": { - "startLine": 362, + "startLine": 108, "startColumn": 1, - "charOffset": 11226, - "charLength": 237, + "charOffset": 4172, + "charLength": 272, "snippet": { - "text": " TryAndHandleError(() =>\r\n {\r\n var openFileDialog = new Microsoft.Win32.OpenFileDialog();\r\n openFileDialog.Filter = \"XML-File | *.xml|All files (*.*)|*.*\";\r\n openFileDialog.FilterIndex = 0;\r" + "text": "\r\n //kiln\r\n new SwitchableDrop(ItemType.BlackKnightHalberd, 27905300, 1105000, 1474000),\r\n new SwitchableDrop(ItemType.BlackKnightGreataxe, 27905200, 753000, 1474000),\r\n new SwitchableDrop(ItemType.BlackKnightSword, 27905000, 310000, 1474000),\r" }, "sourceLanguage": "C#" } }, "logicalLocations": [ { - "fullyQualifiedName": "SoulSplitter", + "fullyQualifiedName": "SoulMemory", "kind": "module" } ] } ], "partialFingerprints": { - "equalIndicator/v2": "796742c8f383b743", - "equalIndicator/v1": "7d03177ed268eec661ffea2fed818e697be023d13b4aaee07fa435d3fec6a053" + "equalIndicator/v2": "08d56da94219c50e", + "equalIndicator/v1": "cf49b307b42dad873acad20590cec25554429be8f7ffdb6d0db52efcbe9ccc28" }, - "baselineState": "unchanged", + "baselineState": "new", "properties": { "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate", "tags": [ "C#", - ".NETFramework 4.8.1" + ".NETStandard 2.0" ] } }, { - "ruleId": "UseObjectOrCollectionInitializer", + "ruleId": "ArrangeObjectCreationWhenTypeEvident", "kind": "fail", "level": "note", "message": { - "text": "Use object initializer", - "markdown": "Use object initializer" + "text": "Redundant type specification", + "markdown": "Redundant type specification" }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "src/SoulSplitter/Hotkeys/GlobalHotKey.cs", + "uri": "src/SoulMemory/DarkSouls1/DropMod.cs", "uriBaseId": "SRCROOT" }, "region": { - "startLine": 37, - "startColumn": 33, - "charOffset": 1443, - "charLength": 3, + "startLine": 119, + "startColumn": 13, + "charOffset": 4685, + "charLength": 14, "snippet": { - "text": "new" + "text": "SwitchableDrop" }, "sourceLanguage": "C#" }, "contextRegion": { - "startLine": 35, + "startLine": 117, "startColumn": 1, - "charOffset": 1377, - "charLength": 164, + "charOffset": 4648, + "charLength": 128, "snippet": { - "text": " static GlobalHotKey()\r\n {\r\n var messageLoopThread = new Thread(delegate ()\r\n {\r\n Application.Run(new HotkeyForm(WindowReadyEvent));\r" + "text": "\r\n //undead burg\r\n new SwitchableDrop(ItemType.BlackKnightSword, 27900000, 1105000, 1474000),\r\n\r\n //Asylum\r" }, "sourceLanguage": "C#" } }, "logicalLocations": [ { - "fullyQualifiedName": "SoulSplitter", + "fullyQualifiedName": "SoulMemory", "kind": "module" } ] } ], "partialFingerprints": { - "equalIndicator/v2": "3fda92da5dd0c111", - "equalIndicator/v1": "7e4902dc3bd23e3719a1f01dac9d251e6f4146fd0954c9e0afce514c81cc3239" + "equalIndicator/v2": "94a5a089791e2caf", + "equalIndicator/v1": "d68235433e2b1a3c5aeba16c922755d828a053cdd24b1c4acfae196b3c4ab748" }, - "baselineState": "unchanged", + "baselineState": "new", "properties": { "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate", "tags": [ "C#", - ".NETFramework 4.8.1" + ".NETStandard 2.0" ] } }, { - "ruleId": "UseObjectOrCollectionInitializer", + "ruleId": "ArrangeObjectCreationWhenTypeEvident", "kind": "fail", "level": "note", "message": { - "text": "Use object initializer", - "markdown": "Use object initializer" + "text": "Redundant type specification", + "markdown": "Redundant type specification" }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "src/SoulSplitter/UI/Generic/FlagTrackerViewModel.cs", + "uri": "src/SoulSplitter/ViewModels/Games/ArmoredCore6ViewModel.cs", "uriBaseId": "SRCROOT" }, "region": { - "startLine": 74, - "startColumn": 24, - "charOffset": 2491, - "charLength": 3, + "startLine": 59, + "startColumn": 13, + "charOffset": 1972, + "charLength": 29, "snippet": { - "text": "new" + "text": "EnumFlagViewModel" }, "sourceLanguage": "C#" }, "contextRegion": { - "startLine": 72, + "startLine": 57, "startColumn": 1, - "charOffset": 2427, - "charLength": 199, + "charOffset": 1854, + "charLength": 244, "snippet": { - "text": " if(category == null)\r\n {\r\n category = new FlagTrackerCategoryViewModel();\r\n category.CategoryName = CategoryName;\r\n EventFlagCategories.Add(category);\r" + "text": " public static ObservableCollection> TimingTypes { get; set; } =\r\n [\r\n new EnumFlagViewModel(TimingType.Immediate),\r\n new EnumFlagViewModel(TimingType.OnLoading)\r\n ];\r" }, "sourceLanguage": "C#" } @@ -217786,10 +139738,10 @@ } ], "partialFingerprints": { - "equalIndicator/v2": "20062b4f8b8bdd0c", - "equalIndicator/v1": "7ef84d3082ae4f98b9b9dbbd29827bdccc46450ebfa5e0e9713072f7318e98f7" + "equalIndicator/v2": "2eda5b9b7ea90b86", + "equalIndicator/v1": "df663559023b9583a68800796c9aadd998c0054c2c59f48589e990d1ee86eeb8" }, - "baselineState": "unchanged", + "baselineState": "new", "properties": { "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate", @@ -217800,37 +139752,37 @@ } }, { - "ruleId": "UseObjectOrCollectionInitializer", + "ruleId": "ArrangeObjectCreationWhenTypeEvident", "kind": "fail", "level": "note", "message": { - "text": "Use object initializer", - "markdown": "Use object initializer" + "text": "Redundant type specification", + "markdown": "Redundant type specification" }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "src/SoulMemory/Native/Kernel32.cs", + "uri": "src/SoulMemory/DarkSouls1/DropMod.cs", "uriBaseId": "SRCROOT" }, "region": { - "startLine": 290, - "startColumn": 40, - "charOffset": 11067, - "charLength": 3, + "startLine": 125, + "startColumn": 13, + "charOffset": 4895, + "charLength": 14, "snippet": { - "text": "new" + "text": "SwitchableDrop" }, "sourceLanguage": "C#" }, "contextRegion": { - "startLine": 288, + "startLine": 123, "startColumn": 1, - "charOffset": 11004, - "charLength": 314, + "charOffset": 4860, + "charLength": 201, "snippet": { - "text": " try\r\n {\r\n MODULEENTRY32W procEntry = new MODULEENTRY32W();\r\n procEntry.dwSize = (UInt32)Marshal.SizeOf(typeof(MODULEENTRY32W));\r\n handleToSnapshot = NativeMethods.CreateToolhelp32Snapshot((uint)SnapshotFlags.Module | (uint)SnapshotFlags.Module32, (uint)process.Id);\r" + "text": "\r\n //Catacombs\r\n new SwitchableDrop(ItemType.BlackKnightGreataxe, 27902000, 753000, 1474000),\r\n new SwitchableDrop(ItemType.BlackKnightHalberd, 27903000, 1105000, 1474000)\r\n ];\r" }, "sourceLanguage": "C#" } @@ -217844,10 +139796,10 @@ } ], "partialFingerprints": { - "equalIndicator/v2": "9ea1e73d9acded92", - "equalIndicator/v1": "b186f5755c13e3177bb57c6a26b88910e8b4ef7185f53ade8cdc70a6aa0797c0" + "equalIndicator/v2": "bccb2b7a9f02bdb9", + "equalIndicator/v1": "edd4d2fd36bd219dbe90625812e05eaf8339157cea6f9848d67ef9178dbf7744" }, - "baselineState": "unchanged", + "baselineState": "new", "properties": { "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate", @@ -217858,37 +139810,37 @@ } }, { - "ruleId": "UseObjectOrCollectionInitializer", + "ruleId": "ArrangeObjectCreationWhenTypeEvident", "kind": "fail", "level": "note", "message": { - "text": "Use object initializer", - "markdown": "Use object initializer" + "text": "Redundant type specification", + "markdown": "Redundant type specification" }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "src/SoulMemory/DarkSouls1/ItemReader.cs", + "uri": "src/SoulMemory/DarkSouls1/DropMod.cs", "uriBaseId": "SRCROOT" }, "region": { - "startLine": 122, - "startColumn": 36, - "charOffset": 5192, - "charLength": 3, + "startLine": 116, + "startColumn": 13, + "charOffset": 4574, + "charLength": 14, "snippet": { - "text": "new" + "text": "SwitchableDrop" }, "sourceLanguage": "C#" }, "contextRegion": { - "startLine": 120, + "startLine": 114, "startColumn": 1, - "charOffset": 5097, - "charLength": 324, + "charOffset": 4533, + "charLength": 139, "snippet": { - "text": " if (lookupItem != null)\r\n {\r\n var instance = new Item(lookupItem.Name, lookupItem.Id, lookupItem.ItemType, lookupItem.Category, lookupItem.StackLimit, lookupItem.Upgrade);\r\n instance.Quantity = quantity;\r\n instance.Infusion = infusion;\r" + "text": "\r\n //Darkroot Garden\r\n new SwitchableDrop(ItemType.BlackKnightHalberd, 27901000, 1105000, 1474000),\r\n\r\n //undead burg\r" }, "sourceLanguage": "C#" } @@ -217902,10 +139854,10 @@ } ], "partialFingerprints": { - "equalIndicator/v2": "e136ec9ad6525215", - "equalIndicator/v1": "bfd06a60c4b16d9097ed76eabfa641a5aa9c3f40068355c21384464e0d158f45" + "equalIndicator/v2": "002eb7db1095fa26", + "equalIndicator/v1": "f260fecfee22cb6b8f1ff86e21843840bd23e0c03b1225a509ad074096fcbb21" }, - "baselineState": "unchanged", + "baselineState": "new", "properties": { "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate", @@ -217916,37 +139868,37 @@ } }, { - "ruleId": "UseObjectOrCollectionInitializer", + "ruleId": "ArrangeObjectCreationWhenTypeEvident", "kind": "fail", "level": "note", "message": { - "text": "Use object initializer", - "markdown": "Use object initializer" + "text": "Redundant type specification", + "markdown": "Redundant type specification" }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/DarkSouls2Splitter.cs", + "uri": "src/SoulSplitter/ViewModels/Games/ArmoredCore6ViewModel.cs", "uriBaseId": "SRCROOT" }, "region": { - "startLine": 45, - "startColumn": 23, - "charOffset": 1703, - "charLength": 3, + "startLine": 65, + "startColumn": 13, + "charOffset": 2217, + "charLength": 28, "snippet": { - "text": "new" + "text": "EnumFlagViewModel" }, "sourceLanguage": "C#" }, "contextRegion": { - "startLine": 43, + "startLine": 63, "startColumn": 1, - "charOffset": 1629, - "charLength": 142, + "charOffset": 2101, + "charLength": 171, "snippet": { - "text": " _liveSplitState.IsGameTimePaused = true;\r\n\r\n _timerModel = new TimerModel();\r\n _timerModel.CurrentState = state;\r\n }\r" + "text": " public static ObservableCollection> SplitTypes { get; set; } =\r\n [\r\n new EnumFlagViewModel(SplitType.Flag)\r\n ];\r\n\r" }, "sourceLanguage": "C#" } @@ -217960,10 +139912,10 @@ } ], "partialFingerprints": { - "equalIndicator/v2": "ef6de35de0158d8d", - "equalIndicator/v1": "ca8dd3d104a214be5dc45e67b00fc8500ae65a2acde114e41cf0fd03496b551f" + "equalIndicator/v2": "dcdf93c4453a1eea", + "equalIndicator/v1": "fac065de65064817227b74843cb1136d9128df5773303a6dff880ee7174d9b0f" }, - "baselineState": "unchanged", + "baselineState": "new", "properties": { "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate", @@ -217974,301 +139926,240 @@ } }, { - "ruleId": "UseObjectOrCollectionInitializer", + "ruleId": "UndefinedAction", "kind": "fail", - "level": "note", + "level": "warning", "message": { - "text": "Use object initializer", - "markdown": "Use object initializer" + "text": "Unresolved action/workflow reference: \"github/codeql-action/upload-sarif@v2\"", + "markdown": "Unresolved action/workflow reference: \"github/codeql-action/upload-sarif@v2\"" }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "src/SoulSplitter/UI/MainViewModel.cs", + "uri": ".github/workflows/build.yml", "uriBaseId": "SRCROOT" }, "region": { - "startLine": 391, - "startColumn": 34, - "charOffset": 12163, - "charLength": 3, + "startLine": 54, + "startColumn": 15, + "charOffset": 1446, + "charLength": 36, "snippet": { - "text": "new" + "text": "github/codeql-action/upload-sarif@v2" }, - "sourceLanguage": "C#" + "sourceLanguage": "yaml" }, "contextRegion": { - "startLine": 389, + "startLine": 52, "startColumn": 1, - "charOffset": 12086, - "charLength": 237, + "charOffset": 1383, + "charLength": 190, "snippet": { - "text": " TryAndHandleError(() =>\r\n {\r\n var saveFileDialog = new Microsoft.Win32.SaveFileDialog();\r\n saveFileDialog.Filter = \"XML-File | *.xml|All files (*.*)|*.*\";\r\n saveFileDialog.FilterIndex = 0;\r" + "text": " \r\n - name: upload to github code scanning\r\n uses: github/codeql-action/upload-sarif@v2\r\n with:\r\n sarif_file: ${{ runner.temp }}/qodana/results/qodana.sarif.json\r" }, - "sourceLanguage": "C#" + "sourceLanguage": "yaml" } }, "logicalLocations": [ { - "fullyQualifiedName": "SoulSplitter", + "fullyQualifiedName": "rider.module", "kind": "module" } ] } ], "partialFingerprints": { - "equalIndicator/v2": "2622c4eac7e34e8d", - "equalIndicator/v1": "cc0d9f1e10c29ffc5651af430e488f1b30bc093cc56176ae18e22bed674e056d" + "equalIndicator/v2": "30d1d3b42342658f", + "equalIndicator/v1": "c78e5387f2714374750666c72df2d2472b4bf326f072745ffad79c97f87834b5" }, - "baselineState": "unchanged", + "baselineState": "new", "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", "tags": [ - "C#", - ".NETFramework 4.8.1" + "yaml" ] } }, { - "ruleId": "UseObjectOrCollectionInitializer", + "ruleId": "UndefinedAction", "kind": "fail", - "level": "note", + "level": "warning", "message": { - "text": "Use object initializer", - "markdown": "Use object initializer" + "text": "Unresolved action/workflow reference: \"JetBrains/qodana-action@v2024.3\"", + "markdown": "Unresolved action/workflow reference: \"JetBrains/qodana-action@v2024.3\"" }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "src/SoulSplitter/UI/MainViewModel.cs", + "uri": ".github/workflows/build.yml", "uriBaseId": "SRCROOT" }, "region": { - "startLine": 233, - "startColumn": 28, - "charOffset": 7471, - "charLength": 3, + "startLine": 47, + "startColumn": 15, + "charOffset": 1222, + "charLength": 31, "snippet": { - "text": "new" + "text": "JetBrains/qodana-action@v2024.3" }, - "sourceLanguage": "C#" + "sourceLanguage": "yaml" }, "contextRegion": { - "startLine": 231, - "startColumn": 1, - "charOffset": 7399, - "charLength": 186, - "snippet": { - "text": " if(_errorWindow == null)\r\n {\r\n _errorWindow = new ErrorWindow();\r\n _errorWindow.DataContext = this;\r\n _errorWindow.Closing += (_, arg) =>\r" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "SoulSplitter", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a008338b7f5f45bf", - "equalIndicator/v1": "da913a27867b8534e05413724a993a7bfdc968aac2081d3de221f48346fd2583" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NETFramework 4.8.1" - ] - } - }, - { - "ruleId": "UseObjectOrCollectionInitializer", - "kind": "fail", - "level": "note", - "message": { - "text": "Use object initializer", - "markdown": "Use object initializer" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/SekiroSplitter.cs", - "uriBaseId": "SRCROOT" - }, - "region": { "startLine": 45, - "startColumn": 23, - "charOffset": 1647, - "charLength": 3, - "snippet": { - "text": "new" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 43, "startColumn": 1, - "charOffset": 1573, - "charLength": 142, + "charOffset": 1119, + "charLength": 196, "snippet": { - "text": " _liveSplitState.IsGameTimePaused = true;\r\n\r\n _timerModel = new TimerModel();\r\n _timerModel.CurrentState = state;\r\n }\r" + "text": " - name: Qodana Scan\r\n if: ${{ !github.event.pull_request.head.repo.fork }}\r\n uses: JetBrains/qodana-action@v2024.3\r\n with:\r\n args: --baseline,qodana.sarif.json\r" }, - "sourceLanguage": "C#" + "sourceLanguage": "yaml" } }, "logicalLocations": [ { - "fullyQualifiedName": "SoulSplitter", + "fullyQualifiedName": "rider.module", "kind": "module" } ] } ], "partialFingerprints": { - "equalIndicator/v2": "de354a6423423f59", - "equalIndicator/v1": "de46961980fc8fd777e0b058c23e37fb1393d52310016e2bf724dc46a4afbe8f" + "equalIndicator/v2": "b8760fb9428f65fb", + "equalIndicator/v1": "e8345da687debcab2af2879146fa2eb77f03e6d7e216a69af9fb42799c2d0c38" }, - "baselineState": "unchanged", + "baselineState": "new", "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", "tags": [ - "C#", - ".NETFramework 4.8.1" + "yaml" ] } }, { - "ruleId": "UseObjectOrCollectionInitializer", + "ruleId": "UndefinedParamsPresent", "kind": "fail", - "level": "note", + "level": "warning", "message": { - "text": "Use object initializer", - "markdown": "Use object initializer" + "text": "Undefined parameter: \"sarif_file\"", + "markdown": "Undefined parameter: \"sarif_file\"" }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "src/SoulSplitter/Splitters/EldenRingSplitter.cs", + "uri": ".github/workflows/build.yml", "uriBaseId": "SRCROOT" }, "region": { - "startLine": 46, - "startColumn": 23, - "charOffset": 1689, - "charLength": 3, + "startLine": 56, + "startColumn": 11, + "charOffset": 1509, + "charLength": 63, "snippet": { - "text": "new" + "text": "sarif_file: ${{ runner.temp }}/qodana/results/qodana.sarif.json" }, - "sourceLanguage": "C#" + "sourceLanguage": "yaml" }, "contextRegion": { - "startLine": 44, + "startLine": 54, "startColumn": 1, - "charOffset": 1615, - "charLength": 142, + "charOffset": 1432, + "charLength": 196, "snippet": { - "text": " _liveSplitState.IsGameTimePaused = true;\r\n\r\n _timerModel = new TimerModel();\r\n _timerModel.CurrentState = state;\r\n }\r" + "text": " uses: github/codeql-action/upload-sarif@v2\r\n with:\r\n sarif_file: ${{ runner.temp }}/qodana/results/qodana.sarif.json\r\n\r\n #Collect all the artifacts and publish them\r" }, - "sourceLanguage": "C#" + "sourceLanguage": "yaml" } }, "logicalLocations": [ { - "fullyQualifiedName": "SoulSplitter", + "fullyQualifiedName": "rider.module", "kind": "module" } ] } ], "partialFingerprints": { - "equalIndicator/v2": "d6ecdf47d7b40ed7", - "equalIndicator/v1": "f0b00639305e0fa05f9a7b1187e3010e5369f73b71f4224d3119f599ab39fb9a" + "equalIndicator/v2": "52e3c7debad7d5b2", + "equalIndicator/v1": "46cd96ec0f07ea68e82ef188cf0b9d5a6b4ddd931150e02696368b7fb718c4b6" }, - "baselineState": "unchanged", + "baselineState": "new", "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", "tags": [ - "C#", - ".NETFramework 4.8.1" + "yaml" ] } }, { - "ruleId": "UseSymbolAlias", + "ruleId": "UndefinedParamsPresent", "kind": "fail", - "level": "note", + "level": "warning", "message": { - "text": "Use type alias 'Attribute'", - "markdown": "Use type alias 'Attribute'" + "text": "Undefined parameter: \"args\"", + "markdown": "Undefined parameter: \"args\"" }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "src/SoulSplitter/UI/DarkSouls2/DarkSouls2ViewModel.cs", + "uri": ".github/workflows/build.yml", "uriBaseId": "SRCROOT" }, "region": { - "startLine": 182, - "startColumn": 41, - "charOffset": 6920, - "charLength": 27, + "startLine": 49, + "startColumn": 11, + "charOffset": 1280, + "charLength": 34, "snippet": { - "text": "Splits.DarkSouls2.Attribute" + "text": "args: --baseline,qodana.sarif.json" }, - "sourceLanguage": "C#" + "sourceLanguage": "yaml" }, "contextRegion": { - "startLine": 180, + "startLine": 47, "startColumn": 1, - "charOffset": 6773, - "charLength": 208, + "charOffset": 1208, + "charLength": 174, "snippet": { - "text": " case DarkSouls2SplitType.Attribute:\r\n NewSplitAttributeEnabled = true;\r\n NewSplitValue = new Splits.DarkSouls2.Attribute();\r\n break;\r\n\r" + "text": " uses: JetBrains/qodana-action@v2024.3\r\n with:\r\n args: --baseline,qodana.sarif.json\r\n env:\r\n QODANA_TOKEN: ${{ secrets.QODANA_TOKEN }}\r" }, - "sourceLanguage": "C#" + "sourceLanguage": "yaml" } }, "logicalLocations": [ { - "fullyQualifiedName": "SoulSplitter", + "fullyQualifiedName": "rider.module", "kind": "module" } ] } ], "partialFingerprints": { - "equalIndicator/v2": "73b9ea73ae7386d8", - "equalIndicator/v1": "906e29fb7550f659fe57702fa214e69be65cb2dd69476877d4489b9026699de9" + "equalIndicator/v2": "e918d13e365ba355", + "equalIndicator/v1": "5aa4d3babf6a646db2ec40dd357ba5af1293458d4575cdd3001149af40a1827e" }, - "baselineState": "unchanged", + "baselineState": "new", "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", "tags": [ - "C#", - ".NETFramework 4.8.1" + "yaml" ] } } ], "automationDetails": { "id": "SoulSplitter/qodana/2025-01-25", - "guid": "2ae5ad0f-924a-4e7e-a24e-3c417f15474e", + "guid": "e9554cec-8fe9-4210-b6f7-e92d8752b370", "properties": { - "jobUrl": "https://github.com/FrankvdStam/SoulSplitter/actions/runs/12963875323" + "jobUrl": "https://github.com/FrankvdStam/SoulSplitter/actions/runs/12964320992", + "analysisKind": "incremental" } }, "newlineSequences": [ @@ -218287,14 +140178,18 @@ }, "coverage": { "totalCoverage": 21, - "totalLines": 7601, - "totalCoveredLines": 1601 + "totalLines": 7702, + "totalCoveredLines": 1678, + "freshCoverage": 21, + "freshLines": 6543, + "freshCoveredLines": 1385 }, "configProfile": "recommended", "deviceId": "200820300000000-50b2-0b80-867f-20af431df407", "qodanaNewResultSummary": { - "high": 166, - "total": 166 + "moderate": 15, + "high": 4, + "total": 19 } } } From 167f059607c66058fb6d974532d8db82f4e9b5ad Mon Sep 17 00:00:00 2001 From: Frank van der Stam Date: Sat, 25 Jan 2025 13:21:40 +0100 Subject: [PATCH 28/28] set fresh to 20 --- qodana.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qodana.yaml b/qodana.yaml index 329902e..b9fd5d5 100644 --- a/qodana.yaml +++ b/qodana.yaml @@ -31,5 +31,5 @@ failureConditions: severityThresholds: any: 0 testCoverageThresholds: - fresh: 50 + fresh: 20 total: 20 \ No newline at end of file